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.
Files changed (161) hide show
  1. package/dist/{add-CJXLRVWK.js → add-KDN5JOAP.js} +14 -14
  2. package/dist/{animatedGifPrep-VHXPTSJL.js → animatedGifPrep-H6ZIMS3L.js} +5 -5
  3. package/dist/{asset-KTRZSJ5R.js → asset-EJFBLFOA.js} +2 -2
  4. package/dist/{assetCataloger-NH6UQG4Y.js → assetCataloger-3Z4RUM5K.js} +2 -2
  5. package/dist/{auth-T52MOHC7.js → auth-QUOT4AVB.js} +2 -2
  6. package/dist/{autoUpdate-EI6JX53V.js → autoUpdate-LM6YIFM4.js} +2 -2
  7. package/dist/{backgroundChecks-7N3FFYIV.js → backgroundChecks-PZEX77KC.js} +3 -3
  8. package/dist/backgroundChecksWorker.js +3 -3
  9. package/dist/{batchRender-JDH4PXPD.js → batchRender-SYREZLNM.js} +3 -3
  10. package/dist/{beats-TG2TOST6.js → beats-GAROPWZX.js} +11 -11
  11. package/dist/{benchmark-WGXMGPUI.js → benchmark-R27INLK2.js} +11 -11
  12. package/dist/{browser-VMEADLNK.js → browser-UAMARUY3.js} +8 -8
  13. package/dist/{bundleWithLocalizedFonts-EDBQ5EME.js → bundleWithLocalizedFonts-SJFCS4WH.js} +2 -2
  14. package/dist/{capture-UZFI2G65.js → capture-42GHDJSH.js} +13 -18
  15. package/dist/{capture-22IWCYV2.js → capture-NT33PXQT.js} +2 -2
  16. package/dist/{catalog-3V4SSSYE.js → catalog-DDLMJXPU.js} +14 -14
  17. package/dist/{check-LTKOTPFI.js → check-IQJEGVTI.js} +30 -30
  18. package/dist/{checkBrowser-LTZPCRBO.js → checkBrowser-QDTOZNUM.js} +29 -29
  19. package/dist/{chunk-BET5FXMM.js → chunk-2C5KGTYX.js} +1 -1
  20. package/dist/{chunk-Z3SUEG2T.js → chunk-2X6IXODS.js} +5 -5
  21. package/dist/{chunk-KQ7BAEVP.js → chunk-4HC572SI.js} +2 -2
  22. package/dist/{chunk-MBSCHJQZ.js → chunk-5JLKZMCL.js} +1 -1
  23. package/dist/{chunk-MUAFAG77.js → chunk-5UQEHMDX.js} +4 -4
  24. package/dist/{chunk-UI2I6ZQE.js → chunk-5WAPJM7Q.js} +1 -1
  25. package/dist/{chunk-7NWNDQID.js → chunk-72BGWI35.js} +3 -3
  26. package/dist/{chunk-GPUM6BRL.js → chunk-73KQTPK5.js} +1 -1
  27. package/dist/{chunk-QLKCB3NY.js → chunk-AIAHR2KP.js} +7 -7
  28. package/dist/{chunk-EJF6CESB.js → chunk-AOJIC4Z6.js} +1 -1
  29. package/dist/{chunk-E26WHQFM.js → chunk-BDERXFDQ.js} +2 -2
  30. package/dist/{chunk-UMMVYWDI.js → chunk-BTJLBKJM.js} +5 -5
  31. package/dist/{chunk-WAD4ACBZ.js → chunk-CMH5CSTH.js} +2 -2
  32. package/dist/{chunk-EYNWMEWX.js → chunk-CQMEZZGB.js} +9 -9
  33. package/dist/{chunk-DR7F77AN.js → chunk-CSACVU42.js} +1 -1
  34. package/dist/{chunk-ILOJE2TE.js → chunk-E5BAQVYP.js} +1 -1
  35. package/dist/{chunk-53IO4HLZ.js → chunk-F6QGSVUR.js} +30 -0
  36. package/dist/{chunk-24AS45UQ.js → chunk-FFRD7C5Y.js} +71 -22
  37. package/dist/chunk-GULOKZLI.js +155 -0
  38. package/dist/{chunk-PQQZNS5K.js → chunk-HHUXXGXS.js} +1 -1
  39. package/dist/{chunk-CZRQH5SP.js → chunk-HQWCFX5E.js} +1 -1
  40. package/dist/{chunk-4EZKLNMD.js → chunk-JTOXXJ2V.js} +1 -1
  41. package/dist/{chunk-RYP46ARK.js → chunk-KAG5RIH3.js} +1 -1
  42. package/dist/{chunk-2QAAOW5T.js → chunk-LHUITV7D.js} +1 -1
  43. package/dist/{chunk-TLA5RBEB.js → chunk-LVXNXV7G.js} +1 -1
  44. package/dist/{chunk-XIJTGR4O.js → chunk-M73S37KU.js} +1 -1
  45. package/dist/{chunk-3SHYUYXR.js → chunk-N2NKZH5T.js} +9 -9
  46. package/dist/{dotEnv-AI4SYVTX.js → chunk-NGKM64BP.js} +2 -2
  47. package/dist/{chunk-S3JOM6L4.js → chunk-O2UUDQIA.js} +3 -3
  48. package/dist/{chunk-3V6V66SZ.js → chunk-ONB7D3WM.js} +2 -2
  49. package/dist/{chunk-PUFPAYTJ.js → chunk-ORICANJF.js} +1 -1
  50. package/dist/{chunk-SKZ6H3JT.js → chunk-PLQ4HJOO.js} +1 -1
  51. package/dist/{chunk-AICUP6TU.js → chunk-PSUC7UH5.js} +1 -1
  52. package/dist/{chunk-IOMMM4AX.js → chunk-RG4XNPAS.js} +1 -1
  53. package/dist/{chunk-2FH6HOQ2.js → chunk-RGAOEDD7.js} +1 -1
  54. package/dist/{chunk-4TIUZ6Z7.js → chunk-RPVBIUYA.js} +2 -2
  55. package/dist/{chunk-XQSMY5HF.js → chunk-SR2PZ7YB.js} +2 -2
  56. package/dist/{chunk-ELHC6CLH.js → chunk-TAVCXJDZ.js} +3 -3
  57. package/dist/{chunk-RTINVJNS.js → chunk-UB7TKYHI.js} +1 -1
  58. package/dist/{chunk-HISVSZH7.js → chunk-UZKSKWYC.js} +2 -2
  59. package/dist/{chunk-IML47HIH.js → chunk-VFCR64GO.js} +7 -7
  60. package/dist/{chunk-73KPBRCO.js → chunk-W777U57N.js} +1 -1
  61. package/dist/{chunk-OCH6V4FB.js → chunk-W7MBO3OA.js} +2 -2
  62. package/dist/{chunk-VEGNMQZI.js → chunk-WCO25Y7W.js} +2 -2
  63. package/dist/{chunk-4XAAOWFC.js → chunk-ZXKQI3CL.js} +1 -1
  64. package/dist/{clean-YZQXCSXZ.js → clean-JUJTGQLY.js} +14 -14
  65. package/dist/cli.js +52 -52
  66. package/dist/{cloud-TYUXSEGA.js → cloud-OTGRJ55X.js} +4 -4
  67. package/dist/{cloudrun-MA2JVRHV.js → cloudrun-MR2BDNIE.js} +3 -3
  68. package/dist/{compare-6DSDY2IF.js → compare-PI2BE6XG.js} +24 -24
  69. package/dist/{compiler-4FHYKPNR.js → compiler-534QUPGQ.js} +2 -2
  70. package/dist/{component-NY4JERQ5.js → component-23F5FX7F.js} +3 -3
  71. package/dist/{compositions-SI2SKZAF.js → compositions-QBMBMSWK.js} +10 -10
  72. package/dist/{delete-YU7XRF6M.js → delete-OWPF7ECQ.js} +2 -2
  73. package/dist/{dist-AMQZTIJP.js → dist-UBW5W3J6.js} +2 -2
  74. package/dist/{doctor-MXX7AHXT.js → doctor-ET66NXTR.js} +9 -9
  75. package/dist/dotEnv-AECLXQSO.js +14 -0
  76. package/dist/{events-R5N3EVAF.js → events-IF4ANAI4.js} +7 -7
  77. package/dist/{events-LLCZN2LK.js → events-YB7V7HKA.js} +8 -8
  78. package/dist/{feedback-MIZ3HJT4.js → feedback-BXKESP4T.js} +9 -9
  79. package/dist/{figma-4ESVBLHH.js → figma-HNCCW27E.js} +3 -3
  80. package/dist/fontLocalizeCli.js +7 -7
  81. package/dist/{get-OF3I77OW.js → get-BFS6LW4G.js} +2 -2
  82. package/dist/{gpuPolicy-KDI7HVOA.js → gpuPolicy-NTPPP3CY.js} +5 -5
  83. package/dist/{grade-compare-QXE4ZEZU.js → grade-compare-ZODD5CA2.js} +24 -24
  84. package/dist/{help-NFHZFSQN.js → help-PDKEUTLM.js} +2 -2
  85. package/dist/{history-DTRCFREW.js → history-DPCZXCFM.js} +14 -14
  86. package/dist/hyperframes-player.global.js +1 -1
  87. package/dist/{info-KRDLMYKB.js → info-BZBRLNDJ.js} +10 -10
  88. package/dist/{init-XTXSP6IU.js → init-24RQT53L.js} +21 -21
  89. package/dist/{inspect-KH3CTX62.js → inspect-UUJSVALX.js} +25 -25
  90. package/dist/{installer-M5OHZ3QU.js → installer-3MYH2BBT.js} +4 -4
  91. package/dist/{keyframes-K5UWQDSW.js → keyframes-ZBT47ZXP.js} +11 -11
  92. package/dist/{lambda-PXGK25LH.js → lambda-254KZLDB.js} +4 -4
  93. package/dist/{layout-SYWCNF2S.js → layout-D7VXT7ZZ.js} +25 -25
  94. package/dist/{lint-A5W6BCKC.js → lint-CIMEKZSB.js} +11 -11
  95. package/dist/{list-CXWE53HJ.js → list-WBRIEQZM.js} +2 -2
  96. package/dist/{login-WUPTUIG2.js → login-PBKOV6TK.js} +4 -4
  97. package/dist/{media-treatment-INJWEP6H.js → media-treatment-XIBOCHGF.js} +11 -11
  98. package/dist/{models-D5CMY6VB.js → models-7UT4RZUL.js} +6 -6
  99. package/dist/{motionShot-HS4M4WOQ.js → motionShot-WB7E5FU7.js} +11 -11
  100. package/dist/{normalize-audio-ILF3IDZC.js → normalize-audio-PMU2FXZA.js} +10 -10
  101. package/dist/{open-4V3RXCR6.js → open-AVSLHVOE.js} +18 -18
  102. package/dist/{pipeline-CPGRA375.js → pipeline-5E76S72B.js} +5 -5
  103. package/dist/{play-IFATKPFL.js → play-SVTXUB2Z.js} +19 -19
  104. package/dist/{preflight-IQEYFD33.js → preflight-LGJKUHUZ.js} +6 -6
  105. package/dist/{present-A3EXMPEB.js → present-NE6EYZY2.js} +15 -15
  106. package/dist/{preview-6OFPNSRQ.js → preview-4EGR22E3.js} +17 -17
  107. package/dist/{producer-T4HGO327.js → producer-2ZWSHMK3.js} +1 -1
  108. package/dist/{projectConfig-VKUAJTKN.js → projectConfig-VC5MAYSS.js} +6 -6
  109. package/dist/{publication-EYW5DW5Q.js → publication-YXOCJQ7B.js} +2 -2
  110. package/dist/{publish-7N3KAN23.js → publish-GTXVX6O4.js} +7 -7
  111. package/dist/{remove-background-76NDLWX2.js → remove-background-VOBXCXXJ.js} +6 -6
  112. package/dist/{render-SGKRP4OI.js → render-4PBKSNC3.js} +22 -22
  113. package/dist/{render-WWSM5VDX.js → render-BNUTBDFX.js} +3 -3
  114. package/dist/{render-FVVTP6IC.js → render-M446K7E4.js} +11 -11
  115. package/dist/{render-batch-UHVLIDQ6.js → render-batch-WJKUYKUZ.js} +3 -3
  116. package/dist/{renderCancellation-TZ2YQXLI.js → renderCancellation-QUEUCG6R.js} +5 -5
  117. package/dist/{resolver-BERTN5TY.js → resolver-3QPZA2X6.js} +4 -4
  118. package/dist/{sherpa-WAI3BU35.js → sherpa-LQHE6MT7.js} +6 -6
  119. package/dist/skills/hyperframes/SKILL.md +9 -0
  120. package/dist/skills/hyperframes/references/brief-contract.md +1 -1
  121. package/dist/skills/hyperframes/references/review-loop.md +1 -1
  122. package/dist/skills/hyperframes-cli/SKILL.md +2 -1
  123. package/dist/skills/media-use/audio/references/tts.md +24 -7
  124. package/dist/skills/media-use/audio/scripts/heygen-tts.mjs +3 -2
  125. package/dist/skills/media-use/audio/scripts/heygen-tts.test.mjs +38 -0
  126. package/dist/skills/media-use/audio/scripts/heygen-voice.mjs +98 -0
  127. package/dist/skills/media-use/audio/scripts/heygen-voice.test.mjs +233 -0
  128. package/dist/skills/media-use/audio/scripts/lib/heygen.mjs +19 -5
  129. package/dist/skills/media-use/audio/scripts/lib/heygen.test.mjs +17 -0
  130. package/dist/skills/media-use/audio/scripts/lib/tts.mjs +2 -2
  131. package/dist/{skills-4J56N4BF.js → skills-C6C23Z7M.js} +10 -10
  132. package/dist/{skillsUpdateCheck-GPLLGZTN.js → skillsUpdateCheck-MR5TXEAX.js} +3 -3
  133. package/dist/{snapshot-XPPNHMIG.js → snapshot-F5ZSC5FM.js} +25 -25
  134. package/dist/{src-6ZDBAHYH.js → src-HP5DTGMY.js} +6 -6
  135. package/dist/{src-K6L2URKG.js → src-WEETQ4CZ.js} +4 -4
  136. package/dist/{staticProjectServer-ETIXS3GJ.js → staticProjectServer-REKZ3KBB.js} +13 -13
  137. package/dist/{status-P2I66DU7.js → status-DKHWOUB4.js} +5 -5
  138. package/dist/studio/assets/{hyperframes-player-yABdb6yk.js → hyperframes-player-ColOZ_78.js} +1 -1
  139. package/dist/studio/assets/{index-Dt7lWtY7.js → index-BuSTrK-Z.js} +112 -112
  140. package/dist/studio/assets/{index-DWjF2Kxw.js → index-CVuUfURE.js} +1 -1
  141. package/dist/studio/assets/{index-LrNlT5Tg.css → index-D11atkBt.css} +1 -1
  142. package/dist/studio/assets/{index-D77MIjSJ.js → index-jQEqFKMk.js} +1 -1
  143. package/dist/studio/index.html +2 -2
  144. package/dist/studio/index.js +70 -49
  145. package/dist/studio/index.js.map +1 -1
  146. package/dist/studio/styles.css +1 -1
  147. package/dist/{studio-api-PTVN2GZ5.js → studio-api-SY5SFHZD.js} +7 -7
  148. package/dist/{studioServer-55366NG4.js → studioServer-2ZWULGC5.js} +49 -42
  149. package/dist/{system-M44QRAAZ.js → system-L7VMXFIG.js} +5 -5
  150. package/dist/{telemetry-6GQL3BIP.js → telemetry-XYNKPYSU.js} +8 -8
  151. package/dist/{timeline-NMG3JG3V.js → timeline-MYGD5OEC.js} +14 -14
  152. package/dist/{tokens-5LYIBBEF.js → tokens-6DZ73AXR.js} +2 -2
  153. package/dist/{transcribe-4DGPFZTU.js → transcribe-3BUOOE6P.js} +11 -11
  154. package/dist/{transcribe-3SONDYLT.js → transcribe-F4DDIZJO.js} +6 -6
  155. package/dist/{updateCheck-CXNND3CL.js → updateCheck-VH46SJ2X.js} +2 -2
  156. package/dist/{upgrade-RFTKDIVZ.js → upgrade-J4MZ4MLN.js} +2 -2
  157. package/dist/{urlDownloader-VRZX26OK.js → urlDownloader-PCRAON2D.js} +4 -4
  158. package/dist/{validate-3BFHVVZH.js → validate-BOYSXZFW.js} +15 -15
  159. package/dist/{video-ECPRKRRP.js → video-GL7ZDEFL.js} +5 -5
  160. package/package.json +1 -1
  161. package/dist/chunk-AMV2OPXR.js +0 -82
@@ -13,31 +13,31 @@ import {
13
13
  shouldIgnoreHttpError,
14
14
  shouldIgnoreRequestFailure,
15
15
  validate_default
16
- } from "./chunk-EYNWMEWX.js";
17
- import "./chunk-UI2I6ZQE.js";
18
- import "./chunk-Z3SUEG2T.js";
16
+ } from "./chunk-CQMEZZGB.js";
17
+ import "./chunk-5WAPJM7Q.js";
18
+ import "./chunk-2X6IXODS.js";
19
19
  import "./chunk-5Z63TBTX.js";
20
- import "./chunk-SKZ6H3JT.js";
21
- import "./chunk-2QAAOW5T.js";
20
+ import "./chunk-PLQ4HJOO.js";
21
+ import "./chunk-LHUITV7D.js";
22
22
  import "./chunk-YEIFI443.js";
23
23
  import "./chunk-IHFUKJOR.js";
24
- import "./chunk-4XAAOWFC.js";
24
+ import "./chunk-ZXKQI3CL.js";
25
25
  import "./chunk-PFCFR3KZ.js";
26
- import "./chunk-7NWNDQID.js";
27
- import "./chunk-S3JOM6L4.js";
26
+ import "./chunk-72BGWI35.js";
27
+ import "./chunk-O2UUDQIA.js";
28
28
  import "./chunk-VWG7OQKU.js";
29
29
  import "./chunk-ZTZA4UWZ.js";
30
- import "./chunk-ILOJE2TE.js";
30
+ import "./chunk-E5BAQVYP.js";
31
31
  import "./chunk-AMKC3AXA.js";
32
32
  import "./chunk-S3S4TGEH.js";
33
33
  import "./chunk-54HJ63Q2.js";
34
34
  import "./chunk-PBN6GBJE.js";
35
- import "./chunk-WAD4ACBZ.js";
36
- import "./chunk-TLA5RBEB.js";
35
+ import "./chunk-CMH5CSTH.js";
36
+ import "./chunk-LVXNXV7G.js";
37
37
  import "./chunk-F7MXHGU3.js";
38
38
  import "./chunk-DPVXBVLL.js";
39
- import "./chunk-RYP46ARK.js";
40
- import "./chunk-53IO4HLZ.js";
39
+ import "./chunk-KAG5RIH3.js";
40
+ import "./chunk-F6QGSVUR.js";
41
41
  import "./chunk-VC76R6W2.js";
42
42
  import "./chunk-OFQWTKPW.js";
43
43
  import "./chunk-TWWSYAKJ.js";
@@ -47,12 +47,12 @@ import "./chunk-PJ3HDUCY.js";
47
47
  import "./chunk-TQFG7HTI.js";
48
48
  import "./chunk-GK4AIFIH.js";
49
49
  import "./chunk-2PSPARWP.js";
50
- import "./chunk-CZRQH5SP.js";
50
+ import "./chunk-HQWCFX5E.js";
51
51
  import "./chunk-K4WIOZFP.js";
52
52
  import "./chunk-XUXGIA7H.js";
53
53
  import "./chunk-WERLJGIC.js";
54
54
  import "./chunk-ISN5GRYI.js";
55
- import "./chunk-XQSMY5HF.js";
55
+ import "./chunk-SR2PZ7YB.js";
56
56
  import "./chunk-KNU5COPB.js";
57
57
  import "./chunk-3GXQPCJC.js";
58
58
  import "./chunk-RQVDTPGD.js";
@@ -7,7 +7,7 @@ var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  CAPTURE_USER_AGENT,
9
9
  safeFetch
10
- } from "./chunk-PQQZNS5K.js";
10
+ } from "./chunk-HHUXXGXS.js";
11
11
  import {
12
12
  ensureCaptureDirSync
13
13
  } from "./chunk-MRF4AMKD.js";
@@ -18,12 +18,12 @@ import {
18
18
  import {
19
19
  setCommandExitCode
20
20
  } from "./chunk-PBN6GBJE.js";
21
- import "./chunk-WAD4ACBZ.js";
22
- import "./chunk-TLA5RBEB.js";
21
+ import "./chunk-CMH5CSTH.js";
22
+ import "./chunk-LVXNXV7G.js";
23
23
  import "./chunk-F7MXHGU3.js";
24
24
  import "./chunk-DPVXBVLL.js";
25
- import "./chunk-RYP46ARK.js";
26
- import "./chunk-53IO4HLZ.js";
25
+ import "./chunk-KAG5RIH3.js";
26
+ import "./chunk-F6QGSVUR.js";
27
27
  import "./chunk-VC76R6W2.js";
28
28
  import "./chunk-OFQWTKPW.js";
29
29
  import "./chunk-TWWSYAKJ.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hyperframes",
3
- "version": "0.8.123",
3
+ "version": "0.8.124",
4
4
  "description": "HyperFrames CLI — create, preview, and render HTML video compositions",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -1,82 +0,0 @@
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 { spawnSync } from "child_process";
10
- import { existsSync, mkdirSync, writeFileSync } from "fs";
11
- import { homedir } from "os";
12
- import { basename, join, relative } 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 DESKTOP_DOWNLOAD_URL = "https://hyperframes.dev/studio/download";
16
- var DOWNLOAD_HINT = `Edit it by chatting with Framey in HyperFrames Studio \u2192 ${DESKTOP_DOWNLOAD_URL}`;
17
- var HANDOFF_READY = false;
18
- var AGENT_HANDOFF_FILE = join(".hyperframes", "agent-handoff.json");
19
- function agentSession(env = process.env) {
20
- if (env.CLAUDE_CODE_SESSION_ID)
21
- return { engine: "claude", sessionId: env.CLAUDE_CODE_SESSION_ID };
22
- if (env.CODEX_THREAD_ID) return { engine: "codex", sessionId: env.CODEX_THREAD_ID };
23
- return null;
24
- }
25
- var openWithBundle = (bundleId, dir) => spawnSync("open", ["-b", bundleId, dir], { stdio: "ignore" }).status === 0;
26
- function leaveHandoff(dir, session) {
27
- if (!session) return null;
28
- try {
29
- mkdirSync(join(dir, ".hyperframes"), { recursive: true });
30
- writeFileSync(join(dir, AGENT_HANDOFF_FILE), JSON.stringify(session));
31
- return session;
32
- } catch {
33
- return null;
34
- }
35
- }
36
- function openInDesktop(dir, {
37
- ready = HANDOFF_READY,
38
- platform = process.platform,
39
- open = openWithBundle,
40
- installed = () => desktopInstalled({ platform }),
41
- env = process.env
42
- } = {}) {
43
- const notOpened = (reason) => ({ opened: false, reason, downloadUrl: DESKTOP_DOWNLOAD_URL });
44
- if (!ready) return notOpened("handoff-unavailable");
45
- if (platform !== "darwin") return notOpened("unsupported-platform");
46
- const bundleId = DESKTOP_BUNDLE_IDS.find((id) => open(id, dir));
47
- if (!bundleId) return notOpened(installed() ? "open-failed" : "not-installed");
48
- return { opened: true, bundleId, handedOver: leaveHandoff(dir, agentSession(env)) };
49
- }
50
- function openCommandFor(dir, cwd = process.cwd()) {
51
- const shown = relative(cwd, dir) || ".";
52
- return `hyperframes open ${/\s/.test(shown) ? JSON.stringify(shown) : shown}`;
53
- }
54
- var spotlightFinds = (bundleId) => spawnSync("mdfind", [`kMDItemCFBundleIdentifier == '${bundleId}'`], { encoding: "utf8" }).stdout?.split("\n").some((path) => path.endsWith(".app") && !basename(path).startsWith(".")) ?? false;
55
- function desktopInstalled({
56
- platform = process.platform,
57
- home = homedir(),
58
- exists = existsSync,
59
- spotlight = spotlightFinds
60
- } = {}) {
61
- if (platform !== "darwin") return false;
62
- const folders = ["/Applications", join(home, "Applications")];
63
- if (folders.some((folder) => DESKTOP_APP_NAMES.some((name) => exists(join(folder, name)))))
64
- return true;
65
- return DESKTOP_BUNDLE_IDS.some(spotlight);
66
- }
67
- function desktopHint(dir, {
68
- env = process.env,
69
- ready = HANDOFF_READY,
70
- installed
71
- } = {}) {
72
- if (env.HYPERFRAMES_DESKTOP_PROJECT) return null;
73
- return ready && (installed ?? desktopInstalled()) ? `Edit it with Framey: ${openCommandFor(dir)}` : DOWNLOAD_HINT;
74
- }
75
-
76
- export {
77
- DESKTOP_DOWNLOAD_URL,
78
- DOWNLOAD_HINT,
79
- HANDOFF_READY,
80
- openInDesktop,
81
- desktopHint
82
- };