hyperframes 0.8.142 → 0.8.144
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.
- package/dist/{add-YS2RCWEK.js → add-CWRTVGDB.js} +18 -17
- package/dist/{animatedGifPrep-SAMCDT7T.js → animatedGifPrep-JTOHIWI4.js} +15 -14
- package/dist/{asset-BLWC2NWB.js → asset-KU2Z4UFM.js} +4 -4
- package/dist/{assetCataloger-FVNBBRP3.js → assetCataloger-3CS2P7PA.js} +8 -7
- package/dist/{auth-DRZB7OAC.js → auth-IDSOIQWG.js} +1 -1
- package/dist/{autoUpdate-I5I3BOJK.js → autoUpdate-373B4BA2.js} +2 -2
- package/dist/{backgroundChecks-VR2QHGNY.js → backgroundChecks-53Q3NAMG.js} +3 -3
- package/dist/backgroundChecksWorker.js +3 -3
- package/dist/{batchRender-4YUHQI6X.js → batchRender-UKZA6BME.js} +11 -10
- package/dist/{beats-7OT7ALV3.js → beats-N5JGEOFR.js} +33 -28
- package/dist/{benchmark-Q2XQCRTR.js → benchmark-CUN3LN4V.js} +15 -14
- package/dist/{browser-7VAWQQZC.js → browser-NCZT5AP6.js} +40 -56
- package/dist/{bundleWithLocalizedFonts-DDMLLL2R.js → bundleWithLocalizedFonts-FWC7PE2D.js} +2 -2
- package/dist/{capture-HEJS6M5A.js → capture-QBLG3VJR.js} +26 -25
- package/dist/{capture-U7ABPKS5.js → capture-YLS32UHT.js} +2 -2
- package/dist/{catalog-DVJ3XPDN.js → catalog-HIWNAFHW.js} +19 -18
- package/dist/{catch-up-DF6AVSN2.js → catch-up-HGS7KIAC.js} +5 -5
- package/dist/{check-KXORRWAE.js → check-FH6UYYLO.js} +78 -66
- package/dist/{checkBrowser-J7HZJTRH.js → checkBrowser-RNWNOMCZ.js} +93 -41
- package/dist/{chunk-R2JEKLDZ.js → chunk-2DA2BBNY.js} +3 -3
- package/dist/{chunk-TQFG7HTI.js → chunk-3RM2ETQT.js} +0 -168
- package/dist/{chunk-YFT3BL7N.js → chunk-3VYNNWVA.js} +30 -12
- package/dist/{chunk-7FCDA4RH.js → chunk-3XTEXWNN.js} +8 -5
- package/dist/{chunk-PFCFR3KZ.js → chunk-442JNXRM.js} +1 -1
- package/dist/{chunk-BPZVDBHY.js → chunk-4LAR447G.js} +1 -1
- package/dist/{chunk-AM5L5YIA.js → chunk-4OA4LDTU.js} +1 -1
- package/dist/{chunk-DZEVA7DI.js → chunk-4OC7MQNB.js} +2 -2
- package/dist/{chunk-75JJVANE.js → chunk-54QISXOC.js} +3 -3
- package/dist/{chunk-FZK35GT4.js → chunk-5HJ343GH.js} +1 -1
- package/dist/{chunk-IDX52YJN.js → chunk-5VMR4WBS.js} +458 -159
- package/dist/{chunk-OSUKETIH.js → chunk-5WADG7PR.js} +1 -1
- package/dist/{chunk-JYYOAKHS.js → chunk-6IIGT7BX.js} +1 -1
- package/dist/{chunk-6UYZB4TY.js → chunk-7RAYSCYT.js} +4 -4
- package/dist/{chunk-WTMUCJ6Z.js → chunk-7SDCIWHQ.js} +11 -2
- package/dist/{chunk-LAOCA3MQ.js → chunk-A4Q7W4LV.js} +13 -8
- package/dist/{chunk-B6SMSALD.js → chunk-A53CBD24.js} +18 -12
- package/dist/{chunk-4PFZPP2N.js → chunk-A6S35NYA.js} +54 -16
- package/dist/{chunk-JOTLPC6S.js → chunk-AUBOF2PN.js} +1 -1
- package/dist/{chunk-WCJGTLPF.js → chunk-BHVFTYSI.js} +6 -3
- package/dist/chunk-BSQ7XANM.js +210 -0
- package/dist/{chunk-LCSMOLGX.js → chunk-BYSBRF24.js} +69 -8
- package/dist/{chunk-U7E736AJ.js → chunk-DDIVWXN7.js} +32 -14
- package/dist/{chunk-KOEWEFHK.js → chunk-DIRJ322I.js} +10 -5
- package/dist/{chunk-HMUF7FEO.js → chunk-EX6C672Y.js} +2 -2
- package/dist/{chunk-QGRFOOLE.js → chunk-F2SMS24Q.js} +288 -85
- package/dist/{chunk-5Z63TBTX.js → chunk-FH7WODJH.js} +1 -1
- package/dist/{chunk-XTLBLWOV.js → chunk-GEWKFRFI.js} +1 -1
- package/dist/{chunk-RVCWIIZ7.js → chunk-GV5R5B7Q.js} +1 -1
- package/dist/{chunk-TY6XOHEM.js → chunk-GZM2EFOE.js} +3 -3
- package/dist/chunk-GZVP4TWN.js +76 -0
- package/dist/{chunk-QXPCARFE.js → chunk-I5KY7EZP.js} +1 -1
- package/dist/{chunk-IW2CKH6A.js → chunk-IEIJRMLZ.js} +94 -59
- package/dist/chunk-IR35BCLK.js +13 -0
- package/dist/{chunk-JFKL3WAE.js → chunk-IWFLMU2N.js} +104 -19
- package/dist/{chunk-EFDXGAAD.js → chunk-JEHFZQYT.js} +1 -1
- package/dist/{chunk-IHFUKJOR.js → chunk-K2FLNJVB.js} +8 -2
- package/dist/{chunk-KDPYVTEU.js → chunk-KBB4RG6F.js} +6 -1
- package/dist/{chunk-LJAU4TPS.js → chunk-KFKZ3ISO.js} +2 -2
- package/dist/{sherpa-ZYTNFHD5.js → chunk-L5TUCXWR.js} +11 -44
- package/dist/{chunk-KYN364DU.js → chunk-LC3RQURJ.js} +7 -9
- package/dist/{chunk-IMY4QQTQ.js → chunk-LFX2HEYP.js} +8 -8
- package/dist/{chunk-PXSM4HPB.js → chunk-MAYCCGMQ.js} +12 -3
- package/dist/{chunk-OZUQF4NB.js → chunk-MQZVBHEY.js} +123 -8
- package/dist/{chunk-FWRNQOLT.js → chunk-MXNDKDFT.js} +3 -3
- package/dist/{chunk-A4KQZXZI.js → chunk-NE55C6S5.js} +4 -2
- package/dist/{chunk-GYE63V4P.js → chunk-NOPBBSLA.js} +24 -19
- package/dist/{chunk-H2X52H2N.js → chunk-NV4RXIQ7.js} +3 -3
- package/dist/{chunk-WGVOWWVK.js → chunk-OIDN7G42.js} +3 -3
- package/dist/{chunk-DPHJKWP5.js → chunk-OUSLVRO4.js} +107 -108
- package/dist/{chunk-JLKMWY2T.js → chunk-P6WH6QTV.js} +8 -5
- package/dist/{chunk-7M4KAPAA.js → chunk-PUGIRFPX.js} +2 -2
- package/dist/{chunk-6RAD4BCC.js → chunk-QATWIE4K.js} +2 -2
- package/dist/{chunk-D2KNWIQ6.js → chunk-QFSCCQIR.js} +1 -1
- package/dist/{chunk-XGMNQQTJ.js → chunk-RG3QWWIE.js} +1 -1
- package/dist/{chunk-MVTUV4TP.js → chunk-RI53TS2Y.js} +14 -6
- package/dist/{chunk-LQASVU3I.js → chunk-RVFEDAUV.js} +12 -4
- package/dist/{chunk-GK4AIFIH.js → chunk-SDYDNHEE.js} +34 -3
- package/dist/{chunk-WSGY5CDQ.js → chunk-SLCFKB3Y.js} +14 -10
- package/dist/{chunk-2NCHQUPX.js → chunk-SQLK7SJL.js} +1 -1
- package/dist/{chunk-PMRBLBUP.js → chunk-T42U2W2R.js} +14 -2
- package/dist/chunk-UPFUC4DB.js +136 -0
- package/dist/{chunk-IXCTG2WY.js → chunk-VYSUZEJG.js} +5 -5
- package/dist/chunk-WJB7WI4J.js +3753 -0
- package/dist/{chunk-YEIFI443.js → chunk-WPNE5NEP.js} +1 -1
- package/dist/{chunk-YHRZQJXH.js → chunk-XGFHYAYN.js} +265 -68
- package/dist/{chunk-LBKDQKWV.js → chunk-XU5GGV6R.js} +1 -1
- package/dist/{chunk-LTGGTEMA.js → chunk-Y6UPYWJS.js} +2 -2
- package/dist/{chunk-OKCR3JTO.js → chunk-YJXHMIZA.js} +13 -10
- package/dist/{chunk-JU6Y5TTZ.js → chunk-YUAXFWSQ.js} +3 -3
- package/dist/{chunk-TVCRUG2S.js → chunk-ZEUONDQG.js} +1 -1
- package/dist/{chunk-THXFSPLV.js → chunk-ZIRIDSDB.js} +1 -1
- package/dist/{chunk-6UM3R7PP.js → chunk-ZOA2SC4P.js} +129 -60
- package/dist/{clean-KTHTV5G5.js → clean-KPX27IKJ.js} +27 -26
- package/dist/cli.js +70 -160
- package/dist/{cloud-ARSZWALC.js → cloud-P7DAOISN.js} +4 -4
- package/dist/{cloudrun-NM7RXOCL.js → cloudrun-XM56TBOH.js} +13 -12
- package/dist/commands/contrast-audit.browser.js +60 -4
- package/dist/commands/layout-audit.browser.js +68 -0
- package/dist/{compare-CY4UO3RW.js → compare-F6YAFZZM.js} +37 -36
- package/dist/{compiler-VTH2D3ID.js → compiler-JZ4GNFMG.js} +16 -10
- package/dist/{component-FRUIAXIR.js → component-3CFOGIQA.js} +5 -5
- package/dist/{compositions-CUSY6ZYY.js → compositions-CPCMWF24.js} +38 -33
- package/dist/{delete-KT3VHP4L.js → delete-GYVKOKB6.js} +4 -4
- package/dist/{deterministicFonts-F6WIVL2W.js → deterministicFonts-U2BIMGPG.js} +3 -3
- package/dist/{dist-7SZU7MA7.js → dist-KDJTFJHA.js} +7 -6
- package/dist/{dist-2GC6XKRQ.js → dist-YPWQDWJ4.js} +42 -40
- package/dist/{doctor-4ROTBL5U.js → doctor-GWI3B6JT.js} +21 -20
- package/dist/{dom-IROKGVJI.js → dom-37K6YOH4.js} +2 -2
- package/dist/{events-QJDVMKSR.js → events-BRRUDPPT.js} +3 -3
- package/dist/{events-Q5PXT5UC.js → events-V2QFN4YM.js} +2 -2
- package/dist/{feedback-PQ7TWESA.js → feedback-CXMD7FWL.js} +14 -13
- package/dist/{ffmpeg-QIUFEFTY.js → ffmpeg-T5SH2EFJ.js} +3 -2
- package/dist/{figma-JN5DDBDS.js → figma-YABDWD66.js} +3 -3
- package/dist/fontLocalizeCli.js +18 -17
- package/dist/{get-KT6OTERO.js → get-L2SOQKHX.js} +4 -4
- package/dist/{gpuPolicy-LCBWVGEH.js → gpuPolicy-NBJNWHYS.js} +19 -16
- package/dist/{grade-compare-VS3RP73G.js → grade-compare-STXQPKYQ.js} +39 -38
- package/dist/{help-AD6FIZIO.js → help-4H6BSFLB.js} +2 -2
- package/dist/{history-ZRWYRY7R.js → history-4IQOLTHJ.js} +6 -6
- package/dist/hyperframe-runtime.js +56 -56
- package/dist/hyperframe.manifest.json +1 -1
- package/dist/hyperframe.runtime.iife.js +56 -56
- package/dist/hyperframes-player.global.js +3 -3
- package/dist/hyperframes-slideshow.global.js +23 -23
- package/dist/{info-WBBQA2AX.js → info-2CZOTNBC.js} +17 -16
- package/dist/{init-A2XBDFGF.js → init-6BXK42VS.js} +46 -46
- package/dist/{inspect-CLTZHA5O.js → inspect-VKU47TBH.js} +38 -37
- package/dist/{installer-WQDRVXH4.js → installer-T2BSSUDY.js} +11 -10
- package/dist/{keyframes-3FYOK6H6.js → keyframes-IEYVHRPI.js} +10 -10
- package/dist/{lambda-Y2PA2BGS.js → lambda-TIKG25CK.js} +12 -11
- package/dist/{layout-4KP5O7IJ.js → layout-XOI4PT7A.js} +38 -37
- package/dist/{lint-V4GRFHOJ.js → lint-DWCMVIX5.js} +14 -13
- package/dist/{lintProject-RG2KGAXB.js → lintProject-UBZ3TDHU.js} +7 -6
- package/dist/{list-OQ4VED6E.js → list-7GXKG5QM.js} +5 -5
- package/dist/{login-W47NKN5S.js → login-BQ5L2UHX.js} +4 -4
- package/dist/{manager-CT3D67CG.js → manager-BPSR6D3V.js} +2 -2
- package/dist/{manager-524RPYO7.js → manager-RFZNG5YT.js} +2 -2
- package/dist/{manager-DXB7JDHU.js → manager-YKMHR6LN.js} +9 -6
- package/dist/{media-treatment-HJYL3EME.js → media-treatment-IFB7OSZ3.js} +24 -22
- package/dist/{models-DYBAD2GQ.js → models-TY4PJ545.js} +68 -27
- package/dist/{motionShot-7NE2YBB3.js → motionShot-WXMFHICW.js} +33 -33
- package/dist/{normalize-IGLHCWTF.js → normalize-U3SL5VG3.js} +19 -8
- package/dist/{normalize-audio-INKCLMS2.js → normalize-audio-RFD776HQ.js} +10 -6
- package/dist/{open-TYC5THVY.js → open-7IXXGO2E.js} +5 -5
- package/dist/parakeetRunner-IHLYYMTZ.js +67 -0
- package/dist/{pipeline-EVKEPQEW.js → pipeline-TXKPLL2U.js} +20 -18
- package/dist/{play-QMZEM6X3.js → play-J2KP64UK.js} +31 -29
- package/dist/{preflight-Y5DN5D37.js → preflight-B4AFK3RG.js} +4 -4
- package/dist/{present-Y7IK3C4W.js → present-MHHNRVRA.js} +26 -25
- package/dist/{preview-5OQRYE6A.js → preview-CONUOFFQ.js} +28 -27
- package/dist/{producer-Q6G6JU7B.js → producer-ZI46K7HH.js} +1 -1
- package/dist/{projectConfig-RJN3DKDB.js → projectConfig-FGGVG5MV.js} +13 -12
- package/dist/{publication-QCPGGN3U.js → publication-TXFBMW6B.js} +8 -7
- package/dist/{publish-VZLFIGYY.js → publish-YZSPBFRD.js} +18 -17
- package/dist/{remove-background-TKOEHBA5.js → remove-background-4ATVLHLG.js} +22 -20
- package/dist/{render-KIIIF6PS.js → render-6FBYLYGJ.js} +20 -19
- package/dist/{render-XTXE5CRU.js → render-GFW5BPES.js} +13 -12
- package/dist/{render-X3NFNVEQ.js → render-MH4IUPWB.js} +41 -40
- package/dist/{render-batch-M55YZLZ5.js → render-batch-XUCZ2PUJ.js} +13 -12
- package/dist/{renderCancellation-X5BEHAZU.js → renderCancellation-XF7M7IUP.js} +18 -16
- package/dist/renderSetupWorker.js +37 -48
- package/dist/{resolver-GAMXRA42.js → resolver-W7AYCQGS.js} +10 -9
- package/dist/sherpa-LDUB5NLY.js +75 -0
- package/dist/sherpaWorker.js +2 -1
- package/dist/skills/hyperframes-cli/references/doctor-browser.md +24 -1
- package/dist/skills/hyperframes-cli/references/lint-validate-inspect.md +1 -1
- package/dist/skills/media-use/scripts/lib/cache.mjs +28 -14
- package/dist/skills/media-use/scripts/lib/cache.test.mjs +110 -0
- package/dist/skills/media-use/scripts/lib/duck.mjs +2 -1
- package/dist/skills/media-use/scripts/lib/duck.test.mjs +87 -0
- package/dist/skills/media-use/scripts/lib/probe.mjs +6 -1
- package/dist/skills/media-use/scripts/lib/probe.test.mjs +73 -0
- package/dist/skills/media-use/scripts/lib/words.mjs +1 -1
- package/dist/{skills-CZHVAD3J.js → skills-VENERS5X.js} +7 -7
- package/dist/{skillsUpdateCheck-6WLLX53A.js → skillsUpdateCheck-UXFYTACG.js} +3 -3
- package/dist/{slideshow-EJ4IMY6P.js → slideshow-4OJEPWNZ.js} +1 -1
- package/dist/{snapshot-K7BTJPYQ.js → snapshot-C6T74HTI.js} +44 -40
- package/dist/{src-YUW26JU5.js → src-FS5RSVEI.js} +17 -16
- package/dist/{src-3I3RH3V5.js → src-VUJ2FUFK.js} +18 -13
- package/dist/{staticProjectServer-IKCSGN2B.js → staticProjectServer-V2RZ4DWD.js} +23 -22
- package/dist/studio/assets/hyperframes-player-Bw_jIaSX.js +473 -0
- package/dist/studio/assets/{index-B-wffzRH.js → index-BVM9NuWl.js} +153 -153
- package/dist/studio/assets/{index-D3Vij9t1.js → index-Cj7W_c7p.js} +1 -1
- package/dist/studio/assets/{index-D5q2_7Gw.js → index-DyH9dT7b.js} +1 -1
- package/dist/studio/{chunk-TFLU2MGI.js → chunk-3GHTHPZD.js} +8 -1
- package/dist/studio/chunk-3GHTHPZD.js.map +1 -0
- package/dist/studio/{chunk-H2DUOXTF.js → chunk-G3EDKRZH.js} +3 -3
- package/dist/studio/{chunk-UYWON5AX.js → chunk-PEAKCOUW.js} +7 -3
- package/dist/studio/chunk-PEAKCOUW.js.map +1 -0
- package/dist/studio/{chunk-LOVBLSMR.js → chunk-Y2OHHNM2.js} +35 -19
- package/dist/studio/chunk-Y2OHHNM2.js.map +1 -0
- package/dist/studio/{domEditingLayers-KBTPQKGA.js → domEditingLayers-PYST4G45.js} +3 -3
- package/dist/studio/index.html +1 -1
- package/dist/studio/index.js +261 -230
- package/dist/studio/index.js.map +1 -1
- package/dist/studio/player.js +3 -3
- package/dist/studio/ui.d.ts +4 -5
- package/dist/studio/ui.js +1 -1
- package/dist/{studio-api-SQ3NXFSM.js → studio-api-TQE7KWKO.js} +22 -17
- package/dist/{studioServer-VVEO7XCH.js → studioServer-CYKSQK7L.js} +81 -64
- package/dist/{synthesize-77PTU6C5.js → synthesize-UCI4X5O7.js} +6 -6
- package/dist/{telemetry-FQDKR5XA.js → telemetry-A23PPRD6.js} +3 -3
- package/dist/{timeline-N6ZASFNE.js → timeline-T3QSGT3A.js} +143 -99
- package/dist/{tokens-2OIIBBCW.js → tokens-RT5HWA6C.js} +4 -4
- package/dist/{transcribe-7YTUCXDX.js → transcribe-FOLNOC5G.js} +116 -52
- package/dist/{transcribe-4F6MK73N.js → transcribe-HCF64LQK.js} +23 -20
- package/dist/{tts-TOHSPWEG.js → tts-B6AHFQEO.js} +6 -6
- package/dist/{updateCheck-AZ2COZFR.js → updateCheck-27PIP3AA.js} +2 -2
- package/dist/{upgrade-QAJEYB4X.js → upgrade-TVGXBUPJ.js} +2 -2
- package/dist/{urlDownloader-LSMFEO3R.js → urlDownloader-KBLBJKRL.js} +14 -13
- package/dist/{validate-GW5MDL36.js → validate-ZMYGK4QI.js} +40 -27
- package/dist/{video-PRNOKUK3.js → video-AVE5GIGM.js} +15 -14
- package/package.json +1 -1
- package/dist/chunk-J4UX3RS3.js +0 -3717
- package/dist/studio/assets/hyperframes-player-sAsRuV73.js +0 -473
- package/dist/studio/chunk-LOVBLSMR.js.map +0 -1
- package/dist/studio/chunk-TFLU2MGI.js.map +0 -1
- package/dist/studio/chunk-UYWON5AX.js.map +0 -1
- package/dist/{chunk-HBBJFK6I.js → chunk-APDLWWFG.js} +0 -0
- package/dist/{screenshotCapture-TEUIWXWN.js → screenshotCapture-3JXXUZND.js} +3 -3
- /package/dist/studio/{chunk-H2DUOXTF.js.map → chunk-G3EDKRZH.js.map} +0 -0
- /package/dist/studio/{domEditingLayers-KBTPQKGA.js.map → domEditingLayers-PYST4G45.js.map} +0 -0
|
@@ -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
|
+
normalizeErrorMessage
|
|
9
|
+
} from "./chunk-KNU5COPB.js";
|
|
7
10
|
|
|
8
11
|
// src/utils/processTree.ts
|
|
9
12
|
import { execFileSync, spawn } from "child_process";
|
|
@@ -121,6 +124,57 @@ async function terminateProcessTree(pid, options = {}) {
|
|
|
121
124
|
return options.processGroup ? terminateProcessGroup(pid, signal) : terminatePidTree(pid, signal);
|
|
122
125
|
}
|
|
123
126
|
|
|
127
|
+
// src/renderSetupWorkerLifecycle.ts
|
|
128
|
+
var RENDER_SETUP_SIGNALS = ["SIGINT", "SIGTERM", "SIGHUP"];
|
|
129
|
+
var RENDER_SETUP_RESULT_PREFIX = "HYPERFRAMES_RENDER_SETUP_RESULT:";
|
|
130
|
+
var RENDER_SETUP_ERROR_PREFIX = "HYPERFRAMES_RENDER_SETUP_ERROR:";
|
|
131
|
+
function installRenderSetupSignalHandlers(signalTarget, releaseLock, resendSignal, handleHangup = true) {
|
|
132
|
+
const handlers = /* @__PURE__ */ new Map();
|
|
133
|
+
const handledSignals = handleHangup ? RENDER_SETUP_SIGNALS : RENDER_SETUP_SIGNALS.filter((signal) => signal !== "SIGHUP");
|
|
134
|
+
for (const signal of handledSignals) {
|
|
135
|
+
const handler = () => {
|
|
136
|
+
releaseLock();
|
|
137
|
+
signalTarget.off(signal, handler);
|
|
138
|
+
resendSignal(signal);
|
|
139
|
+
};
|
|
140
|
+
handlers.set(signal, handler);
|
|
141
|
+
signalTarget.on(signal, handler);
|
|
142
|
+
}
|
|
143
|
+
return () => {
|
|
144
|
+
for (const [signal, handler] of handlers) signalTarget.off(signal, handler);
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
function prefixedLine(prefix, value) {
|
|
148
|
+
return prefix + JSON.stringify(value) + "\n";
|
|
149
|
+
}
|
|
150
|
+
function parseJson(text) {
|
|
151
|
+
try {
|
|
152
|
+
return JSON.parse(text);
|
|
153
|
+
} catch {
|
|
154
|
+
return void 0;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
function prefixedValue(output, prefix) {
|
|
158
|
+
const line = output.split(/\r?\n/).find((text) => text.startsWith(prefix));
|
|
159
|
+
return line === void 0 ? void 0 : parseJson(line.slice(prefix.length));
|
|
160
|
+
}
|
|
161
|
+
function renderSetupResultLine(result) {
|
|
162
|
+
return prefixedLine(RENDER_SETUP_RESULT_PREFIX, result);
|
|
163
|
+
}
|
|
164
|
+
function renderSetupResultFrom(stdout) {
|
|
165
|
+
return prefixedValue(stdout, RENDER_SETUP_RESULT_PREFIX);
|
|
166
|
+
}
|
|
167
|
+
function renderSetupErrorLine(error) {
|
|
168
|
+
return "\n" + prefixedLine(RENDER_SETUP_ERROR_PREFIX, normalizeErrorMessage(error));
|
|
169
|
+
}
|
|
170
|
+
function renderSetupFailureFrom(stderr) {
|
|
171
|
+
const lines = stderr.split(/\r?\n/);
|
|
172
|
+
const at = lines.findIndex((text) => text.startsWith(RENDER_SETUP_ERROR_PREFIX));
|
|
173
|
+
const reason = at === -1 ? void 0 : parseJson(lines[at].slice(RENDER_SETUP_ERROR_PREFIX.length));
|
|
174
|
+
if (typeof reason !== "string" || reason === "") return void 0;
|
|
175
|
+
return { reason, earlierOutput: lines.slice(0, at).join("\n") };
|
|
176
|
+
}
|
|
177
|
+
|
|
124
178
|
// src/utils/cancellableProcess.ts
|
|
125
179
|
import { spawn as spawn2 } from "child_process";
|
|
126
180
|
import { fileURLToPath } from "url";
|
|
@@ -269,7 +323,14 @@ function runCancellableProcess(command, args, options = {}) {
|
|
|
269
323
|
}
|
|
270
324
|
});
|
|
271
325
|
}
|
|
272
|
-
|
|
326
|
+
function renderSetupError(error) {
|
|
327
|
+
if (!(error instanceof CancellableProcessError)) return error;
|
|
328
|
+
const failure = renderSetupFailureFrom(error.stderr);
|
|
329
|
+
if (failure?.earlierOutput.trim()) process.stderr.write(`${failure.earlierOutput.trimEnd()}
|
|
330
|
+
`);
|
|
331
|
+
const reason = failure?.reason ?? error.stderr.trim();
|
|
332
|
+
return reason ? new Error(reason, { cause: error }) : error;
|
|
333
|
+
}
|
|
273
334
|
async function runRenderSetupWorker(mode, input, options) {
|
|
274
335
|
const sourceMode = import.meta.url.endsWith(".ts");
|
|
275
336
|
const workerUrl = new URL(
|
|
@@ -293,20 +354,20 @@ async function runRenderSetupWorker(mode, input, options) {
|
|
|
293
354
|
);
|
|
294
355
|
} catch (error) {
|
|
295
356
|
if (options.signal?.aborted) options.signal.throwIfAborted();
|
|
296
|
-
|
|
297
|
-
throw new Error(error.stderr.trim(), { cause: error });
|
|
298
|
-
}
|
|
299
|
-
throw error;
|
|
357
|
+
throw renderSetupError(error);
|
|
300
358
|
}
|
|
301
359
|
if (result.stderr) process.stderr.write(result.stderr);
|
|
302
|
-
const
|
|
303
|
-
if (
|
|
304
|
-
return
|
|
360
|
+
const value = renderSetupResultFrom(result.stdout);
|
|
361
|
+
if (value === void 0) throw new Error(`${mode} setup process exited without a result`);
|
|
362
|
+
return value;
|
|
305
363
|
}
|
|
306
364
|
|
|
307
365
|
export {
|
|
308
366
|
processIsAlive,
|
|
309
367
|
terminateProcessTree,
|
|
368
|
+
installRenderSetupSignalHandlers,
|
|
369
|
+
renderSetupResultLine,
|
|
370
|
+
renderSetupErrorLine,
|
|
310
371
|
runCancellableProcess,
|
|
311
372
|
runRenderSetupWorker
|
|
312
373
|
};
|
|
@@ -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
|
+
resolveWithinProject
|
|
9
|
+
} from "./chunk-G75ENCEZ.js";
|
|
7
10
|
import {
|
|
8
11
|
MAX_AUDIO_GAIN_DB,
|
|
9
12
|
formatAudioGain,
|
|
@@ -12,11 +15,28 @@ import {
|
|
|
12
15
|
import {
|
|
13
16
|
findFfBinary
|
|
14
17
|
} from "./chunk-PJ3HDUCY.js";
|
|
18
|
+
import {
|
|
19
|
+
decodeWellFormedEscapes,
|
|
20
|
+
decodedUrlPath,
|
|
21
|
+
readMediaOffsetSeconds
|
|
22
|
+
} from "./chunk-BSQ7XANM.js";
|
|
15
23
|
|
|
16
|
-
// ../studio-server/dist/chunk-
|
|
24
|
+
// ../studio-server/dist/chunk-32IH7WBY.js
|
|
17
25
|
import { execFile } from "child_process";
|
|
18
26
|
import { isAbsolute, relative, resolve } from "path";
|
|
19
27
|
import { promisify } from "util";
|
|
28
|
+
import { existsSync } from "fs";
|
|
29
|
+
function requestSubPath(url, route) {
|
|
30
|
+
const routeSegments = route.split("/");
|
|
31
|
+
const segments = new URL(url).pathname.split("/");
|
|
32
|
+
const start = segments.indexOf(routeSegments[0] ?? "");
|
|
33
|
+
return decodeWellFormedEscapes(segments.slice(start + routeSegments.length).join("/"));
|
|
34
|
+
}
|
|
35
|
+
function requestedProjectPath(projectDir, field) {
|
|
36
|
+
const trimmed = field.trim().replace(/^[.]\//, "");
|
|
37
|
+
const named = resolveWithinProject(projectDir, trimmed);
|
|
38
|
+
return named && existsSync(named) ? trimmed : decodedUrlPath(trimmed);
|
|
39
|
+
}
|
|
20
40
|
var execFileAsync = promisify(execFile);
|
|
21
41
|
var FFMPEG_TIMEOUT_MS = 12e4;
|
|
22
42
|
function authoredNumber(raw, fallback, attribute, id, strictlyPositive = false) {
|
|
@@ -161,6 +181,13 @@ function requiredAudioIdentity(attributes) {
|
|
|
161
181
|
if (!src) throw new Error(`Audio #${id} has no src`);
|
|
162
182
|
return { id, src };
|
|
163
183
|
}
|
|
184
|
+
function authoredMediaStart(attributes, id) {
|
|
185
|
+
return readMediaOffsetSeconds((name) => {
|
|
186
|
+
const raw = attributes.get(name)?.value;
|
|
187
|
+
if (name === "data-media-start") authoredNumber(raw, 0, name, id);
|
|
188
|
+
return raw;
|
|
189
|
+
});
|
|
190
|
+
}
|
|
164
191
|
function hasBareAttribute(html, range, name) {
|
|
165
192
|
const unquoted = html.slice(range.start, range.end).replace(/"[^"]*"|'[^']*'/g, '""');
|
|
166
193
|
return new RegExp(`\\s${name}(?=[\\s/>=])`, "i").test(unquoted);
|
|
@@ -185,12 +212,7 @@ function mediaTagFromRange(html, range) {
|
|
|
185
212
|
id,
|
|
186
213
|
src,
|
|
187
214
|
volume: authoredNumber(volumeAttribute?.value, 1, "data-volume", id),
|
|
188
|
-
mediaStart:
|
|
189
|
-
attributes.get("data-media-start")?.value,
|
|
190
|
-
0,
|
|
191
|
-
"data-media-start",
|
|
192
|
-
id
|
|
193
|
-
),
|
|
215
|
+
mediaStart: authoredMediaStart(attributes, id),
|
|
194
216
|
duration: authoredDuration(attributes, id),
|
|
195
217
|
playbackRate: authoredNumber(
|
|
196
218
|
attributes.get("data-playback-rate")?.value,
|
|
@@ -217,13 +239,7 @@ function audioTags(html) {
|
|
|
217
239
|
return tags;
|
|
218
240
|
}
|
|
219
241
|
function resolveLocalAudioPath(projectDir, src) {
|
|
220
|
-
const
|
|
221
|
-
let decoded = "";
|
|
222
|
-
try {
|
|
223
|
-
decoded = decodeURIComponent(withoutSuffix);
|
|
224
|
-
} catch {
|
|
225
|
-
throw new Error(`Audio source must be a local project file: ${src}`);
|
|
226
|
-
}
|
|
242
|
+
const decoded = requestedProjectPath(projectDir, src);
|
|
227
243
|
if (!decoded || isAbsolute(decoded) || /^(?:[a-z][a-z\d+.-]*:|\/\/)/i.test(decoded)) {
|
|
228
244
|
throw new Error(`Audio source must be a local project file: ${src}`);
|
|
229
245
|
}
|
|
@@ -358,6 +374,8 @@ function absoluteLoudnessPlan(track, targetLufs = DEFAULT_TARGET_LUFS) {
|
|
|
358
374
|
}
|
|
359
375
|
|
|
360
376
|
export {
|
|
377
|
+
requestSubPath,
|
|
378
|
+
requestedProjectPath,
|
|
361
379
|
audioTags,
|
|
362
380
|
resolveLocalAudioPath,
|
|
363
381
|
parseEbur128Summary,
|
|
@@ -10,22 +10,25 @@ import {
|
|
|
10
10
|
distroLabel,
|
|
11
11
|
getFFmpegInstallHint,
|
|
12
12
|
parseLddMissingLibs
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-ZEUONDQG.js";
|
|
14
14
|
import {
|
|
15
15
|
getFreeDiskMb
|
|
16
16
|
} from "./chunk-GQJZORQP.js";
|
|
17
17
|
import {
|
|
18
18
|
ensureBrowser,
|
|
19
19
|
findBrowser
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-A6S35NYA.js";
|
|
21
21
|
import {
|
|
22
22
|
runCancellableProcess
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-BYSBRF24.js";
|
|
24
24
|
import {
|
|
25
25
|
FFMPEG_PATH_ENV,
|
|
26
26
|
FFPROBE_PATH_ENV,
|
|
27
27
|
findFfBinary
|
|
28
28
|
} from "./chunk-PJ3HDUCY.js";
|
|
29
|
+
import {
|
|
30
|
+
normalizeErrorMessage
|
|
31
|
+
} from "./chunk-KNU5COPB.js";
|
|
29
32
|
|
|
30
33
|
// src/browser/preflight.ts
|
|
31
34
|
import { existsSync } from "fs";
|
|
@@ -254,11 +257,13 @@ async function checkChrome(browserPath, signal) {
|
|
|
254
257
|
};
|
|
255
258
|
}
|
|
256
259
|
let info;
|
|
260
|
+
let failure;
|
|
257
261
|
try {
|
|
258
262
|
info = signal ? await ensureBrowser({ preferManagedChrome: true, signal }) : await findBrowser();
|
|
259
|
-
} catch {
|
|
263
|
+
} catch (error) {
|
|
260
264
|
if (signal?.aborted) signal.throwIfAborted();
|
|
261
265
|
info = void 0;
|
|
266
|
+
failure = normalizeErrorMessage(error);
|
|
262
267
|
}
|
|
263
268
|
if (info) {
|
|
264
269
|
return chromeLaunchOutcome(
|
|
@@ -278,7 +283,7 @@ async function checkChrome(browserPath, signal) {
|
|
|
278
283
|
ok: false,
|
|
279
284
|
level: "error",
|
|
280
285
|
title: "Chrome not found",
|
|
281
|
-
detail: "Chrome Headless Shell is required for local rendering.",
|
|
286
|
+
detail: failure ?? "Chrome Headless Shell is required for local rendering.",
|
|
282
287
|
hint: "Run: npx hyperframes browser ensure"
|
|
283
288
|
};
|
|
284
289
|
}
|
|
@@ -14,11 +14,11 @@ import {
|
|
|
14
14
|
} from "./chunk-AWDFDFI3.js";
|
|
15
15
|
import {
|
|
16
16
|
isBlockedNetworkHost
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-5VMR4WBS.js";
|
|
18
18
|
import {
|
|
19
19
|
DOMParser,
|
|
20
20
|
parseHTML
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-SDYDNHEE.js";
|
|
22
22
|
|
|
23
23
|
// src/capture/userAgent.ts
|
|
24
24
|
var CAPTURE_USER_AGENT = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36";
|