hyperframes 0.8.137 → 0.8.138

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-RUYRFHHN.js → add-IZQPSHT5.js} +15 -15
  2. package/dist/{animatedGifPrep-VMLA2P45.js → animatedGifPrep-MQF3GRFW.js} +6 -6
  3. package/dist/appHistory-TH3TL6N6.js +31 -0
  4. package/dist/{asset-DHOG5RFW.js → asset-RNZX4ISG.js} +2 -2
  5. package/dist/{assetCataloger-7XIMSAPT.js → assetCataloger-5YRUY3PJ.js} +2 -2
  6. package/dist/{auth-FUBCZVUH.js → auth-LUELYGJ4.js} +2 -2
  7. package/dist/{autoUpdate-LHVP2DWF.js → autoUpdate-ECMQWUU5.js} +2 -2
  8. package/dist/{backgroundChecks-JO3KP5QE.js → backgroundChecks-PBEJMSA3.js} +3 -3
  9. package/dist/backgroundChecksWorker.js +3 -3
  10. package/dist/{batchRender-PBCQ3R2Y.js → batchRender-2GXKBPFQ.js} +3 -3
  11. package/dist/{beats-AF7C54FH.js → beats-AAAZVDOY.js} +14 -14
  12. package/dist/{benchmark-QST66S5G.js → benchmark-EI767IB4.js} +12 -12
  13. package/dist/{browser-NBKY3N66.js → browser-KAA2VXYH.js} +9 -9
  14. package/dist/{bundleWithLocalizedFonts-ZYZHO7IV.js → bundleWithLocalizedFonts-MWDYAPGB.js} +2 -2
  15. package/dist/{capture-6GM7SIH5.js → capture-IRRHK6BT.js} +2 -2
  16. package/dist/{capture-MGC5AO5D.js → capture-VYT5NQQI.js} +13 -13
  17. package/dist/{catalog-IT2TP2YE.js → catalog-FYTZ2ET6.js} +21 -21
  18. package/dist/catch-up-XH3OAKQR.js +123 -0
  19. package/dist/{check-HNTSVBUV.js → check-MUMIOK5K.js} +38 -38
  20. package/dist/{checkBrowser-XH446M7L.js → checkBrowser-LKSZFOU6.js} +36 -36
  21. package/dist/{chunk-XT5P4QMO.js → chunk-3DKN5WKL.js} +31 -11
  22. package/dist/{chunk-DRYF6HV2.js → chunk-3F6YLT72.js} +11 -11
  23. package/dist/{chunk-ZBAC7334.js → chunk-5K33TNUJ.js} +2 -2
  24. package/dist/{chunk-OUKLD6D2.js → chunk-7OLMGFDN.js} +3 -3
  25. package/dist/{chunk-TTBOUHWT.js → chunk-7Y5SMPRV.js} +3 -3
  26. package/dist/{chunk-FAID56IK.js → chunk-APMG37MX.js} +1 -1
  27. package/dist/{chunk-MOBLZWAK.js → chunk-ASPTQ6DT.js} +1 -1
  28. package/dist/chunk-DCAI5DBR.js +218 -0
  29. package/dist/{chunk-E6WZHX7J.js → chunk-DJMXTKKK.js} +1 -1
  30. package/dist/{chunk-5ORPW6RH.js → chunk-DXHYACUC.js} +3 -3
  31. package/dist/{chunk-GULOKZLI.js → chunk-EDUBJPGL.js} +14 -9
  32. package/dist/{chunk-MBSFY6Y5.js → chunk-FSSMOTMS.js} +1 -1
  33. package/dist/{chunk-6XCIGLRQ.js → chunk-GJGVYREG.js} +57 -224
  34. package/dist/{chunk-WFNNUWFN.js → chunk-GNHJ4ONK.js} +2 -2
  35. package/dist/{chunk-GR7YLWXS.js → chunk-HUZYBV2Z.js} +1 -1
  36. package/dist/{chunk-BVOGEPHM.js → chunk-HXXX6N2G.js} +2 -2
  37. package/dist/{chunk-GYVUR4XC.js → chunk-I3BRUEKD.js} +1 -1
  38. package/dist/{chunk-VYGC4AJL.js → chunk-IC5L6L7K.js} +1 -1
  39. package/dist/{chunk-4LBBWEEH.js → chunk-IRYC5BRO.js} +4 -4
  40. package/dist/{chunk-JVJQL42J.js → chunk-JCRJBB4E.js} +9 -9
  41. package/dist/{chunk-7MF7FTFV.js → chunk-JOUVZO7M.js} +1 -1
  42. package/dist/{chunk-4HWOEWMH.js → chunk-KBUUCAIZ.js} +5 -5
  43. package/dist/{chunk-NSLSFVFN.js → chunk-KRLYIT22.js} +1 -1
  44. package/dist/{chunk-J6BHZVM3.js → chunk-L5E5ZN6G.js} +1 -1
  45. package/dist/{chunk-OEJQAXS3.js → chunk-MIOBYUXT.js} +1 -1
  46. package/dist/{chunk-N4Y4KZFV.js → chunk-MKVKVMUH.js} +7 -7
  47. package/dist/{chunk-6IEDWKFR.js → chunk-OBC75KXL.js} +1 -1
  48. package/dist/{chunk-HUV6BP7O.js → chunk-P5WDMFBB.js} +405 -205
  49. package/dist/{chunk-WYX6L7AV.js → chunk-P75OFLZN.js} +2 -2
  50. package/dist/{chunk-ZBKSKJ37.js → chunk-PHRWQQOJ.js} +1 -1
  51. package/dist/{chunk-YDCEBBEL.js → chunk-PHXBLIKK.js} +10 -10
  52. package/dist/{chunk-DKYXU4F4.js → chunk-QPOK6I32.js} +2 -2
  53. package/dist/{chunk-LSLJIVWV.js → chunk-R6C6URKB.js} +3 -3
  54. package/dist/{chunk-VU7RRQNA.js → chunk-RH5VML6E.js} +12 -12
  55. package/dist/{chunk-SCCJUPPX.js → chunk-RLNB3JCY.js} +1 -1
  56. package/dist/{chunk-R2MFCLGW.js → chunk-SDRKEYZV.js} +5 -5
  57. package/dist/{chunk-E2C5SLHT.js → chunk-SIMYRD5P.js} +1 -1
  58. package/dist/{chunk-VDQCNWQI.js → chunk-STA43FMY.js} +1 -1
  59. package/dist/{chunk-SMGQFCBC.js → chunk-SZITAGRK.js} +1 -1
  60. package/dist/chunk-UINDCCO7.js +3742 -0
  61. package/dist/{chunk-ADXD2HP4.js → chunk-UUMK6VME.js} +1 -1
  62. package/dist/{chunk-X2GKNLHE.js → chunk-VR5UQWGV.js} +3 -3
  63. package/dist/{chunk-J4AOOISS.js → chunk-W3KQCJVP.js} +217 -6
  64. package/dist/{chunk-WTGGSKAJ.js → chunk-WH6PRFNX.js} +3 -3
  65. package/dist/{chunk-7LAWNKVY.js → chunk-XQODEVF3.js} +1 -1
  66. package/dist/{chunk-RQLZL5KC.js → chunk-YGXLBX3N.js} +1 -1
  67. package/dist/{chunk-2DQ356HE.js → chunk-YNBXJWSD.js} +1 -1
  68. package/dist/{clean-OWDWVJBN.js → clean-LZPDOAV4.js} +21 -21
  69. package/dist/cli.js +62 -52
  70. package/dist/{cloud-S3MPN5VF.js → cloud-RVAH5NNL.js} +4 -4
  71. package/dist/{cloudrun-TLB7DEIN.js → cloudrun-NFGM6TRT.js} +3 -3
  72. package/dist/{compare-YRR6E22F.js → compare-S3M5OAL2.js} +29 -29
  73. package/dist/{compiler-ENHZ73DN.js → compiler-SZ4GTYFB.js} +3 -3
  74. package/dist/{component-EIJRLMDN.js → component-PR2WZTQ4.js} +3 -3
  75. package/dist/{compositions-5CBYWP55.js → compositions-6RYXH2UA.js} +11 -11
  76. package/dist/{delete-3U5L6XFA.js → delete-EO7C3LQ6.js} +3 -3
  77. package/dist/{deterministicFonts-U2EXY2KQ.js → deterministicFonts-GTITFRSJ.js} +2 -2
  78. package/dist/{dist-QS5WEGBE.js → dist-OJTEVNJR.js} +1 -1
  79. package/dist/{dist-7Y5HTID7.js → dist-RVC3JTID.js} +2 -2
  80. package/dist/{doctor-IZQZRMWC.js → doctor-UTCCMN32.js} +12 -12
  81. package/dist/{events-6BYBCUBA.js → events-RCGWL4LI.js} +9 -9
  82. package/dist/{events-BYDKYSIJ.js → events-RE3OR6KY.js} +8 -8
  83. package/dist/{feedback-I4YN55BC.js → feedback-V7C64JIR.js} +12 -12
  84. package/dist/{figma-A3FAM3JT.js → figma-26LOX5PV.js} +3 -3
  85. package/dist/fontLocalizeCli.js +10 -10
  86. package/dist/{get-PIFWLOAB.js → get-E2K2JRTV.js} +3 -3
  87. package/dist/{gpuPolicy-26BEFD3H.js → gpuPolicy-Z3PQN6ZK.js} +6 -6
  88. package/dist/{grade-compare-H2OKE5QQ.js → grade-compare-OTZDU463.js} +26 -26
  89. package/dist/{help-AXK7X72W.js → help-IRSQLNI5.js} +3 -2
  90. package/dist/{history-KUS6IXSL.js → history-G44U6762.js} +18 -18
  91. package/dist/hyperframe-runtime.js +64 -182
  92. package/dist/hyperframe.manifest.json +1 -1
  93. package/dist/hyperframe.runtime.iife.js +64 -182
  94. package/dist/hyperframes-player.global.js +1 -1
  95. package/dist/{info-DRASLTTJ.js → info-KXQ2TAHX.js} +11 -11
  96. package/dist/{init-3BZKVTW5.js → init-7SXMLHJE.js} +22 -22
  97. package/dist/{inspect-ROKMT5V7.js → inspect-7JTINR25.js} +27 -27
  98. package/dist/{installer-ERYE2UVI.js → installer-RH4E6WXT.js} +4 -4
  99. package/dist/{keyframes-PXGT4QQ5.js → keyframes-PIV573S6.js} +12 -12
  100. package/dist/{lambda-EQAPNZDT.js → lambda-GO5HAA4S.js} +4 -4
  101. package/dist/{layout-PMFNU7NB.js → layout-N2736OO3.js} +27 -27
  102. package/dist/{lint-G26WF3YE.js → lint-WUXZ5WWZ.js} +14 -14
  103. package/dist/{lintProject-EPVG2EFE.js → lintProject-ANMPLBIT.js} +1 -1
  104. package/dist/{list-WIPSPI6M.js → list-QF7AMX5F.js} +3 -3
  105. package/dist/{login-3CPZGZKC.js → login-6RGSXHQJ.js} +4 -4
  106. package/dist/{media-treatment-MGAQ5DQJ.js → media-treatment-T4KDEDYW.js} +14 -14
  107. package/dist/{models-QHS7P3NJ.js → models-6JMNK3XI.js} +18 -11
  108. package/dist/{motionShot-OLA4DIP7.js → motionShot-74WM7KF6.js} +12 -12
  109. package/dist/{normalize-audio-PAPIKX2Y.js → normalize-audio-ZZU36ZMD.js} +14 -14
  110. package/dist/{open-D5INI7M6.js → open-G523K45B.js} +20 -13
  111. package/dist/{pipeline-IWP6BVSS.js → pipeline-AKDGCWRE.js} +8 -8
  112. package/dist/{play-O2WTUH6O.js → play-SHIGXVON.js} +30 -30
  113. package/dist/{preflight-EUCDEHR5.js → preflight-6ERLORWK.js} +7 -7
  114. package/dist/{present-YDJZIRYD.js → present-QOYYNZCE.js} +19 -19
  115. package/dist/{preview-AS6S5EKV.js → preview-KUXTDJL3.js} +26 -24
  116. package/dist/{producer-S77FHAAG.js → producer-CH33JXHK.js} +1 -1
  117. package/dist/{projectConfig-6XCGW6KX.js → projectConfig-NKIPRWAE.js} +6 -6
  118. package/dist/{publication-E46VH7XO.js → publication-4RBVVR5Z.js} +2 -2
  119. package/dist/{publish-GQXWU7NF.js → publish-OLHR4Z4U.js} +12 -11
  120. package/dist/{remove-background-JPPYOSD2.js → remove-background-NPKZSIPY.js} +9 -9
  121. package/dist/{render-IPOSWART.js → render-GYYGWYQC.js} +17 -17
  122. package/dist/{render-HQJEYV6Q.js → render-P4NWFUS7.js} +29 -27
  123. package/dist/{render-XC3O77AK.js → render-UOKPAJNH.js} +3 -3
  124. package/dist/{render-batch-FX5TZDGW.js → render-batch-ZDG3EXSD.js} +3 -3
  125. package/dist/{renderCancellation-66SZW2VF.js → renderCancellation-QYQLWHZY.js} +6 -6
  126. package/dist/renderSetupWorker.js +1 -1
  127. package/dist/{resolver-JU3VRG4K.js → resolver-CWH3VVB7.js} +4 -4
  128. package/dist/{sherpa-I5YSMJNV.js → sherpa-WEQE23S5.js} +112 -43
  129. package/dist/sherpaWorker.js +3 -7
  130. package/dist/skills/hyperframes/SKILL.md +2 -0
  131. package/dist/skills/hyperframes-cli/SKILL.md +1 -1
  132. package/dist/{skills-SLCG4D3C.js → skills-BVONI6TC.js} +14 -14
  133. package/dist/{skillsUpdateCheck-KJBSMNG3.js → skillsUpdateCheck-KKDPTFM7.js} +3 -3
  134. package/dist/{snapshot-WOPONARS.js → snapshot-PWZFJEDR.js} +36 -36
  135. package/dist/{src-EDXJKFXO.js → src-HH4C5GZV.js} +9 -9
  136. package/dist/{src-A7PS67DT.js → src-YO7MAWGD.js} +5 -5
  137. package/dist/{staticProjectServer-XUCQPVTF.js → staticProjectServer-PR5INXSA.js} +14 -14
  138. package/dist/{status-Z23IJMWJ.js → status-AK67DTED.js} +6 -6
  139. package/dist/studio/assets/{hyperframes-player-D_Mh6hbx.js → hyperframes-player-B30apksz.js} +1 -1
  140. package/dist/studio/assets/{index-B3lJsA-e.js → index-BdjA0CLD.js} +137 -137
  141. package/dist/studio/assets/{index-CC_E-Cbl.css → index-CVd4O6eH.css} +1 -1
  142. package/dist/studio/assets/{index-CHEctGzc.js → index-DIJuIBwI.js} +1 -1
  143. package/dist/studio/assets/{index-rtccfg9b.js → index-DXVvWfQG.js} +1 -1
  144. package/dist/studio/index.html +2 -2
  145. package/dist/studio/index.js +21 -30
  146. package/dist/studio/index.js.map +1 -1
  147. package/dist/studio/styles.css +1 -1
  148. package/dist/{studio-api-SAZ65ULH.js → studio-api-NFJMFAB7.js} +11 -11
  149. package/dist/{studioServer-525NV45Z.js → studioServer-TQZVCIEL.js} +51 -50
  150. package/dist/{system-SXBUUXBG.js → system-ZWIBWWE6.js} +6 -6
  151. package/dist/{telemetry-MUWYEQ42.js → telemetry-63L2ORO3.js} +9 -9
  152. package/dist/templates/_shared/AGENTS.md +2 -0
  153. package/dist/templates/_shared/CLAUDE.md +2 -0
  154. package/dist/{timeline-BUCFPNP6.js → timeline-QKZQL5DJ.js} +18 -18
  155. package/dist/{tokens-OOJBPXYD.js → tokens-ELK62U4A.js} +2 -2
  156. package/dist/{transcribe-JAADNKL7.js → transcribe-OSK7HEOJ.js} +7 -7
  157. package/dist/{transcribe-GCVTFFIF.js → transcribe-VKSXTM7K.js} +12 -12
  158. package/dist/{tts-XGVL5UHX.js → tts-FU35O6YB.js} +1 -1
  159. package/dist/{updateCheck-AVUIJNVC.js → updateCheck-PM4FEI7P.js} +2 -2
  160. package/dist/{upgrade-DV6IVILG.js → upgrade-G635QCNO.js} +2 -2
  161. package/dist/{urlDownloader-N7LDOVHK.js → urlDownloader-MVYQTP73.js} +5 -5
  162. package/dist/{validate-22IQFLYH.js → validate-AZTMI3HR.js} +16 -16
  163. package/dist/{video-22M7YBQT.js → video-H56FK33V.js} +6 -6
  164. package/package.json +1 -1
  165. package/dist/chunk-P7GAS5DG.js +0 -3742
  166. package/dist/{chunk-WJFCDDP7.js → chunk-R4QIE6UY.js} +3 -3
  167. package/dist/{synthesize-4RPDY46T.js → synthesize-77PTU6C5.js} +4 -4
@@ -21,20 +21,14 @@ import {
21
21
  splitElementInHtml,
22
22
  unwrapElementsFromHtml,
23
23
  wrapElementsInHtml
24
- } from "./chunk-LSLJIVWV.js";
25
- import {
26
- atomicTempPath,
27
- createFileAtomically,
28
- isAtomicTempPath,
29
- replaceFileAtomically
30
- } from "./chunk-EOVYQ3IG.js";
24
+ } from "./chunk-R6C6URKB.js";
31
25
  import {
32
26
  DEFAULT_TARGET_LUFS,
33
27
  absoluteLoudnessPlan,
34
28
  measureAudio,
35
29
  requiredFfmpeg,
36
30
  resolveLocalAudioPath
37
- } from "./chunk-MOBLZWAK.js";
31
+ } from "./chunk-ASPTQ6DT.js";
38
32
  import {
39
33
  PROXY_PARAMS_VERSION,
40
34
  PROXY_PENDING_RETRY_AFTER_SECONDS,
@@ -42,9 +36,13 @@ import {
42
36
  ProxyCapacityError,
43
37
  ProxyTranscodeError,
44
38
  ProxyWaitTimeoutError,
39
+ STUDIO_MOTION_PATH,
45
40
  createMediaCodecProbeCache,
41
+ createStudioMotionRenderBodyScript,
46
42
  decideMediaProxyEligibility,
47
43
  isInHiddenOrVendorDir,
44
+ isPrivateProjectFile,
45
+ isPrivateProjectPath,
48
46
  isProxyVariantRequest,
49
47
  pinWithinProject,
50
48
  probeAssetCodec,
@@ -56,11 +54,18 @@ import {
56
54
  recordProxyRequest,
57
55
  resolveProxy,
58
56
  resolveProxyVariantRequest,
57
+ resolveWithinProject,
59
58
  scanProjectMediaCodecMap,
60
59
  shouldPrewarmProxy,
61
60
  waitForProxy,
62
61
  walkDir
63
- } from "./chunk-J4AOOISS.js";
62
+ } from "./chunk-W3KQCJVP.js";
63
+ import {
64
+ atomicTempPath,
65
+ createFileAtomically,
66
+ isAtomicTempPath,
67
+ replaceFileAtomically
68
+ } from "./chunk-EOVYQ3IG.js";
64
69
  import {
65
70
  findTimelineScript,
66
71
  parseGsapScriptAcorn
@@ -81,7 +86,7 @@ import {
81
86
  motionPathPluginUrl,
82
87
  parseFps,
83
88
  sameInstant
84
- } from "./chunk-SCCJUPPX.js";
89
+ } from "./chunk-RLNB3JCY.js";
85
90
  import {
86
91
  MagicString,
87
92
  VALID_CANVAS_RESOLUTIONS,
@@ -90,7 +95,7 @@ import {
90
95
  import {
91
96
  addScenePartsManifest,
92
97
  ensureHfIds
93
- } from "./chunk-HUV6BP7O.js";
98
+ } from "./chunk-P5WDMFBB.js";
94
99
  import {
95
100
  AFTER_FONTS_SCRIPT_TYPE,
96
101
  RUNTIME_BOOTSTRAP_ATTR,
@@ -104,20 +109,19 @@ import {
104
109
  resolveRateSpec,
105
110
  sourceTimeAt,
106
111
  stripEmbeddedRuntimeScripts
107
- } from "./chunk-P7GAS5DG.js";
112
+ } from "./chunk-UINDCCO7.js";
108
113
  import {
109
114
  ProjectRootMissingError,
110
115
  folderGone,
111
116
  isProjectRootMissing,
112
117
  isSafePath,
113
118
  mkdirWithinProject,
114
- realpath,
115
- resolveWithinProject
119
+ realpath
116
120
  } from "./chunk-OFQWTKPW.js";
117
121
  import {
118
122
  isWithinProjectRoot,
119
123
  readProjectFile
120
- } from "./chunk-VDQCNWQI.js";
124
+ } from "./chunk-STA43FMY.js";
121
125
  import {
122
126
  FFPROBE_PATH_ENV,
123
127
  findFfBinary
@@ -138,7 +142,7 @@ import {
138
142
  simple
139
143
  } from "./chunk-2PSPARWP.js";
140
144
 
141
- // ../studio-server/dist/chunk-7ON477WG.js
145
+ // ../studio-server/dist/chunk-DG2VOIGR.js
142
146
  import { createHash } from "crypto";
143
147
  import { closeSync, constants, fstatSync, openSync, readFileSync, writeFileSync } from "fs";
144
148
  import { dirname, join } from "path";
@@ -222,7 +226,7 @@ function stampFileHfIds(filePath) {
222
226
  }
223
227
  }
224
228
 
225
- // ../studio-server/dist/chunk-36F5I56K.js
229
+ // ../studio-server/dist/chunk-K3H6HTVC.js
226
230
  import { randomUUID as randomUUID6 } from "crypto";
227
231
  import { mkdir as mkdir2, readdir as readdir3, rm as rm3, rmdir, writeFile } from "fs/promises";
228
232
  import {
@@ -1963,7 +1967,7 @@ function clearElementScreenshotIsolation() {
1963
1967
  page.__hfThumbnailFaded = [];
1964
1968
  }
1965
1969
 
1966
- // ../studio-server/dist/chunk-WK3ZL3SN.js
1970
+ // ../studio-server/dist/chunk-G7FEKQ32.js
1967
1971
  import { resolve as resolve4 } from "path";
1968
1972
  function isAutoProxyEnabled(adapter) {
1969
1973
  return adapter.autoProxy !== false;
@@ -2008,193 +2012,6 @@ async function injectMediaCodecMap(html, adapter, projectDir, compSrcPath, probe
2008
2012
  return injectMediaCodecMapIntoHtml(html, projectDir, [{ html, compSrcPath }], probeCache);
2009
2013
  }
2010
2014
 
2011
- // ../studio-server/dist/chunk-4ETS2LXI.js
2012
- var STUDIO_MOTION_PATH = ".hyperframes/studio-motion.json";
2013
- function hasStudioMotionEntries(manifestContent) {
2014
- try {
2015
- const parsed = JSON.parse(manifestContent);
2016
- return Array.isArray(parsed.motions) && parsed.motions.length > 0;
2017
- } catch {
2018
- return false;
2019
- }
2020
- }
2021
- function createStudioMotionRenderBodyScript(manifestContent, options = {}) {
2022
- if (!manifestContent.trim() || !hasStudioMotionEntries(manifestContent)) return null;
2023
- return `(${studioMotionRenderRuntime.toString()})(${JSON.stringify(manifestContent)}, ${JSON.stringify(options.activeCompositionPath ?? null)});`;
2024
- }
2025
- function studioMotionRenderRuntime(manifestContent, activeCompositionPath) {
2026
- const STUDIO_MOTION_TIMELINE_ID = "studio-motion";
2027
- const STUDIO_MOTION_ATTR = "data-hf-studio-motion";
2028
- const ORIGINAL_TRANSFORM_ATTR = "data-hf-studio-motion-original-transform";
2029
- const ORIGINAL_OPACITY_ATTR = "data-hf-studio-motion-original-opacity";
2030
- const ORIGINAL_VISIBILITY_ATTR = "data-hf-studio-motion-original-visibility";
2031
- const objectRecord = (value) => value && typeof value === "object" ? value : null;
2032
- const finiteNumber = (value) => typeof value === "number" && Number.isFinite(value) ? value : null;
2033
- const runtimeWindow = window;
2034
- const parseMotionValues = (value) => {
2035
- const record = objectRecord(value);
2036
- if (!record) return null;
2037
- const parsed = {};
2038
- for (const key of ["x", "y", "scale", "rotation", "opacity", "autoAlpha"]) {
2039
- const next = finiteNumber(record[key]);
2040
- if (next != null) parsed[key] = next;
2041
- }
2042
- return Object.keys(parsed).length > 0 ? parsed : null;
2043
- };
2044
- const parseCustomEase = (value) => {
2045
- const record = objectRecord(value);
2046
- if (!record) return null;
2047
- const id = typeof record.id === "string" ? record.id.trim() : "";
2048
- const data = typeof record.data === "string" ? record.data.trim() : "";
2049
- if (!id || !data) return null;
2050
- return { id, data };
2051
- };
2052
- const parsedManifest = (() => {
2053
- try {
2054
- return objectRecord(JSON.parse(manifestContent));
2055
- } catch {
2056
- return null;
2057
- }
2058
- })();
2059
- const manifestMotions = Array.isArray(parsedManifest?.motions) ? parsedManifest.motions : [];
2060
- const sourceFileForElement = (element) => {
2061
- let current = element;
2062
- while (current) {
2063
- const sourceFile = current.getAttribute("data-composition-file") ?? current.getAttribute("data-composition-src");
2064
- if (sourceFile) return sourceFile;
2065
- current = current.parentElement;
2066
- }
2067
- return activeCompositionPath ?? "index.html";
2068
- };
2069
- const elementMatchesSourceFile = (element, sourceFile) => sourceFileForElement(element) === sourceFile;
2070
- const isHTMLElement2 = (element) => element instanceof HTMLElement;
2071
- const querySelectorCandidates = (selector) => {
2072
- const className = selector.match(/^\.([A-Za-z0-9_-]+)$/)?.[1];
2073
- if (className) {
2074
- return Array.from(document.getElementsByTagName("*")).filter(
2075
- (element) => isHTMLElement2(element) && element.classList.contains(className)
2076
- );
2077
- }
2078
- if (/^[A-Za-z][A-Za-z0-9-]*$/.test(selector)) {
2079
- return Array.from(document.getElementsByTagName(selector)).filter(isHTMLElement2);
2080
- }
2081
- return Array.from(document.querySelectorAll(selector)).filter(isHTMLElement2);
2082
- };
2083
- const resolveTarget = (targetRecord) => {
2084
- const sourceFile = typeof targetRecord.sourceFile === "string" ? targetRecord.sourceFile : "";
2085
- if (!sourceFile) return null;
2086
- const id = typeof targetRecord.id === "string" ? targetRecord.id : "";
2087
- if (id) {
2088
- const byId = document.getElementById(id);
2089
- if (isHTMLElement2(byId) && elementMatchesSourceFile(byId, sourceFile)) return byId;
2090
- }
2091
- const selector = typeof targetRecord.selector === "string" ? targetRecord.selector : "";
2092
- if (!selector) return null;
2093
- try {
2094
- const selectorIndex = Math.max(0, Math.floor(finiteNumber(targetRecord.selectorIndex) ?? 0));
2095
- return querySelectorCandidates(selector).filter(
2096
- (element) => elementMatchesSourceFile(element, sourceFile)
2097
- )[selectorIndex] ?? null;
2098
- } catch {
2099
- return null;
2100
- }
2101
- };
2102
- const restoreElement = (element) => {
2103
- runtimeWindow.gsap?.set?.(element, { clearProps: "transform,opacity,visibility" });
2104
- element.style.transform = element.getAttribute(ORIGINAL_TRANSFORM_ATTR) ?? "";
2105
- element.style.opacity = element.getAttribute(ORIGINAL_OPACITY_ATTR) ?? "";
2106
- element.style.visibility = element.getAttribute(ORIGINAL_VISIBILITY_ATTR) ?? "";
2107
- element.removeAttribute(STUDIO_MOTION_ATTR);
2108
- element.removeAttribute(ORIGINAL_TRANSFORM_ATTR);
2109
- element.removeAttribute(ORIGINAL_OPACITY_ATTR);
2110
- element.removeAttribute(ORIGINAL_VISIBILITY_ATTR);
2111
- };
2112
- const restoreStudioMotionElements = () => {
2113
- for (const element of Array.from(document.querySelectorAll(`[${STUDIO_MOTION_ATTR}]`))) {
2114
- if (isHTMLElement2(element)) restoreElement(element);
2115
- }
2116
- };
2117
- const readCurrentTime = () => {
2118
- try {
2119
- const playerTime = runtimeWindow.__player?.getTime?.();
2120
- if (typeof playerTime === "number" && Number.isFinite(playerTime)) {
2121
- return Math.max(0, playerTime);
2122
- }
2123
- } catch {
2124
- }
2125
- try {
2126
- const timelineTime = runtimeWindow.__timeline?.time?.();
2127
- if (typeof timelineTime === "number" && Number.isFinite(timelineTime)) {
2128
- return Math.max(0, timelineTime);
2129
- }
2130
- } catch {
2131
- }
2132
- return 0;
2133
- };
2134
- const resolveEase = (motion) => {
2135
- const fallback = typeof motion.ease === "string" && motion.ease.trim() ? motion.ease.trim() : "none";
2136
- const customEase = parseCustomEase(motion.customEase);
2137
- const customEasePlugin = runtimeWindow.CustomEase;
2138
- if (!customEase || typeof customEasePlugin?.create !== "function") return fallback;
2139
- try {
2140
- runtimeWindow.gsap?.registerPlugin?.(customEasePlugin);
2141
- customEasePlugin.create(customEase.id, customEase.data);
2142
- return customEase.id;
2143
- } catch {
2144
- return fallback;
2145
- }
2146
- };
2147
- const applyManifest = () => {
2148
- runtimeWindow.__timelines = runtimeWindow.__timelines ?? {};
2149
- runtimeWindow.__timelines[STUDIO_MOTION_TIMELINE_ID]?.kill?.();
2150
- delete runtimeWindow.__timelines[STUDIO_MOTION_TIMELINE_ID];
2151
- restoreStudioMotionElements();
2152
- const gsap = runtimeWindow.gsap;
2153
- if (!gsap?.timeline || manifestMotions.length === 0) return 0;
2154
- const timeline = gsap.timeline({ paused: true, defaults: { overwrite: "auto" } });
2155
- let applied = 0;
2156
- for (const motionValue of manifestMotions) {
2157
- const motion = objectRecord(motionValue);
2158
- if (!motion || motion.kind !== "gsap-motion") continue;
2159
- const targetRecord = objectRecord(motion.target);
2160
- if (!targetRecord) continue;
2161
- const target = resolveTarget(targetRecord);
2162
- if (!target || typeof timeline.fromTo !== "function") continue;
2163
- const start = finiteNumber(motion.start);
2164
- const duration = finiteNumber(motion.duration);
2165
- if (start == null || duration == null || start < 0 || duration <= 0) continue;
2166
- const from = parseMotionValues(motion.from);
2167
- const to = parseMotionValues(motion.to);
2168
- if (!from || !to) continue;
2169
- if (!target.hasAttribute(STUDIO_MOTION_ATTR)) {
2170
- target.setAttribute(ORIGINAL_TRANSFORM_ATTR, target.style.transform);
2171
- target.setAttribute(ORIGINAL_OPACITY_ATTR, target.style.opacity);
2172
- target.setAttribute(ORIGINAL_VISIBILITY_ATTR, target.style.visibility);
2173
- }
2174
- target.setAttribute(STUDIO_MOTION_ATTR, "true");
2175
- timeline.fromTo(
2176
- target,
2177
- from,
2178
- { ...to, duration, ease: resolveEase(motion), overwrite: "auto", immediateRender: false },
2179
- start
2180
- );
2181
- applied += 1;
2182
- }
2183
- if (applied === 0) {
2184
- timeline.kill?.();
2185
- return 0;
2186
- }
2187
- runtimeWindow.__timelines[STUDIO_MOTION_TIMELINE_ID] = timeline;
2188
- timeline.pause?.();
2189
- const currentTime = readCurrentTime();
2190
- if (typeof timeline.totalTime === "function") timeline.totalTime(currentTime, false);
2191
- else timeline.time?.(currentTime);
2192
- return applied;
2193
- };
2194
- runtimeWindow.__hfStudioMotionApply = applyManifest;
2195
- applyManifest();
2196
- }
2197
-
2198
2015
  // ../studio-server/dist/chunk-X62ASOGO.js
2199
2016
  function findUnsafeMutationValues(value, path = "body", options = {}) {
2200
2017
  if (value === null) {
@@ -5439,6 +5256,7 @@ import { createHash as createHash23 } from "crypto";
5439
5256
  // ../core/dist/studioPreviewMark.js
5440
5257
  var STUDIO_PREVIEW_MARK_META = "hyperframes-studio-preview";
5441
5258
  var STUDIO_PREVIEW_LAZY_ATTR = "data-hf-preview-lazy";
5259
+ var STUDIO_PREVIEW_ERRORS = "__hfPreviewErrors";
5442
5260
 
5443
5261
  // ../studio-server/dist/index.js
5444
5262
  import { readlinkSync as readlinkSync2 } from "fs";
@@ -5446,7 +5264,7 @@ import { dirname as dirname42, join as join7, parse as parse2, relative as relat
5446
5264
  import { readFileSync as readFileSync72 } from "fs";
5447
5265
  import { join as join9 } from "path";
5448
5266
  import { streamSSE } from "hono/streaming";
5449
- import { existsSync as existsSync6, readFileSync as readFileSync8, unlinkSync as unlinkSync3, readdirSync as readdirSync32, statSync as statSync5 } from "fs";
5267
+ import { existsSync as existsSync6, lstatSync as lstatSync32, readFileSync as readFileSync8, unlinkSync as unlinkSync3, readdirSync as readdirSync32, statSync as statSync5 } from "fs";
5450
5268
  import { join as join10 } from "path";
5451
5269
  import { HTTPException } from "hono/http-exception";
5452
5270
  import { open, stat as stat2 } from "fs/promises";
@@ -5522,7 +5340,7 @@ function registerProjectRoutes(api, adapter) {
5522
5340
  api.get("/projects/:id", async (c) => {
5523
5341
  const project = await adapter.resolveProject(c.req.param("id"));
5524
5342
  if (!project) return c.json({ error: "not found" }, 404);
5525
- const files = walkDir(project.dir);
5343
+ const files = walkDir(project.dir).filter((file) => !isPrivateProjectPath(file));
5526
5344
  const compositions = await filterCompositionFiles(project.dir, files);
5527
5345
  return c.json({ id: project.id, dir: project.dir, title: project.title, files, compositions });
5528
5346
  });
@@ -6805,7 +6623,7 @@ function updateReferences(projectDir, oldPath, newPath, isDirectory) {
6805
6623
  const rewrite = referenceRewriter(oldPath, newPath, isDirectory, projectPaths(projectDir));
6806
6624
  let updatedCount = 0;
6807
6625
  for (const file of textFiles) {
6808
- if (!isSafePath(projectDir, file)) continue;
6626
+ if (!isSafePath(projectDir, file) || isPrivateProjectFile(projectDir, file)) continue;
6809
6627
  const content = readableText(file);
6810
6628
  if (content === null) continue;
6811
6629
  const updated = rewrite(content);
@@ -7097,7 +6915,7 @@ async function prepareGsapMutationScript(c, res, firstMutation) {
7097
6915
  let block = extractGsapScriptBlock(html);
7098
6916
  if (!block && (firstMutation.type === "add" || firstMutation.type === "add-with-keyframes")) {
7099
6917
  const compId = html.match(/data-composition-id="([^"]+)"/)?.[1] ?? "main";
7100
- const { GSAP_CDN } = await import("./dist-7Y5HTID7.js");
6918
+ const { GSAP_CDN } = await import("./dist-RVC3JTID.js");
7101
6919
  const bootstrap = [
7102
6920
  `<script src="${GSAP_CDN}"></script>`,
7103
6921
  "<script>",
@@ -7949,7 +7767,7 @@ async function processUploadedFiles(formData, targetDir, projectDir) {
7949
7767
  finalName = `${base} (${n})${ext}`;
7950
7768
  finalPath = resolve22(targetDir, finalName);
7951
7769
  }
7952
- if (!isSafePath(projectDir, finalPath)) continue;
7770
+ if (!isSafePath(projectDir, finalPath) || isPrivateProjectFile(projectDir, finalPath)) continue;
7953
7771
  const buffer = Buffer.from(await value.arrayBuffer());
7954
7772
  const validation = validateUploadedMediaBuffer(finalName, buffer);
7955
7773
  if (!validation.ok) {
@@ -9101,15 +8919,17 @@ var GSAP_CDN_FALLBACK_SCRIPT = `<script ${GSAP_FALLBACK_ATTR}>
9101
8919
  if(loaded[file])return loaded[file];
9102
8920
  return loaded[file]=new Promise(function(ok,fail){
9103
8921
  var s=document.createElement("script");
9104
- s.src=cdnBase+file;s.onload=ok;s.onerror=fail;
8922
+ s.src=cdnBase+file;s.hfGsapFallback=true;s.onload=ok;s.onerror=fail;
9105
8923
  document.head.appendChild(s);
9106
8924
  });
9107
8925
  }
9108
8926
  document.addEventListener("error",function(e){
9109
8927
  var t=e.target;
9110
- if(!t||t.tagName!=="SCRIPT"||!t.src)return;
8928
+ if(!t||t.tagName!=="SCRIPT"||!t.src||t.hfGsapFallback)return;
9111
8929
  var m=t.src.match(/gsap[^/]*\\/dist\\/(.+\\.js)/);
9112
- if(m)loadFallback(m[1]);
8930
+ if(m)loadFallback(m[1]).catch(function(){
8931
+ reportError(new Error("GSAP could not load from "+t.src+" or "+cdnBase+m[1]+", so this preview's animations will not play."));
8932
+ });
9113
8933
  },true);
9114
8934
  })();
9115
8935
  </script>`;
@@ -9141,8 +8961,13 @@ function previewVariablesFromRequest(rawVariables) {
9141
8961
  return { raw: rawVariables, values: parse22.values };
9142
8962
  }
9143
8963
  var PREVIEW_CAPTURE_PARAM = "hf-capture";
8964
+ var EARLY_ERRORS_SCRIPT = `<script>(function(){var seen=window.${STUDIO_PREVIEW_ERRORS}=[];
8965
+ addEventListener("error",function(e){seen.push(e.message||String(e))});})();</script>`;
9144
8966
  function injectStudioPreviewAugmentations(html, adapter, projectDir, activeCompositionPath, capture) {
9145
- const marked = capture ? html : injectTagsAtHeadStart(lazyPreviewImages(html), `<meta name="${STUDIO_PREVIEW_MARK_META}">`);
8967
+ const marked = capture ? html : injectTagsAtHeadStart(
8968
+ lazyPreviewImages(html),
8969
+ `<meta name="${STUDIO_PREVIEW_MARK_META}">${EARLY_ERRORS_SCRIPT}`
8970
+ );
9146
8971
  return injectStudioMotionScript(
9147
8972
  injectMotionPathPluginIfNeeded(
9148
8973
  injectGsapCdnFallback(
@@ -9363,7 +9188,7 @@ ${etag}`;
9363
9188
  const subPath = requestSubPath(c.req.url, "projects/:id/preview");
9364
9189
  const candidate = resolve42(project.dir, subPath);
9365
9190
  const file = isWithinProjectRoot(project.dir, candidate) ? candidate : null;
9366
- if (!file) {
9191
+ if (!file || isPrivateProjectFile(project.dir, file)) {
9367
9192
  return c.text("not found", 404);
9368
9193
  }
9369
9194
  recordPreviewRead(project.dir, file);
@@ -9634,6 +9459,13 @@ function registerRenderRoutes(api, adapter) {
9634
9459
  ".mov": "video/quicktime"
9635
9460
  };
9636
9461
  const RENDER_EXTENSIONS = Object.keys(RENDER_MIME);
9462
+ const isPlainFile = (path) => {
9463
+ try {
9464
+ return lstatSync32(path).isFile();
9465
+ } catch {
9466
+ return false;
9467
+ }
9468
+ };
9637
9469
  function renderContentType(filePath) {
9638
9470
  const ext = RENDER_EXTENSIONS.find((e) => filePath.endsWith(e));
9639
9471
  return (ext && RENDER_MIME[ext]) ?? "video/mp4";
@@ -9641,7 +9473,7 @@ function registerRenderRoutes(api, adapter) {
9641
9473
  api.get("/render/:jobId/view", (c) => {
9642
9474
  const { jobId } = c.req.param();
9643
9475
  const job = renderJobs.get(jobId);
9644
- if (!job?.outputPath || !existsSync6(job.outputPath)) {
9476
+ if (!job?.outputPath || !isPlainFile(job.outputPath)) {
9645
9477
  return c.json({ error: "not found" }, 404);
9646
9478
  }
9647
9479
  const contentType = renderContentType(job.outputPath);
@@ -9659,7 +9491,7 @@ function registerRenderRoutes(api, adapter) {
9659
9491
  api.get("/render/:jobId/download", (c) => {
9660
9492
  const { jobId } = c.req.param();
9661
9493
  const job = renderJobs.get(jobId);
9662
- if (!job?.outputPath || !existsSync6(job.outputPath)) {
9494
+ if (!job?.outputPath || !isPlainFile(job.outputPath)) {
9663
9495
  return c.json({ error: "not found" }, 404);
9664
9496
  }
9665
9497
  const contentType = renderContentType(job.outputPath);
@@ -9694,7 +9526,7 @@ function registerRenderRoutes(api, adapter) {
9694
9526
  if (!filename) return c.json({ error: "missing filename" }, 400);
9695
9527
  const rendersDir = adapter.rendersDir(project);
9696
9528
  const fp = resolveWithinProject(rendersDir, filename);
9697
- if (!fp) return c.json({ error: "forbidden" }, 403);
9529
+ if (!fp || isPrivateProjectFile(project.dir, fp)) return c.json({ error: "forbidden" }, 403);
9698
9530
  if (!existsSync6(fp)) return c.json({ error: "not found" }, 404);
9699
9531
  const contentType = renderContentType(fp);
9700
9532
  const content = readFileSync8(fp);
@@ -9712,8 +9544,10 @@ function registerRenderRoutes(api, adapter) {
9712
9544
  if (!project) return c.json({ error: "not found" }, 404);
9713
9545
  const rendersDir = adapter.rendersDir(project);
9714
9546
  if (!existsSync6(rendersDir)) return c.json({ renders: [] });
9715
- const files = readdirSync32(rendersDir).filter((f) => f.endsWith(".mp4") || f.endsWith(".webm") || f.endsWith(".mov")).map((f) => {
9716
- const fp = join10(rendersDir, f);
9547
+ const files = readdirSync32(rendersDir).filter((f) => f.endsWith(".mp4") || f.endsWith(".webm") || f.endsWith(".mov")).flatMap((f) => {
9548
+ const fp = resolveWithinProject(rendersDir, f);
9549
+ return fp && !isPrivateProjectFile(project.dir, fp) ? [{ f, fp }] : [];
9550
+ }).map(({ f, fp }) => {
9717
9551
  const stat22 = statSync5(fp);
9718
9552
  const rid = f.replace(/\.(mp4|webm|mov)$/, "");
9719
9553
  const metaPath = join10(rendersDir, `${rid}.meta.json`);
@@ -9732,6 +9566,7 @@ function registerRenderRoutes(api, adapter) {
9732
9566
  return {
9733
9567
  id: rid,
9734
9568
  filename: f,
9569
+ path: fp,
9735
9570
  size: stat22.size,
9736
9571
  createdAt: stat22.mtimeMs,
9737
9572
  status,
@@ -9745,12 +9580,12 @@ function registerRenderRoutes(api, adapter) {
9745
9580
  id: file.id,
9746
9581
  status: file.status,
9747
9582
  progress: 100,
9748
- outputPath: join10(rendersDir, file.filename),
9583
+ outputPath: file.path,
9749
9584
  createdAt: file.createdAt
9750
9585
  });
9751
9586
  }
9752
9587
  }
9753
- return c.json({ renders: files });
9588
+ return c.json({ renders: files.map(({ path: _path, ...render }) => render) });
9754
9589
  });
9755
9590
  }
9756
9591
  var ThumbnailGenerationCoordinator = class {
@@ -11527,8 +11362,6 @@ export {
11527
11362
  getElementScreenshotClip,
11528
11363
  clearElementScreenshotIsolation,
11529
11364
  injectMediaCodecMapIntoHtml,
11530
- STUDIO_MOTION_PATH,
11531
- createStudioMotionRenderBodyScript,
11532
11365
  MIME_TYPES,
11533
11366
  getMimeType,
11534
11367
  buildSubCompositionHtml,
@@ -8,10 +8,10 @@ import {
8
8
  DEFAULT_VP9_CPU_USED,
9
9
  isHttpUrl,
10
10
  runFfmpeg
11
- } from "./chunk-TTBOUHWT.js";
11
+ } from "./chunk-7Y5SMPRV.js";
12
12
  import {
13
13
  parseAnimatedGifMetadata
14
- } from "./chunk-SCCJUPPX.js";
14
+ } from "./chunk-RLNB3JCY.js";
15
15
  import {
16
16
  parseHTML
17
17
  } from "./chunk-GK4AIFIH.js";
@@ -6,7 +6,7 @@ var __filename = __hf_fileURLToPath(import.meta.url);
6
6
  var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  VERSION
9
- } from "./chunk-WYX6L7AV.js";
9
+ } from "./chunk-P75OFLZN.js";
10
10
 
11
11
  // src/registry/compatibility.ts
12
12
  import { compareVersions } from "compare-versions";
@@ -20,7 +20,7 @@ import {
20
20
  typeDirPath,
21
21
  updateRecord,
22
22
  withFigmaErrors
23
- } from "./chunk-7LAWNKVY.js";
23
+ } from "./chunk-XQODEVF3.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-MUWYEQ42.js");
224
+ const { trackFigmaImport } = await import("./telemetry-63L2ORO3.js");
225
225
  trackFigmaImport({
226
226
  phase: "asset",
227
227
  reused: results.every((r) => r.reused),
@@ -14,7 +14,7 @@ import {
14
14
  } from "./chunk-AWDFDFI3.js";
15
15
  import {
16
16
  isBlockedNetworkHost
17
- } from "./chunk-TTBOUHWT.js";
17
+ } from "./chunk-7Y5SMPRV.js";
18
18
  import {
19
19
  DOMParser,
20
20
  parseHTML
@@ -15,7 +15,7 @@ import {
15
15
  } from "./chunk-PBN6GBJE.js";
16
16
  import {
17
17
  parseFps
18
- } from "./chunk-SCCJUPPX.js";
18
+ } from "./chunk-RLNB3JCY.js";
19
19
 
20
20
  // src/browser/windowsCrash.ts
21
21
  var STATUS_STACK_BUFFER_OVERRUN_DEC = "3221225595";
@@ -7,16 +7,16 @@ var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  parseFeedbackRating,
9
9
  trackRenderFeedback
10
- } from "./chunk-WTGGSKAJ.js";
10
+ } from "./chunk-WH6PRFNX.js";
11
11
  import {
12
12
  shouldTrack
13
- } from "./chunk-X2GKNLHE.js";
13
+ } from "./chunk-VR5UQWGV.js";
14
14
  import {
15
15
  c
16
16
  } from "./chunk-ZTZA4UWZ.js";
17
17
  import {
18
18
  detectAgentRuntime
19
- } from "./chunk-OEJQAXS3.js";
19
+ } from "./chunk-MIOBYUXT.js";
20
20
  import {
21
21
  readConfig,
22
22
  writeConfig
@@ -83,7 +83,7 @@ async function maybePromptRenderFeedback(opts) {
83
83
  async function getDoctorSummary() {
84
84
  try {
85
85
  const [{ getSystemMeta }, { findFFmpeg }] = await Promise.all([
86
- import("./system-SXBUUXBG.js"),
86
+ import("./system-ZWIBWWE6.js"),
87
87
  import("./ffmpeg-QIUFEFTY.js")
88
88
  ]);
89
89
  const sys = getSystemMeta();
@@ -14,9 +14,13 @@ import {
14
14
  describeRejectedPythonOverride,
15
15
  hasPythonModules
16
16
  } from "./chunk-5ETJX6WM.js";
17
+ import {
18
+ OPTIONAL_PACKAGES,
19
+ installedOptionalPackageVersion
20
+ } from "./chunk-3DKN5WKL.js";
17
21
  import {
18
22
  runEnvironmentChecks
19
- } from "./chunk-ADXD2HP4.js";
23
+ } from "./chunk-UUMK6VME.js";
20
24
  import {
21
25
  c
22
26
  } from "./chunk-ZTZA4UWZ.js";
@@ -25,31 +29,27 @@ import {
25
29
  getFreeDiskMb,
26
30
  getShmSizeMb,
27
31
  getSystemMeta
28
- } from "./chunk-OEJQAXS3.js";
32
+ } from "./chunk-MIOBYUXT.js";
29
33
  import {
30
34
  defineCommand
31
35
  } from "./chunk-S3S4TGEH.js";
32
36
  import {
33
37
  resolveExtractCacheDir
34
- } from "./chunk-TTBOUHWT.js";
38
+ } from "./chunk-7Y5SMPRV.js";
35
39
  import {
36
40
  getUpdateMeta,
37
41
  withMeta
38
- } from "./chunk-2DQ356HE.js";
42
+ } from "./chunk-YNBXJWSD.js";
39
43
  import {
40
44
  CONFIG_PATH,
41
45
  withFileLock
42
46
  } from "./chunk-XUXGIA7H.js";
43
47
  import {
44
48
  VERSION
45
- } from "./chunk-WYX6L7AV.js";
49
+ } from "./chunk-P75OFLZN.js";
46
50
  import {
47
51
  normalizeErrorMessage
48
52
  } from "./chunk-KNU5COPB.js";
49
- import {
50
- OPTIONAL_PACKAGES,
51
- installedOptionalPackageVersion
52
- } from "./chunk-XT5P4QMO.js";
53
53
 
54
54
  // src/commands/doctor.ts
55
55
  import { execFileSync, execSync } from "child_process";
@@ -19,7 +19,7 @@ import {
19
19
  import {
20
20
  formatVariableValidationIssue,
21
21
  validateVariables
22
- } from "./chunk-SCCJUPPX.js";
22
+ } from "./chunk-RLNB3JCY.js";
23
23
  import {
24
24
  extractCompositionMetadata
25
25
  } from "./chunk-OZUQF4NB.js";
@@ -4,6 +4,9 @@ import { dirname as __hf_dirname } from "node:path";
4
4
  var require = __hf_createRequire(import.meta.url);
5
5
  var __filename = __hf_fileURLToPath(import.meta.url);
6
6
  var __dirname = __hf_dirname(__filename);
7
+ import {
8
+ loadOptionalPackage
9
+ } from "./chunk-3DKN5WKL.js";
7
10
  import {
8
11
  ensureModel,
9
12
  selectProviders
@@ -16,10 +19,7 @@ import {
16
19
  import {
17
20
  DEFAULT_VP9_CPU_USED,
18
21
  renderProvenanceArgs
19
- } from "./chunk-TTBOUHWT.js";
20
- import {
21
- loadOptionalPackage
22
- } from "./chunk-XT5P4QMO.js";
22
+ } from "./chunk-7Y5SMPRV.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-A7PS67DT.js");
205
+ const engine = await import("./src-YO7MAWGD.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 };