@lass-lang/core 0.0.1 → 0.1.0
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/CHANGELOG.md +16 -1
- package/README.md +2 -2
- package/dist/constants.d.ts +2 -2
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +2 -2
- package/dist/constants.js.map +1 -1
- package/dist/context-tracker.d.ts +3 -4
- package/dist/context-tracker.d.ts.map +1 -1
- package/dist/context-tracker.js +3 -4
- package/dist/context-tracker.js.map +1 -1
- package/dist/index.d.ts +10 -13
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -16
- package/dist/index.js.map +1 -1
- package/dist/plugin-utils.d.ts +131 -0
- package/dist/plugin-utils.d.ts.map +1 -0
- package/dist/plugin-utils.js +223 -0
- package/dist/plugin-utils.js.map +1 -0
- package/dist/scanner.d.ts +39 -63
- package/dist/scanner.d.ts.map +1 -1
- package/dist/scanner.js +70 -209
- package/dist/scanner.js.map +1 -1
- package/dist/scope-tracker.d.ts +2 -2
- package/dist/scope-tracker.js +2 -2
- package/dist/transpiler.d.ts +1 -18
- package/dist/transpiler.d.ts.map +1 -1
- package/dist/transpiler.js +2 -39
- package/dist/transpiler.js.map +1 -1
- package/package.json +5 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin-utils.js","sourceRoot":"","sources":["../src/plugin-utils.ts"],"names":[],"mappings":"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"}
|
package/dist/scanner.d.ts
CHANGED
|
@@ -62,18 +62,6 @@ export interface DollarVariable {
|
|
|
62
62
|
/** End index (exclusive) of $varname in the CSS string */
|
|
63
63
|
endIndex: number;
|
|
64
64
|
}
|
|
65
|
-
/**
|
|
66
|
-
* Information about a detected @prop shorthand.
|
|
67
|
-
* Story 4.2: Style Lookup Shorthand
|
|
68
|
-
*/
|
|
69
|
-
export interface StyleLookupShorthand {
|
|
70
|
-
/** The property name (without @ prefix) */
|
|
71
|
-
propName: string;
|
|
72
|
-
/** Start index of @propname in the CSS string */
|
|
73
|
-
startIndex: number;
|
|
74
|
-
/** End index (exclusive) of @propname in the CSS string */
|
|
75
|
-
endIndex: number;
|
|
76
|
-
}
|
|
77
65
|
/**
|
|
78
66
|
* Scanner options for customizing scan behavior.
|
|
79
67
|
*/
|
|
@@ -96,26 +84,51 @@ export declare class Scanner {
|
|
|
96
84
|
private readonly source;
|
|
97
85
|
constructor(source: string, _options?: ScanOptions);
|
|
98
86
|
/**
|
|
99
|
-
* Finds the ---
|
|
100
|
-
*
|
|
101
|
-
* Story 2.1: Zone detection
|
|
102
|
-
*
|
|
103
|
-
* Rules:
|
|
104
|
-
* -
|
|
105
|
-
* -
|
|
106
|
-
* -
|
|
107
|
-
* -
|
|
87
|
+
* Finds the --- delimiters and splits source into preamble and CSS zones.
|
|
88
|
+
*
|
|
89
|
+
* Story 2.1: Zone detection (updated Story 10.1: Preamble Format Change)
|
|
90
|
+
*
|
|
91
|
+
* Rules for surrounding delimiters:
|
|
92
|
+
* - Opening delimiter must be on line 0 (first line of file)
|
|
93
|
+
* - Delimiter must be exactly "---" at column 0 (start of line)
|
|
94
|
+
* - May have extra dashes: "------"
|
|
95
|
+
* - May have optional comment after space: "--- comment text"
|
|
96
|
+
* - "---nospace" is NOT a delimiter (no space before text, not extra dashes)
|
|
97
|
+
* - Second delimiter closes the preamble
|
|
98
|
+
* - Must NOT be inside a multi-line comment in CSS zone
|
|
99
|
+
*
|
|
100
|
+
* Format:
|
|
101
|
+
* ```
|
|
102
|
+
* --- optional comment
|
|
103
|
+
* JS preamble code
|
|
104
|
+
* --- optional comment
|
|
105
|
+
* CSS zone
|
|
106
|
+
* ```
|
|
108
107
|
*
|
|
109
108
|
* Note: Line endings are normalized to \n during processing.
|
|
110
|
-
* When no
|
|
109
|
+
* When no opening delimiter is found on line 0, cssZone returns the original source unchanged.
|
|
111
110
|
*
|
|
112
111
|
* @returns Zone split result with preamble, cssZone, and hasSeparator
|
|
113
|
-
* @throws LassTranspileError if multiple separators found
|
|
114
112
|
*/
|
|
115
113
|
findSeparator(): ZoneSplit;
|
|
116
114
|
/**
|
|
117
|
-
* Checks if a line is the ---
|
|
118
|
-
* Must be exactly "---" with optional
|
|
115
|
+
* Checks if a line is the --- delimiter.
|
|
116
|
+
* Must be exactly "---" with optional extra dashes or comment.
|
|
117
|
+
*
|
|
118
|
+
* Story 8.1: Separator Comment Support
|
|
119
|
+
* Story 10.1: Preamble Format Change (updated regex)
|
|
120
|
+
*
|
|
121
|
+
* Matches:
|
|
122
|
+
* - "---" (bare three dashes)
|
|
123
|
+
* - "--- comment" (three dashes + space + comment text)
|
|
124
|
+
* - "---\tcomment" (three dashes + tab + comment text)
|
|
125
|
+
* - "------" (three+ dashes for visual separator)
|
|
126
|
+
* - "--- title ---" (decorative comment style)
|
|
127
|
+
*
|
|
128
|
+
* Does NOT match:
|
|
129
|
+
* - "---nospace" (no whitespace before text, not extra dashes)
|
|
130
|
+
* - " ---" (leading whitespace)
|
|
131
|
+
* - "--" (only two dashes)
|
|
119
132
|
*/
|
|
120
133
|
private isSeparatorLine;
|
|
121
134
|
/**
|
|
@@ -251,43 +264,6 @@ export declare class Scanner {
|
|
|
251
264
|
* Valid: a-z, A-Z, 0-9, _, $
|
|
252
265
|
*/
|
|
253
266
|
private static isIdentifierChar;
|
|
254
|
-
/**
|
|
255
|
-
* Finds @prop shorthand accessors in CSS zone.
|
|
256
|
-
*
|
|
257
|
-
* Story 4.2: Style Lookup Shorthand
|
|
258
|
-
*
|
|
259
|
-
* Detection rules:
|
|
260
|
-
* - @prop in CSS value position (after :) is a Lass shorthand accessor
|
|
261
|
-
* - @prop shorthand only works when identifier starts with a letter [a-zA-Z]
|
|
262
|
-
* - Identifier continues with letters, digits, hyphens, underscores
|
|
263
|
-
* - NOT detected inside {{ }} script blocks (use explicit @(prop) there)
|
|
264
|
-
* - NOT detected inside protected contexts: strings, comments, url()
|
|
265
|
-
*
|
|
266
|
-
* Examples:
|
|
267
|
-
* - @border → shorthand for @(border)
|
|
268
|
-
* - @border-color → shorthand for @(border-color)
|
|
269
|
-
* - @--custom → NOT detected (starts with hyphen, use @(--custom))
|
|
270
|
-
* - @-webkit-foo → NOT detected (starts with hyphen, use @(-webkit-foo))
|
|
271
|
-
*
|
|
272
|
-
* @param cssZone - The CSS zone content to scan
|
|
273
|
-
* @returns Array of StyleLookupShorthand objects with propName and indices
|
|
274
|
-
*/
|
|
275
|
-
findStyleLookupShorthands(cssZone: string): StyleLookupShorthand[];
|
|
276
|
-
/**
|
|
277
|
-
* Static version of findStyleLookupShorthands for use without Scanner instantiation.
|
|
278
|
-
* Used internally by transpiler to avoid creating unnecessary Scanner instances.
|
|
279
|
-
*
|
|
280
|
-
* Story 4.2: Style Lookup Shorthand
|
|
281
|
-
*
|
|
282
|
-
* @param cssZone - The CSS zone content to scan
|
|
283
|
-
* @returns Array of StyleLookupShorthand objects with propName and indices
|
|
284
|
-
*/
|
|
285
|
-
static findStyleLookupShorthandsStatic(cssZone: string): StyleLookupShorthand[];
|
|
286
|
-
/**
|
|
287
|
-
* Checks if a character is a valid CSS identifier character.
|
|
288
|
-
* Valid: a-z, A-Z, 0-9, -, _
|
|
289
|
-
*/
|
|
290
|
-
private static isCssIdentifierChar;
|
|
291
267
|
/**
|
|
292
268
|
* Strips // single-line comments from CSS zone.
|
|
293
269
|
*
|
|
@@ -299,7 +275,7 @@ export declare class Scanner {
|
|
|
299
275
|
* - Full-line comments remove the entire line
|
|
300
276
|
* - Inline comments preserve content before //
|
|
301
277
|
*
|
|
302
|
-
* Note: url() is protected here (unlike $param
|
|
278
|
+
* Note: url() is protected here (unlike $param) because
|
|
303
279
|
* url(https://...) contains // as part of the URL protocol.
|
|
304
280
|
*
|
|
305
281
|
* @param cssZone - The CSS zone content to process
|
package/dist/scanner.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../src/scanner.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,6DAA6D;IAC7D,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,yEAAyE;IACzE,QAAQ,EAAE,MAAM,CAAC;IACjB,sDAAsD;IACtD,OAAO,EAAE,MAAM,CAAC;IAChB,wCAAwC;IACxC,YAAY,EAAE,OAAO,CAAC;CACvB;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,kGAAkG;IAClG,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,gFAAgF;IAChF,mBAAmB,EAAE,MAAM,EAAE,CAAC;CAC/B;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,oDAAoD;IACpD,QAAQ,EAAE,MAAM,CAAC;IACjB,mDAAmD;IACnD,UAAU,EAAE,MAAM,CAAC;IACnB,6DAA6D;IAC7D,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,uEAAuE;IACvE,OAAO,EAAE,MAAM,CAAC;IAChB,gDAAgD;IAChD,UAAU,EAAE,MAAM,CAAC;IACnB,0DAA0D;IAC1D,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED
|
|
1
|
+
{"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../src/scanner.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,6DAA6D;IAC7D,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,yEAAyE;IACzE,QAAQ,EAAE,MAAM,CAAC;IACjB,sDAAsD;IACtD,OAAO,EAAE,MAAM,CAAC;IAChB,wCAAwC;IACxC,YAAY,EAAE,OAAO,CAAC;CACvB;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,kGAAkG;IAClG,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,gFAAgF;IAChF,mBAAmB,EAAE,MAAM,EAAE,CAAC;CAC/B;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,oDAAoD;IACpD,QAAQ,EAAE,MAAM,CAAC;IACjB,mDAAmD;IACnD,UAAU,EAAE,MAAM,CAAC;IACnB,6DAA6D;IAC7D,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,uEAAuE;IACvE,OAAO,EAAE,MAAM,CAAC;IAChB,gDAAgD;IAChD,UAAU,EAAE,MAAM,CAAC;IACnB,0DAA0D;IAC1D,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;GAUG;AACH,qBAAa,OAAO;IAClB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;gBAEpB,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAE,WAAgB;IAMtD;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,aAAa,IAAI,SAAS;IAmD1B;;;;;;;;;;;;;;;;;;OAkBG;IACH,OAAO,CAAC,eAAe;IAOvB;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAgCxB;;OAEG;IACH,OAAO,CAAC,SAAS;IAQjB;;;;;;OAMG;IACH,IAAI,IAAI,UAAU;IAOlB;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe;IA0FjD;;OAEG;IACH,OAAO,CAAC,aAAa;IAQrB;;OAEG;IACH,OAAO,CAAC,eAAe;IAQvB;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAgBjC;IAEH;;;;;;;;;;;;;;;;;OAiBG;IACH,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB,EAAE;IAI1D;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,CAAC,2BAA2B,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB,EAAE;IAwGvE;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,EAAE;IAItD;;;;;;;;OAQG;IACH,MAAM,CAAC,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,EAAE;IA8EnE;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAIhC;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAI/B;;;;;;;;;;;;;;;;;OAiBG;IACH,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAI1C;;;;;;;;;OASG;IACH,MAAM,CAAC,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IA6GvD;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,mBAAmB;CAOnC"}
|
package/dist/scanner.js
CHANGED
|
@@ -28,49 +28,69 @@ export class Scanner {
|
|
|
28
28
|
// Future: include filename in error messages for better debugging
|
|
29
29
|
}
|
|
30
30
|
/**
|
|
31
|
-
* Finds the ---
|
|
32
|
-
*
|
|
33
|
-
* Story 2.1: Zone detection
|
|
34
|
-
*
|
|
35
|
-
* Rules:
|
|
36
|
-
* -
|
|
37
|
-
* -
|
|
38
|
-
* -
|
|
39
|
-
* -
|
|
31
|
+
* Finds the --- delimiters and splits source into preamble and CSS zones.
|
|
32
|
+
*
|
|
33
|
+
* Story 2.1: Zone detection (updated Story 10.1: Preamble Format Change)
|
|
34
|
+
*
|
|
35
|
+
* Rules for surrounding delimiters:
|
|
36
|
+
* - Opening delimiter must be on line 0 (first line of file)
|
|
37
|
+
* - Delimiter must be exactly "---" at column 0 (start of line)
|
|
38
|
+
* - May have extra dashes: "------"
|
|
39
|
+
* - May have optional comment after space: "--- comment text"
|
|
40
|
+
* - "---nospace" is NOT a delimiter (no space before text, not extra dashes)
|
|
41
|
+
* - Second delimiter closes the preamble
|
|
42
|
+
* - Must NOT be inside a multi-line comment in CSS zone
|
|
43
|
+
*
|
|
44
|
+
* Format:
|
|
45
|
+
* ```
|
|
46
|
+
* --- optional comment
|
|
47
|
+
* JS preamble code
|
|
48
|
+
* --- optional comment
|
|
49
|
+
* CSS zone
|
|
50
|
+
* ```
|
|
40
51
|
*
|
|
41
52
|
* Note: Line endings are normalized to \n during processing.
|
|
42
|
-
* When no
|
|
53
|
+
* When no opening delimiter is found on line 0, cssZone returns the original source unchanged.
|
|
43
54
|
*
|
|
44
55
|
* @returns Zone split result with preamble, cssZone, and hasSeparator
|
|
45
|
-
* @throws LassTranspileError if multiple separators found
|
|
46
56
|
*/
|
|
47
57
|
findSeparator() {
|
|
48
58
|
// Normalize line endings to \n for consistent processing
|
|
49
59
|
const normalized = this.source.replace(/\r\n/g, '\n').replace(/\r/g, '\n');
|
|
50
60
|
const lines = normalized.split('\n');
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
// Check if this line is the separator (only if not inside a block comment)
|
|
55
|
-
if (!this.isInBlockComment(lines, i) && this.isSeparatorLine(line)) {
|
|
56
|
-
if (separatorLineIndex !== -1) {
|
|
57
|
-
// Multiple separators found
|
|
58
|
-
throw LassTranspileError.at('Multiple --- separators found. Only one is allowed per file.', ErrorCategory.SCAN, i + 1, 1, this.getOffset(lines, i));
|
|
59
|
-
}
|
|
60
|
-
separatorLineIndex = i;
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
if (separatorLineIndex === -1) {
|
|
64
|
-
// No separator - entire file is CSS zone
|
|
61
|
+
// Check if line 0 is the opening delimiter
|
|
62
|
+
if (lines.length === 0 || !this.isSeparatorLine(lines[0])) {
|
|
63
|
+
// No opening delimiter on line 0 - entire file is CSS zone
|
|
65
64
|
return {
|
|
66
65
|
preamble: '',
|
|
67
66
|
cssZone: this.source,
|
|
68
67
|
hasSeparator: false,
|
|
69
68
|
};
|
|
70
69
|
}
|
|
71
|
-
//
|
|
72
|
-
|
|
73
|
-
|
|
70
|
+
// Opening delimiter found on line 0. Find the closing delimiter.
|
|
71
|
+
let closingLineIndex = -1;
|
|
72
|
+
for (let i = 1; i < lines.length; i++) {
|
|
73
|
+
const line = lines[i];
|
|
74
|
+
// Check if this line is the closing delimiter (only if not inside a block comment)
|
|
75
|
+
// Note: We only check for comments in what will become the CSS zone (after closing)
|
|
76
|
+
// The preamble is JS, so we don't apply CSS comment logic there
|
|
77
|
+
if (this.isSeparatorLine(line)) {
|
|
78
|
+
closingLineIndex = i;
|
|
79
|
+
break; // First delimiter after opening is the closing delimiter
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
if (closingLineIndex === -1) {
|
|
83
|
+
// No closing delimiter - entire file after line 0 is JS preamble, empty CSS zone
|
|
84
|
+
const preambleLines = lines.slice(1);
|
|
85
|
+
return {
|
|
86
|
+
preamble: preambleLines.join('\n'),
|
|
87
|
+
cssZone: '',
|
|
88
|
+
hasSeparator: true,
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
// Split at delimiters
|
|
92
|
+
const preambleLines = lines.slice(1, closingLineIndex);
|
|
93
|
+
const cssLines = lines.slice(closingLineIndex + 1);
|
|
74
94
|
return {
|
|
75
95
|
preamble: preambleLines.join('\n'),
|
|
76
96
|
cssZone: cssLines.join('\n'),
|
|
@@ -78,13 +98,29 @@ export class Scanner {
|
|
|
78
98
|
};
|
|
79
99
|
}
|
|
80
100
|
/**
|
|
81
|
-
* Checks if a line is the ---
|
|
82
|
-
* Must be exactly "---" with optional
|
|
101
|
+
* Checks if a line is the --- delimiter.
|
|
102
|
+
* Must be exactly "---" with optional extra dashes or comment.
|
|
103
|
+
*
|
|
104
|
+
* Story 8.1: Separator Comment Support
|
|
105
|
+
* Story 10.1: Preamble Format Change (updated regex)
|
|
106
|
+
*
|
|
107
|
+
* Matches:
|
|
108
|
+
* - "---" (bare three dashes)
|
|
109
|
+
* - "--- comment" (three dashes + space + comment text)
|
|
110
|
+
* - "---\tcomment" (three dashes + tab + comment text)
|
|
111
|
+
* - "------" (three+ dashes for visual separator)
|
|
112
|
+
* - "--- title ---" (decorative comment style)
|
|
113
|
+
*
|
|
114
|
+
* Does NOT match:
|
|
115
|
+
* - "---nospace" (no whitespace before text, not extra dashes)
|
|
116
|
+
* - " ---" (leading whitespace)
|
|
117
|
+
* - "--" (only two dashes)
|
|
83
118
|
*/
|
|
84
119
|
isSeparatorLine(line) {
|
|
85
|
-
//
|
|
86
|
-
//
|
|
87
|
-
|
|
120
|
+
// ^--- line must start with exactly three dashes
|
|
121
|
+
// (\s.*|-*) followed by either: whitespace + anything (comment), OR more dashes
|
|
122
|
+
// $ end of line
|
|
123
|
+
return /^---(\s.*|-*)$/.test(line);
|
|
88
124
|
}
|
|
89
125
|
/**
|
|
90
126
|
* Checks if line at index is inside a block comment.
|
|
@@ -506,181 +542,6 @@ export class Scanner {
|
|
|
506
542
|
static isIdentifierChar(char) {
|
|
507
543
|
return /^[a-zA-Z0-9_$]$/.test(char);
|
|
508
544
|
}
|
|
509
|
-
/**
|
|
510
|
-
* Finds @prop shorthand accessors in CSS zone.
|
|
511
|
-
*
|
|
512
|
-
* Story 4.2: Style Lookup Shorthand
|
|
513
|
-
*
|
|
514
|
-
* Detection rules:
|
|
515
|
-
* - @prop in CSS value position (after :) is a Lass shorthand accessor
|
|
516
|
-
* - @prop shorthand only works when identifier starts with a letter [a-zA-Z]
|
|
517
|
-
* - Identifier continues with letters, digits, hyphens, underscores
|
|
518
|
-
* - NOT detected inside {{ }} script blocks (use explicit @(prop) there)
|
|
519
|
-
* - NOT detected inside protected contexts: strings, comments, url()
|
|
520
|
-
*
|
|
521
|
-
* Examples:
|
|
522
|
-
* - @border → shorthand for @(border)
|
|
523
|
-
* - @border-color → shorthand for @(border-color)
|
|
524
|
-
* - @--custom → NOT detected (starts with hyphen, use @(--custom))
|
|
525
|
-
* - @-webkit-foo → NOT detected (starts with hyphen, use @(-webkit-foo))
|
|
526
|
-
*
|
|
527
|
-
* @param cssZone - The CSS zone content to scan
|
|
528
|
-
* @returns Array of StyleLookupShorthand objects with propName and indices
|
|
529
|
-
*/
|
|
530
|
-
findStyleLookupShorthands(cssZone) {
|
|
531
|
-
return Scanner.findStyleLookupShorthandsStatic(cssZone);
|
|
532
|
-
}
|
|
533
|
-
/**
|
|
534
|
-
* Static version of findStyleLookupShorthands for use without Scanner instantiation.
|
|
535
|
-
* Used internally by transpiler to avoid creating unnecessary Scanner instances.
|
|
536
|
-
*
|
|
537
|
-
* Story 4.2: Style Lookup Shorthand
|
|
538
|
-
*
|
|
539
|
-
* @param cssZone - The CSS zone content to scan
|
|
540
|
-
* @returns Array of StyleLookupShorthand objects with propName and indices
|
|
541
|
-
*/
|
|
542
|
-
static findStyleLookupShorthandsStatic(cssZone) {
|
|
543
|
-
const shorthands = [];
|
|
544
|
-
if (!cssZone) {
|
|
545
|
-
return shorthands;
|
|
546
|
-
}
|
|
547
|
-
// Context tracking for protected zones (strings, comments)
|
|
548
|
-
// Note: url() is NOT a protected context - @prop inside url(@path) IS detected
|
|
549
|
-
const state = createContextState();
|
|
550
|
-
const contextStack = [{ type: 'css', braceDepth: 0 }];
|
|
551
|
-
// Track if we're in value position (after :)
|
|
552
|
-
let inValuePosition = false;
|
|
553
|
-
let i = 0;
|
|
554
|
-
while (i < cssZone.length) {
|
|
555
|
-
const char = cssZone[i];
|
|
556
|
-
const nextChar = cssZone[i + 1];
|
|
557
|
-
// Update context state (handles strings and comments)
|
|
558
|
-
const consumed = updateContextState(cssZone, i, state);
|
|
559
|
-
if (consumed === 2) {
|
|
560
|
-
i += 2;
|
|
561
|
-
continue;
|
|
562
|
-
}
|
|
563
|
-
// Skip string quote characters (already handled by updateContextState)
|
|
564
|
-
if (char === '"' || char === "'") {
|
|
565
|
-
i++;
|
|
566
|
-
continue;
|
|
567
|
-
}
|
|
568
|
-
// Skip if in protected context (strings, comments)
|
|
569
|
-
if (isInProtectedContext(state)) {
|
|
570
|
-
i++;
|
|
571
|
-
continue;
|
|
572
|
-
}
|
|
573
|
-
// Track context transitions
|
|
574
|
-
const currentEntry = contextStack[contextStack.length - 1];
|
|
575
|
-
// Check for {{ - enters JS context
|
|
576
|
-
if (char === '{' && nextChar === '{') {
|
|
577
|
-
contextStack.push({ type: 'js', braceDepth: 0 });
|
|
578
|
-
i += 2;
|
|
579
|
-
continue;
|
|
580
|
-
}
|
|
581
|
-
// Check for }} - exits JS context
|
|
582
|
-
if (char === '}' && nextChar === '}') {
|
|
583
|
-
// Pop until we find a 'js' context (may need to pop @{ css first)
|
|
584
|
-
while (contextStack.length > 1 && contextStack[contextStack.length - 1].type !== 'js') {
|
|
585
|
-
contextStack.pop();
|
|
586
|
-
}
|
|
587
|
-
if (contextStack.length > 1) {
|
|
588
|
-
contextStack.pop(); // pop the 'js'
|
|
589
|
-
}
|
|
590
|
-
i += 2;
|
|
591
|
-
continue;
|
|
592
|
-
}
|
|
593
|
-
// Check for @{ - enters CSS context (style block inside JS)
|
|
594
|
-
if (char === '@' && nextChar === '{' && currentEntry.type === 'js') {
|
|
595
|
-
contextStack.push({ type: 'css', braceDepth: 0 });
|
|
596
|
-
i += 2;
|
|
597
|
-
continue;
|
|
598
|
-
}
|
|
599
|
-
// Track single braces within @{ CSS context (for nested CSS blocks)
|
|
600
|
-
if (currentEntry.type === 'css' && contextStack.length > 1) {
|
|
601
|
-
// We're in a @{ block (not the root CSS context)
|
|
602
|
-
if (char === '{') {
|
|
603
|
-
currentEntry.braceDepth++;
|
|
604
|
-
inValuePosition = false;
|
|
605
|
-
i++;
|
|
606
|
-
continue;
|
|
607
|
-
}
|
|
608
|
-
if (char === '}') {
|
|
609
|
-
if (currentEntry.braceDepth > 0) {
|
|
610
|
-
// Closing a nested CSS block within @{
|
|
611
|
-
currentEntry.braceDepth--;
|
|
612
|
-
inValuePosition = false;
|
|
613
|
-
}
|
|
614
|
-
else {
|
|
615
|
-
// Closing the @{ block itself
|
|
616
|
-
contextStack.pop();
|
|
617
|
-
}
|
|
618
|
-
i++;
|
|
619
|
-
continue;
|
|
620
|
-
}
|
|
621
|
-
}
|
|
622
|
-
// Get current context type
|
|
623
|
-
const currentContext = contextStack[contextStack.length - 1].type;
|
|
624
|
-
// Skip if in JS context (not inside a @{ block)
|
|
625
|
-
if (currentContext === 'js') {
|
|
626
|
-
i++;
|
|
627
|
-
continue;
|
|
628
|
-
}
|
|
629
|
-
// Track colon for value position
|
|
630
|
-
if (char === ':') {
|
|
631
|
-
inValuePosition = true;
|
|
632
|
-
i++;
|
|
633
|
-
continue;
|
|
634
|
-
}
|
|
635
|
-
// Reset on semicolon (end of declaration)
|
|
636
|
-
if (char === ';') {
|
|
637
|
-
inValuePosition = false;
|
|
638
|
-
i++;
|
|
639
|
-
continue;
|
|
640
|
-
}
|
|
641
|
-
// Reset on single opening brace (entering a new CSS block)
|
|
642
|
-
if (char === '{') {
|
|
643
|
-
inValuePosition = false;
|
|
644
|
-
i++;
|
|
645
|
-
continue;
|
|
646
|
-
}
|
|
647
|
-
// Reset on single closing brace (end of block)
|
|
648
|
-
if (char === '}') {
|
|
649
|
-
inValuePosition = false;
|
|
650
|
-
i++;
|
|
651
|
-
continue;
|
|
652
|
-
}
|
|
653
|
-
// Check for @ followed by letter (shorthand only works when starting with letter)
|
|
654
|
-
if (char === '@' && nextChar !== undefined && /^[a-zA-Z]$/.test(nextChar)) {
|
|
655
|
-
// Only detect in value position
|
|
656
|
-
if (inValuePosition) {
|
|
657
|
-
const startIndex = i;
|
|
658
|
-
i++; // Move past @
|
|
659
|
-
// Consume CSS identifier characters (letters, digits, hyphens, underscores)
|
|
660
|
-
let propName = '';
|
|
661
|
-
while (i < cssZone.length && Scanner.isCssIdentifierChar(cssZone[i])) {
|
|
662
|
-
propName += cssZone[i];
|
|
663
|
-
i++;
|
|
664
|
-
}
|
|
665
|
-
shorthands.push({
|
|
666
|
-
propName,
|
|
667
|
-
startIndex,
|
|
668
|
-
endIndex: i,
|
|
669
|
-
});
|
|
670
|
-
continue;
|
|
671
|
-
}
|
|
672
|
-
}
|
|
673
|
-
i++;
|
|
674
|
-
}
|
|
675
|
-
return shorthands;
|
|
676
|
-
}
|
|
677
|
-
/**
|
|
678
|
-
* Checks if a character is a valid CSS identifier character.
|
|
679
|
-
* Valid: a-z, A-Z, 0-9, -, _
|
|
680
|
-
*/
|
|
681
|
-
static isCssIdentifierChar(char) {
|
|
682
|
-
return /^[a-zA-Z0-9_-]$/.test(char);
|
|
683
|
-
}
|
|
684
545
|
/**
|
|
685
546
|
* Strips // single-line comments from CSS zone.
|
|
686
547
|
*
|
|
@@ -692,7 +553,7 @@ export class Scanner {
|
|
|
692
553
|
* - Full-line comments remove the entire line
|
|
693
554
|
* - Inline comments preserve content before //
|
|
694
555
|
*
|
|
695
|
-
* Note: url() is protected here (unlike $param
|
|
556
|
+
* Note: url() is protected here (unlike $param) because
|
|
696
557
|
* url(https://...) contains // as part of the URL protocol.
|
|
697
558
|
*
|
|
698
559
|
* @param cssZone - The CSS zone content to process
|
package/dist/scanner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scanner.js","sourceRoot":"","sources":["../src/scanner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"scanner.js","sourceRoot":"","sources":["../src/scanner.ts"],"names":[],"mappings":"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"}
|
package/dist/scope-tracker.d.ts
CHANGED
|
@@ -113,7 +113,7 @@ export declare function cutByBraces(cssZone: string): ScopeSlices;
|
|
|
113
113
|
* Finds the value of a CSS property by searching the scope tree.
|
|
114
114
|
*
|
|
115
115
|
* Story 3.3: Algorithm using parent references:
|
|
116
|
-
* 1. Search current slice (up to the position before @prop)
|
|
116
|
+
* 1. Search current slice (up to the position before @(prop))
|
|
117
117
|
* 2. Search earlier sibling slices (same parent, earlier index)
|
|
118
118
|
* 3. Walk up to parent and repeat
|
|
119
119
|
* 4. Stop when we reach a root slice (parent: null) and exhaust all earlier siblings
|
|
@@ -123,7 +123,7 @@ export declare function cutByBraces(cssZone: string): ScopeSlices;
|
|
|
123
123
|
*
|
|
124
124
|
* @param propName - The property name to look up (e.g., "border")
|
|
125
125
|
* @param slices - The slices from cutByBraces()
|
|
126
|
-
* @param currentIndex - Index of the slice containing the @prop reference
|
|
126
|
+
* @param currentIndex - Index of the slice containing the @(prop) reference
|
|
127
127
|
* @param positionInSlice - Character position in current slice (for self-reference protection)
|
|
128
128
|
* @returns The property value, or empty string if not found
|
|
129
129
|
*/
|
package/dist/scope-tracker.js
CHANGED
|
@@ -215,7 +215,7 @@ function getContextOpenedBy(contextStack) {
|
|
|
215
215
|
* Finds the value of a CSS property by searching the scope tree.
|
|
216
216
|
*
|
|
217
217
|
* Story 3.3: Algorithm using parent references:
|
|
218
|
-
* 1. Search current slice (up to the position before @prop)
|
|
218
|
+
* 1. Search current slice (up to the position before @(prop))
|
|
219
219
|
* 2. Search earlier sibling slices (same parent, earlier index)
|
|
220
220
|
* 3. Walk up to parent and repeat
|
|
221
221
|
* 4. Stop when we reach a root slice (parent: null) and exhaust all earlier siblings
|
|
@@ -225,7 +225,7 @@ function getContextOpenedBy(contextStack) {
|
|
|
225
225
|
*
|
|
226
226
|
* @param propName - The property name to look up (e.g., "border")
|
|
227
227
|
* @param slices - The slices from cutByBraces()
|
|
228
|
-
* @param currentIndex - Index of the slice containing the @prop reference
|
|
228
|
+
* @param currentIndex - Index of the slice containing the @(prop) reference
|
|
229
229
|
* @param positionInSlice - Character position in current slice (for self-reference protection)
|
|
230
230
|
* @returns The property value, or empty string if not found
|
|
231
231
|
*/
|
package/dist/transpiler.d.ts
CHANGED
|
@@ -27,24 +27,7 @@ export declare function detectZones(source: string, options: TranspileOptions):
|
|
|
27
27
|
*/
|
|
28
28
|
export declare function stripLineComments(cssZone: string): string;
|
|
29
29
|
/**
|
|
30
|
-
* Step
|
|
31
|
-
*
|
|
32
|
-
* Story 4.2: Style Lookup Shorthand
|
|
33
|
-
*
|
|
34
|
-
* Finds @prop patterns in CSS value position and converts them to @(prop).
|
|
35
|
-
* This runs BEFORE @(prop) resolution so all lookups are handled uniformly.
|
|
36
|
-
*
|
|
37
|
-
* Detection rules:
|
|
38
|
-
* - @prop shorthand only works when identifier starts with a letter [a-zA-Z]
|
|
39
|
-
* - NOT detected inside {{ }} script blocks
|
|
40
|
-
* - NOT detected inside protected contexts: strings, comments, url()
|
|
41
|
-
*
|
|
42
|
-
* @param cssZone - The CSS zone content
|
|
43
|
-
* @returns CSS zone with @prop normalized to @(prop)
|
|
44
|
-
*/
|
|
45
|
-
export declare function normalizeStyleLookupShorthands(cssZone: string): string;
|
|
46
|
-
/**
|
|
47
|
-
* Step 3b: Resolve @(prop) accessors in CSS zone.
|
|
30
|
+
* Step 3: Resolve @(prop) accessors in CSS zone.
|
|
48
31
|
*
|
|
49
32
|
* Story 3.2: Basic Property Lookup
|
|
50
33
|
* Story 3.3: Lookup in {{ }} Context
|
package/dist/transpiler.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transpiler.d.ts","sourceRoot":"","sources":["../src/transpiler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAM7G;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,aAAa,CASpF;AAMD;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEzD;AAMD
|
|
1
|
+
{"version":3,"file":"transpiler.d.ts","sourceRoot":"","sources":["../src/transpiler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAM7G;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,aAAa,CASpF;AAMD;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEzD;AAMD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,GAAG,MAAM,CAsF5F;AAMD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,GAAG,sBAAsB,CA2B1G;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CA8BlE;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,8DAA8D;IAC9D,kBAAkB,EAAE,OAAO,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,2BAA2B,CAgF9E;AAoOD;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,OAAO,EAAE,OAAO,EAAE,gBAAgB,GAAG,iBAAiB,CA6C7H;AAMD;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,iBAAiB,GAAG,MAAM,CAgCrF"}
|