@projectwallace/css-parser 0.13.3 → 0.13.5
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/dist/arena.d.ts +2 -0
- package/dist/arena.js +3 -1
- package/dist/constants.d.ts +3 -2
- package/dist/constants.js +3 -2
- package/dist/css-node.d.ts +3 -2
- package/dist/css-node.js +3 -2
- package/dist/index.d.ts +1 -1
- package/dist/index.js +2 -2
- package/dist/parse-atrule-prelude.js +100 -18
- package/dist/parse-declaration.js +4 -1
- package/dist/parse.js +8 -5
- package/package.json +1 -1
package/dist/arena.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ export declare const DECLARATION = 4;
|
|
|
5
5
|
export declare const SELECTOR = 5;
|
|
6
6
|
export declare const COMMENT = 6;
|
|
7
7
|
export declare const BLOCK = 7;
|
|
8
|
+
export declare const RAW = 8;
|
|
8
9
|
export declare const IDENTIFIER = 10;
|
|
9
10
|
export declare const NUMBER = 11;
|
|
10
11
|
export declare const DIMENSION = 12;
|
|
@@ -37,6 +38,7 @@ export declare const LAYER_NAME = 37;
|
|
|
37
38
|
export declare const PRELUDE_OPERATOR = 38;
|
|
38
39
|
export declare const FEATURE_RANGE = 39;
|
|
39
40
|
export declare const AT_RULE_PRELUDE = 40;
|
|
41
|
+
export declare const PRELUDE_SELECTORLIST = 41;
|
|
40
42
|
export declare const VALUE = 50;
|
|
41
43
|
export declare const FLAG_IMPORTANT: number;
|
|
42
44
|
export declare const FLAG_HAS_ERROR: number;
|
package/dist/arena.js
CHANGED
|
@@ -6,6 +6,7 @@ const DECLARATION = 4;
|
|
|
6
6
|
const SELECTOR = 5;
|
|
7
7
|
const COMMENT = 6;
|
|
8
8
|
const BLOCK = 7;
|
|
9
|
+
const RAW = 8;
|
|
9
10
|
const IDENTIFIER = 10;
|
|
10
11
|
const NUMBER = 11;
|
|
11
12
|
const DIMENSION = 12;
|
|
@@ -38,6 +39,7 @@ const LAYER_NAME = 37;
|
|
|
38
39
|
const PRELUDE_OPERATOR = 38;
|
|
39
40
|
const FEATURE_RANGE = 39;
|
|
40
41
|
const AT_RULE_PRELUDE = 40;
|
|
42
|
+
const PRELUDE_SELECTORLIST = 41;
|
|
41
43
|
const VALUE = 50;
|
|
42
44
|
const FLAG_IMPORTANT = 1 << 0;
|
|
43
45
|
const FLAG_HAS_ERROR = 1 << 1;
|
|
@@ -286,4 +288,4 @@ class CSSDataArena {
|
|
|
286
288
|
}
|
|
287
289
|
}
|
|
288
290
|
|
|
289
|
-
export { ATTRIBUTE_SELECTOR, ATTR_FLAG_CASE_INSENSITIVE, ATTR_FLAG_CASE_SENSITIVE, ATTR_FLAG_NONE, ATTR_OPERATOR_CARET_EQUAL, ATTR_OPERATOR_DOLLAR_EQUAL, ATTR_OPERATOR_EQUAL, ATTR_OPERATOR_NONE, ATTR_OPERATOR_PIPE_EQUAL, ATTR_OPERATOR_STAR_EQUAL, ATTR_OPERATOR_TILDE_EQUAL, AT_RULE, AT_RULE_PRELUDE, BLOCK, CLASS_SELECTOR, COMBINATOR, COMMENT, CONTAINER_QUERY, CSSDataArena, DECLARATION, DIMENSION, FEATURE_RANGE, FLAG_BROWSERHACK, FLAG_HAS_BLOCK, FLAG_HAS_DECLARATIONS, FLAG_HAS_ERROR, FLAG_HAS_PARENS, FLAG_IMPORTANT, FLAG_LENGTH_OVERFLOW, FUNCTION, HASH, IDENTIFIER, ID_SELECTOR, LANG_SELECTOR, LAYER_NAME, MEDIA_FEATURE, MEDIA_QUERY, MEDIA_TYPE, NESTING_SELECTOR, NTH_OF_SELECTOR, NTH_SELECTOR, NUMBER, OPERATOR, PARENTHESIS, PRELUDE_OPERATOR, PSEUDO_CLASS_SELECTOR, PSEUDO_ELEMENT_SELECTOR, SELECTOR, SELECTOR_LIST, STRING, STYLESHEET, STYLE_RULE, SUPPORTS_QUERY, TYPE_SELECTOR, UNICODE_RANGE, UNIVERSAL_SELECTOR, URL, VALUE };
|
|
291
|
+
export { ATTRIBUTE_SELECTOR, ATTR_FLAG_CASE_INSENSITIVE, ATTR_FLAG_CASE_SENSITIVE, ATTR_FLAG_NONE, ATTR_OPERATOR_CARET_EQUAL, ATTR_OPERATOR_DOLLAR_EQUAL, ATTR_OPERATOR_EQUAL, ATTR_OPERATOR_NONE, ATTR_OPERATOR_PIPE_EQUAL, ATTR_OPERATOR_STAR_EQUAL, ATTR_OPERATOR_TILDE_EQUAL, AT_RULE, AT_RULE_PRELUDE, BLOCK, CLASS_SELECTOR, COMBINATOR, COMMENT, CONTAINER_QUERY, CSSDataArena, DECLARATION, DIMENSION, FEATURE_RANGE, FLAG_BROWSERHACK, FLAG_HAS_BLOCK, FLAG_HAS_DECLARATIONS, FLAG_HAS_ERROR, FLAG_HAS_PARENS, FLAG_IMPORTANT, FLAG_LENGTH_OVERFLOW, FUNCTION, HASH, IDENTIFIER, ID_SELECTOR, LANG_SELECTOR, LAYER_NAME, MEDIA_FEATURE, MEDIA_QUERY, MEDIA_TYPE, NESTING_SELECTOR, NTH_OF_SELECTOR, NTH_SELECTOR, NUMBER, OPERATOR, PARENTHESIS, PRELUDE_OPERATOR, PRELUDE_SELECTORLIST, PSEUDO_CLASS_SELECTOR, PSEUDO_ELEMENT_SELECTOR, RAW, SELECTOR, SELECTOR_LIST, STRING, STYLESHEET, STYLE_RULE, SUPPORTS_QUERY, TYPE_SELECTOR, UNICODE_RANGE, UNIVERSAL_SELECTOR, URL, VALUE };
|
package/dist/constants.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { STYLESHEET, STYLE_RULE, AT_RULE, DECLARATION, SELECTOR, COMMENT, BLOCK, IDENTIFIER, NUMBER, DIMENSION, STRING, HASH, FUNCTION, OPERATOR, PARENTHESIS, URL, VALUE, SELECTOR_LIST, TYPE_SELECTOR, CLASS_SELECTOR, ID_SELECTOR, ATTRIBUTE_SELECTOR, PSEUDO_CLASS_SELECTOR, PSEUDO_ELEMENT_SELECTOR, COMBINATOR, UNIVERSAL_SELECTOR, NESTING_SELECTOR, NTH_SELECTOR, NTH_OF_SELECTOR, LANG_SELECTOR, MEDIA_QUERY, MEDIA_FEATURE, MEDIA_TYPE, CONTAINER_QUERY, SUPPORTS_QUERY, LAYER_NAME, PRELUDE_OPERATOR, FEATURE_RANGE, AT_RULE_PRELUDE, FLAG_IMPORTANT, ATTR_OPERATOR_NONE, ATTR_OPERATOR_EQUAL, ATTR_OPERATOR_TILDE_EQUAL, ATTR_OPERATOR_PIPE_EQUAL, ATTR_OPERATOR_CARET_EQUAL, ATTR_OPERATOR_DOLLAR_EQUAL, ATTR_OPERATOR_STAR_EQUAL, ATTR_FLAG_NONE, ATTR_FLAG_CASE_INSENSITIVE, ATTR_FLAG_CASE_SENSITIVE } from './arena';
|
|
2
|
-
export { STYLESHEET, STYLE_RULE, AT_RULE, DECLARATION, SELECTOR, COMMENT, BLOCK, IDENTIFIER, NUMBER, DIMENSION, STRING, HASH, FUNCTION, OPERATOR, PARENTHESIS, URL, VALUE, SELECTOR_LIST, TYPE_SELECTOR, CLASS_SELECTOR, ID_SELECTOR, ATTRIBUTE_SELECTOR, PSEUDO_CLASS_SELECTOR, PSEUDO_ELEMENT_SELECTOR, COMBINATOR, UNIVERSAL_SELECTOR, NESTING_SELECTOR, NTH_SELECTOR, NTH_OF_SELECTOR, LANG_SELECTOR, MEDIA_QUERY, MEDIA_FEATURE, MEDIA_TYPE, CONTAINER_QUERY, SUPPORTS_QUERY, LAYER_NAME, PRELUDE_OPERATOR, FEATURE_RANGE, AT_RULE_PRELUDE, FLAG_IMPORTANT, ATTR_OPERATOR_NONE, ATTR_OPERATOR_EQUAL, ATTR_OPERATOR_TILDE_EQUAL, ATTR_OPERATOR_PIPE_EQUAL, ATTR_OPERATOR_CARET_EQUAL, ATTR_OPERATOR_DOLLAR_EQUAL, ATTR_OPERATOR_STAR_EQUAL, ATTR_FLAG_NONE, ATTR_FLAG_CASE_INSENSITIVE, ATTR_FLAG_CASE_SENSITIVE, };
|
|
1
|
+
import { STYLESHEET, STYLE_RULE, AT_RULE, DECLARATION, SELECTOR, COMMENT, BLOCK, RAW, IDENTIFIER, NUMBER, DIMENSION, STRING, HASH, FUNCTION, OPERATOR, PARENTHESIS, URL, VALUE, SELECTOR_LIST, TYPE_SELECTOR, CLASS_SELECTOR, ID_SELECTOR, ATTRIBUTE_SELECTOR, PSEUDO_CLASS_SELECTOR, PSEUDO_ELEMENT_SELECTOR, COMBINATOR, UNIVERSAL_SELECTOR, NESTING_SELECTOR, NTH_SELECTOR, NTH_OF_SELECTOR, LANG_SELECTOR, MEDIA_QUERY, MEDIA_FEATURE, MEDIA_TYPE, CONTAINER_QUERY, SUPPORTS_QUERY, LAYER_NAME, PRELUDE_OPERATOR, FEATURE_RANGE, AT_RULE_PRELUDE, FLAG_IMPORTANT, ATTR_OPERATOR_NONE, ATTR_OPERATOR_EQUAL, ATTR_OPERATOR_TILDE_EQUAL, ATTR_OPERATOR_PIPE_EQUAL, ATTR_OPERATOR_CARET_EQUAL, ATTR_OPERATOR_DOLLAR_EQUAL, ATTR_OPERATOR_STAR_EQUAL, ATTR_FLAG_NONE, ATTR_FLAG_CASE_INSENSITIVE, ATTR_FLAG_CASE_SENSITIVE } from './arena';
|
|
2
|
+
export { STYLESHEET, STYLE_RULE, AT_RULE, DECLARATION, SELECTOR, COMMENT, BLOCK, RAW, IDENTIFIER, NUMBER, DIMENSION, STRING, HASH, FUNCTION, OPERATOR, PARENTHESIS, URL, VALUE, SELECTOR_LIST, TYPE_SELECTOR, CLASS_SELECTOR, ID_SELECTOR, ATTRIBUTE_SELECTOR, PSEUDO_CLASS_SELECTOR, PSEUDO_ELEMENT_SELECTOR, COMBINATOR, UNIVERSAL_SELECTOR, NESTING_SELECTOR, NTH_SELECTOR, NTH_OF_SELECTOR, LANG_SELECTOR, MEDIA_QUERY, MEDIA_FEATURE, MEDIA_TYPE, CONTAINER_QUERY, SUPPORTS_QUERY, LAYER_NAME, PRELUDE_OPERATOR, FEATURE_RANGE, AT_RULE_PRELUDE, FLAG_IMPORTANT, ATTR_OPERATOR_NONE, ATTR_OPERATOR_EQUAL, ATTR_OPERATOR_TILDE_EQUAL, ATTR_OPERATOR_PIPE_EQUAL, ATTR_OPERATOR_CARET_EQUAL, ATTR_OPERATOR_DOLLAR_EQUAL, ATTR_OPERATOR_STAR_EQUAL, ATTR_FLAG_NONE, ATTR_FLAG_CASE_INSENSITIVE, ATTR_FLAG_CASE_SENSITIVE, };
|
|
3
3
|
export declare const NODE_TYPES: {
|
|
4
4
|
readonly STYLESHEET: 1;
|
|
5
5
|
readonly STYLE_RULE: 2;
|
|
@@ -8,6 +8,7 @@ export declare const NODE_TYPES: {
|
|
|
8
8
|
readonly SELECTOR: 5;
|
|
9
9
|
readonly COMMENT: 6;
|
|
10
10
|
readonly BLOCK: 7;
|
|
11
|
+
readonly RAW: 8;
|
|
11
12
|
readonly IDENTIFIER: 10;
|
|
12
13
|
readonly NUMBER: 11;
|
|
13
14
|
readonly DIMENSION: 12;
|
package/dist/constants.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AT_RULE_PRELUDE, FEATURE_RANGE, PRELUDE_OPERATOR, LAYER_NAME, SUPPORTS_QUERY, CONTAINER_QUERY, MEDIA_TYPE, MEDIA_FEATURE, MEDIA_QUERY, LANG_SELECTOR, NTH_OF_SELECTOR, NTH_SELECTOR, NESTING_SELECTOR, UNIVERSAL_SELECTOR, COMBINATOR, PSEUDO_ELEMENT_SELECTOR, PSEUDO_CLASS_SELECTOR, ATTRIBUTE_SELECTOR, ID_SELECTOR, CLASS_SELECTOR, TYPE_SELECTOR, SELECTOR_LIST, VALUE, URL, PARENTHESIS, OPERATOR, FUNCTION, HASH, STRING, DIMENSION, NUMBER, IDENTIFIER, BLOCK, COMMENT, SELECTOR, DECLARATION, AT_RULE, STYLE_RULE, STYLESHEET } from './arena.js';
|
|
1
|
+
import { AT_RULE_PRELUDE, FEATURE_RANGE, PRELUDE_OPERATOR, LAYER_NAME, SUPPORTS_QUERY, CONTAINER_QUERY, MEDIA_TYPE, MEDIA_FEATURE, MEDIA_QUERY, LANG_SELECTOR, NTH_OF_SELECTOR, NTH_SELECTOR, NESTING_SELECTOR, UNIVERSAL_SELECTOR, COMBINATOR, PSEUDO_ELEMENT_SELECTOR, PSEUDO_CLASS_SELECTOR, ATTRIBUTE_SELECTOR, ID_SELECTOR, CLASS_SELECTOR, TYPE_SELECTOR, SELECTOR_LIST, VALUE, URL, PARENTHESIS, OPERATOR, FUNCTION, HASH, STRING, DIMENSION, NUMBER, IDENTIFIER, RAW, BLOCK, COMMENT, SELECTOR, DECLARATION, AT_RULE, STYLE_RULE, STYLESHEET } from './arena.js';
|
|
2
2
|
export { ATTR_FLAG_CASE_INSENSITIVE, ATTR_FLAG_CASE_SENSITIVE, ATTR_FLAG_NONE, ATTR_OPERATOR_CARET_EQUAL, ATTR_OPERATOR_DOLLAR_EQUAL, ATTR_OPERATOR_EQUAL, ATTR_OPERATOR_NONE, ATTR_OPERATOR_PIPE_EQUAL, ATTR_OPERATOR_STAR_EQUAL, ATTR_OPERATOR_TILDE_EQUAL, FLAG_IMPORTANT } from './arena.js';
|
|
3
3
|
|
|
4
4
|
const NODE_TYPES = {
|
|
@@ -10,6 +10,7 @@ const NODE_TYPES = {
|
|
|
10
10
|
SELECTOR,
|
|
11
11
|
COMMENT,
|
|
12
12
|
BLOCK,
|
|
13
|
+
RAW,
|
|
13
14
|
// Value nodes
|
|
14
15
|
IDENTIFIER,
|
|
15
16
|
NUMBER,
|
|
@@ -47,4 +48,4 @@ const NODE_TYPES = {
|
|
|
47
48
|
AT_RULE_PRELUDE
|
|
48
49
|
};
|
|
49
50
|
|
|
50
|
-
export { ATTRIBUTE_SELECTOR, AT_RULE, AT_RULE_PRELUDE, BLOCK, CLASS_SELECTOR, COMBINATOR, COMMENT, CONTAINER_QUERY, DECLARATION, DIMENSION, FEATURE_RANGE, FUNCTION, HASH, IDENTIFIER, ID_SELECTOR, LANG_SELECTOR, LAYER_NAME, MEDIA_FEATURE, MEDIA_QUERY, MEDIA_TYPE, NESTING_SELECTOR, NODE_TYPES, NTH_OF_SELECTOR, NTH_SELECTOR, NUMBER, OPERATOR, PARENTHESIS, PRELUDE_OPERATOR, PSEUDO_CLASS_SELECTOR, PSEUDO_ELEMENT_SELECTOR, SELECTOR, SELECTOR_LIST, STRING, STYLESHEET, STYLE_RULE, SUPPORTS_QUERY, TYPE_SELECTOR, UNIVERSAL_SELECTOR, URL, VALUE };
|
|
51
|
+
export { ATTRIBUTE_SELECTOR, AT_RULE, AT_RULE_PRELUDE, BLOCK, CLASS_SELECTOR, COMBINATOR, COMMENT, CONTAINER_QUERY, DECLARATION, DIMENSION, FEATURE_RANGE, FUNCTION, HASH, IDENTIFIER, ID_SELECTOR, LANG_SELECTOR, LAYER_NAME, MEDIA_FEATURE, MEDIA_QUERY, MEDIA_TYPE, NESTING_SELECTOR, NODE_TYPES, NTH_OF_SELECTOR, NTH_SELECTOR, NUMBER, OPERATOR, PARENTHESIS, PRELUDE_OPERATOR, PSEUDO_CLASS_SELECTOR, PSEUDO_ELEMENT_SELECTOR, RAW, SELECTOR, SELECTOR_LIST, STRING, STYLESHEET, STYLE_RULE, SUPPORTS_QUERY, TYPE_SELECTOR, UNIVERSAL_SELECTOR, URL, VALUE };
|
package/dist/css-node.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { CSSDataArena } from './arena';
|
|
2
|
-
import { STYLESHEET, STYLE_RULE, AT_RULE, DECLARATION, SELECTOR, COMMENT, BLOCK, IDENTIFIER, NUMBER, DIMENSION, STRING, HASH, FUNCTION, OPERATOR, PARENTHESIS, URL, VALUE, SELECTOR_LIST, TYPE_SELECTOR, CLASS_SELECTOR, ID_SELECTOR, ATTRIBUTE_SELECTOR, PSEUDO_CLASS_SELECTOR, PSEUDO_ELEMENT_SELECTOR, COMBINATOR, UNIVERSAL_SELECTOR, NESTING_SELECTOR, NTH_SELECTOR, NTH_OF_SELECTOR, LANG_SELECTOR, MEDIA_QUERY, MEDIA_FEATURE, MEDIA_TYPE, CONTAINER_QUERY, SUPPORTS_QUERY, LAYER_NAME, PRELUDE_OPERATOR, FEATURE_RANGE, AT_RULE_PRELUDE } from './arena';
|
|
2
|
+
import { RAW, STYLESHEET, STYLE_RULE, AT_RULE, DECLARATION, SELECTOR, COMMENT, BLOCK, IDENTIFIER, NUMBER, DIMENSION, STRING, HASH, FUNCTION, OPERATOR, PARENTHESIS, URL, VALUE, SELECTOR_LIST, TYPE_SELECTOR, CLASS_SELECTOR, ID_SELECTOR, ATTRIBUTE_SELECTOR, PSEUDO_CLASS_SELECTOR, PSEUDO_ELEMENT_SELECTOR, COMBINATOR, UNIVERSAL_SELECTOR, NESTING_SELECTOR, NTH_SELECTOR, NTH_OF_SELECTOR, LANG_SELECTOR, MEDIA_QUERY, MEDIA_FEATURE, MEDIA_TYPE, CONTAINER_QUERY, SUPPORTS_QUERY, LAYER_NAME, PRELUDE_OPERATOR, FEATURE_RANGE, AT_RULE_PRELUDE } from './arena';
|
|
3
3
|
export declare const TYPE_NAMES: {
|
|
4
4
|
readonly 1: "StyleSheet";
|
|
5
5
|
readonly 2: "Rule";
|
|
@@ -8,6 +8,7 @@ export declare const TYPE_NAMES: {
|
|
|
8
8
|
readonly 5: "Selector";
|
|
9
9
|
readonly 6: "Comment";
|
|
10
10
|
readonly 7: "Block";
|
|
11
|
+
readonly 8: "Raw";
|
|
11
12
|
readonly 10: "Identifier";
|
|
12
13
|
readonly 11: "Number";
|
|
13
14
|
readonly 12: "Dimension";
|
|
@@ -45,7 +46,7 @@ export declare const TYPE_NAMES: {
|
|
|
45
46
|
export type TypeName = (typeof TYPE_NAMES)[keyof typeof TYPE_NAMES] | 'unknown';
|
|
46
47
|
export declare const ATTR_OPERATOR_NAMES: Record<number, string | null>;
|
|
47
48
|
export declare const ATTR_FLAG_NAMES: Record<number, string | null>;
|
|
48
|
-
export type CSSNodeType = typeof STYLESHEET | typeof STYLE_RULE | typeof AT_RULE | typeof DECLARATION | typeof SELECTOR | typeof COMMENT | typeof BLOCK | typeof IDENTIFIER | typeof NUMBER | typeof DIMENSION | typeof STRING | typeof HASH | typeof FUNCTION | typeof OPERATOR | typeof PARENTHESIS | typeof URL | typeof VALUE | typeof SELECTOR_LIST | typeof TYPE_SELECTOR | typeof CLASS_SELECTOR | typeof ID_SELECTOR | typeof ATTRIBUTE_SELECTOR | typeof PSEUDO_CLASS_SELECTOR | typeof PSEUDO_ELEMENT_SELECTOR | typeof COMBINATOR | typeof UNIVERSAL_SELECTOR | typeof NESTING_SELECTOR | typeof NTH_SELECTOR | typeof NTH_OF_SELECTOR | typeof LANG_SELECTOR | typeof MEDIA_QUERY | typeof MEDIA_FEATURE | typeof MEDIA_TYPE | typeof CONTAINER_QUERY | typeof SUPPORTS_QUERY | typeof LAYER_NAME | typeof PRELUDE_OPERATOR | typeof FEATURE_RANGE | typeof AT_RULE_PRELUDE;
|
|
49
|
+
export type CSSNodeType = typeof STYLESHEET | typeof STYLE_RULE | typeof AT_RULE | typeof DECLARATION | typeof SELECTOR | typeof COMMENT | typeof BLOCK | typeof RAW | typeof IDENTIFIER | typeof NUMBER | typeof DIMENSION | typeof STRING | typeof HASH | typeof FUNCTION | typeof OPERATOR | typeof PARENTHESIS | typeof URL | typeof VALUE | typeof SELECTOR_LIST | typeof TYPE_SELECTOR | typeof CLASS_SELECTOR | typeof ID_SELECTOR | typeof ATTRIBUTE_SELECTOR | typeof PSEUDO_CLASS_SELECTOR | typeof PSEUDO_ELEMENT_SELECTOR | typeof COMBINATOR | typeof UNIVERSAL_SELECTOR | typeof NESTING_SELECTOR | typeof NTH_SELECTOR | typeof NTH_OF_SELECTOR | typeof LANG_SELECTOR | typeof MEDIA_QUERY | typeof MEDIA_FEATURE | typeof MEDIA_TYPE | typeof CONTAINER_QUERY | typeof SUPPORTS_QUERY | typeof LAYER_NAME | typeof PRELUDE_OPERATOR | typeof FEATURE_RANGE | typeof AT_RULE_PRELUDE;
|
|
49
50
|
export interface CloneOptions {
|
|
50
51
|
/**
|
|
51
52
|
* Recursively clone all children
|
package/dist/css-node.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DECLARATION, OPERATOR, SELECTOR, MEDIA_FEATURE, DIMENSION, NUMBER, URL, STRING, AT_RULE, AT_RULE_PRELUDE, STYLE_RULE, ATTRIBUTE_SELECTOR, FLAG_IMPORTANT, FLAG_BROWSERHACK, IDENTIFIER, FUNCTION, PSEUDO_ELEMENT_SELECTOR, PSEUDO_CLASS_SELECTOR, FLAG_HAS_ERROR, FLAG_HAS_BLOCK, FLAG_HAS_DECLARATIONS, BLOCK, COMMENT, FLAG_HAS_PARENS, NTH_SELECTOR, NTH_OF_SELECTOR, SELECTOR_LIST, FEATURE_RANGE, PRELUDE_OPERATOR, LAYER_NAME, SUPPORTS_QUERY, CONTAINER_QUERY, MEDIA_TYPE, MEDIA_QUERY, LANG_SELECTOR, NESTING_SELECTOR, UNIVERSAL_SELECTOR, COMBINATOR, ID_SELECTOR, CLASS_SELECTOR, TYPE_SELECTOR, VALUE, UNICODE_RANGE, PARENTHESIS, HASH, STYLESHEET
|
|
1
|
+
import { ATTR_FLAG_CASE_SENSITIVE, ATTR_FLAG_CASE_INSENSITIVE, ATTR_FLAG_NONE, ATTR_OPERATOR_STAR_EQUAL, ATTR_OPERATOR_DOLLAR_EQUAL, ATTR_OPERATOR_CARET_EQUAL, ATTR_OPERATOR_PIPE_EQUAL, ATTR_OPERATOR_TILDE_EQUAL, ATTR_OPERATOR_EQUAL, ATTR_OPERATOR_NONE, DECLARATION, OPERATOR, SELECTOR, MEDIA_FEATURE, DIMENSION, NUMBER, URL, STRING, AT_RULE, AT_RULE_PRELUDE, RAW, STYLE_RULE, ATTRIBUTE_SELECTOR, FLAG_IMPORTANT, FLAG_BROWSERHACK, IDENTIFIER, FUNCTION, PSEUDO_ELEMENT_SELECTOR, PSEUDO_CLASS_SELECTOR, FLAG_HAS_ERROR, FLAG_HAS_BLOCK, FLAG_HAS_DECLARATIONS, BLOCK, COMMENT, FLAG_HAS_PARENS, NTH_SELECTOR, NTH_OF_SELECTOR, SELECTOR_LIST, FEATURE_RANGE, PRELUDE_OPERATOR, LAYER_NAME, SUPPORTS_QUERY, CONTAINER_QUERY, MEDIA_TYPE, MEDIA_QUERY, LANG_SELECTOR, NESTING_SELECTOR, UNIVERSAL_SELECTOR, COMBINATOR, ID_SELECTOR, CLASS_SELECTOR, TYPE_SELECTOR, VALUE, UNICODE_RANGE, PARENTHESIS, HASH, STYLESHEET } from './arena.js';
|
|
2
2
|
import { str_starts_with, is_vendor_prefixed, is_whitespace, CHAR_MINUS_HYPHEN, CHAR_PLUS } from './string-utils.js';
|
|
3
3
|
import { parse_dimension } from './parse-dimension.js';
|
|
4
4
|
|
|
@@ -10,6 +10,7 @@ const TYPE_NAMES = {
|
|
|
10
10
|
[SELECTOR]: "Selector",
|
|
11
11
|
[COMMENT]: "Comment",
|
|
12
12
|
[BLOCK]: "Block",
|
|
13
|
+
[RAW]: "Raw",
|
|
13
14
|
[IDENTIFIER]: "Identifier",
|
|
14
15
|
[NUMBER]: "Number",
|
|
15
16
|
[DIMENSION]: "Dimension",
|
|
@@ -170,7 +171,7 @@ class CSSNode {
|
|
|
170
171
|
get prelude() {
|
|
171
172
|
if (this.type === AT_RULE) {
|
|
172
173
|
let first = this.first_child;
|
|
173
|
-
if (first
|
|
174
|
+
if (first?.type === AT_RULE_PRELUDE || first?.type === RAW) {
|
|
174
175
|
return first;
|
|
175
176
|
}
|
|
176
177
|
return null;
|
package/dist/index.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ export { tokenize } from './tokenize';
|
|
|
8
8
|
export { walk, traverse, SKIP, BREAK } from './walk';
|
|
9
9
|
export { is_custom, is_vendor_prefixed, str_equals, str_starts_with, str_index_of } from './string-utils';
|
|
10
10
|
export { type ParserOptions } from './parse';
|
|
11
|
-
export { CSSNode, type CSSNodeType, TYPE_NAMES, type CloneOptions, type PlainCSSNode } from './css-node';
|
|
11
|
+
export { CSSNode, type CSSNodeType, TYPE_NAMES, type CloneOptions, type PlainCSSNode, ATTR_FLAG_NAMES, ATTR_OPERATOR_NAMES, } from './css-node';
|
|
12
12
|
export type { LexerPosition, CommentInfo } from './tokenize';
|
|
13
13
|
export { ATTR_OPERATOR_NONE, ATTR_OPERATOR_EQUAL, ATTR_OPERATOR_TILDE_EQUAL, ATTR_OPERATOR_PIPE_EQUAL, ATTR_OPERATOR_CARET_EQUAL, ATTR_OPERATOR_DOLLAR_EQUAL, ATTR_OPERATOR_STAR_EQUAL, ATTR_FLAG_NONE, ATTR_FLAG_CASE_INSENSITIVE, ATTR_FLAG_CASE_SENSITIVE, } from './arena';
|
|
14
14
|
export * from './constants';
|
package/dist/index.js
CHANGED
|
@@ -7,7 +7,7 @@ export { parse_dimension } from './parse-dimension.js';
|
|
|
7
7
|
export { tokenize } from './tokenize.js';
|
|
8
8
|
export { BREAK, SKIP, traverse, walk } from './walk.js';
|
|
9
9
|
export { is_custom, is_vendor_prefixed, str_equals, str_index_of, str_starts_with } from './string-utils.js';
|
|
10
|
-
export { CSSNode, TYPE_NAMES } from './css-node.js';
|
|
11
|
-
export { ATTRIBUTE_SELECTOR, ATTR_FLAG_CASE_INSENSITIVE, ATTR_FLAG_CASE_SENSITIVE, ATTR_FLAG_NONE, ATTR_OPERATOR_CARET_EQUAL, ATTR_OPERATOR_DOLLAR_EQUAL, ATTR_OPERATOR_EQUAL, ATTR_OPERATOR_NONE, ATTR_OPERATOR_PIPE_EQUAL, ATTR_OPERATOR_STAR_EQUAL, ATTR_OPERATOR_TILDE_EQUAL, AT_RULE, AT_RULE_PRELUDE, BLOCK, CLASS_SELECTOR, COMBINATOR, COMMENT, CONTAINER_QUERY, DECLARATION, DIMENSION, FEATURE_RANGE, FLAG_IMPORTANT, FUNCTION, HASH, IDENTIFIER, ID_SELECTOR, LANG_SELECTOR, LAYER_NAME, MEDIA_FEATURE, MEDIA_QUERY, MEDIA_TYPE, NESTING_SELECTOR, NTH_OF_SELECTOR, NTH_SELECTOR, NUMBER, OPERATOR, PARENTHESIS, PRELUDE_OPERATOR, PSEUDO_CLASS_SELECTOR, PSEUDO_ELEMENT_SELECTOR, SELECTOR, SELECTOR_LIST, STRING, STYLESHEET, STYLE_RULE, SUPPORTS_QUERY, TYPE_SELECTOR, UNIVERSAL_SELECTOR, URL, VALUE } from './arena.js';
|
|
10
|
+
export { ATTR_FLAG_NAMES, ATTR_OPERATOR_NAMES, CSSNode, TYPE_NAMES } from './css-node.js';
|
|
11
|
+
export { ATTRIBUTE_SELECTOR, ATTR_FLAG_CASE_INSENSITIVE, ATTR_FLAG_CASE_SENSITIVE, ATTR_FLAG_NONE, ATTR_OPERATOR_CARET_EQUAL, ATTR_OPERATOR_DOLLAR_EQUAL, ATTR_OPERATOR_EQUAL, ATTR_OPERATOR_NONE, ATTR_OPERATOR_PIPE_EQUAL, ATTR_OPERATOR_STAR_EQUAL, ATTR_OPERATOR_TILDE_EQUAL, AT_RULE, AT_RULE_PRELUDE, BLOCK, CLASS_SELECTOR, COMBINATOR, COMMENT, CONTAINER_QUERY, DECLARATION, DIMENSION, FEATURE_RANGE, FLAG_IMPORTANT, FUNCTION, HASH, IDENTIFIER, ID_SELECTOR, LANG_SELECTOR, LAYER_NAME, MEDIA_FEATURE, MEDIA_QUERY, MEDIA_TYPE, NESTING_SELECTOR, NTH_OF_SELECTOR, NTH_SELECTOR, NUMBER, OPERATOR, PARENTHESIS, PRELUDE_OPERATOR, PSEUDO_CLASS_SELECTOR, PSEUDO_ELEMENT_SELECTOR, RAW, SELECTOR, SELECTOR_LIST, STRING, STYLESHEET, STYLE_RULE, SUPPORTS_QUERY, TYPE_SELECTOR, UNIVERSAL_SELECTOR, URL, VALUE } from './arena.js';
|
|
12
12
|
export { NODE_TYPES } from './constants.js';
|
|
13
13
|
export { TOKEN_AT_KEYWORD, TOKEN_BAD_STRING, TOKEN_BAD_URL, TOKEN_CDC, TOKEN_CDO, TOKEN_COLON, TOKEN_COMMA, TOKEN_COMMENT, TOKEN_DELIM, TOKEN_DIMENSION, TOKEN_EOF, TOKEN_FUNCTION, TOKEN_HASH, TOKEN_IDENT, TOKEN_LEFT_BRACE, TOKEN_LEFT_BRACKET, TOKEN_LEFT_PAREN, TOKEN_NUMBER, TOKEN_PERCENTAGE, TOKEN_RIGHT_BRACE, TOKEN_RIGHT_BRACKET, TOKEN_RIGHT_PAREN, TOKEN_SEMICOLON, TOKEN_STRING, TOKEN_UNICODE_RANGE, TOKEN_URL, TOKEN_WHITESPACE } from './token-types.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Lexer } from './tokenize.js';
|
|
2
|
-
import { CSSDataArena, PRELUDE_OPERATOR, MEDIA_TYPE, MEDIA_QUERY, MEDIA_FEATURE, FUNCTION, IDENTIFIER, CONTAINER_QUERY, SUPPORTS_QUERY, LAYER_NAME, STRING, URL, DIMENSION, NUMBER, FEATURE_RANGE } from './arena.js';
|
|
2
|
+
import { CSSDataArena, PRELUDE_OPERATOR, MEDIA_TYPE, MEDIA_QUERY, MEDIA_FEATURE, FUNCTION, IDENTIFIER, CONTAINER_QUERY, SUPPORTS_QUERY, LAYER_NAME, STRING, URL, DIMENSION, NUMBER, PRELUDE_SELECTORLIST, FEATURE_RANGE } from './arena.js';
|
|
3
3
|
import { TOKEN_COMMA, TOKEN_IDENT, TOKEN_LEFT_PAREN, TOKEN_RIGHT_PAREN, TOKEN_FUNCTION, TOKEN_EOF, TOKEN_WHITESPACE, TOKEN_STRING, TOKEN_URL, TOKEN_DIMENSION, TOKEN_PERCENTAGE, TOKEN_NUMBER } from './token-types.js';
|
|
4
4
|
import { strip_vendor_prefix, str_equals, CHAR_LESS_THAN, CHAR_GREATER_THAN, CHAR_EQUALS, CHAR_COLON, is_whitespace } from './string-utils.js';
|
|
5
5
|
import { skip_whitespace_and_comments_forward, trim_boundaries } from './parse-utils.js';
|
|
@@ -24,23 +24,35 @@ class AtRulePreludeParser {
|
|
|
24
24
|
}
|
|
25
25
|
// Dispatch to appropriate parser based on at-rule type
|
|
26
26
|
parse_prelude_dispatch(at_rule_name) {
|
|
27
|
-
let normalized_name = strip_vendor_prefix(at_rule_name);
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
27
|
+
let normalized_name = strip_vendor_prefix(at_rule_name).toLowerCase();
|
|
28
|
+
switch (normalized_name) {
|
|
29
|
+
case "media":
|
|
30
|
+
return this.parse_media_query_list();
|
|
31
|
+
case "container":
|
|
32
|
+
return this.parse_container_query();
|
|
33
|
+
case "supports":
|
|
34
|
+
return this.parse_supports_query();
|
|
35
|
+
case "layer":
|
|
36
|
+
return this.parse_layer_names();
|
|
37
|
+
case "keyframes":
|
|
38
|
+
case "property":
|
|
39
|
+
case "counter-style":
|
|
40
|
+
case "color-profile":
|
|
41
|
+
case "font-palette-values":
|
|
42
|
+
case "position-try":
|
|
43
|
+
case "font-feature-values":
|
|
44
|
+
case "page":
|
|
45
|
+
return this.parse_identifier();
|
|
46
|
+
case "import":
|
|
47
|
+
return this.parse_import_prelude();
|
|
48
|
+
case "charset":
|
|
49
|
+
return this.parse_charset_prelude();
|
|
50
|
+
case "namespace":
|
|
51
|
+
return this.parse_namespace_prelude();
|
|
52
|
+
case "scope":
|
|
53
|
+
return this.parse_scope_prelude();
|
|
54
|
+
case "custom-media":
|
|
55
|
+
return this.parse_custom_media_prelude();
|
|
44
56
|
}
|
|
45
57
|
return [];
|
|
46
58
|
}
|
|
@@ -524,6 +536,76 @@ class AtRulePreludeParser {
|
|
|
524
536
|
this.lexer = saved_lexer;
|
|
525
537
|
return nodes;
|
|
526
538
|
}
|
|
539
|
+
// Parse @namespace prelude: [prefix] url("...") | "..."
|
|
540
|
+
// e.g. @namespace url("http://www.w3.org/1999/xhtml");
|
|
541
|
+
// e.g. @namespace svg url("http://www.w3.org/2000/svg");
|
|
542
|
+
parse_namespace_prelude() {
|
|
543
|
+
let nodes = [];
|
|
544
|
+
this.skip_whitespace();
|
|
545
|
+
if (this.lexer.pos >= this.prelude_end) return [];
|
|
546
|
+
const saved = this.lexer.save_position();
|
|
547
|
+
this.next_token();
|
|
548
|
+
if (this.lexer.token_type === TOKEN_IDENT) {
|
|
549
|
+
nodes.push(this.create_node(IDENTIFIER, this.lexer.token_start, this.lexer.token_end));
|
|
550
|
+
this.skip_whitespace();
|
|
551
|
+
} else {
|
|
552
|
+
this.lexer.restore_position(saved);
|
|
553
|
+
}
|
|
554
|
+
const url_node = this.parse_import_url();
|
|
555
|
+
if (url_node !== null) nodes.push(url_node);
|
|
556
|
+
return nodes;
|
|
557
|
+
}
|
|
558
|
+
// Parse @scope prelude: [(<scope-start>)] [to (<scope-end>)]
|
|
559
|
+
// e.g. @scope (.parent) to (.child) { }
|
|
560
|
+
parse_scope_prelude() {
|
|
561
|
+
let nodes = [];
|
|
562
|
+
while (this.lexer.pos < this.prelude_end) {
|
|
563
|
+
this.skip_whitespace();
|
|
564
|
+
if (this.lexer.pos >= this.prelude_end) break;
|
|
565
|
+
const token_type = this.peek_token_type();
|
|
566
|
+
if (token_type === TOKEN_LEFT_PAREN) {
|
|
567
|
+
this.next_token();
|
|
568
|
+
let paren_start = this.lexer.token_start;
|
|
569
|
+
let content_start = this.lexer.pos;
|
|
570
|
+
let depth = 1;
|
|
571
|
+
while (this.lexer.pos < this.prelude_end && depth > 0) {
|
|
572
|
+
this.next_token();
|
|
573
|
+
if (this.lexer.token_type === TOKEN_LEFT_PAREN) depth++;
|
|
574
|
+
else if (this.lexer.token_type === TOKEN_RIGHT_PAREN) depth--;
|
|
575
|
+
}
|
|
576
|
+
let content_end = this.lexer.token_start;
|
|
577
|
+
let paren_end = this.lexer.token_end;
|
|
578
|
+
let scope_node = this.create_node(PRELUDE_SELECTORLIST, paren_start, paren_end);
|
|
579
|
+
let trimmed = trim_boundaries(this.source, content_start, content_end);
|
|
580
|
+
if (trimmed) {
|
|
581
|
+
this.arena.set_value_start_delta(scope_node, trimmed[0] - paren_start);
|
|
582
|
+
this.arena.set_value_length(scope_node, trimmed[1] - trimmed[0]);
|
|
583
|
+
}
|
|
584
|
+
nodes.push(scope_node);
|
|
585
|
+
} else if (token_type === TOKEN_IDENT) {
|
|
586
|
+
this.next_token();
|
|
587
|
+
let text = this.source.substring(this.lexer.token_start, this.lexer.token_end);
|
|
588
|
+
if (str_equals("to", text)) {
|
|
589
|
+
nodes.push(this.create_node(PRELUDE_OPERATOR, this.lexer.token_start, this.lexer.token_end));
|
|
590
|
+
}
|
|
591
|
+
} else {
|
|
592
|
+
this.next_token();
|
|
593
|
+
}
|
|
594
|
+
}
|
|
595
|
+
return nodes;
|
|
596
|
+
}
|
|
597
|
+
// Parse @custom-media prelude: --name <media-condition>
|
|
598
|
+
// e.g. @custom-media --small (max-width: 30em);
|
|
599
|
+
parse_custom_media_prelude() {
|
|
600
|
+
let nodes = [];
|
|
601
|
+
this.skip_whitespace();
|
|
602
|
+
if (this.lexer.pos >= this.prelude_end) return [];
|
|
603
|
+
this.next_token();
|
|
604
|
+
if (this.lexer.token_type !== TOKEN_IDENT) return [];
|
|
605
|
+
nodes.push(this.create_node(IDENTIFIER, this.lexer.token_start, this.lexer.token_end));
|
|
606
|
+
nodes.push(...this.parse_media_query_list());
|
|
607
|
+
return nodes;
|
|
608
|
+
}
|
|
527
609
|
// Parse media feature range syntax: (50px <= width <= 100px)
|
|
528
610
|
parse_feature_range(feature_start, feature_end, content_start, content_end) {
|
|
529
611
|
let range_node = this.create_node(FEATURE_RANGE, feature_start, feature_end);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Lexer } from './tokenize.js';
|
|
2
|
-
import { CSSDataArena, DECLARATION, FLAG_IMPORTANT, FLAG_BROWSERHACK } from './arena.js';
|
|
2
|
+
import { CSSDataArena, DECLARATION, RAW, FLAG_IMPORTANT, FLAG_BROWSERHACK } from './arena.js';
|
|
3
3
|
import { ValueParser } from './parse-value.js';
|
|
4
4
|
import { is_vendor_prefixed } from './string-utils.js';
|
|
5
5
|
import { TOKEN_AT_KEYWORD, TOKEN_HASH, TOKEN_IDENT, TOKEN_DELIM, TOKEN_LEFT_PAREN, TOKEN_RIGHT_PAREN, TOKEN_LEFT_BRACKET, TOKEN_RIGHT_BRACKET, TOKEN_COMMA, TOKEN_COLON, TOKEN_EOF, TOKEN_SEMICOLON, TOKEN_RIGHT_BRACE, TOKEN_LEFT_BRACE, TOKEN_FUNCTION } from './token-types.js';
|
|
@@ -130,6 +130,9 @@ class DeclarationParser {
|
|
|
130
130
|
if (this.value_parser) {
|
|
131
131
|
let valueNode = this.value_parser.parse_value(value_start, trimmed[1], value_start_line, value_start_column);
|
|
132
132
|
this.arena.append_children(declaration, [valueNode]);
|
|
133
|
+
} else {
|
|
134
|
+
let rawNode = this.arena.create_node(RAW, trimmed[0], trimmed[1] - trimmed[0], value_start_line, value_start_column);
|
|
135
|
+
this.arena.append_children(declaration, [rawNode]);
|
|
133
136
|
}
|
|
134
137
|
} else {
|
|
135
138
|
this.arena.set_value_start_delta(declaration, value_start - prop_start);
|
package/dist/parse.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Lexer } from './tokenize.js';
|
|
2
|
-
import { CSSDataArena, STYLESHEET, STYLE_RULE, FLAG_HAS_BLOCK, BLOCK, FLAG_HAS_DECLARATIONS, SELECTOR_LIST, AT_RULE, AT_RULE_PRELUDE } from './arena.js';
|
|
2
|
+
import { CSSDataArena, STYLESHEET, STYLE_RULE, FLAG_HAS_BLOCK, BLOCK, FLAG_HAS_DECLARATIONS, SELECTOR_LIST, RAW, AT_RULE, AT_RULE_PRELUDE } from './arena.js';
|
|
3
3
|
import { CSSNode } from './css-node.js';
|
|
4
4
|
import { SelectorParser } from './parse-selector.js';
|
|
5
5
|
import { AtRulePreludeParser } from './parse-atrule-prelude.js';
|
|
@@ -8,8 +8,8 @@ import { TOKEN_EOF, TOKEN_AT_KEYWORD, TOKEN_LEFT_BRACE, TOKEN_RIGHT_BRACE, TOKEN
|
|
|
8
8
|
import { trim_boundaries } from './parse-utils.js';
|
|
9
9
|
import { CHAR_PERIOD, CHAR_GREATER_THAN, CHAR_PLUS, CHAR_TILDE, CHAR_AMPERSAND } from './string-utils.js';
|
|
10
10
|
|
|
11
|
-
let DECLARATION_AT_RULES = /* @__PURE__ */ new Set(["font-face", "font-feature-values", "page", "property", "counter-style"]);
|
|
12
|
-
let CONDITIONAL_AT_RULES = /* @__PURE__ */ new Set(["media", "supports", "container", "layer", "nest"]);
|
|
11
|
+
let DECLARATION_AT_RULES = /* @__PURE__ */ new Set(["font-face", "font-feature-values", "page", "property", "counter-style", "color-profile", "font-palette-values", "position-try", "view-transition"]);
|
|
12
|
+
let CONDITIONAL_AT_RULES = /* @__PURE__ */ new Set(["media", "supports", "container", "layer", "nest", "scope", "starting-style"]);
|
|
13
13
|
class Parser {
|
|
14
14
|
source;
|
|
15
15
|
lexer;
|
|
@@ -171,8 +171,9 @@ class Parser {
|
|
|
171
171
|
return selector;
|
|
172
172
|
}
|
|
173
173
|
}
|
|
174
|
-
let
|
|
175
|
-
|
|
174
|
+
let node_type = this.parse_selectors_enabled ? SELECTOR_LIST : RAW;
|
|
175
|
+
let selector_node = this.arena.create_node(node_type, selector_start, last_end - selector_start, selector_line, selector_column);
|
|
176
|
+
return selector_node;
|
|
176
177
|
}
|
|
177
178
|
// Parse a declaration: property: value;
|
|
178
179
|
parse_declaration() {
|
|
@@ -237,6 +238,8 @@ class Parser {
|
|
|
237
238
|
if (prelude_nodes.length > 0) {
|
|
238
239
|
this.arena.append_children(prelude_wrapper, prelude_nodes);
|
|
239
240
|
}
|
|
241
|
+
} else {
|
|
242
|
+
prelude_wrapper = this.arena.create_node(RAW, trimmed[0], trimmed[1] - trimmed[0], at_rule_line, at_rule_column);
|
|
240
243
|
}
|
|
241
244
|
}
|
|
242
245
|
let last_end = this.lexer.token_end;
|
package/package.json
CHANGED