
\begin{DoxyItemize}
\item SECURITY FIX\+: update {\ttfamily dot-\/prop} to {\ttfamily 5.\+2.\+0}
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_stylehacks_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md29307}{}\doxysection{Breaking changes}\label{md_sfcode_node_modules_stylehacks_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md29307}

\begin{DoxyItemize}
\item Unfortunately, due to fixing the vulnerability, the minimum supported version of the Node.\+js is {\ttfamily 8}.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_stylehacks_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md29308}{}\doxysection{3.\+1.\+1}\label{md_sfcode_node_modules_stylehacks_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md29308}

\begin{DoxyItemize}
\item Fix\+: typescript definitions weren\textquotesingle{}t in the published package.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_stylehacks_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md29309}{}\doxysection{3.\+1.\+0}\label{md_sfcode_node_modules_stylehacks_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md29309}

\begin{DoxyItemize}
\item Fixed numerous bugs in attribute nodes relating to the handling of comments and whitespace. There\textquotesingle{}s significant changes to {\ttfamily attr\+Node.\+spaces} and {\ttfamily attr\+Node.\+raws} since the {\ttfamily 3.\+0.\+0} release.
\item Added {\ttfamily Attribute\#offset\+Of(part)} to get the offset location of attribute parts like {\ttfamily \char`\"{}operator\char`\"{}} and {\ttfamily \char`\"{}value\char`\"{}}. This is most often added to {\ttfamily Attribute\#source\+Index} for error reporting.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_stylehacks_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md29310}{}\doxysection{3.\+0.\+0}\label{md_sfcode_node_modules_stylehacks_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md29310}
\hypertarget{md_sfcode_node_modules_stylehacks_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md29311}{}\doxysubsection{Breaking changes}\label{md_sfcode_node_modules_stylehacks_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md29311}

\begin{DoxyItemize}
\item Some tweaks to the tokenizer/attribute selector parsing mean that whitespace locations might be slightly different to the 2.\+x code.
\item Better attribute selector parsing with more validation; postcss-\/selector-\/parser no longer uses regular expressions to parse attribute selectors.
\item Added an async API (thanks to @jacobp100); the default {\ttfamily process} API is now async, and the sync API is now accessed through {\ttfamily process\+Sync} instead.
\item {\ttfamily process()} and {\ttfamily process\+Sync()} now return a string instead of the Processor instance.
\item Tweaks handling of Less interpolation (thanks to @jwilsson).
\item Removes support for Node 0.\+12.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_stylehacks_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md29312}{}\doxysubsection{Other changes}\label{md_sfcode_node_modules_stylehacks_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md29312}

\begin{DoxyItemize}
\item {\ttfamily ast()} and {\ttfamily ast\+Sync()} methods have been added to the {\ttfamily Processor}. These return the {\ttfamily Root} node of the selectors after processing them.
\item {\ttfamily transform()} and {\ttfamily transform\+Sync()} methods have been added to the {\ttfamily Processor}. These return the value returned by the processor callback after processing the selectors.
\item Set the parent when inserting a node (thanks to @chriseppstein).
\item Correctly adjust indices when using insert\+Before/insert\+After (thanks to @tivac).
\item Fixes handling of namespaces with qualified tag selectors.
\item {\ttfamily process}, {\ttfamily ast} and {\ttfamily transform} (and their sync variants) now accept a {\ttfamily postcss} rule node. When provided, better errors are generated and selector processing is automatically set back to the rule selector (unless the {\ttfamily update\+Selector} option is set to {\ttfamily false}.)
\item Now more memory efficient when tokenizing selectors.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_stylehacks_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md29313}{}\doxysubsubsection{Upgrade hints}\label{md_sfcode_node_modules_stylehacks_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md29313}
The pattern of\+:

{\ttfamily rule.\+selector = processor.\+process(rule.\+selector).result.\+to\+String();}

is now\+:

{\ttfamily processor.\+process\+Sync(rule)}\hypertarget{md_sfcode_node_modules_stylehacks_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md29314}{}\doxysection{2.\+2.\+3}\label{md_sfcode_node_modules_stylehacks_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md29314}

\begin{DoxyItemize}
\item Resolves an issue where the parser would not reduce multiple spaces between an ampersand and another simple selector in lossy mode (thanks to @adam-\/26).
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_stylehacks_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md29315}{}\doxysection{2.\+2.\+2}\label{md_sfcode_node_modules_stylehacks_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md29315}

\begin{DoxyItemize}
\item No longer hangs on an unescaped semicolon; instead the parser will throw an exception for these cases.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_stylehacks_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md29316}{}\doxysection{2.\+2.\+1}\label{md_sfcode_node_modules_stylehacks_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md29316}

\begin{DoxyItemize}
\item Allows a consumer to specify whitespace tokens when creating a new Node (thanks to @\+Semigradsky).
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_stylehacks_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md29317}{}\doxysection{2.\+2.\+0}\label{md_sfcode_node_modules_stylehacks_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md29317}

\begin{DoxyItemize}
\item Added a new option to normalize whitespace when parsing the selector string (thanks to @adam-\/26).
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_stylehacks_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md29318}{}\doxysection{2.\+1.\+1}\label{md_sfcode_node_modules_stylehacks_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md29318}

\begin{DoxyItemize}
\item Better unquoted value handling within attribute selectors (thanks to @evilebottnawi).
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_stylehacks_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md29319}{}\doxysection{2.\+1.\+0}\label{md_sfcode_node_modules_stylehacks_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md29319}

\begin{DoxyItemize}
\item Added\+: Use string constants for all node types \& expose them on the main parser instance (thanks to @\+Aweary).
\end{DoxyItemize}

\#~2.\+0.\+0

This release contains the following breaking changes\+:


\begin{DoxyItemize}
\item Renamed all {\ttfamily each\+Inside} iterators to {\ttfamily walk}. For example, {\ttfamily each\+Tag} is now {\ttfamily walk\+Tags}, and {\ttfamily each\+Inside} is now {\ttfamily walk}.
\item Renamed {\ttfamily Node\#remove\+Self()} to {\ttfamily Node\#remove()}.
\item Renamed {\ttfamily Container\#remove()} to {\ttfamily Container\#remove\+Child()}.
\item Renamed {\ttfamily Node\#raw} to {\ttfamily Node\#raws} (thanks to @davidtheclark).
\item Now parses {\ttfamily \&} as the {\itshape nesting} selector, rather than a {\itshape tag} selector.
\item Fixes misinterpretation of Sass interpolation (e.\+g. {\ttfamily \#\{foo\}}) as an id selector (thanks to @davidtheclark).
\end{DoxyItemize}

and;


\begin{DoxyItemize}
\item Fixes parsing of attribute selectors with equals signs in them (e.\+g. {\ttfamily \mbox{[}data-\/attr=\char`\"{}foo=bar\char`\"{}\mbox{]}}) (thanks to @montmanu).
\item Adds {\ttfamily quoted} and {\ttfamily raw.\+unquoted} properties to attribute nodes (thanks to @davidtheclark).
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_stylehacks_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md29320}{}\doxysection{1.\+3.\+3}\label{md_sfcode_node_modules_stylehacks_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md29320}

\begin{DoxyItemize}
\item Fixes an infinite loop on {\ttfamily )} and {\ttfamily \mbox{]}} tokens when they had no opening pairs. Now postcss-\/selector-\/parser will throw when it encounters these lone tokens.
\end{DoxyItemize}

\#~1.\+3.\+2


\begin{DoxyItemize}
\item Now uses plain integers rather than {\ttfamily str.\+char\+Code\+At(0)} for compiled builds.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_stylehacks_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md29321}{}\doxysection{1.\+3.\+1}\label{md_sfcode_node_modules_stylehacks_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md29321}

\begin{DoxyItemize}
\item Update flatten to v1.\+x (thanks to @shinnn).
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_stylehacks_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md29322}{}\doxysection{1.\+3.\+0}\label{md_sfcode_node_modules_stylehacks_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md29322}

\begin{DoxyItemize}
\item Adds a new node type, {\ttfamily String}, to fix a crash on selectors such as {\ttfamily foo\+:bar(\char`\"{}test\char`\"{})}.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_stylehacks_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md29323}{}\doxysection{1.\+2.\+1}\label{md_sfcode_node_modules_stylehacks_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md29323}

\begin{DoxyItemize}
\item Fixes a crash when the parser encountered a trailing combinator.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_stylehacks_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md29324}{}\doxysection{1.\+2.\+0}\label{md_sfcode_node_modules_stylehacks_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md29324}

\begin{DoxyItemize}
\item A more descriptive error is thrown when the parser expects to find a pseudo-\/class/pseudo-\/element (thanks to @ashelley).
\item Adds support for line/column locations for selector nodes, as well as a {\ttfamily Node\#source\+Index} method (thanks to @davidtheclark).
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_stylehacks_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md29325}{}\doxysection{1.\+1.\+4}\label{md_sfcode_node_modules_stylehacks_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md29325}

\begin{DoxyItemize}
\item Fixes a crash when a selector started with a {\ttfamily $>$} combinator. The module will now no longer throw if a selector has a leading/trailing combinator node.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_stylehacks_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md29326}{}\doxysection{1.\+1.\+3}\label{md_sfcode_node_modules_stylehacks_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md29326}

\begin{DoxyItemize}
\item Fixes a crash on {\ttfamily @} tokens.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_stylehacks_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md29327}{}\doxysection{1.\+1.\+2}\label{md_sfcode_node_modules_stylehacks_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md29327}

\begin{DoxyItemize}
\item Fixes an infinite loop caused by using parentheses in a non-\/pseudo element context.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_stylehacks_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md29328}{}\doxysection{1.\+1.\+1}\label{md_sfcode_node_modules_stylehacks_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md29328}

\begin{DoxyItemize}
\item Fixes a crash when a backslash ended a selector string.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_stylehacks_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md29329}{}\doxysection{1.\+1.\+0}\label{md_sfcode_node_modules_stylehacks_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md29329}

\begin{DoxyItemize}
\item Adds support for replacing multiple nodes at once with {\ttfamily replace\+With} (thanks to @jonathantneal).
\item Parser no longer throws on sequential IDs and trailing commas, to support parsing of selector hacks.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_stylehacks_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md29330}{}\doxysection{1.\+0.\+1}\label{md_sfcode_node_modules_stylehacks_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md29330}

\begin{DoxyItemize}
\item Fixes using {\ttfamily insert\+After} and {\ttfamily insert\+Before} during iteration.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_stylehacks_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md29331}{}\doxysection{1.\+0.\+0}\label{md_sfcode_node_modules_stylehacks_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md29331}

\begin{DoxyItemize}
\item Adds {\ttfamily clone} and {\ttfamily replace\+With} methods to nodes.
\item Adds {\ttfamily insert\+Before} and {\ttfamily insert\+After} to containers.
\item Stabilises API.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_stylehacks_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md29332}{}\doxysection{0.\+0.\+5}\label{md_sfcode_node_modules_stylehacks_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md29332}

\begin{DoxyItemize}
\item Fixes crash on extra whitespace inside a pseudo selector\textquotesingle{}s parentheses.
\item Adds sort function to the container class.
\item Enables the parser to pass its input through without transforming.
\item Iteration-\/safe {\ttfamily each} and {\ttfamily each\+Inside}.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_stylehacks_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md29333}{}\doxysection{0.\+0.\+4}\label{md_sfcode_node_modules_stylehacks_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md29333}

\begin{DoxyItemize}
\item Tidy up redundant duplication.
\item Fixes a bug where the parser would loop infinitely on universal selectors inside pseudo selectors.
\item Adds {\ttfamily length} getter and {\ttfamily each\+Inside}, {\ttfamily map}, {\ttfamily reduce} to the container class.
\item When a selector has been removed from the tree, the root node will no longer cast it to a string.
\item Adds node type iterators to the container class (e.\+g. {\ttfamily each\+Comment}).
\item Adds filter function to the container class.
\item Adds split function to the container class.
\item Create new node types by doing {\ttfamily parser.\+id(opts)} etc.
\item Adds support for pseudo classes anywhere in the selector.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_stylehacks_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md29334}{}\doxysection{0.\+0.\+3}\label{md_sfcode_node_modules_stylehacks_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md29334}

\begin{DoxyItemize}
\item Adds {\ttfamily next} and {\ttfamily prev} to the node class.
\item Adds {\ttfamily first} and {\ttfamily last} getters to the container class.
\item Adds {\ttfamily every} and {\ttfamily some} iterators to the container class.
\item Add {\ttfamily empty} alias for {\ttfamily remove\+All}.
\item Combinators are now types of node.
\item Fixes the at method so that it is not an alias for {\ttfamily index}.
\item Tidy up creation of new nodes in the parser.
\item Refactors how namespaces are handled for consistency \& less redundant code.
\item Refactors AST to use {\ttfamily nodes} exclusively, and eliminates excessive nesting.
\item Fixes nested pseudo parsing.
\item Fixes whitespace parsing.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_stylehacks_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md29335}{}\doxysection{0.\+0.\+2}\label{md_sfcode_node_modules_stylehacks_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md29335}

\begin{DoxyItemize}
\item Adds support for namespace selectors.
\item Adds support for selectors joined by escaped spaces -\/ such as {\ttfamily .\textbackslash{}31\textbackslash{} 0}.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_stylehacks_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md29336}{}\doxysection{0.\+0.\+1}\label{md_sfcode_node_modules_stylehacks_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md29336}

\begin{DoxyItemize}
\item Initial release. 
\end{DoxyItemize}