@vigla/svelte 0.0.0-stage → 5.57.4
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/action.d.ts +2 -0
- package/animate.d.ts +2 -0
- package/compiler/index.js +43266 -0
- package/compiler/index.js.map +1 -0
- package/compiler/package.json +3 -0
- package/compiler.d.ts +2 -0
- package/dist/compiler/diagnostics.d.ts +70 -0
- package/dist/compiler/diagnostics.d.ts.map +1 -0
- package/dist/compiler/diagnostics.js +166 -0
- package/dist/compiler/diagnostics.js.map +1 -0
- package/dist/compiler/index.d.ts +72 -0
- package/dist/compiler/index.d.ts.map +1 -0
- package/dist/compiler/index.js +178 -0
- package/dist/compiler/index.js.map +1 -0
- package/dist/compiler/options.d.ts +7 -0
- package/dist/compiler/options.d.ts.map +1 -0
- package/dist/compiler/options.js +126 -0
- package/dist/compiler/options.js.map +1 -0
- package/dist/compiler/preprocess/decode.d.ts +3 -0
- package/dist/compiler/preprocess/decode.d.ts.map +1 -0
- package/dist/compiler/preprocess/decode.js +60 -0
- package/dist/compiler/preprocess/decode.js.map +1 -0
- package/dist/compiler/preprocess/index.d.ts +27 -0
- package/dist/compiler/preprocess/index.d.ts.map +1 -0
- package/dist/compiler/preprocess/index.js +208 -0
- package/dist/compiler/preprocess/index.js.map +1 -0
- package/dist/compiler/preprocess/mapped.d.ts +25 -0
- package/dist/compiler/preprocess/mapped.d.ts.map +1 -0
- package/dist/compiler/preprocess/mapped.js +129 -0
- package/dist/compiler/preprocess/mapped.js.map +1 -0
- package/dist/compiler/proxy.d.ts +3 -0
- package/dist/compiler/proxy.d.ts.map +1 -0
- package/dist/compiler/proxy.js +133 -0
- package/dist/compiler/proxy.js.map +1 -0
- package/dist/entries/action.d.ts +2 -0
- package/dist/entries/action.d.ts.map +1 -0
- package/dist/entries/action.js +1 -0
- package/dist/entries/action.js.map +1 -0
- package/dist/entries/animate.d.ts +2 -0
- package/dist/entries/animate.d.ts.map +1 -0
- package/dist/entries/animate.js +2 -0
- package/dist/entries/animate.js.map +1 -0
- package/dist/entries/attachments.d.ts +2 -0
- package/dist/entries/attachments.d.ts.map +1 -0
- package/dist/entries/attachments.js +2 -0
- package/dist/entries/attachments.js.map +1 -0
- package/dist/entries/context.d.ts +15 -0
- package/dist/entries/context.d.ts.map +1 -0
- package/dist/entries/context.js +32 -0
- package/dist/entries/context.js.map +1 -0
- package/dist/entries/easing.d.ts +2 -0
- package/dist/entries/easing.d.ts.map +1 -0
- package/dist/entries/easing.js +2 -0
- package/dist/entries/easing.js.map +1 -0
- package/dist/entries/events.d.ts +2 -0
- package/dist/entries/events.d.ts.map +1 -0
- package/dist/entries/events.js +2 -0
- package/dist/entries/events.js.map +1 -0
- package/dist/entries/index-server.d.ts +4 -0
- package/dist/entries/index-server.d.ts.map +1 -0
- package/dist/entries/index-server.js +11 -0
- package/dist/entries/index-server.js.map +1 -0
- package/dist/entries/index.d.ts +10 -0
- package/dist/entries/index.d.ts.map +1 -0
- package/dist/entries/index.js +24 -0
- package/dist/entries/index.js.map +1 -0
- package/dist/entries/internal/client.d.ts +4 -0
- package/dist/entries/internal/client.d.ts.map +1 -0
- package/dist/entries/internal/client.js +9 -0
- package/dist/entries/internal/client.js.map +1 -0
- package/dist/entries/internal/disclose-version.d.ts +2 -0
- package/dist/entries/internal/disclose-version.d.ts.map +1 -0
- package/dist/entries/internal/disclose-version.js +4 -0
- package/dist/entries/internal/disclose-version.js.map +1 -0
- package/dist/entries/internal/index.d.ts +2 -0
- package/dist/entries/internal/index.d.ts.map +1 -0
- package/dist/entries/internal/index.js +2 -0
- package/dist/entries/internal/index.js.map +1 -0
- package/dist/entries/internal/server.d.ts +2 -0
- package/dist/entries/internal/server.d.ts.map +1 -0
- package/dist/entries/internal/server.js +7 -0
- package/dist/entries/internal/server.js.map +1 -0
- package/dist/entries/internal/tracing.d.ts +2 -0
- package/dist/entries/internal/tracing.d.ts.map +1 -0
- package/dist/entries/internal/tracing.js +2 -0
- package/dist/entries/internal/tracing.js.map +1 -0
- package/dist/entries/motion-server.d.ts +2 -0
- package/dist/entries/motion-server.d.ts.map +1 -0
- package/dist/entries/motion-server.js +2 -0
- package/dist/entries/motion-server.js.map +1 -0
- package/dist/entries/motion.d.ts +2 -0
- package/dist/entries/motion.d.ts.map +1 -0
- package/dist/entries/motion.js +2 -0
- package/dist/entries/motion.js.map +1 -0
- package/dist/entries/proxy.d.ts +6 -0
- package/dist/entries/proxy.d.ts.map +1 -0
- package/dist/entries/proxy.js +77 -0
- package/dist/entries/proxy.js.map +1 -0
- package/dist/entries/reactivity-server.d.ts +2 -0
- package/dist/entries/reactivity-server.d.ts.map +1 -0
- package/dist/entries/reactivity-server.js +2 -0
- package/dist/entries/reactivity-server.js.map +1 -0
- package/dist/entries/reactivity.d.ts +2 -0
- package/dist/entries/reactivity.d.ts.map +1 -0
- package/dist/entries/reactivity.js +2 -0
- package/dist/entries/reactivity.js.map +1 -0
- package/dist/entries/report.d.ts +3 -0
- package/dist/entries/report.d.ts.map +1 -0
- package/dist/entries/report.js +66 -0
- package/dist/entries/report.js.map +1 -0
- package/dist/entries/server.d.ts +8 -0
- package/dist/entries/server.d.ts.map +1 -0
- package/dist/entries/server.js +48 -0
- package/dist/entries/server.js.map +1 -0
- package/dist/entries/store-client.d.ts +12 -0
- package/dist/entries/store-client.d.ts.map +1 -0
- package/dist/entries/store-client.js +63 -0
- package/dist/entries/store-client.js.map +1 -0
- package/dist/entries/store-server.d.ts +12 -0
- package/dist/entries/store-server.d.ts.map +1 -0
- package/dist/entries/store-server.js +30 -0
- package/dist/entries/store-server.js.map +1 -0
- package/dist/entries/store.d.ts +25 -0
- package/dist/entries/store.d.ts.map +1 -0
- package/dist/entries/store.js +139 -0
- package/dist/entries/store.js.map +1 -0
- package/dist/entries/transition.d.ts +2 -0
- package/dist/entries/transition.d.ts.map +1 -0
- package/dist/entries/transition.js +2 -0
- package/dist/entries/transition.js.map +1 -0
- package/dist/entries/window-server.d.ts +2 -0
- package/dist/entries/window-server.d.ts.map +1 -0
- package/dist/entries/window-server.js +2 -0
- package/dist/entries/window-server.js.map +1 -0
- package/dist/entries/window.d.ts +2 -0
- package/dist/entries/window.d.ts.map +1 -0
- package/dist/entries/window.js +2 -0
- package/dist/entries/window.js.map +1 -0
- package/dist/front/ast.d.ts +290 -0
- package/dist/front/ast.d.ts.map +1 -0
- package/dist/front/ast.js +1 -0
- package/dist/front/ast.js.map +1 -0
- package/dist/front/diagnostics.d.ts +13 -0
- package/dist/front/diagnostics.d.ts.map +1 -0
- package/dist/front/diagnostics.js +38 -0
- package/dist/front/diagnostics.js.map +1 -0
- package/dist/front/ignores.d.ts +12 -0
- package/dist/front/ignores.d.ts.map +1 -0
- package/dist/front/ignores.js +75 -0
- package/dist/front/ignores.js.map +1 -0
- package/dist/front/index.d.ts +17 -0
- package/dist/front/index.d.ts.map +1 -0
- package/dist/front/index.js +65 -0
- package/dist/front/index.js.map +1 -0
- package/dist/front/legacy.d.ts +5 -0
- package/dist/front/legacy.d.ts.map +1 -0
- package/dist/front/legacy.js +408 -0
- package/dist/front/legacy.js.map +1 -0
- package/dist/front/locate.d.ts +4 -0
- package/dist/front/locate.d.ts.map +1 -0
- package/dist/front/locate.js +19 -0
- package/dist/front/locate.js.map +1 -0
- package/dist/front/lower.d.ts +39 -0
- package/dist/front/lower.d.ts.map +1 -0
- package/dist/front/lower.js +470 -0
- package/dist/front/lower.js.map +1 -0
- package/dist/front/parse/attribute.d.ts +12 -0
- package/dist/front/parse/attribute.d.ts.map +1 -0
- package/dist/front/parse/attribute.js +288 -0
- package/dist/front/parse/attribute.js.map +1 -0
- package/dist/front/parse/bracket.d.ts +3 -0
- package/dist/front/parse/bracket.d.ts.map +1 -0
- package/dist/front/parse/bracket.js +102 -0
- package/dist/front/parse/bracket.js.map +1 -0
- package/dist/front/parse/characters.d.ts +4 -0
- package/dist/front/parse/characters.d.ts.map +1 -0
- package/dist/front/parse/characters.js +6 -0
- package/dist/front/parse/characters.js.map +1 -0
- package/dist/front/parse/decode.d.ts +2 -0
- package/dist/front/parse/decode.d.ts.map +1 -0
- package/dist/front/parse/decode.js +89 -0
- package/dist/front/parse/decode.js.map +1 -0
- package/dist/front/parse/element.d.ts +3 -0
- package/dist/front/parse/element.d.ts.map +1 -0
- package/dist/front/parse/element.js +311 -0
- package/dist/front/parse/element.js.map +1 -0
- package/dist/front/parse/entities.d.ts +2 -0
- package/dist/front/parse/entities.d.ts.map +1 -0
- package/dist/front/parse/entities.js +2234 -0
- package/dist/front/parse/entities.js.map +1 -0
- package/dist/front/parse/expression.d.ts +5 -0
- package/dist/front/parse/expression.d.ts.map +1 -0
- package/dist/front/parse/expression.js +86 -0
- package/dist/front/parse/expression.js.map +1 -0
- package/dist/front/parse/html.d.ts +8 -0
- package/dist/front/parse/html.d.ts.map +1 -0
- package/dist/front/parse/html.js +146 -0
- package/dist/front/parse/html.js.map +1 -0
- package/dist/front/parse/identifier.d.ts +4 -0
- package/dist/front/parse/identifier.d.ts.map +1 -0
- package/dist/front/parse/identifier.js +24 -0
- package/dist/front/parse/identifier.js.map +1 -0
- package/dist/front/parse/index.d.ts +13 -0
- package/dist/front/parse/index.d.ts.map +1 -0
- package/dist/front/parse/index.js +74 -0
- package/dist/front/parse/index.js.map +1 -0
- package/dist/front/parse/js.d.ts +27 -0
- package/dist/front/parse/js.d.ts.map +1 -0
- package/dist/front/parse/js.js +241 -0
- package/dist/front/parse/js.js.map +1 -0
- package/dist/front/parse/options.d.ts +3 -0
- package/dist/front/parse/options.d.ts.map +1 -0
- package/dist/front/parse/options.js +198 -0
- package/dist/front/parse/options.js.map +1 -0
- package/dist/front/parse/parser.d.ts +50 -0
- package/dist/front/parse/parser.d.ts.map +1 -0
- package/dist/front/parse/parser.js +157 -0
- package/dist/front/parse/parser.js.map +1 -0
- package/dist/front/parse/pattern.d.ts +4 -0
- package/dist/front/parse/pattern.d.ts.map +1 -0
- package/dist/front/parse/pattern.js +53 -0
- package/dist/front/parse/pattern.js.map +1 -0
- package/dist/front/parse/script.d.ts +4 -0
- package/dist/front/parse/script.d.ts.map +1 -0
- package/dist/front/parse/script.js +60 -0
- package/dist/front/parse/script.js.map +1 -0
- package/dist/front/parse/style.d.ts +7 -0
- package/dist/front/parse/style.d.ts.map +1 -0
- package/dist/front/parse/style.js +397 -0
- package/dist/front/parse/style.js.map +1 -0
- package/dist/front/parse/tag.d.ts +3 -0
- package/dist/front/parse/tag.d.ts.map +1 -0
- package/dist/front/parse/tag.js +591 -0
- package/dist/front/parse/tag.js.map +1 -0
- package/dist/front/print/css.d.ts +5 -0
- package/dist/front/print/css.d.ts.map +1 -0
- package/dist/front/print/css.js +234 -0
- package/dist/front/print/css.js.map +1 -0
- package/dist/front/print/index.d.ts +18 -0
- package/dist/front/print/index.d.ts.map +1 -0
- package/dist/front/print/index.js +24 -0
- package/dist/front/print/index.js.map +1 -0
- package/dist/front/print/layout.d.ts +11 -0
- package/dist/front/print/layout.d.ts.map +1 -0
- package/dist/front/print/layout.js +73 -0
- package/dist/front/print/layout.js.map +1 -0
- package/dist/front/print/template.d.ts +5 -0
- package/dist/front/print/template.d.ts.map +1 -0
- package/dist/front/print/template.js +455 -0
- package/dist/front/print/template.js.map +1 -0
- package/dist/front/runes.d.ts +13 -0
- package/dist/front/runes.d.ts.map +1 -0
- package/dist/front/runes.js +253 -0
- package/dist/front/runes.js.map +1 -0
- package/dist/front/stores.d.ts +5 -0
- package/dist/front/stores.d.ts.map +1 -0
- package/dist/front/stores.js +84 -0
- package/dist/front/stores.js.map +1 -0
- package/dist/front/typescript.d.ts +2 -0
- package/dist/front/typescript.d.ts.map +1 -0
- package/dist/front/typescript.js +182 -0
- package/dist/front/typescript.js.map +1 -0
- package/dist/front/validate/anchors.d.ts +15 -0
- package/dist/front/validate/anchors.d.ts.map +1 -0
- package/dist/front/validate/anchors.js +43 -0
- package/dist/front/validate/anchors.js.map +1 -0
- package/dist/front/validate/index.d.ts +16 -0
- package/dist/front/validate/index.d.ts.map +1 -0
- package/dist/front/validate/index.js +139 -0
- package/dist/front/validate/index.js.map +1 -0
- package/dist/front/validate/legacy.d.ts +9 -0
- package/dist/front/validate/legacy.d.ts.map +1 -0
- package/dist/front/validate/legacy.js +102 -0
- package/dist/front/validate/legacy.js.map +1 -0
- package/dist/front/validate/report.d.ts +14 -0
- package/dist/front/validate/report.d.ts.map +1 -0
- package/dist/front/validate/report.js +29 -0
- package/dist/front/validate/report.js.map +1 -0
- package/dist/front/validate/template.d.ts +31 -0
- package/dist/front/validate/template.d.ts.map +1 -0
- package/dist/front/validate/template.js +507 -0
- package/dist/front/validate/template.js.map +1 -0
- package/dist/front/wording.d.ts +4 -0
- package/dist/front/wording.d.ts.map +1 -0
- package/dist/front/wording.js +110 -0
- package/dist/front/wording.js.map +1 -0
- package/dist/shared/format.d.ts +3 -0
- package/dist/shared/format.d.ts.map +1 -0
- package/dist/shared/format.js +7 -0
- package/dist/shared/format.js.map +1 -0
- package/easing.d.ts +2 -0
- package/elements.d.ts +1220 -0
- package/index.d.ts +2 -0
- package/motion.d.ts +2 -0
- package/package.json +128 -5
- package/src/compiler/diagnostics.ts +233 -0
- package/src/compiler/index.ts +292 -0
- package/src/compiler/options.ts +140 -0
- package/src/compiler/preprocess/decode.ts +85 -0
- package/src/compiler/preprocess/index.ts +299 -0
- package/src/compiler/preprocess/mapped.ts +146 -0
- package/src/compiler/proxy.ts +154 -0
- package/src/entries/action.ts +1 -0
- package/src/entries/animate.ts +1 -0
- package/src/entries/attachments.ts +1 -0
- package/src/entries/context.ts +50 -0
- package/src/entries/easing.ts +1 -0
- package/src/entries/events.ts +1 -0
- package/src/entries/index-server.ts +17 -0
- package/src/entries/index.ts +41 -0
- package/src/entries/internal/client.ts +15 -0
- package/src/entries/internal/disclose-version.ts +4 -0
- package/src/entries/internal/index.ts +3 -0
- package/src/entries/internal/server.ts +8 -0
- package/src/entries/internal/tracing.ts +1 -0
- package/src/entries/motion-server.ts +1 -0
- package/src/entries/motion.ts +1 -0
- package/src/entries/proxy.ts +86 -0
- package/src/entries/reactivity-server.ts +9 -0
- package/src/entries/reactivity.ts +9 -0
- package/src/entries/report.ts +81 -0
- package/src/entries/server.ts +76 -0
- package/src/entries/store-client.ts +80 -0
- package/src/entries/store-server.ts +44 -0
- package/src/entries/store.ts +201 -0
- package/src/entries/transition.ts +1 -0
- package/src/entries/window-server.ts +1 -0
- package/src/entries/window.ts +1 -0
- package/src/front/ast.ts +369 -0
- package/src/front/diagnostics.ts +53 -0
- package/src/front/ignores.ts +84 -0
- package/src/front/index.ts +86 -0
- package/src/front/legacy.ts +414 -0
- package/src/front/locate.ts +20 -0
- package/src/front/lower.ts +509 -0
- package/src/front/parse/attribute.ts +319 -0
- package/src/front/parse/bracket.ts +99 -0
- package/src/front/parse/characters.ts +19 -0
- package/src/front/parse/decode.ts +87 -0
- package/src/front/parse/element.ts +354 -0
- package/src/front/parse/entities.ts +2233 -0
- package/src/front/parse/expression.ts +85 -0
- package/src/front/parse/html.ts +158 -0
- package/src/front/parse/identifier.ts +29 -0
- package/src/front/parse/index.ts +88 -0
- package/src/front/parse/js.ts +284 -0
- package/src/front/parse/options.ts +194 -0
- package/src/front/parse/parser.ts +189 -0
- package/src/front/parse/pattern.ts +57 -0
- package/src/front/parse/script.ts +74 -0
- package/src/front/parse/style.ts +399 -0
- package/src/front/parse/tag.ts +601 -0
- package/src/front/print/css.ts +239 -0
- package/src/front/print/index.ts +40 -0
- package/src/front/print/layout.ts +87 -0
- package/src/front/print/template.ts +448 -0
- package/src/front/runes.ts +267 -0
- package/src/front/stores.ts +98 -0
- package/src/front/typescript.ts +178 -0
- package/src/front/validate/anchors.ts +54 -0
- package/src/front/validate/index.ts +174 -0
- package/src/front/validate/legacy.ts +119 -0
- package/src/front/validate/report.ts +38 -0
- package/src/front/validate/template.ts +549 -0
- package/src/front/wording.ts +112 -0
- package/src/shared/format.ts +8 -0
- package/store.d.ts +2 -0
- package/svelte-html.d.ts +53 -0
- package/transition.d.ts +2 -0
- package/types/compiler/interfaces.d.ts +2 -0
- package/types/compiler/preprocess.d.ts +2 -0
- package/types/index.d.ts +1453 -0
- package/README.md +0 -3
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
import * as acorn from 'acorn';
|
|
2
|
+
import { tsPlugin } from '@sveltejs/acorn-typescript';
|
|
3
|
+
import { fail } from '../diagnostics.js';
|
|
4
|
+
import { nonLfLineBreak } from './characters.js';
|
|
5
|
+
function scripted(base) {
|
|
6
|
+
return class extends base {
|
|
7
|
+
parseStatement(context, topLevel, exports) {
|
|
8
|
+
const statement = super.parseStatement(context, topLevel, exports);
|
|
9
|
+
this.undefinedExports = {};
|
|
10
|
+
return statement;
|
|
11
|
+
}
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
const plain = acorn.Parser;
|
|
15
|
+
const typed = plain.extend(tsPlugin());
|
|
16
|
+
const plainScript = scripted(plain);
|
|
17
|
+
const typedScript = scripted(typed);
|
|
18
|
+
const nonLf = nonLfLineBreak;
|
|
19
|
+
let lastTemplate = '';
|
|
20
|
+
let lfOnly = true;
|
|
21
|
+
export function lfLineBreaksOnly(template) {
|
|
22
|
+
if (template !== lastTemplate) {
|
|
23
|
+
lastTemplate = template;
|
|
24
|
+
lfOnly = !nonLf.test(template);
|
|
25
|
+
}
|
|
26
|
+
return lfOnly;
|
|
27
|
+
}
|
|
28
|
+
const positionSuffix = / \(\d+:\d+\)$/;
|
|
29
|
+
function rethrow(error) {
|
|
30
|
+
if (!(error instanceof SyntaxError))
|
|
31
|
+
throw error;
|
|
32
|
+
const position = error.pos;
|
|
33
|
+
fail('js_parse_error', position, { message: error.message.replace(positionSuffix, '') });
|
|
34
|
+
}
|
|
35
|
+
function leading(source, start) {
|
|
36
|
+
let lineStart = start;
|
|
37
|
+
while (lineStart > 0 && source[lineStart - 1] !== '\n')
|
|
38
|
+
lineStart -= 1;
|
|
39
|
+
let end = lineStart;
|
|
40
|
+
while (source[end] === ' ' || source[end] === '\t')
|
|
41
|
+
end += 1;
|
|
42
|
+
return source.slice(lineStart, end);
|
|
43
|
+
}
|
|
44
|
+
const trailingGap = /^[,) \t]*$/;
|
|
45
|
+
class Comments {
|
|
46
|
+
source;
|
|
47
|
+
into;
|
|
48
|
+
from;
|
|
49
|
+
constructor(source, into, from = 0) {
|
|
50
|
+
this.source = source;
|
|
51
|
+
this.into = into;
|
|
52
|
+
this.from = from;
|
|
53
|
+
}
|
|
54
|
+
onComment = (block, text, start, end, startLoc, endLoc) => {
|
|
55
|
+
let value = text;
|
|
56
|
+
if (block && value.includes('\n')) {
|
|
57
|
+
const indentation = leading(this.source, start);
|
|
58
|
+
value = value.replace(new RegExp(`^${indentation}`, 'gm'), '');
|
|
59
|
+
}
|
|
60
|
+
this.into.push({
|
|
61
|
+
type: block ? 'Block' : 'Line',
|
|
62
|
+
value,
|
|
63
|
+
start,
|
|
64
|
+
end,
|
|
65
|
+
loc: {
|
|
66
|
+
start: startLoc,
|
|
67
|
+
end: endLoc
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
};
|
|
71
|
+
attach(ast) {
|
|
72
|
+
if (this.into.length === 0)
|
|
73
|
+
return;
|
|
74
|
+
let first = this.into.length;
|
|
75
|
+
while (first > 0 && this.into[first - 1].start >= this.from)
|
|
76
|
+
first--;
|
|
77
|
+
const queue = [];
|
|
78
|
+
for (let index = first; index < this.into.length; index++) {
|
|
79
|
+
const comment = this.into[index];
|
|
80
|
+
queue.push({
|
|
81
|
+
type: comment.type,
|
|
82
|
+
value: comment.value,
|
|
83
|
+
start: comment.start,
|
|
84
|
+
end: comment.end
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
let head = 0;
|
|
88
|
+
const source = this.source;
|
|
89
|
+
const path = [];
|
|
90
|
+
const visit = (node, final) => {
|
|
91
|
+
while (head < queue.length && queue[head].start < node.start) {
|
|
92
|
+
(node.leadingComments ??= []).push(queue[head++]);
|
|
93
|
+
}
|
|
94
|
+
path.push(node);
|
|
95
|
+
const listed = lists[node.type];
|
|
96
|
+
for (const key in node) {
|
|
97
|
+
if (key === 'type')
|
|
98
|
+
continue;
|
|
99
|
+
const child = node[key];
|
|
100
|
+
if (child === null || typeof child !== 'object')
|
|
101
|
+
continue;
|
|
102
|
+
if (Array.isArray(child)) {
|
|
103
|
+
const tracked = key === listed;
|
|
104
|
+
for (let index = 0; index < child.length; index++) {
|
|
105
|
+
const item = child[index];
|
|
106
|
+
if (item !== null && typeof item === 'object' && item.type) {
|
|
107
|
+
visit(item, tracked && index === child.length - 1);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
else if (child.type) {
|
|
112
|
+
visit(child, false);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
path.pop();
|
|
116
|
+
const next = queue[head];
|
|
117
|
+
if (next === undefined)
|
|
118
|
+
return;
|
|
119
|
+
const parent = path.at(-1);
|
|
120
|
+
if (parent !== undefined && node.end === parent.end)
|
|
121
|
+
return;
|
|
122
|
+
const gap = source.slice(node.end, next.start);
|
|
123
|
+
if (final) {
|
|
124
|
+
while (head < queue.length) {
|
|
125
|
+
const comment = queue[head];
|
|
126
|
+
if (parent !== undefined && comment.start >= parent.end)
|
|
127
|
+
break;
|
|
128
|
+
(node.trailingComments ??= []).push(comment);
|
|
129
|
+
head++;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
else if (node.end <= next.start && trailingGap.test(gap)) {
|
|
133
|
+
node.trailingComments = [next];
|
|
134
|
+
head++;
|
|
135
|
+
}
|
|
136
|
+
};
|
|
137
|
+
visit(ast, false);
|
|
138
|
+
if (head < queue.length) {
|
|
139
|
+
const rest = queue[head];
|
|
140
|
+
if (rest.start >= ast.end || ast.type === 'Program') {
|
|
141
|
+
(ast.trailingComments ??= []).push(...queue.slice(head));
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
const lists = {
|
|
147
|
+
BlockStatement: 'body',
|
|
148
|
+
Program: 'body',
|
|
149
|
+
ArrayExpression: 'elements',
|
|
150
|
+
ObjectExpression: 'properties'
|
|
151
|
+
};
|
|
152
|
+
function startLocation(context, index) {
|
|
153
|
+
if (!lfLineBreaksOnly(context.template))
|
|
154
|
+
return undefined;
|
|
155
|
+
const { line, column } = context.locate(index);
|
|
156
|
+
return { line, column, offset: index };
|
|
157
|
+
}
|
|
158
|
+
export function parseScript(source, comments, ts) {
|
|
159
|
+
const parser = ts ? typedScript : plainScript;
|
|
160
|
+
const handler = new Comments(source, comments);
|
|
161
|
+
try {
|
|
162
|
+
const ast = parser.parse(source, {
|
|
163
|
+
onComment: handler.onComment,
|
|
164
|
+
sourceType: 'module',
|
|
165
|
+
ecmaVersion: 16,
|
|
166
|
+
locations: true
|
|
167
|
+
});
|
|
168
|
+
handler.attach(ast);
|
|
169
|
+
return ast;
|
|
170
|
+
}
|
|
171
|
+
catch (error) {
|
|
172
|
+
rethrow(error);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
export function parseExpressionAt(context, source, index) {
|
|
176
|
+
const parser = context.ts ? typed : plain;
|
|
177
|
+
const handler = new Comments(source, context.comments, index);
|
|
178
|
+
try {
|
|
179
|
+
const ast = parser.parseExpressionAt(source, index, {
|
|
180
|
+
onComment: handler.onComment,
|
|
181
|
+
sourceType: 'module',
|
|
182
|
+
ecmaVersion: 16,
|
|
183
|
+
locations: true,
|
|
184
|
+
preserveParens: true,
|
|
185
|
+
startLocation: startLocation(context, index)
|
|
186
|
+
});
|
|
187
|
+
handler.attach(ast);
|
|
188
|
+
return ast;
|
|
189
|
+
}
|
|
190
|
+
catch (error) {
|
|
191
|
+
rethrow(error);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
export function parseStatementAt(context, source, index) {
|
|
195
|
+
const Parser = (context.ts ? typed : plain);
|
|
196
|
+
const handler = new Comments(source, context.comments, index);
|
|
197
|
+
try {
|
|
198
|
+
const parser = new Parser({
|
|
199
|
+
onComment: handler.onComment,
|
|
200
|
+
sourceType: 'module',
|
|
201
|
+
ecmaVersion: 16,
|
|
202
|
+
locations: true,
|
|
203
|
+
startLocation: startLocation(context, index)
|
|
204
|
+
}, source, index);
|
|
205
|
+
parser.nextToken();
|
|
206
|
+
const statement = parser.parseStatement(null, true, Object.create(null));
|
|
207
|
+
handler.attach(statement);
|
|
208
|
+
return statement;
|
|
209
|
+
}
|
|
210
|
+
catch (error) {
|
|
211
|
+
if (error.pos === source.length)
|
|
212
|
+
fail('unexpected_eof', source.length);
|
|
213
|
+
rethrow(error);
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
export function removeParens(node) {
|
|
217
|
+
if (node === null || typeof node !== 'object')
|
|
218
|
+
return node;
|
|
219
|
+
let current = node;
|
|
220
|
+
while (current.type === 'ParenthesizedExpression')
|
|
221
|
+
current = current.expression;
|
|
222
|
+
for (const key in current) {
|
|
223
|
+
if (key === 'type')
|
|
224
|
+
continue;
|
|
225
|
+
const child = current[key];
|
|
226
|
+
if (child === null || typeof child !== 'object')
|
|
227
|
+
continue;
|
|
228
|
+
if (Array.isArray(child)) {
|
|
229
|
+
for (let index = 0; index < child.length; index++) {
|
|
230
|
+
const item = child[index];
|
|
231
|
+
if (item !== null && typeof item === 'object' && item.type)
|
|
232
|
+
child[index] = removeParens(item);
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
else if (child.type) {
|
|
236
|
+
current[key] = removeParens(child);
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
return current;
|
|
240
|
+
}
|
|
241
|
+
//# sourceMappingURL=js.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"js.js","sourceRoot":"","sources":["../../../src/front/parse/js.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../src/front/parse/options.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,GAAG,MAAM,WAAW,CAAC;AA4ItC,wBAAgB,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,WAAW,GAAG,GAAG,CAAC,aAAa,CAoDpE"}
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
import { fail } from '../diagnostics.js';
|
|
2
|
+
const svgNamespace = 'http://www.w3.org/2000/svg';
|
|
3
|
+
const mathmlNamespace = 'http://www.w3.org/1998/Math/MathML';
|
|
4
|
+
const tagChar = '[a-z0-9_.\xB7\xC0-\xD6\xD8-\xF6\xF8-\u037D\u037F-\u1FFF\u200C-\u200D\u203F-\u2040\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u{10000}-\u{EFFFF}-]';
|
|
5
|
+
const customTag = new RegExp(`^[a-z]${tagChar}*-${tagChar}*$`, 'u');
|
|
6
|
+
const reservedTags = new Set([
|
|
7
|
+
'annotation-xml',
|
|
8
|
+
'color-profile',
|
|
9
|
+
'font-face',
|
|
10
|
+
'font-face-src',
|
|
11
|
+
'font-face-uri',
|
|
12
|
+
'font-face-format',
|
|
13
|
+
'font-face-name',
|
|
14
|
+
'missing-glyph'
|
|
15
|
+
]);
|
|
16
|
+
const propTypes = new Set(['String', 'Number', 'Boolean', 'Array', 'Object']);
|
|
17
|
+
function staticValue(attribute) {
|
|
18
|
+
const { value } = attribute;
|
|
19
|
+
if (value === true)
|
|
20
|
+
return true;
|
|
21
|
+
const chunk = Array.isArray(value) ? value[0] : value;
|
|
22
|
+
if (chunk === undefined)
|
|
23
|
+
return true;
|
|
24
|
+
if (Array.isArray(value) && value.length > 1)
|
|
25
|
+
return null;
|
|
26
|
+
if (chunk.type === 'Text')
|
|
27
|
+
return chunk.data;
|
|
28
|
+
if (chunk.expression.type !== 'Literal')
|
|
29
|
+
return null;
|
|
30
|
+
return chunk.expression.value;
|
|
31
|
+
}
|
|
32
|
+
function booleanValue(attribute) {
|
|
33
|
+
const value = staticValue(attribute);
|
|
34
|
+
if (typeof value !== 'boolean') {
|
|
35
|
+
fail('svelte_options_invalid_attribute_value', attribute, { list: 'true or false' });
|
|
36
|
+
}
|
|
37
|
+
return value;
|
|
38
|
+
}
|
|
39
|
+
function validateTag(at, tag) {
|
|
40
|
+
if (typeof tag !== 'string')
|
|
41
|
+
fail('svelte_options_invalid_tagname', at);
|
|
42
|
+
if (tag) {
|
|
43
|
+
if (!customTag.test(tag))
|
|
44
|
+
fail('svelte_options_invalid_tagname', at);
|
|
45
|
+
if (reservedTags.has(tag))
|
|
46
|
+
fail('svelte_options_reserved_tagname', at);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
function plainKey(property) {
|
|
50
|
+
return property.type === 'Property' && !property.computed && property.key.type === 'Identifier';
|
|
51
|
+
}
|
|
52
|
+
function customElement(attribute) {
|
|
53
|
+
const options = {};
|
|
54
|
+
const raw = attribute.value;
|
|
55
|
+
if (raw === true)
|
|
56
|
+
fail('svelte_options_invalid_customelement', attribute);
|
|
57
|
+
const value = Array.isArray(raw) ? raw : [raw];
|
|
58
|
+
const first = value[0];
|
|
59
|
+
if (first.type === 'Text') {
|
|
60
|
+
const tag = staticValue(attribute);
|
|
61
|
+
validateTag(attribute, tag);
|
|
62
|
+
options.tag = tag;
|
|
63
|
+
return options;
|
|
64
|
+
}
|
|
65
|
+
const expression = first.expression;
|
|
66
|
+
if (expression.type !== 'ObjectExpression') {
|
|
67
|
+
if (expression.type === 'Literal' && expression.value === null)
|
|
68
|
+
return undefined;
|
|
69
|
+
fail('svelte_options_invalid_customelement', attribute);
|
|
70
|
+
}
|
|
71
|
+
const properties = [];
|
|
72
|
+
for (const property of expression.properties) {
|
|
73
|
+
if (!plainKey(property))
|
|
74
|
+
fail('svelte_options_invalid_customelement', attribute);
|
|
75
|
+
properties.push([property.key.name, property.value]);
|
|
76
|
+
}
|
|
77
|
+
const find = (name) => properties.find(([key]) => key === name)?.[1];
|
|
78
|
+
const tag = properties.find(([name]) => name === 'tag');
|
|
79
|
+
if (tag !== undefined) {
|
|
80
|
+
const tagValue = tag[1]?.value;
|
|
81
|
+
validateTag(tag, tagValue);
|
|
82
|
+
options.tag = tagValue;
|
|
83
|
+
}
|
|
84
|
+
const props = find('props');
|
|
85
|
+
if (props !== undefined) {
|
|
86
|
+
if (props.type !== 'ObjectExpression')
|
|
87
|
+
fail('svelte_options_invalid_customelement_props', attribute);
|
|
88
|
+
options.props = {};
|
|
89
|
+
for (const property of props.properties) {
|
|
90
|
+
if (!plainKey(property) || property.value.type !== 'ObjectExpression') {
|
|
91
|
+
fail('svelte_options_invalid_customelement_props', attribute);
|
|
92
|
+
}
|
|
93
|
+
const prop = {};
|
|
94
|
+
options.props[property.key.name] = prop;
|
|
95
|
+
for (const entry of property.value.properties) {
|
|
96
|
+
if (!plainKey(entry) || entry.value.type !== 'Literal') {
|
|
97
|
+
fail('svelte_options_invalid_customelement_props', attribute);
|
|
98
|
+
}
|
|
99
|
+
const literal = entry.value.value;
|
|
100
|
+
if (entry.key.name === 'type') {
|
|
101
|
+
if (!propTypes.has(literal)) {
|
|
102
|
+
fail('svelte_options_invalid_customelement_props', attribute);
|
|
103
|
+
}
|
|
104
|
+
prop.type = literal;
|
|
105
|
+
}
|
|
106
|
+
else if (entry.key.name === 'reflect') {
|
|
107
|
+
if (typeof literal !== 'boolean')
|
|
108
|
+
fail('svelte_options_invalid_customelement_props', attribute);
|
|
109
|
+
prop.reflect = literal;
|
|
110
|
+
}
|
|
111
|
+
else if (entry.key.name === 'attribute') {
|
|
112
|
+
if (typeof literal !== 'string')
|
|
113
|
+
fail('svelte_options_invalid_customelement_props', attribute);
|
|
114
|
+
prop.attribute = literal;
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
fail('svelte_options_invalid_customelement_props', attribute);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
const shadow = find('shadow');
|
|
123
|
+
if (shadow) {
|
|
124
|
+
if (shadow.type === 'Literal' && (shadow.value === 'open' || shadow.value === 'none')) {
|
|
125
|
+
options.shadow = shadow.value;
|
|
126
|
+
}
|
|
127
|
+
else if (shadow.type === 'ObjectExpression') {
|
|
128
|
+
options.shadow = shadow;
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
fail('svelte_options_invalid_customelement_shadow', attribute);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
const extend = find('extend');
|
|
135
|
+
if (extend)
|
|
136
|
+
options.extend = extend;
|
|
137
|
+
return options;
|
|
138
|
+
}
|
|
139
|
+
export function readOptions(node) {
|
|
140
|
+
const options = {
|
|
141
|
+
start: node.start,
|
|
142
|
+
end: node.end,
|
|
143
|
+
attributes: node.attributes
|
|
144
|
+
};
|
|
145
|
+
for (const attribute of node.attributes) {
|
|
146
|
+
if (attribute.type !== 'Attribute')
|
|
147
|
+
fail('svelte_options_invalid_attribute', attribute);
|
|
148
|
+
const { name } = attribute;
|
|
149
|
+
switch (name) {
|
|
150
|
+
case 'runes':
|
|
151
|
+
options.runes = booleanValue(attribute);
|
|
152
|
+
break;
|
|
153
|
+
case 'tag':
|
|
154
|
+
fail('svelte_options_deprecated_tag', attribute);
|
|
155
|
+
case 'customElement': {
|
|
156
|
+
const element = customElement(attribute);
|
|
157
|
+
if (element !== undefined)
|
|
158
|
+
options.customElement = element;
|
|
159
|
+
break;
|
|
160
|
+
}
|
|
161
|
+
case 'namespace': {
|
|
162
|
+
const value = staticValue(attribute);
|
|
163
|
+
if (value === svgNamespace)
|
|
164
|
+
options.namespace = 'svg';
|
|
165
|
+
else if (value === mathmlNamespace)
|
|
166
|
+
options.namespace = 'mathml';
|
|
167
|
+
else if (value === 'html' || value === 'mathml' || value === 'svg')
|
|
168
|
+
options.namespace = value;
|
|
169
|
+
else {
|
|
170
|
+
fail('svelte_options_invalid_attribute_value', attribute, {
|
|
171
|
+
list: '"html", "mathml" or "svg"'
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
break;
|
|
175
|
+
}
|
|
176
|
+
case 'css': {
|
|
177
|
+
if (staticValue(attribute) === 'injected')
|
|
178
|
+
options.css = 'injected';
|
|
179
|
+
else
|
|
180
|
+
fail('svelte_options_invalid_attribute_value', attribute, { list: '"injected"' });
|
|
181
|
+
break;
|
|
182
|
+
}
|
|
183
|
+
case 'immutable':
|
|
184
|
+
options.immutable = booleanValue(attribute);
|
|
185
|
+
break;
|
|
186
|
+
case 'preserveWhitespace':
|
|
187
|
+
options.preserveWhitespace = booleanValue(attribute);
|
|
188
|
+
break;
|
|
189
|
+
case 'accessors':
|
|
190
|
+
options.accessors = booleanValue(attribute);
|
|
191
|
+
break;
|
|
192
|
+
default:
|
|
193
|
+
fail('svelte_options_unknown_attribute', attribute, { name });
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
return options;
|
|
197
|
+
}
|
|
198
|
+
//# sourceMappingURL=options.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../../src/front/parse/options.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type * as ES from 'estree';
|
|
2
|
+
import type { Diagnostic } from 'vigla/compiler';
|
|
3
|
+
import type * as AST from '../ast.ts';
|
|
4
|
+
import { type Args, type At } from '../diagnostics.ts';
|
|
5
|
+
import type { Locator } from '../locate.ts';
|
|
6
|
+
import type { Context } from './js.ts';
|
|
7
|
+
export type Open = AST.Root | AST.ElementLike | AST.Block;
|
|
8
|
+
export interface AutoClosed {
|
|
9
|
+
readonly tag: string;
|
|
10
|
+
readonly reason: string;
|
|
11
|
+
readonly depth: number;
|
|
12
|
+
}
|
|
13
|
+
export type Identifier = ES.Identifier & AST.Located & {
|
|
14
|
+
loc: AST.NameLocation;
|
|
15
|
+
};
|
|
16
|
+
export declare class Scanner {
|
|
17
|
+
template: string;
|
|
18
|
+
readonly loose: boolean;
|
|
19
|
+
cssComments: AST.Css.Comment[];
|
|
20
|
+
index: number;
|
|
21
|
+
constructor(template: string, loose: boolean);
|
|
22
|
+
match(text: string): boolean;
|
|
23
|
+
eat(text: string, required?: boolean, requiredInLoose?: boolean): boolean;
|
|
24
|
+
matchRegex(pattern: RegExp): string | null;
|
|
25
|
+
read(pattern: RegExp): string | null;
|
|
26
|
+
allowWhitespace(): void;
|
|
27
|
+
readUntil(delimiter: string): string;
|
|
28
|
+
readUntilRegex(pattern: RegExp): string;
|
|
29
|
+
}
|
|
30
|
+
export declare class Parser extends Scanner implements Context {
|
|
31
|
+
readonly ts: boolean;
|
|
32
|
+
readonly locate: Locator;
|
|
33
|
+
readonly root: AST.Root;
|
|
34
|
+
readonly stack: Open[];
|
|
35
|
+
readonly fragments: AST.Fragment[];
|
|
36
|
+
readonly meta: Set<string>;
|
|
37
|
+
readonly warnings: Diagnostic[];
|
|
38
|
+
lastAutoClosed: AutoClosed | undefined;
|
|
39
|
+
constructor(source: string, loose: boolean, locate: Locator);
|
|
40
|
+
get comments(): AST.JSComment[];
|
|
41
|
+
current(): Open;
|
|
42
|
+
warn(code: string, at: At, args?: Args): void;
|
|
43
|
+
requireWhitespace(): void;
|
|
44
|
+
readIdentifier(): Identifier;
|
|
45
|
+
push(node: Open, fragment: AST.Fragment): void;
|
|
46
|
+
pop(): Open | undefined;
|
|
47
|
+
append<T extends AST.TemplateNode>(node: T): T;
|
|
48
|
+
}
|
|
49
|
+
export declare function fragment(): AST.Fragment;
|
|
50
|
+
//# sourceMappingURL=parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../src/front/parse/parser.ts"],"names":[],"mappings":"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"}
|