Save current BZZZ config-ui state before CHORUS branding update
🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
		
							
								
								
									
										549
									
								
								install/config-ui/node_modules/postcss-selector-parser/CHANGELOG.md
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										549
									
								
								install/config-ui/node_modules/postcss-selector-parser/CHANGELOG.md
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,549 @@ | ||||
| # 6.1.2 | ||||
|  | ||||
| - Fixed: erroneous trailing combinators in pseudos | ||||
|  | ||||
| # 6.1.1 | ||||
|  | ||||
| - Fixed: improve typings of constructor helpers (#292) | ||||
|  | ||||
| # 6.1.0 | ||||
|  | ||||
| - Feature: add `sourceIndex` to `Selector` nodes (#290) | ||||
|  | ||||
| # 6.0.16 | ||||
|  | ||||
| - Fixed: add missing `index` argument to `each`/`walk` callback types (#289) | ||||
|  | ||||
| # 6.0.15 | ||||
|  | ||||
| - Fixed: Node#prev and Node#next type for the first/last node | ||||
|  | ||||
| # 6.0.14 | ||||
|  | ||||
| - Fixed: type definitions | ||||
|  | ||||
| # 6.0.13 | ||||
|  | ||||
| - Fixed: throw on unexpected pipe symbols | ||||
|  | ||||
| # 6.0.12 | ||||
|  | ||||
| - Fixed: `clone` arguments should be optional | ||||
|  | ||||
| # 6.0.11 | ||||
|  | ||||
| - Fixed: parse attribute case insensitivity flag | ||||
|  | ||||
| # 6.0.10 | ||||
|  | ||||
| - Fixed: `isPseudoElement()` supports `:first-letter` and `:first-line` | ||||
|  | ||||
| # 6.0.9 | ||||
|  | ||||
| - Fixed: `Combinator.raws` property type | ||||
|  | ||||
| # 6.0.8 | ||||
|  | ||||
| - Fixed: reduced size | ||||
|  | ||||
| # 6.0.7 | ||||
|  | ||||
| - Fixed: parse animation percents | ||||
|  | ||||
| # 6.0.6 | ||||
|  | ||||
| - Fixed: parse quoted attributes containing a newline correctly | ||||
|  | ||||
| # 6.0.5 | ||||
|  | ||||
| - Perf: rework unesc for a 63+% performance boost | ||||
|  | ||||
| # 6.0.4 | ||||
|  | ||||
| - Fixed: ts errors | ||||
|  | ||||
| # 6.0.3 | ||||
|  | ||||
| - Fixed: replace node built-in "util" module with "util-deprecate" | ||||
| - Fixed: handle uppercase pseudo elements | ||||
| - Fixed: do not create invalid combinator before comment | ||||
|  | ||||
| # 6.0.2 | ||||
|  | ||||
| - Fixed an issue with parsing and stringifying an empty attribute value | ||||
|  | ||||
| # 6.0.1 | ||||
|  | ||||
| - Fixed an issue with unicode surrogate pair parsing | ||||
|  | ||||
| # 6.0.0 | ||||
|  | ||||
| - Updated: `cssesc` to 3.0.0 (major) | ||||
| - Fixed: Issues with escaped `id` and `class` selectors | ||||
|  | ||||
| # 5.0.0 | ||||
|  | ||||
| - Allow escaped dot within class name. | ||||
| - Update PostCSS to 7.0.7 (patch) | ||||
|  | ||||
| # 5.0.0-rc.4 | ||||
|  | ||||
| - Fixed an issue where comments immediately after an insensitive (in attribute) | ||||
|   were not parsed correctly. | ||||
| - Updated `cssesc` to 2.0.0 (major). | ||||
| - Removed outdated integration tests. | ||||
| - Added tests for custom selectors, tags with attributes, the universal | ||||
|   selector with pseudos, and tokens after combinators. | ||||
|  | ||||
| # 5.0.0-rc.1 | ||||
|  | ||||
| To ease adoption of the v5.0 release, we have relaxed the node version | ||||
| check performed by npm at installation time to allow for node 4, which | ||||
| remains officially unsupported, but likely to continue working for the | ||||
| time being. | ||||
|  | ||||
| # 5.0.0-rc.0 | ||||
|  | ||||
| This release has **BREAKING CHANGES** that were required to fix regressions | ||||
| in 4.0.0 and to make the Combinator Node API consistent for all combinator | ||||
| types. Please read carefully. | ||||
|  | ||||
| ## Summary of Changes | ||||
|  | ||||
| * The way a descendent combinator that isn't a single space character (E.g. `.a  .b`) is stored in the AST has changed. | ||||
| * Named Combinators (E.g. `.a /for/ .b`) are now properly parsed as a combinator. | ||||
| * It is now possible to look up a node based on the source location of a character in that node and to query nodes if they contain some character. | ||||
| * Several bug fixes that caused the parser to hang and run out of memory when a `/` was encountered have been fixed. | ||||
| * The minimum supported version of Node is now `v6.0.0`. | ||||
|  | ||||
| ### Changes to the Descendent Combinator | ||||
|  | ||||
| In prior releases, the value of a descendant combinator with multiple spaces included all the spaces. | ||||
|  | ||||
| * `.a   .b`: Extra spaces are now stored as space before. | ||||
|   - Old & Busted: | ||||
|     - `combinator.value === "   "` | ||||
|   - New hotness: | ||||
|     - `combinator.value === " " && combinator.spaces.before === "  "` | ||||
| * `.a   /*comment*/.b`: A comment at the end of the combinator causes extra space to become after space. | ||||
|   - Old & Busted: | ||||
|     - `combinator.value === "   "` | ||||
|     - `combinator.raws.value === "   /*comment/"` | ||||
|   - New hotness: | ||||
|     - `combinator.value === " "` | ||||
|     - `combinator.spaces.after === "  "` | ||||
|     - `combinator.raws.spaces.after === "  /*comment*/"` | ||||
| * `.a<newline>.b`: whitespace that doesn't start or end with a single space character is stored as a raw value. | ||||
|   - Old & Busted: | ||||
|     - `combinator.value === "\n"` | ||||
|     - `combinator.raws.value === undefined` | ||||
|   - New hotness: | ||||
|     - `combinator.value === " "` | ||||
|     - `combinator.raws.value === "\n"` | ||||
|  | ||||
| ### Support for "Named Combinators" | ||||
|  | ||||
| Although, nonstandard and unlikely to ever become a standard, combinators like `/deep/` and `/for/` are now properly supported. | ||||
|  | ||||
| Because they've been taken off the standardization track, there is no spec-official name for combinators of the form `/<ident>/`. However, I talked to [Tab Atkins](https://twitter.com/tabatkins) and we agreed to call them "named combinators" so now they are called that. | ||||
|  | ||||
| Before this release such named combinators were parsed without intention and generated three nodes of type `"tag"` where the first and last nodes had a value of `"/"`. | ||||
|  | ||||
| * `.a /for/ .b` is parsed as a combinator. | ||||
|   - Old & Busted: | ||||
|     - `root.nodes[0].nodes[1].type === "tag"` | ||||
|     - `root.nodes[0].nodes[1].value === "/"` | ||||
|   - New hotness: | ||||
|     - `root.nodes[0].nodes[1].type === "combinator"` | ||||
|     - `root.nodes[0].nodes[1].value === "/for/"` | ||||
| * `.a /F\6fR/ .b` escapes are handled and uppercase is normalized. | ||||
|   - Old & Busted: | ||||
|     - `root.nodes[0].nodes[2].type === "tag"` | ||||
|     - `root.nodes[0].nodes[2].value === "F\\6fR"` | ||||
|   - New hotness: | ||||
|     - `root.nodes[0].nodes[1].type === "combinator"` | ||||
|     - `root.nodes[0].nodes[1].value === "/for/"` | ||||
|     - `root.nodes[0].nodes[1].raws.value === "/F\\6fR/"` | ||||
|  | ||||
| ### Source position checks and lookups | ||||
|  | ||||
| A new API was added to look up a node based on the source location. | ||||
|  | ||||
| ```js | ||||
| const selectorParser = require("postcss-selector-parser"); | ||||
| // You can find the most specific node for any given character | ||||
| let combinator = selectorParser.astSync(".a > .b").atPosition(1,4); | ||||
| combinator.toString() === " > "; | ||||
| // You can check if a node includes a specific character | ||||
| // Whitespace surrounding the node that is owned by that node | ||||
| // is included in the check. | ||||
| [2,3,4,5,6].map(column => combinator.isAtPosition(1, column)); | ||||
| // => [false, true, true, true, false] | ||||
| ``` | ||||
|  | ||||
| # 4.0.0 | ||||
|  | ||||
| This release has **BREAKING CHANGES** that were required to fix bugs regarding values with escape sequences. Please read carefully. | ||||
|  | ||||
| * **Identifiers with escapes** - CSS escape sequences are now hidden from the public API by default. | ||||
|   The normal value of a node like a class name or ID, or an aspect of a node such as attribute | ||||
|   selector's value, is unescaped. Escapes representing Non-ascii characters are unescaped into | ||||
|   unicode characters. For example: `bu\tton, .\31 00, #i\2764\FE0Fu, [attr="value is \"quoted\""]` | ||||
|   will parse respectively to the values `button`, `100`, `i❤️u`, `value is "quoted"`. | ||||
|   The original escape sequences for these values can be found in the corresponding property name | ||||
|   in `node.raws`. Where possible, deprecation warnings were added, but the nature | ||||
|   of escape handling makes it impossible to detect what is escaped or not. Our expectation is | ||||
|   that most users are neither expecting nor handling escape sequences in their use of this library, | ||||
|   and so for them, this is a bug fix. Users who are taking care to handle escapes correctly can | ||||
|   now update their code to remove the escape handling and let us do it for them. | ||||
|  | ||||
| * **Mutating values with escapes** - When you make an update to a node property that has escape handling | ||||
|   The value is assumed to be unescaped, and any special characters are escaped automatically and | ||||
|   the corresponding `raws` value is immediately updated. This can result in changes to the original | ||||
|   escape format. Where the exact value of the escape sequence is important there are methods that | ||||
|   allow both values to be set in conjunction. There are a number of new convenience methods for | ||||
|   manipulating values that involve escapes, especially for attributes values where the quote mark | ||||
|   is involved. See https://github.com/postcss/postcss-selector-parser/pull/133 for an extensive | ||||
|   write-up on these changes. | ||||
|  | ||||
|  | ||||
| **Upgrade/API Example** | ||||
|  | ||||
| In `3.x` there was no unescape handling and internal consistency of several properties was the caller's job to maintain. It was very easy for the developer | ||||
| to create a CSS file that did not parse correctly when some types of values | ||||
| were in use. | ||||
|  | ||||
| ```js | ||||
| const selectorParser = require("postcss-selector-parser"); | ||||
| let attr = selectorParser.attribute({attribute: "id", operator: "=", value: "a-value"}); | ||||
| attr.value; // => "a-value" | ||||
| attr.toString(); // => [id=a-value] | ||||
| // Add quotes to an attribute's value. | ||||
| // All these values have to be set by the caller to be consistent: | ||||
| // no internal consistency is maintained. | ||||
| attr.raws.unquoted = attr.value | ||||
| attr.value = "'" + attr.value + "'"; | ||||
| attr.value; // => "'a-value'" | ||||
| attr.quoted = true; | ||||
| attr.toString();  // => "[id='a-value']" | ||||
| ``` | ||||
|  | ||||
| In `4.0` there is a convenient API for setting and mutating values | ||||
| that may need escaping. Especially for attributes. | ||||
|  | ||||
| ```js | ||||
| const selectorParser = require("postcss-selector-parser"); | ||||
|  | ||||
| // The constructor requires you specify the exact escape sequence | ||||
| let className = selectorParser.className({value: "illegal class name", raws: {value: "illegal\\ class\\ name"}}); | ||||
| className.toString(); // => '.illegal\\ class\\ name' | ||||
|  | ||||
| // So it's better to set the value as a property | ||||
| className = selectorParser.className(); | ||||
| // Most properties that deal with identifiers work like this | ||||
| className.value = "escape for me"; | ||||
| className.value; // => 'escape for me' | ||||
| className.toString(); // => '.escape\\ for\\ me' | ||||
|  | ||||
| // emoji and all non-ascii are escaped to ensure it works in every css file. | ||||
| className.value = "😱🦄😍"; | ||||
| className.value; // => '😱🦄😍' | ||||
| className.toString(); // => '.\\1F631\\1F984\\1F60D' | ||||
|  | ||||
| // you can control the escape sequence if you want, or do bad bad things | ||||
| className.setPropertyAndEscape('value', 'xxxx', 'yyyy'); | ||||
| className.value; // => "xxxx" | ||||
| className.toString(); // => ".yyyy" | ||||
|  | ||||
| // Pass a value directly through to the css output without escaping it.  | ||||
| className.setPropertyWithoutEscape('value', '$REPLACE_ME$'); | ||||
| className.value; // => "$REPLACE_ME$" | ||||
| className.toString(); // => ".$REPLACE_ME$" | ||||
|  | ||||
| // The biggest changes are to the Attribute class | ||||
| // passing quoteMark explicitly is required to avoid a deprecation warning. | ||||
| let attr = selectorParser.attribute({attribute: "id", operator: "=", value: "a-value", quoteMark: null}); | ||||
| attr.toString(); // => "[id=a-value]" | ||||
| // Get the value with quotes on it and any necessary escapes. | ||||
| // This is the same as reading attr.value in 3.x. | ||||
| attr.getQuotedValue(); // => "a-value"; | ||||
| attr.quoteMark; // => null | ||||
|  | ||||
| // Add quotes to an attribute's value. | ||||
| attr.quoteMark = "'"; // This is all that's required. | ||||
| attr.toString(); // => "[id='a-value']" | ||||
| attr.quoted; // => true | ||||
| // The value is still the same, only the quotes have changed. | ||||
| attr.value; // => a-value | ||||
| attr.getQuotedValue(); // => "'a-value'"; | ||||
|  | ||||
| // deprecated assignment, no warning because there's no escapes | ||||
| attr.value = "new-value"; | ||||
| // no quote mark is needed so it is removed | ||||
| attr.getQuotedValue(); // => "new-value"; | ||||
|  | ||||
| // deprecated assignment,  | ||||
| attr.value = "\"a 'single quoted' value\""; | ||||
| // > (node:27859) DeprecationWarning: Assigning an attribute a value containing characters that might need to be escaped is deprecated. Call attribute.setValue() instead. | ||||
| attr.getQuotedValue(); // => '"a \'single quoted\' value"'; | ||||
| // quote mark inferred from first and last characters. | ||||
| attr.quoteMark; // => '"' | ||||
|  | ||||
| // setValue takes options to make manipulating the value simple. | ||||
| attr.setValue('foo', {smart: true}); | ||||
| // foo doesn't require any escapes or quotes. | ||||
| attr.toString(); // => '[id=foo]' | ||||
| attr.quoteMark; // => null  | ||||
|  | ||||
| // An explicit quote mark can be specified | ||||
| attr.setValue('foo', {quoteMark: '"'}); | ||||
| attr.toString(); // => '[id="foo"]' | ||||
|  | ||||
| // preserves quote mark by default | ||||
| attr.setValue('bar'); | ||||
| attr.toString(); // => '[id="bar"]' | ||||
| attr.quoteMark = null; | ||||
| attr.toString(); // => '[id=bar]' | ||||
|  | ||||
| // with no arguments, it preserves quote mark even when it's not a great idea | ||||
| attr.setValue('a value \n that should be quoted'); | ||||
| attr.toString(); // => '[id=a\\ value\\ \\A\\ that\\ should\\ be\\ quoted]' | ||||
|  | ||||
| // smart preservation with a specified default | ||||
| attr.setValue('a value \n that should be quoted', {smart: true, preferCurrentQuoteMark: true, quoteMark: "'"}); | ||||
| // => "[id='a value \\A  that should be quoted']" | ||||
| attr.quoteMark = '"'; | ||||
| // => '[id="a value \\A  that should be quoted"]' | ||||
|  | ||||
| // this keeps double quotes because it wants to quote the value and the existing value has double quotes. | ||||
| attr.setValue('this should be quoted', {smart: true, preferCurrentQuoteMark: true, quoteMark: "'"}); | ||||
| // => '[id="this should be quoted"]' | ||||
|  | ||||
| // picks single quotes because the value has double quotes | ||||
| attr.setValue('a "double quoted" value', {smart: true, preferCurrentQuoteMark: true, quoteMark: "'"}); | ||||
| // => "[id='a "double quoted" value']" | ||||
|  | ||||
| // setPropertyAndEscape lets you do anything you want. Even things that are a bad idea and illegal. | ||||
| attr.setPropertyAndEscape('value', 'xxxx', 'the password is 42'); | ||||
| attr.value; // => "xxxx" | ||||
| attr.toString(); // => "[id=the password is 42]" | ||||
|  | ||||
| // Pass a value directly through to the css output without escaping it.  | ||||
| attr.setPropertyWithoutEscape('value', '$REPLACEMENT$'); | ||||
| attr.value; // => "$REPLACEMENT$" | ||||
| attr.toString(); // => "[id=$REPLACEMENT$]" | ||||
| ``` | ||||
|  | ||||
| # 3.1.2 | ||||
|  | ||||
| * Fix: Removed dot-prop dependency since it's no longer written in es5. | ||||
|  | ||||
| # 3.1.1 | ||||
|  | ||||
| * Fix: typescript definitions weren't in the published package. | ||||
|  | ||||
| # 3.1.0 | ||||
|  | ||||
| * Fixed numerous bugs in attribute nodes relating to the handling of comments | ||||
|   and whitespace. There's significant changes to `attrNode.spaces` and `attrNode.raws` since the `3.0.0` release. | ||||
| * Added `Attribute#offsetOf(part)` to get the offset location of | ||||
|   attribute parts like `"operator"` and `"value"`. This is most | ||||
|   often added to `Attribute#sourceIndex` for error reporting. | ||||
|  | ||||
| # 3.0.0 | ||||
|  | ||||
| ## Breaking changes | ||||
|  | ||||
| * Some tweaks to the tokenizer/attribute selector parsing mean that whitespace | ||||
|   locations might be slightly different to the 2.x code. | ||||
| * Better attribute selector parsing with more validation; postcss-selector-parser | ||||
|   no longer uses regular expressions to parse attribute selectors. | ||||
| * Added an async API (thanks to @jacobp100); the default `process` API is now | ||||
|   async, and the sync API is now accessed through `processSync` instead. | ||||
| * `process()` and `processSync()` now return a string instead of the Processor | ||||
|   instance. | ||||
| * Tweaks handling of Less interpolation (thanks to @jwilsson). | ||||
| * Removes support for Node 0.12. | ||||
|  | ||||
| ## Other changes | ||||
|  | ||||
| * `ast()` and `astSync()` methods have been added to the `Processor`. These | ||||
|   return the `Root` node of the selectors after processing them. | ||||
| * `transform()` and `transformSync()` methods have been added to the | ||||
|   `Processor`. These return the value returned by the processor callback | ||||
|   after processing the selectors. | ||||
| * Set the parent when inserting a node (thanks to @chriseppstein). | ||||
| * Correctly adjust indices when using insertBefore/insertAfter (thanks to @tivac). | ||||
| * Fixes handling of namespaces with qualified tag selectors. | ||||
| * `process`, `ast` and `transform` (and their sync variants) now accept a | ||||
|   `postcss` rule node. When provided, better errors are generated and selector | ||||
|   processing is automatically set back to the rule selector (unless the `updateSelector` option is set to `false`.) | ||||
| * Now more memory efficient when tokenizing selectors. | ||||
|  | ||||
| ### Upgrade hints | ||||
|  | ||||
| The pattern of: | ||||
|  | ||||
| `rule.selector = processor.process(rule.selector).result.toString();` | ||||
|  | ||||
| is now: | ||||
|  | ||||
| `processor.processSync(rule)` | ||||
|  | ||||
| # 2.2.3 | ||||
|  | ||||
| * 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). | ||||
|  | ||||
| # 2.2.2 | ||||
|  | ||||
| * No longer hangs on an unescaped semicolon; instead the parser will throw | ||||
|   an exception for these cases. | ||||
|  | ||||
| # 2.2.1 | ||||
|  | ||||
| * Allows a consumer to specify whitespace tokens when creating a new Node | ||||
|   (thanks to @Semigradsky). | ||||
|  | ||||
| # 2.2.0 | ||||
|  | ||||
| * Added a new option to normalize whitespace when parsing the selector string | ||||
|   (thanks to @adam-26). | ||||
|  | ||||
| # 2.1.1 | ||||
|  | ||||
| * Better unquoted value handling within attribute selectors | ||||
|   (thanks to @evilebottnawi). | ||||
|  | ||||
| # 2.1.0 | ||||
|  | ||||
| * Added: Use string constants for all node types & expose them on the main | ||||
|   parser instance (thanks to @Aweary). | ||||
|  | ||||
| # 2.0.0 | ||||
|  | ||||
| This release contains the following breaking changes: | ||||
|  | ||||
| * Renamed all `eachInside` iterators to `walk`. For example, `eachTag` is now | ||||
|   `walkTags`, and `eachInside` is now `walk`. | ||||
| * Renamed `Node#removeSelf()` to `Node#remove()`. | ||||
| * Renamed `Container#remove()` to `Container#removeChild()`. | ||||
| * Renamed `Node#raw` to `Node#raws` (thanks to @davidtheclark). | ||||
| * Now parses `&` as the *nesting* selector, rather than a *tag* selector. | ||||
| * Fixes misinterpretation of Sass interpolation (e.g. `#{foo}`) as an | ||||
|   id selector (thanks to @davidtheclark). | ||||
|  | ||||
| and; | ||||
|  | ||||
| * Fixes parsing of attribute selectors with equals signs in them | ||||
|   (e.g. `[data-attr="foo=bar"]`) (thanks to @montmanu). | ||||
| * Adds `quoted` and `raw.unquoted` properties to attribute nodes | ||||
|   (thanks to @davidtheclark). | ||||
|  | ||||
| # 1.3.3 | ||||
|  | ||||
| * Fixes an infinite loop on `)` and `]` tokens when they had no opening pairs. | ||||
|   Now postcss-selector-parser will throw when it encounters these lone tokens. | ||||
|  | ||||
| # 1.3.2 | ||||
|  | ||||
| * Now uses plain integers rather than `str.charCodeAt(0)` for compiled builds. | ||||
|  | ||||
| # 1.3.1 | ||||
|  | ||||
| * Update flatten to v1.x (thanks to @shinnn). | ||||
|  | ||||
| # 1.3.0 | ||||
|  | ||||
| * Adds a new node type, `String`, to fix a crash on selectors such as | ||||
|   `foo:bar("test")`. | ||||
|  | ||||
| # 1.2.1 | ||||
|  | ||||
| * Fixes a crash when the parser encountered a trailing combinator. | ||||
|  | ||||
| # 1.2.0 | ||||
|  | ||||
| * A more descriptive error is thrown when the parser expects to find a | ||||
|   pseudo-class/pseudo-element (thanks to @ashelley). | ||||
| * Adds support for line/column locations for selector nodes, as well as a | ||||
|   `Node#sourceIndex` method (thanks to @davidtheclark). | ||||
|  | ||||
| # 1.1.4 | ||||
|  | ||||
| * Fixes a crash when a selector started with a `>` combinator. The module will | ||||
|   now no longer throw if a selector has a leading/trailing combinator node. | ||||
|  | ||||
| # 1.1.3 | ||||
|  | ||||
| * Fixes a crash on `@` tokens. | ||||
|  | ||||
| # 1.1.2 | ||||
|  | ||||
| * Fixes an infinite loop caused by using parentheses in a non-pseudo element | ||||
|   context. | ||||
|  | ||||
| # 1.1.1 | ||||
|  | ||||
| * Fixes a crash when a backslash ended a selector string. | ||||
|  | ||||
| # 1.1.0 | ||||
|  | ||||
| * Adds support for replacing multiple nodes at once with `replaceWith` | ||||
|   (thanks to @jonathantneal). | ||||
| * Parser no longer throws on sequential IDs and trailing commas, to support | ||||
|   parsing of selector hacks. | ||||
|  | ||||
| # 1.0.1 | ||||
|  | ||||
| * Fixes using `insertAfter` and `insertBefore` during iteration. | ||||
|  | ||||
| # 1.0.0 | ||||
|  | ||||
| * Adds `clone` and `replaceWith` methods to nodes. | ||||
| * Adds `insertBefore` and `insertAfter` to containers. | ||||
| * Stabilises API. | ||||
|  | ||||
| # 0.0.5 | ||||
|  | ||||
| * Fixes crash on extra whitespace inside a pseudo selector's parentheses. | ||||
| * Adds sort function to the container class. | ||||
| * Enables the parser to pass its input through without transforming. | ||||
| * Iteration-safe `each` and `eachInside`. | ||||
|  | ||||
| # 0.0.4 | ||||
|  | ||||
| * Tidy up redundant duplication. | ||||
| * Fixes a bug where the parser would loop infinitely on universal selectors | ||||
|   inside pseudo selectors. | ||||
| * Adds `length` getter and `eachInside`, `map`, `reduce` to the container class. | ||||
| * When a selector has been removed from the tree, the root node will no longer | ||||
|   cast it to a string. | ||||
| * Adds node type iterators to the container class (e.g. `eachComment`). | ||||
| * Adds filter function to the container class. | ||||
| * Adds split function to the container class. | ||||
| * Create new node types by doing `parser.id(opts)` etc. | ||||
| * Adds support for pseudo classes anywhere in the selector. | ||||
|  | ||||
| # 0.0.3 | ||||
|  | ||||
| * Adds `next` and `prev` to the node class. | ||||
| * Adds `first` and `last` getters to the container class. | ||||
| * Adds `every` and `some` iterators to the container class. | ||||
| * Add `empty` alias for `removeAll`. | ||||
| * Combinators are now types of node. | ||||
| * Fixes the at method so that it is not an alias for `index`. | ||||
| * Tidy up creation of new nodes in the parser. | ||||
| * Refactors how namespaces are handled for consistency & less redundant code. | ||||
| * Refactors AST to use `nodes` exclusively, and eliminates excessive nesting. | ||||
| * Fixes nested pseudo parsing. | ||||
| * Fixes whitespace parsing. | ||||
|  | ||||
| # 0.0.2 | ||||
|  | ||||
| * Adds support for namespace selectors. | ||||
| * Adds support for selectors joined by escaped spaces - such as `.\31\ 0`. | ||||
|  | ||||
| # 0.0.1 | ||||
|  | ||||
| * Initial release. | ||||
		Reference in New Issue
	
	Block a user
	 anthonyrawlins
					anthonyrawlins