hyperframes 0.8.117 → 0.8.119

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 (149) hide show
  1. package/dist/{add-IIQPNPGC.js → add-LVDM5BBO.js} +14 -14
  2. package/dist/{animatedGifPrep-Z2SW4EP4.js → animatedGifPrep-RH5AEVNX.js} +5 -5
  3. package/dist/{asset-G2YFF22T.js → asset-PA7XD3CI.js} +2 -2
  4. package/dist/{assetCataloger-D5JB2JMJ.js → assetCataloger-QX37JS5D.js} +2 -2
  5. package/dist/{auth-TLQUVQZM.js → auth-SQIHPP3J.js} +2 -2
  6. package/dist/{autoUpdate-H6AOMII5.js → autoUpdate-JCG27FBW.js} +2 -2
  7. package/dist/{backgroundChecks-RYFTDMFT.js → backgroundChecks-U7JCBAWI.js} +3 -3
  8. package/dist/backgroundChecksWorker.js +3 -3
  9. package/dist/{batchRender-YIAVYPWT.js → batchRender-BBBUJETN.js} +3 -3
  10. package/dist/{beats-VO3VHQWQ.js → beats-6BSMZTE6.js} +11 -11
  11. package/dist/{benchmark-34XZJT2Q.js → benchmark-WOZCECBF.js} +11 -11
  12. package/dist/{browser-LACRZ6JL.js → browser-KNPH25NJ.js} +8 -8
  13. package/dist/{bundleWithLocalizedFonts-EYKE5ZX6.js → bundleWithLocalizedFonts-I4RJWHKR.js} +2 -2
  14. package/dist/{capture-ZQTC6I6C.js → capture-4WXKXCCV.js} +8 -8
  15. package/dist/{capture-MMS22F4Q.js → capture-PZQOA465.js} +2 -2
  16. package/dist/{catalog-TH4AFNHA.js → catalog-OXCKYFHY.js} +14 -14
  17. package/dist/{check-3ECOPYGB.js → check-N4QDDW6N.js} +31 -31
  18. package/dist/{checkBrowser-6KZQZ56A.js → checkBrowser-D3L4OXTQ.js} +30 -30
  19. package/dist/{chunk-AJU4HUC6.js → chunk-2FJPEXII.js} +1 -1
  20. package/dist/{chunk-KGFTVLNQ.js → chunk-2MMAA5I3.js} +1 -1
  21. package/dist/{chunk-2NC676XZ.js → chunk-2WKWEB4T.js} +14 -2
  22. package/dist/{chunk-P3REWAFF.js → chunk-3NXDJSD5.js} +2 -2
  23. package/dist/{chunk-D5DP3BQJ.js → chunk-4PTKEI2C.js} +1 -1
  24. package/dist/{chunk-L3MEJHF4.js → chunk-523Q6JDM.js} +2 -2
  25. package/dist/{chunk-7CXLMMUA.js → chunk-5IABQ7OX.js} +1 -1
  26. package/dist/{chunk-JQJPJ6VZ.js → chunk-6Q3Q7HGA.js} +1 -1
  27. package/dist/{chunk-SH4GCZVF.js → chunk-7UXUVWOY.js} +1 -1
  28. package/dist/{chunk-BRWHMATR.js → chunk-AMSNSTLK.js} +3 -3
  29. package/dist/{chunk-R6BVKVII.js → chunk-BKQXLO55.js} +1 -1
  30. package/dist/{chunk-PSGDNMM6.js → chunk-BXCMXMJQ.js} +1 -1
  31. package/dist/{chunk-LAV6WGPA.js → chunk-BZKDN6BU.js} +7 -7
  32. package/dist/{chunk-SXOYBUM7.js → chunk-CDTPNYO3.js} +3 -3
  33. package/dist/{chunk-6SHCWTLO.js → chunk-EEXM24SY.js} +5 -5
  34. package/dist/{chunk-WEATBQTR.js → chunk-EOVYQ3IG.js} +21 -1
  35. package/dist/{chunk-PEZCMM6X.js → chunk-FNX7RJIJ.js} +2 -2
  36. package/dist/{chunk-2LT5WBQR.js → chunk-FRIRP3DN.js} +1 -1
  37. package/dist/{chunk-KKWOE65F.js → chunk-GVJMAHXQ.js} +2 -2
  38. package/dist/{chunk-6QJZ5ELI.js → chunk-HNOJAFT2.js} +2 -2
  39. package/dist/{chunk-Z3QXVEZM.js → chunk-IUBZ3DSO.js} +2 -2
  40. package/dist/{chunk-XZEU47V2.js → chunk-KFKEMNSW.js} +1 -1
  41. package/dist/{chunk-UWROQP7K.js → chunk-KK7VGMEF.js} +9 -9
  42. package/dist/{chunk-AGLQPT3K.js → chunk-KNXXZ73S.js} +4 -4
  43. package/dist/{chunk-EGBBEKJJ.js → chunk-KWABBJYI.js} +2 -2
  44. package/dist/{chunk-AFUXSLNG.js → chunk-LHU6KXWL.js} +1 -1
  45. package/dist/{chunk-O27US3U4.js → chunk-M6LKSPER.js} +3 -3
  46. package/dist/{chunk-CUU2MHZJ.js → chunk-MYSYOQPV.js} +2 -2
  47. package/dist/{chunk-EH2XJW65.js → chunk-OI3IIR2X.js} +1 -1
  48. package/dist/{chunk-AWEJWZVO.js → chunk-OLFFCC2D.js} +1 -1
  49. package/dist/{chunk-IUNDV47P.js → chunk-OV62R47Q.js} +1 -1
  50. package/dist/{chunk-XTBM64YY.js → chunk-OWMGDQBZ.js} +1 -1
  51. package/dist/{chunk-MIBZTWN4.js → chunk-P6UJ22SS.js} +1 -1
  52. package/dist/{chunk-QNC5C6DU.js → chunk-PPTHGZTG.js} +1 -1
  53. package/dist/{chunk-LX3VVPMN.js → chunk-RMDKZTSI.js} +2 -2
  54. package/dist/chunk-SHLFJFPM.js +3541 -0
  55. package/dist/{chunk-AFG4DOYJ.js → chunk-SUIF4D5H.js} +9 -8
  56. package/dist/{chunk-7PWGR3MW.js → chunk-TOOQJPUJ.js} +5 -5
  57. package/dist/{chunk-DZNISW63.js → chunk-U3CILSBM.js} +1 -1
  58. package/dist/{chunk-BPZSP7ZJ.js → chunk-U7AMFQ6G.js} +1 -1
  59. package/dist/{chunk-YB4QYTVZ.js → chunk-V2VNJNX6.js} +1 -1
  60. package/dist/{chunk-5KSSEDQS.js → chunk-V5T6IA7D.js} +1 -1
  61. package/dist/{chunk-QNQJ3WAL.js → chunk-WJP3UOB3.js} +1 -1
  62. package/dist/{chunk-UDAEVABF.js → chunk-Y44PIZOH.js} +9 -9
  63. package/dist/{chunk-TC26HGZB.js → chunk-ZTU5PYQJ.js} +72 -35
  64. package/dist/{clean-CU7GAMS4.js → clean-VWT7OZEN.js} +15 -15
  65. package/dist/cli.js +50 -50
  66. package/dist/{cloud-QT372KIW.js → cloud-BB7SW4DX.js} +4 -4
  67. package/dist/{cloudrun-3LJRT5XM.js → cloudrun-OQLPEWGP.js} +3 -3
  68. package/dist/{compare-IOPOTPI2.js → compare-3Z4BPHIZ.js} +25 -25
  69. package/dist/{compiler-66K2RT7V.js → compiler-GPUSYMA6.js} +2 -2
  70. package/dist/{component-URUXOWQL.js → component-6H2NIATV.js} +3 -3
  71. package/dist/{compositions-GT4Z5OLP.js → compositions-I357YMW6.js} +10 -10
  72. package/dist/{delete-COWZD2Z3.js → delete-YJQPGNJJ.js} +4 -4
  73. package/dist/{dist-HJS3UTNS.js → dist-NP53GO3N.js} +2 -2
  74. package/dist/{doctor-WKGV26CY.js → doctor-NP34O2SX.js} +9 -9
  75. package/dist/{events-BMKJDGYG.js → events-NV6CNGUD.js} +7 -7
  76. package/dist/{events-TR7DJB73.js → events-T4KFU5HZ.js} +8 -8
  77. package/dist/{feedback-TFJPY3BO.js → feedback-DKHIGKC4.js} +9 -9
  78. package/dist/{figma-YGJ6Z7LR.js → figma-ALVXXDIQ.js} +3 -3
  79. package/dist/fontLocalizeCli.js +7 -7
  80. package/dist/{get-AYASBZBE.js → get-CKKP6UBL.js} +4 -4
  81. package/dist/{gpuPolicy-H6MUFZ7D.js → gpuPolicy-WWBLJO6C.js} +5 -5
  82. package/dist/{grade-compare-2T2NKG27.js → grade-compare-7POS3AY6.js} +28 -26
  83. package/dist/{help-AH4GQKJV.js → help-KGRXGCVJ.js} +1 -1
  84. package/dist/{history-DG67TNAR.js → history-JLXPVI2L.js} +15 -15
  85. package/dist/hyperframe-runtime.js +53 -53
  86. package/dist/hyperframe.manifest.json +1 -1
  87. package/dist/hyperframe.runtime.iife.js +53 -53
  88. package/dist/hyperframes-player.global.js +1 -1
  89. package/dist/{info-EEH52AYK.js → info-QA5UAYFS.js} +10 -10
  90. package/dist/{init-VONKWUCG.js → init-7SM4AD76.js} +21 -21
  91. package/dist/{inspect-IQM3SHDV.js → inspect-ANJ2CRLP.js} +26 -26
  92. package/dist/{installer-PA5MGVDO.js → installer-EUT2OZTH.js} +4 -4
  93. package/dist/{keyframes-6HCXBPLQ.js → keyframes-H2ZUI3DC.js} +11 -11
  94. package/dist/{lambda-YIHWNJEH.js → lambda-HZ2ZKLVH.js} +4 -4
  95. package/dist/{layout-YLB6OPZY.js → layout-EDDKQ67V.js} +26 -26
  96. package/dist/{lint-2EFYARRR.js → lint-SVXOETDR.js} +11 -11
  97. package/dist/{list-QIHEPPHZ.js → list-YRBK24UM.js} +4 -4
  98. package/dist/{login-UZUODUQC.js → login-VE7VGBOA.js} +4 -4
  99. package/dist/{media-treatment-FG4RMJXK.js → media-treatment-ZQOBGLJQ.js} +11 -11
  100. package/dist/{models-SUK4QOJ5.js → models-GVMX5TFG.js} +6 -6
  101. package/dist/{motionShot-BEHZNNNU.js → motionShot-2Z6LRHEV.js} +10 -10
  102. package/dist/{normalize-audio-H3YZQLBO.js → normalize-audio-QHMZWNNH.js} +10 -10
  103. package/dist/{pipeline-5LVBTW62.js → pipeline-HYULUMEV.js} +5 -5
  104. package/dist/{play-CRJFW3QL.js → play-EYXIIZHG.js} +20 -20
  105. package/dist/{preflight-3MQ7JMHN.js → preflight-KJHZ46FX.js} +6 -6
  106. package/dist/{present-NQBKJXIK.js → present-YQ2BRUNH.js} +16 -16
  107. package/dist/{preview-FWHELX4C.js → preview-QMAPLY2S.js} +16 -16
  108. package/dist/{producer-LKUMV4PJ.js → producer-FS442D4D.js} +1 -1
  109. package/dist/{projectConfig-LKX4GGB2.js → projectConfig-A4DXJF4P.js} +6 -6
  110. package/dist/{publication-AFF2GNOK.js → publication-QY2H23JU.js} +2 -2
  111. package/dist/{publish-OIXKASHL.js → publish-PCT6JM4B.js} +7 -7
  112. package/dist/{remove-background-GEIGOOB6.js → remove-background-O2J7EVEN.js} +6 -6
  113. package/dist/{render-CRILOZHZ.js → render-6QXPYNLY.js} +20 -20
  114. package/dist/{render-J3OXL3L3.js → render-HYA6UBZD.js} +13 -13
  115. package/dist/{render-QVLJLHQ7.js → render-QUQJP5PP.js} +3 -3
  116. package/dist/{render-batch-3JQIYKPW.js → render-batch-OS4UEZA4.js} +3 -3
  117. package/dist/{renderCancellation-XHKRCKT5.js → renderCancellation-RWWLGOOD.js} +5 -5
  118. package/dist/{resolver-BT3HKPZI.js → resolver-IM46W362.js} +4 -4
  119. package/dist/{sherpa-QGPYYPAD.js → sherpa-COBFACPG.js} +8 -8
  120. package/dist/{skills-CZJLCXUA.js → skills-CT7TY7SZ.js} +10 -10
  121. package/dist/{skillsUpdateCheck-OXJP2M7T.js → skillsUpdateCheck-AWHTVNPB.js} +3 -3
  122. package/dist/{snapshot-QZJWBKZN.js → snapshot-C4PYM7G5.js} +26 -26
  123. package/dist/{src-J5MXEA24.js → src-GGDAYPPK.js} +6 -6
  124. package/dist/{src-SMYS3ES6.js → src-QOQJLFDK.js} +4 -4
  125. package/dist/{staticProjectServer-6PXSZKJQ.js → staticProjectServer-RBGIJQMY.js} +14 -14
  126. package/dist/{status-SN6EI5XW.js → status-FCLZF4FT.js} +5 -5
  127. package/dist/studio/assets/{hyperframes-player-5fcgSstJ.js → hyperframes-player-7Icl2uVN.js} +1 -1
  128. package/dist/studio/assets/{index-XJSawwYe.js → index-7YcUqkoh.js} +1 -1
  129. package/dist/studio/assets/{index-C5qKdpgl.js → index-DOO2cYhl.js} +189 -189
  130. package/dist/studio/assets/{index-tg2LXUeu.js → index-Dc8FEIEU.js} +1 -1
  131. package/dist/studio/index.d.ts +1 -0
  132. package/dist/studio/index.html +1 -1
  133. package/dist/studio/index.js +2289 -2241
  134. package/dist/studio/index.js.map +1 -1
  135. package/dist/{studio-api-NDOUNA7Q.js → studio-api-Y67F5TPC.js} +8 -8
  136. package/dist/{studioServer-KOZN6A7J.js → studioServer-SCAZGVUQ.js} +38 -38
  137. package/dist/{system-SQ6LYDVJ.js → system-QUFWS7NN.js} +5 -5
  138. package/dist/{telemetry-JK7FY3NA.js → telemetry-JJJQWUA3.js} +8 -8
  139. package/dist/{timeline-I6XEIRSM.js → timeline-BEWRG3QA.js} +15 -15
  140. package/dist/{tokens-AMSWSL2S.js → tokens-GAZXBXWG.js} +2 -2
  141. package/dist/{transcribe-YTDPY4NU.js → transcribe-UJUYNNEH.js} +6 -6
  142. package/dist/{transcribe-XGX6PHHX.js → transcribe-ZCFEAIAW.js} +11 -11
  143. package/dist/{updateCheck-MW2L5VMR.js → updateCheck-H5DKTWUO.js} +2 -2
  144. package/dist/{upgrade-ERWPVZRE.js → upgrade-RUBSQNRS.js} +2 -2
  145. package/dist/{urlDownloader-QNEGOWQO.js → urlDownloader-5FUUYAOT.js} +4 -4
  146. package/dist/{validate-HSIBDBTS.js → validate-5R3OJEGF.js} +15 -15
  147. package/dist/{video-GMTTFD2W.js → video-RTC4AXZB.js} +5 -5
  148. package/package.json +1 -1
  149. package/dist/chunk-L6TT37IY.js +0 -3541
@@ -17,7 +17,7 @@ import {
17
17
  EncoderInterruptedError,
18
18
  encoderFailureError,
19
19
  prepareAnimatedGifInputs
20
- } from "./chunk-KKWOE65F.js";
20
+ } from "./chunk-GVJMAHXQ.js";
21
21
  import {
22
22
  createStudioPositionSeekReapplyScript
23
23
  } from "./chunk-KC5XXX3X.js";
@@ -145,7 +145,7 @@ import {
145
145
  validateEngineConfigSnapshot,
146
146
  verifyDiskDrawElementSamples,
147
147
  writeCapturedFrame
148
- } from "./chunk-Z3QXVEZM.js";
148
+ } from "./chunk-IUBZ3DSO.js";
149
149
  import {
150
150
  HF_VFX_ATTR,
151
151
  MEDIA_START_BASIS_ATTR,
@@ -154,6 +154,7 @@ import {
154
154
  fpsToFfmpegArg,
155
155
  fpsToNumber,
156
156
  gifClearsAfterLeavingFrameInPlace,
157
+ gsapCdnDist,
157
158
  parseFps,
158
159
  parseVfxChain,
159
160
  readMediaStartBasis,
@@ -162,7 +163,7 @@ import {
162
163
  resolveAbsoluteMediaStartSeconds,
163
164
  resolveAuthoredTimingWindow,
164
165
  toFps
165
- } from "./chunk-2NC676XZ.js";
166
+ } from "./chunk-2WKWEB4T.js";
166
167
  import {
167
168
  CANVAS_DIMENSIONS,
168
169
  HTML_BODY_CSS_HEIGHT_FIRST_RE,
@@ -186,7 +187,7 @@ import {
186
187
  inlineSubCompositions,
187
188
  prepareFlattenedInnerRoot,
188
189
  styleElementsFor
189
- } from "./chunk-7CXLMMUA.js";
190
+ } from "./chunk-5IABQ7OX.js";
190
191
  import {
191
192
  HF_COLOR_GRADING_ATTR,
192
193
  MAX_AUDIO_GAIN,
@@ -207,7 +208,7 @@ import {
207
208
  resolveNaturalMediaTimelineDurationFromValues,
208
209
  shouldClampResolvedMediaDuration,
209
210
  sourceTimeAt
210
- } from "./chunk-L6TT37IY.js";
211
+ } from "./chunk-SHLFJFPM.js";
211
212
  import {
212
213
  chromeMajorCeiling
213
214
  } from "./chunk-TWWSYAKJ.js";
@@ -6429,7 +6430,7 @@ async function embedLocalFontFaces(html, projectDir) {
6429
6430
  }
6430
6431
  return result;
6431
6432
  }
6432
- var GSAP_CDN_BASE = "https://cdn.jsdelivr.net/npm/gsap@3.15.0/dist/";
6433
+ var GSAP_CDN_BASE = gsapCdnDist();
6433
6434
  function rewriteUnresolvableGsapToCdn(html, projectDir) {
6434
6435
  return html.replace(
6435
6436
  /(<script\b[^>]*\bsrc=["'])([^"']*gsap[^"']*\/dist\/([^"']+))(["'][^>]*>)/gi,
@@ -14147,7 +14148,7 @@ function startServer(options = {}) {
14147
14148
  });
14148
14149
  async function shutdown(signal) {
14149
14150
  log.info(`Received ${signal}, shutting down`);
14150
- const { drainBrowserPool } = await import("./src-SMYS3ES6.js");
14151
+ const { drainBrowserPool } = await import("./src-QOQJLFDK.js");
14151
14152
  await drainBrowserPool().catch(() => {
14152
14153
  });
14153
14154
  const handle = await Promise.race([
@@ -15270,7 +15271,7 @@ async function buildLocalExecutionPlan(projectDir, config, executionPlanDir, opt
15270
15271
  if (probeResult.fileServer) closeFileServerSafely(probeResult.fileServer, "plan", log);
15271
15272
  if (probeResult.probeSession) {
15272
15273
  try {
15273
- const { closeCaptureSession: closeCaptureSession2 } = await import("./src-SMYS3ES6.js");
15274
+ const { closeCaptureSession: closeCaptureSession2 } = await import("./src-QOQJLFDK.js");
15274
15275
  await closeCaptureSession2(probeResult.probeSession);
15275
15276
  } catch (err) {
15276
15277
  log.warn("[plan] probe session close failed", {
@@ -10,23 +10,23 @@ import {
10
10
  import {
11
11
  launchManagedBrowser,
12
12
  resolveManagedGpuMode
13
- } from "./chunk-EH2XJW65.js";
13
+ } from "./chunk-OI3IIR2X.js";
14
14
  import {
15
15
  windowsChromeCrashRemediation
16
16
  } from "./chunk-262C25DQ.js";
17
17
  import {
18
18
  resolveDiagnosticNavigationTimeoutMs
19
- } from "./chunk-AWEJWZVO.js";
19
+ } from "./chunk-OLFFCC2D.js";
20
20
  import {
21
21
  resolveLocalBrowserGpuMode
22
- } from "./chunk-5KSSEDQS.js";
22
+ } from "./chunk-V5T6IA7D.js";
23
23
  import {
24
24
  c
25
25
  } from "./chunk-ZTZA4UWZ.js";
26
26
  import {
27
27
  assertWebGpuAdapterAvailable,
28
28
  compositionRequiresWebGpu
29
- } from "./chunk-Z3QXVEZM.js";
29
+ } from "./chunk-IUBZ3DSO.js";
30
30
  import {
31
31
  normalizeErrorMessage
32
32
  } from "./chunk-KNU5COPB.js";
@@ -102,7 +102,7 @@ async function openSettledCompositionPage(html, url, options) {
102
102
  const { ensureBrowser, findSystemBrowser } = await import("./manager-CT3D67CG.js");
103
103
  const browser = await ensureBrowser();
104
104
  const puppeteer = await import("puppeteer-core");
105
- const { buildChromeArgs } = await import("./src-SMYS3ES6.js");
105
+ const { buildChromeArgs } = await import("./src-QOQJLFDK.js");
106
106
  const requestedGpuMode = options.browserGpuMode ?? resolveCliChromeGpuMode();
107
107
  const requiresWebGpu = compositionRequiresWebGpu(html);
108
108
  const launch = async (executablePath) => {
@@ -6,7 +6,7 @@ var __filename = __hf_fileURLToPath(import.meta.url);
6
6
  var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  setHostHandlesSigint
9
- } from "./chunk-Z3QXVEZM.js";
9
+ } from "./chunk-IUBZ3DSO.js";
10
10
  import {
11
11
  processAncestorSnapshot,
12
12
  processIdentity,
@@ -9,7 +9,7 @@ import {
9
9
  } from "./chunk-AMKC3AXA.js";
10
10
  import {
11
11
  getSystemTotalMb
12
- } from "./chunk-Z3QXVEZM.js";
12
+ } from "./chunk-IUBZ3DSO.js";
13
13
 
14
14
  // src/telemetry/system.ts
15
15
  import { cpus, freemem, platform as platform2, release as release2 } from "os";
@@ -14,7 +14,7 @@ import {
14
14
  } from "./chunk-AWDFDFI3.js";
15
15
  import {
16
16
  isBlockedNetworkHost
17
- } from "./chunk-Z3QXVEZM.js";
17
+ } from "./chunk-IUBZ3DSO.js";
18
18
  import {
19
19
  DOMParser,
20
20
  parseHTML
@@ -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-SMYS3ES6.js");
16
+ const { resolveBrowserGpuMode } = await import("./src-QOQJLFDK.js");
17
17
  return resolveBrowserGpuMode(requestedMode, { chromePath });
18
18
  }
19
19
 
@@ -12,7 +12,7 @@ import {
12
12
  } from "./chunk-HVW7ABXD.js";
13
13
  import {
14
14
  DEFAULT_REGISTRY_URL
15
- } from "./chunk-QNC5C6DU.js";
15
+ } from "./chunk-PPTHGZTG.js";
16
16
 
17
17
  // src/utils/projectConfig.ts
18
18
  import { readFileSync, writeFileSync } from "fs";
@@ -6,23 +6,23 @@ var __filename = __hf_fileURLToPath(import.meta.url);
6
6
  var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  serveStaticProjectHtml
9
- } from "./chunk-BRWHMATR.js";
9
+ } from "./chunk-AMSNSTLK.js";
10
10
  import {
11
11
  AUDIT_SEEK_OPTIONS,
12
12
  installPageFunctionGuard,
13
13
  seekCompositionTimeline,
14
14
  waitForCompositionFonts
15
- } from "./chunk-7PWGR3MW.js";
15
+ } from "./chunk-TOOQJPUJ.js";
16
16
  import {
17
17
  launchManagedBrowser,
18
18
  resolveManagedGpuMode
19
- } from "./chunk-EH2XJW65.js";
19
+ } from "./chunk-OI3IIR2X.js";
20
20
  import {
21
21
  resolveDiagnosticNavigationTimeoutMs
22
- } from "./chunk-AWEJWZVO.js";
22
+ } from "./chunk-OLFFCC2D.js";
23
23
  import {
24
24
  resolveProject
25
- } from "./chunk-JQJPJ6VZ.js";
25
+ } from "./chunk-6Q3Q7HGA.js";
26
26
  import {
27
27
  c
28
28
  } from "./chunk-ZTZA4UWZ.js";
@@ -36,7 +36,7 @@ import {
36
36
  import {
37
37
  printDeprecationNotice,
38
38
  withMeta
39
- } from "./chunk-2LT5WBQR.js";
39
+ } from "./chunk-FRIRP3DN.js";
40
40
  import {
41
41
  normalizeErrorMessage
42
42
  } from "./chunk-KNU5COPB.js";
@@ -669,7 +669,7 @@ async function collectTweenBoundaries(page) {
669
669
  });
670
670
  }
671
671
  async function bundleProjectHtml(projectDir) {
672
- const { bundleToSingleHtml } = await import("./compiler-66K2RT7V.js");
672
+ const { bundleToSingleHtml } = await import("./compiler-GPUSYMA6.js");
673
673
  return bundleToSingleHtml(projectDir);
674
674
  }
675
675
  async function alignViewportToComposition(page, url) {
@@ -691,8 +691,8 @@ async function alignViewportToComposition(page, url) {
691
691
  async function runLayoutAudit(projectDir, opts) {
692
692
  const { ensureBrowser } = await import("./manager-CT3D67CG.js");
693
693
  const puppeteer = await import("puppeteer-core");
694
- const { buildChromeArgs } = await import("./src-SMYS3ES6.js");
695
- const { assertWebGpuAdapterAvailable, compositionRequiresWebGpu, resolveLocalBrowserGpuMode } = await import("./gpuPolicy-H6MUFZ7D.js");
694
+ const { buildChromeArgs } = await import("./src-QOQJLFDK.js");
695
+ const { assertWebGpuAdapterAvailable, compositionRequiresWebGpu, resolveLocalBrowserGpuMode } = await import("./gpuPolicy-WWBLJO6C.js");
696
696
  const html = await bundleProjectHtml(projectDir);
697
697
  const server = await serveStaticProjectHtml(
698
698
  projectDir,
@@ -20,20 +20,20 @@ import {
20
20
  splitElementInHtml,
21
21
  unwrapElementsFromHtml,
22
22
  wrapElementsInHtml
23
- } from "./chunk-6QJZ5ELI.js";
23
+ } from "./chunk-HNOJAFT2.js";
24
24
  import {
25
25
  atomicTempPath,
26
26
  createFileAtomically,
27
27
  isAtomicTempPath,
28
28
  replaceFileAtomically
29
- } from "./chunk-WEATBQTR.js";
29
+ } from "./chunk-EOVYQ3IG.js";
30
30
  import {
31
31
  DEFAULT_TARGET_LUFS,
32
32
  absoluteLoudnessPlan,
33
33
  measureAudio,
34
34
  requiredFfmpeg,
35
35
  resolveLocalAudioPath
36
- } from "./chunk-R6BVKVII.js";
36
+ } from "./chunk-BKQXLO55.js";
37
37
  import {
38
38
  PROXY_PARAMS_VERSION,
39
39
  PROXY_PENDING_RETRY_AFTER_SECONDS,
@@ -59,7 +59,7 @@ import {
59
59
  shouldPrewarmProxy,
60
60
  waitForProxy,
61
61
  walkDir
62
- } from "./chunk-XTBM64YY.js";
62
+ } from "./chunk-OWMGDQBZ.js";
63
63
  import {
64
64
  findTimelineScript,
65
65
  parseGsapScriptAcorn
@@ -76,9 +76,11 @@ import {
76
76
  } from "./chunk-TJSTGSAW.js";
77
77
  import {
78
78
  formatRenderOutputTimestamp,
79
+ gsapCdnDist,
80
+ motionPathPluginUrl,
79
81
  parseFps,
80
82
  sameInstant
81
- } from "./chunk-2NC676XZ.js";
83
+ } from "./chunk-2WKWEB4T.js";
82
84
  import {
83
85
  MagicString,
84
86
  VALID_CANVAS_RESOLUTIONS,
@@ -87,7 +89,7 @@ import {
87
89
  import {
88
90
  addScenePartsManifest,
89
91
  ensureHfIds
90
- } from "./chunk-7CXLMMUA.js";
92
+ } from "./chunk-5IABQ7OX.js";
91
93
  import {
92
94
  findStartTags,
93
95
  injectScriptsIntoHtml,
@@ -97,7 +99,7 @@ import {
97
99
  resolveRateSpec,
98
100
  sourceTimeAt,
99
101
  stripEmbeddedRuntimeScripts
100
- } from "./chunk-L6TT37IY.js";
102
+ } from "./chunk-SHLFJFPM.js";
101
103
  import {
102
104
  ProjectRootMissingError,
103
105
  folderGone,
@@ -5224,18 +5226,18 @@ import { createHash as createHash32 } from "crypto";
5224
5226
  import { existsSync as existsSync7, readFileSync as readFileSync10, statSync as statSync7 } from "fs";
5225
5227
  import { join as join12, resolve as resolve52 } from "path";
5226
5228
  import { execFile } from "child_process";
5227
- import { closeSync as closeSync32, openSync as openSync32, readFileSync as readFileSync11, rmSync as rmSync5, statSync as statSync8 } from "fs";
5228
- import { dirname as dirname52, join as join13, relative as relative4, sep as sep22 } from "path";
5229
+ import { readFileSync as readFileSync11, rmSync as rmSync5, statSync as statSync8 } from "fs";
5230
+ import { basename as basename22, dirname as dirname52, join as join13, relative as relative4, sep as sep22 } from "path";
5229
5231
  import { createHash as createHash5, randomBytes } from "crypto";
5230
5232
  import { existsSync as existsSync8 } from "fs";
5231
5233
  import { existsSync as existsSync9, readFileSync as readFileSync12, statSync as statSync9 } from "fs";
5232
5234
  import { join as join14, resolve as resolve6 } from "path";
5233
5235
  import { execFile as execFile2, spawn as spawn2 } from "child_process";
5234
5236
  import { promisify } from "util";
5235
- import { closeSync as closeSync4, constants as constants3, fstatSync as fstatSync3, openSync as openSync4, readSync } from "fs";
5237
+ import { closeSync as closeSync32, constants as constants3, fstatSync as fstatSync3, openSync as openSync32, readSync } from "fs";
5236
5238
  import { streamSSE as streamSSE2 } from "hono/streaming";
5237
5239
  import { existsSync as existsSync10 } from "fs";
5238
- import { basename as basename22, dirname as dirname6, extname as extname2, join as join15, posix } from "path";
5240
+ import { basename as basename3, dirname as dirname6, extname as extname2, join as join15, posix } from "path";
5239
5241
  import { existsSync as existsSync11, readFileSync as readFileSync13 } from "fs";
5240
5242
  import { homedir as homedir2 } from "os";
5241
5243
  import { join as join16 } from "path";
@@ -6566,7 +6568,7 @@ async function prepareGsapMutationScript(c, res, firstMutation) {
6566
6568
  let block = extractGsapScriptBlock(html);
6567
6569
  if (!block && (firstMutation.type === "add" || firstMutation.type === "add-with-keyframes")) {
6568
6570
  const compId = html.match(/data-composition-id="([^"]+)"/)?.[1] ?? "main";
6569
- const { GSAP_CDN } = await import("./dist-HJS3UTNS.js");
6571
+ const { GSAP_CDN } = await import("./dist-NP53GO3N.js");
6570
6572
  const bootstrap = [
6571
6573
  `<script src="${GSAP_CDN}"></script>`,
6572
6574
  "<script>",
@@ -8411,7 +8413,7 @@ ${compHeadContent}`;
8411
8413
  }
8412
8414
  if (!headContent.includes("gsap")) {
8413
8415
  headContent += `
8414
- <script src="https://cdn.jsdelivr.net/npm/gsap@3/dist/gsap.min.js"></script>`;
8416
+ <script src="${gsapCdnDist()}gsap.min.js"></script>`;
8415
8417
  }
8416
8418
  const htmlOpen = htmlAttrs ? `<html ${htmlAttrs}>` : "<html>";
8417
8419
  const bodyOpen = bodyAttrs ? `<body ${bodyAttrs}>` : "<body>";
@@ -8544,10 +8546,9 @@ function lazyPreviewImages(html) {
8544
8546
  return parts.join("");
8545
8547
  }
8546
8548
  var PROJECT_SIGNATURE_META = "hyperframes-project-signature";
8547
- var GSAP_CDN_VERSION = "3.15.0";
8548
- var GSAP_CDN_SCRIPT = `<script src="https://cdn.jsdelivr.net/npm/gsap@${GSAP_CDN_VERSION}/dist/gsap.min.js"></script>`;
8549
- var GSAP_CUSTOM_EASE_CDN_SCRIPT = `<script src="https://cdn.jsdelivr.net/npm/gsap@${GSAP_CDN_VERSION}/dist/CustomEase.min.js"></script>`;
8550
- var GSAP_MOTION_PATH_CDN_SCRIPT = `<script src="https://cdn.jsdelivr.net/npm/gsap@${GSAP_CDN_VERSION}/dist/MotionPathPlugin.min.js"></script>`;
8549
+ var GSAP_CDN_SCRIPT = `<script src="${gsapCdnDist()}gsap.min.js"></script>`;
8550
+ var GSAP_CUSTOM_EASE_CDN_SCRIPT = `<script src="${gsapCdnDist()}CustomEase.min.js"></script>`;
8551
+ var GSAP_MOTION_PATH_CDN_SCRIPT = `<script src="${motionPathPluginUrl()}"></script>`;
8551
8552
  function injectProjectSignature(html, signature) {
8552
8553
  const tag = `<meta name="${PROJECT_SIGNATURE_META}" content="${signature}">`;
8553
8554
  if (html.includes(`name="${PROJECT_SIGNATURE_META}"`)) {
@@ -8604,8 +8605,8 @@ function injectMotionPathPluginIfNeeded(html) {
8604
8605
  const gsapScript = /<script\b[^>]*\bsrc=["'][^"']*\/gsap(\.min)?\.js["'][^>]*>\s*<\/script>/i;
8605
8606
  const match = html.match(gsapScript);
8606
8607
  if (match) {
8607
- const version = match[0].match(/gsap@([\d.]+)/)?.[1] ?? GSAP_CDN_VERSION;
8608
- const pluginTag = `<script src="https://cdn.jsdelivr.net/npm/gsap@${version}/dist/MotionPathPlugin.min.js"></script>`;
8608
+ const version = match[0].match(/gsap@([\d.]+)/)?.[1];
8609
+ const pluginTag = `<script src="${motionPathPluginUrl(version)}"></script>`;
8609
8610
  const end = html.indexOf(match[0]) + match[0].length;
8610
8611
  return html.slice(0, end) + "\n" + pluginTag + html.slice(end);
8611
8612
  }
@@ -8637,7 +8638,7 @@ function injectStudioMotionScript(html, projectDir, activeCompositionPath) {
8637
8638
  var GSAP_FALLBACK_ATTR = "data-hf-gsap-fallback";
8638
8639
  var GSAP_CDN_FALLBACK_SCRIPT = `<script ${GSAP_FALLBACK_ATTR}>
8639
8640
  (function(){
8640
- var cdnBase="https://cdn.jsdelivr.net/npm/gsap@${GSAP_CDN_VERSION}/dist/";
8641
+ var cdnBase="${gsapCdnDist()}";
8641
8642
  var loaded={};
8642
8643
  function loadFallback(file){
8643
8644
  if(loaded[file])return loaded[file];
@@ -9829,7 +9830,22 @@ function freezeFrameMediaTime(input) {
9829
9830
  return input.mediaStart + sourceTimeAt(rate, Math.max(0, input.playhead - input.clipStart));
9830
9831
  }
9831
9832
  function freezeExtractArgs(src, mediaTime, output) {
9832
- return ["-y", "-ss", String(round3(mediaTime)), "-i", src, "-frames:v", "1", output];
9833
+ return [
9834
+ "-y",
9835
+ "-ss",
9836
+ String(round3(mediaTime)),
9837
+ "-i",
9838
+ src,
9839
+ "-frames:v",
9840
+ "1",
9841
+ "-c:v",
9842
+ "png",
9843
+ "-f",
9844
+ "image2",
9845
+ "-update",
9846
+ "1",
9847
+ output
9848
+ ];
9833
9849
  }
9834
9850
  var randomStillToken = () => randomBytes(4).toString("hex");
9835
9851
  function freezeStillFileName(clipId, playhead, token = randomStillToken()) {
@@ -10000,15 +10016,38 @@ function readExpected(absPath, expectedVersion) {
10000
10016
  }
10001
10017
  return fileContentVersion(content) === expectedVersion ? { content } : { error: "file conflict", status: 409 };
10002
10018
  }
10003
- function claimStillNameBeforeExtracting(path) {
10019
+ function readFrame(path) {
10004
10020
  try {
10005
- closeSync32(openSync32(path, "wx"));
10021
+ return readFileSync11(path);
10022
+ } catch (error) {
10023
+ if (error.code === "ENOENT") return null;
10024
+ throw error;
10025
+ }
10026
+ }
10027
+ function publishStill(path, frame) {
10028
+ try {
10029
+ createFileAtomically(path, frame);
10006
10030
  return true;
10007
10031
  } catch (error) {
10008
10032
  if (error.code === "EEXIST") return false;
10009
10033
  throw error;
10010
10034
  }
10011
10035
  }
10036
+ async function extractThenPublishWhole(extract, mediaPath, mediaTime, imagePath) {
10037
+ const unseenByHistory = atomicTempPath(imagePath);
10038
+ try {
10039
+ const extracted = await extract(freezeExtractArgs(mediaPath, mediaTime, unseenByHistory));
10040
+ const frame = extracted.ok ? readFrame(unseenByHistory) : null;
10041
+ if (!frame?.length) {
10042
+ const reason = extracted.ok ? "no frame at this time" : extracted.error ?? "ffmpeg failed";
10043
+ return { error: `Could not extract the frame: ${reason}`, status: 500 };
10044
+ }
10045
+ if (publishStill(imagePath, frame)) return null;
10046
+ return { error: `freeze still already exists: ${basename22(imagePath)}`, status: 409 };
10047
+ } finally {
10048
+ rmSync5(unseenByHistory, { force: true });
10049
+ }
10050
+ }
10012
10051
  async function extractStill(projectDir, absPath, source, playhead, tools) {
10013
10052
  const fileDir = dirname52(absPath);
10014
10053
  const mediaPath = pinWithinProject(projectDir, relative4(projectDir, join13(fileDir, source.src)));
@@ -10020,15 +10059,13 @@ async function extractStill(projectDir, absPath, source, playhead, tools) {
10020
10059
  if (!imagePath || dirname52(imagePath) !== freezeDir) {
10021
10060
  return { error: `forbidden freeze path: ${fileName}`, status: 403 };
10022
10061
  }
10023
- if (!claimStillNameBeforeExtracting(imagePath))
10024
- return { error: `freeze still already exists: ${fileName}`, status: 409 };
10025
- const extracted = await tools.extract(freezeExtractArgs(mediaPath, source.mediaTime, imagePath));
10026
- const partialOrNoFrame = !extracted.ok || statSync8(imagePath).size === 0;
10027
- if (partialOrNoFrame) {
10028
- rmSync5(imagePath, { force: true });
10029
- const reason = extracted.ok ? "no frame at this time" : extracted.error ?? "ffmpeg failed";
10030
- return { error: `Could not extract the frame: ${reason}`, status: 500 };
10031
- }
10062
+ const failed = await extractThenPublishWhole(
10063
+ tools.extract,
10064
+ mediaPath,
10065
+ source.mediaTime,
10066
+ imagePath
10067
+ );
10068
+ if (failed) return failed;
10032
10069
  const depth = relative4(projectDir, fileDir).split(sep22).filter(Boolean).length;
10033
10070
  const stillPath = `${FREEZE_DIR.join("/")}/${fileName}`;
10034
10071
  return { imageSrc: `${"../".repeat(depth)}${stillPath}`, stillPath, imagePath };
@@ -10399,7 +10436,7 @@ function registerFontRoutes(api) {
10399
10436
  if (!located) return c.json({ error: "font not found" }, 404);
10400
10437
  let fd;
10401
10438
  try {
10402
- fd = openSync4(located.path, constants3.O_RDONLY | constants3.O_NOFOLLOW);
10439
+ fd = openSync32(located.path, constants3.O_RDONLY | constants3.O_NOFOLLOW);
10403
10440
  } catch {
10404
10441
  return c.json({ error: "font file not accessible" }, 404);
10405
10442
  }
@@ -10421,7 +10458,7 @@ function registerFontRoutes(api) {
10421
10458
  } catch {
10422
10459
  return c.json({ error: "failed to read font file" }, 500);
10423
10460
  } finally {
10424
- closeSync4(fd);
10461
+ closeSync32(fd);
10425
10462
  }
10426
10463
  });
10427
10464
  }
@@ -10579,7 +10616,7 @@ function containsNullByte(path) {
10579
10616
  return path.includes("\0");
10580
10617
  }
10581
10618
  function slugFileBase(path) {
10582
- const name = basename22(path, extname2(path)).replace(/[^a-zA-Z0-9._-]+/g, "-").replace(/^-+|-+$/g, "");
10619
+ const name = basename3(path, extname2(path)).replace(/[^a-zA-Z0-9._-]+/g, "-").replace(/^-+|-+$/g, "");
10583
10620
  return name || "media";
10584
10621
  }
10585
10622
  function uniqueAssetPath(projectDir, assetPath, taken) {
@@ -6,34 +6,34 @@ var __filename = __hf_fileURLToPath(import.meta.url);
6
6
  var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  redactHome
9
- } from "./chunk-6SHCWTLO.js";
9
+ } from "./chunk-EEXM24SY.js";
10
10
  import "./chunk-Z27A7NUB.js";
11
11
  import "./chunk-5ETJX6WM.js";
12
12
  import {
13
13
  loadProducer
14
- } from "./chunk-KGFTVLNQ.js";
14
+ } from "./chunk-2MMAA5I3.js";
15
15
  import {
16
16
  DEFAULT_HISTORY_ROOT,
17
17
  listProjectHistories,
18
18
  pruneGoneProjectHistories
19
- } from "./chunk-TC26HGZB.js";
20
- import "./chunk-6QJZ5ELI.js";
21
- import "./chunk-WEATBQTR.js";
22
- import "./chunk-R6BVKVII.js";
19
+ } from "./chunk-ZTU5PYQJ.js";
20
+ import "./chunk-HNOJAFT2.js";
21
+ import "./chunk-EOVYQ3IG.js";
22
+ import "./chunk-BKQXLO55.js";
23
23
  import {
24
24
  CACHE_DIR_NAME,
25
25
  cleanupProxyCache
26
- } from "./chunk-XTBM64YY.js";
26
+ } from "./chunk-OWMGDQBZ.js";
27
27
  import {
28
28
  formatBytes
29
29
  } from "./chunk-IHFUKJOR.js";
30
- import "./chunk-IUNDV47P.js";
30
+ import "./chunk-OV62R47Q.js";
31
31
  import "./chunk-TVCRUG2S.js";
32
32
  import "./chunk-TRLP3CSL.js";
33
33
  import {
34
34
  c
35
35
  } from "./chunk-ZTZA4UWZ.js";
36
- import "./chunk-BPZSP7ZJ.js";
36
+ import "./chunk-U7AMFQ6G.js";
37
37
  import "./chunk-AMKC3AXA.js";
38
38
  import {
39
39
  defineCommand
@@ -48,12 +48,12 @@ import {
48
48
  directorySizeBytes,
49
49
  gcExtractionCache,
50
50
  resolveExtractCacheDir
51
- } from "./chunk-Z3QXVEZM.js";
52
- import "./chunk-2NC676XZ.js";
51
+ } from "./chunk-IUBZ3DSO.js";
52
+ import "./chunk-2WKWEB4T.js";
53
53
  import "./chunk-FSLYPQ5Z.js";
54
54
  import "./chunk-DPVXBVLL.js";
55
- import "./chunk-7CXLMMUA.js";
56
- import "./chunk-L6TT37IY.js";
55
+ import "./chunk-5IABQ7OX.js";
56
+ import "./chunk-SHLFJFPM.js";
57
57
  import "./chunk-VC76R6W2.js";
58
58
  import "./chunk-OFQWTKPW.js";
59
59
  import "./chunk-4PFZPP2N.js";
@@ -67,12 +67,12 @@ import "./chunk-GK4AIFIH.js";
67
67
  import "./chunk-2PSPARWP.js";
68
68
  import {
69
69
  withMeta
70
- } from "./chunk-2LT5WBQR.js";
70
+ } from "./chunk-FRIRP3DN.js";
71
71
  import "./chunk-K4WIOZFP.js";
72
72
  import "./chunk-XUXGIA7H.js";
73
73
  import "./chunk-WERLJGIC.js";
74
74
  import "./chunk-ISN5GRYI.js";
75
- import "./chunk-P3REWAFF.js";
75
+ import "./chunk-3NXDJSD5.js";
76
76
  import "./chunk-KNU5COPB.js";
77
77
  import "./chunk-XT5P4QMO.js";
78
78
  import "./chunk-6BEFEWFB.js";