File size: 5,804 Bytes
a23aa7d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
# 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