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

\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_postcss_merge_rules_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md21444}{}\doxysection{3.\+1.\+1}\label{md_sfcode_node_modules_postcss_merge_rules_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md21444}

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

\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_postcss_merge_rules_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md21446}{}\doxysection{3.\+0.\+0}\label{md_sfcode_node_modules_postcss_merge_rules_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md21446}
\hypertarget{md_sfcode_node_modules_postcss_merge_rules_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md21447}{}\doxysubsection{Breaking changes}\label{md_sfcode_node_modules_postcss_merge_rules_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md21447}

\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_postcss_merge_rules_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md21448}{}\doxysubsection{Other changes}\label{md_sfcode_node_modules_postcss_merge_rules_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md21448}

\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_postcss_merge_rules_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md21449}{}\doxysubsubsection{Upgrade hints}\label{md_sfcode_node_modules_postcss_merge_rules_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md21449}
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_postcss_merge_rules_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md21450}{}\doxysection{2.\+2.\+3}\label{md_sfcode_node_modules_postcss_merge_rules_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md21450}

\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_postcss_merge_rules_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md21451}{}\doxysection{2.\+2.\+2}\label{md_sfcode_node_modules_postcss_merge_rules_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md21451}

\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_postcss_merge_rules_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md21452}{}\doxysection{2.\+2.\+1}\label{md_sfcode_node_modules_postcss_merge_rules_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md21452}

\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_postcss_merge_rules_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md21453}{}\doxysection{2.\+2.\+0}\label{md_sfcode_node_modules_postcss_merge_rules_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md21453}

\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_postcss_merge_rules_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md21454}{}\doxysection{2.\+1.\+1}\label{md_sfcode_node_modules_postcss_merge_rules_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md21454}

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

\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_postcss_merge_rules_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md21456}{}\doxysection{1.\+3.\+3}\label{md_sfcode_node_modules_postcss_merge_rules_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md21456}

\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_postcss_merge_rules_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md21457}{}\doxysection{1.\+3.\+1}\label{md_sfcode_node_modules_postcss_merge_rules_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md21457}

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

\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_postcss_merge_rules_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md21459}{}\doxysection{1.\+2.\+1}\label{md_sfcode_node_modules_postcss_merge_rules_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md21459}

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

\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_postcss_merge_rules_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md21461}{}\doxysection{1.\+1.\+4}\label{md_sfcode_node_modules_postcss_merge_rules_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md21461}

\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_postcss_merge_rules_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md21462}{}\doxysection{1.\+1.\+3}\label{md_sfcode_node_modules_postcss_merge_rules_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md21462}

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

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

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

\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_postcss_merge_rules_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md21466}{}\doxysection{1.\+0.\+1}\label{md_sfcode_node_modules_postcss_merge_rules_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md21466}

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

\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_postcss_merge_rules_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md21468}{}\doxysection{0.\+0.\+5}\label{md_sfcode_node_modules_postcss_merge_rules_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md21468}

\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_postcss_merge_rules_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md21469}{}\doxysection{0.\+0.\+4}\label{md_sfcode_node_modules_postcss_merge_rules_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md21469}

\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_postcss_merge_rules_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md21470}{}\doxysection{0.\+0.\+3}\label{md_sfcode_node_modules_postcss_merge_rules_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md21470}

\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_postcss_merge_rules_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md21471}{}\doxysection{0.\+0.\+2}\label{md_sfcode_node_modules_postcss_merge_rules_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md21471}

\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_postcss_merge_rules_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md21472}{}\doxysection{0.\+0.\+1}\label{md_sfcode_node_modules_postcss_merge_rules_node_modules_postcss_selector_parser_CHANGELOG_autotoc_md21472}

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