hyperframes 0.8.192 → 0.8.194
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-TZU2UW7A.js → add-47UAIWY4.js} +12 -12
- package/dist/{animatedGifPrep-NLAXC3VV.js → animatedGifPrep-TFSQZWK6.js} +8 -7
- package/dist/api.js +18 -17
- package/dist/{asset-JAJXA6LB.js → asset-AU7PZHXA.js} +2 -2
- package/dist/{assetCataloger-4WTX3J4I.js → assetCataloger-HC5N6WPT.js} +8 -7
- package/dist/{audio-XLWC7JKS.js → audio-7AWMZWBM.js} +14 -13
- package/dist/{auth-5K6X3NPJ.js → auth-GXH3QNDJ.js} +1 -1
- package/dist/{autoUpdate-RNV7SKGB.js → autoUpdate-GVGP5O2I.js} +3 -3
- package/dist/{backgroundChecks-QXLVZVGX.js → backgroundChecks-IUJM2Q35.js} +3 -3
- package/dist/backgroundChecksWorker.js +3 -3
- package/dist/{batchRender-THKSPDZR.js → batchRender-3XS2Y2Y4.js} +4 -4
- package/dist/{beats-K7CGCFVL.js → beats-U64B4S7Z.js} +9 -9
- package/dist/{benchmark-PHRDIXNL.js → benchmark-2YUPAI76.js} +9 -9
- package/dist/{browser-GN6R5ZSK.js → browser-DBFH7KXM.js} +5 -5
- package/dist/{bundleWithLocalizedFonts-C325UNR4.js → bundleWithLocalizedFonts-XWL7KSQJ.js} +2 -2
- package/dist/{capture-BZ7APOGQ.js → capture-E4VW75NM.js} +2 -2
- package/dist/{capture-6UBQFHZQ.js → capture-YWH7BPBI.js} +13 -12
- package/dist/{captureCompositionFrame-VORSCTWC.js → captureCompositionFrame-IG6S2OHG.js} +13 -12
- package/dist/{catalog-PHU2RUZ3.js → catalog-LZIZLZ34.js} +12 -12
- package/dist/{catch-up-HCNRM46J.js → catch-up-ZVNPIACY.js} +4 -4
- package/dist/{check-TJ5ZLB4I.js → check-EKEOD4UM.js} +38 -37
- package/dist/{checkBrowser-DWP7ZXJ7.js → checkBrowser-MYH6HPHH.js} +33 -32
- package/dist/{chunk-XF77MK3J.js → chunk-2AJU7PZ6.js} +1 -1
- package/dist/chunk-2D5WP2NI.js +3901 -0
- package/dist/{chunk-FBVUAH7N.js → chunk-2OYYNKJ4.js} +1 -1
- package/dist/{chunk-R2U2G4OS.js → chunk-37IHQVNQ.js} +1 -1
- package/dist/{chunk-IMSI7IFW.js → chunk-3OSBSUN3.js} +18 -18
- package/dist/{chunk-RHYOWDI6.js → chunk-3S3CXF4W.js} +2 -2
- package/dist/{chunk-YMQQXPD5.js → chunk-452UK7E7.js} +5 -12
- package/dist/{chunk-L2YGSAOL.js → chunk-4FVNEXSV.js} +3 -3
- package/dist/{chunk-7UZC4N62.js → chunk-4GMDL4N5.js} +1 -1
- package/dist/{chunk-YWRQHRDY.js → chunk-4PIPQPCW.js} +7 -7
- package/dist/{chunk-J2ASTCU6.js → chunk-4VSV56F2.js} +2 -2
- package/dist/{chunk-NXMYHJAL.js → chunk-4VYPICIA.js} +29 -1
- package/dist/{chunk-QX4TB4NH.js → chunk-52YJKWV3.js} +379 -127
- package/dist/{chunk-GANST5K3.js → chunk-54PZ2EQZ.js} +1 -1
- package/dist/{chunk-5IPKQHOL.js → chunk-B3GG3HJB.js} +1 -1
- package/dist/{chunk-2MCXIY4B.js → chunk-B7RJV74O.js} +28 -11
- package/dist/{chunk-VOM2HLUI.js → chunk-BK5YCT54.js} +3 -3
- package/dist/{chunk-RWGASWT7.js → chunk-BL4U6U52.js} +1 -0
- package/dist/{chunk-T6O5OLN2.js → chunk-BYADARIC.js} +2 -2
- package/dist/{chunk-VNPADTDD.js → chunk-CEUBYYVJ.js} +2 -2
- package/dist/{chunk-JCDYDF54.js → chunk-CEZH4AQT.js} +12 -2
- package/dist/{chunk-BY6OQ6XP.js → chunk-CZNSLFYD.js} +3 -1
- package/dist/{chunk-SBBQFPCJ.js → chunk-DT3JESJ6.js} +1 -1
- package/dist/{chunk-3CXIX6XS.js → chunk-DVQDBWQG.js} +4 -4
- package/dist/{chunk-K2AKVYNR.js → chunk-EB3XXHNO.js} +2 -2
- package/dist/{chunk-3FV5BVWS.js → chunk-EY7GKVPS.js} +2 -2
- package/dist/{chunk-W24SZ5FL.js → chunk-F2ASNL2K.js} +6 -9
- package/dist/{chunk-ODBYZIOH.js → chunk-F3B7CE3Q.js} +14 -14
- package/dist/{chunk-E3P3LJG6.js → chunk-FLREUEHW.js} +28 -11
- package/dist/{chunk-6XVKMBUA.js → chunk-FUA22HO4.js} +1 -1
- package/dist/{chunk-AEXVVABM.js → chunk-GAFEU6AB.js} +13 -10
- package/dist/{chunk-DIKAPMMF.js → chunk-GQVTTWZF.js} +144 -39
- package/dist/{chunk-7LLRMYP6.js → chunk-HCLBM2LQ.js} +2 -2
- package/dist/{chunk-AMZJFCOX.js → chunk-HG5ECUOR.js} +5 -5
- package/dist/{chunk-KZOZN4PI.js → chunk-HPGQPRHY.js} +3 -3
- package/dist/{chunk-BPKLUHFT.js → chunk-HQD7ODQB.js} +5 -5
- package/dist/{chunk-SK7TR7BL.js → chunk-JU4T4VAA.js} +4 -4
- package/dist/{chunk-MGBUWPXX.js → chunk-JVTWX5G3.js} +33 -8
- package/dist/{chunk-2J3NA3OB.js → chunk-JXTPNUSO.js} +83 -51
- package/dist/{chunk-2VXY3PEF.js → chunk-K2VXPQKC.js} +107 -94
- package/dist/chunk-K4MJX7SR.js +17 -0
- package/dist/{chunk-XX2PA4L3.js → chunk-KDEV5RIE.js} +7 -3
- package/dist/{chunk-MVIJTXN5.js → chunk-LMIDZIW2.js} +12 -12
- package/dist/{chunk-6WNLQI63.js → chunk-LOGKDQ3G.js} +3 -3
- package/dist/{chunk-IW5G323T.js → chunk-LTGTN2TH.js} +8 -9
- package/dist/{chunk-MEE4NTPZ.js → chunk-LZ4WPR3B.js} +2 -2
- package/dist/{chunk-32NB4VMH.js → chunk-M2VXARYK.js} +3 -2
- package/dist/{chunk-7RSY7SZN.js → chunk-MCFPMUMT.js} +2 -2
- package/dist/{chunk-BEOK6F26.js → chunk-MGSNFWGR.js} +2 -2
- package/dist/{chunk-ZEMDV6W2.js → chunk-MO6RTNYD.js} +1 -1
- package/dist/{chunk-7JJMT6LN.js → chunk-N33FO44R.js} +1 -1
- package/dist/{chunk-A4OI5ZNX.js → chunk-N3M3IU6S.js} +1 -1
- package/dist/{chunk-CXRZBWSH.js → chunk-NVVIFW3C.js} +10 -10
- package/dist/{chunk-E5V6WEMK.js → chunk-O2ILONGK.js} +10 -10
- package/dist/{chunk-4HCJOFMB.js → chunk-OJNNKHAZ.js} +94 -22
- package/dist/{chunk-QWLES6YV.js → chunk-PEHST4UY.js} +3 -3
- package/dist/{chunk-BV6YE455.js → chunk-POFJH2IS.js} +1 -1
- package/dist/{chunk-AR46ND2Q.js → chunk-PXK3ICU6.js} +1 -1
- package/dist/{chunk-LOKCBZYF.js → chunk-Q4HKC3O7.js} +3 -3
- package/dist/{chunk-J2BSUF6X.js → chunk-QJQTWTM7.js} +8 -3
- package/dist/{chunk-QFPBRZJD.js → chunk-ROEW726S.js} +1 -1
- package/dist/{chunk-OQL4AJ4X.js → chunk-RUPGFW5B.js} +6 -6
- package/dist/{chunk-5TRFLZ5Z.js → chunk-RZWJJCI7.js} +2 -2
- package/dist/{chunk-2HP5GIQ3.js → chunk-SNECH6QA.js} +1 -1
- package/dist/{chunk-REUL2KH2.js → chunk-ST35C4K6.js} +1 -1
- package/dist/{chunk-4E75LHAL.js → chunk-ST4SHO3S.js} +1 -1
- package/dist/{chunk-ULTKB5FC.js → chunk-TDYKVJTU.js} +548 -429
- package/dist/{chunk-WOKVXK4J.js → chunk-VHIBBDEI.js} +1 -1
- package/dist/{chunk-EKGGSAWR.js → chunk-VPON6DF2.js} +5 -5
- package/dist/{chunk-VRAXIQ6I.js → chunk-XYGULBFV.js} +2 -2
- package/dist/{chunk-PFRG5P32.js → chunk-Y3BT27Y7.js} +1 -1
- package/dist/{clean-2RNCTDBT.js → clean-NS2SDRK7.js} +21 -20
- package/dist/cli.js +54 -54
- package/dist/{cloud-NFIKESNZ.js → cloud-K4XQPWTY.js} +4 -4
- package/dist/{cloudrun-7224BCX3.js → cloudrun-BKOKXTXV.js} +6 -6
- package/dist/{compare-HL44MXVX.js → compare-ZAV773OL.js} +31 -30
- package/dist/{compiler-WF5QTXV7.js → compiler-CWHFCE3H.js} +5 -5
- package/dist/{component-ZBZXSJBR.js → component-OXA2ZWX3.js} +3 -3
- package/dist/{compositions-76P7LDDX.js → compositions-NKRVWCPE.js} +12 -11
- package/dist/{contactSheet-43ISAESM.js → contactSheet-5APX35L3.js} +1 -1
- package/dist/{delete-4YZBYOHJ.js → delete-HZ2LBCLC.js} +2 -2
- package/dist/{deploy-UGUUGYLF.js → deploy-FNDTZFF7.js} +1 -1
- package/dist/{deterministicFonts-RO2TCMLZ.js → deterministicFonts-RADD3BSX.js} +2 -2
- package/dist/{dist-5KKCRFPT.js → dist-2YTN2UGY.js} +3 -3
- package/dist/{dist-QQ26RUDV.js → dist-7OCZHNLY.js} +1 -1
- package/dist/{doctor-GGVUK4NB.js → doctor-6QWJGO5P.js} +14 -13
- package/dist/{events-V2VU4J3B.js → events-HTHOBIUN.js} +3 -3
- package/dist/{events-OXPTHVDB.js → events-MBKHVGXX.js} +2 -2
- package/dist/{feedback-HFZ5SCUK.js → feedback-X5QWTLEX.js} +8 -8
- package/dist/{ffmpeg-3VHY7GO3.js → ffmpeg-7GESJCCT.js} +9 -8
- package/dist/{figma-7SEZTLBJ.js → figma-SXOHFVJI.js} +3 -3
- package/dist/fontLocalizeCli.js +11 -10
- package/dist/{get-Y2S2PXCM.js → get-T2HI5FCK.js} +2 -2
- package/dist/{gpuPolicy-UHPOWRV5.js → gpuPolicy-5FABKW5G.js} +8 -7
- package/dist/{grade-compare-4VTXSQM5.js → grade-compare-JATGHA6Q.js} +37 -35
- package/dist/{gsapParser-UP3PNPC2.js → gsapParser-IEUSLYDJ.js} +11 -11
- package/dist/{gsapParserAcorn-OOTY2MVN.js → gsapParserAcorn-LZJKCFQI.js} +1 -1
- package/dist/{help-HXNOACHI.js → help-G6CIKCGS.js} +1 -1
- package/dist/{history-XDJUI4LC.js → history-CSJUHYTD.js} +9 -8
- package/dist/hyperframe.manifest.json +1 -1
- package/dist/hyperframe.runtime.iife.js +71 -65
- package/dist/hyperframes-player.global.js +3 -3
- package/dist/hyperframes-slideshow.global.js +1 -1
- package/dist/{info-KYRI3EZV.js → info-MTTUMW2C.js} +8 -8
- package/dist/{init-IL7EWMT5.js → init-LJYNI5EK.js} +30 -29
- package/dist/{inspect-TBNH23UC.js → inspect-HGDM2VJE.js} +31 -30
- package/dist/{installer-O2YMFSI4.js → installer-3XHURUDG.js} +5 -5
- package/dist/{keyframes-4GF62KAJ.js → keyframes-MSU7N53X.js} +59 -33
- package/dist/{lambda-JFL6M4XZ.js → lambda-2I2TIUSD.js} +8 -8
- package/dist/{layout-7MAEFR65.js → layout-KWOXZMN7.js} +31 -30
- package/dist/{lint-4AYHKYAM.js → lint-N53TLHFG.js} +7 -7
- package/dist/{lintProject-52SLJPRC.js → lintProject-EOUZA4EG.js} +1 -1
- package/dist/{list-3DP3D3MW.js → list-SHYPQC7U.js} +2 -2
- package/dist/{login-T54WQYRQ.js → login-TEB6PA3Y.js} +4 -4
- package/dist/{manager-MZIJY73J.js → manager-COSJVRAE.js} +2 -2
- package/dist/{manager-QROK2IH3.js → manager-PLRSZH5G.js} +10 -9
- package/dist/{media-treatment-4CXF7MSG.js → media-treatment-XTUKMIGE.js} +15 -14
- package/dist/{models-IS3I6JKU.js → models-4WKAPP2L.js} +14 -13
- package/dist/{motionShot-DVYJZOTQ.js → motionShot-PTKB4ILH.js} +17 -16
- package/dist/{normalize-audio-4527JIK4.js → normalize-audio-3NG326I2.js} +6 -6
- package/dist/{open-5JE46SAX.js → open-6S2LMF7R.js} +12 -12
- package/dist/{parakeetRunner-7JIJGJJ7.js → parakeetRunner-OEI35DVO.js} +15 -14
- package/dist/{pipeline-YEN3WFD2.js → pipeline-543FUKH4.js} +10 -9
- package/dist/{play-WFX67I7M.js → play-ETEGHP3B.js} +21 -21
- package/dist/{preflight-D377HVUZ.js → preflight-Y5IYUF2T.js} +11 -10
- package/dist/{present-XTSEKAC7.js → present-ZRSLMJ6J.js} +17 -17
- package/dist/{preview-5XH7EK6O.js → preview-CEJ3SVTY.js} +100 -65
- package/dist/{producer-TFFYF4ZM.js → producer-JFVFIV26.js} +1 -1
- package/dist/{projectConfig-6YUJHMCL.js → projectConfig-7EK3BS72.js} +7 -7
- package/dist/{publication-JK33Y55E.js → publication-Y54GYFMV.js} +3 -3
- package/dist/{publish-JHDGXWXU.js → publish-S3UJTPCV.js} +10 -10
- package/dist/{remove-background-P44MYAPJ.js → remove-background-YTATNQSI.js} +11 -10
- package/dist/{render-RBINWWP5.js → render-IIPXMSBO.js} +35 -34
- package/dist/{render-RJ3I4E3A.js → render-RN3W6YL4.js} +17 -16
- package/dist/{render-HJ34EGMN.js → render-WNIG4B3J.js} +6 -6
- package/dist/{render-batch-3D6XQYUC.js → render-batch-OYS3UQDB.js} +6 -6
- package/dist/renderSetupWorker.js +42 -4
- package/dist/{resolver-HCLTFZUW.js → resolver-OVCXVEDX.js} +5 -5
- package/dist/{sherpa-IPOUJM6Q.js → sherpa-NCSFD7S3.js} +14 -13
- package/dist/skills/hyperframes/references/format.md +1 -0
- package/dist/skills/media-use/scripts/lib/duck.mjs +18 -2
- package/dist/skills/media-use/scripts/lib/duck.test.mjs +79 -0
- package/dist/{skills-P67QEERC.js → skills-IUV3K3X7.js} +5 -5
- package/dist/{skillsUpdateCheck-IFMLRVIF.js → skillsUpdateCheck-NACBXMWW.js} +3 -3
- package/dist/{snapshot-4YM4NNWJ.js → snapshot-7S5USJ2I.js} +52 -46
- package/dist/{src-DCD3YMXX.js → src-CAR6PHI4.js} +10 -9
- package/dist/{src-SSV66L3F.js → src-HITT6NWG.js} +19 -6
- package/dist/{staticProjectServer-C7PPGLEQ.js → staticProjectServer-QR6VZBPT.js} +18 -18
- package/dist/studio/assets/{hyperframes-player-ChN3cOr0.js → hyperframes-player-DLOUZUct.js} +1 -1
- package/dist/studio/assets/{index-CHu83hHM.js → index-CAQ7OcNJ.js} +163 -163
- package/dist/studio/assets/{index-BYbFcRR0.js → index-D9kA6JUX.js} +1 -1
- package/dist/studio/index.html +1 -1
- package/dist/{studio-api-6YZ7PIQR.js → studio-api-HVNOJILH.js} +13 -11
- package/dist/{studioServer-EWHSE4GC.js → studioServer-3BG5FRJL.js} +53 -52
- package/dist/{telemetry-GGLBHZRZ.js → telemetry-PET2GFQG.js} +3 -3
- package/dist/{timeline-NKHQJXJ2.js → timeline-PVIC2Z5K.js} +20 -19
- package/dist/{tokens-FWNNDJ6R.js → tokens-4N46PWSF.js} +2 -2
- package/dist/{transcribe-TRPKXZ7L.js → transcribe-2DVBS7MH.js} +19 -18
- package/dist/{transcribe-VD2TMMC2.js → transcribe-IDC7JTM4.js} +13 -12
- package/dist/{updateCheck-CUPS6LU3.js → updateCheck-QRDVXU7I.js} +2 -2
- package/dist/{upgrade-23XO6MEX.js → upgrade-5CNE3TBH.js} +2 -2
- package/dist/{urlDownloader-YOAOONCK.js → urlDownloader-P2I25DFC.js} +7 -6
- package/dist/{validate-BWIW24G5.js → validate-CLR5PEOV.js} +25 -24
- package/dist/{video-XRXJS4GC.js → video-3CKZZBOB.js} +8 -7
- package/dist/warmCheck.js +38 -37
- package/package.json +1 -1
- package/dist/chunk-B2XLXD7V.js +0 -3897
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
} from "./chunk-AWDFDFI3.js";
|
|
18
18
|
import {
|
|
19
19
|
isBlockedNetworkHost
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-52YJKWV3.js";
|
|
21
21
|
import {
|
|
22
22
|
DOMParser,
|
|
23
23
|
parseHTML
|
|
@@ -981,7 +981,7 @@ async function downloadAndRewriteFonts(css, outputDir, options = {}) {
|
|
|
981
981
|
return aLatin - bLatin;
|
|
982
982
|
});
|
|
983
983
|
const usedFontNames = /* @__PURE__ */ new Set();
|
|
984
|
-
|
|
984
|
+
const localFontPaths = /* @__PURE__ */ new Map();
|
|
985
985
|
let count = 0;
|
|
986
986
|
for (const [index, fontUrl] of sortedUrls.entries()) {
|
|
987
987
|
const remainingMs = options.remainingMs?.() ?? 1e4;
|
|
@@ -1014,7 +1014,7 @@ async function downloadAndRewriteFonts(css, outputDir, options = {}) {
|
|
|
1014
1014
|
const localPath = join(assetsDir, filename);
|
|
1015
1015
|
const relativePath = `assets/fonts/${filename}`;
|
|
1016
1016
|
writeCaptureFileSync(localPath, buffer);
|
|
1017
|
-
|
|
1017
|
+
localFontPaths.set(fontUrl, relativePath);
|
|
1018
1018
|
} else {
|
|
1019
1019
|
drops.unavailable++;
|
|
1020
1020
|
}
|
|
@@ -1022,6 +1022,10 @@ async function downloadAndRewriteFonts(css, outputDir, options = {}) {
|
|
|
1022
1022
|
drops.unavailable++;
|
|
1023
1023
|
}
|
|
1024
1024
|
}
|
|
1025
|
+
const rewritten = css.replace(fontUrlRegex, (match2, url) => {
|
|
1026
|
+
const localPath = localFontPaths.get(url);
|
|
1027
|
+
return localPath ? match2.replace(url, localPath) : match2;
|
|
1028
|
+
});
|
|
1025
1029
|
return { css: rewritten, drops };
|
|
1026
1030
|
}
|
|
1027
1031
|
function isPrivateUrl(url) {
|
|
@@ -7,19 +7,19 @@ var __dirname = __hf_dirname(__filename);
|
|
|
7
7
|
import {
|
|
8
8
|
ambiguousIssue,
|
|
9
9
|
loadBrowserScript
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-NVVIFW3C.js";
|
|
11
11
|
import {
|
|
12
12
|
auditClipDurations,
|
|
13
13
|
shouldIgnoreHttpError,
|
|
14
14
|
shouldIgnoreRequestFailure
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-F3B7CE3Q.js";
|
|
16
16
|
import {
|
|
17
17
|
serveStaticProjectHtml
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-VPON6DF2.js";
|
|
19
19
|
import {
|
|
20
20
|
artifactDirectory,
|
|
21
21
|
finishSnapshotRun
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-OJNNKHAZ.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-MCFPMUMT.js";
|
|
31
31
|
import {
|
|
32
32
|
AUDIT_SEEK_OPTIONS,
|
|
33
33
|
DEFAULT_ZOOM_PADDING_PX,
|
|
@@ -41,17 +41,17 @@ import {
|
|
|
41
41
|
seekCompositionTimeline,
|
|
42
42
|
seekInPage,
|
|
43
43
|
waitForPreferredSeekTarget
|
|
44
|
-
} from "./chunk-
|
|
44
|
+
} from "./chunk-O2ILONGK.js";
|
|
45
45
|
import {
|
|
46
46
|
BrowserCleanupError,
|
|
47
47
|
closeManagedBrowser
|
|
48
|
-
} from "./chunk-
|
|
48
|
+
} from "./chunk-CEZH4AQT.js";
|
|
49
49
|
import {
|
|
50
50
|
findStageProxyBox
|
|
51
|
-
} from "./chunk-
|
|
51
|
+
} from "./chunk-VHIBBDEI.js";
|
|
52
52
|
import {
|
|
53
53
|
resolveAutoProxy
|
|
54
|
-
} from "./chunk-
|
|
54
|
+
} from "./chunk-B3GG3HJB.js";
|
|
55
55
|
import {
|
|
56
56
|
normalizeErrorMessage
|
|
57
57
|
} from "./chunk-T2EUWCJE.js";
|
|
@@ -389,7 +389,7 @@ function proxyFailedDraft(message) {
|
|
|
389
389
|
return { code: "media_proxy_failed", severity: "warning", message, time: 0 };
|
|
390
390
|
}
|
|
391
391
|
async function runBrowserCheck(project, options, motion, runGrid, deadline, prelaunched) {
|
|
392
|
-
const { bundleWithLocalizedFonts } = await import("./bundleWithLocalizedFonts-
|
|
392
|
+
const { bundleWithLocalizedFonts } = await import("./bundleWithLocalizedFonts-XWL7KSQJ.js");
|
|
393
393
|
const html = await bundleWithLocalizedFonts(project.dir);
|
|
394
394
|
deadline?.enter("copies");
|
|
395
395
|
const { findings: drafts, failedPaths } = await preResolveHostileMediaProxies(
|
|
@@ -442,7 +442,7 @@ async function runBrowserCheck(project, options, motion, runGrid, deadline, prel
|
|
|
442
442
|
).map((draft) => runtimeFinding(draft, rootAnchor))
|
|
443
443
|
}));
|
|
444
444
|
const launchSettleMs = Date.now() - launchSettleStart;
|
|
445
|
-
const { analyzeClipMediaFit } = await import("./src-
|
|
445
|
+
const { analyzeClipMediaFit } = await import("./src-HITT6NWG.js");
|
|
446
446
|
for (const entry of await auditClipDurations(page, analyzeClipMediaFit, options.timeout)) {
|
|
447
447
|
drafts.push({ code: "clip_media_fit", severity: entry.level, message: entry.text, time: 0 });
|
|
448
448
|
}
|
|
@@ -559,7 +559,7 @@ function mergeHelperDrafts(primary, helper) {
|
|
|
559
559
|
}
|
|
560
560
|
async function captureFindingCrops(project, options, requests, deadline) {
|
|
561
561
|
if (requests.length === 0) return [];
|
|
562
|
-
const { bundleWithLocalizedFonts } = await import("./bundleWithLocalizedFonts-
|
|
562
|
+
const { bundleWithLocalizedFonts } = await import("./bundleWithLocalizedFonts-XWL7KSQJ.js");
|
|
563
563
|
const html = await bundleWithLocalizedFonts(project.dir);
|
|
564
564
|
const server = await serveStaticProjectHtml(
|
|
565
565
|
project.dir,
|
|
@@ -7,10 +7,10 @@ var __dirname = __hf_dirname(__filename);
|
|
|
7
7
|
import {
|
|
8
8
|
parseFeedbackRating,
|
|
9
9
|
trackRenderFeedback
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-POFJH2IS.js";
|
|
11
11
|
import {
|
|
12
12
|
shouldTrack
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-54PZ2EQZ.js";
|
|
14
14
|
import {
|
|
15
15
|
c
|
|
16
16
|
} from "./chunk-ZTZA4UWZ.js";
|
|
@@ -84,7 +84,7 @@ async function getDoctorSummary() {
|
|
|
84
84
|
try {
|
|
85
85
|
const [{ getSystemMeta }, { findFFmpeg }] = await Promise.all([
|
|
86
86
|
import("./system-7F3UEHQT.js"),
|
|
87
|
-
import("./ffmpeg-
|
|
87
|
+
import("./ffmpeg-7GESJCCT.js")
|
|
88
88
|
]);
|
|
89
89
|
const sys = getSystemMeta();
|
|
90
90
|
const parts = [
|
|
@@ -6,7 +6,10 @@ var __filename = __hf_fileURLToPath(import.meta.url);
|
|
|
6
6
|
var __dirname = __hf_dirname(__filename);
|
|
7
7
|
import {
|
|
8
8
|
runRenderSetupWorker
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-BL4U6U52.js";
|
|
10
|
+
import {
|
|
11
|
+
HYPERFRAMES_BROWSER_MARKER_ARG
|
|
12
|
+
} from "./chunk-K4MJX7SR.js";
|
|
10
13
|
import {
|
|
11
14
|
terminateProcessTree
|
|
12
15
|
} from "./chunk-KGPLIH7B.js";
|
|
@@ -15,12 +18,8 @@ import {
|
|
|
15
18
|
import { execFileSync } from "child_process";
|
|
16
19
|
import { readFileSync } from "fs";
|
|
17
20
|
function killOrphanedProcesses() {
|
|
18
|
-
if (process.platform === "win32") return 0;
|
|
19
|
-
return killOrphansMatching(
|
|
20
|
-
"chrome-headless-shell",
|
|
21
|
-
"chrome_headless_shell",
|
|
22
|
-
"puppeteer_dev_chrome_profile"
|
|
23
|
-
]);
|
|
21
|
+
if (process.env.HYPERFRAMES_NO_ORPHAN_CLEANUP === "1" || process.platform === "win32") return 0;
|
|
22
|
+
return killOrphansMatching(HYPERFRAMES_BROWSER_MARKER_ARG);
|
|
24
23
|
}
|
|
25
24
|
async function killOrphanedProcessesForRender(signal) {
|
|
26
25
|
return runRenderSetupWorker("orphan-cleanup", {}, { signal, timeoutMs: 15e3 });
|
|
@@ -162,7 +161,7 @@ function isProcessDescendant(childPid, ancestorPid, parentPid = processParentPid
|
|
|
162
161
|
}
|
|
163
162
|
return false;
|
|
164
163
|
}
|
|
165
|
-
function killOrphansMatching(
|
|
164
|
+
function killOrphansMatching(marker) {
|
|
166
165
|
const uid = process.getuid?.();
|
|
167
166
|
const owner = uid === void 0 ? ["-A"] : ["-U", String(uid)];
|
|
168
167
|
let table;
|
|
@@ -178,7 +177,7 @@ function killOrphansMatching(markers) {
|
|
|
178
177
|
for (const line of table.split("\n")) {
|
|
179
178
|
const match = line.match(/^\s*(\d+)\s+(\d+)\s+(.*)$/);
|
|
180
179
|
if (!match || match[2] !== "1") continue;
|
|
181
|
-
if (!
|
|
180
|
+
if (!match[3].split(/\s+/).includes(marker)) continue;
|
|
182
181
|
killProcessTree(Number(match[1]));
|
|
183
182
|
killed++;
|
|
184
183
|
}
|
|
@@ -6,11 +6,11 @@ var __filename = __hf_fileURLToPath(import.meta.url);
|
|
|
6
6
|
var __dirname = __hf_dirname(__filename);
|
|
7
7
|
import {
|
|
8
8
|
withOwner
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-HCLBM2LQ.js";
|
|
10
10
|
import {
|
|
11
11
|
HistoryBusyError,
|
|
12
12
|
beginArtifactCapture
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-OJNNKHAZ.js";
|
|
14
14
|
|
|
15
15
|
// src/utils/artifactCapture.ts
|
|
16
16
|
var SKIP_BUSY_HISTORY = { ownerWaitMs: 0 };
|
|
@@ -27,7 +27,7 @@ import {
|
|
|
27
27
|
} from "./chunk-GMECXFAN.js";
|
|
28
28
|
import {
|
|
29
29
|
ITEM_TYPE_DIRS
|
|
30
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-JVTWX5G3.js";
|
|
31
31
|
import {
|
|
32
32
|
realProjectRoot
|
|
33
33
|
} from "./chunk-OFQWTKPW.js";
|
|
@@ -2879,7 +2879,8 @@ async function fetchItemManifest(name, type, baseUrl = DEFAULT_REGISTRY_URL, opt
|
|
|
2879
2879
|
const url = registryPathUrl(baseUrl, dir, name, "registry-item.json");
|
|
2880
2880
|
const cacheFile = cachePath(baseUrl, `${dir}__${name}`);
|
|
2881
2881
|
const cached = readCacheEntry(cacheFile, validate);
|
|
2882
|
-
if (cached && (
|
|
2882
|
+
if (cached && (options?.cacheOnly || !options?.skipCache && isFresh(cached)))
|
|
2883
|
+
return cached.data;
|
|
2883
2884
|
if (options?.cacheOnly) throw new Error("not fetched after an earlier registry timeout");
|
|
2884
2885
|
try {
|
|
2885
2886
|
const item = await fetchJson(url, validate);
|
|
@@ -13,11 +13,11 @@ import {
|
|
|
13
13
|
formatPreviewProxyBox,
|
|
14
14
|
hdrToSdrToneMapFilter,
|
|
15
15
|
parseFirstFrameColour
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-JVTWX5G3.js";
|
|
17
17
|
import {
|
|
18
18
|
decodeAuthoredAttribute,
|
|
19
19
|
scanHtmlOpeningTags
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-B7RJV74O.js";
|
|
21
21
|
import {
|
|
22
22
|
mkdirWithinProject,
|
|
23
23
|
realProjectRoot,
|
|
@@ -7,7 +7,7 @@ var __dirname = __hf_dirname(__filename);
|
|
|
7
7
|
import {
|
|
8
8
|
resolveConfig,
|
|
9
9
|
usesSoftwareWebGpu
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-52YJKWV3.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-HITT6NWG.js");
|
|
21
21
|
return resolveBrowserGpuMode(requestedMode, { chromePath, probeLifecycle });
|
|
22
22
|
}
|
|
23
23
|
function resolveLocalWebGpu(browserGpuMode, requiresWebGpu) {
|
|
@@ -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-HTHOBIUN.js");
|
|
1282
1282
|
trackCommandFailure(
|
|
1283
1283
|
command,
|
|
1284
1284
|
err,
|
|
@@ -6,27 +6,27 @@ 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-ST4SHO3S.js";
|
|
10
10
|
import {
|
|
11
11
|
serveStaticProjectHtml
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-VPON6DF2.js";
|
|
13
13
|
import {
|
|
14
14
|
AUDIT_SEEK_OPTIONS,
|
|
15
15
|
installPageFunctionGuard,
|
|
16
16
|
seekCompositionTimeline,
|
|
17
17
|
waitForCompositionFonts,
|
|
18
18
|
waitForRuntimeReady
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-O2ILONGK.js";
|
|
20
20
|
import {
|
|
21
21
|
launchManagedBrowser,
|
|
22
22
|
resolveManagedGpuMode
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-CEZH4AQT.js";
|
|
24
24
|
import {
|
|
25
25
|
gotoWhenSent
|
|
26
26
|
} from "./chunk-MOEGCMKI.js";
|
|
27
27
|
import {
|
|
28
28
|
pageNavigationTimeoutMs
|
|
29
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-PEHST4UY.js";
|
|
30
30
|
import {
|
|
31
31
|
defineCommand
|
|
32
32
|
} from "./chunk-S3S4TGEH.js";
|
|
@@ -40,7 +40,7 @@ import {
|
|
|
40
40
|
import {
|
|
41
41
|
printDeprecationNotice,
|
|
42
42
|
withMeta
|
|
43
|
-
} from "./chunk-
|
|
43
|
+
} from "./chunk-SNECH6QA.js";
|
|
44
44
|
import {
|
|
45
45
|
normalizeErrorMessage
|
|
46
46
|
} from "./chunk-T2EUWCJE.js";
|
|
@@ -715,7 +715,7 @@ async function collectTweenBoundaries(page) {
|
|
|
715
715
|
});
|
|
716
716
|
}
|
|
717
717
|
async function bundleProjectHtml(projectDir) {
|
|
718
|
-
const { bundleToSingleHtml } = await import("./compiler-
|
|
718
|
+
const { bundleToSingleHtml } = await import("./compiler-CWHFCE3H.js");
|
|
719
719
|
return bundleToSingleHtml(projectDir);
|
|
720
720
|
}
|
|
721
721
|
async function alignViewportToComposition(page, url) {
|
|
@@ -732,15 +732,15 @@ async function alignViewportToComposition(page, url) {
|
|
|
732
732
|
await gotoWhenSent(page, url, pageNavigationTimeoutMs());
|
|
733
733
|
}
|
|
734
734
|
async function runLayoutAudit(projectDir, opts) {
|
|
735
|
-
const { ensureBrowser } = await import("./manager-
|
|
735
|
+
const { ensureBrowser } = await import("./manager-COSJVRAE.js");
|
|
736
736
|
const puppeteer = await import("puppeteer-core");
|
|
737
|
-
const { buildChromeArgs } = await import("./src-
|
|
737
|
+
const { buildChromeArgs } = await import("./src-HITT6NWG.js");
|
|
738
738
|
const {
|
|
739
739
|
assertWebGpuAdapterAvailable,
|
|
740
740
|
compositionRequiresWebGpu,
|
|
741
741
|
resolveLocalBrowserGpuMode,
|
|
742
742
|
resolveLocalWebGpu
|
|
743
|
-
} = await import("./gpuPolicy-
|
|
743
|
+
} = await import("./gpuPolicy-5FABKW5G.js");
|
|
744
744
|
const html = await bundleProjectHtml(projectDir);
|
|
745
745
|
const server = await serveStaticProjectHtml(
|
|
746
746
|
projectDir,
|
|
@@ -8,31 +8,31 @@ import {
|
|
|
8
8
|
launchManagedBrowser,
|
|
9
9
|
resolveManagedGpuMode,
|
|
10
10
|
rethrowAfterBrowserCleanup
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-CEZH4AQT.js";
|
|
12
12
|
import {
|
|
13
13
|
gotoWhenSent
|
|
14
14
|
} from "./chunk-MOEGCMKI.js";
|
|
15
15
|
import {
|
|
16
16
|
pageNavigationTimeoutMs,
|
|
17
17
|
windowsChromeCrashRemediation
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-PEHST4UY.js";
|
|
19
19
|
import {
|
|
20
20
|
oneProcessOverPipe
|
|
21
21
|
} from "./chunk-DKPNNYBZ.js";
|
|
22
22
|
import {
|
|
23
23
|
resolveCompositionViewportFromHtml
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-VHIBBDEI.js";
|
|
25
25
|
import {
|
|
26
26
|
resolveLocalBrowserGpuMode,
|
|
27
27
|
resolveLocalWebGpu
|
|
28
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-MGSNFWGR.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-52YJKWV3.js";
|
|
36
36
|
import {
|
|
37
37
|
normalizeErrorMessage
|
|
38
38
|
} from "./chunk-T2EUWCJE.js";
|
|
@@ -140,7 +140,7 @@ async function waitForCompositionSettle(page, options) {
|
|
|
140
140
|
console.warn(` ${c.warn("\u26A0")} Shader transitions did not finish pre-rendering`);
|
|
141
141
|
});
|
|
142
142
|
await waitForLateSubresources(page, options.lateSubresourceTimeoutMs ?? CAPTURE_SETTLE_MS);
|
|
143
|
-
const { resolveConfig, waitForImagesReady } = await import("./src-
|
|
143
|
+
const { resolveConfig, waitForImagesReady } = await import("./src-HITT6NWG.js");
|
|
144
144
|
const imageTimeoutMs = resolveConfig().playerReadyTimeout;
|
|
145
145
|
await waitForImagesReady(
|
|
146
146
|
page,
|
|
@@ -189,7 +189,7 @@ async function installPageFunctionGuard(page) {
|
|
|
189
189
|
async function openSettledCompositionPage(html, url, options) {
|
|
190
190
|
const viewport = resolveCompositionViewportFromHtml(html);
|
|
191
191
|
const requiresWebGpu = compositionRequiresWebGpu(html);
|
|
192
|
-
const answer = (await import("./staticProjectServer-
|
|
192
|
+
const answer = (await import("./staticProjectServer-QR6VZBPT.js")).inProcessAnswer(url);
|
|
193
193
|
const noListen = answer !== void 0;
|
|
194
194
|
let chromeBrowser;
|
|
195
195
|
try {
|
|
@@ -200,7 +200,7 @@ async function openSettledCompositionPage(html, url, options) {
|
|
|
200
200
|
options.onBrowserReady?.();
|
|
201
201
|
const page = await chromeBrowser.newPage();
|
|
202
202
|
await installPageFunctionGuard(page);
|
|
203
|
-
const { installMediaRenderIdBridge } = await import("./src-
|
|
203
|
+
const { installMediaRenderIdBridge } = await import("./src-HITT6NWG.js");
|
|
204
204
|
await installMediaRenderIdBridge(page);
|
|
205
205
|
await page.setViewport(viewport);
|
|
206
206
|
if (answer) await answerPageInProcess(page, url, answer);
|
|
@@ -216,10 +216,10 @@ async function openSettledCompositionPage(html, url, options) {
|
|
|
216
216
|
}
|
|
217
217
|
async function launchCompositionBrowser(html, noListen, options) {
|
|
218
218
|
const viewport = resolveCompositionViewportFromHtml(html);
|
|
219
|
-
const { ensureBrowser, findSystemBrowser } = await import("./manager-
|
|
219
|
+
const { ensureBrowser, findSystemBrowser } = await import("./manager-COSJVRAE.js");
|
|
220
220
|
const browser = await ensureBrowser({ signal: options.signal });
|
|
221
221
|
const puppeteer = await import("puppeteer-core");
|
|
222
|
-
const { buildChromeArgs } = await import("./src-
|
|
222
|
+
const { buildChromeArgs } = await import("./src-HITT6NWG.js");
|
|
223
223
|
const requestedGpuMode = options.browserGpuMode ?? resolveCliChromeGpuMode();
|
|
224
224
|
const requiresWebGpu = compositionRequiresWebGpu(html);
|
|
225
225
|
let softwareWebGpu = false;
|
|
@@ -21,7 +21,7 @@ import {
|
|
|
21
21
|
mkdirWithinProject
|
|
22
22
|
} from "./chunk-OFQWTKPW.js";
|
|
23
23
|
|
|
24
|
-
// ../studio-server/dist/chunk-
|
|
24
|
+
// ../studio-server/dist/chunk-4HP26XV4.js
|
|
25
25
|
import { randomUUID as randomUUID7 } from "crypto";
|
|
26
26
|
import { mkdir as mkdir2, readdir as readdir3, rm as rm3, rmdir, stat as stat2, writeFile } from "fs/promises";
|
|
27
27
|
import {
|
|
@@ -554,14 +554,41 @@ async function cloneOrCopy(from, to, beforeReplace) {
|
|
|
554
554
|
throw error;
|
|
555
555
|
}
|
|
556
556
|
}
|
|
557
|
+
var listDir = (path) => readdir(path, { withFileTypes: true }).catch((error) => {
|
|
558
|
+
if (error.code === "ENOENT") return [];
|
|
559
|
+
throw error;
|
|
560
|
+
});
|
|
557
561
|
async function openBlobStore(dir) {
|
|
558
562
|
const sizes = /* @__PURE__ */ new Map();
|
|
563
|
+
const asideDir = join2(dirname(dir), "aside");
|
|
564
|
+
const asideSizes = /* @__PURE__ */ new Map();
|
|
565
|
+
const holds = /* @__PURE__ */ new Map();
|
|
559
566
|
await mkdir(dir, { recursive: true });
|
|
560
|
-
for (const
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
567
|
+
for (const [root, found] of [
|
|
568
|
+
[dir, sizes],
|
|
569
|
+
[asideDir, asideSizes]
|
|
570
|
+
])
|
|
571
|
+
for (const shard of await listDir(root)) {
|
|
572
|
+
if (!shard.isDirectory()) {
|
|
573
|
+
if (shard.name.startsWith("incoming-")) await rm(join2(root, shard.name), { force: true });
|
|
574
|
+
continue;
|
|
575
|
+
}
|
|
576
|
+
for (const hash of await listDir(join2(root, shard.name)))
|
|
577
|
+
found.set(hash.name, (await stat(join2(root, shard.name, hash.name))).size);
|
|
578
|
+
}
|
|
579
|
+
for (const hash of asideSizes.keys()) holds.set(hash, /* @__PURE__ */ new Set(["*"]));
|
|
580
|
+
const pathOf = (hash) => blobPath(sizes.has(hash) ? dir : asideDir, hash);
|
|
564
581
|
let total = [...sizes.values()].reduce((sum, size) => sum + size, 0);
|
|
582
|
+
const forget = async (hash) => {
|
|
583
|
+
await rm(blobPath(dir, hash), { force: true });
|
|
584
|
+
total -= sizes.get(hash) ?? 0;
|
|
585
|
+
sizes.delete(hash);
|
|
586
|
+
};
|
|
587
|
+
const forgetAside = async (hash) => {
|
|
588
|
+
await rm(blobPath(asideDir, hash), { force: true });
|
|
589
|
+
asideSizes.delete(hash);
|
|
590
|
+
holds.delete(hash);
|
|
591
|
+
};
|
|
565
592
|
return {
|
|
566
593
|
async put(absPath) {
|
|
567
594
|
const temp = join2(dir, `incoming-${randomUUID3()}`);
|
|
@@ -575,35 +602,55 @@ async function openBlobStore(dir) {
|
|
|
575
602
|
await rm(temp, { force: true });
|
|
576
603
|
return hash;
|
|
577
604
|
}
|
|
578
|
-
await mkdir(dirname(
|
|
605
|
+
await mkdir(dirname(blobPath(dir, hash)), { recursive: true });
|
|
579
606
|
const size = (await stat(temp)).size;
|
|
580
|
-
await rename(temp,
|
|
607
|
+
await rename(temp, blobPath(dir, hash));
|
|
581
608
|
sizes.set(hash, size);
|
|
582
609
|
total += size;
|
|
583
610
|
return hash;
|
|
584
611
|
},
|
|
585
612
|
reference: (absPath) => hashFile(absPath),
|
|
586
|
-
has: (hash) => sizes.has(hash),
|
|
587
|
-
read:
|
|
613
|
+
has: (hash) => sizes.has(hash) || asideSizes.has(hash),
|
|
614
|
+
read: (hash) => readFile(pathOf(hash)),
|
|
588
615
|
writeTo: async (hash, absPath, beforeReplace) => cloneOrCopy(pathOf(hash), absPath, beforeReplace),
|
|
616
|
+
async release(held) {
|
|
617
|
+
for (const [hash, path] of held) {
|
|
618
|
+
holds.get(hash)?.delete(path);
|
|
619
|
+
if (holds.get(hash)?.size === 0) await forgetAside(hash);
|
|
620
|
+
}
|
|
621
|
+
},
|
|
622
|
+
async keep(path, absPath, remove) {
|
|
623
|
+
const hash = await hashFile(absPath);
|
|
624
|
+
if (sizes.has(hash)) return;
|
|
625
|
+
if (asideSizes.has(hash)) {
|
|
626
|
+
holds.get(hash).add(path);
|
|
627
|
+
return;
|
|
628
|
+
}
|
|
629
|
+
const to = blobPath(asideDir, hash);
|
|
630
|
+
await mkdir(dirname(to), { recursive: true });
|
|
631
|
+
const moved = remove && await rename(absPath, to).then(
|
|
632
|
+
() => true,
|
|
633
|
+
() => false
|
|
634
|
+
);
|
|
635
|
+
if (!moved) {
|
|
636
|
+
const temp = join2(asideDir, `incoming-${randomUUID3()}`);
|
|
637
|
+
await cloneOrStream(absPath, temp).catch(async (error) => {
|
|
638
|
+
await rm(temp, { force: true });
|
|
639
|
+
throw error;
|
|
640
|
+
});
|
|
641
|
+
await rename(temp, to);
|
|
642
|
+
}
|
|
643
|
+
asideSizes.set(hash, (await stat(to)).size);
|
|
644
|
+
holds.set(hash, /* @__PURE__ */ new Set([path]));
|
|
645
|
+
},
|
|
589
646
|
bytes: () => total,
|
|
590
647
|
size: (hash) => sizes.get(hash) ?? 0,
|
|
591
648
|
async drop(hashes) {
|
|
592
|
-
for (const hash of hashes)
|
|
593
|
-
const size = sizes.get(hash);
|
|
594
|
-
if (size === void 0) continue;
|
|
595
|
-
await rm(pathOf(hash), { force: true });
|
|
596
|
-
sizes.delete(hash);
|
|
597
|
-
total -= size;
|
|
598
|
-
}
|
|
649
|
+
for (const hash of hashes) if (sizes.has(hash)) await forget(hash);
|
|
599
650
|
},
|
|
600
651
|
async prune(keep) {
|
|
601
|
-
for (const
|
|
602
|
-
|
|
603
|
-
await rm(pathOf(hash), { force: true });
|
|
604
|
-
sizes.delete(hash);
|
|
605
|
-
total -= size;
|
|
606
|
-
}
|
|
652
|
+
for (const hash of [...sizes.keys()]) if (!keep.has(hash)) await forget(hash);
|
|
653
|
+
for (const hash of [...asideSizes.keys()]) if (!keep.has(hash)) await forgetAside(hash);
|
|
607
654
|
}
|
|
608
655
|
};
|
|
609
656
|
}
|
|
@@ -2288,6 +2335,9 @@ var Engine = class {
|
|
|
2288
2335
|
this.windows.push(group);
|
|
2289
2336
|
try {
|
|
2290
2337
|
for (const [path, hash] of changes) await this.writeProjectFile(path, hash);
|
|
2338
|
+
await this.blobs.release(
|
|
2339
|
+
changes.flatMap(([path, hash]) => hash ? [[hash, path]] : [])
|
|
2340
|
+
);
|
|
2291
2341
|
await this.sweep();
|
|
2292
2342
|
} finally {
|
|
2293
2343
|
this.windows = this.windows.filter((open) => open !== group);
|
|
@@ -2303,6 +2353,9 @@ var Engine = class {
|
|
|
2303
2353
|
const version = hash === null ? DELETED_VERSION : hashVersion(hash);
|
|
2304
2354
|
recordFileWriteReceipt(absPath, { path, version, writeToken });
|
|
2305
2355
|
}
|
|
2356
|
+
const standing = lstatSync4(absPath, { throwIfNoEntry: false });
|
|
2357
|
+
if (standing?.isFile() && isUncopied(path, standing.size))
|
|
2358
|
+
await this.blobs.keep(path, absPath, hash === null);
|
|
2306
2359
|
if (hash === null) {
|
|
2307
2360
|
this.assertWritable();
|
|
2308
2361
|
rmSync3(absPath, { force: true });
|
|
@@ -2388,6 +2441,18 @@ var Engine = class {
|
|
|
2388
2441
|
[...this.tracked.keys()].map((path) => [path, null])
|
|
2389
2442
|
);
|
|
2390
2443
|
for (const [path, hash] of files) target.set(path, hash);
|
|
2444
|
+
if (point === START && this.adopting.size > 0) {
|
|
2445
|
+
throw new HistoryRefusedError(
|
|
2446
|
+
"The project's starting copy is still being saved; try again in a moment. Nothing was changed."
|
|
2447
|
+
);
|
|
2448
|
+
}
|
|
2449
|
+
const isProjectFile = (path) => !KEPT_HIDDEN_PATHS.has(path);
|
|
2450
|
+
const keepsAny = [...target].some(([path, hash]) => hash !== null && isProjectFile(path));
|
|
2451
|
+
if ([...this.tracked.keys()].some(isProjectFile) && !keepsAny) {
|
|
2452
|
+
throw new HistoryRefusedError(
|
|
2453
|
+
"Restoring this point would remove every file in this project, so nothing was changed."
|
|
2454
|
+
);
|
|
2455
|
+
}
|
|
2391
2456
|
return this.writeAs(who, label, target, { restoredTo: point });
|
|
2392
2457
|
}
|
|
2393
2458
|
/** Settles, then runs `task` with its writes labelled `writeToken`. */
|
|
@@ -2507,6 +2572,12 @@ var HistoryClosedError = class extends Error {
|
|
|
2507
2572
|
this.name = "HistoryClosedError";
|
|
2508
2573
|
}
|
|
2509
2574
|
};
|
|
2575
|
+
var HistoryRefusedError = class extends Error {
|
|
2576
|
+
constructor(message) {
|
|
2577
|
+
super(message);
|
|
2578
|
+
this.name = "HistoryRefusedError";
|
|
2579
|
+
}
|
|
2580
|
+
};
|
|
2510
2581
|
async function openProjectHistory(options) {
|
|
2511
2582
|
if (!existsSync3(options.projectDir))
|
|
2512
2583
|
throw new HistoryClosedError(`${options.projectDir} is gone or now another project.`);
|
|
@@ -2664,6 +2735,7 @@ export {
|
|
|
2664
2735
|
MAX_WINDOW_IDLE_MS,
|
|
2665
2736
|
UNDO_MODES,
|
|
2666
2737
|
HistoryClosedError,
|
|
2738
|
+
HistoryRefusedError,
|
|
2667
2739
|
openProjectHistory,
|
|
2668
2740
|
readProjectHistory,
|
|
2669
2741
|
reclaimUncopiedBlobs,
|
|
@@ -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-FUA22HO4.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-52YJKWV3.js";
|
|
20
20
|
import {
|
|
21
21
|
parseFps
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-JVTWX5G3.js";
|
|
23
23
|
|
|
24
24
|
// src/browser/windowsCrash.ts
|
|
25
25
|
var STATUS_STACK_BUFFER_OVERRUN_DEC = "3221225595";
|