hyperframes 0.8.151 → 0.8.153
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-D7GZM6ZS.js} +14 -14
- package/dist/{animatedGifPrep-YQDPYGOD.js → animatedGifPrep-IBLDIJXC.js} +9 -9
- package/dist/api.js +15 -15
- package/dist/{asset-3Q737Y4H.js → asset-ACZRQU2Z.js} +2 -2
- package/dist/{assetCataloger-BTHEBJJB.js → assetCataloger-Y3OELLLW.js} +4 -4
- package/dist/{auth-XL7EU3SO.js → auth-LFWML3XJ.js} +1 -1
- package/dist/{autoUpdate-PJFLTQ3U.js → autoUpdate-7IUGQXOV.js} +2 -2
- package/dist/{backgroundChecks-T5TIR5WK.js → backgroundChecks-XI364BNX.js} +3 -3
- package/dist/backgroundChecksWorker.js +3 -3
- package/dist/{batchRender-NFLVIDB4.js → batchRender-6TD4XSIP.js} +5 -5
- package/dist/{beats-JU4GZ26R.js → beats-FZGQ3HLR.js} +14 -14
- package/dist/{benchmark-7U2YWLTW.js → benchmark-3YEKSYMP.js} +10 -10
- package/dist/{browser-D57UPYDA.js → browser-R5PKLYZD.js} +3 -3
- package/dist/{bundleWithLocalizedFonts-26MXQOZG.js → bundleWithLocalizedFonts-QX5HV7LC.js} +2 -2
- package/dist/{capture-LT252COQ.js → capture-MTHXUEC2.js} +19 -19
- package/dist/{capture-47BV25G3.js → capture-R7QSBEPW.js} +2 -2
- package/dist/{catalog-BEZXOV4O.js → catalog-K2TRGCXO.js} +14 -14
- package/dist/{catch-up-KVV5X6BF.js → catch-up-WCSN4K4A.js} +4 -4
- package/dist/{check-6KQ433E6.js → check-N4EFKWC3.js} +294 -66
- package/dist/{checkBrowser-PRDR6XBY.js → checkBrowser-73SOMDG3.js} +75 -45
- package/dist/{chunk-IZPN423R.js → chunk-2F6LWCSF.js} +11 -6
- package/dist/{chunk-TCWMDCBX.js → chunk-2X3UJ4Q3.js} +2 -2
- package/dist/{chunk-YZTVHRJ2.js → chunk-2XEBNYG5.js} +1 -1
- package/dist/chunk-3DMR7RF6.js +24 -0
- package/dist/{chunk-APDLWWFG.js → chunk-3VGU2SH7.js} +1 -1
- package/dist/{chunk-OZ4K46OV.js → chunk-4IRCZWND.js} +2 -2
- package/dist/{chunk-4PKQEKAI.js → chunk-4OVLWS2K.js} +2 -2
- package/dist/{chunk-DHPFXAUF.js → chunk-57GN6KWT.js} +17 -3
- package/dist/{chunk-374QQGBQ.js → chunk-5CS4T6C6.js} +63 -12
- package/dist/{chunk-FLVI7FHU.js → chunk-5DD45SJZ.js} +1 -1
- package/dist/{chunk-BRF3O35X.js → chunk-5FS4HCHN.js} +109 -31
- package/dist/{chunk-DIOBKUBV.js → chunk-5OKZRXLT.js} +2 -2
- package/dist/{chunk-POEEDPJI.js → chunk-5ZGSN5YK.js} +1 -1
- package/dist/{chunk-FJWEYVEM.js → chunk-7FYFEXD2.js} +658 -198
- package/dist/{chunk-L3N7RJHS.js → chunk-7NKLNOHW.js} +3 -3
- package/dist/{chunk-O3DUX6P2.js → chunk-AA67UBB2.js} +4 -4
- package/dist/{chunk-IZ7L6V76.js → chunk-AUK5QCRH.js} +1 -1
- package/dist/{chunk-YEBKEWKB.js → chunk-BD3XH4A7.js} +1 -1
- package/dist/{chunk-XXPYZBZ3.js → chunk-C6TPGUWD.js} +2 -2
- package/dist/{chunk-ZD3RDNZI.js → chunk-CBMZYOWC.js} +1 -1
- package/dist/{chunk-ZGCRVM5M.js → chunk-DAKXCEE3.js} +4 -4
- package/dist/{chunk-AIJS74LG.js → chunk-FFDC5OWV.js} +8 -2
- package/dist/{chunk-DMKI64EZ.js → chunk-FSZAFCU7.js} +1 -1
- package/dist/{chunk-OSAH7S5M.js → chunk-FZC4UM4G.js} +1 -1
- package/dist/{chunk-QBYHNRHU.js → chunk-GV7I3ZSQ.js} +2 -2
- package/dist/{chunk-N3I6RAOR.js → chunk-GXPD7J53.js} +11 -11
- package/dist/{chunk-N4IXP3MY.js → chunk-HGAOO43L.js} +3 -3
- package/dist/{chunk-QF7AE3DB.js → chunk-J5LEAKUA.js} +1 -1
- package/dist/{chunk-PUIELIFA.js → chunk-JBUIS5DN.js} +1 -1
- package/dist/{chunk-KXX6NLOT.js → chunk-JQ57FAYN.js} +1 -1
- package/dist/{chunk-RRBKEHST.js → chunk-KFBEMIMD.js} +54 -6
- package/dist/{chunk-RYL6ZIJP.js → chunk-OIONMNWN.js} +18 -11
- package/dist/{chunk-KQGWP4KH.js → chunk-OSASJLU4.js} +1 -1
- package/dist/{chunk-3ZPFRDEJ.js → chunk-PVGDU7SE.js} +4 -4
- package/dist/{chunk-XGLNQDLN.js → chunk-PXOFFSO3.js} +1 -1
- package/dist/{chunk-IP73NMQT.js → chunk-QBFHVMOI.js} +10 -10
- package/dist/{chunk-IPDS2SWI.js → chunk-R6WCSVCE.js} +1 -1
- package/dist/{chunk-XYHBVSWD.js → chunk-RCWSM7IQ.js} +2 -2
- package/dist/{chunk-4YZYYP7V.js → chunk-SUVIGBHS.js} +3 -3
- package/dist/{chunk-L6RIMCMG.js → chunk-T2Y2WC5I.js} +3 -3
- package/dist/{chunk-QLGBNGXC.js → chunk-TCJM3KF2.js} +2 -2
- package/dist/{chunk-XKKBIFE5.js → chunk-TQUTAWUR.js} +7 -7
- package/dist/{chunk-HVXRYMGQ.js → chunk-TXWPPBIW.js} +1 -1
- package/dist/{chunk-2PSPARWP.js → chunk-TYXH3EKP.js} +4 -0
- package/dist/{chunk-FMNVTKX2.js → chunk-U3BCDVZO.js} +1 -1
- package/dist/{chunk-RJRGR5KF.js → chunk-UNOALNYO.js} +9 -9
- package/dist/{chunk-3SVC7SW4.js → chunk-V6UUZGP6.js} +7 -3
- package/dist/{chunk-LFNQDTSH.js → chunk-VYKPBRCB.js} +63 -12
- package/dist/{chunk-S22FKF6G.js → chunk-WNCGJFTZ.js} +2 -2
- package/dist/{chunk-XNDXENJQ.js → chunk-WQMTHPTK.js} +3 -3
- package/dist/{chunk-4LE27ST4.js → chunk-XQYLUY2F.js} +2 -2
- package/dist/chunk-XSEGMQYA.js +30 -0
- package/dist/{chunk-35PWWBGZ.js → chunk-YI6OBVWQ.js} +1 -1
- package/dist/{chunk-GNTVYF7E.js → chunk-YOEGUBBY.js} +5 -5
- package/dist/{chunk-FAIYEIZ4.js → chunk-YYMJEQ4D.js} +1 -1
- package/dist/{chunk-LKQS72D5.js → chunk-Z6CSYA7U.js} +1 -1
- package/dist/{chunk-XQKVEQNY.js → chunk-ZDEEHQ2Y.js} +2 -2
- package/dist/chunk-ZQMYD22O.js +215 -0
- package/dist/{clean-RLTHFTQA.js → clean-TLMZ6GVY.js} +52 -31
- package/dist/cli.js +53 -53
- package/dist/{cloud-Q5TGBTW3.js → cloud-XFIRM6YE.js} +4 -4
- package/dist/{cloudrun-4UZF74MV.js → cloudrun-OUGI5NN4.js} +6 -6
- package/dist/{compare-Q5UNR2V4.js → compare-OKSXYO3L.js} +30 -30
- package/dist/{compiler-ZXT27Z62.js → compiler-WHUQZITN.js} +6 -6
- package/dist/{component-H734P32V.js → component-3II4YXAD.js} +3 -3
- package/dist/{compositions-YEHDSTDR.js → compositions-RL75WQS6.js} +13 -13
- package/dist/{delete-LDBMPWRT.js → delete-4FM24SJ2.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-NUSNSGME.js} +4 -4
- package/dist/{doctor-XNJFIWJ7.js → doctor-Q5WYRIVP.js} +11 -11
- package/dist/{events-G6UFLNXR.js → events-CPZTSXAX.js} +2 -2
- package/dist/{events-UKCPUWMH.js → events-J5VJAKGT.js} +3 -3
- package/dist/{feedback-CK3KZ7DE.js → feedback-U64DIKAF.js} +8 -8
- package/dist/{figma-3D5C737B.js → figma-GUHWRHJO.js} +3 -3
- package/dist/fontLocalizeCli.js +12 -12
- package/dist/{get-QGTQUWFT.js → get-XDQJPF7G.js} +2 -2
- package/dist/{gpuPolicy-G5QAQDYF.js → gpuPolicy-7SIPG5BM.js} +9 -9
- package/dist/{grade-compare-XIHOM62P.js → grade-compare-WWW2F3NY.js} +30 -30
- package/dist/{gsapParserAcorn-VXZ3ZIF2.js → gsapParserAcorn-7NCK2LVT.js} +2 -2
- package/dist/{help-U5UBXT52.js → help-3UJYI7LC.js} +1 -1
- package/dist/{history-5J73QZSA.js → history-VQSM5L6N.js} +77 -205
- package/dist/hyperframe-runtime.js +4 -0
- package/dist/hyperframe.manifest.json +1 -1
- package/dist/hyperframe.runtime.iife.js +4 -0
- package/dist/hyperframes-player.global.js +1 -1
- package/dist/{info-RJHQQQUP.js → info-NMDUH7N5.js} +9 -9
- package/dist/{init-M6UQOYYC.js → init-D753VPPZ.js} +24 -24
- package/dist/{inspect-PRQWDBTP.js → inspect-KEE27DQN.js} +31 -31
- package/dist/{installer-ZL7UKYK5.js → installer-QCHUXV6E.js} +7 -7
- package/dist/{keyframes-VMUJYTCQ.js → keyframes-EP44YDZW.js} +227 -82
- package/dist/{lambda-ON42DRQD.js → lambda-Q5FTNY4J.js} +7 -7
- package/dist/{layout-QKBFVDVY.js → layout-LATG5CZV.js} +31 -31
- package/dist/{lint-ZQHHL2SV.js → lint-TQDQFJKW.js} +9 -9
- package/dist/{lintProject-3Z6OJCSO.js → lintProject-XQWXJYSC.js} +3 -3
- package/dist/{list-YBRKIWGF.js → list-O44ENRGS.js} +2 -2
- package/dist/{login-4B2YXGLB.js → login-EKFN5PZP.js} +4 -4
- package/dist/{media-treatment-5C5EJAAP.js → media-treatment-LPT4GYAE.js} +12 -12
- package/dist/{models-R7ZDWBJ6.js → models-CRYHY4KH.js} +12 -12
- package/dist/{motionShot-ZHESZNUL.js → motionShot-BS3DB666.js} +28 -15
- package/dist/{normalize-audio-EVWZVTBM.js → normalize-audio-7X445LLJ.js} +6 -6
- package/dist/{open-TV6HT4UT.js → open-JA7FN5F5.js} +4 -4
- package/dist/{parakeetRunner-YVVF4CG6.js → parakeetRunner-AFUTDANA.js} +12 -12
- package/dist/{pipeline-ETR5SEBS.js → pipeline-3TQHAQOJ.js} +9 -9
- package/dist/{play-C6WONRZV.js → play-UUJAXFCJ.js} +24 -24
- package/dist/{present-RANXTVPA.js → present-EBP6YMCJ.js} +20 -20
- package/dist/{preview-KF6UMBT2.js → preview-PVJDLZDU.js} +19 -19
- package/dist/{producer-CY2GXBWN.js → producer-HE23BPEU.js} +1 -1
- package/dist/{projectConfig-KPXCNMBM.js → projectConfig-EX35BZLA.js} +9 -9
- package/dist/{publication-Y36N4A7E.js → publication-OUGS3P7W.js} +4 -4
- package/dist/{publish-RCQJO35C.js → publish-UUFZR6QT.js} +12 -12
- package/dist/{remove-background-3ZMXVWLB.js → remove-background-P5M42CA5.js} +10 -10
- package/dist/{render-WUSTRMUD.js → render-AWFQGD4T.js} +5 -5
- package/dist/{render-PTNEFO5U.js → render-BJMONGDL.js} +10 -10
- package/dist/{render-FKVRCDT2.js → render-YSD2SRBL.js} +57 -22
- package/dist/{render-batch-AQHU2JWZ.js → render-batch-6UN3HT5A.js} +5 -5
- package/dist/renderSetupWorker.js +3 -3
- package/dist/{resolver-L5BDZJKU.js → resolver-O6ZENVYP.js} +6 -6
- package/dist/{sherpa-3S3ISG7G.js → sherpa-RWHRDO53.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-KC6IGXDU.js} +5 -5
- package/dist/{skillsUpdateCheck-UYCVHDZ6.js → skillsUpdateCheck-7C4TD7EL.js} +3 -3
- package/dist/{snapshot-YEYHQEZQ.js → snapshot-SNZL5GPC.js} +118 -41
- package/dist/{src-OLBDPEG6.js → src-KKS6QEHB.js} +11 -11
- package/dist/{src-2NN2WB6X.js → src-YMUDUVXQ.js} +8 -8
- package/dist/{staticProjectServer-7H35NMWB.js → staticProjectServer-XOCIQ3FV.js} +20 -20
- package/dist/studio/assets/{hyperframes-player-DJt8E7k4.js → hyperframes-player-Cn6V2ZaK.js} +1 -1
- package/dist/studio/assets/{index-DgbLblGR.js → index-CEGNvZnK.js} +1 -1
- package/dist/studio/assets/{index-DWIHrAY2.js → index-CaaXbGyk.js} +1 -1
- package/dist/studio/assets/{index-BGks9KLI.js → index-Cwpnr4DV.js} +132 -132
- package/dist/studio/index.html +1 -1
- package/dist/{studio-api-HGM2A5I3.js → studio-api-NUNUZQ5I.js} +30 -16
- package/dist/{studioServer-M6XFL7N6.js → studioServer-FBY3YWZH.js} +43 -43
- package/dist/{synthesize-22B7L5GX.js → synthesize-W2M7QGDV.js} +6 -5
- package/dist/{telemetry-KVCZKVTE.js → telemetry-KNSTX3E2.js} +3 -3
- package/dist/{timeline-VYYKZR4V.js → timeline-6I5LGPP6.js} +20 -20
- package/dist/{tokens-B5NFFL55.js → tokens-MY4GOQ53.js} +2 -2
- package/dist/{transcribe-SBETOIWI.js → transcribe-56WECC4Y.js} +10 -10
- package/dist/{transcribe-WNFRYZAC.js → transcribe-ISCPZLQZ.js} +16 -16
- package/dist/{tts-QSAQZVEZ.js → tts-RE227GFP.js} +1 -1
- package/dist/{updateCheck-5MM2DFUC.js → updateCheck-FAG4T4AV.js} +2 -2
- package/dist/{upgrade-LWID54R3.js → upgrade-5QCPW55B.js} +2 -2
- package/dist/{urlDownloader-CVLNXFDG.js → urlDownloader-FGSJGUM7.js} +8 -8
- package/dist/{validate-V4CGQ6OF.js → validate-WC3FUSUF.js} +25 -25
- package/dist/{video-VJB2KRSS.js → video-DOFSWSSR.js} +9 -9
- package/package.json +1 -1
- package/dist/chunk-WBLXWOYK.js +0 -15
- package/dist/{screenshotCapture-TEUIWXWN.js → screenshotCapture-3JXXUZND.js} +3 -3
|
@@ -6,7 +6,7 @@ var __filename = __hf_fileURLToPath(import.meta.url);
|
|
|
6
6
|
var __dirname = __hf_dirname(__filename);
|
|
7
7
|
import {
|
|
8
8
|
resolveProject
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-JQ57FAYN.js";
|
|
10
10
|
import "./chunk-K2FLNJVB.js";
|
|
11
11
|
import {
|
|
12
12
|
filesChangedSince,
|
|
@@ -14,8 +14,8 @@ import {
|
|
|
14
14
|
readSeen,
|
|
15
15
|
unseenTurns
|
|
16
16
|
} from "./chunk-DCAI5DBR.js";
|
|
17
|
-
import "./chunk-
|
|
18
|
-
import "./chunk-
|
|
17
|
+
import "./chunk-CBMZYOWC.js";
|
|
18
|
+
import "./chunk-AUK5QCRH.js";
|
|
19
19
|
import "./chunk-VWG7OQKU.js";
|
|
20
20
|
import "./chunk-XBSPQ52S.js";
|
|
21
21
|
import {
|
|
@@ -30,7 +30,7 @@ import "./chunk-K4WIOZFP.js";
|
|
|
30
30
|
import "./chunk-XUXGIA7H.js";
|
|
31
31
|
import "./chunk-WERLJGIC.js";
|
|
32
32
|
import "./chunk-ISN5GRYI.js";
|
|
33
|
-
import "./chunk-
|
|
33
|
+
import "./chunk-2X3UJ4Q3.js";
|
|
34
34
|
import "./chunk-EOVYQ3IG.js";
|
|
35
35
|
import "./chunk-AMKC3AXA.js";
|
|
36
36
|
import "./chunk-JYVGYKXG.js";
|
|
@@ -5,18 +5,27 @@ var require = __hf_createRequire(import.meta.url);
|
|
|
5
5
|
var __filename = __hf_fileURLToPath(import.meta.url);
|
|
6
6
|
var __dirname = __hf_dirname(__filename);
|
|
7
7
|
import {
|
|
8
|
+
pngDimensions,
|
|
8
9
|
reportArtifacts,
|
|
9
10
|
withProjectLock
|
|
10
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-57GN6KWT.js";
|
|
11
12
|
import {
|
|
13
|
+
withRemainingBudget
|
|
14
|
+
} from "./chunk-AWNBM3MZ.js";
|
|
15
|
+
import {
|
|
16
|
+
checkSnapshotDirectory,
|
|
12
17
|
rectToBbox
|
|
13
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-XSEGMQYA.js";
|
|
19
|
+
import {
|
|
20
|
+
captureArtifactRevision
|
|
21
|
+
} from "./chunk-3DMR7RF6.js";
|
|
22
|
+
import "./chunk-ZQMYD22O.js";
|
|
14
23
|
import {
|
|
15
24
|
loadProducer
|
|
16
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-5ZGSN5YK.js";
|
|
17
26
|
import {
|
|
18
27
|
trackLintRun
|
|
19
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-T2Y2WC5I.js";
|
|
20
29
|
import {
|
|
21
30
|
assertionTargets,
|
|
22
31
|
buildLayoutSampleTimes,
|
|
@@ -35,46 +44,52 @@ import {
|
|
|
35
44
|
mergeSampleTimes,
|
|
36
45
|
parseAt,
|
|
37
46
|
readMotionSpec
|
|
38
|
-
} from "./chunk-
|
|
39
|
-
import "./chunk-
|
|
47
|
+
} from "./chunk-UNOALNYO.js";
|
|
48
|
+
import "./chunk-7NKLNOHW.js";
|
|
40
49
|
import "./chunk-XUHOIDKG.js";
|
|
41
|
-
import "./chunk-
|
|
50
|
+
import "./chunk-TCJM3KF2.js";
|
|
42
51
|
import "./chunk-X7MTZ4T2.js";
|
|
43
|
-
import "./chunk-
|
|
52
|
+
import "./chunk-OIONMNWN.js";
|
|
44
53
|
import "./chunk-FH7WODJH.js";
|
|
45
|
-
import
|
|
46
|
-
|
|
54
|
+
import {
|
|
55
|
+
BrowserCleanupError,
|
|
56
|
+
closeManagedBrowser
|
|
57
|
+
} from "./chunk-KFBEMIMD.js";
|
|
58
|
+
import "./chunk-TXWPPBIW.js";
|
|
47
59
|
import "./chunk-WPNE5NEP.js";
|
|
48
|
-
import "./chunk-
|
|
49
|
-
import "./chunk-
|
|
50
|
-
import "./chunk-
|
|
51
|
-
import
|
|
52
|
-
|
|
53
|
-
|
|
60
|
+
import "./chunk-5FS4HCHN.js";
|
|
61
|
+
import "./chunk-WQMTHPTK.js";
|
|
62
|
+
import "./chunk-C6TPGUWD.js";
|
|
63
|
+
import {
|
|
64
|
+
recordArtifacts
|
|
65
|
+
} from "./chunk-7FYFEXD2.js";
|
|
66
|
+
import "./chunk-PVGDU7SE.js";
|
|
67
|
+
import "./chunk-FFDC5OWV.js";
|
|
54
68
|
import {
|
|
55
69
|
resolveProject
|
|
56
|
-
} from "./chunk-
|
|
70
|
+
} from "./chunk-JQ57FAYN.js";
|
|
57
71
|
import "./chunk-K2FLNJVB.js";
|
|
72
|
+
import "./chunk-DQBY7FRR.js";
|
|
58
73
|
import {
|
|
59
74
|
resolveLocalBrowserGpuMode
|
|
60
|
-
} from "./chunk-
|
|
75
|
+
} from "./chunk-DAKXCEE3.js";
|
|
61
76
|
import "./chunk-442JNXRM.js";
|
|
62
|
-
import "./chunk-
|
|
77
|
+
import "./chunk-YYMJEQ4D.js";
|
|
63
78
|
import "./chunk-XT7X6QCP.js";
|
|
64
79
|
import "./chunk-4YYJOFKS.js";
|
|
65
80
|
import "./chunk-HVW7ABXD.js";
|
|
66
|
-
import "./chunk-
|
|
67
|
-
import "./chunk-
|
|
68
|
-
import "./chunk-
|
|
81
|
+
import "./chunk-PXOFFSO3.js";
|
|
82
|
+
import "./chunk-HGAOO43L.js";
|
|
83
|
+
import "./chunk-2XEBNYG5.js";
|
|
69
84
|
import "./chunk-AWDFDFI3.js";
|
|
70
85
|
import "./chunk-P6LJ4Y32.js";
|
|
71
86
|
import "./chunk-GMECXFAN.js";
|
|
72
|
-
import "./chunk-
|
|
87
|
+
import "./chunk-5CS4T6C6.js";
|
|
73
88
|
import {
|
|
74
89
|
trackCheckReport,
|
|
75
90
|
trackCommandFailure
|
|
76
|
-
} from "./chunk-
|
|
77
|
-
import "./chunk-
|
|
91
|
+
} from "./chunk-CBMZYOWC.js";
|
|
92
|
+
import "./chunk-AUK5QCRH.js";
|
|
78
93
|
import "./chunk-VWG7OQKU.js";
|
|
79
94
|
import "./chunk-XBSPQ52S.js";
|
|
80
95
|
import {
|
|
@@ -98,26 +113,26 @@ import "./chunk-TJSTGSAW.js";
|
|
|
98
113
|
import "./chunk-Q5X2B5WT.js";
|
|
99
114
|
import {
|
|
100
115
|
withMeta
|
|
101
|
-
} from "./chunk-
|
|
116
|
+
} from "./chunk-YI6OBVWQ.js";
|
|
102
117
|
import "./chunk-K4WIOZFP.js";
|
|
103
118
|
import "./chunk-XUXGIA7H.js";
|
|
104
119
|
import "./chunk-WERLJGIC.js";
|
|
105
120
|
import "./chunk-ISN5GRYI.js";
|
|
106
|
-
import "./chunk-
|
|
121
|
+
import "./chunk-2X3UJ4Q3.js";
|
|
107
122
|
import "./chunk-EOVYQ3IG.js";
|
|
108
123
|
import "./chunk-AMKC3AXA.js";
|
|
109
124
|
import {
|
|
110
125
|
extractMediaMetadata,
|
|
111
126
|
findHdrAutoPromotion
|
|
112
|
-
} from "./chunk-
|
|
113
|
-
import "./chunk-
|
|
127
|
+
} from "./chunk-2F6LWCSF.js";
|
|
128
|
+
import "./chunk-V6UUZGP6.js";
|
|
114
129
|
import "./chunk-NE55C6S5.js";
|
|
115
130
|
import "./chunk-JYVGYKXG.js";
|
|
116
|
-
import "./chunk-
|
|
117
|
-
import "./chunk-
|
|
131
|
+
import "./chunk-ZDEEHQ2Y.js";
|
|
132
|
+
import "./chunk-GV7I3ZSQ.js";
|
|
118
133
|
import "./chunk-VC76R6W2.js";
|
|
119
134
|
import "./chunk-UJKQWGFF.js";
|
|
120
|
-
import "./chunk-
|
|
135
|
+
import "./chunk-VYKPBRCB.js";
|
|
121
136
|
import "./chunk-OFQWTKPW.js";
|
|
122
137
|
import "./chunk-DPVXBVLL.js";
|
|
123
138
|
import "./chunk-T76PLPD6.js";
|
|
@@ -127,16 +142,16 @@ import "./chunk-TWWSYAKJ.js";
|
|
|
127
142
|
import {
|
|
128
143
|
lintProject,
|
|
129
144
|
shouldBlockRender
|
|
130
|
-
} from "./chunk-
|
|
145
|
+
} from "./chunk-YOEGUBBY.js";
|
|
131
146
|
import {
|
|
132
147
|
resolveProjectRelativeSrc
|
|
133
148
|
} from "./chunk-IWFLMU2N.js";
|
|
134
|
-
import "./chunk-
|
|
149
|
+
import "./chunk-3VGU2SH7.js";
|
|
135
150
|
import "./chunk-VAS6HQX3.js";
|
|
136
151
|
import "./chunk-3RM2ETQT.js";
|
|
137
152
|
import "./chunk-BSQ7XANM.js";
|
|
138
153
|
import "./chunk-SDYDNHEE.js";
|
|
139
|
-
import "./chunk-
|
|
154
|
+
import "./chunk-TYXH3EKP.js";
|
|
140
155
|
import "./chunk-IXLUTE6N.js";
|
|
141
156
|
import {
|
|
142
157
|
normalizeErrorMessage
|
|
@@ -145,7 +160,100 @@ import "./chunk-3GXQPCJC.js";
|
|
|
145
160
|
import "./chunk-M2WBOQ2Q.js";
|
|
146
161
|
|
|
147
162
|
// src/commands/check.ts
|
|
148
|
-
import {
|
|
163
|
+
import { randomUUID } from "crypto";
|
|
164
|
+
import { mkdirSync as mkdirSync2, writeFileSync as writeFileSync2 } from "fs";
|
|
165
|
+
import { join as join2, resolve } from "path";
|
|
166
|
+
|
|
167
|
+
// src/utils/checkDeadline.ts
|
|
168
|
+
var CHECK_DEADLINE_MS = 12e4;
|
|
169
|
+
var SCRIPT_START = "[hyperframes:script:start] ";
|
|
170
|
+
var SCRIPT_FINISH = "[hyperframes:script:finish] ";
|
|
171
|
+
var CheckDeadlineError = class extends Error {
|
|
172
|
+
constructor(sourceFile) {
|
|
173
|
+
super(
|
|
174
|
+
sourceFile === void 0 ? "Check did not finish within its deadline." : `${sourceFile}: its script did not finish within the check deadline.`
|
|
175
|
+
);
|
|
176
|
+
this.sourceFile = sourceFile;
|
|
177
|
+
}
|
|
178
|
+
sourceFile;
|
|
179
|
+
};
|
|
180
|
+
var CheckDeadline = class {
|
|
181
|
+
abort = new AbortController();
|
|
182
|
+
operations = /* @__PURE__ */ new Set();
|
|
183
|
+
signal = this.abort.signal;
|
|
184
|
+
browsers = /* @__PURE__ */ new Set();
|
|
185
|
+
scripts = [];
|
|
186
|
+
expired;
|
|
187
|
+
timer;
|
|
188
|
+
expiry;
|
|
189
|
+
rejectExpiry;
|
|
190
|
+
phase = "waiting";
|
|
191
|
+
constructor() {
|
|
192
|
+
this.expiry = new Promise((_, reject) => {
|
|
193
|
+
this.rejectExpiry = reject;
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
start = () => {
|
|
197
|
+
if (this.phase !== "waiting") return;
|
|
198
|
+
this.phase = "started";
|
|
199
|
+
this.timer = setTimeout(() => {
|
|
200
|
+
this.expired = new CheckDeadlineError(this.scripts.at(-1));
|
|
201
|
+
this.rejectExpiry(this.expired);
|
|
202
|
+
this.abort.abort(this.expired);
|
|
203
|
+
}, CHECK_DEADLINE_MS);
|
|
204
|
+
};
|
|
205
|
+
ownBrowser = (browser) => {
|
|
206
|
+
if (this.expired) throw this.expired;
|
|
207
|
+
if (this.phase === "closed") throw new Error("Check has already finished.");
|
|
208
|
+
this.browsers.add(browser);
|
|
209
|
+
};
|
|
210
|
+
async preparePage(page) {
|
|
211
|
+
page.on("console", (message) => {
|
|
212
|
+
const text = message.text();
|
|
213
|
+
if (text.startsWith(SCRIPT_START)) this.scripts.push(text.slice(SCRIPT_START.length));
|
|
214
|
+
if (text.startsWith(SCRIPT_FINISH)) {
|
|
215
|
+
const index = this.scripts.lastIndexOf(text.slice(SCRIPT_FINISH.length));
|
|
216
|
+
if (index !== -1) this.scripts.splice(index, 1);
|
|
217
|
+
}
|
|
218
|
+
});
|
|
219
|
+
await page.evaluateOnNewDocument(
|
|
220
|
+
(start, finish) => {
|
|
221
|
+
Reflect.set(window, "__hfScriptState", (phase, source) => {
|
|
222
|
+
console.debug((phase === "start" ? start : finish) + source);
|
|
223
|
+
});
|
|
224
|
+
},
|
|
225
|
+
SCRIPT_START,
|
|
226
|
+
SCRIPT_FINISH
|
|
227
|
+
);
|
|
228
|
+
}
|
|
229
|
+
run(operation) {
|
|
230
|
+
if (this.expired) return Promise.reject(this.expired);
|
|
231
|
+
const pending = operation();
|
|
232
|
+
this.operations.add(pending);
|
|
233
|
+
return Promise.race([pending, this.expiry]);
|
|
234
|
+
}
|
|
235
|
+
async close() {
|
|
236
|
+
this.phase = "closed";
|
|
237
|
+
clearTimeout(this.timer);
|
|
238
|
+
const closes = await Promise.allSettled([...this.browsers].map(closeManagedBrowser));
|
|
239
|
+
const errors = closes.filter((entry) => entry.status === "rejected").map((entry) => entry.reason);
|
|
240
|
+
try {
|
|
241
|
+
const drained = await withRemainingBudget(
|
|
242
|
+
Promise.allSettled(this.operations),
|
|
243
|
+
1e3,
|
|
244
|
+
"draining check cleanup"
|
|
245
|
+
);
|
|
246
|
+
for (const entry of drained) {
|
|
247
|
+
if (entry.status === "rejected" && entry.reason instanceof BrowserCleanupError)
|
|
248
|
+
errors.push(entry.reason);
|
|
249
|
+
}
|
|
250
|
+
} catch (error) {
|
|
251
|
+
errors.push(error);
|
|
252
|
+
}
|
|
253
|
+
if (errors.length > 0)
|
|
254
|
+
throw new BrowserCleanupError(errors, errors.map(normalizeErrorMessage).join("; "));
|
|
255
|
+
}
|
|
256
|
+
};
|
|
149
257
|
|
|
150
258
|
// src/utils/checkPipeline.ts
|
|
151
259
|
import { mkdirSync, writeFileSync } from "fs";
|
|
@@ -153,7 +261,7 @@ import { join, relative } from "path";
|
|
|
153
261
|
|
|
154
262
|
// src/utils/hdrPromotion.ts
|
|
155
263
|
async function bundleProjectHtml(projectDir) {
|
|
156
|
-
const { bundleToSingleHtml } = await import("./compiler-
|
|
264
|
+
const { bundleToSingleHtml } = await import("./compiler-WHUQZITN.js");
|
|
157
265
|
return bundleToSingleHtml(projectDir);
|
|
158
266
|
}
|
|
159
267
|
async function collectBundledRenderMedia(html) {
|
|
@@ -1034,25 +1142,57 @@ async function runCheckPipeline(project, options, dependencies = DEFAULT_DEPENDE
|
|
|
1034
1142
|
relative(project.dir, motion.path) || "index.motion.json"
|
|
1035
1143
|
)
|
|
1036
1144
|
] : [];
|
|
1037
|
-
|
|
1145
|
+
const deadline = new CheckDeadline();
|
|
1146
|
+
let outcome;
|
|
1038
1147
|
try {
|
|
1039
|
-
browser
|
|
1148
|
+
let browser;
|
|
1149
|
+
try {
|
|
1150
|
+
browser = await deadline.run(
|
|
1151
|
+
() => dependencies.runBrowserCheck(project, options, motion, deadline)
|
|
1152
|
+
);
|
|
1153
|
+
} catch (error) {
|
|
1154
|
+
browser = emptyBrowserResult();
|
|
1155
|
+
browser.runtimeFindings.push(runtimeFailure(error));
|
|
1156
|
+
}
|
|
1157
|
+
const snapshotFiles = options.snapshots ? await writeContrastSnapshots(dependencies, project.dir, browser) : [];
|
|
1158
|
+
const report = buildReport(
|
|
1159
|
+
options,
|
|
1160
|
+
lint,
|
|
1161
|
+
browser,
|
|
1162
|
+
motion,
|
|
1163
|
+
specFindings,
|
|
1164
|
+
snapshotFiles,
|
|
1165
|
+
hdrPromotion,
|
|
1166
|
+
hdrInspection
|
|
1167
|
+
);
|
|
1168
|
+
outcome = {
|
|
1169
|
+
kind: "report",
|
|
1170
|
+
report: options.snapshots ? await withFindingCrops(dependencies, project, options, report, deadline) : report
|
|
1171
|
+
};
|
|
1040
1172
|
} catch (error) {
|
|
1041
|
-
|
|
1042
|
-
browser.runtimeFindings.push(runtimeFailure(error));
|
|
1173
|
+
outcome = { kind: "failed", error };
|
|
1043
1174
|
}
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1175
|
+
try {
|
|
1176
|
+
await deadline.close();
|
|
1177
|
+
} catch (error) {
|
|
1178
|
+
if (outcome.kind === "failed") {
|
|
1179
|
+
throw new BrowserCleanupError(
|
|
1180
|
+
[outcome.error, error],
|
|
1181
|
+
`${normalizeErrorMessage(outcome.error)}; ${normalizeErrorMessage(error)}`
|
|
1182
|
+
);
|
|
1183
|
+
}
|
|
1184
|
+
const report = outcome.report;
|
|
1185
|
+
return {
|
|
1186
|
+
...report,
|
|
1187
|
+
ok: false,
|
|
1188
|
+
runtime: section([
|
|
1189
|
+
...report.runtime.findings,
|
|
1190
|
+
runtimeFailure(error, "check_cleanup_failure")
|
|
1191
|
+
])
|
|
1192
|
+
};
|
|
1193
|
+
}
|
|
1194
|
+
if (outcome.kind === "failed") throw outcome.error;
|
|
1195
|
+
return outcome.report;
|
|
1056
1196
|
}
|
|
1057
1197
|
async function writeContrastSnapshots(dependencies, projectDir, browser) {
|
|
1058
1198
|
const files = [];
|
|
@@ -1067,13 +1207,19 @@ async function writeContrastSnapshots(dependencies, projectDir, browser) {
|
|
|
1067
1207
|
}
|
|
1068
1208
|
return files;
|
|
1069
1209
|
}
|
|
1070
|
-
async function withFindingCrops(dependencies, project, options, report) {
|
|
1210
|
+
async function withFindingCrops(dependencies, project, options, report, deadline) {
|
|
1071
1211
|
const cropRequests = selectFindingCropRequests(report);
|
|
1072
1212
|
if (cropRequests.length === 0) return report;
|
|
1073
1213
|
try {
|
|
1074
|
-
const findingFiles = await
|
|
1214
|
+
const findingFiles = await deadline.run(
|
|
1215
|
+
() => dependencies.captureFindingCrops(project, options, cropRequests, deadline)
|
|
1216
|
+
);
|
|
1075
1217
|
return { ...report, snapshots: { ...report.snapshots, findingFiles } };
|
|
1076
1218
|
} catch (error) {
|
|
1219
|
+
if (error instanceof CheckDeadlineError) {
|
|
1220
|
+
const finding = runtimeFailure(error);
|
|
1221
|
+
return { ...report, ok: false, runtime: section([...report.runtime.findings, finding]) };
|
|
1222
|
+
}
|
|
1077
1223
|
console.error(" finding crops skipped: " + normalizeErrorMessage(error));
|
|
1078
1224
|
trackCommandFailure("check-finding-crops", error);
|
|
1079
1225
|
return report;
|
|
@@ -1351,7 +1497,12 @@ function emptyBrowserResult() {
|
|
|
1351
1497
|
};
|
|
1352
1498
|
}
|
|
1353
1499
|
function runtimeFailure(error, code = "check_runtime_failure") {
|
|
1354
|
-
return findingAtRoot(
|
|
1500
|
+
return findingAtRoot(
|
|
1501
|
+
code,
|
|
1502
|
+
"error",
|
|
1503
|
+
normalizeErrorMessage(error),
|
|
1504
|
+
error instanceof CheckDeadlineError ? error.sourceFile ?? "index.html" : "index.html"
|
|
1505
|
+
);
|
|
1355
1506
|
}
|
|
1356
1507
|
function findingAtRoot(code, severity, message, sourceFile) {
|
|
1357
1508
|
return {
|
|
@@ -1389,21 +1540,21 @@ function resolveMotionSpec(projectDir) {
|
|
|
1389
1540
|
message: `Invalid motion spec ${path}: ${result.errors.join("; ")}`
|
|
1390
1541
|
};
|
|
1391
1542
|
}
|
|
1392
|
-
async function runBrowserCheck(project, options, motion) {
|
|
1393
|
-
const module = await import("./checkBrowser-
|
|
1394
|
-
return module.runBrowserCheck(project, options, motion, runAuditGrid);
|
|
1543
|
+
async function runBrowserCheck(project, options, motion, deadline) {
|
|
1544
|
+
const module = await import("./checkBrowser-73SOMDG3.js");
|
|
1545
|
+
return module.runBrowserCheck(project, options, motion, runAuditGrid, deadline);
|
|
1395
1546
|
}
|
|
1396
1547
|
async function writeSnapshot(projectDir, index, time, pngBase64) {
|
|
1397
|
-
const snapshotDir =
|
|
1548
|
+
const snapshotDir = checkSnapshotDirectory(projectDir);
|
|
1398
1549
|
mkdirSync(snapshotDir, { recursive: true });
|
|
1399
1550
|
const filename = `frame-${String(index).padStart(2, "0")}-at-${time.toFixed(1)}s.png`;
|
|
1400
1551
|
const path = join(snapshotDir, filename);
|
|
1401
1552
|
writeFileSync(path, Buffer.from(pngBase64, "base64"));
|
|
1402
|
-
return
|
|
1553
|
+
return relative(projectDir, path);
|
|
1403
1554
|
}
|
|
1404
|
-
async function captureFindingCrops(project, options, requests) {
|
|
1405
|
-
const module = await import("./checkBrowser-
|
|
1406
|
-
return module.captureFindingCrops(project, options, requests);
|
|
1555
|
+
async function captureFindingCrops(project, options, requests, deadline) {
|
|
1556
|
+
const module = await import("./checkBrowser-73SOMDG3.js");
|
|
1557
|
+
return module.captureFindingCrops(project, options, requests, deadline);
|
|
1407
1558
|
}
|
|
1408
1559
|
var DEFAULT_DEPENDENCIES2 = {
|
|
1409
1560
|
lintProject,
|
|
@@ -1424,14 +1575,85 @@ var examples = [
|
|
|
1424
1575
|
var DEFAULT_COMMAND_DEPENDENCIES = {
|
|
1425
1576
|
resolveProject,
|
|
1426
1577
|
async runPipeline(project, options) {
|
|
1578
|
+
const capture = await captureArtifactRevision(project.dir).catch(warnNotRecorded);
|
|
1427
1579
|
const report = await runCheckPipeline(project, options);
|
|
1428
1580
|
const images = (files) => files.map((file) => resolve(project.dir, file));
|
|
1429
1581
|
reportArtifacts("check", "frame", images(report.snapshots.files));
|
|
1430
1582
|
reportArtifacts("check", "finding", images(report.snapshots.findingFiles));
|
|
1431
|
-
return report;
|
|
1583
|
+
if (!capture) return report;
|
|
1584
|
+
try {
|
|
1585
|
+
return { ...report, saved: await saveCheckReport(project, options, report, capture) };
|
|
1586
|
+
} catch (error) {
|
|
1587
|
+
warnNotRecorded(error);
|
|
1588
|
+
return report;
|
|
1589
|
+
}
|
|
1432
1590
|
},
|
|
1433
1591
|
withMeta
|
|
1434
1592
|
};
|
|
1593
|
+
function warnNotRecorded(error) {
|
|
1594
|
+
console.warn(`${c.warn("\u26A0")} Check report was not recorded: ${normalizeErrorMessage(error)}`);
|
|
1595
|
+
return void 0;
|
|
1596
|
+
}
|
|
1597
|
+
async function saveCheckReport(project, options, report, capture) {
|
|
1598
|
+
const id = randomUUID();
|
|
1599
|
+
const directory = join2(project.dir, ".hyperframes", "artifacts", "checks");
|
|
1600
|
+
mkdirSync2(directory, { recursive: true });
|
|
1601
|
+
const path = join2(directory, `${id}.json`);
|
|
1602
|
+
writeFileSync2(path, JSON.stringify(report, null, 2) + "\n", { flag: "wx" });
|
|
1603
|
+
const reportScope = "scope" in report && typeof report.scope === "object" && report.scope !== null ? report.scope : void 0;
|
|
1604
|
+
const artifacts = [
|
|
1605
|
+
{
|
|
1606
|
+
kind: "check",
|
|
1607
|
+
id,
|
|
1608
|
+
scope: reportScope ? "scoped" : "project",
|
|
1609
|
+
report: resolve(path),
|
|
1610
|
+
metadata: {
|
|
1611
|
+
ok: report.ok,
|
|
1612
|
+
browserSkipped: report.browserSkipped,
|
|
1613
|
+
scope: reportScope,
|
|
1614
|
+
options
|
|
1615
|
+
}
|
|
1616
|
+
}
|
|
1617
|
+
];
|
|
1618
|
+
for (const [index, image] of report.snapshots.files.entries()) {
|
|
1619
|
+
artifacts.push({
|
|
1620
|
+
kind: "snapshot",
|
|
1621
|
+
id: `${id}-${index}`,
|
|
1622
|
+
scope: "full",
|
|
1623
|
+
image: resolve(project.dir, image),
|
|
1624
|
+
time: report.snapshots.times[index],
|
|
1625
|
+
metadata: {
|
|
1626
|
+
checkId: id,
|
|
1627
|
+
...pngDimensions(resolve(project.dir, image))
|
|
1628
|
+
}
|
|
1629
|
+
});
|
|
1630
|
+
}
|
|
1631
|
+
const crops = selectFindingCropRequests(report);
|
|
1632
|
+
for (const [index, image] of report.snapshots.findingFiles.entries()) {
|
|
1633
|
+
const crop = crops.find((request) => image.endsWith(request.filename));
|
|
1634
|
+
artifacts.push({
|
|
1635
|
+
kind: "snapshot",
|
|
1636
|
+
id: `${id}-crop-${index}`,
|
|
1637
|
+
scope: "finding",
|
|
1638
|
+
image: resolve(project.dir, image),
|
|
1639
|
+
time: crop?.time,
|
|
1640
|
+
metadata: {
|
|
1641
|
+
checkId: id,
|
|
1642
|
+
finding: crop,
|
|
1643
|
+
...pngDimensions(resolve(project.dir, image))
|
|
1644
|
+
}
|
|
1645
|
+
});
|
|
1646
|
+
}
|
|
1647
|
+
const [saved] = await recordArtifacts(project.dir, capture, artifacts);
|
|
1648
|
+
if (!saved) throw new Error("no history record was written");
|
|
1649
|
+
reportArtifacts("check", "check-report", [resolve(path)]);
|
|
1650
|
+
return {
|
|
1651
|
+
id: saved.id,
|
|
1652
|
+
revision: saved.revision,
|
|
1653
|
+
report: saved.report,
|
|
1654
|
+
attribution: saved.attribution
|
|
1655
|
+
};
|
|
1656
|
+
}
|
|
1435
1657
|
var CHECK_COMMAND_ARGS = {
|
|
1436
1658
|
dir: { type: "positional", description: "Project directory", required: false },
|
|
1437
1659
|
json: { type: "boolean", description: "Output agent-readable JSON", default: false },
|
|
@@ -1503,7 +1725,7 @@ var CHECK_COMMAND_ARGS = {
|
|
|
1503
1725
|
},
|
|
1504
1726
|
snapshots: {
|
|
1505
1727
|
type: "boolean",
|
|
1506
|
-
description: "Save
|
|
1728
|
+
description: "Save contrast-pass PNGs under .hyperframes/artifacts/snapshots/",
|
|
1507
1729
|
default: false
|
|
1508
1730
|
},
|
|
1509
1731
|
"caption-zone": {
|
|
@@ -1544,6 +1766,12 @@ function createCheckCommand(dependencies = DEFAULT_COMMAND_DEPENDENCIES) {
|
|
|
1544
1766
|
console.log(JSON.stringify(dependencies.withMeta(report), null, 2));
|
|
1545
1767
|
} else {
|
|
1546
1768
|
printHumanReport(report);
|
|
1769
|
+
if (report.saved) {
|
|
1770
|
+
console.log(`Report: ${report.saved.report}`);
|
|
1771
|
+
console.log(
|
|
1772
|
+
`Revision: ${report.saved.revision ?? "none"} (${report.saved.attribution})`
|
|
1773
|
+
);
|
|
1774
|
+
}
|
|
1547
1775
|
}
|
|
1548
1776
|
setCommandExitCode(checkExitCode(report));
|
|
1549
1777
|
} catch (error) {
|