@hyperframes/core 0.7.14 → 0.7.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/compiler/staticGuard.js +1 -1
- package/dist/compiler/staticGuard.js.map +1 -1
- package/dist/core.types.d.ts +2 -369
- package/dist/core.types.d.ts.map +1 -1
- package/dist/core.types.js +1 -84
- package/dist/core.types.js.map +1 -1
- package/dist/generators/hyperframes.d.ts +1 -1
- package/dist/generators/hyperframes.d.ts.map +1 -1
- package/dist/generators/hyperframes.js +1 -1
- package/dist/generators/hyperframes.js.map +1 -1
- package/dist/index.d.ts +5 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -4
- package/dist/index.js.map +1 -1
- package/dist/lint/index.d.ts +2 -2
- package/dist/lint/index.d.ts.map +1 -1
- package/dist/lint/index.js +2 -1
- package/dist/lint/index.js.map +1 -1
- package/dist/parsers/gsapConstants.d.ts +2 -12
- package/dist/parsers/gsapConstants.d.ts.map +1 -1
- package/dist/parsers/gsapConstants.js +2 -110
- package/dist/parsers/gsapConstants.js.map +1 -1
- package/dist/parsers/gsapParserAcorn.d.ts +2 -48
- package/dist/parsers/gsapParserAcorn.d.ts.map +1 -1
- package/dist/parsers/gsapParserAcorn.js +2 -1057
- package/dist/parsers/gsapParserAcorn.js.map +1 -1
- package/dist/parsers/gsapParserExports.d.ts +2 -20
- package/dist/parsers/gsapParserExports.d.ts.map +1 -1
- package/dist/parsers/gsapParserExports.js +2 -8
- package/dist/parsers/gsapParserExports.js.map +1 -1
- package/dist/parsers/gsapWriterAcorn.d.ts +2 -90
- package/dist/parsers/gsapWriterAcorn.d.ts.map +1 -1
- package/dist/parsers/gsapWriterAcorn.js +2 -2016
- package/dist/parsers/gsapWriterAcorn.js.map +1 -1
- package/dist/parsers/hfIds.d.ts +2 -16
- package/dist/parsers/hfIds.d.ts.map +1 -1
- package/dist/parsers/hfIds.js +2 -127
- package/dist/parsers/hfIds.js.map +1 -1
- package/dist/parsers/springEase.d.ts +2 -28
- package/dist/parsers/springEase.d.ts.map +1 -1
- package/dist/parsers/springEase.js +2 -69
- package/dist/parsers/springEase.js.map +1 -1
- package/dist/slideshow/index.d.ts +1 -0
- package/dist/slideshow/index.d.ts.map +1 -1
- package/dist/slideshow/index.js +1 -0
- package/dist/slideshow/index.js.map +1 -1
- package/dist/studio-api/helpers/draftMarkers.d.ts +2 -10
- package/dist/studio-api/helpers/draftMarkers.d.ts.map +1 -1
- package/dist/studio-api/helpers/draftMarkers.js +2 -10
- package/dist/studio-api/helpers/draftMarkers.js.map +1 -1
- package/dist/studio-api/helpers/finiteMutation.d.ts +2 -10
- package/dist/studio-api/helpers/finiteMutation.d.ts.map +1 -1
- package/dist/studio-api/helpers/finiteMutation.js +2 -20
- package/dist/studio-api/helpers/finiteMutation.js.map +1 -1
- package/dist/studio-api/helpers/manualEditsRenderScript.d.ts +2 -12
- package/dist/studio-api/helpers/manualEditsRenderScript.d.ts.map +1 -1
- package/dist/studio-api/helpers/manualEditsRenderScript.js +2 -632
- package/dist/studio-api/helpers/manualEditsRenderScript.js.map +1 -1
- package/dist/studio-api/helpers/screenshotClip.d.ts +2 -7
- package/dist/studio-api/helpers/screenshotClip.d.ts.map +1 -1
- package/dist/studio-api/helpers/screenshotClip.js +2 -21
- package/dist/studio-api/helpers/screenshotClip.js.map +1 -1
- package/dist/studio-api/helpers/studioMotionRenderScript.d.ts +2 -8
- package/dist/studio-api/helpers/studioMotionRenderScript.d.ts.map +1 -1
- package/dist/studio-api/helpers/studioMotionRenderScript.js +2 -207
- package/dist/studio-api/helpers/studioMotionRenderScript.js.map +1 -1
- package/dist/studio-api/index.d.ts +2 -9
- package/dist/studio-api/index.d.ts.map +1 -1
- package/dist/studio-api/index.js +2 -8
- package/dist/studio-api/index.js.map +1 -1
- package/package.json +16 -18
- package/dist/generated/runtime-inline.js +0 -11
- package/dist/hyperframe.manifest.json +0 -22
- package/dist/hyperframe.runtime.mjs +0 -325
- package/dist/lint/context.d.ts +0 -17
- package/dist/lint/context.d.ts.map +0 -1
- package/dist/lint/context.js +0 -37
- package/dist/lint/context.js.map +0 -1
- package/dist/lint/hyperframeLinter.d.ts +0 -14
- package/dist/lint/hyperframeLinter.d.ts.map +0 -1
- package/dist/lint/hyperframeLinter.js +0 -132
- package/dist/lint/hyperframeLinter.js.map +0 -1
- package/dist/lint/rules/adapters.d.ts +0 -3
- package/dist/lint/rules/adapters.d.ts.map +0 -1
- package/dist/lint/rules/adapters.js +0 -40
- package/dist/lint/rules/adapters.js.map +0 -1
- package/dist/lint/rules/captions.d.ts +0 -3
- package/dist/lint/rules/captions.d.ts.map +0 -1
- package/dist/lint/rules/captions.js +0 -242
- package/dist/lint/rules/captions.js.map +0 -1
- package/dist/lint/rules/composition.d.ts +0 -5
- package/dist/lint/rules/composition.d.ts.map +0 -1
- package/dist/lint/rules/composition.js +0 -694
- package/dist/lint/rules/composition.js.map +0 -1
- package/dist/lint/rules/core.d.ts +0 -3
- package/dist/lint/rules/core.d.ts.map +0 -1
- package/dist/lint/rules/core.js +0 -432
- package/dist/lint/rules/core.js.map +0 -1
- package/dist/lint/rules/fonts.d.ts +0 -3
- package/dist/lint/rules/fonts.d.ts.map +0 -1
- package/dist/lint/rules/fonts.js +0 -205
- package/dist/lint/rules/fonts.js.map +0 -1
- package/dist/lint/rules/gsap.d.ts +0 -4
- package/dist/lint/rules/gsap.d.ts.map +0 -1
- package/dist/lint/rules/gsap.js +0 -1039
- package/dist/lint/rules/gsap.js.map +0 -1
- package/dist/lint/rules/media.d.ts +0 -3
- package/dist/lint/rules/media.d.ts.map +0 -1
- package/dist/lint/rules/media.js +0 -491
- package/dist/lint/rules/media.js.map +0 -1
- package/dist/lint/rules/slideshow.d.ts +0 -4
- package/dist/lint/rules/slideshow.d.ts.map +0 -1
- package/dist/lint/rules/slideshow.js +0 -74
- package/dist/lint/rules/slideshow.js.map +0 -1
- package/dist/lint/rules/textures.d.ts +0 -3
- package/dist/lint/rules/textures.d.ts.map +0 -1
- package/dist/lint/rules/textures.js +0 -192
- package/dist/lint/rules/textures.js.map +0 -1
- package/dist/lint/types.d.ts +0 -36
- package/dist/lint/types.d.ts.map +0 -1
- package/dist/lint/types.js +0 -2
- package/dist/lint/types.js.map +0 -1
- package/dist/lint/utils.d.ts +0 -55
- package/dist/lint/utils.d.ts.map +0 -1
- package/dist/lint/utils.js +0 -264
- package/dist/lint/utils.js.map +0 -1
- package/dist/parsers/gsapInline.d.ts +0 -47
- package/dist/parsers/gsapInline.d.ts.map +0 -1
- package/dist/parsers/gsapInline.js +0 -513
- package/dist/parsers/gsapInline.js.map +0 -1
- package/dist/parsers/gsapParser.d.ts +0 -158
- package/dist/parsers/gsapParser.d.ts.map +0 -1
- package/dist/parsers/gsapParser.js +0 -2634
- package/dist/parsers/gsapParser.js.map +0 -1
- package/dist/parsers/gsapParser.test-helpers.d.ts +0 -49
- package/dist/parsers/gsapParser.test-helpers.d.ts.map +0 -1
- package/dist/parsers/gsapParser.test-helpers.js +0 -97
- package/dist/parsers/gsapParser.test-helpers.js.map +0 -1
- package/dist/parsers/gsapSerialize.d.ts +0 -191
- package/dist/parsers/gsapSerialize.d.ts.map +0 -1
- package/dist/parsers/gsapSerialize.js +0 -410
- package/dist/parsers/gsapSerialize.js.map +0 -1
- package/dist/parsers/gsapUnroll.d.ts +0 -7
- package/dist/parsers/gsapUnroll.d.ts.map +0 -1
- package/dist/parsers/gsapUnroll.js +0 -137
- package/dist/parsers/gsapUnroll.js.map +0 -1
- package/dist/parsers/htmlParser.d.ts +0 -27
- package/dist/parsers/htmlParser.d.ts.map +0 -1
- package/dist/parsers/htmlParser.js +0 -731
- package/dist/parsers/htmlParser.js.map +0 -1
- package/dist/studio-api/createStudioApi.d.ts +0 -10
- package/dist/studio-api/createStudioApi.d.ts.map +0 -1
- package/dist/studio-api/createStudioApi.js +0 -32
- package/dist/studio-api/createStudioApi.js.map +0 -1
- package/dist/studio-api/helpers/backupJournal.d.ts +0 -9
- package/dist/studio-api/helpers/backupJournal.d.ts.map +0 -1
- package/dist/studio-api/helpers/backupJournal.js +0 -81
- package/dist/studio-api/helpers/backupJournal.js.map +0 -1
- package/dist/studio-api/helpers/hfIdPersist.d.ts +0 -11
- package/dist/studio-api/helpers/hfIdPersist.d.ts.map +0 -1
- package/dist/studio-api/helpers/hfIdPersist.js +0 -39
- package/dist/studio-api/helpers/hfIdPersist.js.map +0 -1
- package/dist/studio-api/helpers/mediaValidation.d.ts +0 -20
- package/dist/studio-api/helpers/mediaValidation.d.ts.map +0 -1
- package/dist/studio-api/helpers/mediaValidation.js +0 -56
- package/dist/studio-api/helpers/mediaValidation.js.map +0 -1
- package/dist/studio-api/helpers/mime.d.ts +0 -4
- package/dist/studio-api/helpers/mime.d.ts.map +0 -1
- package/dist/studio-api/helpers/mime.js +0 -39
- package/dist/studio-api/helpers/mime.js.map +0 -1
- package/dist/studio-api/helpers/previewAdapter.d.ts +0 -43
- package/dist/studio-api/helpers/previewAdapter.d.ts.map +0 -1
- package/dist/studio-api/helpers/previewAdapter.js +0 -118
- package/dist/studio-api/helpers/previewAdapter.js.map +0 -1
- package/dist/studio-api/helpers/projectSignature.d.ts +0 -5
- package/dist/studio-api/helpers/projectSignature.d.ts.map +0 -1
- package/dist/studio-api/helpers/projectSignature.js +0 -154
- package/dist/studio-api/helpers/projectSignature.js.map +0 -1
- package/dist/studio-api/helpers/safePath.d.ts +0 -12
- package/dist/studio-api/helpers/safePath.d.ts.map +0 -1
- package/dist/studio-api/helpers/safePath.js +0 -38
- package/dist/studio-api/helpers/safePath.js.map +0 -1
- package/dist/studio-api/helpers/sourceMutation.d.ts +0 -28
- package/dist/studio-api/helpers/sourceMutation.d.ts.map +0 -1
- package/dist/studio-api/helpers/sourceMutation.js +0 -339
- package/dist/studio-api/helpers/sourceMutation.js.map +0 -1
- package/dist/studio-api/helpers/subComposition.d.ts +0 -20
- package/dist/studio-api/helpers/subComposition.d.ts.map +0 -1
- package/dist/studio-api/helpers/subComposition.js +0 -289
- package/dist/studio-api/helpers/subComposition.js.map +0 -1
- package/dist/studio-api/helpers/waveform.d.ts +0 -4
- package/dist/studio-api/helpers/waveform.d.ts.map +0 -1
- package/dist/studio-api/helpers/waveform.js +0 -80
- package/dist/studio-api/helpers/waveform.js.map +0 -1
- package/dist/studio-api/routes/files.d.ts +0 -4
- package/dist/studio-api/routes/files.d.ts.map +0 -1
- package/dist/studio-api/routes/files.js +0 -1200
- package/dist/studio-api/routes/files.js.map +0 -1
- package/dist/studio-api/routes/fonts.d.ts +0 -3
- package/dist/studio-api/routes/fonts.d.ts.map +0 -1
- package/dist/studio-api/routes/fonts.js +0 -157
- package/dist/studio-api/routes/fonts.js.map +0 -1
- package/dist/studio-api/routes/lint.d.ts +0 -4
- package/dist/studio-api/routes/lint.d.ts.map +0 -1
- package/dist/studio-api/routes/lint.js +0 -29
- package/dist/studio-api/routes/lint.js.map +0 -1
- package/dist/studio-api/routes/preview.d.ts +0 -4
- package/dist/studio-api/routes/preview.d.ts.map +0 -1
- package/dist/studio-api/routes/preview.js +0 -331
- package/dist/studio-api/routes/preview.js.map +0 -1
- package/dist/studio-api/routes/projects.d.ts +0 -4
- package/dist/studio-api/routes/projects.d.ts.map +0 -1
- package/dist/studio-api/routes/projects.js +0 -45
- package/dist/studio-api/routes/projects.js.map +0 -1
- package/dist/studio-api/routes/registry.d.ts +0 -4
- package/dist/studio-api/routes/registry.d.ts.map +0 -1
- package/dist/studio-api/routes/registry.js +0 -31
- package/dist/studio-api/routes/registry.js.map +0 -1
- package/dist/studio-api/routes/render.d.ts +0 -4
- package/dist/studio-api/routes/render.d.ts.map +0 -1
- package/dist/studio-api/routes/render.js +0 -269
- package/dist/studio-api/routes/render.js.map +0 -1
- package/dist/studio-api/routes/storyboard.d.ts +0 -4
- package/dist/studio-api/routes/storyboard.d.ts.map +0 -1
- package/dist/studio-api/routes/storyboard.js +0 -65
- package/dist/studio-api/routes/storyboard.js.map +0 -1
- package/dist/studio-api/routes/thumbnail.d.ts +0 -4
- package/dist/studio-api/routes/thumbnail.d.ts.map +0 -1
- package/dist/studio-api/routes/thumbnail.js +0 -107
- package/dist/studio-api/routes/thumbnail.js.map +0 -1
- package/dist/studio-api/routes/waveform.d.ts +0 -4
- package/dist/studio-api/routes/waveform.d.ts.map +0 -1
- package/dist/studio-api/routes/waveform.js +0 -41
- package/dist/studio-api/routes/waveform.js.map +0 -1
- package/dist/studio-api/types.d.ts +0 -120
- package/dist/studio-api/types.d.ts.map +0 -1
- package/dist/studio-api/types.js +0 -2
- package/dist/studio-api/types.js.map +0 -1
package/dist/lint/utils.js
DELETED
|
@@ -1,264 +0,0 @@
|
|
|
1
|
-
// Shared types, regex constants, and utility functions used across lint rule modules.
|
|
2
|
-
// Nothing in this file should emit findings — it only parses and extracts.
|
|
3
|
-
const TAG_PATTERN = /<([a-z][\w:-]*)(\s[^<>]*?)?>/gi;
|
|
4
|
-
export const STYLE_BLOCK_PATTERN = /<style\b([^>]*)>([\s\S]*?)<\/style>/gi;
|
|
5
|
-
export const SCRIPT_BLOCK_PATTERN = /<script\b([^>]*)>([\s\S]*?)<\/script>/gi;
|
|
6
|
-
const COMPOSITION_ID_IN_CSS_PATTERN = /\[data-composition-id=["']([^"']+)["']\]/g;
|
|
7
|
-
export const TIMELINE_REGISTRY_INIT_PATTERN = /window\.__timelines\s*=\s*window\.__timelines\s*\|\|\s*\{\}|window\.__timelines\s*=\s*\{\}|window\.__timelines\s*\?\?=\s*\{\}/i;
|
|
8
|
-
export const TIMELINE_REGISTRY_ASSIGN_PATTERN = /window\.__timelines(?:\[[^\]]+\]|\.[A-Za-z_$][\w$]*)\s*=/i;
|
|
9
|
-
export const WINDOW_TIMELINE_ASSIGN_PATTERN = /window\.__timelines(?:\[\s*["']([^"']+)["']\s*\]|\.\s*([A-Za-z_$][\w$]*))\s*=\s*([A-Za-z_$][\w$]*)/i;
|
|
10
|
-
export const INVALID_SCRIPT_CLOSE_PATTERN = /<script[^>]*>[\s\S]*?<\s*\/\s*script(?!>)/i;
|
|
11
|
-
const TIMELINE_REGISTRY_KEY_PATTERN = /window\.__timelines(?:\[\s*["']([^"']+)["']\s*\]|\.\s*([A-Za-z_$][\w$]*))\s*=/g;
|
|
12
|
-
export function extractOpenTags(source) {
|
|
13
|
-
const tags = [];
|
|
14
|
-
let match;
|
|
15
|
-
const pattern = new RegExp(TAG_PATTERN.source, TAG_PATTERN.flags);
|
|
16
|
-
while ((match = pattern.exec(source)) !== null) {
|
|
17
|
-
const raw = match[0];
|
|
18
|
-
if (raw.startsWith("</") || raw.startsWith("<!"))
|
|
19
|
-
continue;
|
|
20
|
-
tags.push({
|
|
21
|
-
raw,
|
|
22
|
-
name: (match[1] || "").toLowerCase(),
|
|
23
|
-
attrs: match[2] || "",
|
|
24
|
-
index: match.index,
|
|
25
|
-
});
|
|
26
|
-
}
|
|
27
|
-
return tags;
|
|
28
|
-
}
|
|
29
|
-
export function extractBlocks(source, pattern) {
|
|
30
|
-
const blocks = [];
|
|
31
|
-
let match;
|
|
32
|
-
const p = new RegExp(pattern.source, pattern.flags);
|
|
33
|
-
while ((match = p.exec(source)) !== null) {
|
|
34
|
-
blocks.push({
|
|
35
|
-
attrs: match[1] || "",
|
|
36
|
-
content: match[2] || "",
|
|
37
|
-
raw: match[0],
|
|
38
|
-
index: match.index,
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
return blocks;
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Find the `<html>` open tag in the source. Distinct from `findRootTag`,
|
|
45
|
-
* which returns the first element inside `<body>` — the latter is "the
|
|
46
|
-
* composition's visible root", whereas `<html>` is where document-level
|
|
47
|
-
* metadata like `data-composition-variables` lives.
|
|
48
|
-
*/
|
|
49
|
-
export function findHtmlTag(source) {
|
|
50
|
-
const match = /<html\b([^<>]*)>/i.exec(source);
|
|
51
|
-
if (!match)
|
|
52
|
-
return null;
|
|
53
|
-
return {
|
|
54
|
-
raw: match[0],
|
|
55
|
-
name: "html",
|
|
56
|
-
attrs: match[1] ?? "",
|
|
57
|
-
index: match.index,
|
|
58
|
-
};
|
|
59
|
-
}
|
|
60
|
-
export function findRootTag(source) {
|
|
61
|
-
const bodyOpenMatch = /<body\b([^>]*)>/i.exec(source);
|
|
62
|
-
const bodyCloseMatch = /<\/body>/i.exec(source);
|
|
63
|
-
if (bodyOpenMatch &&
|
|
64
|
-
(readAttr(bodyOpenMatch[0], "data-composition-id") ||
|
|
65
|
-
readAttr(bodyOpenMatch[0], "data-width") ||
|
|
66
|
-
readAttr(bodyOpenMatch[0], "data-height"))) {
|
|
67
|
-
return {
|
|
68
|
-
raw: bodyOpenMatch[0],
|
|
69
|
-
name: "body",
|
|
70
|
-
attrs: bodyOpenMatch[1] ?? "",
|
|
71
|
-
index: bodyOpenMatch.index,
|
|
72
|
-
};
|
|
73
|
-
}
|
|
74
|
-
const bodyStart = bodyOpenMatch ? bodyOpenMatch.index + bodyOpenMatch[0].length : 0;
|
|
75
|
-
const bodyEnd = bodyOpenMatch && bodyCloseMatch && bodyCloseMatch.index > bodyStart
|
|
76
|
-
? bodyCloseMatch.index
|
|
77
|
-
: source.length;
|
|
78
|
-
const bodyContent = bodyOpenMatch ? source.slice(bodyStart, bodyEnd) : source;
|
|
79
|
-
const bodyTags = extractOpenTags(bodyContent);
|
|
80
|
-
for (const tag of bodyTags) {
|
|
81
|
-
if (["script", "style", "meta", "link", "title"].includes(tag.name))
|
|
82
|
-
continue;
|
|
83
|
-
return { ...tag, index: tag.index + bodyStart };
|
|
84
|
-
}
|
|
85
|
-
return null;
|
|
86
|
-
}
|
|
87
|
-
export function readAttr(tagSource, attr) {
|
|
88
|
-
if (!tagSource)
|
|
89
|
-
return null;
|
|
90
|
-
const escaped = attr.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
91
|
-
const match = tagSource.match(new RegExp(`\\b${escaped}\\s*=\\s*["']([^"']+)["']`, "i"));
|
|
92
|
-
return match?.[1] || null;
|
|
93
|
-
}
|
|
94
|
-
/**
|
|
95
|
-
* Read an attribute that may legitimately contain the opposite quote
|
|
96
|
-
* character. `readAttr` truncates `data-variable-values='{"title":"Hello"}'`
|
|
97
|
-
* at the first internal `"` because its `[^"']+` class excludes both quote
|
|
98
|
-
* types. This variant alternates: a double-quoted value never contains an
|
|
99
|
-
* unescaped `"`, and a single-quoted value never contains an unescaped `'`,
|
|
100
|
-
* so each branch can use a quote-specific class.
|
|
101
|
-
*
|
|
102
|
-
* Use for attributes whose values are JSON or otherwise carry the opposite
|
|
103
|
-
* quote character. Existing single-token attributes (`id`, `class`, etc.)
|
|
104
|
-
* stick with `readAttr` for consistency with the rest of the lint code.
|
|
105
|
-
*/
|
|
106
|
-
export function readJsonAttr(tagSource, attr) {
|
|
107
|
-
if (!tagSource)
|
|
108
|
-
return null;
|
|
109
|
-
const escaped = attr.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
110
|
-
const match = tagSource.match(new RegExp(`\\b${escaped}\\s*=\\s*(?:"([^"]*)"|'([^']*)')`, "i"));
|
|
111
|
-
if (!match)
|
|
112
|
-
return null;
|
|
113
|
-
return match[1] ?? match[2] ?? null;
|
|
114
|
-
}
|
|
115
|
-
export function collectCompositionIds(tags) {
|
|
116
|
-
const ids = new Set();
|
|
117
|
-
for (const tag of tags) {
|
|
118
|
-
const compId = readAttr(tag.raw, "data-composition-id");
|
|
119
|
-
if (compId)
|
|
120
|
-
ids.add(compId);
|
|
121
|
-
}
|
|
122
|
-
return ids;
|
|
123
|
-
}
|
|
124
|
-
export function extractCompositionIdsFromCss(css) {
|
|
125
|
-
const ids = new Set();
|
|
126
|
-
let match;
|
|
127
|
-
const pattern = new RegExp(COMPOSITION_ID_IN_CSS_PATTERN.source, COMPOSITION_ID_IN_CSS_PATTERN.flags);
|
|
128
|
-
while ((match = pattern.exec(css)) !== null) {
|
|
129
|
-
if (match[1])
|
|
130
|
-
ids.add(match[1]);
|
|
131
|
-
}
|
|
132
|
-
return [...ids];
|
|
133
|
-
}
|
|
134
|
-
export function extractTimelineRegistryKeys(source) {
|
|
135
|
-
const keys = new Set();
|
|
136
|
-
let match;
|
|
137
|
-
const pattern = new RegExp(TIMELINE_REGISTRY_KEY_PATTERN.source, TIMELINE_REGISTRY_KEY_PATTERN.flags);
|
|
138
|
-
while ((match = pattern.exec(source)) !== null) {
|
|
139
|
-
const key = match[1] ?? match[2];
|
|
140
|
-
if (key)
|
|
141
|
-
keys.add(key);
|
|
142
|
-
}
|
|
143
|
-
return [...keys];
|
|
144
|
-
}
|
|
145
|
-
export function getInlineScriptSyntaxError(source) {
|
|
146
|
-
if (!source.trim())
|
|
147
|
-
return null;
|
|
148
|
-
try {
|
|
149
|
-
// eslint-disable-next-line no-new-func
|
|
150
|
-
new Function(source);
|
|
151
|
-
return null;
|
|
152
|
-
}
|
|
153
|
-
catch (error) {
|
|
154
|
-
if (error instanceof Error)
|
|
155
|
-
return error.message;
|
|
156
|
-
return String(error);
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
// fallow-ignore-next-line complexity
|
|
160
|
-
export function stripJsComments(source) {
|
|
161
|
-
let out = "";
|
|
162
|
-
let i = 0;
|
|
163
|
-
let quote = null;
|
|
164
|
-
let escaped = false;
|
|
165
|
-
while (i < source.length) {
|
|
166
|
-
const ch = source[i] ?? "";
|
|
167
|
-
const next = source[i + 1] ?? "";
|
|
168
|
-
if (quote) {
|
|
169
|
-
out += ch;
|
|
170
|
-
if (escaped) {
|
|
171
|
-
escaped = false;
|
|
172
|
-
}
|
|
173
|
-
else if (ch === "\\") {
|
|
174
|
-
escaped = true;
|
|
175
|
-
}
|
|
176
|
-
else if (ch === quote) {
|
|
177
|
-
quote = null;
|
|
178
|
-
}
|
|
179
|
-
i += 1;
|
|
180
|
-
continue;
|
|
181
|
-
}
|
|
182
|
-
if (ch === "'" || ch === '"' || ch === "`") {
|
|
183
|
-
quote = ch;
|
|
184
|
-
out += ch;
|
|
185
|
-
i += 1;
|
|
186
|
-
continue;
|
|
187
|
-
}
|
|
188
|
-
if (ch === "/" && next === "/") {
|
|
189
|
-
out += " ";
|
|
190
|
-
i += 2;
|
|
191
|
-
while (i < source.length && source[i] !== "\n" && source[i] !== "\r") {
|
|
192
|
-
out += " ";
|
|
193
|
-
i += 1;
|
|
194
|
-
}
|
|
195
|
-
continue;
|
|
196
|
-
}
|
|
197
|
-
if (ch === "/" && next === "*") {
|
|
198
|
-
out += " ";
|
|
199
|
-
i += 2;
|
|
200
|
-
while (i < source.length) {
|
|
201
|
-
const blockCh = source[i] ?? "";
|
|
202
|
-
const blockNext = source[i + 1] ?? "";
|
|
203
|
-
if (blockCh === "*" && blockNext === "/") {
|
|
204
|
-
out += " ";
|
|
205
|
-
i += 2;
|
|
206
|
-
break;
|
|
207
|
-
}
|
|
208
|
-
out += blockCh === "\n" || blockCh === "\r" ? blockCh : " ";
|
|
209
|
-
i += 1;
|
|
210
|
-
}
|
|
211
|
-
continue;
|
|
212
|
-
}
|
|
213
|
-
out += ch;
|
|
214
|
-
i += 1;
|
|
215
|
-
}
|
|
216
|
-
return out;
|
|
217
|
-
}
|
|
218
|
-
// One linear pass that drops every `<!-- … -->` region. Uses indexOf, not a
|
|
219
|
-
// `/<!--[\s\S]*?-->/` regex: that pattern backtracks O(n²) on inputs with many
|
|
220
|
-
// unterminated "<!--" (CodeQL js/polynomial-redos). An unterminated "<!--" with
|
|
221
|
-
// no closing "-->" is kept verbatim, matching the prior regex's no-match behavior.
|
|
222
|
-
function stripHtmlCommentsOnce(source) {
|
|
223
|
-
let out = "";
|
|
224
|
-
let i = 0;
|
|
225
|
-
for (;;) {
|
|
226
|
-
const start = source.indexOf("<!--", i);
|
|
227
|
-
if (start < 0)
|
|
228
|
-
return out + source.slice(i);
|
|
229
|
-
const end = source.indexOf("-->", start + 4);
|
|
230
|
-
if (end < 0)
|
|
231
|
-
return out + source.slice(i);
|
|
232
|
-
out += source.slice(i, start);
|
|
233
|
-
i = end + 3;
|
|
234
|
-
}
|
|
235
|
-
}
|
|
236
|
-
// Strip HTML comments to a fixpoint. A single pass is not enough: deleting one
|
|
237
|
-
// comment can splice adjacent markers into a fresh, complete <!-- … --> (e.g.
|
|
238
|
-
// "<<!-- -->!-- … -->" → "<!-- … -->"), which would otherwise survive and let a
|
|
239
|
-
// commented-out <template>/tag hijack the linter's tag scan.
|
|
240
|
-
export function stripHtmlComments(source) {
|
|
241
|
-
let out = source;
|
|
242
|
-
for (let prev = ""; prev !== out;) {
|
|
243
|
-
prev = out;
|
|
244
|
-
out = stripHtmlCommentsOnce(out);
|
|
245
|
-
}
|
|
246
|
-
return out;
|
|
247
|
-
}
|
|
248
|
-
export function extractScriptTextsAndSrcs(scripts) {
|
|
249
|
-
const texts = scripts.filter((s) => !/\bsrc\s*=/.test(s.attrs)).map((s) => s.content);
|
|
250
|
-
const srcs = scripts.map((s) => readAttr(`<script ${s.attrs}>`, "src") || "").filter(Boolean);
|
|
251
|
-
return { texts, srcs };
|
|
252
|
-
}
|
|
253
|
-
export function isMediaTag(tagName) {
|
|
254
|
-
return tagName === "video" || tagName === "audio" || tagName === "img";
|
|
255
|
-
}
|
|
256
|
-
export function truncateSnippet(value, maxLength = 220) {
|
|
257
|
-
const normalized = value.replace(/\s+/g, " ").trim();
|
|
258
|
-
if (!normalized)
|
|
259
|
-
return undefined;
|
|
260
|
-
if (normalized.length <= maxLength)
|
|
261
|
-
return normalized;
|
|
262
|
-
return `${normalized.slice(0, maxLength - 3)}...`;
|
|
263
|
-
}
|
|
264
|
-
//# sourceMappingURL=utils.js.map
|
package/dist/lint/utils.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/lint/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Static evaluation for computed GSAP timelines (browser-safe, acorn/ESTree).
|
|
3
|
-
*
|
|
4
|
-
* The read parser resolves only literals and top-level consts, so timelines
|
|
5
|
-
* built by a helper called N times or by a bounded loop collapse to position 0.
|
|
6
|
-
* This module expands those constructs into a synthetic analysis AST: each
|
|
7
|
-
* helper invocation and each loop iteration becomes its own concrete set of
|
|
8
|
-
* `tl.*` calls, with parameters/loop-vars substituted by the call's argument
|
|
9
|
-
* (or element/index) AST nodes — after which the existing parse pipeline
|
|
10
|
-
* resolves positions and `motionPath` arcs unchanged.
|
|
11
|
-
*
|
|
12
|
-
* Substituted nodes keep their original source offsets, so downstream
|
|
13
|
-
* source-slicing (raw extras, keyframes) stays correct. The substitution
|
|
14
|
-
* primitives never mutate their input; `inlineComputedTimelines` rewrites the
|
|
15
|
-
* Program body of the freshly-parsed AST it is handed (owned by the caller).
|
|
16
|
-
*/
|
|
17
|
-
import type { GsapProvenance } from "./gsapSerialize.js";
|
|
18
|
-
type Node = any;
|
|
19
|
-
/** Deep structural clone preserving `start`/`end`/`loc` (needed for source slicing). */
|
|
20
|
-
export declare function cloneNode<T extends Node>(node: T): T;
|
|
21
|
-
/**
|
|
22
|
-
* Substitute bound identifiers in an already-cloned subtree, returning the
|
|
23
|
-
* (possibly replaced) root. Names shadowed anywhere inside (nested function
|
|
24
|
-
* params, declared vars) are dropped up front rather than tracked per scope —
|
|
25
|
-
* worst case we under-substitute and the caller falls back to current behavior.
|
|
26
|
-
* Never substitutes identifiers in key/member positions. Mutates the passed
|
|
27
|
-
* clone in place — callers pass `cloneNode(...)`.
|
|
28
|
-
*/
|
|
29
|
-
export declare function substituteParams(node: Node, bindings: ReadonlyMap<string, Node>): Node;
|
|
30
|
-
/** Tag a node (typically a `tl.*` CallExpression) with its construction provenance. */
|
|
31
|
-
export declare function tagProvenance(node: Node, provenance: GsapProvenance): Node;
|
|
32
|
-
/** Read a provenance tag previously set by `tagProvenance`, if any. */
|
|
33
|
-
export declare function readProvenance(node: Node): GsapProvenance | undefined;
|
|
34
|
-
/** Synthesize a numeric `Literal` node (for loop indices, which have no source node). */
|
|
35
|
-
export declare function numericLiteral(value: number): Node;
|
|
36
|
-
/** Resolve an expression to a literal value (top-level consts in scope, arithmetic). */
|
|
37
|
-
type LiteralResolver = (node: Node) => number | string | boolean | undefined;
|
|
38
|
-
/**
|
|
39
|
-
* Rewrite the Program body so helper invocations and bounded loops that build
|
|
40
|
-
* the timeline are expanded into concrete per-call / per-iteration `tl.*`
|
|
41
|
-
* statements, each tagged with provenance. Mutates `ast` in place (caller owns
|
|
42
|
-
* the freshly-parsed tree). Constructs it can't statically resolve are left
|
|
43
|
-
* untouched, so the parser falls back to current behavior for them.
|
|
44
|
-
*/
|
|
45
|
-
export declare function inlineComputedTimelines(ast: Node, timelineVar: string, resolve: LiteralResolver): void;
|
|
46
|
-
export {};
|
|
47
|
-
//# sourceMappingURL=gsapInline.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"gsapInline.d.ts","sourceRoot":"","sources":["../../src/parsers/gsapInline.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGzD,KAAK,IAAI,GAAG,GAAG,CAAC;AAyChB,wFAAwF;AACxF,wBAAgB,SAAS,CAAC,CAAC,SAAS,IAAI,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAEpD;AAoCD;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,IAAI,CAStF;AAWD,uFAAuF;AACvF,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,cAAc,GAAG,IAAI,CAG1E;AAED,uEAAuE;AACvE,wBAAgB,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,cAAc,GAAG,SAAS,CAErE;AAED,yFAAyF;AACzF,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAElD;AAID,wFAAwF;AACxF,KAAK,eAAe,GAAG,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;AA8Z7E;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,IAAI,EACT,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,eAAe,GACvB,IAAI,CAYN"}
|