hyperframes 0.8.152 → 0.8.154
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-SA33REHW.js → add-46UBS7QL.js} +11 -11
- package/dist/{animatedGifPrep-3YXJQZ7L.js → animatedGifPrep-IBLDIJXC.js} +5 -5
- package/dist/api.js +11 -11
- package/dist/{asset-PUVPTWPD.js → asset-GLTZ7OFE.js} +2 -2
- package/dist/{assetCataloger-VWE2PLBX.js → assetCataloger-Y3OELLLW.js} +2 -2
- package/dist/{auth-PS3M6AI7.js → auth-WGXEQVBW.js} +1 -1
- package/dist/{autoUpdate-CMO4SHWU.js → autoUpdate-N5FGARI2.js} +2 -2
- package/dist/{backgroundChecks-EDZ2A55J.js → backgroundChecks-UCVN2QVH.js} +3 -3
- package/dist/backgroundChecksWorker.js +3 -3
- package/dist/{batchRender-7PLJISCN.js → batchRender-6TD4XSIP.js} +3 -3
- package/dist/{beats-2MDSIOE7.js → beats-OMAT37Z5.js} +10 -10
- package/dist/{benchmark-KBBXAPI4.js → benchmark-ANFMTXOS.js} +8 -8
- package/dist/{browser-OMWKZRSW.js → browser-AC5JAJXI.js} +3 -3
- package/dist/{bundleWithLocalizedFonts-76DMCRIW.js → bundleWithLocalizedFonts-QX5HV7LC.js} +2 -2
- package/dist/{capture-YGDC7GN3.js → capture-MTHXUEC2.js} +15 -15
- package/dist/{capture-LRUUXH5Q.js → capture-R7QSBEPW.js} +2 -2
- package/dist/{catalog-SMEBKEVO.js → catalog-JMTV6N5Q.js} +11 -11
- package/dist/{catch-up-OMILX3WE.js → catch-up-2YOIZO5Z.js} +4 -4
- package/dist/{check-NUZ62LIW.js → check-EWAMZTRU.js} +194 -54
- package/dist/{checkBrowser-MSTVEL4V.js → checkBrowser-7BJSPWVG.js} +64 -35
- package/dist/{chunk-EXH6L2XZ.js → chunk-2F6LWCSF.js} +11 -6
- package/dist/{chunk-IZKXUYZE.js → chunk-2LLDM7EU.js} +2 -2
- package/dist/{chunk-3HPJM5IQ.js → chunk-2XEBNYG5.js} +1 -1
- package/dist/{chunk-3DZBQ7MH.js → chunk-32BQ5TTN.js} +2 -2
- package/dist/{chunk-VS732BUG.js → chunk-5DD45SJZ.js} +1 -1
- package/dist/{chunk-E6EYZ33P.js → chunk-5OKZRXLT.js} +2 -2
- package/dist/{chunk-3E4OCOC5.js → chunk-5ZGSN5YK.js} +1 -1
- package/dist/{chunk-3LO7BBJX.js → chunk-6ELTRDMB.js} +2 -2
- package/dist/{chunk-7FYFEXD2.js → chunk-6PIGOKTE.js} +23 -19
- package/dist/{chunk-LVPSWUS6.js → chunk-AA67UBB2.js} +4 -4
- package/dist/{chunk-LECTCGGS.js → chunk-BG3NFNJF.js} +1 -1
- package/dist/{chunk-EVTHG34H.js → chunk-DAKXCEE3.js} +4 -4
- package/dist/{chunk-S3RCK56N.js → chunk-GV7I3ZSQ.js} +1 -1
- package/dist/{chunk-DFXK7KUO.js → chunk-GXPD7J53.js} +7 -7
- package/dist/{chunk-6Z4YJ5Q3.js → chunk-HGAOO43L.js} +2 -2
- package/dist/{chunk-7TASSBN2.js → chunk-IPL77QF6.js} +2 -2
- package/dist/{chunk-QECEOV6W.js → chunk-J5LEAKUA.js} +1 -1
- package/dist/{chunk-IZIRIDJH.js → chunk-KC2Y6T4K.js} +2 -2
- package/dist/{chunk-4UMKAUZI.js → chunk-KFBEMIMD.js} +54 -6
- package/dist/{chunk-KCFF4ENE.js → chunk-L72IK4M5.js} +2 -2
- package/dist/{chunk-PTXZDSW5.js → chunk-M42RUIQO.js} +3 -3
- package/dist/{chunk-BYJYQWEX.js → chunk-M5SUCNGI.js} +9 -9
- package/dist/{chunk-H2SGM2V2.js → chunk-ML7TWMOG.js} +1 -1
- package/dist/{chunk-GQETH4PE.js → chunk-MTHQNLC4.js} +3 -3
- package/dist/{chunk-HBCRRCTX.js → chunk-NFXP3WIG.js} +7 -7
- package/dist/{chunk-H7FXBK3Q.js → chunk-NKYGMXH2.js} +1 -1
- package/dist/{chunk-SWCSL6WS.js → chunk-OIONMNWN.js} +18 -11
- package/dist/{chunk-ANS56TPS.js → chunk-OOZWUL7V.js} +9 -9
- package/dist/{chunk-FNN5QINS.js → chunk-OSASJLU4.js} +1 -1
- package/dist/{chunk-XINGD6MS.js → chunk-PVGDU7SE.js} +1 -1
- package/dist/{chunk-QESSGUKX.js → chunk-PXOFFSO3.js} +1 -1
- package/dist/{chunk-IEDT4EXE.js → chunk-R6WCSVCE.js} +1 -1
- package/dist/{chunk-ZTM3RMAD.js → chunk-RCWSM7IQ.js} +2 -2
- package/dist/{chunk-NHAG2KCE.js → chunk-SACJPO3O.js} +7 -7
- package/dist/{chunk-BQK3J7XO.js → chunk-TVBRW5VB.js} +1 -1
- package/dist/{chunk-PKO2EWO7.js → chunk-TXWPPBIW.js} +1 -1
- package/dist/{chunk-YYEYOFHW.js → chunk-UT6P4K3C.js} +1 -1
- package/dist/{chunk-RN5I2DP5.js → chunk-V6UUZGP6.js} +5 -1
- package/dist/{chunk-IBYC3VUA.js → chunk-VJCX5NKE.js} +1 -1
- package/dist/{chunk-5VMSUW4Z.js → chunk-WNCGJFTZ.js} +2 -2
- package/dist/{chunk-PRXAOZWZ.js → chunk-WQMTHPTK.js} +1 -1
- package/dist/{chunk-7NPSXBIN.js → chunk-XQYLUY2F.js} +1 -1
- package/dist/{chunk-D6RJXQLD.js → chunk-YYMJEQ4D.js} +1 -1
- package/dist/{chunk-MNHPG2UO.js → chunk-Z6CSYA7U.js} +1 -1
- package/dist/{chunk-KZ3L3W4Q.js → chunk-Z6DUUIZZ.js} +1 -1
- package/dist/{chunk-5ERVRJMV.js → chunk-ZDEEHQ2Y.js} +1 -1
- package/dist/{chunk-XEFFJRYX.js → chunk-ZDQH4K5E.js} +2 -2
- package/dist/{clean-F75G45BI.js → clean-42FUKXXZ.js} +12 -12
- package/dist/cli.js +53 -53
- package/dist/{cloud-KVJAOUWH.js → cloud-FIELJ5XR.js} +4 -4
- package/dist/{cloudrun-Q7Q7O4GY.js → cloudrun-OUGI5NN4.js} +3 -3
- package/dist/{compare-DGUJ4QWU.js → compare-6U4HCXIA.js} +23 -23
- package/dist/{compiler-NCN6PTVH.js → compiler-WHUQZITN.js} +2 -2
- package/dist/{component-PSYGT3JV.js → component-O72LNVJ6.js} +3 -3
- package/dist/{compositions-J3GAETIC.js → compositions-2AD2FPUW.js} +9 -9
- package/dist/{delete-MR7LRGRP.js → delete-6L4ISXBN.js} +2 -2
- package/dist/{dist-3MHXG6EJ.js → dist-NUSNSGME.js} +2 -2
- package/dist/{doctor-JOUGR5UK.js → doctor-J7I5BNOO.js} +7 -7
- package/dist/{events-FZFBJCIH.js → events-CPDLAJHK.js} +2 -2
- package/dist/{events-63BKDWVO.js → events-V4XDOOWJ.js} +3 -3
- package/dist/{feedback-QLKWUDXR.js → feedback-D4XXMW2S.js} +6 -6
- package/dist/{figma-YJ7HGVQC.js → figma-TZEJ3CGU.js} +3 -3
- package/dist/fontLocalizeCli.js +7 -7
- package/dist/{get-54MUUXMR.js → get-TX5Q3HZN.js} +2 -2
- package/dist/{gpuPolicy-5OVNR75D.js → gpuPolicy-7SIPG5BM.js} +5 -5
- package/dist/{grade-compare-7IDUF673.js → grade-compare-PUL3ROQ2.js} +23 -23
- package/dist/{help-GQFYO5LU.js → help-35WXO5ZG.js} +1 -1
- package/dist/{history-UI3O7CSO.js → history-KQR73V36.js} +7 -7
- 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-VQV3APEX.js → info-KR2BYBSK.js} +7 -7
- package/dist/{init-2UBFV5D7.js → init-LKCGZMPN.js} +20 -20
- package/dist/{inspect-36ACJ3CO.js → inspect-HQ6UJSTU.js} +24 -24
- package/dist/{installer-GDUZDJG4.js → installer-QCHUXV6E.js} +4 -4
- package/dist/{keyframes-GPBU34BG.js → keyframes-5CMO5LP7.js} +6 -6
- package/dist/{lambda-CBJVLTHY.js → lambda-Q5FTNY4J.js} +4 -4
- package/dist/{layout-2IHFV6EI.js → layout-YVV6VMQH.js} +24 -24
- package/dist/{lint-IR6IYCEO.js → lint-6OVFMUKL.js} +6 -6
- package/dist/{list-UAGKWARH.js → list-SIR427WB.js} +2 -2
- package/dist/{login-2GYCNCZF.js → login-LVUMH7FN.js} +4 -4
- package/dist/{media-treatment-Z553F7XI.js → media-treatment-QQWH6FE4.js} +8 -8
- package/dist/{models-6AZTNNSO.js → models-CRYHY4KH.js} +8 -8
- package/dist/{motionShot-ARRL7WXT.js → motionShot-DUAOT5ZP.js} +11 -11
- package/dist/{normalize-audio-CME4NUB6.js → normalize-audio-JABWBEAY.js} +4 -4
- package/dist/{open-HU2VXUFD.js → open-BJV5BHNC.js} +4 -4
- package/dist/{parakeetRunner-X5MKFMCB.js → parakeetRunner-AFUTDANA.js} +8 -8
- package/dist/{pipeline-MNFTEBJU.js → pipeline-3TQHAQOJ.js} +5 -5
- package/dist/{play-2BBJDDAZ.js → play-YFTZXUFZ.js} +17 -17
- package/dist/{present-OE2WL2NY.js → present-GXRTOXJB.js} +13 -13
- package/dist/{preview-RYSCCAWJ.js → preview-EDLAPS6D.js} +15 -15
- package/dist/{producer-SQWNRO66.js → producer-HE23BPEU.js} +1 -1
- package/dist/{projectConfig-B55Z7YKQ.js → projectConfig-EX35BZLA.js} +6 -6
- package/dist/{publication-MDZCOBJP.js → publication-OUGS3P7W.js} +2 -2
- package/dist/{publish-AILV36BO.js → publish-UUFZR6QT.js} +7 -7
- package/dist/{remove-background-6F72LKHG.js → remove-background-P5M42CA5.js} +6 -6
- package/dist/{render-6GH5FSXU.js → render-AWFQGD4T.js} +3 -3
- package/dist/{render-2MZKU3L5.js → render-LUAMJOON.js} +8 -8
- package/dist/{render-5EREH6YD.js → render-RAZDITXX.js} +21 -21
- package/dist/{render-batch-UMBUQWWS.js → render-batch-6UN3HT5A.js} +3 -3
- package/dist/{resolver-KO6WWO5P.js → resolver-O6ZENVYP.js} +4 -4
- package/dist/{sherpa-DADGYWNR.js → sherpa-RWHRDO53.js} +7 -7
- package/dist/{skills-QLKSNU4Y.js → skills-6QLIIV4T.js} +5 -5
- package/dist/{skillsUpdateCheck-Z2QQGF2W.js → skillsUpdateCheck-AO7L77FU.js} +3 -3
- package/dist/{snapshot-D5BBFXOS.js → snapshot-ZGQTC2KE.js} +26 -26
- package/dist/{src-V7263E47.js → src-KKS6QEHB.js} +6 -6
- package/dist/{src-AVQBAECC.js → src-YMUDUVXQ.js} +4 -4
- package/dist/{staticProjectServer-HNWSVEWN.js → staticProjectServer-NA2UE47H.js} +13 -13
- package/dist/studio/assets/{hyperframes-player-0BY7-PK7.js → hyperframes-player-adFY_rvU.js} +1 -1
- package/dist/studio/assets/{index-rmD5k_ES.js → index-CKiMhYE1.js} +1 -1
- package/dist/studio/assets/{index-p-VXwuJ2.js → index-Djs4U7Oa.js} +4 -4
- package/dist/studio/assets/{index-COrWdzlj.js → index-g5aCEF-7.js} +1 -1
- package/dist/studio/index.html +1 -1
- package/dist/{studio-api-UXKTDWLT.js → studio-api-4PDW26L5.js} +7 -7
- package/dist/{studioServer-JOVR24O3.js → studioServer-GXQ6IMAZ.js} +34 -34
- package/dist/{telemetry-UW7XAM5W.js → telemetry-JIC7WB64.js} +3 -3
- package/dist/{timeline-JSGTZ3AN.js → timeline-5M2WY2NL.js} +13 -13
- package/dist/{tokens-ADDBGTQ7.js → tokens-WZMTZSB5.js} +2 -2
- package/dist/{transcribe-FEHOK626.js → transcribe-56WECC4Y.js} +6 -6
- package/dist/{transcribe-P6MJGSZJ.js → transcribe-E5E7GR35.js} +12 -12
- package/dist/{tts-POI553RG.js → tts-RE227GFP.js} +1 -1
- package/dist/{updateCheck-IBWMLXQ4.js → updateCheck-WURPUXPL.js} +2 -2
- package/dist/{upgrade-NHZ7AYPO.js → upgrade-KUNE7RXE.js} +2 -2
- package/dist/{urlDownloader-ULDRBWS5.js → urlDownloader-FGSJGUM7.js} +4 -4
- package/dist/{validate-NVWNXNBV.js → validate-P6NUUTBK.js} +18 -18
- package/dist/{video-74DRD2DN.js → video-DOFSWSSR.js} +5 -5
- package/package.json +1 -1
- package/dist/{screenshotCapture-TEUIWXWN.js → screenshotCapture-3JXXUZND.js} +3 -3
- package/dist/{synthesize-MBDVUSH3.js → synthesize-W2M7QGDV.js} +4 -4
|
@@ -9,20 +9,23 @@ import {
|
|
|
9
9
|
reportArtifacts,
|
|
10
10
|
withProjectLock
|
|
11
11
|
} from "./chunk-57GN6KWT.js";
|
|
12
|
+
import {
|
|
13
|
+
withRemainingBudget
|
|
14
|
+
} from "./chunk-AWNBM3MZ.js";
|
|
12
15
|
import {
|
|
13
16
|
checkSnapshotDirectory,
|
|
14
17
|
rectToBbox
|
|
15
18
|
} from "./chunk-XSEGMQYA.js";
|
|
16
19
|
import {
|
|
17
20
|
captureArtifactRevision
|
|
18
|
-
} from "./chunk-
|
|
19
|
-
import "./chunk-
|
|
21
|
+
} from "./chunk-L72IK4M5.js";
|
|
22
|
+
import "./chunk-IPL77QF6.js";
|
|
20
23
|
import {
|
|
21
24
|
loadProducer
|
|
22
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-5ZGSN5YK.js";
|
|
23
26
|
import {
|
|
24
27
|
trackLintRun
|
|
25
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-32BQ5TTN.js";
|
|
26
29
|
import {
|
|
27
30
|
assertionTargets,
|
|
28
31
|
buildLayoutSampleTimes,
|
|
@@ -41,40 +44,43 @@ import {
|
|
|
41
44
|
mergeSampleTimes,
|
|
42
45
|
parseAt,
|
|
43
46
|
readMotionSpec
|
|
44
|
-
} from "./chunk-
|
|
45
|
-
import "./chunk-
|
|
47
|
+
} from "./chunk-M5SUCNGI.js";
|
|
48
|
+
import "./chunk-MTHQNLC4.js";
|
|
46
49
|
import "./chunk-XUHOIDKG.js";
|
|
47
|
-
import "./chunk-
|
|
50
|
+
import "./chunk-ZDQH4K5E.js";
|
|
48
51
|
import "./chunk-X7MTZ4T2.js";
|
|
49
|
-
import "./chunk-
|
|
52
|
+
import "./chunk-OIONMNWN.js";
|
|
50
53
|
import "./chunk-FH7WODJH.js";
|
|
51
|
-
import
|
|
52
|
-
|
|
54
|
+
import {
|
|
55
|
+
BrowserCleanupError,
|
|
56
|
+
closeManagedBrowser
|
|
57
|
+
} from "./chunk-KFBEMIMD.js";
|
|
58
|
+
import "./chunk-TXWPPBIW.js";
|
|
53
59
|
import "./chunk-WPNE5NEP.js";
|
|
54
|
-
import "./chunk-
|
|
55
|
-
import "./chunk-
|
|
60
|
+
import "./chunk-NFXP3WIG.js";
|
|
61
|
+
import "./chunk-WQMTHPTK.js";
|
|
56
62
|
import "./chunk-C6TPGUWD.js";
|
|
57
63
|
import {
|
|
58
64
|
recordArtifacts
|
|
59
|
-
} from "./chunk-
|
|
60
|
-
import "./chunk-
|
|
65
|
+
} from "./chunk-6PIGOKTE.js";
|
|
66
|
+
import "./chunk-PVGDU7SE.js";
|
|
61
67
|
import "./chunk-FFDC5OWV.js";
|
|
62
68
|
import {
|
|
63
69
|
resolveProject
|
|
64
|
-
} from "./chunk-
|
|
70
|
+
} from "./chunk-VJCX5NKE.js";
|
|
65
71
|
import "./chunk-K2FLNJVB.js";
|
|
66
72
|
import "./chunk-DQBY7FRR.js";
|
|
67
73
|
import {
|
|
68
74
|
resolveLocalBrowserGpuMode
|
|
69
|
-
} from "./chunk-
|
|
75
|
+
} from "./chunk-DAKXCEE3.js";
|
|
70
76
|
import "./chunk-442JNXRM.js";
|
|
71
|
-
import "./chunk-
|
|
77
|
+
import "./chunk-YYMJEQ4D.js";
|
|
72
78
|
import "./chunk-XT7X6QCP.js";
|
|
73
79
|
import "./chunk-4YYJOFKS.js";
|
|
74
80
|
import "./chunk-HVW7ABXD.js";
|
|
75
|
-
import "./chunk-
|
|
76
|
-
import "./chunk-
|
|
77
|
-
import "./chunk-
|
|
81
|
+
import "./chunk-PXOFFSO3.js";
|
|
82
|
+
import "./chunk-HGAOO43L.js";
|
|
83
|
+
import "./chunk-2XEBNYG5.js";
|
|
78
84
|
import "./chunk-AWDFDFI3.js";
|
|
79
85
|
import "./chunk-P6LJ4Y32.js";
|
|
80
86
|
import "./chunk-GMECXFAN.js";
|
|
@@ -82,8 +88,8 @@ import "./chunk-5CS4T6C6.js";
|
|
|
82
88
|
import {
|
|
83
89
|
trackCheckReport,
|
|
84
90
|
trackCommandFailure
|
|
85
|
-
} from "./chunk-
|
|
86
|
-
import "./chunk-
|
|
91
|
+
} from "./chunk-ML7TWMOG.js";
|
|
92
|
+
import "./chunk-Z6DUUIZZ.js";
|
|
87
93
|
import "./chunk-VWG7OQKU.js";
|
|
88
94
|
import "./chunk-XBSPQ52S.js";
|
|
89
95
|
import {
|
|
@@ -107,23 +113,23 @@ import "./chunk-TJSTGSAW.js";
|
|
|
107
113
|
import "./chunk-Q5X2B5WT.js";
|
|
108
114
|
import {
|
|
109
115
|
withMeta
|
|
110
|
-
} from "./chunk-
|
|
116
|
+
} from "./chunk-UT6P4K3C.js";
|
|
111
117
|
import "./chunk-K4WIOZFP.js";
|
|
112
118
|
import "./chunk-XUXGIA7H.js";
|
|
113
119
|
import "./chunk-WERLJGIC.js";
|
|
114
120
|
import "./chunk-ISN5GRYI.js";
|
|
115
|
-
import "./chunk-
|
|
121
|
+
import "./chunk-KC2Y6T4K.js";
|
|
116
122
|
import "./chunk-EOVYQ3IG.js";
|
|
117
123
|
import "./chunk-AMKC3AXA.js";
|
|
118
124
|
import {
|
|
119
125
|
extractMediaMetadata,
|
|
120
126
|
findHdrAutoPromotion
|
|
121
|
-
} from "./chunk-
|
|
122
|
-
import "./chunk-
|
|
127
|
+
} from "./chunk-2F6LWCSF.js";
|
|
128
|
+
import "./chunk-V6UUZGP6.js";
|
|
123
129
|
import "./chunk-NE55C6S5.js";
|
|
124
130
|
import "./chunk-JYVGYKXG.js";
|
|
125
|
-
import "./chunk-
|
|
126
|
-
import "./chunk-
|
|
131
|
+
import "./chunk-ZDEEHQ2Y.js";
|
|
132
|
+
import "./chunk-GV7I3ZSQ.js";
|
|
127
133
|
import "./chunk-VC76R6W2.js";
|
|
128
134
|
import "./chunk-UJKQWGFF.js";
|
|
129
135
|
import "./chunk-VYKPBRCB.js";
|
|
@@ -158,13 +164,104 @@ import { randomUUID } from "crypto";
|
|
|
158
164
|
import { mkdirSync as mkdirSync2, writeFileSync as writeFileSync2 } from "fs";
|
|
159
165
|
import { join as join2, resolve } from "path";
|
|
160
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
|
+
};
|
|
257
|
+
|
|
161
258
|
// src/utils/checkPipeline.ts
|
|
162
259
|
import { mkdirSync, writeFileSync } from "fs";
|
|
163
260
|
import { join, relative } from "path";
|
|
164
261
|
|
|
165
262
|
// src/utils/hdrPromotion.ts
|
|
166
263
|
async function bundleProjectHtml(projectDir) {
|
|
167
|
-
const { bundleToSingleHtml } = await import("./compiler-
|
|
264
|
+
const { bundleToSingleHtml } = await import("./compiler-WHUQZITN.js");
|
|
168
265
|
return bundleToSingleHtml(projectDir);
|
|
169
266
|
}
|
|
170
267
|
async function collectBundledRenderMedia(html) {
|
|
@@ -1045,25 +1142,57 @@ async function runCheckPipeline(project, options, dependencies = DEFAULT_DEPENDE
|
|
|
1045
1142
|
relative(project.dir, motion.path) || "index.motion.json"
|
|
1046
1143
|
)
|
|
1047
1144
|
] : [];
|
|
1048
|
-
|
|
1145
|
+
const deadline = new CheckDeadline();
|
|
1146
|
+
let outcome;
|
|
1049
1147
|
try {
|
|
1050
|
-
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
|
+
};
|
|
1051
1172
|
} catch (error) {
|
|
1052
|
-
|
|
1053
|
-
browser.runtimeFindings.push(runtimeFailure(error));
|
|
1173
|
+
outcome = { kind: "failed", error };
|
|
1054
1174
|
}
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
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;
|
|
1067
1196
|
}
|
|
1068
1197
|
async function writeContrastSnapshots(dependencies, projectDir, browser) {
|
|
1069
1198
|
const files = [];
|
|
@@ -1078,13 +1207,19 @@ async function writeContrastSnapshots(dependencies, projectDir, browser) {
|
|
|
1078
1207
|
}
|
|
1079
1208
|
return files;
|
|
1080
1209
|
}
|
|
1081
|
-
async function withFindingCrops(dependencies, project, options, report) {
|
|
1210
|
+
async function withFindingCrops(dependencies, project, options, report, deadline) {
|
|
1082
1211
|
const cropRequests = selectFindingCropRequests(report);
|
|
1083
1212
|
if (cropRequests.length === 0) return report;
|
|
1084
1213
|
try {
|
|
1085
|
-
const findingFiles = await
|
|
1214
|
+
const findingFiles = await deadline.run(
|
|
1215
|
+
() => dependencies.captureFindingCrops(project, options, cropRequests, deadline)
|
|
1216
|
+
);
|
|
1086
1217
|
return { ...report, snapshots: { ...report.snapshots, findingFiles } };
|
|
1087
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
|
+
}
|
|
1088
1223
|
console.error(" finding crops skipped: " + normalizeErrorMessage(error));
|
|
1089
1224
|
trackCommandFailure("check-finding-crops", error);
|
|
1090
1225
|
return report;
|
|
@@ -1362,7 +1497,12 @@ function emptyBrowserResult() {
|
|
|
1362
1497
|
};
|
|
1363
1498
|
}
|
|
1364
1499
|
function runtimeFailure(error, code = "check_runtime_failure") {
|
|
1365
|
-
return findingAtRoot(
|
|
1500
|
+
return findingAtRoot(
|
|
1501
|
+
code,
|
|
1502
|
+
"error",
|
|
1503
|
+
normalizeErrorMessage(error),
|
|
1504
|
+
error instanceof CheckDeadlineError ? error.sourceFile ?? "index.html" : "index.html"
|
|
1505
|
+
);
|
|
1366
1506
|
}
|
|
1367
1507
|
function findingAtRoot(code, severity, message, sourceFile) {
|
|
1368
1508
|
return {
|
|
@@ -1400,9 +1540,9 @@ function resolveMotionSpec(projectDir) {
|
|
|
1400
1540
|
message: `Invalid motion spec ${path}: ${result.errors.join("; ")}`
|
|
1401
1541
|
};
|
|
1402
1542
|
}
|
|
1403
|
-
async function runBrowserCheck(project, options, motion) {
|
|
1404
|
-
const module = await import("./checkBrowser-
|
|
1405
|
-
return module.runBrowserCheck(project, options, motion, runAuditGrid);
|
|
1543
|
+
async function runBrowserCheck(project, options, motion, deadline) {
|
|
1544
|
+
const module = await import("./checkBrowser-7BJSPWVG.js");
|
|
1545
|
+
return module.runBrowserCheck(project, options, motion, runAuditGrid, deadline);
|
|
1406
1546
|
}
|
|
1407
1547
|
async function writeSnapshot(projectDir, index, time, pngBase64) {
|
|
1408
1548
|
const snapshotDir = checkSnapshotDirectory(projectDir);
|
|
@@ -1412,9 +1552,9 @@ async function writeSnapshot(projectDir, index, time, pngBase64) {
|
|
|
1412
1552
|
writeFileSync(path, Buffer.from(pngBase64, "base64"));
|
|
1413
1553
|
return relative(projectDir, path);
|
|
1414
1554
|
}
|
|
1415
|
-
async function captureFindingCrops(project, options, requests) {
|
|
1416
|
-
const module = await import("./checkBrowser-
|
|
1417
|
-
return module.captureFindingCrops(project, options, requests);
|
|
1555
|
+
async function captureFindingCrops(project, options, requests, deadline) {
|
|
1556
|
+
const module = await import("./checkBrowser-7BJSPWVG.js");
|
|
1557
|
+
return module.captureFindingCrops(project, options, requests, deadline);
|
|
1418
1558
|
}
|
|
1419
1559
|
var DEFAULT_DEPENDENCIES2 = {
|
|
1420
1560
|
lintProject,
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
auditClipDurations,
|
|
9
9
|
shouldIgnoreHttpError,
|
|
10
10
|
shouldIgnoreRequestFailure
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-OOZWUL7V.js";
|
|
12
12
|
import {
|
|
13
13
|
checkSnapshotDirectory,
|
|
14
14
|
rectToBbox
|
|
@@ -16,12 +16,12 @@ import {
|
|
|
16
16
|
import {
|
|
17
17
|
ambiguousIssue,
|
|
18
18
|
loadBrowserScript
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-M5SUCNGI.js";
|
|
20
20
|
import {
|
|
21
21
|
serveStaticProjectHtml
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-MTHQNLC4.js";
|
|
23
23
|
import "./chunk-XUHOIDKG.js";
|
|
24
|
-
import "./chunk-
|
|
24
|
+
import "./chunk-ZDQH4K5E.js";
|
|
25
25
|
import "./chunk-X7MTZ4T2.js";
|
|
26
26
|
import {
|
|
27
27
|
AUDIT_SEEK_OPTIONS,
|
|
@@ -34,42 +34,45 @@ import {
|
|
|
34
34
|
resolveCliChromeGpuMode,
|
|
35
35
|
seekCompositionTimeline,
|
|
36
36
|
waitForPreferredSeekTarget
|
|
37
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-OIONMNWN.js";
|
|
38
38
|
import "./chunk-FH7WODJH.js";
|
|
39
|
-
import
|
|
40
|
-
|
|
39
|
+
import {
|
|
40
|
+
BrowserCleanupError,
|
|
41
|
+
closeManagedBrowser
|
|
42
|
+
} from "./chunk-KFBEMIMD.js";
|
|
43
|
+
import "./chunk-TXWPPBIW.js";
|
|
41
44
|
import "./chunk-WPNE5NEP.js";
|
|
42
|
-
import "./chunk-
|
|
43
|
-
import "./chunk-
|
|
45
|
+
import "./chunk-NFXP3WIG.js";
|
|
46
|
+
import "./chunk-WQMTHPTK.js";
|
|
44
47
|
import "./chunk-C6TPGUWD.js";
|
|
45
|
-
import "./chunk-
|
|
48
|
+
import "./chunk-6PIGOKTE.js";
|
|
46
49
|
import {
|
|
47
50
|
FfmpegUnavailableError,
|
|
48
51
|
decideMediaProxyEligibility,
|
|
49
52
|
proxyVariantFor,
|
|
50
53
|
resolveProxies,
|
|
51
54
|
scanProjectMediaCodecMap
|
|
52
|
-
} from "./chunk-
|
|
55
|
+
} from "./chunk-PVGDU7SE.js";
|
|
53
56
|
import "./chunk-FFDC5OWV.js";
|
|
54
|
-
import "./chunk-
|
|
57
|
+
import "./chunk-VJCX5NKE.js";
|
|
55
58
|
import "./chunk-K2FLNJVB.js";
|
|
56
|
-
import "./chunk-
|
|
59
|
+
import "./chunk-DAKXCEE3.js";
|
|
57
60
|
import "./chunk-442JNXRM.js";
|
|
58
61
|
import {
|
|
59
62
|
resolveAutoProxy
|
|
60
|
-
} from "./chunk-
|
|
63
|
+
} from "./chunk-YYMJEQ4D.js";
|
|
61
64
|
import "./chunk-XT7X6QCP.js";
|
|
62
65
|
import "./chunk-4YYJOFKS.js";
|
|
63
66
|
import "./chunk-HVW7ABXD.js";
|
|
64
|
-
import "./chunk-
|
|
65
|
-
import "./chunk-
|
|
66
|
-
import "./chunk-
|
|
67
|
+
import "./chunk-PXOFFSO3.js";
|
|
68
|
+
import "./chunk-HGAOO43L.js";
|
|
69
|
+
import "./chunk-2XEBNYG5.js";
|
|
67
70
|
import "./chunk-AWDFDFI3.js";
|
|
68
71
|
import "./chunk-P6LJ4Y32.js";
|
|
69
72
|
import "./chunk-GMECXFAN.js";
|
|
70
73
|
import "./chunk-5CS4T6C6.js";
|
|
71
|
-
import "./chunk-
|
|
72
|
-
import "./chunk-
|
|
74
|
+
import "./chunk-ML7TWMOG.js";
|
|
75
|
+
import "./chunk-Z6DUUIZZ.js";
|
|
73
76
|
import "./chunk-VWG7OQKU.js";
|
|
74
77
|
import "./chunk-XBSPQ52S.js";
|
|
75
78
|
import "./chunk-S3S4TGEH.js";
|
|
@@ -78,20 +81,20 @@ import "./chunk-PBN6GBJE.js";
|
|
|
78
81
|
import "./chunk-ZTZA4UWZ.js";
|
|
79
82
|
import "./chunk-EOOEC32M.js";
|
|
80
83
|
import "./chunk-TJSTGSAW.js";
|
|
81
|
-
import "./chunk-
|
|
84
|
+
import "./chunk-UT6P4K3C.js";
|
|
82
85
|
import "./chunk-K4WIOZFP.js";
|
|
83
86
|
import "./chunk-XUXGIA7H.js";
|
|
84
87
|
import "./chunk-WERLJGIC.js";
|
|
85
88
|
import "./chunk-ISN5GRYI.js";
|
|
86
|
-
import "./chunk-
|
|
89
|
+
import "./chunk-KC2Y6T4K.js";
|
|
87
90
|
import "./chunk-EOVYQ3IG.js";
|
|
88
91
|
import "./chunk-AMKC3AXA.js";
|
|
89
|
-
import "./chunk-
|
|
90
|
-
import "./chunk-
|
|
92
|
+
import "./chunk-2F6LWCSF.js";
|
|
93
|
+
import "./chunk-V6UUZGP6.js";
|
|
91
94
|
import "./chunk-NE55C6S5.js";
|
|
92
95
|
import "./chunk-JYVGYKXG.js";
|
|
93
|
-
import "./chunk-
|
|
94
|
-
import "./chunk-
|
|
96
|
+
import "./chunk-ZDEEHQ2Y.js";
|
|
97
|
+
import "./chunk-GV7I3ZSQ.js";
|
|
95
98
|
import "./chunk-VC76R6W2.js";
|
|
96
99
|
import "./chunk-UJKQWGFF.js";
|
|
97
100
|
import "./chunk-VYKPBRCB.js";
|
|
@@ -284,8 +287,8 @@ async function preResolveHostileMediaProxies(projectDir, html, autoProxyOverride
|
|
|
284
287
|
function proxyFailedDraft(message) {
|
|
285
288
|
return { code: "media_proxy_failed", severity: "warning", message, time: 0 };
|
|
286
289
|
}
|
|
287
|
-
async function runBrowserCheck(project, options, motion, runGrid) {
|
|
288
|
-
const { bundleWithLocalizedFonts } = await import("./bundleWithLocalizedFonts-
|
|
290
|
+
async function runBrowserCheck(project, options, motion, runGrid, deadline) {
|
|
291
|
+
const { bundleWithLocalizedFonts } = await import("./bundleWithLocalizedFonts-QX5HV7LC.js");
|
|
289
292
|
const html = await bundleWithLocalizedFonts(project.dir);
|
|
290
293
|
const { findings: drafts, failedPaths } = await preResolveHostileMediaProxies(
|
|
291
294
|
project.dir,
|
|
@@ -300,6 +303,7 @@ async function runBrowserCheck(project, options, motion, runGrid) {
|
|
|
300
303
|
options.autoProxy
|
|
301
304
|
);
|
|
302
305
|
let currentTime = 0;
|
|
306
|
+
let failure = { kind: "none" };
|
|
303
307
|
let chromeBrowser;
|
|
304
308
|
try {
|
|
305
309
|
const launchSettleStart = Date.now();
|
|
@@ -308,14 +312,20 @@ async function runBrowserCheck(project, options, motion, runGrid) {
|
|
|
308
312
|
renderReadyTimeoutMs: options.timeout,
|
|
309
313
|
renderReadyWarningSuffix: "checking the current page state",
|
|
310
314
|
browserGpuMode: options.browserGpuMode ?? resolveCliChromeGpuMode(),
|
|
311
|
-
|
|
315
|
+
signal: deadline?.signal,
|
|
316
|
+
onBrowser: deadline?.ownBrowser,
|
|
317
|
+
onBrowserReady: deadline?.start,
|
|
318
|
+
beforeNavigate: async (page2) => {
|
|
319
|
+
wireRuntimeListeners(page2, drafts, () => currentTime);
|
|
320
|
+
await deadline?.preparePage(page2);
|
|
321
|
+
}
|
|
312
322
|
});
|
|
313
323
|
chromeBrowser = session.browser;
|
|
314
324
|
const page = session.page;
|
|
315
325
|
await waitForPreferredSeekTarget(page);
|
|
316
326
|
const rootAnchor = await resolveRootAnchor(page);
|
|
317
327
|
const launchSettleMs = Date.now() - launchSettleStart;
|
|
318
|
-
const { analyzeClipMediaFit } = await import("./src-
|
|
328
|
+
const { analyzeClipMediaFit } = await import("./src-YMUDUVXQ.js");
|
|
319
329
|
for (const entry of await auditClipDurations(page, analyzeClipMediaFit, options.timeout)) {
|
|
320
330
|
drafts.push({ code: "clip_media_fit", severity: entry.level, message: entry.text, time: 0 });
|
|
321
331
|
}
|
|
@@ -336,14 +346,16 @@ async function runBrowserCheck(project, options, motion, runGrid) {
|
|
|
336
346
|
failedPaths
|
|
337
347
|
).map((draft) => runtimeFinding(draft, rootAnchor))
|
|
338
348
|
};
|
|
349
|
+
} catch (error) {
|
|
350
|
+
failure = { kind: "failed", error };
|
|
351
|
+
throw error;
|
|
339
352
|
} finally {
|
|
340
|
-
await chromeBrowser
|
|
341
|
-
await server.close();
|
|
353
|
+
await closeCheckResources(chromeBrowser, server, failure);
|
|
342
354
|
}
|
|
343
355
|
}
|
|
344
|
-
async function captureFindingCrops(project, options, requests) {
|
|
356
|
+
async function captureFindingCrops(project, options, requests, deadline) {
|
|
345
357
|
if (requests.length === 0) return [];
|
|
346
|
-
const { bundleWithLocalizedFonts } = await import("./bundleWithLocalizedFonts-
|
|
358
|
+
const { bundleWithLocalizedFonts } = await import("./bundleWithLocalizedFonts-QX5HV7LC.js");
|
|
347
359
|
const html = await bundleWithLocalizedFonts(project.dir);
|
|
348
360
|
const server = await serveStaticProjectHtml(
|
|
349
361
|
project.dir,
|
|
@@ -354,11 +366,16 @@ async function captureFindingCrops(project, options, requests) {
|
|
|
354
366
|
);
|
|
355
367
|
let chromeBrowser;
|
|
356
368
|
const written = [];
|
|
369
|
+
let failure = { kind: "none" };
|
|
357
370
|
try {
|
|
358
371
|
const session = await openSettledCompositionPage(html, server.url, {
|
|
359
372
|
navigationTimeoutMs: options.timeout,
|
|
360
373
|
renderReadyTimeoutMs: options.timeout,
|
|
361
374
|
renderReadyWarningSuffix: "capturing finding crops",
|
|
375
|
+
signal: deadline?.signal,
|
|
376
|
+
onBrowser: deadline?.ownBrowser,
|
|
377
|
+
onBrowserReady: deadline?.start,
|
|
378
|
+
beforeNavigate: (page2) => deadline?.preparePage(page2),
|
|
362
379
|
browserGpuMode: options.browserGpuMode ?? resolveCliChromeGpuMode()
|
|
363
380
|
});
|
|
364
381
|
chromeBrowser = session.browser;
|
|
@@ -378,11 +395,23 @@ async function captureFindingCrops(project, options, requests) {
|
|
|
378
395
|
written.push(join(snapshotDir, request.filename));
|
|
379
396
|
}
|
|
380
397
|
return written;
|
|
398
|
+
} catch (error) {
|
|
399
|
+
failure = { kind: "failed", error };
|
|
400
|
+
throw error;
|
|
381
401
|
} finally {
|
|
382
|
-
await chromeBrowser
|
|
383
|
-
await server.close();
|
|
402
|
+
await closeCheckResources(chromeBrowser, server, failure);
|
|
384
403
|
}
|
|
385
404
|
}
|
|
405
|
+
async function closeCheckResources(browser, server, failure) {
|
|
406
|
+
const cleanup = await Promise.allSettled([
|
|
407
|
+
browser ? closeManagedBrowser(browser) : Promise.resolve(),
|
|
408
|
+
server.close()
|
|
409
|
+
]);
|
|
410
|
+
const errors = cleanup.filter((entry) => entry.status === "rejected").map((entry) => entry.reason);
|
|
411
|
+
if (errors.length === 0) return;
|
|
412
|
+
if (failure.kind === "failed") errors.unshift(failure.error);
|
|
413
|
+
throw new BrowserCleanupError(errors, errors.map(normalizeErrorMessage).join("; "));
|
|
414
|
+
}
|
|
386
415
|
var MEDIA_PROXY_MARKER_PREFIX = "[hyperframes] runtime_media_proxy_";
|
|
387
416
|
var MEDIA_PROXY_UNAVAILABLE_MARKER = "[hyperframes] runtime_media_proxy_unavailable";
|
|
388
417
|
var WEB_AUDIO_BYPASS_MARKER = "[hyperframes] runtime_web_audio_bypass";
|
|
@@ -26,7 +26,7 @@ import {
|
|
|
26
26
|
renderFrameIdForRenderId,
|
|
27
27
|
resolveAuthoredTimingWindow,
|
|
28
28
|
toFps
|
|
29
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-ZDEEHQ2Y.js";
|
|
30
30
|
import {
|
|
31
31
|
AUDIO_GROUP_RENDER_ID_ATTR,
|
|
32
32
|
COLOR_GRADING_SOURCE_HIDDEN_ATTR,
|
|
@@ -55,7 +55,7 @@ import {
|
|
|
55
55
|
shiftRateLane,
|
|
56
56
|
sourceTimeAt,
|
|
57
57
|
timeAtSourceTime
|
|
58
|
-
} from "./chunk-
|
|
58
|
+
} from "./chunk-GV7I3ZSQ.js";
|
|
59
59
|
import {
|
|
60
60
|
clampAudioGain,
|
|
61
61
|
isAudibleVideoElement
|
|
@@ -893,7 +893,7 @@ var GPU_PROBE_TIMEOUT_MS = 15e3;
|
|
|
893
893
|
async function probeHardwareWebGlInfo(ppt, options) {
|
|
894
894
|
let probeBrowser;
|
|
895
895
|
try {
|
|
896
|
-
|
|
896
|
+
const launchOptions = {
|
|
897
897
|
...sigintLaunchOptions(),
|
|
898
898
|
headless: true,
|
|
899
899
|
args: options.args,
|
|
@@ -901,14 +901,18 @@ async function probeHardwareWebGlInfo(ppt, options) {
|
|
|
901
901
|
executablePath: options.executablePath,
|
|
902
902
|
timeout: options.browserTimeout,
|
|
903
903
|
waitForInitialPage: false
|
|
904
|
-
}
|
|
904
|
+
};
|
|
905
|
+
probeBrowser = options.probeLifecycle ? await options.probeLifecycle.launch(ppt, launchOptions) : await ppt.launch(launchOptions);
|
|
905
906
|
return await rejectAfter(
|
|
906
907
|
readWebGlInfo(probeBrowser),
|
|
907
908
|
GPU_PROBE_TIMEOUT_MS,
|
|
908
909
|
`GPU probe page did not answer within ${GPU_PROBE_TIMEOUT_MS}ms`
|
|
909
910
|
);
|
|
910
911
|
} finally {
|
|
911
|
-
if (probeBrowser)
|
|
912
|
+
if (probeBrowser) {
|
|
913
|
+
if (options.probeLifecycle) await options.probeLifecycle.close(probeBrowser);
|
|
914
|
+
else await closeBrowserAfterFailedProbe(probeBrowser);
|
|
915
|
+
}
|
|
912
916
|
}
|
|
913
917
|
}
|
|
914
918
|
async function readWebGlInfo(browser) {
|
|
@@ -1208,7 +1212,8 @@ async function probeAutoBrowserGpuMode(options) {
|
|
|
1208
1212
|
const info = await probeHardwareWebGlInfo(ppt, {
|
|
1209
1213
|
args: getHardwareGpuProbeArgs(platform),
|
|
1210
1214
|
browserTimeout,
|
|
1211
|
-
executablePath
|
|
1215
|
+
executablePath,
|
|
1216
|
+
probeLifecycle: options.probeLifecycle
|
|
1212
1217
|
});
|
|
1213
1218
|
const resolved = resolveWebGlProbeMode(info);
|
|
1214
1219
|
logResolvedBrowserGpuMode(resolved, describeWebGlProbe(info));
|
|
@@ -20,7 +20,7 @@ import {
|
|
|
20
20
|
typeDirPath,
|
|
21
21
|
updateRecord,
|
|
22
22
|
withFigmaErrors
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-BG3NFNJF.js";
|
|
24
24
|
import {
|
|
25
25
|
defineCommand
|
|
26
26
|
} from "./chunk-S3S4TGEH.js";
|
|
@@ -229,7 +229,7 @@ var asset_default = defineCommand({
|
|
|
229
229
|
rendered > 0 ? `(${results.length} nodes, ${rendered} rendered in 1 figma request)` : `(${results.length} nodes, all reused from cache \u2014 no figma request)`
|
|
230
230
|
);
|
|
231
231
|
}
|
|
232
|
-
const { trackFigmaImport } = await import("./telemetry-
|
|
232
|
+
const { trackFigmaImport } = await import("./telemetry-JIC7WB64.js");
|
|
233
233
|
trackFigmaImport({
|
|
234
234
|
phase: "asset",
|
|
235
235
|
reused: results.every((r) => r.reused),
|
|
@@ -7,10 +7,10 @@ var __dirname = __hf_dirname(__filename);
|
|
|
7
7
|
import {
|
|
8
8
|
trackLintReport,
|
|
9
9
|
trackLintRuleStreak
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-ML7TWMOG.js";
|
|
11
11
|
import {
|
|
12
12
|
shouldTrack
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-Z6DUUIZZ.js";
|
|
14
14
|
import {
|
|
15
15
|
LINT_RULE_COUNT,
|
|
16
16
|
LINT_RULE_GROUP_COUNTS
|