hyperframes 0.8.188 → 0.8.190-hdr.1
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-UORF6235.js → add-42OFT2PY.js} +11 -11
- package/dist/{animatedGifPrep-23MLSEXF.js → animatedGifPrep-ADGDO7XY.js} +5 -5
- package/dist/api.js +13 -13
- package/dist/{asset-DOKDVHCW.js → asset-O67VPO3R.js} +2 -2
- package/dist/{assetCataloger-CD27MHEY.js → assetCataloger-6XITUU4Q.js} +5 -5
- package/dist/{audio-3NMZHNNU.js → audio-XKJ3ZIDS.js} +11 -11
- package/dist/{auth-AWKTSKGC.js → auth-OQPI6LUT.js} +1 -1
- package/dist/{autoUpdate-VBOI4CNU.js → autoUpdate-A2N5A6DZ.js} +2 -2
- package/dist/{backgroundChecks-S4R454YU.js → backgroundChecks-WMA3TUHP.js} +3 -3
- package/dist/backgroundChecksWorker.js +3 -3
- package/dist/{batchRender-EGPYNDHK.js → batchRender-QZKFVWEI.js} +3 -3
- package/dist/{beats-YENEQUOA.js → beats-36HTUETR.js} +4 -4
- package/dist/{benchmark-THSJIQG7.js → benchmark-PPJOA4I5.js} +8 -8
- package/dist/{browser-BDMVQ6WJ.js → browser-ZVRJHCG5.js} +3 -3
- package/dist/{bundleWithLocalizedFonts-3QG722YD.js → bundleWithLocalizedFonts-R64YXJL5.js} +2 -2
- package/dist/{capture-Z6BGCTK3.js → capture-U7E5PPGU.js} +8 -8
- package/dist/{capture-WM4XDMFX.js → capture-YFK4OMCA.js} +2 -2
- package/dist/{captureCompositionFrame-EMHSAIBZ.js → captureCompositionFrame-DSKY6NL7.js} +11 -11
- package/dist/{catalog-7TV6UNCG.js → catalog-AYZ2KQMV.js} +11 -11
- package/dist/{catch-up-63IUDZRW.js → catch-up-EXF4BC4Z.js} +4 -4
- package/dist/{check-7RHZL4DV.js → check-4CTWFC7P.js} +34 -33
- package/dist/{checkBrowser-PF56CT5X.js → checkBrowser-JCZJGHYX.js} +29 -30
- package/dist/{chunk-5OZI55AC.js → chunk-2ICQSIZZ.js} +1 -1
- package/dist/{chunk-I7C5GUEQ.js → chunk-3B35XAD2.js} +3 -3
- package/dist/{chunk-OKSYDQHY.js → chunk-3Q5WJY5E.js} +3 -3
- package/dist/{chunk-YCW345M4.js → chunk-4BINHKAB.js} +359 -211
- package/dist/{chunk-KY7375C4.js → chunk-4TFBD773.js} +1 -1
- package/dist/{chunk-YV4WT7CJ.js → chunk-56IOFIYB.js} +12 -1
- package/dist/{chunk-46VJ2UAV.js → chunk-5XD6QAMF.js} +5 -5
- package/dist/{chunk-HKUZCSNZ.js → chunk-6HYHHMX3.js} +2 -2
- package/dist/{chunk-PQLFJYGP.js → chunk-6OJBN6P4.js} +5 -5
- package/dist/{chunk-6OWNUXTU.js → chunk-6TBDO6H6.js} +1 -1
- package/dist/{chunk-FWVILDOZ.js → chunk-7DJCW4YE.js} +3 -3
- package/dist/{chunk-NMOTNNP2.js → chunk-7KTMMDHC.js} +1 -1
- package/dist/{chunk-IA2IDJAG.js → chunk-A4WDFBHY.js} +1 -1
- package/dist/{chunk-NFLZNSUZ.js → chunk-AGUVIOZR.js} +1 -1
- package/dist/{chunk-V6NM4KL3.js → chunk-AMGFHO6X.js} +2 -2
- package/dist/{chunk-JWRT2IXO.js → chunk-ATQTK7CJ.js} +1 -1
- package/dist/{chunk-HPQSUPR7.js → chunk-AYFF3GX6.js} +1 -1
- package/dist/{chunk-W2KGJHUL.js → chunk-B7JFAXDP.js} +2 -2
- package/dist/{chunk-LWYZN7HS.js → chunk-BT64TTSE.js} +219 -79
- package/dist/{chunk-ZIRIDSDB.js → chunk-BWPY64WA.js} +1 -1
- package/dist/{chunk-44QWRPGE.js → chunk-CWRAVNDW.js} +2 -2
- package/dist/chunk-DIV37NUE.js +3896 -0
- package/dist/{chunk-57XL23DE.js → chunk-E65UJDKR.js} +1 -1
- package/dist/{chunk-MTPPEEYZ.js → chunk-E6BMTU6F.js} +16 -8
- package/dist/{chunk-LWY3PFJ7.js → chunk-EPOYPP36.js} +2 -2
- package/dist/{chunk-KDBPZOXK.js → chunk-EQXUGT5K.js} +11 -11
- package/dist/{chunk-6HYPEIH7.js → chunk-EYBS6GH2.js} +2 -2
- package/dist/{chunk-T3OXKSRG.js → chunk-EZFGQAYH.js} +2 -2
- package/dist/{chunk-FSTLXRIN.js → chunk-GWE3UEGX.js} +1 -1
- package/dist/{chunk-XPVN4R66.js → chunk-HJZ5CPZA.js} +31 -7
- package/dist/{chunk-BU4HRISA.js → chunk-ID4S5OVW.js} +91 -24
- package/dist/{chunk-GYBPAKBM.js → chunk-ILIPOK4L.js} +53 -31
- package/dist/{chunk-BWEZDN6U.js → chunk-JVG4G46L.js} +1 -1
- package/dist/{chunk-MJKUCR3C.js → chunk-KVZ4ZANT.js} +2 -2
- package/dist/{chunk-6HZ7TSJJ.js → chunk-L34DPWY4.js} +15 -11
- package/dist/{chunk-KWSEIVR6.js → chunk-LJKMM3XW.js} +1 -1
- package/dist/{chunk-L243NE72.js → chunk-O6NHRPQV.js} +7 -7
- package/dist/{chunk-2DHCCBCN.js → chunk-OAZGGUCB.js} +9 -9
- package/dist/{chunk-NFHRGHCJ.js → chunk-PFMLW2WE.js} +4 -4
- package/dist/{chunk-DA4TQFSF.js → chunk-PWEK5IYU.js} +1 -1
- package/dist/{chunk-5DPV7LU3.js → chunk-RDHEG7RX.js} +2 -2
- package/dist/{chunk-DLFAVRF3.js → chunk-SUSSMCWL.js} +1 -1
- package/dist/{chunk-YZ73IPW2.js → chunk-T6MUUXE3.js} +2 -2
- package/dist/{chunk-U6RXZNZE.js → chunk-TMBUBLZB.js} +55 -23
- package/dist/{chunk-SMF6YAUL.js → chunk-TSQAPPRS.js} +1 -1
- package/dist/{chunk-OJOZXWLC.js → chunk-U4DWSOH5.js} +3 -3
- package/dist/{chunk-JYC53CW4.js → chunk-UASUPXBJ.js} +97 -30
- package/dist/{chunk-UF6RCYA5.js → chunk-UQMPHIOA.js} +1 -1
- package/dist/{chunk-PMXR3IUH.js → chunk-UWSJL63I.js} +1 -1
- package/dist/{chunk-DG4ME554.js → chunk-UZ7RJDEC.js} +1 -1
- package/dist/{chunk-X556BGL7.js → chunk-WBUO6WH6.js} +1 -1
- package/dist/{chunk-IJYR4TTA.js → chunk-XBZEQTBH.js} +1 -1
- package/dist/{chunk-B2P4JRUJ.js → chunk-XNLYMHX2.js} +1 -1
- package/dist/{chunk-FOLMMQF3.js → chunk-XRYN74FP.js} +13 -13
- package/dist/{chunk-2WUDFZCR.js → chunk-XSDZ3H5H.js} +2 -2
- package/dist/{chunk-MXXX6WVC.js → chunk-YDGW5KWX.js} +1 -1
- package/dist/{chunk-FH7WODJH.js → chunk-ZFFKWHXN.js} +8 -0
- package/dist/{chunk-6Q5CFUAP.js → chunk-ZKWXDQAE.js} +1 -1
- package/dist/{clean-43O47OTN.js → clean-2JS7FOL5.js} +14 -14
- package/dist/cli.js +53 -53
- package/dist/{cloud-ZFWKFFSU.js → cloud-HCB6VY6B.js} +4 -4
- package/dist/{cloudrun-XBBESKEU.js → cloudrun-CTNX64R6.js} +4 -4
- package/dist/{compare-OW4ELTFZ.js → compare-ISRKIX34.js} +26 -26
- package/dist/{compiler-23MT6CX6.js → compiler-EJE3HLCS.js} +2 -2
- package/dist/{component-SDV7LWH6.js → component-ZBPQXTNP.js} +3 -3
- package/dist/{compositions-DI5QZCEK.js → compositions-WOZU3EYH.js} +9 -9
- package/dist/{delete-QY2NSQ2G.js → delete-NX3DWOKP.js} +2 -2
- package/dist/{deploy-MJVC4EFY.js → deploy-RW7L3BHN.js} +1 -1
- package/dist/{dist-RFTGYT26.js → dist-NHW2JQCA.js} +4 -2
- package/dist/{doctor-7ZOECPHR.js → doctor-KFHSQJWL.js} +9 -9
- package/dist/{events-XVQQGECC.js → events-RY3Z2CFX.js} +2 -2
- package/dist/{events-WIX4JM2K.js → events-YT6WKFUT.js} +3 -3
- package/dist/{feedback-GBYBR6UO.js → feedback-GRNEVOPP.js} +6 -6
- package/dist/{ffmpeg-QGQBYMO3.js → ffmpeg-BTEY5DB5.js} +5 -5
- package/dist/{figma-2CMKUGJQ.js → figma-WN7BLU45.js} +3 -3
- package/dist/fontLocalizeCli.js +7 -7
- package/dist/{get-RWCNUOHU.js → get-DVXYGS3H.js} +2 -2
- package/dist/{gpuPolicy-UGWSN32D.js → gpuPolicy-MWZSLJFR.js} +5 -5
- package/dist/{grade-compare-J2MX7HZL.js → grade-compare-LQXE5JYS.js} +27 -27
- package/dist/{help-SH3ID7MV.js → help-22RCD5VH.js} +1 -1
- package/dist/{history-C7V5QH7J.js → history-IF553ERO.js} +7 -7
- package/dist/hyperframe.manifest.json +1 -1
- package/dist/hyperframe.runtime.iife.js +62 -62
- package/dist/hyperframes-player.global.js +3 -3
- package/dist/{info-ZN3JJ3IN.js → info-VQGFR3XN.js} +7 -7
- package/dist/{init-KRNGSRNH.js → init-UPM6HJKO.js} +25 -25
- package/dist/{inspect-AYDZXTX7.js → inspect-S2XEY7E2.js} +27 -27
- package/dist/{installer-N6AIK6XQ.js → installer-PQKH2S7C.js} +4 -4
- package/dist/{keyframes-2RFUCEDK.js → keyframes-54Q3I2A5.js} +6 -6
- package/dist/{lambda-VW3CF6EE.js → lambda-6IGRFK3D.js} +6 -6
- package/dist/{layout-OE64APE7.js → layout-ZIE7P36K.js} +27 -27
- package/dist/{lint-UXJTX5WS.js → lint-ONB3UNVL.js} +6 -6
- package/dist/{list-KOL6JPZJ.js → list-P5VNTBT4.js} +2 -2
- package/dist/{login-MAQXOPDG.js → login-7ROFE2PP.js} +4 -4
- package/dist/{manager-3LZKRK7P.js → manager-4IBU76NA.js} +6 -6
- package/dist/{media-treatment-COLSXXQJ.js → media-treatment-GUZYPOL5.js} +11 -11
- package/dist/{models-XXWMGOD7.js → models-POH5ZYWG.js} +9 -9
- package/dist/{motionShot-RECBNTBZ.js → motionShot-TXQ7EFJW.js} +16 -16
- package/dist/{normalize-audio-LKVGHZWR.js → normalize-audio-SFFU7VUW.js} +4 -4
- package/dist/{open-UEQVSRKH.js → open-2MY4ESCL.js} +11 -11
- package/dist/{parakeetRunner-QVPCZ36U.js → parakeetRunner-7UPEE7SO.js} +10 -10
- package/dist/{pipeline-5VSMQBKW.js → pipeline-VZMOR53B.js} +6 -6
- package/dist/{play-MNEABYN4.js → play-IOELJ2NM.js} +17 -17
- package/dist/{preflight-ONJ74DWQ.js → preflight-MGUBNYUV.js} +6 -6
- package/dist/{present-GQ24GTYX.js → present-7LOVKMN7.js} +13 -13
- package/dist/{preview-ALL7O4RG.js → preview-XN7YD5ZP.js} +16 -16
- package/dist/{producer-43L2UDF6.js → producer-BLRL4SQP.js} +1 -1
- package/dist/{projectConfig-VJXUXK7U.js → projectConfig-LN3NR5OM.js} +6 -6
- package/dist/{publication-L6E5NTFV.js → publication-TXMCS4KM.js} +2 -2
- package/dist/{publish-LCLBJEPR.js → publish-57VURD7Z.js} +7 -7
- package/dist/{remove-background-PDL4KPR4.js → remove-background-OOF3QB2R.js} +7 -7
- package/dist/{render-J33ZHR6I.js → render-E27W7W3K.js} +27 -27
- package/dist/{render-OPCRLZVL.js → render-IDI4KMVH.js} +12 -12
- package/dist/{render-7HVKJ7T4.js → render-SP7WAUB4.js} +5 -5
- package/dist/{render-batch-ZHHIGXU3.js → render-batch-7ULP5RIJ.js} +5 -5
- package/dist/{resolver-KNNIMMBM.js → resolver-D3XERO6U.js} +4 -4
- package/dist/{sherpa-GI62H3H5.js → sherpa-B7HLM6FV.js} +9 -9
- package/dist/skills/hyperframes/references/motion.md +1 -1
- package/dist/{skills-IUTD6VQO.js → skills-JASL5NGP.js} +5 -5
- package/dist/{skillsUpdateCheck-XZE7MJG6.js → skillsUpdateCheck-OTF363HZ.js} +3 -3
- package/dist/{snapshot-XEXTHLZP.js → snapshot-MWBENTZA.js} +31 -31
- package/dist/{src-ZPIV4PGX.js → src-65S55XOQ.js} +6 -4
- package/dist/{src-6STRGCDC.js → src-OGTPL3Q6.js} +6 -6
- package/dist/{staticProjectServer-HJLT7MHE.js → staticProjectServer-JMFGTPMX.js} +15 -13
- package/dist/studio/assets/{hyperframes-player-DwWIKKZG.js → hyperframes-player-BV6dTpsG.js} +1 -1
- package/dist/studio/assets/{index-CESvLzz0.css → index-B3vk3hfU.css} +1 -1
- package/dist/studio/assets/{index-Cjwz7_13.js → index-CPVUyhno.js} +1 -1
- package/dist/studio/assets/{index-M8lEpS0Q.js → index-Ct_WfjBH.js} +127 -127
- package/dist/studio/index.html +2 -2
- package/dist/{studio-api-OBHEB5ND.js → studio-api-SZ4OMFPN.js} +7 -7
- package/dist/{studioServer-KRIZFYML.js → studioServer-6JDUXBF7.js} +44 -44
- package/dist/{telemetry-N5OOVBCP.js → telemetry-R7QKFTNL.js} +3 -3
- package/dist/{timeline-YUFH65OG.js → timeline-GTUWGREV.js} +15 -15
- package/dist/{tokens-K4VYLSWJ.js → tokens-2JZSWS5F.js} +2 -2
- package/dist/{transcribe-CY4CVO54.js → transcribe-M7OSQ5OU.js} +14 -14
- package/dist/{transcribe-GMQXKDYN.js → transcribe-PSZC4HH6.js} +8 -8
- package/dist/{updateCheck-2625RXK4.js → updateCheck-Y4MKTYXE.js} +2 -2
- package/dist/{upgrade-6ZY5MSBQ.js → upgrade-WHEHL2KG.js} +2 -2
- package/dist/{urlDownloader-PVJWG7V3.js → urlDownloader-VN2X7CIY.js} +4 -4
- package/dist/{validate-XSRHEE7E.js → validate-TC66RN5I.js} +21 -21
- package/dist/{video-MBFHC54F.js → video-SNGPARSX.js} +5 -5
- package/dist/warmCheck.js +34 -35
- package/package.json +1 -1
- package/dist/chunk-BPX7LZG6.js +0 -3896
- package/dist/chunk-KANNRHY7.js +0 -53
|
@@ -6,7 +6,7 @@ var __filename = __hf_fileURLToPath(import.meta.url);
|
|
|
6
6
|
var __dirname = __hf_dirname(__filename);
|
|
7
7
|
import {
|
|
8
8
|
VERSION
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-EYBS6GH2.js";
|
|
10
10
|
|
|
11
11
|
// src/registry/compatibility.ts
|
|
12
12
|
import { compareVersions } from "compare-versions";
|
|
@@ -6,7 +6,7 @@ var __filename = __hf_fileURLToPath(import.meta.url);
|
|
|
6
6
|
var __dirname = __hf_dirname(__filename);
|
|
7
7
|
import {
|
|
8
8
|
readCompositionFps
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-XNLYMHX2.js";
|
|
10
10
|
import {
|
|
11
11
|
errorBox
|
|
12
12
|
} from "./chunk-K2FLNJVB.js";
|
|
@@ -16,10 +16,10 @@ import {
|
|
|
16
16
|
import {
|
|
17
17
|
DEFAULT_CONFIG,
|
|
18
18
|
resolvePageNavigationTimeout
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-4BINHKAB.js";
|
|
20
20
|
import {
|
|
21
21
|
parseFps
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-56IOFIYB.js";
|
|
23
23
|
|
|
24
24
|
// src/browser/windowsCrash.ts
|
|
25
25
|
var STATUS_STACK_BUFFER_OVERRUN_DEC = "3221225595";
|
|
@@ -43,8 +43,8 @@ function windowsChromeCrashRemediation(errorMessage) {
|
|
|
43
43
|
}
|
|
44
44
|
|
|
45
45
|
// src/utils/renderArgs.ts
|
|
46
|
-
import { readFileSync } from "fs";
|
|
47
|
-
import { resolve, sep } from "path";
|
|
46
|
+
import { readFileSync, realpathSync } from "fs";
|
|
47
|
+
import { isAbsolute, relative, resolve, sep } from "path";
|
|
48
48
|
var MIN_PAGE_NAVIGATION_TIMEOUT_MS = 1;
|
|
49
49
|
var MAX_PAGE_NAVIGATION_TIMEOUT_SECONDS = 86400;
|
|
50
50
|
function parseBrowserTimeoutMsArg(raw) {
|
|
@@ -113,12 +113,13 @@ function normalizeCompositionEntryArg(raw) {
|
|
|
113
113
|
function hasExplicitCompositionArg(raw) {
|
|
114
114
|
return normalizeCompositionEntryArg(raw) !== void 0;
|
|
115
115
|
}
|
|
116
|
-
function parseCompositionEntryArg(raw, projectDir, stat) {
|
|
116
|
+
function parseCompositionEntryArg(raw, projectDir, stat, real = realpathOrSame) {
|
|
117
117
|
const trimmed = normalizeCompositionEntryArg(raw);
|
|
118
118
|
if (!trimmed) return { ok: true, value: void 0 };
|
|
119
119
|
const absProjectDir = resolve(projectDir);
|
|
120
120
|
const entryPath = resolve(absProjectDir, trimmed);
|
|
121
|
-
|
|
121
|
+
const relativeEntry = [absProjectDir, real(absProjectDir)].flatMap((root) => [entryPath, real(entryPath)].map((path) => relative(root, path))).find((rel) => rel !== ".." && !rel.startsWith(`..${sep}`) && !isAbsolute(rel));
|
|
122
|
+
if (relativeEntry === void 0) {
|
|
122
123
|
return { ok: false, error: { kind: "outside-project", entryFile: trimmed } };
|
|
123
124
|
}
|
|
124
125
|
let entryStat;
|
|
@@ -130,7 +131,14 @@ function parseCompositionEntryArg(raw, projectDir, stat) {
|
|
|
130
131
|
if (!entryStat.isFile()) {
|
|
131
132
|
return { ok: false, error: { kind: "not-a-file", entryFile: trimmed } };
|
|
132
133
|
}
|
|
133
|
-
return { ok: true, value:
|
|
134
|
+
return { ok: true, value: relativeEntry.split(sep).join("/") };
|
|
135
|
+
}
|
|
136
|
+
function realpathOrSame(path) {
|
|
137
|
+
try {
|
|
138
|
+
return realpathSync(path);
|
|
139
|
+
} catch {
|
|
140
|
+
return path;
|
|
141
|
+
}
|
|
134
142
|
}
|
|
135
143
|
function compositionEntryErrorMessage(error) {
|
|
136
144
|
switch (error.kind) {
|
|
@@ -6,10 +6,10 @@ var __filename = __hf_fileURLToPath(import.meta.url);
|
|
|
6
6
|
var __dirname = __hf_dirname(__filename);
|
|
7
7
|
import {
|
|
8
8
|
getMimeType
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-L34DPWY4.js";
|
|
10
10
|
import {
|
|
11
11
|
injectTagsAtHeadStart
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-DIV37NUE.js";
|
|
13
13
|
|
|
14
14
|
// src/utils/compositionServer.ts
|
|
15
15
|
import { createHash } from "crypto";
|
|
@@ -4,35 +4,35 @@ import { dirname as __hf_dirname } from "node:path";
|
|
|
4
4
|
var require = __hf_createRequire(import.meta.url);
|
|
5
5
|
var __filename = __hf_fileURLToPath(import.meta.url);
|
|
6
6
|
var __dirname = __hf_dirname(__filename);
|
|
7
|
-
import {
|
|
8
|
-
resolveCompositionViewportFromHtml
|
|
9
|
-
} from "./chunk-FH7WODJH.js";
|
|
10
7
|
import {
|
|
11
8
|
launchManagedBrowser,
|
|
12
9
|
resolveManagedGpuMode,
|
|
13
10
|
rethrowAfterBrowserCleanup
|
|
14
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-YDGW5KWX.js";
|
|
15
12
|
import {
|
|
16
13
|
gotoWhenSent
|
|
17
14
|
} from "./chunk-MOEGCMKI.js";
|
|
18
15
|
import {
|
|
19
16
|
pageNavigationTimeoutMs,
|
|
20
17
|
windowsChromeCrashRemediation
|
|
21
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-E6BMTU6F.js";
|
|
22
19
|
import {
|
|
23
20
|
oneProcessOverPipe
|
|
24
21
|
} from "./chunk-DKPNNYBZ.js";
|
|
22
|
+
import {
|
|
23
|
+
resolveCompositionViewportFromHtml
|
|
24
|
+
} from "./chunk-ZFFKWHXN.js";
|
|
25
25
|
import {
|
|
26
26
|
resolveLocalBrowserGpuMode,
|
|
27
27
|
resolveLocalWebGpu
|
|
28
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-EZFGQAYH.js";
|
|
29
29
|
import {
|
|
30
30
|
c
|
|
31
31
|
} from "./chunk-ZTZA4UWZ.js";
|
|
32
32
|
import {
|
|
33
33
|
assertWebGpuAdapterAvailable,
|
|
34
34
|
compositionRequiresWebGpu
|
|
35
|
-
} from "./chunk-
|
|
35
|
+
} from "./chunk-4BINHKAB.js";
|
|
36
36
|
import {
|
|
37
37
|
normalizeErrorMessage
|
|
38
38
|
} from "./chunk-KNU5COPB.js";
|
|
@@ -138,7 +138,7 @@ async function waitForCompositionSettle(page, options) {
|
|
|
138
138
|
console.warn(` ${c.warn("\u26A0")} Shader transitions did not finish pre-rendering`);
|
|
139
139
|
});
|
|
140
140
|
await waitForLateSubresources(page, options.lateSubresourceTimeoutMs ?? CAPTURE_SETTLE_MS);
|
|
141
|
-
const { resolveConfig, waitForImagesReady } = await import("./src-
|
|
141
|
+
const { resolveConfig, waitForImagesReady } = await import("./src-65S55XOQ.js");
|
|
142
142
|
const imageTimeoutMs = resolveConfig().playerReadyTimeout;
|
|
143
143
|
await waitForImagesReady(
|
|
144
144
|
page,
|
|
@@ -187,7 +187,7 @@ async function installPageFunctionGuard(page) {
|
|
|
187
187
|
async function openSettledCompositionPage(html, url, options) {
|
|
188
188
|
const viewport = resolveCompositionViewportFromHtml(html);
|
|
189
189
|
const requiresWebGpu = compositionRequiresWebGpu(html);
|
|
190
|
-
const answer = (await import("./staticProjectServer-
|
|
190
|
+
const answer = (await import("./staticProjectServer-JMFGTPMX.js")).inProcessAnswer(url);
|
|
191
191
|
const noListen = answer !== void 0;
|
|
192
192
|
let chromeBrowser;
|
|
193
193
|
try {
|
|
@@ -198,7 +198,7 @@ async function openSettledCompositionPage(html, url, options) {
|
|
|
198
198
|
options.onBrowserReady?.();
|
|
199
199
|
const page = await chromeBrowser.newPage();
|
|
200
200
|
await installPageFunctionGuard(page);
|
|
201
|
-
const { installMediaRenderIdBridge } = await import("./src-
|
|
201
|
+
const { installMediaRenderIdBridge } = await import("./src-65S55XOQ.js");
|
|
202
202
|
await installMediaRenderIdBridge(page);
|
|
203
203
|
await page.setViewport(viewport);
|
|
204
204
|
if (answer) await answerPageInProcess(page, url, answer);
|
|
@@ -217,7 +217,7 @@ async function launchCompositionBrowser(html, noListen, options) {
|
|
|
217
217
|
const { ensureBrowser, findSystemBrowser } = await import("./manager-UHWEKPXC.js");
|
|
218
218
|
const browser = await ensureBrowser({ signal: options.signal });
|
|
219
219
|
const puppeteer = await import("puppeteer-core");
|
|
220
|
-
const { buildChromeArgs } = await import("./src-
|
|
220
|
+
const { buildChromeArgs } = await import("./src-65S55XOQ.js");
|
|
221
221
|
const requestedGpuMode = options.browserGpuMode ?? resolveCliChromeGpuMode();
|
|
222
222
|
const requiresWebGpu = compositionRequiresWebGpu(html);
|
|
223
223
|
let softwareWebGpu = false;
|
|
@@ -6,8 +6,8 @@ var __filename = __hf_fileURLToPath(import.meta.url);
|
|
|
6
6
|
var __dirname = __hf_dirname(__filename);
|
|
7
7
|
|
|
8
8
|
// src/version.ts
|
|
9
|
-
var VERSION = true ? "0.8.
|
|
10
|
-
var PRODUCER_VERSION = true ? "0.8.
|
|
9
|
+
var VERSION = true ? "0.8.190-hdr.1" : "0.0.0-dev";
|
|
10
|
+
var PRODUCER_VERSION = true ? "0.8.190-hdr.1" : "0.0.0-dev";
|
|
11
11
|
|
|
12
12
|
export {
|
|
13
13
|
VERSION,
|
|
@@ -7,7 +7,7 @@ var __dirname = __hf_dirname(__filename);
|
|
|
7
7
|
import {
|
|
8
8
|
resolveConfig,
|
|
9
9
|
usesSoftwareWebGpu
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-4BINHKAB.js";
|
|
11
11
|
|
|
12
12
|
// src/browser/gpuPolicy.ts
|
|
13
13
|
function resolveLocalBrowserGpuMode(browserGpuArg, envMode = process.env.PRODUCER_BROWSER_GPU_MODE) {
|
|
@@ -17,7 +17,7 @@ function resolveLocalBrowserGpuMode(browserGpuArg, envMode = process.env.PRODUCE
|
|
|
17
17
|
return "auto";
|
|
18
18
|
}
|
|
19
19
|
async function resolveCaptureBrowserGpuMode(requestedMode, chromePath, probeLifecycle) {
|
|
20
|
-
const { resolveBrowserGpuMode } = await import("./src-
|
|
20
|
+
const { resolveBrowserGpuMode } = await import("./src-65S55XOQ.js");
|
|
21
21
|
return resolveBrowserGpuMode(requestedMode, { chromePath, probeLifecycle });
|
|
22
22
|
}
|
|
23
23
|
function resolveLocalWebGpu(browserGpuMode, requiresWebGpu) {
|
|
@@ -7,7 +7,7 @@ var __dirname = __hf_dirname(__filename);
|
|
|
7
7
|
import {
|
|
8
8
|
getMimeType,
|
|
9
9
|
injectMediaCodecMapIntoHtml
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-L34DPWY4.js";
|
|
11
11
|
import {
|
|
12
12
|
PROXY_VARIANT_CONFIG,
|
|
13
13
|
ProxyCapacityError,
|
|
@@ -18,10 +18,17 @@ import {
|
|
|
18
18
|
recordProxyRequest,
|
|
19
19
|
resolveProxy,
|
|
20
20
|
resolveProxyVariantRequest
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-BT64TTSE.js";
|
|
22
|
+
import {
|
|
23
|
+
findStageProxyBox
|
|
24
|
+
} from "./chunk-ZFFKWHXN.js";
|
|
22
25
|
import {
|
|
23
26
|
resolveAutoProxy
|
|
24
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-UZ7RJDEC.js";
|
|
28
|
+
import {
|
|
29
|
+
PREVIEW_PROXY_BOX_PARAM,
|
|
30
|
+
parsePreviewProxyBox
|
|
31
|
+
} from "./chunk-56IOFIYB.js";
|
|
25
32
|
import {
|
|
26
33
|
decodeWellFormedEscapes
|
|
27
34
|
} from "./chunk-BSQ7XANM.js";
|
|
@@ -141,7 +148,7 @@ function writeProxyError(err, res) {
|
|
|
141
148
|
res.writeHead(500);
|
|
142
149
|
res.end();
|
|
143
150
|
}
|
|
144
|
-
async function serveProxyRequest(projectDir, filePath, request, autoProxy, rangeHeader, res, signal) {
|
|
151
|
+
async function serveProxyRequest(projectDir, filePath, request, box, autoProxy, rangeHeader, res, signal) {
|
|
145
152
|
const contentType = getMimeType(filePath);
|
|
146
153
|
if (!autoProxy || !contentType.startsWith("video/")) {
|
|
147
154
|
res.writeHead(404);
|
|
@@ -168,7 +175,7 @@ async function serveProxyRequest(projectDir, filePath, request, autoProxy, range
|
|
|
168
175
|
return;
|
|
169
176
|
}
|
|
170
177
|
recordProxyRequest();
|
|
171
|
-
const proxyPath = await resolveProxy(projectDir, filePath, variant,
|
|
178
|
+
const proxyPath = await resolveProxy(projectDir, filePath, variant, box, { signal });
|
|
172
179
|
if (res.writableEnded || res.destroyed) return;
|
|
173
180
|
serveFileWithRange(proxyPath, rangeHeader, res, PROXY_VARIANT_CONFIG[variant].contentType);
|
|
174
181
|
} catch (err) {
|
|
@@ -179,7 +186,15 @@ async function serveStaticProjectHtml(projectDir, html, bindErrorMessage = "Fail
|
|
|
179
186
|
const roots = [projectDir, ...assetRoots];
|
|
180
187
|
const autoProxy = resolveAutoProxy(projectDir, autoProxyOverride);
|
|
181
188
|
const copies = new AbortController();
|
|
182
|
-
const servedHtml = autoProxy ? await injectMediaCodecMapIntoHtml(
|
|
189
|
+
const servedHtml = autoProxy ? await injectMediaCodecMapIntoHtml(
|
|
190
|
+
html,
|
|
191
|
+
projectDir,
|
|
192
|
+
[{ html }],
|
|
193
|
+
void 0,
|
|
194
|
+
true,
|
|
195
|
+
copies.signal,
|
|
196
|
+
findStageProxyBox(html)
|
|
197
|
+
) : html;
|
|
183
198
|
const server = createServer((req, res) => {
|
|
184
199
|
const url = req.url ?? "/";
|
|
185
200
|
if (url === "/" || url === "/index.html") {
|
|
@@ -189,8 +204,16 @@ async function serveStaticProjectHtml(projectDir, html, bindErrorMessage = "Fail
|
|
|
189
204
|
}
|
|
190
205
|
const queryIndex = url.indexOf("?");
|
|
191
206
|
const pathOnly = queryIndex === -1 ? url : url.slice(0, queryIndex);
|
|
192
|
-
const
|
|
207
|
+
const query = new URLSearchParams(queryIndex === -1 ? "" : url.slice(queryIndex + 1));
|
|
208
|
+
const proxyParam = query.get("hf-proxy");
|
|
193
209
|
const proxyRequest = proxyParam !== null && isProxyVariantRequest(proxyParam) ? proxyParam : null;
|
|
210
|
+
const boxParam = query.get(PREVIEW_PROXY_BOX_PARAM);
|
|
211
|
+
const proxyBox = boxParam === null ? void 0 : parsePreviewProxyBox(boxParam);
|
|
212
|
+
if (proxyBox === null || proxyBox && !proxyRequest) {
|
|
213
|
+
res.writeHead(404);
|
|
214
|
+
res.end();
|
|
215
|
+
return;
|
|
216
|
+
}
|
|
194
217
|
const requestPath = decodeWellFormedEscapes(pathOnly).replace(/^\//, "");
|
|
195
218
|
for (const root of roots) {
|
|
196
219
|
const filePath = resolve(root, requestPath);
|
|
@@ -202,6 +225,7 @@ async function serveStaticProjectHtml(projectDir, html, bindErrorMessage = "Fail
|
|
|
202
225
|
projectDir,
|
|
203
226
|
filePath,
|
|
204
227
|
proxyRequest,
|
|
228
|
+
proxyBox,
|
|
205
229
|
autoProxy,
|
|
206
230
|
req.headers.range,
|
|
207
231
|
res,
|
|
@@ -11,19 +11,20 @@ import {
|
|
|
11
11
|
} from "./chunk-57GN6KWT.js";
|
|
12
12
|
import {
|
|
13
13
|
captureArtifactRevision
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-KVZ4ZANT.js";
|
|
15
15
|
import {
|
|
16
16
|
loadProducer
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-XBZEQTBH.js";
|
|
18
18
|
import {
|
|
19
19
|
trackLintRun
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-AMGFHO6X.js";
|
|
21
21
|
import {
|
|
22
22
|
beginCheckSnapshots,
|
|
23
23
|
checkSnapshotDirectory,
|
|
24
24
|
finishCheckSnapshots,
|
|
25
|
+
preResolveHostileMediaProxies,
|
|
25
26
|
rectToBbox
|
|
26
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-UASUPXBJ.js";
|
|
27
28
|
import {
|
|
28
29
|
CONTENT_OVERLAP_HELD_ERROR_MS,
|
|
29
30
|
DEFAULT_MAX_STATIC_SEC,
|
|
@@ -46,27 +47,27 @@ import {
|
|
|
46
47
|
mergeSampleTimes,
|
|
47
48
|
parseAt,
|
|
48
49
|
readMotionSpec
|
|
49
|
-
} from "./chunk-
|
|
50
|
+
} from "./chunk-OAZGGUCB.js";
|
|
50
51
|
import {
|
|
51
52
|
resolveProject
|
|
52
|
-
} from "./chunk-
|
|
53
|
+
} from "./chunk-GWE3UEGX.js";
|
|
53
54
|
import {
|
|
54
55
|
recordArtifacts
|
|
55
|
-
} from "./chunk-
|
|
56
|
+
} from "./chunk-TMBUBLZB.js";
|
|
56
57
|
import {
|
|
57
58
|
BrowserCleanupError,
|
|
58
59
|
closeManagedBrowser
|
|
59
|
-
} from "./chunk-
|
|
60
|
+
} from "./chunk-YDGW5KWX.js";
|
|
60
61
|
import {
|
|
61
62
|
withRemainingBudget
|
|
62
63
|
} from "./chunk-EHSBBBR2.js";
|
|
63
64
|
import {
|
|
64
65
|
resolveLocalBrowserGpuMode
|
|
65
|
-
} from "./chunk-
|
|
66
|
+
} from "./chunk-EZFGQAYH.js";
|
|
66
67
|
import {
|
|
67
68
|
trackCheckReport,
|
|
68
69
|
trackCommandFailure
|
|
69
|
-
} from "./chunk-
|
|
70
|
+
} from "./chunk-ZKWXDQAE.js";
|
|
70
71
|
import {
|
|
71
72
|
swallowedFlagUsageError
|
|
72
73
|
} from "./chunk-HTIUNMTP.js";
|
|
@@ -86,7 +87,7 @@ import {
|
|
|
86
87
|
import {
|
|
87
88
|
extractMediaMetadata,
|
|
88
89
|
findHdrAutoPromotion
|
|
89
|
-
} from "./chunk-
|
|
90
|
+
} from "./chunk-4BINHKAB.js";
|
|
90
91
|
import {
|
|
91
92
|
lintProject,
|
|
92
93
|
shouldBlockRender
|
|
@@ -96,7 +97,7 @@ import {
|
|
|
96
97
|
} from "./chunk-6BNTGNGD.js";
|
|
97
98
|
import {
|
|
98
99
|
withMeta
|
|
99
|
-
} from "./chunk-
|
|
100
|
+
} from "./chunk-LJKMM3XW.js";
|
|
100
101
|
import {
|
|
101
102
|
normalizeErrorMessage
|
|
102
103
|
} from "./chunk-KNU5COPB.js";
|
|
@@ -107,7 +108,7 @@ import { mkdirSync as mkdirSync2, writeFileSync as writeFileSync2 } from "fs";
|
|
|
107
108
|
import { join as join2, resolve } from "path";
|
|
108
109
|
|
|
109
110
|
// src/utils/checkDeadline.ts
|
|
110
|
-
var
|
|
111
|
+
var CHECK_IDLE_MS = 12e4;
|
|
111
112
|
var SCRIPT_START = "[hyperframes:script:start] ";
|
|
112
113
|
var SCRIPT_FINISH = "[hyperframes:script:finish] ";
|
|
113
114
|
var PHASE_LABELS = {
|
|
@@ -153,6 +154,7 @@ var CheckDeadline = class {
|
|
|
153
154
|
if (this.work) this.spend(this.work.phase, now - this.work.since);
|
|
154
155
|
this.work = { phase, since: now };
|
|
155
156
|
this.spend(phase, 0);
|
|
157
|
+
this.rearm();
|
|
156
158
|
};
|
|
157
159
|
spend(phase, ms) {
|
|
158
160
|
this.spent.set(phase, (this.spent.get(phase) ?? 0) + ms);
|
|
@@ -164,18 +166,22 @@ var CheckDeadline = class {
|
|
|
164
166
|
const seconds2 = ((phase === this.work?.phase ? ms + open : ms) / 1e3).toFixed(1);
|
|
165
167
|
return `${PHASE_LABELS[phase]} ${seconds2}${BEFORE_DEADLINE.has(phase) ? " (before the deadline)" : ""}`;
|
|
166
168
|
});
|
|
167
|
-
return ` (${
|
|
169
|
+
return ` (no progress for ${CHECK_IDLE_MS / 1e3} s after Chrome was ready), while ${PHASE_LABELS[this.work.phase]}. Seconds per phase: ${parts.join(", ")}.`;
|
|
168
170
|
}
|
|
169
171
|
start = () => {
|
|
170
172
|
if (this.phase !== "waiting") return;
|
|
171
173
|
this.phase = "started";
|
|
172
174
|
this.enter("load");
|
|
175
|
+
};
|
|
176
|
+
rearm() {
|
|
177
|
+
if (this.phase !== "started" || this.expired) return;
|
|
178
|
+
clearTimeout(this.timer);
|
|
173
179
|
this.timer = setTimeout(() => {
|
|
174
180
|
this.expired = new CheckDeadlineError(this.scripts.at(-1), this.describe());
|
|
175
181
|
this.rejectExpiry(this.expired);
|
|
176
182
|
this.abort.abort(this.expired);
|
|
177
|
-
},
|
|
178
|
-
}
|
|
183
|
+
}, CHECK_IDLE_MS);
|
|
184
|
+
}
|
|
179
185
|
ownBrowser = (browser) => {
|
|
180
186
|
if (this.expired) throw this.expired;
|
|
181
187
|
if (this.phase === "closed") throw new Error("Check has already finished.");
|
|
@@ -204,6 +210,8 @@ var CheckDeadline = class {
|
|
|
204
210
|
if (this.expired) return Promise.reject(this.expired);
|
|
205
211
|
const pending = operation();
|
|
206
212
|
this.operations.add(pending);
|
|
213
|
+
const settled = () => this.rearm();
|
|
214
|
+
pending.then(settled, settled);
|
|
207
215
|
return Promise.race([pending, this.expiry]);
|
|
208
216
|
}
|
|
209
217
|
async close() {
|
|
@@ -605,7 +613,7 @@ function round(value) {
|
|
|
605
613
|
|
|
606
614
|
// src/utils/hdrPromotion.ts
|
|
607
615
|
async function bundleProjectHtml(projectDir) {
|
|
608
|
-
const { bundleToSingleHtml } = await import("./compiler-
|
|
616
|
+
const { bundleToSingleHtml } = await import("./compiler-EJE3HLCS.js");
|
|
609
617
|
return bundleToSingleHtml(projectDir);
|
|
610
618
|
}
|
|
611
619
|
async function collectBundledRenderMedia(html) {
|
|
@@ -981,6 +989,7 @@ async function collectGridSamples(driver, options, grid, motion, helpers, enter)
|
|
|
981
989
|
taken.push(index);
|
|
982
990
|
const time = times[index] ?? 0;
|
|
983
991
|
perTime[index] = await collectSampleAt(worker, options, grid, motion, sets, time);
|
|
992
|
+
enter("samples");
|
|
984
993
|
}
|
|
985
994
|
};
|
|
986
995
|
const helpWith = async (helper) => {
|
|
@@ -1015,7 +1024,8 @@ async function collectGridSamples(driver, options, grid, motion, helpers, enter)
|
|
|
1015
1024
|
grid,
|
|
1016
1025
|
collected,
|
|
1017
1026
|
options.range,
|
|
1018
|
-
craftEnabled(driver, options)
|
|
1027
|
+
craftEnabled(driver, options),
|
|
1028
|
+
() => enter("overlap")
|
|
1019
1029
|
);
|
|
1020
1030
|
enter("samples");
|
|
1021
1031
|
return collected;
|
|
@@ -1033,6 +1043,7 @@ async function collectContrastAt(driver, options, time, issuesAtTime, collected)
|
|
|
1033
1043
|
var OVERLAP_SAMPLE_FPS = 8;
|
|
1034
1044
|
var OVERLAP_MAX_SAMPLES = 240;
|
|
1035
1045
|
var OVERLAP_HOLD_PROBES = 60;
|
|
1046
|
+
var OVERLAP_BATCH = 8;
|
|
1036
1047
|
function evenlyPicked(times, count) {
|
|
1037
1048
|
if (times.length <= count) return times;
|
|
1038
1049
|
const last = Math.max(1, count - 1);
|
|
@@ -1098,7 +1109,15 @@ async function denseOverlapTimes(driver, grid, range) {
|
|
|
1098
1109
|
const overlapTimes = buildOverlapSampleTimes(range ? range[1] - range[0] : grid.duration, edges);
|
|
1099
1110
|
return range ? mergeSampleTimes(overlapTimes.map((time) => time + range[0])) : overlapTimes;
|
|
1100
1111
|
}
|
|
1101
|
-
async function
|
|
1112
|
+
async function collectOverlapGridInBatches(driver, times, progress) {
|
|
1113
|
+
const issues = [];
|
|
1114
|
+
for (let from = 0; from < times.length; from += OVERLAP_BATCH) {
|
|
1115
|
+
issues.push(...await driver.collectOverlapGrid(times.slice(from, from + OVERLAP_BATCH)));
|
|
1116
|
+
progress();
|
|
1117
|
+
}
|
|
1118
|
+
return issues;
|
|
1119
|
+
}
|
|
1120
|
+
async function collectMotionOverlapSamples(driver, grid, collected, range, craft, progress) {
|
|
1102
1121
|
const baseTimes = new Set(grid.layoutSamples);
|
|
1103
1122
|
const shiftedTimes = await denseOverlapTimes(driver, grid, range);
|
|
1104
1123
|
if (craft) {
|
|
@@ -1106,16 +1125,19 @@ async function collectMotionOverlapSamples(driver, grid, collected, range, craft
|
|
|
1106
1125
|
if (time >= grid.duration) continue;
|
|
1107
1126
|
await driver.seekGeometry(time);
|
|
1108
1127
|
collected.craftFrames.push(...await collectCraftFrame(driver, time));
|
|
1128
|
+
progress();
|
|
1109
1129
|
}
|
|
1110
1130
|
}
|
|
1111
1131
|
const probeHold = holdProber(driver, collected, range ? range[1] : grid.duration);
|
|
1112
|
-
const
|
|
1132
|
+
const gridTimes = shiftedTimes.filter((t) => !baseTimes.has(t));
|
|
1133
|
+
const gridIssues = await collectOverlapGridInBatches(driver, gridTimes, progress);
|
|
1113
1134
|
let sample = 0;
|
|
1114
1135
|
for (const [index, time] of shiftedTimes.entries()) {
|
|
1115
1136
|
if (baseTimes.has(time)) continue;
|
|
1116
1137
|
const issues = gridIssues[sample++] ?? [];
|
|
1117
1138
|
collected.layoutIssues.push(...issues);
|
|
1118
1139
|
await probeHold(time, shiftedTimes[index + 1] ?? Number.POSITIVE_INFINITY, issues);
|
|
1140
|
+
progress();
|
|
1119
1141
|
}
|
|
1120
1142
|
}
|
|
1121
1143
|
var CRAFT_SAMPLE_FPS = 8;
|
|
@@ -2133,7 +2155,7 @@ function resolveMotionSpec(projectDir) {
|
|
|
2133
2155
|
};
|
|
2134
2156
|
}
|
|
2135
2157
|
async function runBrowserCheck(project, options, motion, deadline, prelaunched) {
|
|
2136
|
-
const module = await import("./checkBrowser-
|
|
2158
|
+
const module = await import("./checkBrowser-JCZJGHYX.js");
|
|
2137
2159
|
return module.runBrowserCheck(project, options, motion, runAuditGrid, deadline, prelaunched);
|
|
2138
2160
|
}
|
|
2139
2161
|
var adoptedBrowser;
|
|
@@ -2147,7 +2169,7 @@ async function prelaunchBrowser(project, options) {
|
|
|
2147
2169
|
if (adopted) return adopted;
|
|
2148
2170
|
const html = await readFile(project.indexPath, "utf8").catch(() => void 0);
|
|
2149
2171
|
if (html === void 0) return void 0;
|
|
2150
|
-
const { prelaunchCompositionBrowser } = await import("./captureCompositionFrame-
|
|
2172
|
+
const { prelaunchCompositionBrowser } = await import("./captureCompositionFrame-DSKY6NL7.js");
|
|
2151
2173
|
return prelaunchCompositionBrowser(html, options.browserGpuMode);
|
|
2152
2174
|
}
|
|
2153
2175
|
async function writeSnapshot(projectDir, index, time, pngBase64) {
|
|
@@ -2159,7 +2181,7 @@ async function writeSnapshot(projectDir, index, time, pngBase64) {
|
|
|
2159
2181
|
return relative(projectDir, path);
|
|
2160
2182
|
}
|
|
2161
2183
|
async function captureFindingCrops(project, options, requests, deadline) {
|
|
2162
|
-
const module = await import("./checkBrowser-
|
|
2184
|
+
const module = await import("./checkBrowser-JCZJGHYX.js");
|
|
2163
2185
|
return module.captureFindingCrops(project, options, requests, deadline);
|
|
2164
2186
|
}
|
|
2165
2187
|
var DEFAULT_DEPENDENCIES2 = {
|
|
@@ -2177,7 +2199,8 @@ var examples = [
|
|
|
2177
2199
|
["Run the full verification gate", "hyperframes check"],
|
|
2178
2200
|
["Output one agent-readable envelope", "hyperframes check --json"],
|
|
2179
2201
|
["Persist the five audited contrast frames", "hyperframes check --snapshots"],
|
|
2180
|
-
["Also fail on warnings", "hyperframes check --strict"]
|
|
2202
|
+
["Also fail on warnings", "hyperframes check --strict"],
|
|
2203
|
+
["Make only the browser-playable video copies, then exit", "hyperframes check --prepare-media"]
|
|
2181
2204
|
];
|
|
2182
2205
|
var DEFAULT_COMMAND_DEPENDENCIES = {
|
|
2183
2206
|
resolveProject,
|
|
@@ -2196,6 +2219,11 @@ var DEFAULT_COMMAND_DEPENDENCIES = {
|
|
|
2196
2219
|
return report;
|
|
2197
2220
|
}
|
|
2198
2221
|
},
|
|
2222
|
+
async prepareMedia(project, options) {
|
|
2223
|
+
const { bundleWithLocalizedFonts } = await import("./bundleWithLocalizedFonts-R64YXJL5.js");
|
|
2224
|
+
const html = await bundleWithLocalizedFonts(project.dir);
|
|
2225
|
+
return (await preResolveHostileMediaProxies(project.dir, html, options.autoProxy)).files;
|
|
2226
|
+
},
|
|
2199
2227
|
withMeta
|
|
2200
2228
|
};
|
|
2201
2229
|
function warnNotRecorded(error) {
|
|
@@ -2321,6 +2349,11 @@ var CHECK_COMMAND_ARGS = {
|
|
|
2321
2349
|
description: "Exit non-zero on warnings too",
|
|
2322
2350
|
default: false
|
|
2323
2351
|
},
|
|
2352
|
+
"prepare-media": {
|
|
2353
|
+
type: "boolean",
|
|
2354
|
+
description: "Only make the browser-playable copies of videos Chrome cannot decode, then exit (no browser, no report). Stopped copies resume on the next run",
|
|
2355
|
+
default: false
|
|
2356
|
+
},
|
|
2324
2357
|
proxy: {
|
|
2325
2358
|
type: "boolean",
|
|
2326
2359
|
description: "Auto-transcode browser-hostile video codecs (default: hyperframes.json media.autoProxy, which defaults on)",
|
|
@@ -2365,6 +2398,10 @@ function createCheckCommand(dependencies = DEFAULT_COMMAND_DEPENDENCIES) {
|
|
|
2365
2398
|
if (!asJson) {
|
|
2366
2399
|
console.log(`${c.accent("\u25C6")} Checking ${c.accent(project.name)}`);
|
|
2367
2400
|
}
|
|
2401
|
+
if (args["prepare-media"] === true) {
|
|
2402
|
+
await runPrepareMedia(dependencies, project, options, asJson);
|
|
2403
|
+
return;
|
|
2404
|
+
}
|
|
2368
2405
|
const report = await withProjectLock(
|
|
2369
2406
|
project.dir,
|
|
2370
2407
|
"check",
|
|
@@ -2396,6 +2433,36 @@ function createCheckCommand(dependencies = DEFAULT_COMMAND_DEPENDENCIES) {
|
|
|
2396
2433
|
}
|
|
2397
2434
|
});
|
|
2398
2435
|
}
|
|
2436
|
+
async function runPrepareMedia(dependencies, project, options, asJson) {
|
|
2437
|
+
const files = await withProjectLock(
|
|
2438
|
+
project.dir,
|
|
2439
|
+
"check",
|
|
2440
|
+
() => dependencies.prepareMedia(project, options)
|
|
2441
|
+
);
|
|
2442
|
+
const failed = files.filter((file) => file.state === "failed");
|
|
2443
|
+
if (asJson) {
|
|
2444
|
+
console.log(
|
|
2445
|
+
JSON.stringify(
|
|
2446
|
+
dependencies.withMeta({
|
|
2447
|
+
ok: failed.length === 0,
|
|
2448
|
+
prepared: files,
|
|
2449
|
+
total: files.length,
|
|
2450
|
+
ready: files.length - failed.length,
|
|
2451
|
+
failed: failed.length
|
|
2452
|
+
}),
|
|
2453
|
+
null,
|
|
2454
|
+
2
|
|
2455
|
+
)
|
|
2456
|
+
);
|
|
2457
|
+
} else {
|
|
2458
|
+
const mark = failed.length === 0 ? c.success("\u2713") : c.error("\u2717");
|
|
2459
|
+
console.log(
|
|
2460
|
+
`${mark} Browser-playable copies: ${files.length - failed.length}/${files.length} ready`
|
|
2461
|
+
);
|
|
2462
|
+
for (const file of failed) console.log(` ${file.file}: ${file.reason}`);
|
|
2463
|
+
}
|
|
2464
|
+
setCommandExitCode(failed.length === 0 ? 0 : 1);
|
|
2465
|
+
}
|
|
2399
2466
|
function parseCheckOptions(args) {
|
|
2400
2467
|
const maxTransitionSamples = positiveInteger(args["max-transition-samples"], 0);
|
|
2401
2468
|
return {
|