hyperframes 0.8.142 → 0.8.143

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 (189) hide show
  1. package/dist/{add-YS2RCWEK.js → add-Q5EYDUAY.js} +18 -17
  2. package/dist/{animatedGifPrep-SAMCDT7T.js → animatedGifPrep-H2DUQEZ3.js} +15 -14
  3. package/dist/{asset-BLWC2NWB.js → asset-C7JBYYX4.js} +4 -4
  4. package/dist/{assetCataloger-FVNBBRP3.js → assetCataloger-FRO4G6OU.js} +8 -7
  5. package/dist/{auth-DRZB7OAC.js → auth-FRWLCO36.js} +1 -1
  6. package/dist/{autoUpdate-I5I3BOJK.js → autoUpdate-E4OZXQK6.js} +2 -2
  7. package/dist/{backgroundChecks-VR2QHGNY.js → backgroundChecks-FSUVHN5L.js} +3 -3
  8. package/dist/backgroundChecksWorker.js +3 -3
  9. package/dist/{batchRender-4YUHQI6X.js → batchRender-4U73BYTU.js} +11 -10
  10. package/dist/{beats-7OT7ALV3.js → beats-U6KJWF35.js} +32 -27
  11. package/dist/{benchmark-Q2XQCRTR.js → benchmark-5ONT7V7B.js} +15 -14
  12. package/dist/{browser-7VAWQQZC.js → browser-R4DU46IE.js} +4 -4
  13. package/dist/{bundleWithLocalizedFonts-DDMLLL2R.js → bundleWithLocalizedFonts-VH55VOAL.js} +2 -2
  14. package/dist/{capture-HEJS6M5A.js → capture-26G2DPSI.js} +18 -17
  15. package/dist/{capture-U7ABPKS5.js → capture-OGQAEYKO.js} +2 -2
  16. package/dist/{catalog-DVJ3XPDN.js → catalog-RKORTIUE.js} +19 -18
  17. package/dist/{catch-up-DF6AVSN2.js → catch-up-4OBERRQO.js} +5 -5
  18. package/dist/{check-KXORRWAE.js → check-P2XDN57S.js} +43 -42
  19. package/dist/{checkBrowser-J7HZJTRH.js → checkBrowser-NTGJGAEA.js} +42 -41
  20. package/dist/{chunk-EFDXGAAD.js → chunk-2LBBHMKT.js} +1 -1
  21. package/dist/{chunk-IDX52YJN.js → chunk-33RZPZ4K.js} +189 -42
  22. package/dist/{chunk-JU6Y5TTZ.js → chunk-3NE7ZYU2.js} +2 -2
  23. package/dist/{chunk-TQFG7HTI.js → chunk-3RM2ETQT.js} +0 -168
  24. package/dist/{chunk-PFCFR3KZ.js → chunk-442JNXRM.js} +1 -1
  25. package/dist/{chunk-YFT3BL7N.js → chunk-4M4EC7JX.js} +19 -12
  26. package/dist/{chunk-AM5L5YIA.js → chunk-4OA4LDTU.js} +1 -1
  27. package/dist/{chunk-LQASVU3I.js → chunk-5FISWJ37.js} +12 -4
  28. package/dist/{chunk-JYYOAKHS.js → chunk-6IIGT7BX.js} +1 -1
  29. package/dist/chunk-6TPZSTCL.js +3681 -0
  30. package/dist/{chunk-QGRFOOLE.js → chunk-6XMFEICO.js} +263 -75
  31. package/dist/{chunk-YHRZQJXH.js → chunk-7UYBQ6NF.js} +260 -67
  32. package/dist/{chunk-U7E736AJ.js → chunk-BFDJ63J5.js} +32 -14
  33. package/dist/{chunk-WCJGTLPF.js → chunk-BHVFTYSI.js} +6 -3
  34. package/dist/{chunk-B6SMSALD.js → chunk-BT27OYYX.js} +9 -9
  35. package/dist/{chunk-IXCTG2WY.js → chunk-BYK73CR7.js} +4 -4
  36. package/dist/{chunk-75JJVANE.js → chunk-CLOH4LIB.js} +3 -3
  37. package/dist/{chunk-H2X52H2N.js → chunk-DF2BHILQ.js} +3 -3
  38. package/dist/{chunk-DPHJKWP5.js → chunk-F26LCYRY.js} +42 -34
  39. package/dist/{chunk-5Z63TBTX.js → chunk-FH7WODJH.js} +1 -1
  40. package/dist/{chunk-LTGGTEMA.js → chunk-FVYXDXEV.js} +2 -2
  41. package/dist/{chunk-KYN364DU.js → chunk-GNBGPUJ7.js} +6 -8
  42. package/dist/{chunk-RVCWIIZ7.js → chunk-GV5R5B7Q.js} +1 -1
  43. package/dist/{chunk-FZK35GT4.js → chunk-HC7EVDEL.js} +1 -1
  44. package/dist/{chunk-MVTUV4TP.js → chunk-HLYOEIWM.js} +14 -6
  45. package/dist/{chunk-WSGY5CDQ.js → chunk-HMT2RPZU.js} +6 -6
  46. package/dist/{chunk-JOTLPC6S.js → chunk-HW4AKJ5F.js} +1 -1
  47. package/dist/{chunk-IMY4QQTQ.js → chunk-I7QGQAZM.js} +8 -8
  48. package/dist/{chunk-JFKL3WAE.js → chunk-IWFLMU2N.js} +104 -19
  49. package/dist/{chunk-IHFUKJOR.js → chunk-K2FLNJVB.js} +8 -2
  50. package/dist/chunk-KJJLA674.js +121 -0
  51. package/dist/{chunk-BPZVDBHY.js → chunk-KO5QBV73.js} +1 -1
  52. package/dist/{chunk-WGVOWWVK.js → chunk-KQLGTGE5.js} +3 -3
  53. package/dist/{chunk-R2JEKLDZ.js → chunk-LVX6NK36.js} +3 -3
  54. package/dist/{chunk-6UYZB4TY.js → chunk-LW6HO6U3.js} +4 -4
  55. package/dist/{chunk-OZUQF4NB.js → chunk-MQZVBHEY.js} +123 -8
  56. package/dist/{chunk-7FCDA4RH.js → chunk-N3DQEVSI.js} +2 -2
  57. package/dist/{chunk-A4KQZXZI.js → chunk-NE55C6S5.js} +4 -2
  58. package/dist/{chunk-6RAD4BCC.js → chunk-OBXQRJWQ.js} +2 -2
  59. package/dist/{chunk-LBKDQKWV.js → chunk-OSSHSIMD.js} +1 -1
  60. package/dist/{chunk-TY6XOHEM.js → chunk-P7THMINS.js} +3 -3
  61. package/dist/{chunk-HMUF7FEO.js → chunk-PAGIICKN.js} +2 -2
  62. package/dist/{chunk-OSUKETIH.js → chunk-PJU63L6W.js} +1 -1
  63. package/dist/{chunk-GYE63V4P.js → chunk-POLR33RB.js} +20 -13
  64. package/dist/{chunk-7M4KAPAA.js → chunk-PUGIRFPX.js} +2 -2
  65. package/dist/{chunk-XGMNQQTJ.js → chunk-QFN7NVWM.js} +1 -1
  66. package/dist/{chunk-D2KNWIQ6.js → chunk-QFSCCQIR.js} +1 -1
  67. package/dist/{chunk-WTMUCJ6Z.js → chunk-QRKLPWEX.js} +1 -1
  68. package/dist/{chunk-XTLBLWOV.js → chunk-QVYVUCWD.js} +1 -1
  69. package/dist/{chunk-GK4AIFIH.js → chunk-SDYDNHEE.js} +34 -3
  70. package/dist/{chunk-2NCHQUPX.js → chunk-SQLK7SJL.js} +1 -1
  71. package/dist/{chunk-PMRBLBUP.js → chunk-T42U2W2R.js} +14 -2
  72. package/dist/{chunk-QXPCARFE.js → chunk-TAMQYQGJ.js} +1 -1
  73. package/dist/{chunk-PXSM4HPB.js → chunk-U3X3TPBW.js} +1 -1
  74. package/dist/{chunk-FWRNQOLT.js → chunk-UICWP23D.js} +1 -1
  75. package/dist/{chunk-OKCR3JTO.js → chunk-UM2GRYM3.js} +13 -10
  76. package/dist/{chunk-LJAU4TPS.js → chunk-VIVBA6E6.js} +2 -2
  77. package/dist/{chunk-DZEVA7DI.js → chunk-W35EKBS6.js} +2 -2
  78. package/dist/{chunk-YEIFI443.js → chunk-WPNE5NEP.js} +1 -1
  79. package/dist/{chunk-IW2CKH6A.js → chunk-XONFUK3M.js} +48 -25
  80. package/dist/{chunk-JLKMWY2T.js → chunk-Y6QL2LGO.js} +8 -5
  81. package/dist/{chunk-THXFSPLV.js → chunk-ZIRIDSDB.js} +1 -1
  82. package/dist/chunk-ZLW2V65P.js +209 -0
  83. package/dist/{chunk-6UM3R7PP.js → chunk-ZQQ3SEIE.js} +33 -32
  84. package/dist/{clean-KTHTV5G5.js → clean-YHGPY33K.js} +23 -22
  85. package/dist/cli.js +57 -159
  86. package/dist/{cloud-ARSZWALC.js → cloud-DOFI5ISR.js} +4 -4
  87. package/dist/{cloudrun-NM7RXOCL.js → cloudrun-KTZ4XDHL.js} +13 -12
  88. package/dist/commands/contrast-audit.browser.js +60 -4
  89. package/dist/commands/layout-audit.browser.js +68 -0
  90. package/dist/{compare-CY4UO3RW.js → compare-SMMIZN2C.js} +37 -36
  91. package/dist/{compiler-VTH2D3ID.js → compiler-TEXQWW6N.js} +14 -10
  92. package/dist/{component-FRUIAXIR.js → component-B3GCNGSS.js} +5 -5
  93. package/dist/{compositions-CUSY6ZYY.js → compositions-OQNZZTKF.js} +38 -33
  94. package/dist/{delete-KT3VHP4L.js → delete-EL5LVSEP.js} +4 -4
  95. package/dist/{deterministicFonts-F6WIVL2W.js → deterministicFonts-U2BIMGPG.js} +3 -3
  96. package/dist/{dist-7SZU7MA7.js → dist-5UVIRMSM.js} +7 -6
  97. package/dist/{dist-2GC6XKRQ.js → dist-XN234YFQ.js} +41 -39
  98. package/dist/{doctor-4ROTBL5U.js → doctor-UOL3OI2A.js} +17 -16
  99. package/dist/{dom-IROKGVJI.js → dom-37K6YOH4.js} +2 -2
  100. package/dist/{events-Q5PXT5UC.js → events-K2DB2PBC.js} +2 -2
  101. package/dist/{events-QJDVMKSR.js → events-NIZBS6S7.js} +3 -3
  102. package/dist/{feedback-PQ7TWESA.js → feedback-QMP4E6L7.js} +13 -12
  103. package/dist/{figma-JN5DDBDS.js → figma-2AUJRNVC.js} +3 -3
  104. package/dist/fontLocalizeCli.js +18 -17
  105. package/dist/{get-KT6OTERO.js → get-P5NC7SRM.js} +4 -4
  106. package/dist/{gpuPolicy-LCBWVGEH.js → gpuPolicy-7N5MCE2G.js} +15 -14
  107. package/dist/{grade-compare-VS3RP73G.js → grade-compare-HV5AFZ6P.js} +37 -36
  108. package/dist/{help-AD6FIZIO.js → help-3TSTXBLN.js} +1 -1
  109. package/dist/{history-ZRWYRY7R.js → history-D65XFJ6D.js} +6 -6
  110. package/dist/hyperframe-runtime.js +25 -25
  111. package/dist/hyperframe.manifest.json +1 -1
  112. package/dist/hyperframe.runtime.iife.js +25 -25
  113. package/dist/hyperframes-player.global.js +3 -3
  114. package/dist/hyperframes-slideshow.global.js +23 -23
  115. package/dist/{info-WBBQA2AX.js → info-TXV7MLFO.js} +17 -16
  116. package/dist/{init-A2XBDFGF.js → init-OSDMJZJV.js} +38 -37
  117. package/dist/{inspect-CLTZHA5O.js → inspect-RQQSAYIJ.js} +38 -37
  118. package/dist/{installer-WQDRVXH4.js → installer-CDOB32HE.js} +11 -10
  119. package/dist/{keyframes-3FYOK6H6.js → keyframes-V75Q6GRM.js} +10 -10
  120. package/dist/{lambda-Y2PA2BGS.js → lambda-RODV4RCX.js} +12 -11
  121. package/dist/{layout-4KP5O7IJ.js → layout-IZAI5SFC.js} +38 -37
  122. package/dist/{lint-V4GRFHOJ.js → lint-PLXOXY5R.js} +14 -13
  123. package/dist/{lintProject-RG2KGAXB.js → lintProject-OQ6H6XBR.js} +7 -6
  124. package/dist/{list-OQ4VED6E.js → list-BQBPNKDZ.js} +5 -5
  125. package/dist/{login-W47NKN5S.js → login-NP6F4FHC.js} +4 -4
  126. package/dist/{manager-DXB7JDHU.js → manager-GXYF4AVO.js} +2 -2
  127. package/dist/{manager-524RPYO7.js → manager-RFZNG5YT.js} +2 -2
  128. package/dist/{media-treatment-HJYL3EME.js → media-treatment-PXGMZ4A4.js} +22 -20
  129. package/dist/{models-DYBAD2GQ.js → models-CEZM6XZ7.js} +17 -16
  130. package/dist/{motionShot-7NE2YBB3.js → motionShot-R4GHYWYM.js} +25 -24
  131. package/dist/{normalize-IGLHCWTF.js → normalize-H6KUHHEI.js} +18 -7
  132. package/dist/{normalize-audio-INKCLMS2.js → normalize-audio-MQ7NFCOV.js} +10 -6
  133. package/dist/{open-TYC5THVY.js → open-AKQTGNXF.js} +5 -5
  134. package/dist/{pipeline-EVKEPQEW.js → pipeline-SYJYP2RM.js} +17 -16
  135. package/dist/{play-QMZEM6X3.js → play-NBH4B7PL.js} +31 -29
  136. package/dist/{present-Y7IK3C4W.js → present-XAX55CFS.js} +26 -25
  137. package/dist/{preview-5OQRYE6A.js → preview-OLANKNFA.js} +26 -25
  138. package/dist/{producer-Q6G6JU7B.js → producer-Q6YNZZUJ.js} +1 -1
  139. package/dist/{projectConfig-RJN3DKDB.js → projectConfig-EM26P45P.js} +13 -12
  140. package/dist/{publication-QCPGGN3U.js → publication-OXWJZKSX.js} +8 -7
  141. package/dist/{publish-VZLFIGYY.js → publish-4VBWP2UB.js} +17 -16
  142. package/dist/{remove-background-TKOEHBA5.js → remove-background-REB7427G.js} +19 -18
  143. package/dist/{render-XTXE5CRU.js → render-3CVZ2SZG.js} +13 -12
  144. package/dist/{render-KIIIF6PS.js → render-K25YOG3M.js} +19 -18
  145. package/dist/{render-X3NFNVEQ.js → render-TSE75QUL.js} +35 -34
  146. package/dist/{render-batch-M55YZLZ5.js → render-batch-GGUOK3DS.js} +13 -12
  147. package/dist/{renderCancellation-X5BEHAZU.js → renderCancellation-PZRWB53I.js} +15 -14
  148. package/dist/renderSetupWorker.js +7 -6
  149. package/dist/{resolver-GAMXRA42.js → resolver-S5VK6UCB.js} +10 -9
  150. package/dist/{sherpa-ZYTNFHD5.js → sherpa-LVIUEAGF.js} +18 -17
  151. package/dist/skills/hyperframes-cli/references/doctor-browser.md +24 -1
  152. package/dist/skills/media-use/scripts/lib/cache.mjs +28 -14
  153. package/dist/skills/media-use/scripts/lib/cache.test.mjs +110 -0
  154. package/dist/skills/media-use/scripts/lib/duck.mjs +2 -1
  155. package/dist/skills/media-use/scripts/lib/duck.test.mjs +87 -0
  156. package/dist/skills/media-use/scripts/lib/probe.mjs +6 -1
  157. package/dist/skills/media-use/scripts/lib/probe.test.mjs +73 -0
  158. package/dist/skills/media-use/scripts/lib/words.mjs +1 -1
  159. package/dist/{skills-CZHVAD3J.js → skills-I65FU5HD.js} +5 -5
  160. package/dist/{skillsUpdateCheck-6WLLX53A.js → skillsUpdateCheck-J57RNNIV.js} +3 -3
  161. package/dist/{slideshow-EJ4IMY6P.js → slideshow-4OJEPWNZ.js} +1 -1
  162. package/dist/{snapshot-K7BTJPYQ.js → snapshot-YROOGY22.js} +42 -38
  163. package/dist/{src-3I3RH3V5.js → src-JO5JOV7Y.js} +16 -13
  164. package/dist/{src-YUW26JU5.js → src-X426BZAG.js} +17 -16
  165. package/dist/{staticProjectServer-IKCSGN2B.js → staticProjectServer-5VMBS262.js} +23 -22
  166. package/dist/studio/assets/{hyperframes-player-sAsRuV73.js → hyperframes-player-BXSuksFh.js} +3 -3
  167. package/dist/studio/assets/{index-D3Vij9t1.js → index-BgOVCqjo.js} +1 -1
  168. package/dist/studio/assets/{index-D5q2_7Gw.js → index-FgyO_5Kv.js} +1 -1
  169. package/dist/studio/assets/{index-B-wffzRH.js → index-J7jpL4pj.js} +150 -150
  170. package/dist/studio/index.html +1 -1
  171. package/dist/studio/index.js +122 -160
  172. package/dist/studio/index.js.map +1 -1
  173. package/dist/{studio-api-SQ3NXFSM.js → studio-api-VRBZUGAE.js} +22 -17
  174. package/dist/{studioServer-VVEO7XCH.js → studioServer-DBNKZ6I6.js} +50 -49
  175. package/dist/{synthesize-77PTU6C5.js → synthesize-C3IWDAXF.js} +2 -2
  176. package/dist/{telemetry-FQDKR5XA.js → telemetry-CXAX3TO3.js} +3 -3
  177. package/dist/{timeline-N6ZASFNE.js → timeline-VQ34WH7J.js} +91 -69
  178. package/dist/{tokens-2OIIBBCW.js → tokens-62R7VFAZ.js} +4 -4
  179. package/dist/{transcribe-4F6MK73N.js → transcribe-7KR7IPJA.js} +18 -17
  180. package/dist/{transcribe-7YTUCXDX.js → transcribe-XOHPPL2O.js} +11 -11
  181. package/dist/{tts-TOHSPWEG.js → tts-MUV42JXT.js} +6 -6
  182. package/dist/{updateCheck-AZ2COZFR.js → updateCheck-POYNH3B5.js} +2 -2
  183. package/dist/{upgrade-QAJEYB4X.js → upgrade-NBNOT7J2.js} +2 -2
  184. package/dist/{urlDownloader-LSMFEO3R.js → urlDownloader-3NS63A7B.js} +14 -13
  185. package/dist/{validate-GW5MDL36.js → validate-Y2QDHAEP.js} +40 -27
  186. package/dist/{video-PRNOKUK3.js → video-SJDMTSTL.js} +15 -14
  187. package/package.json +1 -1
  188. package/dist/chunk-J4UX3RS3.js +0 -3717
  189. /package/dist/{chunk-HBBJFK6I.js → chunk-APDLWWFG.js} +0 -0
@@ -20,10 +20,9 @@ import {
20
20
  duplicateElementInHtml,
21
21
  getElementScreenshotClip,
22
22
  getMimeType,
23
- requestSubPath,
24
23
  stampProjectHfIds,
25
24
  thumbnailDeviceScaleFactor
26
- } from "./chunk-YHRZQJXH.js";
25
+ } from "./chunk-7UYBQ6NF.js";
27
26
  import {
28
27
  dedupeClonedCompositionId,
29
28
  findTargetElement,
@@ -31,7 +30,7 @@ import {
31
30
  patchElementInHtml,
32
31
  removeElementFromHtml,
33
32
  splitElementInHtml
34
- } from "./chunk-OKCR3JTO.js";
33
+ } from "./chunk-UM2GRYM3.js";
35
34
  import {
36
35
  DEFAULT_HISTORY_ROOT,
37
36
  DELETED_VERSION,
@@ -53,11 +52,13 @@ import {
53
52
  pruneGoneProjectHistories,
54
53
  settledFileTag
55
54
  } from "./chunk-QZ3AZTXI.js";
56
- import "./chunk-U7E736AJ.js";
55
+ import {
56
+ requestSubPath
57
+ } from "./chunk-BFDJ63J5.js";
57
58
  import {
58
59
  CACHE_DIR_NAME,
59
60
  cleanupProxyCache
60
- } from "./chunk-6UM3R7PP.js";
61
+ } from "./chunk-ZQQ3SEIE.js";
61
62
  import {
62
63
  STUDIO_MOTION_PATH,
63
64
  createStudioMotionRenderBodyScript,
@@ -71,28 +72,31 @@ import {
71
72
  createStudioPositionSeekReapplyScript
72
73
  } from "./chunk-KC5XXX3X.js";
73
74
  import "./chunk-TJSTGSAW.js";
74
- import "./chunk-DPHJKWP5.js";
75
- import "./chunk-A4KQZXZI.js";
76
- import "./chunk-YFT3BL7N.js";
77
- import "./chunk-OZUQF4NB.js";
78
- import "./chunk-DPVXBVLL.js";
79
- import "./chunk-J4UX3RS3.js";
75
+ import "./chunk-F26LCYRY.js";
76
+ import "./chunk-NE55C6S5.js";
77
+ import "./chunk-4M4EC7JX.js";
78
+ import "./chunk-6TPZSTCL.js";
80
79
  import "./chunk-VC76R6W2.js";
81
80
  import "./chunk-YA62XGXS.js";
81
+ import "./chunk-MQZVBHEY.js";
82
82
  import {
83
83
  isSafePath
84
84
  } from "./chunk-OFQWTKPW.js";
85
+ import "./chunk-DPVXBVLL.js";
85
86
  import "./chunk-T76PLPD6.js";
86
87
  import "./chunk-FXMKHHPO.js";
87
88
  import "./chunk-RQVDTPGD.js";
88
- import "./chunk-IW2CKH6A.js";
89
- import "./chunk-JFKL3WAE.js";
90
- import "./chunk-HBBJFK6I.js";
89
+ import "./chunk-XONFUK3M.js";
90
+ import "./chunk-IWFLMU2N.js";
91
+ import "./chunk-APDLWWFG.js";
91
92
  import "./chunk-PJ3HDUCY.js";
92
- import "./chunk-TQFG7HTI.js";
93
- import "./chunk-GK4AIFIH.js";
93
+ import "./chunk-3RM2ETQT.js";
94
+ import {
95
+ decodeWellFormedEscapes
96
+ } from "./chunk-ZLW2V65P.js";
97
+ import "./chunk-SDYDNHEE.js";
94
98
  import "./chunk-2PSPARWP.js";
95
- import "./chunk-PMRBLBUP.js";
99
+ import "./chunk-T42U2W2R.js";
96
100
  import "./chunk-M2WBOQ2Q.js";
97
101
  export {
98
102
  DEFAULT_HISTORY_ROOT,
@@ -125,6 +129,7 @@ export {
125
129
  createStudioManualEditsRenderBodyScript,
126
130
  createStudioMotionRenderBodyScript,
127
131
  createStudioPositionSeekReapplyScript,
132
+ decodeWellFormedEscapes,
128
133
  dedupeClonedCompositionId,
129
134
  duplicateElementInHtml,
130
135
  fileContentVersion,
@@ -6,22 +6,22 @@ var __filename = __hf_fileURLToPath(import.meta.url);
6
6
  var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  seekCompositionTimeline
9
- } from "./chunk-WSGY5CDQ.js";
10
- import "./chunk-5Z63TBTX.js";
11
- import "./chunk-OSUKETIH.js";
9
+ } from "./chunk-HMT2RPZU.js";
10
+ import "./chunk-FH7WODJH.js";
11
+ import "./chunk-PJU63L6W.js";
12
12
  import {
13
13
  renderJobObservabilityTelemetryPayload,
14
14
  renderObservabilityTelemetryPayload
15
15
  } from "./chunk-VXVRPIJA.js";
16
- import "./chunk-TY6XOHEM.js";
17
- import "./chunk-YEIFI443.js";
16
+ import "./chunk-P7THMINS.js";
17
+ import "./chunk-WPNE5NEP.js";
18
18
  import {
19
19
  HANDOFF_READY,
20
20
  desktopDownloadUrl,
21
21
  desktopInstalled,
22
22
  openInDesktop
23
23
  } from "./chunk-EDUBJPGL.js";
24
- import "./chunk-IHFUKJOR.js";
24
+ import "./chunk-K2FLNJVB.js";
25
25
  import {
26
26
  PREVIEW_BUNDLE_OPTIONS,
27
27
  affectsPreview,
@@ -34,8 +34,8 @@ import {
34
34
  getMimeType,
35
35
  stampProjectHfIds,
36
36
  thumbnailDeviceScaleFactor
37
- } from "./chunk-YHRZQJXH.js";
38
- import "./chunk-OKCR3JTO.js";
37
+ } from "./chunk-7UYBQ6NF.js";
38
+ import "./chunk-UM2GRYM3.js";
39
39
  import {
40
40
  DEFAULT_HISTORY_ROOT,
41
41
  DELETED_VERSION,
@@ -49,8 +49,8 @@ import {
49
49
  identifyFileWrite,
50
50
  openProjectHistory
51
51
  } from "./chunk-QZ3AZTXI.js";
52
- import "./chunk-U7E736AJ.js";
53
- import "./chunk-6UM3R7PP.js";
52
+ import "./chunk-BFDJ63J5.js";
53
+ import "./chunk-ZQQ3SEIE.js";
54
54
  import "./chunk-G75ENCEZ.js";
55
55
  import "./chunk-DCAI5DBR.js";
56
56
  import {
@@ -60,20 +60,20 @@ import {
60
60
  import {
61
61
  resolveCaptureBrowserGpuMode,
62
62
  resolveLocalBrowserGpuMode
63
- } from "./chunk-WTMUCJ6Z.js";
63
+ } from "./chunk-QRKLPWEX.js";
64
64
  import {
65
65
  resolveRenderBrowser
66
66
  } from "./chunk-KOEWEFHK.js";
67
- import "./chunk-PFCFR3KZ.js";
67
+ import "./chunk-442JNXRM.js";
68
68
  import {
69
69
  resolveAutoProxy
70
- } from "./chunk-EFDXGAAD.js";
70
+ } from "./chunk-2LBBHMKT.js";
71
71
  import "./chunk-XT7X6QCP.js";
72
72
  import "./chunk-4YYJOFKS.js";
73
73
  import "./chunk-HVW7ABXD.js";
74
- import "./chunk-JOTLPC6S.js";
75
- import "./chunk-75JJVANE.js";
76
- import "./chunk-QXPCARFE.js";
74
+ import "./chunk-HW4AKJ5F.js";
75
+ import "./chunk-CLOH4LIB.js";
76
+ import "./chunk-TAMQYQGJ.js";
77
77
  import "./chunk-AWDFDFI3.js";
78
78
  import "./chunk-P6LJ4Y32.js";
79
79
  import "./chunk-TVCRUG2S.js";
@@ -81,12 +81,12 @@ import "./chunk-374QQGBQ.js";
81
81
  import {
82
82
  trackRenderComplete,
83
83
  trackRenderError
84
- } from "./chunk-XGMNQQTJ.js";
84
+ } from "./chunk-QFN7NVWM.js";
85
85
  import {
86
86
  canaryDecisionsForStudio,
87
87
  resetTelemetryPostureCache,
88
88
  shouldTrack
89
- } from "./chunk-LBKDQKWV.js";
89
+ } from "./chunk-OSSHSIMD.js";
90
90
  import "./chunk-VWG7OQKU.js";
91
91
  import {
92
92
  bytesToMb,
@@ -103,21 +103,21 @@ import "./chunk-TJSTGSAW.js";
103
103
  import {
104
104
  assertWebGpuAdapterAvailable,
105
105
  compositionRequiresWebGpu
106
- } from "./chunk-IDX52YJN.js";
107
- import "./chunk-DPHJKWP5.js";
108
- import "./chunk-A4KQZXZI.js";
106
+ } from "./chunk-33RZPZ4K.js";
107
+ import "./chunk-F26LCYRY.js";
108
+ import "./chunk-NE55C6S5.js";
109
109
  import "./chunk-USDEMXXL.js";
110
110
  import {
111
111
  fpsToNumber
112
- } from "./chunk-YFT3BL7N.js";
113
- import "./chunk-OZUQF4NB.js";
114
- import "./chunk-DPVXBVLL.js";
115
- import "./chunk-J4UX3RS3.js";
112
+ } from "./chunk-4M4EC7JX.js";
113
+ import "./chunk-6TPZSTCL.js";
116
114
  import "./chunk-VC76R6W2.js";
117
115
  import "./chunk-YA62XGXS.js";
116
+ import "./chunk-MQZVBHEY.js";
118
117
  import {
119
118
  realpath
120
119
  } from "./chunk-OFQWTKPW.js";
120
+ import "./chunk-DPVXBVLL.js";
121
121
  import "./chunk-T76PLPD6.js";
122
122
  import "./chunk-FXMKHHPO.js";
123
123
  import "./chunk-RQVDTPGD.js";
@@ -126,16 +126,17 @@ import {
126
126
  runRenderSetupWorker
127
127
  } from "./chunk-LCSMOLGX.js";
128
128
  import "./chunk-TWWSYAKJ.js";
129
- import "./chunk-IW2CKH6A.js";
129
+ import "./chunk-XONFUK3M.js";
130
130
  import {
131
131
  isWithinProjectRoot
132
- } from "./chunk-JFKL3WAE.js";
133
- import "./chunk-HBBJFK6I.js";
132
+ } from "./chunk-IWFLMU2N.js";
133
+ import "./chunk-APDLWWFG.js";
134
134
  import "./chunk-PJ3HDUCY.js";
135
- import "./chunk-TQFG7HTI.js";
136
- import "./chunk-GK4AIFIH.js";
135
+ import "./chunk-3RM2ETQT.js";
136
+ import "./chunk-ZLW2V65P.js";
137
+ import "./chunk-SDYDNHEE.js";
137
138
  import "./chunk-2PSPARWP.js";
138
- import "./chunk-PMRBLBUP.js";
139
+ import "./chunk-T42U2W2R.js";
139
140
  import "./chunk-K4WIOZFP.js";
140
141
  import {
141
142
  readConfig,
@@ -147,7 +148,7 @@ import {
147
148
  } from "./chunk-ISN5GRYI.js";
148
149
  import {
149
150
  VERSION
150
- } from "./chunk-DZEVA7DI.js";
151
+ } from "./chunk-W35EKBS6.js";
151
152
  import "./chunk-KNU5COPB.js";
152
153
  import "./chunk-3GXQPCJC.js";
153
154
  import "./chunk-ZTZA4UWZ.js";
@@ -355,7 +356,7 @@ var ENTRY_TS = resolve(__dirname, "..", "..", "..", "core", "src", "runtime", "e
355
356
  async function buildFromSource() {
356
357
  if (!existsSync(ENTRY_TS)) return null;
357
358
  try {
358
- const mod = await import("./dist-2GC6XKRQ.js");
359
+ const mod = await import("./dist-XN234YFQ.js");
359
360
  if (typeof mod.loadHyperframeRuntimeSource === "function") {
360
361
  const source = mod.loadHyperframeRuntimeSource();
361
362
  if (source) return source;
@@ -366,7 +367,7 @@ async function buildFromSource() {
366
367
  }
367
368
  async function getInlinedRuntime() {
368
369
  try {
369
- const mod = await import("./dist-2GC6XKRQ.js");
370
+ const mod = await import("./dist-XN234YFQ.js");
370
371
  if (typeof mod.getHyperframeRuntimeScript === "function") {
371
372
  return mod.getHyperframeRuntimeScript() ?? null;
372
373
  }
@@ -709,13 +710,13 @@ var RENDER_SHUTDOWN_WAIT_MS = 2e3;
709
710
  var IMMUTABLE_CACHE_CONTROL = "public, max-age=31536000, immutable";
710
711
  var REMOTE_GIF_IMG_SRC_RE = /<img\b[^>]*?\bsrc\s*=\s*["'](https?:\/\/[^"']+\.gif(?:[?#][^"']*)?)["'][^>]*>/gi;
711
712
  async function loadStudioProducer() {
712
- if (!isDevMode()) return await import("./src-YUW26JU5.js");
713
+ if (!isDevMode()) return await import("./src-X426BZAG.js");
713
714
  if (!process.versions.bun) {
714
715
  throw new Error(
715
716
  "Studio dev-mode rendering requires bun (the producer is loaded from TypeScript source, which Node cannot resolve). Restart the studio with `bun run studio`."
716
717
  );
717
718
  }
718
- return await import("./src-YUW26JU5.js");
719
+ return await import("./src-X426BZAG.js");
719
720
  }
720
721
  function resolveDistDir() {
721
722
  return resolveStudioBundle().dir;
@@ -829,7 +830,7 @@ async function getThumbnailBrowser(requestedGpuMode, isShuttingDown) {
829
830
  try {
830
831
  if (isShuttingDown()) return null;
831
832
  const { ensureBrowser } = await import("./manager-CT3D67CG.js");
832
- const { acquireBrowser, buildChromeArgs } = await import("./src-3I3RH3V5.js");
833
+ const { acquireBrowser, buildChromeArgs } = await import("./src-JO5JOV7Y.js");
833
834
  let executablePath;
834
835
  try {
835
836
  const b = await ensureBrowser({ preferManagedChrome: true });
@@ -979,7 +980,7 @@ function createStudioServer(options) {
979
980
  resolveProject: (id) => id === projectId ? project : null,
980
981
  async bundle(dir, options2) {
981
982
  try {
982
- const { bundleToSingleHtml } = await import("./compiler-VTH2D3ID.js");
983
+ const { bundleToSingleHtml } = await import("./compiler-TEXQWW6N.js");
983
984
  let html = await bundleToSingleHtml(dir, { ...PREVIEW_BUNDLE_OPTIONS, ...options2 });
984
985
  html = html.replace(
985
986
  'data-hyperframes-preview-runtime="1" src=""',
@@ -992,9 +993,9 @@ function createStudioServer(options) {
992
993
  }
993
994
  },
994
995
  async transformPreviewHtml({ html, project: project2 }) {
995
- const { injectDeterministicFontFaces } = await import("./deterministicFonts-F6WIVL2W.js");
996
- const { prepareAnimatedGifInputs } = await import("./animatedGifPrep-SAMCDT7T.js");
997
- const { downloadToTemp, writeUrlDownloadTelemetry } = await import("./urlDownloader-LSMFEO3R.js");
996
+ const { injectDeterministicFontFaces } = await import("./deterministicFonts-U2BIMGPG.js");
997
+ const { prepareAnimatedGifInputs } = await import("./animatedGifPrep-H2DUQEZ3.js");
998
+ const { downloadToTemp, writeUrlDownloadTelemetry } = await import("./urlDownloader-3NS63A7B.js");
998
999
  const gifOutputDir = join2(project2.dir, ".hyperframes", "prepared-assets", "gif");
999
1000
  const gifDownloadDir = join2(project2.dir, ".hyperframes", "prepared-assets", "downloads");
1000
1001
  const prepared = await prepareAnimatedGifInputs(html, {
@@ -1018,7 +1019,7 @@ function createStudioServer(options) {
1018
1019
  if (resolve2(dir) === resolve2(projectDir)) cachedProjectSignature = null;
1019
1020
  },
1020
1021
  async lint(html, opts) {
1021
- const { lintHyperframeHtml } = await import("./dist-7SZU7MA7.js");
1022
+ const { lintHyperframeHtml } = await import("./dist-5UVIRMSM.js");
1022
1023
  return await lintHyperframeHtml(html, { ...opts, host: "studio" });
1023
1024
  },
1024
1025
  // Out of process: linting a large composition is seconds of synchronous parsing, and on
@@ -1135,7 +1136,7 @@ function createStudioServer(options) {
1135
1136
  startBackgroundRemoval(opts) {
1136
1137
  return createBackgroundRemovalJob(opts, async (renderOpts) => {
1137
1138
  const sourcePipelinePath = "../background-removal/pipeline.ts";
1138
- const pipeline = await import("./pipeline-EVKEPQEW.js").catch(
1139
+ const pipeline = await import("./pipeline-SYJYP2RM.js").catch(
1139
1140
  () => import(sourcePipelinePath)
1140
1141
  );
1141
1142
  return pipeline.render(renderOpts);
@@ -1216,8 +1217,8 @@ function createStudioServer(options) {
1216
1217
  }
1217
1218
  },
1218
1219
  async listRegistryCatalog() {
1219
- const { listRegistryItems, loadAllItems } = await import("./resolver-GAMXRA42.js");
1220
- const { loadProjectConfig } = await import("./projectConfig-RJN3DKDB.js");
1220
+ const { listRegistryItems, loadAllItems } = await import("./resolver-S5VK6UCB.js");
1221
+ const { loadProjectConfig } = await import("./projectConfig-EM26P45P.js");
1221
1222
  const registry = { baseUrl: loadProjectConfig(projectDir).registry };
1222
1223
  const entries = await listRegistryItems(void 0, registry);
1223
1224
  const blockAndComponentEntries = entries.filter(
@@ -1226,9 +1227,9 @@ function createStudioServer(options) {
1226
1227
  return loadAllItems(blockAndComponentEntries, registry);
1227
1228
  },
1228
1229
  async installRegistryBlock(opts) {
1229
- const { addToProject, primaryInstalledTarget } = await import("./add-YS2RCWEK.js");
1230
- const { recordRewrittenInstall } = await import("./installer-WQDRVXH4.js");
1231
- const { registryTargetPath } = await import("./publication-QCPGGN3U.js");
1230
+ const { addToProject, primaryInstalledTarget } = await import("./add-Q5EYDUAY.js");
1231
+ const { recordRewrittenInstall } = await import("./installer-CDOB32HE.js");
1232
+ const { registryTargetPath } = await import("./publication-OXWJZKSX.js");
1232
1233
  const { result, item } = await addToProject({
1233
1234
  name: opts.blockName,
1234
1235
  projectDir: opts.project.dir,
@@ -1465,7 +1466,7 @@ function createStudioServer(options) {
1465
1466
  });
1466
1467
  const renders = [...inFlightRenders];
1467
1468
  for (const [abortController] of renders) abortController.abort();
1468
- const { killTrackedProcesses, closeBrowserPool } = await import("./src-3I3RH3V5.js");
1469
+ const { killTrackedProcesses, closeBrowserPool } = await import("./src-JO5JOV7Y.js");
1469
1470
  killTrackedProcesses();
1470
1471
  const closeBrowsers = Promise.allSettled([
1471
1472
  closeThumbnailBrowser().catch(() => {
@@ -13,11 +13,11 @@ import {
13
13
  ensureModel,
14
14
  ensureVoices,
15
15
  inferLangFromVoiceId
16
- } from "./chunk-JYYOAKHS.js";
16
+ } from "./chunk-6IIGT7BX.js";
17
17
  import {
18
18
  writeNewFileSync
19
19
  } from "./chunk-4YYJOFKS.js";
20
- import "./chunk-WCJGTLPF.js";
20
+ import "./chunk-BHVFTYSI.js";
21
21
  import "./chunk-M2WBOQ2Q.js";
22
22
 
23
23
  // src/tts/synthesize.ts
@@ -17,14 +17,14 @@ import {
17
17
  trackInitTemplate,
18
18
  trackRenderComplete,
19
19
  trackRenderError
20
- } from "./chunk-XGMNQQTJ.js";
20
+ } from "./chunk-QFN7NVWM.js";
21
21
  import {
22
22
  flush,
23
23
  flushSync,
24
24
  shouldTrack,
25
25
  showTelemetryNotice,
26
26
  trackEvent
27
- } from "./chunk-LBKDQKWV.js";
27
+ } from "./chunk-OSSHSIMD.js";
28
28
  import "./chunk-VWG7OQKU.js";
29
29
  import {
30
30
  bytesToMb,
@@ -47,7 +47,7 @@ import {
47
47
  } from "./chunk-XUXGIA7H.js";
48
48
  import "./chunk-WERLJGIC.js";
49
49
  import "./chunk-ISN5GRYI.js";
50
- import "./chunk-DZEVA7DI.js";
50
+ import "./chunk-W35EKBS6.js";
51
51
  import "./chunk-KNU5COPB.js";
52
52
  import "./chunk-ZTZA4UWZ.js";
53
53
  import "./chunk-M2WBOQ2Q.js";
@@ -6,15 +6,15 @@ var __filename = __hf_fileURLToPath(import.meta.url);
6
6
  var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  resolveProject
9
- } from "./chunk-LJAU4TPS.js";
9
+ } from "./chunk-VIVBA6E6.js";
10
10
  import {
11
11
  readCompositionFps
12
- } from "./chunk-YEIFI443.js";
13
- import "./chunk-IHFUKJOR.js";
12
+ } from "./chunk-WPNE5NEP.js";
13
+ import "./chunk-K2FLNJVB.js";
14
14
  import {
15
15
  applyFileMutations,
16
16
  duplicateElementInHtml
17
- } from "./chunk-YHRZQJXH.js";
17
+ } from "./chunk-7UYBQ6NF.js";
18
18
  import {
19
19
  findSyncPartner,
20
20
  patchElementInHtml,
@@ -22,23 +22,28 @@ import {
22
22
  removeElementFromHtml,
23
23
  splitElementInHtml,
24
24
  syncOffsetFrames
25
- } from "./chunk-OKCR3JTO.js";
25
+ } from "./chunk-UM2GRYM3.js";
26
26
  import {
27
27
  fileContentVersion
28
28
  } from "./chunk-QZ3AZTXI.js";
29
- import "./chunk-U7E736AJ.js";
30
- import "./chunk-6UM3R7PP.js";
29
+ import "./chunk-BFDJ63J5.js";
30
+ import "./chunk-ZQQ3SEIE.js";
31
31
  import "./chunk-G75ENCEZ.js";
32
32
  import "./chunk-EOVYQ3IG.js";
33
33
  import {
34
34
  ensureDOMParser
35
- } from "./chunk-PFCFR3KZ.js";
35
+ } from "./chunk-442JNXRM.js";
36
36
  import "./chunk-374QQGBQ.js";
37
- import "./chunk-XGMNQQTJ.js";
38
- import "./chunk-LBKDQKWV.js";
37
+ import "./chunk-QFN7NVWM.js";
38
+ import "./chunk-OSSHSIMD.js";
39
39
  import "./chunk-VWG7OQKU.js";
40
40
  import "./chunk-GQJZORQP.js";
41
41
  import "./chunk-AMKC3AXA.js";
42
+ import {
43
+ assertKnownFlags,
44
+ resolveExtraPositionals
45
+ } from "./chunk-KJJLA674.js";
46
+ import "./chunk-K4WKGXRC.js";
42
47
  import {
43
48
  defineCommand
44
49
  } from "./chunk-S3S4TGEH.js";
@@ -54,11 +59,11 @@ import {
54
59
  extractMediaMetadata,
55
60
  resolveReferencedDuration,
56
61
  resolveReferencedStart
57
- } from "./chunk-IDX52YJN.js";
58
- import "./chunk-DPHJKWP5.js";
62
+ } from "./chunk-33RZPZ4K.js";
63
+ import "./chunk-F26LCYRY.js";
59
64
  import {
60
65
  ensureHfIds
61
- } from "./chunk-A4KQZXZI.js";
66
+ } from "./chunk-NE55C6S5.js";
62
67
  import "./chunk-USDEMXXL.js";
63
68
  import {
64
69
  byStart,
@@ -68,47 +73,49 @@ import {
68
73
  resolveMediaStartSeconds,
69
74
  sameInstant,
70
75
  spansShareTime
71
- } from "./chunk-YFT3BL7N.js";
72
- import {
73
- topLevelElements,
74
- trackKindOf
75
- } from "./chunk-OZUQF4NB.js";
76
- import "./chunk-DPVXBVLL.js";
76
+ } from "./chunk-4M4EC7JX.js";
77
77
  import {
78
78
  HF_AUDIO_AUTOMATION_ATTR,
79
79
  HF_AUDIO_FX_ATTR,
80
80
  parseAudioFxChain,
81
81
  parseAutomation,
82
82
  resolveAutomation
83
- } from "./chunk-J4UX3RS3.js";
83
+ } from "./chunk-6TPZSTCL.js";
84
84
  import "./chunk-VC76R6W2.js";
85
85
  import "./chunk-YA62XGXS.js";
86
+ import {
87
+ topLevelElements,
88
+ trackKindOf
89
+ } from "./chunk-MQZVBHEY.js";
86
90
  import "./chunk-OFQWTKPW.js";
91
+ import "./chunk-DPVXBVLL.js";
87
92
  import "./chunk-T76PLPD6.js";
88
93
  import "./chunk-FXMKHHPO.js";
89
94
  import "./chunk-RQVDTPGD.js";
90
95
  import "./chunk-TWWSYAKJ.js";
91
- import "./chunk-IW2CKH6A.js";
92
- import "./chunk-JFKL3WAE.js";
93
- import "./chunk-HBBJFK6I.js";
96
+ import "./chunk-XONFUK3M.js";
97
+ import "./chunk-IWFLMU2N.js";
98
+ import "./chunk-APDLWWFG.js";
94
99
  import "./chunk-PJ3HDUCY.js";
95
100
  import {
96
- parseNumeric,
101
+ parseNumeric
102
+ } from "./chunk-3RM2ETQT.js";
103
+ import {
97
104
  readMediaOffsetSeconds,
98
105
  readPlaybackRate,
99
106
  resolveMediaDuration
100
- } from "./chunk-TQFG7HTI.js";
101
- import "./chunk-GK4AIFIH.js";
107
+ } from "./chunk-ZLW2V65P.js";
108
+ import "./chunk-SDYDNHEE.js";
102
109
  import "./chunk-2PSPARWP.js";
103
- import "./chunk-PMRBLBUP.js";
110
+ import "./chunk-T42U2W2R.js";
104
111
  import {
105
112
  withMeta
106
- } from "./chunk-JLKMWY2T.js";
113
+ } from "./chunk-Y6QL2LGO.js";
107
114
  import "./chunk-K4WIOZFP.js";
108
115
  import "./chunk-XUXGIA7H.js";
109
116
  import "./chunk-WERLJGIC.js";
110
117
  import "./chunk-ISN5GRYI.js";
111
- import "./chunk-DZEVA7DI.js";
118
+ import "./chunk-W35EKBS6.js";
112
119
  import "./chunk-KNU5COPB.js";
113
120
  import "./chunk-3GXQPCJC.js";
114
121
  import "./chunk-ZTZA4UWZ.js";
@@ -394,7 +401,7 @@ var n = (v) => String(Math.round(v * 1e3) / 1e3);
394
401
  function bar(row, total) {
395
402
  if (total <= 0) return " ".repeat(BAR_WIDTH);
396
403
  const known = row.durationAuthored || row.duration > 0;
397
- const from = Math.min(BAR_WIDTH - 1, Math.floor(row.absStart / total * BAR_WIDTH));
404
+ const from = Math.max(0, Math.min(BAR_WIDTH - 1, Math.floor(row.absStart / total * BAR_WIDTH)));
398
405
  const to = known ? row.absEnd / total * BAR_WIDTH : BAR_WIDTH;
399
406
  const width = Math.max(1, Math.min(BAR_WIDTH, Math.ceil(to)) - from);
400
407
  const fill = known ? "\u2588" : "\u2591";
@@ -1326,52 +1333,67 @@ function mutationCommand(verb) {
1326
1333
  }
1327
1334
  });
1328
1335
  }
1336
+ var subCommands = {
1337
+ move: () => mutationCommand("move"),
1338
+ trim: () => mutationCommand("trim"),
1339
+ split: () => mutationCommand("split"),
1340
+ delete: () => mutationCommand("delete"),
1341
+ set: () => mutationCommand("set"),
1342
+ duplicate: () => mutationCommand("duplicate"),
1343
+ ids: () => defineCommand({
1344
+ meta: { name: "ids", description: "Stamp stable ids on timeline clips" },
1345
+ args: { dir: { type: "string" }, json: { type: "boolean", default: false } },
1346
+ async run({ args }) {
1347
+ await runIds(args);
1348
+ }
1349
+ }),
1350
+ apply: () => defineCommand({
1351
+ meta: { name: "apply", description: "Apply an atomic timeline edit plan" },
1352
+ args: {
1353
+ file: { type: "positional", required: true },
1354
+ dir: { type: "string" },
1355
+ json: { type: "boolean", default: false },
1356
+ plan: { type: "boolean", default: false }
1357
+ },
1358
+ async run({ args }) {
1359
+ await runApply(args);
1360
+ }
1361
+ }),
1362
+ undo: () => defineCommand({
1363
+ meta: { name: "undo", description: "Restore a timeline mutation receipt" },
1364
+ args: {
1365
+ receipt: { type: "positional", required: true },
1366
+ dir: { type: "string" },
1367
+ json: { type: "boolean", default: false }
1368
+ },
1369
+ async run({ args }) {
1370
+ await runUndo(args);
1371
+ }
1372
+ })
1373
+ };
1374
+ function isTimelineSubcommand(first, rawArgs) {
1375
+ if (!first || !Object.hasOwn(subCommands, first)) return false;
1376
+ const separator = rawArgs.indexOf("--");
1377
+ return separator < 0 || rawArgs.indexOf(first) < separator;
1378
+ }
1329
1379
  var timeline_default = defineCommand({
1330
1380
  meta: { name: "timeline", description: "Print and edit the project's tracks and clips" },
1331
1381
  args: {
1332
1382
  dir: { type: "positional", description: "Project directory", required: false },
1333
1383
  json: { type: "boolean", description: "Output as JSON", default: false }
1334
1384
  },
1335
- subCommands: {
1336
- move: () => mutationCommand("move"),
1337
- trim: () => mutationCommand("trim"),
1338
- split: () => mutationCommand("split"),
1339
- delete: () => mutationCommand("delete"),
1340
- set: () => mutationCommand("set"),
1341
- duplicate: () => mutationCommand("duplicate"),
1342
- ids: () => defineCommand({
1343
- meta: { name: "ids", description: "Stamp stable ids on timeline clips" },
1344
- args: { dir: { type: "string" }, json: { type: "boolean", default: false } },
1345
- async run({ args }) {
1346
- await runIds(args);
1347
- }
1348
- }),
1349
- apply: () => defineCommand({
1350
- meta: { name: "apply", description: "Apply an atomic timeline edit plan" },
1351
- args: {
1352
- file: { type: "positional", required: true },
1353
- dir: { type: "string" },
1354
- json: { type: "boolean", default: false },
1355
- plan: { type: "boolean", default: false }
1356
- },
1357
- async run({ args }) {
1358
- await runApply(args);
1359
- }
1360
- }),
1361
- undo: () => defineCommand({
1362
- meta: { name: "undo", description: "Restore a timeline mutation receipt" },
1363
- args: {
1364
- receipt: { type: "positional", required: true },
1365
- dir: { type: "string" },
1366
- json: { type: "boolean", default: false }
1367
- },
1368
- async run({ args }) {
1369
- await runUndo(args);
1370
- }
1371
- })
1385
+ subCommands,
1386
+ setup({ args, rawArgs, cmd }) {
1387
+ const first = args._[0];
1388
+ if (!first || isTimelineSubcommand(first, rawArgs)) return;
1389
+ assertKnownFlags({ args: cmd.args }, rawArgs);
1390
+ const separator = rawArgs.indexOf("--");
1391
+ const directoryIndex = rawArgs.indexOf(first);
1392
+ if (separator < 0 || directoryIndex < separator) rawArgs.splice(directoryIndex, 0, "--");
1372
1393
  },
1373
- async run({ args }) {
1374
- if (args._?.[0]) return;
1394
+ async run({ args, rawArgs, cmd }) {
1395
+ if (isTimelineSubcommand(args._[0], rawArgs)) return;
1396
+ resolveExtraPositionals({ args: cmd.args }, "timeline", args);
1375
1397
  const project = resolveProject(args.dir);
1376
1398
  ensureDOMParser();
1377
1399
  const timeline = await describeProject(project.indexPath);
@@ -11,14 +11,14 @@ import {
11
11
  tokensToVariables,
12
12
  upsertBindings,
13
13
  withFigmaErrors
14
- } from "./chunk-R2JEKLDZ.js";
15
- import "./chunk-IHFUKJOR.js";
14
+ } from "./chunk-LVX6NK36.js";
15
+ import "./chunk-K2FLNJVB.js";
16
16
  import {
17
17
  defineCommand
18
18
  } from "./chunk-S3S4TGEH.js";
19
19
  import "./chunk-PBN6GBJE.js";
20
20
  import "./chunk-VC76R6W2.js";
21
- import "./chunk-GK4AIFIH.js";
21
+ import "./chunk-SDYDNHEE.js";
22
22
  import "./chunk-ZTZA4UWZ.js";
23
23
  import "./chunk-M2WBOQ2Q.js";
24
24
 
@@ -76,7 +76,7 @@ var tokens_default = defineCommand({
76
76
  console.log("add to data-composition-variables:");
77
77
  console.log(JSON.stringify(result.entries, null, 2));
78
78
  }
79
- const { trackFigmaImport } = await import("./telemetry-FQDKR5XA.js");
79
+ const { trackFigmaImport } = await import("./telemetry-CXAX3TO3.js");
80
80
  trackFigmaImport({
81
81
  phase: "tokens",
82
82
  tokensMode: result.mode,