hyperframes 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 (34) hide show
  1. package/dist/cli.js +1071 -523
  2. package/dist/fontLocalizeCli.js +99 -33
  3. package/dist/hyperframe-runtime.js +54 -54
  4. package/dist/hyperframe.manifest.json +1 -1
  5. package/dist/hyperframe.runtime.iife.js +54 -54
  6. package/dist/hyperframes-player.global.js +3 -3
  7. package/dist/skills/media-use/scripts/compatibility.test.mjs +2 -0
  8. package/dist/skills/media-use/scripts/lib/cache.mjs +6 -8
  9. package/dist/skills/media-use/scripts/lib/candidates.test.mjs +2 -2
  10. package/dist/skills/media-use/scripts/lib/manifest.test.mjs +2 -0
  11. package/dist/skills/media-use/scripts/lib/media-home.mjs +20 -0
  12. package/dist/skills/media-use/scripts/lib/media-home.test.mjs +61 -0
  13. package/dist/skills/media-use/scripts/lib/misses.mjs +6 -6
  14. package/dist/skills/media-use/scripts/lib/misses.test.mjs +12 -1
  15. package/dist/skills/media-use/scripts/lib/prefs-store.mjs +2 -2
  16. package/dist/skills/media-use/scripts/lib/prefs-store.test.mjs +1 -1
  17. package/dist/skills/media-use/scripts/lib/recipe-store.mjs +2 -2
  18. package/dist/skills/media-use/scripts/lib/recipe-store.test.mjs +1 -1
  19. package/dist/skills/media-use/scripts/lib/stats.test.mjs +1 -1
  20. package/dist/skills/media-use/scripts/lib/telemetry.mjs +2 -1
  21. package/dist/skills/media-use/scripts/lib/telemetry.test.mjs +1 -0
  22. package/dist/studio/assets/{hyperframes-player-BdnQGwG5.js → hyperframes-player-Bx_Kw4Ey.js} +3 -3
  23. package/dist/studio/assets/{index-C_n__Uh3.js → index-CJP92F4-.js} +1 -1
  24. package/dist/studio/assets/{index-CX_4MYbk.js → index-DBKySIo7.js} +187 -187
  25. package/dist/studio/assets/{index-DdpuHaGN.js → index-ORZXYB0k.js} +1 -1
  26. package/dist/studio/{chunk-5VANA2TG.js → chunk-I7XNAIOF.js} +2 -1
  27. package/dist/studio/{domEditingLayers-IGPLTI5E.js → domEditingLayers-MHFDKAQ7.js} +2 -2
  28. package/dist/studio/index.d.ts +22 -15
  29. package/dist/studio/index.html +1 -1
  30. package/dist/studio/index.js +452 -256
  31. package/dist/studio/index.js.map +1 -1
  32. package/package.json +1 -1
  33. /package/dist/studio/{chunk-5VANA2TG.js.map → chunk-I7XNAIOF.js.map} +0 -0
  34. /package/dist/studio/{domEditingLayers-IGPLTI5E.js.map → domEditingLayers-MHFDKAQ7.js.map} +0 -0
@@ -52710,9 +52710,11 @@ var init_subCompositionValidity2 = __esm({
52710
52710
  });
52711
52711
 
52712
52712
  // ../core/dist/compiler/htmlDocument.js
52713
+ function isFullHtmlDocument(html) {
52714
+ return /^(?:<!doctype|<html[\s>/])/i.test(html.replace(LEADING_COMMENTS, ""));
52715
+ }
52713
52716
  function parseHTMLContent(html) {
52714
- const trimmed = html.trimStart().toLowerCase();
52715
- if (trimmed.startsWith("<!doctype") || trimmed.startsWith("<html")) {
52717
+ if (isFullHtmlDocument(html)) {
52716
52718
  return parseHTML(html).document;
52717
52719
  }
52718
52720
  return parseHTML(`<!DOCTYPE html><html><head></head><body>${html}</body></html>`).document;
@@ -52965,7 +52967,7 @@ ${bodyTags}`;
52965
52967
  }
52966
52968
  return html;
52967
52969
  }
52968
- var RUNTIME_BOOTSTRAP_ATTR, RUNTIME_SRC_MARKERS, RUNTIME_INLINE_MARKERS, SIMPLE_RUNTIME_FLAG_ASSIGNMENTS, RAW_TEXT_TAGS, COMMENT_END;
52970
+ var RUNTIME_BOOTSTRAP_ATTR, RUNTIME_SRC_MARKERS, RUNTIME_INLINE_MARKERS, SIMPLE_RUNTIME_FLAG_ASSIGNMENTS, LEADING_COMMENTS, RAW_TEXT_TAGS, COMMENT_END;
52969
52971
  var init_htmlDocument = __esm({
52970
52972
  "../core/dist/compiler/htmlDocument.js"() {
52971
52973
  "use strict";
@@ -52988,6 +52990,7 @@ var init_htmlDocument = __esm({
52988
52990
  /^window\.__playerReady\s*=\s*(?:true|false)\s*;?$/,
52989
52991
  /^window\.__renderReady\s*=\s*(?:true|false)\s*;?$/
52990
52992
  ];
52993
+ LEADING_COMMENTS = /^(?:\s|<!--(?:>|->|[\s\S]*?-->))*/;
52991
52994
  RAW_TEXT_TAGS = ["script", "style", "title", "textarea"];
52992
52995
  COMMENT_END = /--!?>/g;
52993
52996
  }
@@ -66236,6 +66239,16 @@ var init_scriptRuns = __esm({
66236
66239
  }
66237
66240
  });
66238
66241
 
66242
+ // ../core/dist/sceneParts.js
66243
+ var SCENE_PART_ATTR, SCENE_NO_SWAP_ATTR;
66244
+ var init_sceneParts = __esm({
66245
+ "../core/dist/sceneParts.js"() {
66246
+ "use strict";
66247
+ SCENE_PART_ATTR = "data-hf-scene";
66248
+ SCENE_NO_SWAP_ATTR = "data-hf-scene-no-swap";
66249
+ }
66250
+ });
66251
+
66239
66252
  // ../core/dist/compiler/externalScripts.js
66240
66253
  function readExternalScriptAttributes(el) {
66241
66254
  const attributes2 = {};
@@ -66625,6 +66638,13 @@ var init_composition = __esm({
66625
66638
  }
66626
66639
  });
66627
66640
 
66641
+ // ../core/dist/runtime/proxySrc.js
66642
+ var init_proxySrc = __esm({
66643
+ "../core/dist/runtime/proxySrc.js"() {
66644
+ "use strict";
66645
+ }
66646
+ });
66647
+
66628
66648
  // ../core/dist/runtime/applyVariableBindings.js
66629
66649
  function sanitizeCssValue(value) {
66630
66650
  return value.replace(/[;{}<>\r\n]/g, "");
@@ -66634,6 +66654,7 @@ var init_applyVariableBindings = __esm({
66634
66654
  "use strict";
66635
66655
  init_variableScope();
66636
66656
  init_domRealm();
66657
+ init_proxySrc();
66637
66658
  }
66638
66659
  });
66639
66660
 
@@ -78918,13 +78939,18 @@ var init_compositionAssembly = __esm({
78918
78939
  });
78919
78940
 
78920
78941
  // ../core/dist/compiler/inlineSubCompositions.js
78942
+ function sceneScriptSwapRefusal(script) {
78943
+ const match = SIDE_EFFECT_RE.exec(script);
78944
+ return match ? `its script uses ${match[0].trim()}` : null;
78945
+ }
78921
78946
  function defaultBuildScopeSelector(compId) {
78922
78947
  const escaped = compId.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
78923
78948
  return `[data-composition-id="${escaped}"]`;
78924
78949
  }
78925
78950
  function inlineSubCompositions(document2, hosts, options) {
78926
- const { resolveHtml, parseHtml, hostIdentityMap, rewriteInlineStyles = false, flattenInnerRoot, compoundAuthoredRoot, readVariableDefaults, parseHostVariables, buildScopeSelector = defaultBuildScopeSelector, scriptErrorLabel = "[HyperFrames] composition script error:", onMissingComposition, assetExists } = options;
78951
+ const { resolveHtml, parseHtml, hostIdentityMap, rewriteInlineStyles = false, flattenInnerRoot, compoundAuthoredRoot, readVariableDefaults, parseHostVariables, buildScopeSelector = defaultBuildScopeSelector, scriptErrorLabel = "[HyperFrames] composition script error:", onMissingComposition, assetExists, tagScenes = false } = options;
78927
78952
  const styles = [];
78953
+ const styleScenes = [];
78928
78954
  const scripts = [];
78929
78955
  const externalScriptSrcs = [];
78930
78956
  const scriptItems = [];
@@ -78933,9 +78959,14 @@ function inlineSubCompositions(document2, hosts, options) {
78933
78959
  const externalLinks = [];
78934
78960
  const seenLinkHrefs = /* @__PURE__ */ new Set();
78935
78961
  const variablesByComp = {};
78936
- const queue = hosts.map((element) => ({ element, ancestry: [] }));
78962
+ const sceneHosts = /* @__PURE__ */ new Map();
78963
+ const queue = hosts.map((element) => ({
78964
+ element,
78965
+ ancestry: [],
78966
+ scene: void 0
78967
+ }));
78937
78968
  for (let queueIndex = 0; queueIndex < queue.length; queueIndex += 1) {
78938
- const { element: hostEl, ancestry } = queue[queueIndex];
78969
+ const { element: hostEl, ancestry, scene: parentScene } = queue[queueIndex];
78939
78970
  const src = hostEl.getAttribute("data-composition-src");
78940
78971
  if (!src)
78941
78972
  continue;
@@ -78982,6 +79013,19 @@ function inlineSubCompositions(document2, hosts, options) {
78982
79013
  const scopeCompId = plan2.authoredCompositionId || "";
78983
79014
  const scriptCompositionId = plan2.scriptCompositionId || "";
78984
79015
  const runtimeScope = runtimeCompId ? buildScopeSelector(runtimeCompId) : "";
79016
+ const scene = tagScenes ? parentScene ?? (runtimeCompId || src) : void 0;
79017
+ if (scene && !parentScene) {
79018
+ hostEl.setAttribute(SCENE_PART_ATTR, scene);
79019
+ sceneHosts.set(scene, hostEl);
79020
+ }
79021
+ const refuseSwap = (why) => {
79022
+ const host = scene ? sceneHosts.get(scene) : void 0;
79023
+ if (!host || host.hasAttribute(SCENE_NO_SWAP_ATTR))
79024
+ return;
79025
+ const reason = why();
79026
+ if (reason)
79027
+ host.setAttribute(SCENE_NO_SWAP_ATTR, reason);
79028
+ };
78985
79029
  if (readVariableDefaults && parseHostVariables && runtimeCompId) {
78986
79030
  const mergedVariables = {};
78987
79031
  for (const carrier of plan2.variableDefaultCarriers) {
@@ -79013,11 +79057,14 @@ function inlineSubCompositions(document2, hosts, options) {
79013
79057
  }
79014
79058
  for (const styleEl of plan2.styleSources) {
79015
79059
  styles.push(scopeSubStyle(styleEl.textContent || ""));
79060
+ if (scene)
79061
+ styleScenes.push(scene);
79016
79062
  styleEl.remove();
79017
79063
  }
79018
79064
  for (const scriptEl of plan2.scriptSources) {
79019
79065
  const externalSrc = resolveSubAssetPath(scriptEl.getAttribute("src"));
79020
79066
  const type = (scriptEl.getAttribute("type") || "").trim().toLowerCase();
79067
+ refuseSwap(() => type === "importmap" || type === "module" ? "it runs a module script or import map" : !externalSrc ? sceneScriptSwapRefusal(scriptEl.textContent || "") : isSwapSafeLibrary(externalSrc) ? null : "it runs a script that is not a known library");
79021
79068
  if (type === "importmap") {
79022
79069
  const map = parseImportMap(scriptEl.textContent || "", (url) => {
79023
79070
  const authored = url.trim();
@@ -79041,12 +79088,13 @@ function inlineSubCompositions(document2, hosts, options) {
79041
79088
  scriptItems.push({
79042
79089
  kind: "external",
79043
79090
  src: externalSrc,
79044
- ...readExternalScriptAttributes(scriptEl)
79091
+ ...readExternalScriptAttributes(scriptEl),
79092
+ ...scene ? { scene } : {}
79045
79093
  });
79046
79094
  } else {
79047
79095
  const wrappedScript = scriptCompositionId ? wrapScopedCompositionScript(scriptEl.textContent || "", scriptCompositionId, scriptErrorLabel, runtimeScope || void 0, runtimeCompId || scopeCompId || scriptCompositionId, authoredRootId, src) : wrapInlineScriptWithErrorBoundary(scriptEl.textContent || "", scriptErrorLabel);
79048
79096
  scripts.push(wrappedScript);
79049
- scriptItems.push({ kind: "inline", content: wrappedScript });
79097
+ scriptItems.push({ kind: "inline", content: wrappedScript, ...scene ? { scene } : {} });
79050
79098
  }
79051
79099
  scriptEl.remove();
79052
79100
  }
@@ -79102,11 +79150,12 @@ function inlineSubCompositions(document2, hosts, options) {
79102
79150
  onMissingComposition?.(skipped.src, skipped.reason);
79103
79151
  }
79104
79152
  for (const nestedHost of nested.hosts) {
79105
- queue.push({ element: nestedHost.host, ancestry: nestedAncestry });
79153
+ queue.push({ element: nestedHost.host, ancestry: nestedAncestry, scene });
79106
79154
  }
79107
79155
  }
79108
79156
  return {
79109
79157
  styles,
79158
+ styleScenes,
79110
79159
  scripts,
79111
79160
  externalScriptSrcs,
79112
79161
  scriptItems,
@@ -79116,6 +79165,7 @@ function inlineSubCompositions(document2, hosts, options) {
79116
79165
  moduleScripts
79117
79166
  };
79118
79167
  }
79168
+ var SIDE_EFFECT_RE, SWAP_SAFE_LIBRARY_URL, isSwapSafeLibrary;
79119
79169
  var init_inlineSubCompositions = __esm({
79120
79170
  "../core/dist/compiler/inlineSubCompositions.js"() {
79121
79171
  "use strict";
@@ -79126,6 +79176,10 @@ var init_inlineSubCompositions = __esm({
79126
79176
  init_compositionScoping();
79127
79177
  init_subCompositionValidity();
79128
79178
  init_compositionAssembly();
79179
+ init_sceneParts();
79180
+ 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*\(/;
79181
+ SWAP_SAFE_LIBRARY_URL = /^https:\/\/(cdn\.jsdelivr\.net\/npm|unpkg\.com)\/(gsap|three|d3|d3-[a-z-]+|topojson-client|clipper-lib)(@[^/]+)?\//;
79182
+ isSwapSafeLibrary = (src) => URL.canParse(src) && SWAP_SAFE_LIBRARY_URL.test(new URL(src).href);
79129
79183
  }
79130
79184
  });
79131
79185
 
@@ -79311,6 +79365,7 @@ var init_htmlBundler = __esm({
79311
79365
  "../core/dist/compiler/htmlBundler.js"() {
79312
79366
  "use strict";
79313
79367
  init_scriptRuns();
79368
+ init_sceneParts();
79314
79369
  init_externalScripts();
79315
79370
  init_importMaps();
79316
79371
  init_flattenedRoot();
@@ -79341,6 +79396,16 @@ var init_htmlParityContract = __esm({
79341
79396
  }
79342
79397
  });
79343
79398
 
79399
+ // ../core/dist/compiler/scenePartsManifest.js
79400
+ import { createHash as createHash2 } from "crypto";
79401
+ var init_scenePartsManifest = __esm({
79402
+ "../core/dist/compiler/scenePartsManifest.js"() {
79403
+ "use strict";
79404
+ init_sceneParts();
79405
+ init_htmlDocument();
79406
+ }
79407
+ });
79408
+
79344
79409
  // ../core/dist/compiler/index.js
79345
79410
  var init_compiler = __esm({
79346
79411
  "../core/dist/compiler/index.js"() {
@@ -79352,6 +79417,7 @@ var init_compiler = __esm({
79352
79417
  init_getVariables();
79353
79418
  init_htmlParityContract();
79354
79419
  init_htmlDocument();
79420
+ init_scenePartsManifest();
79355
79421
  init_scriptRuns();
79356
79422
  init_staticGuard();
79357
79423
  init_compositionScoping();
@@ -79455,7 +79521,7 @@ var init_extractedFrameIndex = __esm({
79455
79521
  });
79456
79522
 
79457
79523
  // ../engine/src/services/extractionCache.ts
79458
- import { createHash as createHash2, randomUUID as randomUUID2 } from "crypto";
79524
+ import { createHash as createHash3, randomUUID as randomUUID2 } from "crypto";
79459
79525
  import {
79460
79526
  existsSync as existsSync10,
79461
79527
  lstatSync as lstatSync3,
@@ -79491,7 +79557,7 @@ function canonicalKeyBlob(input) {
79491
79557
  return JSON.stringify(blob);
79492
79558
  }
79493
79559
  function computeCacheKey(input) {
79494
- return createHash2("sha256").update(canonicalKeyBlob(input)).digest("hex");
79560
+ return createHash3("sha256").update(canonicalKeyBlob(input)).digest("hex");
79495
79561
  }
79496
79562
  function cacheEntryDirName(keyHash) {
79497
79563
  return SCHEMA_PREFIX + keyHash.slice(0, KEY_HEX_CHARS);
@@ -81658,10 +81724,10 @@ var init_videoFrameInjector = __esm({
81658
81724
  });
81659
81725
 
81660
81726
  // ../engine/src/utils/notMediaPayload.ts
81661
- import { createHash as createHash3 } from "crypto";
81727
+ import { createHash as createHash4 } from "crypto";
81662
81728
  import { open as openFile } from "fs/promises";
81663
81729
  function fingerprintElementId(elementId) {
81664
- return createHash3("sha256").update(elementId).digest("hex").slice(0, 16);
81730
+ return createHash4("sha256").update(elementId).digest("hex").slice(0, 16);
81665
81731
  }
81666
81732
  function byteOrderMarkLength(head) {
81667
81733
  for (const mark of BYTE_ORDER_MARKS) {
@@ -88688,7 +88754,7 @@ __export(fontCompression_exports, {
88688
88754
  compressToWoff2: () => compressToWoff2,
88689
88755
  fontToDataUri: () => fontToDataUri
88690
88756
  });
88691
- import { createHash as createHash7 } from "crypto";
88757
+ import { createHash as createHash8 } from "crypto";
88692
88758
  import {
88693
88759
  existsSync as existsSync23,
88694
88760
  mkdirSync as mkdirSync13,
@@ -88711,7 +88777,7 @@ function defaultCacheDir() {
88711
88777
  return join32(root, "local-compression-v1");
88712
88778
  }
88713
88779
  function cachedCompressionPath(input, originalFormat, cacheDir) {
88714
- const digest = createHash7("sha256").update("hyperframes-local-font-compression-v1\0").update(originalFormat).update("\0").update(input).digest("hex");
88780
+ const digest = createHash8("sha256").update("hyperframes-local-font-compression-v1\0").update(originalFormat).update("\0").update(input).digest("hex");
88715
88781
  return join32(cacheDir, `${digest}.woff2`);
88716
88782
  }
88717
88783
  function readCachedCompression(path) {
@@ -88822,7 +88888,7 @@ import { Readable as Readable2 } from "stream";
88822
88888
  import { join as join21, extname as extname4, resolve as resolve7, sep as sep3 } from "path";
88823
88889
 
88824
88890
  // ../producer/src/services/hyperframeRuntimeLoader.ts
88825
- import { createHash as createHash4 } from "crypto";
88891
+ import { createHash as createHash5 } from "crypto";
88826
88892
  import { existsSync as existsSync16, readFileSync as readFileSync8 } from "fs";
88827
88893
  import { dirname as dirname11, resolve as resolve6 } from "path";
88828
88894
  import { fileURLToPath as fileURLToPath3 } from "url";
@@ -88874,7 +88940,7 @@ function resolveVerifiedHyperframeRuntime() {
88874
88940
  throw new Error(`[HyperframeRuntimeLoader] Missing runtime artifact at ${runtimePath}.`);
88875
88941
  }
88876
88942
  const runtimeSource = readFileSync8(runtimePath, "utf8");
88877
- const runtimeSha = createHash4("sha256").update(runtimeSource, "utf8").digest("hex");
88943
+ const runtimeSha = createHash5("sha256").update(runtimeSource, "utf8").digest("hex");
88878
88944
  if (runtimeSha !== manifest.sha256) {
88879
88945
  throw new Error(
88880
88946
  `[HyperframeRuntimeLoader] Runtime checksum mismatch. expected=${manifest.sha256} actual=${runtimeSha}`
@@ -92801,7 +92867,7 @@ async function runCaptureSegmentedStage(input) {
92801
92867
  }
92802
92868
 
92803
92869
  // ../producer/src/services/render/segmentManifest.ts
92804
- import { createHash as createHash5 } from "crypto";
92870
+ import { createHash as createHash6 } from "crypto";
92805
92871
  import { existsSync as existsSync21, mkdirSync as mkdirSync12, readFileSync as readFileSync10, renameSync as renameSync4, statSync as statSync9, writeFileSync as writeFileSync8 } from "fs";
92806
92872
  import { join as join29 } from "path";
92807
92873
  var MANIFEST_FILENAME = "segments.json";
@@ -92823,7 +92889,7 @@ function computeSegmentPlanHash(input) {
92823
92889
  `${input.outputWidth}x${input.outputHeight}`,
92824
92890
  input.motionBlur
92825
92891
  ].join(" ");
92826
- return createHash5("sha256").update(ordered).digest("hex").slice(0, 16);
92892
+ return createHash6("sha256").update(ordered).digest("hex").slice(0, 16);
92827
92893
  }
92828
92894
  function segmentDirFor(projectRendersDir, planHash) {
92829
92895
  return join29(projectRendersDir, ".hf-segments", planHash);
@@ -93266,7 +93332,7 @@ function shouldFallbackToScreenshotAfterCalibrationError(error) {
93266
93332
 
93267
93333
  // ../producer/src/services/render/observability.ts
93268
93334
  init_dist2();
93269
- import { createHash as createHash6 } from "crypto";
93335
+ import { createHash as createHash7 } from "crypto";
93270
93336
  var MAX_EVENTS = 160;
93271
93337
  var ALLOWED_STRING_DATA_KEYS = /* @__PURE__ */ new Set([
93272
93338
  "browserGpuMode",
@@ -93311,7 +93377,7 @@ function sanitizeObservationMessage(value) {
93311
93377
  return redactTelemetryString(value);
93312
93378
  }
93313
93379
  function computeCompositionObservabilityHash(compiledHtml) {
93314
- return createHash6("sha256").update(compiledHtml, "utf8").digest("hex").slice(0, 16);
93380
+ return createHash7("sha256").update(compiledHtml, "utf8").digest("hex").slice(0, 16);
93315
93381
  }
93316
93382
  function sanitizeObservationData(data2) {
93317
93383
  if (!data2) return void 0;
@@ -93668,7 +93734,7 @@ init_audioGain();
93668
93734
  init_compiler();
93669
93735
  init_subCompositionValidity();
93670
93736
  init_assetResolution();
93671
- import { createHash as createHash10 } from "crypto";
93737
+ import { createHash as createHash11 } from "crypto";
93672
93738
  import { createReadStream as createReadStream4, existsSync as existsSync27, mkdirSync as mkdirSync16, readFileSync as readFileSync14 } from "fs";
93673
93739
  import { join as join35, dirname as dirname16, resolve as resolve12, basename as basename6, relative as relative4 } from "path";
93674
93740
 
@@ -93772,7 +93838,7 @@ init_src();
93772
93838
  init_src();
93773
93839
 
93774
93840
  // ../producer/src/services/deterministicFonts.ts
93775
- import { createHash as createHash8 } from "crypto";
93841
+ import { createHash as createHash9 } from "crypto";
93776
93842
  import { existsSync as existsSync24, mkdirSync as mkdirSync14, mkdtempSync as mkdtempSync9, readFileSync as readFileSync12, writeFileSync as writeFileSync10 } from "fs";
93777
93843
  import { homedir as homedir5, tmpdir as tmpdir6 } from "os";
93778
93844
  import { join as join33 } from "path";
@@ -94610,7 +94676,7 @@ function fontCacheDir(slug) {
94610
94676
  return dir;
94611
94677
  }
94612
94678
  function subsetToken(woff2Url) {
94613
- return createHash8("sha1").update(woff2Url).digest("hex").slice(0, 12);
94679
+ return createHash9("sha1").update(woff2Url).digest("hex").slice(0, 12);
94614
94680
  }
94615
94681
  function cachedWoff2Path(slug, weight, style, subset) {
94616
94682
  return join33(fontCacheDir(slug), `${weight}-${style}-${subset}.woff2`);
@@ -95041,7 +95107,7 @@ async function injectDeterministicFontFaces(html, options = {}) {
95041
95107
  init_esm10();
95042
95108
  init_dist2();
95043
95109
  init_src();
95044
- import { createHash as createHash9 } from "crypto";
95110
+ import { createHash as createHash10 } from "crypto";
95045
95111
  import {
95046
95112
  copyFileSync as copyFileSync4,
95047
95113
  existsSync as existsSync25,
@@ -95104,7 +95170,7 @@ function isUsableFile(path) {
95104
95170
  }
95105
95171
  }
95106
95172
  function computePreparedGifHash(bytes, loopIterations, padSeconds) {
95107
- return createHash9("sha256").update(CACHE_SCHEMA).update("\0").update(String(loopIterations)).update("\0").update(String(padSeconds)).update("\0").update(bytes).digest("hex");
95173
+ return createHash10("sha256").update(CACHE_SCHEMA).update("\0").update(String(loopIterations)).update("\0").update(String(padSeconds)).update("\0").update(bytes).digest("hex");
95108
95174
  }
95109
95175
  function resolveLoop(metadata, override) {
95110
95176
  if (override != null) return override;
@@ -96445,7 +96511,7 @@ function matchesScriptIntegrity(bytes, metadata) {
96445
96511
  (alg) => hashes.some((hash2) => hash2[1]?.toLowerCase() === alg)
96446
96512
  );
96447
96513
  if (!strongest) return true;
96448
- const actual = createHash10(strongest).update(bytes).digest();
96514
+ const actual = createHash11(strongest).update(bytes).digest();
96449
96515
  return hashes.some(
96450
96516
  (hash2) => hash2[1]?.toLowerCase() === strongest && actual.equals(Buffer.from(hash2[2], "base64"))
96451
96517
  );
@@ -104369,7 +104435,7 @@ var DISTRIBUTED_RENDER_CAPABILITIES = Object.freeze({
104369
104435
  });
104370
104436
 
104371
104437
  // ../producer/src/services/render/stages/planHash.ts
104372
- import { createHash as createHash11 } from "crypto";
104438
+ import { createHash as createHash12 } from "crypto";
104373
104439
  var FIELD_DELIMITER = Buffer.from([0]);
104374
104440
 
104375
104441
  // ../producer/src/services/distributed/shared.ts
@@ -104383,7 +104449,7 @@ var PLAN_AUDIO_RELATIVE_PATH = MIXED_AUDIO_FILENAME;
104383
104449
  var execFile4 = promisify5(execFileCallback);
104384
104450
 
104385
104451
  // ../producer/src/services/distributed/planSize.ts
104386
- import { createHash as createHash12 } from "crypto";
104452
+ import { createHash as createHash13 } from "crypto";
104387
104453
  import { lstatSync as lstatSync5, readdirSync as readdirSync14 } from "fs";
104388
104454
  import { extname as extname7, join as join54, relative as relative7 } from "path";
104389
104455
  var PLAN_ROOT_CATEGORY = {
@@ -104420,7 +104486,7 @@ import {
104420
104486
  statSync as statSync16,
104421
104487
  writeFileSync as writeFileSync16
104422
104488
  } from "fs";
104423
- import { createHash as createHash13 } from "crypto";
104489
+ import { createHash as createHash14 } from "crypto";
104424
104490
  import { tmpdir as tmpdir9 } from "os";
104425
104491
  import { dirname as dirname25, isAbsolute as isAbsolute6, join as join58, relative as relative9, resolve as resolve17, sep as sep6 } from "path";
104426
104492
 
@@ -104471,7 +104537,7 @@ init_src();
104471
104537
 
104472
104538
  // ../producer/src/services/distributed/projectHash.ts
104473
104539
  import { readdirSync as readdirSync18, readFileSync as readFileSync22 } from "fs";
104474
- import { createHash as createHash14 } from "crypto";
104540
+ import { createHash as createHash15 } from "crypto";
104475
104541
  import { join as join62, relative as relative10 } from "path";
104476
104542
 
104477
104543
  // src/fontLocalize.ts
@@ -104513,8 +104579,8 @@ async function runFontLocalize(io, localize) {
104513
104579
  }
104514
104580
 
104515
104581
  // src/version.ts
104516
- var VERSION = true ? "0.8.78" : "0.0.0-dev";
104517
- var PRODUCER_VERSION = true ? "0.8.78" : "0.0.0-dev";
104582
+ var VERSION = true ? "0.8.79" : "0.0.0-dev";
104583
+ var PRODUCER_VERSION = true ? "0.8.79" : "0.0.0-dev";
104518
104584
 
104519
104585
  // src/fontLocalizeCli.ts
104520
104586
  async function readStdin() {