@hyperframes/core 0.8.78 → 0.8.79

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.
Files changed (49) hide show
  1. package/dist/compiler/htmlBundler.d.ts +2 -0
  2. package/dist/compiler/htmlBundler.d.ts.map +1 -1
  3. package/dist/compiler/htmlBundler.js +107 -43
  4. package/dist/compiler/htmlBundler.js.map +1 -1
  5. package/dist/compiler/htmlDocument.d.ts +1 -0
  6. package/dist/compiler/htmlDocument.d.ts.map +1 -1
  7. package/dist/compiler/htmlDocument.js +5 -2
  8. package/dist/compiler/htmlDocument.js.map +1 -1
  9. package/dist/compiler/index.d.ts +1 -0
  10. package/dist/compiler/index.d.ts.map +1 -1
  11. package/dist/compiler/index.js +1 -0
  12. package/dist/compiler/index.js.map +1 -1
  13. package/dist/compiler/inlineSubCompositions.d.ts +8 -0
  14. package/dist/compiler/inlineSubCompositions.d.ts.map +1 -1
  15. package/dist/compiler/inlineSubCompositions.js +113 -8
  16. package/dist/compiler/inlineSubCompositions.js.map +1 -1
  17. package/dist/compiler/scenePartsManifest.d.ts +6 -0
  18. package/dist/compiler/scenePartsManifest.d.ts.map +1 -0
  19. package/dist/compiler/scenePartsManifest.js +31 -0
  20. package/dist/compiler/scenePartsManifest.js.map +1 -0
  21. package/dist/generated/runtime-inline.js +1 -1
  22. package/dist/generated/runtime-inline.js.map +1 -1
  23. package/dist/hyperframe.runtime.iife.js +54 -54
  24. package/dist/runtime/applyVariableBindings.d.ts +4 -1
  25. package/dist/runtime/applyVariableBindings.d.ts.map +1 -1
  26. package/dist/runtime/applyVariableBindings.js +40 -31
  27. package/dist/runtime/applyVariableBindings.js.map +1 -1
  28. package/dist/runtime/media.d.ts.map +1 -1
  29. package/dist/runtime/media.js +41 -13
  30. package/dist/runtime/media.js.map +1 -1
  31. package/dist/runtime/proxySrc.d.ts +4 -0
  32. package/dist/runtime/proxySrc.d.ts.map +1 -0
  33. package/dist/runtime/proxySrc.js +6 -0
  34. package/dist/runtime/proxySrc.js.map +1 -0
  35. package/dist/runtime/timeline.d.ts +4 -0
  36. package/dist/runtime/timeline.d.ts.map +1 -1
  37. package/dist/runtime/timeline.js +3 -2
  38. package/dist/runtime/timeline.js.map +1 -1
  39. package/dist/runtime/types.d.ts +5 -0
  40. package/dist/runtime/types.d.ts.map +1 -1
  41. package/dist/safePath.d.ts +1 -1
  42. package/dist/safePath.d.ts.map +1 -1
  43. package/dist/safePath.js +14 -3
  44. package/dist/safePath.js.map +1 -1
  45. package/dist/sceneParts.d.ts +10 -0
  46. package/dist/sceneParts.d.ts.map +1 -0
  47. package/dist/sceneParts.js +5 -0
  48. package/dist/sceneParts.js.map +1 -0
  49. package/package.json +5 -4
@@ -10,6 +10,8 @@ import { type ImportMap } from "./importMaps";
10
10
  * `data-composition-file`).
11
11
  */
12
12
  import { type AssetExists } from "./rewriteSubCompPaths";
13
+ /** Marks each scene whose nodes a script outside it names by selector, id or class: a swap would strand it. */
14
+ export declare function refuseSwapsReachedByRootScripts(document: Document, rootScripts: string[]): void;
13
15
  export interface InlineSubCompositionsOptions {
14
16
  /**
15
17
  * Resolve the HTML content for a sub-composition given its `data-composition-src` value.
@@ -93,17 +95,23 @@ export interface InlineSubCompositionsOptions {
93
95
  * Defaults to `console.warn`.
94
96
  */
95
97
  onMissingComposition?: (srcPath: string, reason?: string) => void;
98
+ /** Tag each top-level host with `data-hf-scene` and report every part's scene, for preview swaps. */
99
+ tagScenes?: boolean;
96
100
  }
97
101
  export interface InlineSubCompositionsResult {
98
102
  styles: string[];
103
+ /** With `tagScenes`: the scene each entry of `styles` belongs to. */
104
+ styleScenes: string[];
99
105
  scripts: string[];
100
106
  externalScriptSrcs: string[];
101
107
  scriptItems: Array<{
102
108
  kind: "inline";
103
109
  content: string;
110
+ scene?: string;
104
111
  } | ({
105
112
  kind: "external";
106
113
  src: string;
114
+ scene?: string;
107
115
  } & ExternalScriptAttributes)>;
108
116
  externalLinks: {
109
117
  href: string;
@@ -1 +1 @@
1
- {"version":3,"file":"inlineSubCompositions.d.ts","sourceRoot":"","sources":["../../src/compiler/inlineSubCompositions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,KAAK,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAChG,OAAO,EAAkB,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9D;;;;;;;;GAQG;AAEH,OAAO,EAKL,KAAK,WAAW,EACjB,MAAM,uBAAuB,CAAC;AAsB/B,MAAM,WAAW,4BAA4B;IAC3C;;;OAGG;IACH,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IAEhD;;;;;OAKG;IACH,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,QAAQ,CAAC;IAEtC;;;;;OAKG;IACH,eAAe,CAAC,EAAE,GAAG,CACnB,OAAO,EACP;QAAE,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAC9E,CAAC;IAEF;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,OAAO,CAAC;IAEnD;;;;;;OAMG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAE/B;;;OAGG;IACH,oBAAoB,CAAC,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAExE;;;OAGG;IACH,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEhE;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;IAEhD;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;IAE1B;;;;;;;OAOG;IACH,oBAAoB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CACnE;AAED,MAAM,WAAW,2BAA2B;IAC1C,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,WAAW,EAAE,KAAK,CACd;QAAE,IAAI,EAAE,QAAQ,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GACnC,CAAC;QAAE,IAAI,EAAE,UAAU,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,wBAAwB,CAAC,CACjE,CAAC;IACF,aAAa,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACrE,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACzD,2FAA2F;IAC3F,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,8FAA8F;IAC9F,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAeD;;;;;;;;;;;;;;GAcG;AAEH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,OAAO,EAAE,EAChB,OAAO,EAAE,4BAA4B,GACpC,2BAA2B,CA2T7B"}
1
+ {"version":3,"file":"inlineSubCompositions.d.ts","sourceRoot":"","sources":["../../src/compiler/inlineSubCompositions.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,81 @@ import { warnUnknownEnumValues } from "../runtime/getVariables.js";
14
14
  import { scopeCssToComposition, wrapInlineScriptWithErrorBoundary, scopedModulePrelude, wrapScopedCompositionScript, } from "./compositionScoping.js";
15
15
  import { checkSubCompositionUsability, resolveSubCompositionContent, } from "@hyperframes/parsers/sub-composition-validity";
16
16
  import { enumerateNestedCompositionHosts, planCompositionAssembly, EXTRACTED_COMPOSITION_ASSET_SELECTOR, } from "./compositionAssembly.js";
17
+ import { SCENE_NO_SWAP_ATTR, SCENE_PART_ATTR } from "../sceneParts.js";
18
+ // Anything a scene script can leave running, pending or registered outside its timeline, or that
19
+ // throws when run again: only the timeline is torn down when a scene is swapped, so when unsure, refuse.
20
+ const SIDE_EFFECT_RE = /\b(addEventListener|requestAnimationFrame|requestIdleCallback|setTimeout|setInterval|queueMicrotask|getContext|WebGL\w*|WebGPU\w*|gpu|Worker|WebSocket|EventSource|Audio\w*|\w*Observer|fetch|import|eval|Function|Promise|async|await|delayedCall|ScrollTrigger|Draggable|anime|customElements|registerProperty|addListener|BroadcastChannel|pushState|replaceState|adoptedStyleSheets|documentElement|getElementsByTagName|lottie|THREE|__hf[A-Z]\w*)\b|\.then\s*\(|\.animate\s*\(|\.ticker\b|repeat\s*:\s*-1|\.repeat\s*\(\s*-1|defineProperty\s*\(\s*(window|globalThis|self|document)\b|\bfonts\s*\.\s*add\b|\.on[a-z]+\s*=(?!=)|\bon(resize|scroll|message|key\w+|click|pointer\w+|mouse\w+|wheel|visibilitychange|hashchange|popstate|error|load)\s*=(?!=)|\[\s*["']on[a-z]+["']\s*\]|document\s*\.\s*(head|body)\b|querySelector(All)?\(\s*["'](head|body)["']|\bgsap\s*\.\s*(?:to|from|fromTo)\s*\(|\bgsap\s*\.\s*timeline\s*\((?:[^()]|\([^()]*\))*\)\s*\.\s*(?:to|from|fromTo|set|add|call)\s*\(/;
21
+ // npm packages that only define globals when loaded; lottie-web is absent because it scans the page on load.
22
+ const SWAP_SAFE_LIBRARY_URL = /^https:\/\/(cdn\.jsdelivr\.net\/npm|unpkg\.com)\/(gsap|three|d3|d3-[a-z-]+|topojson-client|clipper-lib)(@[^/]+)?\//;
23
+ const isSwapSafeLibrary = (src) => URL.canParse(src) && SWAP_SAFE_LIBRARY_URL.test(new URL(src).href);
24
+ /** Why an authored scene script cannot be swapped out cleanly, or null when it can. */
25
+ function sceneScriptSwapRefusal(script) {
26
+ const match = SIDE_EFFECT_RE.exec(script);
27
+ return match ? `its script uses ${match[0].trim()}` : null;
28
+ }
29
+ // A quoted string in a script, in any of the three quote styles.
30
+ const STRING_LITERAL_RE = /(["'`])((?:\\.|(?!\1)[^\\\n])*?)\1/g;
31
+ // Text ending where createElement takes its tag: that string makes a node, it selects none.
32
+ const CREATES_ELEMENT_RE = /createElement\s*\(\s*$|createElementNS\s*\([^()]*,\s*$/;
33
+ // A "*" after a comma is a later argument, like postMessage's target origin; selector calls take it first.
34
+ const isNotASelector = (script, at, literal) => CREATES_ELEMENT_RE.test(script.slice(Math.max(0, at - 60), at)) ||
35
+ (literal.trim() === "*" && /,\s*$/.test(script.slice(Math.max(0, at - 20), at)));
36
+ /** Marks each scene whose nodes a script outside it names by selector, id or class: a swap would strand it. */
37
+ export function refuseSwapsReachedByRootScripts(document, rootScripts) {
38
+ const hosts = [...document.querySelectorAll(`[${SCENE_PART_ATTR}]`)];
39
+ const byName = new Map();
40
+ for (const host of hosts) {
41
+ for (const el of [host, ...host.querySelectorAll("*")]) {
42
+ for (const name of [
43
+ el.localName,
44
+ el.id && `#${el.id}`,
45
+ ...[...el.classList].map((c) => `.${c}`),
46
+ ]) {
47
+ if (name)
48
+ byName.set(name, (byName.get(name) ?? new Set()).add(host));
49
+ }
50
+ }
51
+ }
52
+ // A selector naming a tag the document lacks cannot match, so it is not worth a query.
53
+ const namesKnown = (selector) => selector
54
+ .split(",")
55
+ .some((alt) => alt
56
+ .split(/[\s>+~]+/)
57
+ .every((part) => !/^[a-z][\w-]*$/i.test(part) ||
58
+ byName.has(part.toLowerCase()) ||
59
+ document.querySelector(part) !== null));
60
+ const literals = new Set(rootScripts.flatMap((s) => [...s.matchAll(STRING_LITERAL_RE)]
61
+ .filter((m) => !isNotASelector(s, m.index, m[2] ?? ""))
62
+ .map((m) => m[2] ?? "")));
63
+ for (const literal of literals) {
64
+ const open = hosts.filter((host) => !host.hasAttribute(SCENE_NO_SWAP_ATTR));
65
+ if (open.length === 0)
66
+ return;
67
+ // Tag names match in any case; ids and classes do not.
68
+ const reached = literal.trim() === "*"
69
+ ? open
70
+ : /^[A-Za-z_][\w-]*$/.test(literal)
71
+ ? [literal.toLowerCase(), `#${literal}`, `.${literal}`].flatMap((name) => [
72
+ ...(byName.get(name) ?? []),
73
+ ])
74
+ : /[#.[:>]|[\w\]*] *[\s,]+ *[\w*]/.test(literal) &&
75
+ literal.length <= 120 &&
76
+ namesKnown(literal)
77
+ ? open.filter((host) => reaches(host, literal))
78
+ : [];
79
+ for (const host of reached)
80
+ if (!host.hasAttribute(SCENE_NO_SWAP_ATTR))
81
+ host.setAttribute(SCENE_NO_SWAP_ATTR, `a script outside the scene selects ${literal}`);
82
+ }
83
+ }
84
+ const reaches = (host, selector) => {
85
+ try {
86
+ return host.matches(selector) || host.querySelector(selector) !== null;
87
+ }
88
+ catch {
89
+ return false;
90
+ }
91
+ };
17
92
  // ---------------------------------------------------------------------------
18
93
  // Default helpers
19
94
  // ---------------------------------------------------------------------------
@@ -41,8 +116,9 @@ function defaultBuildScopeSelector(compId) {
41
116
  */
42
117
  // fallow-ignore-next-line complexity
43
118
  export function inlineSubCompositions(document, hosts, options) {
44
- const { resolveHtml, parseHtml, hostIdentityMap, rewriteInlineStyles = false, flattenInnerRoot, compoundAuthoredRoot, readVariableDefaults, parseHostVariables, buildScopeSelector = defaultBuildScopeSelector, scriptErrorLabel = "[HyperFrames] composition script error:", onMissingComposition, assetExists, } = options;
119
+ const { resolveHtml, parseHtml, hostIdentityMap, rewriteInlineStyles = false, flattenInnerRoot, compoundAuthoredRoot, readVariableDefaults, parseHostVariables, buildScopeSelector = defaultBuildScopeSelector, scriptErrorLabel = "[HyperFrames] composition script error:", onMissingComposition, assetExists, tagScenes = false, } = options;
45
120
  const styles = [];
121
+ const styleScenes = [];
46
122
  const scripts = [];
47
123
  const externalScriptSrcs = [];
48
124
  const scriptItems = [];
@@ -51,9 +127,14 @@ export function inlineSubCompositions(document, hosts, options) {
51
127
  const externalLinks = [];
52
128
  const seenLinkHrefs = new Set();
53
129
  const variablesByComp = {};
54
- const queue = hosts.map((element) => ({ element, ancestry: [] }));
130
+ const sceneHosts = new Map();
131
+ const queue = hosts.map((element) => ({
132
+ element,
133
+ ancestry: [],
134
+ scene: undefined,
135
+ }));
55
136
  for (let queueIndex = 0; queueIndex < queue.length; queueIndex += 1) {
56
- const { element: hostEl, ancestry } = queue[queueIndex];
137
+ const { element: hostEl, ancestry, scene: parentScene } = queue[queueIndex];
57
138
  const src = hostEl.getAttribute("data-composition-src");
58
139
  if (!src)
59
140
  continue;
@@ -115,6 +196,20 @@ export function inlineSubCompositions(document, hosts, options) {
115
196
  const scopeCompId = plan.authoredCompositionId || "";
116
197
  const scriptCompositionId = plan.scriptCompositionId || "";
117
198
  const runtimeScope = runtimeCompId ? buildScopeSelector(runtimeCompId) : "";
199
+ const scene = tagScenes ? (parentScene ?? (runtimeCompId || src)) : undefined;
200
+ if (scene && !parentScene) {
201
+ hostEl.setAttribute(SCENE_PART_ATTR, scene);
202
+ sceneHosts.set(scene, hostEl);
203
+ }
204
+ // Lazy, so renders (no scene hosts) never run the refusal checks.
205
+ const refuseSwap = (why) => {
206
+ const host = scene ? sceneHosts.get(scene) : undefined;
207
+ if (!host || host.hasAttribute(SCENE_NO_SWAP_ATTR))
208
+ return;
209
+ const reason = why();
210
+ if (reason)
211
+ host.setAttribute(SCENE_NO_SWAP_ATTR, reason);
212
+ };
118
213
  // Variable merging (bundler feature). Read declared defaults from the
119
214
  // document element (full-document sub-comps) AND the inner composition root
120
215
  // (template/fragment sub-comps store their schema on the root div, not a
@@ -173,14 +268,22 @@ export function inlineSubCompositions(document, hosts, options) {
173
268
  // (GSAP from a CDN) has to run before the content scripts calling into it.
174
269
  for (const styleEl of plan.styleSources) {
175
270
  styles.push(scopeSubStyle(styleEl.textContent || ""));
271
+ if (scene)
272
+ styleScenes.push(scene);
176
273
  styleEl.remove();
177
274
  }
178
- // Head- and content-sourced scripts take the same branch. The head loop
179
- // used to handle only `src`, so an inline <head> script was silently
180
- // discarded on render while the mount path executed it.
275
+ // Head- and content-sourced scripts take the same branch.
181
276
  for (const scriptEl of plan.scriptSources) {
182
277
  const externalSrc = resolveSubAssetPath(scriptEl.getAttribute("src"));
183
278
  const type = (scriptEl.getAttribute("type") || "").trim().toLowerCase();
279
+ // A swap never re-runs external or module scripts: only a known library that just defines globals is safe.
280
+ refuseSwap(() => type === "importmap" || type === "module"
281
+ ? "it runs a module script or import map"
282
+ : !externalSrc
283
+ ? sceneScriptSwapRefusal(scriptEl.textContent || "")
284
+ : isSwapSafeLibrary(externalSrc)
285
+ ? null
286
+ : "it runs a script that is not a known library");
184
287
  if (type === "importmap") {
185
288
  const map = parseImportMap(scriptEl.textContent || "", (url) => {
186
289
  // The rebase drops a leading "./" and a trailing "/"; an import map address needs both.
@@ -212,6 +315,7 @@ export function inlineSubCompositions(document, hosts, options) {
212
315
  kind: "external",
213
316
  src: externalSrc,
214
317
  ...readExternalScriptAttributes(scriptEl),
318
+ ...(scene ? { scene } : {}),
215
319
  });
216
320
  }
217
321
  else {
@@ -219,7 +323,7 @@ export function inlineSubCompositions(document, hosts, options) {
219
323
  ? wrapScopedCompositionScript(scriptEl.textContent || "", scriptCompositionId, scriptErrorLabel, runtimeScope || undefined, runtimeCompId || scopeCompId || scriptCompositionId, authoredRootId, src)
220
324
  : wrapInlineScriptWithErrorBoundary(scriptEl.textContent || "", scriptErrorLabel);
221
325
  scripts.push(wrappedScript);
222
- scriptItems.push({ kind: "inline", content: wrappedScript });
326
+ scriptItems.push({ kind: "inline", content: wrappedScript, ...(scene ? { scene } : {}) });
223
327
  }
224
328
  scriptEl.remove();
225
329
  }
@@ -298,11 +402,12 @@ export function inlineSubCompositions(document, hosts, options) {
298
402
  onMissingComposition?.(skipped.src, skipped.reason);
299
403
  }
300
404
  for (const nestedHost of nested.hosts) {
301
- queue.push({ element: nestedHost.host, ancestry: nestedAncestry });
405
+ queue.push({ element: nestedHost.host, ancestry: nestedAncestry, scene });
302
406
  }
303
407
  }
304
408
  return {
305
409
  styles,
410
+ styleScenes,
306
411
  scripts,
307
412
  externalScriptSrcs,
308
413
  scriptItems,
@@ -1 +1 @@
1
- {"version":3,"file":"inlineSubCompositions.js","sourceRoot":"","sources":["../../src/compiler/inlineSubCompositions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inlineSubCompositions.js","sourceRoot":"","sources":["../../src/compiler/inlineSubCompositions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Adds a {@link SceneParts} manifest so the runtime can tell a rebuild differs only inside scenes.
3
+ * `ignore` lists selectors for parts that change on every build without changing what is shown.
4
+ */
5
+ export declare function addScenePartsManifest(html: string, ignore?: readonly string[]): string;
6
+ //# sourceMappingURL=scenePartsManifest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scenePartsManifest.d.ts","sourceRoot":"","sources":["../../src/compiler/scenePartsManifest.ts"],"names":[],"mappings":"AAMA;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,GAAE,SAAS,MAAM,EAAO,GAAG,MAAM,CAmB1F"}
@@ -0,0 +1,31 @@
1
+ import { createHash } from "node:crypto";
2
+ import { SCENE_PART_ATTR, SCENE_PARTS_META } from "../sceneParts.js";
3
+ import { injectTagsAtHeadStart, parseHTMLContent } from "./htmlDocument.js";
4
+ const hash = (text) => createHash("sha1").update(text).digest("hex").slice(0, 16);
5
+ /**
6
+ * Adds a {@link SceneParts} manifest so the runtime can tell a rebuild differs only inside scenes.
7
+ * `ignore` lists selectors for parts that change on every build without changing what is shown.
8
+ */
9
+ export function addScenePartsManifest(html, ignore = []) {
10
+ const doc = parseHTMLContent(html);
11
+ const parts = [...doc.querySelectorAll(`[${SCENE_PART_ATTR}]`)];
12
+ if (parts.length === 0)
13
+ return html;
14
+ const byScene = new Map();
15
+ for (const el of parts) {
16
+ const scene = el.getAttribute(SCENE_PART_ATTR) ?? "";
17
+ byScene.set(scene, [...(byScene.get(scene) ?? []), el.outerHTML]);
18
+ }
19
+ // A marker keeps each part's place in `shared`, so moving or reordering a scene changes it.
20
+ for (const el of parts)
21
+ el.replaceWith(doc.createComment(`hf-scene:${el.getAttribute(SCENE_PART_ATTR)}`));
22
+ for (const el of ignore.flatMap((sel) => [...doc.querySelectorAll(sel)]))
23
+ el.remove();
24
+ const manifest = {
25
+ shared: hash(doc.toString()),
26
+ scenes: Object.fromEntries([...byScene].map(([scene, html]) => [scene, hash(html.join("\n"))])),
27
+ };
28
+ const content = JSON.stringify(manifest).replace(/&/g, "&amp;").replace(/"/g, "&quot;");
29
+ return injectTagsAtHeadStart(html, `<meta name="${SCENE_PARTS_META}" content="${content}">`);
30
+ }
31
+ //# sourceMappingURL=scenePartsManifest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scenePartsManifest.js","sourceRoot":"","sources":["../../src/compiler/scenePartsManifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAmB,MAAM,eAAe,CAAC;AACnF,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEzE,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAE1F;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAY,EAAE,SAA4B,EAAE;IAChF,MAAM,GAAG,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,KAAK,GAAG,CAAC,GAAG,GAAG,CAAC,gBAAgB,CAAC,IAAI,eAAe,GAAG,CAAC,CAAC,CAAC;IAChE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACpC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC5C,KAAK,MAAM,EAAE,IAAI,KAAK,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,EAAE,CAAC,YAAY,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IACpE,CAAC;IACD,4FAA4F;IAC5F,KAAK,MAAM,EAAE,IAAI,KAAK;QACpB,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC,YAAY,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC;IACpF,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;QAAE,EAAE,CAAC,MAAM,EAAE,CAAC;IACtF,MAAM,QAAQ,GAAe;QAC3B,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC5B,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;KAChG,CAAC;IACF,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACxF,OAAO,qBAAqB,CAAC,IAAI,EAAE,eAAe,gBAAgB,cAAc,OAAO,IAAI,CAAC,CAAC;AAC/F,CAAC"}