fix(deps): update dependency css-tree to v3 #625
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
^1.1.3->^3.0.0Release Notes
csstree/csstree (css-tree)
v3.1.0Compare Source
<boolean-expr[ test ]>(#304)source,startOffset,startLine, andstartColumnparameters toOffsetToLocationconstructor, eliminating the need to callsetSource()after creating a newOffsetToLocationinstanceOffsetToLocationclass in the main entry point, which was previously accessible only viacss-tree/tokenizerRawnode value consumption by ignoring stop tokens inside blocks, resolving an issue whereRawvalue consumption stopped prematurely. This fix also enables parsing of functions whose content includes stop characters (e.g., semicolons and curly braces) within declaration values, aligning with the latest draft of CSS Values and Units Module Level 5.TokenStream#balancecomputation to handle unmatched brackets correctly. Previously, when encountering a closing bracket, theTokenStreamwould prioritize it over unmatched opening brackets, leading to improper parsing. For example, the parser would incorrectly consume the declaration value of.a { prop: ([{); }as([{)instead of consuming it until all opened brackets were closed (([{); }). Now, unmatched closing brackets are discarded unless they match the most recent opening bracket on the stack. This change aligns CSSTree with CSS specifications and browser behavior.Layernode (#310)mdn/datato 2.12.2v3.0.1Compare Source
mdn/datato 2.12.1errorsarray to theLexer#validate()method result, providing details on problematic syntax.Lexer#cssWideKeywordsdictionary to list CSS-wide keywordsconfig.cssWideKeywordsfor overriding the default listcssWideKeywordsdictionaryfork()method to accept acssWideKeywordsoption, allowing the addition of new keywords to the existing listBlockto include{and}, andAtruleandRuleto exclude{and}for ablock(#296)assign) for the callback in thefork()method (e.g.,syntax.fork((config, assign) => { ... })), as it simply refers toObject.assign()<basic-shapes>,<absolute-color-function>and<'stroke-opacity'>v3.0.0Compare Source
@containerat-rule@starting-styleat-rule@scopeat-rule@position-tryat-rule@layerat-rulelayer,layer()andsupports()in the@mediaat-rule (according to the @import rule in Cascading and Inheritance 5)LayerandLayerListnode typesTokenStream#lookupTypeNonSC()method<dashed-ident>to generic typesmdn/datato2.10.0<'font'>to CSS Fonts 4<color>to CSS Color 5Object.prototypeis extended or polluted (#262)fork()method to consider thegenericoption when creating a Lexer instance (#266)lineoroffsetis specified via options (#251)speaksyntax patch (#241):lang()to accept a list of<ident>or<string>per spec (#265)<'property'>, when the syntax has a top-level#-multiplier (#102)parseWithFallback()to rollbacktokenIndexbefore calling a fallbackBlockto not include{and}AtruleandRuleto include{and}for a blockRatioparsing:Ratiocan be omitted. While this can't be a parser output (which would produce aNumbernode), it's feasible duringRationode construction or transformation.Added new node types:
Feature: represents features like(feature)and(feature: value), fundamental for both@mediaand@containerat-rulesFeatureRange: represents features in a range contextFeatureFunction: represents functional features such as@supports'sselector()or@container'sstyle()Condition: used across all query-like at-rules, encapsulating queries with features and thenot,and, andoroperatorsGeneralEnclosure: represents the<general-enclosed>production, which caters to unparsed parentheses or functional expressionsAdded support for functions for features and features in a range context, e.g.
(width: calc(100cm / 6))Added a
conditionvalue for the parser's context option to parse queries. Use thekindoption to specify the condition type, e.g.,parse('...', { context: 'condition', kind: 'media' }).Introduced a
featuressection in the syntax configuration for defining functional features of at-rules. Expand definitions using thefork()method. The current definition is as follows:Changes for
@mediaat-rule:GeneralEnclosed.(width > 100px)or(100px < height < 400px)MediaFeaturenode type to theFeaturenode type withkind: "media".MediaQuerynode structure into the following form:Changes for
@supportsat-rule:GeneralEnclosed.(width > 100px)or(100px < height < 400px)SupportsDeclarationnode type to encapsulate a declaration in a query, replacingParentheses.ConditionorSupportsDeclarationnodes of kindsupportsinstead ofParentheses.selector()feature via theFeatureFunctionnode (configured infeatures.supports.selector).v2.3.1Compare Source
:host,:host()and:host-context()pseudo class support (#216)generator,parseandparse-selectorentry points by adding missedNestedSelectornode typev2.3.0Compare Source
NestingSelectornode type for&(a nesting selector) in selectors@nestat-rule@mediainside aRuleto parse its block content as aDeclarationfirstDeclarationListbehaviour to follow the rules forRule's blockLexer#unitsdictionary to provide unit groups (length,angle, etc.) used for matchingconfig.unitsto override default unitsmdn-datato2.0.30v2.2.1Compare Source
2.2.0for at-rule syntax matching when at-rule has no preludev2.2.0Compare Source
mdn-datato2.0.28revertandrevert-layerexpression()the same way as CSS wide keywordsbackground-clipproperty definition to match Backgrounds and Borders 4 (#190)contentproperty definition to allowattr()(#201)<delim-token>@pageat-rule (#191)rex,cap,rcap,rch,ic,ric,lh,rlh,vi,vb,sv*,lv*,dv*cqw,cqh,cqi,cqb,cqmin,cqmaxvmunit (supposed to be an old IE versions supported this unit instead ofvmax)+#and#?according to spec (#199)[-∞,∞]rangesv2.1.0Compare Source
mdn-datato2.0.27modulefield topackage.jsoncss-tree/utilsexport (#181)css-tree/convertorexportcss-tree/selector-parserexport (~27kb when bundled, #183)css-tree/parser50kb -> 41kbcss-tree/generator46kb -> 23kbsyntaxesintotypesincss-tree/definition-syntax-data-patch:is(),:-moz-any(),:-webkit-any()and:where()(#182, #184)v2.0.4Compare Source
^10generate()in safe mode to add a whitespace between<dimension-token>and<hash-token>, otherwise some values are broken in IE11, e.g.borderproperties (#173):for an attribute name onAttributeSelectorparsing as it does not meet the CSS specs (details)v2.0.3Compare Source
generate()insafemode betweentype-selectorandid-selector(e.g.a#id). A regression was introduces in2.0.2since IE11 fails on values when<hash-token>goes after<ident-token>without a whitespace in the middle, e.g.1px solid#000. Thus, in one case, a space between the<ident-token>and the<hash-token>is required, and in the other, vice versa. Until a better solution found, a workaround is used onid-selectorgeneration by producing a<delim-token>instead of<hash-token>.v2.0.2Compare Source
width,min-widthandmax-widthsyntax definitionsmdn-datasource-mapwithsource-map-jswhich reduce install size by ~700KBcalc()function consumption on definition syntax matchinggenerate()auto emitting a whitespace edge cases when next token starts with a dash (minus)generate()safe mode to cover more cases for IE11dist/data.cjsanddist/version.cjscss-tree/definition-syntax-datacss-tree/definition-syntax-data-patchv2.0.1Compare Source
^12.20.0and^14.13.0versionsv2.0.0Compare Source
^10 || ^12.20.0 || ^14.13.0 || >=15.0.0)import * as parser from "css-tree/parser"orrequire("css-tree/parser")):css-tree/tokenizercss-tree/parsercss-tree/walkercss-tree/generatorcss-tree/lexercss-tree/definition-syntaxcss-tree/utilsdist/csstree.js(an IIFE version withcsstreeas a global name) anddist/csstree.esm.js(as ES module). Both are minifiedmdn-datato2.0.23tokenize()to take a function as second argument, which will be called for every token. No stream instance is creating when second argument is ommited.TokenStream#getRawLength()to take second parameter as a function (rule) that check a char code to stop a scanningTokenStream#forEachToken(fn)methodTokenStream#skipWS()methodTokenStream#getTokenLength()methodSyntaxError(custom parser's error class) from root of public API to parser viaparse.SyntaxErrorparseErrorfield in parser'sSyntaxError{ type: 'Combinator', name: ' ' }node instead ofWhiteSpacenodeWhiteSpacenodes with the single exception for a custom property declaration with a single white space token as a value+and-operators, when a whitespace is before and/or after an operatorparse.configconsumeUntilBalanceEnd(),consumeUntilLeftCurlyBracket(),consumeUntilLeftCurlyBracketOrSemicolon(),consumeUntilExclamationMarkOrSemicolon()andconsumeUntilSemicolonIncluded()methods to parser's inner API to use withRawinstead ofRaw.modeNthto always consumeofclause when presented, so it became more general and moves validation to lexerStringnode type to store decoded string value, i.e. with no quotes and escape sequencesUrlnode type to store decoded url value as a string instead ofStringorRawnode, i.e. with no quotes, escape sequences andurl()wrapperchunk()handler totoken()(output a single token) andtokenize()(split a string into tokens and output each of them)modeoption forgenerate()to specify a mode of token separation:specorsafe(by default)emit(token, type, auto)handler as implementation specific token processorNthto serialize+nasnstringandurltokens on serializationLexer#matchDeclaration()methodident,stringandurlhelpers to decode/encode corresponding values, e.g.url.decode('url("image.jpg")')==='image.jpg'Listto be iterable (iterates data)List#first,List#lastandList#isEmptyto gettersList#getSize()method toList#sizegetterList#each()andList#eachRight()methods,List#forEach()andList#forEachRight()should be used insteadConfiguration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.