Socket
Socket
Sign inDemoInstall

css-tree

Package Overview
Dependencies
Maintainers
2
Versions
56
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

css-tree - npm Package Versions

23
6

3.0.0

Diff

Changelog

Source

3.0.0 (September 11, 2024)

  • Added support for the @container at-rule
  • Added support for the @starting-style at-rule
  • Added support for the @scope at-rule
  • Added support for the @position-try at-rule
  • Added support for the @layer at-rule
  • Added support for layer, layer() and supports() in the @media at-rule (according to the @import rule in Cascading and Inheritance 5)
  • Added Layer and LayerList node types
  • Added TokenStream#lookupTypeNonSC() method
  • Added <dashed-ident> to generic types
  • Bumped mdn/data to 2.10.0
  • Aligned <'font'> to CSS Fonts 4
  • Aligned <color> to CSS Color 5
  • Fixed initialization when Object.prototype is extended or polluted (#262)
  • Fixed fork() method to consider the generic option when creating a Lexer instance (#266)
  • Fixed crash on parse error when custom line or offset is specified via options (#251)
  • Fixed speak syntax patch (#241)
  • Fixed :lang() to accept a list of <ident> or <string> per spec (#265)
  • Fixed lexer matching for syntaxes referred to as <'property'>, when the syntax has a top-level #-multiplier (#102)
  • Relaxed parsing of syntax definition to allow whitespaces in range multiplier (#270)
  • Changed parseWithFallback() to rollback tokenIndex before calling a fallback
  • Changed Block to not include { and }
  • Changed Atrule and Rule to include { and } for a block
  • Changed Ratio parsing:
    • Left and right parts contain nodes instead of strings
    • Both left and right parts of a ratio can now be any number; validation of number range is no longer within the parser's scope.
    • Both parts can now be functions. Although not explicitly mentioned in the specification, mathematical functions can replace numbers, addressing potential use cases (#162).
    • As per the CSS Values and Units Level 4 specification, the right part of Ratio can be omitted. While this can't be a parser output (which would produce a Number node), it's feasible during Ratio node construction or transformation.
  • Changes to query-related at-rules:
    • Added new node types:

      Note: All new nodes include a kind property to define the at-rule type. Supported kinds are media, supports, and container.

    • Added support for functions for features and features in a range context, e.g. (width: calc(100cm / 6))

    • Added a condition value for the parser's context option to parse queries. Use the kind option to specify the condition type, e.g., parse('...', { context: 'condition', kind: 'media' }).

    • Introduced a features section in the syntax configuration for defining functional features of at-rules. Expand definitions using the fork() method. The current definition is as follows:

      features: {
          supports: { selector() { /* ... */ } },
          container: { style() { /* ... */ } }
      }
      
    • Changes for @media at-rule:

      • Enhanced prelude parsing for complex queries. Parentheses with errors will be parsed as GeneralEnclosed.
      • Added support for features in a range context, e.g. (width > 100px) or (100px < height < 400px)
      • Transitioned from MediaFeature node type to the Feature node type with kind: "media".
      • Changed MediaQuery node structure into the following form:
        type MediaQuery = {
            type: "MediaQuery";
            modifier: string | null; // e.g. "not", "only", etc.
            mediaType: string | null; // e.g. "all", "screen", etc.
            condition: Condition | null;
        }
        
    • Changes for @supports at-rule:

      • Enhanced prelude parsing for complex queries. Parentheses with errors will be parsed as GeneralEnclosed.
      • Added support for features in a range context, e.g. (width > 100px) or (100px < height < 400px)
      • Added SupportsDeclaration node type to encapsulate a declaration in a query, replacing Parentheses.
      • Parsing now employs Condition or SupportsDeclaration nodes of kind supports instead of Parentheses.
      • Added support for the selector() feature via the FeatureFunction node (configured in features.supports.selector).
lahmatiy
published 2.3.1 •

Changelog

Source

2.3.1 (December 14, 2022)

  • Added :host, :host() and :host-context() pseudo class support (#216)
  • Fixed generator, parse and parse-selector entry points by adding missed NestedSelector node type
  • Removed npm > 7 version requirement (#218)
lahmatiy
published 2.3.0 •

Changelog

Source

2.3.0 (November 30, 2022)

  • Added CSS Nesting support:
    • Added NestingSelector node type for & (a nesting selector) in selectors
    • Added @nest at-rule
    • Changed behaviour for @media inside a Rule to parse its block content as a Declaration first
    • Changed DeclarationList behaviour to follow the rules for Rule's block
  • Added the dimension units introspection & customisation:
    • Added Lexer#units dictionary to provide unit groups (length, angle, etc.) used for matching
    • Changed Lexer's constructor to take into consideration config.units to override default units
    • Extended lexer's dump to contain a units dictionary
  • Bumped mdn-data to 2.0.30
lahmatiy
published 2.2.1 •

Changelog

Source

2.2.1 (August 14, 2022)

  • Fixed a regression added in 2.2.0 for at-rule syntax matching when at-rule has no prelude
lahmatiy
published 2.2.0 •

Changelog

Source

2.2.0 (August 10, 2022)

  • Bumped mdn-data to 2.0.28
  • Added support for CSS wide keywords revert and revert-layer
  • Dropped support for expression() the same way as CSS wide keywords
  • Patched background-clip property definition to match Backgrounds and Borders 4 (#190)
  • Patched content property definition to allow attr() (#201)
  • Fixed definition syntax matching when a comma is expected before a <delim-token>
  • Fixed at-rule validation fail when no prelude is specified and its syntax allows an empty prelude, that's the case for @page at-rule (#191)
  • Added new units according to current state of CSS Values and Units 4: rex, cap, rcap, rch, ic, ric, lh, rlh, vi, vb, sv*, lv*, dv*
  • Added container relative length units from CSS Containment 3: cqw, cqh, cqi, cqb, cqmin, cqmax
  • Removed vm unit (supposed to be an old IE versions supported this unit instead of vmax)
  • Value definition syntax:
    • Added support for stacked multipliers +# and #? according to spec (#199)
    • Added parsing of a dimension in range definition notations, however, a validation for such ranges is not supported yet (#192)
    • Changed parsing of range definition notation to not omitting [-∞,∞] ranges
lahmatiy
published 2.1.0 •

Changelog

Source

2.1.0 (February 17, 2022)

  • Bumped mdn-data to 2.0.27
  • Added module field to package.json
  • Fixed minor issues in CommonJS version
  • Fixed css-tree/utils export (#181)
  • Added css-tree/convertor export
  • Added css-tree/selector-parser export (~27kb when bundled, #183)
  • Reduced bundle size:
    • css-tree/parser 50kb -> 41kb
    • css-tree/generator 46kb -> 23kb
  • Renamed syntaxes into types in css-tree/definition-syntax-data-patch
  • Added parsing support for :is(), :-moz-any(), :-webkit-any() and :where() (#182, #184)
lahmatiy
published 2.0.4 •

Changelog

Source

2.0.4 (December 17, 2021)

  • Extended Node.js support to include ^10
  • Fixed generate() in safe mode to add a whitespace between <dimension-token> and <hash-token>, otherwise some values are broken in IE11, e.g. border properties (#173)
  • Removed allowance for : for an attribute name on AttributeSelector parsing as it does not meet the CSS specs (details)
lahmatiy
published 2.0.3 •

Changelog

Source

2.0.3 (December 14, 2021)

  • Fixed unintended whitespace on generate() in safe mode between type-selector and id-selector (e.g. a#id). A regression was introduces in 2.0.2 since 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 on id-selector generation by producing a <delim-token> instead of <hash-token>.
lahmatiy
published 2.0.2 •

Changelog

Source

2.0.2 (December 10, 2021)

  • Updated width, min-width and max-width syntax definitions
  • Patched counter related syntaxes to match specs until updated in mdn-data
  • Replaced source-map with source-map-js which reduce install size by ~700KB
  • Fixed calc() function consumption on definition syntax matching
  • Fixed generate() auto emitting a whitespace edge cases when next token starts with a dash (minus)
  • Fixed generate() safe mode to cover more cases for IE11
  • Fixed CommonJS bundling by adding browser files dist/data.cjs and dist/version.cjs
  • Added exports:
    • css-tree/definition-syntax-data
    • css-tree/definition-syntax-data-patch
lahmatiy
published 2.0.1 •

Changelog

Source

2.0.1 (December 4, 2021)

  • Extended Node.js support to include ^12.20.0 and ^14.13.0 versions
23
6
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc