fix: address review feedback — observability, dedup, query-strip, catalog

Review items addressed:

1. Mirror video-failure warning in beginFrame path (was screenshot-only)
2. Fix resolveProjectRelativeSrc escape-fallback to use query-stripped
   cleanSrc instead of raw src for the normalize/strip arm
3. Export prepareFlattenedInnerRoot from @hyperframes/core/compiler and
   consume in the producer instead of duplicating the implementation
4. Use typed Window cast instead of (window as any) for __hfForceTimelineRebind
5. Regenerate docs/public/catalog-index.json with all 6 map blocks
6. Restore Maps nav group in docs.json (catalog generator had merged
   them into Data)
This commit is contained in:
Miguel Ángel
2026-05-18 01:41:15 -04:00
parent cf2addfb92
commit 0f1c64dcae
7 changed files with 125 additions and 33 deletions
+5 -27
View File
@@ -21,7 +21,10 @@ import {
type ResolvedDuration,
type UnresolvedElement,
} from "@hyperframes/core";
import { inlineSubCompositions as inlineSubCompositionsShared } from "@hyperframes/core/compiler";
import {
inlineSubCompositions as inlineSubCompositionsShared,
prepareFlattenedInnerRoot,
} from "@hyperframes/core/compiler";
import { extractMediaMetadata, extractAudioMetadata } from "../utils/ffprobe.js";
import { isPathInside, toExternalAssetKey } from "../utils/paths.js";
import {
@@ -559,19 +562,6 @@ function inlineSubCompositions(
if (!hosts.length) return html;
const FLATTENED_INNER_ROOT_STRIP_ATTRS = [
"data-composition-id",
"data-composition-file",
"data-start",
"data-duration",
"data-end",
"data-track-index",
"data-track",
"data-composition-src",
"data-hf-authored-duration",
"data-hf-authored-end",
];
const result = inlineSubCompositionsShared(
document as unknown as Document,
hosts as unknown as Element[],
@@ -587,19 +577,7 @@ function inlineSubCompositions(
return compHtml;
},
parseHtml: (htmlStr: string) => parseHTML(htmlStr).document as unknown as Document,
flattenInnerRoot: (innerRoot: Element): Element => {
const prepared = innerRoot.cloneNode(true) as Element;
const authoredRootId = prepared.getAttribute("id")?.trim();
for (const attrName of FLATTENED_INNER_ROOT_STRIP_ATTRS) {
prepared.removeAttribute(attrName);
}
if (authoredRootId) {
prepared.removeAttribute("id");
prepared.setAttribute("data-hf-authored-id", authoredRootId);
}
prepared.setAttribute("data-hf-inner-root", "true");
return prepared;
},
flattenInnerRoot: prepareFlattenedInnerRoot as (innerRoot: Element) => Element,
scriptErrorLabel: "[Compiler] Composition script failed",
},
);