hyperframes 0.8.123 → 0.8.125
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-IFW36THF.js} +14 -14
- package/dist/{animatedGifPrep-VHXPTSJL.js → animatedGifPrep-RWLNZGK4.js} +5 -5
- package/dist/{asset-KTRZSJ5R.js → asset-WMPG6T2H.js} +2 -2
- package/dist/{assetCataloger-NH6UQG4Y.js → assetCataloger-KJRYDRTK.js} +2 -2
- package/dist/{auth-T52MOHC7.js → auth-552SJTZY.js} +2 -2
- package/dist/{autoUpdate-EI6JX53V.js → autoUpdate-2EEU2WEN.js} +2 -2
- package/dist/{backgroundChecks-7N3FFYIV.js → backgroundChecks-EO47KLYR.js} +3 -3
- package/dist/backgroundChecksWorker.js +3 -3
- package/dist/{batchRender-JDH4PXPD.js → batchRender-ZKBWCNPW.js} +3 -3
- package/dist/{beats-TG2TOST6.js → beats-JSLKCIMO.js} +11 -11
- package/dist/{benchmark-WGXMGPUI.js → benchmark-4OITC52U.js} +11 -11
- package/dist/{browser-VMEADLNK.js → browser-7KKHZVZG.js} +8 -8
- package/dist/{bundleWithLocalizedFonts-EDBQ5EME.js → bundleWithLocalizedFonts-VYYJV4MC.js} +2 -2
- package/dist/{capture-UZFI2G65.js → capture-6OXDGVSK.js} +13 -18
- package/dist/{capture-22IWCYV2.js → capture-Q4HT2YI3.js} +2 -2
- package/dist/{catalog-3V4SSSYE.js → catalog-PZXB7JKY.js} +14 -14
- package/dist/{check-LTKOTPFI.js → check-O4VPFH7X.js} +30 -30
- package/dist/{checkBrowser-LTZPCRBO.js → checkBrowser-FKXDR2O3.js} +29 -29
- package/dist/{chunk-2QAAOW5T.js → chunk-2K3QXNHK.js} +1 -1
- package/dist/{chunk-KQ7BAEVP.js → chunk-6AGYEZQ7.js} +2 -2
- package/dist/{chunk-4TIUZ6Z7.js → chunk-75Z3SG7S.js} +2 -2
- package/dist/{chunk-HISVSZH7.js → chunk-AZP4Q3HX.js} +2 -2
- package/dist/{chunk-OCH6V4FB.js → chunk-BVC2TTOR.js} +2 -2
- package/dist/{chunk-MBSCHJQZ.js → chunk-CANIQ65S.js} +1 -1
- package/dist/{chunk-IOMMM4AX.js → chunk-CML2M4A5.js} +1 -1
- package/dist/{chunk-4XAAOWFC.js → chunk-CYILDWZD.js} +1 -1
- package/dist/{chunk-PQQZNS5K.js → chunk-CZBP6WD7.js} +1 -1
- package/dist/{chunk-ELHC6CLH.js → chunk-EJA7FDVA.js} +3 -3
- package/dist/{chunk-XIJTGR4O.js → chunk-EZ54IXGG.js} +1 -1
- package/dist/{chunk-DR7F77AN.js → chunk-FMTOCJN6.js} +1 -1
- package/dist/{chunk-IML47HIH.js → chunk-FWJDB65E.js} +7 -7
- package/dist/chunk-GULOKZLI.js +155 -0
- package/dist/{chunk-4EZKLNMD.js → chunk-HIPHGIMM.js} +1 -1
- package/dist/{chunk-BET5FXMM.js → chunk-HN63O2Y6.js} +1 -1
- package/dist/{chunk-SKZ6H3JT.js → chunk-HUJT2WV7.js} +1 -1
- package/dist/{chunk-EYNWMEWX.js → chunk-I33AB6HW.js} +9 -9
- package/dist/{chunk-XQSMY5HF.js → chunk-IBSKMPBO.js} +2 -2
- package/dist/{chunk-AICUP6TU.js → chunk-IJPINTW6.js} +1 -1
- package/dist/{chunk-RTINVJNS.js → chunk-IWF6XF2V.js} +1 -1
- package/dist/{chunk-Z3SUEG2T.js → chunk-JD6UVTTT.js} +5 -5
- package/dist/{chunk-ILOJE2TE.js → chunk-K4DH364E.js} +1 -1
- package/dist/{chunk-EJF6CESB.js → chunk-M4LHIME7.js} +1 -1
- package/dist/{chunk-24AS45UQ.js → chunk-MKTOQKW4.js} +71 -22
- package/dist/{dotEnv-AI4SYVTX.js → chunk-NGKM64BP.js} +2 -2
- package/dist/{chunk-E26WHQFM.js → chunk-NGQ5NP2Q.js} +2 -2
- package/dist/{chunk-7NWNDQID.js → chunk-OHE54L2X.js} +3 -3
- package/dist/{chunk-2FH6HOQ2.js → chunk-OJ3NJ54J.js} +1 -1
- package/dist/{chunk-CZRQH5SP.js → chunk-OLLALODH.js} +1 -1
- package/dist/{chunk-VEGNMQZI.js → chunk-PEOAH4LM.js} +2 -2
- package/dist/{chunk-RYP46ARK.js → chunk-QM7YQ35N.js} +1 -1
- package/dist/{chunk-GPUM6BRL.js → chunk-QV4PJ5EE.js} +1 -1
- package/dist/{chunk-UI2I6ZQE.js → chunk-RGDS435K.js} +1 -1
- package/dist/{chunk-3SHYUYXR.js → chunk-SBMSZEBS.js} +9 -9
- package/dist/{chunk-MUAFAG77.js → chunk-SD4TJSOZ.js} +4 -4
- package/dist/{chunk-QLKCB3NY.js → chunk-SDRIDMMN.js} +7 -7
- package/dist/{chunk-3V6V66SZ.js → chunk-T64K236B.js} +2 -2
- package/dist/{chunk-WAD4ACBZ.js → chunk-T7KM6AG5.js} +2 -2
- package/dist/{chunk-PUFPAYTJ.js → chunk-TSJNOSJF.js} +1 -1
- package/dist/{chunk-UMMVYWDI.js → chunk-WZQYKSDF.js} +5 -5
- package/dist/{chunk-73KPBRCO.js → chunk-Y6UZPO7H.js} +1 -1
- package/dist/{chunk-53IO4HLZ.js → chunk-YKSQOWAL.js} +31 -1
- package/dist/{chunk-S3JOM6L4.js → chunk-YVFBNUUH.js} +3 -3
- package/dist/{chunk-TLA5RBEB.js → chunk-ZGGEWKPA.js} +1 -1
- package/dist/{clean-YZQXCSXZ.js → clean-ZQ3QVGVU.js} +14 -14
- package/dist/cli.js +52 -52
- package/dist/{cloud-TYUXSEGA.js → cloud-E4GWT7KZ.js} +4 -4
- package/dist/{cloudrun-MA2JVRHV.js → cloudrun-RRNAJMHQ.js} +3 -3
- package/dist/{compare-6DSDY2IF.js → compare-4IMB3KDE.js} +24 -24
- package/dist/{compiler-4FHYKPNR.js → compiler-GM4XUGUA.js} +2 -2
- package/dist/{component-NY4JERQ5.js → component-ZIKBZXGS.js} +3 -3
- package/dist/{compositions-SI2SKZAF.js → compositions-DRFZ36DG.js} +10 -10
- package/dist/{delete-YU7XRF6M.js → delete-7LIHYMTQ.js} +2 -2
- package/dist/{dist-AMQZTIJP.js → dist-57EISMJZ.js} +2 -2
- package/dist/{doctor-MXX7AHXT.js → doctor-GVRY22DC.js} +9 -9
- package/dist/dotEnv-AECLXQSO.js +14 -0
- package/dist/{events-R5N3EVAF.js → events-P3XLY3QN.js} +7 -7
- package/dist/{events-LLCZN2LK.js → events-XHIAV6Q6.js} +8 -8
- package/dist/{feedback-MIZ3HJT4.js → feedback-I2IJMVE6.js} +9 -9
- package/dist/{figma-4ESVBLHH.js → figma-KXZD5OXU.js} +3 -3
- package/dist/fontLocalizeCli.js +7 -7
- package/dist/{get-OF3I77OW.js → get-3TF6CQRJ.js} +2 -2
- package/dist/{gpuPolicy-KDI7HVOA.js → gpuPolicy-GUILWNQI.js} +5 -5
- package/dist/{grade-compare-QXE4ZEZU.js → grade-compare-6A4MPRDT.js} +24 -24
- package/dist/{help-NFHZFSQN.js → help-P2LXSWPH.js} +2 -2
- package/dist/{history-DTRCFREW.js → history-TIEBO3TQ.js} +14 -14
- package/dist/hyperframe-runtime.js +45 -45
- package/dist/hyperframe.manifest.json +1 -1
- package/dist/hyperframe.runtime.iife.js +45 -45
- package/dist/hyperframes-player.global.js +1 -1
- package/dist/{info-KRDLMYKB.js → info-RDYN6M4J.js} +10 -10
- package/dist/{init-XTXSP6IU.js → init-FWKYWNED.js} +21 -21
- package/dist/{inspect-KH3CTX62.js → inspect-4X3GCH7D.js} +25 -25
- package/dist/{installer-M5OHZ3QU.js → installer-HBBKRFDP.js} +4 -4
- package/dist/{keyframes-K5UWQDSW.js → keyframes-7D4TUZZ2.js} +11 -11
- package/dist/{lambda-PXGK25LH.js → lambda-AYYSPAYH.js} +4 -4
- package/dist/{layout-SYWCNF2S.js → layout-J2IBMYTZ.js} +25 -25
- package/dist/{lint-A5W6BCKC.js → lint-H7QFZNTA.js} +11 -11
- package/dist/{list-CXWE53HJ.js → list-SPHCGWNR.js} +2 -2
- package/dist/{login-WUPTUIG2.js → login-A4GMDPEZ.js} +4 -4
- package/dist/{media-treatment-INJWEP6H.js → media-treatment-QOA3QGWO.js} +11 -11
- package/dist/{models-D5CMY6VB.js → models-ZDGTC4SZ.js} +6 -6
- package/dist/{motionShot-HS4M4WOQ.js → motionShot-QS5SVOHF.js} +11 -11
- package/dist/{normalize-audio-ILF3IDZC.js → normalize-audio-OPQAYTZV.js} +10 -10
- package/dist/{open-4V3RXCR6.js → open-UKGA7TPU.js} +18 -18
- package/dist/{pipeline-CPGRA375.js → pipeline-G5NLBVNJ.js} +5 -5
- package/dist/{play-IFATKPFL.js → play-C7GBF6WB.js} +19 -19
- package/dist/{preflight-IQEYFD33.js → preflight-DIJQBGM4.js} +6 -6
- package/dist/{present-A3EXMPEB.js → present-DWKHRNIC.js} +15 -15
- package/dist/{preview-6OFPNSRQ.js → preview-FGLYZD5S.js} +17 -17
- package/dist/{producer-T4HGO327.js → producer-NP2763FP.js} +1 -1
- package/dist/{projectConfig-VKUAJTKN.js → projectConfig-MVB3R3H4.js} +6 -6
- package/dist/{publication-EYW5DW5Q.js → publication-UBT6VC5K.js} +2 -2
- package/dist/{publish-7N3KAN23.js → publish-EP4CNDPL.js} +7 -7
- package/dist/{remove-background-76NDLWX2.js → remove-background-BSWFZHW3.js} +6 -6
- package/dist/{render-FVVTP6IC.js → render-4BL4C55X.js} +11 -11
- package/dist/{render-WWSM5VDX.js → render-4Q23SIOZ.js} +3 -3
- package/dist/{render-SGKRP4OI.js → render-I3S3XTXQ.js} +22 -22
- package/dist/{render-batch-UHVLIDQ6.js → render-batch-6MCTZTJR.js} +3 -3
- package/dist/{renderCancellation-TZ2YQXLI.js → renderCancellation-N3E4RU7B.js} +5 -5
- package/dist/{resolver-BERTN5TY.js → resolver-2D5RWIQP.js} +4 -4
- package/dist/{sherpa-WAI3BU35.js → sherpa-XLMKWU7U.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-HIHYTIAV.js} +10 -10
- package/dist/{skillsUpdateCheck-GPLLGZTN.js → skillsUpdateCheck-5YHBTQ6C.js} +3 -3
- package/dist/{snapshot-XPPNHMIG.js → snapshot-OHAYOW4C.js} +25 -25
- package/dist/{src-K6L2URKG.js → src-ESCXJW7I.js} +4 -4
- package/dist/{src-6ZDBAHYH.js → src-IXQPVJNK.js} +6 -6
- package/dist/{staticProjectServer-ETIXS3GJ.js → staticProjectServer-BP5PM77J.js} +13 -13
- package/dist/{status-P2I66DU7.js → status-BB22DSC3.js} +5 -5
- package/dist/studio/assets/{hyperframes-player-yABdb6yk.js → hyperframes-player-CmIh-wq9.js} +1 -1
- package/dist/studio/assets/{index-D77MIjSJ.js → index-4LRR6o2F.js} +1 -1
- package/dist/studio/assets/{index-Dt7lWtY7.js → index-CrYoEZ5p.js} +139 -139
- package/dist/studio/assets/{index-LrNlT5Tg.css → index-D11atkBt.css} +1 -1
- package/dist/studio/assets/{index-DWjF2Kxw.js → index-yCK8osBg.js} +1 -1
- package/dist/studio/index.d.ts +43 -35
- package/dist/studio/index.html +2 -2
- package/dist/studio/index.js +283 -143
- package/dist/studio/index.js.map +1 -1
- package/dist/studio/styles.css +1 -1
- package/dist/{studio-api-PTVN2GZ5.js → studio-api-MPH3F7Y5.js} +7 -7
- package/dist/{studioServer-55366NG4.js → studioServer-JD5KIYR6.js} +49 -42
- package/dist/{system-M44QRAAZ.js → system-JPG4ILMN.js} +5 -5
- package/dist/{telemetry-6GQL3BIP.js → telemetry-VP5MPNOI.js} +8 -8
- package/dist/{timeline-NMG3JG3V.js → timeline-TKJJ7RHM.js} +14 -14
- package/dist/{tokens-5LYIBBEF.js → tokens-DRCIONI6.js} +2 -2
- package/dist/{transcribe-4DGPFZTU.js → transcribe-7TASY37D.js} +11 -11
- package/dist/{transcribe-3SONDYLT.js → transcribe-ZOGMUKWL.js} +6 -6
- package/dist/{updateCheck-CXNND3CL.js → updateCheck-G5JNP5U5.js} +2 -2
- package/dist/{upgrade-RFTKDIVZ.js → upgrade-B2IT4JO4.js} +2 -2
- package/dist/{urlDownloader-VRZX26OK.js → urlDownloader-VQNIYP7Y.js} +4 -4
- package/dist/{validate-3BFHVVZH.js → validate-ENFIOU6R.js} +15 -15
- package/dist/{video-ECPRKRRP.js → video-MJBFMRFI.js} +5 -5
- package/package.json +1 -1
- package/dist/chunk-AMV2OPXR.js +0 -82
|
@@ -9,10 +9,10 @@ import {
|
|
|
9
9
|
} from "./chunk-WBLXWOYK.js";
|
|
10
10
|
import {
|
|
11
11
|
loadProducer
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-HIPHGIMM.js";
|
|
13
13
|
import {
|
|
14
14
|
trackLintRun
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-6AGYEZQ7.js";
|
|
16
16
|
import {
|
|
17
17
|
assertionTargets,
|
|
18
18
|
buildLayoutSampleTimes,
|
|
@@ -27,36 +27,36 @@ import {
|
|
|
27
27
|
mergeSampleTimes,
|
|
28
28
|
parseAt,
|
|
29
29
|
readMotionSpec
|
|
30
|
-
} from "./chunk-
|
|
31
|
-
import "./chunk-
|
|
30
|
+
} from "./chunk-SBMSZEBS.js";
|
|
31
|
+
import "./chunk-EJA7FDVA.js";
|
|
32
32
|
import "./chunk-XUHOIDKG.js";
|
|
33
33
|
import "./chunk-X7MTZ4T2.js";
|
|
34
|
-
import "./chunk-
|
|
34
|
+
import "./chunk-AZP4Q3HX.js";
|
|
35
35
|
import {
|
|
36
36
|
resolveProject
|
|
37
|
-
} from "./chunk-
|
|
38
|
-
import "./chunk-
|
|
37
|
+
} from "./chunk-RGDS435K.js";
|
|
38
|
+
import "./chunk-JD6UVTTT.js";
|
|
39
39
|
import "./chunk-5Z63TBTX.js";
|
|
40
|
-
import "./chunk-
|
|
41
|
-
import "./chunk-
|
|
40
|
+
import "./chunk-HUJT2WV7.js";
|
|
41
|
+
import "./chunk-2K3QXNHK.js";
|
|
42
42
|
import "./chunk-YEIFI443.js";
|
|
43
43
|
import "./chunk-IHFUKJOR.js";
|
|
44
|
-
import "./chunk-
|
|
45
|
-
import "./chunk-
|
|
44
|
+
import "./chunk-MKTOQKW4.js";
|
|
45
|
+
import "./chunk-BVC2TTOR.js";
|
|
46
46
|
import "./chunk-EOVYQ3IG.js";
|
|
47
|
-
import "./chunk-
|
|
48
|
-
import "./chunk-
|
|
47
|
+
import "./chunk-CML2M4A5.js";
|
|
48
|
+
import "./chunk-QV4PJ5EE.js";
|
|
49
49
|
import {
|
|
50
50
|
resolveLocalBrowserGpuMode
|
|
51
|
-
} from "./chunk-
|
|
51
|
+
} from "./chunk-CYILDWZD.js";
|
|
52
52
|
import "./chunk-PFCFR3KZ.js";
|
|
53
|
-
import "./chunk-
|
|
53
|
+
import "./chunk-CANIQ65S.js";
|
|
54
54
|
import "./chunk-XT7X6QCP.js";
|
|
55
55
|
import "./chunk-4YYJOFKS.js";
|
|
56
56
|
import "./chunk-HVW7ABXD.js";
|
|
57
|
-
import "./chunk-
|
|
58
|
-
import "./chunk-
|
|
59
|
-
import "./chunk-
|
|
57
|
+
import "./chunk-HN63O2Y6.js";
|
|
58
|
+
import "./chunk-NGQ5NP2Q.js";
|
|
59
|
+
import "./chunk-EZ54IXGG.js";
|
|
60
60
|
import "./chunk-AWDFDFI3.js";
|
|
61
61
|
import "./chunk-P6LJ4Y32.js";
|
|
62
62
|
import "./chunk-GMECXFAN.js";
|
|
@@ -64,13 +64,13 @@ import "./chunk-NSVHO5LZ.js";
|
|
|
64
64
|
import {
|
|
65
65
|
trackCheckReport,
|
|
66
66
|
trackCommandFailure
|
|
67
|
-
} from "./chunk-
|
|
68
|
-
import "./chunk-
|
|
67
|
+
} from "./chunk-OHE54L2X.js";
|
|
68
|
+
import "./chunk-YVFBNUUH.js";
|
|
69
69
|
import "./chunk-VWG7OQKU.js";
|
|
70
70
|
import {
|
|
71
71
|
c
|
|
72
72
|
} from "./chunk-ZTZA4UWZ.js";
|
|
73
|
-
import "./chunk-
|
|
73
|
+
import "./chunk-K4DH364E.js";
|
|
74
74
|
import "./chunk-AMKC3AXA.js";
|
|
75
75
|
import {
|
|
76
76
|
defineCommand,
|
|
@@ -87,12 +87,12 @@ import "./chunk-TJSTGSAW.js";
|
|
|
87
87
|
import {
|
|
88
88
|
extractMediaMetadata,
|
|
89
89
|
findHdrAutoPromotion
|
|
90
|
-
} from "./chunk-
|
|
91
|
-
import "./chunk-
|
|
90
|
+
} from "./chunk-T7KM6AG5.js";
|
|
91
|
+
import "./chunk-ZGGEWKPA.js";
|
|
92
92
|
import "./chunk-F7MXHGU3.js";
|
|
93
93
|
import "./chunk-DPVXBVLL.js";
|
|
94
|
-
import "./chunk-
|
|
95
|
-
import "./chunk-
|
|
94
|
+
import "./chunk-QM7YQ35N.js";
|
|
95
|
+
import "./chunk-YKSQOWAL.js";
|
|
96
96
|
import "./chunk-VC76R6W2.js";
|
|
97
97
|
import "./chunk-OFQWTKPW.js";
|
|
98
98
|
import "./chunk-Q5X2B5WT.js";
|
|
@@ -109,12 +109,12 @@ import "./chunk-GK4AIFIH.js";
|
|
|
109
109
|
import "./chunk-2PSPARWP.js";
|
|
110
110
|
import {
|
|
111
111
|
withMeta
|
|
112
|
-
} from "./chunk-
|
|
112
|
+
} from "./chunk-OLLALODH.js";
|
|
113
113
|
import "./chunk-K4WIOZFP.js";
|
|
114
114
|
import "./chunk-XUXGIA7H.js";
|
|
115
115
|
import "./chunk-WERLJGIC.js";
|
|
116
116
|
import "./chunk-ISN5GRYI.js";
|
|
117
|
-
import "./chunk-
|
|
117
|
+
import "./chunk-IBSKMPBO.js";
|
|
118
118
|
import {
|
|
119
119
|
normalizeErrorMessage
|
|
120
120
|
} from "./chunk-KNU5COPB.js";
|
|
@@ -129,7 +129,7 @@ import { join, relative } from "path";
|
|
|
129
129
|
|
|
130
130
|
// src/utils/hdrPromotion.ts
|
|
131
131
|
async function bundleProjectHtml(projectDir) {
|
|
132
|
-
const { bundleToSingleHtml } = await import("./compiler-
|
|
132
|
+
const { bundleToSingleHtml } = await import("./compiler-GM4XUGUA.js");
|
|
133
133
|
return bundleToSingleHtml(projectDir);
|
|
134
134
|
}
|
|
135
135
|
async function collectBundledRenderMedia(html) {
|
|
@@ -1247,7 +1247,7 @@ function resolveMotionSpec(projectDir) {
|
|
|
1247
1247
|
};
|
|
1248
1248
|
}
|
|
1249
1249
|
async function runBrowserCheck(project, options, motion) {
|
|
1250
|
-
const module = await import("./checkBrowser-
|
|
1250
|
+
const module = await import("./checkBrowser-FKXDR2O3.js");
|
|
1251
1251
|
return module.runBrowserCheck(project, options, motion, runAuditGrid);
|
|
1252
1252
|
}
|
|
1253
1253
|
async function writeSnapshot(projectDir, index, time, pngBase64) {
|
|
@@ -1259,7 +1259,7 @@ async function writeSnapshot(projectDir, index, time, pngBase64) {
|
|
|
1259
1259
|
return join("snapshots", filename);
|
|
1260
1260
|
}
|
|
1261
1261
|
async function captureFindingCrops(project, options, requests) {
|
|
1262
|
-
const module = await import("./checkBrowser-
|
|
1262
|
+
const module = await import("./checkBrowser-FKXDR2O3.js");
|
|
1263
1263
|
return module.captureFindingCrops(project, options, requests);
|
|
1264
1264
|
}
|
|
1265
1265
|
var DEFAULT_DEPENDENCIES2 = {
|
|
@@ -8,21 +8,21 @@ import {
|
|
|
8
8
|
auditClipDurations,
|
|
9
9
|
shouldIgnoreHttpError,
|
|
10
10
|
shouldIgnoreRequestFailure
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-I33AB6HW.js";
|
|
12
12
|
import {
|
|
13
13
|
rectToBbox
|
|
14
14
|
} from "./chunk-WBLXWOYK.js";
|
|
15
15
|
import {
|
|
16
16
|
ambiguousIssue,
|
|
17
17
|
loadBrowserScript
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-SBMSZEBS.js";
|
|
19
19
|
import {
|
|
20
20
|
serveStaticProjectHtml
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-EJA7FDVA.js";
|
|
22
22
|
import "./chunk-XUHOIDKG.js";
|
|
23
23
|
import "./chunk-X7MTZ4T2.js";
|
|
24
|
-
import "./chunk-
|
|
25
|
-
import "./chunk-
|
|
24
|
+
import "./chunk-AZP4Q3HX.js";
|
|
25
|
+
import "./chunk-RGDS435K.js";
|
|
26
26
|
import {
|
|
27
27
|
AUDIT_SEEK_OPTIONS,
|
|
28
28
|
DEFAULT_ZOOM_PADDING_PX,
|
|
@@ -34,54 +34,54 @@ import {
|
|
|
34
34
|
resolveCliChromeGpuMode,
|
|
35
35
|
seekCompositionTimeline,
|
|
36
36
|
waitForPreferredSeekTarget
|
|
37
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-JD6UVTTT.js";
|
|
38
38
|
import "./chunk-5Z63TBTX.js";
|
|
39
|
-
import "./chunk-
|
|
40
|
-
import "./chunk-
|
|
39
|
+
import "./chunk-HUJT2WV7.js";
|
|
40
|
+
import "./chunk-2K3QXNHK.js";
|
|
41
41
|
import "./chunk-YEIFI443.js";
|
|
42
42
|
import "./chunk-IHFUKJOR.js";
|
|
43
|
-
import "./chunk-
|
|
44
|
-
import "./chunk-
|
|
43
|
+
import "./chunk-MKTOQKW4.js";
|
|
44
|
+
import "./chunk-BVC2TTOR.js";
|
|
45
45
|
import "./chunk-EOVYQ3IG.js";
|
|
46
|
-
import "./chunk-
|
|
46
|
+
import "./chunk-CML2M4A5.js";
|
|
47
47
|
import {
|
|
48
48
|
decideMediaProxyEligibility,
|
|
49
49
|
proxyVariantFor,
|
|
50
50
|
resolveProxy,
|
|
51
51
|
scanProjectMediaCodecMap
|
|
52
|
-
} from "./chunk-
|
|
53
|
-
import "./chunk-
|
|
52
|
+
} from "./chunk-QV4PJ5EE.js";
|
|
53
|
+
import "./chunk-CYILDWZD.js";
|
|
54
54
|
import "./chunk-PFCFR3KZ.js";
|
|
55
55
|
import {
|
|
56
56
|
resolveAutoProxy
|
|
57
|
-
} from "./chunk-
|
|
57
|
+
} from "./chunk-CANIQ65S.js";
|
|
58
58
|
import "./chunk-XT7X6QCP.js";
|
|
59
59
|
import "./chunk-4YYJOFKS.js";
|
|
60
60
|
import "./chunk-HVW7ABXD.js";
|
|
61
|
-
import "./chunk-
|
|
62
|
-
import "./chunk-
|
|
63
|
-
import "./chunk-
|
|
61
|
+
import "./chunk-HN63O2Y6.js";
|
|
62
|
+
import "./chunk-NGQ5NP2Q.js";
|
|
63
|
+
import "./chunk-EZ54IXGG.js";
|
|
64
64
|
import "./chunk-AWDFDFI3.js";
|
|
65
65
|
import "./chunk-P6LJ4Y32.js";
|
|
66
66
|
import "./chunk-GMECXFAN.js";
|
|
67
67
|
import "./chunk-NSVHO5LZ.js";
|
|
68
|
-
import "./chunk-
|
|
69
|
-
import "./chunk-
|
|
68
|
+
import "./chunk-OHE54L2X.js";
|
|
69
|
+
import "./chunk-YVFBNUUH.js";
|
|
70
70
|
import "./chunk-VWG7OQKU.js";
|
|
71
71
|
import "./chunk-ZTZA4UWZ.js";
|
|
72
|
-
import "./chunk-
|
|
72
|
+
import "./chunk-K4DH364E.js";
|
|
73
73
|
import "./chunk-AMKC3AXA.js";
|
|
74
74
|
import "./chunk-S3S4TGEH.js";
|
|
75
75
|
import "./chunk-54HJ63Q2.js";
|
|
76
76
|
import "./chunk-PBN6GBJE.js";
|
|
77
77
|
import "./chunk-KC5XXX3X.js";
|
|
78
78
|
import "./chunk-TJSTGSAW.js";
|
|
79
|
-
import "./chunk-
|
|
80
|
-
import "./chunk-
|
|
79
|
+
import "./chunk-T7KM6AG5.js";
|
|
80
|
+
import "./chunk-ZGGEWKPA.js";
|
|
81
81
|
import "./chunk-F7MXHGU3.js";
|
|
82
82
|
import "./chunk-DPVXBVLL.js";
|
|
83
|
-
import "./chunk-
|
|
84
|
-
import "./chunk-
|
|
83
|
+
import "./chunk-QM7YQ35N.js";
|
|
84
|
+
import "./chunk-YKSQOWAL.js";
|
|
85
85
|
import "./chunk-VC76R6W2.js";
|
|
86
86
|
import "./chunk-OFQWTKPW.js";
|
|
87
87
|
import "./chunk-TWWSYAKJ.js";
|
|
@@ -91,12 +91,12 @@ import "./chunk-PJ3HDUCY.js";
|
|
|
91
91
|
import "./chunk-TQFG7HTI.js";
|
|
92
92
|
import "./chunk-GK4AIFIH.js";
|
|
93
93
|
import "./chunk-2PSPARWP.js";
|
|
94
|
-
import "./chunk-
|
|
94
|
+
import "./chunk-OLLALODH.js";
|
|
95
95
|
import "./chunk-K4WIOZFP.js";
|
|
96
96
|
import "./chunk-XUXGIA7H.js";
|
|
97
97
|
import "./chunk-WERLJGIC.js";
|
|
98
98
|
import "./chunk-ISN5GRYI.js";
|
|
99
|
-
import "./chunk-
|
|
99
|
+
import "./chunk-IBSKMPBO.js";
|
|
100
100
|
import {
|
|
101
101
|
normalizeErrorMessage
|
|
102
102
|
} from "./chunk-KNU5COPB.js";
|
|
@@ -139,7 +139,7 @@ async function preResolveHostileMediaProxies(projectDir, html, autoProxyOverride
|
|
|
139
139
|
);
|
|
140
140
|
}
|
|
141
141
|
async function runBrowserCheck(project, options, motion, runGrid) {
|
|
142
|
-
const { bundleWithLocalizedFonts } = await import("./bundleWithLocalizedFonts-
|
|
142
|
+
const { bundleWithLocalizedFonts } = await import("./bundleWithLocalizedFonts-VYYJV4MC.js");
|
|
143
143
|
const html = await bundleWithLocalizedFonts(project.dir);
|
|
144
144
|
await preResolveHostileMediaProxies(project.dir, html, options.autoProxy);
|
|
145
145
|
const server = await serveStaticProjectHtml(
|
|
@@ -166,7 +166,7 @@ async function runBrowserCheck(project, options, motion, runGrid) {
|
|
|
166
166
|
await waitForPreferredSeekTarget(page);
|
|
167
167
|
const rootAnchor = await resolveRootAnchor(page);
|
|
168
168
|
const launchSettleMs = Date.now() - launchSettleStart;
|
|
169
|
-
const { analyzeClipMediaFit } = await import("./src-
|
|
169
|
+
const { analyzeClipMediaFit } = await import("./src-ESCXJW7I.js");
|
|
170
170
|
for (const entry of await auditClipDurations(page, analyzeClipMediaFit, options.timeout)) {
|
|
171
171
|
drafts.push({ code: "clip_media_fit", severity: entry.level, message: entry.text, time: 0 });
|
|
172
172
|
}
|
|
@@ -186,7 +186,7 @@ async function runBrowserCheck(project, options, motion, runGrid) {
|
|
|
186
186
|
}
|
|
187
187
|
async function captureFindingCrops(project, options, requests) {
|
|
188
188
|
if (requests.length === 0) return [];
|
|
189
|
-
const { bundleWithLocalizedFonts } = await import("./bundleWithLocalizedFonts-
|
|
189
|
+
const { bundleWithLocalizedFonts } = await import("./bundleWithLocalizedFonts-VYYJV4MC.js");
|
|
190
190
|
const html = await bundleWithLocalizedFonts(project.dir);
|
|
191
191
|
const server = await serveStaticProjectHtml(
|
|
192
192
|
project.dir,
|
|
@@ -7,10 +7,10 @@ var __dirname = __hf_dirname(__filename);
|
|
|
7
7
|
import {
|
|
8
8
|
trackLintReport,
|
|
9
9
|
trackLintRuleStreak
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-OHE54L2X.js";
|
|
11
11
|
import {
|
|
12
12
|
shouldTrack
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-YVFBNUUH.js";
|
|
14
14
|
import {
|
|
15
15
|
LINT_RULE_COUNT,
|
|
16
16
|
LINT_RULE_GROUP_COUNTS
|
|
@@ -8,10 +8,10 @@ import {
|
|
|
8
8
|
DEFAULT_VP9_CPU_USED,
|
|
9
9
|
isHttpUrl,
|
|
10
10
|
runFfmpeg
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-T7KM6AG5.js";
|
|
12
12
|
import {
|
|
13
13
|
parseAnimatedGifMetadata
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-ZGGEWKPA.js";
|
|
15
15
|
import {
|
|
16
16
|
parseHTML
|
|
17
17
|
} from "./chunk-GK4AIFIH.js";
|
|
@@ -6,10 +6,10 @@ var __filename = __hf_fileURLToPath(import.meta.url);
|
|
|
6
6
|
var __dirname = __hf_dirname(__filename);
|
|
7
7
|
import {
|
|
8
8
|
getMimeType
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-MKTOQKW4.js";
|
|
10
10
|
import {
|
|
11
11
|
injectTagsAtHeadStart
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-YKSQOWAL.js";
|
|
13
13
|
|
|
14
14
|
// src/utils/compositionServer.ts
|
|
15
15
|
import { createHash } from "crypto";
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
isAllowedHtmlAttribute,
|
|
9
9
|
isSafeAttributeValue,
|
|
10
10
|
sanitizeRichTextChildren
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-ZGGEWKPA.js";
|
|
12
12
|
import {
|
|
13
13
|
removeElementWithGsapCascade
|
|
14
14
|
} from "./chunk-F7MXHGU3.js";
|
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
ensureHfIds,
|
|
18
18
|
mintHfId,
|
|
19
19
|
walkCompositionDescendants
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-QM7YQ35N.js";
|
|
21
21
|
import {
|
|
22
22
|
require_dist
|
|
23
23
|
} from "./chunk-N4RVOW43.js";
|
|
@@ -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-ESCXJW7I.js");
|
|
17
17
|
return resolveBrowserGpuMode(requestedMode, { chromePath });
|
|
18
18
|
}
|
|
19
19
|
|
|
@@ -7,7 +7,7 @@ var __dirname = __hf_dirname(__filename);
|
|
|
7
7
|
import {
|
|
8
8
|
getMimeType,
|
|
9
9
|
injectMediaCodecMapIntoHtml
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-MKTOQKW4.js";
|
|
11
11
|
import {
|
|
12
12
|
PROXY_VARIANT_CONFIG,
|
|
13
13
|
ProxyCapacityError,
|
|
@@ -18,10 +18,10 @@ import {
|
|
|
18
18
|
recordProxyRequest,
|
|
19
19
|
resolveProxy,
|
|
20
20
|
resolveProxyVariantRequest
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-QV4PJ5EE.js";
|
|
22
22
|
import {
|
|
23
23
|
resolveAutoProxy
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-CANIQ65S.js";
|
|
25
25
|
|
|
26
26
|
// src/utils/staticProjectServer.ts
|
|
27
27
|
import { createServer } from "http";
|
|
@@ -1278,7 +1278,7 @@ async function withFigmaErrors(command, fn) {
|
|
|
1278
1278
|
} catch (err) {
|
|
1279
1279
|
if (err instanceof Error) {
|
|
1280
1280
|
try {
|
|
1281
|
-
const { trackCommandFailure } = await import("./events-
|
|
1281
|
+
const { trackCommandFailure } = await import("./events-XHIAV6Q6.js");
|
|
1282
1282
|
trackCommandFailure(
|
|
1283
1283
|
command,
|
|
1284
1284
|
err,
|
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
EncoderInterruptedError,
|
|
18
18
|
encoderFailureError,
|
|
19
19
|
prepareAnimatedGifInputs
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-75Z3SG7S.js";
|
|
21
21
|
import {
|
|
22
22
|
createStudioPositionSeekReapplyScript
|
|
23
23
|
} from "./chunk-KC5XXX3X.js";
|
|
@@ -145,7 +145,7 @@ import {
|
|
|
145
145
|
validateEngineConfigSnapshot,
|
|
146
146
|
verifyDiskDrawElementSamples,
|
|
147
147
|
writeCapturedFrame
|
|
148
|
-
} from "./chunk-
|
|
148
|
+
} from "./chunk-T7KM6AG5.js";
|
|
149
149
|
import {
|
|
150
150
|
HF_VFX_ATTR,
|
|
151
151
|
MEDIA_START_BASIS_ATTR,
|
|
@@ -163,7 +163,7 @@ import {
|
|
|
163
163
|
resolveAbsoluteMediaStartSeconds,
|
|
164
164
|
resolveAuthoredTimingWindow,
|
|
165
165
|
toFps
|
|
166
|
-
} from "./chunk-
|
|
166
|
+
} from "./chunk-ZGGEWKPA.js";
|
|
167
167
|
import {
|
|
168
168
|
CANVAS_DIMENSIONS,
|
|
169
169
|
HTML_BODY_CSS_HEIGHT_FIRST_RE,
|
|
@@ -188,7 +188,7 @@ import {
|
|
|
188
188
|
inlineSubCompositions,
|
|
189
189
|
prepareFlattenedInnerRoot,
|
|
190
190
|
styleElementsFor
|
|
191
|
-
} from "./chunk-
|
|
191
|
+
} from "./chunk-QM7YQ35N.js";
|
|
192
192
|
import {
|
|
193
193
|
HF_COLOR_GRADING_ATTR,
|
|
194
194
|
MAX_AUDIO_GAIN,
|
|
@@ -209,7 +209,7 @@ import {
|
|
|
209
209
|
resolveNaturalMediaTimelineDurationFromValues,
|
|
210
210
|
shouldClampResolvedMediaDuration,
|
|
211
211
|
sourceTimeAt
|
|
212
|
-
} from "./chunk-
|
|
212
|
+
} from "./chunk-YKSQOWAL.js";
|
|
213
213
|
import {
|
|
214
214
|
chromeMajorCeiling
|
|
215
215
|
} from "./chunk-TWWSYAKJ.js";
|
|
@@ -14156,7 +14156,7 @@ function startServer(options = {}) {
|
|
|
14156
14156
|
});
|
|
14157
14157
|
async function shutdown(signal) {
|
|
14158
14158
|
log.info(`Received ${signal}, shutting down`);
|
|
14159
|
-
const { drainBrowserPool } = await import("./src-
|
|
14159
|
+
const { drainBrowserPool } = await import("./src-ESCXJW7I.js");
|
|
14160
14160
|
await drainBrowserPool().catch(() => {
|
|
14161
14161
|
});
|
|
14162
14162
|
const handle = await Promise.race([
|
|
@@ -15279,7 +15279,7 @@ async function buildLocalExecutionPlan(projectDir, config, executionPlanDir, opt
|
|
|
15279
15279
|
if (probeResult.fileServer) closeFileServerSafely(probeResult.fileServer, "plan", log);
|
|
15280
15280
|
if (probeResult.probeSession) {
|
|
15281
15281
|
try {
|
|
15282
|
-
const { closeCaptureSession: closeCaptureSession2 } = await import("./src-
|
|
15282
|
+
const { closeCaptureSession: closeCaptureSession2 } = await import("./src-ESCXJW7I.js");
|
|
15283
15283
|
await closeCaptureSession2(probeResult.probeSession);
|
|
15284
15284
|
} catch (err) {
|
|
15285
15285
|
log.warn("[plan] probe session close failed", {
|
|
@@ -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
|
+
};
|