hyperframes 0.8.193 → 0.8.195
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-JC6DKZKC.js → add-NL6XABRV.js} +12 -12
- package/dist/{animatedGifPrep-S6KXJGEL.js → animatedGifPrep-JD4BBM2L.js} +8 -7
- package/dist/api.js +18 -17
- package/dist/{asset-XITFIFE6.js → asset-LRRHLG4L.js} +2 -2
- package/dist/{assetCataloger-K5FNKG35.js → assetCataloger-D7KGO346.js} +8 -7
- package/dist/{audio-364UHTY4.js → audio-34CZM4HF.js} +14 -13
- package/dist/{auth-5JEESRE6.js → auth-FL5ZMOXB.js} +1 -1
- package/dist/{autoUpdate-RVVYEHAA.js → autoUpdate-FZTJFLIH.js} +2 -2
- package/dist/{backgroundChecks-DCBIYWIQ.js → backgroundChecks-6ZKDCQET.js} +3 -3
- package/dist/backgroundChecksWorker.js +3 -3
- package/dist/{batchRender-ZZ4QMBAA.js → batchRender-KDZ4F4QT.js} +4 -4
- package/dist/{beats-YEL65M6G.js → beats-7PK677VR.js} +9 -9
- package/dist/{benchmark-RBTRPA76.js → benchmark-LO36QH5D.js} +9 -9
- package/dist/{browser-BVAYXT4R.js → browser-3F7NDHU2.js} +5 -5
- package/dist/{bundleWithLocalizedFonts-JLB2OYMT.js → bundleWithLocalizedFonts-JL5J52L6.js} +2 -2
- package/dist/{capture-GBXTMYLZ.js → capture-DOP3ONNZ.js} +13 -12
- package/dist/{capture-NIFX6IRS.js → capture-JOSZZYUW.js} +2 -2
- package/dist/{captureCompositionFrame-ATNNKUL5.js → captureCompositionFrame-SWZ4GEJP.js} +13 -12
- package/dist/{catalog-AGIF5SM5.js → catalog-EZLHZMLM.js} +12 -12
- package/dist/{catch-up-SZ3ULDTI.js → catch-up-6B7VY43I.js} +4 -4
- package/dist/{check-YLQS3TF4.js → check-QGELCBBF.js} +38 -37
- package/dist/{checkBrowser-QH4FMCBO.js → checkBrowser-A5C2AB4L.js} +33 -32
- package/dist/{chunk-L5YLA54L.js → chunk-2G6JZJAV.js} +2 -2
- package/dist/{chunk-M3KZBDPB.js → chunk-2HSRLKZR.js} +3 -3
- package/dist/{chunk-FBVUAH7N.js → chunk-2OYYNKJ4.js} +1 -1
- package/dist/{chunk-2VXY3PEF.js → chunk-2TU4OKIR.js} +280 -114
- package/dist/{chunk-4PPWAQYV.js → chunk-3OAFRLD3.js} +7 -7
- package/dist/{chunk-ZT45TCY3.js → chunk-3PYIQLPL.js} +1 -1
- package/dist/{chunk-DYNHVCBF.js → chunk-4R2NWLQL.js} +2 -2
- package/dist/{chunk-SOY2FPOR.js → chunk-636WBDXB.js} +5 -5
- package/dist/{chunk-LFUVTS6V.js → chunk-66Q27H72.js} +2 -2
- package/dist/{chunk-MFUNDJEV.js → chunk-6ORTRIDW.js} +3 -3
- package/dist/{chunk-D625D4TV.js → chunk-7DFIVUOW.js} +6 -6
- package/dist/{chunk-ZH7J2ZUL.js → chunk-7G2LQM3J.js} +14 -14
- package/dist/{chunk-6LWUPIKD.js → chunk-7PXVXRVX.js} +10 -10
- package/dist/{chunk-XQPA4W3M.js → chunk-7Y5RVQQ7.js} +4 -4
- package/dist/{chunk-2MCXIY4B.js → chunk-B7RJV74O.js} +28 -11
- package/dist/{chunk-BJAS2JLW.js → chunk-B7Y2DGU6.js} +7 -3
- package/dist/{chunk-YS4JUGNI.js → chunk-BBXZPDEA.js} +2 -2
- package/dist/{chunk-RWGASWT7.js → chunk-BL4U6U52.js} +1 -0
- package/dist/{chunk-VW63MHQU.js → chunk-CCZMCX3F.js} +1 -1
- package/dist/{chunk-BY6OQ6XP.js → chunk-CZNSLFYD.js} +3 -1
- package/dist/{chunk-X5CECNCK.js → chunk-D6XDOYMB.js} +8 -3
- package/dist/{chunk-F5LLORBP.js → chunk-E527A6RS.js} +2 -2
- package/dist/{chunk-7HTH5PFK.js → chunk-E74JMKSK.js} +58 -8
- package/dist/{chunk-TZEKVLPV.js → chunk-ELQ2QQC5.js} +1 -1
- package/dist/{chunk-4LXZJIVY.js → chunk-ES7KSCSO.js} +10 -10
- package/dist/{chunk-KU3UFQN7.js → chunk-F2ASNL2K.js} +1 -1
- package/dist/{chunk-VLLFORE2.js → chunk-F4T7XYMF.js} +1 -1
- package/dist/{chunk-E3P3LJG6.js → chunk-FLREUEHW.js} +28 -11
- package/dist/{chunk-TY3LDJA3.js → chunk-FWDDLW2H.js} +2 -2
- package/dist/{chunk-7YSFE4SZ.js → chunk-GJG4CTXD.js} +2 -2
- package/dist/{chunk-2NERNYCJ.js → chunk-GKMRLES4.js} +3 -3
- package/dist/{chunk-4TKJWWPL.js → chunk-GOOE33GV.js} +1 -1
- package/dist/{chunk-DIKAPMMF.js → chunk-GQVTTWZF.js} +144 -39
- package/dist/{chunk-L4JB7LI4.js → chunk-HJINEUHY.js} +84 -61
- package/dist/{chunk-7QNIXBQD.js → chunk-HT33OHQL.js} +3 -2
- package/dist/{chunk-AR3DQYRR.js → chunk-HTLCE7M2.js} +18 -18
- package/dist/{chunk-ZTKFRXJB.js → chunk-IA7HZ4CM.js} +4 -4
- package/dist/{chunk-WFS6S65A.js → chunk-IZR7U27Z.js} +12 -12
- package/dist/chunk-K4MJX7SR.js +17 -0
- package/dist/{chunk-ZZPBXRYQ.js → chunk-KJ6ZQL34.js} +1 -1
- package/dist/{chunk-VPC4XIVI.js → chunk-KVLGJJTE.js} +5 -5
- package/dist/{chunk-CGTZOY53.js → chunk-L2EBYFU7.js} +1 -1
- package/dist/{chunk-UNATIAOT.js → chunk-L4BFXWHC.js} +144 -67
- package/dist/{chunk-IW5G323T.js → chunk-LTGTN2TH.js} +8 -9
- package/dist/{chunk-EFXMETRK.js → chunk-NKNRVPNV.js} +2 -2
- package/dist/{chunk-2SFDWMSW.js → chunk-NOHH25WS.js} +2 -2
- package/dist/{chunk-7YKJF5JV.js → chunk-OB4GJZTY.js} +1 -1
- package/dist/{chunk-C4Y3ZREE.js → chunk-OJNNKHAZ.js} +75 -22
- package/dist/{chunk-OFYW4J7Y.js → chunk-ORZMO6NY.js} +3 -3
- package/dist/{chunk-BP4EMEGH.js → chunk-P5X5URNQ.js} +2 -2
- package/dist/{chunk-6XUJVEY2.js → chunk-RAACYYWX.js} +1 -1
- package/dist/{chunk-QFPBRZJD.js → chunk-ROEW726S.js} +1 -1
- package/dist/{chunk-WIVOXGEP.js → chunk-RZUEXJRC.js} +2 -2
- package/dist/{chunk-V7ZA2BNW.js → chunk-SC6NILKD.js} +1 -1
- package/dist/{chunk-2LSCYS2H.js → chunk-SMROKE63.js} +2 -2
- package/dist/{chunk-REUL2KH2.js → chunk-ST35C4K6.js} +1 -1
- package/dist/{chunk-OFV3WSOE.js → chunk-TE6VGYHQ.js} +1 -1
- package/dist/{chunk-3W4B6G7Y.js → chunk-VNWX5GBF.js} +19 -15
- package/dist/{chunk-QKX7ITER.js → chunk-W4SSWOOD.js} +2 -2
- package/dist/{chunk-6DLCOQR4.js → chunk-W7GMPEY3.js} +142 -44
- package/dist/{chunk-UIC7B5KW.js → chunk-WUL5LPI2.js} +12 -2
- package/dist/{chunk-5J6TWLFG.js → chunk-XC7SJ2UR.js} +3 -3
- package/dist/{chunk-E77ALFLW.js → chunk-XOUWCZHD.js} +1 -1
- package/dist/{chunk-GR5DQKDR.js → chunk-YFTO5YD7.js} +5 -5
- package/dist/{chunk-UB7BIDBS.js → chunk-YSXCPSJ4.js} +3 -3
- package/dist/{chunk-GKHMSSGY.js → chunk-YUFECVHG.js} +1 -1
- package/dist/{chunk-LMNZLZMJ.js → chunk-ZAVUASNT.js} +1 -1
- package/dist/{chunk-RTLPWOO6.js → chunk-ZL6ZCLY6.js} +1 -1
- package/dist/{chunk-DSQ72G5I.js → chunk-ZOJHEN3C.js} +1 -1
- package/dist/chunk-ZQRD62QZ.js +3901 -0
- package/dist/{clean-5HGESK5A.js → clean-PI4JLT6O.js} +21 -20
- package/dist/cli.js +53 -53
- package/dist/{cloud-746PHS32.js → cloud-SQRY723M.js} +4 -4
- package/dist/{cloudrun-DO7WFLSM.js → cloudrun-VMPROR43.js} +6 -6
- package/dist/commands/layout-audit.browser.js +1 -1
- package/dist/{compare-66YPRNG2.js → compare-EHX4APTP.js} +31 -30
- package/dist/{compiler-R4UYDWXO.js → compiler-FZCJGGBF.js} +5 -5
- package/dist/{component-EQ3H6RFP.js → component-I75ZKJYH.js} +3 -3
- package/dist/{compositions-ZZ7P5HT2.js → compositions-YNYYUEQD.js} +12 -11
- package/dist/{contactSheet-SZBJDOMT.js → contactSheet-5APX35L3.js} +1 -1
- package/dist/{delete-Z5MSLJSR.js → delete-7BVTBKOC.js} +2 -2
- package/dist/{deploy-RGSAC2K5.js → deploy-TUEEJP3W.js} +1 -1
- package/dist/{deterministicFonts-RO2TCMLZ.js → deterministicFonts-RADD3BSX.js} +2 -2
- package/dist/{dist-QQ26RUDV.js → dist-VRGIE57H.js} +1 -1
- package/dist/{dist-RKK4YLAD.js → dist-VVROHSP4.js} +3 -3
- package/dist/{doctor-W4ZZDRTU.js → doctor-53DSQFW4.js} +14 -13
- package/dist/{events-BSSL4A4W.js → events-AD3U6E7I.js} +2 -2
- package/dist/{events-UACT7PX3.js → events-M6FIUDNQ.js} +3 -3
- package/dist/{feedback-47ILDLQG.js → feedback-7SQ7KKAR.js} +8 -8
- package/dist/{ffmpeg-IEHSUNUT.js → ffmpeg-3HSSPXS4.js} +9 -8
- package/dist/{figma-PLFIIYRU.js → figma-B5XII2BO.js} +3 -3
- package/dist/fontLocalizeCli.js +11 -10
- package/dist/{get-PDWGJYNL.js → get-RZKNBIRD.js} +2 -2
- package/dist/{gpuPolicy-6UBXO6ME.js → gpuPolicy-77LOK3K6.js} +8 -7
- package/dist/{grade-compare-5VWLQGM7.js → grade-compare-K3YB3FQA.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-DS3KMWYO.js → help-UM6INVL5.js} +1 -1
- package/dist/{history-OC326NVZ.js → history-EWKPACWR.js} +7 -7
- package/dist/hyperframe.manifest.json +1 -1
- package/dist/hyperframe.runtime.iife.js +72 -66
- package/dist/hyperframes-player.global.js +3 -3
- package/dist/hyperframes-slideshow.global.js +1 -1
- package/dist/{info-AUIFV6MX.js → info-KY3MFTCY.js} +8 -8
- package/dist/{init-MRTWWDFW.js → init-LURF2PL5.js} +30 -29
- package/dist/{inspect-55NOAXI2.js → inspect-46CZJM6P.js} +31 -30
- package/dist/{installer-YSFFGBBV.js → installer-NGFX6INI.js} +5 -5
- package/dist/{keyframes-OO2BX2IB.js → keyframes-YCSK6POI.js} +59 -33
- package/dist/{lambda-CXXY6QT3.js → lambda-5KXULI2S.js} +8 -8
- package/dist/{layout-57GJXKDK.js → layout-WOLH24YE.js} +31 -30
- package/dist/{lint-J4FK3Z6G.js → lint-P3P2LX6S.js} +7 -7
- package/dist/{lintProject-52SLJPRC.js → lintProject-ESAJKFOX.js} +1 -1
- package/dist/{list-VDQUJ76B.js → list-RUYQWMF2.js} +2 -2
- package/dist/{login-TJSEALWW.js → login-THBBWZAY.js} +4 -4
- package/dist/{manager-MZIJY73J.js → manager-COSJVRAE.js} +2 -2
- package/dist/{manager-4PLYEEWP.js → manager-V34BMSAG.js} +10 -9
- package/dist/{media-treatment-GXP4PMJH.js → media-treatment-IMBLTYGV.js} +15 -14
- package/dist/{models-HQQQKEEP.js → models-3NW7HU72.js} +14 -13
- package/dist/{motionShot-2BT5D7DC.js → motionShot-VTTYZ6KW.js} +17 -16
- package/dist/{normalize-audio-SOLFMHNP.js → normalize-audio-ME3X7HBX.js} +6 -6
- package/dist/{open-KHEUODFQ.js → open-GLGSJISM.js} +12 -12
- package/dist/{parakeetRunner-BHU5NCAX.js → parakeetRunner-T3UGRZWC.js} +15 -14
- package/dist/{pipeline-WFV5HDTD.js → pipeline-IJXVEQCU.js} +10 -9
- package/dist/{play-GB34CANJ.js → play-HFFGGAZH.js} +21 -21
- package/dist/{preflight-REF3VSJ7.js → preflight-QV6V3UO2.js} +11 -10
- package/dist/{present-SIUTA7TD.js → present-TH34CTYY.js} +17 -17
- package/dist/{preview-T2GE7Z4A.js → preview-R67EQGQP.js} +100 -65
- package/dist/{producer-23KVQZAB.js → producer-HWPFETDU.js} +1 -1
- package/dist/{projectConfig-DBSNBPNP.js → projectConfig-AO4V3RHS.js} +7 -7
- package/dist/{publication-IXPUKYWJ.js → publication-BDQ3PXYG.js} +3 -3
- package/dist/{publish-3BA5VHXJ.js → publish-PXYTWSXN.js} +10 -10
- package/dist/{remove-background-RMSCJVVQ.js → remove-background-BVDJPT3Z.js} +11 -10
- package/dist/{render-Y6CTQ3YW.js → render-45YHWV6W.js} +6 -6
- package/dist/{render-6RNE2MLU.js → render-5MZY4TAB.js} +17 -16
- package/dist/{render-XGOZMMWX.js → render-5RQUYPIV.js} +35 -34
- package/dist/{render-batch-VUR6N6EY.js → render-batch-ZUTUBTHX.js} +6 -6
- package/dist/renderSetupWorker.js +42 -4
- package/dist/{resolver-GJCUH57W.js → resolver-FN2M3XVM.js} +5 -5
- package/dist/{sherpa-VVAKRCPL.js → sherpa-6KWNPRWB.js} +14 -13
- 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-ZHBURVQG.js → skills-PWQCM2BT.js} +5 -5
- package/dist/{skillsUpdateCheck-VMDAL2O2.js → skillsUpdateCheck-EHV2G3JX.js} +3 -3
- package/dist/{snapshot-KEOG56SL.js → snapshot-7Q24NFEI.js} +39 -38
- package/dist/{src-TZLGFRRX.js → src-J43SXEHJ.js} +10 -9
- package/dist/{src-BH5NICGQ.js → src-OS2FRVZV.js} +9 -6
- package/dist/{staticProjectServer-BKXL5CXB.js → staticProjectServer-YJWOQJF4.js} +18 -18
- package/dist/studio/assets/{hyperframes-player-BMcUdmDb.js → hyperframes-player-DnIPEARk.js} +1 -1
- package/dist/studio/assets/{index-Ci6GuloR.js → index-CVppCm_X.js} +1 -1
- package/dist/studio/assets/{index-Ca-mgTnS.js → index-Dkt4c1MV.js} +161 -161
- package/dist/studio/index.html +1 -1
- package/dist/{studio-api-A5U6QAMC.js → studio-api-CZBZ4D65.js} +11 -11
- package/dist/{studioServer-5EC5CP4W.js → studioServer-U6EX5DSB.js} +94 -53
- package/dist/{telemetry-BCKJXDSW.js → telemetry-VP4UWWO3.js} +3 -3
- package/dist/{timeline-AZWAXTAY.js → timeline-LMSUKEG6.js} +20 -19
- package/dist/{tokens-X7NC3V7C.js → tokens-FQ5AI5H4.js} +2 -2
- package/dist/{transcribe-7NCY7QZ2.js → transcribe-DNQFPZ2S.js} +13 -12
- package/dist/{transcribe-SH26H755.js → transcribe-VAMXV7QS.js} +19 -18
- package/dist/{updateCheck-Y7FUWQM4.js → updateCheck-TOU7VLZK.js} +2 -2
- package/dist/{upgrade-ZHGEVL65.js → upgrade-CJRMRR2S.js} +2 -2
- package/dist/{urlDownloader-FPILIT7M.js → urlDownloader-GETNWEIT.js} +7 -6
- package/dist/{validate-KQOZR4F6.js → validate-PRI2UTQS.js} +25 -24
- package/dist/vendor/npm/gsap@3.15.0/dist/CustomEase.min.js +11 -0
- package/dist/vendor/npm/gsap@3.15.0/dist/MotionPathPlugin.min.js +11 -0
- package/dist/vendor/npm/gsap@3.15.0/dist/gsap.min.js +11 -0
- package/dist/{video-N2QAETFB.js → video-VOCQA6AG.js} +8 -7
- package/dist/warmCheck.js +38 -37
- package/package.json +1 -1
- package/dist/chunk-USWPZXEA.js +0 -3897
|
@@ -7,19 +7,19 @@ var __dirname = __hf_dirname(__filename);
|
|
|
7
7
|
import {
|
|
8
8
|
ambiguousIssue,
|
|
9
9
|
loadBrowserScript
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-7PXVXRVX.js";
|
|
11
11
|
import {
|
|
12
12
|
auditClipDurations,
|
|
13
13
|
shouldIgnoreHttpError,
|
|
14
14
|
shouldIgnoreRequestFailure
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-7G2LQM3J.js";
|
|
16
16
|
import {
|
|
17
17
|
serveStaticProjectHtml
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-KVLGJJTE.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-GJG4CTXD.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-ES7KSCSO.js";
|
|
45
45
|
import {
|
|
46
46
|
BrowserCleanupError,
|
|
47
47
|
closeManagedBrowser
|
|
48
|
-
} from "./chunk-
|
|
48
|
+
} from "./chunk-WUL5LPI2.js";
|
|
49
49
|
import {
|
|
50
50
|
findStageProxyBox
|
|
51
|
-
} from "./chunk-
|
|
51
|
+
} from "./chunk-GOOE33GV.js";
|
|
52
52
|
import {
|
|
53
53
|
resolveAutoProxy
|
|
54
|
-
} from "./chunk-
|
|
54
|
+
} from "./chunk-RAACYYWX.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-JL5J52L6.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-OS2FRVZV.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-JL5J52L6.js");
|
|
563
563
|
const html = await bundleWithLocalizedFonts(project.dir);
|
|
564
564
|
const server = await serveStaticProjectHtml(
|
|
565
565
|
project.dir,
|
|
@@ -0,0 +1,17 @@
|
|
|
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/browserMarker.js
|
|
9
|
+
var HYPERFRAMES_BROWSER_MARKER_ARG = "--hyperframes-owned-browser";
|
|
10
|
+
function withHyperframesBrowserMarker(args = []) {
|
|
11
|
+
return args.includes(HYPERFRAMES_BROWSER_MARKER_ARG) ? [...args] : [...args, HYPERFRAMES_BROWSER_MARKER_ARG];
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export {
|
|
15
|
+
HYPERFRAMES_BROWSER_MARKER_ARG,
|
|
16
|
+
withHyperframesBrowserMarker
|
|
17
|
+
};
|
|
@@ -7,7 +7,7 @@ var __dirname = __hf_dirname(__filename);
|
|
|
7
7
|
import {
|
|
8
8
|
getMimeType,
|
|
9
9
|
injectMediaCodecMapIntoHtml
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-L4BFXWHC.js";
|
|
11
11
|
import {
|
|
12
12
|
PROXY_VARIANT_CONFIG,
|
|
13
13
|
ProxyCapacityError,
|
|
@@ -18,17 +18,17 @@ import {
|
|
|
18
18
|
recordProxyRequest,
|
|
19
19
|
resolveProxy,
|
|
20
20
|
resolveProxyVariantRequest
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-GJG4CTXD.js";
|
|
22
22
|
import {
|
|
23
23
|
findStageProxyBox
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-GOOE33GV.js";
|
|
25
25
|
import {
|
|
26
26
|
resolveAutoProxy
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-RAACYYWX.js";
|
|
28
28
|
import {
|
|
29
29
|
PREVIEW_PROXY_BOX_PARAM,
|
|
30
30
|
parsePreviewProxyBox
|
|
31
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-E74JMKSK.js";
|
|
32
32
|
import {
|
|
33
33
|
decodeWellFormedEscapes
|
|
34
34
|
} from "./chunk-BSQ7XANM.js";
|
|
@@ -19,7 +19,7 @@ import {
|
|
|
19
19
|
splitElementInHtml,
|
|
20
20
|
unwrapElementsFromHtml,
|
|
21
21
|
wrapElementsInHtml
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-7Y5RVQQ7.js";
|
|
23
23
|
import {
|
|
24
24
|
MEDIA_LINK_ATTR,
|
|
25
25
|
relinkSplitHalves
|
|
@@ -32,7 +32,7 @@ import {
|
|
|
32
32
|
requestedProjectPath,
|
|
33
33
|
requiredFfmpeg,
|
|
34
34
|
resolveLocalAudioPath
|
|
35
|
-
} from "./chunk-
|
|
35
|
+
} from "./chunk-2OYYNKJ4.js";
|
|
36
36
|
import {
|
|
37
37
|
HistoryBusyError,
|
|
38
38
|
MAX_WINDOW_IDLE_MS,
|
|
@@ -46,7 +46,7 @@ import {
|
|
|
46
46
|
resolveProjectAndSignature,
|
|
47
47
|
resolveProjectSignature,
|
|
48
48
|
settledFileTag
|
|
49
|
-
} from "./chunk-
|
|
49
|
+
} from "./chunk-OJNNKHAZ.js";
|
|
50
50
|
import {
|
|
51
51
|
PROXY_PARAMS_VERSION,
|
|
52
52
|
PROXY_PENDING_RETRY_AFTER_SECONDS,
|
|
@@ -68,7 +68,7 @@ import {
|
|
|
68
68
|
scanProjectMediaCodecMap,
|
|
69
69
|
shouldPrewarmProxy,
|
|
70
70
|
waitForProxy
|
|
71
|
-
} from "./chunk-
|
|
71
|
+
} from "./chunk-GJG4CTXD.js";
|
|
72
72
|
import {
|
|
73
73
|
STUDIO_MOTION_PATH,
|
|
74
74
|
createStudioMotionRenderBodyScript,
|
|
@@ -83,7 +83,7 @@ import {
|
|
|
83
83
|
import {
|
|
84
84
|
findTimelineScript,
|
|
85
85
|
parseGsapScriptAcorn
|
|
86
|
-
} from "./chunk-
|
|
86
|
+
} from "./chunk-FLREUEHW.js";
|
|
87
87
|
import {
|
|
88
88
|
atomicTempPath,
|
|
89
89
|
createFileAtomically,
|
|
@@ -102,19 +102,22 @@ import {
|
|
|
102
102
|
locateSystemFont
|
|
103
103
|
} from "./chunk-7FMUTGOH.js";
|
|
104
104
|
import {
|
|
105
|
+
GSAP_BASE_URL_META,
|
|
105
106
|
PREVIEW_PROXY_BOX_PARAM,
|
|
106
107
|
formatPreviewProxyBox,
|
|
107
108
|
formatRenderOutputTimestamp,
|
|
108
109
|
gsapCdnDist,
|
|
109
110
|
motionPathPluginUrl,
|
|
111
|
+
normalizeGsapBaseUrl,
|
|
112
|
+
normalizeGsapLocalRoot,
|
|
110
113
|
parseFps,
|
|
111
114
|
parsePreviewProxyBox
|
|
112
|
-
} from "./chunk-
|
|
115
|
+
} from "./chunk-E74JMKSK.js";
|
|
113
116
|
import {
|
|
114
117
|
addScenePartsManifest,
|
|
115
118
|
ensureHfIds,
|
|
116
119
|
stampHfIdsInPlace
|
|
117
|
-
} from "./chunk-
|
|
120
|
+
} from "./chunk-VNWX5GBF.js";
|
|
118
121
|
import {
|
|
119
122
|
AFTER_FONTS_SCRIPT_TYPE,
|
|
120
123
|
RUNTIME_BOOTSTRAP_ATTR,
|
|
@@ -128,7 +131,7 @@ import {
|
|
|
128
131
|
resolveRateSpec,
|
|
129
132
|
sourceTimeAt,
|
|
130
133
|
stripEmbeddedRuntimeScripts
|
|
131
|
-
} from "./chunk-
|
|
134
|
+
} from "./chunk-ZQRD62QZ.js";
|
|
132
135
|
import {
|
|
133
136
|
HTML_ATTRIBUTE_ENTITIES,
|
|
134
137
|
MagicString,
|
|
@@ -136,7 +139,7 @@ import {
|
|
|
136
139
|
decodeAuthoredAttribute,
|
|
137
140
|
scanHtmlOpeningTags,
|
|
138
141
|
unrollComputedTimeline
|
|
139
|
-
} from "./chunk-
|
|
142
|
+
} from "./chunk-B7RJV74O.js";
|
|
140
143
|
import {
|
|
141
144
|
ProjectRootMissingError,
|
|
142
145
|
folderGone,
|
|
@@ -559,6 +562,16 @@ function mergePercentageKeyframes(keyframes) {
|
|
|
559
562
|
}
|
|
560
563
|
return [...byPercentage.values()].sort((a, b) => a.percentage - b.percentage);
|
|
561
564
|
}
|
|
565
|
+
function distributeArrayKeyframes(channels) {
|
|
566
|
+
return mergePercentageKeyframes(
|
|
567
|
+
[...channels].flatMap(
|
|
568
|
+
([key, values]) => values.map((value, index) => ({
|
|
569
|
+
percentage: values.length > 1 ? Math.round(index / (values.length - 1) * 100) : 0,
|
|
570
|
+
properties: { [key]: value }
|
|
571
|
+
}))
|
|
572
|
+
)
|
|
573
|
+
);
|
|
574
|
+
}
|
|
562
575
|
function buildArcPath(coords, curviness, autoRotate, isCubic) {
|
|
563
576
|
const first = coords[0];
|
|
564
577
|
if (coords.length < 2 || !first) return void 0;
|
|
@@ -1419,19 +1432,9 @@ function parseSimpleArrayKeyframes(node, scope) {
|
|
|
1419
1432
|
easeEach = tryResolveStringProp(prop.value, scope) ?? easeEach;
|
|
1420
1433
|
}
|
|
1421
1434
|
}
|
|
1422
|
-
const maxLen = Math.max(...[...arrayProps.values()].map((a) => a.length), 0);
|
|
1423
|
-
const keyframes = [];
|
|
1424
|
-
for (let i = 0; i < maxLen; i++) {
|
|
1425
|
-
const percentage = maxLen > 1 ? Math.round(i / (maxLen - 1) * 100) : 0;
|
|
1426
|
-
const properties = {};
|
|
1427
|
-
for (const [key, values] of arrayProps) {
|
|
1428
|
-
if (i < values.length) properties[key] = values[i];
|
|
1429
|
-
}
|
|
1430
|
-
keyframes.push({ percentage, properties });
|
|
1431
|
-
}
|
|
1432
1435
|
return {
|
|
1433
1436
|
format: "simple-array",
|
|
1434
|
-
keyframes,
|
|
1437
|
+
keyframes: distributeArrayKeyframes(arrayProps),
|
|
1435
1438
|
...ease ? { ease } : {},
|
|
1436
1439
|
...easeEach ? { easeEach } : {}
|
|
1437
1440
|
};
|
|
@@ -3775,6 +3778,48 @@ function getMimeType(path) {
|
|
|
3775
3778
|
function isAudioFile(name) {
|
|
3776
3779
|
return (getMimeType(name) ?? "").startsWith("audio/");
|
|
3777
3780
|
}
|
|
3781
|
+
var URL_BASE = "http://localhost/";
|
|
3782
|
+
function urlPath(src) {
|
|
3783
|
+
return URL.canParse(src, URL_BASE) ? new URL(src, URL_BASE).pathname : null;
|
|
3784
|
+
}
|
|
3785
|
+
function isGsapCoreUrl(src) {
|
|
3786
|
+
return /\/gsap(-\d+(\.\d+)*)?(\.min)?\.js$/i.test(urlPath(src) ?? "");
|
|
3787
|
+
}
|
|
3788
|
+
var GSAP_PLUGIN_FILE = /\/(\w+Plugin|CustomBounce|CustomEase|CustomWiggle|Draggable|EasePack|Flip|GSDevTools|MotionPathHelper|Observer|ScrollSmoother|ScrollTrigger|SplitText)(\.min)?\.js$/i;
|
|
3789
|
+
function isGsapPluginUrl(src) {
|
|
3790
|
+
const path = urlPath(src);
|
|
3791
|
+
if (!path || isGsapCoreUrl(src)) return false;
|
|
3792
|
+
return GSAP_PLUGIN_FILE.test(path) || /\/gsap(@[^/]*)?\/(.+\/)?[^/]+\.js$/i.test(path);
|
|
3793
|
+
}
|
|
3794
|
+
var TEMPLATE_ELEMENT = /<template\b[^>]*>[\s\S]*?<\/template>/gi;
|
|
3795
|
+
var SCRIPT_SRC = /<script\b[^>]*?\ssrc\s*=\s*(?:"([^"]*)"|'([^']*)'|([^\s>]+))/gi;
|
|
3796
|
+
var INLINED_MARKER = /\/\*\s*inlined:\s*(\S+)\s*\*\//gi;
|
|
3797
|
+
var CORE_LICENSE_BANNER = /\/\*!\s*\*\s*GSAP\s+\d/;
|
|
3798
|
+
var PLUGIN_LICENSE_BANNER = /\/\*!\s*\*\s*(?!GSAP\s)\w+\s+\d[^*]*\*\s*https:\/\/gsap\.com/;
|
|
3799
|
+
var CORE_BODY = /Missing plugin\? gsap\.registerPlugin\(\)/;
|
|
3800
|
+
function scriptUrls(html) {
|
|
3801
|
+
const srcs = [...html.matchAll(SCRIPT_SRC)].map(
|
|
3802
|
+
(m) => (m[1] ?? m[2] ?? m[3] ?? "").replace(/&/gi, "&")
|
|
3803
|
+
);
|
|
3804
|
+
return [...srcs, ...[...html.matchAll(INLINED_MARKER)].map((m) => m[1] ?? "")];
|
|
3805
|
+
}
|
|
3806
|
+
function htmlHasGsapCore(html) {
|
|
3807
|
+
const live = html.replace(TEMPLATE_ELEMENT, "");
|
|
3808
|
+
return scriptUrls(live).some(isGsapCoreUrl) || CORE_LICENSE_BANNER.test(live) || CORE_BODY.test(live);
|
|
3809
|
+
}
|
|
3810
|
+
function isGsapPluginScript(script) {
|
|
3811
|
+
return scriptUrls(script).some(isGsapPluginUrl) || PLUGIN_LICENSE_BANNER.test(script);
|
|
3812
|
+
}
|
|
3813
|
+
function insertGsapCoreBeforeHeadPlugin(html, coreTag) {
|
|
3814
|
+
const lowered = html.toLowerCase();
|
|
3815
|
+
const at = findStartTags(html, "script").find((start) => {
|
|
3816
|
+
const close = lowered.indexOf("</script", start);
|
|
3817
|
+
return isGsapPluginScript(html.slice(start, close === -1 ? void 0 : close));
|
|
3818
|
+
});
|
|
3819
|
+
if (at === void 0 || insertBeforeCloseTag(html.slice(0, at), "head", "") !== null) return null;
|
|
3820
|
+
return `${html.slice(0, at)}${coreTag}
|
|
3821
|
+
${html.slice(at)}`;
|
|
3822
|
+
}
|
|
3778
3823
|
function rewriteRelativePaths(root, compPath, projectDir) {
|
|
3779
3824
|
const assetExists = (path) => existsSync(join22(projectDir, path));
|
|
3780
3825
|
rewriteAssetPaths(
|
|
@@ -3875,7 +3920,7 @@ function tagRootCompositionFile(bodyHtml, compPath) {
|
|
|
3875
3920
|
function rootHeadContent(rootHtml) {
|
|
3876
3921
|
return rootHtml.match(/<head[^>]*>([\s\S]*?)<\/head>/i)?.[1] ?? "";
|
|
3877
3922
|
}
|
|
3878
|
-
function buildSubCompositionHtml(projectDir, compPath, runtimeUrl, baseHref, rawOverride) {
|
|
3923
|
+
function buildSubCompositionHtml(projectDir, compPath, runtimeUrl, baseHref, rawOverride, gsapBaseUrl) {
|
|
3879
3924
|
const compFile = join22(projectDir, compPath);
|
|
3880
3925
|
if (!existsSync(compFile)) return null;
|
|
3881
3926
|
const rawComp = rawOverride ?? readFileSync3(compFile, "utf-8");
|
|
@@ -3925,9 +3970,10 @@ ${compHeadContent}`;
|
|
|
3925
3970
|
headContent = stripEmbeddedRuntimeScripts(headContent);
|
|
3926
3971
|
headContent += `
|
|
3927
3972
|
<script ${RUNTIME_BOOTSTRAP_ATTR}="1" src="${runtimeUrl}"></script>`;
|
|
3928
|
-
if (!headContent
|
|
3929
|
-
|
|
3930
|
-
|
|
3973
|
+
if (!htmlHasGsapCore(headContent)) {
|
|
3974
|
+
const core = `<script src="${gsapCdnDist(void 0, gsapBaseUrl).replace(/&/g, "&")}gsap.min.js"></script>`;
|
|
3975
|
+
headContent = insertGsapCoreBeforeHeadPlugin(headContent, core) ?? `${headContent}
|
|
3976
|
+
${core}`;
|
|
3931
3977
|
}
|
|
3932
3978
|
const htmlOpen = htmlAttrs ? `<html ${htmlAttrs}>` : "<html>";
|
|
3933
3979
|
const bodyOpen = bodyAttrs ? `<body ${bodyAttrs}>` : "<body>";
|
|
@@ -4641,7 +4687,7 @@ function resolveGsapWriter(env) {
|
|
|
4641
4687
|
throw new Error(`Invalid ${GSAP_WRITER_MIGRATION.flag}=${configured}; expected recast or acorn`);
|
|
4642
4688
|
}
|
|
4643
4689
|
async function loadGsapParser() {
|
|
4644
|
-
return import("./gsapParser-
|
|
4690
|
+
return import("./gsapParser-IEUSLYDJ.js");
|
|
4645
4691
|
}
|
|
4646
4692
|
function isDanglingSymlinkInProject(projectDir, lexicalPath) {
|
|
4647
4693
|
if (!isSafePath(projectDir, dirname3(lexicalPath))) return false;
|
|
@@ -5500,7 +5546,7 @@ async function prepareGsapMutationScript(c, res, firstMutation) {
|
|
|
5500
5546
|
let block = extractGsapScriptBlock(html);
|
|
5501
5547
|
if (!block && (firstMutation.type === "add" || firstMutation.type === "add-with-keyframes")) {
|
|
5502
5548
|
const compId = html.match(/data-composition-id="([^"]+)"/)?.[1] ?? "main";
|
|
5503
|
-
const { GSAP_CDN } = await import("./dist-
|
|
5549
|
+
const { GSAP_CDN } = await import("./dist-VVROHSP4.js");
|
|
5504
5550
|
const bootstrap = [
|
|
5505
5551
|
`<script src="${GSAP_CDN}"></script>`,
|
|
5506
5552
|
"<script>",
|
|
@@ -7375,9 +7421,12 @@ function lazyPreviewImages(html) {
|
|
|
7375
7421
|
return parts.join("");
|
|
7376
7422
|
}
|
|
7377
7423
|
var PROJECT_SIGNATURE_META = "hyperframes-project-signature";
|
|
7378
|
-
|
|
7379
|
-
|
|
7380
|
-
|
|
7424
|
+
function escapeGsapUrl(url) {
|
|
7425
|
+
return url.replace(/&/g, "&").replace(/"/g, """);
|
|
7426
|
+
}
|
|
7427
|
+
function gsapScriptTag(file, baseUrl) {
|
|
7428
|
+
return `<script src="${escapeGsapUrl(gsapCdnDist(void 0, baseUrl) + file)}"></script>`;
|
|
7429
|
+
}
|
|
7381
7430
|
function injectProjectSignature(html, signature) {
|
|
7382
7431
|
const tag = `<meta name="${PROJECT_SIGNATURE_META}" content="${signature}">`;
|
|
7383
7432
|
if (html.includes(`name="${PROJECT_SIGNATURE_META}"`)) {
|
|
@@ -7420,10 +7469,6 @@ function injectScriptTagIntoHead(html, scriptTag) {
|
|
|
7420
7469
|
`) ?? `${scriptTag}
|
|
7421
7470
|
${html}`;
|
|
7422
7471
|
}
|
|
7423
|
-
function htmlHasGsap(html) {
|
|
7424
|
-
const outsideTemplates = html.replace(/<template\b[^>]*>[\s\S]*?<\/template>/gi, "");
|
|
7425
|
-
return /<script\b[^>]*src=["'][^"']*gsap/i.test(outsideTemplates) || /\/\*\s*inlined:.*gsap/i.test(outsideTemplates) || /\b(GreenSock|_gsScope)\b/.test(outsideTemplates) || /\bgsap\.(config|defaults|registerPlugin|version)\b/.test(outsideTemplates);
|
|
7426
|
-
}
|
|
7427
7472
|
function htmlHasCustomEase(html) {
|
|
7428
7473
|
return /<script\b[^>]*src=["'][^"']*CustomEase/i.test(html) || /\bwindow\.CustomEase\b/.test(html) || /\bCustomEase\s*=\s*/.test(html);
|
|
7429
7474
|
}
|
|
@@ -7433,20 +7478,16 @@ function htmlUsesMotionPath(html) {
|
|
|
7433
7478
|
function htmlHasMotionPathPlugin(html) {
|
|
7434
7479
|
return /<script\b[^>]*src=["'][^"']*MotionPathPlugin/i.test(html) || /\bwindow\.MotionPathPlugin\b/.test(html) || /\bMotionPathPlugin\s*=\s*/.test(html);
|
|
7435
7480
|
}
|
|
7436
|
-
function injectMotionPathPluginIfNeeded(html) {
|
|
7481
|
+
function injectMotionPathPluginIfNeeded(html, baseUrl) {
|
|
7437
7482
|
if (!htmlUsesMotionPath(html) || htmlHasMotionPathPlugin(html)) return html;
|
|
7438
7483
|
const gsap = findGsapCoreScript(html);
|
|
7439
7484
|
if (gsap) {
|
|
7440
7485
|
const version = gsap.src.match(/gsap@([\d.]+)/)?.[1];
|
|
7441
7486
|
const ordering = `${gsap.type ? ` type="${gsap.type}"` : ""}${gsap.defer ? " defer" : ""}`;
|
|
7442
|
-
const pluginTag = `<script${ordering} src="${motionPathPluginUrl(version)}"></script>`;
|
|
7487
|
+
const pluginTag = `<script${ordering} src="${escapeGsapUrl(motionPathPluginUrl(version, baseUrl))}"></script>`;
|
|
7443
7488
|
return html.slice(0, gsap.end) + "\n" + pluginTag + html.slice(gsap.end);
|
|
7444
7489
|
}
|
|
7445
|
-
return injectScriptTagIntoHead(html,
|
|
7446
|
-
}
|
|
7447
|
-
function isGsapCoreUrl(src) {
|
|
7448
|
-
const base = "http://localhost/";
|
|
7449
|
-
return URL.canParse(src, base) && /\/gsap(\.min)?\.js$/i.test(new URL(src, base).pathname);
|
|
7490
|
+
return injectScriptTagIntoHead(html, gsapScriptTag("MotionPathPlugin.min.js", baseUrl));
|
|
7450
7491
|
}
|
|
7451
7492
|
function findGsapCoreScript(html) {
|
|
7452
7493
|
const scripts = [...parseHTML(html).document.querySelectorAll("script")];
|
|
@@ -7475,30 +7516,35 @@ function scriptCloseEnd(html, start) {
|
|
|
7475
7516
|
const closeAt = close.exec(html)?.index;
|
|
7476
7517
|
return closeAt === void 0 ? 0 : html.indexOf(">", closeAt) + 1;
|
|
7477
7518
|
}
|
|
7478
|
-
function injectStudioMotionDependencies(html, manifestContent) {
|
|
7519
|
+
function injectStudioMotionDependencies(html, manifestContent, baseUrl) {
|
|
7479
7520
|
const manifest = parseStudioMotionManifestContent(manifestContent);
|
|
7480
7521
|
if (!manifest.hasMotion) return html;
|
|
7481
7522
|
let next = html;
|
|
7482
|
-
if (!
|
|
7523
|
+
if (!htmlHasGsapCore(next)) {
|
|
7524
|
+
const core = gsapScriptTag("gsap.min.js", baseUrl);
|
|
7525
|
+
next = insertGsapCoreBeforeHeadPlugin(next, core) ?? injectScriptTagIntoHead(next, core);
|
|
7526
|
+
}
|
|
7483
7527
|
if (manifest.hasCustomEase && !htmlHasCustomEase(next)) {
|
|
7484
|
-
next = injectScriptTagIntoHead(next,
|
|
7528
|
+
next = injectScriptTagIntoHead(next, gsapScriptTag("CustomEase.min.js", baseUrl));
|
|
7485
7529
|
}
|
|
7486
7530
|
return next;
|
|
7487
7531
|
}
|
|
7488
|
-
function
|
|
7532
|
+
function readStudioMotion(projectDir, activeCompositionPath) {
|
|
7489
7533
|
const manifestContent = readStudioMotionManifestContent(projectDir);
|
|
7490
7534
|
const script = createStudioMotionRenderBodyScript(manifestContent, {
|
|
7491
7535
|
activeCompositionPath
|
|
7492
7536
|
});
|
|
7493
|
-
|
|
7494
|
-
|
|
7537
|
+
return script ? { manifestContent, script } : null;
|
|
7538
|
+
}
|
|
7539
|
+
function injectStudioMotionScript(html, script) {
|
|
7495
7540
|
const tag = `<script type="${AFTER_FONTS_SCRIPT_TYPE}">${script.replace(/<\/script/gi, "<\\/script")}</script>`;
|
|
7496
|
-
return insertBeforeCloseTag(
|
|
7541
|
+
return insertBeforeCloseTag(html, "body", tag) ?? `${html}${tag}`;
|
|
7497
7542
|
}
|
|
7498
7543
|
var GSAP_FALLBACK_ATTR = "data-hf-gsap-fallback";
|
|
7499
|
-
|
|
7544
|
+
function gsapCdnFallbackScript(baseUrl) {
|
|
7545
|
+
return `<script ${GSAP_FALLBACK_ATTR}>
|
|
7500
7546
|
(function(){
|
|
7501
|
-
var cdnBase
|
|
7547
|
+
var cdnBase=${JSON.stringify(gsapCdnDist(void 0, baseUrl)).replace(/</g, "\\u003c")};
|
|
7502
7548
|
var loaded={};
|
|
7503
7549
|
function loadFallback(file){
|
|
7504
7550
|
if(loaded[file])return loaded[file];
|
|
@@ -7518,10 +7564,12 @@ var GSAP_CDN_FALLBACK_SCRIPT = `<script ${GSAP_FALLBACK_ATTR}>
|
|
|
7518
7564
|
},true);
|
|
7519
7565
|
})();
|
|
7520
7566
|
</script>`;
|
|
7521
|
-
|
|
7567
|
+
}
|
|
7568
|
+
function injectGsapCdnFallback(html, baseUrl) {
|
|
7522
7569
|
if (html.includes(GSAP_FALLBACK_ATTR)) return html;
|
|
7523
|
-
if (html.includes("<head>"))
|
|
7524
|
-
|
|
7570
|
+
if (html.includes("<head>"))
|
|
7571
|
+
return html.replace("<head>", "<head>" + gsapCdnFallbackScript(baseUrl));
|
|
7572
|
+
return gsapCdnFallbackScript(baseUrl) + html;
|
|
7525
7573
|
}
|
|
7526
7574
|
function parsePreviewVariablesParam(raw) {
|
|
7527
7575
|
if (raw === void 0 || raw === "") return { ok: true, values: null };
|
|
@@ -7548,23 +7596,32 @@ function previewVariablesFromRequest(rawVariables) {
|
|
|
7548
7596
|
var PREVIEW_CAPTURE_PARAM = "hf-capture";
|
|
7549
7597
|
var EARLY_ERRORS_SCRIPT = `<script>(function(){var seen=window.${STUDIO_PREVIEW_ERRORS}=[];
|
|
7550
7598
|
addEventListener("error",function(e){seen.push(e.message||String(e))});})();</script>`;
|
|
7551
|
-
function injectStudioPreviewAugmentations(html, adapter, projectDir, activeCompositionPath,
|
|
7552
|
-
const marked = capture ? injectTagsAtHeadStart(
|
|
7599
|
+
function injectStudioPreviewAugmentations(html, adapter, projectDir, activeCompositionPath, options) {
|
|
7600
|
+
const marked = options.capture ? injectTagsAtHeadStart(
|
|
7553
7601
|
html,
|
|
7554
7602
|
`<meta name="${STUDIO_PREVIEW_MARK_META}" content="${STUDIO_PREVIEW_CAPTURE_MODE}">`
|
|
7555
7603
|
) : injectTagsAtHeadStart(
|
|
7556
7604
|
lazyPreviewImages(html),
|
|
7557
7605
|
`<meta name="${STUDIO_PREVIEW_MARK_META}">${EARLY_ERRORS_SCRIPT}`
|
|
7558
7606
|
);
|
|
7559
|
-
|
|
7560
|
-
|
|
7561
|
-
|
|
7562
|
-
|
|
7563
|
-
|
|
7607
|
+
const withFallback = injectGsapCdnFallback(
|
|
7608
|
+
injectProjectSignature(
|
|
7609
|
+
injectTagsAtHeadStart(
|
|
7610
|
+
marked,
|
|
7611
|
+
`<meta name="${GSAP_BASE_URL_META}" content="${escapeGsapUrl(options.gsapBaseUrl)}">`
|
|
7612
|
+
),
|
|
7613
|
+
resolveProjectSignature(adapter, projectDir)
|
|
7564
7614
|
),
|
|
7565
|
-
|
|
7566
|
-
activeCompositionPath
|
|
7615
|
+
options.gsapBaseUrl
|
|
7567
7616
|
);
|
|
7617
|
+
const studioMotion = readStudioMotion(projectDir, activeCompositionPath);
|
|
7618
|
+
const withMotionDependencies = studioMotion ? injectStudioMotionDependencies(
|
|
7619
|
+
withFallback,
|
|
7620
|
+
studioMotion.manifestContent,
|
|
7621
|
+
options.gsapBaseUrl
|
|
7622
|
+
) : withFallback;
|
|
7623
|
+
const withPlugin = injectMotionPathPluginIfNeeded(withMotionDependencies, options.gsapBaseUrl);
|
|
7624
|
+
return studioMotion ? injectStudioMotionScript(withPlugin, studioMotion.script) : withPlugin;
|
|
7568
7625
|
}
|
|
7569
7626
|
async function transformPreviewHtml(html, adapter, project, activeCompositionPath) {
|
|
7570
7627
|
if (!adapter.transformPreviewHtml) return html;
|
|
@@ -7606,7 +7663,23 @@ var PREVIEW_BUNDLE_OPTIONS = {
|
|
|
7606
7663
|
};
|
|
7607
7664
|
var previewBaseHref = (projectId) => `/api/projects/${encodeURIComponent(projectId)}/preview/`;
|
|
7608
7665
|
var withPreviewBase = (html, projectId) => hasBaseElement(html) ? html : injectTagsAtHeadStart(html, `<base href="${previewBaseHref(projectId)}">`);
|
|
7666
|
+
function resolvePreviewGsapBaseUrl(adapter) {
|
|
7667
|
+
const configured = process.env.HYPERFRAMES_GSAP_BASE_URL;
|
|
7668
|
+
if (configured?.trim() || !adapter.gsapLocalRoot) {
|
|
7669
|
+
try {
|
|
7670
|
+
return normalizeGsapBaseUrl(configured);
|
|
7671
|
+
} catch (cause) {
|
|
7672
|
+
throw new Error(
|
|
7673
|
+
"Invalid HYPERFRAMES_GSAP_BASE_URL: use an absolute HTTPS npm mirror root (plain HTTP only for localhost) without credentials, query, or fragment",
|
|
7674
|
+
{ cause }
|
|
7675
|
+
);
|
|
7676
|
+
}
|
|
7677
|
+
}
|
|
7678
|
+
return normalizeGsapLocalRoot(adapter.gsapLocalRoot);
|
|
7679
|
+
}
|
|
7609
7680
|
function registerPreviewRoutes(api, adapter) {
|
|
7681
|
+
const gsapBaseUrl = resolvePreviewGsapBaseUrl(adapter);
|
|
7682
|
+
const gsapEtagSalt = `:gsap:${createHash22("sha1").update(gsapBaseUrl).digest("hex").slice(0, 12)}`;
|
|
7610
7683
|
const previewCacheHeaders = (etag) => ({
|
|
7611
7684
|
"Cache-Control": "private, no-cache",
|
|
7612
7685
|
ETag: etag
|
|
@@ -7641,7 +7714,7 @@ function registerPreviewRoutes(api, adapter) {
|
|
|
7641
7714
|
adapter,
|
|
7642
7715
|
project.dir,
|
|
7643
7716
|
mainCompositionPath,
|
|
7644
|
-
capture
|
|
7717
|
+
{ capture, gsapBaseUrl }
|
|
7645
7718
|
);
|
|
7646
7719
|
if (previewVariables) bundled = injectPreviewVariables(bundled, previewVariables);
|
|
7647
7720
|
bundled = await injectMediaCodecMap(
|
|
@@ -7669,7 +7742,7 @@ function registerPreviewRoutes(api, adapter) {
|
|
|
7669
7742
|
adapter,
|
|
7670
7743
|
project.dir,
|
|
7671
7744
|
fallback.compositionPath,
|
|
7672
|
-
capture
|
|
7745
|
+
{ capture, gsapBaseUrl }
|
|
7673
7746
|
);
|
|
7674
7747
|
if (previewVariables) {
|
|
7675
7748
|
fallbackAugmented = injectPreviewVariables(fallbackAugmented, previewVariables);
|
|
@@ -7694,7 +7767,7 @@ function registerPreviewRoutes(api, adapter) {
|
|
|
7694
7767
|
if (vars.error !== void 0) return c.json({ error: vars.error }, 400);
|
|
7695
7768
|
const previewVariables = vars.values;
|
|
7696
7769
|
const capture = c.req.query(PREVIEW_CAPTURE_PARAM) !== void 0;
|
|
7697
|
-
const etag = `"preview:${signature}${variablesEtagSalt(vars.raw)}${capture ? ":capture" : ""}"`;
|
|
7770
|
+
const etag = `"preview:${signature}${gsapEtagSalt}${variablesEtagSalt(vars.raw)}${capture ? ":capture" : ""}"`;
|
|
7698
7771
|
const ifNoneMatch = c.req.header("If-None-Match");
|
|
7699
7772
|
if (ifNoneMatch === etag) {
|
|
7700
7773
|
return new Response(null, {
|
|
@@ -7744,7 +7817,7 @@ ${etag}`;
|
|
|
7744
7817
|
}
|
|
7745
7818
|
const compPathHash = createHash22("sha1").update(compPath).digest("hex");
|
|
7746
7819
|
const capture = c.req.query(PREVIEW_CAPTURE_PARAM) !== void 0;
|
|
7747
|
-
const etag = `"comp:v2:${compPathHash}:${signature}${variablesEtagSalt(vars.raw)}${capture ? ":capture" : ""}"`;
|
|
7820
|
+
const etag = `"comp:v2:${compPathHash}:${signature}${gsapEtagSalt}${variablesEtagSalt(vars.raw)}${capture ? ":capture" : ""}"`;
|
|
7748
7821
|
const ifNoneMatch = c.req.header("If-None-Match");
|
|
7749
7822
|
if (ifNoneMatch === etag) {
|
|
7750
7823
|
return new Response(null, {
|
|
@@ -7760,12 +7833,16 @@ ${etag}`;
|
|
|
7760
7833
|
compPath,
|
|
7761
7834
|
adapter.runtimeUrl,
|
|
7762
7835
|
baseHref,
|
|
7763
|
-
stamped
|
|
7836
|
+
stamped,
|
|
7837
|
+
gsapBaseUrl
|
|
7764
7838
|
);
|
|
7765
7839
|
if (!html) return c.text("not found", 404);
|
|
7766
7840
|
recordPreviewReferences(project.dir, html);
|
|
7767
7841
|
html = ensureHfIds(await transformPreviewHtml(html, adapter, project, compPath));
|
|
7768
|
-
html = injectStudioPreviewAugmentations(html, adapter, project.dir, compPath,
|
|
7842
|
+
html = injectStudioPreviewAugmentations(html, adapter, project.dir, compPath, {
|
|
7843
|
+
capture,
|
|
7844
|
+
gsapBaseUrl
|
|
7845
|
+
});
|
|
7769
7846
|
if (previewVariables) html = injectPreviewVariables(html, previewVariables);
|
|
7770
7847
|
html = await injectMediaCodecMap(html, adapter, project.dir, compPath, mediaCodecProbeCache);
|
|
7771
7848
|
return c.html(html, 200, previewCacheHeaders(etag));
|
|
@@ -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
|
}
|
|
@@ -19,10 +19,10 @@ import {
|
|
|
19
19
|
import {
|
|
20
20
|
formatVariableValidationIssue,
|
|
21
21
|
validateVariables
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-E74JMKSK.js";
|
|
23
23
|
import {
|
|
24
24
|
extractCompositionMetadata
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-B7RJV74O.js";
|
|
26
26
|
|
|
27
27
|
// src/utils/variables.ts
|
|
28
28
|
import { readFileSync } from "fs";
|
|
@@ -20,7 +20,7 @@ import {
|
|
|
20
20
|
typeDirPath,
|
|
21
21
|
updateRecord,
|
|
22
22
|
withFigmaErrors
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-YUFECVHG.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-VP4UWWO3.js");
|
|
233
233
|
trackFigmaImport({
|
|
234
234
|
phase: "asset",
|
|
235
235
|
reused: results.every((r) => r.reused),
|