hyperframes 0.8.163 → 0.8.164
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-Y7BGO2MK.js → add-5UR2S4ZU.js} +5 -5
- package/dist/{asset-OONPCZS5.js → asset-TB7K7OFL.js} +2 -2
- package/dist/{assetCataloger-YWJRJK23.js → assetCataloger-FE4K64GW.js} +25 -5
- package/dist/{audio-KPTXNHDC.js → audio-WH3XWV6N.js} +5 -5
- package/dist/{auth-UKXSZ4WA.js → auth-4BBOL3DI.js} +1 -1
- package/dist/{autoUpdate-4MRUONUQ.js → autoUpdate-7LARILUN.js} +2 -2
- package/dist/{backgroundChecks-X5M7Z6L7.js → backgroundChecks-5A5VAWOQ.js} +3 -3
- package/dist/backgroundChecksWorker.js +3 -3
- package/dist/{beats-EQNT7OZE.js → beats-EVQOYYYQ.js} +4 -4
- package/dist/{benchmark-WXWALVZJ.js → benchmark-5KE22VUG.js} +5 -5
- package/dist/{browser-ZSNFVRC3.js → browser-BLGJSG23.js} +3 -3
- package/dist/{capture-TKWJBFGC.js → capture-KSXWVLT7.js} +306 -92
- package/dist/{capture-JFFYE7XM.js → capture-PR52XOEQ.js} +2 -2
- package/dist/{catalog-LK5MNUQY.js → catalog-W3AG6ISP.js} +5 -5
- package/dist/{catch-up-ISTWIF6K.js → catch-up-JLZUALKW.js} +4 -4
- package/dist/{check-YVEBXKNY.js → check-PGH3VCIR.js} +13 -13
- package/dist/{checkBrowser-OJAXYTRD.js → checkBrowser-MNJBUCZD.js} +9 -9
- package/dist/{chunk-HQMWZNO2.js → chunk-36CWAWB7.js} +1 -1
- package/dist/{chunk-OGGPNDGO.js → chunk-3XJVN7MR.js} +2 -2
- package/dist/{chunk-Z6P5OVCF.js → chunk-56RENSU4.js} +1 -1
- package/dist/{chunk-2ALJMIFW.js → chunk-57SASPYR.js} +12 -1
- package/dist/{chunk-NGKM64BP.js → chunk-5CTORVUM.js} +17 -2
- package/dist/{chunk-SQN7N27A.js → chunk-6DJLEE74.js} +2 -2
- package/dist/{chunk-OZUYK6IS.js → chunk-FTFWZHTZ.js} +1 -1
- package/dist/{chunk-VG3ZMY2H.js → chunk-G3QMPIFG.js} +2 -2
- package/dist/{chunk-WJVDUUH2.js → chunk-GJOW6ZFW.js} +2 -2
- package/dist/{chunk-M4237QMQ.js → chunk-HYRDV7AL.js} +1 -1
- package/dist/{chunk-JYR3YAAK.js → chunk-KR3M4GKH.js} +1 -1
- package/dist/{chunk-23IS5QVP.js → chunk-NOVAH7N4.js} +1 -1
- package/dist/{chunk-NU4PDQ6G.js → chunk-PRZDWAH3.js} +1 -1
- package/dist/{chunk-TQMJKZS5.js → chunk-Q4XFXAQ3.js} +1 -1
- package/dist/{chunk-OFD2XWIQ.js → chunk-SYOB5Y35.js} +178 -1
- package/dist/{chunk-QXAXCRK5.js → chunk-UF45OJ3N.js} +1 -1
- package/dist/{chunk-WMXOKTGO.js → chunk-UH4IL4K4.js} +2 -2
- package/dist/{chunk-2XIPB4MP.js → chunk-VEAKQW4X.js} +1 -1
- package/dist/{chunk-ZVOCFUPA.js → chunk-WE5X5AKF.js} +4 -4
- package/dist/{chunk-43H7XDO6.js → chunk-WLQII3K3.js} +2 -2
- package/dist/{chunk-LHETZ63N.js → chunk-WZSWLCEH.js} +1 -1
- package/dist/{chunk-54E2ELUA.js → chunk-XYDPJ3CQ.js} +4 -4
- package/dist/{clean-PGEA3UPT.js → clean-R7BXTAFB.js} +3 -3
- package/dist/cli.js +63 -55
- package/dist/{cloud-SAODZ2PK.js → cloud-IPXFPX7M.js} +4 -4
- package/dist/{compare-R7X7LXCX.js → compare-S3RMZBB4.js} +6 -6
- package/dist/{component-DTVCMTLX.js → component-VSOWEAK4.js} +3 -3
- package/dist/{compositions-UXS2ISGS.js → compositions-7LPCAY7M.js} +5 -5
- package/dist/{delete-LIGHRH4L.js → delete-L32WDJGO.js} +2 -2
- package/dist/{doctor-6VR5JUWZ.js → doctor-7TSVAIF2.js} +3 -3
- package/dist/{dotEnv-AECLXQSO.js → dotEnv-64S3VKGH.js} +3 -1
- package/dist/{events-ZQFIOH5Z.js → events-FDHKA6NV.js} +3 -3
- package/dist/{events-YP2MRCPP.js → events-RFABFHWU.js} +2 -2
- package/dist/{feedback-47UEIUOO.js → feedback-SDAJ2HAM.js} +4 -4
- package/dist/{figma-ZTHHEDY5.js → figma-KJBYCHXQ.js} +3 -3
- package/dist/fontLocalizeCli.js +1 -1
- package/dist/{get-EZGQNT7G.js → get-6Z3JCPJ6.js} +2 -2
- package/dist/{grade-compare-SEFOAA4E.js → grade-compare-HAQXCQSE.js} +6 -6
- package/dist/{help-WIZONGVE.js → help-WMMVG2PR.js} +1 -1
- package/dist/{history-PE45CSGA.js → history-5AQNASLD.js} +6 -6
- package/dist/hyperframes-player.global.js +1 -1
- package/dist/{info-WIRSMQKB.js → info-OUJ3HXTN.js} +5 -5
- package/dist/{init-N26RW4YN.js → init-NEEYHH7E.js} +6 -6
- package/dist/{inspect-XHQUASDV.js → inspect-ZWBDYWTY.js} +8 -8
- package/dist/{keyframes-RNTYYHMK.js → keyframes-BA5R5Q7G.js} +6 -6
- package/dist/{layout-YRCKPNAO.js → layout-GJVLRWIJ.js} +8 -8
- package/dist/{lint-HLOZHJVM.js → lint-FBH2BA2A.js} +6 -6
- package/dist/{list-X7NTQB32.js → list-XDZIX2PU.js} +2 -2
- package/dist/{login-S7PVNUEB.js → login-CUHIF5GP.js} +4 -4
- package/dist/{media-treatment-465Y6CWE.js → media-treatment-HZDD67IL.js} +5 -5
- package/dist/{motionShot-K6OBEZ2N.js → motionShot-D2C44I6P.js} +2 -2
- package/dist/{normalize-audio-VODIXLAC.js → normalize-audio-B6PKQGHV.js} +4 -4
- package/dist/{open-K5OZGYJ7.js → open-EIN2FH4D.js} +4 -4
- package/dist/{play-QOXKOZ6L.js → play-KLOHE5XH.js} +4 -4
- package/dist/{present-7CVCJIS3.js → present-4K53KZ3P.js} +4 -4
- package/dist/{preview-HX5F6RGT.js → preview-PSALQBNR.js} +5 -5
- package/dist/{render-TRU75TVB.js → render-2QY3DTYM.js} +8 -8
- package/dist/{render-XS22VQHC.js → render-NAJFHWUG.js} +5 -5
- package/dist/{skills-RKDR4AXV.js → skills-ETYVJOLG.js} +5 -5
- package/dist/{skillsUpdateCheck-QWIERB7M.js → skillsUpdateCheck-6P4VCFZZ.js} +3 -3
- package/dist/{snapshot-SSSF334Y.js → snapshot-P3RZFXUC.js} +8 -8
- package/dist/studio/assets/{hyperframes-player-oCk9rjq9.js → hyperframes-player-CQX9TDla.js} +1 -1
- package/dist/studio/assets/{index-BOQPXBQ0.js → index-BnU7S7oM.js} +1 -1
- package/dist/studio/assets/{index-DK2wgdLx.js → index-DHqUZqg6.js} +4 -4
- package/dist/studio/index.html +1 -1
- package/dist/{studioServer-KWNULEM4.js → studioServer-HF6ZCYQO.js} +7 -7
- package/dist/{telemetry-4G6CD3X7.js → telemetry-ASFTF5YV.js} +3 -3
- package/dist/{timeline-TKPBJ4EP.js → timeline-H7Q2K6ZQ.js} +5 -5
- package/dist/{tokens-TX7THSB7.js → tokens-LWCXLQCR.js} +2 -2
- package/dist/{transcribe-7DBONX4C.js → transcribe-X2GOG3HZ.js} +3 -3
- package/dist/{updateCheck-64D7B73Z.js → updateCheck-EA7X36NI.js} +2 -2
- package/dist/{upgrade-MXQDGGYO.js → upgrade-Y6H3ZEEJ.js} +2 -2
- package/dist/{validate-5ZNGP5QO.js → validate-TZAB2PVX.js} +8 -8
- package/dist/{video-62JJK3XL.js → video-LNLD2PKZ.js} +1 -1
- package/package.json +1 -1
|
@@ -116,7 +116,7 @@ var capture_default = defineCommand({
|
|
|
116
116
|
// fallow-ignore-next-line complexity
|
|
117
117
|
async run({ args }) {
|
|
118
118
|
if (args.video) {
|
|
119
|
-
const { runVideoMode } = await import("./video-
|
|
119
|
+
const { runVideoMode } = await import("./video-LNLD2PKZ.js");
|
|
120
120
|
await runVideoMode({
|
|
121
121
|
project: args.video,
|
|
122
122
|
index: args.index ?? null,
|
|
@@ -173,7 +173,7 @@ var capture_default = defineCommand({
|
|
|
173
173
|
}
|
|
174
174
|
console.log();
|
|
175
175
|
}
|
|
176
|
-
const { captureWebsite } = await import("./capture-
|
|
176
|
+
const { captureWebsite } = await import("./capture-KSXWVLT7.js");
|
|
177
177
|
let captureFailed = false;
|
|
178
178
|
try {
|
|
179
179
|
const result = await captureWebsite(
|
|
@@ -6,8 +6,8 @@ var __filename = __hf_fileURLToPath(import.meta.url);
|
|
|
6
6
|
var __dirname = __hf_dirname(__filename);
|
|
7
7
|
import {
|
|
8
8
|
runAdd
|
|
9
|
-
} from "./chunk-
|
|
10
|
-
import "./chunk-
|
|
9
|
+
} from "./chunk-UH4IL4K4.js";
|
|
10
|
+
import "./chunk-HYRDV7AL.js";
|
|
11
11
|
import {
|
|
12
12
|
DEFAULT_PROJECT_CONFIG,
|
|
13
13
|
loadProjectConfig
|
|
@@ -25,8 +25,8 @@ import {
|
|
|
25
25
|
import "./chunk-AWDFDFI3.js";
|
|
26
26
|
import "./chunk-P6LJ4Y32.js";
|
|
27
27
|
import "./chunk-GMECXFAN.js";
|
|
28
|
-
import "./chunk-
|
|
29
|
-
import "./chunk-
|
|
28
|
+
import "./chunk-36CWAWB7.js";
|
|
29
|
+
import "./chunk-VEAKQW4X.js";
|
|
30
30
|
import "./chunk-VWG7OQKU.js";
|
|
31
31
|
import "./chunk-QWQ6GQTI.js";
|
|
32
32
|
import {
|
|
@@ -54,7 +54,7 @@ import {
|
|
|
54
54
|
isAttendedTerminal
|
|
55
55
|
} from "./chunk-WERLJGIC.js";
|
|
56
56
|
import "./chunk-ISN5GRYI.js";
|
|
57
|
-
import "./chunk-
|
|
57
|
+
import "./chunk-G3QMPIFG.js";
|
|
58
58
|
import {
|
|
59
59
|
installedOptionalPackageVersion,
|
|
60
60
|
loadInstalledOptionalPackage,
|
|
@@ -6,7 +6,7 @@ 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-PRZDWAH3.js";
|
|
10
10
|
import "./chunk-K2FLNJVB.js";
|
|
11
11
|
import {
|
|
12
12
|
filesChangedSince,
|
|
@@ -14,8 +14,8 @@ import {
|
|
|
14
14
|
readSeen,
|
|
15
15
|
unseenTurns
|
|
16
16
|
} from "./chunk-DCAI5DBR.js";
|
|
17
|
-
import "./chunk-
|
|
18
|
-
import "./chunk-
|
|
17
|
+
import "./chunk-36CWAWB7.js";
|
|
18
|
+
import "./chunk-VEAKQW4X.js";
|
|
19
19
|
import "./chunk-VWG7OQKU.js";
|
|
20
20
|
import "./chunk-QWQ6GQTI.js";
|
|
21
21
|
import {
|
|
@@ -30,7 +30,7 @@ import "./chunk-K4WIOZFP.js";
|
|
|
30
30
|
import "./chunk-XUXGIA7H.js";
|
|
31
31
|
import "./chunk-WERLJGIC.js";
|
|
32
32
|
import "./chunk-ISN5GRYI.js";
|
|
33
|
-
import "./chunk-
|
|
33
|
+
import "./chunk-G3QMPIFG.js";
|
|
34
34
|
import "./chunk-EOVYQ3IG.js";
|
|
35
35
|
import "./chunk-XT6MXC7A.js";
|
|
36
36
|
import "./chunk-JYVGYKXG.js";
|
|
@@ -20,15 +20,15 @@ import {
|
|
|
20
20
|
} from "./chunk-QABAVWEX.js";
|
|
21
21
|
import {
|
|
22
22
|
captureArtifactRevision
|
|
23
|
-
} from "./chunk-
|
|
24
|
-
import "./chunk-
|
|
23
|
+
} from "./chunk-KR3M4GKH.js";
|
|
24
|
+
import "./chunk-WZSWLCEH.js";
|
|
25
25
|
import "./chunk-X7MTZ4T2.js";
|
|
26
26
|
import {
|
|
27
27
|
loadProducer
|
|
28
28
|
} from "./chunk-ULAB77ZO.js";
|
|
29
29
|
import {
|
|
30
30
|
trackLintRun
|
|
31
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-GJOW6ZFW.js";
|
|
32
32
|
import {
|
|
33
33
|
assertionTargets,
|
|
34
34
|
buildLayoutSampleTimes,
|
|
@@ -47,18 +47,18 @@ import {
|
|
|
47
47
|
mergeSampleTimes,
|
|
48
48
|
parseAt,
|
|
49
49
|
readMotionSpec
|
|
50
|
-
} from "./chunk-
|
|
51
|
-
import "./chunk-
|
|
50
|
+
} from "./chunk-XYDPJ3CQ.js";
|
|
51
|
+
import "./chunk-UF45OJ3N.js";
|
|
52
52
|
import {
|
|
53
53
|
BrowserCleanupError,
|
|
54
54
|
closeManagedBrowser
|
|
55
|
-
} from "./chunk-
|
|
55
|
+
} from "./chunk-57SASPYR.js";
|
|
56
56
|
import "./chunk-FH7WODJH.js";
|
|
57
57
|
import "./chunk-H3JGPRWA.js";
|
|
58
58
|
import "./chunk-WPNE5NEP.js";
|
|
59
59
|
import {
|
|
60
60
|
resolveProject
|
|
61
|
-
} from "./chunk-
|
|
61
|
+
} from "./chunk-PRZDWAH3.js";
|
|
62
62
|
import "./chunk-K2FLNJVB.js";
|
|
63
63
|
import "./chunk-AXATVUCD.js";
|
|
64
64
|
import "./chunk-X7MTZ4T2.js";
|
|
@@ -92,8 +92,8 @@ import "./chunk-5CS4T6C6.js";
|
|
|
92
92
|
import {
|
|
93
93
|
trackCheckReport,
|
|
94
94
|
trackCommandFailure
|
|
95
|
-
} from "./chunk-
|
|
96
|
-
import "./chunk-
|
|
95
|
+
} from "./chunk-36CWAWB7.js";
|
|
96
|
+
import "./chunk-VEAKQW4X.js";
|
|
97
97
|
import "./chunk-VWG7OQKU.js";
|
|
98
98
|
import "./chunk-QWQ6GQTI.js";
|
|
99
99
|
import {
|
|
@@ -118,12 +118,12 @@ import "./chunk-TJSTGSAW.js";
|
|
|
118
118
|
import "./chunk-Q5X2B5WT.js";
|
|
119
119
|
import {
|
|
120
120
|
withMeta
|
|
121
|
-
} from "./chunk-
|
|
121
|
+
} from "./chunk-56RENSU4.js";
|
|
122
122
|
import "./chunk-K4WIOZFP.js";
|
|
123
123
|
import "./chunk-XUXGIA7H.js";
|
|
124
124
|
import "./chunk-WERLJGIC.js";
|
|
125
125
|
import "./chunk-ISN5GRYI.js";
|
|
126
|
-
import "./chunk-
|
|
126
|
+
import "./chunk-G3QMPIFG.js";
|
|
127
127
|
import "./chunk-EOVYQ3IG.js";
|
|
128
128
|
import "./chunk-XT6MXC7A.js";
|
|
129
129
|
import {
|
|
@@ -1555,7 +1555,7 @@ function resolveMotionSpec(projectDir) {
|
|
|
1555
1555
|
};
|
|
1556
1556
|
}
|
|
1557
1557
|
async function runBrowserCheck(project, options, motion, deadline) {
|
|
1558
|
-
const module = await import("./checkBrowser-
|
|
1558
|
+
const module = await import("./checkBrowser-MNJBUCZD.js");
|
|
1559
1559
|
return module.runBrowserCheck(project, options, motion, runAuditGrid, deadline);
|
|
1560
1560
|
}
|
|
1561
1561
|
async function writeSnapshot(projectDir, index, time, pngBase64) {
|
|
@@ -1567,7 +1567,7 @@ async function writeSnapshot(projectDir, index, time, pngBase64) {
|
|
|
1567
1567
|
return relative(projectDir, path);
|
|
1568
1568
|
}
|
|
1569
1569
|
async function captureFindingCrops(project, options, requests, deadline) {
|
|
1570
|
-
const module = await import("./checkBrowser-
|
|
1570
|
+
const module = await import("./checkBrowser-MNJBUCZD.js");
|
|
1571
1571
|
return module.captureFindingCrops(project, options, requests, deadline);
|
|
1572
1572
|
}
|
|
1573
1573
|
var DEFAULT_DEPENDENCIES2 = {
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
auditClipDurations,
|
|
9
9
|
shouldIgnoreHttpError,
|
|
10
10
|
shouldIgnoreRequestFailure
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-WE5X5AKF.js";
|
|
12
12
|
import {
|
|
13
13
|
checkSnapshotDirectory,
|
|
14
14
|
rectToBbox
|
|
@@ -17,7 +17,7 @@ import "./chunk-X7MTZ4T2.js";
|
|
|
17
17
|
import {
|
|
18
18
|
ambiguousIssue,
|
|
19
19
|
loadBrowserScript
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-XYDPJ3CQ.js";
|
|
21
21
|
import {
|
|
22
22
|
AUDIT_SEEK_OPTIONS,
|
|
23
23
|
DEFAULT_ZOOM_PADDING_PX,
|
|
@@ -29,15 +29,15 @@ import {
|
|
|
29
29
|
resolveCliChromeGpuMode,
|
|
30
30
|
seekCompositionTimeline,
|
|
31
31
|
waitForPreferredSeekTarget
|
|
32
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-UF45OJ3N.js";
|
|
33
33
|
import {
|
|
34
34
|
BrowserCleanupError,
|
|
35
35
|
closeManagedBrowser
|
|
36
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-57SASPYR.js";
|
|
37
37
|
import "./chunk-FH7WODJH.js";
|
|
38
38
|
import "./chunk-H3JGPRWA.js";
|
|
39
39
|
import "./chunk-WPNE5NEP.js";
|
|
40
|
-
import "./chunk-
|
|
40
|
+
import "./chunk-PRZDWAH3.js";
|
|
41
41
|
import "./chunk-K2FLNJVB.js";
|
|
42
42
|
import {
|
|
43
43
|
serveStaticProjectHtml
|
|
@@ -73,8 +73,8 @@ import "./chunk-AWDFDFI3.js";
|
|
|
73
73
|
import "./chunk-P6LJ4Y32.js";
|
|
74
74
|
import "./chunk-GMECXFAN.js";
|
|
75
75
|
import "./chunk-5CS4T6C6.js";
|
|
76
|
-
import "./chunk-
|
|
77
|
-
import "./chunk-
|
|
76
|
+
import "./chunk-36CWAWB7.js";
|
|
77
|
+
import "./chunk-VEAKQW4X.js";
|
|
78
78
|
import "./chunk-VWG7OQKU.js";
|
|
79
79
|
import "./chunk-QWQ6GQTI.js";
|
|
80
80
|
import "./chunk-S3S4TGEH.js";
|
|
@@ -84,12 +84,12 @@ import "./chunk-ZTZA4UWZ.js";
|
|
|
84
84
|
import "./chunk-KLIKCX6Q.js";
|
|
85
85
|
import "./chunk-EOOEC32M.js";
|
|
86
86
|
import "./chunk-TJSTGSAW.js";
|
|
87
|
-
import "./chunk-
|
|
87
|
+
import "./chunk-56RENSU4.js";
|
|
88
88
|
import "./chunk-K4WIOZFP.js";
|
|
89
89
|
import "./chunk-XUXGIA7H.js";
|
|
90
90
|
import "./chunk-WERLJGIC.js";
|
|
91
91
|
import "./chunk-ISN5GRYI.js";
|
|
92
|
-
import "./chunk-
|
|
92
|
+
import "./chunk-G3QMPIFG.js";
|
|
93
93
|
import "./chunk-EOVYQ3IG.js";
|
|
94
94
|
import "./chunk-XT6MXC7A.js";
|
|
95
95
|
import "./chunk-A356JY2J.js";
|
|
@@ -20,7 +20,7 @@ import {
|
|
|
20
20
|
typeDirPath,
|
|
21
21
|
updateRecord,
|
|
22
22
|
withFigmaErrors
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-FTFWZHTZ.js";
|
|
24
24
|
import {
|
|
25
25
|
defineCommand
|
|
26
26
|
} from "./chunk-S3S4TGEH.js";
|
|
@@ -229,7 +229,7 @@ var asset_default = defineCommand({
|
|
|
229
229
|
rendered > 0 ? `(${results.length} nodes, ${rendered} rendered in 1 figma request)` : `(${results.length} nodes, all reused from cache \u2014 no figma request)`
|
|
230
230
|
);
|
|
231
231
|
}
|
|
232
|
-
const { trackFigmaImport } = await import("./telemetry-
|
|
232
|
+
const { trackFigmaImport } = await import("./telemetry-ASFTF5YV.js");
|
|
233
233
|
trackFigmaImport({
|
|
234
234
|
phase: "asset",
|
|
235
235
|
reused: results.every((r) => r.reused),
|
|
@@ -23,6 +23,7 @@ var BrowserCleanupError = class extends AggregateError {
|
|
|
23
23
|
var browsers = /* @__PURE__ */ new Set();
|
|
24
24
|
var closing = /* @__PURE__ */ new WeakMap();
|
|
25
25
|
var pending = /* @__PURE__ */ new Map();
|
|
26
|
+
var sessionCleanups = /* @__PURE__ */ new Set();
|
|
26
27
|
var CLOSE_GRACE_MS = 1e3;
|
|
27
28
|
var EXIT_POLL_MS = 50;
|
|
28
29
|
var listening = false;
|
|
@@ -90,7 +91,16 @@ async function launchManagedBrowser(puppeteer, options) {
|
|
|
90
91
|
async function closeManagedBrowsers() {
|
|
91
92
|
for (const abort of pending.values()) abort.abort();
|
|
92
93
|
await Promise.allSettled(pending.keys());
|
|
93
|
-
await Promise.
|
|
94
|
+
const results = await Promise.allSettled([...browsers].map(closeManagedBrowser));
|
|
95
|
+
results.push(...await Promise.allSettled([...sessionCleanups].map((cleanup) => cleanup())));
|
|
96
|
+
const errors = results.flatMap((result) => result.status === "rejected" ? [result.reason] : []);
|
|
97
|
+
if (errors.length) throw new AggregateError(errors, "Browser session shutdown failed.");
|
|
98
|
+
}
|
|
99
|
+
function registerBrowserSessionCleanup(cleanup) {
|
|
100
|
+
if (shutdown) throw new Error("The CLI is stopping; no browser session can start.");
|
|
101
|
+
ownSignals();
|
|
102
|
+
sessionCleanups.add(cleanup);
|
|
103
|
+
return () => sessionCleanups.delete(cleanup);
|
|
94
104
|
}
|
|
95
105
|
function closeManagedBrowser(browser) {
|
|
96
106
|
const existing = closing.get(browser);
|
|
@@ -151,6 +161,7 @@ export {
|
|
|
151
161
|
BrowserCleanupError,
|
|
152
162
|
resolveManagedGpuMode,
|
|
153
163
|
launchManagedBrowser,
|
|
164
|
+
registerBrowserSessionCleanup,
|
|
154
165
|
closeManagedBrowser,
|
|
155
166
|
rethrowAfterBrowserCleanup
|
|
156
167
|
};
|
|
@@ -9,6 +9,18 @@ import {
|
|
|
9
9
|
} from "./chunk-IGLEPPTN.js";
|
|
10
10
|
|
|
11
11
|
// src/utils/dotEnv.ts
|
|
12
|
+
var CAPTURE_ENV_KEYS = [
|
|
13
|
+
"OPENROUTER_API_KEY",
|
|
14
|
+
"GEMINI_API_KEY",
|
|
15
|
+
"GOOGLE_API_KEY",
|
|
16
|
+
"HYPERFRAMES_VERTEX_PROJECT_ID",
|
|
17
|
+
"HYPERFRAMES_VERTEX_SERVICE_ACCOUNT",
|
|
18
|
+
"HYPERFRAMES_VERTEX_LOCATION",
|
|
19
|
+
"HYPERFRAMES_VERTEX_MODEL",
|
|
20
|
+
"HYPERFRAMES_OPENROUTER_MODEL",
|
|
21
|
+
"HYPERFRAMES_GEMINI_MODEL",
|
|
22
|
+
"HYPERFRAMES_VISION_TIMEOUT_MS"
|
|
23
|
+
];
|
|
12
24
|
function valueOf(raw) {
|
|
13
25
|
const quote = raw.charAt(0);
|
|
14
26
|
if (quote === '"' || quote === "'") {
|
|
@@ -26,14 +38,17 @@ function entryOf(rawLine) {
|
|
|
26
38
|
if (eq < 1) return null;
|
|
27
39
|
return [line.slice(0, eq).trim(), valueOf(line.slice(eq + 1).trim())];
|
|
28
40
|
}
|
|
29
|
-
function applyDotEnv(content, env) {
|
|
41
|
+
function applyDotEnv(content, env, allowedKeys) {
|
|
42
|
+
const allowed = allowedKeys === void 0 ? void 0 : new Set(allowedKeys);
|
|
30
43
|
for (const entry of content.split("\n").map(entryOf)) {
|
|
31
44
|
if (!entry) continue;
|
|
32
45
|
const [key, value] = entry;
|
|
33
|
-
if (key && key.toUpperCase() !== FEEDBACK_EMAIL_ENV && !(key in env))
|
|
46
|
+
if (key && key.toUpperCase() !== FEEDBACK_EMAIL_ENV && (allowed === void 0 || allowed.has(key)) && !(key in env))
|
|
47
|
+
env[key] = value;
|
|
34
48
|
}
|
|
35
49
|
}
|
|
36
50
|
|
|
37
51
|
export {
|
|
52
|
+
CAPTURE_ENV_KEYS,
|
|
38
53
|
applyDotEnv
|
|
39
54
|
};
|
|
@@ -32,14 +32,14 @@ import {
|
|
|
32
32
|
import {
|
|
33
33
|
getUpdateMeta,
|
|
34
34
|
withMeta
|
|
35
|
-
} from "./chunk-
|
|
35
|
+
} from "./chunk-56RENSU4.js";
|
|
36
36
|
import {
|
|
37
37
|
CONFIG_PATH,
|
|
38
38
|
withFileLock
|
|
39
39
|
} from "./chunk-XUXGIA7H.js";
|
|
40
40
|
import {
|
|
41
41
|
VERSION
|
|
42
|
-
} from "./chunk-
|
|
42
|
+
} from "./chunk-G3QMPIFG.js";
|
|
43
43
|
import {
|
|
44
44
|
OPTIONAL_PACKAGES,
|
|
45
45
|
installedOptionalPackageVersion
|
|
@@ -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-FDHKA6NV.js");
|
|
1282
1282
|
trackCommandFailure(
|
|
1283
1283
|
command,
|
|
1284
1284
|
err,
|
|
@@ -6,8 +6,8 @@ var __filename = __hf_fileURLToPath(import.meta.url);
|
|
|
6
6
|
var __dirname = __hf_dirname(__filename);
|
|
7
7
|
|
|
8
8
|
// src/version.ts
|
|
9
|
-
var VERSION = true ? "0.8.
|
|
10
|
-
var PRODUCER_VERSION = true ? "0.8.
|
|
9
|
+
var VERSION = true ? "0.8.164" : "0.0.0-dev";
|
|
10
|
+
var PRODUCER_VERSION = true ? "0.8.164" : "0.0.0-dev";
|
|
11
11
|
|
|
12
12
|
export {
|
|
13
13
|
VERSION,
|
|
@@ -7,10 +7,10 @@ var __dirname = __hf_dirname(__filename);
|
|
|
7
7
|
import {
|
|
8
8
|
trackLintReport,
|
|
9
9
|
trackLintRuleStreak
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-36CWAWB7.js";
|
|
11
11
|
import {
|
|
12
12
|
shouldTrack
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-VEAKQW4X.js";
|
|
14
14
|
import {
|
|
15
15
|
LINT_RULE_COUNT,
|
|
16
16
|
LINT_RULE_GROUP_COUNTS
|
|
@@ -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-G3QMPIFG.js";
|
|
10
10
|
|
|
11
11
|
// src/registry/compatibility.ts
|
|
12
12
|
import { compareVersions } from "compare-versions";
|
|
@@ -6,7 +6,7 @@ var __filename = __hf_fileURLToPath(import.meta.url);
|
|
|
6
6
|
var __dirname = __hf_dirname(__filename);
|
|
7
7
|
import {
|
|
8
8
|
shouldTrack
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-VEAKQW4X.js";
|
|
10
10
|
|
|
11
11
|
// src/telemetry/renderObservability.ts
|
|
12
12
|
function renderObservabilityTelemetryPayload(observability) {
|
|
@@ -23,6 +23,180 @@ import {
|
|
|
23
23
|
// src/capture/userAgent.ts
|
|
24
24
|
var CAPTURE_USER_AGENT = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36";
|
|
25
25
|
|
|
26
|
+
// src/capture/publicNetwork.ts
|
|
27
|
+
import { lookup } from "dns/promises";
|
|
28
|
+
import { isIP } from "net";
|
|
29
|
+
import { request as httpRequest } from "http";
|
|
30
|
+
import { request as httpsRequest } from "https";
|
|
31
|
+
function ipv4Number(address) {
|
|
32
|
+
return address.split(".").reduce((value, octet) => value * 256 + Number(octet), 0);
|
|
33
|
+
}
|
|
34
|
+
var NON_PUBLIC_IPV4 = [
|
|
35
|
+
["0.0.0.0", 8],
|
|
36
|
+
["10.0.0.0", 8],
|
|
37
|
+
["100.64.0.0", 10],
|
|
38
|
+
["127.0.0.0", 8],
|
|
39
|
+
["169.254.0.0", 16],
|
|
40
|
+
["172.16.0.0", 12],
|
|
41
|
+
["192.0.0.0", 16],
|
|
42
|
+
["192.88.99.0", 24],
|
|
43
|
+
["192.168.0.0", 16],
|
|
44
|
+
["198.18.0.0", 15],
|
|
45
|
+
["198.51.100.0", 24],
|
|
46
|
+
["203.0.113.0", 24],
|
|
47
|
+
["224.0.0.0", 3]
|
|
48
|
+
];
|
|
49
|
+
var NON_PUBLIC_RANGES = NON_PUBLIC_IPV4.map(([network, prefix]) => ({
|
|
50
|
+
start: ipv4Number(network),
|
|
51
|
+
end: ipv4Number(network) + 2 ** (32 - prefix)
|
|
52
|
+
}));
|
|
53
|
+
function isPublicIPv4(address) {
|
|
54
|
+
if (isIP(address) !== 4) return false;
|
|
55
|
+
const value = ipv4Number(address);
|
|
56
|
+
return !NON_PUBLIC_RANGES.some(({ start, end }) => value >= start && value < end);
|
|
57
|
+
}
|
|
58
|
+
async function resolvePublicAddress(hostname) {
|
|
59
|
+
const host = hostname.toLowerCase().replace(/\.$/, "");
|
|
60
|
+
if (isIP(host) === 4) {
|
|
61
|
+
if (!isPublicIPv4(host)) throw new Error("Capture requires a public IPv4 address");
|
|
62
|
+
return host;
|
|
63
|
+
}
|
|
64
|
+
if (!host.includes(".") || !/^[a-z0-9.-]+$/.test(host) || /(?:^|\.)(?:localhost|local|internal|home|lan|test|invalid|example)$/.test(host) || host.split(".").some((label) => !label || label.startsWith("-") || label.endsWith("-"))) {
|
|
65
|
+
throw new Error("Capture requires a public hostname");
|
|
66
|
+
}
|
|
67
|
+
let timer;
|
|
68
|
+
try {
|
|
69
|
+
const answers = await Promise.race([
|
|
70
|
+
lookup(host, { all: true, family: 4, verbatim: true }),
|
|
71
|
+
new Promise((_resolve, reject) => {
|
|
72
|
+
timer = setTimeout(() => reject(new Error("Capture DNS timed out")), 1e4);
|
|
73
|
+
timer.unref();
|
|
74
|
+
})
|
|
75
|
+
]);
|
|
76
|
+
if (!answers[0] || answers.some((answer) => answer.family !== 4 || !isPublicIPv4(answer.address))) {
|
|
77
|
+
throw new Error("Capture DNS returned a non-public address");
|
|
78
|
+
}
|
|
79
|
+
const first = answers[0];
|
|
80
|
+
if (!first) throw new Error("Capture DNS returned no address");
|
|
81
|
+
return first.address;
|
|
82
|
+
} finally {
|
|
83
|
+
clearTimeout(timer);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
async function publicRequest(url, init = {}) {
|
|
87
|
+
const target = new URL(url);
|
|
88
|
+
if (!["http:", "https:"].includes(target.protocol) || target.username || target.password) {
|
|
89
|
+
throw new Error("Capture requires an HTTP(S) URL without credentials");
|
|
90
|
+
}
|
|
91
|
+
const method = (init.method ?? "GET").toUpperCase();
|
|
92
|
+
if (!["GET", "HEAD"].includes(method) || init.body != null) {
|
|
93
|
+
throw new Error("Capture asset requests support only GET and HEAD without a body");
|
|
94
|
+
}
|
|
95
|
+
const signal = init.signal ?? AbortSignal.timeout(3e4);
|
|
96
|
+
signal.throwIfAborted();
|
|
97
|
+
const address = await new Promise((resolve, reject) => {
|
|
98
|
+
const onAbort = () => reject(signal.reason);
|
|
99
|
+
signal.addEventListener("abort", onAbort, { once: true });
|
|
100
|
+
resolvePublicAddress(target.hostname).then(resolve, reject).finally(() => signal.removeEventListener("abort", onAbort));
|
|
101
|
+
});
|
|
102
|
+
signal.throwIfAborted();
|
|
103
|
+
const headers = new Headers(init.headers);
|
|
104
|
+
for (const name of [
|
|
105
|
+
"connection",
|
|
106
|
+
"proxy-authorization",
|
|
107
|
+
"proxy-connection",
|
|
108
|
+
"transfer-encoding",
|
|
109
|
+
"upgrade",
|
|
110
|
+
"content-length"
|
|
111
|
+
])
|
|
112
|
+
headers.delete(name);
|
|
113
|
+
headers.set("host", target.host);
|
|
114
|
+
headers.set("accept-encoding", "identity");
|
|
115
|
+
return new Promise((resolve, reject) => {
|
|
116
|
+
const request = target.protocol === "https:" ? httpsRequest : httpRequest;
|
|
117
|
+
const req = request(
|
|
118
|
+
{
|
|
119
|
+
protocol: target.protocol,
|
|
120
|
+
hostname: address,
|
|
121
|
+
port: target.port || void 0,
|
|
122
|
+
path: `${target.pathname}${target.search}`,
|
|
123
|
+
method,
|
|
124
|
+
headers: Object.fromEntries(headers),
|
|
125
|
+
agent: false,
|
|
126
|
+
servername: target.hostname,
|
|
127
|
+
rejectUnauthorized: true,
|
|
128
|
+
signal
|
|
129
|
+
},
|
|
130
|
+
(incoming) => {
|
|
131
|
+
try {
|
|
132
|
+
resolve(assetResponse(incoming, req, method));
|
|
133
|
+
} catch (error) {
|
|
134
|
+
incoming.destroy();
|
|
135
|
+
reject(error);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
);
|
|
139
|
+
req.once("error", reject);
|
|
140
|
+
req.end();
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
function responseHeaders(incoming) {
|
|
144
|
+
const headers = new Headers();
|
|
145
|
+
for (const [name, value] of Object.entries(incoming.headers)) {
|
|
146
|
+
if (value === void 0) continue;
|
|
147
|
+
for (const item of Array.isArray(value) ? value : [value]) headers.append(name, item);
|
|
148
|
+
}
|
|
149
|
+
return headers;
|
|
150
|
+
}
|
|
151
|
+
function assetResponse(incoming, req, method) {
|
|
152
|
+
incoming.on("error", () => {
|
|
153
|
+
});
|
|
154
|
+
const headers = responseHeaders(incoming);
|
|
155
|
+
const encoding = headers.get("content-encoding")?.toLowerCase();
|
|
156
|
+
if (encoding && encoding !== "identity") {
|
|
157
|
+
throw new Error("Capture server ignored identity content encoding");
|
|
158
|
+
}
|
|
159
|
+
const status = incoming.statusCode ?? 502;
|
|
160
|
+
if (method === "HEAD" || [204, 205, 304].includes(status)) {
|
|
161
|
+
incoming.resume();
|
|
162
|
+
return new Response(null, { status, headers });
|
|
163
|
+
}
|
|
164
|
+
return new Response(responseBody(incoming, req), { status, headers });
|
|
165
|
+
}
|
|
166
|
+
function responseBody(incoming, req) {
|
|
167
|
+
let finished = false;
|
|
168
|
+
return new ReadableStream({
|
|
169
|
+
start(controller) {
|
|
170
|
+
incoming.on("data", (chunk) => {
|
|
171
|
+
if (finished) return;
|
|
172
|
+
controller.enqueue(chunk);
|
|
173
|
+
incoming.pause();
|
|
174
|
+
});
|
|
175
|
+
incoming.once("end", () => {
|
|
176
|
+
if (finished) return;
|
|
177
|
+
finished = true;
|
|
178
|
+
controller.close();
|
|
179
|
+
});
|
|
180
|
+
const fail = (error) => {
|
|
181
|
+
if (finished) return;
|
|
182
|
+
finished = true;
|
|
183
|
+
controller.error(error);
|
|
184
|
+
};
|
|
185
|
+
incoming.once("error", fail);
|
|
186
|
+
incoming.once("aborted", () => fail(new Error("Capture response aborted")));
|
|
187
|
+
incoming.pause();
|
|
188
|
+
},
|
|
189
|
+
pull() {
|
|
190
|
+
incoming.resume();
|
|
191
|
+
},
|
|
192
|
+
cancel() {
|
|
193
|
+
finished = true;
|
|
194
|
+
incoming.destroy();
|
|
195
|
+
req.destroy();
|
|
196
|
+
}
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
|
|
26
200
|
// src/capture/assetDownloader.ts
|
|
27
201
|
import { join, extname } from "path";
|
|
28
202
|
import { createHash as createHash2 } from "crypto";
|
|
@@ -781,10 +955,12 @@ async function safeFetch(url, init) {
|
|
|
781
955
|
let current = url;
|
|
782
956
|
for (let hop = 0; hop <= MAX_FETCH_REDIRECTS; hop++) {
|
|
783
957
|
if (isPrivateUrl(current)) return null;
|
|
784
|
-
const res = await
|
|
958
|
+
const res = await publicRequest(current, { ...init, redirect: "manual" });
|
|
785
959
|
if (res.status >= 300 && res.status < 400) {
|
|
786
960
|
const loc = res.headers.get("location");
|
|
787
961
|
if (!loc) return res;
|
|
962
|
+
await res.body?.cancel().catch(() => {
|
|
963
|
+
});
|
|
788
964
|
try {
|
|
789
965
|
current = new URL(loc, current).toString();
|
|
790
966
|
} catch {
|
|
@@ -852,6 +1028,7 @@ function deriveAssetName(parsedUrl, catalog, isPoster, idx, usedNames) {
|
|
|
852
1028
|
}
|
|
853
1029
|
|
|
854
1030
|
export {
|
|
1031
|
+
resolvePublicAddress,
|
|
855
1032
|
CAPTURE_USER_AGENT,
|
|
856
1033
|
noDrops,
|
|
857
1034
|
mergeDrops,
|
|
@@ -7,7 +7,7 @@ var __dirname = __hf_dirname(__filename);
|
|
|
7
7
|
import {
|
|
8
8
|
RegistryCompatibilityError,
|
|
9
9
|
gateRegistryItemsCompatibility
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-HYRDV7AL.js";
|
|
11
11
|
import {
|
|
12
12
|
DEFAULT_PROJECT_CONFIG,
|
|
13
13
|
createProjectConfig,
|
|
@@ -29,7 +29,7 @@ import {
|
|
|
29
29
|
} from "./chunk-H45RC6HN.js";
|
|
30
30
|
import {
|
|
31
31
|
trackRegistryItemAdded
|
|
32
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-36CWAWB7.js";
|
|
33
33
|
import {
|
|
34
34
|
defineCommand
|
|
35
35
|
} from "./chunk-S3S4TGEH.js";
|