hyperframes 0.8.151 → 0.8.152
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-QKZZG7A2.js → add-SA33REHW.js} +14 -14
- package/dist/{animatedGifPrep-YQDPYGOD.js → animatedGifPrep-3YXJQZ7L.js} +9 -9
- package/dist/api.js +15 -15
- package/dist/{asset-3Q737Y4H.js → asset-PUVPTWPD.js} +2 -2
- package/dist/{assetCataloger-BTHEBJJB.js → assetCataloger-VWE2PLBX.js} +4 -4
- package/dist/{auth-XL7EU3SO.js → auth-PS3M6AI7.js} +1 -1
- package/dist/{autoUpdate-PJFLTQ3U.js → autoUpdate-CMO4SHWU.js} +2 -2
- package/dist/{backgroundChecks-T5TIR5WK.js → backgroundChecks-EDZ2A55J.js} +3 -3
- package/dist/backgroundChecksWorker.js +3 -3
- package/dist/{batchRender-NFLVIDB4.js → batchRender-7PLJISCN.js} +5 -5
- package/dist/{beats-JU4GZ26R.js → beats-2MDSIOE7.js} +14 -14
- package/dist/{benchmark-7U2YWLTW.js → benchmark-KBBXAPI4.js} +10 -10
- package/dist/{browser-D57UPYDA.js → browser-OMWKZRSW.js} +3 -3
- package/dist/{bundleWithLocalizedFonts-26MXQOZG.js → bundleWithLocalizedFonts-76DMCRIW.js} +2 -2
- package/dist/{capture-47BV25G3.js → capture-LRUUXH5Q.js} +2 -2
- package/dist/{capture-LT252COQ.js → capture-YGDC7GN3.js} +12 -12
- package/dist/{catalog-BEZXOV4O.js → catalog-SMEBKEVO.js} +14 -14
- package/dist/{catch-up-KVV5X6BF.js → catch-up-OMILX3WE.js} +4 -4
- package/dist/{check-6KQ433E6.js → check-NUZ62LIW.js} +131 -43
- package/dist/{checkBrowser-PRDR6XBY.js → checkBrowser-MSTVEL4V.js} +39 -38
- package/dist/{chunk-L6RIMCMG.js → chunk-3DZBQ7MH.js} +3 -3
- package/dist/{chunk-POEEDPJI.js → chunk-3E4OCOC5.js} +1 -1
- package/dist/{chunk-YZTVHRJ2.js → chunk-3HPJM5IQ.js} +1 -1
- package/dist/{chunk-OZ4K46OV.js → chunk-3LO7BBJX.js} +2 -2
- package/dist/{chunk-APDLWWFG.js → chunk-3VGU2SH7.js} +1 -1
- package/dist/{chunk-RRBKEHST.js → chunk-4UMKAUZI.js} +1 -1
- package/dist/{chunk-DHPFXAUF.js → chunk-57GN6KWT.js} +17 -3
- package/dist/{chunk-374QQGBQ.js → chunk-5CS4T6C6.js} +63 -12
- package/dist/{chunk-XQKVEQNY.js → chunk-5ERVRJMV.js} +2 -2
- package/dist/{chunk-S22FKF6G.js → chunk-5VMSUW4Z.js} +2 -2
- package/dist/{chunk-N4IXP3MY.js → chunk-6Z4YJ5Q3.js} +3 -3
- package/dist/{chunk-FJWEYVEM.js → chunk-7FYFEXD2.js} +658 -198
- package/dist/{chunk-4LE27ST4.js → chunk-7NPSXBIN.js} +2 -2
- package/dist/chunk-7TASSBN2.js +215 -0
- package/dist/{chunk-IP73NMQT.js → chunk-ANS56TPS.js} +10 -10
- package/dist/{chunk-PUIELIFA.js → chunk-BQK3J7XO.js} +1 -1
- package/dist/{chunk-RJRGR5KF.js → chunk-BYJYQWEX.js} +9 -9
- package/dist/{chunk-XXPYZBZ3.js → chunk-C6TPGUWD.js} +2 -2
- package/dist/{chunk-FAIYEIZ4.js → chunk-D6RJXQLD.js} +1 -1
- package/dist/{chunk-N3I6RAOR.js → chunk-DFXK7KUO.js} +11 -11
- package/dist/{chunk-DIOBKUBV.js → chunk-E6EYZ33P.js} +2 -2
- package/dist/{chunk-ZGCRVM5M.js → chunk-EVTHG34H.js} +2 -2
- package/dist/{chunk-IZPN423R.js → chunk-EXH6L2XZ.js} +2 -2
- package/dist/{chunk-AIJS74LG.js → chunk-FFDC5OWV.js} +8 -2
- package/dist/{chunk-KQGWP4KH.js → chunk-FNN5QINS.js} +1 -1
- package/dist/{chunk-DMKI64EZ.js → chunk-FSZAFCU7.js} +1 -1
- package/dist/{chunk-L3N7RJHS.js → chunk-GQETH4PE.js} +3 -3
- package/dist/{chunk-ZD3RDNZI.js → chunk-H2SGM2V2.js} +1 -1
- package/dist/{chunk-OSAH7S5M.js → chunk-H7FXBK3Q.js} +1 -1
- package/dist/{chunk-BRF3O35X.js → chunk-HBCRRCTX.js} +109 -31
- package/dist/{chunk-KXX6NLOT.js → chunk-IBYC3VUA.js} +1 -1
- package/dist/{chunk-IPDS2SWI.js → chunk-IEDT4EXE.js} +1 -1
- package/dist/{chunk-TCWMDCBX.js → chunk-IZIRIDJH.js} +2 -2
- package/dist/{chunk-4PKQEKAI.js → chunk-IZKXUYZE.js} +2 -2
- package/dist/chunk-KCFF4ENE.js +24 -0
- package/dist/{chunk-IZ7L6V76.js → chunk-KZ3L3W4Q.js} +1 -1
- package/dist/{chunk-YEBKEWKB.js → chunk-LECTCGGS.js} +1 -1
- package/dist/{chunk-O3DUX6P2.js → chunk-LVPSWUS6.js} +4 -4
- package/dist/{chunk-LKQS72D5.js → chunk-MNHPG2UO.js} +1 -1
- package/dist/{chunk-XKKBIFE5.js → chunk-NHAG2KCE.js} +7 -7
- package/dist/{chunk-HVXRYMGQ.js → chunk-PKO2EWO7.js} +1 -1
- package/dist/{chunk-XNDXENJQ.js → chunk-PRXAOZWZ.js} +3 -3
- package/dist/{chunk-4YZYYP7V.js → chunk-PTXZDSW5.js} +3 -3
- package/dist/{chunk-QF7AE3DB.js → chunk-QECEOV6W.js} +1 -1
- package/dist/{chunk-XGLNQDLN.js → chunk-QESSGUKX.js} +1 -1
- package/dist/{chunk-3SVC7SW4.js → chunk-RN5I2DP5.js} +3 -3
- package/dist/{chunk-QBYHNRHU.js → chunk-S3RCK56N.js} +1 -1
- package/dist/{chunk-RYL6ZIJP.js → chunk-SWCSL6WS.js} +5 -5
- package/dist/{chunk-2PSPARWP.js → chunk-TYXH3EKP.js} +4 -0
- package/dist/{chunk-FMNVTKX2.js → chunk-U3BCDVZO.js} +1 -1
- package/dist/{chunk-FLVI7FHU.js → chunk-VS732BUG.js} +1 -1
- package/dist/{chunk-LFNQDTSH.js → chunk-VYKPBRCB.js} +63 -12
- package/dist/{chunk-QLGBNGXC.js → chunk-XEFFJRYX.js} +2 -2
- package/dist/{chunk-3ZPFRDEJ.js → chunk-XINGD6MS.js} +4 -4
- package/dist/chunk-XSEGMQYA.js +30 -0
- package/dist/{chunk-GNTVYF7E.js → chunk-YOEGUBBY.js} +5 -5
- package/dist/{chunk-35PWWBGZ.js → chunk-YYEYOFHW.js} +1 -1
- package/dist/{chunk-XYHBVSWD.js → chunk-ZTM3RMAD.js} +2 -2
- package/dist/{clean-RLTHFTQA.js → clean-F75G45BI.js} +52 -31
- package/dist/cli.js +53 -53
- package/dist/{cloud-Q5TGBTW3.js → cloud-KVJAOUWH.js} +4 -4
- package/dist/{cloudrun-4UZF74MV.js → cloudrun-Q7Q7O4GY.js} +6 -6
- package/dist/{compare-Q5UNR2V4.js → compare-DGUJ4QWU.js} +30 -30
- package/dist/{compiler-ZXT27Z62.js → compiler-NCN6PTVH.js} +6 -6
- package/dist/{component-H734P32V.js → component-PSYGT3JV.js} +3 -3
- package/dist/{compositions-YEHDSTDR.js → compositions-J3GAETIC.js} +13 -13
- package/dist/{delete-LDBMPWRT.js → delete-MR7LRGRP.js} +2 -2
- package/dist/{deterministicFonts-C5JQLCTS.js → deterministicFonts-EOMDR6ZF.js} +3 -3
- package/dist/{dist-RGE4QASU.js → dist-2YYJYYPY.js} +3 -3
- package/dist/{dist-7JXLFD6U.js → dist-3MHXG6EJ.js} +4 -4
- package/dist/{doctor-XNJFIWJ7.js → doctor-JOUGR5UK.js} +11 -11
- package/dist/{events-UKCPUWMH.js → events-63BKDWVO.js} +3 -3
- package/dist/{events-G6UFLNXR.js → events-FZFBJCIH.js} +2 -2
- package/dist/{feedback-CK3KZ7DE.js → feedback-QLKWUDXR.js} +8 -8
- package/dist/{figma-3D5C737B.js → figma-YJ7HGVQC.js} +3 -3
- package/dist/fontLocalizeCli.js +12 -12
- package/dist/{get-QGTQUWFT.js → get-54MUUXMR.js} +2 -2
- package/dist/{gpuPolicy-G5QAQDYF.js → gpuPolicy-5OVNR75D.js} +9 -9
- package/dist/{grade-compare-XIHOM62P.js → grade-compare-7IDUF673.js} +30 -30
- package/dist/{gsapParserAcorn-VXZ3ZIF2.js → gsapParserAcorn-7NCK2LVT.js} +2 -2
- package/dist/{help-U5UBXT52.js → help-GQFYO5LU.js} +1 -1
- package/dist/{history-5J73QZSA.js → history-UI3O7CSO.js} +77 -205
- package/dist/hyperframes-player.global.js +1 -1
- package/dist/{info-RJHQQQUP.js → info-VQV3APEX.js} +9 -9
- package/dist/{init-M6UQOYYC.js → init-2UBFV5D7.js} +24 -24
- package/dist/{inspect-PRQWDBTP.js → inspect-36ACJ3CO.js} +31 -31
- package/dist/{installer-ZL7UKYK5.js → installer-GDUZDJG4.js} +7 -7
- package/dist/{keyframes-VMUJYTCQ.js → keyframes-GPBU34BG.js} +227 -82
- package/dist/{lambda-ON42DRQD.js → lambda-CBJVLTHY.js} +7 -7
- package/dist/{layout-QKBFVDVY.js → layout-2IHFV6EI.js} +31 -31
- package/dist/{lint-ZQHHL2SV.js → lint-IR6IYCEO.js} +9 -9
- package/dist/{lintProject-3Z6OJCSO.js → lintProject-XQWXJYSC.js} +3 -3
- package/dist/{list-YBRKIWGF.js → list-UAGKWARH.js} +2 -2
- package/dist/{login-4B2YXGLB.js → login-2GYCNCZF.js} +4 -4
- package/dist/{media-treatment-5C5EJAAP.js → media-treatment-Z553F7XI.js} +12 -12
- package/dist/{models-R7ZDWBJ6.js → models-6AZTNNSO.js} +12 -12
- package/dist/{motionShot-ZHESZNUL.js → motionShot-ARRL7WXT.js} +28 -15
- package/dist/{normalize-audio-EVWZVTBM.js → normalize-audio-CME4NUB6.js} +6 -6
- package/dist/{open-TV6HT4UT.js → open-HU2VXUFD.js} +4 -4
- package/dist/{parakeetRunner-YVVF4CG6.js → parakeetRunner-X5MKFMCB.js} +12 -12
- package/dist/{pipeline-ETR5SEBS.js → pipeline-MNFTEBJU.js} +9 -9
- package/dist/{play-C6WONRZV.js → play-2BBJDDAZ.js} +24 -24
- package/dist/{present-RANXTVPA.js → present-OE2WL2NY.js} +20 -20
- package/dist/{preview-KF6UMBT2.js → preview-RYSCCAWJ.js} +19 -19
- package/dist/{producer-CY2GXBWN.js → producer-SQWNRO66.js} +1 -1
- package/dist/{projectConfig-KPXCNMBM.js → projectConfig-B55Z7YKQ.js} +9 -9
- package/dist/{publication-Y36N4A7E.js → publication-MDZCOBJP.js} +4 -4
- package/dist/{publish-RCQJO35C.js → publish-AILV36BO.js} +12 -12
- package/dist/{remove-background-3ZMXVWLB.js → remove-background-6F72LKHG.js} +10 -10
- package/dist/{render-PTNEFO5U.js → render-2MZKU3L5.js} +10 -10
- package/dist/{render-FKVRCDT2.js → render-5EREH6YD.js} +57 -22
- package/dist/{render-WUSTRMUD.js → render-6GH5FSXU.js} +5 -5
- package/dist/{render-batch-AQHU2JWZ.js → render-batch-UMBUQWWS.js} +5 -5
- package/dist/renderSetupWorker.js +3 -3
- package/dist/{resolver-L5BDZJKU.js → resolver-KO6WWO5P.js} +6 -6
- package/dist/{sherpa-3S3ISG7G.js → sherpa-DADGYWNR.js} +11 -11
- package/dist/skills/hyperframes-cli/SKILL.md +3 -0
- package/dist/skills/hyperframes-cli/references/lint-validate-inspect.md +5 -1
- package/dist/{skills-X4WQEKNF.js → skills-QLKSNU4Y.js} +5 -5
- package/dist/{skillsUpdateCheck-UYCVHDZ6.js → skillsUpdateCheck-Z2QQGF2W.js} +3 -3
- package/dist/{snapshot-YEYHQEZQ.js → snapshot-D5BBFXOS.js} +118 -41
- package/dist/{src-2NN2WB6X.js → src-AVQBAECC.js} +8 -8
- package/dist/{src-OLBDPEG6.js → src-V7263E47.js} +11 -11
- package/dist/{staticProjectServer-7H35NMWB.js → staticProjectServer-HNWSVEWN.js} +20 -20
- package/dist/studio/assets/{hyperframes-player-DJt8E7k4.js → hyperframes-player-0BY7-PK7.js} +1 -1
- package/dist/studio/assets/{index-DWIHrAY2.js → index-COrWdzlj.js} +1 -1
- package/dist/studio/assets/{index-BGks9KLI.js → index-p-VXwuJ2.js} +132 -132
- package/dist/studio/assets/{index-DgbLblGR.js → index-rmD5k_ES.js} +1 -1
- package/dist/studio/index.html +1 -1
- package/dist/{studio-api-HGM2A5I3.js → studio-api-UXKTDWLT.js} +30 -16
- package/dist/{studioServer-M6XFL7N6.js → studioServer-JOVR24O3.js} +43 -43
- package/dist/{synthesize-22B7L5GX.js → synthesize-MBDVUSH3.js} +2 -1
- package/dist/{telemetry-KVCZKVTE.js → telemetry-UW7XAM5W.js} +3 -3
- package/dist/{timeline-VYYKZR4V.js → timeline-JSGTZ3AN.js} +20 -20
- package/dist/{tokens-B5NFFL55.js → tokens-ADDBGTQ7.js} +2 -2
- package/dist/{transcribe-SBETOIWI.js → transcribe-FEHOK626.js} +10 -10
- package/dist/{transcribe-WNFRYZAC.js → transcribe-P6MJGSZJ.js} +16 -16
- package/dist/{tts-QSAQZVEZ.js → tts-POI553RG.js} +1 -1
- package/dist/{updateCheck-5MM2DFUC.js → updateCheck-IBWMLXQ4.js} +2 -2
- package/dist/{upgrade-LWID54R3.js → upgrade-NHZ7AYPO.js} +2 -2
- package/dist/{urlDownloader-CVLNXFDG.js → urlDownloader-ULDRBWS5.js} +8 -8
- package/dist/{validate-V4CGQ6OF.js → validate-NVWNXNBV.js} +25 -25
- package/dist/{video-VJB2KRSS.js → video-74DRD2DN.js} +9 -9
- package/package.json +1 -1
- package/dist/chunk-WBLXWOYK.js +0 -15
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
reportVariableIssues,
|
|
16
16
|
resolveVariablesArg,
|
|
17
17
|
validateVariablesAgainstProject
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-7NPSXBIN.js";
|
|
19
19
|
import "./chunk-FH7WODJH.js";
|
|
20
20
|
import "./chunk-K2FLNJVB.js";
|
|
21
21
|
import "./chunk-442JNXRM.js";
|
|
@@ -25,11 +25,11 @@ import {
|
|
|
25
25
|
import {
|
|
26
26
|
c
|
|
27
27
|
} from "./chunk-ZTZA4UWZ.js";
|
|
28
|
-
import "./chunk-
|
|
29
|
-
import "./chunk-
|
|
28
|
+
import "./chunk-5ERVRJMV.js";
|
|
29
|
+
import "./chunk-S3RCK56N.js";
|
|
30
30
|
import "./chunk-VC76R6W2.js";
|
|
31
31
|
import "./chunk-UJKQWGFF.js";
|
|
32
|
-
import "./chunk-
|
|
32
|
+
import "./chunk-VYKPBRCB.js";
|
|
33
33
|
import "./chunk-OFQWTKPW.js";
|
|
34
34
|
import "./chunk-DPVXBVLL.js";
|
|
35
35
|
import "./chunk-T76PLPD6.js";
|
|
@@ -38,7 +38,7 @@ import "./chunk-RQVDTPGD.js";
|
|
|
38
38
|
import "./chunk-3RM2ETQT.js";
|
|
39
39
|
import "./chunk-BSQ7XANM.js";
|
|
40
40
|
import "./chunk-SDYDNHEE.js";
|
|
41
|
-
import "./chunk-
|
|
41
|
+
import "./chunk-TYXH3EKP.js";
|
|
42
42
|
import "./chunk-IXLUTE6N.js";
|
|
43
43
|
import "./chunk-M2WBOQ2Q.js";
|
|
44
44
|
|
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
loadProjectVariableSchema,
|
|
15
15
|
reportVariableIssues,
|
|
16
16
|
validateVariablesAgainstSchema
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-7NPSXBIN.js";
|
|
18
18
|
import "./chunk-FH7WODJH.js";
|
|
19
19
|
import {
|
|
20
20
|
errorBox
|
|
@@ -27,11 +27,11 @@ import {
|
|
|
27
27
|
import {
|
|
28
28
|
c
|
|
29
29
|
} from "./chunk-ZTZA4UWZ.js";
|
|
30
|
-
import "./chunk-
|
|
31
|
-
import "./chunk-
|
|
30
|
+
import "./chunk-5ERVRJMV.js";
|
|
31
|
+
import "./chunk-S3RCK56N.js";
|
|
32
32
|
import "./chunk-VC76R6W2.js";
|
|
33
33
|
import "./chunk-UJKQWGFF.js";
|
|
34
|
-
import "./chunk-
|
|
34
|
+
import "./chunk-VYKPBRCB.js";
|
|
35
35
|
import "./chunk-OFQWTKPW.js";
|
|
36
36
|
import "./chunk-DPVXBVLL.js";
|
|
37
37
|
import "./chunk-T76PLPD6.js";
|
|
@@ -40,7 +40,7 @@ import "./chunk-RQVDTPGD.js";
|
|
|
40
40
|
import "./chunk-3RM2ETQT.js";
|
|
41
41
|
import "./chunk-BSQ7XANM.js";
|
|
42
42
|
import "./chunk-SDYDNHEE.js";
|
|
43
|
-
import "./chunk-
|
|
43
|
+
import "./chunk-TYXH3EKP.js";
|
|
44
44
|
import "./chunk-IXLUTE6N.js";
|
|
45
45
|
import {
|
|
46
46
|
normalizeErrorMessage
|
|
@@ -20,14 +20,14 @@ import {
|
|
|
20
20
|
import "./chunk-TWWSYAKJ.js";
|
|
21
21
|
import {
|
|
22
22
|
lintProject
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-YOEGUBBY.js";
|
|
24
24
|
import "./chunk-IWFLMU2N.js";
|
|
25
|
-
import "./chunk-
|
|
25
|
+
import "./chunk-3VGU2SH7.js";
|
|
26
26
|
import "./chunk-VAS6HQX3.js";
|
|
27
27
|
import "./chunk-3RM2ETQT.js";
|
|
28
28
|
import "./chunk-BSQ7XANM.js";
|
|
29
29
|
import "./chunk-SDYDNHEE.js";
|
|
30
|
-
import "./chunk-
|
|
30
|
+
import "./chunk-TYXH3EKP.js";
|
|
31
31
|
import "./chunk-IXLUTE6N.js";
|
|
32
32
|
import "./chunk-KNU5COPB.js";
|
|
33
33
|
import "./chunk-KGPLIH7B.js";
|
|
@@ -11,16 +11,16 @@ import {
|
|
|
11
11
|
resolveItemWithDependencies,
|
|
12
12
|
resolveItemsByTag,
|
|
13
13
|
unreachableRegistryMessage
|
|
14
|
-
} from "./chunk-
|
|
15
|
-
import "./chunk-
|
|
14
|
+
} from "./chunk-QESSGUKX.js";
|
|
15
|
+
import "./chunk-3HPJM5IQ.js";
|
|
16
16
|
import "./chunk-AWDFDFI3.js";
|
|
17
17
|
import "./chunk-P6LJ4Y32.js";
|
|
18
18
|
import "./chunk-GMECXFAN.js";
|
|
19
|
-
import "./chunk-
|
|
20
|
-
import "./chunk-
|
|
19
|
+
import "./chunk-5ERVRJMV.js";
|
|
20
|
+
import "./chunk-S3RCK56N.js";
|
|
21
21
|
import "./chunk-VC76R6W2.js";
|
|
22
22
|
import "./chunk-UJKQWGFF.js";
|
|
23
|
-
import "./chunk-
|
|
23
|
+
import "./chunk-VYKPBRCB.js";
|
|
24
24
|
import "./chunk-OFQWTKPW.js";
|
|
25
25
|
import "./chunk-DPVXBVLL.js";
|
|
26
26
|
import "./chunk-T76PLPD6.js";
|
|
@@ -29,7 +29,7 @@ import "./chunk-RQVDTPGD.js";
|
|
|
29
29
|
import "./chunk-3RM2ETQT.js";
|
|
30
30
|
import "./chunk-BSQ7XANM.js";
|
|
31
31
|
import "./chunk-SDYDNHEE.js";
|
|
32
|
-
import "./chunk-
|
|
32
|
+
import "./chunk-TYXH3EKP.js";
|
|
33
33
|
import "./chunk-IXLUTE6N.js";
|
|
34
34
|
import "./chunk-M2WBOQ2Q.js";
|
|
35
35
|
export {
|
|
@@ -16,26 +16,26 @@ import {
|
|
|
16
16
|
sherpaRuntimeLoadError,
|
|
17
17
|
sherpaUnsupportedReason,
|
|
18
18
|
transcribeWithSherpa
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-E6EYZ33P.js";
|
|
20
20
|
import "./chunk-BXCMXMJQ.js";
|
|
21
21
|
import "./chunk-3DKN5WKL.js";
|
|
22
22
|
import "./chunk-EOVYQ3IG.js";
|
|
23
|
-
import "./chunk-
|
|
24
|
-
import "./chunk-
|
|
23
|
+
import "./chunk-QECEOV6W.js";
|
|
24
|
+
import "./chunk-FNN5QINS.js";
|
|
25
25
|
import "./chunk-6BEFEWFB.js";
|
|
26
26
|
import "./chunk-YG2Y55KF.js";
|
|
27
27
|
import "./chunk-PO2SDVQA.js";
|
|
28
28
|
import "./chunk-4MLYMDQ4.js";
|
|
29
29
|
import "./chunk-AMKC3AXA.js";
|
|
30
|
-
import "./chunk-
|
|
31
|
-
import "./chunk-
|
|
30
|
+
import "./chunk-EXH6L2XZ.js";
|
|
31
|
+
import "./chunk-RN5I2DP5.js";
|
|
32
32
|
import "./chunk-NE55C6S5.js";
|
|
33
33
|
import "./chunk-JYVGYKXG.js";
|
|
34
|
-
import "./chunk-
|
|
35
|
-
import "./chunk-
|
|
34
|
+
import "./chunk-5ERVRJMV.js";
|
|
35
|
+
import "./chunk-S3RCK56N.js";
|
|
36
36
|
import "./chunk-VC76R6W2.js";
|
|
37
37
|
import "./chunk-UJKQWGFF.js";
|
|
38
|
-
import "./chunk-
|
|
38
|
+
import "./chunk-VYKPBRCB.js";
|
|
39
39
|
import "./chunk-OFQWTKPW.js";
|
|
40
40
|
import "./chunk-DPVXBVLL.js";
|
|
41
41
|
import "./chunk-T76PLPD6.js";
|
|
@@ -44,14 +44,14 @@ import "./chunk-RQVDTPGD.js";
|
|
|
44
44
|
import "./chunk-YIJMVFEJ.js";
|
|
45
45
|
import "./chunk-54DMWFQZ.js";
|
|
46
46
|
import "./chunk-TWWSYAKJ.js";
|
|
47
|
-
import "./chunk-
|
|
47
|
+
import "./chunk-YOEGUBBY.js";
|
|
48
48
|
import "./chunk-IWFLMU2N.js";
|
|
49
|
-
import "./chunk-
|
|
49
|
+
import "./chunk-3VGU2SH7.js";
|
|
50
50
|
import "./chunk-VAS6HQX3.js";
|
|
51
51
|
import "./chunk-3RM2ETQT.js";
|
|
52
52
|
import "./chunk-BSQ7XANM.js";
|
|
53
53
|
import "./chunk-SDYDNHEE.js";
|
|
54
|
-
import "./chunk-
|
|
54
|
+
import "./chunk-TYXH3EKP.js";
|
|
55
55
|
import "./chunk-IXLUTE6N.js";
|
|
56
56
|
import "./chunk-KNU5COPB.js";
|
|
57
57
|
import "./chunk-JZIEZCQM.js";
|
|
@@ -79,6 +79,9 @@ Static audits cannot catch every mount failure. When the project uses sub-compos
|
|
|
79
79
|
|
|
80
80
|
```bash
|
|
81
81
|
npx hyperframes snapshot --at <t1>,<t2>,<t3>
|
|
82
|
+
# For multiple samples within one scene or interval:
|
|
83
|
+
npx hyperframes snapshot --composition <data-composition-id> --frames 8
|
|
84
|
+
npx hyperframes snapshot --range 3:5 --frames 8
|
|
82
85
|
```
|
|
83
86
|
|
|
84
87
|
Treat tiny unstyled content, canvas-sized icons, missing hero elements, or timeline-registration timeouts as render-blocking mount defects. See `hyperframes-core/references/sub-compositions.md` for the corresponding fixes.
|
|
@@ -104,9 +104,13 @@ Drop a `*.motion.json` sidecar next to the composition (matching the html basena
|
|
|
104
104
|
npx hyperframes snapshot # 5 key frames as PNG
|
|
105
105
|
npx hyperframes snapshot ./my-project # specific project
|
|
106
106
|
npx hyperframes snapshot --frames 10 # evenly-spaced N frames
|
|
107
|
+
npx hyperframes snapshot --range 3:5 --frames 8 # 8 frames within root-timeline seconds 3–5
|
|
108
|
+
npx hyperframes snapshot --composition intro --frames 8 # 8 frames within this data-composition-id
|
|
107
109
|
```
|
|
108
110
|
|
|
109
|
-
|
|
111
|
+
Still PNGs. Each run writes `.hyperframes/artifacts/snapshots/<id>/` unless `--output` is set. `snapshot` is the standalone capture; `check --snapshots` is the gate.
|
|
112
|
+
|
|
113
|
+
One of `--at`, `--range START:END` (seconds), or `--composition <data-composition-id>` (not a CSS selector). `--frames` defaults to 5. Range and composition sample just before the end and add no extra end frame; `--at` adds one unless `--no-end`.
|
|
110
114
|
|
|
111
115
|
### Zooming into a reported finding
|
|
112
116
|
|
|
@@ -6,8 +6,8 @@ var __filename = __hf_fileURLToPath(import.meta.url);
|
|
|
6
6
|
var __dirname = __hf_dirname(__filename);
|
|
7
7
|
import {
|
|
8
8
|
trackSkillsInstallSkipped
|
|
9
|
-
} from "./chunk-
|
|
10
|
-
import "./chunk-
|
|
9
|
+
} from "./chunk-H2SGM2V2.js";
|
|
10
|
+
import "./chunk-KZ3L3W4Q.js";
|
|
11
11
|
import {
|
|
12
12
|
diag
|
|
13
13
|
} from "./chunk-VWG7OQKU.js";
|
|
@@ -35,15 +35,15 @@ import {
|
|
|
35
35
|
isCoreSkill,
|
|
36
36
|
presentSkills,
|
|
37
37
|
pruneOrphanedLockEntries
|
|
38
|
-
} from "./chunk-
|
|
38
|
+
} from "./chunk-H7FXBK3Q.js";
|
|
39
39
|
import {
|
|
40
40
|
withMeta
|
|
41
|
-
} from "./chunk-
|
|
41
|
+
} from "./chunk-YYEYOFHW.js";
|
|
42
42
|
import "./chunk-K4WIOZFP.js";
|
|
43
43
|
import "./chunk-XUXGIA7H.js";
|
|
44
44
|
import "./chunk-WERLJGIC.js";
|
|
45
45
|
import "./chunk-ISN5GRYI.js";
|
|
46
|
-
import "./chunk-
|
|
46
|
+
import "./chunk-IZIRIDJH.js";
|
|
47
47
|
import {
|
|
48
48
|
buildNpxCommand
|
|
49
49
|
} from "./chunk-6BEFEWFB.js";
|
|
@@ -9,13 +9,13 @@ import {
|
|
|
9
9
|
printSkillsUpdateNotice,
|
|
10
10
|
refreshSkillsCache,
|
|
11
11
|
skillsCheckDue
|
|
12
|
-
} from "./chunk-
|
|
13
|
-
import "./chunk-
|
|
12
|
+
} from "./chunk-H7FXBK3Q.js";
|
|
13
|
+
import "./chunk-YYEYOFHW.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-IZIRIDJH.js";
|
|
19
19
|
import "./chunk-KNU5COPB.js";
|
|
20
20
|
import "./chunk-M2WBOQ2Q.js";
|
|
21
21
|
export {
|
|
@@ -8,14 +8,19 @@ import {
|
|
|
8
8
|
parseAngle
|
|
9
9
|
} from "./chunk-KZI44OPA.js";
|
|
10
10
|
import {
|
|
11
|
+
pngDimensions,
|
|
11
12
|
reportArtifacts,
|
|
12
13
|
withProjectLock
|
|
13
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-57GN6KWT.js";
|
|
15
|
+
import {
|
|
16
|
+
captureArtifactRevision
|
|
17
|
+
} from "./chunk-KCFF4ENE.js";
|
|
18
|
+
import "./chunk-7TASSBN2.js";
|
|
14
19
|
import {
|
|
15
20
|
serveStaticProjectHtml
|
|
16
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-GQETH4PE.js";
|
|
17
22
|
import "./chunk-XUHOIDKG.js";
|
|
18
|
-
import "./chunk-
|
|
23
|
+
import "./chunk-XEFFJRYX.js";
|
|
19
24
|
import "./chunk-X7MTZ4T2.js";
|
|
20
25
|
import {
|
|
21
26
|
DEFAULT_ZOOM_SCALE,
|
|
@@ -25,41 +30,46 @@ import {
|
|
|
25
30
|
resolveCropRegion,
|
|
26
31
|
runFfmpegOnce,
|
|
27
32
|
seekCompositionTimeline
|
|
28
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-SWCSL6WS.js";
|
|
29
34
|
import "./chunk-FH7WODJH.js";
|
|
30
|
-
import "./chunk-
|
|
31
|
-
import "./chunk-
|
|
35
|
+
import "./chunk-4UMKAUZI.js";
|
|
36
|
+
import "./chunk-PKO2EWO7.js";
|
|
32
37
|
import "./chunk-WPNE5NEP.js";
|
|
33
|
-
import "./chunk-
|
|
34
|
-
import "./chunk-
|
|
35
|
-
import "./chunk-
|
|
36
|
-
import
|
|
37
|
-
|
|
38
|
-
|
|
38
|
+
import "./chunk-HBCRRCTX.js";
|
|
39
|
+
import "./chunk-PRXAOZWZ.js";
|
|
40
|
+
import "./chunk-C6TPGUWD.js";
|
|
41
|
+
import {
|
|
42
|
+
artifactDirectory,
|
|
43
|
+
forgetRecordedArtifacts,
|
|
44
|
+
recordArtifacts
|
|
45
|
+
} from "./chunk-7FYFEXD2.js";
|
|
46
|
+
import "./chunk-XINGD6MS.js";
|
|
47
|
+
import "./chunk-FFDC5OWV.js";
|
|
39
48
|
import {
|
|
40
49
|
resolveProject
|
|
41
|
-
} from "./chunk-
|
|
50
|
+
} from "./chunk-IBYC3VUA.js";
|
|
42
51
|
import {
|
|
43
52
|
formatLintFindings
|
|
44
53
|
} from "./chunk-6CSYCFQV.js";
|
|
45
54
|
import "./chunk-K2FLNJVB.js";
|
|
55
|
+
import "./chunk-DQBY7FRR.js";
|
|
46
56
|
import {
|
|
47
57
|
resolveLocalBrowserGpuMode
|
|
48
|
-
} from "./chunk-
|
|
58
|
+
} from "./chunk-EVTHG34H.js";
|
|
49
59
|
import "./chunk-442JNXRM.js";
|
|
50
|
-
import "./chunk-
|
|
60
|
+
import "./chunk-D6RJXQLD.js";
|
|
51
61
|
import "./chunk-XT7X6QCP.js";
|
|
52
62
|
import "./chunk-4YYJOFKS.js";
|
|
53
63
|
import "./chunk-HVW7ABXD.js";
|
|
54
|
-
import "./chunk-
|
|
55
|
-
import "./chunk-
|
|
56
|
-
import "./chunk-
|
|
64
|
+
import "./chunk-QESSGUKX.js";
|
|
65
|
+
import "./chunk-6Z4YJ5Q3.js";
|
|
66
|
+
import "./chunk-3HPJM5IQ.js";
|
|
57
67
|
import "./chunk-AWDFDFI3.js";
|
|
58
68
|
import "./chunk-P6LJ4Y32.js";
|
|
59
69
|
import "./chunk-GMECXFAN.js";
|
|
60
|
-
import "./chunk-
|
|
61
|
-
import "./chunk-
|
|
62
|
-
import "./chunk-
|
|
70
|
+
import "./chunk-5CS4T6C6.js";
|
|
71
|
+
import "./chunk-H2SGM2V2.js";
|
|
72
|
+
import "./chunk-KZ3L3W4Q.js";
|
|
63
73
|
import "./chunk-VWG7OQKU.js";
|
|
64
74
|
import "./chunk-XBSPQ52S.js";
|
|
65
75
|
import {
|
|
@@ -82,7 +92,7 @@ import "./chunk-K4WIOZFP.js";
|
|
|
82
92
|
import "./chunk-XUXGIA7H.js";
|
|
83
93
|
import "./chunk-WERLJGIC.js";
|
|
84
94
|
import "./chunk-ISN5GRYI.js";
|
|
85
|
-
import "./chunk-
|
|
95
|
+
import "./chunk-IZIRIDJH.js";
|
|
86
96
|
import {
|
|
87
97
|
loadOptionalPackage
|
|
88
98
|
} from "./chunk-3DKN5WKL.js";
|
|
@@ -94,23 +104,23 @@ import {
|
|
|
94
104
|
getFFmpegInstallHint
|
|
95
105
|
} from "./chunk-4MLYMDQ4.js";
|
|
96
106
|
import "./chunk-AMKC3AXA.js";
|
|
97
|
-
import "./chunk-
|
|
98
|
-
import "./chunk-
|
|
107
|
+
import "./chunk-EXH6L2XZ.js";
|
|
108
|
+
import "./chunk-RN5I2DP5.js";
|
|
99
109
|
import "./chunk-NE55C6S5.js";
|
|
100
110
|
import "./chunk-JYVGYKXG.js";
|
|
101
111
|
import {
|
|
102
112
|
createRuntimeStartTimeResolver,
|
|
103
113
|
isClipVisibleAt,
|
|
104
114
|
isInClipWindow
|
|
105
|
-
} from "./chunk-
|
|
115
|
+
} from "./chunk-5ERVRJMV.js";
|
|
106
116
|
import {
|
|
107
117
|
readElementRateSpec,
|
|
108
118
|
sourceTimeAt,
|
|
109
119
|
timeAtSourceTime
|
|
110
|
-
} from "./chunk-
|
|
120
|
+
} from "./chunk-S3RCK56N.js";
|
|
111
121
|
import "./chunk-VC76R6W2.js";
|
|
112
122
|
import "./chunk-UJKQWGFF.js";
|
|
113
|
-
import "./chunk-
|
|
123
|
+
import "./chunk-VYKPBRCB.js";
|
|
114
124
|
import "./chunk-OFQWTKPW.js";
|
|
115
125
|
import "./chunk-DPVXBVLL.js";
|
|
116
126
|
import "./chunk-T76PLPD6.js";
|
|
@@ -122,16 +132,16 @@ import {
|
|
|
122
132
|
import "./chunk-TWWSYAKJ.js";
|
|
123
133
|
import {
|
|
124
134
|
lintProject
|
|
125
|
-
} from "./chunk-
|
|
135
|
+
} from "./chunk-YOEGUBBY.js";
|
|
126
136
|
import "./chunk-IWFLMU2N.js";
|
|
127
|
-
import "./chunk-
|
|
137
|
+
import "./chunk-3VGU2SH7.js";
|
|
128
138
|
import "./chunk-VAS6HQX3.js";
|
|
129
139
|
import "./chunk-3RM2ETQT.js";
|
|
130
140
|
import "./chunk-BSQ7XANM.js";
|
|
131
141
|
import {
|
|
132
142
|
parseHTML
|
|
133
143
|
} from "./chunk-SDYDNHEE.js";
|
|
134
|
-
import "./chunk-
|
|
144
|
+
import "./chunk-TYXH3EKP.js";
|
|
135
145
|
import "./chunk-IXLUTE6N.js";
|
|
136
146
|
import {
|
|
137
147
|
normalizeErrorMessage
|
|
@@ -190,6 +200,7 @@ function resolveSnapshotCompositionRange(html, durations, id, duration) {
|
|
|
190
200
|
}
|
|
191
201
|
|
|
192
202
|
// src/commands/snapshot.ts
|
|
203
|
+
import { randomUUID } from "crypto";
|
|
193
204
|
import { existsSync, mkdtempSync, readFileSync, mkdirSync, rmSync, writeFileSync } from "fs";
|
|
194
205
|
import { tmpdir } from "os";
|
|
195
206
|
import { resolve, join, relative, isAbsolute, basename, posix } from "path";
|
|
@@ -429,18 +440,29 @@ function computeSnapshotTimes(duration, opts) {
|
|
|
429
440
|
return { times: times.map(round), appendedTail: false };
|
|
430
441
|
}
|
|
431
442
|
async function captureSnapshots(projectDir, opts) {
|
|
432
|
-
const { bundleWithLocalizedFonts } = await import("./bundleWithLocalizedFonts-
|
|
443
|
+
const { bundleWithLocalizedFonts } = await import("./bundleWithLocalizedFonts-76DMCRIW.js");
|
|
444
|
+
const capture = await captureArtifactRevision(projectDir).catch(warnSnapshotsNotRecorded);
|
|
445
|
+
const invocation = randomUUID();
|
|
446
|
+
const artifacts = [];
|
|
447
|
+
const replaced = [];
|
|
448
|
+
const warnings = [];
|
|
449
|
+
let completed = false;
|
|
433
450
|
const numFrames = opts.frames ?? 5;
|
|
434
451
|
const html = await bundleWithLocalizedFonts(projectDir);
|
|
435
452
|
const server = await serveStaticProjectHtml(projectDir, html, void 0, [], opts.autoProxy);
|
|
436
453
|
const savedPaths = [];
|
|
437
454
|
try {
|
|
438
|
-
const {
|
|
455
|
+
const {
|
|
456
|
+
browser: chromeBrowser,
|
|
457
|
+
page,
|
|
458
|
+
renderReadyTimedOut
|
|
459
|
+
} = await openSettledCompositionPage(html, server.url, {
|
|
439
460
|
renderReadyTimeoutMs: opts.timeout ?? 5e3,
|
|
440
461
|
renderReadyWarningSuffix: "snapshots may be inaccurate",
|
|
441
462
|
browserGpuMode: opts.browserGpuMode
|
|
442
463
|
});
|
|
443
464
|
try {
|
|
465
|
+
if (renderReadyTimedOut) warnings.push("Render readiness timed out");
|
|
444
466
|
const fontReport = await page.evaluate(() => {
|
|
445
467
|
const loaded = [];
|
|
446
468
|
const errored = [];
|
|
@@ -463,6 +485,8 @@ async function captureSnapshots(projectDir, opts) {
|
|
|
463
485
|
console.log(` ${c.error("Fonts FAILED:")} ${fontReport.errored.join(", ")}`);
|
|
464
486
|
}
|
|
465
487
|
}
|
|
488
|
+
if (fontReport.errored.length)
|
|
489
|
+
warnings.push(`Fonts failed: ${fontReport.errored.join(", ")}`);
|
|
466
490
|
const duration = await page.evaluate(() => {
|
|
467
491
|
const win = window;
|
|
468
492
|
if (typeof win.__player?.getDuration === "function") {
|
|
@@ -512,13 +536,15 @@ async function captureSnapshots(projectDir, opts) {
|
|
|
512
536
|
);
|
|
513
537
|
}
|
|
514
538
|
const cameraExpr = opts.angle && (opts.angle.yaw !== 0 || opts.angle.pitch !== 0) ? `(${orbitStageSource()})(${JSON.stringify(opts.angle)})` : null;
|
|
515
|
-
const snapshotDir = opts.outputDir ??
|
|
539
|
+
const snapshotDir = opts.outputDir ?? artifactDirectory(projectDir, "snapshots");
|
|
516
540
|
mkdirSync(snapshotDir, { recursive: true });
|
|
517
541
|
try {
|
|
518
542
|
const { readdirSync } = await import("fs");
|
|
519
543
|
for (const file of readdirSync(snapshotDir)) {
|
|
520
544
|
if (/\.(png|jpg|jpeg)$/i.test(file)) {
|
|
521
|
-
|
|
545
|
+
const path = resolve(snapshotDir, file);
|
|
546
|
+
replaced.push(path);
|
|
547
|
+
rmSync(path, { force: true });
|
|
522
548
|
}
|
|
523
549
|
}
|
|
524
550
|
} catch {
|
|
@@ -527,11 +553,12 @@ async function captureSnapshots(projectDir, opts) {
|
|
|
527
553
|
let syncVideoFrameVisibility = null;
|
|
528
554
|
let extractMediaMetadata = null;
|
|
529
555
|
try {
|
|
530
|
-
const engine = await import("./src-
|
|
556
|
+
const engine = await import("./src-AVQBAECC.js");
|
|
531
557
|
injectVideoFramesBatch = engine.injectVideoFramesBatch;
|
|
532
558
|
syncVideoFrameVisibility = engine.syncVideoFrameVisibility;
|
|
533
559
|
extractMediaMetadata = engine.extractMediaMetadata;
|
|
534
560
|
} catch {
|
|
561
|
+
warnings.push("Video frame extraction engine unavailable");
|
|
535
562
|
console.warn(
|
|
536
563
|
` ${c.warn("\u26A0")} @hyperframes/engine unavailable \u2014 <video> elements will appear black in snapshots. Verify media via a draft render's extracted frames instead.`
|
|
537
564
|
);
|
|
@@ -634,6 +661,7 @@ async function captureSnapshots(projectDir, opts) {
|
|
|
634
661
|
}
|
|
635
662
|
if (active.length > 0 && updates.length < active.length) {
|
|
636
663
|
const missed = active.length - updates.length;
|
|
664
|
+
warnings.push(`${missed} video frames missing at ${time}s`);
|
|
637
665
|
console.warn(
|
|
638
666
|
` ${c.warn("\u26A0")} ${missed}/${active.length} active <video> frame(s) could not be extracted at ${time.toFixed(1)}s \u2014 those videos will appear black/stale in this snapshot`
|
|
639
667
|
);
|
|
@@ -647,6 +675,7 @@ async function captureSnapshots(projectDir, opts) {
|
|
|
647
675
|
active.map((a) => a.id)
|
|
648
676
|
);
|
|
649
677
|
} catch {
|
|
678
|
+
warnings.push(`Video injection failed at ${time}s`);
|
|
650
679
|
console.warn(
|
|
651
680
|
` ${c.warn("\u26A0")} video frame injection failed at ${time.toFixed(1)}s \u2014 <video> elements will appear black/stale in this snapshot`
|
|
652
681
|
);
|
|
@@ -657,6 +686,7 @@ async function captureSnapshots(projectDir, opts) {
|
|
|
657
686
|
const index = String(i).padStart(2, "0");
|
|
658
687
|
const filename = `frame-${index}-at-${timeLabel}.png`;
|
|
659
688
|
const framePath = join(snapshotDir, filename);
|
|
689
|
+
let crop;
|
|
660
690
|
if (opts.zoom) {
|
|
661
691
|
const canvas = await page.evaluate(() => ({
|
|
662
692
|
width: window.innerWidth,
|
|
@@ -664,11 +694,13 @@ async function captureSnapshots(projectDir, opts) {
|
|
|
664
694
|
}));
|
|
665
695
|
const region = await resolveCropRegion(page, opts.zoom, canvas);
|
|
666
696
|
if (!region) {
|
|
697
|
+
warnings.push(`Crop target unavailable at ${time}s`);
|
|
667
698
|
console.error(
|
|
668
699
|
` ${c.warn("\u26A0")} --zoom target has no visible box at ${time.toFixed(1)}s \u2014 frame skipped`
|
|
669
700
|
);
|
|
670
701
|
continue;
|
|
671
702
|
}
|
|
703
|
+
crop = region;
|
|
672
704
|
const buffer = await captureRegionCrop(
|
|
673
705
|
page,
|
|
674
706
|
region,
|
|
@@ -678,6 +710,19 @@ async function captureSnapshots(projectDir, opts) {
|
|
|
678
710
|
} else {
|
|
679
711
|
await page.screenshot({ path: framePath, type: "png", omitBackground: true });
|
|
680
712
|
}
|
|
713
|
+
artifacts.push({
|
|
714
|
+
id: `${invocation}-${i}`,
|
|
715
|
+
image: resolve(framePath),
|
|
716
|
+
time,
|
|
717
|
+
metadata: {
|
|
718
|
+
...pngDimensions(framePath),
|
|
719
|
+
crop,
|
|
720
|
+
zoom: opts.zoom,
|
|
721
|
+
zoomScale: opts.zoom ? opts.zoomScale ?? DEFAULT_ZOOM_SCALE : 1,
|
|
722
|
+
angle: opts.angle,
|
|
723
|
+
browserGpuMode: opts.browserGpuMode
|
|
724
|
+
}
|
|
725
|
+
});
|
|
681
726
|
if (opts.against) {
|
|
682
727
|
const refPng = await extractVideoFrameToBuffer(opts.against, time);
|
|
683
728
|
if (!refPng) {
|
|
@@ -701,14 +746,48 @@ async function captureSnapshots(projectDir, opts) {
|
|
|
701
746
|
const rel = relative(projectDir, framePath);
|
|
702
747
|
savedPaths.push(rel.startsWith("..") || isAbsolute(rel) ? framePath : rel);
|
|
703
748
|
}
|
|
749
|
+
completed = true;
|
|
704
750
|
} finally {
|
|
705
751
|
await chromeBrowser.close();
|
|
706
752
|
}
|
|
707
753
|
} finally {
|
|
708
754
|
await server.close();
|
|
755
|
+
const recorded = capture ? await recordSnapshotArtifacts(
|
|
756
|
+
projectDir,
|
|
757
|
+
capture,
|
|
758
|
+
artifacts,
|
|
759
|
+
opts.zoom,
|
|
760
|
+
warnings,
|
|
761
|
+
completed
|
|
762
|
+
) : false;
|
|
763
|
+
if (!recorded) {
|
|
764
|
+
const paths = [...replaced, ...artifacts.map((artifact) => artifact.image)];
|
|
765
|
+
if (paths.length > 0) await forgetRecordedArtifacts(projectDir, paths).catch(() => void 0);
|
|
766
|
+
}
|
|
709
767
|
}
|
|
710
768
|
return savedPaths;
|
|
711
769
|
}
|
|
770
|
+
function warnSnapshotsNotRecorded(error) {
|
|
771
|
+
console.warn(` ${c.warn("\u26A0")} Snapshots were not recorded: ${normalizeErrorMessage(error)}`);
|
|
772
|
+
return void 0;
|
|
773
|
+
}
|
|
774
|
+
async function recordSnapshotArtifacts(projectDir, capture, artifacts, zoom, warnings, completed) {
|
|
775
|
+
const records = await recordArtifacts(
|
|
776
|
+
projectDir,
|
|
777
|
+
capture,
|
|
778
|
+
artifacts.map((artifact) => ({
|
|
779
|
+
kind: "snapshot",
|
|
780
|
+
scope: zoom ? "crop" : "full",
|
|
781
|
+
...artifact,
|
|
782
|
+
metadata: { ...artifact.metadata, warnings, partial: !completed || warnings.length > 0 }
|
|
783
|
+
}))
|
|
784
|
+
).catch(warnSnapshotsNotRecorded);
|
|
785
|
+
const record = records?.[0];
|
|
786
|
+
if (!record) return false;
|
|
787
|
+
console.log(` Revision: ${record.revision ?? "none"} (${record.attribution})`);
|
|
788
|
+
console.log(` State: ${join(projectDir, ".hyperframes", "video-state.json")}`);
|
|
789
|
+
return true;
|
|
790
|
+
}
|
|
712
791
|
var snapshot_default = defineCommand({
|
|
713
792
|
meta: {
|
|
714
793
|
name: "snapshot",
|
|
@@ -723,7 +802,7 @@ var snapshot_default = defineCommand({
|
|
|
723
802
|
output: {
|
|
724
803
|
type: "string",
|
|
725
804
|
alias: "o",
|
|
726
|
-
description: "Directory to write snapshots into (default: <project
|
|
805
|
+
description: "Directory to write snapshots into (default: unique directory under <project>/.hyperframes/artifacts/snapshots)"
|
|
727
806
|
},
|
|
728
807
|
frames: {
|
|
729
808
|
type: "string",
|
|
@@ -834,7 +913,7 @@ var snapshot_default = defineCommand({
|
|
|
834
913
|
const angleLabel = camera && (camera.yaw !== 0 || camera.pitch !== 0) ? ` ${c.dim(`(angle yaw ${camera.yaw}\xB0 pitch ${camera.pitch}\xB0)`)}` : "";
|
|
835
914
|
console.log(`${c.accent("\u25C6")} Capturing ${label} from ${c.accent(project.name)}${angleLabel}`);
|
|
836
915
|
try {
|
|
837
|
-
const snapshotDir = args.output ? resolve(String(args.output)) :
|
|
916
|
+
const snapshotDir = args.output ? resolve(String(args.output)) : artifactDirectory(project.dir, "snapshots");
|
|
838
917
|
await withProjectLock(project.dir, "snapshot", async () => {
|
|
839
918
|
const paths = await captureSnapshots(project.dir, {
|
|
840
919
|
frames,
|
|
@@ -863,10 +942,8 @@ ${c.error("\u2717")} Could not determine composition duration \u2014 no frames c
|
|
|
863
942
|
);
|
|
864
943
|
failCommand();
|
|
865
944
|
}
|
|
866
|
-
console.log(
|
|
867
|
-
|
|
868
|
-
${c.success("\u25C7")} ${paths.length} snapshots saved to ${args.output ? snapshotDir : "snapshots/"}`
|
|
869
|
-
);
|
|
945
|
+
console.log(`
|
|
946
|
+
${c.success("\u25C7")} ${paths.length} snapshots saved to ${snapshotDir}`);
|
|
870
947
|
for (const p of paths) {
|
|
871
948
|
console.log(` ${p}`);
|
|
872
949
|
}
|
|
@@ -216,8 +216,8 @@ import {
|
|
|
216
216
|
verifyGpuParity,
|
|
217
217
|
writeCapturedFrame,
|
|
218
218
|
writeUrlDownloadTelemetry
|
|
219
|
-
} from "./chunk-
|
|
220
|
-
import "./chunk-
|
|
219
|
+
} from "./chunk-EXH6L2XZ.js";
|
|
220
|
+
import "./chunk-RN5I2DP5.js";
|
|
221
221
|
import "./chunk-NE55C6S5.js";
|
|
222
222
|
import {
|
|
223
223
|
LOW_MEMORY_TOTAL_MB_THRESHOLD,
|
|
@@ -228,11 +228,11 @@ import {
|
|
|
228
228
|
import {
|
|
229
229
|
MEDIA_VISUAL_STYLE_PROPERTIES,
|
|
230
230
|
quantizeTimeToFrame
|
|
231
|
-
} from "./chunk-
|
|
232
|
-
import "./chunk-
|
|
231
|
+
} from "./chunk-5ERVRJMV.js";
|
|
232
|
+
import "./chunk-S3RCK56N.js";
|
|
233
233
|
import "./chunk-VC76R6W2.js";
|
|
234
234
|
import "./chunk-UJKQWGFF.js";
|
|
235
|
-
import "./chunk-
|
|
235
|
+
import "./chunk-VYKPBRCB.js";
|
|
236
236
|
import "./chunk-OFQWTKPW.js";
|
|
237
237
|
import "./chunk-DPVXBVLL.js";
|
|
238
238
|
import "./chunk-T76PLPD6.js";
|
|
@@ -241,11 +241,11 @@ import "./chunk-RQVDTPGD.js";
|
|
|
241
241
|
import {
|
|
242
242
|
chromeMajorCeiling
|
|
243
243
|
} from "./chunk-TWWSYAKJ.js";
|
|
244
|
-
import "./chunk-
|
|
244
|
+
import "./chunk-YOEGUBBY.js";
|
|
245
245
|
import {
|
|
246
246
|
resolveProjectRelativeSrc
|
|
247
247
|
} from "./chunk-IWFLMU2N.js";
|
|
248
|
-
import "./chunk-
|
|
248
|
+
import "./chunk-3VGU2SH7.js";
|
|
249
249
|
import {
|
|
250
250
|
FFMPEG_PATH_ENV,
|
|
251
251
|
FFPROBE_PATH_ENV
|
|
@@ -253,7 +253,7 @@ import {
|
|
|
253
253
|
import "./chunk-3RM2ETQT.js";
|
|
254
254
|
import "./chunk-BSQ7XANM.js";
|
|
255
255
|
import "./chunk-SDYDNHEE.js";
|
|
256
|
-
import "./chunk-
|
|
256
|
+
import "./chunk-TYXH3EKP.js";
|
|
257
257
|
import "./chunk-IXLUTE6N.js";
|
|
258
258
|
import {
|
|
259
259
|
TRANSITIONS,
|