@hyperframes/core 0.5.0-alpha.1 → 0.5.0-alpha.11
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/compositionScoping.d.ts +3 -0
- package/dist/compiler/compositionScoping.d.ts.map +1 -0
- package/dist/compiler/compositionScoping.js +242 -0
- package/dist/compiler/compositionScoping.js.map +1 -0
- package/dist/compiler/htmlBundler.d.ts.map +1 -1
- package/dist/compiler/htmlBundler.js +53 -13
- package/dist/compiler/htmlBundler.js.map +1 -1
- package/dist/compiler/index.d.ts +1 -0
- package/dist/compiler/index.d.ts.map +1 -1
- package/dist/compiler/index.js +2 -0
- package/dist/compiler/index.js.map +1 -1
- package/dist/generated/runtime-inline.js +1 -1
- package/dist/generated/runtime-inline.js.map +1 -1
- package/dist/hyperframe.manifest.json +1 -1
- package/dist/hyperframe.runtime.iife.js +208 -7
- package/dist/hyperframe.runtime.mjs +208 -7
- package/dist/lint/context.d.ts.map +1 -1
- package/dist/lint/context.js +9 -1
- package/dist/lint/context.js.map +1 -1
- package/dist/lint/rules/captions.d.ts.map +1 -1
- package/dist/lint/rules/captions.js +2 -1
- package/dist/lint/rules/captions.js.map +1 -1
- package/dist/lint/rules/composition.d.ts.map +1 -1
- package/dist/lint/rules/composition.js +102 -20
- package/dist/lint/rules/composition.js.map +1 -1
- package/dist/lint/rules/core.d.ts.map +1 -1
- package/dist/lint/rules/core.js +44 -0
- package/dist/lint/rules/core.js.map +1 -1
- package/dist/lint/rules/media.d.ts.map +1 -1
- package/dist/lint/rules/media.js +101 -30
- package/dist/lint/rules/media.js.map +1 -1
- package/dist/lint/types.d.ts +4 -0
- package/dist/lint/types.d.ts.map +1 -1
- package/dist/registry/types.d.ts +4 -0
- package/dist/registry/types.d.ts.map +1 -1
- package/dist/registry/types.js.map +1 -1
- package/dist/studio-api/createStudioApi.d.ts.map +1 -1
- package/dist/studio-api/createStudioApi.js +2 -0
- package/dist/studio-api/createStudioApi.js.map +1 -1
- package/dist/studio-api/helpers/mime.d.ts +1 -0
- package/dist/studio-api/helpers/mime.d.ts.map +1 -1
- package/dist/studio-api/helpers/mime.js +6 -0
- package/dist/studio-api/helpers/mime.js.map +1 -1
- package/dist/studio-api/helpers/waveform.d.ts +5 -0
- package/dist/studio-api/helpers/waveform.d.ts.map +1 -0
- package/dist/studio-api/helpers/waveform.js +74 -0
- package/dist/studio-api/helpers/waveform.js.map +1 -0
- package/dist/studio-api/routes/files.d.ts.map +1 -1
- package/dist/studio-api/routes/files.js +7 -1
- package/dist/studio-api/routes/files.js.map +1 -1
- package/dist/studio-api/routes/projects.js +1 -1
- package/dist/studio-api/routes/projects.js.map +1 -1
- package/dist/studio-api/routes/thumbnail.d.ts.map +1 -1
- package/dist/studio-api/routes/thumbnail.js +10 -4
- package/dist/studio-api/routes/thumbnail.js.map +1 -1
- package/dist/studio-api/routes/waveform.d.ts +6 -0
- package/dist/studio-api/routes/waveform.d.ts.map +1 -0
- package/dist/studio-api/routes/waveform.js +43 -0
- package/dist/studio-api/routes/waveform.js.map +1 -0
- package/dist/studio-api/types.d.ts +2 -0
- package/dist/studio-api/types.d.ts.map +1 -1
- package/package.json +3 -2
- package/schemas/registry-item.json +8 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/lint/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAU9E,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEvD,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC;AAExC,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5B,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,OAAO,EAAE,uBAAuB,CAAC;CAClC,CAAC;AAGF,YAAY,EAAE,qBAAqB,EAAE,CAAC;AAEtC,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,uBAA4B,GAAG,WAAW,
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/lint/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAU9E,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEvD,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC;AAExC,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5B,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,OAAO,EAAE,uBAAuB,CAAC;CAClC,CAAC;AAGF,YAAY,EAAE,qBAAqB,EAAE,CAAC;AAEtC,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,uBAA4B,GAAG,WAAW,CAgCjG"}
|
package/dist/lint/context.js
CHANGED
|
@@ -6,7 +6,15 @@ export function buildLintContext(html, options = {}) {
|
|
|
6
6
|
if (templateMatch?.[1])
|
|
7
7
|
source = templateMatch[1];
|
|
8
8
|
const tags = extractOpenTags(source);
|
|
9
|
-
const styles =
|
|
9
|
+
const styles = [
|
|
10
|
+
...extractBlocks(source, STYLE_BLOCK_PATTERN),
|
|
11
|
+
...(options.externalStyles ?? []).map((style) => ({
|
|
12
|
+
attrs: `href="${style.href}"`,
|
|
13
|
+
content: style.content,
|
|
14
|
+
raw: style.content,
|
|
15
|
+
index: -1,
|
|
16
|
+
})),
|
|
17
|
+
];
|
|
10
18
|
const scripts = extractBlocks(source, SCRIPT_BLOCK_PATTERN);
|
|
11
19
|
const compositionIds = collectCompositionIds(tags);
|
|
12
20
|
const rootTag = findRootTag(source);
|
package/dist/lint/context.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/lint/context.ts"],"names":[],"mappings":"AACA,OAAO,EACL,aAAa,EACb,eAAe,EACf,WAAW,EACX,qBAAqB,EACrB,QAAQ,EACR,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,SAAS,CAAC;AAoBjB,MAAM,UAAU,gBAAgB,CAAC,IAAY,EAAE,UAAmC,EAAE;IAClF,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;IAC7B,IAAI,MAAM,GAAG,SAAS,CAAC;IACvB,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC5E,IAAI,aAAa,EAAE,CAAC,CAAC,CAAC;QAAE,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;IAElD,MAAM,IAAI,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IACrC,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/lint/context.ts"],"names":[],"mappings":"AACA,OAAO,EACL,aAAa,EACb,eAAe,EACf,WAAW,EACX,qBAAqB,EACrB,QAAQ,EACR,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,SAAS,CAAC;AAoBjB,MAAM,UAAU,gBAAgB,CAAC,IAAY,EAAE,UAAmC,EAAE;IAClF,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;IAC7B,IAAI,MAAM,GAAG,SAAS,CAAC;IACvB,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC5E,IAAI,aAAa,EAAE,CAAC,CAAC,CAAC;QAAE,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;IAElD,MAAM,IAAI,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IACrC,MAAM,MAAM,GAAG;QACb,GAAG,aAAa,CAAC,MAAM,EAAE,mBAAmB,CAAC;QAC7C,GAAG,CAAC,OAAO,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAChD,KAAK,EAAE,SAAS,KAAK,CAAC,IAAI,GAAG;YAC7B,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,GAAG,EAAE,KAAK,CAAC,OAAO;YAClB,KAAK,EAAE,CAAC,CAAC;SACV,CAAC,CAAC;KACJ,CAAC;IACF,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IAC5D,MAAM,cAAc,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;IACnD,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IACpC,MAAM,iBAAiB,GAAG,QAAQ,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE,qBAAqB,CAAC,CAAC;IAE9E,OAAO;QACL,MAAM;QACN,SAAS;QACT,IAAI;QACJ,MAAM;QACN,OAAO;QACP,cAAc;QACd,OAAO;QACP,iBAAiB;QACjB,OAAO;KACR,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"captions.d.ts","sourceRoot":"","sources":["../../../src/lint/rules/captions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAErE,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE,WAAW,KAAK,qBAAqB,EAAE,
|
|
1
|
+
{"version":3,"file":"captions.d.ts","sourceRoot":"","sources":["../../../src/lint/rules/captions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAErE,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE,WAAW,KAAK,qBAAqB,EAAE,CAmO7E,CAAC"}
|
|
@@ -6,7 +6,8 @@ export const captionRules = [
|
|
|
6
6
|
const content = script.content;
|
|
7
7
|
const hasExitTween = /\.to\s*\([^,]+,\s*\{[^}]*opacity\s*:\s*0/.test(content);
|
|
8
8
|
const hasHardKill = /\.set\s*\([^,]+,\s*\{[^}]*(?:visibility\s*:\s*["']hidden["']|opacity\s*:\s*0)/.test(content);
|
|
9
|
-
const hasCaptionLoop = /forEach|\.forEach\s*\(/.test(content) &&
|
|
9
|
+
const hasCaptionLoop = /forEach|\.forEach\s*\(/.test(content) &&
|
|
10
|
+
/karaoke|caption[-_]?(?:group|word|line|block)|cg-/.test(content);
|
|
10
11
|
if (hasCaptionLoop && hasExitTween && !hasHardKill) {
|
|
11
12
|
findings.push({
|
|
12
13
|
code: "caption_exit_missing_hard_kill",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"captions.js","sourceRoot":"","sources":["../../../src/lint/rules/captions.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,YAAY,GAAyD;IAChF,iCAAiC;IACjC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;QACd,MAAM,QAAQ,GAA4B,EAAE,CAAC;QAC7C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;YAC/B,MAAM,YAAY,GAAG,0CAA0C,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC9E,MAAM,WAAW,GACf,+EAA+E,CAAC,IAAI,CAClF,OAAO,CACR,CAAC;YACJ,MAAM,cAAc,GAClB,wBAAwB,CAAC,IAAI,CAAC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"captions.js","sourceRoot":"","sources":["../../../src/lint/rules/captions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"composition.d.ts","sourceRoot":"","sources":["../../../src/lint/rules/composition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"composition.d.ts","sourceRoot":"","sources":["../../../src/lint/rules/composition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAkCrE,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE,WAAW,KAAK,qBAAqB,EAAE,CAmWjF,CAAC"}
|
|
@@ -1,5 +1,79 @@
|
|
|
1
1
|
import { readAttr, truncateSnippet } from "../utils";
|
|
2
|
+
// Agent guidance thresholds: warning-only nudges for files/tracks that become hard
|
|
3
|
+
// to inspect and revise reliably in a single composition.
|
|
4
|
+
const MAX_COMPOSITION_LINES = 300;
|
|
5
|
+
const MAX_TIMED_ELEMENTS_PER_TRACK = 3;
|
|
6
|
+
const TRACK_DENSITY_EXEMPT_TAGS = new Set(["audio", "script", "style", "video"]);
|
|
7
|
+
function countPhysicalLines(source) {
|
|
8
|
+
if (source.length === 0)
|
|
9
|
+
return 0;
|
|
10
|
+
const normalized = source.replace(/\r\n/g, "\n").replace(/\r/g, "\n");
|
|
11
|
+
const withoutFinalNewline = normalized.endsWith("\n") ? normalized.slice(0, -1) : normalized;
|
|
12
|
+
return withoutFinalNewline.split("\n").length;
|
|
13
|
+
}
|
|
14
|
+
function isRegistrySourceFile(filePath) {
|
|
15
|
+
if (!filePath)
|
|
16
|
+
return false;
|
|
17
|
+
const normalized = filePath.replace(/\\/g, "/");
|
|
18
|
+
return /(?:^|\/)registry\/blocks\/([^/]+)\/\1\.html$/i.test(normalized);
|
|
19
|
+
}
|
|
20
|
+
function isRegistryInstalledFile(rawSource) {
|
|
21
|
+
return /^\s*<!--\s*hyperframes-registry-item:[^>]*-->/i.test(rawSource.slice(0, 512));
|
|
22
|
+
}
|
|
23
|
+
function isCompositionRootOrMount(rawTag) {
|
|
24
|
+
return Boolean(readAttr(rawTag, "data-composition-id") || readAttr(rawTag, "data-composition-src"));
|
|
25
|
+
}
|
|
2
26
|
export const compositionRules = [
|
|
27
|
+
// composition_file_too_large
|
|
28
|
+
({ rawSource, options }) => {
|
|
29
|
+
if (isRegistrySourceFile(options.filePath) || isRegistryInstalledFile(rawSource))
|
|
30
|
+
return [];
|
|
31
|
+
const lineCount = countPhysicalLines(rawSource);
|
|
32
|
+
if (lineCount <= MAX_COMPOSITION_LINES)
|
|
33
|
+
return [];
|
|
34
|
+
const splitTarget = options.isSubComposition
|
|
35
|
+
? "Split this sub-composition further into smaller .html files"
|
|
36
|
+
: "Split coherent scenes or layers into separate .html files under compositions/";
|
|
37
|
+
return [
|
|
38
|
+
{
|
|
39
|
+
code: "composition_file_too_large",
|
|
40
|
+
severity: "warning",
|
|
41
|
+
message: `This HTML composition file has ${lineCount} lines. Agents produce better results when large scenes are split into smaller sub-compositions.`,
|
|
42
|
+
fixHint: `${splitTarget}, then mount them from the parent with data-composition-src so each file stays small enough to inspect, revise, and validate independently.`,
|
|
43
|
+
},
|
|
44
|
+
];
|
|
45
|
+
},
|
|
46
|
+
// timeline_track_too_dense
|
|
47
|
+
({ tags, options }) => {
|
|
48
|
+
const trackCounts = new Map();
|
|
49
|
+
for (const tag of tags) {
|
|
50
|
+
if (TRACK_DENSITY_EXEMPT_TAGS.has(tag.name))
|
|
51
|
+
continue;
|
|
52
|
+
if (isCompositionRootOrMount(tag.raw))
|
|
53
|
+
continue;
|
|
54
|
+
if (!readAttr(tag.raw, "data-start"))
|
|
55
|
+
continue;
|
|
56
|
+
const track = readAttr(tag.raw, "data-track-index");
|
|
57
|
+
if (!track)
|
|
58
|
+
continue;
|
|
59
|
+
trackCounts.set(track, (trackCounts.get(track) ?? 0) + 1);
|
|
60
|
+
}
|
|
61
|
+
const findings = [];
|
|
62
|
+
for (const [track, count] of trackCounts) {
|
|
63
|
+
if (count <= MAX_TIMED_ELEMENTS_PER_TRACK)
|
|
64
|
+
continue;
|
|
65
|
+
const splitTarget = options.isSubComposition
|
|
66
|
+
? "Move coherent scene groups into smaller .html files"
|
|
67
|
+
: "Move coherent scene groups into separate .html files under compositions/";
|
|
68
|
+
findings.push({
|
|
69
|
+
code: "timeline_track_too_dense",
|
|
70
|
+
severity: "warning",
|
|
71
|
+
message: `Track ${track} has ${count} timed elements in this HTML file. Agents produce better timelines when dense tracks are split into smaller sub-compositions.`,
|
|
72
|
+
fixHint: `${splitTarget} and mount them from the parent with data-composition-src so the timeline stays easier to inspect, revise, and validate.`,
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
return findings;
|
|
76
|
+
},
|
|
3
77
|
// timed_element_missing_visibility_hidden
|
|
4
78
|
({ tags }) => {
|
|
5
79
|
const findings = [];
|
|
@@ -59,6 +133,34 @@ export const compositionRules = [
|
|
|
59
133
|
}
|
|
60
134
|
return findings;
|
|
61
135
|
},
|
|
136
|
+
// split_data_attribute_selector
|
|
137
|
+
({ scripts, styles }) => {
|
|
138
|
+
const findings = [];
|
|
139
|
+
const splitDataAttrSelectorPattern = /\[data-composition-id=(["'])([^"'\]]+)\1\s+(data-[\w:-]+)=(["'])([^"'\]]*)\4\]/g;
|
|
140
|
+
const scan = (content) => {
|
|
141
|
+
splitDataAttrSelectorPattern.lastIndex = 0;
|
|
142
|
+
let match;
|
|
143
|
+
while ((match = splitDataAttrSelectorPattern.exec(content)) !== null) {
|
|
144
|
+
const compId = match[2] ?? "";
|
|
145
|
+
const attrName = match[3] ?? "";
|
|
146
|
+
const attrValue = match[5] ?? "";
|
|
147
|
+
findings.push({
|
|
148
|
+
code: "split_data_attribute_selector",
|
|
149
|
+
severity: "error",
|
|
150
|
+
message: `Selector "${match[0]}" combines two attributes inside one CSS attribute selector. ` +
|
|
151
|
+
"Browsers reject it, so GSAP timelines or querySelector calls will fail before registering.",
|
|
152
|
+
selector: match[0],
|
|
153
|
+
fixHint: `Use separate attribute selectors: [data-composition-id="${compId}"][${attrName}="${attrValue}"].`,
|
|
154
|
+
snippet: truncateSnippet(match[0]),
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
};
|
|
158
|
+
for (const style of styles)
|
|
159
|
+
scan(style.content);
|
|
160
|
+
for (const script of scripts)
|
|
161
|
+
scan(script.content);
|
|
162
|
+
return findings;
|
|
163
|
+
},
|
|
62
164
|
// template_literal_selector
|
|
63
165
|
({ scripts }) => {
|
|
64
166
|
const findings = [];
|
|
@@ -196,26 +298,6 @@ export const compositionRules = [
|
|
|
196
298
|
}
|
|
197
299
|
return findings;
|
|
198
300
|
},
|
|
199
|
-
// root_composition_missing_data_duration
|
|
200
|
-
({ rootTag }) => {
|
|
201
|
-
const findings = [];
|
|
202
|
-
if (!rootTag)
|
|
203
|
-
return findings;
|
|
204
|
-
const compId = readAttr(rootTag.raw, "data-composition-id");
|
|
205
|
-
if (!compId)
|
|
206
|
-
return findings;
|
|
207
|
-
const hasDuration = readAttr(rootTag.raw, "data-duration") !== null;
|
|
208
|
-
if (!hasDuration) {
|
|
209
|
-
findings.push({
|
|
210
|
-
code: "root_composition_missing_data_duration",
|
|
211
|
-
severity: "warning",
|
|
212
|
-
message: `Root composition "${compId}" is missing data-duration. Without an explicit duration, the runtime may infer Infinity for compositions with repeating animations, causing playback issues.`,
|
|
213
|
-
fixHint: 'Add data-duration="X" to the root composition element, where X is the total duration in seconds.',
|
|
214
|
-
snippet: truncateSnippet(rootTag.raw),
|
|
215
|
-
});
|
|
216
|
-
}
|
|
217
|
-
return findings;
|
|
218
|
-
},
|
|
219
301
|
// standalone_composition_wrapped_in_template
|
|
220
302
|
({ rawSource, options }) => {
|
|
221
303
|
const findings = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"composition.js","sourceRoot":"","sources":["../../../src/lint/rules/composition.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAErD,MAAM,CAAC,MAAM,gBAAgB,GAAyD;IACpF,0CAA0C;IAC1C,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;QACX,MAAM,QAAQ,GAA4B,EAAE,CAAC;QAC7C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO;gBAAE,SAAS;YACpF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,YAAY,CAAC;gBAAE,SAAS;YAC/C,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,qBAAqB,CAAC;gBAAE,SAAS;YACvD,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,sBAAsB,CAAC;gBAAE,SAAS;YACxD,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;YACnD,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;YACnD,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACxD,MAAM,cAAc,GAClB,0BAA0B,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACnF,IAAI,CAAC,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC;gBAChC,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,SAAS,CAAC;gBACvD,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,yCAAyC;oBAC/C,QAAQ,EAAE,MAAM;oBAChB,OAAO,EAAE,IAAI,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,QAAQ,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE,yKAAyK;oBACtO,SAAS;oBACT,OAAO,EACL,qHAAqH;oBACvH,OAAO,EAAE,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC;iBAClC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,8CAA8C;IAC9C,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;QACX,MAAM,QAAQ,GAA4B,EAAE,CAAC;QAC7C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,kBAAkB,CAAC,EAAE,CAAC;gBAC9E,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,SAAS,CAAC;gBACvD,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,uBAAuB;oBAC7B,QAAQ,EAAE,SAAS;oBACnB,OAAO,EAAE,IAAI,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,QAAQ,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE,gDAAgD;oBAC7G,SAAS;oBACT,OAAO,EAAE,+EAA+E;oBACxF,OAAO,EAAE,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC;iBAClC,CAAC,CAAC;YACL,CAAC;YACD,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,eAAe,CAAC,EAAE,CAAC;gBACzE,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,SAAS,CAAC;gBACvD,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,qBAAqB;oBAC3B,QAAQ,EAAE,SAAS;oBACnB,OAAO,EAAE,IAAI,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,QAAQ,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE,0EAA0E;oBACvI,SAAS;oBACT,OAAO,EACL,wGAAwG;oBAC1G,OAAO,EAAE,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC;iBAClC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,4BAA4B;IAC5B,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;QACd,MAAM,QAAQ,GAA4B,EAAE,CAAC;QAC7C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,8BAA8B,GAClC,yEAAyE,CAAC;YAC5E,IAAI,OAA+B,CAAC;YACpC,OAAO,CAAC,OAAO,GAAG,8BAA8B,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gBAChF,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,2BAA2B;oBACjC,QAAQ,EAAE,OAAO;oBACjB,OAAO,EACL,qEAAqE;wBACrE,iFAAiF;oBACnF,OAAO,EACL,iJAAiJ;oBACnJ,OAAO,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;iBACrC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,6BAA6B;IAC7B,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;QACb,MAAM,QAAQ,GAA4B,EAAE,CAAC;QAC7C,MAAM,gBAAgB,GAAG,yDAAyD,CAAC;QACnF,IAAI,KAA6B,CAAC;QAClC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,OAAO,CAAC,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACxD,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC3B,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,SAAS;YAC5B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACd,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,4BAA4B;gBAClC,QAAQ,EAAE,MAAM;gBAChB,OAAO,EAAE,oDAAoD,GAAG,0RAA0R;gBAC1V,OAAO,EACL,mKAAmK;gBACrK,OAAO,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aACzC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,mCAAmC;IACnC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;QACX,MAAM,QAAQ,GAA4B,EAAE,CAAC;QAC7C,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;QAC5E,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,SAAS;YACrC,yBAAyB;YACzB,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,qBAAqB,CAAC;gBAAE,SAAS;YACvD,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,sBAAsB,CAAC;gBAAE,SAAS;YAExD,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,YAAY,CAAC,KAAK,IAAI,CAAC;YAC1D,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,eAAe,CAAC,KAAK,IAAI,CAAC;YAChE,MAAM,aAAa,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,kBAAkB,CAAC,KAAK,IAAI,CAAC;YACrE,IAAI,CAAC,QAAQ,IAAI,CAAC,WAAW,IAAI,CAAC,aAAa;gBAAE,SAAS;YAE1D,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;YACnD,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACxD,IAAI,OAAO;gBAAE,SAAS;YAEtB,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,SAAS,CAAC;YACvD,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,kCAAkC;gBACxC,QAAQ,EAAE,SAAS;gBACnB,OAAO,EAAE,IAAI,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,QAAQ,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE,sJAAsJ;gBACnN,SAAS;gBACT,OAAO,EACL,8HAA8H;gBAChI,OAAO,EAAE,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC;aAClC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,+BAA+B;IAC/B,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;QACX,MAAM,QAAQ,GAA4B,EAAE,CAAC;QAG7C,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAsB,CAAC;QAE/C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;YACjD,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;YACvD,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;YACvD,IAAI,CAAC,QAAQ,IAAI,CAAC,WAAW,IAAI,CAAC,QAAQ;gBAAE,SAAS;YAErD,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC/B,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;YACrC,MAAM,KAAK,GAAG,QAAQ,CAAC;YAEvB,kEAAkE;YAClE,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC;gBAAE,SAAS;YAE5D,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YACxC,KAAK,CAAC,IAAI,CAAC;gBACT,KAAK;gBACL,GAAG,EAAE,KAAK,GAAG,QAAQ;gBACrB,SAAS,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,SAAS;gBAC/C,OAAO,EAAE,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE;aACxC,CAAC,CAAC;YACH,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC7B,CAAC;QAED,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,QAAQ,EAAE,CAAC;YACtC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;YACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC1C,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACzB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC1B,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI;oBAAE,SAAS;gBAChC,IAAI,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;oBAC7B,QAAQ,CAAC,IAAI,CAAC;wBACZ,IAAI,EAAE,8BAA8B;wBACpC,QAAQ,EAAE,OAAO;wBACjB,OAAO,EAAE,SAAS,KAAK,oBAAoB,OAAO,CAAC,GAAG,oCAAoC,IAAI,CAAC,KAAK,mEAAmE;wBACvK,OAAO,EACL,iIAAiI;qBACpI,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,sCAAsC;IACtC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;QACd,MAAM,QAAQ,GAA4B,EAAE,CAAC;QAC7C,IAAI,CAAC,OAAO;YAAE,OAAO,QAAQ,CAAC;QAC9B,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,qBAAqB,CAAC,CAAC;QAC5D,IAAI,CAAC,MAAM;YAAE,OAAO,QAAQ,CAAC;QAC7B,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,YAAY,CAAC,KAAK,IAAI,CAAC;QAC9D,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,qCAAqC;gBAC3C,QAAQ,EAAE,SAAS;gBACnB,OAAO,EAAE,qBAAqB,MAAM,kGAAkG;gBACtI,OAAO,EAAE,qDAAqD;gBAC9D,OAAO,EAAE,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC;aACtC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,yCAAyC;IACzC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;QACd,MAAM,QAAQ,GAA4B,EAAE,CAAC;QAC7C,IAAI,CAAC,OAAO;YAAE,OAAO,QAAQ,CAAC;QAC9B,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,qBAAqB,CAAC,CAAC;QAC5D,IAAI,CAAC,MAAM;YAAE,OAAO,QAAQ,CAAC;QAC7B,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,eAAe,CAAC,KAAK,IAAI,CAAC;QACpE,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,wCAAwC;gBAC9C,QAAQ,EAAE,SAAS;gBACnB,OAAO,EAAE,qBAAqB,MAAM,+JAA+J;gBACnM,OAAO,EACL,kGAAkG;gBACpG,OAAO,EAAE,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC;aACtC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,6CAA6C;IAC7C,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;QACzB,MAAM,QAAQ,GAA4B,EAAE,CAAC;QAC7C,IAAI,OAAO,CAAC,gBAAgB;YAAE,OAAO,QAAQ,CAAC;QAC9C,MAAM,OAAO,GAAG,SAAS,CAAC,SAAS,EAAE,CAAC,WAAW,EAAE,CAAC;QACpD,IAAI,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YACpC,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,4CAA4C;gBAClD,QAAQ,EAAE,SAAS;gBACnB,OAAO,EACL,kDAAkD;oBAClD,wFAAwF;oBACxF,qEAAqE;gBACvE,OAAO,EACL,kHAAkH;aACrH,CAAC,CAAC;QACL,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,wCAAwC;IACxC,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE;QAClC,MAAM,QAAQ,GAA4B,EAAE,CAAC;QAC7C,IAAI,OAAO,CAAC,gBAAgB;YAAE,OAAO,QAAQ,CAAC;QAC9C,MAAM,OAAO,GAAG,SAAS,CAAC,SAAS,EAAE,CAAC,WAAW,EAAE,CAAC;QACpD,0FAA0F;QAC1F,IAAI,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC;YAAE,OAAO,QAAQ,CAAC;QACrD,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAClF,MAAM,cAAc,GAAG,SAAS,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;QACjE,IAAI,cAAc,IAAI,CAAC,UAAU,EAAE,CAAC;YAClC,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,uCAAuC;gBAC7C,QAAQ,EAAE,OAAO;gBACjB,OAAO,EACL,4EAA4E;oBAC5E,4FAA4F;oBAC5F,kFAAkF;oBAClF,kDAAkD;gBACpD,OAAO,EACL,0GAA0G;gBAC5G,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;aAC5D,CAAC,CAAC;QACL,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,uCAAuC;IACvC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;QACd,MAAM,QAAQ,GAA4B,EAAE,CAAC;QAC7C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,0CAA0C;YAC1C,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;YAC1F,IAAI,4BAA4B,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAChD,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,sCAAsC;oBAC5C,QAAQ,EAAE,SAAS;oBACnB,OAAO,EACL,yKAAyK;oBAC3K,OAAO,EACL,6FAA6F;oBAC/F,OAAO,EAAE,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC;iBACzC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"composition.js","sourceRoot":"","sources":["../../../src/lint/rules/composition.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../src/lint/rules/core.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../src/lint/rules/core.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAuBrE,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE,WAAW,KAAK,qBAAqB,EAAE,CAgP1E,CAAC"}
|
package/dist/lint/rules/core.js
CHANGED
|
@@ -1,4 +1,12 @@
|
|
|
1
|
+
import postcss from "postcss";
|
|
1
2
|
import { readAttr, truncateSnippet, extractCompositionIdsFromCss, getInlineScriptSyntaxError, TIMELINE_REGISTRY_INIT_PATTERN, TIMELINE_REGISTRY_ASSIGN_PATTERN, INVALID_SCRIPT_CLOSE_PATTERN, } from "../utils";
|
|
3
|
+
function escapeRegExp(value) {
|
|
4
|
+
return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
5
|
+
}
|
|
6
|
+
function selectorTargetsCompositionId(selector, compositionId) {
|
|
7
|
+
const escaped = escapeRegExp(compositionId);
|
|
8
|
+
return new RegExp(String.raw `\[\s*data-composition-id\s*=\s*(?:"${escaped}"|'${escaped}')\s*\]`).test(selector);
|
|
9
|
+
}
|
|
2
10
|
export const coreRules = [
|
|
3
11
|
// root_missing_composition_id + root_missing_dimensions
|
|
4
12
|
({ rootTag }) => {
|
|
@@ -151,6 +159,42 @@ export const coreRules = [
|
|
|
151
159
|
}
|
|
152
160
|
return findings;
|
|
153
161
|
},
|
|
162
|
+
// composition_self_attribute_selector
|
|
163
|
+
({ styles, rootCompositionId, rootTag }) => {
|
|
164
|
+
const findings = [];
|
|
165
|
+
if (!rootCompositionId)
|
|
166
|
+
return findings;
|
|
167
|
+
const seenSelectors = new Set();
|
|
168
|
+
const rootId = readAttr(rootTag?.raw || "", "id");
|
|
169
|
+
for (const style of styles) {
|
|
170
|
+
let root;
|
|
171
|
+
try {
|
|
172
|
+
root = postcss.parse(style.content);
|
|
173
|
+
}
|
|
174
|
+
catch {
|
|
175
|
+
continue;
|
|
176
|
+
}
|
|
177
|
+
root.walkRules((rule) => {
|
|
178
|
+
for (const selector of rule.selectors) {
|
|
179
|
+
if (!selectorTargetsCompositionId(selector, rootCompositionId))
|
|
180
|
+
continue;
|
|
181
|
+
if (seenSelectors.has(selector))
|
|
182
|
+
continue;
|
|
183
|
+
seenSelectors.add(selector);
|
|
184
|
+
findings.push({
|
|
185
|
+
code: "composition_self_attribute_selector",
|
|
186
|
+
severity: "warning",
|
|
187
|
+
message: "Selector matches the block's own id; will leak to sibling instances when the block is embedded twice.",
|
|
188
|
+
selector,
|
|
189
|
+
fixHint: rootId
|
|
190
|
+
? `Use #${rootId} for clearer authoring intent and instance-isolated styling.`
|
|
191
|
+
: "Add a stable id to the composition root and use that id selector for clearer authoring intent and instance-isolated styling.",
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
return findings;
|
|
197
|
+
},
|
|
154
198
|
// non_deterministic_code
|
|
155
199
|
({ scripts }) => {
|
|
156
200
|
const findings = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../../src/lint/rules/core.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../../src/lint/rules/core.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../../../src/lint/rules/media.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../../../src/lint/rules/media.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAoMrE,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE,WAAW,KAAK,qBAAqB,EAAE,CA4Q3E,CAAC"}
|
package/dist/lint/rules/media.js
CHANGED
|
@@ -2,44 +2,73 @@ import { readAttr, truncateSnippet, isMediaTag } from "../utils";
|
|
|
2
2
|
function escapeRegExp(value) {
|
|
3
3
|
return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
4
4
|
}
|
|
5
|
-
function
|
|
5
|
+
function hasAttrName(tagSource, attr) {
|
|
6
|
+
const escaped = escapeRegExp(attr);
|
|
7
|
+
const attrs = tagSource.replace(/^<\s*[a-z][\w:-]*/i, "");
|
|
8
|
+
return new RegExp(`(?:^|\\s)${escaped}(?:\\s*=|\\s|/?>)`, "i").test(attrs);
|
|
9
|
+
}
|
|
10
|
+
function classNamesFromAttr(classAttr) {
|
|
11
|
+
if (!classAttr)
|
|
12
|
+
return [];
|
|
13
|
+
return classAttr.split(/\s+/).filter(Boolean);
|
|
14
|
+
}
|
|
15
|
+
function selectorTargetsManagedMedia(selector, mediaIndex) {
|
|
6
16
|
const normalized = selector.trim();
|
|
7
17
|
if (!normalized)
|
|
8
18
|
return false;
|
|
9
|
-
if (/\
|
|
19
|
+
if (mediaIndex.hasVideo && /\bvideo\b/i.test(normalized))
|
|
10
20
|
return true;
|
|
11
|
-
|
|
12
|
-
|
|
21
|
+
if (mediaIndex.hasAudio && /\baudio\b/i.test(normalized))
|
|
22
|
+
return true;
|
|
23
|
+
for (const mediaId of mediaIndex.ids) {
|
|
24
|
+
const escapedId = escapeRegExp(mediaId);
|
|
25
|
+
if (new RegExp(`#${escapedId}(?![\\w-])`).test(normalized) ||
|
|
13
26
|
normalized.includes(`[id="${mediaId}"]`) ||
|
|
14
27
|
normalized.includes(`[id='${mediaId}']`)) {
|
|
15
28
|
return true;
|
|
16
29
|
}
|
|
17
30
|
}
|
|
31
|
+
for (const className of mediaIndex.classes) {
|
|
32
|
+
if (new RegExp(`\\.${escapeRegExp(className)}(?![\\w-])`).test(normalized)) {
|
|
33
|
+
return true;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
18
36
|
return false;
|
|
19
37
|
}
|
|
20
38
|
function findImperativeMediaControlFindings(ctx) {
|
|
21
39
|
const findings = [];
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
.map((tag) => readAttr(tag.raw, "id"))
|
|
25
|
-
.
|
|
26
|
-
|
|
40
|
+
const mediaTags = ctx.tags.filter((tag) => tag.name === "video" || tag.name === "audio");
|
|
41
|
+
const mediaIndex = {
|
|
42
|
+
ids: new Set(mediaTags.map((tag) => readAttr(tag.raw, "id")).filter((id) => Boolean(id))),
|
|
43
|
+
classes: new Set(mediaTags.flatMap((tag) => classNamesFromAttr(readAttr(tag.raw, "class")))),
|
|
44
|
+
hasVideo: mediaTags.some((tag) => tag.name === "video"),
|
|
45
|
+
hasAudio: mediaTags.some((tag) => tag.name === "audio"),
|
|
46
|
+
};
|
|
47
|
+
if (mediaTags.length === 0 || ctx.scripts.length === 0)
|
|
27
48
|
return findings;
|
|
28
49
|
for (const script of ctx.scripts) {
|
|
29
50
|
const mediaVars = new Map();
|
|
30
51
|
const assignmentPatterns = [
|
|
31
|
-
|
|
32
|
-
|
|
52
|
+
{
|
|
53
|
+
pattern: /\b(?:const|let|var)\s+([A-Za-z_$][\w$]*)\s*=\s*(?:document|window\.document)\.getElementById\(\s*["']([^"']+)["']\s*\)/g,
|
|
54
|
+
variableIndex: 1,
|
|
55
|
+
targetIndex: 2,
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
pattern: /\b(?:const|let|var)\s+([A-Za-z_$][\w$]*)\s*=\s*(?:document|window\.document)\.querySelector\(\s*(["'])([\s\S]*?)\2\s*\)/g,
|
|
59
|
+
variableIndex: 1,
|
|
60
|
+
targetIndex: 3,
|
|
61
|
+
},
|
|
33
62
|
];
|
|
34
|
-
for (const pattern of assignmentPatterns) {
|
|
63
|
+
for (const { pattern, variableIndex, targetIndex } of assignmentPatterns) {
|
|
35
64
|
let match;
|
|
36
65
|
while ((match = pattern.exec(script.content)) !== null) {
|
|
37
|
-
const variableName = match[
|
|
38
|
-
const target = match[
|
|
66
|
+
const variableName = match[variableIndex];
|
|
67
|
+
const target = match[targetIndex];
|
|
39
68
|
if (!variableName || !target)
|
|
40
69
|
continue;
|
|
41
|
-
if (
|
|
42
|
-
mediaVars.set(variableName,
|
|
70
|
+
if (mediaIndex.ids.has(target) || selectorTargetsManagedMedia(target, mediaIndex)) {
|
|
71
|
+
mediaVars.set(variableName, mediaIndex.ids.has(target) ? target : undefined);
|
|
43
72
|
}
|
|
44
73
|
}
|
|
45
74
|
}
|
|
@@ -47,37 +76,53 @@ function findImperativeMediaControlFindings(ctx) {
|
|
|
47
76
|
{
|
|
48
77
|
pattern: /\b(?:document|window\.document)\.getElementById\(\s*["']([^"']+)["']\s*\)\.play\s*\(/g,
|
|
49
78
|
kind: "play()",
|
|
79
|
+
targetIndex: 1,
|
|
50
80
|
},
|
|
51
81
|
{
|
|
52
82
|
pattern: /\b(?:document|window\.document)\.getElementById\(\s*["']([^"']+)["']\s*\)\.pause\s*\(/g,
|
|
53
83
|
kind: "pause()",
|
|
84
|
+
targetIndex: 1,
|
|
54
85
|
},
|
|
55
86
|
{
|
|
56
87
|
pattern: /\b(?:document|window\.document)\.getElementById\(\s*["']([^"']+)["']\s*\)\.currentTime\s*=/g,
|
|
57
88
|
kind: "currentTime",
|
|
89
|
+
targetIndex: 1,
|
|
58
90
|
},
|
|
59
91
|
{
|
|
60
|
-
pattern: /\b(?:document|window\.document)\.
|
|
92
|
+
pattern: /\b(?:document|window\.document)\.getElementById\(\s*["']([^"']+)["']\s*\)\.muted\s*=/g,
|
|
93
|
+
kind: "muted assignment",
|
|
94
|
+
targetIndex: 1,
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
pattern: /\b(?:document|window\.document)\.querySelector\(\s*(["'])([\s\S]*?)\1\s*\)\.play\s*\(/g,
|
|
61
98
|
kind: "play()",
|
|
99
|
+
targetIndex: 2,
|
|
62
100
|
},
|
|
63
101
|
{
|
|
64
|
-
pattern: /\b(?:document|window\.document)\.querySelector\(\s*["']([
|
|
102
|
+
pattern: /\b(?:document|window\.document)\.querySelector\(\s*(["'])([\s\S]*?)\1\s*\)\.pause\s*\(/g,
|
|
65
103
|
kind: "pause()",
|
|
104
|
+
targetIndex: 2,
|
|
66
105
|
},
|
|
67
106
|
{
|
|
68
|
-
pattern: /\b(?:document|window\.document)\.querySelector\(\s*["']([
|
|
107
|
+
pattern: /\b(?:document|window\.document)\.querySelector\(\s*(["'])([\s\S]*?)\1\s*\)\.currentTime\s*=/g,
|
|
69
108
|
kind: "currentTime",
|
|
109
|
+
targetIndex: 2,
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
pattern: /\b(?:document|window\.document)\.querySelector\(\s*(["'])([\s\S]*?)\1\s*\)\.muted\s*=/g,
|
|
113
|
+
kind: "muted assignment",
|
|
114
|
+
targetIndex: 2,
|
|
70
115
|
},
|
|
71
116
|
];
|
|
72
|
-
for (const { pattern, kind } of directIdPatterns) {
|
|
117
|
+
for (const { pattern, kind, targetIndex } of directIdPatterns) {
|
|
73
118
|
let match;
|
|
74
119
|
while ((match = pattern.exec(script.content)) !== null) {
|
|
75
|
-
const target = match[
|
|
120
|
+
const target = match[targetIndex];
|
|
76
121
|
if (!target)
|
|
77
122
|
continue;
|
|
78
|
-
const elementId =
|
|
123
|
+
const elementId = mediaIndex.ids.has(target)
|
|
79
124
|
? target
|
|
80
|
-
: selectorTargetsManagedMedia(target,
|
|
125
|
+
: selectorTargetsManagedMedia(target, mediaIndex)
|
|
81
126
|
? undefined
|
|
82
127
|
: null;
|
|
83
128
|
if (elementId === null)
|
|
@@ -87,7 +132,7 @@ function findImperativeMediaControlFindings(ctx) {
|
|
|
87
132
|
severity: "error",
|
|
88
133
|
message: `Inline <script> imperatively controls managed media via ${kind}. HyperFrames must own media play/pause/seek to keep preview, timeline, and renders deterministic.`,
|
|
89
134
|
elementId: elementId || undefined,
|
|
90
|
-
fixHint: "Remove imperative media play/pause/currentTime control. Express timing with data-start/data-duration and media offsets like data-media-start or data-playback-start instead.",
|
|
135
|
+
fixHint: "Remove imperative media play/pause/currentTime/muted control. Express timing with data-start/data-duration and media offsets like data-media-start or data-playback-start instead.",
|
|
91
136
|
snippet: truncateSnippet(match[0]),
|
|
92
137
|
});
|
|
93
138
|
}
|
|
@@ -98,6 +143,10 @@ function findImperativeMediaControlFindings(ctx) {
|
|
|
98
143
|
{ pattern: new RegExp(`\\b${escapedVar}\\.play\\s*\\(`, "g"), kind: "play()" },
|
|
99
144
|
{ pattern: new RegExp(`\\b${escapedVar}\\.pause\\s*\\(`, "g"), kind: "pause()" },
|
|
100
145
|
{ pattern: new RegExp(`\\b${escapedVar}\\.currentTime\\s*=`, "g"), kind: "currentTime" },
|
|
146
|
+
{
|
|
147
|
+
pattern: new RegExp(`\\b${escapedVar}\\.muted\\s*=`, "g"),
|
|
148
|
+
kind: "muted assignment",
|
|
149
|
+
},
|
|
101
150
|
];
|
|
102
151
|
for (const { pattern, kind } of variablePatterns) {
|
|
103
152
|
let match;
|
|
@@ -107,7 +156,7 @@ function findImperativeMediaControlFindings(ctx) {
|
|
|
107
156
|
severity: "error",
|
|
108
157
|
message: `Inline <script> imperatively controls managed media via ${kind}. HyperFrames must own media play/pause/seek to keep preview, timeline, and renders deterministic.`,
|
|
109
158
|
elementId,
|
|
110
|
-
fixHint: "Remove imperative media play/pause/currentTime control. Express timing with data-start/data-duration and media offsets like data-media-start or data-playback-start instead.",
|
|
159
|
+
fixHint: "Remove imperative media play/pause/currentTime/muted control. Express timing with data-start/data-duration and media offsets like data-media-start or data-playback-start instead.",
|
|
111
160
|
snippet: truncateSnippet(match[0]),
|
|
112
161
|
});
|
|
113
162
|
}
|
|
@@ -171,15 +220,27 @@ export const mediaRules = [
|
|
|
171
220
|
for (const tag of tags) {
|
|
172
221
|
if (tag.name !== "video")
|
|
173
222
|
continue;
|
|
174
|
-
const hasMuted =
|
|
175
|
-
|
|
223
|
+
const hasMuted = hasAttrName(tag.raw, "muted");
|
|
224
|
+
const hasDeclaredAudio = readAttr(tag.raw, "data-has-audio") === "true";
|
|
225
|
+
if (!hasMuted && !hasDeclaredAudio && readAttr(tag.raw, "data-start")) {
|
|
176
226
|
const elementId = readAttr(tag.raw, "id") || undefined;
|
|
177
227
|
findings.push({
|
|
178
228
|
code: "video_missing_muted",
|
|
179
229
|
severity: "error",
|
|
180
|
-
message: `<video${elementId ? ` id="${elementId}"` : ""}> has data-start but is not muted.
|
|
230
|
+
message: `<video${elementId ? ` id="${elementId}"` : ""}> has data-start but is not muted. Mark audible videos with data-has-audio="true"; otherwise keep video muted and use a separate <audio> element for sound.`,
|
|
181
231
|
elementId,
|
|
182
|
-
fixHint:
|
|
232
|
+
fixHint: 'Add the `muted` attribute for silent video, or add data-has-audio="true" when the video track should contribute audio.',
|
|
233
|
+
snippet: truncateSnippet(tag.raw),
|
|
234
|
+
});
|
|
235
|
+
}
|
|
236
|
+
if (hasMuted && hasDeclaredAudio) {
|
|
237
|
+
const elementId = readAttr(tag.raw, "id") || undefined;
|
|
238
|
+
findings.push({
|
|
239
|
+
code: "video_muted_with_declared_audio",
|
|
240
|
+
severity: "error",
|
|
241
|
+
message: `<video${elementId ? ` id="${elementId}"` : ""}> declares data-has-audio="true" but also has muted. Studio preview will silence the video audio.`,
|
|
242
|
+
elementId,
|
|
243
|
+
fixHint: 'Remove the `muted` attribute if this video should be audible, or remove data-has-audio="true" and use data-volume="0" for silent visual video.',
|
|
183
244
|
snippet: truncateSnippet(tag.raw),
|
|
184
245
|
});
|
|
185
246
|
}
|
|
@@ -312,7 +373,7 @@ export const mediaRules = [
|
|
|
312
373
|
}
|
|
313
374
|
return findings;
|
|
314
375
|
},
|
|
315
|
-
// media_missing_id + media_missing_src + media_preload_none
|
|
376
|
+
// media_missing_data_start + media_missing_id + media_missing_src + media_preload_none
|
|
316
377
|
({ tags }) => {
|
|
317
378
|
const findings = [];
|
|
318
379
|
for (const tag of tags) {
|
|
@@ -321,6 +382,16 @@ export const mediaRules = [
|
|
|
321
382
|
const hasDataStart = readAttr(tag.raw, "data-start");
|
|
322
383
|
const hasId = readAttr(tag.raw, "id");
|
|
323
384
|
const hasSrc = readAttr(tag.raw, "src");
|
|
385
|
+
if (hasSrc && !hasDataStart) {
|
|
386
|
+
findings.push({
|
|
387
|
+
code: "media_missing_data_start",
|
|
388
|
+
severity: "error",
|
|
389
|
+
message: `<${tag.name}${hasId ? ` id="${hasId}"` : ""}> has src but no data-start. HyperFrames cannot own playback for untimed media, so preview and render behavior can diverge.`,
|
|
390
|
+
elementId: hasId || undefined,
|
|
391
|
+
fixHint: `Add data-start="0" (or the intended start time) and data-duration if the clip should stop before the source ends.`,
|
|
392
|
+
snippet: truncateSnippet(tag.raw),
|
|
393
|
+
});
|
|
394
|
+
}
|
|
324
395
|
if (hasDataStart && !hasId) {
|
|
325
396
|
findings.push({
|
|
326
397
|
code: "media_missing_id",
|