iobroker.mywebui 1.37.21 → 1.37.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/io-package.json +1 -1
- package/package.json +1 -1
- package/www/node_modules/@node-projects/css-parser/LICENSE +11 -0
- package/www/node_modules/@node-projects/css-parser/README.md +161 -0
- package/www/node_modules/@node-projects/css-parser/dist/CssParseError.d.ts +8 -0
- package/www/node_modules/@node-projects/css-parser/dist/CssParseError.js +15 -0
- package/www/node_modules/@node-projects/css-parser/dist/CssPosition.d.ts +25 -0
- package/www/node_modules/@node-projects/css-parser/dist/CssPosition.js +13 -0
- package/www/node_modules/@node-projects/css-parser/dist/index-min.js +56 -0
- package/www/node_modules/@node-projects/css-parser/dist/index-min.js.map +7 -0
- package/www/node_modules/@node-projects/css-parser/dist/index.d.ts +12 -0
- package/www/node_modules/@node-projects/css-parser/dist/index.js +8 -0
- package/www/node_modules/@node-projects/css-parser/dist/parse/index.d.ts +8 -0
- package/www/node_modules/@node-projects/css-parser/dist/parse/index.js +1293 -0
- package/www/node_modules/@node-projects/css-parser/dist/parse/lexer.d.ts +118 -0
- package/www/node_modules/@node-projects/css-parser/dist/parse/lexer.js +248 -0
- package/www/node_modules/@node-projects/css-parser/dist/stringify/compiler.d.ts +172 -0
- package/www/node_modules/@node-projects/css-parser/dist/stringify/compiler.js +732 -0
- package/www/node_modules/@node-projects/css-parser/dist/stringify/index.d.ts +5 -0
- package/www/node_modules/@node-projects/css-parser/dist/stringify/index.js +5 -0
- package/www/node_modules/@node-projects/css-parser/dist/type.d.ts +205 -0
- package/www/node_modules/@node-projects/css-parser/dist/type.js +31 -0
- package/www/node_modules/@node-projects/css-parser/dist/utils/stringSearch.d.ts +53 -0
- package/www/node_modules/@node-projects/css-parser/dist/utils/stringSearch.js +166 -0
- package/www/node_modules/@node-projects/css-parser/docs/API.md +362 -0
- package/www/node_modules/@node-projects/css-parser/docs/AST.md +417 -0
- package/www/node_modules/@node-projects/css-parser/docs/CHANGELOG.md +205 -0
- package/www/node_modules/@node-projects/css-parser/docs/EXAMPLES.md +497 -0
- package/www/node_modules/@node-projects/css-parser/package.json +66 -0
|
@@ -0,0 +1,417 @@
|
|
|
1
|
+
# Abstract Syntax Tree (AST)
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
The AST represents CSS as a tree structure where each node has a specific type and properties. All nodes share common properties and have type-specific properties.
|
|
6
|
+
|
|
7
|
+
## Common Properties
|
|
8
|
+
|
|
9
|
+
All AST nodes have these properties:
|
|
10
|
+
|
|
11
|
+
### `type`
|
|
12
|
+
|
|
13
|
+
The node type as a string. See [Node Types](#node-types) for all possible values.
|
|
14
|
+
|
|
15
|
+
### `position` (optional)
|
|
16
|
+
|
|
17
|
+
Position information for the node in the source code:
|
|
18
|
+
|
|
19
|
+
```typescript
|
|
20
|
+
{
|
|
21
|
+
start: { line: number; column: number };
|
|
22
|
+
end: { line: number; column: number };
|
|
23
|
+
source?: string;
|
|
24
|
+
}
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### `parent` (optional)
|
|
28
|
+
|
|
29
|
+
Reference to the parent node in the AST.
|
|
30
|
+
|
|
31
|
+
## Node Types
|
|
32
|
+
|
|
33
|
+
### `stylesheet`
|
|
34
|
+
|
|
35
|
+
The root node representing an entire CSS document.
|
|
36
|
+
|
|
37
|
+
**Properties:**
|
|
38
|
+
- `stylesheet.source` (optional): Source file path
|
|
39
|
+
- `stylesheet.rules`: Array of top-level rules (may include `whitespace` nodes when `preserveFormatting: true`)
|
|
40
|
+
- `stylesheet.parsingErrors` (optional): Array of parse errors when `silent` option is used
|
|
41
|
+
|
|
42
|
+
**Example:**
|
|
43
|
+
```json
|
|
44
|
+
{
|
|
45
|
+
"type": "stylesheet",
|
|
46
|
+
"stylesheet": {
|
|
47
|
+
"rules": [
|
|
48
|
+
// ... other nodes
|
|
49
|
+
]
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### `rule`
|
|
55
|
+
|
|
56
|
+
A CSS rule with selectors and declarations.
|
|
57
|
+
|
|
58
|
+
**Properties:**
|
|
59
|
+
- `selectors`: Array of CSS selectors as strings
|
|
60
|
+
- `declarations`: Array of declarations and comments
|
|
61
|
+
|
|
62
|
+
**Example:**
|
|
63
|
+
```json
|
|
64
|
+
{
|
|
65
|
+
"type": "rule",
|
|
66
|
+
"selectors": ["body", "html"],
|
|
67
|
+
"declarations": [
|
|
68
|
+
{
|
|
69
|
+
"type": "declaration",
|
|
70
|
+
"property": "color",
|
|
71
|
+
"value": "red"
|
|
72
|
+
}
|
|
73
|
+
]
|
|
74
|
+
}
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### `declaration`
|
|
78
|
+
|
|
79
|
+
A CSS property declaration.
|
|
80
|
+
|
|
81
|
+
**Properties:**
|
|
82
|
+
- `property`: The CSS property name
|
|
83
|
+
- `value`: The CSS property value as a string
|
|
84
|
+
|
|
85
|
+
**Example:**
|
|
86
|
+
```json
|
|
87
|
+
{
|
|
88
|
+
"type": "declaration",
|
|
89
|
+
"property": "background-color",
|
|
90
|
+
"value": "#ffffff"
|
|
91
|
+
}
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### `comment`
|
|
95
|
+
|
|
96
|
+
A CSS comment.
|
|
97
|
+
|
|
98
|
+
**Properties:**
|
|
99
|
+
- `comment`: The comment text (without `/*` and `*/`)
|
|
100
|
+
|
|
101
|
+
**Example:**
|
|
102
|
+
```json
|
|
103
|
+
{
|
|
104
|
+
"type": "comment",
|
|
105
|
+
"comment": " This is a comment "
|
|
106
|
+
}
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
### `whitespace`
|
|
110
|
+
|
|
111
|
+
A whitespace node that preserves original formatting between sibling nodes. Only present when `preserveFormatting: true` is used during parsing.
|
|
112
|
+
|
|
113
|
+
**Properties:**
|
|
114
|
+
- `value`: The whitespace text (spaces, newlines, tabs, etc.)
|
|
115
|
+
|
|
116
|
+
**Example:**
|
|
117
|
+
```json
|
|
118
|
+
{
|
|
119
|
+
"type": "whitespace",
|
|
120
|
+
"value": "\n\n"
|
|
121
|
+
}
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
### `media`
|
|
125
|
+
|
|
126
|
+
A `@media` rule.
|
|
127
|
+
|
|
128
|
+
**Properties:**
|
|
129
|
+
- `media`: The media query string
|
|
130
|
+
- `rules`: Array of rules within the media block
|
|
131
|
+
|
|
132
|
+
**Example:**
|
|
133
|
+
```json
|
|
134
|
+
{
|
|
135
|
+
"type": "media",
|
|
136
|
+
"media": "screen and (max-width: 768px)",
|
|
137
|
+
"rules": [
|
|
138
|
+
// ... nested rules
|
|
139
|
+
]
|
|
140
|
+
}
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
### `keyframes`
|
|
144
|
+
|
|
145
|
+
A `@keyframes` rule.
|
|
146
|
+
|
|
147
|
+
**Properties:**
|
|
148
|
+
- `name`: The keyframes name
|
|
149
|
+
- `vendor` (optional): Vendor prefix (e.g., "-webkit-")
|
|
150
|
+
- `keyframes`: Array of keyframe rules and comments
|
|
151
|
+
|
|
152
|
+
**Example:**
|
|
153
|
+
```json
|
|
154
|
+
{
|
|
155
|
+
"type": "keyframes",
|
|
156
|
+
"name": "fade",
|
|
157
|
+
"keyframes": [
|
|
158
|
+
{
|
|
159
|
+
"type": "keyframe",
|
|
160
|
+
"values": ["from"],
|
|
161
|
+
"declarations": [
|
|
162
|
+
{
|
|
163
|
+
"type": "declaration",
|
|
164
|
+
"property": "opacity",
|
|
165
|
+
"value": "0"
|
|
166
|
+
}
|
|
167
|
+
]
|
|
168
|
+
}
|
|
169
|
+
]
|
|
170
|
+
}
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
### `keyframe`
|
|
174
|
+
|
|
175
|
+
A keyframe within a `@keyframes` rule.
|
|
176
|
+
|
|
177
|
+
**Properties:**
|
|
178
|
+
- `values`: Array of keyframe selectors (e.g., `["from"]`, `["to"]`, `["50%"]`)
|
|
179
|
+
- `declarations`: Array of declarations and comments
|
|
180
|
+
|
|
181
|
+
### `import`
|
|
182
|
+
|
|
183
|
+
An `@import` rule.
|
|
184
|
+
|
|
185
|
+
**Properties:**
|
|
186
|
+
- `import`: The import string (URL or media query)
|
|
187
|
+
|
|
188
|
+
**Example:**
|
|
189
|
+
```json
|
|
190
|
+
{
|
|
191
|
+
"type": "import",
|
|
192
|
+
"import": "url('styles.css')"
|
|
193
|
+
}
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
### `charset`
|
|
197
|
+
|
|
198
|
+
A `@charset` rule.
|
|
199
|
+
|
|
200
|
+
**Properties:**
|
|
201
|
+
- `charset`: The character encoding
|
|
202
|
+
|
|
203
|
+
**Example:**
|
|
204
|
+
```json
|
|
205
|
+
{
|
|
206
|
+
"type": "charset",
|
|
207
|
+
"charset": "utf-8"
|
|
208
|
+
}
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
### `namespace`
|
|
212
|
+
|
|
213
|
+
A `@namespace` rule.
|
|
214
|
+
|
|
215
|
+
**Properties:**
|
|
216
|
+
- `namespace`: The namespace declaration
|
|
217
|
+
|
|
218
|
+
**Example:**
|
|
219
|
+
```json
|
|
220
|
+
{
|
|
221
|
+
"type": "namespace",
|
|
222
|
+
"namespace": "url(http://www.w3.org/1999/xhtml)"
|
|
223
|
+
}
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
### `supports`
|
|
227
|
+
|
|
228
|
+
A `@supports` rule.
|
|
229
|
+
|
|
230
|
+
**Properties:**
|
|
231
|
+
- `supports`: The supports condition
|
|
232
|
+
- `rules`: Array of rules within the supports block
|
|
233
|
+
|
|
234
|
+
**Example:**
|
|
235
|
+
```json
|
|
236
|
+
{
|
|
237
|
+
"type": "supports",
|
|
238
|
+
"supports": "(display: grid)",
|
|
239
|
+
"rules": [
|
|
240
|
+
// ... nested rules
|
|
241
|
+
]
|
|
242
|
+
}
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
### `document`
|
|
246
|
+
|
|
247
|
+
A `@document` rule.
|
|
248
|
+
|
|
249
|
+
**Properties:**
|
|
250
|
+
- `document`: The document condition
|
|
251
|
+
- `vendor` (optional): Vendor prefix
|
|
252
|
+
- `rules`: Array of rules within the document block
|
|
253
|
+
|
|
254
|
+
### `page`
|
|
255
|
+
|
|
256
|
+
A `@page` rule.
|
|
257
|
+
|
|
258
|
+
**Properties:**
|
|
259
|
+
- `selectors`: Array of page selectors
|
|
260
|
+
- `declarations`: Array of declarations and comments
|
|
261
|
+
|
|
262
|
+
### `font-face`
|
|
263
|
+
|
|
264
|
+
A `@font-face` rule.
|
|
265
|
+
|
|
266
|
+
**Properties:**
|
|
267
|
+
- `declarations`: Array of font declarations and comments
|
|
268
|
+
|
|
269
|
+
### `host`
|
|
270
|
+
|
|
271
|
+
A `:host` rule.
|
|
272
|
+
|
|
273
|
+
**Properties:**
|
|
274
|
+
- `rules`: Array of rules within the host block
|
|
275
|
+
|
|
276
|
+
### `container`
|
|
277
|
+
|
|
278
|
+
A `@container` rule.
|
|
279
|
+
|
|
280
|
+
**Properties:**
|
|
281
|
+
- `container`: The container query
|
|
282
|
+
- `rules`: Array of rules within the container block
|
|
283
|
+
|
|
284
|
+
### `layer`
|
|
285
|
+
|
|
286
|
+
A `@layer` rule.
|
|
287
|
+
|
|
288
|
+
**Properties:**
|
|
289
|
+
- `layer`: The layer name
|
|
290
|
+
- `rules` (optional): Array of rules within the layer block
|
|
291
|
+
|
|
292
|
+
### `custom-media`
|
|
293
|
+
|
|
294
|
+
A `@custom-media` rule.
|
|
295
|
+
|
|
296
|
+
**Properties:**
|
|
297
|
+
- `name`: The custom media query name
|
|
298
|
+
- `media`: The media query definition
|
|
299
|
+
|
|
300
|
+
### `starting-style`
|
|
301
|
+
|
|
302
|
+
A `@starting-style` rule.
|
|
303
|
+
|
|
304
|
+
**Properties:**
|
|
305
|
+
- `rules`: Array of rules within the starting-style block
|
|
306
|
+
|
|
307
|
+
## Type Hierarchy
|
|
308
|
+
|
|
309
|
+
The AST nodes are organized in the following hierarchy:
|
|
310
|
+
|
|
311
|
+
- `CssStylesheetAST` - Root node
|
|
312
|
+
- `CssAtRuleAST` - Union of all at-rule and rule nodes
|
|
313
|
+
- `CssAllNodesAST` - Union of all possible node types
|
|
314
|
+
|
|
315
|
+
## Working with the AST
|
|
316
|
+
|
|
317
|
+
### Traversing Nodes
|
|
318
|
+
|
|
319
|
+
```typescript
|
|
320
|
+
import { parse, CssStylesheetAST } from '@adobe/css-tools';
|
|
321
|
+
|
|
322
|
+
const ast: CssStylesheetAST = parse('body { color: red; }');
|
|
323
|
+
|
|
324
|
+
// Access top-level rules
|
|
325
|
+
ast.stylesheet.rules.forEach(rule => {
|
|
326
|
+
if (rule.type === 'rule') {
|
|
327
|
+
console.log('Selectors:', rule.selectors);
|
|
328
|
+
rule.declarations.forEach(decl => {
|
|
329
|
+
if (decl.type === 'declaration') {
|
|
330
|
+
console.log(`${decl.property}: ${decl.value}`);
|
|
331
|
+
}
|
|
332
|
+
});
|
|
333
|
+
}
|
|
334
|
+
});
|
|
335
|
+
```
|
|
336
|
+
|
|
337
|
+
### Modifying Nodes
|
|
338
|
+
|
|
339
|
+
```typescript
|
|
340
|
+
// Add a new declaration
|
|
341
|
+
const newDecl = {
|
|
342
|
+
type: 'declaration' as const,
|
|
343
|
+
property: 'font-size',
|
|
344
|
+
value: '16px'
|
|
345
|
+
};
|
|
346
|
+
|
|
347
|
+
// Find a rule and add the declaration
|
|
348
|
+
ast.stylesheet.rules.forEach(rule => {
|
|
349
|
+
if (rule.type === 'rule' && rule.selectors.includes('body')) {
|
|
350
|
+
rule.declarations.push(newDecl);
|
|
351
|
+
}
|
|
352
|
+
});
|
|
353
|
+
```
|
|
354
|
+
|
|
355
|
+
### Error Handling
|
|
356
|
+
|
|
357
|
+
When parsing with the `silent` option, errors are collected in the AST:
|
|
358
|
+
|
|
359
|
+
```typescript
|
|
360
|
+
const ast = parse('invalid css {', { silent: true });
|
|
361
|
+
|
|
362
|
+
if (ast.stylesheet.parsingErrors) {
|
|
363
|
+
ast.stylesheet.parsingErrors.forEach(error => {
|
|
364
|
+
console.error('Parse error:', error.message);
|
|
365
|
+
});
|
|
366
|
+
}
|
|
367
|
+
```
|
|
368
|
+
|
|
369
|
+
## Position Information
|
|
370
|
+
|
|
371
|
+
Position information is available on most nodes and includes:
|
|
372
|
+
|
|
373
|
+
- `start.line` and `start.column`: Beginning of the node
|
|
374
|
+
- `end.line` and `end.column`: End of the node
|
|
375
|
+
- `source`: Source file path (if provided during parsing)
|
|
376
|
+
|
|
377
|
+
This is useful for:
|
|
378
|
+
- Error reporting
|
|
379
|
+
- Source mapping
|
|
380
|
+
- Code analysis tools
|
|
381
|
+
- IDE integration
|
|
382
|
+
|
|
383
|
+
## Formatting Properties (`preserveFormatting: true`)
|
|
384
|
+
|
|
385
|
+
When parsing with `preserveFormatting: true`, the parser stores additional formatting metadata on AST nodes to support exact round-trip via identity mode. These properties are optional and only present when formatting is preserved.
|
|
386
|
+
|
|
387
|
+
### Whitespace Nodes
|
|
388
|
+
|
|
389
|
+
`CssWhitespaceAST` nodes are inserted between sibling nodes in all arrays (rules, declarations, keyframes) to preserve the original whitespace and line breaks.
|
|
390
|
+
|
|
391
|
+
### Raw Properties on Nodes
|
|
392
|
+
|
|
393
|
+
- **`rawPrelude`** (on rules, at-rules with blocks): The exact original text before `{`, preserving whitespace between selector/condition and brace
|
|
394
|
+
- **`rawBetween`** (on declarations): The text between the property name and value, including `:` and any surrounding whitespace (e.g., `": "` or `": "`)
|
|
395
|
+
- **`rawValue`** (on declarations): The untrimmed original value text
|
|
396
|
+
- **`rawSource`** (on statement at-rules: import, charset, namespace, custom-media, layer statement): The exact original text of the entire at-rule
|
|
397
|
+
|
|
398
|
+
### AST Modification with Identity Mode
|
|
399
|
+
|
|
400
|
+
Because formatting data is stored per-node rather than as a single cached string, you can freely insert, remove, or modify AST nodes and identity mode will reflect the changes:
|
|
401
|
+
|
|
402
|
+
```typescript
|
|
403
|
+
const ast = parse(css, { preserveFormatting: true });
|
|
404
|
+
|
|
405
|
+
// Insert a new rule — it will be beautified since it has no raw properties
|
|
406
|
+
ast.stylesheet.rules.push({
|
|
407
|
+
type: CssTypes.rule,
|
|
408
|
+
selectors: ['.new'],
|
|
409
|
+
declarations: [{ type: CssTypes.declaration, property: 'color', value: 'blue' }]
|
|
410
|
+
});
|
|
411
|
+
|
|
412
|
+
// Remove a rule — the surrounding whitespace nodes naturally adapt
|
|
413
|
+
ast.stylesheet.rules.splice(1, 1);
|
|
414
|
+
|
|
415
|
+
// Identity mode outputs original formatting for untouched nodes + beautified for new nodes
|
|
416
|
+
stringify(ast, { identity: true });
|
|
417
|
+
```
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
## [5.0.0] - 2026-03.18
|
|
9
|
+
|
|
10
|
+
### Changed
|
|
11
|
+
- Fork from Adobe's `@adobe/css-tools` library to `@node-projects/css-tools` package
|
|
12
|
+
- Only ESM code in package
|
|
13
|
+
|
|
14
|
+
### Added
|
|
15
|
+
- Add `preserveFormatting` parser option to insert whitespace AST nodes and store raw formatting properties for identity round-trip
|
|
16
|
+
- Add `CssTypes.whitespace` node type (`CssWhitespaceAST`) to represent whitespace between sibling nodes
|
|
17
|
+
- Add `identity` compiler option to reproduce original CSS exactly as parsed (round-trip fidelity), with support for AST modifications
|
|
18
|
+
- Add `removeEmptyRules` compiler option to strip rules with empty declaration blocks
|
|
19
|
+
- Add raw formatting properties: `rawPrelude`, `rawBetween`, `rawValue`, `rawSource` on relevant AST nodes
|
|
20
|
+
- Export `CompilerOptions`, `ParseOptions`, and `CssWhitespaceAST` types from the public API
|
|
21
|
+
|
|
22
|
+
## [4.4.4] - 2025-07-22
|
|
23
|
+
|
|
24
|
+
### Changed
|
|
25
|
+
- Switch from yarn to npm for package management
|
|
26
|
+
- Switch from eslint to biome for code formatting and linting
|
|
27
|
+
- Reformat codebase to comply with biome recommendations
|
|
28
|
+
- Switch from webpack to rollup for bundling
|
|
29
|
+
|
|
30
|
+
### Fixed
|
|
31
|
+
- Fix module exports to ensure proper compatibility with bundlers
|
|
32
|
+
- Add validation check to prevent future export issues
|
|
33
|
+
|
|
34
|
+
## [4.4.3] - 2025-05-15
|
|
35
|
+
|
|
36
|
+
### Security
|
|
37
|
+
- Fix polynomial regular expression vulnerability on uncontrolled data
|
|
38
|
+
- Refactor code to enable GitHub security static analysis
|
|
39
|
+
|
|
40
|
+
### Performance
|
|
41
|
+
- Improve parsing performance with minor optimizations
|
|
42
|
+
- Replace regex patterns with string search (indexOf-based) for better performance
|
|
43
|
+
|
|
44
|
+
### Added
|
|
45
|
+
- Add new utility functions with comprehensive unit tests
|
|
46
|
+
- Add improved formatting for CSS Grid template areas (#283 by @jogibear9988)
|
|
47
|
+
|
|
48
|
+
### Fixed
|
|
49
|
+
- Fix TypeScript error with ConstructorParameters in Parcel bundler (#444)
|
|
50
|
+
|
|
51
|
+
## [4.4.2] - 2025-02-12
|
|
52
|
+
|
|
53
|
+
### Fixed
|
|
54
|
+
- Fix regular expression for parsing quoted values in parentheses
|
|
55
|
+
|
|
56
|
+
## [4.4.0] - 2024-06-05
|
|
57
|
+
|
|
58
|
+
### Added
|
|
59
|
+
- Add support for CSS `@starting-style` at-rule (#319)
|
|
60
|
+
|
|
61
|
+
## [4.3.3] - 2024-01-24
|
|
62
|
+
|
|
63
|
+
### Changed
|
|
64
|
+
- Update package export configuration (#271)
|
|
65
|
+
|
|
66
|
+
## [4.3.2] - 2023-11-28
|
|
67
|
+
|
|
68
|
+
### Security
|
|
69
|
+
- Fix ReDoS vulnerability with crafted CSS strings - CVE-2023-48631
|
|
70
|
+
|
|
71
|
+
### Fixed
|
|
72
|
+
- Fix parsing issues with `:is()` and nested `:nth-child()` selectors (#211)
|
|
73
|
+
|
|
74
|
+
## [4.3.1] - 2023-03-14
|
|
75
|
+
|
|
76
|
+
### Security
|
|
77
|
+
- Fix ReDoS vulnerability with crafted CSS strings - CVE-2023-26364
|
|
78
|
+
|
|
79
|
+
## [4.3.0] - 2023-03-07
|
|
80
|
+
|
|
81
|
+
### Changed
|
|
82
|
+
- Update build toolchain and dependencies
|
|
83
|
+
- Update package exports configuration and file structure
|
|
84
|
+
|
|
85
|
+
## [4.2.0] - 2023-02-21
|
|
86
|
+
|
|
87
|
+
### Added
|
|
88
|
+
- Add support for CSS `@container` at-rule
|
|
89
|
+
- Add support for CSS `@layer` at-rule
|
|
90
|
+
|
|
91
|
+
## [4.1.0] - 2023-01-25
|
|
92
|
+
|
|
93
|
+
### Added
|
|
94
|
+
- Add support for ES Modules (ESM)
|
|
95
|
+
|
|
96
|
+
## [4.0.2] - 2023-01-12
|
|
97
|
+
|
|
98
|
+
### Fixed
|
|
99
|
+
- Fix `@import` parsing when URL contains semicolons (#71)
|
|
100
|
+
- Fix regression in selector parsing for attribute selectors (#77)
|
|
101
|
+
|
|
102
|
+
## [4.0.1] - 2022-08-03
|
|
103
|
+
|
|
104
|
+
### Fixed
|
|
105
|
+
- Fix `globalThis` configuration for webpack to enable UMD module usage in Node.js environments
|
|
106
|
+
|
|
107
|
+
## [4.0.0] - 2022-06-09
|
|
108
|
+
|
|
109
|
+
### Changed
|
|
110
|
+
- Fork from original css library to Adobe's `@adobe/css-tools` package
|
|
111
|
+
- Convert codebase from JavaScript to TypeScript
|
|
112
|
+
- Improve parsing performance by approximately 25%
|
|
113
|
+
- Update all dependencies to latest versions
|
|
114
|
+
- Remove source map support
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## Legacy Versions (Pre-Adobe Fork)
|
|
119
|
+
|
|
120
|
+
## [3.0.0] - 2020-07-01
|
|
121
|
+
|
|
122
|
+
### Changed
|
|
123
|
+
- Bump major version due to major dependency updates and Node.js version requirement changes
|
|
124
|
+
|
|
125
|
+
## [2.2.1] - 2015-06-17
|
|
126
|
+
|
|
127
|
+
### Fixed
|
|
128
|
+
- Fix parsing of escaped quotes in quoted strings
|
|
129
|
+
|
|
130
|
+
## [2.2.0] - 2015-02-18
|
|
131
|
+
|
|
132
|
+
### Added
|
|
133
|
+
- Add `parsingErrors` property to list errors when parsing with `silent: true`
|
|
134
|
+
- Accept EOL characters and all whitespace characters in at-rules such as `@media`
|
|
135
|
+
|
|
136
|
+
## [2.1.0] - 2014-08-05
|
|
137
|
+
|
|
138
|
+
### Added
|
|
139
|
+
- Add `inputSourcemaps` option to disable input source map processing
|
|
140
|
+
- Add `sourcemap: 'generator'` option to return the `SourceMapGenerator` object
|
|
141
|
+
- Use `inherits` package for inheritance (fixes browser compatibility issues)
|
|
142
|
+
|
|
143
|
+
### Changed
|
|
144
|
+
- Change error message format and add `.reason` property to error objects
|
|
145
|
+
|
|
146
|
+
## [2.0.0] - 2014-06-18
|
|
147
|
+
|
|
148
|
+
### Added
|
|
149
|
+
- Add non-enumerable parent reference to each AST node
|
|
150
|
+
- Add support for `@custom-media`, `@host`, and `@font-face` at-rules
|
|
151
|
+
- Allow commas inside selector functions
|
|
152
|
+
- Allow empty property values
|
|
153
|
+
- Add `node.position.content` property
|
|
154
|
+
- Integrate css-parse and css-stringify libraries
|
|
155
|
+
- Apply original source maps from source files
|
|
156
|
+
|
|
157
|
+
### Changed
|
|
158
|
+
- Change default `options.position` value to `true`
|
|
159
|
+
- Remove comments from properties and values
|
|
160
|
+
|
|
161
|
+
### Removed
|
|
162
|
+
- Drop Component(1) support
|
|
163
|
+
|
|
164
|
+
### Fixed
|
|
165
|
+
- Fix assertion errors when selectors are missing
|
|
166
|
+
|
|
167
|
+
## [1.6.1] - 2014-01-02
|
|
168
|
+
|
|
169
|
+
### Fixed
|
|
170
|
+
- Fix component.json configuration
|
|
171
|
+
|
|
172
|
+
## [1.6.0] - 2013-12-21
|
|
173
|
+
|
|
174
|
+
### Changed
|
|
175
|
+
- Update dependencies
|
|
176
|
+
|
|
177
|
+
## [1.5.0] - 2013-12-03
|
|
178
|
+
|
|
179
|
+
### Changed
|
|
180
|
+
- Update dependencies
|
|
181
|
+
|
|
182
|
+
## [1.1.0] - 2013-04-04
|
|
183
|
+
|
|
184
|
+
### Changed
|
|
185
|
+
- Update dependencies
|
|
186
|
+
|
|
187
|
+
## [1.0.7] - 2012-11-21
|
|
188
|
+
|
|
189
|
+
### Fixed
|
|
190
|
+
- Fix component.json configuration
|
|
191
|
+
|
|
192
|
+
## [1.0.4] - 2012-11-15
|
|
193
|
+
|
|
194
|
+
### Changed
|
|
195
|
+
- Update css-stringify dependency
|
|
196
|
+
|
|
197
|
+
## [1.0.3] - 2012-09-01
|
|
198
|
+
|
|
199
|
+
### Added
|
|
200
|
+
- Add Component support
|
|
201
|
+
|
|
202
|
+
## [0.0.1] - 2010-01-03
|
|
203
|
+
|
|
204
|
+
### Added
|
|
205
|
+
- Initial release
|