hyperframes 0.8.123 → 0.8.124
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-CJXLRVWK.js → add-KDN5JOAP.js} +14 -14
- package/dist/{animatedGifPrep-VHXPTSJL.js → animatedGifPrep-H6ZIMS3L.js} +5 -5
- package/dist/{asset-KTRZSJ5R.js → asset-EJFBLFOA.js} +2 -2
- package/dist/{assetCataloger-NH6UQG4Y.js → assetCataloger-3Z4RUM5K.js} +2 -2
- package/dist/{auth-T52MOHC7.js → auth-QUOT4AVB.js} +2 -2
- package/dist/{autoUpdate-EI6JX53V.js → autoUpdate-LM6YIFM4.js} +2 -2
- package/dist/{backgroundChecks-7N3FFYIV.js → backgroundChecks-PZEX77KC.js} +3 -3
- package/dist/backgroundChecksWorker.js +3 -3
- package/dist/{batchRender-JDH4PXPD.js → batchRender-SYREZLNM.js} +3 -3
- package/dist/{beats-TG2TOST6.js → beats-GAROPWZX.js} +11 -11
- package/dist/{benchmark-WGXMGPUI.js → benchmark-R27INLK2.js} +11 -11
- package/dist/{browser-VMEADLNK.js → browser-UAMARUY3.js} +8 -8
- package/dist/{bundleWithLocalizedFonts-EDBQ5EME.js → bundleWithLocalizedFonts-SJFCS4WH.js} +2 -2
- package/dist/{capture-UZFI2G65.js → capture-42GHDJSH.js} +13 -18
- package/dist/{capture-22IWCYV2.js → capture-NT33PXQT.js} +2 -2
- package/dist/{catalog-3V4SSSYE.js → catalog-DDLMJXPU.js} +14 -14
- package/dist/{check-LTKOTPFI.js → check-IQJEGVTI.js} +30 -30
- package/dist/{checkBrowser-LTZPCRBO.js → checkBrowser-QDTOZNUM.js} +29 -29
- package/dist/{chunk-BET5FXMM.js → chunk-2C5KGTYX.js} +1 -1
- package/dist/{chunk-Z3SUEG2T.js → chunk-2X6IXODS.js} +5 -5
- package/dist/{chunk-KQ7BAEVP.js → chunk-4HC572SI.js} +2 -2
- package/dist/{chunk-MBSCHJQZ.js → chunk-5JLKZMCL.js} +1 -1
- package/dist/{chunk-MUAFAG77.js → chunk-5UQEHMDX.js} +4 -4
- package/dist/{chunk-UI2I6ZQE.js → chunk-5WAPJM7Q.js} +1 -1
- package/dist/{chunk-7NWNDQID.js → chunk-72BGWI35.js} +3 -3
- package/dist/{chunk-GPUM6BRL.js → chunk-73KQTPK5.js} +1 -1
- package/dist/{chunk-QLKCB3NY.js → chunk-AIAHR2KP.js} +7 -7
- package/dist/{chunk-EJF6CESB.js → chunk-AOJIC4Z6.js} +1 -1
- package/dist/{chunk-E26WHQFM.js → chunk-BDERXFDQ.js} +2 -2
- package/dist/{chunk-UMMVYWDI.js → chunk-BTJLBKJM.js} +5 -5
- package/dist/{chunk-WAD4ACBZ.js → chunk-CMH5CSTH.js} +2 -2
- package/dist/{chunk-EYNWMEWX.js → chunk-CQMEZZGB.js} +9 -9
- package/dist/{chunk-DR7F77AN.js → chunk-CSACVU42.js} +1 -1
- package/dist/{chunk-ILOJE2TE.js → chunk-E5BAQVYP.js} +1 -1
- package/dist/{chunk-53IO4HLZ.js → chunk-F6QGSVUR.js} +30 -0
- package/dist/{chunk-24AS45UQ.js → chunk-FFRD7C5Y.js} +71 -22
- package/dist/chunk-GULOKZLI.js +155 -0
- package/dist/{chunk-PQQZNS5K.js → chunk-HHUXXGXS.js} +1 -1
- package/dist/{chunk-CZRQH5SP.js → chunk-HQWCFX5E.js} +1 -1
- package/dist/{chunk-4EZKLNMD.js → chunk-JTOXXJ2V.js} +1 -1
- package/dist/{chunk-RYP46ARK.js → chunk-KAG5RIH3.js} +1 -1
- package/dist/{chunk-2QAAOW5T.js → chunk-LHUITV7D.js} +1 -1
- package/dist/{chunk-TLA5RBEB.js → chunk-LVXNXV7G.js} +1 -1
- package/dist/{chunk-XIJTGR4O.js → chunk-M73S37KU.js} +1 -1
- package/dist/{chunk-3SHYUYXR.js → chunk-N2NKZH5T.js} +9 -9
- package/dist/{dotEnv-AI4SYVTX.js → chunk-NGKM64BP.js} +2 -2
- package/dist/{chunk-S3JOM6L4.js → chunk-O2UUDQIA.js} +3 -3
- package/dist/{chunk-3V6V66SZ.js → chunk-ONB7D3WM.js} +2 -2
- package/dist/{chunk-PUFPAYTJ.js → chunk-ORICANJF.js} +1 -1
- package/dist/{chunk-SKZ6H3JT.js → chunk-PLQ4HJOO.js} +1 -1
- package/dist/{chunk-AICUP6TU.js → chunk-PSUC7UH5.js} +1 -1
- package/dist/{chunk-IOMMM4AX.js → chunk-RG4XNPAS.js} +1 -1
- package/dist/{chunk-2FH6HOQ2.js → chunk-RGAOEDD7.js} +1 -1
- package/dist/{chunk-4TIUZ6Z7.js → chunk-RPVBIUYA.js} +2 -2
- package/dist/{chunk-XQSMY5HF.js → chunk-SR2PZ7YB.js} +2 -2
- package/dist/{chunk-ELHC6CLH.js → chunk-TAVCXJDZ.js} +3 -3
- package/dist/{chunk-RTINVJNS.js → chunk-UB7TKYHI.js} +1 -1
- package/dist/{chunk-HISVSZH7.js → chunk-UZKSKWYC.js} +2 -2
- package/dist/{chunk-IML47HIH.js → chunk-VFCR64GO.js} +7 -7
- package/dist/{chunk-73KPBRCO.js → chunk-W777U57N.js} +1 -1
- package/dist/{chunk-OCH6V4FB.js → chunk-W7MBO3OA.js} +2 -2
- package/dist/{chunk-VEGNMQZI.js → chunk-WCO25Y7W.js} +2 -2
- package/dist/{chunk-4XAAOWFC.js → chunk-ZXKQI3CL.js} +1 -1
- package/dist/{clean-YZQXCSXZ.js → clean-JUJTGQLY.js} +14 -14
- package/dist/cli.js +52 -52
- package/dist/{cloud-TYUXSEGA.js → cloud-OTGRJ55X.js} +4 -4
- package/dist/{cloudrun-MA2JVRHV.js → cloudrun-MR2BDNIE.js} +3 -3
- package/dist/{compare-6DSDY2IF.js → compare-PI2BE6XG.js} +24 -24
- package/dist/{compiler-4FHYKPNR.js → compiler-534QUPGQ.js} +2 -2
- package/dist/{component-NY4JERQ5.js → component-23F5FX7F.js} +3 -3
- package/dist/{compositions-SI2SKZAF.js → compositions-QBMBMSWK.js} +10 -10
- package/dist/{delete-YU7XRF6M.js → delete-OWPF7ECQ.js} +2 -2
- package/dist/{dist-AMQZTIJP.js → dist-UBW5W3J6.js} +2 -2
- package/dist/{doctor-MXX7AHXT.js → doctor-ET66NXTR.js} +9 -9
- package/dist/dotEnv-AECLXQSO.js +14 -0
- package/dist/{events-R5N3EVAF.js → events-IF4ANAI4.js} +7 -7
- package/dist/{events-LLCZN2LK.js → events-YB7V7HKA.js} +8 -8
- package/dist/{feedback-MIZ3HJT4.js → feedback-BXKESP4T.js} +9 -9
- package/dist/{figma-4ESVBLHH.js → figma-HNCCW27E.js} +3 -3
- package/dist/fontLocalizeCli.js +7 -7
- package/dist/{get-OF3I77OW.js → get-BFS6LW4G.js} +2 -2
- package/dist/{gpuPolicy-KDI7HVOA.js → gpuPolicy-NTPPP3CY.js} +5 -5
- package/dist/{grade-compare-QXE4ZEZU.js → grade-compare-ZODD5CA2.js} +24 -24
- package/dist/{help-NFHZFSQN.js → help-PDKEUTLM.js} +2 -2
- package/dist/{history-DTRCFREW.js → history-DPCZXCFM.js} +14 -14
- package/dist/hyperframes-player.global.js +1 -1
- package/dist/{info-KRDLMYKB.js → info-BZBRLNDJ.js} +10 -10
- package/dist/{init-XTXSP6IU.js → init-24RQT53L.js} +21 -21
- package/dist/{inspect-KH3CTX62.js → inspect-UUJSVALX.js} +25 -25
- package/dist/{installer-M5OHZ3QU.js → installer-3MYH2BBT.js} +4 -4
- package/dist/{keyframes-K5UWQDSW.js → keyframes-ZBT47ZXP.js} +11 -11
- package/dist/{lambda-PXGK25LH.js → lambda-254KZLDB.js} +4 -4
- package/dist/{layout-SYWCNF2S.js → layout-D7VXT7ZZ.js} +25 -25
- package/dist/{lint-A5W6BCKC.js → lint-CIMEKZSB.js} +11 -11
- package/dist/{list-CXWE53HJ.js → list-WBRIEQZM.js} +2 -2
- package/dist/{login-WUPTUIG2.js → login-PBKOV6TK.js} +4 -4
- package/dist/{media-treatment-INJWEP6H.js → media-treatment-XIBOCHGF.js} +11 -11
- package/dist/{models-D5CMY6VB.js → models-7UT4RZUL.js} +6 -6
- package/dist/{motionShot-HS4M4WOQ.js → motionShot-WB7E5FU7.js} +11 -11
- package/dist/{normalize-audio-ILF3IDZC.js → normalize-audio-PMU2FXZA.js} +10 -10
- package/dist/{open-4V3RXCR6.js → open-AVSLHVOE.js} +18 -18
- package/dist/{pipeline-CPGRA375.js → pipeline-5E76S72B.js} +5 -5
- package/dist/{play-IFATKPFL.js → play-SVTXUB2Z.js} +19 -19
- package/dist/{preflight-IQEYFD33.js → preflight-LGJKUHUZ.js} +6 -6
- package/dist/{present-A3EXMPEB.js → present-NE6EYZY2.js} +15 -15
- package/dist/{preview-6OFPNSRQ.js → preview-4EGR22E3.js} +17 -17
- package/dist/{producer-T4HGO327.js → producer-2ZWSHMK3.js} +1 -1
- package/dist/{projectConfig-VKUAJTKN.js → projectConfig-VC5MAYSS.js} +6 -6
- package/dist/{publication-EYW5DW5Q.js → publication-YXOCJQ7B.js} +2 -2
- package/dist/{publish-7N3KAN23.js → publish-GTXVX6O4.js} +7 -7
- package/dist/{remove-background-76NDLWX2.js → remove-background-VOBXCXXJ.js} +6 -6
- package/dist/{render-SGKRP4OI.js → render-4PBKSNC3.js} +22 -22
- package/dist/{render-WWSM5VDX.js → render-BNUTBDFX.js} +3 -3
- package/dist/{render-FVVTP6IC.js → render-M446K7E4.js} +11 -11
- package/dist/{render-batch-UHVLIDQ6.js → render-batch-WJKUYKUZ.js} +3 -3
- package/dist/{renderCancellation-TZ2YQXLI.js → renderCancellation-QUEUCG6R.js} +5 -5
- package/dist/{resolver-BERTN5TY.js → resolver-3QPZA2X6.js} +4 -4
- package/dist/{sherpa-WAI3BU35.js → sherpa-LQHE6MT7.js} +6 -6
- package/dist/skills/hyperframes/SKILL.md +9 -0
- package/dist/skills/hyperframes/references/brief-contract.md +1 -1
- package/dist/skills/hyperframes/references/review-loop.md +1 -1
- package/dist/skills/hyperframes-cli/SKILL.md +2 -1
- package/dist/skills/media-use/audio/references/tts.md +24 -7
- package/dist/skills/media-use/audio/scripts/heygen-tts.mjs +3 -2
- package/dist/skills/media-use/audio/scripts/heygen-tts.test.mjs +38 -0
- package/dist/skills/media-use/audio/scripts/heygen-voice.mjs +98 -0
- package/dist/skills/media-use/audio/scripts/heygen-voice.test.mjs +233 -0
- package/dist/skills/media-use/audio/scripts/lib/heygen.mjs +19 -5
- package/dist/skills/media-use/audio/scripts/lib/heygen.test.mjs +17 -0
- package/dist/skills/media-use/audio/scripts/lib/tts.mjs +2 -2
- package/dist/{skills-4J56N4BF.js → skills-C6C23Z7M.js} +10 -10
- package/dist/{skillsUpdateCheck-GPLLGZTN.js → skillsUpdateCheck-MR5TXEAX.js} +3 -3
- package/dist/{snapshot-XPPNHMIG.js → snapshot-F5ZSC5FM.js} +25 -25
- package/dist/{src-6ZDBAHYH.js → src-HP5DTGMY.js} +6 -6
- package/dist/{src-K6L2URKG.js → src-WEETQ4CZ.js} +4 -4
- package/dist/{staticProjectServer-ETIXS3GJ.js → staticProjectServer-REKZ3KBB.js} +13 -13
- package/dist/{status-P2I66DU7.js → status-DKHWOUB4.js} +5 -5
- package/dist/studio/assets/{hyperframes-player-yABdb6yk.js → hyperframes-player-ColOZ_78.js} +1 -1
- package/dist/studio/assets/{index-Dt7lWtY7.js → index-BuSTrK-Z.js} +112 -112
- package/dist/studio/assets/{index-DWjF2Kxw.js → index-CVuUfURE.js} +1 -1
- package/dist/studio/assets/{index-LrNlT5Tg.css → index-D11atkBt.css} +1 -1
- package/dist/studio/assets/{index-D77MIjSJ.js → index-jQEqFKMk.js} +1 -1
- package/dist/studio/index.html +2 -2
- package/dist/studio/index.js +70 -49
- package/dist/studio/index.js.map +1 -1
- package/dist/studio/styles.css +1 -1
- package/dist/{studio-api-PTVN2GZ5.js → studio-api-SY5SFHZD.js} +7 -7
- package/dist/{studioServer-55366NG4.js → studioServer-2ZWULGC5.js} +49 -42
- package/dist/{system-M44QRAAZ.js → system-L7VMXFIG.js} +5 -5
- package/dist/{telemetry-6GQL3BIP.js → telemetry-XYNKPYSU.js} +8 -8
- package/dist/{timeline-NMG3JG3V.js → timeline-MYGD5OEC.js} +14 -14
- package/dist/{tokens-5LYIBBEF.js → tokens-6DZ73AXR.js} +2 -2
- package/dist/{transcribe-4DGPFZTU.js → transcribe-3BUOOE6P.js} +11 -11
- package/dist/{transcribe-3SONDYLT.js → transcribe-F4DDIZJO.js} +6 -6
- package/dist/{updateCheck-CXNND3CL.js → updateCheck-VH46SJ2X.js} +2 -2
- package/dist/{upgrade-RFTKDIVZ.js → upgrade-J4MZ4MLN.js} +2 -2
- package/dist/{urlDownloader-VRZX26OK.js → urlDownloader-PCRAON2D.js} +4 -4
- package/dist/{validate-3BFHVVZH.js → validate-BOYSXZFW.js} +15 -15
- package/dist/{video-ECPRKRRP.js → video-GL7ZDEFL.js} +5 -5
- package/package.json +1 -1
- package/dist/chunk-AMV2OPXR.js +0 -82
|
@@ -2027,6 +2027,35 @@ function findOuterTemplateClose(html) {
|
|
|
2027
2027
|
}
|
|
2028
2028
|
return -1;
|
|
2029
2029
|
}
|
|
2030
|
+
var COMPOSITION_ID_ATTR = /\sdata-composition-id\s*=/;
|
|
2031
|
+
var isDocumentWrapper = (lowered, open) => isTagAt(lowered, open, "<html") || isTagAt(lowered, open, "<body");
|
|
2032
|
+
function carriesCompositionId(lowered, open) {
|
|
2033
|
+
const end = findTagEnd(lowered, open + 1);
|
|
2034
|
+
return end !== -1 && COMPOSITION_ID_ATTR.test(lowered.slice(open, end));
|
|
2035
|
+
}
|
|
2036
|
+
function hasCompositionOutsideTemplates(html) {
|
|
2037
|
+
const lowered = lowerAscii(html);
|
|
2038
|
+
let depth = 0;
|
|
2039
|
+
let idOnWrapper = false;
|
|
2040
|
+
let idInTemplate = false;
|
|
2041
|
+
for (const open of markupStarts(lowered)) {
|
|
2042
|
+
if (isTagAt(lowered, open, "<template")) {
|
|
2043
|
+
depth++;
|
|
2044
|
+
if (carriesCompositionId(lowered, open))
|
|
2045
|
+
idInTemplate = true;
|
|
2046
|
+
} else if (isTagAt(lowered, open, "</template"))
|
|
2047
|
+
depth = Math.max(0, depth - 1);
|
|
2048
|
+
else if (/[a-z]/.test(lowered.charAt(open + 1)) && carriesCompositionId(lowered, open)) {
|
|
2049
|
+
if (depth > 0)
|
|
2050
|
+
idInTemplate = true;
|
|
2051
|
+
else if (isDocumentWrapper(lowered, open))
|
|
2052
|
+
idOnWrapper = true;
|
|
2053
|
+
else
|
|
2054
|
+
return true;
|
|
2055
|
+
}
|
|
2056
|
+
}
|
|
2057
|
+
return idOnWrapper && !idInTemplate;
|
|
2058
|
+
}
|
|
2030
2059
|
function insertBeforeDocumentTag(html, tag, markup) {
|
|
2031
2060
|
const at = tag === "</template" ? findOuterTemplateClose(html) : findDocumentTag(html, tag);
|
|
2032
2061
|
return at === -1 ? null : html.slice(0, at) + markup + html.slice(at);
|
|
@@ -3500,6 +3529,7 @@ export {
|
|
|
3500
3529
|
parseHTMLContent,
|
|
3501
3530
|
stripEmbeddedRuntimeScripts,
|
|
3502
3531
|
findStartTags,
|
|
3532
|
+
hasCompositionOutsideTemplates,
|
|
3503
3533
|
insertBeforeCloseTag,
|
|
3504
3534
|
injectTagsAtHeadStart,
|
|
3505
3535
|
injectScriptsAtHeadStart,
|
|
@@ -21,7 +21,7 @@ import {
|
|
|
21
21
|
splitElementInHtml,
|
|
22
22
|
unwrapElementsFromHtml,
|
|
23
23
|
wrapElementsInHtml
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-W7MBO3OA.js";
|
|
25
25
|
import {
|
|
26
26
|
atomicTempPath,
|
|
27
27
|
createFileAtomically,
|
|
@@ -34,7 +34,7 @@ import {
|
|
|
34
34
|
measureAudio,
|
|
35
35
|
requiredFfmpeg,
|
|
36
36
|
resolveLocalAudioPath
|
|
37
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-RG4XNPAS.js";
|
|
38
38
|
import {
|
|
39
39
|
PROXY_PARAMS_VERSION,
|
|
40
40
|
PROXY_PENDING_RETRY_AFTER_SECONDS,
|
|
@@ -60,7 +60,7 @@ import {
|
|
|
60
60
|
shouldPrewarmProxy,
|
|
61
61
|
waitForProxy,
|
|
62
62
|
walkDir
|
|
63
|
-
} from "./chunk-
|
|
63
|
+
} from "./chunk-73KQTPK5.js";
|
|
64
64
|
import {
|
|
65
65
|
findTimelineScript,
|
|
66
66
|
parseGsapScriptAcorn
|
|
@@ -81,7 +81,7 @@ import {
|
|
|
81
81
|
motionPathPluginUrl,
|
|
82
82
|
parseFps,
|
|
83
83
|
sameInstant
|
|
84
|
-
} from "./chunk-
|
|
84
|
+
} from "./chunk-LVXNXV7G.js";
|
|
85
85
|
import {
|
|
86
86
|
MagicString,
|
|
87
87
|
VALID_CANVAS_RESOLUTIONS,
|
|
@@ -92,16 +92,17 @@ import {
|
|
|
92
92
|
addScenePartsManifest,
|
|
93
93
|
deferScriptsUntilFonts,
|
|
94
94
|
ensureHfIds
|
|
95
|
-
} from "./chunk-
|
|
95
|
+
} from "./chunk-KAG5RIH3.js";
|
|
96
96
|
import {
|
|
97
97
|
findStartTags,
|
|
98
|
+
hasCompositionOutsideTemplates,
|
|
98
99
|
injectTagsAtHeadStart,
|
|
99
100
|
insertBeforeCloseTag,
|
|
100
101
|
isFullHtmlDocument,
|
|
101
102
|
resolveRateSpec,
|
|
102
103
|
sourceTimeAt,
|
|
103
104
|
stripEmbeddedRuntimeScripts
|
|
104
|
-
} from "./chunk-
|
|
105
|
+
} from "./chunk-F6QGSVUR.js";
|
|
105
106
|
import {
|
|
106
107
|
ProjectRootMissingError,
|
|
107
108
|
folderGone,
|
|
@@ -219,7 +220,7 @@ function stampFileHfIds(filePath) {
|
|
|
219
220
|
}
|
|
220
221
|
}
|
|
221
222
|
|
|
222
|
-
// ../studio-server/dist/chunk-
|
|
223
|
+
// ../studio-server/dist/chunk-HY2KCPIA.js
|
|
223
224
|
import { randomUUID as randomUUID6 } from "crypto";
|
|
224
225
|
import { mkdir as mkdir2, readdir as readdir3, rm as rm3, rmdir, writeFile } from "fs/promises";
|
|
225
226
|
import {
|
|
@@ -881,8 +882,10 @@ function readLog(file, onUnreadable) {
|
|
|
881
882
|
return log;
|
|
882
883
|
}
|
|
883
884
|
function applyRecord(log, record) {
|
|
884
|
-
if (record.type === "baseline")
|
|
885
|
-
|
|
885
|
+
if (record.type === "baseline") {
|
|
886
|
+
log.baseline = new Map(Object.entries(record.files));
|
|
887
|
+
log.keepsLedger = record.keepsLedger === true;
|
|
888
|
+
} else if (record.type === "entry") log.entries.push(record.entry);
|
|
886
889
|
else if (record.pinned) log.pins.add(record.id);
|
|
887
890
|
else log.pins.delete(record.id);
|
|
888
891
|
}
|
|
@@ -903,7 +906,11 @@ function saveRecord(file, log, record) {
|
|
|
903
906
|
}
|
|
904
907
|
function writeLog(file, log) {
|
|
905
908
|
const records = [
|
|
906
|
-
{
|
|
909
|
+
{
|
|
910
|
+
type: "baseline",
|
|
911
|
+
files: Object.fromEntries(log.baseline),
|
|
912
|
+
...log.keepsLedger && { keepsLedger: true }
|
|
913
|
+
},
|
|
907
914
|
...log.entries.map((entry) => ({ type: "entry", entry })),
|
|
908
915
|
...[...log.pins].map((id) => ({ type: "pin", id, pinned: true }))
|
|
909
916
|
];
|
|
@@ -985,8 +992,10 @@ var OUTSIDE = { kind: "outside", name: "Outside" };
|
|
|
985
992
|
var OUTSIDE_LABEL = "Changed outside the app";
|
|
986
993
|
var RACY_MS = 2e3;
|
|
987
994
|
var statKey = (file, sweptAt) => sweptAt - Math.max(file.mtimeMs, file.ctimeMs) < RACY_MS ? "" : `${file.size}:${file.mtimeMs}:${file.ctimeMs}`;
|
|
995
|
+
var MEDIA_LEDGER = ".media/manifest.jsonl";
|
|
996
|
+
var KEPT_HIDDEN_PATHS = /* @__PURE__ */ new Set([...STUDIO_SIGNATURE_MANIFEST_PATHS, MEDIA_LEDGER]);
|
|
988
997
|
function isHistoryPath(path) {
|
|
989
|
-
if (
|
|
998
|
+
if (KEPT_HIDDEN_PATHS.has(path)) return true;
|
|
990
999
|
return !path.split("/").some((segment) => segment.startsWith("."));
|
|
991
1000
|
}
|
|
992
1001
|
function withoutHiddenPaths(log) {
|
|
@@ -1140,6 +1149,7 @@ var Engine = class {
|
|
|
1140
1149
|
);
|
|
1141
1150
|
if (!log) return this.firstOpen();
|
|
1142
1151
|
this.log = withoutHiddenPaths(log);
|
|
1152
|
+
if (!this.log.keepsLedger) await this.takeInUnnamedLedger();
|
|
1143
1153
|
const cache = this.readStatCache();
|
|
1144
1154
|
const last = this.log.entries.at(-1)?.id ?? START;
|
|
1145
1155
|
for (const [path, hash] of manifestAt(this.log, last) ?? []) {
|
|
@@ -1188,6 +1198,14 @@ var Engine = class {
|
|
|
1188
1198
|
const { id, who, label, startedAt, lastWriteAt, idleMs } = closed;
|
|
1189
1199
|
this.windows.push({ id, who, label, startedAt, lastWriteAt, idleMs, changes: /* @__PURE__ */ new Map() });
|
|
1190
1200
|
}
|
|
1201
|
+
async takeInUnnamedLedger() {
|
|
1202
|
+
const named = (path) => this.log.entries.some((entry) => entry.files.some((file) => file.path === path));
|
|
1203
|
+
const listed = () => historyFiles(this.dir).some((file) => file.path === MEDIA_LEDGER);
|
|
1204
|
+
const hash = this.log.baseline.has(MEDIA_LEDGER) || named(MEDIA_LEDGER) || !listed() ? null : await this.storeIfPresent(MEDIA_LEDGER);
|
|
1205
|
+
if (hash !== null) this.log.baseline.set(MEDIA_LEDGER, hash);
|
|
1206
|
+
this.log.keepsLedger = true;
|
|
1207
|
+
this.persistLog();
|
|
1208
|
+
}
|
|
1191
1209
|
async firstOpen() {
|
|
1192
1210
|
const sweptAt = this.now();
|
|
1193
1211
|
for (const file of historyFiles(this.dir)) {
|
|
@@ -1196,6 +1214,7 @@ var Engine = class {
|
|
|
1196
1214
|
if (hash !== null) this.tracked.set(file.path, { hash, stat: statKey(file, sweptAt) });
|
|
1197
1215
|
}
|
|
1198
1216
|
this.log.baseline = this.manifest();
|
|
1217
|
+
this.log.keepsLedger = true;
|
|
1199
1218
|
this.persistLog();
|
|
1200
1219
|
this.saveStatCache();
|
|
1201
1220
|
}
|
|
@@ -6601,7 +6620,7 @@ async function prepareGsapMutationScript(c, res, firstMutation) {
|
|
|
6601
6620
|
let block = extractGsapScriptBlock(html);
|
|
6602
6621
|
if (!block && (firstMutation.type === "add" || firstMutation.type === "add-with-keyframes")) {
|
|
6603
6622
|
const compId = html.match(/data-composition-id="([^"]+)"/)?.[1] ?? "main";
|
|
6604
|
-
const { GSAP_CDN } = await import("./dist-
|
|
6623
|
+
const { GSAP_CDN } = await import("./dist-UBW5W3J6.js");
|
|
6605
6624
|
const bootstrap = [
|
|
6606
6625
|
`<script src="${GSAP_CDN}"></script>`,
|
|
6607
6626
|
"<script>",
|
|
@@ -6610,8 +6629,9 @@ async function prepareGsapMutationScript(c, res, firstMutation) {
|
|
|
6610
6629
|
`window.__timelines["${compId}"] = tl;`,
|
|
6611
6630
|
"</script>"
|
|
6612
6631
|
].join("\n");
|
|
6613
|
-
|
|
6614
|
-
|
|
6632
|
+
const [first, second] = hasCompositionOutsideTemplates(html) ? ["body", "template"] : ["template", "body"];
|
|
6633
|
+
html = insertBeforeCloseTag(html, first, `${bootstrap}
|
|
6634
|
+
`) ?? insertBeforeCloseTag(html, second, `${bootstrap}
|
|
6615
6635
|
`) ?? `${html}
|
|
6616
6636
|
${bootstrap}`;
|
|
6617
6637
|
block = extractGsapScriptBlock(html);
|
|
@@ -8648,17 +8668,46 @@ function htmlHasMotionPathPlugin(html) {
|
|
|
8648
8668
|
}
|
|
8649
8669
|
function injectMotionPathPluginIfNeeded(html) {
|
|
8650
8670
|
if (!htmlUsesMotionPath(html) || htmlHasMotionPathPlugin(html)) return html;
|
|
8651
|
-
const
|
|
8652
|
-
|
|
8653
|
-
|
|
8654
|
-
const
|
|
8655
|
-
const
|
|
8656
|
-
|
|
8657
|
-
const end = html.indexOf(match[0]) + match[0].length;
|
|
8658
|
-
return html.slice(0, end) + "\n" + pluginTag + html.slice(end);
|
|
8671
|
+
const gsap = findGsapCoreScript(html);
|
|
8672
|
+
if (gsap) {
|
|
8673
|
+
const version = gsap.src.match(/gsap@([\d.]+)/)?.[1];
|
|
8674
|
+
const ordering = `${gsap.type ? ` type="${gsap.type}"` : ""}${gsap.defer ? " defer" : ""}`;
|
|
8675
|
+
const pluginTag = `<script${ordering} src="${motionPathPluginUrl(version)}"></script>`;
|
|
8676
|
+
return html.slice(0, gsap.end) + "\n" + pluginTag + html.slice(gsap.end);
|
|
8659
8677
|
}
|
|
8660
8678
|
return injectScriptTagIntoHead(html, GSAP_MOTION_PATH_CDN_SCRIPT);
|
|
8661
8679
|
}
|
|
8680
|
+
function isGsapCoreUrl(src) {
|
|
8681
|
+
const base = "http://localhost/";
|
|
8682
|
+
return URL.canParse(src, base) && /\/gsap(\.min)?\.js$/i.test(new URL(src, base).pathname);
|
|
8683
|
+
}
|
|
8684
|
+
function findGsapCoreScript(html) {
|
|
8685
|
+
const scripts = [...parseHTML(html).document.querySelectorAll("script")];
|
|
8686
|
+
const starts = findStartTags(html, "script");
|
|
8687
|
+
if (starts.length !== scripts.length) return null;
|
|
8688
|
+
const at = scripts.findIndex(
|
|
8689
|
+
(script) => isGsapCoreUrl(lowerCaseAttributes(script).get("src") ?? "")
|
|
8690
|
+
);
|
|
8691
|
+
if (at === -1) return null;
|
|
8692
|
+
const attributes = lowerCaseAttributes(scripts[at]);
|
|
8693
|
+
const end = scriptCloseEnd(html, starts[at]);
|
|
8694
|
+
if (end === 0) return null;
|
|
8695
|
+
return {
|
|
8696
|
+
src: attributes.get("src"),
|
|
8697
|
+
type: attributes.get("type") ?? null,
|
|
8698
|
+
defer: attributes.has("defer"),
|
|
8699
|
+
end
|
|
8700
|
+
};
|
|
8701
|
+
}
|
|
8702
|
+
function lowerCaseAttributes(el) {
|
|
8703
|
+
return new Map([...el.attributes].map((a) => [a.name.toLowerCase(), a.value]));
|
|
8704
|
+
}
|
|
8705
|
+
function scriptCloseEnd(html, start) {
|
|
8706
|
+
const close = /<\/script/gi;
|
|
8707
|
+
close.lastIndex = start;
|
|
8708
|
+
const closeAt = close.exec(html)?.index;
|
|
8709
|
+
return closeAt === void 0 ? 0 : html.indexOf(">", closeAt) + 1;
|
|
8710
|
+
}
|
|
8662
8711
|
function injectStudioMotionDependencies(html, manifestContent) {
|
|
8663
8712
|
const manifest = parseStudioMotionManifestContent(manifestContent);
|
|
8664
8713
|
if (!manifest.hasMotion) return html;
|
|
@@ -0,0 +1,155 @@
|
|
|
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
|
+
// src/utils/desktopApp.ts
|
|
9
|
+
import { spawn, spawnSync } from "child_process";
|
|
10
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "fs";
|
|
11
|
+
import { homedir } from "os";
|
|
12
|
+
import { basename, isAbsolute, join, relative, win32 } from "path";
|
|
13
|
+
var DESKTOP_BUNDLE_IDS = ["dev.hyperframes.desktop", "dev.hyperframes.desktop.canary"];
|
|
14
|
+
var DESKTOP_APP_NAMES = ["HyperFrames.app", "HyperFrames Canary.app"];
|
|
15
|
+
var APP_NAMES = ["HyperFrames", "HyperFrames Canary"];
|
|
16
|
+
var STUDIO_PAGE = "https://hyperframes.dev/studio";
|
|
17
|
+
var DOWNLOADS = {
|
|
18
|
+
darwin: `${STUDIO_PAGE}/download`,
|
|
19
|
+
linux: `${STUDIO_PAGE}/download?os=linux`
|
|
20
|
+
};
|
|
21
|
+
var desktopDownloadUrl = (platform = process.platform) => DOWNLOADS[platform] ?? null;
|
|
22
|
+
var downloadHint = (url) => `Keep editing by chatting with Framey in the HyperFrames desktop app \u2192 ${url}`;
|
|
23
|
+
var HANDOFF_READY = process.platform === "darwin";
|
|
24
|
+
var AGENT_HANDOFF_FILE = join(".hyperframes", "agent-handoff.json");
|
|
25
|
+
function agentSession(env = process.env) {
|
|
26
|
+
if (env.CLAUDE_CODE_SESSION_ID)
|
|
27
|
+
return { engine: "claude", sessionId: env.CLAUDE_CODE_SESSION_ID };
|
|
28
|
+
if (env.CODEX_THREAD_ID) return { engine: "codex", sessionId: env.CODEX_THREAD_ID };
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
var openWithBundle = (bundleId, dir) => spawnSync("open", ["-b", bundleId, dir], { stdio: "ignore" }).status === 0;
|
|
32
|
+
function launchApp(executable, dir) {
|
|
33
|
+
try {
|
|
34
|
+
const child = spawn(executable, [dir], { detached: true, stdio: "ignore" });
|
|
35
|
+
child.on("error", () => {
|
|
36
|
+
});
|
|
37
|
+
child.unref();
|
|
38
|
+
return true;
|
|
39
|
+
} catch {
|
|
40
|
+
return false;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
var readText = (path) => {
|
|
44
|
+
try {
|
|
45
|
+
return readFileSync(path, "utf8");
|
|
46
|
+
} catch {
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
function launcherAppImage(text) {
|
|
51
|
+
try {
|
|
52
|
+
const launcher = JSON.parse(text ?? "null");
|
|
53
|
+
return typeof launcher === "object" && launcher !== null && "appImage" in launcher && typeof launcher.appImage === "string" ? launcher.appImage : null;
|
|
54
|
+
} catch {
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
function desktopApps({
|
|
59
|
+
platform = process.platform,
|
|
60
|
+
env = process.env,
|
|
61
|
+
home = homedir(),
|
|
62
|
+
exists = existsSync,
|
|
63
|
+
read = readText
|
|
64
|
+
} = {}) {
|
|
65
|
+
if (platform !== "win32" && platform !== "linux") return null;
|
|
66
|
+
const config = env.XDG_CONFIG_HOME || join(home, ".config");
|
|
67
|
+
const where = (name) => {
|
|
68
|
+
if (platform === "win32")
|
|
69
|
+
return env.LOCALAPPDATA ? win32.join(env.LOCALAPPDATA, "Programs", name, `${name}.exe`) : null;
|
|
70
|
+
const appImage = launcherAppImage(read(join(config, name, "launcher.json")));
|
|
71
|
+
return appImage && isAbsolute(appImage) ? appImage : null;
|
|
72
|
+
};
|
|
73
|
+
return APP_NAMES.flatMap((name, i) => {
|
|
74
|
+
const executable = where(name);
|
|
75
|
+
return executable && exists(executable) ? [{ executable, canary: i === 1 }] : [];
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
function leaveHandoff(dir, session) {
|
|
79
|
+
if (!session) return null;
|
|
80
|
+
try {
|
|
81
|
+
mkdirSync(join(dir, ".hyperframes"), { recursive: true });
|
|
82
|
+
writeFileSync(join(dir, AGENT_HANDOFF_FILE), JSON.stringify(session));
|
|
83
|
+
return session;
|
|
84
|
+
} catch {
|
|
85
|
+
return null;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
function openInDesktop(dir, {
|
|
89
|
+
ready = HANDOFF_READY,
|
|
90
|
+
platform = process.platform,
|
|
91
|
+
open = openWithBundle,
|
|
92
|
+
launch = launchApp,
|
|
93
|
+
installed = () => desktopInstalled({ platform }),
|
|
94
|
+
env = process.env,
|
|
95
|
+
...where
|
|
96
|
+
} = {}) {
|
|
97
|
+
const notOpened = (reason) => ({
|
|
98
|
+
opened: false,
|
|
99
|
+
reason,
|
|
100
|
+
downloadUrl: desktopDownloadUrl(platform) ?? STUDIO_PAGE
|
|
101
|
+
});
|
|
102
|
+
const opened = (canary) => ({
|
|
103
|
+
opened: true,
|
|
104
|
+
app: canary ? "HyperFrames Canary" : "the HyperFrames desktop app",
|
|
105
|
+
handedOver: leaveHandoff(dir, agentSession(env))
|
|
106
|
+
});
|
|
107
|
+
if (!ready) return notOpened("handoff-unavailable");
|
|
108
|
+
if (platform === "darwin") {
|
|
109
|
+
const bundleId = DESKTOP_BUNDLE_IDS.find((id) => open(id, dir));
|
|
110
|
+
if (!bundleId) return notOpened(installed() ? "open-failed" : "not-installed");
|
|
111
|
+
return opened(bundleId.endsWith(".canary"));
|
|
112
|
+
}
|
|
113
|
+
const apps = desktopApps({ platform, env, ...where });
|
|
114
|
+
if (!apps) return notOpened("unsupported-platform");
|
|
115
|
+
if (!apps.length) return notOpened("not-installed");
|
|
116
|
+
const app = apps.find(({ executable }) => launch(executable, dir));
|
|
117
|
+
return app ? opened(app.canary) : notOpened("open-failed");
|
|
118
|
+
}
|
|
119
|
+
function openCommandFor(dir, cwd = process.cwd()) {
|
|
120
|
+
const shown = relative(cwd, dir) || ".";
|
|
121
|
+
return `hyperframes open ${/\s/.test(shown) ? JSON.stringify(shown) : shown}`;
|
|
122
|
+
}
|
|
123
|
+
var spotlightFinds = (bundleId) => spawnSync("mdfind", [`kMDItemCFBundleIdentifier == '${bundleId}'`], { encoding: "utf8" }).stdout?.split("\n").some((path) => path.endsWith(".app") && !basename(path).startsWith(".")) ?? false;
|
|
124
|
+
function desktopInstalled({
|
|
125
|
+
spotlight = spotlightFinds,
|
|
126
|
+
...where
|
|
127
|
+
} = {}) {
|
|
128
|
+
const { platform = process.platform, home = homedir(), exists = existsSync } = where;
|
|
129
|
+
if (platform !== "darwin") return (desktopApps(where)?.length ?? 0) > 0;
|
|
130
|
+
const folders = ["/Applications", join(home, "Applications")];
|
|
131
|
+
if (folders.some((folder) => DESKTOP_APP_NAMES.some((name) => exists(join(folder, name)))))
|
|
132
|
+
return true;
|
|
133
|
+
return DESKTOP_BUNDLE_IDS.some(spotlight);
|
|
134
|
+
}
|
|
135
|
+
function desktopHint(dir, {
|
|
136
|
+
env = process.env,
|
|
137
|
+
ready = HANDOFF_READY,
|
|
138
|
+
installed,
|
|
139
|
+
platform = process.platform
|
|
140
|
+
} = {}) {
|
|
141
|
+
if (env.HYPERFRAMES_DESKTOP_PROJECT) return null;
|
|
142
|
+
if (ready && (installed ?? desktopInstalled({ platform, env })))
|
|
143
|
+
return `Keep editing by chatting with Framey in the desktop app: ${openCommandFor(dir)}`;
|
|
144
|
+
const url = desktopDownloadUrl(platform);
|
|
145
|
+
return url ? downloadHint(url) : null;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
export {
|
|
149
|
+
desktopDownloadUrl,
|
|
150
|
+
downloadHint,
|
|
151
|
+
HANDOFF_READY,
|
|
152
|
+
openInDesktop,
|
|
153
|
+
desktopInstalled,
|
|
154
|
+
desktopHint
|
|
155
|
+
};
|
|
@@ -6,24 +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-TAVCXJDZ.js";
|
|
10
10
|
import {
|
|
11
11
|
resolveProject
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-5WAPJM7Q.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-2X6IXODS.js";
|
|
20
20
|
import {
|
|
21
21
|
launchManagedBrowser,
|
|
22
22
|
resolveManagedGpuMode
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-PLQ4HJOO.js";
|
|
24
24
|
import {
|
|
25
25
|
resolveDiagnosticNavigationTimeoutMs
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-LHUITV7D.js";
|
|
27
27
|
import {
|
|
28
28
|
c
|
|
29
29
|
} from "./chunk-ZTZA4UWZ.js";
|
|
@@ -37,7 +37,7 @@ import {
|
|
|
37
37
|
import {
|
|
38
38
|
printDeprecationNotice,
|
|
39
39
|
withMeta
|
|
40
|
-
} from "./chunk-
|
|
40
|
+
} from "./chunk-HQWCFX5E.js";
|
|
41
41
|
import {
|
|
42
42
|
normalizeErrorMessage
|
|
43
43
|
} from "./chunk-KNU5COPB.js";
|
|
@@ -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-534QUPGQ.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-WEETQ4CZ.js");
|
|
696
|
+
const { assertWebGpuAdapterAvailable, compositionRequiresWebGpu, resolveLocalBrowserGpuMode } = await import("./gpuPolicy-NTPPP3CY.js");
|
|
697
697
|
const html = await bundleProjectHtml(projectDir);
|
|
698
698
|
const server = await serveStaticProjectHtml(
|
|
699
699
|
projectDir,
|
|
@@ -7,7 +7,6 @@ var __dirname = __hf_dirname(__filename);
|
|
|
7
7
|
import {
|
|
8
8
|
FEEDBACK_EMAIL_ENV
|
|
9
9
|
} from "./chunk-IGLEPPTN.js";
|
|
10
|
-
import "./chunk-M2WBOQ2Q.js";
|
|
11
10
|
|
|
12
11
|
// src/utils/dotEnv.ts
|
|
13
12
|
function valueOf(raw) {
|
|
@@ -31,9 +30,10 @@ function applyDotEnv(content, env) {
|
|
|
31
30
|
for (const entry of content.split("\n").map(entryOf)) {
|
|
32
31
|
if (!entry) continue;
|
|
33
32
|
const [key, value] = entry;
|
|
34
|
-
if (key && key !== FEEDBACK_EMAIL_ENV && !(key in env)) env[key] = value;
|
|
33
|
+
if (key && key.toUpperCase() !== FEEDBACK_EMAIL_ENV && !(key in env)) env[key] = value;
|
|
35
34
|
}
|
|
36
35
|
}
|
|
36
|
+
|
|
37
37
|
export {
|
|
38
38
|
applyDotEnv
|
|
39
39
|
};
|
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
} from "./chunk-ZTZA4UWZ.js";
|
|
13
13
|
import {
|
|
14
14
|
getSystemMeta
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-E5BAQVYP.js";
|
|
16
16
|
import {
|
|
17
17
|
getInvocationId
|
|
18
18
|
} from "./chunk-54HJ63Q2.js";
|
|
@@ -23,7 +23,7 @@ import {
|
|
|
23
23
|
evaluateCanary,
|
|
24
24
|
findCanary,
|
|
25
25
|
parseCanaryOverride
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-LVXNXV7G.js";
|
|
27
27
|
import {
|
|
28
28
|
hostAnswers
|
|
29
29
|
} from "./chunk-K4WIOZFP.js";
|
|
@@ -37,7 +37,7 @@ import {
|
|
|
37
37
|
} from "./chunk-XUXGIA7H.js";
|
|
38
38
|
import {
|
|
39
39
|
VERSION
|
|
40
|
-
} from "./chunk-
|
|
40
|
+
} from "./chunk-SR2PZ7YB.js";
|
|
41
41
|
|
|
42
42
|
// src/telemetry/transport.ts
|
|
43
43
|
import { spawn } from "child_process";
|
|
@@ -20,7 +20,7 @@ import {
|
|
|
20
20
|
typeDirPath,
|
|
21
21
|
updateRecord,
|
|
22
22
|
withFigmaErrors
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-CSACVU42.js";
|
|
24
24
|
import {
|
|
25
25
|
defineCommand
|
|
26
26
|
} from "./chunk-S3S4TGEH.js";
|
|
@@ -221,7 +221,7 @@ var asset_default = defineCommand({
|
|
|
221
221
|
rendered > 0 ? `(${results.length} nodes, ${rendered} rendered in 1 figma request)` : `(${results.length} nodes, all reused from cache \u2014 no figma request)`
|
|
222
222
|
);
|
|
223
223
|
}
|
|
224
|
-
const { trackFigmaImport } = await import("./telemetry-
|
|
224
|
+
const { trackFigmaImport } = await import("./telemetry-XYNKPYSU.js");
|
|
225
225
|
trackFigmaImport({
|
|
226
226
|
phase: "asset",
|
|
227
227
|
reused: results.every((r) => r.reused),
|
|
@@ -6,7 +6,7 @@ var __filename = __hf_fileURLToPath(import.meta.url);
|
|
|
6
6
|
var __dirname = __hf_dirname(__filename);
|
|
7
7
|
import {
|
|
8
8
|
resolveCaptureBrowserGpuMode
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-ZXKQI3CL.js";
|
|
10
10
|
import {
|
|
11
11
|
requestCliExit
|
|
12
12
|
} from "./chunk-PBN6GBJE.js";
|
|
@@ -8,10 +8,10 @@ import {
|
|
|
8
8
|
DEFAULT_VP9_CPU_USED,
|
|
9
9
|
isHttpUrl,
|
|
10
10
|
runFfmpeg
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-CMH5CSTH.js";
|
|
12
12
|
import {
|
|
13
13
|
parseAnimatedGifMetadata
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-LVXNXV7G.js";
|
|
15
15
|
import {
|
|
16
16
|
parseHTML
|
|
17
17
|
} from "./chunk-GK4AIFIH.js";
|