hyperframes 0.8.140 → 0.8.142

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 (167) hide show
  1. package/dist/{add-7SPPQB64.js → add-YS2RCWEK.js} +11 -11
  2. package/dist/{animatedGifPrep-HN3CJSFX.js → animatedGifPrep-SAMCDT7T.js} +6 -7
  3. package/dist/{asset-AZMFUTRL.js → asset-BLWC2NWB.js} +2 -2
  4. package/dist/{assetCataloger-TQUWYLHE.js → assetCataloger-FVNBBRP3.js} +2 -2
  5. package/dist/{auth-XGY74R4A.js → auth-DRZB7OAC.js} +5 -4
  6. package/dist/{autoUpdate-44NTJBQU.js → autoUpdate-I5I3BOJK.js} +2 -2
  7. package/dist/{backgroundChecks-ET4DJEPG.js → backgroundChecks-VR2QHGNY.js} +3 -3
  8. package/dist/backgroundChecksWorker.js +3 -3
  9. package/dist/{batchRender-HTWWNF3P.js → batchRender-4YUHQI6X.js} +3 -3
  10. package/dist/{beats-4GYTZUZG.js → beats-7OT7ALV3.js} +11 -12
  11. package/dist/{benchmark-CJQHE3QN.js → benchmark-Q2XQCRTR.js} +8 -8
  12. package/dist/{browser-NXOVPGDG.js → browser-7VAWQQZC.js} +3 -3
  13. package/dist/{bundleWithLocalizedFonts-6PJP54TC.js → bundleWithLocalizedFonts-DDMLLL2R.js} +2 -2
  14. package/dist/{capture-EHOMO4MP.js → capture-HEJS6M5A.js} +74 -33
  15. package/dist/{capture-5EHGRJZM.js → capture-U7ABPKS5.js} +24 -8
  16. package/dist/{catalog-PTX5Z52R.js → catalog-DVJ3XPDN.js} +11 -11
  17. package/dist/{catch-up-I45SPSCU.js → catch-up-DF6AVSN2.js} +4 -4
  18. package/dist/{check-LJ7LG7OI.js → check-KXORRWAE.js} +75 -72
  19. package/dist/{checkBrowser-6EK5E4PG.js → checkBrowser-J7HZJTRH.js} +28 -29
  20. package/dist/{chunk-XTFJOR3K.js → chunk-4SFGME7K.js} +1 -1
  21. package/dist/{chunk-EDYBFSPE.js → chunk-6RAD4BCC.js} +5 -8
  22. package/dist/{chunk-MTVDXB6S.js → chunk-6UM3R7PP.js} +21 -13
  23. package/dist/{chunk-IRBESGJ7.js → chunk-6UYZB4TY.js} +1 -1
  24. package/dist/{chunk-VVJFZU6B.js → chunk-75JJVANE.js} +2 -2
  25. package/dist/{chunk-F3SPK6SO.js → chunk-7FCDA4RH.js} +1 -1
  26. package/dist/{chunk-R4QIE6UY.js → chunk-7M4KAPAA.js} +92 -31
  27. package/dist/{chunk-HKCNZITN.js → chunk-AM5L5YIA.js} +1 -1
  28. package/dist/{chunk-BRITLL56.js → chunk-B4P5VDFQ.js} +1 -1
  29. package/dist/{chunk-2GMKWYEH.js → chunk-B6SMSALD.js} +53 -12
  30. package/dist/{chunk-DQNOPYAG.js → chunk-BPZVDBHY.js} +1 -1
  31. package/dist/{chunk-246MOR5U.js → chunk-DKSDVDXG.js} +175 -162
  32. package/dist/{chunk-6U3MN4HW.js → chunk-DPHJKWP5.js} +2 -2
  33. package/dist/{chunk-MUINFURL.js → chunk-DZEVA7DI.js} +2 -2
  34. package/dist/{chunk-KMKWRIMC.js → chunk-EFDXGAAD.js} +1 -1
  35. package/dist/{chunk-LQG6GPVK.js → chunk-FWRNQOLT.js} +1 -1
  36. package/dist/{chunk-IFY57LUW.js → chunk-FZK35GT4.js} +1 -1
  37. package/dist/{chunk-PUBKHEEA.js → chunk-GYE63V4P.js} +10 -10
  38. package/dist/{chunk-WQBA3MH4.js → chunk-H2X52H2N.js} +3 -3
  39. package/dist/{chunk-QG3PDRSO.js → chunk-HMUF7FEO.js} +1 -1
  40. package/dist/{chunk-TPECLKPA.js → chunk-IDX52YJN.js} +5 -5
  41. package/dist/{chunk-ABJNXQUA.js → chunk-IMY4QQTQ.js} +7 -7
  42. package/dist/{chunk-WY5OODN5.js → chunk-IW2CKH6A.js} +3645 -3
  43. package/dist/{chunk-X3X3VETN.js → chunk-IXCTG2WY.js} +3 -3
  44. package/dist/chunk-J4UX3RS3.js +3717 -0
  45. package/dist/{chunk-DDQ4LOML.js → chunk-JLKMWY2T.js} +1 -1
  46. package/dist/{chunk-ASW6NWON.js → chunk-JOTLPC6S.js} +1 -1
  47. package/dist/{chunk-MU6C2VP6.js → chunk-JU6Y5TTZ.js} +2 -2
  48. package/dist/{chunk-PPKFM5WE.js → chunk-KYN364DU.js} +2 -2
  49. package/dist/{chunk-C2JUHIG5.js → chunk-LBKDQKWV.js} +1 -1
  50. package/dist/{chunk-PB3P4MKP.js → chunk-LJAU4TPS.js} +1 -1
  51. package/dist/{chunk-PFJFHNU3.js → chunk-LQASVU3I.js} +3 -3
  52. package/dist/{chunk-KJLY2SDJ.js → chunk-LTGGTEMA.js} +2 -2
  53. package/dist/{chunk-L2H2L22P.js → chunk-MVTUV4TP.js} +2 -2
  54. package/dist/{chunk-QBK7WKHT.js → chunk-OKCR3JTO.js} +104 -4
  55. package/dist/{chunk-BQKEGPPL.js → chunk-OSUKETIH.js} +1 -1
  56. package/dist/chunk-P36MALQF.js +15 -0
  57. package/dist/{chunk-KECV5G4V.js → chunk-QGRFOOLE.js} +10 -10
  58. package/dist/{chunk-5IKJONRY.js → chunk-QXPCARFE.js} +1 -1
  59. package/dist/{chunk-WKTHUC2R.js → chunk-R2JEKLDZ.js} +1 -1
  60. package/dist/{chunk-TYT2TLJR.js → chunk-TY6XOHEM.js} +1 -1
  61. package/dist/{chunk-SLEPCESN.js → chunk-WGVOWWVK.js} +2 -2
  62. package/dist/{chunk-KFQNMY36.js → chunk-WSGY5CDQ.js} +5 -5
  63. package/dist/{chunk-PE2I3AFA.js → chunk-WTMUCJ6Z.js} +1 -1
  64. package/dist/{chunk-JSGANFFH.js → chunk-XGMNQQTJ.js} +1 -1
  65. package/dist/{chunk-BJ5JWOES.js → chunk-XTLBLWOV.js} +1 -1
  66. package/dist/{chunk-QP3BRKGF.js → chunk-YFT3BL7N.js} +19 -1
  67. package/dist/{chunk-MHK5DE2P.js → chunk-YHRZQJXH.js} +59 -37
  68. package/dist/{clean-Y3AQITOX.js → clean-KTHTV5G5.js} +12 -13
  69. package/dist/cli.js +52 -52
  70. package/dist/{cloud-TDPOMBZF.js → cloud-ARSZWALC.js} +4 -4
  71. package/dist/{cloudrun-FPAVAVHP.js → cloudrun-NM7RXOCL.js} +3 -3
  72. package/dist/commands/layout-audit.browser.js +20 -20
  73. package/dist/{compare-LHL225ND.js → compare-CY4UO3RW.js} +23 -24
  74. package/dist/{compiler-RTU3KTLF.js → compiler-VTH2D3ID.js} +3 -4
  75. package/dist/{component-L2YX7J56.js → component-FRUIAXIR.js} +3 -3
  76. package/dist/{compositions-V2UZKG7S.js → compositions-CUSY6ZYY.js} +10 -11
  77. package/dist/{delete-OXZEXUQY.js → delete-KT3VHP4L.js} +5 -5
  78. package/dist/{deterministicFonts-GTITFRSJ.js → deterministicFonts-F6WIVL2W.js} +1 -1
  79. package/dist/{dist-N33CM63P.js → dist-2GC6XKRQ.js} +8 -2
  80. package/dist/{dist-NZSQCYOF.js → dist-7SZU7MA7.js} +1 -2
  81. package/dist/{doctor-MWTPSIVD.js → doctor-4ROTBL5U.js} +8 -9
  82. package/dist/{events-4TZGQZWF.js → events-Q5PXT5UC.js} +2 -2
  83. package/dist/{events-7VJJGC3D.js → events-QJDVMKSR.js} +3 -3
  84. package/dist/{feedback-HSGAPVN7.js → feedback-PQ7TWESA.js} +10 -10
  85. package/dist/{figma-AMC6FAK3.js → figma-JN5DDBDS.js} +3 -3
  86. package/dist/fontLocalizeCli.js +9 -10
  87. package/dist/{get-Y7DFEFYM.js → get-KT6OTERO.js} +5 -5
  88. package/dist/{gpuPolicy-A45VSUKR.js → gpuPolicy-LCBWVGEH.js} +6 -7
  89. package/dist/{grade-compare-ERSA3OUI.js → grade-compare-VS3RP73G.js} +23 -24
  90. package/dist/{help-TW2AADLZ.js → help-AD6FIZIO.js} +1 -1
  91. package/dist/{history-DKGDSVWF.js → history-ZRWYRY7R.js} +5 -5
  92. package/dist/hyperframe-runtime.js +54 -54
  93. package/dist/hyperframe.manifest.json +1 -1
  94. package/dist/hyperframe.runtime.iife.js +54 -54
  95. package/dist/hyperframes-player.global.js +3 -3
  96. package/dist/{info-I3NRRNX4.js → info-WBBQA2AX.js} +7 -7
  97. package/dist/{init-5Y3ZWZNF.js → init-A2XBDFGF.js} +21 -22
  98. package/dist/{inspect-BJQKBB3X.js → inspect-CLTZHA5O.js} +24 -25
  99. package/dist/{installer-27K4JS2I.js → installer-WQDRVXH4.js} +4 -4
  100. package/dist/{keyframes-6V2NZO22.js → keyframes-3FYOK6H6.js} +6 -6
  101. package/dist/{lambda-AIMF3K4A.js → lambda-Y2PA2BGS.js} +4 -4
  102. package/dist/{layout-YAPEBTU4.js → layout-4KP5O7IJ.js} +24 -25
  103. package/dist/{lint-3LWWUIV7.js → lint-V4GRFHOJ.js} +7 -8
  104. package/dist/{lintProject-LM3XZRPZ.js → lintProject-RG2KGAXB.js} +1 -2
  105. package/dist/{list-NTSGEZJ6.js → list-OQ4VED6E.js} +5 -5
  106. package/dist/{login-ZTDFGCCW.js → login-W47NKN5S.js} +20 -24
  107. package/dist/{logout-GJXZQKOA.js → logout-B4KS4A7S.js} +6 -6
  108. package/dist/{media-treatment-ARHX446F.js → media-treatment-HJYL3EME.js} +43 -24
  109. package/dist/{models-VHNQVTHG.js → models-DYBAD2GQ.js} +7 -8
  110. package/dist/{motionShot-35HCSNCI.js → motionShot-7NE2YBB3.js} +12 -13
  111. package/dist/{normalize-audio-AUC73JH3.js → normalize-audio-INKCLMS2.js} +4 -4
  112. package/dist/{open-C5LVNU3U.js → open-TYC5THVY.js} +4 -4
  113. package/dist/{pipeline-4GDTK54T.js → pipeline-EVKEPQEW.js} +6 -7
  114. package/dist/{play-U7UANF7Z.js → play-QMZEM6X3.js} +17 -18
  115. package/dist/{present-X6V6TX3E.js → present-Y7IK3C4W.js} +13 -14
  116. package/dist/{preview-K43RTRU2.js → preview-5OQRYE6A.js} +16 -17
  117. package/dist/{producer-PVMFMW23.js → producer-Q6G6JU7B.js} +1 -1
  118. package/dist/{projectConfig-PI6MEN2T.js → projectConfig-RJN3DKDB.js} +6 -6
  119. package/dist/{publication-67C7KVTL.js → publication-QCPGGN3U.js} +2 -2
  120. package/dist/{publish-RBV7EAMH.js → publish-VZLFIGYY.js} +15 -15
  121. package/dist/{refresh-MFITBIKV.js → refresh-PVHBEABE.js} +2 -2
  122. package/dist/{remove-background-Z2ECZX2Q.js → remove-background-TKOEHBA5.js} +7 -8
  123. package/dist/{render-EFU4BZRZ.js → render-KIIIF6PS.js} +13 -13
  124. package/dist/{render-YBS3XGRJ.js → render-X3NFNVEQ.js} +19 -20
  125. package/dist/{render-2GQMQBU3.js → render-XTXE5CRU.js} +3 -3
  126. package/dist/{render-batch-QC64OTB5.js → render-batch-M55YZLZ5.js} +3 -3
  127. package/dist/{renderCancellation-NTVU7IMB.js → renderCancellation-X5BEHAZU.js} +6 -7
  128. package/dist/renderSetupWorker.js +1 -2
  129. package/dist/{resolver-GBWYG3EI.js → resolver-GAMXRA42.js} +4 -4
  130. package/dist/{screenshotCapture-ECBTLCU6.js → screenshotCapture-TEUIWXWN.js} +53 -33
  131. package/dist/{sherpa-ZW6PWJS4.js → sherpa-ZYTNFHD5.js} +7 -8
  132. package/dist/skills/hyperframes-cli/references/cloud.md +1 -1
  133. package/dist/skills/media-use/SKILL.md +6 -4
  134. package/dist/skills/media-use/audio/scripts/lib/heygen.mjs +47 -4
  135. package/dist/skills/media-use/audio/scripts/lib/heygen.test.mjs +125 -18
  136. package/dist/skills/media-use/references/grading.md +4 -2
  137. package/dist/skills/media-use/references/setup-providers.md +13 -0
  138. package/dist/{skills-VKZAX5AS.js → skills-CZHVAD3J.js} +5 -5
  139. package/dist/{skillsUpdateCheck-PAY2OPDE.js → skillsUpdateCheck-6WLLX53A.js} +3 -3
  140. package/dist/{snapshot-SD5R3NWX.js → snapshot-K7BTJPYQ.js} +24 -25
  141. package/dist/{src-7SSERHNP.js → src-3I3RH3V5.js} +5 -6
  142. package/dist/{src-RXTXL3VL.js → src-YUW26JU5.js} +8 -9
  143. package/dist/{staticProjectServer-XELJXX4J.js → staticProjectServer-IKCSGN2B.js} +13 -14
  144. package/dist/{status-JA6SKQVH.js → status-LXPGSSKY.js} +6 -4
  145. package/dist/studio/assets/hyperframes-player-sAsRuV73.js +473 -0
  146. package/dist/studio/assets/{index-VAHDM_zL.js → index-B-wffzRH.js} +126 -126
  147. package/dist/studio/assets/{index-CWfuDCoA.js → index-D3Vij9t1.js} +1 -1
  148. package/dist/studio/assets/{index-Dr3Bo9uH.js → index-D5q2_7Gw.js} +1 -1
  149. package/dist/studio/index.html +1 -1
  150. package/dist/studio/index.js +46 -15
  151. package/dist/studio/index.js.map +1 -1
  152. package/dist/{studio-api-4FNUZPJ4.js → studio-api-SQ3NXFSM.js} +7 -8
  153. package/dist/{studioServer-GHLL3F2M.js → studioServer-VVEO7XCH.js} +36 -37
  154. package/dist/{telemetry-7AO77PMH.js → telemetry-FQDKR5XA.js} +3 -3
  155. package/dist/{timeline-6LTHSRXM.js → timeline-N6ZASFNE.js} +13 -14
  156. package/dist/{tokens-K6B46KNL.js → tokens-2OIIBBCW.js} +2 -2
  157. package/dist/{transcribe-CLLISRLZ.js → transcribe-4F6MK73N.js} +7 -8
  158. package/dist/{transcribe-K2OU6FZF.js → transcribe-7YTUCXDX.js} +6 -6
  159. package/dist/{updateCheck-X6UQBS6I.js → updateCheck-AZ2COZFR.js} +2 -2
  160. package/dist/{upgrade-BZFKEADI.js → upgrade-QAJEYB4X.js} +2 -2
  161. package/dist/{urlDownloader-VAVUXYEQ.js → urlDownloader-LSMFEO3R.js} +5 -6
  162. package/dist/{validate-VO5KEXWN.js → validate-GW5MDL36.js} +15 -16
  163. package/dist/{video-JV6Y4UJR.js → video-PRNOKUK3.js} +6 -7
  164. package/package.json +1 -1
  165. package/dist/chunk-24OWOBQH.js +0 -3656
  166. package/dist/chunk-B3I3XJ47.js +0 -3711
  167. package/dist/studio/assets/hyperframes-player-BLuyxnK7.js +0 -473
@@ -17,7 +17,7 @@ import {
17
17
  } from "./chunk-ISN5GRYI.js";
18
18
  import {
19
19
  VERSION
20
- } from "./chunk-MUINFURL.js";
20
+ } from "./chunk-DZEVA7DI.js";
21
21
 
22
22
  // src/utils/updateCheck.ts
23
23
  import { existsSync, readFileSync } from "fs";
@@ -8,7 +8,7 @@ import {
8
8
  DEFAULT_REGISTRY_URL,
9
9
  fetchItemManifest,
10
10
  fetchRegistryManifest
11
- } from "./chunk-5IKJONRY.js";
11
+ } from "./chunk-QXPCARFE.js";
12
12
 
13
13
  // src/registry/resolver.ts
14
14
  function defaultWarn(message) {
@@ -7,10 +7,10 @@ var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  parseFeedbackRating,
9
9
  trackRenderFeedback
10
- } from "./chunk-JSGANFFH.js";
10
+ } from "./chunk-XGMNQQTJ.js";
11
11
  import {
12
12
  shouldTrack
13
- } from "./chunk-C2JUHIG5.js";
13
+ } from "./chunk-LBKDQKWV.js";
14
14
  import {
15
15
  detectAgentRuntime
16
16
  } from "./chunk-GQJZORQP.js";
@@ -19,7 +19,7 @@ import {
19
19
  import {
20
20
  DEFAULT_VP9_CPU_USED,
21
21
  renderProvenanceArgs
22
- } from "./chunk-TPECLKPA.js";
22
+ } from "./chunk-IDX52YJN.js";
23
23
 
24
24
  // src/background-removal/pipeline.ts
25
25
  import { spawn } from "child_process";
@@ -202,7 +202,7 @@ function inferInputKind(inputPath) {
202
202
  }
203
203
  async function probeMedia(inputPath) {
204
204
  const isImage = inferInputKind(inputPath) === "image";
205
- const engine = await import("./src-7SSERHNP.js");
205
+ const engine = await import("./src-3I3RH3V5.js");
206
206
  const meta = await engine.extractMediaMetadata(inputPath);
207
207
  if (isImage) {
208
208
  return { width: meta.width, height: meta.height, fps: 0, frameCount: 1 };
@@ -34,7 +34,7 @@ import {
34
34
  } from "./chunk-XUXGIA7H.js";
35
35
  import {
36
36
  VERSION
37
- } from "./chunk-MUINFURL.js";
37
+ } from "./chunk-DZEVA7DI.js";
38
38
  import {
39
39
  c
40
40
  } from "./chunk-ZTZA4UWZ.js";
@@ -9,7 +9,7 @@ import {
9
9
  } from "./chunk-IHFUKJOR.js";
10
10
  import {
11
11
  trackCommandFailure
12
- } from "./chunk-JSGANFFH.js";
12
+ } from "./chunk-XGMNQQTJ.js";
13
13
  import {
14
14
  failCommand
15
15
  } from "./chunk-PBN6GBJE.js";
@@ -7,7 +7,7 @@ var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  getMimeType,
9
9
  injectMediaCodecMapIntoHtml
10
- } from "./chunk-MHK5DE2P.js";
10
+ } from "./chunk-YHRZQJXH.js";
11
11
  import {
12
12
  PROXY_VARIANT_CONFIG,
13
13
  ProxyCapacityError,
@@ -18,10 +18,10 @@ import {
18
18
  recordProxyRequest,
19
19
  resolveProxy,
20
20
  resolveProxyVariantRequest
21
- } from "./chunk-MTVDXB6S.js";
21
+ } from "./chunk-6UM3R7PP.js";
22
22
  import {
23
23
  resolveAutoProxy
24
- } from "./chunk-KMKWRIMC.js";
24
+ } from "./chunk-EFDXGAAD.js";
25
25
 
26
26
  // src/utils/staticProjectServer.ts
27
27
  import { createServer } from "http";
@@ -6,10 +6,10 @@ var __filename = __hf_fileURLToPath(import.meta.url);
6
6
  var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  getMimeType
9
- } from "./chunk-MHK5DE2P.js";
9
+ } from "./chunk-YHRZQJXH.js";
10
10
  import {
11
11
  injectTagsAtHeadStart
12
- } from "./chunk-B3I3XJ47.js";
12
+ } from "./chunk-J4UX3RS3.js";
13
13
 
14
14
  // src/utils/compositionServer.ts
15
15
  import { createHash } from "crypto";
@@ -20,7 +20,7 @@ import {
20
20
  typeDirPath,
21
21
  updateRecord,
22
22
  withFigmaErrors
23
- } from "./chunk-WKTHUC2R.js";
23
+ } from "./chunk-R2JEKLDZ.js";
24
24
  import {
25
25
  defineCommand
26
26
  } from "./chunk-S3S4TGEH.js";
@@ -221,7 +221,7 @@ var asset_default = defineCommand({
221
221
  rendered > 0 ? `(${results.length} nodes, ${rendered} rendered in 1 figma request)` : `(${results.length} nodes, all reused from cache \u2014 no figma request)`
222
222
  );
223
223
  }
224
- const { trackFigmaImport } = await import("./telemetry-7AO77PMH.js");
224
+ const { trackFigmaImport } = await import("./telemetry-FQDKR5XA.js");
225
225
  trackFigmaImport({
226
226
  phase: "asset",
227
227
  reused: results.every((r) => r.reused),
@@ -14,13 +14,13 @@ import {
14
14
  isAllowedHtmlAttribute,
15
15
  isSafeAttributeValue,
16
16
  sanitizeRichTextChildren
17
- } from "./chunk-QP3BRKGF.js";
17
+ } from "./chunk-YFT3BL7N.js";
18
18
  import {
19
19
  removeElementWithGsapCascade
20
20
  } from "./chunk-OZUQF4NB.js";
21
21
  import {
22
22
  require_dist
23
- } from "./chunk-24OWOBQH.js";
23
+ } from "./chunk-IW2CKH6A.js";
24
24
  import {
25
25
  readClipTiming,
26
26
  readMediaOffsetSeconds,
@@ -34,7 +34,105 @@ import {
34
34
  __toESM
35
35
  } from "./chunk-M2WBOQ2Q.js";
36
36
 
37
- // ../studio-server/dist/chunk-CLWFZQUU.js
37
+ // ../core/dist/timelineAssetId.js
38
+ function trimIdUnderscores(value) {
39
+ let start = 0;
40
+ let end = value.length;
41
+ while (value[start] === "_")
42
+ start += 1;
43
+ while (end > start && value[end - 1] === "_")
44
+ end -= 1;
45
+ return value.slice(start, end);
46
+ }
47
+ function buildTimelineAssetId(assetPath, existingIds) {
48
+ const baseName = assetPath.slice(assetPath.lastIndexOf("/") + 1);
49
+ const normalized = baseName.replace(/\.[^.]+$/, "").replace(/[^a-zA-Z0-9_-]+/g, "_").toLowerCase();
50
+ const baseId = trimIdUnderscores(normalized) || "asset";
51
+ const ids = new Set(existingIds);
52
+ if (!ids.has(baseId))
53
+ return baseId;
54
+ let suffix = 2;
55
+ while (ids.has(`${baseId}_${suffix}`))
56
+ suffix += 1;
57
+ return `${baseId}_${suffix}`;
58
+ }
59
+ function referenceChildren(element) {
60
+ if (element.children.length > 0)
61
+ return element.children;
62
+ if (element.tagName.toLowerCase() !== "template")
63
+ return [];
64
+ const content = element.content;
65
+ return content ? content.children : [];
66
+ }
67
+ function documentElements(document) {
68
+ const elements = [];
69
+ const visit = (element) => {
70
+ elements.push(element);
71
+ for (const child of referenceChildren(element))
72
+ visit(child);
73
+ };
74
+ if (document.documentElement)
75
+ visit(document.documentElement);
76
+ return elements;
77
+ }
78
+ function decodeIdEscape(original, hex) {
79
+ const codePoint = Number.parseInt(hex, 16);
80
+ return codePoint <= 1114111 ? String.fromCodePoint(codePoint) : original;
81
+ }
82
+ function referencesId(value, id) {
83
+ const decoded = value.replace(/\\x([0-9a-f]{2})/gi, (original, hex) => decodeIdEscape(original, hex)).replace(/\\u\{([0-9a-f]+)\}|\\u([0-9a-f]{4})/gi, (original, braced, fixed) => decodeIdEscape(original, braced ?? fixed)).replace(/\\([0-9a-f]{1,6})\s?/gi, (original, hex) => decodeIdEscape(original, hex)).replace(/\\([^\r\n])/g, "$1");
84
+ return decoded.includes(id);
85
+ }
86
+ function decodeFragment(value) {
87
+ const fragment = value.split("#").slice(1).join("#");
88
+ try {
89
+ return decodeURIComponent(fragment);
90
+ } catch {
91
+ return fragment;
92
+ }
93
+ }
94
+ function attributeReferencesId(attribute, id) {
95
+ if (["id", "data-hf-id"].includes(attribute.name))
96
+ return false;
97
+ if (attribute.name === "src")
98
+ return referencesId(decodeFragment(attribute.value), id);
99
+ return referencesId(attribute.value, id);
100
+ }
101
+ function elementReferencesId(element, id) {
102
+ const code = ["script", "style"].includes(element.tagName.toLowerCase());
103
+ if (code && referencesId(element.textContent ?? "", id))
104
+ return true;
105
+ return Array.from(element.attributes).some((attribute) => attributeReferencesId(attribute, id));
106
+ }
107
+ function readMediaIdentity(element) {
108
+ const media = ["video", "audio", "img"].includes(element.tagName.toLowerCase());
109
+ const src = element.getAttribute("src");
110
+ const id = element.getAttribute("id");
111
+ if (!media || !src || !id)
112
+ return null;
113
+ return { id, src };
114
+ }
115
+ function matchesGeneratedId({ id, src }) {
116
+ const base = buildTimelineAssetId(src, []);
117
+ const suffix = id.slice(base.length);
118
+ return id === base || id.startsWith(base) && /^_(?:[2-9]\d*|1\d+)$/.test(suffix);
119
+ }
120
+ function canRenameMedia(element, identity, newSrc) {
121
+ const authored = ["data-timeline-label", "data-label", "aria-label"].some((name) => element.getAttribute(name)?.trim());
122
+ return !authored && identity.src !== newSrc && matchesGeneratedId(identity);
123
+ }
124
+ function replacementTimelineAssetId(document, element, newSrc) {
125
+ const identity = readMediaIdentity(element);
126
+ if (!identity || !canRenameMedia(element, identity, newSrc))
127
+ return null;
128
+ const elements = documentElements(document);
129
+ if (elements.some((other) => elementReferencesId(other, identity.id)))
130
+ return null;
131
+ const ids = elements.filter((other) => other !== element).map((other) => other.getAttribute("id")).filter((value) => value !== null);
132
+ return buildTimelineAssetId(newSrc, ids);
133
+ }
134
+
135
+ // ../studio-server/dist/chunk-JJ4N3PXT.js
38
136
  var import_postcss_selector_parser = __toESM(require_dist(), 1);
39
137
  import postcss from "postcss";
40
138
 
@@ -148,7 +246,7 @@ function findSyncPartner(el) {
148
246
  return best?.el ?? null;
149
247
  }
150
248
 
151
- // ../studio-server/dist/chunk-CLWFZQUU.js
249
+ // ../studio-server/dist/chunk-JJ4N3PXT.js
152
250
  function parseStyleDecls(style) {
153
251
  const props = /* @__PURE__ */ new Map();
154
252
  const order = [];
@@ -373,6 +471,8 @@ function patchElementInHtml(source, target, operations, takenIds) {
373
471
  if (!isAllowedHtmlAttribute(op.property)) break;
374
472
  if (op.value != null) {
375
473
  if (!isSafeAttributeValue(op.property, op.value)) break;
474
+ const replacementId = op.property === "src" ? replacementTimelineAssetId(document, opTarget, op.value) : null;
475
+ if (replacementId !== null) opTarget.setAttribute("id", replacementId);
376
476
  opTarget.setAttribute(op.property, op.value);
377
477
  } else {
378
478
  opTarget.removeAttribute(op.property);
@@ -6,7 +6,7 @@ var __filename = __hf_fileURLToPath(import.meta.url);
6
6
  var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  resolveCaptureBrowserGpuMode
9
- } from "./chunk-PE2I3AFA.js";
9
+ } from "./chunk-WTMUCJ6Z.js";
10
10
  import {
11
11
  requestCliExit
12
12
  } from "./chunk-PBN6GBJE.js";
@@ -0,0 +1,15 @@
1
+ import { createRequire as __hf_createRequire } from "node:module";
2
+ import { fileURLToPath as __hf_fileURLToPath } from "node:url";
3
+ import { dirname as __hf_dirname } from "node:path";
4
+ var require = __hf_createRequire(import.meta.url);
5
+ var __filename = __hf_fileURLToPath(import.meta.url);
6
+ var __dirname = __hf_dirname(__filename);
7
+
8
+ // src/capture/types.ts
9
+ var DEFAULT_MAX_SCREENSHOTS = 21;
10
+ var CAPTURE_PHASE_SCHEMA = "hyperframes.capture.phase.v1";
11
+
12
+ export {
13
+ DEFAULT_MAX_SCREENSHOTS,
14
+ CAPTURE_PHASE_SCHEMA
15
+ };
@@ -11,12 +11,12 @@ import {
11
11
  iterateFontFamilyDeclarations,
12
12
  normalizeSystemFontPrimaryFamilies,
13
13
  resolveFontFamilyDeclarationFamilies
14
- } from "./chunk-R4QIE6UY.js";
14
+ } from "./chunk-7M4KAPAA.js";
15
15
  import {
16
16
  EncoderInterruptedError,
17
17
  encoderFailureError,
18
18
  prepareAnimatedGifInputs
19
- } from "./chunk-SLEPCESN.js";
19
+ } from "./chunk-WGVOWWVK.js";
20
20
  import {
21
21
  createStudioPositionSeekReapplyScript
22
22
  } from "./chunk-KC5XXX3X.js";
@@ -141,7 +141,7 @@ import {
141
141
  validateEngineConfigSnapshot,
142
142
  verifyDiskDrawElementSamples,
143
143
  writeCapturedFrame
144
- } from "./chunk-TPECLKPA.js";
144
+ } from "./chunk-IDX52YJN.js";
145
145
  import {
146
146
  assignBundledRuntimeCompositionIds,
147
147
  buildVariablesByCompScript,
@@ -151,7 +151,7 @@ import {
151
151
  ensureExternalScriptTag,
152
152
  inlineSubCompositions,
153
153
  prepareFlattenedInnerRoot
154
- } from "./chunk-6U3MN4HW.js";
154
+ } from "./chunk-DPHJKWP5.js";
155
155
  import {
156
156
  LOW_MEMORY_TOTAL_MB_THRESHOLD,
157
157
  getCgroupMemoryLimitMb,
@@ -172,7 +172,7 @@ import {
172
172
  resolveAbsoluteMediaStartSeconds,
173
173
  resolveAuthoredTimingWindow,
174
174
  toFps
175
- } from "./chunk-QP3BRKGF.js";
175
+ } from "./chunk-YFT3BL7N.js";
176
176
  import {
177
177
  CANVAS_DIMENSIONS,
178
178
  HTML_BODY_CSS_HEIGHT_FIRST_RE,
@@ -210,7 +210,7 @@ import {
210
210
  shouldClampResolvedMediaDuration,
211
211
  sourceTimeAt,
212
212
  styleElementsFor
213
- } from "./chunk-B3I3XJ47.js";
213
+ } from "./chunk-J4UX3RS3.js";
214
214
  import {
215
215
  MAX_AUDIO_GAIN
216
216
  } from "./chunk-YA62XGXS.js";
@@ -223,7 +223,7 @@ import {
223
223
  } from "./chunk-TWWSYAKJ.js";
224
224
  import {
225
225
  lintHyperframeHtml
226
- } from "./chunk-WY5OODN5.js";
226
+ } from "./chunk-IW2CKH6A.js";
227
227
  import {
228
228
  isUnresolvedAssetPlaceholder,
229
229
  readProjectFile,
@@ -6493,7 +6493,7 @@ async function readLocalFont(absPath) {
6493
6493
  return { kind: "inline", buffer: Buffer.concat(chunks, totalBytes) };
6494
6494
  }
6495
6495
  async function embedLocalFontFaces(html, projectDir) {
6496
- const { fontToDataUri: toDataUri } = await import("./deterministicFonts-GTITFRSJ.js");
6496
+ const { fontToDataUri: toDataUri } = await import("./deterministicFonts-F6WIVL2W.js");
6497
6497
  const styleBlockRe = /<style\b[^>]*>([\s\S]*?)<\/style>/gi;
6498
6498
  const fontFaceRe = /@font-face\s*\{([^}]*)\}/gi;
6499
6499
  let result = html;
@@ -14319,7 +14319,7 @@ function startServer(options = {}) {
14319
14319
  });
14320
14320
  async function shutdown(signal) {
14321
14321
  log.info(`Received ${signal}, shutting down`);
14322
- const { drainBrowserPool } = await import("./src-7SSERHNP.js");
14322
+ const { drainBrowserPool } = await import("./src-3I3RH3V5.js");
14323
14323
  await drainBrowserPool().catch(() => {
14324
14324
  });
14325
14325
  const handle = await Promise.race([
@@ -15442,7 +15442,7 @@ async function buildLocalExecutionPlan(projectDir, config, executionPlanDir, opt
15442
15442
  if (probeResult.fileServer) closeFileServerSafely(probeResult.fileServer, "plan", log);
15443
15443
  if (probeResult.probeSession) {
15444
15444
  try {
15445
- const { closeCaptureSession: closeCaptureSession2 } = await import("./src-7SSERHNP.js");
15445
+ const { closeCaptureSession: closeCaptureSession2 } = await import("./src-3I3RH3V5.js");
15446
15446
  await closeCaptureSession2(probeResult.probeSession);
15447
15447
  } catch (err) {
15448
15448
  log.warn("[plan] probe session close failed", {
@@ -27,7 +27,7 @@ import {
27
27
  } from "./chunk-GMECXFAN.js";
28
28
  import {
29
29
  ITEM_TYPE_DIRS
30
- } from "./chunk-QP3BRKGF.js";
30
+ } from "./chunk-YFT3BL7N.js";
31
31
  import {
32
32
  realProjectRoot
33
33
  } from "./chunk-OFQWTKPW.js";
@@ -1278,7 +1278,7 @@ async function withFigmaErrors(command, fn) {
1278
1278
  } catch (err) {
1279
1279
  if (err instanceof Error) {
1280
1280
  try {
1281
- const { trackCommandFailure } = await import("./events-7VJJGC3D.js");
1281
+ const { trackCommandFailure } = await import("./events-QJDVMKSR.js");
1282
1282
  trackCommandFailure(
1283
1283
  command,
1284
1284
  err,
@@ -15,7 +15,7 @@ import {
15
15
  } from "./chunk-PBN6GBJE.js";
16
16
  import {
17
17
  parseFps
18
- } from "./chunk-QP3BRKGF.js";
18
+ } from "./chunk-YFT3BL7N.js";
19
19
 
20
20
  // src/browser/windowsCrash.ts
21
21
  var STATUS_STACK_BUFFER_OVERRUN_DEC = "3221225595";
@@ -8,10 +8,10 @@ import {
8
8
  DEFAULT_VP9_CPU_USED,
9
9
  isHttpUrl,
10
10
  runFfmpeg
11
- } from "./chunk-TPECLKPA.js";
11
+ } from "./chunk-IDX52YJN.js";
12
12
  import {
13
13
  parseAnimatedGifMetadata
14
- } from "./chunk-QP3BRKGF.js";
14
+ } from "./chunk-YFT3BL7N.js";
15
15
  import {
16
16
  parseHTML
17
17
  } from "./chunk-GK4AIFIH.js";
@@ -10,18 +10,18 @@ import {
10
10
  import {
11
11
  launchManagedBrowser,
12
12
  resolveManagedGpuMode
13
- } from "./chunk-BQKEGPPL.js";
13
+ } from "./chunk-OSUKETIH.js";
14
14
  import {
15
15
  resolveDiagnosticNavigationTimeoutMs,
16
16
  windowsChromeCrashRemediation
17
- } from "./chunk-TYT2TLJR.js";
17
+ } from "./chunk-TY6XOHEM.js";
18
18
  import {
19
19
  resolveLocalBrowserGpuMode
20
- } from "./chunk-PE2I3AFA.js";
20
+ } from "./chunk-WTMUCJ6Z.js";
21
21
  import {
22
22
  assertWebGpuAdapterAvailable,
23
23
  compositionRequiresWebGpu
24
- } from "./chunk-TPECLKPA.js";
24
+ } from "./chunk-IDX52YJN.js";
25
25
  import {
26
26
  normalizeErrorMessage
27
27
  } from "./chunk-KNU5COPB.js";
@@ -103,7 +103,7 @@ async function openSettledCompositionPage(html, url, options) {
103
103
  const { ensureBrowser, findSystemBrowser } = await import("./manager-CT3D67CG.js");
104
104
  const browser = await ensureBrowser();
105
105
  const puppeteer = await import("puppeteer-core");
106
- const { buildChromeArgs } = await import("./src-7SSERHNP.js");
106
+ const { buildChromeArgs } = await import("./src-3I3RH3V5.js");
107
107
  const requestedGpuMode = options.browserGpuMode ?? resolveCliChromeGpuMode();
108
108
  const requiresWebGpu = compositionRequiresWebGpu(html);
109
109
  const launch = async (executablePath) => {
@@ -13,7 +13,7 @@ function resolveLocalBrowserGpuMode(browserGpuArg, envMode = process.env.PRODUCE
13
13
  return "auto";
14
14
  }
15
15
  async function resolveCaptureBrowserGpuMode(requestedMode, chromePath) {
16
- const { resolveBrowserGpuMode } = await import("./src-7SSERHNP.js");
16
+ const { resolveBrowserGpuMode } = await import("./src-3I3RH3V5.js");
17
17
  return resolveBrowserGpuMode(requestedMode, { chromePath });
18
18
  }
19
19
 
@@ -8,7 +8,7 @@ import {
8
8
  flush,
9
9
  shouldTrack,
10
10
  trackEvent
11
- } from "./chunk-C2JUHIG5.js";
11
+ } from "./chunk-LBKDQKWV.js";
12
12
  import {
13
13
  getPowerState
14
14
  } from "./chunk-GQJZORQP.js";
@@ -7,7 +7,7 @@ var __dirname = __hf_dirname(__filename);
7
7
 
8
8
  // src/utils/producer.ts
9
9
  async function loadProducer() {
10
- return await import("./src-RXTXL3VL.js");
10
+ return await import("./src-YUW26JU5.js");
11
11
  }
12
12
 
13
13
  export {
@@ -17,7 +17,7 @@ import {
17
17
  parseStrictFiniteTimingNumber,
18
18
  resolveNaturalMediaTimelineDuration,
19
19
  resolveTimedImageDurationSeconds
20
- } from "./chunk-B3I3XJ47.js";
20
+ } from "./chunk-J4UX3RS3.js";
21
21
  import {
22
22
  COMPOSITION_ATTRIBUTES,
23
23
  parseStartExpression
@@ -1158,6 +1158,21 @@ function parseFirstFrameColour(stderr) {
1158
1158
  return tags ? { colorSpace: tags[1], colorPrimaries: tags[2], colorTransfer: tags[3] } : {};
1159
1159
  }
1160
1160
 
1161
+ // ../core/dist/previewProxyBox.js
1162
+ var PREVIEW_PROXY_BOX_PARAM = "hf-proxy-box";
1163
+ var RUNGS = [256, 362, 512, 724, 1024, 1448, 2048, 2896, 4096, 5792, 8192];
1164
+ function formatPreviewProxyBox(box) {
1165
+ return `${box.width}x${box.height}`;
1166
+ }
1167
+ function parsePreviewProxyBox(raw) {
1168
+ const match = /^(\d{3,4})x(\d{3,4})$/.exec(raw);
1169
+ if (!match)
1170
+ return null;
1171
+ const width = Number(match[1]);
1172
+ const height = Number(match[2]);
1173
+ return RUNGS.includes(width) && RUNGS.includes(height) ? { width, height } : null;
1174
+ }
1175
+
1161
1176
  // ../core/dist/inline-scripts/hyperframesRuntime.engine.js
1162
1177
  import { buildSync } from "esbuild";
1163
1178
  import { existsSync } from "fs";
@@ -5537,6 +5552,9 @@ export {
5537
5552
  hdrToSdrToneMapFilter,
5538
5553
  firstFrameColourArgs,
5539
5554
  parseFirstFrameColour,
5555
+ PREVIEW_PROXY_BOX_PARAM,
5556
+ formatPreviewProxyBox,
5557
+ parsePreviewProxyBox,
5540
5558
  buildHyperframesRuntimeScript,
5541
5559
  HYPERFRAME_RUNTIME_GLOBALS,
5542
5560
  HYPERFRAME_BRIDGE_SOURCES,