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
|
@@ -21,13 +21,13 @@ import {
|
|
|
21
21
|
mkdirWithinProject
|
|
22
22
|
} from "./chunk-OFQWTKPW.js";
|
|
23
23
|
|
|
24
|
-
// ../studio-server/dist/chunk-
|
|
24
|
+
// ../studio-server/dist/chunk-YIMSBQIO.js
|
|
25
25
|
import { randomUUID as randomUUID7 } from "crypto";
|
|
26
26
|
import { mkdir as mkdir2, readdir as readdir3, rm as rm3, rmdir, writeFile } from "fs/promises";
|
|
27
27
|
import {
|
|
28
28
|
existsSync as existsSync3,
|
|
29
29
|
lstatSync as lstatSync4,
|
|
30
|
-
statSync as
|
|
30
|
+
statSync as statSync5,
|
|
31
31
|
mkdirSync as mkdirSync5,
|
|
32
32
|
readdirSync as readdirSync4,
|
|
33
33
|
readFileSync as readFileSync10,
|
|
@@ -40,7 +40,15 @@ import { createHash, randomUUID } from "crypto";
|
|
|
40
40
|
import { readFileSync as readFileSync2 } from "fs";
|
|
41
41
|
import { isAbsolute, relative, resolve, sep } from "path";
|
|
42
42
|
import { randomUUID as randomUUID2 } from "crypto";
|
|
43
|
-
import {
|
|
43
|
+
import {
|
|
44
|
+
linkSync,
|
|
45
|
+
mkdirSync,
|
|
46
|
+
readFileSync,
|
|
47
|
+
renameSync,
|
|
48
|
+
rmSync,
|
|
49
|
+
statSync,
|
|
50
|
+
writeFileSync
|
|
51
|
+
} from "fs";
|
|
44
52
|
import { join } from "path";
|
|
45
53
|
import { createHash as createHash2 } from "crypto";
|
|
46
54
|
import { lstatSync, readFileSync as readFileSync3, readdirSync } from "fs";
|
|
@@ -51,15 +59,15 @@ import { copyFile, mkdir, readdir, readFile, rename, rm, stat } from "fs/promise
|
|
|
51
59
|
import { dirname, join as join2 } from "path";
|
|
52
60
|
import { pipeline } from "stream/promises";
|
|
53
61
|
import { randomUUID as randomUUID5 } from "crypto";
|
|
54
|
-
import { readdirSync as readdirSync2, readFileSync as readFileSync5, renameSync as renameSync3, statSync as
|
|
62
|
+
import { readdirSync as readdirSync2, readFileSync as readFileSync5, renameSync as renameSync3, statSync as statSync3, writeFileSync as writeFileSync3 } from "fs";
|
|
55
63
|
import { lstat, readdir as readdir2, rm as rm2 } from "fs/promises";
|
|
56
64
|
import { tmpdir } from "os";
|
|
57
65
|
import { dirname as dirname2, join as join4 } from "path";
|
|
58
66
|
import { randomUUID as randomUUID4 } from "crypto";
|
|
59
|
-
import { existsSync, mkdirSync as mkdirSync2, readFileSync as readFileSync4, statSync, writeFileSync as writeFileSync2 } from "fs";
|
|
67
|
+
import { existsSync, mkdirSync as mkdirSync2, readFileSync as readFileSync4, statSync as statSync2, writeFileSync as writeFileSync2 } from "fs";
|
|
60
68
|
import { basename, join as join3, resolve as resolve3 } from "path";
|
|
61
69
|
import { createHash as createHash5, randomUUID as randomUUID6 } from "crypto";
|
|
62
|
-
import { createReadStream as createReadStream2, existsSync as existsSync2, readFileSync as readFileSync8, renameSync as renameSync4, statSync as
|
|
70
|
+
import { createReadStream as createReadStream2, existsSync as existsSync2, readFileSync as readFileSync8, renameSync as renameSync4, statSync as statSync4 } from "fs";
|
|
63
71
|
import { isAbsolute as isAbsolute4, join as join7, resolve as resolve6 } from "path";
|
|
64
72
|
import { createHash as createHash4 } from "crypto";
|
|
65
73
|
import {
|
|
@@ -175,6 +183,8 @@ var HistoryBusyError = class extends Error {
|
|
|
175
183
|
url;
|
|
176
184
|
};
|
|
177
185
|
var WINDOWS_BUSY = /* @__PURE__ */ new Set(["EPERM", "EBUSY", "EACCES"]);
|
|
186
|
+
var NO_HARD_LINKS = /* @__PURE__ */ new Set(["ENOTSUP", "EOPNOTSUPP", "ENOSYS", "EPERM"]);
|
|
187
|
+
var TAKING_MS = 2e3;
|
|
178
188
|
function busyOnWindows(error) {
|
|
179
189
|
return process.platform === "win32" && WINDOWS_BUSY.has(error.code ?? "");
|
|
180
190
|
}
|
|
@@ -196,6 +206,17 @@ function ownerOf(file) {
|
|
|
196
206
|
throw error;
|
|
197
207
|
}
|
|
198
208
|
}
|
|
209
|
+
function beingTaken(file) {
|
|
210
|
+
try {
|
|
211
|
+
const { size, mtimeMs } = statSync(file);
|
|
212
|
+
return size === 0 && Date.now() - mtimeMs < TAKING_MS;
|
|
213
|
+
} catch {
|
|
214
|
+
return false;
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
function deadHolder(file, pid) {
|
|
218
|
+
return !alive(pid) && !beingTaken(file);
|
|
219
|
+
}
|
|
199
220
|
function claim(file) {
|
|
200
221
|
const draft = `${file}-${process.pid}-${randomUUID2()}.tmp`;
|
|
201
222
|
writeFileSync(draft, String(process.pid));
|
|
@@ -203,12 +224,23 @@ function claim(file) {
|
|
|
203
224
|
linkSync(draft, file);
|
|
204
225
|
return true;
|
|
205
226
|
} catch (error) {
|
|
206
|
-
|
|
207
|
-
return false;
|
|
227
|
+
const code = error.code ?? "";
|
|
228
|
+
if (code === "EEXIST") return false;
|
|
229
|
+
if (!NO_HARD_LINKS.has(code)) throw error;
|
|
230
|
+
return createExclusively(file);
|
|
208
231
|
} finally {
|
|
209
232
|
rmSync(draft, { force: true });
|
|
210
233
|
}
|
|
211
234
|
}
|
|
235
|
+
function createExclusively(file) {
|
|
236
|
+
try {
|
|
237
|
+
writeFileSync(file, String(process.pid), { flag: "wx" });
|
|
238
|
+
return true;
|
|
239
|
+
} catch (error) {
|
|
240
|
+
if (error.code !== "EEXIST") throw error;
|
|
241
|
+
return false;
|
|
242
|
+
}
|
|
243
|
+
}
|
|
212
244
|
function releaseOwn(file) {
|
|
213
245
|
if (ownerOf(file) === process.pid) rmSync(file, { force: true });
|
|
214
246
|
}
|
|
@@ -216,12 +248,12 @@ function evictDeadOwner(file) {
|
|
|
216
248
|
const evictor = `${file}.evict`;
|
|
217
249
|
if (!claim(evictor)) {
|
|
218
250
|
const holder = ownerOf(evictor);
|
|
219
|
-
if (holder !== null &&
|
|
251
|
+
if (holder !== null && deadHolder(evictor, holder)) rmSync(evictor, { force: true });
|
|
220
252
|
return false;
|
|
221
253
|
}
|
|
222
254
|
try {
|
|
223
255
|
const pid = ownerOf(file);
|
|
224
|
-
if (pid !== null &&
|
|
256
|
+
if (pid !== null && deadHolder(file, pid)) rmSync(file, { force: true });
|
|
225
257
|
return true;
|
|
226
258
|
} finally {
|
|
227
259
|
releaseOwn(evictor);
|
|
@@ -246,7 +278,7 @@ function attemptClaim(file, urlFile, deadline) {
|
|
|
246
278
|
if (claim(file)) return "claimed";
|
|
247
279
|
const pid = ownerOf(file);
|
|
248
280
|
if (pid === null) return "retry";
|
|
249
|
-
if (
|
|
281
|
+
if (deadHolder(file, pid) && evictDeadOwner(file)) return "retry";
|
|
250
282
|
if (Date.now() >= deadline) throw new HistoryBusyError(pid, servedBy(file, urlFile, pid));
|
|
251
283
|
return "wait";
|
|
252
284
|
}
|
|
@@ -591,7 +623,7 @@ function readRecord(historyDir) {
|
|
|
591
623
|
function isCopyOf0878Folder(recordedDir, id, folder) {
|
|
592
624
|
let there;
|
|
593
625
|
try {
|
|
594
|
-
there =
|
|
626
|
+
there = statSync2(recordedDir, { throwIfNoEntry: false });
|
|
595
627
|
} catch {
|
|
596
628
|
return false;
|
|
597
629
|
}
|
|
@@ -599,7 +631,7 @@ function isCopyOf0878Folder(recordedDir, id, folder) {
|
|
|
599
631
|
}
|
|
600
632
|
function projectHistoryId(projectDir, historyRoot) {
|
|
601
633
|
const dir = resolve3(projectDir);
|
|
602
|
-
const folder =
|
|
634
|
+
const folder = statSync2(dir);
|
|
603
635
|
let id = readId(dir);
|
|
604
636
|
if (!id && existsSync(join3(dir, ID_PATH)))
|
|
605
637
|
throw new HistoryIdError(
|
|
@@ -724,24 +756,24 @@ function abandonedProject(home, id, now, tempDir) {
|
|
|
724
756
|
return projectGone(dir, id, record?.dev, tempDir) ? dir : null;
|
|
725
757
|
}
|
|
726
758
|
function projectGone(dir, id, dev, tempDir) {
|
|
727
|
-
if (!
|
|
759
|
+
if (!statSync3(join4(dir, ID_PATH), { throwIfNoEntry: false }))
|
|
728
760
|
return diskStillHere(dir, dev, tempDir);
|
|
729
761
|
const there = readId(dir);
|
|
730
762
|
return there !== null && there !== id;
|
|
731
763
|
}
|
|
732
764
|
function diskStillHere(dir, dev, tempDir) {
|
|
733
765
|
let at = dir;
|
|
734
|
-
let stat2 =
|
|
766
|
+
let stat2 = statSync3(at, { throwIfNoEntry: false });
|
|
735
767
|
while (!stat2) {
|
|
736
768
|
if (dirname2(at) === at) return false;
|
|
737
769
|
at = dirname2(at);
|
|
738
|
-
stat2 =
|
|
770
|
+
stat2 = statSync3(at, { throwIfNoEntry: false });
|
|
739
771
|
}
|
|
740
772
|
if (typeof dev === "number") return stat2.dev === dev;
|
|
741
773
|
return at === dir || isSafePath(tempDir, at);
|
|
742
774
|
}
|
|
743
775
|
function lastUsed(home) {
|
|
744
|
-
const mtime = (file) =>
|
|
776
|
+
const mtime = (file) => statSync3(join4(home, file), { throwIfNoEntry: false })?.mtimeMs ?? 0;
|
|
745
777
|
return Math.max(mtime("project.json"), mtime("log.jsonl"));
|
|
746
778
|
}
|
|
747
779
|
async function bytesIn(dir) {
|
|
@@ -1305,7 +1337,7 @@ function retainRevision(retained, revision) {
|
|
|
1305
1337
|
return [revision, ...retained.filter((id) => id !== revision)].slice(0, 2);
|
|
1306
1338
|
}
|
|
1307
1339
|
async function recordRenderSuccess(projectDir, output, status = "completed", capture) {
|
|
1308
|
-
const outputFile =
|
|
1340
|
+
const outputFile = statSync4(output);
|
|
1309
1341
|
if (!outputFile.isFile() && !outputFile.isDirectory() || outputFile.isFile() && outputFile.size === 0)
|
|
1310
1342
|
throw new Error("Render output is missing or empty.");
|
|
1311
1343
|
const after = capture ? await beginArtifactCapture(projectDir) : null;
|
|
@@ -1534,8 +1566,8 @@ function fileLeftIn(dir, at, deleted) {
|
|
|
1534
1566
|
return void 0;
|
|
1535
1567
|
}
|
|
1536
1568
|
function ignoresCase(dir) {
|
|
1537
|
-
const self =
|
|
1538
|
-
const other =
|
|
1569
|
+
const self = statSync5(join8(dir, ID_PATH), { throwIfNoEntry: false });
|
|
1570
|
+
const other = statSync5(join8(dir, ID_PATH.toUpperCase()), { throwIfNoEntry: false });
|
|
1539
1571
|
return self !== void 0 && other?.ino === self.ino && other.dev === self.dev;
|
|
1540
1572
|
}
|
|
1541
1573
|
var blocks = (removed, added) => added.startsWith(`${removed}/`) || removed.startsWith(`${added}/`);
|
|
@@ -1575,7 +1607,7 @@ var Engine = class {
|
|
|
1575
1607
|
this.dir = resolve7(options.projectDir);
|
|
1576
1608
|
this.home = join8(options.historyRoot, projectId);
|
|
1577
1609
|
this.foldsCase = ignoresCase(this.dir);
|
|
1578
|
-
const folder =
|
|
1610
|
+
const folder = statSync5(this.dir, { throwIfNoEntry: false });
|
|
1579
1611
|
if (!folder || readId(this.dir) !== projectId || !isRecordedFolder(this.home, folder))
|
|
1580
1612
|
throw this.replaced();
|
|
1581
1613
|
this.folder = { dev: folder.dev, ino: folder.ino, birthtimeMs: folder.birthtimeMs };
|
|
@@ -1640,7 +1672,7 @@ var Engine = class {
|
|
|
1640
1672
|
}
|
|
1641
1673
|
/** Another project if the folder or its id changed, or the id is gone: a recreated folder may reuse the inode. */
|
|
1642
1674
|
whereFolder() {
|
|
1643
|
-
const now =
|
|
1675
|
+
const now = statSync5(this.dir, { throwIfNoEntry: false });
|
|
1644
1676
|
if (!now) return "gone";
|
|
1645
1677
|
const same = now.dev === this.folder.dev && sameFolder(now, this.folder);
|
|
1646
1678
|
return same && readId(this.dir) === this.projectId ? "here" : "replaced";
|
|
@@ -2445,7 +2477,7 @@ async function openProjectHistory(options) {
|
|
|
2445
2477
|
function readProjectHistory(options) {
|
|
2446
2478
|
const dir = resolve7(options.projectDir);
|
|
2447
2479
|
const id = readId(dir);
|
|
2448
|
-
const home = id && isRecordedFolder(join8(options.historyRoot, id),
|
|
2480
|
+
const home = id && isRecordedFolder(join8(options.historyRoot, id), statSync5(dir)) ? join8(options.historyRoot, id) : null;
|
|
2449
2481
|
const read = home && readLog(logFileIn(home), () => {
|
|
2450
2482
|
});
|
|
2451
2483
|
const log = withoutHiddenPaths(read || { baseline: /* @__PURE__ */ new Map(), entries: [], pins: /* @__PURE__ */ new Set() });
|
|
@@ -15,13 +15,13 @@ import {
|
|
|
15
15
|
findFFmpeg,
|
|
16
16
|
findFFprobe,
|
|
17
17
|
getFFmpegInstallHint
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-7KTMMDHC.js";
|
|
19
19
|
import {
|
|
20
20
|
DEFAULT_VP9_CPU_USED,
|
|
21
21
|
SDR_RGB_TO_BT709_FILTER,
|
|
22
22
|
SDR_RGB_TO_TAGGED_BT709_FILTER,
|
|
23
23
|
renderProvenanceArgs
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-4BINHKAB.js";
|
|
25
25
|
|
|
26
26
|
// src/background-removal/pipeline.ts
|
|
27
27
|
import { spawn } from "child_process";
|
|
@@ -262,7 +262,7 @@ function inferInputKind(inputPath) {
|
|
|
262
262
|
}
|
|
263
263
|
async function probeMedia(inputPath) {
|
|
264
264
|
const isImage = inferInputKind(inputPath) === "image";
|
|
265
|
-
const engine = await import("./src-
|
|
265
|
+
const engine = await import("./src-65S55XOQ.js");
|
|
266
266
|
const meta = await engine.extractMediaMetadata(inputPath);
|
|
267
267
|
if (isImage) {
|
|
268
268
|
return { width: meta.width, height: meta.height, fps: 0, frameCount: 1 };
|
|
@@ -4,22 +4,22 @@ 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
|
+
ambiguousIssue,
|
|
9
|
+
loadBrowserScript
|
|
10
|
+
} from "./chunk-OAZGGUCB.js";
|
|
7
11
|
import {
|
|
8
12
|
auditClipDurations,
|
|
9
13
|
shouldIgnoreHttpError,
|
|
10
14
|
shouldIgnoreRequestFailure
|
|
11
|
-
} from "./chunk-
|
|
12
|
-
import {
|
|
13
|
-
checkSnapshotDirectory,
|
|
14
|
-
rectToBbox
|
|
15
|
-
} from "./chunk-KANNRHY7.js";
|
|
16
|
-
import {
|
|
17
|
-
ambiguousIssue,
|
|
18
|
-
loadBrowserScript
|
|
19
|
-
} from "./chunk-2DHCCBCN.js";
|
|
15
|
+
} from "./chunk-XRYN74FP.js";
|
|
20
16
|
import {
|
|
21
17
|
serveStaticProjectHtml
|
|
22
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-HJZ5CPZA.js";
|
|
19
|
+
import {
|
|
20
|
+
artifactDirectory,
|
|
21
|
+
finishSnapshotRun
|
|
22
|
+
} from "./chunk-TMBUBLZB.js";
|
|
23
23
|
import {
|
|
24
24
|
FfmpegUnavailableError,
|
|
25
25
|
decideMediaProxyEligibility,
|
|
@@ -27,7 +27,7 @@ import {
|
|
|
27
27
|
proxyVariantFor,
|
|
28
28
|
resolveProxies,
|
|
29
29
|
scanProjectMediaCodecMap
|
|
30
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-BT64TTSE.js";
|
|
31
31
|
import {
|
|
32
32
|
AUDIT_SEEK_OPTIONS,
|
|
33
33
|
DEFAULT_ZOOM_PADDING_PX,
|
|
@@ -41,14 +41,17 @@ import {
|
|
|
41
41
|
seekCompositionTimeline,
|
|
42
42
|
seekInPage,
|
|
43
43
|
waitForPreferredSeekTarget
|
|
44
|
-
} from "./chunk-
|
|
44
|
+
} from "./chunk-EQXUGT5K.js";
|
|
45
45
|
import {
|
|
46
46
|
BrowserCleanupError,
|
|
47
47
|
closeManagedBrowser
|
|
48
|
-
} from "./chunk-
|
|
48
|
+
} from "./chunk-YDGW5KWX.js";
|
|
49
|
+
import {
|
|
50
|
+
findStageProxyBox
|
|
51
|
+
} from "./chunk-ZFFKWHXN.js";
|
|
49
52
|
import {
|
|
50
53
|
resolveAutoProxy
|
|
51
|
-
} from "./chunk-
|
|
54
|
+
} from "./chunk-UZ7RJDEC.js";
|
|
52
55
|
import {
|
|
53
56
|
normalizeErrorMessage
|
|
54
57
|
} from "./chunk-KNU5COPB.js";
|
|
@@ -63,6 +66,7 @@ var OFF_HINTS = {
|
|
|
63
66
|
"root-blend-mode": "set mix-blend-mode on a child element instead of the composition root, or drop motion blur",
|
|
64
67
|
"nested-capture-canvas": "remove the inner <canvas layoutsubtree> / content=drawable, or drop motion blur"
|
|
65
68
|
};
|
|
69
|
+
var CHOSEN = /* @__PURE__ */ new Set(["translation-only", "tier-attribute"]);
|
|
66
70
|
var GENERIC_OFF_HINT = "remove what the reason names, or drop data-motion-blur";
|
|
67
71
|
var ASKED = 'data-motion-blur="on" is set but';
|
|
68
72
|
function motionBlurDrafts(probe) {
|
|
@@ -72,8 +76,8 @@ function motionBlurDrafts(probe) {
|
|
|
72
76
|
{
|
|
73
77
|
code: "motion_blur_unverified",
|
|
74
78
|
severity: "info",
|
|
75
|
-
message: `${ASKED} blur
|
|
76
|
-
fixHint: "the check browser has no html-in-canvas (drawElementImage); render once to see
|
|
79
|
+
message: `${ASKED} the check browser cannot run capture blur, so it was drawn with the filter fallback`,
|
|
80
|
+
fixHint: "the check browser has no html-in-canvas (drawElementImage); render once to see how capture blur looks",
|
|
77
81
|
time: 0
|
|
78
82
|
}
|
|
79
83
|
];
|
|
@@ -89,6 +93,17 @@ function motionBlurDrafts(probe) {
|
|
|
89
93
|
}
|
|
90
94
|
];
|
|
91
95
|
}
|
|
96
|
+
if (probe.tier === "filter" && probe.movers > 0 && !CHOSEN.has(probe.reasonCode ?? "")) {
|
|
97
|
+
return [
|
|
98
|
+
{
|
|
99
|
+
code: "motion_blur_filter_fallback",
|
|
100
|
+
severity: "info",
|
|
101
|
+
message: `data-motion-blur="on" is drawn by the filter fallback: ${probe.reason ?? "capture blur cannot run here"}`,
|
|
102
|
+
fixHint: `the fallback smears movement but only softens zoom and rotation; ${OFF_HINTS[probe.reasonCode ?? ""] ?? GENERIC_OFF_HINT}`,
|
|
103
|
+
time: 0
|
|
104
|
+
}
|
|
105
|
+
];
|
|
106
|
+
}
|
|
92
107
|
if (probe.movers === 0) {
|
|
93
108
|
return [
|
|
94
109
|
{
|
|
@@ -112,10 +127,12 @@ function readMotionBlurProbe() {
|
|
|
112
127
|
const reason = Reflect.get(report, "reason");
|
|
113
128
|
const code = Reflect.get(report, "reasonCode");
|
|
114
129
|
const movers = Reflect.get(report, "movers");
|
|
130
|
+
const tier = Reflect.get(report, "tier");
|
|
115
131
|
const suspend = Reflect.get(api, "suspend");
|
|
116
132
|
if (typeof suspend === "function") Reflect.apply(suspend, api, []);
|
|
117
133
|
return {
|
|
118
134
|
state: Reflect.get(report, "state") === "off" ? "off" : "on",
|
|
135
|
+
tier: tier === "capture" || tier === "filter" ? tier : null,
|
|
119
136
|
reason: typeof reason === "string" ? reason : null,
|
|
120
137
|
reasonCode: typeof code === "string" ? code : null,
|
|
121
138
|
movers: typeof movers === "number" ? movers : 0
|
|
@@ -132,10 +149,41 @@ function dropMotionBlurConsoleEcho(drafts, found) {
|
|
|
132
149
|
);
|
|
133
150
|
}
|
|
134
151
|
|
|
152
|
+
// src/utils/checkSnapshotDirectory.ts
|
|
153
|
+
import { resolve } from "path";
|
|
154
|
+
var runDirectories = /* @__PURE__ */ new Map();
|
|
155
|
+
var activeChecks = /* @__PURE__ */ new Map();
|
|
156
|
+
function beginCheckSnapshots(projectDir) {
|
|
157
|
+
const project = resolve(projectDir);
|
|
158
|
+
activeChecks.set(project, (activeChecks.get(project) ?? 0) + 1);
|
|
159
|
+
}
|
|
160
|
+
function checkSnapshotDirectory(projectDir) {
|
|
161
|
+
const project = resolve(projectDir);
|
|
162
|
+
let directory = runDirectories.get(project);
|
|
163
|
+
if (!directory) {
|
|
164
|
+
directory = artifactDirectory(project, "snapshots");
|
|
165
|
+
runDirectories.set(project, directory);
|
|
166
|
+
}
|
|
167
|
+
return directory;
|
|
168
|
+
}
|
|
169
|
+
async function finishCheckSnapshots(projectDir) {
|
|
170
|
+
const project = resolve(projectDir);
|
|
171
|
+
const remaining = Math.max(0, (activeChecks.get(project) ?? 1) - 1);
|
|
172
|
+
if (remaining > 0) {
|
|
173
|
+
activeChecks.set(project, remaining);
|
|
174
|
+
return;
|
|
175
|
+
}
|
|
176
|
+
activeChecks.delete(project);
|
|
177
|
+
const path = runDirectories.get(project);
|
|
178
|
+
if (!path) return;
|
|
179
|
+
runDirectories.delete(project);
|
|
180
|
+
await finishSnapshotRun(project, path);
|
|
181
|
+
}
|
|
182
|
+
|
|
135
183
|
// src/utils/checkBrowser.ts
|
|
136
184
|
import { existsSync, mkdirSync, writeFileSync } from "fs";
|
|
137
185
|
import os from "os";
|
|
138
|
-
import { join, resolve } from "path";
|
|
186
|
+
import { join, resolve as resolve2 } from "path";
|
|
139
187
|
|
|
140
188
|
// src/utils/gsapTweenTails.ts
|
|
141
189
|
var TWEEN_TAIL_WINDOW = 0.25;
|
|
@@ -247,9 +295,14 @@ function collectTweenRecords() {
|
|
|
247
295
|
);
|
|
248
296
|
}
|
|
249
297
|
|
|
298
|
+
// src/utils/checkTypes.ts
|
|
299
|
+
function rectToBbox(rect) {
|
|
300
|
+
return { x: rect.left, y: rect.top, width: rect.width, height: rect.height };
|
|
301
|
+
}
|
|
302
|
+
|
|
250
303
|
// src/utils/checkBrowser.ts
|
|
251
304
|
async function preResolveHostileMediaProxies(projectDir, html, autoProxyOverride) {
|
|
252
|
-
const none = { findings: [], failedPaths: /* @__PURE__ */ new Set() };
|
|
305
|
+
const none = { findings: [], failedPaths: /* @__PURE__ */ new Set(), files: [] };
|
|
253
306
|
if (!resolveAutoProxy(projectDir, autoProxyOverride)) return none;
|
|
254
307
|
let codecMap;
|
|
255
308
|
try {
|
|
@@ -265,17 +318,20 @@ async function preResolveHostileMediaProxies(projectDir, html, autoProxyOverride
|
|
|
265
318
|
);
|
|
266
319
|
if (hostileEntries.length === 0) return none;
|
|
267
320
|
const startedAt = Date.now();
|
|
321
|
+
const stageBox = findStageProxyBox(html);
|
|
268
322
|
const sources = hostileEntries.map(([pathname, facts]) => {
|
|
269
323
|
const file = pathname.replace(/^\/+/, "");
|
|
270
324
|
return {
|
|
271
325
|
pathname,
|
|
272
326
|
file,
|
|
273
|
-
sourcePath:
|
|
274
|
-
variant: proxyVariantFor(facts)
|
|
327
|
+
sourcePath: resolve2(projectDir, file),
|
|
328
|
+
variant: proxyVariantFor(facts),
|
|
329
|
+
box: stageBox
|
|
275
330
|
};
|
|
276
331
|
});
|
|
277
332
|
const total = hostileEntries.length;
|
|
278
|
-
const
|
|
333
|
+
const cached = sources.map((source) => proxyCached(projectDir, source));
|
|
334
|
+
const toMake = cached.filter((isCached) => !isCached).length;
|
|
279
335
|
if (toMake > 0) {
|
|
280
336
|
console.error(
|
|
281
337
|
`[hyperframes] Making browser-playable copies of ${toMake} video${toMake === 1 ? "" : "s"} Chrome cannot decode. Only the first check of these files waits for this; later checks reuse the copies.`
|
|
@@ -306,11 +362,18 @@ async function preResolveHostileMediaProxies(projectDir, html, autoProxyOverride
|
|
|
306
362
|
)
|
|
307
363
|
);
|
|
308
364
|
}
|
|
309
|
-
|
|
365
|
+
const files = sources.map(({ file }, index) => {
|
|
366
|
+
const result = results[index];
|
|
367
|
+
if (result.status === "rejected") {
|
|
368
|
+
return { file, state: "failed", reason: normalizeErrorMessage(result.reason) };
|
|
369
|
+
}
|
|
370
|
+
return { file, state: cached[index] ? "cached" : "ready" };
|
|
371
|
+
});
|
|
372
|
+
return { findings, failedPaths: new Set(failures.map(({ pathname }) => pathname)), files };
|
|
310
373
|
}
|
|
311
374
|
function proxyCached(projectDir, source) {
|
|
312
375
|
try {
|
|
313
|
-
return existsSync(getProxyCachePath(projectDir, source.sourcePath, source.variant));
|
|
376
|
+
return existsSync(getProxyCachePath(projectDir, source.sourcePath, source.variant, source.box));
|
|
314
377
|
} catch {
|
|
315
378
|
return false;
|
|
316
379
|
}
|
|
@@ -319,7 +382,7 @@ function proxyFailedDraft(message) {
|
|
|
319
382
|
return { code: "media_proxy_failed", severity: "warning", message, time: 0 };
|
|
320
383
|
}
|
|
321
384
|
async function runBrowserCheck(project, options, motion, runGrid, deadline, prelaunched) {
|
|
322
|
-
const { bundleWithLocalizedFonts } = await import("./bundleWithLocalizedFonts-
|
|
385
|
+
const { bundleWithLocalizedFonts } = await import("./bundleWithLocalizedFonts-R64YXJL5.js");
|
|
323
386
|
const html = await bundleWithLocalizedFonts(project.dir);
|
|
324
387
|
deadline?.enter("copies");
|
|
325
388
|
const { findings: drafts, failedPaths } = await preResolveHostileMediaProxies(
|
|
@@ -366,7 +429,7 @@ async function runBrowserCheck(project, options, motion, runGrid, deadline, prel
|
|
|
366
429
|
await waitForPreferredSeekTarget(page);
|
|
367
430
|
const rootAnchor = await resolveRootAnchor(page);
|
|
368
431
|
const launchSettleMs = Date.now() - launchSettleStart;
|
|
369
|
-
const { analyzeClipMediaFit } = await import("./src-
|
|
432
|
+
const { analyzeClipMediaFit } = await import("./src-65S55XOQ.js");
|
|
370
433
|
for (const entry of await auditClipDurations(page, analyzeClipMediaFit, options.timeout)) {
|
|
371
434
|
drafts.push({ code: "clip_media_fit", severity: entry.level, message: entry.text, time: 0 });
|
|
372
435
|
}
|
|
@@ -475,7 +538,7 @@ function mergeHelperDrafts(primary, helper) {
|
|
|
475
538
|
}
|
|
476
539
|
async function captureFindingCrops(project, options, requests, deadline) {
|
|
477
540
|
if (requests.length === 0) return [];
|
|
478
|
-
const { bundleWithLocalizedFonts } = await import("./bundleWithLocalizedFonts-
|
|
541
|
+
const { bundleWithLocalizedFonts } = await import("./bundleWithLocalizedFonts-R64YXJL5.js");
|
|
479
542
|
const html = await bundleWithLocalizedFonts(project.dir);
|
|
480
543
|
const server = await serveStaticProjectHtml(
|
|
481
544
|
project.dir,
|
|
@@ -651,11 +714,11 @@ async function abortedImagesStillBroken(page, drafts) {
|
|
|
651
714
|
if (urls.length === 0) return /* @__PURE__ */ new Set();
|
|
652
715
|
const broken = await page.evaluate(
|
|
653
716
|
async (candidates, capMs) => {
|
|
654
|
-
const fails = (img) => new Promise((
|
|
655
|
-
const cap = setTimeout(() =>
|
|
717
|
+
const fails = (img) => new Promise((resolve3) => {
|
|
718
|
+
const cap = setTimeout(() => resolve3(false), capMs);
|
|
656
719
|
img.decode().then(
|
|
657
|
-
() =>
|
|
658
|
-
() =>
|
|
720
|
+
() => resolve3(false),
|
|
721
|
+
() => resolve3(true)
|
|
659
722
|
).finally(() => clearTimeout(cap));
|
|
660
723
|
});
|
|
661
724
|
const stillBroken = await Promise.all(
|
|
@@ -1680,6 +1743,10 @@ function matchComponentFindings({
|
|
|
1680
1743
|
}
|
|
1681
1744
|
|
|
1682
1745
|
export {
|
|
1746
|
+
beginCheckSnapshots,
|
|
1747
|
+
checkSnapshotDirectory,
|
|
1748
|
+
finishCheckSnapshots,
|
|
1749
|
+
rectToBbox,
|
|
1683
1750
|
preResolveHostileMediaProxies,
|
|
1684
1751
|
runBrowserCheck,
|
|
1685
1752
|
samplingBrowserCount,
|
|
@@ -6,23 +6,23 @@ 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-GWE3UEGX.js";
|
|
10
10
|
import {
|
|
11
11
|
installPageFunctionGuard,
|
|
12
12
|
resolveCliChromeGpuMode,
|
|
13
13
|
seekCompositionTimeline,
|
|
14
14
|
waitForRuntimeReady
|
|
15
|
-
} from "./chunk-
|
|
16
|
-
import {
|
|
17
|
-
resolveCompositionViewportFromHtml
|
|
18
|
-
} from "./chunk-FH7WODJH.js";
|
|
15
|
+
} from "./chunk-EQXUGT5K.js";
|
|
19
16
|
import {
|
|
20
17
|
launchManagedBrowser,
|
|
21
18
|
resolveManagedGpuMode
|
|
22
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-YDGW5KWX.js";
|
|
23
20
|
import {
|
|
24
21
|
pageNavigationTimeoutMs
|
|
25
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-E6BMTU6F.js";
|
|
23
|
+
import {
|
|
24
|
+
resolveCompositionViewportFromHtml
|
|
25
|
+
} from "./chunk-ZFFKWHXN.js";
|
|
26
26
|
import {
|
|
27
27
|
defineCommand
|
|
28
28
|
} from "./chunk-S3S4TGEH.js";
|
|
@@ -39,7 +39,7 @@ import {
|
|
|
39
39
|
import {
|
|
40
40
|
printDeprecationNotice,
|
|
41
41
|
withMeta
|
|
42
|
-
} from "./chunk-
|
|
42
|
+
} from "./chunk-LJKMM3XW.js";
|
|
43
43
|
import {
|
|
44
44
|
normalizeErrorMessage
|
|
45
45
|
} from "./chunk-KNU5COPB.js";
|
|
@@ -227,7 +227,7 @@ function extractCompositionErrorsFromLint(lintResult) {
|
|
|
227
227
|
async function localizeRemoteAssets(html) {
|
|
228
228
|
let dir;
|
|
229
229
|
try {
|
|
230
|
-
const { loadProducer } = await import("./producer-
|
|
230
|
+
const { loadProducer } = await import("./producer-BLRL4SQP.js");
|
|
231
231
|
const { localizeRemoteMediaSources, localizeRemoteImageSources, localizeRemoteFontFaces } = await loadProducer();
|
|
232
232
|
dir = mkdtempSync(join(tmpdir(), "hf-validate-assets-"));
|
|
233
233
|
const assetDir = dir;
|
|
@@ -248,9 +248,9 @@ async function localizeRemoteAssets(html) {
|
|
|
248
248
|
}
|
|
249
249
|
async function validateInBrowser(project, opts) {
|
|
250
250
|
const projectDir = project.dir;
|
|
251
|
-
const { bundleToSingleHtml } = await import("./compiler-
|
|
251
|
+
const { bundleToSingleHtml } = await import("./compiler-EJE3HLCS.js");
|
|
252
252
|
const { ensureBrowser } = await import("./manager-UHWEKPXC.js");
|
|
253
|
-
const { serveStaticProjectHtml } = await import("./staticProjectServer-
|
|
253
|
+
const { serveStaticProjectHtml } = await import("./staticProjectServer-JMFGTPMX.js");
|
|
254
254
|
const { lintProject } = await import("./lintProject-XM3DLUKG.js");
|
|
255
255
|
const lintResult = await lintProject(projectDir);
|
|
256
256
|
const compositionErrors = extractCompositionErrorsFromLint(lintResult);
|
|
@@ -272,9 +272,9 @@ async function validateInBrowser(project, opts) {
|
|
|
272
272
|
try {
|
|
273
273
|
const browser = await ensureBrowser();
|
|
274
274
|
const puppeteer = await import("puppeteer-core");
|
|
275
|
-
const { buildChromeArgs, analyzeClipMediaFit } = await import("./src-
|
|
275
|
+
const { buildChromeArgs, analyzeClipMediaFit } = await import("./src-65S55XOQ.js");
|
|
276
276
|
const requestedGpuMode = resolveCliChromeGpuMode();
|
|
277
|
-
const { assertWebGpuAdapterAvailable, compositionRequiresWebGpu, resolveLocalWebGpu } = await import("./gpuPolicy-
|
|
277
|
+
const { assertWebGpuAdapterAvailable, compositionRequiresWebGpu, resolveLocalWebGpu } = await import("./gpuPolicy-MWZSLJFR.js");
|
|
278
278
|
const resolvedGpuMode = await resolveManagedGpuMode(requestedGpuMode, browser.executablePath);
|
|
279
279
|
const requiresWebGpu = compositionRequiresWebGpu(html);
|
|
280
280
|
const { gpuConfig, softwareWebGpu } = resolveLocalWebGpu(resolvedGpuMode, requiresWebGpu);
|
|
@@ -8,10 +8,10 @@ import {
|
|
|
8
8
|
DEFAULT_VP9_CPU_USED,
|
|
9
9
|
isHttpUrl,
|
|
10
10
|
runFfmpeg
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-4BINHKAB.js";
|
|
12
12
|
import {
|
|
13
13
|
parseAnimatedGifMetadata
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-56IOFIYB.js";
|
|
15
15
|
import {
|
|
16
16
|
parseHTML
|
|
17
17
|
} from "./chunk-SDYDNHEE.js";
|