@weave-framework/compiler 0.2.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/LICENSE +21 -0
- package/dist/ast.d.ts +243 -0
- package/dist/ast.d.ts.map +1 -0
- package/dist/ast.js +3 -0
- package/dist/ast.js.map +1 -0
- package/dist/codegen.d.ts +25 -0
- package/dist/codegen.d.ts.map +1 -0
- package/dist/codegen.js +543 -0
- package/dist/codegen.js.map +1 -0
- package/dist/component.d.ts +60 -0
- package/dist/component.d.ts.map +1 -0
- package/dist/component.js +116 -0
- package/dist/component.js.map +1 -0
- package/dist/css.d.ts +26 -0
- package/dist/css.d.ts.map +1 -0
- package/dist/css.js +344 -0
- package/dist/css.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -0
- package/dist/infer.d.ts +13 -0
- package/dist/infer.d.ts.map +1 -0
- package/dist/infer.js +113 -0
- package/dist/infer.js.map +1 -0
- package/dist/parser.d.ts +15 -0
- package/dist/parser.d.ts.map +1 -0
- package/dist/parser.js +721 -0
- package/dist/parser.js.map +1 -0
- package/dist/scope.d.ts +71 -0
- package/dist/scope.d.ts.map +1 -0
- package/dist/scope.js +233 -0
- package/dist/scope.js.map +1 -0
- package/dist/sources.d.ts +52 -0
- package/dist/sources.d.ts.map +1 -0
- package/dist/sources.js +163 -0
- package/dist/sources.js.map +1 -0
- package/package.json +31 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"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"}
|
package/dist/scope.d.ts
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Expression scope rewriting.
|
|
3
|
+
*
|
|
4
|
+
* Template expressions reference two kinds of names:
|
|
5
|
+
* - **ctx bindings** — what `setup()` returns. Rewritten to `ctx.<name>`, so
|
|
6
|
+
* globals (Math, JSON, document, …) are left untouched.
|
|
7
|
+
* - **template locals** — framework-provided reactive values from `@for`
|
|
8
|
+
* (the loop item + `$index`/`$first`/…), `@let`, and `@if (…; as x)`. These
|
|
9
|
+
* read as plain values in the template (Angular-style) but are backed by
|
|
10
|
+
* accessors, so a reference like `todo` rewrites to `<accessor>()`.
|
|
11
|
+
*
|
|
12
|
+
* Everything else (globals, locally-bound arrow params, property names after
|
|
13
|
+
* `.`) is left as-is. This is a lexical tokenizer, not a full JS parser; the
|
|
14
|
+
* known edge cases (object shorthand, a binding reused as a local param) are
|
|
15
|
+
* resolved in M8 with the TypeScript AST. Over-rewriting is the only risk and
|
|
16
|
+
* it is rare.
|
|
17
|
+
*/
|
|
18
|
+
/** How a referenced name is resolved. */
|
|
19
|
+
export type Binding = {
|
|
20
|
+
kind: 'ctx';
|
|
21
|
+
} | {
|
|
22
|
+
kind: 'call';
|
|
23
|
+
accessor: string;
|
|
24
|
+
} | {
|
|
25
|
+
kind: 'local';
|
|
26
|
+
};
|
|
27
|
+
export type Scope = Map<string, Binding>;
|
|
28
|
+
/**
|
|
29
|
+
* A maximal run of characters copied **verbatim** from the source expression
|
|
30
|
+
* into the generated code, identical in both (so `len` applies to each side).
|
|
31
|
+
* Used by `@weave-framework/language-server` to build Volar's bidirectional source↔virtual
|
|
32
|
+
* mappings: every source character is covered by exactly one segment, while
|
|
33
|
+
* synthesized text (the `ctxRef.` prefix, an accessor `()`) is intentionally left
|
|
34
|
+
* unmapped. Offsets are relative to the start of `expr` / `code` respectively.
|
|
35
|
+
*/
|
|
36
|
+
export interface RewriteSegment {
|
|
37
|
+
/** offset into the source expression */
|
|
38
|
+
src: number;
|
|
39
|
+
/** offset into the generated `code` */
|
|
40
|
+
gen: number;
|
|
41
|
+
/** length of the verbatim run (same on both sides) */
|
|
42
|
+
len: number;
|
|
43
|
+
}
|
|
44
|
+
export interface RewriteResult {
|
|
45
|
+
code: string;
|
|
46
|
+
/** whether any binding (ctx or local) was referenced ⇒ the expression is reactive */
|
|
47
|
+
reactive: boolean;
|
|
48
|
+
/** verbatim src↔gen runs, in generated order (for editor tooling source maps) */
|
|
49
|
+
segments: RewriteSegment[];
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Rewrite `expr` against `scope`, prefixing ctx bindings with `ctxRef` (default
|
|
53
|
+
* `ctx`, the runtime context object; `@weave-framework/check` passes `__ctx`, its typed
|
|
54
|
+
* stand-in). Template locals emit either an accessor call (runtime) or the bare
|
|
55
|
+
* name (`kind: 'local'`, the check pass where they are real lexical bindings).
|
|
56
|
+
*
|
|
57
|
+
* Alongside `code`, returns `segments` — the verbatim src↔gen character runs — so
|
|
58
|
+
* editor tooling can map a position in the generated module back to the template.
|
|
59
|
+
*/
|
|
60
|
+
export declare function rewrite(expr: string, scope: Scope, ctxRef?: string): RewriteResult;
|
|
61
|
+
/** Build a scope from a list of ctx binding names. */
|
|
62
|
+
export declare function ctxScope(names: Iterable<string>): Scope;
|
|
63
|
+
/** Derive a child scope, adding template-local accessors. */
|
|
64
|
+
export declare function childScope(parent: Scope, locals: Record<string, string>): Scope;
|
|
65
|
+
/**
|
|
66
|
+
* Free identifiers in `expr` that should resolve to component data: every name
|
|
67
|
+
* that is not a property access, not a JS global/keyword, and not an arrow
|
|
68
|
+
* parameter. The basis for auto-scope (see {@link inferCtxNames}).
|
|
69
|
+
*/
|
|
70
|
+
export declare function freeIdentifiers(expr: string): string[];
|
|
71
|
+
//# sourceMappingURL=scope.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scope.d.ts","sourceRoot":"","sources":["../src/scope.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAKH,yCAAyC;AACzC,MAAM,MAAM,OAAO,GACf;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,GACf;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC;AAEtB,MAAM,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEzC;;;;;;;GAOG;AACH,MAAM,WAAW,cAAc;IAC7B,wCAAwC;IACxC,GAAG,EAAE,MAAM,CAAC;IACZ,uCAAuC;IACvC,GAAG,EAAE,MAAM,CAAC;IACZ,sDAAsD;IACtD,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,qFAAqF;IACrF,QAAQ,EAAE,OAAO,CAAC;IAClB,iFAAiF;IACjF,QAAQ,EAAE,cAAc,EAAE,CAAC;CAC5B;AAED;;;;;;;;GAQG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,GAAE,MAAc,GAAG,aAAa,CA2EzF;AAED,sDAAsD;AACtD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,KAAK,CAIvD;AAED,6DAA6D;AAC7D,wBAAgB,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,KAAK,CAM/E;AAiED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAuBtD"}
|
package/dist/scope.js
ADDED
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Expression scope rewriting.
|
|
3
|
+
*
|
|
4
|
+
* Template expressions reference two kinds of names:
|
|
5
|
+
* - **ctx bindings** — what `setup()` returns. Rewritten to `ctx.<name>`, so
|
|
6
|
+
* globals (Math, JSON, document, …) are left untouched.
|
|
7
|
+
* - **template locals** — framework-provided reactive values from `@for`
|
|
8
|
+
* (the loop item + `$index`/`$first`/…), `@let`, and `@if (…; as x)`. These
|
|
9
|
+
* read as plain values in the template (Angular-style) but are backed by
|
|
10
|
+
* accessors, so a reference like `todo` rewrites to `<accessor>()`.
|
|
11
|
+
*
|
|
12
|
+
* Everything else (globals, locally-bound arrow params, property names after
|
|
13
|
+
* `.`) is left as-is. This is a lexical tokenizer, not a full JS parser; the
|
|
14
|
+
* known edge cases (object shorthand, a binding reused as a local param) are
|
|
15
|
+
* resolved in M8 with the TypeScript AST. Over-rewriting is the only risk and
|
|
16
|
+
* it is rare.
|
|
17
|
+
*/
|
|
18
|
+
const ID_START = /[A-Za-z_$]/;
|
|
19
|
+
const ID_CHAR = /[A-Za-z0-9_$]/;
|
|
20
|
+
/**
|
|
21
|
+
* Rewrite `expr` against `scope`, prefixing ctx bindings with `ctxRef` (default
|
|
22
|
+
* `ctx`, the runtime context object; `@weave-framework/check` passes `__ctx`, its typed
|
|
23
|
+
* stand-in). Template locals emit either an accessor call (runtime) or the bare
|
|
24
|
+
* name (`kind: 'local'`, the check pass where they are real lexical bindings).
|
|
25
|
+
*
|
|
26
|
+
* Alongside `code`, returns `segments` — the verbatim src↔gen character runs — so
|
|
27
|
+
* editor tooling can map a position in the generated module back to the template.
|
|
28
|
+
*/
|
|
29
|
+
export function rewrite(expr, scope, ctxRef = 'ctx') {
|
|
30
|
+
let out = '';
|
|
31
|
+
let reactive = false;
|
|
32
|
+
let i = 0;
|
|
33
|
+
const n = expr.length;
|
|
34
|
+
const segments = [];
|
|
35
|
+
// The current verbatim run, contiguous in both source and generated text.
|
|
36
|
+
let runSrc = -1;
|
|
37
|
+
let runGen = -1;
|
|
38
|
+
let runLen = 0;
|
|
39
|
+
const flush = () => {
|
|
40
|
+
if (runLen > 0)
|
|
41
|
+
segments.push({ src: runSrc, gen: runGen, len: runLen });
|
|
42
|
+
runLen = 0;
|
|
43
|
+
};
|
|
44
|
+
// Append `text` (== expr.slice(srcPos, srcPos+len)) verbatim, extending the
|
|
45
|
+
// current run when it stays contiguous on both sides, else starting a new one.
|
|
46
|
+
const copy = (srcPos, text) => {
|
|
47
|
+
const genPos = out.length;
|
|
48
|
+
if (runLen > 0 && runSrc + runLen === srcPos && runGen + runLen === genPos) {
|
|
49
|
+
runLen += text.length;
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
flush();
|
|
53
|
+
runSrc = srcPos;
|
|
54
|
+
runGen = genPos;
|
|
55
|
+
runLen = text.length;
|
|
56
|
+
}
|
|
57
|
+
out += text;
|
|
58
|
+
};
|
|
59
|
+
// Append synthesized text that has no source counterpart (leaves a gen-side gap).
|
|
60
|
+
const insert = (text) => {
|
|
61
|
+
flush();
|
|
62
|
+
out += text;
|
|
63
|
+
};
|
|
64
|
+
while (i < n) {
|
|
65
|
+
const c = expr[i];
|
|
66
|
+
if (c === '"' || c === "'" || c === '`') {
|
|
67
|
+
const end = scanString(expr, i);
|
|
68
|
+
copy(i, expr.slice(i, end));
|
|
69
|
+
i = end;
|
|
70
|
+
continue;
|
|
71
|
+
}
|
|
72
|
+
if (ID_START.test(c)) {
|
|
73
|
+
let j = i + 1;
|
|
74
|
+
while (j < n && ID_CHAR.test(expr[j]))
|
|
75
|
+
j++;
|
|
76
|
+
const name = expr.slice(i, j);
|
|
77
|
+
const isProperty = lastNonSpace(out) === '.';
|
|
78
|
+
const binding = scope.get(name);
|
|
79
|
+
if (binding && !isProperty) {
|
|
80
|
+
if (binding.kind === 'ctx') {
|
|
81
|
+
insert(`${ctxRef}.`);
|
|
82
|
+
copy(i, name);
|
|
83
|
+
}
|
|
84
|
+
else if (binding.kind === 'local') {
|
|
85
|
+
copy(i, name);
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
insert(`${binding.accessor}()`);
|
|
89
|
+
}
|
|
90
|
+
reactive = true;
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
copy(i, name);
|
|
94
|
+
}
|
|
95
|
+
i = j;
|
|
96
|
+
continue;
|
|
97
|
+
}
|
|
98
|
+
copy(i, c);
|
|
99
|
+
i++;
|
|
100
|
+
}
|
|
101
|
+
flush();
|
|
102
|
+
return { code: out, reactive, segments };
|
|
103
|
+
}
|
|
104
|
+
/** Build a scope from a list of ctx binding names. */
|
|
105
|
+
export function ctxScope(names) {
|
|
106
|
+
const scope = new Map();
|
|
107
|
+
for (const name of names)
|
|
108
|
+
scope.set(name, { kind: 'ctx' });
|
|
109
|
+
return scope;
|
|
110
|
+
}
|
|
111
|
+
/** Derive a child scope, adding template-local accessors. */
|
|
112
|
+
export function childScope(parent, locals) {
|
|
113
|
+
const scope = new Map(parent);
|
|
114
|
+
for (const [name, accessor] of Object.entries(locals)) {
|
|
115
|
+
scope.set(name, { kind: 'call', accessor });
|
|
116
|
+
}
|
|
117
|
+
return scope;
|
|
118
|
+
}
|
|
119
|
+
function lastNonSpace(s) {
|
|
120
|
+
for (let i = s.length - 1; i >= 0; i--) {
|
|
121
|
+
if (!/\s/.test(s[i]))
|
|
122
|
+
return s[i];
|
|
123
|
+
}
|
|
124
|
+
return '';
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* JS globals + keywords that a template expression may reference but that must
|
|
128
|
+
* NOT be rewritten to `ctx.*`. Used by auto-scope inference (the loader): every
|
|
129
|
+
* other free identifier is assumed to be component data. A lexical list now;
|
|
130
|
+
* M8 replaces inference with the TypeScript AST (`ReturnType<typeof setup>`).
|
|
131
|
+
*/
|
|
132
|
+
const NON_CTX = new Set([
|
|
133
|
+
// literals / keywords
|
|
134
|
+
'true', 'false', 'null', 'undefined', 'this', 'NaN', 'Infinity',
|
|
135
|
+
'typeof', 'instanceof', 'in', 'of', 'new', 'void', 'delete', 'await', 'yield',
|
|
136
|
+
'return', 'function', 'class', 'super', 'if', 'else', 'switch', 'case',
|
|
137
|
+
// built-in objects / functions
|
|
138
|
+
'Math', 'JSON', 'Object', 'Array', 'String', 'Number', 'Boolean', 'Date',
|
|
139
|
+
'RegExp', 'Map', 'Set', 'WeakMap', 'WeakSet', 'Symbol', 'Promise', 'BigInt',
|
|
140
|
+
'Error', 'TypeError', 'Intl', 'console', 'window', 'document', 'globalThis',
|
|
141
|
+
'parseInt', 'parseFloat', 'isNaN', 'isFinite', 'structuredClone',
|
|
142
|
+
'encodeURIComponent', 'decodeURIComponent', 'encodeURI', 'decodeURI',
|
|
143
|
+
'navigator', 'location', 'history', 'localStorage', 'sessionStorage',
|
|
144
|
+
'fetch', 'URL', 'URLSearchParams',
|
|
145
|
+
]);
|
|
146
|
+
/** Collect arrow-function parameter names in `expr` (so they aren't treated as ctx). */
|
|
147
|
+
function arrowParams(expr) {
|
|
148
|
+
const params = new Set();
|
|
149
|
+
const ID = /^[A-Za-z_$][\w$]*$/;
|
|
150
|
+
let at = expr.indexOf('=>');
|
|
151
|
+
while (at !== -1) {
|
|
152
|
+
let k = at - 1;
|
|
153
|
+
while (k >= 0 && /\s/.test(expr[k]))
|
|
154
|
+
k--;
|
|
155
|
+
if (expr[k] === ')') {
|
|
156
|
+
// (a, b, …) => … — walk back to the matching '('
|
|
157
|
+
let depth = 1;
|
|
158
|
+
let m = k - 1;
|
|
159
|
+
for (; m >= 0; m--) {
|
|
160
|
+
if (expr[m] === ')')
|
|
161
|
+
depth++;
|
|
162
|
+
else if (expr[m] === '(') {
|
|
163
|
+
depth--;
|
|
164
|
+
if (depth === 0)
|
|
165
|
+
break;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
for (const raw of expr.slice(m + 1, k).split(',')) {
|
|
169
|
+
const name = raw.trim().split(/[\s=:]/)[0].replace(/[{}[\]().]/g, '');
|
|
170
|
+
if (ID.test(name))
|
|
171
|
+
params.add(name);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
else {
|
|
175
|
+
// single bare param: x => …
|
|
176
|
+
let m = k;
|
|
177
|
+
while (m >= 0 && ID_CHAR.test(expr[m]))
|
|
178
|
+
m--;
|
|
179
|
+
const name = expr.slice(m + 1, k + 1);
|
|
180
|
+
if (ID.test(name))
|
|
181
|
+
params.add(name);
|
|
182
|
+
}
|
|
183
|
+
at = expr.indexOf('=>', at + 2);
|
|
184
|
+
}
|
|
185
|
+
return params;
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Free identifiers in `expr` that should resolve to component data: every name
|
|
189
|
+
* that is not a property access, not a JS global/keyword, and not an arrow
|
|
190
|
+
* parameter. The basis for auto-scope (see {@link inferCtxNames}).
|
|
191
|
+
*/
|
|
192
|
+
export function freeIdentifiers(expr) {
|
|
193
|
+
const out = new Set();
|
|
194
|
+
const params = arrowParams(expr);
|
|
195
|
+
let i = 0;
|
|
196
|
+
const n = expr.length;
|
|
197
|
+
while (i < n) {
|
|
198
|
+
const c = expr[i];
|
|
199
|
+
if (c === '"' || c === "'" || c === '`') {
|
|
200
|
+
i = scanString(expr, i);
|
|
201
|
+
continue;
|
|
202
|
+
}
|
|
203
|
+
if (ID_START.test(c)) {
|
|
204
|
+
let j = i + 1;
|
|
205
|
+
while (j < n && ID_CHAR.test(expr[j]))
|
|
206
|
+
j++;
|
|
207
|
+
const name = expr.slice(i, j);
|
|
208
|
+
const isProperty = lastNonSpace(expr.slice(0, i)) === '.';
|
|
209
|
+
if (!isProperty && !NON_CTX.has(name) && !params.has(name))
|
|
210
|
+
out.add(name);
|
|
211
|
+
i = j;
|
|
212
|
+
continue;
|
|
213
|
+
}
|
|
214
|
+
i++;
|
|
215
|
+
}
|
|
216
|
+
return [...out];
|
|
217
|
+
}
|
|
218
|
+
function scanString(s, start) {
|
|
219
|
+
const quote = s[start];
|
|
220
|
+
let i = start + 1;
|
|
221
|
+
while (i < s.length) {
|
|
222
|
+
const c = s[i];
|
|
223
|
+
if (c === '\\') {
|
|
224
|
+
i += 2;
|
|
225
|
+
continue;
|
|
226
|
+
}
|
|
227
|
+
if (c === quote)
|
|
228
|
+
return i + 1;
|
|
229
|
+
i++;
|
|
230
|
+
}
|
|
231
|
+
return s.length;
|
|
232
|
+
}
|
|
233
|
+
//# sourceMappingURL=scope.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scope.js","sourceRoot":"","sources":["../src/scope.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,MAAM,QAAQ,GAAW,YAAY,CAAC;AACtC,MAAM,OAAO,GAAW,eAAe,CAAC;AAmCxC;;;;;;;;GAQG;AACH,MAAM,UAAU,OAAO,CAAC,IAAY,EAAE,KAAY,EAAE,SAAiB,KAAK;IACxE,IAAI,GAAG,GAAW,EAAE,CAAC;IACrB,IAAI,QAAQ,GAAY,KAAK,CAAC;IAC9B,IAAI,CAAC,GAAW,CAAC,CAAC;IAClB,MAAM,CAAC,GAAW,IAAI,CAAC,MAAM,CAAC;IAE9B,MAAM,QAAQ,GAAqB,EAAE,CAAC;IACtC,0EAA0E;IAC1E,IAAI,MAAM,GAAW,CAAC,CAAC,CAAC;IACxB,IAAI,MAAM,GAAW,CAAC,CAAC,CAAC;IACxB,IAAI,MAAM,GAAW,CAAC,CAAC;IACvB,MAAM,KAAK,GAAG,GAAS,EAAE;QACvB,IAAI,MAAM,GAAG,CAAC;YAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;QACzE,MAAM,GAAG,CAAC,CAAC;IACb,CAAC,CAAC;IACF,4EAA4E;IAC5E,+EAA+E;IAC/E,MAAM,IAAI,GAAG,CAAC,MAAc,EAAE,IAAY,EAAQ,EAAE;QAClD,MAAM,MAAM,GAAW,GAAG,CAAC,MAAM,CAAC;QAClC,IAAI,MAAM,GAAG,CAAC,IAAI,MAAM,GAAG,MAAM,KAAK,MAAM,IAAI,MAAM,GAAG,MAAM,KAAK,MAAM,EAAE,CAAC;YAC3E,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC;QACxB,CAAC;aAAM,CAAC;YACN,KAAK,EAAE,CAAC;YACR,MAAM,GAAG,MAAM,CAAC;YAChB,MAAM,GAAG,MAAM,CAAC;YAChB,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QACvB,CAAC;QACD,GAAG,IAAI,IAAI,CAAC;IACd,CAAC,CAAC;IACF,kFAAkF;IAClF,MAAM,MAAM,GAAG,CAAC,IAAY,EAAQ,EAAE;QACpC,KAAK,EAAE,CAAC;QACR,GAAG,IAAI,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACb,MAAM,CAAC,GAAW,IAAI,CAAC,CAAC,CAAC,CAAC;QAE1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YACxC,MAAM,GAAG,GAAW,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YACxC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YAC5B,CAAC,GAAG,GAAG,CAAC;YACR,SAAS;QACX,CAAC;QAED,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC,GAAW,CAAC,GAAG,CAAC,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAAE,CAAC,EAAE,CAAC;YAC3C,MAAM,IAAI,GAAW,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACtC,MAAM,UAAU,GAAY,YAAY,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC;YACtD,MAAM,OAAO,GAAwB,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAErD,IAAI,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;gBAC3B,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;oBAC3B,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC;oBACrB,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;gBAChB,CAAC;qBAAM,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;oBACpC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;gBAChB,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,GAAG,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC;gBAClC,CAAC;gBACD,QAAQ,GAAG,IAAI,CAAC;YAClB,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YAChB,CAAC;YACD,CAAC,GAAG,CAAC,CAAC;YACN,SAAS;QACX,CAAC;QAED,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACX,CAAC,EAAE,CAAC;IACN,CAAC;IACD,KAAK,EAAE,CAAC;IAER,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AAC3C,CAAC;AAED,sDAAsD;AACtD,MAAM,UAAU,QAAQ,CAAC,KAAuB;IAC9C,MAAM,KAAK,GAAU,IAAI,GAAG,EAAE,CAAC;IAC/B,KAAK,MAAM,IAAI,IAAI,KAAK;QAAE,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3D,OAAO,KAAK,CAAC;AACf,CAAC;AAED,6DAA6D;AAC7D,MAAM,UAAU,UAAU,CAAC,MAAa,EAAE,MAA8B;IACtE,MAAM,KAAK,GAAU,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;IACrC,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACtD,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,YAAY,CAAC,CAAS;IAC7B,KAAK,IAAI,CAAC,GAAW,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;;;GAKG;AACH,MAAM,OAAO,GAAgB,IAAI,GAAG,CAAC;IACnC,sBAAsB;IACtB,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU;IAC/D,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO;IAC7E,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IACtE,+BAA+B;IAC/B,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM;IACxE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ;IAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY;IAC3E,UAAU,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,iBAAiB;IAChE,oBAAoB,EAAE,oBAAoB,EAAE,WAAW,EAAE,WAAW;IACpE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,EAAE,gBAAgB;IACpE,OAAO,EAAE,KAAK,EAAE,iBAAiB;CAClC,CAAC,CAAC;AAEH,wFAAwF;AACxF,SAAS,WAAW,CAAC,IAAY;IAC/B,MAAM,MAAM,GAAgB,IAAI,GAAG,EAAU,CAAC;IAC9C,MAAM,EAAE,GAAW,oBAAoB,CAAC;IACxC,IAAI,EAAE,GAAW,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;QACjB,IAAI,CAAC,GAAW,EAAE,GAAG,CAAC,CAAC;QACvB,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAAE,CAAC,EAAE,CAAC;QACzC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YACpB,kDAAkD;YAClD,IAAI,KAAK,GAAW,CAAC,CAAC;YACtB,IAAI,CAAC,GAAW,CAAC,GAAG,CAAC,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACnB,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG;oBAAE,KAAK,EAAE,CAAC;qBACxB,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;oBACzB,KAAK,EAAE,CAAC;oBACR,IAAI,KAAK,KAAK,CAAC;wBAAE,MAAM;gBACzB,CAAC;YACH,CAAC;YACD,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;gBAClD,MAAM,IAAI,GAAW,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;gBAC9E,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;oBAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,6BAA6B;YAC7B,IAAI,CAAC,GAAW,CAAC,CAAC;YAClB,OAAO,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAAE,CAAC,EAAE,CAAC;YAC5C,MAAM,IAAI,GAAW,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YAC9C,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;gBAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;QACD,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,MAAM,GAAG,GAAgB,IAAI,GAAG,EAAU,CAAC;IAC3C,MAAM,MAAM,GAAgB,WAAW,CAAC,IAAI,CAAC,CAAC;IAC9C,IAAI,CAAC,GAAW,CAAC,CAAC;IAClB,MAAM,CAAC,GAAW,IAAI,CAAC,MAAM,CAAC;IAC9B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACb,MAAM,CAAC,GAAW,IAAI,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YACxC,CAAC,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YACxB,SAAS;QACX,CAAC;QACD,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC,GAAW,CAAC,GAAG,CAAC,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAAE,CAAC,EAAE,CAAC;YAC3C,MAAM,IAAI,GAAW,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACtC,MAAM,UAAU,GAAY,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;YACnE,IAAI,CAAC,UAAU,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC1E,CAAC,GAAG,CAAC,CAAC;YACN,SAAS;QACX,CAAC;QACD,CAAC,EAAE,CAAC;IACN,CAAC;IACD,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC;AAClB,CAAC;AAED,SAAS,UAAU,CAAC,CAAS,EAAE,KAAa;IAC1C,MAAM,KAAK,GAAW,CAAC,CAAC,KAAK,CAAC,CAAC;IAC/B,IAAI,CAAC,GAAW,KAAK,GAAG,CAAC,CAAC;IAC1B,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;QACpB,MAAM,CAAC,GAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QACvB,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;YACf,CAAC,IAAI,CAAC,CAAC;YACP,SAAS;QACX,CAAC;QACD,IAAI,CAAC,KAAK,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QAC9B,CAAC,EAAE,CAAC;IACN,CAAC;IACD,OAAO,CAAC,CAAC,MAAM,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Static extraction of a component's template/styles *source declarations* from
|
|
3
|
+
* its `.ts` script. Pure string work — no filesystem, no evaluation — so the dev
|
|
4
|
+
* plugin, the one-shot build, `tools/verify-build.mjs`, and `@weave-framework/check` can all
|
|
5
|
+
* share one definition of the authoring contract. Lives in the compiler (the
|
|
6
|
+
* shared base) to avoid a cli↔check dependency cycle.
|
|
7
|
+
*
|
|
8
|
+
* A component `.ts` may declare where its template and styles come from:
|
|
9
|
+
*
|
|
10
|
+
* ```ts
|
|
11
|
+
* export const template = `<h1>{title()}</h1>`; // inline (markup/binding present)
|
|
12
|
+
* export const template = './custom.html'; // external file (path-shaped)
|
|
13
|
+
* export const styles = ['./a.scss', './b.scss']; // many files, cascade order
|
|
14
|
+
* ```
|
|
15
|
+
*
|
|
16
|
+
* One field each — {@link classifyTemplate}/{@link classifyStyle} decide *inline vs
|
|
17
|
+
* file* by shape, so there is no `templateUrl`/`styleUrls` split. The declarations
|
|
18
|
+
* are build-time metadata: {@link extractSources} returns the script with them
|
|
19
|
+
* **blanked** (same-length whitespace, newlines kept) so line numbers — and thus
|
|
20
|
+
* error offsets — are preserved, exactly like `parseSfcLoc`. For an inline template
|
|
21
|
+
* it also returns the value's `[start, end)` offsets, so `@weave-framework/check` can build a
|
|
22
|
+
* location-faithful template via {@link faithfulTemplate} and map diagnostics back
|
|
23
|
+
* to the `.ts` line:col.
|
|
24
|
+
*/
|
|
25
|
+
export interface ExtractedSources {
|
|
26
|
+
/** Raw `template` value (file path or inline markup), or undefined if not declared. */
|
|
27
|
+
template?: string;
|
|
28
|
+
/** For an inline `template`, the `[start, end)` offsets of its raw content in the source. */
|
|
29
|
+
templateRange?: [number, number];
|
|
30
|
+
/** Raw `styles` values (each a file path or inline CSS), or undefined if not declared. */
|
|
31
|
+
styles?: string[];
|
|
32
|
+
/** The script with the `template`/`styles` declarations blanked out. */
|
|
33
|
+
script: string;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Pull the `template`/`styles` declarations out of a component script. Throws on a
|
|
37
|
+
* non-static value (anything but a string literal or an array of string literals)
|
|
38
|
+
* and on `${…}` interpolation inside a backtick literal (Weave binds with `{expr}`,
|
|
39
|
+
* not JS `${expr}`).
|
|
40
|
+
*/
|
|
41
|
+
export declare function extractSources(script: string): ExtractedSources;
|
|
42
|
+
/**
|
|
43
|
+
* Build a location-faithful template text from a `.ts` source: everything outside
|
|
44
|
+
* `range` becomes same-length whitespace (newlines kept), so offsets into the result
|
|
45
|
+
* equal offsets into the original `.ts` — the inline-template analogue of `parseSfcLoc`.
|
|
46
|
+
*/
|
|
47
|
+
export declare function faithfulTemplate(source: string, range: [number, number]): string;
|
|
48
|
+
/** Does this `template` value carry markup/binding (→ inline) rather than name a file? */
|
|
49
|
+
export declare function classifyTemplate(value: string): 'inline' | 'file';
|
|
50
|
+
/** Does this `styles` entry carry CSS (→ inline) rather than name a file? */
|
|
51
|
+
export declare function classifyStyle(value: string): 'inline' | 'file';
|
|
52
|
+
//# sourceMappingURL=sources.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sources.d.ts","sourceRoot":"","sources":["../src/sources.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,uFAAuF;IACvF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6FAA6F;IAC7F,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,0FAA0F;IAC1F,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,wEAAwE;IACxE,MAAM,EAAE,MAAM,CAAC;CAChB;AAMD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,CA8B/D;AA6ED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAMhF;AAED,0FAA0F;AAC1F,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,CAIjE;AAED,6EAA6E;AAC7E,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,CAI9D"}
|
package/dist/sources.js
ADDED
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Static extraction of a component's template/styles *source declarations* from
|
|
3
|
+
* its `.ts` script. Pure string work — no filesystem, no evaluation — so the dev
|
|
4
|
+
* plugin, the one-shot build, `tools/verify-build.mjs`, and `@weave-framework/check` can all
|
|
5
|
+
* share one definition of the authoring contract. Lives in the compiler (the
|
|
6
|
+
* shared base) to avoid a cli↔check dependency cycle.
|
|
7
|
+
*
|
|
8
|
+
* A component `.ts` may declare where its template and styles come from:
|
|
9
|
+
*
|
|
10
|
+
* ```ts
|
|
11
|
+
* export const template = `<h1>{title()}</h1>`; // inline (markup/binding present)
|
|
12
|
+
* export const template = './custom.html'; // external file (path-shaped)
|
|
13
|
+
* export const styles = ['./a.scss', './b.scss']; // many files, cascade order
|
|
14
|
+
* ```
|
|
15
|
+
*
|
|
16
|
+
* One field each — {@link classifyTemplate}/{@link classifyStyle} decide *inline vs
|
|
17
|
+
* file* by shape, so there is no `templateUrl`/`styleUrls` split. The declarations
|
|
18
|
+
* are build-time metadata: {@link extractSources} returns the script with them
|
|
19
|
+
* **blanked** (same-length whitespace, newlines kept) so line numbers — and thus
|
|
20
|
+
* error offsets — are preserved, exactly like `parseSfcLoc`. For an inline template
|
|
21
|
+
* it also returns the value's `[start, end)` offsets, so `@weave-framework/check` can build a
|
|
22
|
+
* location-faithful template via {@link faithfulTemplate} and map diagnostics back
|
|
23
|
+
* to the `.ts` line:col.
|
|
24
|
+
*/
|
|
25
|
+
// Allow an optional type annotation (`: string`, `: string[]`, …) — the project's
|
|
26
|
+
// lint requires one — between the name and `=`.
|
|
27
|
+
const DECL = /export\s+const\s+(template|styles)\s*(?::[^=]+)?=\s*/g;
|
|
28
|
+
/**
|
|
29
|
+
* Pull the `template`/`styles` declarations out of a component script. Throws on a
|
|
30
|
+
* non-static value (anything but a string literal or an array of string literals)
|
|
31
|
+
* and on `${…}` interpolation inside a backtick literal (Weave binds with `{expr}`,
|
|
32
|
+
* not JS `${expr}`).
|
|
33
|
+
*/
|
|
34
|
+
export function extractSources(script) {
|
|
35
|
+
let template;
|
|
36
|
+
let templateRange;
|
|
37
|
+
let styles;
|
|
38
|
+
const blanks = [];
|
|
39
|
+
DECL.lastIndex = 0;
|
|
40
|
+
let m;
|
|
41
|
+
while ((m = DECL.exec(script)) !== null) {
|
|
42
|
+
const kind = m[1];
|
|
43
|
+
const valueStart = m.index + m[0].length;
|
|
44
|
+
const parsed = parseLiteral(script, valueStart, kind);
|
|
45
|
+
if (kind === 'template') {
|
|
46
|
+
if (Array.isArray(parsed.value))
|
|
47
|
+
throw new Error('weave: `template` must be a single string, not an array');
|
|
48
|
+
template = parsed.value;
|
|
49
|
+
if (parsed.innerStart !== undefined && parsed.innerEnd !== undefined) {
|
|
50
|
+
templateRange = [parsed.innerStart, parsed.innerEnd];
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
styles = Array.isArray(parsed.value) ? parsed.value : [parsed.value];
|
|
55
|
+
}
|
|
56
|
+
// Blank from `export` through the literal and an optional trailing `;`.
|
|
57
|
+
let end = parsed.end;
|
|
58
|
+
while (end < script.length && /\s/.test(script[end]) && script[end] !== '\n')
|
|
59
|
+
end++;
|
|
60
|
+
if (script[end] === ';')
|
|
61
|
+
end++;
|
|
62
|
+
blanks.push([m.index, end]);
|
|
63
|
+
DECL.lastIndex = end;
|
|
64
|
+
}
|
|
65
|
+
return { template, templateRange, styles, script: blanks.length ? blank(script, blanks) : script };
|
|
66
|
+
}
|
|
67
|
+
/** Parse a string literal or an array of string literals starting at `i` (after `=`). */
|
|
68
|
+
function parseLiteral(src, i, kind) {
|
|
69
|
+
i = skipWs(src, i);
|
|
70
|
+
const c = src[i];
|
|
71
|
+
if (c === '"' || c === "'" || c === '`')
|
|
72
|
+
return parseString(src, i);
|
|
73
|
+
if (c === '[')
|
|
74
|
+
return parseArray(src, i);
|
|
75
|
+
throw new Error(`weave: \`${kind}\` must be a static string${kind === 'styles' ? ' or array of strings' : ''}`);
|
|
76
|
+
}
|
|
77
|
+
/** Parse one quoted string literal (any of `' " \``); rejects `${…}` in backticks. */
|
|
78
|
+
function parseString(src, i) {
|
|
79
|
+
const quote = src[i];
|
|
80
|
+
const innerStart = i + 1;
|
|
81
|
+
let out = '';
|
|
82
|
+
let j = innerStart;
|
|
83
|
+
for (; j < src.length; j++) {
|
|
84
|
+
const ch = src[j];
|
|
85
|
+
if (ch === '\\') {
|
|
86
|
+
out += src[j + 1] ?? '';
|
|
87
|
+
j++;
|
|
88
|
+
continue;
|
|
89
|
+
}
|
|
90
|
+
if (quote === '`' && ch === '$' && src[j + 1] === '{') {
|
|
91
|
+
throw new Error('weave: inline template/styles cannot use ${…} — Weave binds with {expr}, not JS interpolation');
|
|
92
|
+
}
|
|
93
|
+
if (ch === quote)
|
|
94
|
+
return { value: out, end: j + 1, innerStart, innerEnd: j };
|
|
95
|
+
out += ch;
|
|
96
|
+
}
|
|
97
|
+
throw new Error('weave: unterminated string literal in template/styles declaration');
|
|
98
|
+
}
|
|
99
|
+
/** Parse `[ "a", 'b', `c` ]` into a string array. */
|
|
100
|
+
function parseArray(src, i) {
|
|
101
|
+
const items = [];
|
|
102
|
+
let j = i + 1; // past '['
|
|
103
|
+
for (;;) {
|
|
104
|
+
j = skipWs(src, j);
|
|
105
|
+
if (src[j] === ']')
|
|
106
|
+
return { value: items, end: j + 1 };
|
|
107
|
+
if (j >= src.length)
|
|
108
|
+
throw new Error('weave: unterminated array in styles declaration');
|
|
109
|
+
if (src[j] === ',') {
|
|
110
|
+
j++;
|
|
111
|
+
continue;
|
|
112
|
+
}
|
|
113
|
+
const str = parseString(src, j);
|
|
114
|
+
items.push(str.value);
|
|
115
|
+
j = str.end;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
function skipWs(src, i) {
|
|
119
|
+
while (i < src.length && /\s/.test(src[i]))
|
|
120
|
+
i++;
|
|
121
|
+
return i;
|
|
122
|
+
}
|
|
123
|
+
/** Replace the given ranges with same-length whitespace, preserving newlines. */
|
|
124
|
+
function blank(src, ranges) {
|
|
125
|
+
let out = '';
|
|
126
|
+
let cursor = 0;
|
|
127
|
+
for (const [start, end] of ranges) {
|
|
128
|
+
out += src.slice(cursor, start);
|
|
129
|
+
for (let k = start; k < end; k++)
|
|
130
|
+
out += src[k] === '\n' ? '\n' : ' ';
|
|
131
|
+
cursor = end;
|
|
132
|
+
}
|
|
133
|
+
return out + src.slice(cursor);
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Build a location-faithful template text from a `.ts` source: everything outside
|
|
137
|
+
* `range` becomes same-length whitespace (newlines kept), so offsets into the result
|
|
138
|
+
* equal offsets into the original `.ts` — the inline-template analogue of `parseSfcLoc`.
|
|
139
|
+
*/
|
|
140
|
+
export function faithfulTemplate(source, range) {
|
|
141
|
+
let out = '';
|
|
142
|
+
for (let i = 0; i < source.length; i++) {
|
|
143
|
+
out += i >= range[0] && i < range[1] ? source[i] : source[i] === '\n' ? '\n' : ' ';
|
|
144
|
+
}
|
|
145
|
+
return out;
|
|
146
|
+
}
|
|
147
|
+
/** Does this `template` value carry markup/binding (→ inline) rather than name a file? */
|
|
148
|
+
export function classifyTemplate(value) {
|
|
149
|
+
if (/[<{}\n]/.test(value))
|
|
150
|
+
return 'inline';
|
|
151
|
+
if (/[\\/]/.test(value) || /\.html$/i.test(value))
|
|
152
|
+
return 'file';
|
|
153
|
+
return 'inline'; // short, path-less text (e.g. "Hello") is inline content
|
|
154
|
+
}
|
|
155
|
+
/** Does this `styles` entry carry CSS (→ inline) rather than name a file? */
|
|
156
|
+
export function classifyStyle(value) {
|
|
157
|
+
if (/[{}\n]/.test(value))
|
|
158
|
+
return 'inline';
|
|
159
|
+
if (/[\\/]/.test(value) || /\.(css|scss|sass)$/i.test(value))
|
|
160
|
+
return 'file';
|
|
161
|
+
return 'inline';
|
|
162
|
+
}
|
|
163
|
+
//# sourceMappingURL=sources.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sources.js","sourceRoot":"","sources":["../src/sources.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@weave-framework/compiler",
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"description": "Weave template compiler — parses .weave/.html templates to fine-grained DOM code.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"sideEffects": false,
|
|
7
|
+
"main": "./dist/index.js",
|
|
8
|
+
"module": "./dist/index.js",
|
|
9
|
+
"types": "./dist/index.d.ts",
|
|
10
|
+
"exports": {
|
|
11
|
+
".": {
|
|
12
|
+
"types": "./dist/index.d.ts",
|
|
13
|
+
"import": "./dist/index.js"
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
"files": [
|
|
17
|
+
"dist"
|
|
18
|
+
],
|
|
19
|
+
"engines": {
|
|
20
|
+
"node": ">=18"
|
|
21
|
+
},
|
|
22
|
+
"repository": {
|
|
23
|
+
"type": "git",
|
|
24
|
+
"url": "git+https://github.com/weave-framework/weave.git",
|
|
25
|
+
"directory": "packages/compiler"
|
|
26
|
+
},
|
|
27
|
+
"publishConfig": {
|
|
28
|
+
"access": "public"
|
|
29
|
+
},
|
|
30
|
+
"license": "MIT"
|
|
31
|
+
}
|