hyperframes 0.8.139 → 0.8.141
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-VYJQ4S3P.js → add-KH2CF4FD.js} +20 -22
- package/dist/{animatedGifPrep-IBMW6FZB.js → animatedGifPrep-QO4BSKR7.js} +15 -8
- package/dist/{asset-FLSUS73X.js → asset-4RDZILVJ.js} +3 -3
- package/dist/{assetCataloger-TGD7TRCR.js → assetCataloger-WGR4LYYN.js} +6 -3
- package/dist/{auth-EZXIN4M4.js → auth-WYQCOYE5.js} +7 -7
- package/dist/{autoUpdate-ZPMY5T3X.js → autoUpdate-PC5TN3NL.js} +2 -2
- package/dist/{backgroundChecks-JIDTAUFE.js → backgroundChecks-7M3T44EP.js} +3 -3
- package/dist/backgroundChecksWorker.js +3 -3
- package/dist/{batchRender-FNZ6TJYY.js → batchRender-GOLLOE4V.js} +11 -8
- package/dist/beat-analyzer.global.js +5 -2
- package/dist/{beats-EAA4U3YN.js → beats-XJ7WP6QS.js} +24 -17
- package/dist/{benchmark-KKZQVK2Y.js → benchmark-HCGFBEZJ.js} +20 -23
- package/dist/{browser-ZIVVJLJT.js → browser-VQKO2FKG.js} +14 -28
- package/dist/{bundleWithLocalizedFonts-2XWC3PEM.js → bundleWithLocalizedFonts-FH7PHTTX.js} +5 -5
- package/dist/{capture-EFYPXI42.js → capture-TFZZSF6F.js} +22 -15
- package/dist/{capture-MKJHABUL.js → capture-XD3P3YQR.js} +2 -2
- package/dist/{catalog-EWX4BBI2.js → catalog-4S33QWJJ.js} +28 -30
- package/dist/{catch-up-FJFH7T4W.js → catch-up-RW7YXXNT.js} +11 -25
- package/dist/{check-YJNVDCBP.js → check-XVTRRN4Y.js} +72 -54
- package/dist/{checkBrowser-I6SPPEGD.js → checkBrowser-HZXJ2EDU.js} +81 -36
- package/dist/chunk-24OWOBQH.js +3656 -0
- package/dist/{chunk-OENM2JVZ.js → chunk-34TXESM7.js} +3 -3
- package/dist/{chunk-GWV2Y36Q.js → chunk-35RSNI77.js} +5 -106
- package/dist/{chunk-BC3OY2ED.js → chunk-3A5AAPMP.js} +1 -1
- package/dist/{chunk-U3HX7WE6.js → chunk-3NBKW2QJ.js} +1 -1
- package/dist/{chunk-A4X2YWNQ.js → chunk-4BB7V6AI.js} +38 -301
- package/dist/{chunk-EJ7OWYF2.js → chunk-6E6CM7WS.js} +19 -163
- package/dist/{chunk-CDMB3PRC.js → chunk-6IFXWJDX.js} +7 -7
- package/dist/{chunk-Z67RZ4XO.js → chunk-6Q6FR4KH.js} +279 -1968
- package/dist/{chunk-R4QIE6UY.js → chunk-7M4KAPAA.js} +92 -31
- package/dist/{chunk-25DHUDOK.js → chunk-7XTZVLE6.js} +12 -3
- package/dist/chunk-A4KQZXZI.js +116 -0
- package/dist/{chunk-DUQJF7FK.js → chunk-A7YQNIQT.js} +8 -8
- package/dist/{chunk-XOZ3J3LB.js → chunk-AVWEIOEN.js} +1 -1
- package/dist/{chunk-UQXOHEQ7.js → chunk-BM5PX3DJ.js} +4 -4
- package/dist/{chunk-SHB5VDMH.js → chunk-BRITLL56.js} +1 -1
- package/dist/{chunk-JX7Y57YY.js → chunk-E4BSCXMU.js} +1 -1
- package/dist/{chunk-QXOFUKBF.js → chunk-E6SDW5FV.js} +168 -165
- package/dist/{chunk-JH556Q42.js → chunk-EDYBFSPE.js} +2 -2
- package/dist/{chunk-R7LWDIKB.js → chunk-EKA4ZZBI.js} +1 -1
- package/dist/chunk-FXMKHHPO.js +123 -0
- package/dist/chunk-G75ENCEZ.js +283 -0
- package/dist/{chunk-PLNWWGE7.js → chunk-GQJZORQP.js} +1 -1
- package/dist/{chunk-U3GEXWI5.js → chunk-GS6FE3IW.js} +1 -1
- package/dist/{chunk-Y6W4DVPS.js → chunk-HKCNZITN.js} +1 -1
- package/dist/{chunk-HOIHGPWO.js → chunk-IKVBTDLO.js} +1 -1
- package/dist/{chunk-YOL4QRSL.js → chunk-INI3TM6I.js} +2 -2
- package/dist/{chunk-SIKMUO45.js → chunk-IO7ZIDRP.js} +12 -12
- package/dist/{chunk-W7SAWBQC.js → chunk-IV7EI5E2.js} +1 -1
- package/dist/{chunk-TCWL4BKK.js → chunk-IYFKBFTW.js} +1 -1
- package/dist/{chunk-JIIIBTN2.js → chunk-J5IPIQU2.js} +1 -1
- package/dist/chunk-JFKL3WAE.js +161 -0
- package/dist/{chunk-IBRZUVTH.js → chunk-K2GOFLTX.js} +2 -2
- package/dist/{chunk-X3TMMIDP.js → chunk-KFH6UD26.js} +8 -8
- package/dist/{chunk-O6K5DWXM.js → chunk-KOEWEFHK.js} +1 -1
- package/dist/{chunk-VTVS4IIP.js → chunk-L3JSAB4L.js} +2 -2
- package/dist/{chunk-3RT6D4P6.js → chunk-N77KD7ZZ.js} +1 -1
- package/dist/{chunk-FLRCVYNE.js → chunk-NORZWWLK.js} +2 -2
- package/dist/{chunk-4VZBKOQJ.js → chunk-O3SKIXQK.js} +1 -1
- package/dist/{chunk-PFI3VD77.js → chunk-OLDDJS3S.js} +10 -10
- package/dist/{chunk-UGI77E35.js → chunk-P6E4HFFU.js} +167 -61
- package/dist/{chunk-GIDHR5OL.js → chunk-Q65ZQFF2.js} +1 -1
- package/dist/chunk-QZ3AZTXI.js +1740 -0
- package/dist/{chunk-NTIOLSFE.js → chunk-R7UDXKI3.js} +3 -3
- package/dist/{chunk-7SI7GCX6.js → chunk-RCFCZT5O.js} +6 -6
- package/dist/{chunk-DW32KBHN.js → chunk-RPYPW5NN.js} +13 -13
- package/dist/chunk-SYKKFAUW.js +3711 -0
- package/dist/chunk-T76PLPD6.js +57 -0
- package/dist/{chunk-JTAYFSLO.js → chunk-TC2FBZJZ.js} +1 -1
- package/dist/{chunk-Q73ISOVQ.js → chunk-U7E736AJ.js} +1 -1
- package/dist/chunk-USDEMXXL.js +110 -0
- package/dist/{chunk-UMWROSIP.js → chunk-W6HTOVHU.js} +2 -2
- package/dist/{chunk-STA43FMY.js → chunk-WY5OODN5.js} +71 -3855
- package/dist/{chunk-EZ2P7LAP.js → chunk-XDSOIJC3.js} +8 -8
- package/dist/{chunk-ZTZ7NCJT.js → chunk-XTFJOR3K.js} +1 -1
- package/dist/{chunk-CDJ7FPPJ.js → chunk-XWVGSEUT.js} +1 -1
- package/dist/chunk-YA62XGXS.js +45 -0
- package/dist/{chunk-EH4VUY27.js → chunk-YURXPGAM.js} +2 -2
- package/dist/{clean-P4KTCOUA.js → clean-L2E4VD57.js} +29 -20
- package/dist/cli.js +55 -55
- package/dist/{cloud-PDY7S4HU.js → cloud-IDUQRYLO.js} +7 -7
- package/dist/{cloudrun-54MA2W5H.js → cloudrun-R3JXWXGG.js} +11 -8
- package/dist/commands/layout-audit.browser.js +37 -8
- package/dist/commands/motion-signature.browser.js +51 -2
- package/dist/{compare-LDWVSPC5.js → compare-VYBWSP3Y.js} +40 -31
- package/dist/{compiler-CWSZ4W7J.js → compiler-ACHWOU5N.js} +7 -3
- package/dist/{component-FIEGC22U.js → component-PYYV2V3F.js} +4 -4
- package/dist/{compositions-JR7PX356.js → compositions-B5GQSXH7.js} +23 -16
- package/dist/{delete-FXA2IHOS.js → delete-EAX2U3WI.js} +8 -8
- package/dist/{deterministicFonts-GTITFRSJ.js → deterministicFonts-F6WIVL2W.js} +1 -1
- package/dist/{dist-OJTEVNJR.js → dist-NZSQCYOF.js} +3 -1
- package/dist/{dist-4JZWRWS6.js → dist-ROUDWGLO.js} +27 -15
- package/dist/{doctor-OTDHPM6K.js → doctor-PJX7MLFG.js} +20 -13
- package/dist/{events-UAFTI24U.js → events-SBC54MHO.js} +6 -22
- package/dist/{events-6T7M2VCO.js → events-YFFXKAQQ.js} +10 -23
- package/dist/{feedback-ZGZODHB6.js → feedback-UETLWREV.js} +67 -45
- package/dist/{figma-D26EJ7ZB.js → figma-QDSJPIRW.js} +6 -6
- package/dist/fontLocalizeCli.js +18 -11
- package/dist/{get-IAREU7IK.js → get-B5TS6C7H.js} +8 -8
- package/dist/{gpuPolicy-NS7WZRDJ.js → gpuPolicy-LYOVBAJP.js} +15 -8
- package/dist/{grade-compare-ZXHFHCD2.js → grade-compare-LBIHMAUN.js} +40 -31
- package/dist/{help-RVNYHW3N.js → help-XBP6A6LT.js} +4 -4
- package/dist/{history-THP4VNMF.js → history-2S42ZXKL.js} +12 -30
- package/dist/hyperframe-runtime.js +59 -59
- package/dist/hyperframe.manifest.json +1 -1
- package/dist/hyperframe.runtime.iife.js +59 -59
- package/dist/hyperframes-player.global.js +3 -3
- package/dist/{info-EOFRHN5A.js → info-I2VDAWT7.js} +17 -20
- package/dist/{init-YLIJE4CG.js → init-BGHSDODI.js} +48 -41
- package/dist/{inspect-3D56ONJD.js → inspect-MZK5B5RP.js} +39 -30
- package/dist/{installer-GRR2GDZK.js → installer-LL4QAKFW.js} +8 -5
- package/dist/{keyframes-NXNCTQPK.js → keyframes-2EBF7OSS.js} +14 -25
- package/dist/{lambda-VGRZD7TR.js → lambda-XKFPAOFE.js} +16 -13
- package/dist/{layout-Z5DOS6DU.js → layout-TP5ERKEF.js} +39 -30
- package/dist/{lint-YD6NJGR2.js → lint-FQ6CEI7E.js} +17 -23
- package/dist/{lintProject-ANMPLBIT.js → lintProject-LM3XZRPZ.js} +3 -1
- package/dist/{list-XGDKILYN.js → list-FRNUJXZ3.js} +8 -8
- package/dist/{login-GD5SA4RD.js → login-C25QU3BQ.js} +9 -9
- package/dist/{logout-Q654A3SI.js → logout-GJXZQKOA.js} +5 -5
- package/dist/{media-treatment-TY4X4GQQ.js → media-treatment-DCANGWSV.js} +21 -20
- package/dist/{models-MXRDH4WJ.js → models-GOD6ARB3.js} +19 -12
- package/dist/{motionShot-6LKR3C2E.js → motionShot-FSKETANX.js} +22 -15
- package/dist/{normalize-O76AC4HE.js → normalize-IGLHCWTF.js} +0 -4
- package/dist/{normalize-audio-5ADDZKPJ.js → normalize-audio-C2IM7OID.js} +13 -26
- package/dist/{open-JXAMO325.js → open-VVISXIII.js} +11 -25
- package/dist/{pipeline-Q5MOPIIX.js → pipeline-7YHZPYIS.js} +15 -8
- package/dist/{play-3SPH5GWZ.js → play-DSELK7G3.js} +38 -32
- package/dist/{preflight-2PWAPKWC.js → preflight-Y5DN5D37.js} +3 -18
- package/dist/{present-ZTJQDKXZ.js → present-N72YFDKP.js} +32 -26
- package/dist/{preview-4A3XZR6J.js → preview-XTYN4NJ2.js} +33 -26
- package/dist/{producer-5ZKKKQPB.js → producer-NDCU3MHK.js} +1 -1
- package/dist/{projectConfig-WA4CS4SN.js → projectConfig-MH4QU4AC.js} +10 -7
- package/dist/{publication-CLG2FRRI.js → publication-KUSHI5MG.js} +6 -3
- package/dist/{publish-YTT2WMXO.js → publish-3XEEFWMF.js} +27 -20
- package/dist/{refresh-K24ETHMA.js → refresh-MFITBIKV.js} +5 -5
- package/dist/{remove-background-W35INR3B.js → remove-background-2QKJ7XOD.js} +22 -15
- package/dist/{render-WUBFQMAH.js → render-2DVYTVLQ.js} +52 -32
- package/dist/{render-7A4P5WMU.js → render-75E342ZU.js} +10 -7
- package/dist/{render-KICXUPNR.js → render-S73DW4KK.js} +23 -26
- package/dist/{render-batch-N7EFGE6S.js → render-batch-YURBS54Q.js} +11 -8
- package/dist/{renderCancellation-LYQPPFAO.js → renderCancellation-373ASJTO.js} +15 -8
- package/dist/renderSetupWorker.js +4 -2
- package/dist/{resolver-YTT2NENF.js → resolver-FE3GBZ4T.js} +8 -5
- package/dist/{sherpa-353MW4UV.js → sherpa-B2D3AGP6.js} +16 -9
- package/dist/skills/hyperframes/references/capability-menu.md +1 -1
- package/dist/skills/hyperframes-cli/SKILL.md +5 -0
- package/dist/skills/hyperframes-cli/references/lint-validate-inspect.md +1 -1
- package/dist/skills/hyperframes-cli/references/preview-render.md +1 -1
- package/dist/skills/media-use/SKILL.md +9 -5
- package/dist/skills/media-use/audio/scripts/lib/heygen.mjs +47 -4
- package/dist/skills/media-use/audio/scripts/lib/heygen.test.mjs +125 -18
- package/dist/skills/media-use/audio/scripts/lib/host-audio.mjs +28 -0
- package/dist/skills/media-use/audio/scripts/lib/host-audio.test.mjs +106 -0
- package/dist/skills/media-use/references/setup-providers.md +16 -2
- package/dist/skills/media-use/scripts/lib/heygen-cli.mjs +21 -1
- package/dist/skills/media-use/scripts/lib/heygen-cli.test.mjs +14 -0
- package/dist/skills/media-use/scripts/resolve.mjs +11 -6
- package/dist/{skills-2XJIOEBT.js → skills-ICJ22CZZ.js} +15 -30
- package/dist/{skillsUpdateCheck-LMCCWGNO.js → skillsUpdateCheck-GXZN56I5.js} +3 -3
- package/dist/{snapshot-WBRSTLJ2.js → snapshot-XHKOAWF4.js} +41 -32
- package/dist/{src-ZS3BLTZ5.js → src-74PFDTDX.js} +17 -10
- package/dist/{src-YWFJILQF.js → src-I7UC3JTL.js} +19 -11
- package/dist/{staticProjectServer-4VKVHPNG.js → staticProjectServer-2DGKD6TF.js} +24 -16
- package/dist/{status-73MBN37B.js → status-JA6SKQVH.js} +7 -24
- package/dist/studio/assets/hyperframes-player-5Vx2AiUz.js +473 -0
- package/dist/studio/assets/{index-DsEkE5_G.js → index-BAnh7cSQ.js} +1 -1
- package/dist/studio/assets/{index-Br1Whc0f.js → index-C0thd4eM.js} +204 -204
- package/dist/studio/assets/{index-BmIPrb8I.js → index-P8fgj_Xa.js} +1 -1
- package/dist/studio/{chunk-E422JDF5.js → chunk-H2DUOXTF.js} +2 -1
- package/dist/studio/index.d.ts +19 -3
- package/dist/studio/index.html +1 -1
- package/dist/studio/index.js +6518 -5813
- package/dist/studio/index.js.map +1 -1
- package/dist/studio/player.js +1 -1
- package/dist/{studio-api-5V4TVSQV.js → studio-api-PROBO7JG.js} +40 -28
- package/dist/{studioServer-M5XY3HYC.js → studioServer-ID6UV2NE.js} +100 -69
- package/dist/{system-RCRNX5VF.js → system-OQLOGGPJ.js} +2 -19
- package/dist/{telemetry-LOBRQGUD.js → telemetry-65LFHIWH.js} +8 -23
- package/dist/{timeline-3JCP6PXU.js → timeline-6UV3JJXD.js} +32 -22
- package/dist/{tokens-MLMIJBVF.js → tokens-HIL4TZXI.js} +3 -3
- package/dist/{transcribe-KNFXDEAX.js → transcribe-TIO6W3EQ.js} +16 -9
- package/dist/{transcribe-POH25ZPX.js → transcribe-V7F6QDSN.js} +20 -44
- package/dist/{updateCheck-5ITBSBST.js → updateCheck-GZELANMA.js} +2 -2
- package/dist/{upgrade-K6OK4FKT.js → upgrade-BX3KDDZJ.js} +5 -5
- package/dist/{urlDownloader-TJJQKADT.js → urlDownloader-R76OHFIE.js} +14 -7
- package/dist/{validate-PPPOBJHB.js → validate-7UX4I443.js} +26 -19
- package/dist/{video-OB22HWXZ.js → video-RVGYEFQU.js} +18 -11
- package/package.json +1 -1
- package/dist/chunk-HYYSJI5D.js +0 -3742
- package/dist/studio/assets/hyperframes-player-CckOoCJ8.js +0 -473
- package/dist/{chunk-I465DBM6.js → chunk-246MOR5U.js} +3 -3
- package/dist/{deploy-MX76RZ36.js → deploy-5G4Z6LPA.js} +1 -1
- package/dist/{destroy-H2TZBYHH.js → destroy-GFQLTIY3.js} +1 -1
- package/dist/{docs-QAPJEGLS.js → docs-MPOM3PHH.js} +3 -3
- package/dist/{policies-FSDZVS2E.js → policies-4FEXMXPK.js} +3 -3
- package/dist/{progress-FBIEEB7Y.js → progress-5AM2MZ7V.js} +3 -3
- package/dist/{sites-TNVKZS73.js → sites-HZMADOA3.js} +1 -1
- package/dist/studio/{chunk-E422JDF5.js.map → chunk-H2DUOXTF.js.map} +0 -0
- package/dist/{telemetry-2YC4SGQU.js → telemetry-W5AKPI4R.js} +3 -3
- package/dist/{tts-FU35O6YB.js → tts-TOHSPWEG.js} +4 -4
|
@@ -6,13 +6,13 @@ var __filename = __hf_fileURLToPath(import.meta.url);
|
|
|
6
6
|
var __dirname = __hf_dirname(__filename);
|
|
7
7
|
import {
|
|
8
8
|
refreshIfNeeded
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-BRITLL56.js";
|
|
10
10
|
import {
|
|
11
11
|
buildAuthHeaders,
|
|
12
12
|
isAuthError,
|
|
13
13
|
isTokenExpired,
|
|
14
14
|
tryResolveCredential
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-246MOR5U.js";
|
|
16
16
|
import {
|
|
17
17
|
CSS_URL_RE,
|
|
18
18
|
isNonRelativeUrl,
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { createRequire as __hf_createRequire } from "node:module";
|
|
2
|
+
import { fileURLToPath as __hf_fileURLToPath } from "node:url";
|
|
3
|
+
import { dirname as __hf_dirname } from "node:path";
|
|
4
|
+
var require = __hf_createRequire(import.meta.url);
|
|
5
|
+
var __filename = __hf_fileURLToPath(import.meta.url);
|
|
6
|
+
var __dirname = __hf_dirname(__filename);
|
|
7
|
+
|
|
8
|
+
// ../core/dist/canary.js
|
|
9
|
+
function fnv1a32(input) {
|
|
10
|
+
let hash = 2166136261;
|
|
11
|
+
for (let i = 0; i < input.length; i++) {
|
|
12
|
+
hash ^= input.charCodeAt(i);
|
|
13
|
+
hash = hash + ((hash << 1) + (hash << 4) + (hash << 7) + (hash << 8) + (hash << 24)) >>> 0;
|
|
14
|
+
}
|
|
15
|
+
return hash >>> 0;
|
|
16
|
+
}
|
|
17
|
+
function canaryBucket(feature, unitId) {
|
|
18
|
+
return fnv1a32(`${feature}:${unitId}`) % 100;
|
|
19
|
+
}
|
|
20
|
+
function evaluateCanary(input) {
|
|
21
|
+
if (input.override === true)
|
|
22
|
+
return { enabled: true, reason: "forced_on" };
|
|
23
|
+
if (input.override === false)
|
|
24
|
+
return { enabled: false, reason: "forced_off" };
|
|
25
|
+
const pct = Math.max(0, Math.min(100, Math.trunc(input.percentage)));
|
|
26
|
+
if (pct <= 0)
|
|
27
|
+
return { enabled: false, reason: "out_of_cohort" };
|
|
28
|
+
if (pct >= 100)
|
|
29
|
+
return { enabled: true, reason: "in_cohort" };
|
|
30
|
+
if (input.exclude)
|
|
31
|
+
return { enabled: false, reason: "excluded" };
|
|
32
|
+
const unitId = input.unitId?.trim();
|
|
33
|
+
if (!unitId)
|
|
34
|
+
return { enabled: false, reason: "no_unit_id" };
|
|
35
|
+
const bucket = canaryBucket(input.feature, unitId);
|
|
36
|
+
return bucket < pct ? { enabled: true, reason: "in_cohort", bucket } : { enabled: false, reason: "out_of_cohort", bucket };
|
|
37
|
+
}
|
|
38
|
+
function parseCanaryOverride(raw) {
|
|
39
|
+
const v = raw?.trim().toLowerCase();
|
|
40
|
+
if (v === void 0 || v === "")
|
|
41
|
+
return void 0;
|
|
42
|
+
if (v === "1" || v === "true" || v === "on" || v === "yes")
|
|
43
|
+
return true;
|
|
44
|
+
if (v === "0" || v === "false" || v === "off" || v === "no")
|
|
45
|
+
return false;
|
|
46
|
+
return void 0;
|
|
47
|
+
}
|
|
48
|
+
var CANARY_FEATURE_PREFIX = "$feature/canary-";
|
|
49
|
+
function canaryFeatureKey(name) {
|
|
50
|
+
return `${CANARY_FEATURE_PREFIX}${name}`;
|
|
51
|
+
}
|
|
52
|
+
function canaryReasonKey(name) {
|
|
53
|
+
return `canary_reason_${name.replace(/[^A-Za-z0-9]+/g, "_")}`;
|
|
54
|
+
}
|
|
55
|
+
function canaryFeatureProperties(entries) {
|
|
56
|
+
const props = {};
|
|
57
|
+
for (const entry of entries) {
|
|
58
|
+
props[canaryFeatureKey(entry.name)] = entry.enabled ? "true" : "false";
|
|
59
|
+
if (entry.reason !== void 0)
|
|
60
|
+
props[canaryReasonKey(entry.name)] = entry.reason;
|
|
61
|
+
}
|
|
62
|
+
return props;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
// ../core/dist/canaryRegistry.js
|
|
66
|
+
var CANARIES = [
|
|
67
|
+
// ── Calibration ──────────────────────────────────────────────────────────
|
|
68
|
+
// Two INERT canaries that gate nothing. They exist to validate the rollout
|
|
69
|
+
// mechanism against real traffic before anything real depends on it, and
|
|
70
|
+
// they answer questions the synthetic tests cannot:
|
|
71
|
+
//
|
|
72
|
+
// 1. Does a requested percentage land on target in the wild? The unit
|
|
73
|
+
// tests use generated UUIDs and weight every install equally; real
|
|
74
|
+
// render volume is heavily skewed toward a few heavy installs, so the
|
|
75
|
+
// render-weighted share could differ from the install-weighted one.
|
|
76
|
+
// 2. How fast does CUMULATIVE exposure drift above the target? Install
|
|
77
|
+
// ids churn (measured: 24.7x more distinct ids over 30 days than in
|
|
78
|
+
// any single day), so the set of installs enrolled AT SOME POINT grows
|
|
79
|
+
// even though the instantaneous share stays flat. That drift is the
|
|
80
|
+
// real limit on a canary's blast-radius guarantee.
|
|
81
|
+
// 3. Are two canaries actually independent on real ids, not just on
|
|
82
|
+
// generated ones? Overlap should be ~p1*p2, not ~min(p1,p2).
|
|
83
|
+
//
|
|
84
|
+
// Two different percentages so the answer is a line, not a point.
|
|
85
|
+
// Delete both once the calibration window is read.
|
|
86
|
+
{
|
|
87
|
+
name: "calibration-10",
|
|
88
|
+
percentage: 10,
|
|
89
|
+
description: "Inert. Validates rollout accuracy and cumulative-exposure drift at 10%.",
|
|
90
|
+
owner: "vance",
|
|
91
|
+
sunsetAfter: "2026-09-15"
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
name: "calibration-50",
|
|
95
|
+
percentage: 50,
|
|
96
|
+
description: "Inert. Second calibration point, and an independence check against calibration-10.",
|
|
97
|
+
owner: "vance",
|
|
98
|
+
sunsetAfter: "2026-09-15"
|
|
99
|
+
}
|
|
100
|
+
];
|
|
101
|
+
function findCanary(name) {
|
|
102
|
+
return CANARIES.find((c) => c.name === name);
|
|
103
|
+
}
|
|
104
|
+
function canaryEnvVar(name) {
|
|
105
|
+
return `HF_CANARY_${name.toUpperCase().replace(/[^A-Z0-9]+/g, "_")}`;
|
|
106
|
+
}
|
|
107
|
+
function overdueCanaries(now = /* @__PURE__ */ new Date()) {
|
|
108
|
+
return CANARIES.filter((c) => {
|
|
109
|
+
const sunsetEnd = Date.parse(`${c.sunsetAfter}T23:59:59.999Z`);
|
|
110
|
+
return Number.isFinite(sunsetEnd) && now.getTime() > sunsetEnd;
|
|
111
|
+
}).map((c) => c.name);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
export {
|
|
115
|
+
canaryBucket,
|
|
116
|
+
evaluateCanary,
|
|
117
|
+
parseCanaryOverride,
|
|
118
|
+
canaryFeatureProperties,
|
|
119
|
+
CANARIES,
|
|
120
|
+
findCanary,
|
|
121
|
+
canaryEnvVar,
|
|
122
|
+
overdueCanaries
|
|
123
|
+
};
|
|
@@ -0,0 +1,283 @@
|
|
|
1
|
+
import { createRequire as __hf_createRequire } from "node:module";
|
|
2
|
+
import { fileURLToPath as __hf_fileURLToPath } from "node:url";
|
|
3
|
+
import { dirname as __hf_dirname } from "node:path";
|
|
4
|
+
var require = __hf_createRequire(import.meta.url);
|
|
5
|
+
var __filename = __hf_fileURLToPath(import.meta.url);
|
|
6
|
+
var __dirname = __hf_dirname(__filename);
|
|
7
|
+
import {
|
|
8
|
+
STUDIO_MANUAL_EDITS_PATH
|
|
9
|
+
} from "./chunk-KC5XXX3X.js";
|
|
10
|
+
import {
|
|
11
|
+
realpath,
|
|
12
|
+
resolveWithinProject
|
|
13
|
+
} from "./chunk-OFQWTKPW.js";
|
|
14
|
+
|
|
15
|
+
// ../studio-server/dist/chunk-4ETS2LXI.js
|
|
16
|
+
var STUDIO_MOTION_PATH = ".hyperframes/studio-motion.json";
|
|
17
|
+
function hasStudioMotionEntries(manifestContent) {
|
|
18
|
+
try {
|
|
19
|
+
const parsed = JSON.parse(manifestContent);
|
|
20
|
+
return Array.isArray(parsed.motions) && parsed.motions.length > 0;
|
|
21
|
+
} catch {
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
function createStudioMotionRenderBodyScript(manifestContent, options = {}) {
|
|
26
|
+
if (!manifestContent.trim() || !hasStudioMotionEntries(manifestContent)) return null;
|
|
27
|
+
return `(${studioMotionRenderRuntime.toString()})(${JSON.stringify(manifestContent)}, ${JSON.stringify(options.activeCompositionPath ?? null)});`;
|
|
28
|
+
}
|
|
29
|
+
function studioMotionRenderRuntime(manifestContent, activeCompositionPath) {
|
|
30
|
+
const STUDIO_MOTION_TIMELINE_ID = "studio-motion";
|
|
31
|
+
const STUDIO_MOTION_ATTR = "data-hf-studio-motion";
|
|
32
|
+
const ORIGINAL_TRANSFORM_ATTR = "data-hf-studio-motion-original-transform";
|
|
33
|
+
const ORIGINAL_OPACITY_ATTR = "data-hf-studio-motion-original-opacity";
|
|
34
|
+
const ORIGINAL_VISIBILITY_ATTR = "data-hf-studio-motion-original-visibility";
|
|
35
|
+
const objectRecord = (value) => value && typeof value === "object" ? value : null;
|
|
36
|
+
const finiteNumber = (value) => typeof value === "number" && Number.isFinite(value) ? value : null;
|
|
37
|
+
const runtimeWindow = window;
|
|
38
|
+
const parseMotionValues = (value) => {
|
|
39
|
+
const record = objectRecord(value);
|
|
40
|
+
if (!record) return null;
|
|
41
|
+
const parsed = {};
|
|
42
|
+
for (const key of ["x", "y", "scale", "rotation", "opacity", "autoAlpha"]) {
|
|
43
|
+
const next = finiteNumber(record[key]);
|
|
44
|
+
if (next != null) parsed[key] = next;
|
|
45
|
+
}
|
|
46
|
+
return Object.keys(parsed).length > 0 ? parsed : null;
|
|
47
|
+
};
|
|
48
|
+
const parseCustomEase = (value) => {
|
|
49
|
+
const record = objectRecord(value);
|
|
50
|
+
if (!record) return null;
|
|
51
|
+
const id = typeof record.id === "string" ? record.id.trim() : "";
|
|
52
|
+
const data = typeof record.data === "string" ? record.data.trim() : "";
|
|
53
|
+
if (!id || !data) return null;
|
|
54
|
+
return { id, data };
|
|
55
|
+
};
|
|
56
|
+
const parsedManifest = (() => {
|
|
57
|
+
try {
|
|
58
|
+
return objectRecord(JSON.parse(manifestContent));
|
|
59
|
+
} catch {
|
|
60
|
+
return null;
|
|
61
|
+
}
|
|
62
|
+
})();
|
|
63
|
+
const manifestMotions = Array.isArray(parsedManifest?.motions) ? parsedManifest.motions : [];
|
|
64
|
+
const sourceFileForElement = (element) => {
|
|
65
|
+
let current = element;
|
|
66
|
+
while (current) {
|
|
67
|
+
const sourceFile = current.getAttribute("data-composition-file") ?? current.getAttribute("data-composition-src");
|
|
68
|
+
if (sourceFile) return sourceFile;
|
|
69
|
+
current = current.parentElement;
|
|
70
|
+
}
|
|
71
|
+
return activeCompositionPath ?? "index.html";
|
|
72
|
+
};
|
|
73
|
+
const elementMatchesSourceFile = (element, sourceFile) => sourceFileForElement(element) === sourceFile;
|
|
74
|
+
const isHTMLElement = (element) => element instanceof HTMLElement;
|
|
75
|
+
const querySelectorCandidates = (selector) => {
|
|
76
|
+
const className = selector.match(/^\.([A-Za-z0-9_-]+)$/)?.[1];
|
|
77
|
+
if (className) {
|
|
78
|
+
return Array.from(document.getElementsByTagName("*")).filter(
|
|
79
|
+
(element) => isHTMLElement(element) && element.classList.contains(className)
|
|
80
|
+
);
|
|
81
|
+
}
|
|
82
|
+
if (/^[A-Za-z][A-Za-z0-9-]*$/.test(selector)) {
|
|
83
|
+
return Array.from(document.getElementsByTagName(selector)).filter(isHTMLElement);
|
|
84
|
+
}
|
|
85
|
+
return Array.from(document.querySelectorAll(selector)).filter(isHTMLElement);
|
|
86
|
+
};
|
|
87
|
+
const resolveTarget = (targetRecord) => {
|
|
88
|
+
const sourceFile = typeof targetRecord.sourceFile === "string" ? targetRecord.sourceFile : "";
|
|
89
|
+
if (!sourceFile) return null;
|
|
90
|
+
const id = typeof targetRecord.id === "string" ? targetRecord.id : "";
|
|
91
|
+
if (id) {
|
|
92
|
+
const byId = document.getElementById(id);
|
|
93
|
+
if (isHTMLElement(byId) && elementMatchesSourceFile(byId, sourceFile)) return byId;
|
|
94
|
+
}
|
|
95
|
+
const selector = typeof targetRecord.selector === "string" ? targetRecord.selector : "";
|
|
96
|
+
if (!selector) return null;
|
|
97
|
+
try {
|
|
98
|
+
const selectorIndex = Math.max(0, Math.floor(finiteNumber(targetRecord.selectorIndex) ?? 0));
|
|
99
|
+
return querySelectorCandidates(selector).filter(
|
|
100
|
+
(element) => elementMatchesSourceFile(element, sourceFile)
|
|
101
|
+
)[selectorIndex] ?? null;
|
|
102
|
+
} catch {
|
|
103
|
+
return null;
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
const restoreElement = (element) => {
|
|
107
|
+
runtimeWindow.gsap?.set?.(element, { clearProps: "transform,opacity,visibility" });
|
|
108
|
+
element.style.transform = element.getAttribute(ORIGINAL_TRANSFORM_ATTR) ?? "";
|
|
109
|
+
element.style.opacity = element.getAttribute(ORIGINAL_OPACITY_ATTR) ?? "";
|
|
110
|
+
element.style.visibility = element.getAttribute(ORIGINAL_VISIBILITY_ATTR) ?? "";
|
|
111
|
+
element.removeAttribute(STUDIO_MOTION_ATTR);
|
|
112
|
+
element.removeAttribute(ORIGINAL_TRANSFORM_ATTR);
|
|
113
|
+
element.removeAttribute(ORIGINAL_OPACITY_ATTR);
|
|
114
|
+
element.removeAttribute(ORIGINAL_VISIBILITY_ATTR);
|
|
115
|
+
};
|
|
116
|
+
const restoreStudioMotionElements = () => {
|
|
117
|
+
for (const element of Array.from(document.querySelectorAll(`[${STUDIO_MOTION_ATTR}]`))) {
|
|
118
|
+
if (isHTMLElement(element)) restoreElement(element);
|
|
119
|
+
}
|
|
120
|
+
};
|
|
121
|
+
const readCurrentTime = () => {
|
|
122
|
+
try {
|
|
123
|
+
const playerTime = runtimeWindow.__player?.getTime?.();
|
|
124
|
+
if (typeof playerTime === "number" && Number.isFinite(playerTime)) {
|
|
125
|
+
return Math.max(0, playerTime);
|
|
126
|
+
}
|
|
127
|
+
} catch {
|
|
128
|
+
}
|
|
129
|
+
try {
|
|
130
|
+
const timelineTime = runtimeWindow.__timeline?.time?.();
|
|
131
|
+
if (typeof timelineTime === "number" && Number.isFinite(timelineTime)) {
|
|
132
|
+
return Math.max(0, timelineTime);
|
|
133
|
+
}
|
|
134
|
+
} catch {
|
|
135
|
+
}
|
|
136
|
+
return 0;
|
|
137
|
+
};
|
|
138
|
+
const resolveEase = (motion) => {
|
|
139
|
+
const fallback = typeof motion.ease === "string" && motion.ease.trim() ? motion.ease.trim() : "none";
|
|
140
|
+
const customEase = parseCustomEase(motion.customEase);
|
|
141
|
+
const customEasePlugin = runtimeWindow.CustomEase;
|
|
142
|
+
if (!customEase || typeof customEasePlugin?.create !== "function") return fallback;
|
|
143
|
+
try {
|
|
144
|
+
runtimeWindow.gsap?.registerPlugin?.(customEasePlugin);
|
|
145
|
+
customEasePlugin.create(customEase.id, customEase.data);
|
|
146
|
+
return customEase.id;
|
|
147
|
+
} catch {
|
|
148
|
+
return fallback;
|
|
149
|
+
}
|
|
150
|
+
};
|
|
151
|
+
const applyManifest = () => {
|
|
152
|
+
runtimeWindow.__timelines = runtimeWindow.__timelines ?? {};
|
|
153
|
+
runtimeWindow.__timelines[STUDIO_MOTION_TIMELINE_ID]?.kill?.();
|
|
154
|
+
delete runtimeWindow.__timelines[STUDIO_MOTION_TIMELINE_ID];
|
|
155
|
+
restoreStudioMotionElements();
|
|
156
|
+
const gsap = runtimeWindow.gsap;
|
|
157
|
+
if (!gsap?.timeline || manifestMotions.length === 0) return 0;
|
|
158
|
+
const timeline = gsap.timeline({ paused: true, defaults: { overwrite: "auto" } });
|
|
159
|
+
let applied = 0;
|
|
160
|
+
for (const motionValue of manifestMotions) {
|
|
161
|
+
const motion = objectRecord(motionValue);
|
|
162
|
+
if (!motion || motion.kind !== "gsap-motion") continue;
|
|
163
|
+
const targetRecord = objectRecord(motion.target);
|
|
164
|
+
if (!targetRecord) continue;
|
|
165
|
+
const target = resolveTarget(targetRecord);
|
|
166
|
+
if (!target || typeof timeline.fromTo !== "function") continue;
|
|
167
|
+
const start = finiteNumber(motion.start);
|
|
168
|
+
const duration = finiteNumber(motion.duration);
|
|
169
|
+
if (start == null || duration == null || start < 0 || duration <= 0) continue;
|
|
170
|
+
const from = parseMotionValues(motion.from);
|
|
171
|
+
const to = parseMotionValues(motion.to);
|
|
172
|
+
if (!from || !to) continue;
|
|
173
|
+
if (!target.hasAttribute(STUDIO_MOTION_ATTR)) {
|
|
174
|
+
target.setAttribute(ORIGINAL_TRANSFORM_ATTR, target.style.transform);
|
|
175
|
+
target.setAttribute(ORIGINAL_OPACITY_ATTR, target.style.opacity);
|
|
176
|
+
target.setAttribute(ORIGINAL_VISIBILITY_ATTR, target.style.visibility);
|
|
177
|
+
}
|
|
178
|
+
target.setAttribute(STUDIO_MOTION_ATTR, "true");
|
|
179
|
+
timeline.fromTo(
|
|
180
|
+
target,
|
|
181
|
+
from,
|
|
182
|
+
{ ...to, duration, ease: resolveEase(motion), overwrite: "auto", immediateRender: false },
|
|
183
|
+
start
|
|
184
|
+
);
|
|
185
|
+
applied += 1;
|
|
186
|
+
}
|
|
187
|
+
if (applied === 0) {
|
|
188
|
+
timeline.kill?.();
|
|
189
|
+
return 0;
|
|
190
|
+
}
|
|
191
|
+
runtimeWindow.__timelines[STUDIO_MOTION_TIMELINE_ID] = timeline;
|
|
192
|
+
timeline.pause?.();
|
|
193
|
+
const currentTime = readCurrentTime();
|
|
194
|
+
if (typeof timeline.totalTime === "function") timeline.totalTime(currentTime, false);
|
|
195
|
+
else timeline.time?.(currentTime);
|
|
196
|
+
return applied;
|
|
197
|
+
};
|
|
198
|
+
runtimeWindow.__hfStudioMotionApply = applyManifest;
|
|
199
|
+
applyManifest();
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
// ../studio-server/dist/chunk-DTKK7TKL.js
|
|
203
|
+
import { basename, dirname, isAbsolute, join, relative, sep } from "path";
|
|
204
|
+
import { readdirSync } from "fs";
|
|
205
|
+
function resolveWithinProject2(base, relativePath) {
|
|
206
|
+
const resolved = resolveWithinProject(base, relativePath);
|
|
207
|
+
return resolved && !isPrivateProjectFile(base, resolved) ? resolved : null;
|
|
208
|
+
}
|
|
209
|
+
function realFilePath(filePath) {
|
|
210
|
+
try {
|
|
211
|
+
return realpath(filePath);
|
|
212
|
+
} catch {
|
|
213
|
+
const dir = dirname(filePath);
|
|
214
|
+
return dir === filePath ? filePath : join(realFilePath(dir), basename(filePath));
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
var STUDIO_FILES = /* @__PURE__ */ new Set([STUDIO_MOTION_PATH, STUDIO_MANUAL_EDITS_PATH]);
|
|
218
|
+
var STUDIO_FOLDERS = [".hyperframes/prepared-assets", ".hyperframes/requests"];
|
|
219
|
+
function isPrivateProjectPath(relPath) {
|
|
220
|
+
const path = relPath.toLowerCase();
|
|
221
|
+
return (path === ".hyperframes" || path.startsWith(".hyperframes/")) && !STUDIO_FILES.has(path) && !STUDIO_FOLDERS.some((folder) => path === folder || path.startsWith(`${folder}/`));
|
|
222
|
+
}
|
|
223
|
+
function isPrivateProjectFile(projectDir, filePath) {
|
|
224
|
+
const rel = (from, to) => relative(from, to).split(sep).join("/");
|
|
225
|
+
return [rel(projectDir, filePath), rel(realFilePath(projectDir), realFilePath(filePath))].some(
|
|
226
|
+
isPrivateProjectPath
|
|
227
|
+
);
|
|
228
|
+
}
|
|
229
|
+
function pinWithinProject(base, relativePath) {
|
|
230
|
+
const checked = resolveWithinProject2(base, relativePath);
|
|
231
|
+
if (!checked) return null;
|
|
232
|
+
const inside = relative(realFilePath(base), realFilePath(checked));
|
|
233
|
+
const escapes = inside === ".." || inside.startsWith(`..${sep}`) || isAbsolute(inside);
|
|
234
|
+
return escapes ? null : join(base, inside);
|
|
235
|
+
}
|
|
236
|
+
var IGNORE_DIRS = /* @__PURE__ */ new Set([
|
|
237
|
+
".thumbnails",
|
|
238
|
+
".transcode-cache",
|
|
239
|
+
".waveform-cache",
|
|
240
|
+
"node_modules",
|
|
241
|
+
".git"
|
|
242
|
+
]);
|
|
243
|
+
function shouldIgnoreDir(rel) {
|
|
244
|
+
return rel === ".hyperframes/backup";
|
|
245
|
+
}
|
|
246
|
+
function isInHiddenOrVendorDir(relPath) {
|
|
247
|
+
const segments = relPath.split("/");
|
|
248
|
+
return segments.slice(0, -1).some((seg) => seg.startsWith(".") || seg === "node_modules");
|
|
249
|
+
}
|
|
250
|
+
var UNREADABLE_DIR_CODES = /* @__PURE__ */ new Set(["EACCES", "EPERM", "ENOENT", "ENOTDIR"]);
|
|
251
|
+
function walkDir(dir, prefix = "") {
|
|
252
|
+
let entries;
|
|
253
|
+
try {
|
|
254
|
+
entries = readdirSync(dir, { withFileTypes: true });
|
|
255
|
+
} catch (err) {
|
|
256
|
+
const code = err.code;
|
|
257
|
+
if (!prefix || !code || !UNREADABLE_DIR_CODES.has(code)) throw err;
|
|
258
|
+
return [];
|
|
259
|
+
}
|
|
260
|
+
const files = [];
|
|
261
|
+
for (const entry of entries) {
|
|
262
|
+
const rel = prefix ? `${prefix}/${entry.name}` : entry.name;
|
|
263
|
+
if (IGNORE_DIRS.has(entry.name) || shouldIgnoreDir(rel)) continue;
|
|
264
|
+
if (entry.isDirectory()) {
|
|
265
|
+
files.push(...walkDir(join(dir, entry.name), rel));
|
|
266
|
+
} else {
|
|
267
|
+
files.push(rel);
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
return files;
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
export {
|
|
274
|
+
STUDIO_MOTION_PATH,
|
|
275
|
+
createStudioMotionRenderBodyScript,
|
|
276
|
+
resolveWithinProject2 as resolveWithinProject,
|
|
277
|
+
realFilePath,
|
|
278
|
+
isPrivateProjectPath,
|
|
279
|
+
isPrivateProjectFile,
|
|
280
|
+
pinWithinProject,
|
|
281
|
+
isInHiddenOrVendorDir,
|
|
282
|
+
walkDir
|
|
283
|
+
};
|
|
@@ -8,10 +8,10 @@ import {
|
|
|
8
8
|
DEFAULT_VP9_CPU_USED,
|
|
9
9
|
isHttpUrl,
|
|
10
10
|
runFfmpeg
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-E6SDW5FV.js";
|
|
12
12
|
import {
|
|
13
13
|
parseAnimatedGifMetadata
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-6E6CM7WS.js";
|
|
15
15
|
import {
|
|
16
16
|
parseHTML
|
|
17
17
|
} from "./chunk-GK4AIFIH.js";
|
|
@@ -6,27 +6,24 @@ var __filename = __hf_fileURLToPath(import.meta.url);
|
|
|
6
6
|
var __dirname = __hf_dirname(__filename);
|
|
7
7
|
import {
|
|
8
8
|
serveStaticProjectHtml
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-34TXESM7.js";
|
|
10
10
|
import {
|
|
11
11
|
resolveProject
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-TC2FBZJZ.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-XDSOIJC3.js";
|
|
20
20
|
import {
|
|
21
21
|
launchManagedBrowser,
|
|
22
22
|
resolveManagedGpuMode
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-O3SKIXQK.js";
|
|
24
24
|
import {
|
|
25
25
|
resolveDiagnosticNavigationTimeoutMs
|
|
26
|
-
} from "./chunk-
|
|
27
|
-
import {
|
|
28
|
-
c
|
|
29
|
-
} from "./chunk-ZTZA4UWZ.js";
|
|
26
|
+
} from "./chunk-EKA4ZZBI.js";
|
|
30
27
|
import {
|
|
31
28
|
defineCommand
|
|
32
29
|
} from "./chunk-S3S4TGEH.js";
|
|
@@ -37,10 +34,13 @@ import {
|
|
|
37
34
|
import {
|
|
38
35
|
printDeprecationNotice,
|
|
39
36
|
withMeta
|
|
40
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-IYFKBFTW.js";
|
|
41
38
|
import {
|
|
42
39
|
normalizeErrorMessage
|
|
43
40
|
} from "./chunk-KNU5COPB.js";
|
|
41
|
+
import {
|
|
42
|
+
c
|
|
43
|
+
} from "./chunk-ZTZA4UWZ.js";
|
|
44
44
|
|
|
45
45
|
// src/commands/layout.ts
|
|
46
46
|
import { existsSync as existsSync2, readFileSync as readFileSync2 } from "fs";
|
|
@@ -670,7 +670,7 @@ async function collectTweenBoundaries(page) {
|
|
|
670
670
|
});
|
|
671
671
|
}
|
|
672
672
|
async function bundleProjectHtml(projectDir) {
|
|
673
|
-
const { bundleToSingleHtml } = await import("./compiler-
|
|
673
|
+
const { bundleToSingleHtml } = await import("./compiler-ACHWOU5N.js");
|
|
674
674
|
return bundleToSingleHtml(projectDir);
|
|
675
675
|
}
|
|
676
676
|
async function alignViewportToComposition(page, url) {
|
|
@@ -692,8 +692,8 @@ async function alignViewportToComposition(page, url) {
|
|
|
692
692
|
async function runLayoutAudit(projectDir, opts) {
|
|
693
693
|
const { ensureBrowser } = await import("./manager-CT3D67CG.js");
|
|
694
694
|
const puppeteer = await import("puppeteer-core");
|
|
695
|
-
const { buildChromeArgs } = await import("./src-
|
|
696
|
-
const { assertWebGpuAdapterAvailable, compositionRequiresWebGpu, resolveLocalBrowserGpuMode } = await import("./gpuPolicy-
|
|
695
|
+
const { buildChromeArgs } = await import("./src-I7UC3JTL.js");
|
|
696
|
+
const { assertWebGpuAdapterAvailable, compositionRequiresWebGpu, resolveLocalBrowserGpuMode } = await import("./gpuPolicy-LYOVBAJP.js");
|
|
697
697
|
const html = await bundleProjectHtml(projectDir);
|
|
698
698
|
const server = await serveStaticProjectHtml(
|
|
699
699
|
projectDir,
|
|
@@ -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-I7UC3JTL.js");
|
|
17
17
|
return resolveBrowserGpuMode(requestedMode, { chromePath });
|
|
18
18
|
}
|
|
19
19
|
|