# Changelog All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [4.5.0] - 2026-05-20 ### Added - Add support for CSS Nesting — rules nested inside other rules (#621 by @jogibear9988) - Add support for `@container` container queries with nested rule body - Add support for Page Margin Boxes (`@top-left`, `@bottom-right`, `@left-middle`, etc.) inside `@page` - Add generic at-rule fallback — unknown `@foo { ... }` and `@foo ...;` rules are preserved as `CssGenericAtRuleAST` instead of being dropped - Add support for `@counter-style`, `@font-feature-values`, `@scope`, `@view-transition`, `@position-try` - Export new TypeScript types: `CssGenericAtRuleAST`, `CssPageMarginBoxAST`, `CssPositionTryAST`, `CssScopeAST`, `CssViewTransitionAST`, `CssCounterStyleAST`, `CssFontFeatureValuesAST` ### Fixed - Fix selector parsing for complex nested selectors including `:is()`, `:has()`, `:not()` - Fix `@page` to correctly accept margin-box at-rule children - Fix bracket- and quote-aware position tracking for pseudo-functions ### Changed - Upgrade to TypeScript 6.0.2 - Upgrade to `@rollup/plugin-terser` 1.0.0 - Drop Node 18 from CI (EOL April 2025) — minimum supported runtime is now Node 20 ### Security - Update lodash to 4.18.1 - Update minimatch to 3.1.5 - Update picomatch to 4.0.4 ## [4.4.4] - 2025-07-22 ### Changed - Switch from yarn to npm for package management - Switch from eslint to biome for code formatting and linting - Reformat codebase to comply with biome recommendations - Switch from webpack to rollup for bundling ### Fixed - Fix module exports to ensure proper compatibility with bundlers - Add validation check to prevent future export issues ## [4.4.3] - 2025-05-15 ### Security - Fix polynomial regular expression vulnerability on uncontrolled data - Refactor code to enable GitHub security static analysis ### Performance - Improve parsing performance with minor optimizations - Replace regex patterns with string search (indexOf-based) for better performance ### Added - Add new utility functions with comprehensive unit tests - Add improved formatting for CSS Grid template areas (#283 by @jogibear9988) ### Fixed - Fix TypeScript error with ConstructorParameters in Parcel bundler (#444) ## [4.4.2] - 2025-02-12 ### Fixed - Fix regular expression for parsing quoted values in parentheses ## [4.4.0] - 2024-06-05 ### Added - Add support for CSS `@starting-style` at-rule (#319) ## [4.3.3] - 2024-01-24 ### Changed - Update package export configuration (#271) ## [4.3.2] - 2023-11-28 ### Security - Fix ReDoS vulnerability with crafted CSS strings - CVE-2023-48631 ### Fixed - Fix parsing issues with `:is()` and nested `:nth-child()` selectors (#211) ## [4.3.1] - 2023-03-14 ### Security - Fix ReDoS vulnerability with crafted CSS strings - CVE-2023-26364 ## [4.3.0] - 2023-03-07 ### Changed - Update build toolchain and dependencies - Update package exports configuration and file structure ## [4.2.0] - 2023-02-21 ### Added - Add support for CSS `@container` at-rule - Add support for CSS `@layer` at-rule ## [4.1.0] - 2023-01-25 ### Added - Add support for ES Modules (ESM) ## [4.0.2] - 2023-01-12 ### Fixed - Fix `@import` parsing when URL contains semicolons (#71) - Fix regression in selector parsing for attribute selectors (#77) ## [4.0.1] - 2022-08-03 ### Fixed - Fix `globalThis` configuration for webpack to enable UMD module usage in Node.js environments ## [4.0.0] - 2022-06-09 ### Changed - Fork from original css library to Adobe's `@adobe/css-tools` package - Convert codebase from JavaScript to TypeScript - Improve parsing performance by approximately 25% - Update all dependencies to latest versions - Remove source map support --- ## Legacy Versions (Pre-Adobe Fork) ## [3.0.0] - 2020-07-01 ### Changed - Bump major version due to major dependency updates and Node.js version requirement changes ## [2.2.1] - 2015-06-17 ### Fixed - Fix parsing of escaped quotes in quoted strings ## [2.2.0] - 2015-02-18 ### Added - Add `parsingErrors` property to list errors when parsing with `silent: true` - Accept EOL characters and all whitespace characters in at-rules such as `@media` ## [2.1.0] - 2014-08-05 ### Added - Add `inputSourcemaps` option to disable input source map processing - Add `sourcemap: 'generator'` option to return the `SourceMapGenerator` object - Use `inherits` package for inheritance (fixes browser compatibility issues) ### Changed - Change error message format and add `.reason` property to error objects ## [2.0.0] - 2014-06-18 ### Added - Add non-enumerable parent reference to each AST node - Add support for `@custom-media`, `@host`, and `@font-face` at-rules - Allow commas inside selector functions - Allow empty property values - Add `node.position.content` property - Integrate css-parse and css-stringify libraries - Apply original source maps from source files ### Changed - Change default `options.position` value to `true` - Remove comments from properties and values ### Removed - Drop Component(1) support ### Fixed - Fix assertion errors when selectors are missing ## [1.6.1] - 2014-01-02 ### Fixed - Fix component.json configuration ## [1.6.0] - 2013-12-21 ### Changed - Update dependencies ## [1.5.0] - 2013-12-03 ### Changed - Update dependencies ## [1.1.0] - 2013-04-04 ### Changed - Update dependencies ## [1.0.7] - 2012-11-21 ### Fixed - Fix component.json configuration ## [1.0.4] - 2012-11-15 ### Changed - Update css-stringify dependency ## [1.0.3] - 2012-09-01 ### Added - Add Component support ## [0.0.1] - 2010-01-03 ### Added - Initial release