hyperframes 0.8.144 → 0.8.146

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 (209) hide show
  1. package/README.md +3 -2
  2. package/dist/{add-CWRTVGDB.js → add-6J4TLUDW.js} +15 -15
  3. package/dist/{animatedGifPrep-JTOHIWI4.js → animatedGifPrep-TPYA45ZZ.js} +10 -10
  4. package/dist/{asset-KU2Z4UFM.js → asset-B4C6ZU4V.js} +2 -2
  5. package/dist/{assetCataloger-3CS2P7PA.js → assetCataloger-GX4B55VB.js} +4 -4
  6. package/dist/{auth-IDSOIQWG.js → auth-T2V3URGO.js} +2 -2
  7. package/dist/{autoUpdate-373B4BA2.js → autoUpdate-O4R7IOYP.js} +2 -2
  8. package/dist/{backgroundChecks-53Q3NAMG.js → backgroundChecks-SQHGZCSH.js} +3 -3
  9. package/dist/backgroundChecksWorker.js +3 -3
  10. package/dist/{batchRender-UKZA6BME.js → batchRender-T7S2CGJE.js} +5 -5
  11. package/dist/{beats-N5JGEOFR.js → beats-RNEXDM7U.js} +16 -16
  12. package/dist/{benchmark-CUN3LN4V.js → benchmark-IVK6FCEU.js} +12 -12
  13. package/dist/{browser-NCZT5AP6.js → browser-WUE6VK2N.js} +5 -5
  14. package/dist/{bundleWithLocalizedFonts-FWC7PE2D.js → bundleWithLocalizedFonts-EEIRL7FT.js} +2 -2
  15. package/dist/{capture-YLS32UHT.js → capture-K3EONGGU.js} +2 -2
  16. package/dist/{capture-QBLG3VJR.js → capture-LEKIGJ4G.js} +13 -13
  17. package/dist/{catalog-HIWNAFHW.js → catalog-IXYQ2KXW.js} +15 -15
  18. package/dist/{catch-up-HGS7KIAC.js → catch-up-IIF7HKR6.js} +6 -6
  19. package/dist/{check-FH6UYYLO.js → check-W7CDOXNP.js} +38 -38
  20. package/dist/{checkBrowser-RNWNOMCZ.js → checkBrowser-5VSXEHBZ.js} +118 -61
  21. package/dist/{chunk-XU5GGV6R.js → chunk-2NAUEDA6.js} +2 -2
  22. package/dist/{chunk-GZM2EFOE.js → chunk-3HSWLZ6S.js} +1 -1
  23. package/dist/{chunk-YUAXFWSQ.js → chunk-4RUILXS6.js} +5 -5
  24. package/dist/{chunk-MXNDKDFT.js → chunk-54UXJKFF.js} +1 -1
  25. package/dist/{chunk-DIRJ322I.js → chunk-66SAATRI.js} +3 -3
  26. package/dist/{chunk-RI53TS2Y.js → chunk-6TTAXMDG.js} +2 -2
  27. package/dist/{chunk-YJXHMIZA.js → chunk-A72OAGNB.js} +6 -6
  28. package/dist/{chunk-G75ENCEZ.js → chunk-AIJS74LG.js} +3 -3
  29. package/dist/{chunk-GEWKFRFI.js → chunk-AJ5R4GM6.js} +1 -1
  30. package/dist/{chunk-3VYNNWVA.js → chunk-BAKPN2D2.js} +101 -94
  31. package/dist/{chunk-3XTEXWNN.js → chunk-CVPWZ5LY.js} +3 -3
  32. package/dist/{chunk-AUBOF2PN.js → chunk-DDNS2674.js} +1 -1
  33. package/dist/{chunk-QFSCCQIR.js → chunk-DMKI64EZ.js} +1 -1
  34. package/dist/{chunk-NOPBBSLA.js → chunk-DUU77E2S.js} +69 -64
  35. package/dist/{chunk-RVFEDAUV.js → chunk-EGO6Z24R.js} +3 -3
  36. package/dist/{chunk-KC5XXX3X.js → chunk-EOOEC32M.js} +1 -1
  37. package/dist/{chunk-2DA2BBNY.js → chunk-ETNQF37F.js} +10 -10
  38. package/dist/{chunk-54QISXOC.js → chunk-FDL4HV44.js} +2 -2
  39. package/dist/{chunk-VYSUZEJG.js → chunk-FJLHVAPO.js} +6 -6
  40. package/dist/{chunk-QZ3AZTXI.js → chunk-FJWEYVEM.js} +42 -16
  41. package/dist/{chunk-EX6C672Y.js → chunk-FKLYMV3U.js} +1 -1
  42. package/dist/{chunk-PUGIRFPX.js → chunk-FMNVTKX2.js} +4 -4
  43. package/dist/{chunk-L5TUCXWR.js → chunk-HBGJYBGE.js} +2 -2
  44. package/dist/{chunk-SLCFKB3Y.js → chunk-HTM4CIFS.js} +11 -8
  45. package/dist/{chunk-T42U2W2R.js → chunk-IXLUTE6N.js} +1 -1
  46. package/dist/{chunk-OUSLVRO4.js → chunk-JBQJKC23.js} +76 -6
  47. package/dist/{chunk-IEIJRMLZ.js → chunk-JDB65PPT.js} +62 -63
  48. package/dist/{chunk-USDEMXXL.js → chunk-JYVGYKXG.js} +1 -1
  49. package/dist/{chunk-P6WH6QTV.js → chunk-K7ES5RSK.js} +1 -1
  50. package/dist/{chunk-LC3RQURJ.js → chunk-KFZUUXUN.js} +3 -3
  51. package/dist/{chunk-OIDN7G42.js → chunk-KG265HQ7.js} +2 -2
  52. package/dist/{chunk-7RAYSCYT.js → chunk-KPJMBC4K.js} +2 -2
  53. package/dist/{chunk-MAYCCGMQ.js → chunk-KVGDFUVO.js} +1 -1
  54. package/dist/{chunk-JEHFZQYT.js → chunk-LE7T4ML7.js} +1 -1
  55. package/dist/{chunk-MQZVBHEY.js → chunk-LFNQDTSH.js} +1 -1
  56. package/dist/{chunk-ZOA2SC4P.js → chunk-MOL32UKR.js} +45 -11
  57. package/dist/{chunk-RG3QWWIE.js → chunk-QSSPIATO.js} +2 -2
  58. package/dist/{chunk-F2SMS24Q.js → chunk-R6R74HNZ.js} +117 -139
  59. package/dist/{chunk-7SDCIWHQ.js → chunk-SYMSKGXI.js} +2 -2
  60. package/dist/{chunk-ZEUONDQG.js → chunk-SYUGVPYH.js} +1 -1
  61. package/dist/{chunk-4OC7MQNB.js → chunk-TBOMPYG6.js} +2 -2
  62. package/dist/{chunk-KFKZ3ISO.js → chunk-TH4OXAWY.js} +1 -1
  63. package/dist/{chunk-4LAR447G.js → chunk-UOBYRLDD.js} +1 -1
  64. package/dist/{chunk-NV4RXIQ7.js → chunk-UZUUVYAO.js} +3 -3
  65. package/dist/{chunk-PJ3HDUCY.js → chunk-VAS6HQX3.js} +39 -9
  66. package/dist/{chunk-LFX2HEYP.js → chunk-VT563F4O.js} +7 -7
  67. package/dist/{chunk-5VMR4WBS.js → chunk-WU2B74TL.js} +363 -103
  68. package/dist/{chunk-5HJ343GH.js → chunk-WUZ6TMAO.js} +1 -1
  69. package/dist/{chunk-GQJZORQP.js → chunk-XBSPQ52S.js} +1 -1
  70. package/dist/{chunk-5WADG7PR.js → chunk-XJUZEB44.js} +1 -1
  71. package/dist/{chunk-I5KY7EZP.js → chunk-XVIYZU3D.js} +1 -1
  72. package/dist/{chunk-XGFHYAYN.js → chunk-Z5C4LEAD.js} +33 -28
  73. package/dist/chunk-Z6FLHIDV.js +3795 -0
  74. package/dist/{chunk-DDIVWXN7.js → chunk-ZFN6GQU4.js} +4 -4
  75. package/dist/{chunk-Y6UPYWJS.js → chunk-ZVZSFDW3.js} +2 -2
  76. package/dist/{chunk-A53CBD24.js → chunk-ZZ7H4IJ6.js} +9 -9
  77. package/dist/{clean-KPX27IKJ.js → clean-2GDD2B4F.js} +23 -23
  78. package/dist/cli.js +52 -52
  79. package/dist/{cloud-P7DAOISN.js → cloud-LUKGDTTE.js} +4 -4
  80. package/dist/{cloudrun-XM56TBOH.js → cloudrun-NQF5KFQI.js} +6 -6
  81. package/dist/{compare-F6YAFZZM.js → compare-4P6O4ONG.js} +32 -32
  82. package/dist/{compiler-JZ4GNFMG.js → compiler-ACCPOZMQ.js} +10 -6
  83. package/dist/{component-3CFOGIQA.js → component-SDDOLNJD.js} +3 -3
  84. package/dist/{compositions-CPCMWF24.js → compositions-P2L6HUVQ.js} +15 -15
  85. package/dist/{delete-GYVKOKB6.js → delete-Q6S4BJ3F.js} +2 -2
  86. package/dist/{deterministicFonts-U2BIMGPG.js → deterministicFonts-C5JQLCTS.js} +2 -2
  87. package/dist/{dist-YPWQDWJ4.js → dist-GPDOV3IQ.js} +4 -4
  88. package/dist/{dist-KDJTFJHA.js → dist-HUMFCJ6T.js} +3 -3
  89. package/dist/{doctor-GWI3B6JT.js → doctor-NL73UKHV.js} +15 -15
  90. package/dist/{events-BRRUDPPT.js → events-AVOPOKO3.js} +5 -5
  91. package/dist/{events-V2QFN4YM.js → events-X7KPU7LG.js} +4 -4
  92. package/dist/{feedback-CXMD7FWL.js → feedback-GJZ5NXSH.js} +10 -10
  93. package/dist/{ffmpeg-T5SH2EFJ.js → ffmpeg-5V4FP3R6.js} +2 -2
  94. package/dist/{figma-YABDWD66.js → figma-V7SVQQI5.js} +3 -3
  95. package/dist/fontLocalizeCli.js +14 -14
  96. package/dist/{get-L2SOQKHX.js → get-FO3YZYEU.js} +2 -2
  97. package/dist/{gpuPolicy-NBJNWHYS.js → gpuPolicy-QGS4TFWP.js} +10 -10
  98. package/dist/{grade-compare-STXQPKYQ.js → grade-compare-7ICSN7KE.js} +33 -33
  99. package/dist/{help-4H6BSFLB.js → help-Y5LYZG7K.js} +2 -2
  100. package/dist/{history-4IQOLTHJ.js → history-RKGBRNLD.js} +49 -22
  101. package/dist/hyperframe-runtime.js +214 -68
  102. package/dist/hyperframe.manifest.json +1 -1
  103. package/dist/hyperframe.runtime.iife.js +214 -68
  104. package/dist/hyperframes-player.global.js +4 -5
  105. package/dist/hyperframes-slideshow.global.js +3 -4
  106. package/dist/{info-2CZOTNBC.js → info-GGUTL2NR.js} +11 -11
  107. package/dist/{init-6BXK42VS.js → init-PG7NA5SQ.js} +31 -31
  108. package/dist/{inspect-VKU47TBH.js → inspect-FCXUB6DE.js} +33 -33
  109. package/dist/{installer-T2BSSUDY.js → installer-LZ4X5TZZ.js} +6 -6
  110. package/dist/{keyframes-IEYVHRPI.js → keyframes-R3K6WJ3N.js} +8 -8
  111. package/dist/{lambda-TIKG25CK.js → lambda-3GAKHMC3.js} +7 -7
  112. package/dist/{layout-XOI4PT7A.js → layout-XNIZIGA2.js} +33 -33
  113. package/dist/{lint-DWCMVIX5.js → lint-4KDS2F4O.js} +11 -11
  114. package/dist/{lintProject-UBZ3TDHU.js → lintProject-SSEXWCH6.js} +3 -3
  115. package/dist/{list-7GXKG5QM.js → list-OVPURFPK.js} +2 -2
  116. package/dist/{login-BQ5L2UHX.js → login-EE2AX2PE.js} +4 -4
  117. package/dist/{manager-YKMHR6LN.js → manager-5ORDVWJB.js} +3 -3
  118. package/dist/{media-treatment-IFB7OSZ3.js → media-treatment-UDUEOP67.js} +86 -55
  119. package/dist/{models-TY4PJ545.js → models-LPK2O4B2.js} +14 -14
  120. package/dist/{motionShot-WXMFHICW.js → motionShot-G76XBOYI.js} +35 -29
  121. package/dist/{normalize-audio-RFD776HQ.js → normalize-audio-TUKWZ3OR.js} +10 -10
  122. package/dist/{open-7IXXGO2E.js → open-7XB2TGVB.js} +6 -6
  123. package/dist/{parakeetRunner-IHLYYMTZ.js → parakeetRunner-DL556HXL.js} +14 -14
  124. package/dist/{pipeline-TXKPLL2U.js → pipeline-34N5DLWU.js} +11 -11
  125. package/dist/{play-J2KP64UK.js → play-DDA2UUQF.js} +26 -26
  126. package/dist/{preflight-B4AFK3RG.js → preflight-ONF5AJNO.js} +5 -5
  127. package/dist/{present-MHHNRVRA.js → present-LLNRKXF5.js} +23 -23
  128. package/dist/{preview-CONUOFFQ.js → preview-H3ZZS46F.js} +57 -26
  129. package/dist/{producer-ZI46K7HH.js → producer-IFQOZK2G.js} +1 -1
  130. package/dist/{projectConfig-FGGVG5MV.js → projectConfig-SBRMQZGG.js} +8 -8
  131. package/dist/{publication-TXFBMW6B.js → publication-5BQICRZO.js} +4 -4
  132. package/dist/{publish-YZSPBFRD.js → publish-XDUZA3E3.js} +27 -26
  133. package/dist/{remove-background-4ATVLHLG.js → remove-background-GNKRMFQS.js} +12 -12
  134. package/dist/{render-MH4IUPWB.js → render-JM6KNRIA.js} +27 -27
  135. package/dist/{render-6FBYLYGJ.js → render-KTTC3EE5.js} +12 -12
  136. package/dist/{render-GFW5BPES.js → render-PCFO45RK.js} +5 -5
  137. package/dist/{render-batch-XUCZ2PUJ.js → render-batch-7R2NRNVJ.js} +5 -5
  138. package/dist/{renderCancellation-XF7M7IUP.js → renderCancellation-GP3XD2FS.js} +10 -10
  139. package/dist/renderSetupWorker.js +3 -3
  140. package/dist/{resolver-W7AYCQGS.js → resolver-C4FPX72I.js} +6 -6
  141. package/dist/{sherpa-LDUB5NLY.js → sherpa-MZP3MV2X.js} +14 -14
  142. package/dist/skills/hyperframes/scripts/lib/frame-packets-core.mjs +2 -20
  143. package/dist/skills/hyperframes/scripts/lib/main-module.mjs +13 -0
  144. package/dist/skills/hyperframes/scripts/lib/main-module.test.mjs +51 -0
  145. package/dist/skills/hyperframes/scripts/plugin-cli.mjs +4 -3
  146. package/dist/skills/hyperframes/scripts/plugin-cli.test.mjs +5 -1
  147. package/dist/skills/hyperframes-cli/SKILL.md +2 -0
  148. package/dist/skills/media-use/audio/scripts/heygen-voice.mjs +2 -2
  149. package/dist/skills/media-use/audio/scripts/lib/main-module.mjs +13 -0
  150. package/dist/skills/media-use/references/media-treatments.md +5 -1
  151. package/dist/skills/media-use/scripts/lib/cube-validate.mjs +2 -3
  152. package/dist/skills/media-use/scripts/lib/main-module.mjs +13 -0
  153. package/dist/{skills-VENERS5X.js → skills-OET4XSHR.js} +7 -7
  154. package/dist/{skillsUpdateCheck-UXFYTACG.js → skillsUpdateCheck-IPFSKKJD.js} +3 -3
  155. package/dist/{slideshow-4OJEPWNZ.js → slideshow-YTWATJRT.js} +1 -1
  156. package/dist/{snapshot-C6T74HTI.js → snapshot-EC4N75MS.js} +34 -34
  157. package/dist/{src-VUJ2FUFK.js → src-LIERUCFW.js} +13 -9
  158. package/dist/{src-FS5RSVEI.js → src-ZZQJOKO6.js} +13 -13
  159. package/dist/{staticProjectServer-V2RZ4DWD.js → staticProjectServer-YH2RHYKW.js} +20 -20
  160. package/dist/{status-LXPGSSKY.js → status-PTKNQD2E.js} +2 -2
  161. package/dist/studio/assets/{hyperframes-player-Bw_jIaSX.js → hyperframes-player-tkxyWf5H.js} +3 -3
  162. package/dist/studio/assets/{index-Cj7W_c7p.js → index-BrdqOkqP.js} +1 -1
  163. package/dist/studio/assets/{index-BVM9NuWl.js → index-Cg48BxAo.js} +145 -145
  164. package/dist/studio/assets/{index-DyH9dT7b.js → index-Dllxg4aU.js} +1 -1
  165. package/dist/studio/index.html +1 -1
  166. package/dist/{studio-api-TQE7KWKO.js → studio-api-T2TS2CHL.js} +16 -14
  167. package/dist/{studioServer-CYKSQK7L.js → studioServer-GJVVJUEL.js} +54 -52
  168. package/dist/{system-OQLOGGPJ.js → system-OXRG57F2.js} +2 -2
  169. package/dist/{telemetry-A23PPRD6.js → telemetry-ZQ5XVE6Z.js} +5 -5
  170. package/dist/{timeline-T3QSGT3A.js → timeline-I2T5WIPD.js} +34 -25
  171. package/dist/{tokens-RT5HWA6C.js → tokens-ONUWOXEX.js} +2 -2
  172. package/dist/{transcribe-FOLNOC5G.js → transcribe-BCQMA537.js} +12 -12
  173. package/dist/{transcribe-HCF64LQK.js → transcribe-ZLJF7V5Y.js} +13 -13
  174. package/dist/{updateCheck-27PIP3AA.js → updateCheck-ZWHDXF73.js} +2 -2
  175. package/dist/{upgrade-TVGXBUPJ.js → upgrade-32JGFZWS.js} +2 -2
  176. package/dist/{urlDownloader-KBLBJKRL.js → urlDownloader-EVDP43GM.js} +9 -9
  177. package/dist/{validate-ZMYGK4QI.js → validate-G4PUGQCI.js} +27 -27
  178. package/dist/{video-AVE5GIGM.js → video-TILEY3VJ.js} +10 -10
  179. package/package.json +3 -2
  180. package/dist/chunk-WJB7WI4J.js +0 -3753
  181. package/dist/studio/chunk-3GHTHPZD.js +0 -1105
  182. package/dist/studio/chunk-3GHTHPZD.js.map +0 -1
  183. package/dist/studio/chunk-EEXSYY5F.js +0 -190
  184. package/dist/studio/chunk-EEXSYY5F.js.map +0 -1
  185. package/dist/studio/chunk-G3EDKRZH.js +0 -1442
  186. package/dist/studio/chunk-G3EDKRZH.js.map +0 -1
  187. package/dist/studio/chunk-PEAKCOUW.js +0 -942
  188. package/dist/studio/chunk-PEAKCOUW.js.map +0 -1
  189. package/dist/studio/chunk-PZ5AY32C.js +0 -10
  190. package/dist/studio/chunk-PZ5AY32C.js.map +0 -1
  191. package/dist/studio/chunk-Y2OHHNM2.js +0 -970
  192. package/dist/studio/chunk-Y2OHHNM2.js.map +0 -1
  193. package/dist/studio/domEditingLayers-PYST4G45.js +0 -47
  194. package/dist/studio/domEditingLayers-PYST4G45.js.map +0 -1
  195. package/dist/studio/index.css +0 -165
  196. package/dist/studio/index.css.map +0 -1
  197. package/dist/studio/index.d.ts +0 -4315
  198. package/dist/studio/index.js +0 -100971
  199. package/dist/studio/index.js.map +0 -1
  200. package/dist/studio/player.d.ts +0 -30
  201. package/dist/studio/player.js +0 -10
  202. package/dist/studio/player.js.map +0 -1
  203. package/dist/studio/styles/tailwind-preset.d.ts +0 -39
  204. package/dist/studio/styles/tailwind-preset.js +0 -50
  205. package/dist/studio/styles/tailwind-preset.js.map +0 -1
  206. package/dist/studio/styles.css +0 -1
  207. package/dist/studio/ui.d.ts +0 -297
  208. package/dist/studio/ui.js +0 -66
  209. package/dist/studio/ui.js.map +0 -1
@@ -9,11 +9,11 @@ import {
9
9
  formatPreviewProxyBox,
10
10
  hdrToSdrToneMapFilter,
11
11
  parseFirstFrameColour
12
- } from "./chunk-3VYNNWVA.js";
12
+ } from "./chunk-BAKPN2D2.js";
13
13
  import {
14
14
  decodeAuthoredAttribute,
15
15
  scanHtmlOpeningTags
16
- } from "./chunk-MQZVBHEY.js";
16
+ } from "./chunk-LFNQDTSH.js";
17
17
  import {
18
18
  mkdirWithinProject,
19
19
  realProjectRoot,
@@ -27,12 +27,12 @@ import {
27
27
  } from "./chunk-IWFLMU2N.js";
28
28
  import {
29
29
  findFfBinary
30
- } from "./chunk-PJ3HDUCY.js";
30
+ } from "./chunk-VAS6HQX3.js";
31
31
  import {
32
32
  rewriteAssetPath
33
33
  } from "./chunk-BSQ7XANM.js";
34
34
 
35
- // ../studio-server/dist/chunk-RN33UALN.js
35
+ // ../studio-server/dist/chunk-EJC7TX3O.js
36
36
  import { statSync } from "fs";
37
37
  import { sep } from "path";
38
38
  import { execFile } from "child_process";
@@ -336,7 +336,7 @@ async function scanProjectMediaCodecMap(projectDir, htmlSources, options = {}) {
336
336
  return map;
337
337
  }
338
338
 
339
- // ../studio-server/dist/chunk-AZBGTB3N.js
339
+ // ../studio-server/dist/chunk-XKBQOQFZ.js
340
340
  import { spawn } from "child_process";
341
341
  import { createHash, randomUUID } from "crypto";
342
342
  import { existsSync as existsSync2, renameSync, statSync as statSync2, unlinkSync as unlinkSync2, utimesSync } from "fs";
@@ -466,8 +466,9 @@ var ProxyTranscodeError = class extends Error {
466
466
  }
467
467
  };
468
468
  var FfmpegUnavailableError = class extends ProxyTranscodeError {
469
- constructor() {
470
- super("ffmpeg binary not found", null, "");
469
+ constructor(message = "ffmpeg binary not found", stderrTail = "") {
470
+ super(message, null, stderrTail);
471
+ this.name = "FfmpegUnavailableError";
471
472
  }
472
473
  };
473
474
  var FfmpegMissingFilterError = class extends ProxyTranscodeError {
@@ -665,6 +666,13 @@ function proxyScaleFilter(box) {
665
666
  const side = (d) => `min(trunc(${d}/2)*2\\,ceil(${d}*${factor}/2)*2)`;
666
667
  return `scale=${side("iw")}:${side("ih")}`;
667
668
  }
669
+ var STDERR_ERROR_LINE = /error|invalid|denied|no space|not found|unknown/i;
670
+ function stderrReason(stderrTail) {
671
+ const lines = stderrTail.split("\n").map((line2) => line2.trim()).filter(Boolean);
672
+ const errorLines = lines.filter((line2) => STDERR_ERROR_LINE.test(line2));
673
+ const line = errorLines.at(-1) ?? lines.at(-1);
674
+ return line ? `: ${line.replace(/[.!]+$/, "")}` : "";
675
+ }
668
676
  async function runFfmpeg(sourcePath, outputPath, variant, box) {
669
677
  const metadata = await probeMediaMetadata(sourcePath);
670
678
  const ffmpegPath = findFfBinary("ffmpeg", { configuredMustExist: true });
@@ -747,7 +755,7 @@ async function runFfmpeg(sourcePath, outputPath, variant, box) {
747
755
  stderrTail = (stderrTail + chunk.toString()).slice(-STDERR_TAIL_MAX_CHARS);
748
756
  });
749
757
  proc.on("error", (err) => {
750
- reject(new ProxyTranscodeError(`failed to spawn ffmpeg: ${err.message}`, null, stderrTail));
758
+ reject(new FfmpegUnavailableError(`failed to spawn ffmpeg: ${err.message}`, stderrTail));
751
759
  });
752
760
  proc.on("close", (code, signal) => {
753
761
  if (code === 0) {
@@ -761,7 +769,13 @@ async function runFfmpeg(sourcePath, outputPath, variant, box) {
761
769
  )
762
770
  );
763
771
  } else {
764
- reject(new ProxyTranscodeError(`ffmpeg exited with code ${code}`, code, stderrTail));
772
+ reject(
773
+ new ProxyTranscodeError(
774
+ `ffmpeg exited with code ${code}${stderrReason(stderrTail)}`,
775
+ code,
776
+ stderrTail
777
+ )
778
+ );
765
779
  }
766
780
  });
767
781
  });
@@ -837,6 +851,25 @@ async function resolveProxy(projectDir, absoluteSourcePath, variant = "h264", bo
837
851
  if (options.priority) prioritize(entry.job);
838
852
  return joinJob(entry.promise, entry.job, options.signal);
839
853
  }
854
+ async function resolveProxies(projectDir, sources) {
855
+ const results = [];
856
+ let next = 0;
857
+ const worker = async () => {
858
+ for (let index = next++; index < sources.length; index = next++) {
859
+ const { sourcePath, variant } = sources[index];
860
+ results[index] = await waitForProxy(
861
+ resolveProxy(projectDir, sourcePath, variant),
862
+ TRANSCODE_TIMEOUT_MS
863
+ ).then(
864
+ (value) => ({ status: "fulfilled", value }),
865
+ (reason) => ({ status: "rejected", reason })
866
+ );
867
+ }
868
+ };
869
+ const workers = Math.min(MAX_CONCURRENT_TRANSCODES, sources.length);
870
+ await Promise.all(Array.from({ length: workers }, worker));
871
+ return results;
872
+ }
840
873
  function joinJob(promise, job, signal) {
841
874
  job.callers++;
842
875
  if (!signal) return promise;
@@ -866,12 +899,13 @@ export {
866
899
  cleanupProxyCache,
867
900
  PROXY_PARAMS_VERSION,
868
901
  CACHE_DIR_NAME,
869
- TRANSCODE_TIMEOUT_MS,
870
902
  PROXY_PENDING_RETRY_AFTER_SECONDS,
871
903
  ProxyTranscodeError,
904
+ FfmpegUnavailableError,
872
905
  ProxyCapacityError,
873
906
  ProxyWaitTimeoutError,
874
907
  waitForProxy,
875
908
  proxyActivityMark,
876
- resolveProxy
909
+ resolveProxy,
910
+ resolveProxies
877
911
  };
@@ -8,10 +8,10 @@ import {
8
8
  flush,
9
9
  shouldTrack,
10
10
  trackEvent
11
- } from "./chunk-XU5GGV6R.js";
11
+ } from "./chunk-2NAUEDA6.js";
12
12
  import {
13
13
  getPowerState
14
- } from "./chunk-GQJZORQP.js";
14
+ } from "./chunk-XBSPQ52S.js";
15
15
  import {
16
16
  CliRuntimeError
17
17
  } from "./chunk-PBN6GBJE.js";