hyperframes 0.8.142 → 0.8.143
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-Q5EYDUAY.js} +18 -17
- package/dist/{animatedGifPrep-SAMCDT7T.js → animatedGifPrep-H2DUQEZ3.js} +15 -14
- package/dist/{asset-BLWC2NWB.js → asset-C7JBYYX4.js} +4 -4
- package/dist/{assetCataloger-FVNBBRP3.js → assetCataloger-FRO4G6OU.js} +8 -7
- package/dist/{auth-DRZB7OAC.js → auth-FRWLCO36.js} +1 -1
- package/dist/{autoUpdate-I5I3BOJK.js → autoUpdate-E4OZXQK6.js} +2 -2
- package/dist/{backgroundChecks-VR2QHGNY.js → backgroundChecks-FSUVHN5L.js} +3 -3
- package/dist/backgroundChecksWorker.js +3 -3
- package/dist/{batchRender-4YUHQI6X.js → batchRender-4U73BYTU.js} +11 -10
- package/dist/{beats-7OT7ALV3.js → beats-U6KJWF35.js} +32 -27
- package/dist/{benchmark-Q2XQCRTR.js → benchmark-5ONT7V7B.js} +15 -14
- package/dist/{browser-7VAWQQZC.js → browser-R4DU46IE.js} +4 -4
- package/dist/{bundleWithLocalizedFonts-DDMLLL2R.js → bundleWithLocalizedFonts-VH55VOAL.js} +2 -2
- package/dist/{capture-HEJS6M5A.js → capture-26G2DPSI.js} +18 -17
- package/dist/{capture-U7ABPKS5.js → capture-OGQAEYKO.js} +2 -2
- package/dist/{catalog-DVJ3XPDN.js → catalog-RKORTIUE.js} +19 -18
- package/dist/{catch-up-DF6AVSN2.js → catch-up-4OBERRQO.js} +5 -5
- package/dist/{check-KXORRWAE.js → check-P2XDN57S.js} +43 -42
- package/dist/{checkBrowser-J7HZJTRH.js → checkBrowser-NTGJGAEA.js} +42 -41
- package/dist/{chunk-EFDXGAAD.js → chunk-2LBBHMKT.js} +1 -1
- package/dist/{chunk-IDX52YJN.js → chunk-33RZPZ4K.js} +189 -42
- package/dist/{chunk-JU6Y5TTZ.js → chunk-3NE7ZYU2.js} +2 -2
- package/dist/{chunk-TQFG7HTI.js → chunk-3RM2ETQT.js} +0 -168
- package/dist/{chunk-PFCFR3KZ.js → chunk-442JNXRM.js} +1 -1
- package/dist/{chunk-YFT3BL7N.js → chunk-4M4EC7JX.js} +19 -12
- package/dist/{chunk-AM5L5YIA.js → chunk-4OA4LDTU.js} +1 -1
- package/dist/{chunk-LQASVU3I.js → chunk-5FISWJ37.js} +12 -4
- package/dist/{chunk-JYYOAKHS.js → chunk-6IIGT7BX.js} +1 -1
- package/dist/chunk-6TPZSTCL.js +3681 -0
- package/dist/{chunk-QGRFOOLE.js → chunk-6XMFEICO.js} +263 -75
- package/dist/{chunk-YHRZQJXH.js → chunk-7UYBQ6NF.js} +260 -67
- package/dist/{chunk-U7E736AJ.js → chunk-BFDJ63J5.js} +32 -14
- package/dist/{chunk-WCJGTLPF.js → chunk-BHVFTYSI.js} +6 -3
- package/dist/{chunk-B6SMSALD.js → chunk-BT27OYYX.js} +9 -9
- package/dist/{chunk-IXCTG2WY.js → chunk-BYK73CR7.js} +4 -4
- package/dist/{chunk-75JJVANE.js → chunk-CLOH4LIB.js} +3 -3
- package/dist/{chunk-H2X52H2N.js → chunk-DF2BHILQ.js} +3 -3
- package/dist/{chunk-DPHJKWP5.js → chunk-F26LCYRY.js} +42 -34
- package/dist/{chunk-5Z63TBTX.js → chunk-FH7WODJH.js} +1 -1
- package/dist/{chunk-LTGGTEMA.js → chunk-FVYXDXEV.js} +2 -2
- package/dist/{chunk-KYN364DU.js → chunk-GNBGPUJ7.js} +6 -8
- package/dist/{chunk-RVCWIIZ7.js → chunk-GV5R5B7Q.js} +1 -1
- package/dist/{chunk-FZK35GT4.js → chunk-HC7EVDEL.js} +1 -1
- package/dist/{chunk-MVTUV4TP.js → chunk-HLYOEIWM.js} +14 -6
- package/dist/{chunk-WSGY5CDQ.js → chunk-HMT2RPZU.js} +6 -6
- package/dist/{chunk-JOTLPC6S.js → chunk-HW4AKJ5F.js} +1 -1
- package/dist/{chunk-IMY4QQTQ.js → chunk-I7QGQAZM.js} +8 -8
- package/dist/{chunk-JFKL3WAE.js → chunk-IWFLMU2N.js} +104 -19
- package/dist/{chunk-IHFUKJOR.js → chunk-K2FLNJVB.js} +8 -2
- package/dist/chunk-KJJLA674.js +121 -0
- package/dist/{chunk-BPZVDBHY.js → chunk-KO5QBV73.js} +1 -1
- package/dist/{chunk-WGVOWWVK.js → chunk-KQLGTGE5.js} +3 -3
- package/dist/{chunk-R2JEKLDZ.js → chunk-LVX6NK36.js} +3 -3
- package/dist/{chunk-6UYZB4TY.js → chunk-LW6HO6U3.js} +4 -4
- package/dist/{chunk-OZUQF4NB.js → chunk-MQZVBHEY.js} +123 -8
- package/dist/{chunk-7FCDA4RH.js → chunk-N3DQEVSI.js} +2 -2
- package/dist/{chunk-A4KQZXZI.js → chunk-NE55C6S5.js} +4 -2
- package/dist/{chunk-6RAD4BCC.js → chunk-OBXQRJWQ.js} +2 -2
- package/dist/{chunk-LBKDQKWV.js → chunk-OSSHSIMD.js} +1 -1
- package/dist/{chunk-TY6XOHEM.js → chunk-P7THMINS.js} +3 -3
- package/dist/{chunk-HMUF7FEO.js → chunk-PAGIICKN.js} +2 -2
- package/dist/{chunk-OSUKETIH.js → chunk-PJU63L6W.js} +1 -1
- package/dist/{chunk-GYE63V4P.js → chunk-POLR33RB.js} +20 -13
- package/dist/{chunk-7M4KAPAA.js → chunk-PUGIRFPX.js} +2 -2
- package/dist/{chunk-XGMNQQTJ.js → chunk-QFN7NVWM.js} +1 -1
- package/dist/{chunk-D2KNWIQ6.js → chunk-QFSCCQIR.js} +1 -1
- package/dist/{chunk-WTMUCJ6Z.js → chunk-QRKLPWEX.js} +1 -1
- package/dist/{chunk-XTLBLWOV.js → chunk-QVYVUCWD.js} +1 -1
- package/dist/{chunk-GK4AIFIH.js → chunk-SDYDNHEE.js} +34 -3
- package/dist/{chunk-2NCHQUPX.js → chunk-SQLK7SJL.js} +1 -1
- package/dist/{chunk-PMRBLBUP.js → chunk-T42U2W2R.js} +14 -2
- package/dist/{chunk-QXPCARFE.js → chunk-TAMQYQGJ.js} +1 -1
- package/dist/{chunk-PXSM4HPB.js → chunk-U3X3TPBW.js} +1 -1
- package/dist/{chunk-FWRNQOLT.js → chunk-UICWP23D.js} +1 -1
- package/dist/{chunk-OKCR3JTO.js → chunk-UM2GRYM3.js} +13 -10
- package/dist/{chunk-LJAU4TPS.js → chunk-VIVBA6E6.js} +2 -2
- package/dist/{chunk-DZEVA7DI.js → chunk-W35EKBS6.js} +2 -2
- package/dist/{chunk-YEIFI443.js → chunk-WPNE5NEP.js} +1 -1
- package/dist/{chunk-IW2CKH6A.js → chunk-XONFUK3M.js} +48 -25
- package/dist/{chunk-JLKMWY2T.js → chunk-Y6QL2LGO.js} +8 -5
- package/dist/{chunk-THXFSPLV.js → chunk-ZIRIDSDB.js} +1 -1
- package/dist/chunk-ZLW2V65P.js +209 -0
- package/dist/{chunk-6UM3R7PP.js → chunk-ZQQ3SEIE.js} +33 -32
- package/dist/{clean-KTHTV5G5.js → clean-YHGPY33K.js} +23 -22
- package/dist/cli.js +57 -159
- package/dist/{cloud-ARSZWALC.js → cloud-DOFI5ISR.js} +4 -4
- package/dist/{cloudrun-NM7RXOCL.js → cloudrun-KTZ4XDHL.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-SMMIZN2C.js} +37 -36
- package/dist/{compiler-VTH2D3ID.js → compiler-TEXQWW6N.js} +14 -10
- package/dist/{component-FRUIAXIR.js → component-B3GCNGSS.js} +5 -5
- package/dist/{compositions-CUSY6ZYY.js → compositions-OQNZZTKF.js} +38 -33
- package/dist/{delete-KT3VHP4L.js → delete-EL5LVSEP.js} +4 -4
- package/dist/{deterministicFonts-F6WIVL2W.js → deterministicFonts-U2BIMGPG.js} +3 -3
- package/dist/{dist-7SZU7MA7.js → dist-5UVIRMSM.js} +7 -6
- package/dist/{dist-2GC6XKRQ.js → dist-XN234YFQ.js} +41 -39
- package/dist/{doctor-4ROTBL5U.js → doctor-UOL3OI2A.js} +17 -16
- package/dist/{dom-IROKGVJI.js → dom-37K6YOH4.js} +2 -2
- package/dist/{events-Q5PXT5UC.js → events-K2DB2PBC.js} +2 -2
- package/dist/{events-QJDVMKSR.js → events-NIZBS6S7.js} +3 -3
- package/dist/{feedback-PQ7TWESA.js → feedback-QMP4E6L7.js} +13 -12
- package/dist/{figma-JN5DDBDS.js → figma-2AUJRNVC.js} +3 -3
- package/dist/fontLocalizeCli.js +18 -17
- package/dist/{get-KT6OTERO.js → get-P5NC7SRM.js} +4 -4
- package/dist/{gpuPolicy-LCBWVGEH.js → gpuPolicy-7N5MCE2G.js} +15 -14
- package/dist/{grade-compare-VS3RP73G.js → grade-compare-HV5AFZ6P.js} +37 -36
- package/dist/{help-AD6FIZIO.js → help-3TSTXBLN.js} +1 -1
- package/dist/{history-ZRWYRY7R.js → history-D65XFJ6D.js} +6 -6
- package/dist/hyperframe-runtime.js +25 -25
- package/dist/hyperframe.manifest.json +1 -1
- package/dist/hyperframe.runtime.iife.js +25 -25
- package/dist/hyperframes-player.global.js +3 -3
- package/dist/hyperframes-slideshow.global.js +23 -23
- package/dist/{info-WBBQA2AX.js → info-TXV7MLFO.js} +17 -16
- package/dist/{init-A2XBDFGF.js → init-OSDMJZJV.js} +38 -37
- package/dist/{inspect-CLTZHA5O.js → inspect-RQQSAYIJ.js} +38 -37
- package/dist/{installer-WQDRVXH4.js → installer-CDOB32HE.js} +11 -10
- package/dist/{keyframes-3FYOK6H6.js → keyframes-V75Q6GRM.js} +10 -10
- package/dist/{lambda-Y2PA2BGS.js → lambda-RODV4RCX.js} +12 -11
- package/dist/{layout-4KP5O7IJ.js → layout-IZAI5SFC.js} +38 -37
- package/dist/{lint-V4GRFHOJ.js → lint-PLXOXY5R.js} +14 -13
- package/dist/{lintProject-RG2KGAXB.js → lintProject-OQ6H6XBR.js} +7 -6
- package/dist/{list-OQ4VED6E.js → list-BQBPNKDZ.js} +5 -5
- package/dist/{login-W47NKN5S.js → login-NP6F4FHC.js} +4 -4
- package/dist/{manager-DXB7JDHU.js → manager-GXYF4AVO.js} +2 -2
- package/dist/{manager-524RPYO7.js → manager-RFZNG5YT.js} +2 -2
- package/dist/{media-treatment-HJYL3EME.js → media-treatment-PXGMZ4A4.js} +22 -20
- package/dist/{models-DYBAD2GQ.js → models-CEZM6XZ7.js} +17 -16
- package/dist/{motionShot-7NE2YBB3.js → motionShot-R4GHYWYM.js} +25 -24
- package/dist/{normalize-IGLHCWTF.js → normalize-H6KUHHEI.js} +18 -7
- package/dist/{normalize-audio-INKCLMS2.js → normalize-audio-MQ7NFCOV.js} +10 -6
- package/dist/{open-TYC5THVY.js → open-AKQTGNXF.js} +5 -5
- package/dist/{pipeline-EVKEPQEW.js → pipeline-SYJYP2RM.js} +17 -16
- package/dist/{play-QMZEM6X3.js → play-NBH4B7PL.js} +31 -29
- package/dist/{present-Y7IK3C4W.js → present-XAX55CFS.js} +26 -25
- package/dist/{preview-5OQRYE6A.js → preview-OLANKNFA.js} +26 -25
- package/dist/{producer-Q6G6JU7B.js → producer-Q6YNZZUJ.js} +1 -1
- package/dist/{projectConfig-RJN3DKDB.js → projectConfig-EM26P45P.js} +13 -12
- package/dist/{publication-QCPGGN3U.js → publication-OXWJZKSX.js} +8 -7
- package/dist/{publish-VZLFIGYY.js → publish-4VBWP2UB.js} +17 -16
- package/dist/{remove-background-TKOEHBA5.js → remove-background-REB7427G.js} +19 -18
- package/dist/{render-XTXE5CRU.js → render-3CVZ2SZG.js} +13 -12
- package/dist/{render-KIIIF6PS.js → render-K25YOG3M.js} +19 -18
- package/dist/{render-X3NFNVEQ.js → render-TSE75QUL.js} +35 -34
- package/dist/{render-batch-M55YZLZ5.js → render-batch-GGUOK3DS.js} +13 -12
- package/dist/{renderCancellation-X5BEHAZU.js → renderCancellation-PZRWB53I.js} +15 -14
- package/dist/renderSetupWorker.js +7 -6
- package/dist/{resolver-GAMXRA42.js → resolver-S5VK6UCB.js} +10 -9
- package/dist/{sherpa-ZYTNFHD5.js → sherpa-LVIUEAGF.js} +18 -17
- package/dist/skills/hyperframes-cli/references/doctor-browser.md +24 -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-I65FU5HD.js} +5 -5
- package/dist/{skillsUpdateCheck-6WLLX53A.js → skillsUpdateCheck-J57RNNIV.js} +3 -3
- package/dist/{slideshow-EJ4IMY6P.js → slideshow-4OJEPWNZ.js} +1 -1
- package/dist/{snapshot-K7BTJPYQ.js → snapshot-YROOGY22.js} +42 -38
- package/dist/{src-3I3RH3V5.js → src-JO5JOV7Y.js} +16 -13
- package/dist/{src-YUW26JU5.js → src-X426BZAG.js} +17 -16
- package/dist/{staticProjectServer-IKCSGN2B.js → staticProjectServer-5VMBS262.js} +23 -22
- package/dist/studio/assets/{hyperframes-player-sAsRuV73.js → hyperframes-player-BXSuksFh.js} +3 -3
- package/dist/studio/assets/{index-D3Vij9t1.js → index-BgOVCqjo.js} +1 -1
- package/dist/studio/assets/{index-D5q2_7Gw.js → index-FgyO_5Kv.js} +1 -1
- package/dist/studio/assets/{index-B-wffzRH.js → index-J7jpL4pj.js} +150 -150
- package/dist/studio/index.html +1 -1
- package/dist/studio/index.js +122 -160
- package/dist/studio/index.js.map +1 -1
- package/dist/{studio-api-SQ3NXFSM.js → studio-api-VRBZUGAE.js} +22 -17
- package/dist/{studioServer-VVEO7XCH.js → studioServer-DBNKZ6I6.js} +50 -49
- package/dist/{synthesize-77PTU6C5.js → synthesize-C3IWDAXF.js} +2 -2
- package/dist/{telemetry-FQDKR5XA.js → telemetry-CXAX3TO3.js} +3 -3
- package/dist/{timeline-N6ZASFNE.js → timeline-VQ34WH7J.js} +91 -69
- package/dist/{tokens-2OIIBBCW.js → tokens-62R7VFAZ.js} +4 -4
- package/dist/{transcribe-4F6MK73N.js → transcribe-7KR7IPJA.js} +18 -17
- package/dist/{transcribe-7YTUCXDX.js → transcribe-XOHPPL2O.js} +11 -11
- package/dist/{tts-TOHSPWEG.js → tts-MUV42JXT.js} +6 -6
- package/dist/{updateCheck-AZ2COZFR.js → updateCheck-POYNH3B5.js} +2 -2
- package/dist/{upgrade-QAJEYB4X.js → upgrade-NBNOT7J2.js} +2 -2
- package/dist/{urlDownloader-LSMFEO3R.js → urlDownloader-3NS63A7B.js} +14 -13
- package/dist/{validate-GW5MDL36.js → validate-Y2QDHAEP.js} +40 -27
- package/dist/{video-PRNOKUK3.js → video-SJDMTSTL.js} +15 -14
- package/package.json +1 -1
- package/dist/chunk-J4UX3RS3.js +0 -3717
- /package/dist/{chunk-HBBJFK6I.js → chunk-APDLWWFG.js} +0 -0
|
@@ -75,6 +75,63 @@ test("speechSpans returns empty spans for empty input", () => {
|
|
|
75
75
|
assert.deepEqual(speechSpans({ voices: [] }, { mergeGap: 0.6 }), []);
|
|
76
76
|
});
|
|
77
77
|
|
|
78
|
+
test("speechSpans offsets retain voice IDs across empty transcripts", () => {
|
|
79
|
+
const meta = {
|
|
80
|
+
voices: [
|
|
81
|
+
{ id: "silent", duration_s: 2, words: [] },
|
|
82
|
+
{ id: "narration", duration_s: 1, words: [word("w0", "hello", 0.1, 0.9)] },
|
|
83
|
+
],
|
|
84
|
+
};
|
|
85
|
+
const expected = [{ start: 4.1, end: 4.9 }];
|
|
86
|
+
assert.deepEqual(speechSpans(meta, { offsets: { silent: 0, narration: 4 } }), expected);
|
|
87
|
+
assert.deepEqual(speechSpans(meta, { offsets: { narration: 4 } }), expected);
|
|
88
|
+
assert.throws(() => speechSpans(meta, { offsets: { silent: 0 } }), /missing voice "narration"/);
|
|
89
|
+
});
|
|
90
|
+
|
|
91
|
+
test("speechSpans sequential counts empty line durations and gaps", () => {
|
|
92
|
+
const meta = {
|
|
93
|
+
voices: [
|
|
94
|
+
{ id: "intro", duration_s: 2, words: [] },
|
|
95
|
+
{ id: "first", duration_s: 1, words: [word("w0", "hello", 0.1, 0.9)] },
|
|
96
|
+
{ id: "pause", duration_s: 3, words: [] },
|
|
97
|
+
{ id: "last", duration_s: 1, words: [word("w1", "goodbye", 0.1, 0.9)] },
|
|
98
|
+
],
|
|
99
|
+
};
|
|
100
|
+
assert.deepEqual(speechSpans(meta, { sequential: true, gap: 0.5 }), [
|
|
101
|
+
{ start: 2.6, end: 3.4 },
|
|
102
|
+
{ start: 7.6, end: 8.4 },
|
|
103
|
+
]);
|
|
104
|
+
});
|
|
105
|
+
|
|
106
|
+
test("speechSpans offsets without IDs retain original voice indices", () => {
|
|
107
|
+
const meta = {
|
|
108
|
+
voices: [{ duration_s: 2 }, { duration_s: 1, words: [word("w0", "hello", 0.1, 0.9)] }],
|
|
109
|
+
};
|
|
110
|
+
assert.deepEqual(speechSpans(meta, { offsets: { 1: 4 } }), [{ start: 4.1, end: 4.9 }]);
|
|
111
|
+
});
|
|
112
|
+
|
|
113
|
+
test("speechSpans keeps normalized-empty transcripts aligned with their voices", () => {
|
|
114
|
+
const meta = {
|
|
115
|
+
voices: [
|
|
116
|
+
{ id: "untimed", duration_s: 2, words: [{ text: "hello" }] },
|
|
117
|
+
{ id: "narration", duration_s: 1, words: [word("w0", "hello", 0.1, 0.9)] },
|
|
118
|
+
],
|
|
119
|
+
};
|
|
120
|
+
assert.deepEqual(speechSpans(meta, { sequential: true }), [{ start: 2.1, end: 2.9 }]);
|
|
121
|
+
});
|
|
122
|
+
|
|
123
|
+
test("speechSpans does not require placement for transcripts without speech", () => {
|
|
124
|
+
const meta = {
|
|
125
|
+
voices: [
|
|
126
|
+
{ id: "a", duration_s: 2, words: [] },
|
|
127
|
+
{ id: "b", duration_s: 1 },
|
|
128
|
+
],
|
|
129
|
+
};
|
|
130
|
+
assert.deepEqual(speechSpans(meta), []);
|
|
131
|
+
assert.deepEqual(speechSpans(meta, { offsets: {} }), []);
|
|
132
|
+
assert.deepEqual(speechSpans(meta, { sequential: true }), []);
|
|
133
|
+
});
|
|
134
|
+
|
|
78
135
|
test("duckKeyframes shapes attack and release from base volume", () => {
|
|
79
136
|
assert.deepEqual(
|
|
80
137
|
duckKeyframes([{ start: 3, end: 5 }], {
|
|
@@ -148,6 +205,36 @@ test("--json spans match --merge-gap semantics exactly", () => {
|
|
|
148
205
|
}
|
|
149
206
|
});
|
|
150
207
|
|
|
208
|
+
for (const [placement, flags, expected] of [
|
|
209
|
+
["sequential", ["--sequential", "--gap", "0.5"], [{ start: 2.6, end: 3.4 }]],
|
|
210
|
+
["offsets", ["--offsets", "narration=4"], [{ start: 4.1, end: 4.9 }]],
|
|
211
|
+
]) {
|
|
212
|
+
test(`audio-duck --json preserves empty voice placement with ${placement}`, (t) => {
|
|
213
|
+
const dir = mkdtempSync(join(tmpdir(), "media-use-duck-empty-"));
|
|
214
|
+
t.after(() => rmSync(dir, { recursive: true, force: true }));
|
|
215
|
+
const metaPath = join(dir, "audio_meta.json");
|
|
216
|
+
writeFileSync(
|
|
217
|
+
metaPath,
|
|
218
|
+
JSON.stringify({
|
|
219
|
+
voices: [
|
|
220
|
+
{ id: "silent", duration_s: 2, words: [] },
|
|
221
|
+
{ id: "narration", duration_s: 1, words: [word("w0", "hello", 0.1, 0.9)] },
|
|
222
|
+
],
|
|
223
|
+
}),
|
|
224
|
+
);
|
|
225
|
+
const result = JSON.parse(
|
|
226
|
+
execFileSync(
|
|
227
|
+
process.execPath,
|
|
228
|
+
[SCRIPT, "--meta", metaPath, "--target", "#bgm", ...flags, "--json"],
|
|
229
|
+
{ encoding: "utf8" },
|
|
230
|
+
),
|
|
231
|
+
);
|
|
232
|
+
assert.deepEqual(result.spans, expected);
|
|
233
|
+
assert.equal(result.keyframes[0].time, expected[0].start);
|
|
234
|
+
assert.equal(result.lane.lanes[0].points[1].t, expected[0].start);
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
|
|
151
238
|
function word(id, text, start, end) {
|
|
152
239
|
return { id, text, start, end };
|
|
153
240
|
}
|
|
@@ -3,6 +3,7 @@ import { extname } from "node:path";
|
|
|
3
3
|
import { ffprobeBinary } from "./ff-binaries.mjs";
|
|
4
4
|
|
|
5
5
|
const IMAGE_EXT = new Set([".jpg", ".jpeg", ".png", ".gif", ".webp", ".svg", ".ico"]);
|
|
6
|
+
const AUDIO_EXT = new Set([".mp3", ".wav", ".ogg", ".m4a", ".aac"]);
|
|
6
7
|
|
|
7
8
|
export function probe(filePath) {
|
|
8
9
|
const ext = extname(filePath).toLowerCase();
|
|
@@ -18,7 +19,11 @@ export function probe(filePath) {
|
|
|
18
19
|
{ encoding: "utf8", timeout: 5000 },
|
|
19
20
|
);
|
|
20
21
|
const info = JSON.parse(raw);
|
|
21
|
-
const
|
|
22
|
+
const streams = info.streams ?? [];
|
|
23
|
+
const wantedType = AUDIO_EXT.has(ext) ? "audio" : "video";
|
|
24
|
+
const stream =
|
|
25
|
+
streams.find((s) => s.codec_type === wantedType && s.disposition?.attached_pic !== 1) ??
|
|
26
|
+
streams[0];
|
|
22
27
|
const format = info.format;
|
|
23
28
|
|
|
24
29
|
const isImage = IMAGE_EXT.has(ext);
|
|
@@ -4,6 +4,79 @@ import { chmodSync, mkdtempSync, writeFileSync, existsSync, rmSync } from "node:
|
|
|
4
4
|
import { join } from "node:path";
|
|
5
5
|
import { tmpdir } from "node:os";
|
|
6
6
|
import { probe } from "./probe.mjs";
|
|
7
|
+
import childProcess from "node:child_process";
|
|
8
|
+
import { syncBuiltinESMExports } from "node:module";
|
|
9
|
+
|
|
10
|
+
function mockProbe(t, streams, format = { duration: "2" }) {
|
|
11
|
+
t.mock.method(childProcess, "execFileSync", () => JSON.stringify({ streams, format }));
|
|
12
|
+
syncBuiltinESMExports();
|
|
13
|
+
t.after(() => {
|
|
14
|
+
t.mock.restoreAll();
|
|
15
|
+
syncBuiltinESMExports();
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
const AUDIO_STREAM = { codec_type: "audio", codec_name: "aac", duration: "3" };
|
|
20
|
+
const VIDEO_STREAM = {
|
|
21
|
+
codec_type: "video",
|
|
22
|
+
codec_name: "h264",
|
|
23
|
+
width: 64,
|
|
24
|
+
height: 48,
|
|
25
|
+
duration: "4",
|
|
26
|
+
};
|
|
27
|
+
const COVER_STREAM = {
|
|
28
|
+
codec_type: "video",
|
|
29
|
+
codec_name: "mjpeg",
|
|
30
|
+
width: 100,
|
|
31
|
+
height: 100,
|
|
32
|
+
disposition: { attached_pic: 1 },
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
for (const [name, streams] of [
|
|
36
|
+
["audio before video", [AUDIO_STREAM, VIDEO_STREAM]],
|
|
37
|
+
["video before audio", [VIDEO_STREAM, AUDIO_STREAM]],
|
|
38
|
+
["cover art before video", [COVER_STREAM, AUDIO_STREAM, VIDEO_STREAM]],
|
|
39
|
+
]) {
|
|
40
|
+
test(`probe selects the video stream with ${name}`, (t) => {
|
|
41
|
+
mockProbe(t, streams);
|
|
42
|
+
assert.deepEqual(probe("clip.mp4"), {
|
|
43
|
+
duration: 2,
|
|
44
|
+
width: 64,
|
|
45
|
+
height: 48,
|
|
46
|
+
codec: "h264",
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
test("probe selects audio metadata for an audio file with cover art", (t) => {
|
|
52
|
+
mockProbe(t, [COVER_STREAM, AUDIO_STREAM]);
|
|
53
|
+
assert.deepEqual(probe("song.m4a"), { duration: 2, width: null, height: null, codec: "aac" });
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
test("probe uses the selected video's duration when the container has none", (t) => {
|
|
57
|
+
mockProbe(t, [AUDIO_STREAM, VIDEO_STREAM], {});
|
|
58
|
+
assert.equal(probe("clip.mp4").duration, 4);
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
test("probe selects image dimensions without reporting an image duration", (t) => {
|
|
62
|
+
mockProbe(t, [AUDIO_STREAM, VIDEO_STREAM]);
|
|
63
|
+
assert.deepEqual(probe("frame.png"), {
|
|
64
|
+
duration: null,
|
|
65
|
+
width: 64,
|
|
66
|
+
height: 48,
|
|
67
|
+
codec: "h264",
|
|
68
|
+
});
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
test("probe retains audio-only metadata and the empty-stream fallback", (t) => {
|
|
72
|
+
mockProbe(t, [AUDIO_STREAM]);
|
|
73
|
+
assert.deepEqual(probe("clip.mp4"), { duration: 2, width: null, height: null, codec: "aac" });
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
test("probe retains the container duration when no streams are reported", (t) => {
|
|
77
|
+
mockProbe(t, []);
|
|
78
|
+
assert.deepEqual(probe("clip.mp4"), { duration: 2, width: null, height: null, codec: null });
|
|
79
|
+
});
|
|
7
80
|
|
|
8
81
|
// Regression for the shell-injection fix: probe() must pass the path as a literal
|
|
9
82
|
// argv entry, never through a shell. A filename containing shell metacharacters
|
|
@@ -14,5 +14,5 @@ export function normalizeWords(input) {
|
|
|
14
14
|
export function wordListsFromMediaMeta(input) {
|
|
15
15
|
if (Array.isArray(input) || Array.isArray(input?.words)) return [normalizeWords(input)];
|
|
16
16
|
if (!Array.isArray(input?.voices)) return [];
|
|
17
|
-
return input.voices.map((voice) => normalizeWords(voice))
|
|
17
|
+
return input.voices.map((voice) => normalizeWords(voice));
|
|
18
18
|
}
|
|
@@ -9,8 +9,8 @@ import {
|
|
|
9
9
|
} from "./chunk-6BEFEWFB.js";
|
|
10
10
|
import {
|
|
11
11
|
trackSkillsInstallSkipped
|
|
12
|
-
} from "./chunk-
|
|
13
|
-
import "./chunk-
|
|
12
|
+
} from "./chunk-QFN7NVWM.js";
|
|
13
|
+
import "./chunk-OSSHSIMD.js";
|
|
14
14
|
import {
|
|
15
15
|
diag
|
|
16
16
|
} from "./chunk-VWG7OQKU.js";
|
|
@@ -39,15 +39,15 @@ import {
|
|
|
39
39
|
isCoreSkill,
|
|
40
40
|
presentSkills,
|
|
41
41
|
pruneOrphanedLockEntries
|
|
42
|
-
} from "./chunk-
|
|
42
|
+
} from "./chunk-HC7EVDEL.js";
|
|
43
43
|
import {
|
|
44
44
|
withMeta
|
|
45
|
-
} from "./chunk-
|
|
45
|
+
} from "./chunk-Y6QL2LGO.js";
|
|
46
46
|
import "./chunk-K4WIOZFP.js";
|
|
47
47
|
import "./chunk-XUXGIA7H.js";
|
|
48
48
|
import "./chunk-WERLJGIC.js";
|
|
49
49
|
import "./chunk-ISN5GRYI.js";
|
|
50
|
-
import "./chunk-
|
|
50
|
+
import "./chunk-W35EKBS6.js";
|
|
51
51
|
import "./chunk-KNU5COPB.js";
|
|
52
52
|
import {
|
|
53
53
|
c
|
|
@@ -9,13 +9,13 @@ import {
|
|
|
9
9
|
printSkillsUpdateNotice,
|
|
10
10
|
refreshSkillsCache,
|
|
11
11
|
skillsCheckDue
|
|
12
|
-
} from "./chunk-
|
|
13
|
-
import "./chunk-
|
|
12
|
+
} from "./chunk-HC7EVDEL.js";
|
|
13
|
+
import "./chunk-Y6QL2LGO.js";
|
|
14
14
|
import "./chunk-K4WIOZFP.js";
|
|
15
15
|
import "./chunk-XUXGIA7H.js";
|
|
16
16
|
import "./chunk-WERLJGIC.js";
|
|
17
17
|
import "./chunk-ISN5GRYI.js";
|
|
18
|
-
import "./chunk-
|
|
18
|
+
import "./chunk-W35EKBS6.js";
|
|
19
19
|
import "./chunk-KNU5COPB.js";
|
|
20
20
|
import "./chunk-M2WBOQ2Q.js";
|
|
21
21
|
export {
|
|
@@ -9,16 +9,16 @@ import {
|
|
|
9
9
|
} from "./chunk-KZI44OPA.js";
|
|
10
10
|
import {
|
|
11
11
|
serveStaticProjectHtml
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-5FISWJ37.js";
|
|
13
13
|
import {
|
|
14
14
|
formatLintFindings
|
|
15
15
|
} from "./chunk-6CSYCFQV.js";
|
|
16
16
|
import "./chunk-XUHOIDKG.js";
|
|
17
17
|
import "./chunk-X7MTZ4T2.js";
|
|
18
|
-
import "./chunk-
|
|
18
|
+
import "./chunk-FVYXDXEV.js";
|
|
19
19
|
import {
|
|
20
20
|
resolveProject
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-VIVBA6E6.js";
|
|
22
22
|
import {
|
|
23
23
|
loadOptionalPackage
|
|
24
24
|
} from "./chunk-3DKN5WKL.js";
|
|
@@ -30,31 +30,31 @@ import {
|
|
|
30
30
|
resolveCropRegion,
|
|
31
31
|
runFfmpegOnce,
|
|
32
32
|
seekCompositionTimeline
|
|
33
|
-
} from "./chunk-
|
|
34
|
-
import "./chunk-
|
|
35
|
-
import "./chunk-
|
|
36
|
-
import "./chunk-
|
|
37
|
-
import "./chunk-
|
|
38
|
-
import "./chunk-
|
|
39
|
-
import "./chunk-
|
|
40
|
-
import "./chunk-
|
|
33
|
+
} from "./chunk-HMT2RPZU.js";
|
|
34
|
+
import "./chunk-FH7WODJH.js";
|
|
35
|
+
import "./chunk-PJU63L6W.js";
|
|
36
|
+
import "./chunk-P7THMINS.js";
|
|
37
|
+
import "./chunk-WPNE5NEP.js";
|
|
38
|
+
import "./chunk-K2FLNJVB.js";
|
|
39
|
+
import "./chunk-7UYBQ6NF.js";
|
|
40
|
+
import "./chunk-UM2GRYM3.js";
|
|
41
41
|
import "./chunk-QZ3AZTXI.js";
|
|
42
|
-
import "./chunk-
|
|
43
|
-
import "./chunk-
|
|
42
|
+
import "./chunk-BFDJ63J5.js";
|
|
43
|
+
import "./chunk-ZQQ3SEIE.js";
|
|
44
44
|
import "./chunk-G75ENCEZ.js";
|
|
45
45
|
import "./chunk-EOVYQ3IG.js";
|
|
46
46
|
import {
|
|
47
47
|
resolveLocalBrowserGpuMode
|
|
48
|
-
} from "./chunk-
|
|
49
|
-
import "./chunk-
|
|
50
|
-
import "./chunk-
|
|
48
|
+
} from "./chunk-QRKLPWEX.js";
|
|
49
|
+
import "./chunk-442JNXRM.js";
|
|
50
|
+
import "./chunk-2LBBHMKT.js";
|
|
51
51
|
import "./chunk-XT7X6QCP.js";
|
|
52
52
|
import "./chunk-4YYJOFKS.js";
|
|
53
53
|
import "./chunk-HVW7ABXD.js";
|
|
54
54
|
import "./chunk-6BEFEWFB.js";
|
|
55
|
-
import "./chunk-
|
|
56
|
-
import "./chunk-
|
|
57
|
-
import "./chunk-
|
|
55
|
+
import "./chunk-HW4AKJ5F.js";
|
|
56
|
+
import "./chunk-CLOH4LIB.js";
|
|
57
|
+
import "./chunk-TAMQYQGJ.js";
|
|
58
58
|
import "./chunk-AWDFDFI3.js";
|
|
59
59
|
import "./chunk-P6LJ4Y32.js";
|
|
60
60
|
import {
|
|
@@ -63,8 +63,8 @@ import {
|
|
|
63
63
|
getFFmpegInstallHint
|
|
64
64
|
} from "./chunk-TVCRUG2S.js";
|
|
65
65
|
import "./chunk-374QQGBQ.js";
|
|
66
|
-
import "./chunk-
|
|
67
|
-
import "./chunk-
|
|
66
|
+
import "./chunk-QFN7NVWM.js";
|
|
67
|
+
import "./chunk-OSSHSIMD.js";
|
|
68
68
|
import "./chunk-VWG7OQKU.js";
|
|
69
69
|
import "./chunk-GQJZORQP.js";
|
|
70
70
|
import "./chunk-AMKC3AXA.js";
|
|
@@ -78,24 +78,24 @@ import {
|
|
|
78
78
|
} from "./chunk-PBN6GBJE.js";
|
|
79
79
|
import "./chunk-KC5XXX3X.js";
|
|
80
80
|
import "./chunk-TJSTGSAW.js";
|
|
81
|
-
import "./chunk-
|
|
82
|
-
import "./chunk-
|
|
83
|
-
import "./chunk-
|
|
81
|
+
import "./chunk-33RZPZ4K.js";
|
|
82
|
+
import "./chunk-F26LCYRY.js";
|
|
83
|
+
import "./chunk-NE55C6S5.js";
|
|
84
84
|
import "./chunk-USDEMXXL.js";
|
|
85
85
|
import {
|
|
86
86
|
isClipVisibleAt,
|
|
87
87
|
isInClipWindow
|
|
88
|
-
} from "./chunk-
|
|
89
|
-
import "./chunk-OZUQF4NB.js";
|
|
90
|
-
import "./chunk-DPVXBVLL.js";
|
|
88
|
+
} from "./chunk-4M4EC7JX.js";
|
|
91
89
|
import {
|
|
92
90
|
readElementRateSpec,
|
|
93
91
|
sourceTimeAt,
|
|
94
92
|
timeAtSourceTime
|
|
95
|
-
} from "./chunk-
|
|
93
|
+
} from "./chunk-6TPZSTCL.js";
|
|
96
94
|
import "./chunk-VC76R6W2.js";
|
|
97
95
|
import "./chunk-YA62XGXS.js";
|
|
96
|
+
import "./chunk-MQZVBHEY.js";
|
|
98
97
|
import "./chunk-OFQWTKPW.js";
|
|
98
|
+
import "./chunk-DPVXBVLL.js";
|
|
99
99
|
import "./chunk-T76PLPD6.js";
|
|
100
100
|
import "./chunk-FXMKHHPO.js";
|
|
101
101
|
import "./chunk-RQVDTPGD.js";
|
|
@@ -109,19 +109,20 @@ import {
|
|
|
109
109
|
import "./chunk-TWWSYAKJ.js";
|
|
110
110
|
import {
|
|
111
111
|
lintProject
|
|
112
|
-
} from "./chunk-
|
|
113
|
-
import "./chunk-
|
|
114
|
-
import "./chunk-
|
|
112
|
+
} from "./chunk-XONFUK3M.js";
|
|
113
|
+
import "./chunk-IWFLMU2N.js";
|
|
114
|
+
import "./chunk-APDLWWFG.js";
|
|
115
115
|
import "./chunk-PJ3HDUCY.js";
|
|
116
|
-
import "./chunk-
|
|
117
|
-
import "./chunk-
|
|
116
|
+
import "./chunk-3RM2ETQT.js";
|
|
117
|
+
import "./chunk-ZLW2V65P.js";
|
|
118
|
+
import "./chunk-SDYDNHEE.js";
|
|
118
119
|
import "./chunk-2PSPARWP.js";
|
|
119
|
-
import "./chunk-
|
|
120
|
+
import "./chunk-T42U2W2R.js";
|
|
120
121
|
import "./chunk-K4WIOZFP.js";
|
|
121
122
|
import "./chunk-XUXGIA7H.js";
|
|
122
123
|
import "./chunk-WERLJGIC.js";
|
|
123
124
|
import "./chunk-ISN5GRYI.js";
|
|
124
|
-
import "./chunk-
|
|
125
|
+
import "./chunk-W35EKBS6.js";
|
|
125
126
|
import {
|
|
126
127
|
normalizeErrorMessage
|
|
127
128
|
} from "./chunk-KNU5COPB.js";
|
|
@@ -371,7 +372,7 @@ function computeSnapshotTimes(duration, opts) {
|
|
|
371
372
|
return { times: times.map(round), appendedTail: false };
|
|
372
373
|
}
|
|
373
374
|
async function captureSnapshots(projectDir, opts) {
|
|
374
|
-
const { bundleWithLocalizedFonts } = await import("./bundleWithLocalizedFonts-
|
|
375
|
+
const { bundleWithLocalizedFonts } = await import("./bundleWithLocalizedFonts-VH55VOAL.js");
|
|
375
376
|
const numFrames = opts.frames ?? 5;
|
|
376
377
|
const html = await bundleWithLocalizedFonts(projectDir);
|
|
377
378
|
const server = await serveStaticProjectHtml(projectDir, html, void 0, [], opts.autoProxy);
|
|
@@ -444,7 +445,7 @@ async function captureSnapshots(projectDir, opts) {
|
|
|
444
445
|
let syncVideoFrameVisibility = null;
|
|
445
446
|
let extractMediaMetadata = null;
|
|
446
447
|
try {
|
|
447
|
-
const engine = await import("./src-
|
|
448
|
+
const engine = await import("./src-JO5JOV7Y.js");
|
|
448
449
|
injectVideoFramesBatch = engine.injectVideoFramesBatch;
|
|
449
450
|
syncVideoFrameVisibility = engine.syncVideoFrameVisibility;
|
|
450
451
|
extractMediaMetadata = engine.extractMediaMetadata;
|
|
@@ -781,7 +782,10 @@ ${c.success("\u25C7")} ${paths.length} snapshots saved to ${args.output ? snaps
|
|
|
781
782
|
const label2 = sheets.length === 1 ? "contact-sheet.jpg" : `contact-sheet-1..${sheets.length}.jpg`;
|
|
782
783
|
console.log(` ${c.dim(label2)} (grid view for AI review)`);
|
|
783
784
|
}
|
|
784
|
-
} catch {
|
|
785
|
+
} catch (err) {
|
|
786
|
+
console.warn(
|
|
787
|
+
` ${c.warn("\u26A0")} Contact sheet skipped: ${normalizeErrorMessage(err)}. Individual snapshot PNGs are still available.`
|
|
788
|
+
);
|
|
785
789
|
}
|
|
786
790
|
if (describeArg !== null) {
|
|
787
791
|
try {
|
|
@@ -33,6 +33,7 @@ import {
|
|
|
33
33
|
PROVENANCE_RENDERER_TAG,
|
|
34
34
|
PROVENANCE_VERSION,
|
|
35
35
|
PROVENANCE_VERSION_TAG,
|
|
36
|
+
SDR_RGB_TO_BT709_FILTER,
|
|
36
37
|
SwiftShaderAssertionError,
|
|
37
38
|
VIDEO_FRAME_FORMATS,
|
|
38
39
|
VfxFailureError,
|
|
@@ -209,9 +210,9 @@ import {
|
|
|
209
210
|
verifyGpuParity,
|
|
210
211
|
writeCapturedFrame,
|
|
211
212
|
writeUrlDownloadTelemetry
|
|
212
|
-
} from "./chunk-
|
|
213
|
-
import "./chunk-
|
|
214
|
-
import "./chunk-
|
|
213
|
+
} from "./chunk-33RZPZ4K.js";
|
|
214
|
+
import "./chunk-F26LCYRY.js";
|
|
215
|
+
import "./chunk-NE55C6S5.js";
|
|
215
216
|
import {
|
|
216
217
|
LOW_MEMORY_TOTAL_MB_THRESHOLD,
|
|
217
218
|
getCgroupMemoryLimitMb,
|
|
@@ -221,32 +222,33 @@ import {
|
|
|
221
222
|
import {
|
|
222
223
|
MEDIA_VISUAL_STYLE_PROPERTIES,
|
|
223
224
|
quantizeTimeToFrame
|
|
224
|
-
} from "./chunk-
|
|
225
|
-
import "./chunk-
|
|
226
|
-
import "./chunk-DPVXBVLL.js";
|
|
227
|
-
import "./chunk-J4UX3RS3.js";
|
|
225
|
+
} from "./chunk-4M4EC7JX.js";
|
|
226
|
+
import "./chunk-6TPZSTCL.js";
|
|
228
227
|
import "./chunk-VC76R6W2.js";
|
|
229
228
|
import "./chunk-YA62XGXS.js";
|
|
229
|
+
import "./chunk-MQZVBHEY.js";
|
|
230
230
|
import "./chunk-OFQWTKPW.js";
|
|
231
|
+
import "./chunk-DPVXBVLL.js";
|
|
231
232
|
import "./chunk-T76PLPD6.js";
|
|
232
233
|
import "./chunk-FXMKHHPO.js";
|
|
233
234
|
import "./chunk-RQVDTPGD.js";
|
|
234
235
|
import {
|
|
235
236
|
chromeMajorCeiling
|
|
236
237
|
} from "./chunk-TWWSYAKJ.js";
|
|
237
|
-
import "./chunk-
|
|
238
|
+
import "./chunk-XONFUK3M.js";
|
|
238
239
|
import {
|
|
239
240
|
resolveProjectRelativeSrc
|
|
240
|
-
} from "./chunk-
|
|
241
|
-
import "./chunk-
|
|
241
|
+
} from "./chunk-IWFLMU2N.js";
|
|
242
|
+
import "./chunk-APDLWWFG.js";
|
|
242
243
|
import {
|
|
243
244
|
FFMPEG_PATH_ENV,
|
|
244
245
|
FFPROBE_PATH_ENV
|
|
245
246
|
} from "./chunk-PJ3HDUCY.js";
|
|
246
|
-
import "./chunk-
|
|
247
|
-
import "./chunk-
|
|
247
|
+
import "./chunk-3RM2ETQT.js";
|
|
248
|
+
import "./chunk-ZLW2V65P.js";
|
|
249
|
+
import "./chunk-SDYDNHEE.js";
|
|
248
250
|
import "./chunk-2PSPARWP.js";
|
|
249
|
-
import "./chunk-
|
|
251
|
+
import "./chunk-T42U2W2R.js";
|
|
250
252
|
import {
|
|
251
253
|
TRANSITIONS,
|
|
252
254
|
convertTransfer,
|
|
@@ -289,6 +291,7 @@ export {
|
|
|
289
291
|
PROVENANCE_RENDERER_TAG,
|
|
290
292
|
PROVENANCE_VERSION,
|
|
291
293
|
PROVENANCE_VERSION_TAG,
|
|
294
|
+
SDR_RGB_TO_BT709_FILTER,
|
|
292
295
|
SwiftShaderAssertionError,
|
|
293
296
|
TRANSITIONS,
|
|
294
297
|
VIDEO_FRAME_FORMATS,
|
|
@@ -69,16 +69,16 @@ import {
|
|
|
69
69
|
serializeRenderRequest,
|
|
70
70
|
startServer,
|
|
71
71
|
validatePlanV2MaterializedTarget
|
|
72
|
-
} from "./chunk-
|
|
72
|
+
} from "./chunk-6XMFEICO.js";
|
|
73
73
|
import {
|
|
74
74
|
FONT_FETCH_FAILED,
|
|
75
75
|
FONT_FETCH_UNAVAILABLE,
|
|
76
76
|
FontFetchError,
|
|
77
77
|
FontFetchUnavailableError,
|
|
78
78
|
injectDeterministicFontFaces
|
|
79
|
-
} from "./chunk-
|
|
79
|
+
} from "./chunk-PUGIRFPX.js";
|
|
80
80
|
import "./chunk-FI4I7CME.js";
|
|
81
|
-
import "./chunk-
|
|
81
|
+
import "./chunk-KQLGTGE5.js";
|
|
82
82
|
import "./chunk-KC5XXX3X.js";
|
|
83
83
|
import "./chunk-TJSTGSAW.js";
|
|
84
84
|
import "./chunk-BZ56MTDX.js";
|
|
@@ -95,31 +95,32 @@ import {
|
|
|
95
95
|
isTransientBrowserError,
|
|
96
96
|
prepareCaptureSessionForReuse,
|
|
97
97
|
resolveConfig
|
|
98
|
-
} from "./chunk-
|
|
99
|
-
import "./chunk-
|
|
100
|
-
import "./chunk-
|
|
98
|
+
} from "./chunk-33RZPZ4K.js";
|
|
99
|
+
import "./chunk-F26LCYRY.js";
|
|
100
|
+
import "./chunk-NE55C6S5.js";
|
|
101
101
|
import "./chunk-USDEMXXL.js";
|
|
102
102
|
import {
|
|
103
103
|
quantizeTimeToFrame
|
|
104
|
-
} from "./chunk-
|
|
105
|
-
import "./chunk-
|
|
106
|
-
import "./chunk-DPVXBVLL.js";
|
|
107
|
-
import "./chunk-J4UX3RS3.js";
|
|
104
|
+
} from "./chunk-4M4EC7JX.js";
|
|
105
|
+
import "./chunk-6TPZSTCL.js";
|
|
108
106
|
import "./chunk-VC76R6W2.js";
|
|
109
107
|
import "./chunk-YA62XGXS.js";
|
|
108
|
+
import "./chunk-MQZVBHEY.js";
|
|
110
109
|
import "./chunk-OFQWTKPW.js";
|
|
110
|
+
import "./chunk-DPVXBVLL.js";
|
|
111
111
|
import "./chunk-T76PLPD6.js";
|
|
112
112
|
import "./chunk-FXMKHHPO.js";
|
|
113
113
|
import "./chunk-RQVDTPGD.js";
|
|
114
114
|
import "./chunk-TWWSYAKJ.js";
|
|
115
|
-
import "./chunk-
|
|
116
|
-
import "./chunk-
|
|
117
|
-
import "./chunk-
|
|
115
|
+
import "./chunk-XONFUK3M.js";
|
|
116
|
+
import "./chunk-IWFLMU2N.js";
|
|
117
|
+
import "./chunk-APDLWWFG.js";
|
|
118
118
|
import "./chunk-PJ3HDUCY.js";
|
|
119
|
-
import "./chunk-
|
|
120
|
-
import "./chunk-
|
|
119
|
+
import "./chunk-3RM2ETQT.js";
|
|
120
|
+
import "./chunk-ZLW2V65P.js";
|
|
121
|
+
import "./chunk-SDYDNHEE.js";
|
|
121
122
|
import "./chunk-2PSPARWP.js";
|
|
122
|
-
import "./chunk-
|
|
123
|
+
import "./chunk-T42U2W2R.js";
|
|
123
124
|
import "./chunk-3GXQPCJC.js";
|
|
124
125
|
import "./chunk-M2WBOQ2Q.js";
|
|
125
126
|
export {
|
|
@@ -6,50 +6,51 @@ var __filename = __hf_fileURLToPath(import.meta.url);
|
|
|
6
6
|
var __dirname = __hf_dirname(__filename);
|
|
7
7
|
import {
|
|
8
8
|
serveStaticProjectHtml
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-5FISWJ37.js";
|
|
10
10
|
import "./chunk-XUHOIDKG.js";
|
|
11
11
|
import "./chunk-X7MTZ4T2.js";
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
12
|
+
import "./chunk-FVYXDXEV.js";
|
|
13
|
+
import "./chunk-7UYBQ6NF.js";
|
|
14
|
+
import "./chunk-UM2GRYM3.js";
|
|
15
15
|
import "./chunk-QZ3AZTXI.js";
|
|
16
|
-
import "./chunk-
|
|
17
|
-
import "./chunk-
|
|
16
|
+
import "./chunk-BFDJ63J5.js";
|
|
17
|
+
import "./chunk-ZQQ3SEIE.js";
|
|
18
18
|
import "./chunk-G75ENCEZ.js";
|
|
19
19
|
import "./chunk-EOVYQ3IG.js";
|
|
20
|
-
import "./chunk-
|
|
20
|
+
import "./chunk-2LBBHMKT.js";
|
|
21
21
|
import "./chunk-XT7X6QCP.js";
|
|
22
22
|
import "./chunk-4YYJOFKS.js";
|
|
23
23
|
import "./chunk-HVW7ABXD.js";
|
|
24
|
-
import "./chunk-
|
|
25
|
-
import "./chunk-
|
|
26
|
-
import "./chunk-
|
|
24
|
+
import "./chunk-HW4AKJ5F.js";
|
|
25
|
+
import "./chunk-CLOH4LIB.js";
|
|
26
|
+
import "./chunk-TAMQYQGJ.js";
|
|
27
27
|
import "./chunk-AWDFDFI3.js";
|
|
28
28
|
import "./chunk-P6LJ4Y32.js";
|
|
29
29
|
import "./chunk-374QQGBQ.js";
|
|
30
30
|
import "./chunk-GMECXFAN.js";
|
|
31
31
|
import "./chunk-KC5XXX3X.js";
|
|
32
32
|
import "./chunk-TJSTGSAW.js";
|
|
33
|
-
import "./chunk-
|
|
34
|
-
import "./chunk-
|
|
35
|
-
import "./chunk-
|
|
36
|
-
import "./chunk-
|
|
37
|
-
import "./chunk-DPVXBVLL.js";
|
|
38
|
-
import "./chunk-J4UX3RS3.js";
|
|
33
|
+
import "./chunk-F26LCYRY.js";
|
|
34
|
+
import "./chunk-NE55C6S5.js";
|
|
35
|
+
import "./chunk-4M4EC7JX.js";
|
|
36
|
+
import "./chunk-6TPZSTCL.js";
|
|
39
37
|
import "./chunk-VC76R6W2.js";
|
|
40
38
|
import "./chunk-YA62XGXS.js";
|
|
39
|
+
import "./chunk-MQZVBHEY.js";
|
|
41
40
|
import "./chunk-OFQWTKPW.js";
|
|
41
|
+
import "./chunk-DPVXBVLL.js";
|
|
42
42
|
import "./chunk-T76PLPD6.js";
|
|
43
43
|
import "./chunk-FXMKHHPO.js";
|
|
44
44
|
import "./chunk-RQVDTPGD.js";
|
|
45
|
-
import "./chunk-
|
|
46
|
-
import "./chunk-
|
|
47
|
-
import "./chunk-
|
|
45
|
+
import "./chunk-XONFUK3M.js";
|
|
46
|
+
import "./chunk-IWFLMU2N.js";
|
|
47
|
+
import "./chunk-APDLWWFG.js";
|
|
48
48
|
import "./chunk-PJ3HDUCY.js";
|
|
49
|
-
import "./chunk-
|
|
50
|
-
import "./chunk-
|
|
49
|
+
import "./chunk-3RM2ETQT.js";
|
|
50
|
+
import "./chunk-ZLW2V65P.js";
|
|
51
|
+
import "./chunk-SDYDNHEE.js";
|
|
51
52
|
import "./chunk-2PSPARWP.js";
|
|
52
|
-
import "./chunk-
|
|
53
|
+
import "./chunk-T42U2W2R.js";
|
|
53
54
|
import "./chunk-M2WBOQ2Q.js";
|
|
54
55
|
export {
|
|
55
56
|
serveStaticProjectHtml
|