hyperframes 0.8.128 → 0.8.129
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-DI4T5YLH.js → add-MFBQ4JQ3.js} +14 -14
- package/dist/{animatedGifPrep-TSK322QL.js → animatedGifPrep-P2T6YM7Z.js} +5 -5
- package/dist/{asset-CFW5RUI3.js → asset-LOZG7JHC.js} +2 -2
- package/dist/{assetCataloger-MDMKZM4O.js → assetCataloger-VBLPHX24.js} +2 -2
- package/dist/{auth-7GR2JYK4.js → auth-JKCXKQRS.js} +2 -2
- package/dist/{autoUpdate-VPEWPSH6.js → autoUpdate-5KHORE4C.js} +2 -2
- package/dist/{backgroundChecks-XU7Y6JEZ.js → backgroundChecks-DTVWBC74.js} +3 -3
- package/dist/backgroundChecksWorker.js +3 -3
- package/dist/{batchRender-HIRFZIUO.js → batchRender-FT7AP7XH.js} +3 -3
- package/dist/{beats-6EJDWT63.js → beats-ZLLBJMPB.js} +11 -11
- package/dist/{benchmark-F7U6WZGQ.js → benchmark-RU2FBIWR.js} +11 -11
- package/dist/{browser-3ECFI3DA.js → browser-RQV6NSLN.js} +8 -8
- package/dist/{bundleWithLocalizedFonts-OVFXAXV3.js → bundleWithLocalizedFonts-5QOPOB5D.js} +2 -2
- package/dist/{capture-YH5MUSL7.js → capture-RLZA6EMR.js} +8 -8
- package/dist/{capture-AC5TRHS5.js → capture-SZZ4IYJK.js} +2 -2
- package/dist/{catalog-TRZAPAXM.js → catalog-LYPHWJDJ.js} +14 -14
- package/dist/{check-HP7N4TPB.js → check-R4UNOR5Z.js} +30 -30
- package/dist/{checkBrowser-BHLSXZ3V.js → checkBrowser-RSUTDBXE.js} +29 -29
- package/dist/{chunk-YRKBFZDQ.js → chunk-2YN64IN5.js} +1 -1
- package/dist/{chunk-LGTAOCIM.js → chunk-3ZP5DXE7.js} +1 -1
- package/dist/{chunk-L5IFUB5G.js → chunk-557OWRHF.js} +2 -2
- package/dist/{chunk-A7VIBZLC.js → chunk-6CTIGJY7.js} +1 -1
- package/dist/{chunk-6RGOHYPP.js → chunk-7HG4BFIN.js} +1 -1
- package/dist/{chunk-FN7KZDH7.js → chunk-7JZ4FXP2.js} +1 -1
- package/dist/{chunk-KC5COKLP.js → chunk-A2Z4Z4VL.js} +1 -1
- package/dist/{chunk-OESXJGYM.js → chunk-B6YD6JAS.js} +1 -1
- package/dist/{chunk-CF6QQ6CL.js → chunk-BI6TVCDI.js} +7 -7
- package/dist/{chunk-BELUXCL4.js → chunk-CFKU7HTK.js} +1 -1
- package/dist/{chunk-LRDOFHS5.js → chunk-CWPVM2QV.js} +2 -2
- package/dist/{chunk-QPRIMML2.js → chunk-FCSIGXXP.js} +1 -1
- package/dist/{chunk-VQME2GRN.js → chunk-GO74M65A.js} +9 -9
- package/dist/{chunk-BK2KLAYO.js → chunk-GOAUWA46.js} +2 -2
- package/dist/{chunk-H5TVAQAK.js → chunk-H64TB7NB.js} +4 -4
- package/dist/{chunk-4DGJUQFZ.js → chunk-HRUGC23L.js} +1 -1
- package/dist/chunk-HWKCIWQT.js +3578 -0
- package/dist/{chunk-4IZNC32H.js → chunk-IUZFXWSV.js} +1 -1
- package/dist/{chunk-JDNYDR3Y.js → chunk-IXCQU5RO.js} +1 -1
- package/dist/{chunk-WULYBA5Y.js → chunk-JO2J4S2L.js} +3 -3
- package/dist/{chunk-COD4GMYB.js → chunk-K2EQN4VU.js} +1 -1
- package/dist/{chunk-77EJSKGP.js → chunk-K2FTXJYH.js} +2 -2
- package/dist/{chunk-2CACHG7K.js → chunk-KBJUXVOJ.js} +3 -3
- package/dist/{chunk-AQUXI6ZL.js → chunk-KHSCFD7K.js} +5 -5
- package/dist/{chunk-UROSVQOH.js → chunk-LHSR3M4M.js} +2 -2
- package/dist/{chunk-6F63NYFZ.js → chunk-LYNI3FOL.js} +1 -1
- package/dist/{chunk-56P5SEOM.js → chunk-MWB3ZIFM.js} +1 -1
- package/dist/{chunk-ZT4WM4B6.js → chunk-NTIV6QFJ.js} +9 -9
- package/dist/{chunk-34C66AH5.js → chunk-Q7IU7MOR.js} +2 -2
- package/dist/{chunk-BE6X3G5C.js → chunk-QC4FJVLM.js} +1 -1
- package/dist/{chunk-72WHJNAR.js → chunk-QZDMFVY7.js} +2 -2
- package/dist/{chunk-BW773MMX.js → chunk-RMHUQGRK.js} +2 -2
- package/dist/{chunk-KUZTSKD2.js → chunk-RZAAVJ2F.js} +1 -1
- package/dist/{chunk-5NZVDRRZ.js → chunk-S7NPLFWV.js} +88 -16
- package/dist/{chunk-RLK4ARFU.js → chunk-TCLGPL65.js} +1 -1
- package/dist/{chunk-4AH73ZQW.js → chunk-UBC3SMKR.js} +1 -1
- package/dist/{chunk-Q767NO4V.js → chunk-UDO4A3HY.js} +3 -3
- package/dist/{chunk-3PDQ4PS2.js → chunk-UEZXMWG3.js} +2 -2
- package/dist/{chunk-IKSUSTJT.js → chunk-WWTEA2BG.js} +1 -1
- package/dist/{chunk-4QJQOVN4.js → chunk-XS4EJSKU.js} +1 -1
- package/dist/{chunk-VKBSHU24.js → chunk-YQZNILVH.js} +5 -5
- package/dist/{chunk-WVU5CJXG.js → chunk-Z6B37SNM.js} +1 -1
- package/dist/{chunk-QFQET76X.js → chunk-ZMXUQLI2.js} +7 -7
- package/dist/{clean-6Q36AWQL.js → clean-RDKBYQYS.js} +14 -14
- package/dist/cli.js +51 -51
- package/dist/{cloud-GQ5UHZZN.js → cloud-DRCSH3RO.js} +4 -4
- package/dist/{cloudrun-JD7H36SS.js → cloudrun-AJUTHUEA.js} +3 -3
- package/dist/{compare-YONA7IFI.js → compare-EJNCWA7A.js} +24 -24
- package/dist/{compiler-GNV7YQRO.js → compiler-QO36EXLS.js} +2 -2
- package/dist/{component-BXHWGVG4.js → component-55TKGKMP.js} +3 -3
- package/dist/{compositions-XC7Y2FPL.js → compositions-LDU2NXG3.js} +10 -10
- package/dist/{delete-73UVP2DH.js → delete-M5FEYAQW.js} +2 -2
- package/dist/{dist-NDHKRZTY.js → dist-S3PJNPXQ.js} +2 -2
- package/dist/{doctor-J76TZOKL.js → doctor-AGGUO5NJ.js} +9 -9
- package/dist/{events-FB2W7SMV.js → events-CIWUMG4Z.js} +8 -8
- package/dist/{events-I3JMSDHY.js → events-LBZKC7L7.js} +7 -7
- package/dist/{feedback-WSIA7ROU.js → feedback-J7I7VS4Q.js} +9 -9
- package/dist/{figma-YOJEBRSS.js → figma-2AIFPR3T.js} +3 -3
- package/dist/fontLocalizeCli.js +7 -7
- package/dist/{get-DXEKFVNL.js → get-ZJBDIWZJ.js} +2 -2
- package/dist/{gpuPolicy-IGXJ6JGL.js → gpuPolicy-2ZUZE5D6.js} +5 -5
- package/dist/{grade-compare-PXBFW53F.js → grade-compare-XVYJT6ZR.js} +24 -24
- package/dist/{help-Z6TEXIAO.js → help-TBVVVEDS.js} +1 -1
- package/dist/{history-EFWP3CMR.js → history-NZPEQU4L.js} +14 -14
- package/dist/hyperframe-runtime.js +30 -30
- package/dist/hyperframe.manifest.json +1 -1
- package/dist/hyperframe.runtime.iife.js +30 -30
- package/dist/hyperframes-player.global.js +3 -3
- package/dist/{info-AQ2ZLWSB.js → info-T6BT2MFN.js} +10 -10
- package/dist/{init-6ZEBBSR5.js → init-4EPQ7SDV.js} +21 -21
- package/dist/{inspect-EUOV4DGL.js → inspect-BPZFMWWW.js} +25 -25
- package/dist/{installer-WI6EKOWS.js → installer-K6O5WF44.js} +4 -4
- package/dist/{keyframes-U6LVMYGO.js → keyframes-UL3XY52K.js} +11 -11
- package/dist/{lambda-F6SI24C7.js → lambda-D7UMN4DJ.js} +4 -4
- package/dist/{layout-VQRYMZRP.js → layout-YYGOEQKI.js} +25 -25
- package/dist/{lint-EBHMQRKO.js → lint-OW2KOTEE.js} +11 -11
- package/dist/{list-EUOXTLX6.js → list-EIDAPK3I.js} +2 -2
- package/dist/{login-OXGFQNHT.js → login-DWU6OUCZ.js} +4 -4
- package/dist/{media-treatment-TVCTGGDO.js → media-treatment-I7BTOWX4.js} +11 -11
- package/dist/{models-XNX7UHKU.js → models-C4E4IWJD.js} +6 -6
- package/dist/{motionShot-JXQIO5VJ.js → motionShot-S4MIGMT5.js} +11 -11
- package/dist/{normalize-audio-L5LTPJIR.js → normalize-audio-X2M4VF2O.js} +10 -10
- package/dist/{open-BON6TWUG.js → open-35JKHN2G.js} +9 -9
- package/dist/{pipeline-NID4HZDH.js → pipeline-TNGWUZQC.js} +5 -5
- package/dist/{play-GH43JSBS.js → play-F2LMNJEH.js} +19 -19
- package/dist/{preflight-VSZD4AND.js → preflight-SMNV6RW2.js} +6 -6
- package/dist/{present-7PTSYTYU.js → present-AD4N25LI.js} +15 -15
- package/dist/{preview-X2WVPV66.js → preview-QWMTUNE2.js} +16 -16
- package/dist/{producer-TLATG6GZ.js → producer-ECLEN5RP.js} +1 -1
- package/dist/{projectConfig-KKPSSHER.js → projectConfig-HYJMJ5BY.js} +6 -6
- package/dist/{publication-6BFZTAYA.js → publication-HQ5Y3KBM.js} +2 -2
- package/dist/{publish-ZDRTAWEH.js → publish-VHDYQASC.js} +7 -7
- package/dist/{remove-background-OZ4OR3B2.js → remove-background-W2YX2NVH.js} +6 -6
- package/dist/{render-ZH5ZCLWA.js → render-2HZ6WDVA.js} +11 -11
- package/dist/{render-U3BRPPSW.js → render-AO5VX3YI.js} +3 -3
- package/dist/{render-ZTIEKMAN.js → render-JJVVEVIZ.js} +20 -20
- package/dist/{render-batch-3JALVFQN.js → render-batch-YH7CTWNY.js} +3 -3
- package/dist/{renderCancellation-NHRJYSHT.js → renderCancellation-JPIHE47X.js} +5 -5
- package/dist/{resolver-Z2T2GU2O.js → resolver-IZ647GBZ.js} +4 -4
- package/dist/{sherpa-DRIVXEAC.js → sherpa-KKLNW6U2.js} +6 -6
- package/dist/{skills-XLN4DLZP.js → skills-O7QZLKAG.js} +10 -10
- package/dist/{skillsUpdateCheck-CDL66I4W.js → skillsUpdateCheck-W563PHIX.js} +3 -3
- package/dist/{snapshot-63YZCABA.js → snapshot-4M37T4WP.js} +25 -25
- package/dist/{src-3Q2T2TAT.js → src-6YQBJGWR.js} +6 -6
- package/dist/{src-3M44XVWE.js → src-PVYUYV3M.js} +4 -4
- package/dist/{staticProjectServer-F563BICS.js → staticProjectServer-7EU666GS.js} +13 -13
- package/dist/{status-HPLBWFSU.js → status-YM52BQ6S.js} +5 -5
- package/dist/studio/assets/{hyperframes-player-CKCx0CFA.js → hyperframes-player-DfEcBl9r.js} +1 -1
- package/dist/studio/assets/{index-CF31Pq1E.js → index-9ZaZFCMZ.js} +1 -1
- package/dist/studio/assets/{index-CwS08gWW.js → index-Bmy-KVib.js} +1 -1
- package/dist/studio/assets/{index-ClLzyuwb.js → index-C9YkEyN4.js} +154 -154
- package/dist/studio/index.html +1 -1
- package/dist/studio/index.js +206 -51
- package/dist/studio/index.js.map +1 -1
- package/dist/{studio-api-PH5PMXQW.js → studio-api-PNQZRPX5.js} +7 -7
- package/dist/{studioServer-4CEIYT2G.js → studioServer-PTUEDJ4R.js} +44 -38
- package/dist/{system-G6PL23LG.js → system-EZYZNUFD.js} +5 -5
- package/dist/{telemetry-ILX6SWZM.js → telemetry-DTSHY4NX.js} +8 -8
- package/dist/{timeline-3K3WNFPP.js → timeline-OQEMNGIW.js} +14 -14
- package/dist/{tokens-GKA5I6SX.js → tokens-IGPEYHDJ.js} +2 -2
- package/dist/{transcribe-P76R64RU.js → transcribe-BNSJRR4M.js} +6 -6
- package/dist/{transcribe-ZZSCMKNC.js → transcribe-LC5JLRDF.js} +11 -11
- package/dist/{updateCheck-QBLDWYDK.js → updateCheck-OJAVDMMV.js} +2 -2
- package/dist/{upgrade-RDBANWHF.js → upgrade-2G4MARM4.js} +2 -2
- package/dist/{urlDownloader-VVG2YURO.js → urlDownloader-H6WRI2UE.js} +4 -4
- package/dist/{validate-55V46LZZ.js → validate-MOUGAHM2.js} +15 -15
- package/dist/{video-S2W6UQ4H.js → video-FGSGKRSV.js} +5 -5
- package/package.json +1 -1
- package/dist/chunk-AQIS2UNW.js +0 -3578
|
@@ -8,16 +8,16 @@ import {
|
|
|
8
8
|
flush,
|
|
9
9
|
shouldTrack,
|
|
10
10
|
trackEvent
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-UDO4A3HY.js";
|
|
12
12
|
import {
|
|
13
13
|
getPowerState
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-IUZFXWSV.js";
|
|
15
15
|
import {
|
|
16
16
|
CliRuntimeError
|
|
17
17
|
} from "./chunk-PBN6GBJE.js";
|
|
18
18
|
import {
|
|
19
19
|
redactTelemetryString
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-2YN64IN5.js";
|
|
21
21
|
import {
|
|
22
22
|
readConfig
|
|
23
23
|
} from "./chunk-XUXGIA7H.js";
|
|
@@ -22,7 +22,7 @@ import {
|
|
|
22
22
|
renderFrameIdForRenderId,
|
|
23
23
|
resolveAuthoredTimingWindow,
|
|
24
24
|
toFps
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-2YN64IN5.js";
|
|
26
26
|
import {
|
|
27
27
|
AUDIO_GROUP_RENDER_ID_ATTR,
|
|
28
28
|
COLOR_GRADING_SOURCE_HIDDEN_ATTR,
|
|
@@ -52,7 +52,7 @@ import {
|
|
|
52
52
|
shiftRateLane,
|
|
53
53
|
sourceTimeAt,
|
|
54
54
|
timeAtSourceTime
|
|
55
|
-
} from "./chunk-
|
|
55
|
+
} from "./chunk-HWKCIWQT.js";
|
|
56
56
|
import {
|
|
57
57
|
chromeMajorCeiling,
|
|
58
58
|
exceedsChromeCeiling
|
|
@@ -7,7 +7,7 @@ var __dirname = __hf_dirname(__filename);
|
|
|
7
7
|
import {
|
|
8
8
|
getMimeType,
|
|
9
9
|
injectMediaCodecMapIntoHtml
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-S7NPLFWV.js";
|
|
11
11
|
import {
|
|
12
12
|
PROXY_VARIANT_CONFIG,
|
|
13
13
|
ProxyCapacityError,
|
|
@@ -18,10 +18,10 @@ import {
|
|
|
18
18
|
recordProxyRequest,
|
|
19
19
|
resolveProxy,
|
|
20
20
|
resolveProxyVariantRequest
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-TCLGPL65.js";
|
|
22
22
|
import {
|
|
23
23
|
resolveAutoProxy
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-CFKU7HTK.js";
|
|
25
25
|
|
|
26
26
|
// src/utils/staticProjectServer.ts
|
|
27
27
|
import { createServer } from "http";
|
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
} from "./chunk-5ETJX6WM.js";
|
|
17
17
|
import {
|
|
18
18
|
runEnvironmentChecks
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-FCSIGXXP.js";
|
|
20
20
|
import {
|
|
21
21
|
c
|
|
22
22
|
} from "./chunk-ZTZA4UWZ.js";
|
|
@@ -25,24 +25,24 @@ import {
|
|
|
25
25
|
getFreeDiskMb,
|
|
26
26
|
getShmSizeMb,
|
|
27
27
|
getSystemMeta
|
|
28
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-IUZFXWSV.js";
|
|
29
29
|
import {
|
|
30
30
|
defineCommand
|
|
31
31
|
} from "./chunk-S3S4TGEH.js";
|
|
32
32
|
import {
|
|
33
33
|
resolveExtractCacheDir
|
|
34
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-K2FTXJYH.js";
|
|
35
35
|
import {
|
|
36
36
|
getUpdateMeta,
|
|
37
37
|
withMeta
|
|
38
|
-
} from "./chunk-
|
|
38
|
+
} from "./chunk-B6YD6JAS.js";
|
|
39
39
|
import {
|
|
40
40
|
CONFIG_PATH,
|
|
41
41
|
withFileLock
|
|
42
42
|
} from "./chunk-XUXGIA7H.js";
|
|
43
43
|
import {
|
|
44
44
|
VERSION
|
|
45
|
-
} from "./chunk-
|
|
45
|
+
} from "./chunk-557OWRHF.js";
|
|
46
46
|
import {
|
|
47
47
|
normalizeErrorMessage
|
|
48
48
|
} from "./chunk-KNU5COPB.js";
|
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
import {
|
|
17
17
|
DEFAULT_VP9_CPU_USED,
|
|
18
18
|
renderProvenanceArgs
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-K2FTXJYH.js";
|
|
20
20
|
import {
|
|
21
21
|
loadOptionalPackage
|
|
22
22
|
} from "./chunk-XT5P4QMO.js";
|
|
@@ -202,7 +202,7 @@ function inferInputKind(inputPath) {
|
|
|
202
202
|
}
|
|
203
203
|
async function probeMedia(inputPath) {
|
|
204
204
|
const isImage = inferInputKind(inputPath) === "image";
|
|
205
|
-
const engine = await import("./src-
|
|
205
|
+
const engine = await import("./src-PVYUYV3M.js");
|
|
206
206
|
const meta = await engine.extractMediaMetadata(inputPath);
|
|
207
207
|
if (isImage) {
|
|
208
208
|
return { width: meta.width, height: meta.height, fps: 0, frameCount: 1 };
|
|
@@ -9,17 +9,17 @@ import {
|
|
|
9
9
|
resolveCliChromeGpuMode,
|
|
10
10
|
seekCompositionTimeline,
|
|
11
11
|
waitForRuntimeReady
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-YQZNILVH.js";
|
|
13
13
|
import {
|
|
14
14
|
resolveCompositionViewportFromHtml
|
|
15
15
|
} from "./chunk-5Z63TBTX.js";
|
|
16
16
|
import {
|
|
17
17
|
launchManagedBrowser,
|
|
18
18
|
resolveManagedGpuMode
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-7HG4BFIN.js";
|
|
20
20
|
import {
|
|
21
21
|
resolveProject
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-IXCQU5RO.js";
|
|
23
23
|
import {
|
|
24
24
|
c
|
|
25
25
|
} from "./chunk-ZTZA4UWZ.js";
|
|
@@ -33,7 +33,7 @@ import {
|
|
|
33
33
|
import {
|
|
34
34
|
printDeprecationNotice,
|
|
35
35
|
withMeta
|
|
36
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-B6YD6JAS.js";
|
|
37
37
|
import {
|
|
38
38
|
normalizeErrorMessage
|
|
39
39
|
} from "./chunk-KNU5COPB.js";
|
|
@@ -222,7 +222,7 @@ function extractCompositionErrorsFromLint(lintResult) {
|
|
|
222
222
|
async function localizeRemoteAssets(html) {
|
|
223
223
|
let dir;
|
|
224
224
|
try {
|
|
225
|
-
const { loadProducer } = await import("./producer-
|
|
225
|
+
const { loadProducer } = await import("./producer-ECLEN5RP.js");
|
|
226
226
|
const { localizeRemoteMediaSources, localizeRemoteImageSources, localizeRemoteFontFaces } = await loadProducer();
|
|
227
227
|
dir = mkdtempSync(join(tmpdir(), "hf-validate-assets-"));
|
|
228
228
|
const assetDir = dir;
|
|
@@ -243,9 +243,9 @@ async function localizeRemoteAssets(html) {
|
|
|
243
243
|
}
|
|
244
244
|
async function validateInBrowser(project, opts) {
|
|
245
245
|
const projectDir = project.dir;
|
|
246
|
-
const { bundleToSingleHtml } = await import("./compiler-
|
|
246
|
+
const { bundleToSingleHtml } = await import("./compiler-QO36EXLS.js");
|
|
247
247
|
const { ensureBrowser } = await import("./manager-CT3D67CG.js");
|
|
248
|
-
const { serveStaticProjectHtml } = await import("./staticProjectServer-
|
|
248
|
+
const { serveStaticProjectHtml } = await import("./staticProjectServer-7EU666GS.js");
|
|
249
249
|
const { lintProject } = await import("./lintProject-OHBBM3DJ.js");
|
|
250
250
|
const lintResult = await lintProject(projectDir);
|
|
251
251
|
const compositionErrors = extractCompositionErrorsFromLint(lintResult);
|
|
@@ -267,9 +267,9 @@ async function validateInBrowser(project, opts) {
|
|
|
267
267
|
try {
|
|
268
268
|
const browser = await ensureBrowser();
|
|
269
269
|
const puppeteer = await import("puppeteer-core");
|
|
270
|
-
const { buildChromeArgs, analyzeClipMediaFit } = await import("./src-
|
|
270
|
+
const { buildChromeArgs, analyzeClipMediaFit } = await import("./src-PVYUYV3M.js");
|
|
271
271
|
const requestedGpuMode = resolveCliChromeGpuMode();
|
|
272
|
-
const { assertWebGpuAdapterAvailable, compositionRequiresWebGpu } = await import("./gpuPolicy-
|
|
272
|
+
const { assertWebGpuAdapterAvailable, compositionRequiresWebGpu } = await import("./gpuPolicy-2ZUZE5D6.js");
|
|
273
273
|
const resolvedGpuMode = await resolveManagedGpuMode(requestedGpuMode, browser.executablePath);
|
|
274
274
|
const requiresWebGpu = compositionRequiresWebGpu(html);
|
|
275
275
|
const chromeBrowser = await launchManagedBrowser(puppeteer.default, {
|
|
@@ -8,10 +8,10 @@ import {
|
|
|
8
8
|
DEFAULT_VP9_CPU_USED,
|
|
9
9
|
isHttpUrl,
|
|
10
10
|
runFfmpeg
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-K2FTXJYH.js";
|
|
12
12
|
import {
|
|
13
13
|
parseAnimatedGifMetadata
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-2YN64IN5.js";
|
|
15
15
|
import {
|
|
16
16
|
parseHTML
|
|
17
17
|
} from "./chunk-GK4AIFIH.js";
|
|
@@ -20,7 +20,7 @@ import {
|
|
|
20
20
|
typeDirPath,
|
|
21
21
|
updateRecord,
|
|
22
22
|
withFigmaErrors
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-WWTEA2BG.js";
|
|
24
24
|
import {
|
|
25
25
|
defineCommand
|
|
26
26
|
} from "./chunk-S3S4TGEH.js";
|
|
@@ -221,7 +221,7 @@ var asset_default = defineCommand({
|
|
|
221
221
|
rendered > 0 ? `(${results.length} nodes, ${rendered} rendered in 1 figma request)` : `(${results.length} nodes, all reused from cache \u2014 no figma request)`
|
|
222
222
|
);
|
|
223
223
|
}
|
|
224
|
-
const { trackFigmaImport } = await import("./telemetry-
|
|
224
|
+
const { trackFigmaImport } = await import("./telemetry-DTSHY4NX.js");
|
|
225
225
|
trackFigmaImport({
|
|
226
226
|
phase: "asset",
|
|
227
227
|
reused: results.every((r) => r.reused),
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
isAllowedHtmlAttribute,
|
|
9
9
|
isSafeAttributeValue,
|
|
10
10
|
sanitizeRichTextChildren
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-2YN64IN5.js";
|
|
12
12
|
import {
|
|
13
13
|
removeElementWithGsapCascade
|
|
14
14
|
} from "./chunk-AVUUN2XD.js";
|
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
ensureHfIds,
|
|
18
18
|
mintHfId,
|
|
19
19
|
walkCompositionDescendants
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-Z6B37SNM.js";
|
|
21
21
|
import {
|
|
22
22
|
require_dist
|
|
23
23
|
} from "./chunk-ZJUKFZ2P.js";
|
|
@@ -21,7 +21,7 @@ import {
|
|
|
21
21
|
splitElementInHtml,
|
|
22
22
|
unwrapElementsFromHtml,
|
|
23
23
|
wrapElementsInHtml
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-RMHUQGRK.js";
|
|
25
25
|
import {
|
|
26
26
|
atomicTempPath,
|
|
27
27
|
createFileAtomically,
|
|
@@ -34,7 +34,7 @@ import {
|
|
|
34
34
|
measureAudio,
|
|
35
35
|
requiredFfmpeg,
|
|
36
36
|
resolveLocalAudioPath
|
|
37
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-QC4FJVLM.js";
|
|
38
38
|
import {
|
|
39
39
|
PROXY_PARAMS_VERSION,
|
|
40
40
|
PROXY_PENDING_RETRY_AFTER_SECONDS,
|
|
@@ -60,7 +60,7 @@ import {
|
|
|
60
60
|
shouldPrewarmProxy,
|
|
61
61
|
waitForProxy,
|
|
62
62
|
walkDir
|
|
63
|
-
} from "./chunk-
|
|
63
|
+
} from "./chunk-TCLGPL65.js";
|
|
64
64
|
import {
|
|
65
65
|
findTimelineScript,
|
|
66
66
|
parseGsapScriptAcorn
|
|
@@ -81,7 +81,7 @@ import {
|
|
|
81
81
|
motionPathPluginUrl,
|
|
82
82
|
parseFps,
|
|
83
83
|
sameInstant
|
|
84
|
-
} from "./chunk-
|
|
84
|
+
} from "./chunk-2YN64IN5.js";
|
|
85
85
|
import {
|
|
86
86
|
MagicString,
|
|
87
87
|
VALID_CANVAS_RESOLUTIONS,
|
|
@@ -92,7 +92,7 @@ import {
|
|
|
92
92
|
addScenePartsManifest,
|
|
93
93
|
deferScriptsUntilFonts,
|
|
94
94
|
ensureHfIds
|
|
95
|
-
} from "./chunk-
|
|
95
|
+
} from "./chunk-Z6B37SNM.js";
|
|
96
96
|
import {
|
|
97
97
|
RUNTIME_BOOTSTRAP_ATTR,
|
|
98
98
|
findStartTags,
|
|
@@ -104,7 +104,7 @@ import {
|
|
|
104
104
|
resolveRateSpec,
|
|
105
105
|
sourceTimeAt,
|
|
106
106
|
stripEmbeddedRuntimeScripts
|
|
107
|
-
} from "./chunk-
|
|
107
|
+
} from "./chunk-HWKCIWQT.js";
|
|
108
108
|
import {
|
|
109
109
|
ProjectRootMissingError,
|
|
110
110
|
folderGone,
|
|
@@ -222,7 +222,7 @@ function stampFileHfIds(filePath) {
|
|
|
222
222
|
}
|
|
223
223
|
}
|
|
224
224
|
|
|
225
|
-
// ../studio-server/dist/chunk-
|
|
225
|
+
// ../studio-server/dist/chunk-36F5I56K.js
|
|
226
226
|
import { randomUUID as randomUUID6 } from "crypto";
|
|
227
227
|
import { mkdir as mkdir2, readdir as readdir3, rm as rm3, rmdir, writeFile } from "fs/promises";
|
|
228
228
|
import {
|
|
@@ -906,13 +906,16 @@ function saveRecord(file, log, record) {
|
|
|
906
906
|
closeSync2(fd);
|
|
907
907
|
}
|
|
908
908
|
}
|
|
909
|
+
function baselineRecord(log) {
|
|
910
|
+
return {
|
|
911
|
+
type: "baseline",
|
|
912
|
+
files: Object.fromEntries(log.baseline),
|
|
913
|
+
...log.keepsLedger && { keepsLedger: true }
|
|
914
|
+
};
|
|
915
|
+
}
|
|
909
916
|
function writeLog(file, log) {
|
|
910
917
|
const records = [
|
|
911
|
-
|
|
912
|
-
type: "baseline",
|
|
913
|
-
files: Object.fromEntries(log.baseline),
|
|
914
|
-
...log.keepsLedger && { keepsLedger: true }
|
|
915
|
-
},
|
|
918
|
+
baselineRecord(log),
|
|
916
919
|
...log.entries.map((entry) => ({ type: "entry", entry })),
|
|
917
920
|
...[...log.pins].map((id) => ({ type: "pin", id, pinned: true }))
|
|
918
921
|
];
|
|
@@ -1007,6 +1010,7 @@ function withoutHiddenPaths(log) {
|
|
|
1007
1010
|
return log;
|
|
1008
1011
|
}
|
|
1009
1012
|
var historyFiles = (dir) => listProjectFiles(dir).filter((file) => isHistoryPath(file.path));
|
|
1013
|
+
var COPY_LATER_ABOVE_BYTES = 1024 ** 2;
|
|
1010
1014
|
var sameWho = (a, b) => a.kind === b.kind && a.name === b.name;
|
|
1011
1015
|
function splitAt(change, at, kept) {
|
|
1012
1016
|
if (at === change.after) return [change, null];
|
|
@@ -1088,6 +1092,7 @@ var Engine = class {
|
|
|
1088
1092
|
outside = null;
|
|
1089
1093
|
/** A coalescing claim, open until another key, its idle timer, an operation, a window, or another write. */
|
|
1090
1094
|
claimed = null;
|
|
1095
|
+
adopting = /* @__PURE__ */ new Map();
|
|
1091
1096
|
/** Per path and hash an API write left, the hash of the bytes it replaced, until walked or written past. */
|
|
1092
1097
|
overwritten = /* @__PURE__ */ new Map();
|
|
1093
1098
|
stopHearing;
|
|
@@ -1158,6 +1163,9 @@ var Engine = class {
|
|
|
1158
1163
|
const cached = cache.get(path);
|
|
1159
1164
|
this.tracked.set(path, { hash, stat: cached?.hash === hash ? cached.stat : "" });
|
|
1160
1165
|
}
|
|
1166
|
+
const left = this.readAdopting();
|
|
1167
|
+
const unadopted = (file) => left.has(file.path) && !this.tracked.has(file.path);
|
|
1168
|
+
this.adoptMediaInBackground(historyFiles(this.dir).filter(unadopted), this.now());
|
|
1161
1169
|
this.reopenClosedWindow();
|
|
1162
1170
|
await this.settleAll();
|
|
1163
1171
|
}
|
|
@@ -1210,7 +1218,8 @@ var Engine = class {
|
|
|
1210
1218
|
}
|
|
1211
1219
|
async firstOpen() {
|
|
1212
1220
|
const sweptAt = this.now();
|
|
1213
|
-
|
|
1221
|
+
const files = historyFiles(this.dir);
|
|
1222
|
+
for (const file of files.filter((file2) => file2.size <= COPY_LATER_ABOVE_BYTES)) {
|
|
1214
1223
|
const hash = await this.storeIfPresent(file.path);
|
|
1215
1224
|
if (this.whereFolder() !== "here") throw this.replaced();
|
|
1216
1225
|
if (hash !== null) this.tracked.set(file.path, { hash, stat: statKey(file, sweptAt) });
|
|
@@ -1219,6 +1228,50 @@ var Engine = class {
|
|
|
1219
1228
|
this.log.keepsLedger = true;
|
|
1220
1229
|
this.persistLog();
|
|
1221
1230
|
this.saveStatCache();
|
|
1231
|
+
this.adoptMediaInBackground(
|
|
1232
|
+
files.filter((file) => file.size > COPY_LATER_ABOVE_BYTES),
|
|
1233
|
+
sweptAt
|
|
1234
|
+
);
|
|
1235
|
+
}
|
|
1236
|
+
adoptMediaInBackground(files, sweptAt) {
|
|
1237
|
+
let copied = Promise.resolve();
|
|
1238
|
+
for (const file of files) {
|
|
1239
|
+
copied = copied.then(() => this.adopt(file, sweptAt));
|
|
1240
|
+
this.adopting.set(file.path, copied);
|
|
1241
|
+
}
|
|
1242
|
+
this.saveAdopting();
|
|
1243
|
+
}
|
|
1244
|
+
saveAdopting() {
|
|
1245
|
+
const file = join5(this.home, "adopting.json");
|
|
1246
|
+
if (!this.adopting.size) return rmSync2(file, { force: true });
|
|
1247
|
+
mkdirSync4(this.home, { recursive: true });
|
|
1248
|
+
replaceFileAtomically(file, JSON.stringify([...this.adopting.keys()]), 420);
|
|
1249
|
+
}
|
|
1250
|
+
async adopt(file, sweptAt) {
|
|
1251
|
+
try {
|
|
1252
|
+
if (this.whereFolder() !== "here") return;
|
|
1253
|
+
const stored = await this.storeIfPresent(file.path);
|
|
1254
|
+
await this.queue(async () => {
|
|
1255
|
+
await this.recordAdopted(file, sweptAt, stored);
|
|
1256
|
+
this.adopting.delete(file.path);
|
|
1257
|
+
this.saveAdopting();
|
|
1258
|
+
});
|
|
1259
|
+
} catch (error) {
|
|
1260
|
+
if (!(error instanceof HistoryClosedError)) this.options.onError?.(error);
|
|
1261
|
+
}
|
|
1262
|
+
}
|
|
1263
|
+
async recordAdopted(file, sweptAt, stored) {
|
|
1264
|
+
if (stored === null || this.whereFolder() !== "here") return;
|
|
1265
|
+
const hash = this.blobs.has(stored) ? stored : await this.storeIfPresent(file.path);
|
|
1266
|
+
if (hash === null) return;
|
|
1267
|
+
const change = { path: file.path, before: null, after: hash };
|
|
1268
|
+
const found = this.overwrittenBy(change, void 0, /* @__PURE__ */ new Set());
|
|
1269
|
+
const start = found && this.blobs.has(found) ? found : hash;
|
|
1270
|
+
this.tracked.set(file.path, { hash, stat: statKey(file, sweptAt) });
|
|
1271
|
+
this.log.baseline.set(file.path, start);
|
|
1272
|
+
if (start !== hash) addChange(this.outsideGroup(), file.path, start, hash);
|
|
1273
|
+
this.persistLog(baselineRecord(this.log));
|
|
1274
|
+
this.saveStatCache();
|
|
1222
1275
|
}
|
|
1223
1276
|
manifest() {
|
|
1224
1277
|
return new Map([...this.tracked].map(([path, file]) => [path, file.hash]));
|
|
@@ -1231,6 +1284,15 @@ var Engine = class {
|
|
|
1231
1284
|
return /* @__PURE__ */ new Map();
|
|
1232
1285
|
}
|
|
1233
1286
|
}
|
|
1287
|
+
readAdopting() {
|
|
1288
|
+
try {
|
|
1289
|
+
return new Set(
|
|
1290
|
+
JSON.parse(readFileSync6(join5(this.home, "adopting.json"), "utf-8"))
|
|
1291
|
+
);
|
|
1292
|
+
} catch {
|
|
1293
|
+
return /* @__PURE__ */ new Set();
|
|
1294
|
+
}
|
|
1295
|
+
}
|
|
1234
1296
|
saveStatCache() {
|
|
1235
1297
|
const files = JSON.stringify(Object.fromEntries(this.tracked));
|
|
1236
1298
|
mkdirSync4(this.home, { recursive: true });
|
|
@@ -1244,7 +1306,7 @@ var Engine = class {
|
|
|
1244
1306
|
if (this.whereFolder() !== "here") return;
|
|
1245
1307
|
const sweptAt = this.now();
|
|
1246
1308
|
const changedAt = (file) => Math.min(sweptAt, Math.max(file.mtimeMs, file.ctimeMs));
|
|
1247
|
-
const seen = historyFiles(this.dir);
|
|
1309
|
+
const seen = historyFiles(this.dir).filter((file) => !this.adopting.has(file.path));
|
|
1248
1310
|
const heard = new Map(this.overwritten);
|
|
1249
1311
|
const present = new Set(seen.map((file) => file.path));
|
|
1250
1312
|
const removed = [...this.tracked.keys()].filter((path) => !present.has(path)).map((path) => {
|
|
@@ -1708,7 +1770,10 @@ var Engine = class {
|
|
|
1708
1770
|
return {
|
|
1709
1771
|
projectId: this.projectId,
|
|
1710
1772
|
beginWindow: (who, label, options = {}) => this.beginWindow(who, label, options.idleMs ?? this.options.maxGroupMs ?? 3e4),
|
|
1711
|
-
claim: (who, label, paths, options = {}) =>
|
|
1773
|
+
claim: async (who, label, paths, options = {}) => {
|
|
1774
|
+
await Promise.all(paths.map((path) => this.adopting.get(this.logPath(path))));
|
|
1775
|
+
return this.queue(() => this.claimNow(who, label, paths, options));
|
|
1776
|
+
},
|
|
1712
1777
|
noteChange: (path) => {
|
|
1713
1778
|
if (!this.closed) this.noteChange(path);
|
|
1714
1779
|
},
|
|
@@ -1774,6 +1839,7 @@ var Engine = class {
|
|
|
1774
1839
|
flush: () => this.queue(() => this.settleAll()),
|
|
1775
1840
|
replacedAtPath: () => this.whereFolder() === "replaced",
|
|
1776
1841
|
close: () => this.closing ??= (async () => {
|
|
1842
|
+
await Promise.all(this.adopting.values());
|
|
1777
1843
|
if (this.notedTimer) clearTimeout(this.notedTimer);
|
|
1778
1844
|
this.stopHearing?.();
|
|
1779
1845
|
const settled = this.queue(() => this.settleAll());
|
|
@@ -6665,7 +6731,7 @@ async function prepareGsapMutationScript(c, res, firstMutation) {
|
|
|
6665
6731
|
let block = extractGsapScriptBlock(html);
|
|
6666
6732
|
if (!block && (firstMutation.type === "add" || firstMutation.type === "add-with-keyframes")) {
|
|
6667
6733
|
const compId = html.match(/data-composition-id="([^"]+)"/)?.[1] ?? "main";
|
|
6668
|
-
const { GSAP_CDN } = await import("./dist-
|
|
6734
|
+
const { GSAP_CDN } = await import("./dist-S3PJNPXQ.js");
|
|
6669
6735
|
const bootstrap = [
|
|
6670
6736
|
`<script src="${GSAP_CDN}"></script>`,
|
|
6671
6737
|
"<script>",
|
|
@@ -11130,6 +11196,12 @@ function createStudioApi(adapter) {
|
|
|
11130
11196
|
const project = await Promise.resolve().then(() => adapter.resolveProject(c.req.param("id"))).catch(() => null);
|
|
11131
11197
|
if (project) adapter.invalidateProjectSignature?.(project.dir);
|
|
11132
11198
|
});
|
|
11199
|
+
api.use("/projects/:id/*", async function openHistorySoNoWriteBecomesItsBaseline(c, next) {
|
|
11200
|
+
if (c.req.method !== "GET" && c.req.method !== "HEAD" && adapter.history) {
|
|
11201
|
+
await Promise.resolve().then(() => adapter.resolveProject(c.req.param("id"))).then((project) => project && adapter.history?.(project)).catch(() => null);
|
|
11202
|
+
}
|
|
11203
|
+
await next();
|
|
11204
|
+
});
|
|
11133
11205
|
registerProjectRoutes(api, adapter);
|
|
11134
11206
|
registerFileRoutes(api, adapter);
|
|
11135
11207
|
registerPreviewRoutes(api, adapter);
|
|
@@ -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-557OWRHF.js";
|
|
10
10
|
|
|
11
11
|
// src/registry/compatibility.ts
|
|
12
12
|
import { compareVersions } from "compare-versions";
|
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
} from "./chunk-ZTZA4UWZ.js";
|
|
13
13
|
import {
|
|
14
14
|
getSystemMeta
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-IUZFXWSV.js";
|
|
16
16
|
import {
|
|
17
17
|
getInvocationId
|
|
18
18
|
} from "./chunk-54HJ63Q2.js";
|
|
@@ -23,7 +23,7 @@ import {
|
|
|
23
23
|
evaluateCanary,
|
|
24
24
|
findCanary,
|
|
25
25
|
parseCanaryOverride
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-2YN64IN5.js";
|
|
27
27
|
import {
|
|
28
28
|
hostAnswers
|
|
29
29
|
} from "./chunk-K4WIOZFP.js";
|
|
@@ -37,7 +37,7 @@ import {
|
|
|
37
37
|
} from "./chunk-XUXGIA7H.js";
|
|
38
38
|
import {
|
|
39
39
|
VERSION
|
|
40
|
-
} from "./chunk-
|
|
40
|
+
} from "./chunk-557OWRHF.js";
|
|
41
41
|
|
|
42
42
|
// src/telemetry/transport.ts
|
|
43
43
|
import { spawn } from "child_process";
|
|
@@ -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-S7NPLFWV.js";
|
|
10
10
|
import {
|
|
11
11
|
injectTagsAtHeadStart
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-HWKCIWQT.js";
|
|
13
13
|
|
|
14
14
|
// src/utils/compositionServer.ts
|
|
15
15
|
import { createHash } from "crypto";
|
|
@@ -1278,7 +1278,7 @@ async function withFigmaErrors(command, fn) {
|
|
|
1278
1278
|
} catch (err) {
|
|
1279
1279
|
if (err instanceof Error) {
|
|
1280
1280
|
try {
|
|
1281
|
-
const { trackCommandFailure } = await import("./events-
|
|
1281
|
+
const { trackCommandFailure } = await import("./events-CIWUMG4Z.js");
|
|
1282
1282
|
trackCommandFailure(
|
|
1283
1283
|
command,
|
|
1284
1284
|
err,
|
|
@@ -13,7 +13,7 @@ function resolveLocalBrowserGpuMode(browserGpuArg, envMode = process.env.PRODUCE
|
|
|
13
13
|
return "auto";
|
|
14
14
|
}
|
|
15
15
|
async function resolveCaptureBrowserGpuMode(requestedMode, chromePath) {
|
|
16
|
-
const { resolveBrowserGpuMode } = await import("./src-
|
|
16
|
+
const { resolveBrowserGpuMode } = await import("./src-PVYUYV3M.js");
|
|
17
17
|
return resolveBrowserGpuMode(requestedMode, { chromePath });
|
|
18
18
|
}
|
|
19
19
|
|
|
@@ -10,21 +10,21 @@ import {
|
|
|
10
10
|
import {
|
|
11
11
|
launchManagedBrowser,
|
|
12
12
|
resolveManagedGpuMode
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-7HG4BFIN.js";
|
|
14
14
|
import {
|
|
15
15
|
resolveDiagnosticNavigationTimeoutMs,
|
|
16
16
|
windowsChromeCrashRemediation
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-HRUGC23L.js";
|
|
18
18
|
import {
|
|
19
19
|
resolveLocalBrowserGpuMode
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-XS4EJSKU.js";
|
|
21
21
|
import {
|
|
22
22
|
c
|
|
23
23
|
} from "./chunk-ZTZA4UWZ.js";
|
|
24
24
|
import {
|
|
25
25
|
assertWebGpuAdapterAvailable,
|
|
26
26
|
compositionRequiresWebGpu
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-K2FTXJYH.js";
|
|
28
28
|
import {
|
|
29
29
|
normalizeErrorMessage
|
|
30
30
|
} from "./chunk-KNU5COPB.js";
|
|
@@ -103,7 +103,7 @@ async function openSettledCompositionPage(html, url, options) {
|
|
|
103
103
|
const { ensureBrowser, findSystemBrowser } = await import("./manager-CT3D67CG.js");
|
|
104
104
|
const browser = await ensureBrowser();
|
|
105
105
|
const puppeteer = await import("puppeteer-core");
|
|
106
|
-
const { buildChromeArgs } = await import("./src-
|
|
106
|
+
const { buildChromeArgs } = await import("./src-PVYUYV3M.js");
|
|
107
107
|
const requestedGpuMode = options.browserGpuMode ?? resolveCliChromeGpuMode();
|
|
108
108
|
const requiresWebGpu = compositionRequiresWebGpu(html);
|
|
109
109
|
const launch = async (executablePath) => {
|