hyperframes 0.8.188 → 0.8.190

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-UORF6235.js → add-DBKN5H7H.js} +11 -11
  2. package/dist/{animatedGifPrep-23MLSEXF.js → animatedGifPrep-YVBKKLQY.js} +5 -5
  3. package/dist/api.js +13 -13
  4. package/dist/{asset-DOKDVHCW.js → asset-2OHQKUMQ.js} +2 -2
  5. package/dist/{assetCataloger-CD27MHEY.js → assetCataloger-O3QAUWIK.js} +5 -5
  6. package/dist/{audio-3NMZHNNU.js → audio-IR3JGCMM.js} +11 -11
  7. package/dist/{auth-AWKTSKGC.js → auth-J6TAJLGD.js} +1 -1
  8. package/dist/{autoUpdate-VBOI4CNU.js → autoUpdate-D7BJJUT2.js} +2 -2
  9. package/dist/{backgroundChecks-S4R454YU.js → backgroundChecks-AILHY2YZ.js} +3 -3
  10. package/dist/backgroundChecksWorker.js +3 -3
  11. package/dist/{batchRender-EGPYNDHK.js → batchRender-QZKFVWEI.js} +3 -3
  12. package/dist/{beats-YENEQUOA.js → beats-6LOEKZPB.js} +4 -4
  13. package/dist/{benchmark-THSJIQG7.js → benchmark-RJMHI3YW.js} +8 -8
  14. package/dist/{browser-BDMVQ6WJ.js → browser-Q3Q36FE3.js} +3 -3
  15. package/dist/{bundleWithLocalizedFonts-3QG722YD.js → bundleWithLocalizedFonts-RWHFMSFL.js} +2 -2
  16. package/dist/{capture-Z6BGCTK3.js → capture-2PNTGVYV.js} +8 -8
  17. package/dist/{capture-WM4XDMFX.js → capture-FO3ZZCT4.js} +2 -2
  18. package/dist/{captureCompositionFrame-EMHSAIBZ.js → captureCompositionFrame-WTMLWVEJ.js} +11 -11
  19. package/dist/{catalog-7TV6UNCG.js → catalog-LUZYPUYT.js} +11 -11
  20. package/dist/{catch-up-63IUDZRW.js → catch-up-TUTLUTFP.js} +4 -4
  21. package/dist/{check-7RHZL4DV.js → check-K2TBTJZS.js} +34 -33
  22. package/dist/{checkBrowser-PF56CT5X.js → checkBrowser-JT7CXDT6.js} +29 -30
  23. package/dist/{chunk-I7C5GUEQ.js → chunk-2FFOLLU2.js} +3 -3
  24. package/dist/{chunk-OKSYDQHY.js → chunk-3QLT727N.js} +3 -3
  25. package/dist/{chunk-NFHRGHCJ.js → chunk-45U3KY7Z.js} +4 -4
  26. package/dist/{chunk-MJKUCR3C.js → chunk-56IDMP37.js} +2 -2
  27. package/dist/{chunk-YV4WT7CJ.js → chunk-56IOFIYB.js} +12 -1
  28. package/dist/{chunk-HKUZCSNZ.js → chunk-6HYHHMX3.js} +2 -2
  29. package/dist/{chunk-46VJ2UAV.js → chunk-76ITJYXX.js} +5 -5
  30. package/dist/{chunk-YZ73IPW2.js → chunk-7JHTNUF2.js} +2 -2
  31. package/dist/{chunk-2WUDFZCR.js → chunk-A5YHWTSP.js} +2 -2
  32. package/dist/{chunk-HPQSUPR7.js → chunk-AYFF3GX6.js} +1 -1
  33. package/dist/{chunk-W2KGJHUL.js → chunk-B7JFAXDP.js} +2 -2
  34. package/dist/{chunk-LWYZN7HS.js → chunk-BT64TTSE.js} +219 -79
  35. package/dist/{chunk-ZIRIDSDB.js → chunk-BWPY64WA.js} +1 -1
  36. package/dist/{chunk-MTPPEEYZ.js → chunk-CWVSJA52.js} +16 -8
  37. package/dist/{chunk-BWEZDN6U.js → chunk-CWYS2UNQ.js} +1 -1
  38. package/dist/chunk-DIV37NUE.js +3896 -0
  39. package/dist/{chunk-DA4TQFSF.js → chunk-DRTIIAIZ.js} +1 -1
  40. package/dist/{chunk-IJYR4TTA.js → chunk-DX7VEUBO.js} +1 -1
  41. package/dist/{chunk-V6NM4KL3.js → chunk-E7DXKMKU.js} +2 -2
  42. package/dist/{chunk-LWY3PFJ7.js → chunk-EPOYPP36.js} +2 -2
  43. package/dist/{chunk-BU4HRISA.js → chunk-EQF6TVWB.js} +91 -24
  44. package/dist/{chunk-KDBPZOXK.js → chunk-EU5HTY3E.js} +11 -11
  45. package/dist/{chunk-KY7375C4.js → chunk-EUUHVDMN.js} +1 -1
  46. package/dist/{chunk-6HYPEIH7.js → chunk-F6DNM676.js} +2 -2
  47. package/dist/{chunk-2DHCCBCN.js → chunk-FANFO5HI.js} +9 -9
  48. package/dist/{chunk-FWVILDOZ.js → chunk-FUHI34T4.js} +3 -3
  49. package/dist/{chunk-GYBPAKBM.js → chunk-FVD44EQX.js} +53 -31
  50. package/dist/{chunk-MXXX6WVC.js → chunk-GGVGOY6M.js} +1 -1
  51. package/dist/{chunk-XPVN4R66.js → chunk-HJZ5CPZA.js} +31 -7
  52. package/dist/{chunk-NMOTNNP2.js → chunk-IARWN467.js} +1 -1
  53. package/dist/{chunk-OJOZXWLC.js → chunk-JB7LML5B.js} +3 -3
  54. package/dist/{chunk-UF6RCYA5.js → chunk-JLSXXMRU.js} +1 -1
  55. package/dist/{chunk-JYC53CW4.js → chunk-K4664CDS.js} +97 -30
  56. package/dist/{chunk-T3OXKSRG.js → chunk-KNQQZRB2.js} +2 -2
  57. package/dist/{chunk-L243NE72.js → chunk-KUMUK6QS.js} +7 -7
  58. package/dist/{chunk-6HZ7TSJJ.js → chunk-L34DPWY4.js} +15 -11
  59. package/dist/{chunk-YCW345M4.js → chunk-OAPYPSEB.js} +357 -211
  60. package/dist/{chunk-6Q5CFUAP.js → chunk-OOAVKK2W.js} +1 -1
  61. package/dist/{chunk-FSTLXRIN.js → chunk-OTQXYTQZ.js} +1 -1
  62. package/dist/{chunk-44QWRPGE.js → chunk-R4QASDTN.js} +2 -2
  63. package/dist/{chunk-NFLZNSUZ.js → chunk-RBGNU7VD.js} +1 -1
  64. package/dist/{chunk-5DPV7LU3.js → chunk-RDHEG7RX.js} +2 -2
  65. package/dist/{chunk-FOLMMQF3.js → chunk-S2IEO6TH.js} +13 -13
  66. package/dist/{chunk-6OWNUXTU.js → chunk-S7C6EM7N.js} +1 -1
  67. package/dist/{chunk-KWSEIVR6.js → chunk-STJ2ANMF.js} +1 -1
  68. package/dist/{chunk-DLFAVRF3.js → chunk-SUSSMCWL.js} +1 -1
  69. package/dist/{chunk-U6RXZNZE.js → chunk-TMBUBLZB.js} +55 -23
  70. package/dist/{chunk-SMF6YAUL.js → chunk-TSQAPPRS.js} +1 -1
  71. package/dist/{chunk-PMXR3IUH.js → chunk-TTZTGXKG.js} +1 -1
  72. package/dist/{chunk-DG4ME554.js → chunk-UZ7RJDEC.js} +1 -1
  73. package/dist/{chunk-X556BGL7.js → chunk-WBUO6WH6.js} +1 -1
  74. package/dist/{chunk-IA2IDJAG.js → chunk-WCT6KGGT.js} +1 -1
  75. package/dist/{chunk-57XL23DE.js → chunk-WLG4OYH7.js} +1 -1
  76. package/dist/{chunk-JWRT2IXO.js → chunk-XBGEWNGQ.js} +1 -1
  77. package/dist/{chunk-B2P4JRUJ.js → chunk-XNLYMHX2.js} +1 -1
  78. package/dist/{chunk-PQLFJYGP.js → chunk-Y5L5I4US.js} +5 -5
  79. package/dist/{chunk-5OZI55AC.js → chunk-YT5VLUHM.js} +1 -1
  80. package/dist/{chunk-FH7WODJH.js → chunk-ZFFKWHXN.js} +8 -0
  81. package/dist/{clean-43O47OTN.js → clean-UVTWBPXK.js} +14 -14
  82. package/dist/cli.js +53 -53
  83. package/dist/{cloud-ZFWKFFSU.js → cloud-M42IPKFD.js} +4 -4
  84. package/dist/{cloudrun-XBBESKEU.js → cloudrun-CTNX64R6.js} +4 -4
  85. package/dist/{compare-OW4ELTFZ.js → compare-MQI7TG5M.js} +26 -26
  86. package/dist/{compiler-23MT6CX6.js → compiler-EJE3HLCS.js} +2 -2
  87. package/dist/{component-SDV7LWH6.js → component-QSYOSFVV.js} +3 -3
  88. package/dist/{compositions-DI5QZCEK.js → compositions-ITDFE7K4.js} +9 -9
  89. package/dist/{delete-QY2NSQ2G.js → delete-NTGTENKJ.js} +2 -2
  90. package/dist/{deploy-MJVC4EFY.js → deploy-AOJOXEYX.js} +1 -1
  91. package/dist/{dist-RFTGYT26.js → dist-NHW2JQCA.js} +4 -2
  92. package/dist/{doctor-7ZOECPHR.js → doctor-Q6DAYVSQ.js} +9 -9
  93. package/dist/{events-XVQQGECC.js → events-BQIBYPCF.js} +2 -2
  94. package/dist/{events-WIX4JM2K.js → events-PV3CDO4A.js} +3 -3
  95. package/dist/{feedback-GBYBR6UO.js → feedback-BZH26JQE.js} +6 -6
  96. package/dist/{ffmpeg-QGQBYMO3.js → ffmpeg-KU7RNT3U.js} +5 -5
  97. package/dist/{figma-2CMKUGJQ.js → figma-PBGZUEIL.js} +3 -3
  98. package/dist/fontLocalizeCli.js +7 -7
  99. package/dist/{get-RWCNUOHU.js → get-MM2JZ5ET.js} +2 -2
  100. package/dist/{gpuPolicy-UGWSN32D.js → gpuPolicy-DQE2CD5T.js} +5 -5
  101. package/dist/{grade-compare-J2MX7HZL.js → grade-compare-YTDQ7YXW.js} +27 -27
  102. package/dist/{help-SH3ID7MV.js → help-M4B2DN7E.js} +1 -1
  103. package/dist/{history-C7V5QH7J.js → history-ZW4UYKAJ.js} +7 -7
  104. package/dist/hyperframe.manifest.json +1 -1
  105. package/dist/hyperframe.runtime.iife.js +62 -62
  106. package/dist/hyperframes-player.global.js +3 -3
  107. package/dist/{info-ZN3JJ3IN.js → info-L7LQAXLK.js} +7 -7
  108. package/dist/{init-KRNGSRNH.js → init-HTSQ535A.js} +25 -25
  109. package/dist/{inspect-AYDZXTX7.js → inspect-EWF2THRR.js} +27 -27
  110. package/dist/{installer-N6AIK6XQ.js → installer-PQKH2S7C.js} +4 -4
  111. package/dist/{keyframes-2RFUCEDK.js → keyframes-X2QKJ4DP.js} +6 -6
  112. package/dist/{lambda-VW3CF6EE.js → lambda-BURM66GP.js} +6 -6
  113. package/dist/{layout-OE64APE7.js → layout-3Z3SJGZZ.js} +27 -27
  114. package/dist/{lint-UXJTX5WS.js → lint-OMNZ2K5J.js} +6 -6
  115. package/dist/{list-KOL6JPZJ.js → list-5ZSQEH6N.js} +2 -2
  116. package/dist/{login-MAQXOPDG.js → login-YNCQPHLA.js} +4 -4
  117. package/dist/{manager-3LZKRK7P.js → manager-N6XXRQN3.js} +6 -6
  118. package/dist/{media-treatment-COLSXXQJ.js → media-treatment-EOKBRJPY.js} +11 -11
  119. package/dist/{models-XXWMGOD7.js → models-6T4CCKUV.js} +9 -9
  120. package/dist/{motionShot-RECBNTBZ.js → motionShot-KXKMYZ3A.js} +16 -16
  121. package/dist/{normalize-audio-LKVGHZWR.js → normalize-audio-VWB7RHHA.js} +4 -4
  122. package/dist/{open-UEQVSRKH.js → open-32SQCNUP.js} +11 -11
  123. package/dist/{parakeetRunner-QVPCZ36U.js → parakeetRunner-BXW2WX6Q.js} +10 -10
  124. package/dist/{pipeline-5VSMQBKW.js → pipeline-V5ONFRCY.js} +6 -6
  125. package/dist/{play-MNEABYN4.js → play-BBL262JE.js} +17 -17
  126. package/dist/{preflight-ONJ74DWQ.js → preflight-LCNGQFNY.js} +6 -6
  127. package/dist/{present-GQ24GTYX.js → present-RY4HO4ZQ.js} +13 -13
  128. package/dist/{preview-ALL7O4RG.js → preview-BLLPCCLG.js} +16 -16
  129. package/dist/{producer-43L2UDF6.js → producer-QG4AQ35S.js} +1 -1
  130. package/dist/{projectConfig-VJXUXK7U.js → projectConfig-LN3NR5OM.js} +6 -6
  131. package/dist/{publication-L6E5NTFV.js → publication-TXMCS4KM.js} +2 -2
  132. package/dist/{publish-LCLBJEPR.js → publish-57VURD7Z.js} +7 -7
  133. package/dist/{remove-background-PDL4KPR4.js → remove-background-VEWVIO3A.js} +7 -7
  134. package/dist/{render-OPCRLZVL.js → render-4E7QDVOI.js} +12 -12
  135. package/dist/{render-7HVKJ7T4.js → render-SP7WAUB4.js} +5 -5
  136. package/dist/{render-J33ZHR6I.js → render-XMN3NJIQ.js} +27 -27
  137. package/dist/{render-batch-ZHHIGXU3.js → render-batch-7ULP5RIJ.js} +5 -5
  138. package/dist/{resolver-KNNIMMBM.js → resolver-D3XERO6U.js} +4 -4
  139. package/dist/{sherpa-GI62H3H5.js → sherpa-5B5G426W.js} +9 -9
  140. package/dist/skills/hyperframes/references/motion.md +1 -1
  141. package/dist/{skills-IUTD6VQO.js → skills-RXHRF7O7.js} +5 -5
  142. package/dist/{skillsUpdateCheck-XZE7MJG6.js → skillsUpdateCheck-JOTDZJAE.js} +3 -3
  143. package/dist/{snapshot-XEXTHLZP.js → snapshot-DN4MP4VN.js} +31 -31
  144. package/dist/{src-6STRGCDC.js → src-W6Y5ZYRQ.js} +6 -6
  145. package/dist/{src-ZPIV4PGX.js → src-XSDYRKLG.js} +6 -4
  146. package/dist/{staticProjectServer-HJLT7MHE.js → staticProjectServer-JMFGTPMX.js} +15 -13
  147. package/dist/studio/assets/{hyperframes-player-DwWIKKZG.js → hyperframes-player-0HXJPmYC.js} +1 -1
  148. package/dist/studio/assets/{index-CESvLzz0.css → index-B3vk3hfU.css} +1 -1
  149. package/dist/studio/assets/{index-M8lEpS0Q.js → index-BYw97F07.js} +127 -127
  150. package/dist/studio/assets/{index-Cjwz7_13.js → index-DsSfhjUS.js} +1 -1
  151. package/dist/studio/index.html +2 -2
  152. package/dist/{studio-api-OBHEB5ND.js → studio-api-SZ4OMFPN.js} +7 -7
  153. package/dist/{studioServer-KRIZFYML.js → studioServer-LWO33H7D.js} +44 -44
  154. package/dist/{telemetry-N5OOVBCP.js → telemetry-K3AFDKOP.js} +3 -3
  155. package/dist/{timeline-YUFH65OG.js → timeline-NYQOAQDH.js} +15 -15
  156. package/dist/{tokens-K4VYLSWJ.js → tokens-K7YWUVOK.js} +2 -2
  157. package/dist/{transcribe-GMQXKDYN.js → transcribe-ANPUQDZD.js} +8 -8
  158. package/dist/{transcribe-CY4CVO54.js → transcribe-QAUMODXM.js} +14 -14
  159. package/dist/{updateCheck-2625RXK4.js → updateCheck-RNR4HMDI.js} +2 -2
  160. package/dist/{upgrade-6ZY5MSBQ.js → upgrade-MKUGZZPA.js} +2 -2
  161. package/dist/{urlDownloader-PVJWG7V3.js → urlDownloader-5USPXLCS.js} +4 -4
  162. package/dist/{validate-XSRHEE7E.js → validate-OJHPDLC5.js} +21 -21
  163. package/dist/{video-MBFHC54F.js → video-BCKRR6LU.js} +5 -5
  164. package/dist/warmCheck.js +34 -35
  165. package/package.json +1 -1
  166. package/dist/chunk-BPX7LZG6.js +0 -3896
  167. package/dist/chunk-KANNRHY7.js +0 -53
@@ -8,7 +8,7 @@ import {
8
8
  EncoderInterruptedError,
9
9
  encoderFailureError,
10
10
  prepareAnimatedGifInputs
11
- } from "./chunk-2WUDFZCR.js";
11
+ } from "./chunk-A5YHWTSP.js";
12
12
  import {
13
13
  GENERIC_FAMILIES,
14
14
  collectFontFamilyCustomProperties,
@@ -41,6 +41,7 @@ import {
41
41
  analyzeCompositionHdr,
42
42
  analyzeKeyframeIntervals,
43
43
  appendRenderProvenanceArgs,
44
+ appendSoftwareEncoderThreadsArg,
44
45
  applyConcreteGpuScreenshotClamp,
45
46
  applyDomLayerMask,
46
47
  applyFaststart,
@@ -155,7 +156,7 @@ import {
155
156
  validateEngineConfigSnapshot,
156
157
  verifyDiskDrawElementSamples,
157
158
  writeCapturedFrame
158
- } from "./chunk-YCW345M4.js";
159
+ } from "./chunk-OAPYPSEB.js";
159
160
  import {
160
161
  DISTRIBUTED_FPS,
161
162
  HF_VFX_ATTR,
@@ -170,7 +171,7 @@ import {
170
171
  parseVfxChain,
171
172
  resolveAuthoredTimingWindow,
172
173
  toFps
173
- } from "./chunk-YV4WT7CJ.js";
174
+ } from "./chunk-56IOFIYB.js";
174
175
  import {
175
176
  assignBundledRuntimeCompositionIds,
176
177
  buildVariablesByCompScript,
@@ -183,7 +184,7 @@ import {
183
184
  isTemplateEntry,
184
185
  parsesAsScript,
185
186
  prepareFlattenedInnerRoot
186
- } from "./chunk-SMF6YAUL.js";
187
+ } from "./chunk-TSQAPPRS.js";
187
188
  import {
188
189
  COMPOSITION_SOURCE_URL,
189
190
  HF_COLOR_GRADING_ATTR,
@@ -211,7 +212,7 @@ import {
211
212
  shouldClampResolvedMediaDuration,
212
213
  sourceTimeAt,
213
214
  styleElementsFor
214
- } from "./chunk-BPX7LZG6.js";
215
+ } from "./chunk-DIV37NUE.js";
215
216
  import {
216
217
  MAX_AUDIO_GAIN
217
218
  } from "./chunk-X7HBSTCZ.js";
@@ -1412,6 +1413,14 @@ function materializeExtractedFramesForCompiledDir(extracted, compiledDir, option
1412
1413
  }
1413
1414
  }
1414
1415
 
1416
+ // ../producer/src/services/render/frameCacheBudget.ts
1417
+ function frameCacheOptions(cfg, workers) {
1418
+ return {
1419
+ frameDataUriCacheLimit: cfg.frameDataUriCacheLimit,
1420
+ frameDataUriCacheBytesLimitMb: Math.floor(cfg.frameDataUriCacheBytesLimitMb / (workers || 1))
1421
+ };
1422
+ }
1423
+
1415
1424
  // ../producer/src/services/render/cleanup.ts
1416
1425
  import { freemem } from "os";
1417
1426
 
@@ -12102,10 +12111,7 @@ async function executeRenderPipeline(input) {
12102
12111
  });
12103
12112
  }
12104
12113
  });
12105
- const createRenderVideoFrameInjector = () => createVideoFrameInjector(frameLookup, {
12106
- frameDataUriCacheLimit: cfg.frameDataUriCacheLimit,
12107
- frameDataUriCacheBytesLimitMb: cfg.frameDataUriCacheBytesLimitMb
12108
- });
12114
+ const createRenderVideoFrameInjector = () => createVideoFrameInjector(frameLookup, frameCacheOptions(cfg, workerCount));
12109
12115
  let captureCalibration;
12110
12116
  const htmlInCanvasDetected = compiled.renderModeHints.reasons.some(
12111
12117
  (r) => r.code === "htmlInCanvas"
@@ -13714,12 +13720,13 @@ var RenderChunkValidationError = class extends Error {
13714
13720
  this.code = code;
13715
13721
  }
13716
13722
  };
13717
- function createChunkVideoFrameInjectorFactory(frameLookup) {
13718
- if (!(frameLookup instanceof Promise)) return () => createVideoFrameInjector(frameLookup);
13723
+ function createChunkVideoFrameInjectorFactory(frameLookup, options) {
13724
+ if (!(frameLookup instanceof Promise))
13725
+ return () => createVideoFrameInjector(frameLookup, options);
13719
13726
  return () => {
13720
13727
  let hook;
13721
13728
  return async (page, time, heldVideoTime) => {
13722
- hook ??= createVideoFrameInjector(await frameLookup);
13729
+ hook ??= createVideoFrameInjector(await frameLookup, options);
13723
13730
  await hook?.(page, time, heldVideoTime);
13724
13731
  };
13725
13732
  };
@@ -15499,7 +15506,7 @@ async function compilePlanComposition(projectDir, config, planDir, options) {
15499
15506
  if (probeResult.fileServer) closeFileServerSafely(probeResult.fileServer, "plan", log);
15500
15507
  if (probeResult.probeSession) {
15501
15508
  try {
15502
- const { closeCaptureSession: closeCaptureSession2 } = await import("./src-ZPIV4PGX.js");
15509
+ const { closeCaptureSession: closeCaptureSession2 } = await import("./src-XSDYRKLG.js");
15503
15510
  await closeCaptureSession2(probeResult.probeSession);
15504
15511
  } catch (err) {
15505
15512
  log.warn("[plan] probe session close failed", {
@@ -17148,7 +17155,7 @@ function startServer(options = {}) {
17148
17155
  });
17149
17156
  async function shutdown(signal) {
17150
17157
  log.info(`Received ${signal}, shutting down`);
17151
- const { drainBrowserPool } = await import("./src-ZPIV4PGX.js");
17158
+ const { drainBrowserPool } = await import("./src-XSDYRKLG.js");
17152
17159
  await drainBrowserPool().catch(() => {
17153
17160
  });
17154
17161
  const handle = await Promise.race([
@@ -18193,10 +18200,9 @@ function readAssemblePlan(planDir, chunkPaths) {
18193
18200
  function videoInputArgs(ctx, videoSources) {
18194
18201
  return videoSources.length === 1 ? ["-i", videoSources[0]] : concatDemuxerInput(videoSources, ctx.workDir, ctx.fpsArg);
18195
18202
  }
18196
- async function reencodeCfr(ctx, chunkPaths, encoder) {
18197
- const cfrOutputPath = join39(ctx.workDir, `cfr.${ctx.format}`);
18198
- const cfrArgs = [
18199
- ...videoInputArgs(ctx, chunkPaths),
18203
+ function cfrEncodeArgs(inputArgs, encoder, fpsArg) {
18204
+ const args = [
18205
+ ...inputArgs,
18200
18206
  "-c:v",
18201
18207
  "libx264",
18202
18208
  ...cfrRateControlArgs(encoder),
@@ -18205,8 +18211,14 @@ async function reencodeCfr(ctx, chunkPaths, encoder) {
18205
18211
  "-fps_mode",
18206
18212
  "cfr",
18207
18213
  "-r",
18208
- ctx.fpsArg
18214
+ fpsArg
18209
18215
  ];
18216
+ appendSoftwareEncoderThreadsArg(args);
18217
+ return args;
18218
+ }
18219
+ async function reencodeCfr(ctx, chunkPaths, encoder) {
18220
+ const cfrOutputPath = join39(ctx.workDir, `cfr.${ctx.format}`);
18221
+ const cfrArgs = cfrEncodeArgs(videoInputArgs(ctx, chunkPaths), encoder, ctx.fpsArg);
18210
18222
  appendRenderProvenanceArgs(cfrArgs, cfrOutputPath);
18211
18223
  cfrArgs.push("-y", cfrOutputPath);
18212
18224
  await ctx.timed(
@@ -18440,6 +18452,23 @@ async function createVerifiedDistributedCaptureSession(serverUrl, framesDir, cap
18440
18452
  function isCaptureMode(value) {
18441
18453
  return value === "beginframe" || value === "screenshot" || value === "drawelement";
18442
18454
  }
18455
+ var MixedCaptureModesError = class extends Error {
18456
+ constructor(modes) {
18457
+ super(`[renderChunk] capture workers reported inconsistent modes: ${modes.join(",")}`);
18458
+ this.modes = modes;
18459
+ this.name = "MixedCaptureModesError";
18460
+ }
18461
+ modes;
18462
+ };
18463
+ function observedChunkCaptureMode(perfs) {
18464
+ const modes = [...new Set(perfs.map((perf) => perf.captureMode))];
18465
+ if (modes.length > 1) throw new MixedCaptureModesError(modes);
18466
+ const [mode] = modes;
18467
+ if (!mode || !isCaptureMode(mode)) {
18468
+ throw new Error(`[renderChunk] capture workers reported an invalid mode: ${mode ?? "<none>"}`);
18469
+ }
18470
+ return mode;
18471
+ }
18443
18472
  function shouldRetryChunkCaptureWithScreenshot(error) {
18444
18473
  const failure = classifyCaptureFailure(error);
18445
18474
  if (failure.kind === "cancelled" || failure.kind === "memory_exhaustion") return false;
@@ -18737,7 +18766,10 @@ async function renderChunk(planDir, chunkIndex, outputChunkPath, options) {
18737
18766
  ) : null;
18738
18767
  videoFrameLookup?.catch(() => {
18739
18768
  });
18740
- const createChunkVideoFrameInjector = createChunkVideoFrameInjectorFactory(videoFrameLookup);
18769
+ const createChunkVideoFrameInjector = createChunkVideoFrameInjectorFactory(
18770
+ videoFrameLookup,
18771
+ frameCacheOptions(cfg, chunkWorkerCount)
18772
+ );
18741
18773
  const captureStarted = Date.now();
18742
18774
  captureMode = await runCaptureWithScreenshotFallback({
18743
18775
  forceScreenshot: forceScreenshotForChunk,
@@ -18791,17 +18823,7 @@ async function renderChunk(planDir, chunkIndex, outputChunkPath, options) {
18791
18823
  },
18792
18824
  frameRange: range
18793
18825
  });
18794
- const observedModes = new Set(capturePerfs.map((perf) => perf.captureMode));
18795
- if (observedModes.size !== 1 || ![...observedModes].every(isCaptureMode)) {
18796
- throw new Error(
18797
- `[renderChunk] capture workers reported invalid or inconsistent modes: ${[...observedModes].join(",") || "<none>"}`
18798
- );
18799
- }
18800
- const [observedMode] = observedModes;
18801
- if (!observedMode || !isCaptureMode(observedMode)) {
18802
- throw new Error("[renderChunk] capture completed without an observed mode");
18803
- }
18804
- return observedMode;
18826
+ return observedChunkCaptureMode(capturePerfs);
18805
18827
  },
18806
18828
  resetForScreenshotRetry: () => {
18807
18829
  rmSync16(workDir, { recursive: true, force: true, maxRetries: 3, retryDelay: 100 });
@@ -14,7 +14,7 @@ import {
14
14
  } from "./chunk-DKPNNYBZ.js";
15
15
  import {
16
16
  resolveCaptureBrowserGpuMode
17
- } from "./chunk-T3OXKSRG.js";
17
+ } from "./chunk-KNQQZRB2.js";
18
18
  import {
19
19
  requestCliExit
20
20
  } from "./chunk-JVBRJMOP.js";
@@ -7,7 +7,7 @@ var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  getMimeType,
9
9
  injectMediaCodecMapIntoHtml
10
- } from "./chunk-6HZ7TSJJ.js";
10
+ } from "./chunk-L34DPWY4.js";
11
11
  import {
12
12
  PROXY_VARIANT_CONFIG,
13
13
  ProxyCapacityError,
@@ -18,10 +18,17 @@ import {
18
18
  recordProxyRequest,
19
19
  resolveProxy,
20
20
  resolveProxyVariantRequest
21
- } from "./chunk-LWYZN7HS.js";
21
+ } from "./chunk-BT64TTSE.js";
22
+ import {
23
+ findStageProxyBox
24
+ } from "./chunk-ZFFKWHXN.js";
22
25
  import {
23
26
  resolveAutoProxy
24
- } from "./chunk-DG4ME554.js";
27
+ } from "./chunk-UZ7RJDEC.js";
28
+ import {
29
+ PREVIEW_PROXY_BOX_PARAM,
30
+ parsePreviewProxyBox
31
+ } from "./chunk-56IOFIYB.js";
25
32
  import {
26
33
  decodeWellFormedEscapes
27
34
  } from "./chunk-BSQ7XANM.js";
@@ -141,7 +148,7 @@ function writeProxyError(err, res) {
141
148
  res.writeHead(500);
142
149
  res.end();
143
150
  }
144
- async function serveProxyRequest(projectDir, filePath, request, autoProxy, rangeHeader, res, signal) {
151
+ async function serveProxyRequest(projectDir, filePath, request, box, autoProxy, rangeHeader, res, signal) {
145
152
  const contentType = getMimeType(filePath);
146
153
  if (!autoProxy || !contentType.startsWith("video/")) {
147
154
  res.writeHead(404);
@@ -168,7 +175,7 @@ async function serveProxyRequest(projectDir, filePath, request, autoProxy, range
168
175
  return;
169
176
  }
170
177
  recordProxyRequest();
171
- const proxyPath = await resolveProxy(projectDir, filePath, variant, void 0, { signal });
178
+ const proxyPath = await resolveProxy(projectDir, filePath, variant, box, { signal });
172
179
  if (res.writableEnded || res.destroyed) return;
173
180
  serveFileWithRange(proxyPath, rangeHeader, res, PROXY_VARIANT_CONFIG[variant].contentType);
174
181
  } catch (err) {
@@ -179,7 +186,15 @@ async function serveStaticProjectHtml(projectDir, html, bindErrorMessage = "Fail
179
186
  const roots = [projectDir, ...assetRoots];
180
187
  const autoProxy = resolveAutoProxy(projectDir, autoProxyOverride);
181
188
  const copies = new AbortController();
182
- const servedHtml = autoProxy ? await injectMediaCodecMapIntoHtml(html, projectDir, [{ html }], void 0, true, copies.signal) : html;
189
+ const servedHtml = autoProxy ? await injectMediaCodecMapIntoHtml(
190
+ html,
191
+ projectDir,
192
+ [{ html }],
193
+ void 0,
194
+ true,
195
+ copies.signal,
196
+ findStageProxyBox(html)
197
+ ) : html;
183
198
  const server = createServer((req, res) => {
184
199
  const url = req.url ?? "/";
185
200
  if (url === "/" || url === "/index.html") {
@@ -189,8 +204,16 @@ async function serveStaticProjectHtml(projectDir, html, bindErrorMessage = "Fail
189
204
  }
190
205
  const queryIndex = url.indexOf("?");
191
206
  const pathOnly = queryIndex === -1 ? url : url.slice(0, queryIndex);
192
- const proxyParam = queryIndex === -1 ? null : new URLSearchParams(url.slice(queryIndex + 1)).get("hf-proxy");
207
+ const query = new URLSearchParams(queryIndex === -1 ? "" : url.slice(queryIndex + 1));
208
+ const proxyParam = query.get("hf-proxy");
193
209
  const proxyRequest = proxyParam !== null && isProxyVariantRequest(proxyParam) ? proxyParam : null;
210
+ const boxParam = query.get(PREVIEW_PROXY_BOX_PARAM);
211
+ const proxyBox = boxParam === null ? void 0 : parsePreviewProxyBox(boxParam);
212
+ if (proxyBox === null || proxyBox && !proxyRequest) {
213
+ res.writeHead(404);
214
+ res.end();
215
+ return;
216
+ }
194
217
  const requestPath = decodeWellFormedEscapes(pathOnly).replace(/^\//, "");
195
218
  for (const root of roots) {
196
219
  const filePath = resolve(root, requestPath);
@@ -202,6 +225,7 @@ async function serveStaticProjectHtml(projectDir, html, bindErrorMessage = "Fail
202
225
  projectDir,
203
226
  filePath,
204
227
  proxyRequest,
228
+ proxyBox,
205
229
  autoProxy,
206
230
  req.headers.range,
207
231
  res,
@@ -6,7 +6,7 @@ var __filename = __hf_fileURLToPath(import.meta.url);
6
6
  var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  detectGpuEncoder
9
- } from "./chunk-YCW345M4.js";
9
+ } from "./chunk-OAPYPSEB.js";
10
10
  import {
11
11
  runCancellableProcess
12
12
  } from "./chunk-DYAPHNV6.js";
@@ -15,13 +15,13 @@ import {
15
15
  findFFmpeg,
16
16
  findFFprobe,
17
17
  getFFmpegInstallHint
18
- } from "./chunk-NMOTNNP2.js";
18
+ } from "./chunk-IARWN467.js";
19
19
  import {
20
20
  DEFAULT_VP9_CPU_USED,
21
21
  SDR_RGB_TO_BT709_FILTER,
22
22
  SDR_RGB_TO_TAGGED_BT709_FILTER,
23
23
  renderProvenanceArgs
24
- } from "./chunk-YCW345M4.js";
24
+ } from "./chunk-OAPYPSEB.js";
25
25
 
26
26
  // src/background-removal/pipeline.ts
27
27
  import { spawn } from "child_process";
@@ -262,7 +262,7 @@ function inferInputKind(inputPath) {
262
262
  }
263
263
  async function probeMedia(inputPath) {
264
264
  const isImage = inferInputKind(inputPath) === "image";
265
- const engine = await import("./src-ZPIV4PGX.js");
265
+ const engine = await import("./src-XSDYRKLG.js");
266
266
  const meta = await engine.extractMediaMetadata(inputPath);
267
267
  if (isImage) {
268
268
  return { width: meta.width, height: meta.height, fps: 0, frameCount: 1 };
@@ -7,7 +7,7 @@ var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  sherpaParakeetInstalled,
9
9
  sherpaUnsupportedReason
10
- } from "./chunk-FWVILDOZ.js";
10
+ } from "./chunk-FUHI34T4.js";
11
11
  import {
12
12
  findParakeet
13
13
  } from "./chunk-JZIEZCQM.js";
@@ -4,22 +4,22 @@ 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
+ ambiguousIssue,
9
+ loadBrowserScript
10
+ } from "./chunk-FANFO5HI.js";
7
11
  import {
8
12
  auditClipDurations,
9
13
  shouldIgnoreHttpError,
10
14
  shouldIgnoreRequestFailure
11
- } from "./chunk-FOLMMQF3.js";
12
- import {
13
- checkSnapshotDirectory,
14
- rectToBbox
15
- } from "./chunk-KANNRHY7.js";
16
- import {
17
- ambiguousIssue,
18
- loadBrowserScript
19
- } from "./chunk-2DHCCBCN.js";
15
+ } from "./chunk-S2IEO6TH.js";
20
16
  import {
21
17
  serveStaticProjectHtml
22
- } from "./chunk-XPVN4R66.js";
18
+ } from "./chunk-HJZ5CPZA.js";
19
+ import {
20
+ artifactDirectory,
21
+ finishSnapshotRun
22
+ } from "./chunk-TMBUBLZB.js";
23
23
  import {
24
24
  FfmpegUnavailableError,
25
25
  decideMediaProxyEligibility,
@@ -27,7 +27,7 @@ import {
27
27
  proxyVariantFor,
28
28
  resolveProxies,
29
29
  scanProjectMediaCodecMap
30
- } from "./chunk-LWYZN7HS.js";
30
+ } from "./chunk-BT64TTSE.js";
31
31
  import {
32
32
  AUDIT_SEEK_OPTIONS,
33
33
  DEFAULT_ZOOM_PADDING_PX,
@@ -41,14 +41,17 @@ import {
41
41
  seekCompositionTimeline,
42
42
  seekInPage,
43
43
  waitForPreferredSeekTarget
44
- } from "./chunk-KDBPZOXK.js";
44
+ } from "./chunk-EU5HTY3E.js";
45
45
  import {
46
46
  BrowserCleanupError,
47
47
  closeManagedBrowser
48
- } from "./chunk-MXXX6WVC.js";
48
+ } from "./chunk-GGVGOY6M.js";
49
+ import {
50
+ findStageProxyBox
51
+ } from "./chunk-ZFFKWHXN.js";
49
52
  import {
50
53
  resolveAutoProxy
51
- } from "./chunk-DG4ME554.js";
54
+ } from "./chunk-UZ7RJDEC.js";
52
55
  import {
53
56
  normalizeErrorMessage
54
57
  } from "./chunk-KNU5COPB.js";
@@ -63,6 +66,7 @@ var OFF_HINTS = {
63
66
  "root-blend-mode": "set mix-blend-mode on a child element instead of the composition root, or drop motion blur",
64
67
  "nested-capture-canvas": "remove the inner <canvas layoutsubtree> / content=drawable, or drop motion blur"
65
68
  };
69
+ var CHOSEN = /* @__PURE__ */ new Set(["translation-only", "tier-attribute"]);
66
70
  var GENERIC_OFF_HINT = "remove what the reason names, or drop data-motion-blur";
67
71
  var ASKED = 'data-motion-blur="on" is set but';
68
72
  function motionBlurDrafts(probe) {
@@ -72,8 +76,8 @@ function motionBlurDrafts(probe) {
72
76
  {
73
77
  code: "motion_blur_unverified",
74
78
  severity: "info",
75
- message: `${ASKED} blur could not be evaluated in this browser`,
76
- fixHint: "the check browser has no html-in-canvas (drawElementImage); render once to see whether blur applies",
79
+ message: `${ASKED} the check browser cannot run capture blur, so it was drawn with the filter fallback`,
80
+ fixHint: "the check browser has no html-in-canvas (drawElementImage); render once to see how capture blur looks",
77
81
  time: 0
78
82
  }
79
83
  ];
@@ -89,6 +93,17 @@ function motionBlurDrafts(probe) {
89
93
  }
90
94
  ];
91
95
  }
96
+ if (probe.tier === "filter" && probe.movers > 0 && !CHOSEN.has(probe.reasonCode ?? "")) {
97
+ return [
98
+ {
99
+ code: "motion_blur_filter_fallback",
100
+ severity: "info",
101
+ message: `data-motion-blur="on" is drawn by the filter fallback: ${probe.reason ?? "capture blur cannot run here"}`,
102
+ fixHint: `the fallback smears movement but only softens zoom and rotation; ${OFF_HINTS[probe.reasonCode ?? ""] ?? GENERIC_OFF_HINT}`,
103
+ time: 0
104
+ }
105
+ ];
106
+ }
92
107
  if (probe.movers === 0) {
93
108
  return [
94
109
  {
@@ -112,10 +127,12 @@ function readMotionBlurProbe() {
112
127
  const reason = Reflect.get(report, "reason");
113
128
  const code = Reflect.get(report, "reasonCode");
114
129
  const movers = Reflect.get(report, "movers");
130
+ const tier = Reflect.get(report, "tier");
115
131
  const suspend = Reflect.get(api, "suspend");
116
132
  if (typeof suspend === "function") Reflect.apply(suspend, api, []);
117
133
  return {
118
134
  state: Reflect.get(report, "state") === "off" ? "off" : "on",
135
+ tier: tier === "capture" || tier === "filter" ? tier : null,
119
136
  reason: typeof reason === "string" ? reason : null,
120
137
  reasonCode: typeof code === "string" ? code : null,
121
138
  movers: typeof movers === "number" ? movers : 0
@@ -132,10 +149,41 @@ function dropMotionBlurConsoleEcho(drafts, found) {
132
149
  );
133
150
  }
134
151
 
152
+ // src/utils/checkSnapshotDirectory.ts
153
+ import { resolve } from "path";
154
+ var runDirectories = /* @__PURE__ */ new Map();
155
+ var activeChecks = /* @__PURE__ */ new Map();
156
+ function beginCheckSnapshots(projectDir) {
157
+ const project = resolve(projectDir);
158
+ activeChecks.set(project, (activeChecks.get(project) ?? 0) + 1);
159
+ }
160
+ function checkSnapshotDirectory(projectDir) {
161
+ const project = resolve(projectDir);
162
+ let directory = runDirectories.get(project);
163
+ if (!directory) {
164
+ directory = artifactDirectory(project, "snapshots");
165
+ runDirectories.set(project, directory);
166
+ }
167
+ return directory;
168
+ }
169
+ async function finishCheckSnapshots(projectDir) {
170
+ const project = resolve(projectDir);
171
+ const remaining = Math.max(0, (activeChecks.get(project) ?? 1) - 1);
172
+ if (remaining > 0) {
173
+ activeChecks.set(project, remaining);
174
+ return;
175
+ }
176
+ activeChecks.delete(project);
177
+ const path = runDirectories.get(project);
178
+ if (!path) return;
179
+ runDirectories.delete(project);
180
+ await finishSnapshotRun(project, path);
181
+ }
182
+
135
183
  // src/utils/checkBrowser.ts
136
184
  import { existsSync, mkdirSync, writeFileSync } from "fs";
137
185
  import os from "os";
138
- import { join, resolve } from "path";
186
+ import { join, resolve as resolve2 } from "path";
139
187
 
140
188
  // src/utils/gsapTweenTails.ts
141
189
  var TWEEN_TAIL_WINDOW = 0.25;
@@ -247,9 +295,14 @@ function collectTweenRecords() {
247
295
  );
248
296
  }
249
297
 
298
+ // src/utils/checkTypes.ts
299
+ function rectToBbox(rect) {
300
+ return { x: rect.left, y: rect.top, width: rect.width, height: rect.height };
301
+ }
302
+
250
303
  // src/utils/checkBrowser.ts
251
304
  async function preResolveHostileMediaProxies(projectDir, html, autoProxyOverride) {
252
- const none = { findings: [], failedPaths: /* @__PURE__ */ new Set() };
305
+ const none = { findings: [], failedPaths: /* @__PURE__ */ new Set(), files: [] };
253
306
  if (!resolveAutoProxy(projectDir, autoProxyOverride)) return none;
254
307
  let codecMap;
255
308
  try {
@@ -265,17 +318,20 @@ async function preResolveHostileMediaProxies(projectDir, html, autoProxyOverride
265
318
  );
266
319
  if (hostileEntries.length === 0) return none;
267
320
  const startedAt = Date.now();
321
+ const stageBox = findStageProxyBox(html);
268
322
  const sources = hostileEntries.map(([pathname, facts]) => {
269
323
  const file = pathname.replace(/^\/+/, "");
270
324
  return {
271
325
  pathname,
272
326
  file,
273
- sourcePath: resolve(projectDir, file),
274
- variant: proxyVariantFor(facts)
327
+ sourcePath: resolve2(projectDir, file),
328
+ variant: proxyVariantFor(facts),
329
+ box: stageBox
275
330
  };
276
331
  });
277
332
  const total = hostileEntries.length;
278
- const toMake = sources.filter((source) => !proxyCached(projectDir, source)).length;
333
+ const cached = sources.map((source) => proxyCached(projectDir, source));
334
+ const toMake = cached.filter((isCached) => !isCached).length;
279
335
  if (toMake > 0) {
280
336
  console.error(
281
337
  `[hyperframes] Making browser-playable copies of ${toMake} video${toMake === 1 ? "" : "s"} Chrome cannot decode. Only the first check of these files waits for this; later checks reuse the copies.`
@@ -306,11 +362,18 @@ async function preResolveHostileMediaProxies(projectDir, html, autoProxyOverride
306
362
  )
307
363
  );
308
364
  }
309
- return { findings, failedPaths: new Set(failures.map(({ pathname }) => pathname)) };
365
+ const files = sources.map(({ file }, index) => {
366
+ const result = results[index];
367
+ if (result.status === "rejected") {
368
+ return { file, state: "failed", reason: normalizeErrorMessage(result.reason) };
369
+ }
370
+ return { file, state: cached[index] ? "cached" : "ready" };
371
+ });
372
+ return { findings, failedPaths: new Set(failures.map(({ pathname }) => pathname)), files };
310
373
  }
311
374
  function proxyCached(projectDir, source) {
312
375
  try {
313
- return existsSync(getProxyCachePath(projectDir, source.sourcePath, source.variant));
376
+ return existsSync(getProxyCachePath(projectDir, source.sourcePath, source.variant, source.box));
314
377
  } catch {
315
378
  return false;
316
379
  }
@@ -319,7 +382,7 @@ function proxyFailedDraft(message) {
319
382
  return { code: "media_proxy_failed", severity: "warning", message, time: 0 };
320
383
  }
321
384
  async function runBrowserCheck(project, options, motion, runGrid, deadline, prelaunched) {
322
- const { bundleWithLocalizedFonts } = await import("./bundleWithLocalizedFonts-3QG722YD.js");
385
+ const { bundleWithLocalizedFonts } = await import("./bundleWithLocalizedFonts-RWHFMSFL.js");
323
386
  const html = await bundleWithLocalizedFonts(project.dir);
324
387
  deadline?.enter("copies");
325
388
  const { findings: drafts, failedPaths } = await preResolveHostileMediaProxies(
@@ -366,7 +429,7 @@ async function runBrowserCheck(project, options, motion, runGrid, deadline, prel
366
429
  await waitForPreferredSeekTarget(page);
367
430
  const rootAnchor = await resolveRootAnchor(page);
368
431
  const launchSettleMs = Date.now() - launchSettleStart;
369
- const { analyzeClipMediaFit } = await import("./src-ZPIV4PGX.js");
432
+ const { analyzeClipMediaFit } = await import("./src-XSDYRKLG.js");
370
433
  for (const entry of await auditClipDurations(page, analyzeClipMediaFit, options.timeout)) {
371
434
  drafts.push({ code: "clip_media_fit", severity: entry.level, message: entry.text, time: 0 });
372
435
  }
@@ -475,7 +538,7 @@ function mergeHelperDrafts(primary, helper) {
475
538
  }
476
539
  async function captureFindingCrops(project, options, requests, deadline) {
477
540
  if (requests.length === 0) return [];
478
- const { bundleWithLocalizedFonts } = await import("./bundleWithLocalizedFonts-3QG722YD.js");
541
+ const { bundleWithLocalizedFonts } = await import("./bundleWithLocalizedFonts-RWHFMSFL.js");
479
542
  const html = await bundleWithLocalizedFonts(project.dir);
480
543
  const server = await serveStaticProjectHtml(
481
544
  project.dir,
@@ -651,11 +714,11 @@ async function abortedImagesStillBroken(page, drafts) {
651
714
  if (urls.length === 0) return /* @__PURE__ */ new Set();
652
715
  const broken = await page.evaluate(
653
716
  async (candidates, capMs) => {
654
- const fails = (img) => new Promise((resolve2) => {
655
- const cap = setTimeout(() => resolve2(false), capMs);
717
+ const fails = (img) => new Promise((resolve3) => {
718
+ const cap = setTimeout(() => resolve3(false), capMs);
656
719
  img.decode().then(
657
- () => resolve2(false),
658
- () => resolve2(true)
720
+ () => resolve3(false),
721
+ () => resolve3(true)
659
722
  ).finally(() => clearTimeout(cap));
660
723
  });
661
724
  const stillBroken = await Promise.all(
@@ -1680,6 +1743,10 @@ function matchComponentFindings({
1680
1743
  }
1681
1744
 
1682
1745
  export {
1746
+ beginCheckSnapshots,
1747
+ checkSnapshotDirectory,
1748
+ finishCheckSnapshots,
1749
+ rectToBbox,
1683
1750
  preResolveHostileMediaProxies,
1684
1751
  runBrowserCheck,
1685
1752
  samplingBrowserCount,
@@ -7,7 +7,7 @@ var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  resolveConfig,
9
9
  usesSoftwareWebGpu
10
- } from "./chunk-YCW345M4.js";
10
+ } from "./chunk-OAPYPSEB.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-ZPIV4PGX.js");
20
+ const { resolveBrowserGpuMode } = await import("./src-XSDYRKLG.js");
21
21
  return resolveBrowserGpuMode(requestedMode, { chromePath, probeLifecycle });
22
22
  }
23
23
  function resolveLocalWebGpu(browserGpuMode, requiresWebGpu) {
@@ -7,29 +7,29 @@ var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  RegistryCompatibilityError,
9
9
  gateRegistryItemsCompatibility
10
- } from "./chunk-57XL23DE.js";
10
+ } from "./chunk-WLG4OYH7.js";
11
11
  import {
12
12
  DEFAULT_PROJECT_CONFIG,
13
13
  createProjectConfig,
14
14
  loadProjectConfig,
15
15
  projectConfigPath,
16
16
  recordProjectRegistryItems
17
- } from "./chunk-DG4ME554.js";
17
+ } from "./chunk-UZ7RJDEC.js";
18
18
  import {
19
19
  resolveItemWithDependencies,
20
20
  resolveItemsByTag
21
- } from "./chunk-DLFAVRF3.js";
21
+ } from "./chunk-SUSSMCWL.js";
22
22
  import {
23
23
  InvalidVariableValuesError,
24
24
  prepareItem,
25
25
  publishItem
26
- } from "./chunk-HKUZCSNZ.js";
26
+ } from "./chunk-6HYHHMX3.js";
27
27
  import {
28
28
  DEFAULT_REGISTRY_URL
29
- } from "./chunk-HPQSUPR7.js";
29
+ } from "./chunk-AYFF3GX6.js";
30
30
  import {
31
31
  trackRegistryItemAdded
32
- } from "./chunk-6Q5CFUAP.js";
32
+ } from "./chunk-OOAVKK2W.js";
33
33
  import {
34
34
  defineCommand
35
35
  } from "./chunk-S3S4TGEH.js";
@@ -41,7 +41,7 @@ import {
41
41
  } from "./chunk-ZTZA4UWZ.js";
42
42
  import {
43
43
  ITEM_TYPE_DIRS
44
- } from "./chunk-YV4WT7CJ.js";
44
+ } from "./chunk-56IOFIYB.js";
45
45
  import {
46
46
  isProjectRootMissing,
47
47
  realpath