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
|
@@ -9,7 +9,11 @@ import {
|
|
|
9
9
|
formatPreviewProxyBox,
|
|
10
10
|
hdrToSdrToneMapFilter,
|
|
11
11
|
parseFirstFrameColour
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-3VYNNWVA.js";
|
|
13
|
+
import {
|
|
14
|
+
decodeAuthoredAttribute,
|
|
15
|
+
scanHtmlOpeningTags
|
|
16
|
+
} from "./chunk-MQZVBHEY.js";
|
|
13
17
|
import {
|
|
14
18
|
mkdirWithinProject,
|
|
15
19
|
realProjectRoot,
|
|
@@ -19,19 +23,18 @@ import {
|
|
|
19
23
|
cleanAssetUrl,
|
|
20
24
|
isRemoteOrInlineUrl,
|
|
21
25
|
isUnresolvedAssetPlaceholder,
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
} from "./chunk-JFKL3WAE.js";
|
|
26
|
+
resolveExistingLocalAsset
|
|
27
|
+
} from "./chunk-IWFLMU2N.js";
|
|
25
28
|
import {
|
|
26
29
|
findFfBinary
|
|
27
30
|
} from "./chunk-PJ3HDUCY.js";
|
|
28
31
|
import {
|
|
29
32
|
rewriteAssetPath
|
|
30
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-BSQ7XANM.js";
|
|
31
34
|
|
|
32
|
-
// ../studio-server/dist/chunk-
|
|
33
|
-
import {
|
|
34
|
-
import {
|
|
35
|
+
// ../studio-server/dist/chunk-RN33UALN.js
|
|
36
|
+
import { statSync } from "fs";
|
|
37
|
+
import { sep } from "path";
|
|
35
38
|
import { execFile } from "child_process";
|
|
36
39
|
import { extname } from "path";
|
|
37
40
|
var execFileRunner = (command, args, options) => new Promise((resolvePromise) => {
|
|
@@ -279,29 +282,27 @@ async function probeAssetCodec(filePath, runner, cache = defaultProbeCache) {
|
|
|
279
282
|
rememberProbeResult(cache, filePath, { target, mtimeMs: stat.mtimeMs, size: stat.size, facts });
|
|
280
283
|
return facts;
|
|
281
284
|
}
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
const rootRelative = relative(projectRoot, resolvedPath).split(sep).join("/");
|
|
290
|
-
return { resolvedPath, rootRelativePathname: `/${rootRelative}` };
|
|
285
|
+
function resolveExistingLocalAsset2(projectDir, url) {
|
|
286
|
+
const asset = resolveExistingLocalAsset(projectDir, url);
|
|
287
|
+
if (!asset) return null;
|
|
288
|
+
return {
|
|
289
|
+
resolvedPath: asset.resolved,
|
|
290
|
+
rootRelativePathname: `/${asset.rootRelativePath.split(sep).join("/")}`
|
|
291
|
+
};
|
|
291
292
|
}
|
|
292
293
|
function collectLocalVideoAssets(projectDir, htmlSources) {
|
|
293
294
|
const candidates = /* @__PURE__ */ new Map();
|
|
294
295
|
for (const { html, compSrcPath } of htmlSources) {
|
|
295
|
-
const
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
const rawSrc =
|
|
296
|
+
for (const tag of scanHtmlOpeningTags(html)) {
|
|
297
|
+
if (tag.name !== "video" || !tag.closed) continue;
|
|
298
|
+
const attribute = tag.attributes.find((attr) => attr.name === "src");
|
|
299
|
+
if (attribute?.kind !== "value") continue;
|
|
300
|
+
const rawSrc = decodeAuthoredAttribute(attribute.value);
|
|
300
301
|
if (isUnresolvedAssetPlaceholder(rawSrc)) continue;
|
|
301
302
|
const src = cleanAssetUrl(rawSrc);
|
|
302
303
|
if (!src || isRemoteOrInlineUrl(src)) continue;
|
|
303
304
|
const rootRelativeSrc = compSrcPath ? rewriteAssetPath(compSrcPath, src) : src;
|
|
304
|
-
const resolved =
|
|
305
|
+
const resolved = resolveExistingLocalAsset2(projectDir, rootRelativeSrc);
|
|
305
306
|
if (!resolved) continue;
|
|
306
307
|
candidates.set(resolved.resolvedPath, resolved.rootRelativePathname);
|
|
307
308
|
}
|
|
@@ -335,12 +336,12 @@ async function scanProjectMediaCodecMap(projectDir, htmlSources, options = {}) {
|
|
|
335
336
|
return map;
|
|
336
337
|
}
|
|
337
338
|
|
|
338
|
-
// ../studio-server/dist/chunk-
|
|
339
|
+
// ../studio-server/dist/chunk-AZBGTB3N.js
|
|
339
340
|
import { spawn } from "child_process";
|
|
340
341
|
import { createHash, randomUUID } from "crypto";
|
|
341
342
|
import { existsSync as existsSync2, renameSync, statSync as statSync2, unlinkSync as unlinkSync2, utimesSync } from "fs";
|
|
342
|
-
import { basename, dirname, isAbsolute, join as join2, relative
|
|
343
|
-
import { existsSync
|
|
343
|
+
import { basename, dirname, isAbsolute, join as join2, relative, resolve, sep as sep2 } from "path";
|
|
344
|
+
import { existsSync, readdirSync, statSync as statSync3, unlinkSync } from "fs";
|
|
344
345
|
import { extname as extname2, join } from "path";
|
|
345
346
|
var DEFAULT_MAX_BYTES = 10 * 1024 * 1024 * 1024;
|
|
346
347
|
var DEFAULT_STALE_TEMP_MS = 60 * 60 * 1e3;
|
|
@@ -413,7 +414,7 @@ function evictCacheEntries(entries, staleTemps, now, maxIdleMs, maxBytes, dryRun
|
|
|
413
414
|
}
|
|
414
415
|
for (const entry of kept) {
|
|
415
416
|
if (bytesAfter <= maxBytes) break;
|
|
416
|
-
if (!entry.protected &&
|
|
417
|
+
if (!entry.protected && existsSync(entry.path)) remove(entry, true);
|
|
417
418
|
}
|
|
418
419
|
return { removed, bytesBefore, bytesAfter };
|
|
419
420
|
}
|
|
@@ -424,7 +425,7 @@ function cleanupProxyCache(cacheDir, options = {}) {
|
|
|
424
425
|
if (shouldSkipSweep(cacheDir, now, minSweepIntervalMs)) {
|
|
425
426
|
return { removed: [], bytesBefore: 0, bytesAfter: 0, skipped: true };
|
|
426
427
|
}
|
|
427
|
-
if (!
|
|
428
|
+
if (!existsSync(cacheDir)) {
|
|
428
429
|
return { removed: [], bytesBefore: 0, bytesAfter: 0, skipped: false };
|
|
429
430
|
}
|
|
430
431
|
const maxBytes = options.maxBytes ?? defaults.maxBytes;
|
|
@@ -512,15 +513,15 @@ async function waitForProxy(promise, timeoutMs = DEFAULT_PROXY_WAIT_TIMEOUT_MS)
|
|
|
512
513
|
}
|
|
513
514
|
}
|
|
514
515
|
function canonicalizeProxySource(projectDir, absoluteSourcePath) {
|
|
515
|
-
const requestedProjectDir =
|
|
516
|
-
const requestedSourcePath =
|
|
517
|
-
const requestedRelativePath =
|
|
516
|
+
const requestedProjectDir = resolve(projectDir);
|
|
517
|
+
const requestedSourcePath = resolve(absoluteSourcePath);
|
|
518
|
+
const requestedRelativePath = relative(requestedProjectDir, requestedSourcePath);
|
|
518
519
|
if (requestedRelativePath === ".." || requestedRelativePath.startsWith(`..${sep2}`) || isAbsolute(requestedRelativePath)) {
|
|
519
520
|
throw new ProxySourceOutsideProjectError();
|
|
520
521
|
}
|
|
521
522
|
const canonicalProjectDir = realProjectRoot(projectDir);
|
|
522
523
|
const canonicalSourcePath = realpath(absoluteSourcePath);
|
|
523
|
-
const canonicalRelativePath =
|
|
524
|
+
const canonicalRelativePath = relative(canonicalProjectDir, canonicalSourcePath);
|
|
524
525
|
const sourceIsInsideCanonicalProject = canonicalRelativePath !== ".." && !canonicalRelativePath.startsWith(`..${sep2}`) && !isAbsolute(canonicalRelativePath);
|
|
525
526
|
return {
|
|
526
527
|
projectDir: canonicalProjectDir,
|
|
@@ -546,31 +547,67 @@ function getCanonicalProxyCachePath(source, variant, box) {
|
|
|
546
547
|
`${key}${PROXY_VARIANT_CONFIG[variant].extension}`
|
|
547
548
|
);
|
|
548
549
|
}
|
|
550
|
+
var ProxyDroppedError = class extends ProxyTranscodeError {
|
|
551
|
+
constructor() {
|
|
552
|
+
super("media proxy copy dropped: every caller left before it started", null, "");
|
|
553
|
+
this.name = "ProxyDroppedError";
|
|
554
|
+
}
|
|
555
|
+
};
|
|
549
556
|
var activeTranscodes = 0;
|
|
550
557
|
var waitQueue = [];
|
|
551
|
-
function
|
|
558
|
+
function enqueue(job) {
|
|
559
|
+
const firstNormal = job.priority ? waitQueue.findIndex((queued) => !queued.priority) : -1;
|
|
560
|
+
if (firstNormal === -1) waitQueue.push(job);
|
|
561
|
+
else waitQueue.splice(firstNormal, 0, job);
|
|
562
|
+
}
|
|
563
|
+
function dequeue(job) {
|
|
564
|
+
const index = waitQueue.indexOf(job);
|
|
565
|
+
if (index !== -1) waitQueue.splice(index, 1);
|
|
566
|
+
}
|
|
567
|
+
function acquireSlot(job) {
|
|
568
|
+
if (activeTranscodes < MAX_CONCURRENT_TRANSCODES) {
|
|
569
|
+
activeTranscodes++;
|
|
570
|
+
return Promise.resolve();
|
|
571
|
+
}
|
|
552
572
|
return new Promise((resolveSlot, reject) => {
|
|
553
|
-
|
|
554
|
-
|
|
573
|
+
job.queued = {
|
|
574
|
+
start: () => {
|
|
575
|
+
job.queued = void 0;
|
|
555
576
|
activeTranscodes++;
|
|
556
577
|
resolveSlot();
|
|
557
|
-
}
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
578
|
+
},
|
|
579
|
+
drop: () => {
|
|
580
|
+
job.queued = void 0;
|
|
581
|
+
dequeue(job);
|
|
582
|
+
forget(job);
|
|
583
|
+
reject(new ProxyDroppedError());
|
|
563
584
|
}
|
|
564
585
|
};
|
|
565
|
-
|
|
586
|
+
enqueue(job);
|
|
566
587
|
});
|
|
567
588
|
}
|
|
589
|
+
function queueIsFull() {
|
|
590
|
+
return activeTranscodes >= MAX_CONCURRENT_TRANSCODES && waitQueue.length >= MAX_QUEUED_TRANSCODES;
|
|
591
|
+
}
|
|
568
592
|
function releaseSlot() {
|
|
569
593
|
activeTranscodes--;
|
|
570
|
-
|
|
571
|
-
|
|
594
|
+
waitQueue.shift()?.queued?.start();
|
|
595
|
+
}
|
|
596
|
+
function prioritize(job) {
|
|
597
|
+
if (job.priority) return;
|
|
598
|
+
job.priority = true;
|
|
599
|
+
if (!job.queued) return;
|
|
600
|
+
dequeue(job);
|
|
601
|
+
enqueue(job);
|
|
602
|
+
}
|
|
603
|
+
function leave(job) {
|
|
604
|
+
job.callers--;
|
|
605
|
+
if (job.callers === 0) job.queued?.drop();
|
|
572
606
|
}
|
|
573
607
|
var inFlight = /* @__PURE__ */ new Map();
|
|
608
|
+
function forget(job) {
|
|
609
|
+
if (inFlight.get(job.cachePath)?.job === job) inFlight.delete(job.cachePath);
|
|
610
|
+
}
|
|
574
611
|
function maintainProxyCache(cacheDir) {
|
|
575
612
|
try {
|
|
576
613
|
cleanupProxyCache(cacheDir, { protectedPaths: new Set(inFlight.keys()) });
|
|
@@ -729,8 +766,8 @@ async function runFfmpeg(sourcePath, outputPath, variant, box) {
|
|
|
729
766
|
});
|
|
730
767
|
});
|
|
731
768
|
}
|
|
732
|
-
async function transcodeToCache(projectDir, absoluteSourcePath, cachePath, variant, box) {
|
|
733
|
-
await acquireSlot();
|
|
769
|
+
async function transcodeToCache(job, projectDir, absoluteSourcePath, cachePath, variant, box) {
|
|
770
|
+
await acquireSlot(job);
|
|
734
771
|
try {
|
|
735
772
|
if (existsSync2(cachePath)) return cachePath;
|
|
736
773
|
const cacheDir = dirname(cachePath);
|
|
@@ -748,14 +785,15 @@ async function transcodeToCache(projectDir, absoluteSourcePath, cachePath, varia
|
|
|
748
785
|
releaseSlot();
|
|
749
786
|
}
|
|
750
787
|
}
|
|
751
|
-
var
|
|
788
|
+
var proxyActivity = 0;
|
|
752
789
|
function proxyActivityMark(projectDir) {
|
|
753
|
-
if (!existsSync2(projectDir)) return String(
|
|
790
|
+
if (!existsSync2(projectDir)) return String(proxyActivity);
|
|
754
791
|
const cacheDir = join2(realpath(projectDir), CACHE_DIR_NAME) + sep2;
|
|
755
792
|
for (const cachePath of inFlight.keys()) if (cachePath.startsWith(cacheDir)) return null;
|
|
756
|
-
return String(
|
|
793
|
+
return String(proxyActivity);
|
|
757
794
|
}
|
|
758
|
-
async function resolveProxy(projectDir, absoluteSourcePath, variant = "h264", box) {
|
|
795
|
+
async function resolveProxy(projectDir, absoluteSourcePath, variant = "h264", box, options = {}) {
|
|
796
|
+
options.signal?.throwIfAborted();
|
|
759
797
|
const source = canonicalizeProxySource(projectDir, absoluteSourcePath);
|
|
760
798
|
const cachePath = getCanonicalProxyCachePath(source, variant, box);
|
|
761
799
|
if (existsSync2(cachePath)) {
|
|
@@ -768,17 +806,48 @@ async function resolveProxy(projectDir, absoluteSourcePath, variant = "h264", bo
|
|
|
768
806
|
if (rememberedFailure.expiresAt > Date.now()) throw rememberedFailure.error;
|
|
769
807
|
failedTranscodes.delete(cachePath);
|
|
770
808
|
}
|
|
771
|
-
|
|
772
|
-
if (
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
809
|
+
let entry = inFlight.get(cachePath);
|
|
810
|
+
if (!entry) {
|
|
811
|
+
if (!options.priority && queueIsFull()) {
|
|
812
|
+
proxyActivity += 1;
|
|
813
|
+
throw new ProxyCapacityError();
|
|
814
|
+
}
|
|
815
|
+
const job = {
|
|
816
|
+
cachePath,
|
|
817
|
+
priority: options.priority === true,
|
|
818
|
+
callers: 0
|
|
819
|
+
};
|
|
820
|
+
const promise = transcodeToCache(
|
|
821
|
+
job,
|
|
822
|
+
source.projectDir,
|
|
823
|
+
source.sourcePath,
|
|
824
|
+
cachePath,
|
|
825
|
+
variant,
|
|
826
|
+
box
|
|
827
|
+
).catch((err) => {
|
|
828
|
+
if (!(err instanceof ProxyDroppedError)) rememberFailure(cachePath, err);
|
|
829
|
+
throw err;
|
|
830
|
+
}).finally(() => {
|
|
831
|
+
forget(job);
|
|
832
|
+
proxyActivity += 1;
|
|
833
|
+
});
|
|
834
|
+
entry = { promise, job };
|
|
835
|
+
inFlight.set(cachePath, entry);
|
|
836
|
+
}
|
|
837
|
+
if (options.priority) prioritize(entry.job);
|
|
838
|
+
return joinJob(entry.promise, entry.job, options.signal);
|
|
839
|
+
}
|
|
840
|
+
function joinJob(promise, job, signal) {
|
|
841
|
+
job.callers++;
|
|
842
|
+
if (!signal) return promise;
|
|
843
|
+
return new Promise((resolveJoin, rejectJoin) => {
|
|
844
|
+
const onAbort = () => {
|
|
845
|
+
leave(job);
|
|
846
|
+
rejectJoin(signal.reason);
|
|
847
|
+
};
|
|
848
|
+
signal.addEventListener("abort", onAbort, { once: true });
|
|
849
|
+
promise.finally(() => signal.removeEventListener("abort", onAbort)).then(resolveJoin, rejectJoin);
|
|
779
850
|
});
|
|
780
|
-
inFlight.set(cachePath, promise);
|
|
781
|
-
return promise;
|
|
782
851
|
}
|
|
783
852
|
|
|
784
853
|
export {
|
|
@@ -6,33 +6,33 @@ var __filename = __hf_fileURLToPath(import.meta.url);
|
|
|
6
6
|
var __dirname = __hf_dirname(__filename);
|
|
7
7
|
import {
|
|
8
8
|
redactHome
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-VYSUZEJG.js";
|
|
10
10
|
import "./chunk-Z27A7NUB.js";
|
|
11
11
|
import "./chunk-5ETJX6WM.js";
|
|
12
12
|
import {
|
|
13
13
|
loadProducer
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-GEWKFRFI.js";
|
|
15
15
|
import "./chunk-3DKN5WKL.js";
|
|
16
16
|
import {
|
|
17
17
|
formatBytes
|
|
18
|
-
} from "./chunk-
|
|
19
|
-
import "./chunk-
|
|
20
|
-
import "./chunk-
|
|
18
|
+
} from "./chunk-K2FLNJVB.js";
|
|
19
|
+
import "./chunk-XGFHYAYN.js";
|
|
20
|
+
import "./chunk-YJXHMIZA.js";
|
|
21
21
|
import {
|
|
22
22
|
DEFAULT_HISTORY_ROOT,
|
|
23
23
|
listProjectHistories,
|
|
24
24
|
pruneGoneProjectHistories
|
|
25
25
|
} from "./chunk-QZ3AZTXI.js";
|
|
26
|
-
import "./chunk-
|
|
26
|
+
import "./chunk-DDIVWXN7.js";
|
|
27
27
|
import {
|
|
28
28
|
CACHE_DIR_NAME,
|
|
29
29
|
cleanupProxyCache
|
|
30
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-ZOA2SC4P.js";
|
|
31
31
|
import "./chunk-G75ENCEZ.js";
|
|
32
32
|
import "./chunk-EOVYQ3IG.js";
|
|
33
|
-
import "./chunk-
|
|
33
|
+
import "./chunk-DIRJ322I.js";
|
|
34
34
|
import "./chunk-6BEFEWFB.js";
|
|
35
|
-
import "./chunk-
|
|
35
|
+
import "./chunk-ZEUONDQG.js";
|
|
36
36
|
import "./chunk-374QQGBQ.js";
|
|
37
37
|
import "./chunk-GQJZORQP.js";
|
|
38
38
|
import "./chunk-AMKC3AXA.js";
|
|
@@ -49,39 +49,40 @@ import {
|
|
|
49
49
|
directorySizeBytes,
|
|
50
50
|
gcExtractionCache,
|
|
51
51
|
resolveExtractCacheDir
|
|
52
|
-
} from "./chunk-
|
|
53
|
-
import "./chunk-
|
|
54
|
-
import "./chunk-
|
|
52
|
+
} from "./chunk-5VMR4WBS.js";
|
|
53
|
+
import "./chunk-OUSLVRO4.js";
|
|
54
|
+
import "./chunk-NE55C6S5.js";
|
|
55
55
|
import "./chunk-USDEMXXL.js";
|
|
56
|
-
import "./chunk-
|
|
57
|
-
import "./chunk-
|
|
58
|
-
import "./chunk-DPVXBVLL.js";
|
|
59
|
-
import "./chunk-J4UX3RS3.js";
|
|
56
|
+
import "./chunk-3VYNNWVA.js";
|
|
57
|
+
import "./chunk-WJB7WI4J.js";
|
|
60
58
|
import "./chunk-VC76R6W2.js";
|
|
61
59
|
import "./chunk-YA62XGXS.js";
|
|
60
|
+
import "./chunk-MQZVBHEY.js";
|
|
62
61
|
import "./chunk-OFQWTKPW.js";
|
|
62
|
+
import "./chunk-DPVXBVLL.js";
|
|
63
63
|
import "./chunk-T76PLPD6.js";
|
|
64
64
|
import "./chunk-FXMKHHPO.js";
|
|
65
65
|
import "./chunk-RQVDTPGD.js";
|
|
66
|
-
import "./chunk-
|
|
67
|
-
import "./chunk-
|
|
66
|
+
import "./chunk-A6S35NYA.js";
|
|
67
|
+
import "./chunk-BYSBRF24.js";
|
|
68
68
|
import "./chunk-TWWSYAKJ.js";
|
|
69
|
-
import "./chunk-
|
|
70
|
-
import "./chunk-
|
|
71
|
-
import "./chunk-
|
|
69
|
+
import "./chunk-IEIJRMLZ.js";
|
|
70
|
+
import "./chunk-IWFLMU2N.js";
|
|
71
|
+
import "./chunk-APDLWWFG.js";
|
|
72
72
|
import "./chunk-PJ3HDUCY.js";
|
|
73
|
-
import "./chunk-
|
|
74
|
-
import "./chunk-
|
|
73
|
+
import "./chunk-3RM2ETQT.js";
|
|
74
|
+
import "./chunk-BSQ7XANM.js";
|
|
75
|
+
import "./chunk-SDYDNHEE.js";
|
|
75
76
|
import "./chunk-2PSPARWP.js";
|
|
76
|
-
import "./chunk-
|
|
77
|
+
import "./chunk-T42U2W2R.js";
|
|
77
78
|
import {
|
|
78
79
|
withMeta
|
|
79
|
-
} from "./chunk-
|
|
80
|
+
} from "./chunk-P6WH6QTV.js";
|
|
80
81
|
import "./chunk-K4WIOZFP.js";
|
|
81
82
|
import "./chunk-XUXGIA7H.js";
|
|
82
83
|
import "./chunk-WERLJGIC.js";
|
|
83
84
|
import "./chunk-ISN5GRYI.js";
|
|
84
|
-
import "./chunk-
|
|
85
|
+
import "./chunk-4OC7MQNB.js";
|
|
85
86
|
import "./chunk-KNU5COPB.js";
|
|
86
87
|
import "./chunk-3GXQPCJC.js";
|
|
87
88
|
import {
|