termcast 1.3.21 → 1.3.25

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 (429) hide show
  1. package/dist/ai.d.ts +104 -0
  2. package/dist/ai.d.ts.map +1 -0
  3. package/dist/ai.js +135 -0
  4. package/dist/ai.js.map +1 -0
  5. package/dist/apis/browser-extension.d.ts +18 -0
  6. package/dist/apis/browser-extension.d.ts.map +1 -0
  7. package/dist/apis/browser-extension.js +14 -0
  8. package/dist/apis/browser-extension.js.map +1 -0
  9. package/dist/apis/localstorage.d.ts.map +1 -1
  10. package/dist/apis/localstorage.js +4 -7
  11. package/dist/apis/localstorage.js.map +1 -1
  12. package/dist/apis/oauth.d.ts.map +1 -1
  13. package/dist/apis/oauth.js +5 -1
  14. package/dist/apis/oauth.js.map +1 -1
  15. package/dist/apis/preferences.d.ts.map +1 -1
  16. package/dist/apis/preferences.js +38 -19
  17. package/dist/apis/preferences.js.map +1 -1
  18. package/dist/apis/toast.d.ts +5 -0
  19. package/dist/apis/toast.d.ts.map +1 -1
  20. package/dist/apis/toast.js +7 -43
  21. package/dist/apis/toast.js.map +1 -1
  22. package/dist/build.d.ts.map +1 -1
  23. package/dist/build.js +3 -1
  24. package/dist/build.js.map +1 -1
  25. package/dist/cache.d.ts +32 -0
  26. package/dist/cache.d.ts.map +1 -0
  27. package/dist/cache.js +205 -0
  28. package/dist/cache.js.map +1 -0
  29. package/dist/cli.d.ts.map +1 -1
  30. package/dist/cli.js +87 -41
  31. package/dist/cli.js.map +1 -1
  32. package/dist/clipboard.d.ts +36 -0
  33. package/dist/clipboard.d.ts.map +1 -0
  34. package/dist/clipboard.js +154 -0
  35. package/dist/clipboard.js.map +1 -0
  36. package/dist/compile.d.ts +2 -1
  37. package/dist/compile.d.ts.map +1 -1
  38. package/dist/compile.js +31 -12
  39. package/dist/compile.js.map +1 -1
  40. package/dist/components/actions.d.ts.map +1 -1
  41. package/dist/components/actions.js +56 -30
  42. package/dist/components/actions.js.map +1 -1
  43. package/dist/components/detail.d.ts.map +1 -1
  44. package/dist/components/detail.js +4 -0
  45. package/dist/components/detail.js.map +1 -1
  46. package/dist/components/dropdown.d.ts.map +1 -1
  47. package/dist/components/dropdown.js +38 -15
  48. package/dist/components/dropdown.js.map +1 -1
  49. package/dist/components/extension-preferences.d.ts.map +1 -1
  50. package/dist/components/extension-preferences.js +40 -13
  51. package/dist/components/extension-preferences.js.map +1 -1
  52. package/dist/components/form/checkbox.d.ts.map +1 -1
  53. package/dist/components/form/checkbox.js +5 -3
  54. package/dist/components/form/checkbox.js.map +1 -1
  55. package/dist/components/form/date-picker.d.ts.map +1 -1
  56. package/dist/components/form/date-picker.js +5 -3
  57. package/dist/components/form/date-picker.js.map +1 -1
  58. package/dist/components/form/description.d.ts.map +1 -1
  59. package/dist/components/form/description.js +2 -2
  60. package/dist/components/form/description.js.map +1 -1
  61. package/dist/components/form/dropdown.d.ts.map +1 -1
  62. package/dist/components/form/dropdown.js +84 -80
  63. package/dist/components/form/dropdown.js.map +1 -1
  64. package/dist/components/form/file-autocomplete.d.ts +3 -6
  65. package/dist/components/form/file-autocomplete.d.ts.map +1 -1
  66. package/dist/components/form/file-autocomplete.js +61 -66
  67. package/dist/components/form/file-autocomplete.js.map +1 -1
  68. package/dist/components/form/file-picker.d.ts.map +1 -1
  69. package/dist/components/form/file-picker.js +33 -30
  70. package/dist/components/form/file-picker.js.map +1 -1
  71. package/dist/components/form/form-end.d.ts.map +1 -1
  72. package/dist/components/form/form-end.js +21 -1
  73. package/dist/components/form/form-end.js.map +1 -1
  74. package/dist/components/form/form-type-only.d.ts +174 -0
  75. package/dist/components/form/form-type-only.d.ts.map +1 -0
  76. package/dist/components/form/form-type-only.js +2 -0
  77. package/dist/components/form/form-type-only.js.map +1 -0
  78. package/dist/components/form/index.d.ts +3 -1
  79. package/dist/components/form/index.d.ts.map +1 -1
  80. package/dist/components/form/index.js +104 -30
  81. package/dist/components/form/index.js.map +1 -1
  82. package/dist/components/form/password-field.d.ts.map +1 -1
  83. package/dist/components/form/password-field.js +5 -3
  84. package/dist/components/form/password-field.js.map +1 -1
  85. package/dist/components/form/text-area.d.ts.map +1 -1
  86. package/dist/components/form/text-area.js +5 -3
  87. package/dist/components/form/text-area.js.map +1 -1
  88. package/dist/components/form/text-field.d.ts.map +1 -1
  89. package/dist/components/form/text-field.js +6 -4
  90. package/dist/components/form/text-field.js.map +1 -1
  91. package/dist/components/form/types.d.ts +5 -0
  92. package/dist/components/form/types.d.ts.map +1 -1
  93. package/dist/components/form/use-form-handling.d.ts +4 -0
  94. package/dist/components/form/use-form-handling.d.ts.map +1 -0
  95. package/dist/components/form/use-form-handling.js +37 -0
  96. package/dist/components/form/use-form-handling.js.map +1 -0
  97. package/dist/components/form/with-left-border.d.ts +2 -1
  98. package/dist/components/form/with-left-border.d.ts.map +1 -1
  99. package/dist/components/form/with-left-border.js +27 -3
  100. package/dist/components/form/with-left-border.js.map +1 -1
  101. package/dist/components/icon.d.ts +1 -0
  102. package/dist/components/icon.d.ts.map +1 -1
  103. package/dist/components/icon.js +24 -8
  104. package/dist/components/icon.js.map +1 -1
  105. package/dist/components/list.d.ts +2 -2
  106. package/dist/components/list.d.ts.map +1 -1
  107. package/dist/components/list.js +155 -70
  108. package/dist/components/list.js.map +1 -1
  109. package/dist/components/loading-bar.d.ts.map +1 -1
  110. package/dist/components/loading-bar.js +2 -2
  111. package/dist/components/loading-bar.js.map +1 -1
  112. package/dist/components/loading-text.d.ts +8 -0
  113. package/dist/components/loading-text.d.ts.map +1 -0
  114. package/dist/components/loading-text.js +58 -0
  115. package/dist/components/loading-text.js.map +1 -0
  116. package/dist/descendants.js +1 -1
  117. package/dist/descendants.js.map +1 -1
  118. package/dist/dev-ui.d.ts +7 -0
  119. package/dist/dev-ui.d.ts.map +1 -0
  120. package/dist/dev-ui.js +118 -0
  121. package/dist/dev-ui.js.map +1 -0
  122. package/dist/environment.d.ts +63 -0
  123. package/dist/environment.d.ts.map +1 -0
  124. package/dist/environment.js +189 -0
  125. package/dist/environment.js.map +1 -0
  126. package/dist/examples/datepicker.d.ts +2 -0
  127. package/dist/examples/datepicker.d.ts.map +1 -0
  128. package/dist/examples/datepicker.js +344 -0
  129. package/dist/examples/datepicker.js.map +1 -0
  130. package/dist/examples/file-autocomplete.vitest.d.ts +2 -0
  131. package/dist/examples/file-autocomplete.vitest.d.ts.map +1 -0
  132. package/dist/examples/file-autocomplete.vitest.js +223 -0
  133. package/dist/examples/file-autocomplete.vitest.js.map +1 -0
  134. package/dist/examples/form-basic-arrow-keys.vitest.d.ts +2 -0
  135. package/dist/examples/form-basic-arrow-keys.vitest.d.ts.map +1 -0
  136. package/dist/examples/form-basic-arrow-keys.vitest.js +46 -0
  137. package/dist/examples/form-basic-arrow-keys.vitest.js.map +1 -0
  138. package/dist/examples/form-basic.vitest.d.ts +2 -0
  139. package/dist/examples/form-basic.vitest.d.ts.map +1 -0
  140. package/dist/examples/form-basic.vitest.js +630 -0
  141. package/dist/examples/form-basic.vitest.js.map +1 -0
  142. package/dist/examples/form-dropdown-with-sections.d.ts +2 -0
  143. package/dist/examples/form-dropdown-with-sections.d.ts.map +1 -0
  144. package/dist/examples/form-dropdown-with-sections.js +13 -0
  145. package/dist/examples/form-dropdown-with-sections.js.map +1 -0
  146. package/dist/examples/form-dropdown-with-sections.vitest.d.ts +2 -0
  147. package/dist/examples/form-dropdown-with-sections.vitest.d.ts.map +1 -0
  148. package/dist/examples/form-dropdown-with-sections.vitest.js +75 -0
  149. package/dist/examples/form-dropdown-with-sections.vitest.js.map +1 -0
  150. package/dist/examples/form-dropdown.vitest.d.ts +2 -0
  151. package/dist/examples/form-dropdown.vitest.d.ts.map +1 -0
  152. package/dist/examples/form-dropdown.vitest.js +854 -0
  153. package/dist/examples/form-dropdown.vitest.js.map +1 -0
  154. package/dist/examples/form-multiselect-dropdown.d.ts +2 -0
  155. package/dist/examples/form-multiselect-dropdown.d.ts.map +1 -0
  156. package/dist/examples/form-multiselect-dropdown.js +13 -0
  157. package/dist/examples/form-multiselect-dropdown.js.map +1 -0
  158. package/dist/examples/form-scroll.d.ts.map +1 -1
  159. package/dist/examples/form-scroll.js +7 -1
  160. package/dist/examples/form-scroll.js.map +1 -1
  161. package/dist/examples/form-scroll.vitest.d.ts +2 -0
  162. package/dist/examples/form-scroll.vitest.d.ts.map +1 -0
  163. package/dist/examples/form-scroll.vitest.js +211 -0
  164. package/dist/examples/form-scroll.vitest.js.map +1 -0
  165. package/dist/examples/form-tagpicker.vitest.d.ts +2 -0
  166. package/dist/examples/form-tagpicker.vitest.d.ts.map +1 -0
  167. package/dist/examples/form-tagpicker.vitest.js +736 -0
  168. package/dist/examples/form-tagpicker.vitest.js.map +1 -0
  169. package/dist/examples/internal/descendants-filtering.js +1 -1
  170. package/dist/examples/internal/descendants-filtering.js.map +1 -1
  171. package/dist/examples/internal/descendants.js +1 -1
  172. package/dist/examples/internal/descendants.js.map +1 -1
  173. package/dist/examples/internal/nested-boxes.d.ts +2 -0
  174. package/dist/examples/internal/nested-boxes.d.ts.map +1 -0
  175. package/dist/examples/internal/nested-boxes.js +7 -0
  176. package/dist/examples/internal/nested-boxes.js.map +1 -0
  177. package/dist/examples/internal/rhf-custom-ref.js +2 -2
  178. package/dist/examples/internal/rhf-custom-ref.js.map +1 -1
  179. package/dist/examples/internal/scrollbox-demo.js +3 -22
  180. package/dist/examples/internal/scrollbox-demo.js.map +1 -1
  181. package/dist/examples/internal/scrollbox-descendants.d.ts +2 -0
  182. package/dist/examples/internal/scrollbox-descendants.d.ts.map +1 -0
  183. package/dist/examples/internal/scrollbox-descendants.js +83 -0
  184. package/dist/examples/internal/scrollbox-descendants.js.map +1 -0
  185. package/dist/examples/internal/scrollbox-with-descendants.js +4 -8
  186. package/dist/examples/internal/scrollbox-with-descendants.js.map +1 -1
  187. package/dist/examples/internal/simple-scrollbox.vitest.d.ts +2 -0
  188. package/dist/examples/internal/simple-scrollbox.vitest.d.ts.map +1 -0
  189. package/dist/examples/internal/simple-scrollbox.vitest.js +96 -0
  190. package/dist/examples/internal/simple-scrollbox.vitest.js.map +1 -0
  191. package/dist/examples/internal/unicode-square-repro.d.ts +2 -0
  192. package/dist/examples/internal/unicode-square-repro.d.ts.map +1 -0
  193. package/dist/examples/internal/unicode-square-repro.js +7 -0
  194. package/dist/examples/internal/unicode-square-repro.js.map +1 -0
  195. package/dist/examples/list-detail-metadata.d.ts +2 -0
  196. package/dist/examples/list-detail-metadata.d.ts.map +1 -0
  197. package/dist/examples/list-detail-metadata.js +8 -0
  198. package/dist/examples/list-detail-metadata.js.map +1 -0
  199. package/dist/examples/list-dropdown-default.vitest.d.ts +2 -0
  200. package/dist/examples/list-dropdown-default.vitest.d.ts.map +1 -0
  201. package/dist/examples/list-dropdown-default.vitest.js +234 -0
  202. package/dist/examples/list-dropdown-default.vitest.js.map +1 -0
  203. package/dist/examples/list-fetch-data.vitest.d.ts +2 -0
  204. package/dist/examples/list-fetch-data.vitest.d.ts.map +1 -0
  205. package/dist/examples/list-fetch-data.vitest.js +111 -0
  206. package/dist/examples/list-fetch-data.vitest.js.map +1 -0
  207. package/dist/examples/list-filter-navigation.d.ts +2 -0
  208. package/dist/examples/list-filter-navigation.d.ts.map +1 -0
  209. package/dist/examples/list-filter-navigation.js +8 -0
  210. package/dist/examples/list-filter-navigation.js.map +1 -0
  211. package/dist/examples/list-scrollbox.vitest.d.ts +2 -0
  212. package/dist/examples/list-scrollbox.vitest.d.ts.map +1 -0
  213. package/dist/examples/list-scrollbox.vitest.js +93 -0
  214. package/dist/examples/list-scrollbox.vitest.js.map +1 -0
  215. package/dist/examples/list-with-detail-long.d.ts +2 -0
  216. package/dist/examples/list-with-detail-long.d.ts.map +1 -0
  217. package/dist/examples/list-with-detail-long.js +53 -0
  218. package/dist/examples/list-with-detail-long.js.map +1 -0
  219. package/dist/examples/list-with-detail.vitest.d.ts +2 -0
  220. package/dist/examples/list-with-detail.vitest.d.ts.map +1 -0
  221. package/dist/examples/list-with-detail.vitest.js +434 -0
  222. package/dist/examples/list-with-detail.vitest.js.map +1 -0
  223. package/dist/examples/list-with-dropdown.vitest.d.ts +2 -0
  224. package/dist/examples/list-with-dropdown.vitest.d.ts.map +1 -0
  225. package/dist/examples/list-with-dropdown.vitest.js +337 -0
  226. package/dist/examples/list-with-dropdown.vitest.js.map +1 -0
  227. package/dist/examples/list-with-sections.js +5 -1
  228. package/dist/examples/list-with-sections.js.map +1 -1
  229. package/dist/examples/list-with-sections.vitest.d.ts +2 -0
  230. package/dist/examples/list-with-sections.vitest.d.ts.map +1 -0
  231. package/dist/examples/list-with-sections.vitest.js +601 -0
  232. package/dist/examples/list-with-sections.vitest.js.map +1 -0
  233. package/dist/examples/scrollbox-vertical-centering.d.ts +6 -0
  234. package/dist/examples/scrollbox-vertical-centering.d.ts.map +1 -0
  235. package/dist/examples/scrollbox-vertical-centering.js +17 -0
  236. package/dist/examples/scrollbox-vertical-centering.js.map +1 -0
  237. package/dist/examples/simple-file-picker.vitest.d.ts +2 -0
  238. package/dist/examples/simple-file-picker.vitest.d.ts.map +1 -0
  239. package/dist/examples/simple-file-picker.vitest.js +678 -0
  240. package/dist/examples/simple-file-picker.vitest.js.map +1 -0
  241. package/dist/examples/simple-grid.vitest.d.ts +2 -0
  242. package/dist/examples/simple-grid.vitest.d.ts.map +1 -0
  243. package/dist/examples/simple-grid.vitest.js +521 -0
  244. package/dist/examples/simple-grid.vitest.js.map +1 -0
  245. package/dist/examples/simple-navigation.js +10 -4
  246. package/dist/examples/simple-navigation.js.map +1 -1
  247. package/dist/examples/simple-navigation.vitest.d.ts +2 -0
  248. package/dist/examples/simple-navigation.vitest.d.ts.map +1 -0
  249. package/dist/examples/simple-navigation.vitest.js +718 -0
  250. package/dist/examples/simple-navigation.vitest.js.map +1 -0
  251. package/dist/examples/store.vitest.d.ts +2 -0
  252. package/dist/examples/store.vitest.d.ts.map +1 -0
  253. package/dist/examples/store.vitest.js +69 -0
  254. package/dist/examples/store.vitest.js.map +1 -0
  255. package/dist/examples/toast-variations.d.ts +2 -0
  256. package/dist/examples/toast-variations.d.ts.map +1 -0
  257. package/dist/examples/toast-variations.js +122 -0
  258. package/dist/examples/toast-variations.js.map +1 -0
  259. package/dist/extensions/dev.d.ts +4 -2
  260. package/dist/extensions/dev.d.ts.map +1 -1
  261. package/dist/extensions/dev.js +61 -10
  262. package/dist/extensions/dev.js.map +1 -1
  263. package/dist/extensions/dev.vitest.d.ts +2 -0
  264. package/dist/extensions/dev.vitest.d.ts.map +1 -0
  265. package/dist/extensions/dev.vitest.js +197 -0
  266. package/dist/extensions/dev.vitest.js.map +1 -0
  267. package/dist/extensions/home.d.ts.map +1 -1
  268. package/dist/extensions/home.js +3 -0
  269. package/dist/extensions/home.js.map +1 -1
  270. package/dist/home-command.d.ts +8 -0
  271. package/dist/home-command.d.ts.map +1 -0
  272. package/dist/home-command.js +181 -0
  273. package/dist/home-command.js.map +1 -0
  274. package/dist/hover-repro.d.ts +2 -0
  275. package/dist/hover-repro.d.ts.map +1 -0
  276. package/dist/hover-repro.js +20 -0
  277. package/dist/hover-repro.js.map +1 -0
  278. package/dist/index.d.ts +1 -0
  279. package/dist/index.d.ts.map +1 -1
  280. package/dist/index.js +2 -0
  281. package/dist/index.js.map +1 -1
  282. package/dist/internal/dialog.d.ts +1 -0
  283. package/dist/internal/dialog.d.ts.map +1 -1
  284. package/dist/internal/dialog.js +27 -18
  285. package/dist/internal/dialog.js.map +1 -1
  286. package/dist/internal/navigation.d.ts +9 -1
  287. package/dist/internal/navigation.d.ts.map +1 -1
  288. package/dist/internal/navigation.js +5 -5
  289. package/dist/internal/navigation.js.map +1 -1
  290. package/dist/internal/offscreen.d.ts +6 -0
  291. package/dist/internal/offscreen.d.ts.map +1 -0
  292. package/dist/internal/offscreen.js +10 -0
  293. package/dist/internal/offscreen.js.map +1 -0
  294. package/dist/internal/providers.d.ts.map +1 -1
  295. package/dist/internal/providers.js +2 -2
  296. package/dist/internal/providers.js.map +1 -1
  297. package/dist/internal/scrollbox.d.ts +1 -10
  298. package/dist/internal/scrollbox.d.ts.map +1 -1
  299. package/dist/internal/scrollbox.js +2 -1
  300. package/dist/internal/scrollbox.js.map +1 -1
  301. package/dist/localstorage.d.ts +13 -0
  302. package/dist/localstorage.d.ts.map +1 -0
  303. package/dist/localstorage.js +190 -0
  304. package/dist/localstorage.js.map +1 -0
  305. package/dist/oauth.d.ts +142 -0
  306. package/dist/oauth.d.ts.map +1 -0
  307. package/dist/oauth.js +551 -0
  308. package/dist/oauth.js.map +1 -0
  309. package/dist/preferences.d.ts +23 -0
  310. package/dist/preferences.d.ts.map +1 -0
  311. package/dist/preferences.js +105 -0
  312. package/dist/preferences.js.map +1 -0
  313. package/dist/release.d.ts +1 -1
  314. package/dist/release.d.ts.map +1 -1
  315. package/dist/release.js +29 -33
  316. package/dist/release.js.map +1 -1
  317. package/dist/state.d.ts +2 -0
  318. package/dist/state.d.ts.map +1 -1
  319. package/dist/state.js +3 -0
  320. package/dist/state.js.map +1 -1
  321. package/dist/store.d.ts +21 -0
  322. package/dist/store.d.ts.map +1 -0
  323. package/dist/store.js +84 -0
  324. package/dist/store.js.map +1 -0
  325. package/dist/swift-loader.d.ts +3 -0
  326. package/dist/swift-loader.d.ts.map +1 -0
  327. package/dist/swift-loader.js +193 -0
  328. package/dist/swift-loader.js.map +1 -0
  329. package/dist/swift-runtime.d.ts +2 -0
  330. package/dist/swift-runtime.d.ts.map +1 -0
  331. package/dist/swift-runtime.js +27 -0
  332. package/dist/swift-runtime.js.map +1 -0
  333. package/dist/toast.d.ts +44 -0
  334. package/dist/toast.d.ts.map +1 -0
  335. package/dist/toast.js +221 -0
  336. package/dist/toast.js.map +1 -0
  337. package/dist/utils/file-system.d.ts +9 -0
  338. package/dist/utils/file-system.d.ts.map +1 -1
  339. package/dist/utils/file-system.js +49 -0
  340. package/dist/utils/file-system.js.map +1 -1
  341. package/dist/utils/run-command.d.ts +26 -1
  342. package/dist/utils/run-command.d.ts.map +1 -1
  343. package/dist/utils/run-command.js +53 -4
  344. package/dist/utils/run-command.js.map +1 -1
  345. package/dist/window.d.ts +12 -0
  346. package/dist/window.d.ts.map +1 -0
  347. package/dist/window.js +48 -0
  348. package/dist/window.js.map +1 -0
  349. package/package.json +12 -12
  350. package/src/apis/browser-extension.tsx +29 -0
  351. package/src/apis/localstorage.test.ts +14 -6
  352. package/src/apis/localstorage.tsx +8 -5
  353. package/src/apis/oauth.tsx +5 -1
  354. package/src/apis/preferences.tsx +48 -22
  355. package/src/apis/toast.tsx +37 -62
  356. package/src/build.test.tsx +52 -0
  357. package/src/build.tsx +3 -1
  358. package/src/cli.tsx +99 -48
  359. package/src/compile.tsx +32 -11
  360. package/src/components/actions.tsx +94 -32
  361. package/src/components/detail.tsx +4 -0
  362. package/src/components/dropdown.tsx +47 -14
  363. package/src/components/extension-preferences.tsx +44 -16
  364. package/src/components/form/checkbox.tsx +12 -6
  365. package/src/components/form/date-picker.tsx +12 -6
  366. package/src/components/form/description.tsx +7 -2
  367. package/src/components/form/dropdown.tsx +131 -119
  368. package/src/components/form/file-autocomplete.tsx +90 -108
  369. package/src/components/form/file-picker.tsx +54 -43
  370. package/src/components/form/form-end.tsx +23 -2
  371. package/src/components/form/index.tsx +168 -41
  372. package/src/components/form/password-field.tsx +12 -6
  373. package/src/components/form/text-area.tsx +13 -6
  374. package/src/components/form/text-field.tsx +13 -6
  375. package/src/components/form/types.tsx +6 -0
  376. package/src/components/form/with-left-border.tsx +41 -8
  377. package/src/components/icon.tsx +27 -8
  378. package/src/components/list.tsx +243 -101
  379. package/src/components/loading-bar.tsx +3 -2
  380. package/src/components/loading-text.tsx +79 -0
  381. package/src/descendants.tsx +1 -0
  382. package/src/examples/file-autocomplete.vitest.tsx +130 -125
  383. package/src/examples/form-basic.vitest.tsx +376 -176
  384. package/src/examples/form-dropdown.vitest.tsx +126 -126
  385. package/src/examples/form-scroll.tsx +2 -0
  386. package/src/examples/form-scroll.vitest.tsx +58 -58
  387. package/src/examples/form-tagpicker.vitest.tsx +99 -99
  388. package/src/examples/internal/descendants-filtering.tsx +1 -0
  389. package/src/examples/internal/descendants.tsx +1 -0
  390. package/src/examples/internal/rhf-custom-ref.tsx +2 -0
  391. package/src/examples/internal/scrollbox-demo.tsx +3 -27
  392. package/src/examples/internal/scrollbox-with-descendants.tsx +4 -7
  393. package/src/examples/internal/simple-scrollbox.vitest.tsx +7 -5
  394. package/src/examples/list-detail-metadata.tsx +49 -0
  395. package/src/examples/list-detail-metadata.vitest.tsx +88 -0
  396. package/src/examples/list-dropdown-default.vitest.tsx +51 -51
  397. package/src/examples/list-fetch-data.vitest.tsx +4 -4
  398. package/src/examples/list-scrollbox.vitest.tsx +73 -14
  399. package/src/examples/list-with-detail-long.tsx +70 -0
  400. package/src/examples/list-with-detail.vitest.tsx +191 -85
  401. package/src/examples/list-with-dropdown.vitest.tsx +53 -53
  402. package/src/examples/list-with-sections.tsx +1 -0
  403. package/src/examples/list-with-sections.vitest.tsx +221 -97
  404. package/src/examples/list-with-toast.vitest.tsx +16 -16
  405. package/src/examples/simple-file-picker.vitest.tsx +63 -469
  406. package/src/examples/simple-grid.vitest.tsx +238 -233
  407. package/src/examples/simple-navigation.tsx +15 -7
  408. package/src/examples/simple-navigation.vitest.tsx +130 -219
  409. package/src/examples/store.vitest.tsx +1 -1
  410. package/src/examples/swift-extension.vitest.tsx +148 -0
  411. package/src/examples/synonyms.vitest.tsx +159 -0
  412. package/src/examples/toast-variations.tsx +150 -0
  413. package/src/examples/toast-variations.vitest.tsx +370 -0
  414. package/src/extensions/dev.tsx +74 -7
  415. package/src/extensions/dev.vitest.tsx +102 -34
  416. package/src/extensions/home.tsx +6 -0
  417. package/src/index.tsx +3 -0
  418. package/src/internal/dialog.tsx +43 -30
  419. package/src/internal/navigation.tsx +3 -1
  420. package/src/internal/offscreen.tsx +15 -0
  421. package/src/internal/providers.tsx +4 -2
  422. package/src/internal/scrollbox.tsx +4 -8
  423. package/src/keyboard.test.tsx +69 -0
  424. package/src/release.tsx +32 -38
  425. package/src/state.tsx +7 -0
  426. package/src/swift-loader.tsx +239 -0
  427. package/src/swift-runtime.tsx +36 -0
  428. package/src/utils/file-system.ts +61 -0
  429. package/src/utils/run-command.tsx +82 -6
@@ -0,0 +1,105 @@
1
+ import { jsx as _jsx } from "@opentui/react/jsx-runtime";
2
+ import { useStore } from '@termcast/cli/src/state';
3
+ import { logger } from '@termcast/cli/src/logger';
4
+ import { LocalStorage } from '@termcast/cli/src/localstorage';
5
+ import { ExtensionPreferences } from '@termcast/cli/src/components/extension-preferences';
6
+ /**
7
+ * A function to access the preference values that have been passed to the command.
8
+ * Each preference name is mapped to its value, and the defined default values are used as fallback values.
9
+ *
10
+ * @returns An object with the preference names as property key and the typed value as property value.
11
+ */
12
+ export function getPreferenceValues() {
13
+ const state = useStore.getState();
14
+ const { extensionPackageJson, currentCommandName, extensionPath } = state;
15
+ // Determine the extension name from package.json or path
16
+ let extensionName = null;
17
+ if (extensionPackageJson?.name) {
18
+ extensionName = extensionPackageJson.name;
19
+ }
20
+ else if (extensionPath) {
21
+ // Extract extension name from path if package.json not available
22
+ const pathParts = extensionPath.split('/');
23
+ extensionName = pathParts[pathParts.length - 1];
24
+ }
25
+ if (!extensionName) {
26
+ logger.log('No extension context found for preferences');
27
+ return {};
28
+ }
29
+ try {
30
+ // First try to load command-specific preferences, then fall back to extension preferences
31
+ if (currentCommandName) {
32
+ const commandPreferencesKey = `preferences.${extensionName}.${currentCommandName}`;
33
+ const commandPreferences = LocalStorage.getItemSync(commandPreferencesKey);
34
+ if (commandPreferences && typeof commandPreferences === 'string') {
35
+ try {
36
+ const parsed = JSON.parse(commandPreferences);
37
+ logger.log(`Loaded command preferences for ${extensionName}/${currentCommandName}:`, parsed);
38
+ return parsed;
39
+ }
40
+ catch (parseError) {
41
+ logger.error(`Failed to parse command preferences:`, parseError);
42
+ }
43
+ }
44
+ }
45
+ // Fall back to extension-level preferences
46
+ const extensionPreferencesKey = `preferences.${extensionName}`;
47
+ const extensionPreferences = LocalStorage.getItemSync(extensionPreferencesKey);
48
+ if (extensionPreferences && typeof extensionPreferences === 'string') {
49
+ try {
50
+ const parsed = JSON.parse(extensionPreferences);
51
+ logger.log(`Loaded extension preferences for ${extensionName}:`, parsed);
52
+ return parsed;
53
+ }
54
+ catch (parseError) {
55
+ logger.error(`Failed to parse extension preferences:`, parseError);
56
+ }
57
+ }
58
+ }
59
+ catch (error) {
60
+ logger.error(`Failed to load preferences for ${extensionName}:`, error);
61
+ }
62
+ // Return empty preferences if none saved
63
+ return {};
64
+ }
65
+ /**
66
+ * Opens the extension's preferences screen.
67
+ *
68
+ * @returns A Promise that resolves when the extensions preferences screen is opened.
69
+ */
70
+ export async function openExtensionPreferences() {
71
+ const state = useStore.getState();
72
+ const { extensionPackageJson, navigationStack } = state;
73
+ if (!extensionPackageJson?.name) {
74
+ throw new Error('No current extension found');
75
+ }
76
+ logger.log(`Opening extension preferences for ${extensionPackageJson.name}`);
77
+ // Push the preferences component to the navigation stack
78
+ const preferencesComponent = (_jsx(ExtensionPreferences, { extensionName: extensionPackageJson.name }));
79
+ useStore.setState({
80
+ navigationStack: [...navigationStack, { element: preferencesComponent }],
81
+ dialogStack: [],
82
+ });
83
+ return Promise.resolve();
84
+ }
85
+ /**
86
+ * Opens the command's preferences screen.
87
+ *
88
+ * @returns A Promise that resolves when the command's preferences screen is opened.
89
+ */
90
+ export async function openCommandPreferences() {
91
+ const state = useStore.getState();
92
+ const { extensionPackageJson, currentCommandName, navigationStack } = state;
93
+ if (!extensionPackageJson?.name || !currentCommandName) {
94
+ throw new Error('No current command found');
95
+ }
96
+ logger.log(`Opening command preferences for ${extensionPackageJson.name}/${currentCommandName}`);
97
+ // Push the preferences component to the navigation stack
98
+ const preferencesComponent = (_jsx(ExtensionPreferences, { extensionName: extensionPackageJson.name, commandName: currentCommandName }));
99
+ useStore.setState({
100
+ navigationStack: [...navigationStack, { element: preferencesComponent }],
101
+ dialogStack: [],
102
+ });
103
+ return Promise.resolve();
104
+ }
105
+ //# sourceMappingURL=preferences.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preferences.js","sourceRoot":"","sources":["../src/preferences.tsx"],"names":[],"mappings":"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"}
package/dist/release.d.ts CHANGED
@@ -4,7 +4,7 @@ export interface ReleaseOptions {
4
4
  }
5
5
  export interface ReleaseResult {
6
6
  success: boolean;
7
- version: string;
7
+ tag: string;
8
8
  uploadedFiles: string[];
9
9
  }
10
10
  export declare function releaseExtension({ extensionPath, single, }: ReleaseOptions): Promise<ReleaseResult>;
@@ -1 +1 @@
1
- {"version":3,"file":"release.d.ts","sourceRoot":"","sources":["../src/release.tsx"],"names":[],"mappings":"AAcA,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,MAAM,CAAA;IACrB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,aAAa,EAAE,MAAM,EAAE,CAAA;CACxB;AAED,wBAAsB,gBAAgB,CAAC,EACrC,aAAa,EACb,MAAc,GACf,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,CAuIzC"}
1
+ {"version":3,"file":"release.d.ts","sourceRoot":"","sources":["../src/release.tsx"],"names":[],"mappings":"AAcA,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,MAAM,CAAA;IACrB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAA;IAChB,GAAG,EAAE,MAAM,CAAA;IACX,aAAa,EAAE,MAAM,EAAE,CAAA;CACxB;AAED,wBAAsB,gBAAgB,CAAC,EACrC,aAAa,EACb,MAAc,GACf,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,CAiIzC"}
package/dist/release.js CHANGED
@@ -9,42 +9,36 @@ export async function releaseExtension({ extensionPath, single = false, }) {
9
9
  if (!fs.existsSync(resolvedPath)) {
10
10
  throw new Error(`Extension path does not exist: ${resolvedPath}`);
11
11
  }
12
- const packageJsonPath = path.join(resolvedPath, 'package.json');
13
- if (!fs.existsSync(packageJsonPath)) {
14
- throw new Error(`No package.json found at: ${packageJsonPath}`);
15
- }
16
- const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'));
17
- const name = packageJson.name;
18
- const version = packageJson.version;
19
- if (!name) {
20
- throw new Error('package.json must have a name field');
21
- }
22
- if (!version) {
23
- throw new Error('package.json must have a version field');
24
- }
25
- const tag = `${name}@${version}`;
26
- console.log(`Preparing release ${tag}...`);
27
- // Check if release already exists
12
+ // Get repo name from git remote
13
+ let repoName;
28
14
  try {
29
- const checkResult = execSync(`gh release view "${tag}" --json tagName`, {
15
+ const remoteUrl = execSync('git config --get remote.origin.url', {
30
16
  cwd: resolvedPath,
31
17
  encoding: 'utf-8',
32
- stdio: ['pipe', 'pipe', 'pipe'],
33
- });
34
- if (checkResult.includes(tag)) {
35
- throw new Error(`Release ${tag} already exists. Bump the version in package.json first.`);
18
+ }).trim();
19
+ // Handle both HTTPS and SSH URLs:
20
+ // https://github.com/user/repo.git -> repo
21
+ // git@github.com:user/repo.git -> repo
22
+ const match = remoteUrl.match(/\/([^/]+?)(?:\.git)?$/) || remoteUrl.match(/:([^/]+?)(?:\.git)?$/);
23
+ if (!match) {
24
+ throw new Error(`Could not parse repo name from remote URL: ${remoteUrl}`);
36
25
  }
26
+ repoName = match[1].replace(/\.git$/, '');
37
27
  }
38
28
  catch (error) {
39
- if (error.message?.includes('already exists')) {
40
- throw error;
41
- }
42
- const stderr = error.stderr?.toString() || '';
43
- const isNotFound = stderr.includes('release not found') || stderr.includes('Not Found');
44
- if (!isNotFound) {
45
- throw new Error(`Failed to check release status: ${stderr || error.message}`);
46
- }
29
+ throw new Error(`Failed to get git remote: ${error.message}`);
47
30
  }
31
+ // Generate date-based tag with hour and minute
32
+ const now = new Date();
33
+ const dateTag = [
34
+ now.getFullYear(),
35
+ String(now.getMonth() + 1).padStart(2, '0'),
36
+ String(now.getDate()).padStart(2, '0'),
37
+ String(now.getHours()).padStart(2, '0'),
38
+ String(now.getMinutes()).padStart(2, '0'),
39
+ ].join('');
40
+ const tag = `${repoName}@${dateTag}`;
41
+ console.log(`Preparing release ${tag}...`);
48
42
  // Install dependencies for all platforms
49
43
  console.log('Installing dependencies for all platforms...');
50
44
  execSync('bun install --os="*" --cpu="*"', {
@@ -61,21 +55,23 @@ export async function releaseExtension({ extensionPath, single = false, }) {
61
55
  if (!fs.existsSync(outputDir)) {
62
56
  fs.mkdirSync(outputDir, { recursive: true });
63
57
  }
58
+ fs.writeFileSync(path.join(outputDir, '.gitignore'), '*\n');
64
59
  // Compile for all targets in parallel
65
60
  console.log(`Compiling for ${targets.length} targets in parallel...`);
66
61
  const compileResults = await Promise.all(targets.map(async (target) => {
67
62
  const suffix = targetToFileSuffix(target);
68
- const binaryName = `${name}-${suffix}`;
63
+ const binaryName = `${repoName}-${suffix}`;
69
64
  const outfile = path.join(outputDir, binaryName);
70
65
  const result = await compileExtension({
71
66
  extensionPath: resolvedPath,
72
67
  outfile,
73
68
  minify: true,
74
69
  target,
70
+ version: tag,
75
71
  });
76
72
  console.log(` ✓ ${path.basename(result.outfile)}`);
77
73
  const archiveExt = getArchiveExtension(target);
78
- const archiveName = `${name}-${suffix}${archiveExt}`;
74
+ const archiveName = `${repoName}-${suffix}${archiveExt}`;
79
75
  const archivePath = path.join(outputDir, archiveName);
80
76
  if (archiveExt === '.tar.gz') {
81
77
  await execAsync(`tar -czvf "${archiveName}" "${binaryName}"`, { cwd: outputDir });
@@ -90,7 +86,7 @@ export async function releaseExtension({ extensionPath, single = false, }) {
90
86
  // Create GitHub release
91
87
  console.log(`\nCreating GitHub release ${tag}...`);
92
88
  try {
93
- execSync(`gh release create "${tag}" --title "${tag}" --notes "Release ${version}"`, {
89
+ execSync(`gh release create "${tag}" --title "${tag}" --notes "Release ${tag}"`, {
94
90
  cwd: resolvedPath,
95
91
  stdio: 'inherit',
96
92
  });
@@ -111,7 +107,7 @@ export async function releaseExtension({ extensionPath, single = false, }) {
111
107
  console.log(` ${compileResults.length} binaries uploaded`);
112
108
  return {
113
109
  success: true,
114
- version,
110
+ tag,
115
111
  uploadedFiles: compileResults,
116
112
  };
117
113
  }
@@ -1 +1 @@
1
- {"version":3,"file":"release.js","sourceRoot":"","sources":["../src/release.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"release.js","sourceRoot":"","sources":["../src/release.tsx"],"names":[],"mappings":"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"}
package/dist/state.d.ts CHANGED
@@ -21,6 +21,8 @@ interface AppState {
21
21
  currentCommandArguments: Record<string, string> | null;
22
22
  googleAccessToken?: string;
23
23
  googleIdToken?: string;
24
+ shouldAutoExecuteFirstAction: boolean;
25
+ firstActionTitle: string;
24
26
  }
25
27
  export declare const useStore: import("zustand").UseBoundStore<import("zustand").StoreApi<AppState>>;
26
28
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../src/state.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAExD,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,WAAW,GAAG,cAAc,CAAA;AAEpE,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,SAAS,CAAA;IAClB,QAAQ,CAAC,EAAE,cAAc,CAAA;CAC1B;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,SAAS,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,IAAI,CAAA;CACnB;AAED,UAAU,QAAQ;IAChB,KAAK,EAAE,SAAS,GAAG,IAAI,CAAA;IACvB,WAAW,EAAE,eAAe,EAAE,CAAA;IAE9B,eAAe,EAAE,mBAAmB,EAAE,CAAA;IAEtC,UAAU,EAAE,SAAS,GAAG,IAAI,CAAA;IAC5B,eAAe,EAAE,MAAM,CAAA;IAEvB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,oBAAoB,EAAE,kBAAkB,GAAG,IAAI,CAAA;IAC/C,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAA;IAEtD,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,eAAO,MAAM,QAAQ,uEAgBlB,CAAA"}
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../src/state.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAExD,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,WAAW,GAAG,cAAc,CAAA;AAEpE,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,SAAS,CAAA;IAClB,QAAQ,CAAC,EAAE,cAAc,CAAA;CAC1B;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,SAAS,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,IAAI,CAAA;CACnB;AAED,UAAU,QAAQ;IAChB,KAAK,EAAE,SAAS,GAAG,IAAI,CAAA;IACvB,WAAW,EAAE,eAAe,EAAE,CAAA;IAE9B,eAAe,EAAE,mBAAmB,EAAE,CAAA;IAEtC,UAAU,EAAE,SAAS,GAAG,IAAI,CAAA;IAC5B,eAAe,EAAE,MAAM,CAAA;IAEvB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,oBAAoB,EAAE,kBAAkB,GAAG,IAAI,CAAA;IAC/C,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAA;IAEtD,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAA;IAEtB,4BAA4B,EAAE,OAAO,CAAA;IAErC,gBAAgB,EAAE,MAAM,CAAA;CACzB;AAED,eAAO,MAAM,QAAQ,uEAmBlB,CAAA"}
package/dist/state.js CHANGED
@@ -15,5 +15,8 @@ export const useStore = create(() => ({
15
15
  // OAuth state
16
16
  googleAccessToken: undefined,
17
17
  googleIdToken: undefined,
18
+ // Actions state
19
+ shouldAutoExecuteFirstAction: false,
20
+ firstActionTitle: '',
18
21
  }));
19
22
  //# sourceMappingURL=state.js.map
package/dist/state.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"state.js","sourceRoot":"","sources":["../src/state.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAkChC,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAW,GAAG,EAAE,CAAC,CAAC;IAC9C,KAAK,EAAE,IAAI;IACX,WAAW,EAAE,EAAE;IACf,mBAAmB;IACnB,eAAe,EAAE,EAAE;IACnB,iBAAiB;IACjB,UAAU,EAAE,IAAI;IAChB,eAAe,EAAE,CAAC;IAClB,8BAA8B;IAC9B,aAAa,EAAE,IAAI;IACnB,oBAAoB,EAAE,IAAI;IAC1B,kBAAkB,EAAE,IAAI;IACxB,uBAAuB,EAAE,IAAI;IAC7B,cAAc;IACd,iBAAiB,EAAE,SAAS;IAC5B,aAAa,EAAE,SAAS;CACzB,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../src/state.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAsChC,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAW,GAAG,EAAE,CAAC,CAAC;IAC9C,KAAK,EAAE,IAAI;IACX,WAAW,EAAE,EAAE;IACf,mBAAmB;IACnB,eAAe,EAAE,EAAE;IACnB,iBAAiB;IACjB,UAAU,EAAE,IAAI;IAChB,eAAe,EAAE,CAAC;IAClB,8BAA8B;IAC9B,aAAa,EAAE,IAAI;IACnB,oBAAoB,EAAE,IAAI;IAC1B,kBAAkB,EAAE,IAAI;IACxB,uBAAuB,EAAE,IAAI;IAC7B,cAAc;IACd,iBAAiB,EAAE,SAAS;IAC5B,aAAa,EAAE,SAAS;IACxB,gBAAgB;IAChB,4BAA4B,EAAE,KAAK;IACnC,gBAAgB,EAAE,EAAE;CACrB,CAAC,CAAC,CAAA"}
@@ -0,0 +1,21 @@
1
+ import { type CommandWithFile } from './package-json';
2
+ interface BundledCommand extends CommandWithFile {
3
+ bundledPath: string;
4
+ }
5
+ export declare function resolveCommandPath({ commandName, dir, }: {
6
+ commandName: string;
7
+ dir: string;
8
+ }): string;
9
+ interface StoredExtension {
10
+ name: string;
11
+ packageJsonPath: string;
12
+ commands: BundledCommand[];
13
+ }
14
+ export declare function getStoreDirectory(): string;
15
+ export declare function installExtension({ extensionName, extensionSourcePath, }: {
16
+ extensionName: string;
17
+ extensionSourcePath: string;
18
+ }): void;
19
+ export declare function getStoredExtensions(): StoredExtension[];
20
+ export {};
21
+ //# sourceMappingURL=store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAwB,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAE3E,UAAU,cAAe,SAAQ,eAAe;IAC9C,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,wBAAgB,kBAAkB,CAAC,EACjC,WAAW,EACX,GAAG,GACJ,EAAE;IACD,WAAW,EAAE,MAAM,CAAA;IACnB,GAAG,EAAE,MAAM,CAAA;CACZ,GAAG,MAAM,CAgBT;AAED,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,eAAe,EAAE,MAAM,CAAA;IACvB,QAAQ,EAAE,cAAc,EAAE,CAAA;CAC3B;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAU1C;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,aAAa,EACb,mBAAmB,GACpB,EAAE;IACD,aAAa,EAAE,MAAM,CAAA;IACrB,mBAAmB,EAAE,MAAM,CAAA;CAC5B,GAAG,IAAI,CAgBP;AAED,wBAAgB,mBAAmB,IAAI,eAAe,EAAE,CAkDvD"}
package/dist/store.js ADDED
@@ -0,0 +1,84 @@
1
+ import fs from 'node:fs';
2
+ import path from 'node:path';
3
+ import os from 'node:os';
4
+ import { logger } from './logger';
5
+ import { getCommandsWithFiles } from './package-json';
6
+ export function resolveCommandPath({ commandName, dir, }) {
7
+ // First check for .termcast-bundle directory
8
+ const bundleDir = path.join(dir, '.termcast-bundle');
9
+ const bundledPath = path.join(bundleDir, `${commandName}.js`);
10
+ if (fs.existsSync(bundledPath)) {
11
+ return bundledPath;
12
+ }
13
+ // Then check for top-level command file
14
+ const topLevelPath = path.join(dir, `${commandName}.js`);
15
+ if (fs.existsSync(topLevelPath)) {
16
+ return topLevelPath;
17
+ }
18
+ // Return empty string if not found
19
+ return '';
20
+ }
21
+ export function getStoreDirectory() {
22
+ const homeDir = os.homedir();
23
+ const storeDir = path.join(homeDir, '.termcast', 'store');
24
+ // Ensure store directory exists
25
+ if (!fs.existsSync(storeDir)) {
26
+ fs.mkdirSync(storeDir, { recursive: true });
27
+ }
28
+ return storeDir;
29
+ }
30
+ export function installExtension({ extensionName, extensionSourcePath, }) {
31
+ const storeDir = getStoreDirectory();
32
+ const extensionDir = path.join(storeDir, extensionName);
33
+ // Remove existing extension directory if it exists
34
+ if (fs.existsSync(extensionDir)) {
35
+ fs.rmSync(extensionDir, { recursive: true, force: true });
36
+ }
37
+ // Create extension directory
38
+ fs.mkdirSync(extensionDir, { recursive: true });
39
+ // Copy entire extension source directory
40
+ fs.cpSync(extensionSourcePath, extensionDir, { recursive: true });
41
+ logger.log(`Extension '${extensionName}' installed to ${extensionDir}`);
42
+ }
43
+ export function getStoredExtensions() {
44
+ const storeDir = getStoreDirectory();
45
+ const extensions = [];
46
+ if (!fs.existsSync(storeDir)) {
47
+ return extensions;
48
+ }
49
+ const entries = fs.readdirSync(storeDir, { withFileTypes: true });
50
+ for (const entry of entries) {
51
+ if (!entry.isDirectory())
52
+ continue;
53
+ const extensionDir = path.join(storeDir, entry.name);
54
+ const packageJsonPath = path.join(extensionDir, 'package.json');
55
+ if (!fs.existsSync(packageJsonPath)) {
56
+ logger.log(`Skipping ${entry.name}: no package.json found`);
57
+ continue;
58
+ }
59
+ try {
60
+ const commandsData = getCommandsWithFiles({ packageJsonPath });
61
+ // Map commands to bundled commands using the resolver
62
+ const bundledCommands = commandsData.commands.map((command) => {
63
+ const bundledPath = resolveCommandPath({
64
+ commandName: command.name,
65
+ dir: extensionDir,
66
+ });
67
+ return {
68
+ ...command,
69
+ bundledPath,
70
+ };
71
+ });
72
+ extensions.push({
73
+ name: entry.name,
74
+ packageJsonPath,
75
+ commands: bundledCommands,
76
+ });
77
+ }
78
+ catch (error) {
79
+ logger.error(`Failed to load extension ${entry.name}:`, error.message);
80
+ }
81
+ }
82
+ return extensions;
83
+ }
84
+ //# sourceMappingURL=store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { BunPlugin } from 'bun';
2
+ export declare const swiftLoaderPlugin: BunPlugin;
3
+ //# sourceMappingURL=swift-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swift-loader.d.ts","sourceRoot":"","sources":["../src/swift-loader.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,KAAK,CAAA;AA+LpC,eAAO,MAAM,iBAAiB,EAAE,SA4C/B,CAAA"}
@@ -0,0 +1,193 @@
1
+ import fs from 'node:fs';
2
+ import path from 'node:path';
3
+ import { spawn } from 'node:child_process';
4
+ import { logger } from './logger';
5
+ const SWIFT_NAMESPACE = 'swift-loader';
6
+ const buildCache = {};
7
+ async function buildSwiftPackage(swiftPath) {
8
+ logger.log(`Swift: building package at ${swiftPath}`);
9
+ // Check if already built and cached in memory
10
+ const cached = buildCache[swiftPath];
11
+ if (cached && fs.existsSync(cached.result.binaryPath)) {
12
+ logger.log(`Swift: using cached build at ${cached.result.binaryPath}`);
13
+ return cached.result;
14
+ }
15
+ // Check if binary already exists on disk (from previous build/process)
16
+ try {
17
+ const existingResult = await findSwiftBuildResult(swiftPath);
18
+ logger.log(`Swift: found existing binary at ${existingResult.binaryPath}`);
19
+ buildCache[swiftPath] = { result: existingResult, buildTime: Date.now() };
20
+ return existingResult;
21
+ }
22
+ catch {
23
+ // Binary doesn't exist, need to build
24
+ }
25
+ // Run swift build using Node's spawn
26
+ // Use debug build for faster compilation (skips optimizations)
27
+ logger.log(`Swift: running swift build -c debug in ${swiftPath}`);
28
+ const exitCode = await new Promise((resolve, reject) => {
29
+ const proc = spawn('swift', ['build', '-c', 'debug'], {
30
+ cwd: swiftPath,
31
+ stdio: 'inherit',
32
+ });
33
+ proc.on('error', reject);
34
+ proc.on('close', (code) => resolve(code ?? 1));
35
+ });
36
+ logger.log(`Swift: build exited with code ${exitCode}`);
37
+ if (exitCode !== 0) {
38
+ throw new Error(`Swift build failed with exit code ${exitCode}`);
39
+ }
40
+ logger.log(`Swift: build completed successfully`);
41
+ // Find the binary and generated files
42
+ const result = await findSwiftBuildResult(swiftPath);
43
+ // Cache the result
44
+ buildCache[swiftPath] = {
45
+ result,
46
+ buildTime: Date.now(),
47
+ };
48
+ logger.log(`Swift: built binary at ${result.binaryPath}`);
49
+ return result;
50
+ }
51
+ function findFilesRecursively(dir, filename) {
52
+ const results = [];
53
+ if (!fs.existsSync(dir)) {
54
+ return results;
55
+ }
56
+ const entries = fs.readdirSync(dir, { withFileTypes: true });
57
+ for (const entry of entries) {
58
+ const fullPath = path.join(dir, entry.name);
59
+ if (entry.isDirectory()) {
60
+ results.push(...findFilesRecursively(fullPath, filename));
61
+ }
62
+ else if (entry.name === filename) {
63
+ results.push(fullPath);
64
+ }
65
+ }
66
+ return results;
67
+ }
68
+ async function findSwiftBuildResult(swiftPath) {
69
+ // Parse Package.swift to find executable target name
70
+ const packageSwiftPath = path.join(swiftPath, 'Package.swift');
71
+ const packageSwift = fs.readFileSync(packageSwiftPath, 'utf-8');
72
+ // Look for: name: "PackageName" at the top level
73
+ const nameMatch = packageSwift.match(/name:\s*"([^"]+)"/);
74
+ if (!nameMatch) {
75
+ throw new Error(`Could not find package name in ${packageSwiftPath}`);
76
+ }
77
+ const packageName = nameMatch[1];
78
+ // Find binary - check debug first, then release
79
+ const debugBinaryPath = path.join(swiftPath, '.build', 'debug', packageName);
80
+ const releaseBinaryPath = path.join(swiftPath, '.build', 'release', packageName);
81
+ let binaryPath;
82
+ if (fs.existsSync(debugBinaryPath)) {
83
+ binaryPath = debugBinaryPath;
84
+ }
85
+ else if (fs.existsSync(releaseBinaryPath)) {
86
+ binaryPath = releaseBinaryPath;
87
+ }
88
+ else {
89
+ throw new Error(`Swift binary not found at ${debugBinaryPath} or ${releaseBinaryPath}`);
90
+ }
91
+ // Find raycast.js using glob-like search
92
+ const buildDir = path.join(swiftPath, '.build');
93
+ const raycastJsFiles = findFilesRecursively(buildDir, 'raycast.js');
94
+ // Filter to find the one from RaycastTypeScriptPlugin for our package
95
+ const matchingFiles = raycastJsFiles.filter(f => f.includes('RaycastTypeScriptPlugin') && f.includes(packageName));
96
+ if (matchingFiles.length === 0) {
97
+ throw new Error(`Generated raycast.js not found in ${buildDir}. Found files: ${raycastJsFiles.join(', ') || 'none'}`);
98
+ }
99
+ // Prefer the one in plugins/outputs (not index-build)
100
+ const raycastJsPath = matchingFiles.find(f => f.includes('plugins/outputs')) || matchingFiles[0];
101
+ logger.log(`Swift: found raycast.js at ${raycastJsPath}`);
102
+ return { binaryPath, raycastJsPath, packageName };
103
+ }
104
+ function generateSwiftModule(result) {
105
+ // Read the generated raycast.js from RaycastTypeScriptPlugin
106
+ // This file exports named functions that call runSwiftFunction(functionName, ...args)
107
+ // We prepend our runSwiftFunction implementation with the binary path
108
+ const generatedJs = fs.readFileSync(result.raycastJsPath, 'utf-8');
109
+ // Prepend our runSwiftFunction implementation using Node's child_process
110
+ // Use ESM import to match the export statements in generated raycast.js
111
+ const runtime = `
112
+ import { spawn as _spawn } from 'node:child_process';
113
+
114
+ const BINARY_PATH = ${JSON.stringify(result.binaryPath)};
115
+
116
+ function runSwiftFunction(functionName, ...args) {
117
+ return new Promise((resolve, reject) => {
118
+ const jsonArgs = args.map((arg) => JSON.stringify(arg));
119
+ const proc = _spawn(BINARY_PATH, [functionName, ...jsonArgs], {
120
+ stdio: ['pipe', 'pipe', 'inherit'],
121
+ });
122
+
123
+ let stdout = '';
124
+ proc.stdout.on('data', (data) => {
125
+ stdout += data.toString();
126
+ });
127
+
128
+ proc.on('error', (err) => {
129
+ reject(new Error('Swift function "' + functionName + '" failed to spawn: ' + err.message));
130
+ });
131
+
132
+ proc.on('close', (exitCode) => {
133
+ if (exitCode !== 0) {
134
+ reject(new Error('Swift function "' + functionName + '" failed with exit code ' + exitCode));
135
+ return;
136
+ }
137
+
138
+ const trimmed = stdout.trim();
139
+ if (!trimmed) {
140
+ resolve(undefined);
141
+ return;
142
+ }
143
+
144
+ try {
145
+ resolve(JSON.parse(trimmed));
146
+ } catch {
147
+ reject(new Error('Swift function "' + functionName + '" returned invalid JSON: ' + trimmed));
148
+ }
149
+ });
150
+ });
151
+ }
152
+
153
+ `;
154
+ return runtime + generatedJs;
155
+ }
156
+ export const swiftLoaderPlugin = {
157
+ name: 'swift-loader',
158
+ async setup(build) {
159
+ // Resolve swift: imports
160
+ build.onResolve({ filter: /^swift:/ }, (args) => {
161
+ logger.log(`Swift: onResolve called for ${args.path} from ${args.importer}`);
162
+ // Extract the path after "swift:"
163
+ const swiftRelativePath = args.path.slice(6); // Remove "swift:"
164
+ // Resolve relative to the importer's directory
165
+ const importerDir = args.importer ? path.dirname(args.importer) : process.cwd();
166
+ const resolvedSwiftPath = path.resolve(importerDir, swiftRelativePath);
167
+ logger.log(`Swift: resolved to ${resolvedSwiftPath}`);
168
+ return {
169
+ path: resolvedSwiftPath,
170
+ namespace: SWIFT_NAMESPACE,
171
+ };
172
+ });
173
+ // Load swift packages
174
+ build.onLoad({ filter: /.*/, namespace: SWIFT_NAMESPACE }, async (args) => {
175
+ logger.log(`Swift: onLoad called for ${args.path}`);
176
+ const swiftPath = args.path;
177
+ // Build the Swift package and get paths to binary + generated JS
178
+ logger.log(`Swift: calling buildSwiftPackage...`);
179
+ const result = await buildSwiftPackage(swiftPath);
180
+ logger.log(`Swift: buildSwiftPackage returned, binaryPath=${result.binaryPath}`);
181
+ // Generate module by combining runtime with generated raycast.js
182
+ logger.log(`Swift: generating module...`);
183
+ const contents = generateSwiftModule(result);
184
+ logger.log(`Swift: module generated, length=${contents.length}`);
185
+ // logger.log(`Swift: module contents:\n${contents}`)
186
+ return {
187
+ contents,
188
+ loader: 'js',
189
+ };
190
+ });
191
+ },
192
+ };
193
+ //# sourceMappingURL=swift-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swift-loader.js","sourceRoot":"","sources":["../src/swift-loader.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function runSwiftFunction(binaryPath: string, functionName: string, ...args: unknown[]): Promise<unknown>;
2
+ //# sourceMappingURL=swift-runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swift-runtime.d.ts","sourceRoot":"","sources":["../src/swift-runtime.tsx"],"names":[],"mappings":"AAEA,wBAAsB,gBAAgB,CACpC,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,GAAG,IAAI,EAAE,OAAO,EAAE,GACjB,OAAO,CAAC,OAAO,CAAC,CA6BlB"}