hyperframes 0.8.194 → 0.8.196

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 (181) hide show
  1. package/dist/{add-47UAIWY4.js → add-JC7CRYAY.js} +12 -12
  2. package/dist/{animatedGifPrep-TFSQZWK6.js → animatedGifPrep-5GSLZQUS.js} +7 -7
  3. package/dist/api.js +15 -15
  4. package/dist/{asset-AU7PZHXA.js → asset-MM3F46VS.js} +2 -2
  5. package/dist/{assetCataloger-HC5N6WPT.js → assetCataloger-G2ZIBRML.js} +7 -7
  6. package/dist/{audio-7AWMZWBM.js → audio-TTZ4OR5A.js} +13 -13
  7. package/dist/{auth-GXH3QNDJ.js → auth-TFOUDLSS.js} +1 -1
  8. package/dist/{autoUpdate-GVGP5O2I.js → autoUpdate-EIHQFY7Y.js} +2 -2
  9. package/dist/{backgroundChecks-IUJM2Q35.js → backgroundChecks-SXRES7MW.js} +3 -3
  10. package/dist/backgroundChecksWorker.js +3 -3
  11. package/dist/{batchRender-3XS2Y2Y4.js → batchRender-GH2HQQKN.js} +4 -4
  12. package/dist/{beats-U64B4S7Z.js → beats-VYH72TGV.js} +9 -9
  13. package/dist/{benchmark-2YUPAI76.js → benchmark-72KJLRAY.js} +9 -9
  14. package/dist/{browser-DBFH7KXM.js → browser-3O7SAXSC.js} +3 -3
  15. package/dist/{bundleWithLocalizedFonts-XWL7KSQJ.js → bundleWithLocalizedFonts-CJL3HHSF.js} +2 -2
  16. package/dist/{capture-YWH7BPBI.js → capture-H33B5WVR.js} +10 -10
  17. package/dist/{capture-E4VW75NM.js → capture-NQAJRPLR.js} +2 -2
  18. package/dist/{captureCompositionFrame-IG6S2OHG.js → captureCompositionFrame-HPIRZNGK.js} +12 -12
  19. package/dist/{catalog-LZIZLZ34.js → catalog-KMNTCN55.js} +12 -12
  20. package/dist/{catch-up-ZVNPIACY.js → catch-up-Q367WUGC.js} +4 -4
  21. package/dist/{check-EKEOD4UM.js → check-NQIN7ZQW.js} +36 -36
  22. package/dist/{checkBrowser-MYH6HPHH.js → checkBrowser-IECG4M6A.js} +31 -31
  23. package/dist/{chunk-K2VXPQKC.js → chunk-2TU4OKIR.js} +173 -20
  24. package/dist/{chunk-F3B7CE3Q.js → chunk-3OKZJYA7.js} +27 -18
  25. package/dist/{chunk-VHIBBDEI.js → chunk-3VI6DSO6.js} +1 -1
  26. package/dist/{chunk-37IHQVNQ.js → chunk-4VOUQCY6.js} +1 -1
  27. package/dist/{chunk-KDEV5RIE.js → chunk-5MPWOFWO.js} +1 -1
  28. package/dist/{chunk-MO6RTNYD.js → chunk-62DVCRMX.js} +1 -1
  29. package/dist/{chunk-54PZ2EQZ.js → chunk-6RNGEUL3.js} +1 -1
  30. package/dist/{chunk-Y3BT27Y7.js → chunk-DHSNTPEW.js} +1 -1
  31. package/dist/{chunk-CEUBYYVJ.js → chunk-DMGXJRXV.js} +2 -2
  32. package/dist/{chunk-CEZH4AQT.js → chunk-DMMYNEAF.js} +1 -1
  33. package/dist/{chunk-2AJU7PZ6.js → chunk-DTGW7DU3.js} +1 -1
  34. package/dist/{chunk-ST35C4K6.js → chunk-DY53XJ3P.js} +1 -1
  35. package/dist/{chunk-XYGULBFV.js → chunk-E7NEF2SC.js} +1 -1
  36. package/dist/{chunk-4FVNEXSV.js → chunk-E7S6OJFP.js} +3 -3
  37. package/dist/{chunk-3S3CXF4W.js → chunk-EWXXMXNE.js} +2 -2
  38. package/dist/{chunk-HPGQPRHY.js → chunk-FHRZK527.js} +1 -1
  39. package/dist/{chunk-ROEW726S.js → chunk-FMTJ4I6I.js} +1 -1
  40. package/dist/{chunk-MGSNFWGR.js → chunk-GHNIESBY.js} +2 -2
  41. package/dist/{chunk-QJQTWTM7.js → chunk-I452OMM7.js} +1 -1
  42. package/dist/{chunk-FUA22HO4.js → chunk-I7BLPFXV.js} +1 -1
  43. package/dist/{chunk-LMIDZIW2.js → chunk-IHGQEF3Z.js} +47 -16
  44. package/dist/{chunk-Q4HKC3O7.js → chunk-IO5NBG26.js} +3 -3
  45. package/dist/{chunk-GAFEU6AB.js → chunk-IYSIQ4GX.js} +10 -8
  46. package/dist/{chunk-4VSV56F2.js → chunk-JCBZI47W.js} +1 -1
  47. package/dist/{chunk-452UK7E7.js → chunk-JI7J3FTM.js} +2 -2
  48. package/dist/{chunk-PXK3ICU6.js → chunk-JL2PX5P2.js} +1 -1
  49. package/dist/{chunk-RZWJJCI7.js → chunk-KCFKFKCU.js} +2 -2
  50. package/dist/{chunk-RUPGFW5B.js → chunk-KLOMOKJC.js} +6 -6
  51. package/dist/{chunk-3OSBSUN3.js → chunk-L7UPBREN.js} +18 -18
  52. package/dist/{chunk-M2VXARYK.js → chunk-LP6SFIWQ.js} +1 -1
  53. package/dist/{chunk-MCFPMUMT.js → chunk-MK6FWMMF.js} +2 -2
  54. package/dist/chunk-MXT76SSV.js +3901 -0
  55. package/dist/{chunk-VPON6DF2.js → chunk-MYVC3XTH.js} +5 -5
  56. package/dist/{chunk-BYADARIC.js → chunk-NCSX7WNM.js} +2 -2
  57. package/dist/{chunk-N3M3IU6S.js → chunk-NTMKBXWW.js} +1 -1
  58. package/dist/{chunk-O2ILONGK.js → chunk-PBHFZXYP.js} +9 -9
  59. package/dist/{chunk-OJNNKHAZ.js → chunk-PGDWNIOK.js} +7 -2
  60. package/dist/{chunk-LZ4WPR3B.js → chunk-PTRDO7J4.js} +2 -2
  61. package/dist/{chunk-4PIPQPCW.js → chunk-QK2MZ2SF.js} +11 -8
  62. package/dist/{chunk-NVVIFW3C.js → chunk-QSJUDSIC.js} +9 -9
  63. package/dist/{chunk-2OYYNKJ4.js → chunk-QXPZGDTI.js} +1 -1
  64. package/dist/{chunk-TDYKVJTU.js → chunk-RASESH32.js} +34 -21
  65. package/dist/{chunk-DT3JESJ6.js → chunk-REOE2ZEO.js} +1 -1
  66. package/dist/{chunk-HG5ECUOR.js → chunk-REPDGLLY.js} +5 -5
  67. package/dist/{chunk-ST4SHO3S.js → chunk-RP7QRLSK.js} +1 -1
  68. package/dist/{chunk-HCLBM2LQ.js → chunk-TGHMJIHK.js} +2 -2
  69. package/dist/{chunk-N33FO44R.js → chunk-TR7CDEU7.js} +1 -1
  70. package/dist/{chunk-PEHST4UY.js → chunk-TWHNETZP.js} +3 -3
  71. package/dist/{chunk-DVQDBWQG.js → chunk-UPPAKDU3.js} +3 -3
  72. package/dist/{chunk-EB3XXHNO.js → chunk-VAS2EQRM.js} +2 -2
  73. package/dist/{chunk-LOGKDQ3G.js → chunk-VFDLKZJZ.js} +3 -3
  74. package/dist/{chunk-JVTWX5G3.js → chunk-VKFHSZYS.js} +27 -2
  75. package/dist/{chunk-CZNSLFYD.js → chunk-VLVQQJOX.js} +14 -7
  76. package/dist/{chunk-POFJH2IS.js → chunk-W226NPSC.js} +1 -1
  77. package/dist/{chunk-52YJKWV3.js → chunk-WFHA6WC3.js} +20 -4
  78. package/dist/{chunk-BK5YCT54.js → chunk-WJJ6TPC7.js} +3 -3
  79. package/dist/{chunk-JXTPNUSO.js → chunk-XJDMYIUI.js} +102 -57
  80. package/dist/{chunk-SNECH6QA.js → chunk-XLVUQGSA.js} +1 -1
  81. package/dist/{chunk-B7RJV74O.js → chunk-XOTUPVIF.js} +4 -0
  82. package/dist/{chunk-4GMDL4N5.js → chunk-XZE3IBMV.js} +1 -1
  83. package/dist/{chunk-B3GG3HJB.js → chunk-YU22E6SG.js} +1 -1
  84. package/dist/{chunk-EY7GKVPS.js → chunk-Z43NJYG2.js} +2 -2
  85. package/dist/{chunk-JU4T4VAA.js → chunk-ZKIHZDNI.js} +4 -4
  86. package/dist/{chunk-HQD7ODQB.js → chunk-ZSREWHNW.js} +5 -5
  87. package/dist/{clean-NS2SDRK7.js → clean-HINDVP2J.js} +17 -17
  88. package/dist/cli.js +53 -53
  89. package/dist/{cloud-K4XQPWTY.js → cloud-TPFDYW6D.js} +4 -4
  90. package/dist/{cloudrun-BKOKXTXV.js → cloudrun-XI4YKOBA.js} +6 -6
  91. package/dist/commands/layout-audit.browser.js +1 -1
  92. package/dist/{compare-ZAV773OL.js → compare-I7GD7WNG.js} +28 -28
  93. package/dist/{compiler-CWHFCE3H.js → compiler-K7SH7OZQ.js} +4 -4
  94. package/dist/{component-OXA2ZWX3.js → component-FRH7UFTP.js} +3 -3
  95. package/dist/{compositions-NKRVWCPE.js → compositions-UQCJ7BG7.js} +11 -11
  96. package/dist/{delete-HZ2LBCLC.js → delete-OTDM7JOD.js} +2 -2
  97. package/dist/{deploy-FNDTZFF7.js → deploy-L6JEPE2A.js} +1 -1
  98. package/dist/{deterministicFonts-RADD3BSX.js → deterministicFonts-RMA7GDJC.js} +2 -2
  99. package/dist/{dist-2YTN2UGY.js → dist-FQBHBBKC.js} +3 -3
  100. package/dist/{dist-7OCZHNLY.js → dist-VRGIE57H.js} +1 -1
  101. package/dist/{doctor-6QWJGO5P.js → doctor-RY44RTJD.js} +11 -11
  102. package/dist/{events-HTHOBIUN.js → events-ALOHDCL3.js} +3 -3
  103. package/dist/{events-MBKHVGXX.js → events-JSL7JIXP.js} +2 -2
  104. package/dist/{feedback-X5QWTLEX.js → feedback-FSICK4WO.js} +8 -8
  105. package/dist/{ffmpeg-7GESJCCT.js → ffmpeg-FG7VOQTN.js} +7 -7
  106. package/dist/{figma-SXOHFVJI.js → figma-CN2672XS.js} +3 -3
  107. package/dist/fontLocalizeCli.js +10 -10
  108. package/dist/{get-T2HI5FCK.js → get-C3OPJMWR.js} +2 -2
  109. package/dist/{gpuPolicy-5FABKW5G.js → gpuPolicy-AJX7YIAS.js} +7 -7
  110. package/dist/{grade-compare-JATGHA6Q.js → grade-compare-WQHSPAHD.js} +29 -29
  111. package/dist/{help-G6CIKCGS.js → help-E3MX427C.js} +1 -1
  112. package/dist/{history-CSJUHYTD.js → history-FYLXZMI4.js} +7 -7
  113. package/dist/hyperframe.manifest.json +1 -1
  114. package/dist/hyperframe.runtime.iife.js +61 -61
  115. package/dist/hyperframes-player.global.js +3 -3
  116. package/dist/{info-MTTUMW2C.js → info-OMF7O3KA.js} +8 -8
  117. package/dist/{init-LJYNI5EK.js → init-K3GNFQLD.js} +27 -27
  118. package/dist/{inspect-HGDM2VJE.js → inspect-GYOEV66Q.js} +29 -29
  119. package/dist/{installer-3XHURUDG.js → installer-6X4VLDTC.js} +5 -5
  120. package/dist/{keyframes-MSU7N53X.js → keyframes-IPXUT4QI.js} +6 -6
  121. package/dist/{lambda-2I2TIUSD.js → lambda-ZGMXIDJV.js} +8 -8
  122. package/dist/{layout-KWOXZMN7.js → layout-QVTB5SUJ.js} +29 -29
  123. package/dist/{lint-N53TLHFG.js → lint-V2I27FUE.js} +7 -7
  124. package/dist/{lintProject-EOUZA4EG.js → lintProject-ESAJKFOX.js} +1 -1
  125. package/dist/{list-SHYPQC7U.js → list-J5MFX5NA.js} +2 -2
  126. package/dist/{login-TEB6PA3Y.js → login-ZRCLBPMK.js} +4 -4
  127. package/dist/{manager-PLRSZH5G.js → manager-GLJVKITP.js} +8 -8
  128. package/dist/{media-treatment-XTUKMIGE.js → media-treatment-HVGN5S4H.js} +13 -13
  129. package/dist/{models-4WKAPP2L.js → models-4WEGIBNZ.js} +11 -11
  130. package/dist/{motionShot-PTKB4ILH.js → motionShot-B3I4ZE73.js} +15 -15
  131. package/dist/{normalize-audio-3NG326I2.js → normalize-audio-QIERL4II.js} +6 -6
  132. package/dist/{open-6S2LMF7R.js → open-ALXHG55R.js} +12 -12
  133. package/dist/{parakeetRunner-OEI35DVO.js → parakeetRunner-ESAELH2V.js} +12 -12
  134. package/dist/{pipeline-543FUKH4.js → pipeline-QK6KHDQ3.js} +8 -8
  135. package/dist/{play-ETEGHP3B.js → play-XBIN4KMI.js} +20 -20
  136. package/dist/{preflight-Y5IYUF2T.js → preflight-D6VLCMOJ.js} +8 -8
  137. package/dist/{present-ZRSLMJ6J.js → present-DQ45WV7Q.js} +16 -16
  138. package/dist/{preview-CEJ3SVTY.js → preview-CIAZ646P.js} +18 -18
  139. package/dist/{producer-JFVFIV26.js → producer-T3FJ6HZE.js} +1 -1
  140. package/dist/{projectConfig-7EK3BS72.js → projectConfig-WFGZJAYZ.js} +7 -7
  141. package/dist/{publication-Y54GYFMV.js → publication-GWNKRVXZ.js} +3 -3
  142. package/dist/{publish-S3UJTPCV.js → publish-LIAAGUNA.js} +10 -10
  143. package/dist/{remove-background-YTATNQSI.js → remove-background-HRFJZJHF.js} +9 -9
  144. package/dist/{render-WNIG4B3J.js → render-3C5LHQ3P.js} +6 -6
  145. package/dist/{render-IIPXMSBO.js → render-RWW4LGKJ.js} +29 -29
  146. package/dist/{render-RN3W6YL4.js → render-SMFKECFA.js} +15 -15
  147. package/dist/{render-batch-OYS3UQDB.js → render-batch-7UH2F7N4.js} +6 -6
  148. package/dist/renderSetupWorker.js +1 -1
  149. package/dist/{resolver-OVCXVEDX.js → resolver-4ZFA36XZ.js} +5 -5
  150. package/dist/{sherpa-NCSFD7S3.js → sherpa-NRSAFFIL.js} +11 -11
  151. package/dist/skills/media-use/scripts/lib/recipe-store.mjs +1 -0
  152. package/dist/skills/media-use/scripts/lib/recipe-store.test.mjs +24 -0
  153. package/dist/skills/media-use/scripts/lib/svg-sanitize.mjs +2 -2
  154. package/dist/{skills-IUV3K3X7.js → skills-6ZUYEX75.js} +5 -5
  155. package/dist/{skillsUpdateCheck-NACBXMWW.js → skillsUpdateCheck-G2NSDI6O.js} +3 -3
  156. package/dist/{snapshot-7S5USJ2I.js → snapshot-ZJBRKRHZ.js} +33 -33
  157. package/dist/{src-CAR6PHI4.js → src-CZHSSXXF.js} +9 -9
  158. package/dist/{src-HITT6NWG.js → src-GIB5BUZZ.js} +6 -6
  159. package/dist/{staticProjectServer-QR6VZBPT.js → staticProjectServer-Q3BHJE7H.js} +17 -17
  160. package/dist/studio/assets/{hyperframes-player-DLOUZUct.js → hyperframes-player-DG3nZ1bE.js} +1 -1
  161. package/dist/studio/assets/{index-CAQ7OcNJ.js → index-BS2__aBb.js} +134 -134
  162. package/dist/studio/assets/{index-D9kA6JUX.js → index-C1r59TIq.js} +1 -1
  163. package/dist/studio/index.html +1 -1
  164. package/dist/{studio-api-HVNOJILH.js → studio-api-QB4YAV5Q.js} +10 -10
  165. package/dist/{studioServer-3BG5FRJL.js → studioServer-O6T4J75T.js} +89 -49
  166. package/dist/{telemetry-PET2GFQG.js → telemetry-IKTCBFN5.js} +3 -3
  167. package/dist/{timeline-PVIC2Z5K.js → timeline-J2D5R53C.js} +18 -18
  168. package/dist/{tokens-4N46PWSF.js → tokens-2D2TFXGD.js} +2 -2
  169. package/dist/{transcribe-2DVBS7MH.js → transcribe-HGD5MUPC.js} +16 -16
  170. package/dist/{transcribe-IDC7JTM4.js → transcribe-JX23YVIR.js} +10 -10
  171. package/dist/{updateCheck-QRDVXU7I.js → updateCheck-S56I5SDE.js} +2 -2
  172. package/dist/{upgrade-5CNE3TBH.js → upgrade-A4LUB5SH.js} +2 -2
  173. package/dist/{urlDownloader-P2I25DFC.js → urlDownloader-ENNZJ7EM.js} +6 -6
  174. package/dist/{validate-CLR5PEOV.js → validate-IGVFY5CJ.js} +23 -23
  175. package/dist/vendor/npm/gsap@3.15.0/dist/CustomEase.min.js +11 -0
  176. package/dist/vendor/npm/gsap@3.15.0/dist/MotionPathPlugin.min.js +11 -0
  177. package/dist/vendor/npm/gsap@3.15.0/dist/gsap.min.js +11 -0
  178. package/dist/{video-3CKZZBOB.js → video-HFXVZURT.js} +7 -7
  179. package/dist/warmCheck.js +36 -36
  180. package/package.json +2 -2
  181. package/dist/chunk-2D5WP2NI.js +0 -3901
@@ -9,7 +9,7 @@ import {
9
9
  parseStrictFiniteTimingNumber,
10
10
  resolveNaturalMediaTimelineDuration,
11
11
  resolveTimedImageDurationSeconds
12
- } from "./chunk-2D5WP2NI.js";
12
+ } from "./chunk-MXT76SSV.js";
13
13
  import {
14
14
  CANVAS_DIMENSIONS,
15
15
  isCompositionElement,
@@ -17,7 +17,7 @@ import {
17
17
  isTextElement,
18
18
  keyframesToGsapAnimations,
19
19
  serializeGsapAnimations
20
- } from "./chunk-B7RJV74O.js";
20
+ } from "./chunk-XOTUPVIF.js";
21
21
  import {
22
22
  COMPOSITION_ATTRIBUTES,
23
23
  MEDIA_START_BASIS_ATTR,
@@ -154,6 +154,9 @@ function getStageStyles(resolution = "portrait") {
154
154
  var GSAP_CDN_VERSION = "3.15.0";
155
155
  var GSAP_CDN_BASE_URL = "https://cdn.jsdelivr.net/npm";
156
156
  var GSAP_BASE_URL_META = "hyperframes-gsap-base-url";
157
+ function isLoopbackHost(hostname) {
158
+ return hostname === "localhost" || hostname === "[::1]" || /^127\.\d+\.\d+\.\d+$/.test(hostname);
159
+ }
157
160
  function normalizeGsapBaseUrl(baseUrl) {
158
161
  const value = baseUrl?.trim();
159
162
  if (!value)
@@ -165,10 +168,30 @@ function normalizeGsapBaseUrl(baseUrl) {
165
168
  if (url.username || url.password) {
166
169
  throw new Error("GSAP base URL must not contain credentials");
167
170
  }
171
+ if (url.protocol === "http:" && !isLoopbackHost(url.hostname)) {
172
+ throw new Error("GSAP base URL must use HTTPS unless it points at this machine");
173
+ }
168
174
  return url.href.replace(/\/+$/, "");
169
175
  }
176
+ function normalizeGsapLocalRoot(root) {
177
+ const value = root.trim();
178
+ if (!/^\/(?![/\\])/.test(value) || /[?#\\]/.test(value)) {
179
+ throw new Error("GSAP local root must be a same-origin path such as /vendor/npm");
180
+ }
181
+ const origin = "http://local.invalid";
182
+ const url = new URL(value, origin);
183
+ const path = url.pathname.replace(/\/+$/, "");
184
+ if (url.origin !== origin || !path) {
185
+ throw new Error("GSAP local root must be a same-origin path such as /vendor/npm");
186
+ }
187
+ return path;
188
+ }
170
189
  function gsapCdnDist(gsapVersion, baseUrl) {
171
190
  const version = gsapVersion && /^\d+(\.\d+)*$/.test(gsapVersion) ? gsapVersion : GSAP_CDN_VERSION;
191
+ if (baseUrl?.trim().startsWith("/")) {
192
+ const root = normalizeGsapLocalRoot(baseUrl);
193
+ return `${version === GSAP_CDN_VERSION ? root : GSAP_CDN_BASE_URL}/gsap@${version}/dist/`;
194
+ }
172
195
  return `${normalizeGsapBaseUrl(baseUrl)}/gsap@${version}/dist/`;
173
196
  }
174
197
  function motionPathPluginUrl(gsapVersion, baseUrl) {
@@ -5553,8 +5576,10 @@ export {
5553
5576
  isDistributedFps,
5554
5577
  generateBaseHtml,
5555
5578
  getStageStyles,
5579
+ GSAP_CDN_VERSION,
5556
5580
  GSAP_BASE_URL_META,
5557
5581
  normalizeGsapBaseUrl,
5582
+ normalizeGsapLocalRoot,
5558
5583
  gsapCdnDist,
5559
5584
  motionPathPluginUrl,
5560
5585
  GSAP_CDN,
@@ -14,6 +14,10 @@ import {
14
14
  isTokenExpired,
15
15
  tryResolveCredential
16
16
  } from "./chunk-ELP5QZWL.js";
17
+ import {
18
+ decodeUrlPathVariants,
19
+ encodeUrlPath
20
+ } from "./chunk-XOTUPVIF.js";
17
21
  import {
18
22
  CSS_URL_RE,
19
23
  isNonRelativeUrl,
@@ -396,14 +400,17 @@ function addExternalAsset(ctx, absPath) {
396
400
  }
397
401
  function tryResolveExternal(ctx, rawPath, referrerAbsDir) {
398
402
  if (isNonRelativeUrl(rawPath)) return null;
399
- const absPath = resolve2(referrerAbsDir, rawPath);
400
- if (isPathInside(absPath, ctx.absProjectDir)) return null;
401
- try {
402
- if (!existsSync2(absPath) || !statSync(absPath).isFile()) return null;
403
- } catch {
404
- return null;
403
+ for (const path of decodeUrlPathVariants(rawPath)) {
404
+ const absPath = resolve2(referrerAbsDir, path);
405
+ if (isPathInside(absPath, ctx.absProjectDir)) return null;
406
+ try {
407
+ if (!existsSync2(absPath) || !statSync(absPath).isFile()) continue;
408
+ } catch {
409
+ continue;
410
+ }
411
+ return encodeUrlPath(addExternalAsset(ctx, absPath));
405
412
  }
406
- return addExternalAsset(ctx, absPath);
413
+ return null;
407
414
  }
408
415
  function referenceFrom(entryPath, target) {
409
416
  return isNonRelativeUrl(target) ? target : posix.relative(posix.dirname(entryPath), target);
@@ -8,7 +8,7 @@ import {
8
8
  flush,
9
9
  shouldTrack,
10
10
  trackEvent
11
- } from "./chunk-54PZ2EQZ.js";
11
+ } from "./chunk-6RNGEUL3.js";
12
12
  import {
13
13
  CliRuntimeError
14
14
  } from "./chunk-JVBRJMOP.js";
@@ -26,7 +26,7 @@ import {
26
26
  renderFrameIdForRenderId,
27
27
  resolveAuthoredTimingWindow,
28
28
  toFps
29
- } from "./chunk-JVTWX5G3.js";
29
+ } from "./chunk-VKFHSZYS.js";
30
30
  import {
31
31
  AUDIO_GROUP_RENDER_ID_ATTR,
32
32
  COLOR_GRADING_SOURCE_HIDDEN_ATTR,
@@ -63,7 +63,7 @@ import {
63
63
  sourceTimeAt,
64
64
  timeAtSourceTime,
65
65
  volumeSegmentSampleCount
66
- } from "./chunk-2D5WP2NI.js";
66
+ } from "./chunk-MXT76SSV.js";
67
67
  import {
68
68
  clampAudioGain,
69
69
  clipGain,
@@ -86,7 +86,7 @@ import {
86
86
  } from "./chunk-4UMPIPCQ.js";
87
87
  import {
88
88
  resolveReferencedStart
89
- } from "./chunk-K2VXPQKC.js";
89
+ } from "./chunk-2TU4OKIR.js";
90
90
  import {
91
91
  FFMPEG_PATH_ENV,
92
92
  FFPROBE_PATH_ENV,
@@ -1287,6 +1287,22 @@ function envWithoutWaylandDisplay() {
1287
1287
  const { WAYLAND_DISPLAY: _wslg, ...env } = process.env;
1288
1288
  return env;
1289
1289
  }
1290
+ var VULKAN_VARS_THAT_OVERRIDE_SWIFTSHADER = [
1291
+ "VK_DRIVER_FILES",
1292
+ "VK_LOADER_DRIVERS_SELECT",
1293
+ "VK_LOADER_DRIVERS_DISABLE"
1294
+ ];
1295
+ function launchEnv(fingerprint) {
1296
+ if (fingerprint.withoutWaylandDisplay) return envWithoutWaylandDisplay();
1297
+ const swiftShader = fingerprint.args.some(
1298
+ (arg) => arg === "--use-angle=swiftshader" || arg === "--use-vulkan=swiftshader"
1299
+ );
1300
+ const overriding = VULKAN_VARS_THAT_OVERRIDE_SWIFTSHADER.filter((name) => name in process.env);
1301
+ if (!swiftShader || overriding.length === 0) return void 0;
1302
+ const env = { ...process.env };
1303
+ for (const name of overriding) delete env[name];
1304
+ return env;
1305
+ }
1290
1306
  async function captureWithoutWaylandDisplay(resolvedMode) {
1291
1307
  if (resolvedMode !== "hardware") return false;
1292
1308
  return (await _autoBrowserGpuModeCache)?.withoutWaylandDisplay === true;
@@ -1362,7 +1378,7 @@ async function acquireBrowser(chromeArgs, config) {
1362
1378
  }
1363
1379
  async function launchBrowser(fingerprint) {
1364
1380
  const ppt = await getPuppeteer();
1365
- const env = fingerprint.withoutWaylandDisplay ? envWithoutWaylandDisplay() : void 0;
1381
+ const env = launchEnv(fingerprint);
1366
1382
  let captureMode = fingerprint.requestedCaptureMode;
1367
1383
  let browser;
1368
1384
  try {
@@ -21,13 +21,13 @@ import {
21
21
  emitWords,
22
22
  getPreparedWavDurationSeconds,
23
23
  prepareWav
24
- } from "./chunk-Q4HKC3O7.js";
24
+ } from "./chunk-IO5NBG26.js";
25
25
  import {
26
26
  stoppedByCancelSignal
27
- } from "./chunk-4VSV56F2.js";
27
+ } from "./chunk-JCBZI47W.js";
28
28
  import {
29
29
  verifies
30
- } from "./chunk-Y3BT27Y7.js";
30
+ } from "./chunk-DHSNTPEW.js";
31
31
  import {
32
32
  PARAKEET_MODEL_LABEL,
33
33
  SHERPA_ERROR_PREFIX,
@@ -19,7 +19,7 @@ import {
19
19
  splitElementInHtml,
20
20
  unwrapElementsFromHtml,
21
21
  wrapElementsInHtml
22
- } from "./chunk-JU4T4VAA.js";
22
+ } from "./chunk-ZKIHZDNI.js";
23
23
  import {
24
24
  MEDIA_LINK_ATTR,
25
25
  relinkSplitHalves
@@ -32,7 +32,7 @@ import {
32
32
  requestedProjectPath,
33
33
  requiredFfmpeg,
34
34
  resolveLocalAudioPath
35
- } from "./chunk-2OYYNKJ4.js";
35
+ } from "./chunk-QXPZGDTI.js";
36
36
  import {
37
37
  HistoryBusyError,
38
38
  MAX_WINDOW_IDLE_MS,
@@ -46,7 +46,7 @@ import {
46
46
  resolveProjectAndSignature,
47
47
  resolveProjectSignature,
48
48
  settledFileTag
49
- } from "./chunk-OJNNKHAZ.js";
49
+ } from "./chunk-PGDWNIOK.js";
50
50
  import {
51
51
  PROXY_PARAMS_VERSION,
52
52
  PROXY_PENDING_RETRY_AFTER_SECONDS,
@@ -68,7 +68,7 @@ import {
68
68
  scanProjectMediaCodecMap,
69
69
  shouldPrewarmProxy,
70
70
  waitForProxy
71
- } from "./chunk-MCFPMUMT.js";
71
+ } from "./chunk-MK6FWMMF.js";
72
72
  import {
73
73
  STUDIO_MOTION_PATH,
74
74
  createStudioMotionRenderBodyScript,
@@ -109,14 +109,15 @@ import {
109
109
  gsapCdnDist,
110
110
  motionPathPluginUrl,
111
111
  normalizeGsapBaseUrl,
112
+ normalizeGsapLocalRoot,
112
113
  parseFps,
113
114
  parsePreviewProxyBox
114
- } from "./chunk-JVTWX5G3.js";
115
+ } from "./chunk-VKFHSZYS.js";
115
116
  import {
116
117
  addScenePartsManifest,
117
118
  ensureHfIds,
118
119
  stampHfIdsInPlace
119
- } from "./chunk-GAFEU6AB.js";
120
+ } from "./chunk-IYSIQ4GX.js";
120
121
  import {
121
122
  AFTER_FONTS_SCRIPT_TYPE,
122
123
  RUNTIME_BOOTSTRAP_ATTR,
@@ -130,7 +131,7 @@ import {
130
131
  resolveRateSpec,
131
132
  sourceTimeAt,
132
133
  stripEmbeddedRuntimeScripts
133
- } from "./chunk-2D5WP2NI.js";
134
+ } from "./chunk-MXT76SSV.js";
134
135
  import {
135
136
  HTML_ATTRIBUTE_ENTITIES,
136
137
  MagicString,
@@ -138,7 +139,7 @@ import {
138
139
  decodeAuthoredAttribute,
139
140
  scanHtmlOpeningTags,
140
141
  unrollComputedTimeline
141
- } from "./chunk-B7RJV74O.js";
142
+ } from "./chunk-XOTUPVIF.js";
142
143
  import {
143
144
  ProjectRootMissingError,
144
145
  folderGone,
@@ -354,6 +355,12 @@ async function injectMediaCodecMap(html, adapter, projectDir, compSrcPath, probe
354
355
  return injectMediaCodecMapIntoHtml(html, projectDir, [{ html, compSrcPath }], probeCache, false);
355
356
  }
356
357
 
358
+ // ../core/dist/studioPreviewMark.js
359
+ var STUDIO_PREVIEW_MARK_META = "hyperframes-studio-preview";
360
+ var STUDIO_PREVIEW_CAPTURE_MODE = "capture";
361
+ var STUDIO_PREVIEW_LAZY_ATTR = "data-hf-preview-lazy";
362
+ var STUDIO_PREVIEW_ERRORS = "__hfPreviewErrors";
363
+
357
364
  // ../studio-server/dist/chunk-UEEXAVOA.js
358
365
  function findUnsafeMutationValues(value, path = "body", options = {}) {
359
366
  if (value === null) {
@@ -3639,14 +3646,6 @@ import { createReadStream, existsSync as existsSync5, readFileSync as readFileSy
3639
3646
  import { Readable } from "stream";
3640
3647
  import { join as join8, resolve as resolve4 } from "path";
3641
3648
  import { createHash as createHash22 } from "crypto";
3642
-
3643
- // ../core/dist/studioPreviewMark.js
3644
- var STUDIO_PREVIEW_MARK_META = "hyperframes-studio-preview";
3645
- var STUDIO_PREVIEW_CAPTURE_MODE = "capture";
3646
- var STUDIO_PREVIEW_LAZY_ATTR = "data-hf-preview-lazy";
3647
- var STUDIO_PREVIEW_ERRORS = "__hfPreviewErrors";
3648
-
3649
- // ../studio-server/dist/index.js
3650
3649
  import { readlinkSync as readlinkSync2 } from "fs";
3651
3650
  import { dirname as dirname4, join as join7, parse as parse2, relative as relative3, resolve as resolve32 } from "path";
3652
3651
  import { readFileSync as readFileSync7 } from "fs";
@@ -3777,6 +3776,48 @@ function getMimeType(path) {
3777
3776
  function isAudioFile(name) {
3778
3777
  return (getMimeType(name) ?? "").startsWith("audio/");
3779
3778
  }
3779
+ var URL_BASE = "http://localhost/";
3780
+ function urlPath(src) {
3781
+ return URL.canParse(src, URL_BASE) ? new URL(src, URL_BASE).pathname : null;
3782
+ }
3783
+ function isGsapCoreUrl(src) {
3784
+ return /\/gsap(-\d+(\.\d+)*)?(\.min)?\.js$/i.test(urlPath(src) ?? "");
3785
+ }
3786
+ var GSAP_PLUGIN_FILE = /\/(\w+Plugin|CustomBounce|CustomEase|CustomWiggle|Draggable|EasePack|Flip|GSDevTools|MotionPathHelper|Observer|ScrollSmoother|ScrollTrigger|SplitText)(\.min)?\.js$/i;
3787
+ function isGsapPluginUrl(src) {
3788
+ const path = urlPath(src);
3789
+ if (!path || isGsapCoreUrl(src)) return false;
3790
+ return GSAP_PLUGIN_FILE.test(path) || /\/gsap(@[^/]*)?\/(.+\/)?[^/]+\.js$/i.test(path);
3791
+ }
3792
+ var TEMPLATE_ELEMENT = /<template\b[^>]*>[\s\S]*?<\/template>/gi;
3793
+ var SCRIPT_SRC = /<script\b[^>]*?\ssrc\s*=\s*(?:"([^"]*)"|'([^']*)'|([^\s>]+))/gi;
3794
+ var INLINED_MARKER = /\/\*\s*inlined:\s*(\S+)\s*\*\//gi;
3795
+ var CORE_LICENSE_BANNER = /\/\*!\s*\*\s*GSAP\s+\d/;
3796
+ var PLUGIN_LICENSE_BANNER = /\/\*!\s*\*\s*(?!GSAP\s)\w+\s+\d[^*]*\*\s*https:\/\/gsap\.com/;
3797
+ var CORE_BODY = /Missing plugin\? gsap\.registerPlugin\(\)/;
3798
+ function scriptUrls(html) {
3799
+ const srcs = [...html.matchAll(SCRIPT_SRC)].map(
3800
+ (m) => (m[1] ?? m[2] ?? m[3] ?? "").replace(/&amp;/gi, "&")
3801
+ );
3802
+ return [...srcs, ...[...html.matchAll(INLINED_MARKER)].map((m) => m[1] ?? "")];
3803
+ }
3804
+ function htmlHasGsapCore(html) {
3805
+ const live = html.replace(TEMPLATE_ELEMENT, "");
3806
+ return scriptUrls(live).some(isGsapCoreUrl) || CORE_LICENSE_BANNER.test(live) || CORE_BODY.test(live);
3807
+ }
3808
+ function isGsapPluginScript(script) {
3809
+ return scriptUrls(script).some(isGsapPluginUrl) || PLUGIN_LICENSE_BANNER.test(script);
3810
+ }
3811
+ function insertGsapCoreBeforeHeadPlugin(html, coreTag) {
3812
+ const lowered = html.toLowerCase();
3813
+ const at = findStartTags(html, "script").find((start) => {
3814
+ const close = lowered.indexOf("</script", start);
3815
+ return isGsapPluginScript(html.slice(start, close === -1 ? void 0 : close));
3816
+ });
3817
+ if (at === void 0 || insertBeforeCloseTag(html.slice(0, at), "head", "") !== null) return null;
3818
+ return `${html.slice(0, at)}${coreTag}
3819
+ ${html.slice(at)}`;
3820
+ }
3780
3821
  function rewriteRelativePaths(root, compPath, projectDir) {
3781
3822
  const assetExists = (path) => existsSync(join22(projectDir, path));
3782
3823
  rewriteAssetPaths(
@@ -3927,9 +3968,10 @@ ${compHeadContent}`;
3927
3968
  headContent = stripEmbeddedRuntimeScripts(headContent);
3928
3969
  headContent += `
3929
3970
  <script ${RUNTIME_BOOTSTRAP_ATTR}="1" src="${runtimeUrl}"></script>`;
3930
- if (!headContent.includes("gsap")) {
3931
- headContent += `
3932
- <script src="${gsapCdnDist(void 0, gsapBaseUrl).replace(/&/g, "&amp;")}gsap.min.js"></script>`;
3971
+ if (!htmlHasGsapCore(headContent)) {
3972
+ const core = `<script src="${gsapCdnDist(void 0, gsapBaseUrl).replace(/&/g, "&amp;")}gsap.min.js"></script>`;
3973
+ headContent = insertGsapCoreBeforeHeadPlugin(headContent, core) ?? `${headContent}
3974
+ ${core}`;
3933
3975
  }
3934
3976
  const htmlOpen = htmlAttrs ? `<html ${htmlAttrs}>` : "<html>";
3935
3977
  const bodyOpen = bodyAttrs ? `<body ${bodyAttrs}>` : "<body>";
@@ -5502,7 +5544,7 @@ async function prepareGsapMutationScript(c, res, firstMutation) {
5502
5544
  let block = extractGsapScriptBlock(html);
5503
5545
  if (!block && (firstMutation.type === "add" || firstMutation.type === "add-with-keyframes")) {
5504
5546
  const compId = html.match(/data-composition-id="([^"]+)"/)?.[1] ?? "main";
5505
- const { GSAP_CDN } = await import("./dist-2YTN2UGY.js");
5547
+ const { GSAP_CDN } = await import("./dist-FQBHBBKC.js");
5506
5548
  const bootstrap = [
5507
5549
  `<script src="${GSAP_CDN}"></script>`,
5508
5550
  "<script>",
@@ -7425,10 +7467,6 @@ function injectScriptTagIntoHead(html, scriptTag) {
7425
7467
  `) ?? `${scriptTag}
7426
7468
  ${html}`;
7427
7469
  }
7428
- function htmlHasGsap(html) {
7429
- const outsideTemplates = html.replace(/<template\b[^>]*>[\s\S]*?<\/template>/gi, "");
7430
- return /<script\b[^>]*src=["'][^"']*gsap/i.test(outsideTemplates) || /\/\*\s*inlined:.*gsap/i.test(outsideTemplates) || /\b(GreenSock|_gsScope)\b/.test(outsideTemplates) || /\bgsap\.(config|defaults|registerPlugin|version)\b/.test(outsideTemplates);
7431
- }
7432
7470
  function htmlHasCustomEase(html) {
7433
7471
  return /<script\b[^>]*src=["'][^"']*CustomEase/i.test(html) || /\bwindow\.CustomEase\b/.test(html) || /\bCustomEase\s*=\s*/.test(html);
7434
7472
  }
@@ -7449,10 +7487,6 @@ function injectMotionPathPluginIfNeeded(html, baseUrl) {
7449
7487
  }
7450
7488
  return injectScriptTagIntoHead(html, gsapScriptTag("MotionPathPlugin.min.js", baseUrl));
7451
7489
  }
7452
- function isGsapCoreUrl(src) {
7453
- const base = "http://localhost/";
7454
- return URL.canParse(src, base) && /\/gsap(\.min)?\.js$/i.test(new URL(src, base).pathname);
7455
- }
7456
7490
  function findGsapCoreScript(html) {
7457
7491
  const scripts = [...parseHTML(html).document.querySelectorAll("script")];
7458
7492
  const starts = findStartTags(html, "script");
@@ -7484,22 +7518,25 @@ function injectStudioMotionDependencies(html, manifestContent, baseUrl) {
7484
7518
  const manifest = parseStudioMotionManifestContent(manifestContent);
7485
7519
  if (!manifest.hasMotion) return html;
7486
7520
  let next = html;
7487
- if (!htmlHasGsap(next))
7488
- next = injectScriptTagIntoHead(next, gsapScriptTag("gsap.min.js", baseUrl));
7521
+ if (!htmlHasGsapCore(next)) {
7522
+ const core = gsapScriptTag("gsap.min.js", baseUrl);
7523
+ next = insertGsapCoreBeforeHeadPlugin(next, core) ?? injectScriptTagIntoHead(next, core);
7524
+ }
7489
7525
  if (manifest.hasCustomEase && !htmlHasCustomEase(next)) {
7490
7526
  next = injectScriptTagIntoHead(next, gsapScriptTag("CustomEase.min.js", baseUrl));
7491
7527
  }
7492
7528
  return next;
7493
7529
  }
7494
- function injectStudioMotionScript(html, projectDir, activeCompositionPath, baseUrl) {
7530
+ function readStudioMotion(projectDir, activeCompositionPath) {
7495
7531
  const manifestContent = readStudioMotionManifestContent(projectDir);
7496
7532
  const script = createStudioMotionRenderBodyScript(manifestContent, {
7497
7533
  activeCompositionPath
7498
7534
  });
7499
- if (!script) return html;
7500
- const withDependencies = injectStudioMotionDependencies(html, manifestContent, baseUrl);
7535
+ return script ? { manifestContent, script } : null;
7536
+ }
7537
+ function injectStudioMotionScript(html, script) {
7501
7538
  const tag = `<script type="${AFTER_FONTS_SCRIPT_TYPE}">${script.replace(/<\/script/gi, "<\\/script")}</script>`;
7502
- return insertBeforeCloseTag(withDependencies, "body", tag) ?? `${withDependencies}${tag}`;
7539
+ return insertBeforeCloseTag(html, "body", tag) ?? `${html}${tag}`;
7503
7540
  }
7504
7541
  var GSAP_FALLBACK_ATTR = "data-hf-gsap-fallback";
7505
7542
  function gsapCdnFallbackScript(baseUrl) {
@@ -7565,24 +7602,24 @@ function injectStudioPreviewAugmentations(html, adapter, projectDir, activeCompo
7565
7602
  lazyPreviewImages(html),
7566
7603
  `<meta name="${STUDIO_PREVIEW_MARK_META}">${EARLY_ERRORS_SCRIPT}`
7567
7604
  );
7568
- return injectStudioMotionScript(
7569
- injectMotionPathPluginIfNeeded(
7570
- injectGsapCdnFallback(
7571
- injectProjectSignature(
7572
- injectTagsAtHeadStart(
7573
- marked,
7574
- `<meta name="${GSAP_BASE_URL_META}" content="${escapeGsapUrl(options.gsapBaseUrl)}">`
7575
- ),
7576
- resolveProjectSignature(adapter, projectDir)
7577
- ),
7578
- options.gsapBaseUrl
7605
+ const withFallback = injectGsapCdnFallback(
7606
+ injectProjectSignature(
7607
+ injectTagsAtHeadStart(
7608
+ marked,
7609
+ `<meta name="${GSAP_BASE_URL_META}" content="${escapeGsapUrl(options.gsapBaseUrl)}">`
7579
7610
  ),
7580
- options.gsapBaseUrl
7611
+ resolveProjectSignature(adapter, projectDir)
7581
7612
  ),
7582
- projectDir,
7583
- activeCompositionPath,
7584
7613
  options.gsapBaseUrl
7585
7614
  );
7615
+ const studioMotion = readStudioMotion(projectDir, activeCompositionPath);
7616
+ const withMotionDependencies = studioMotion ? injectStudioMotionDependencies(
7617
+ withFallback,
7618
+ studioMotion.manifestContent,
7619
+ options.gsapBaseUrl
7620
+ ) : withFallback;
7621
+ const withPlugin = injectMotionPathPluginIfNeeded(withMotionDependencies, options.gsapBaseUrl);
7622
+ return studioMotion ? injectStudioMotionScript(withPlugin, studioMotion.script) : withPlugin;
7586
7623
  }
7587
7624
  async function transformPreviewHtml(html, adapter, project, activeCompositionPath) {
7588
7625
  if (!adapter.transformPreviewHtml) return html;
@@ -7624,16 +7661,22 @@ var PREVIEW_BUNDLE_OPTIONS = {
7624
7661
  };
7625
7662
  var previewBaseHref = (projectId) => `/api/projects/${encodeURIComponent(projectId)}/preview/`;
7626
7663
  var withPreviewBase = (html, projectId) => hasBaseElement(html) ? html : injectTagsAtHeadStart(html, `<base href="${previewBaseHref(projectId)}">`);
7627
- function registerPreviewRoutes(api, adapter) {
7628
- let gsapBaseUrl;
7629
- try {
7630
- gsapBaseUrl = normalizeGsapBaseUrl(process.env.HYPERFRAMES_GSAP_BASE_URL);
7631
- } catch (cause) {
7632
- throw new Error(
7633
- "Invalid HYPERFRAMES_GSAP_BASE_URL: use an absolute HTTP(S) npm mirror root without credentials, query, or fragment",
7634
- { cause }
7635
- );
7664
+ function resolvePreviewGsapBaseUrl(adapter) {
7665
+ const configured = process.env.HYPERFRAMES_GSAP_BASE_URL;
7666
+ if (configured?.trim() || !adapter.gsapLocalRoot) {
7667
+ try {
7668
+ return normalizeGsapBaseUrl(configured);
7669
+ } catch (cause) {
7670
+ throw new Error(
7671
+ "Invalid HYPERFRAMES_GSAP_BASE_URL: use an absolute HTTPS npm mirror root (plain HTTP only for localhost) without credentials, query, or fragment",
7672
+ { cause }
7673
+ );
7674
+ }
7636
7675
  }
7676
+ return normalizeGsapLocalRoot(adapter.gsapLocalRoot);
7677
+ }
7678
+ function registerPreviewRoutes(api, adapter) {
7679
+ const gsapBaseUrl = resolvePreviewGsapBaseUrl(adapter);
7637
7680
  const gsapEtagSalt = `:gsap:${createHash22("sha1").update(gsapBaseUrl).digest("hex").slice(0, 12)}`;
7638
7681
  const previewCacheHeaders = (etag) => ({
7639
7682
  "Cache-Control": "private, no-cache",
@@ -10051,6 +10094,8 @@ export {
10051
10094
  getElementScreenshotClip,
10052
10095
  clearElementScreenshotIsolation,
10053
10096
  injectMediaCodecMapIntoHtml,
10097
+ STUDIO_PREVIEW_MARK_META,
10098
+ STUDIO_PREVIEW_CAPTURE_MODE,
10054
10099
  MIME_TYPES,
10055
10100
  getMimeType,
10056
10101
  buildSubCompositionHtml,
@@ -17,7 +17,7 @@ import {
17
17
  } from "./chunk-ISN5GRYI.js";
18
18
  import {
19
19
  VERSION
20
- } from "./chunk-EY7GKVPS.js";
20
+ } from "./chunk-Z43NJYG2.js";
21
21
 
22
22
  // src/utils/updateCheck.ts
23
23
  import { existsSync, readFileSync } from "fs";
@@ -4732,6 +4732,9 @@ function splitUrlSuffix(urlValue) {
4732
4732
  function decodedUrlPath(url) {
4733
4733
  return decodeWellFormedEscapes(splitUrlSuffix(url).basePath);
4734
4734
  }
4735
+ function encodeUrlPath(path) {
4736
+ return encodeURIComponent(path).replace(/%2F/g, "/").replace(/['()]/g, (char) => `%${char.charCodeAt(0).toString(16).toUpperCase()}`);
4737
+ }
4735
4738
  function parseProgram2(script) {
4736
4739
  try {
4737
4740
  return acorn4.parse(script, { ecmaVersion: "latest", sourceType: "script" });
@@ -5037,6 +5040,7 @@ export {
5037
5040
  trackKindOf,
5038
5041
  decodeUrlPathVariants,
5039
5042
  decodedUrlPath,
5043
+ encodeUrlPath,
5040
5044
  extractMediaSrcMutations,
5041
5045
  FONT_ALIAS_MAP,
5042
5046
  FONT_ALIAS_KEYS,
@@ -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-CAR6PHI4.js");
10
+ return await import("./src-CZHSSXXF.js");
11
11
  }
12
12
 
13
13
  export {
@@ -12,7 +12,7 @@ import {
12
12
  } from "./chunk-HVW7ABXD.js";
13
13
  import {
14
14
  DEFAULT_REGISTRY_URL
15
- } from "./chunk-M2VXARYK.js";
15
+ } from "./chunk-LP6SFIWQ.js";
16
16
 
17
17
  // src/utils/projectConfig.ts
18
18
  import { readFileSync, writeFileSync } from "fs";
@@ -6,8 +6,8 @@ var __filename = __hf_fileURLToPath(import.meta.url);
6
6
  var __dirname = __hf_dirname(__filename);
7
7
 
8
8
  // src/version.ts
9
- var VERSION = true ? "0.8.194" : "0.0.0-dev";
10
- var PRODUCER_VERSION = true ? "0.8.194" : "0.0.0-dev";
9
+ var VERSION = true ? "0.8.196" : "0.0.0-dev";
10
+ var PRODUCER_VERSION = true ? "0.8.196" : "0.0.0-dev";
11
11
 
12
12
  export {
13
13
  VERSION,
@@ -11,20 +11,20 @@ import {
11
11
  isAllowedHtmlAttribute,
12
12
  isSafeAttributeValue,
13
13
  sanitizeRichTextChildren
14
- } from "./chunk-JVTWX5G3.js";
14
+ } from "./chunk-VKFHSZYS.js";
15
15
  import {
16
16
  EXCLUDED_TAGS,
17
17
  ensureHfIds,
18
18
  mintHfId,
19
19
  walkCompositionDescendants
20
- } from "./chunk-GAFEU6AB.js";
20
+ } from "./chunk-IYSIQ4GX.js";
21
21
  import {
22
22
  decodedUrlPath,
23
23
  removeElementWithGsapCascade
24
- } from "./chunk-B7RJV74O.js";
24
+ } from "./chunk-XOTUPVIF.js";
25
25
  import {
26
26
  require_dist
27
- } from "./chunk-K2VXPQKC.js";
27
+ } from "./chunk-2TU4OKIR.js";
28
28
  import {
29
29
  readClipTiming,
30
30
  writeClipTiming
@@ -6,26 +6,26 @@ var __filename = __hf_fileURLToPath(import.meta.url);
6
6
  var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  parakeetRunner
9
- } from "./chunk-N33FO44R.js";
9
+ } from "./chunk-TR7CDEU7.js";
10
10
  import {
11
11
  DecodeCancelled,
12
12
  prepareSherpaWav,
13
13
  sherpaUnsupportedReason,
14
14
  transcribeWithSherpa
15
- } from "./chunk-BK5YCT54.js";
15
+ } from "./chunk-WJJ6TPC7.js";
16
16
  import {
17
17
  initialModelForLanguage,
18
18
  transcribe
19
- } from "./chunk-Q4HKC3O7.js";
19
+ } from "./chunk-IO5NBG26.js";
20
20
  import {
21
21
  createRenderCancellationScope,
22
22
  stoppedByCancelSignal
23
- } from "./chunk-4VSV56F2.js";
23
+ } from "./chunk-JCBZI47W.js";
24
24
  import {
25
25
  DEFAULT_MODEL,
26
26
  findWhisper,
27
27
  isWhisperUnavailable
28
- } from "./chunk-Y3BT27Y7.js";
28
+ } from "./chunk-DHSNTPEW.js";
29
29
  import {
30
30
  formatSrt,
31
31
  formatVtt,