hyperframes 0.8.159 → 0.8.160

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 (171) hide show
  1. package/README.md +10 -0
  2. package/dist/{add-7UMRT6IJ.js → add-OGBTJCU4.js} +11 -11
  3. package/dist/{animatedGifPrep-COFZMEVD.js → animatedGifPrep-YAJTDXB7.js} +6 -6
  4. package/dist/api.js +16 -16
  5. package/dist/{asset-N37XIJTB.js → asset-DKQFFGPP.js} +2 -2
  6. package/dist/{assetCataloger-ZOQ67MGR.js → assetCataloger-BIDQA34M.js} +2 -2
  7. package/dist/audio-GK4OVVTH.js +2086 -0
  8. package/dist/{auth-GKFS2PL6.js → auth-AQMRAFXN.js} +1 -1
  9. package/dist/{autoUpdate-V4PLREDQ.js → autoUpdate-NFQB7V2X.js} +2 -2
  10. package/dist/{backgroundChecks-TVOKARY2.js → backgroundChecks-7JKE2FIU.js} +3 -3
  11. package/dist/backgroundChecksWorker.js +3 -3
  12. package/dist/{batchRender-IARQXQHN.js → batchRender-C2JCG5EK.js} +3 -3
  13. package/dist/{beats-FY4UDXBL.js → beats-C3ZSK2R2.js} +12 -12
  14. package/dist/{benchmark-ZJYFRFYF.js → benchmark-RRU67WEY.js} +8 -8
  15. package/dist/{browser-WRZOH4PD.js → browser-K4TP4ZM2.js} +5 -5
  16. package/dist/{bundleWithLocalizedFonts-SFHKZZAX.js → bundleWithLocalizedFonts-SLBVWQ7O.js} +2 -2
  17. package/dist/{capture-LLLIHYEF.js → capture-T2TBROMS.js} +2 -2
  18. package/dist/{capture-KFYPMVTT.js → capture-ZPRK3TOZ.js} +10 -10
  19. package/dist/{catalog-QO762U7V.js → catalog-IMIHQ4KX.js} +11 -11
  20. package/dist/{catch-up-MELHNTGB.js → catch-up-UY5MJWOG.js} +4 -4
  21. package/dist/{check-RX3LTKYB.js → check-6NAJSJHQ.js} +129 -118
  22. package/dist/{checkBrowser-EUUMEILI.js → checkBrowser-JWNQFYTY.js} +32 -30
  23. package/dist/{chunk-YIJMVFEJ.js → chunk-22QHO26F.js} +1 -1
  24. package/dist/{chunk-7F3B5YYT.js → chunk-2742O5DO.js} +178 -23
  25. package/dist/{chunk-HEEN6X6O.js → chunk-2ZLYSXZC.js} +8 -8
  26. package/dist/{chunk-5HNZQSO4.js → chunk-37LNY2EC.js} +1 -1
  27. package/dist/{chunk-6TDZJ43G.js → chunk-3XPVZLAR.js} +1 -1
  28. package/dist/{chunk-5RSV6DWB.js → chunk-4ID635FL.js} +1 -1
  29. package/dist/{chunk-4IKI2RYR.js → chunk-4VYNMVMC.js} +10 -10
  30. package/dist/chunk-6JR2XUEE.js +127 -0
  31. package/dist/{chunk-4D5RBIX6.js → chunk-6MCASYIS.js} +7 -7
  32. package/dist/{chunk-7XEVZDKU.js → chunk-7OFNPEKR.js} +7 -7
  33. package/dist/{chunk-BB2SFTMY.js → chunk-A2DMF2Q6.js} +6 -5
  34. package/dist/{chunk-MMYY4KV3.js → chunk-B5FZ2CQM.js} +1 -1
  35. package/dist/{chunk-IWOEAWIP.js → chunk-B7RUGHBT.js} +1 -1
  36. package/dist/{chunk-IJ7JPX4W.js → chunk-D2WGLWIK.js} +3 -3
  37. package/dist/{chunk-7RTTPSXG.js → chunk-D33YJZOH.js} +1 -1
  38. package/dist/{chunk-54DMWFQZ.js → chunk-D3ZWBHZP.js} +2 -15
  39. package/dist/{chunk-K5BMHQOU.js → chunk-D46G5IQH.js} +11 -11
  40. package/dist/{chunk-WWMFR4SH.js → chunk-DJZEIVAP.js} +3 -3
  41. package/dist/{chunk-EGJVFPUX.js → chunk-ERTJPFCH.js} +1 -1
  42. package/dist/{chunk-FEKRMXT6.js → chunk-EVRUR7DW.js} +1 -1
  43. package/dist/{chunk-DLQQA25O.js → chunk-FRGYHRP6.js} +1 -1
  44. package/dist/{chunk-UK4KRTIX.js → chunk-G642IIVK.js} +2 -2
  45. package/dist/{chunk-AEQWF7PE.js → chunk-GG37I7B3.js} +1 -1
  46. package/dist/chunk-GJQHHAAX.js +336 -0
  47. package/dist/{chunk-BEW7RCCW.js → chunk-GOASXWDD.js} +2 -2
  48. package/dist/{chunk-IKDBT5WT.js → chunk-GOTCGKX6.js} +3 -3
  49. package/dist/{chunk-HO3SITVT.js → chunk-ICZVCVD3.js} +1 -1
  50. package/dist/{chunk-5GPX4X4L.js → chunk-IGTGLGML.js} +2 -2
  51. package/dist/{chunk-KEGTYA7V.js → chunk-IK3SOMZ4.js} +5 -3
  52. package/dist/{chunk-6PIGOKTE.js → chunk-JGYHWVXQ.js} +339 -67
  53. package/dist/{chunk-NCVGBBWC.js → chunk-KRE55WLI.js} +1 -1
  54. package/dist/{chunk-JZLFHF2M.js → chunk-KWRBEDJI.js} +3 -3
  55. package/dist/{chunk-INNBWSZK.js → chunk-LYIG2GZ5.js} +2 -2
  56. package/dist/{chunk-ESOAYGIT.js → chunk-MMV6IY6U.js} +2 -2
  57. package/dist/{chunk-4DEBDQD4.js → chunk-MP676E4B.js} +2 -2
  58. package/dist/{chunk-24N3BB5M.js → chunk-MYGXKD7A.js} +5 -5
  59. package/dist/{chunk-3W3MOLRL.js → chunk-N2NDDTYW.js} +2 -2
  60. package/dist/{chunk-GGDCBVXK.js → chunk-OMJA7JP6.js} +5 -5
  61. package/dist/chunk-P47XYVEQ.js +3795 -0
  62. package/dist/{chunk-NIGOOCVS.js → chunk-P4QE7SSN.js} +1 -1
  63. package/dist/{chunk-AQXJC64X.js → chunk-PBNV5V5G.js} +1 -1
  64. package/dist/{chunk-A5RDOXZE.js → chunk-PINFPWRV.js} +5 -119
  65. package/dist/{chunk-2CEH75X3.js → chunk-PLEMSN3E.js} +2 -2
  66. package/dist/{chunk-DVAEX52Q.js → chunk-PPF65XAF.js} +1 -1
  67. package/dist/{chunk-V5J4XEBG.js → chunk-Q3TFX4OZ.js} +1 -1
  68. package/dist/{chunk-XSEGMQYA.js → chunk-QABAVWEX.js} +26 -3
  69. package/dist/{chunk-76NO4ZRM.js → chunk-RTS7BGEC.js} +1 -1
  70. package/dist/{chunk-H6BKVVU4.js → chunk-SB5DX6AD.js} +2 -2
  71. package/dist/{chunk-5YCFHCD4.js → chunk-SHVDJON6.js} +2 -2
  72. package/dist/{chunk-EWAAH7AU.js → chunk-TTFDAWCS.js} +1 -1
  73. package/dist/{chunk-MTUC2Z32.js → chunk-TU2CQJO3.js} +2 -2
  74. package/dist/{chunk-AFYZWHR7.js → chunk-V2FQQILJ.js} +2 -2
  75. package/dist/{chunk-ODE7HHNN.js → chunk-VD7WQYTO.js} +11 -9
  76. package/dist/{chunk-YITZFHRJ.js → chunk-VZ6LCTOZ.js} +1 -1
  77. package/dist/{chunk-SQHWDFTV.js → chunk-X3SCQP2A.js} +1 -1
  78. package/dist/{chunk-LBT4AMSF.js → chunk-XRKMITSS.js} +1 -1
  79. package/dist/{chunk-5O6I5ZV7.js → chunk-XTLV6UVP.js} +3 -3
  80. package/dist/{clean-RW7Z4XM6.js → clean-RRE6PMKZ.js} +18 -17
  81. package/dist/cli.js +54 -53
  82. package/dist/{cloud-EEOV7JKB.js → cloud-OIR6K7TS.js} +4 -4
  83. package/dist/{cloudrun-EZAXYVXG.js → cloudrun-BIQXBUDO.js} +3 -3
  84. package/dist/{compare-5UARQFXX.js → compare-E57W737I.js} +25 -24
  85. package/dist/{compiler-THI7BXZU.js → compiler-57M6W5WY.js} +3 -3
  86. package/dist/{component-AYOFPL33.js → component-I2O4AX56.js} +3 -3
  87. package/dist/{compositions-XJNJBOMG.js → compositions-B6NKZHIN.js} +10 -10
  88. package/dist/{delete-653AOR25.js → delete-DTUNBC6K.js} +2 -2
  89. package/dist/{dist-DLR4X3KN.js → dist-4JFB3WAR.js} +2 -2
  90. package/dist/{dist-2VXSQLXO.js → dist-ROVMAL74.js} +1 -1
  91. package/dist/{doctor-WA6VRRE7.js → doctor-SCNB73Z3.js} +12 -12
  92. package/dist/{events-XXBCP2I4.js → events-6LQNRKHZ.js} +3 -3
  93. package/dist/{events-U5COLUWT.js → events-Q37UJL36.js} +2 -2
  94. package/dist/{feedback-DX6Q3LN7.js → feedback-FOEBE2OW.js} +7 -7
  95. package/dist/{ffmpeg-2ROTISBL.js → ffmpeg-7BYARPLM.js} +4 -2
  96. package/dist/{figma-LCQVLBXF.js → figma-54MRTBKH.js} +3 -3
  97. package/dist/fontLocalizeCli.js +8 -8
  98. package/dist/{get-UYNPFMHX.js → get-EPGHM2SA.js} +2 -2
  99. package/dist/{gpuPolicy-YIW3HL3B.js → gpuPolicy-VGE3I5J4.js} +6 -6
  100. package/dist/{grade-compare-YQEYATJV.js → grade-compare-LOJWX6SK.js} +27 -26
  101. package/dist/{help-FDURC7WR.js → help-6FPZI3WP.js} +2 -1
  102. package/dist/{history-EU5UZLHT.js → history-GRXSUA5R.js} +8 -7
  103. package/dist/hyperframe-runtime.js +55 -55
  104. package/dist/hyperframe.manifest.json +1 -1
  105. package/dist/hyperframe.runtime.iife.js +55 -55
  106. package/dist/hyperframes-player.global.js +3 -3
  107. package/dist/{info-7T6CK6CL.js → info-LV7DFCLD.js} +7 -7
  108. package/dist/{init-KQYSKFVU.js → init-3J7BSAC3.js} +28 -28
  109. package/dist/{inspect-HQBV7VHS.js → inspect-5RON554C.js} +26 -25
  110. package/dist/{installer-OKKPQNKS.js → installer-T3STEB4U.js} +4 -4
  111. package/dist/{keyframes-SK74JHOA.js → keyframes-KHXTHI5C.js} +6 -6
  112. package/dist/{lambda-S2N4VTRO.js → lambda-4KCSMIM6.js} +4 -4
  113. package/dist/{layout-MTE5Y6DE.js → layout-DVWWT2TR.js} +26 -25
  114. package/dist/{lint-FJGGJYB7.js → lint-Q5WFB5ST.js} +7 -7
  115. package/dist/{lintProject-JGHKRO5L.js → lintProject-BGDYHF3F.js} +1 -1
  116. package/dist/{list-MBPALK5U.js → list-RFEUTW6N.js} +2 -2
  117. package/dist/{login-HDN4T5E4.js → login-WBHWA4M2.js} +4 -4
  118. package/dist/{manager-JNJE54OQ.js → manager-B6MVBM2E.js} +3 -3
  119. package/dist/{manager-ZLJD3EAY.js → manager-HEUPD2YB.js} +2 -2
  120. package/dist/{media-treatment-IP34DXWN.js → media-treatment-WRHVNWLS.js} +12 -11
  121. package/dist/{models-W5TASRHD.js → models-OA4MXEYG.js} +12 -12
  122. package/dist/{motionShot-2WYEMOPJ.js → motionShot-BZLRN3SS.js} +13 -13
  123. package/dist/{normalize-audio-F4NQPXII.js → normalize-audio-4YXE3RIF.js} +4 -4
  124. package/dist/{open-DRXNALDE.js → open-MCGYEFML.js} +4 -4
  125. package/dist/{parakeetRunner-VISBF2EA.js → parakeetRunner-DBLHMD5T.js} +13 -13
  126. package/dist/{pipeline-A2XOVZOM.js → pipeline-FSY65OQ4.js} +8 -8
  127. package/dist/{play-W2QELQX7.js → play-WXOV3BD7.js} +19 -18
  128. package/dist/{preflight-BH2XUQBS.js → preflight-G5KP7ZKA.js} +4 -4
  129. package/dist/{present-NHYRS4F4.js → present-RVG4J6CJ.js} +15 -14
  130. package/dist/{preview-SMJVUPXE.js → preview-PDUQR2JQ.js} +18 -18
  131. package/dist/{producer-276O3CKW.js → producer-C5V2A3YL.js} +1 -1
  132. package/dist/{projectConfig-FXFUHFPZ.js → projectConfig-X2IEHCSK.js} +6 -6
  133. package/dist/{publication-SSQO6ECV.js → publication-JEANCWBW.js} +2 -2
  134. package/dist/{publish-UHDKDXZI.js → publish-VX5OH4ST.js} +9 -9
  135. package/dist/{remove-background-IG6U56HC.js → remove-background-IXCISD26.js} +9 -9
  136. package/dist/{render-ZJPSLTKV.js → render-5BGU3FXU.js} +29 -28
  137. package/dist/{render-XQONIJEJ.js → render-ISUT7Q3X.js} +3 -3
  138. package/dist/{render-6P5RSFS3.js → render-JNJVFBFF.js} +9 -9
  139. package/dist/{render-batch-MH3Z6IPT.js → render-batch-2C6RUP3F.js} +3 -3
  140. package/dist/renderSetupWorker.js +4 -4
  141. package/dist/{resolver-JMSGO2JF.js → resolver-KTNKZVIB.js} +4 -4
  142. package/dist/{sherpa-64JLV4YM.js → sherpa-GFRG3TMM.js} +12 -12
  143. package/dist/skills/hyperframes-cli/SKILL.md +5 -4
  144. package/dist/skills/hyperframes-cli/references/lint-validate-inspect.md +8 -0
  145. package/dist/skills/hyperframes-cli/references/upgrade-info-misc.md +1 -1
  146. package/dist/{skills-UXOL62PY.js → skills-LKJA27ZN.js} +5 -5
  147. package/dist/{skillsUpdateCheck-5Y6676K6.js → skillsUpdateCheck-RFZJKZC4.js} +3 -3
  148. package/dist/{snapshot-SQBPCXOV.js → snapshot-EOYA4MLG.js} +40 -30
  149. package/dist/{src-N42CT3YR.js → src-GPUDUKY6.js} +5 -5
  150. package/dist/{src-RQMK5INS.js → src-IMCQRH4P.js} +7 -7
  151. package/dist/{staticProjectServer-AQXVWMLU.js → staticProjectServer-S3NK3V4S.js} +15 -14
  152. package/dist/studio/assets/{hyperframes-player-kqB1psAJ.js → hyperframes-player-CXL23NEv.js} +1 -1
  153. package/dist/studio/assets/{index-C3AZLr-0.js → index-Bl_xrA5T.js} +1 -1
  154. package/dist/studio/assets/{index-BrViH8hj.js → index-CejKvBNw.js} +1 -1
  155. package/dist/studio/assets/{index-X_d1b5vz.js → index-D7BvLHtZ.js} +7 -7
  156. package/dist/studio/index.html +1 -1
  157. package/dist/{studio-api-GY5D7RAP.js → studio-api-YM5HLXUS.js} +13 -8
  158. package/dist/{studioServer-O3VONODG.js → studioServer-CEXJK5TC.js} +45 -44
  159. package/dist/{telemetry-V2K5P7CI.js → telemetry-7AWYECPL.js} +3 -3
  160. package/dist/{timeline-YU3YPLKB.js → timeline-G7H373XX.js} +42 -347
  161. package/dist/{tokens-NPSSSG2A.js → tokens-GYH7NXXA.js} +2 -2
  162. package/dist/{transcribe-FNBDG24U.js → transcribe-CIC7WAT5.js} +17 -17
  163. package/dist/{transcribe-BXJNS3RZ.js → transcribe-FL6NGWHF.js} +11 -11
  164. package/dist/{updateCheck-MB3RHSVK.js → updateCheck-MQ44KGUR.js} +2 -2
  165. package/dist/{upgrade-5VNRUR37.js → upgrade-OL47SID3.js} +2 -2
  166. package/dist/{urlDownloader-WCT7FMLA.js → urlDownloader-KDJGLR2Y.js} +5 -5
  167. package/dist/{usage-EC3KFUIJ.js → usage-HG4WMM7A.js} +33 -5
  168. package/dist/{validate-UXSXRCE6.js → validate-TDCH6X3C.js} +20 -19
  169. package/dist/{video-NRNQBZMV.js → video-AHO4CDCK.js} +6 -6
  170. package/package.json +1 -1
  171. package/dist/chunk-TWBTXEDZ.js +0 -3795
@@ -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-RQMK5INS.js");
10
+ return await import("./src-IMCQRH4P.js");
11
11
  }
12
12
 
13
13
  export {
@@ -14,7 +14,7 @@ import {
14
14
  } from "./chunk-AWDFDFI3.js";
15
15
  import {
16
16
  isBlockedNetworkHost
17
- } from "./chunk-2CEH75X3.js";
17
+ } from "./chunk-PLEMSN3E.js";
18
18
  import {
19
19
  DOMParser,
20
20
  parseHTML
@@ -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
+ relinkSplitHalves
9
+ } from "./chunk-6JR2XUEE.js";
7
10
  import {
8
11
  EXCLUDED_TAGS,
9
12
  ensureHfIds,
@@ -14,14 +17,14 @@ import {
14
17
  isAllowedHtmlAttribute,
15
18
  isSafeAttributeValue,
16
19
  sanitizeRichTextChildren
17
- } from "./chunk-V5J4XEBG.js";
20
+ } from "./chunk-Q3TFX4OZ.js";
18
21
  import {
19
22
  decodedUrlPath,
20
23
  removeElementWithGsapCascade
21
24
  } from "./chunk-ALLKNYC3.js";
22
25
  import {
23
26
  require_dist
24
- } from "./chunk-7F3B5YYT.js";
27
+ } from "./chunk-2742O5DO.js";
25
28
  import {
26
29
  readClipTiming,
27
30
  writeClipTiming
@@ -138,118 +141,6 @@ function replacementTimelineAssetId(document, element, newSrc) {
138
141
  // ../studio-server/dist/chunk-JBFOY5SI.js
139
142
  var import_postcss_selector_parser = __toESM(require_dist(), 1);
140
143
  import postcss from "postcss";
141
-
142
- // ../core/dist/mediaLink.js
143
- var MEDIA_LINK_ATTR = "data-link";
144
- function readNumber(el, names, fallback) {
145
- for (const name of names) {
146
- const raw = el.getAttribute(name);
147
- if (raw === null || raw.trim() === "")
148
- continue;
149
- const value = Number(raw);
150
- if (Number.isFinite(value))
151
- return value;
152
- }
153
- return fallback;
154
- }
155
- function readLinkTiming(el) {
156
- return {
157
- start: readNumber(el, ["data-start"], 0),
158
- duration: readNumber(el, ["data-duration"], 0),
159
- mediaStart: readMediaOffsetSeconds((name) => el.getAttribute(name)),
160
- playbackRate: readNumber(el, ["data-playback-rate"], 1)
161
- };
162
- }
163
- var LINK_SCOPE_SELECTOR = "[data-composition-id], [data-composition-file]";
164
- function mintLinkId(taken) {
165
- const used = new Set(taken);
166
- let n = 1;
167
- while (used.has(`lk-${n}`))
168
- n += 1;
169
- return `lk-${n}`;
170
- }
171
- function takenLinkIds(doc) {
172
- return Array.from(doc.querySelectorAll(`[id], [${MEDIA_LINK_ATTR}], [${SYNC_ORIGIN_ATTR}]`)).flatMap((el) => [
173
- el.id,
174
- el.getAttribute(MEDIA_LINK_ATTR) ?? "",
175
- el.getAttribute(SYNC_ORIGIN_ATTR) ?? ""
176
- ]);
177
- }
178
- function renameShared(doc, ids, attr, taken) {
179
- const renamed = /* @__PURE__ */ new Map();
180
- for (const id of ids) {
181
- const el = doc.getElementById(id);
182
- const old = el?.getAttribute(attr);
183
- if (!el || !old)
184
- continue;
185
- let fresh = renamed.get(old);
186
- if (!fresh) {
187
- fresh = mintLinkId(taken);
188
- taken.add(fresh);
189
- renamed.set(old, fresh);
190
- }
191
- el.setAttribute(attr, fresh);
192
- }
193
- }
194
- function relinkSplitHalves(doc, rightHalfIds) {
195
- const taken = new Set(takenLinkIds(doc));
196
- renameShared(doc, rightHalfIds, MEDIA_LINK_ATTR, taken);
197
- renameShared(doc, idsWithBothSidesCut(doc, rightHalfIds), SYNC_ORIGIN_ATTR, taken);
198
- }
199
- function idsWithBothSidesCut(doc, rightHalfIds) {
200
- const tagsByOrigin = /* @__PURE__ */ new Map();
201
- const originOf = (id) => doc.getElementById(id)?.getAttribute(SYNC_ORIGIN_ATTR) ?? null;
202
- for (const id of rightHalfIds) {
203
- const origin = originOf(id);
204
- const tag = doc.getElementById(id)?.tagName.toLowerCase();
205
- if (!origin || !tag)
206
- continue;
207
- tagsByOrigin.set(origin, (tagsByOrigin.get(origin) ?? /* @__PURE__ */ new Set()).add(tag));
208
- }
209
- return rightHalfIds.filter((id) => {
210
- const tags = tagsByOrigin.get(originOf(id) ?? "");
211
- return tags?.has("video") === true && tags.has("audio");
212
- });
213
- }
214
- var SYNC_ORIGIN_ATTR = "data-sync-origin";
215
- var rateOf = (timing) => timing.playbackRate > 0 ? timing.playbackRate : 1;
216
- function sourceZeroTime(timing) {
217
- return timing.start - timing.mediaStart / rateOf(timing);
218
- }
219
- function syncOffsetFrames(clip, partner, fps) {
220
- if (Math.abs(rateOf(clip) - rateOf(partner)) > 1e-6)
221
- return null;
222
- const frames = Math.round((sourceZeroTime(clip) - sourceZeroTime(partner)) * fps);
223
- return Object.is(frames, -0) ? 0 : frames;
224
- }
225
- function sharedSeconds(a, b) {
226
- return Math.min(a.start + a.duration, b.start + b.duration) - Math.max(a.start, b.start);
227
- }
228
- function sameOriginInScope(el, tag, origin) {
229
- const scopeOf = (node) => node.closest(LINK_SCOPE_SELECTOR) ?? el.ownerDocument;
230
- const scope = scopeOf(el);
231
- return Array.from(scope.querySelectorAll(tag)).filter((candidate) => candidate.getAttribute(SYNC_ORIGIN_ATTR) === origin && scopeOf(candidate) === scope);
232
- }
233
- function findSyncPartner(el) {
234
- const origin = el.getAttribute(SYNC_ORIGIN_ATTR);
235
- const tag = el.tagName.toLowerCase();
236
- if (!origin || tag !== "video" && tag !== "audio")
237
- return null;
238
- const partnerTag = tag === "video" ? "audio" : "video";
239
- const own = readLinkTiming(el);
240
- let best = null;
241
- for (const candidate of sameOriginInScope(el, partnerTag, origin)) {
242
- const timing = readLinkTiming(candidate);
243
- const shared = sharedSeconds(own, timing);
244
- const distance = Math.abs(timing.start - own.start);
245
- if (!best || shared > best.shared || shared === best.shared && distance < best.distance) {
246
- best = { el: candidate, shared, distance };
247
- }
248
- }
249
- return best?.el ?? null;
250
- }
251
-
252
- // ../studio-server/dist/chunk-JBFOY5SI.js
253
144
  function parseStyleDecls(style) {
254
145
  const props = /* @__PURE__ */ new Map();
255
146
  const order = [];
@@ -753,11 +644,6 @@ function relinkSplitHalvesInHtml(source, rightHalfIds) {
753
644
  }
754
645
 
755
646
  export {
756
- MEDIA_LINK_ATTR,
757
- readLinkTiming,
758
- relinkSplitHalves,
759
- syncOffsetFrames,
760
- findSyncPartner,
761
647
  parseSourceDocument,
762
648
  findTargetElement,
763
649
  removeElementsFromHtml,
@@ -30,7 +30,7 @@ import {
30
30
  renderFrameIdForRenderId,
31
31
  resolveAuthoredTimingWindow,
32
32
  toFps
33
- } from "./chunk-V5J4XEBG.js";
33
+ } from "./chunk-Q3TFX4OZ.js";
34
34
  import {
35
35
  AUDIO_GROUP_RENDER_ID_ATTR,
36
36
  COLOR_GRADING_SOURCE_HIDDEN_ATTR,
@@ -59,7 +59,7 @@ import {
59
59
  shiftRateLane,
60
60
  sourceTimeAt,
61
61
  timeAtSourceTime
62
- } from "./chunk-TWBTXEDZ.js";
62
+ } from "./chunk-P47XYVEQ.js";
63
63
  import {
64
64
  clampAudioGain,
65
65
  isAudibleVideoElement
@@ -10,7 +10,7 @@ import {
10
10
  isDevice,
11
11
  isQuality,
12
12
  render
13
- } from "./chunk-5O6I5ZV7.js";
13
+ } from "./chunk-XTLV6UVP.js";
14
14
 
15
15
  // src/api/removeBackground.ts
16
16
  import { resolve } from "path";
@@ -9,7 +9,7 @@ import {
9
9
  parseStrictFiniteTimingNumber,
10
10
  resolveNaturalMediaTimelineDuration,
11
11
  resolveTimedImageDurationSeconds
12
- } from "./chunk-TWBTXEDZ.js";
12
+ } from "./chunk-P47XYVEQ.js";
13
13
  import {
14
14
  CANVAS_DIMENSIONS,
15
15
  isCompositionElement,
@@ -4,20 +4,41 @@ 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
+ artifactDirectory,
9
+ finishSnapshotRun
10
+ } from "./chunk-JGYHWVXQ.js";
7
11
 
8
12
  // src/utils/checkSnapshotDirectory.ts
9
- import { randomUUID } from "crypto";
10
- import { join, resolve } from "path";
13
+ import { resolve } from "path";
11
14
  var runDirectories = /* @__PURE__ */ new Map();
15
+ var activeChecks = /* @__PURE__ */ new Map();
16
+ function beginCheckSnapshots(projectDir) {
17
+ const project = resolve(projectDir);
18
+ activeChecks.set(project, (activeChecks.get(project) ?? 0) + 1);
19
+ }
12
20
  function checkSnapshotDirectory(projectDir) {
13
21
  const project = resolve(projectDir);
14
22
  let directory = runDirectories.get(project);
15
23
  if (!directory) {
16
- directory = join(project, ".hyperframes", "artifacts", "snapshots", randomUUID());
24
+ directory = artifactDirectory(project, "snapshots");
17
25
  runDirectories.set(project, directory);
18
26
  }
19
27
  return directory;
20
28
  }
29
+ async function finishCheckSnapshots(projectDir) {
30
+ const project = resolve(projectDir);
31
+ const remaining = Math.max(0, (activeChecks.get(project) ?? 1) - 1);
32
+ if (remaining > 0) {
33
+ activeChecks.set(project, remaining);
34
+ return;
35
+ }
36
+ activeChecks.delete(project);
37
+ const path = runDirectories.get(project);
38
+ if (!path) return;
39
+ runDirectories.delete(project);
40
+ await finishSnapshotRun(project, path);
41
+ }
21
42
 
22
43
  // src/utils/checkTypes.ts
23
44
  function rectToBbox(rect) {
@@ -25,6 +46,8 @@ function rectToBbox(rect) {
25
46
  }
26
47
 
27
48
  export {
49
+ beginCheckSnapshots,
28
50
  checkSnapshotDirectory,
51
+ finishCheckSnapshots,
29
52
  rectToBbox
30
53
  };
@@ -7,7 +7,7 @@ var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  sherpaParakeetInstalled,
9
9
  sherpaUnsupportedReason
10
- } from "./chunk-4DEBDQD4.js";
10
+ } from "./chunk-MP676E4B.js";
11
11
  import {
12
12
  findParakeet
13
13
  } from "./chunk-JZIEZCQM.js";
@@ -7,7 +7,7 @@ var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  resolveConfig,
9
9
  usesSoftwareWebGpu
10
- } from "./chunk-2CEH75X3.js";
10
+ } from "./chunk-PLEMSN3E.js";
11
11
 
12
12
  // src/browser/gpuPolicy.ts
13
13
  function resolveLocalBrowserGpuMode(browserGpuArg, envMode = process.env.PRODUCER_BROWSER_GPU_MODE) {
@@ -17,7 +17,7 @@ function resolveLocalBrowserGpuMode(browserGpuArg, envMode = process.env.PRODUCE
17
17
  return "auto";
18
18
  }
19
19
  async function resolveCaptureBrowserGpuMode(requestedMode, chromePath, probeLifecycle) {
20
- const { resolveBrowserGpuMode } = await import("./src-N42CT3YR.js");
20
+ const { resolveBrowserGpuMode } = await import("./src-GPUDUKY6.js");
21
21
  return resolveBrowserGpuMode(requestedMode, { chromePath, probeLifecycle });
22
22
  }
23
23
  function resolveLocalWebGpu(browserGpuMode, requiresWebGpu) {
@@ -6,10 +6,10 @@ var __filename = __hf_fileURLToPath(import.meta.url);
6
6
  var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  getMimeType
9
- } from "./chunk-ODE7HHNN.js";
9
+ } from "./chunk-VD7WQYTO.js";
10
10
  import {
11
11
  injectTagsAtHeadStart
12
- } from "./chunk-TWBTXEDZ.js";
12
+ } from "./chunk-P47XYVEQ.js";
13
13
 
14
14
  // src/utils/compositionServer.ts
15
15
  import { createHash } from "crypto";
@@ -6,7 +6,7 @@ var __filename = __hf_fileURLToPath(import.meta.url);
6
6
  var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  updateNoticesSuppressed
9
- } from "./chunk-DLQQA25O.js";
9
+ } from "./chunk-FRGYHRP6.js";
10
10
  import {
11
11
  hostAnswers
12
12
  } from "./chunk-K4WIOZFP.js";
@@ -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.159" : "0.0.0-dev";
10
- var PRODUCER_VERSION = true ? "0.8.159" : "0.0.0-dev";
9
+ var VERSION = true ? "0.8.160" : "0.0.0-dev";
10
+ var PRODUCER_VERSION = true ? "0.8.160" : "0.0.0-dev";
11
11
 
12
12
  export {
13
13
  VERSION,
@@ -6,7 +6,7 @@ var __filename = __hf_fileURLToPath(import.meta.url);
6
6
  var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  resolveProject
9
- } from "./chunk-5HNZQSO4.js";
9
+ } from "./chunk-37LNY2EC.js";
10
10
  import {
11
11
  findPreviewServerForProject,
12
12
  studioApiUrl
@@ -17,7 +17,7 @@ import {
17
17
  MAX_WINDOW_IDLE_MS,
18
18
  openProjectHistory,
19
19
  readProjectHistory
20
- } from "./chunk-6PIGOKTE.js";
20
+ } from "./chunk-JGYHWVXQ.js";
21
21
 
22
22
  // src/utils/historyOwner.ts
23
23
  import { randomUUID } from "crypto";
@@ -5,7 +5,6 @@ var require = __hf_createRequire(import.meta.url);
5
5
  var __filename = __hf_fileURLToPath(import.meta.url);
6
6
  var __dirname = __hf_dirname(__filename);
7
7
  import {
8
- MEDIA_LINK_ATTR,
9
8
  dedupeClonedCompositionId,
10
9
  findTargetElement,
11
10
  isHTMLElement,
@@ -14,14 +13,13 @@ import {
14
13
  patchElementInHtml,
15
14
  probeElementInSource,
16
15
  probeElementsInSource,
17
- relinkSplitHalves,
18
16
  relinkSplitHalvesInHtml,
19
17
  removeElementFromHtml,
20
18
  removeElementsFromHtml,
21
19
  splitElementInHtml,
22
20
  unwrapElementsFromHtml,
23
21
  wrapElementsInHtml
24
- } from "./chunk-A5RDOXZE.js";
22
+ } from "./chunk-PINFPWRV.js";
25
23
  import {
26
24
  DEFAULT_TARGET_LUFS,
27
25
  absoluteLoudnessPlan,
@@ -31,6 +29,10 @@ import {
31
29
  requiredFfmpeg,
32
30
  resolveLocalAudioPath
33
31
  } from "./chunk-C6TPGUWD.js";
32
+ import {
33
+ MEDIA_LINK_ATTR,
34
+ relinkSplitHalves
35
+ } from "./chunk-6JR2XUEE.js";
34
36
  import {
35
37
  PROXY_PARAMS_VERSION,
36
38
  PROXY_PENDING_RETRY_AFTER_SECONDS,
@@ -52,7 +54,7 @@ import {
52
54
  scanProjectMediaCodecMap,
53
55
  shouldPrewarmProxy,
54
56
  waitForProxy
55
- } from "./chunk-5RSV6DWB.js";
57
+ } from "./chunk-4ID635FL.js";
56
58
  import {
57
59
  MAX_WINDOW_IDLE_MS,
58
60
  STUDIO_SIGNATURE_MANIFEST_PATHS,
@@ -65,7 +67,7 @@ import {
65
67
  resolveProjectAndSignature,
66
68
  resolveProjectSignature,
67
69
  settledFileTag
68
- } from "./chunk-6PIGOKTE.js";
70
+ } from "./chunk-JGYHWVXQ.js";
69
71
  import {
70
72
  STUDIO_MOTION_PATH,
71
73
  createStudioMotionRenderBodyScript,
@@ -101,7 +103,7 @@ import {
101
103
  } from "./chunk-EOVYQ3IG.js";
102
104
  import {
103
105
  addScenePartsManifest
104
- } from "./chunk-INNBWSZK.js";
106
+ } from "./chunk-LYIG2GZ5.js";
105
107
  import {
106
108
  ensureHfIds,
107
109
  stampHfIdsInPlace
@@ -115,7 +117,7 @@ import {
115
117
  parseFps,
116
118
  parsePreviewProxyBox,
117
119
  sameInstant
118
- } from "./chunk-V5J4XEBG.js";
120
+ } from "./chunk-Q3TFX4OZ.js";
119
121
  import {
120
122
  AFTER_FONTS_SCRIPT_TYPE,
121
123
  RUNTIME_BOOTSTRAP_ATTR,
@@ -129,7 +131,7 @@ import {
129
131
  resolveRateSpec,
130
132
  sourceTimeAt,
131
133
  stripEmbeddedRuntimeScripts
132
- } from "./chunk-TWBTXEDZ.js";
134
+ } from "./chunk-P47XYVEQ.js";
133
135
  import {
134
136
  HTML_ATTRIBUTE_ENTITIES,
135
137
  MagicString,
@@ -5493,7 +5495,7 @@ async function prepareGsapMutationScript(c, res, firstMutation) {
5493
5495
  let block = extractGsapScriptBlock(html);
5494
5496
  if (!block && (firstMutation.type === "add" || firstMutation.type === "add-with-keyframes")) {
5495
5497
  const compId = html.match(/data-composition-id="([^"]+)"/)?.[1] ?? "main";
5496
- const { GSAP_CDN } = await import("./dist-DLR4X3KN.js");
5498
+ const { GSAP_CDN } = await import("./dist-4JFB3WAR.js");
5497
5499
  const bootstrap = [
5498
5500
  `<script src="${GSAP_CDN}"></script>`,
5499
5501
  "<script>",
@@ -1278,7 +1278,7 @@ async function withFigmaErrors(command, fn) {
1278
1278
  } catch (err) {
1279
1279
  if (err instanceof Error) {
1280
1280
  try {
1281
- const { trackCommandFailure } = await import("./events-XXBCP2I4.js");
1281
+ const { trackCommandFailure } = await import("./events-6LQNRKHZ.js");
1282
1282
  trackCommandFailure(
1283
1283
  command,
1284
1284
  err,
@@ -9,7 +9,7 @@ import {
9
9
  } from "./chunk-PO2SDVQA.js";
10
10
  import {
11
11
  findFFmpeg
12
- } from "./chunk-KEGTYA7V.js";
12
+ } from "./chunk-IK3SOMZ4.js";
13
13
  import {
14
14
  stoppableExecFile
15
15
  } from "./chunk-HU2SPFNG.js";
@@ -6,7 +6,7 @@ var __filename = __hf_fileURLToPath(import.meta.url);
6
6
  var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  runRenderSetupWorker
9
- } from "./chunk-54DMWFQZ.js";
9
+ } from "./chunk-D3ZWBHZP.js";
10
10
  import {
11
11
  chromeMajorCeiling,
12
12
  exceedsChromeCeiling
@@ -14,13 +14,13 @@ import {
14
14
  findFFmpeg,
15
15
  findFFprobe,
16
16
  getFFmpegInstallHint
17
- } from "./chunk-KEGTYA7V.js";
17
+ } from "./chunk-IK3SOMZ4.js";
18
18
  import {
19
19
  DEFAULT_VP9_CPU_USED,
20
20
  SDR_RGB_TO_BT709_FILTER,
21
21
  SDR_RGB_TO_TAGGED_BT709_FILTER,
22
22
  renderProvenanceArgs
23
- } from "./chunk-2CEH75X3.js";
23
+ } from "./chunk-PLEMSN3E.js";
24
24
 
25
25
  // src/background-removal/pipeline.ts
26
26
  import { spawn } from "child_process";
@@ -270,7 +270,7 @@ function inferInputKind(inputPath) {
270
270
  }
271
271
  async function probeMedia(inputPath) {
272
272
  const isImage = inferInputKind(inputPath) === "image";
273
- const engine = await import("./src-N42CT3YR.js");
273
+ const engine = await import("./src-GPUDUKY6.js");
274
274
  const meta = await engine.extractMediaMetadata(inputPath);
275
275
  if (isImage) {
276
276
  return { width: meta.width, height: meta.height, fps: 0, frameCount: 1 };
@@ -6,28 +6,29 @@ var __filename = __hf_fileURLToPath(import.meta.url);
6
6
  var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  redactHome
9
- } from "./chunk-24N3BB5M.js";
9
+ } from "./chunk-MYGXKD7A.js";
10
10
  import "./chunk-Z27A7NUB.js";
11
11
  import "./chunk-5ETJX6WM.js";
12
12
  import {
13
13
  loadProducer
14
- } from "./chunk-NIGOOCVS.js";
14
+ } from "./chunk-P4QE7SSN.js";
15
15
  import {
16
16
  formatBytes
17
17
  } from "./chunk-K2FLNJVB.js";
18
- import "./chunk-BB2SFTMY.js";
19
- import "./chunk-ODE7HHNN.js";
20
- import "./chunk-A5RDOXZE.js";
18
+ import "./chunk-A2DMF2Q6.js";
19
+ import "./chunk-VD7WQYTO.js";
20
+ import "./chunk-PINFPWRV.js";
21
21
  import "./chunk-C6TPGUWD.js";
22
+ import "./chunk-6JR2XUEE.js";
22
23
  import {
23
24
  CACHE_DIR_NAME,
24
25
  cleanupProxyCache
25
- } from "./chunk-5RSV6DWB.js";
26
+ } from "./chunk-4ID635FL.js";
26
27
  import {
27
28
  DEFAULT_HISTORY_ROOT,
28
29
  listProjectHistories,
29
30
  pruneGoneProjectHistories
30
- } from "./chunk-6PIGOKTE.js";
31
+ } from "./chunk-JGYHWVXQ.js";
31
32
  import "./chunk-FFDC5OWV.js";
32
33
  import "./chunk-5CS4T6C6.js";
33
34
  import "./chunk-QWQ6GQTI.js";
@@ -43,32 +44,32 @@ import {
43
44
  import "./chunk-KLIKCX6Q.js";
44
45
  import "./chunk-EOOEC32M.js";
45
46
  import "./chunk-TJSTGSAW.js";
46
- import "./chunk-LBT4AMSF.js";
47
+ import "./chunk-XRKMITSS.js";
47
48
  import {
48
49
  withMeta
49
- } from "./chunk-DLQQA25O.js";
50
+ } from "./chunk-FRGYHRP6.js";
50
51
  import "./chunk-K4WIOZFP.js";
51
52
  import "./chunk-XUXGIA7H.js";
52
53
  import "./chunk-WERLJGIC.js";
53
54
  import "./chunk-ISN5GRYI.js";
54
- import "./chunk-MTUC2Z32.js";
55
+ import "./chunk-TU2CQJO3.js";
55
56
  import "./chunk-3DKN5WKL.js";
56
57
  import "./chunk-EOVYQ3IG.js";
57
58
  import "./chunk-6BEFEWFB.js";
58
- import "./chunk-KEGTYA7V.js";
59
+ import "./chunk-IK3SOMZ4.js";
59
60
  import "./chunk-XT6MXC7A.js";
60
61
  import {
61
62
  EXTRACT_CACHE_MIN_AGE_MS,
62
63
  directorySizeBytes,
63
64
  gcExtractionCache,
64
65
  resolveExtractCacheDir
65
- } from "./chunk-2CEH75X3.js";
66
- import "./chunk-INNBWSZK.js";
66
+ } from "./chunk-PLEMSN3E.js";
67
+ import "./chunk-LYIG2GZ5.js";
67
68
  import "./chunk-KCF6GHJP.js";
68
69
  import "./chunk-JYVGYKXG.js";
69
70
  import "./chunk-7KDQAD2W.js";
70
- import "./chunk-V5J4XEBG.js";
71
- import "./chunk-TWBTXEDZ.js";
71
+ import "./chunk-Q3TFX4OZ.js";
72
+ import "./chunk-P47XYVEQ.js";
72
73
  import "./chunk-VC76R6W2.js";
73
74
  import "./chunk-UJKQWGFF.js";
74
75
  import "./chunk-ALLKNYC3.js";
@@ -77,9 +78,9 @@ import "./chunk-DPVXBVLL.js";
77
78
  import "./chunk-T76PLPD6.js";
78
79
  import "./chunk-FXMKHHPO.js";
79
80
  import "./chunk-RQVDTPGD.js";
80
- import "./chunk-54DMWFQZ.js";
81
+ import "./chunk-D3ZWBHZP.js";
81
82
  import "./chunk-TWWSYAKJ.js";
82
- import "./chunk-7F3B5YYT.js";
83
+ import "./chunk-2742O5DO.js";
83
84
  import "./chunk-IWFLMU2N.js";
84
85
  import "./chunk-3VGU2SH7.js";
85
86
  import "./chunk-VAS6HQX3.js";