termcast 1.3.9

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 (699) hide show
  1. package/dist/action-utils.d.ts +25 -0
  2. package/dist/action-utils.d.ts.map +1 -0
  3. package/dist/action-utils.js +209 -0
  4. package/dist/action-utils.js.map +1 -0
  5. package/dist/ai.d.ts +104 -0
  6. package/dist/ai.d.ts.map +1 -0
  7. package/dist/ai.js +135 -0
  8. package/dist/ai.js.map +1 -0
  9. package/dist/apis/ai.d.ts +104 -0
  10. package/dist/apis/ai.d.ts.map +1 -0
  11. package/dist/apis/ai.js +135 -0
  12. package/dist/apis/ai.js.map +1 -0
  13. package/dist/apis/cache.d.ts +84 -0
  14. package/dist/apis/cache.d.ts.map +1 -0
  15. package/dist/apis/cache.js +307 -0
  16. package/dist/apis/cache.js.map +1 -0
  17. package/dist/apis/cache.test.d.ts +2 -0
  18. package/dist/apis/cache.test.d.ts.map +1 -0
  19. package/dist/apis/cache.test.js +246 -0
  20. package/dist/apis/cache.test.js.map +1 -0
  21. package/dist/apis/clipboard.d.ts +36 -0
  22. package/dist/apis/clipboard.d.ts.map +1 -0
  23. package/dist/apis/clipboard.js +154 -0
  24. package/dist/apis/clipboard.js.map +1 -0
  25. package/dist/apis/environment.d.ts +63 -0
  26. package/dist/apis/environment.d.ts.map +1 -0
  27. package/dist/apis/environment.js +189 -0
  28. package/dist/apis/environment.js.map +1 -0
  29. package/dist/apis/hud.d.ts +7 -0
  30. package/dist/apis/hud.d.ts.map +1 -0
  31. package/dist/apis/hud.js +45 -0
  32. package/dist/apis/hud.js.map +1 -0
  33. package/dist/apis/localstorage.d.ts +13 -0
  34. package/dist/apis/localstorage.d.ts.map +1 -0
  35. package/dist/apis/localstorage.js +190 -0
  36. package/dist/apis/localstorage.js.map +1 -0
  37. package/dist/apis/localstorage.test.d.ts +2 -0
  38. package/dist/apis/localstorage.test.d.ts.map +1 -0
  39. package/dist/apis/localstorage.test.js +131 -0
  40. package/dist/apis/localstorage.test.js.map +1 -0
  41. package/dist/apis/oauth.d.ts +142 -0
  42. package/dist/apis/oauth.d.ts.map +1 -0
  43. package/dist/apis/oauth.js +551 -0
  44. package/dist/apis/oauth.js.map +1 -0
  45. package/dist/apis/preferences.d.ts +23 -0
  46. package/dist/apis/preferences.d.ts.map +1 -0
  47. package/dist/apis/preferences.js +105 -0
  48. package/dist/apis/preferences.js.map +1 -0
  49. package/dist/apis/toast.d.ts +81 -0
  50. package/dist/apis/toast.d.ts.map +1 -0
  51. package/dist/apis/toast.js +275 -0
  52. package/dist/apis/toast.js.map +1 -0
  53. package/dist/apis/toast.test.d.ts +2 -0
  54. package/dist/apis/toast.test.d.ts.map +1 -0
  55. package/dist/apis/toast.test.js +67 -0
  56. package/dist/apis/toast.test.js.map +1 -0
  57. package/dist/apis/window.d.ts +12 -0
  58. package/dist/apis/window.d.ts.map +1 -0
  59. package/dist/apis/window.js +47 -0
  60. package/dist/apis/window.js.map +1 -0
  61. package/dist/build.d.ts +15 -0
  62. package/dist/build.d.ts.map +1 -0
  63. package/dist/build.js +213 -0
  64. package/dist/build.js.map +1 -0
  65. package/dist/build.test.d.ts +2 -0
  66. package/dist/build.test.d.ts.map +1 -0
  67. package/dist/build.test.js +73 -0
  68. package/dist/build.test.js.map +1 -0
  69. package/dist/cache.d.ts +32 -0
  70. package/dist/cache.d.ts.map +1 -0
  71. package/dist/cache.js +205 -0
  72. package/dist/cache.js.map +1 -0
  73. package/dist/cache.test.d.ts +2 -0
  74. package/dist/cache.test.d.ts.map +1 -0
  75. package/dist/cache.test.js +246 -0
  76. package/dist/cache.test.js.map +1 -0
  77. package/dist/cli.d.ts +2 -0
  78. package/dist/cli.d.ts.map +1 -0
  79. package/dist/cli.js +278 -0
  80. package/dist/cli.js.map +1 -0
  81. package/dist/clipboard.d.ts +36 -0
  82. package/dist/clipboard.d.ts.map +1 -0
  83. package/dist/clipboard.js +154 -0
  84. package/dist/clipboard.js.map +1 -0
  85. package/dist/colors.d.ts +15 -0
  86. package/dist/colors.d.ts.map +1 -0
  87. package/dist/colors.js +13 -0
  88. package/dist/colors.js.map +1 -0
  89. package/dist/components/actions.d.ts +120 -0
  90. package/dist/components/actions.d.ts.map +1 -0
  91. package/dist/components/actions.js +371 -0
  92. package/dist/components/actions.js.map +1 -0
  93. package/dist/components/alert.d.ts +25 -0
  94. package/dist/components/alert.d.ts.map +1 -0
  95. package/dist/components/alert.js +99 -0
  96. package/dist/components/alert.js.map +1 -0
  97. package/dist/components/detail.d.ts +65 -0
  98. package/dist/components/detail.d.ts.map +1 -0
  99. package/dist/components/detail.js +147 -0
  100. package/dist/components/detail.js.map +1 -0
  101. package/dist/components/dropdown.d.ts +40 -0
  102. package/dist/components/dropdown.d.ts.map +1 -0
  103. package/dist/components/dropdown.js +202 -0
  104. package/dist/components/dropdown.js.map +1 -0
  105. package/dist/components/extension-preferences.d.ts +8 -0
  106. package/dist/components/extension-preferences.d.ts.map +1 -0
  107. package/dist/components/extension-preferences.js +139 -0
  108. package/dist/components/extension-preferences.js.map +1 -0
  109. package/dist/components/form/assign-components.d.ts +2 -0
  110. package/dist/components/form/assign-components.d.ts.map +1 -0
  111. package/dist/components/form/assign-components.js +22 -0
  112. package/dist/components/form/assign-components.js.map +1 -0
  113. package/dist/components/form/checkbox.d.ts +7 -0
  114. package/dist/components/form/checkbox.d.ts.map +1 -0
  115. package/dist/components/form/checkbox.js +46 -0
  116. package/dist/components/form/checkbox.js.map +1 -0
  117. package/dist/components/form/date-picker.d.ts +18 -0
  118. package/dist/components/form/date-picker.d.ts.map +1 -0
  119. package/dist/components/form/date-picker.js +69 -0
  120. package/dist/components/form/date-picker.js.map +1 -0
  121. package/dist/components/form/description.d.ts +7 -0
  122. package/dist/components/form/description.d.ts.map +1 -0
  123. package/dist/components/form/description.js +8 -0
  124. package/dist/components/form/description.js.map +1 -0
  125. package/dist/components/form/dropdown.d.ts +25 -0
  126. package/dist/components/form/dropdown.d.ts.map +1 -0
  127. package/dist/components/form/dropdown.js +286 -0
  128. package/dist/components/form/dropdown.js.map +1 -0
  129. package/dist/components/form/file-autocomplete.d.ts +12 -0
  130. package/dist/components/form/file-autocomplete.d.ts.map +1 -0
  131. package/dist/components/form/file-autocomplete.js +84 -0
  132. package/dist/components/form/file-autocomplete.js.map +1 -0
  133. package/dist/components/form/file-picker.d.ts +31 -0
  134. package/dist/components/form/file-picker.d.ts.map +1 -0
  135. package/dist/components/form/file-picker.js +113 -0
  136. package/dist/components/form/file-picker.js.map +1 -0
  137. package/dist/components/form/form-end.d.ts +2 -0
  138. package/dist/components/form/form-end.d.ts.map +1 -0
  139. package/dist/components/form/form-end.js +6 -0
  140. package/dist/components/form/form-end.js.map +1 -0
  141. package/dist/components/form/form-type-only.d.ts +174 -0
  142. package/dist/components/form/form-type-only.d.ts.map +1 -0
  143. package/dist/components/form/form-type-only.js +2 -0
  144. package/dist/components/form/form-type-only.js.map +1 -0
  145. package/dist/components/form/index.d.ts +46 -0
  146. package/dist/components/form/index.d.ts.map +1 -0
  147. package/dist/components/form/index.js +106 -0
  148. package/dist/components/form/index.js.map +1 -0
  149. package/dist/components/form/password-field.d.ts +7 -0
  150. package/dist/components/form/password-field.d.ts.map +1 -0
  151. package/dist/components/form/password-field.js +34 -0
  152. package/dist/components/form/password-field.js.map +1 -0
  153. package/dist/components/form/separator.d.ts +2 -0
  154. package/dist/components/form/separator.d.ts.map +1 -0
  155. package/dist/components/form/separator.js +8 -0
  156. package/dist/components/form/separator.js.map +1 -0
  157. package/dist/components/form/tagpicker.d.ts +134 -0
  158. package/dist/components/form/tagpicker.d.ts.map +1 -0
  159. package/dist/components/form/tagpicker.js +79 -0
  160. package/dist/components/form/tagpicker.js.map +1 -0
  161. package/dist/components/form/text-area.d.ts +8 -0
  162. package/dist/components/form/text-area.d.ts.map +1 -0
  163. package/dist/components/form/text-area.js +26 -0
  164. package/dist/components/form/text-area.js.map +1 -0
  165. package/dist/components/form/text-field.d.ts +7 -0
  166. package/dist/components/form/text-field.d.ts.map +1 -0
  167. package/dist/components/form/text-field.js +28 -0
  168. package/dist/components/form/text-field.js.map +1 -0
  169. package/dist/components/form/types.d.ts +43 -0
  170. package/dist/components/form/types.d.ts.map +1 -0
  171. package/dist/components/form/types.js +2 -0
  172. package/dist/components/form/types.js.map +1 -0
  173. package/dist/components/form/use-form-handling.d.ts +4 -0
  174. package/dist/components/form/use-form-handling.d.ts.map +1 -0
  175. package/dist/components/form/use-form-handling.js +37 -0
  176. package/dist/components/form/use-form-handling.js.map +1 -0
  177. package/dist/components/form/use-form-navigation.d.ts +8 -0
  178. package/dist/components/form/use-form-navigation.d.ts.map +1 -0
  179. package/dist/components/form/use-form-navigation.js +58 -0
  180. package/dist/components/form/use-form-navigation.js.map +1 -0
  181. package/dist/components/form/with-left-border.d.ts +17 -0
  182. package/dist/components/form/with-left-border.d.ts.map +1 -0
  183. package/dist/components/form/with-left-border.js +10 -0
  184. package/dist/components/form/with-left-border.js.map +1 -0
  185. package/dist/components/icon.d.ts +9 -0
  186. package/dist/components/icon.d.ts.map +1 -0
  187. package/dist/components/icon.js +485 -0
  188. package/dist/components/icon.js.map +1 -0
  189. package/dist/components/image.d.ts +19 -0
  190. package/dist/components/image.d.ts.map +1 -0
  191. package/dist/components/image.js +32 -0
  192. package/dist/components/image.js.map +1 -0
  193. package/dist/components/list.d.ts +234 -0
  194. package/dist/components/list.d.ts.map +1 -0
  195. package/dist/components/list.js +667 -0
  196. package/dist/components/list.js.map +1 -0
  197. package/dist/components/loading-bar.d.ts +8 -0
  198. package/dist/components/loading-bar.d.ts.map +1 -0
  199. package/dist/components/loading-bar.js +107 -0
  200. package/dist/components/loading-bar.js.map +1 -0
  201. package/dist/components/menubar-extra.d.ts +68 -0
  202. package/dist/components/menubar-extra.d.ts.map +1 -0
  203. package/dist/components/menubar-extra.js +39 -0
  204. package/dist/components/menubar-extra.js.map +1 -0
  205. package/dist/descendants.d.ts +25 -0
  206. package/dist/descendants.d.ts.map +1 -0
  207. package/dist/descendants.js +81 -0
  208. package/dist/descendants.js.map +1 -0
  209. package/dist/dev-ui.d.ts +7 -0
  210. package/dist/dev-ui.d.ts.map +1 -0
  211. package/dist/dev-ui.js +118 -0
  212. package/dist/dev-ui.js.map +1 -0
  213. package/dist/e2e-node.d.ts +63 -0
  214. package/dist/e2e-node.d.ts.map +1 -0
  215. package/dist/e2e-node.js +255 -0
  216. package/dist/e2e-node.js.map +1 -0
  217. package/dist/e2e.d.ts +39 -0
  218. package/dist/e2e.d.ts.map +1 -0
  219. package/dist/e2e.js +127 -0
  220. package/dist/e2e.js.map +1 -0
  221. package/dist/environment.d.ts +63 -0
  222. package/dist/environment.d.ts.map +1 -0
  223. package/dist/environment.js +189 -0
  224. package/dist/environment.js.map +1 -0
  225. package/dist/examples/action-show-in-finder.d.ts +2 -0
  226. package/dist/examples/action-show-in-finder.d.ts.map +1 -0
  227. package/dist/examples/action-show-in-finder.js +13 -0
  228. package/dist/examples/action-show-in-finder.js.map +1 -0
  229. package/dist/examples/datepicker.d.ts +2 -0
  230. package/dist/examples/datepicker.d.ts.map +1 -0
  231. package/dist/examples/datepicker.js +344 -0
  232. package/dist/examples/datepicker.js.map +1 -0
  233. package/dist/examples/environment-test.d.ts +2 -0
  234. package/dist/examples/environment-test.d.ts.map +1 -0
  235. package/dist/examples/environment-test.js +28 -0
  236. package/dist/examples/environment-test.js.map +1 -0
  237. package/dist/examples/error-boundary.d.ts +6 -0
  238. package/dist/examples/error-boundary.d.ts.map +1 -0
  239. package/dist/examples/error-boundary.js +67 -0
  240. package/dist/examples/error-boundary.js.map +1 -0
  241. package/dist/examples/form-basic-arrow-keys.vitest.d.ts +2 -0
  242. package/dist/examples/form-basic-arrow-keys.vitest.d.ts.map +1 -0
  243. package/dist/examples/form-basic-arrow-keys.vitest.js +46 -0
  244. package/dist/examples/form-basic-arrow-keys.vitest.js.map +1 -0
  245. package/dist/examples/form-basic.d.ts +2 -0
  246. package/dist/examples/form-basic.d.ts.map +1 -0
  247. package/dist/examples/form-basic.js +21 -0
  248. package/dist/examples/form-basic.js.map +1 -0
  249. package/dist/examples/form-basic.vitest.d.ts +2 -0
  250. package/dist/examples/form-basic.vitest.d.ts.map +1 -0
  251. package/dist/examples/form-basic.vitest.js +995 -0
  252. package/dist/examples/form-basic.vitest.js.map +1 -0
  253. package/dist/examples/form-dropdown-with-sections.d.ts +2 -0
  254. package/dist/examples/form-dropdown-with-sections.d.ts.map +1 -0
  255. package/dist/examples/form-dropdown-with-sections.js +13 -0
  256. package/dist/examples/form-dropdown-with-sections.js.map +1 -0
  257. package/dist/examples/form-dropdown-with-sections.vitest.d.ts +2 -0
  258. package/dist/examples/form-dropdown-with-sections.vitest.d.ts.map +1 -0
  259. package/dist/examples/form-dropdown-with-sections.vitest.js +75 -0
  260. package/dist/examples/form-dropdown-with-sections.vitest.js.map +1 -0
  261. package/dist/examples/form-dropdown.d.ts +2 -0
  262. package/dist/examples/form-dropdown.d.ts.map +1 -0
  263. package/dist/examples/form-dropdown.js +13 -0
  264. package/dist/examples/form-dropdown.js.map +1 -0
  265. package/dist/examples/form-dropdown.vitest.d.ts +2 -0
  266. package/dist/examples/form-dropdown.vitest.d.ts.map +1 -0
  267. package/dist/examples/form-dropdown.vitest.js +722 -0
  268. package/dist/examples/form-dropdown.vitest.js.map +1 -0
  269. package/dist/examples/form-multiselect-dropdown.d.ts +2 -0
  270. package/dist/examples/form-multiselect-dropdown.d.ts.map +1 -0
  271. package/dist/examples/form-multiselect-dropdown.js +13 -0
  272. package/dist/examples/form-multiselect-dropdown.js.map +1 -0
  273. package/dist/examples/form-tagpicker.d.ts +2 -0
  274. package/dist/examples/form-tagpicker.d.ts.map +1 -0
  275. package/dist/examples/form-tagpicker.js +13 -0
  276. package/dist/examples/form-tagpicker.js.map +1 -0
  277. package/dist/examples/form-tagpicker.vitest.d.ts +2 -0
  278. package/dist/examples/form-tagpicker.vitest.d.ts.map +1 -0
  279. package/dist/examples/form-tagpicker.vitest.js +491 -0
  280. package/dist/examples/form-tagpicker.vitest.js.map +1 -0
  281. package/dist/examples/internal/descendants-filtering.d.ts +2 -0
  282. package/dist/examples/internal/descendants-filtering.d.ts.map +1 -0
  283. package/dist/examples/internal/descendants-filtering.js +144 -0
  284. package/dist/examples/internal/descendants-filtering.js.map +1 -0
  285. package/dist/examples/internal/descendants.d.ts +2 -0
  286. package/dist/examples/internal/descendants.d.ts.map +1 -0
  287. package/dist/examples/internal/descendants.js +134 -0
  288. package/dist/examples/internal/descendants.js.map +1 -0
  289. package/dist/examples/internal/nested-boxes.d.ts +2 -0
  290. package/dist/examples/internal/nested-boxes.d.ts.map +1 -0
  291. package/dist/examples/internal/nested-boxes.js +7 -0
  292. package/dist/examples/internal/nested-boxes.js.map +1 -0
  293. package/dist/examples/internal/scrollbox-demo.d.ts +2 -0
  294. package/dist/examples/internal/scrollbox-demo.d.ts.map +1 -0
  295. package/dist/examples/internal/scrollbox-demo.js +104 -0
  296. package/dist/examples/internal/scrollbox-demo.js.map +1 -0
  297. package/dist/examples/internal/simple-dialog.d.ts +2 -0
  298. package/dist/examples/internal/simple-dialog.d.ts.map +1 -0
  299. package/dist/examples/internal/simple-dialog.js +43 -0
  300. package/dist/examples/internal/simple-dialog.js.map +1 -0
  301. package/dist/examples/internal/text-stacking.d.ts +2 -0
  302. package/dist/examples/internal/text-stacking.d.ts.map +1 -0
  303. package/dist/examples/internal/text-stacking.js +53 -0
  304. package/dist/examples/internal/text-stacking.js.map +1 -0
  305. package/dist/examples/internal/unicode-square-repro.d.ts +2 -0
  306. package/dist/examples/internal/unicode-square-repro.d.ts.map +1 -0
  307. package/dist/examples/internal/unicode-square-repro.js +7 -0
  308. package/dist/examples/internal/unicode-square-repro.js.map +1 -0
  309. package/dist/examples/list-dropdown-default.d.ts +2 -0
  310. package/dist/examples/list-dropdown-default.d.ts.map +1 -0
  311. package/dist/examples/list-dropdown-default.js +14 -0
  312. package/dist/examples/list-dropdown-default.js.map +1 -0
  313. package/dist/examples/list-dropdown-default.vitest.d.ts +2 -0
  314. package/dist/examples/list-dropdown-default.vitest.d.ts.map +1 -0
  315. package/dist/examples/list-dropdown-default.vitest.js +164 -0
  316. package/dist/examples/list-dropdown-default.vitest.js.map +1 -0
  317. package/dist/examples/list-fetch-data.d.ts +2 -0
  318. package/dist/examples/list-fetch-data.d.ts.map +1 -0
  319. package/dist/examples/list-fetch-data.js +87 -0
  320. package/dist/examples/list-fetch-data.js.map +1 -0
  321. package/dist/examples/list-fetch-data.vitest.d.ts +2 -0
  322. package/dist/examples/list-fetch-data.vitest.d.ts.map +1 -0
  323. package/dist/examples/list-fetch-data.vitest.js +103 -0
  324. package/dist/examples/list-fetch-data.vitest.js.map +1 -0
  325. package/dist/examples/list-filter-navigation.d.ts +2 -0
  326. package/dist/examples/list-filter-navigation.d.ts.map +1 -0
  327. package/dist/examples/list-filter-navigation.js +8 -0
  328. package/dist/examples/list-filter-navigation.js.map +1 -0
  329. package/dist/examples/list-with-detail.d.ts +2 -0
  330. package/dist/examples/list-with-detail.d.ts.map +1 -0
  331. package/dist/examples/list-with-detail.js +94 -0
  332. package/dist/examples/list-with-detail.js.map +1 -0
  333. package/dist/examples/list-with-detail.vitest.d.ts +2 -0
  334. package/dist/examples/list-with-detail.vitest.d.ts.map +1 -0
  335. package/dist/examples/list-with-detail.vitest.js +438 -0
  336. package/dist/examples/list-with-detail.vitest.js.map +1 -0
  337. package/dist/examples/list-with-dropdown.d.ts +2 -0
  338. package/dist/examples/list-with-dropdown.d.ts.map +1 -0
  339. package/dist/examples/list-with-dropdown.js +43 -0
  340. package/dist/examples/list-with-dropdown.js.map +1 -0
  341. package/dist/examples/list-with-dropdown.vitest.d.ts +2 -0
  342. package/dist/examples/list-with-dropdown.vitest.d.ts.map +1 -0
  343. package/dist/examples/list-with-dropdown.vitest.js +297 -0
  344. package/dist/examples/list-with-dropdown.vitest.js.map +1 -0
  345. package/dist/examples/list-with-sections.d.ts +2 -0
  346. package/dist/examples/list-with-sections.d.ts.map +1 -0
  347. package/dist/examples/list-with-sections.js +67 -0
  348. package/dist/examples/list-with-sections.js.map +1 -0
  349. package/dist/examples/list-with-sections.vitest.d.ts +2 -0
  350. package/dist/examples/list-with-sections.vitest.d.ts.map +1 -0
  351. package/dist/examples/list-with-sections.vitest.js +441 -0
  352. package/dist/examples/list-with-sections.vitest.js.map +1 -0
  353. package/dist/examples/miscellaneous.d.ts +2 -0
  354. package/dist/examples/miscellaneous.d.ts.map +1 -0
  355. package/dist/examples/miscellaneous.js +313 -0
  356. package/dist/examples/miscellaneous.js.map +1 -0
  357. package/dist/examples/nested-navigation.d.ts +2 -0
  358. package/dist/examples/nested-navigation.d.ts.map +1 -0
  359. package/dist/examples/nested-navigation.js +35 -0
  360. package/dist/examples/nested-navigation.js.map +1 -0
  361. package/dist/examples/preferences-test.d.ts +2 -0
  362. package/dist/examples/preferences-test.d.ts.map +1 -0
  363. package/dist/examples/preferences-test.js +43 -0
  364. package/dist/examples/preferences-test.js.map +1 -0
  365. package/dist/examples/simple-dropdown.d.ts +2 -0
  366. package/dist/examples/simple-dropdown.d.ts.map +1 -0
  367. package/dist/examples/simple-dropdown.js +15 -0
  368. package/dist/examples/simple-dropdown.js.map +1 -0
  369. package/dist/examples/simple-file-picker.d.ts +2 -0
  370. package/dist/examples/simple-file-picker.d.ts.map +1 -0
  371. package/dist/examples/simple-file-picker.js +21 -0
  372. package/dist/examples/simple-file-picker.js.map +1 -0
  373. package/dist/examples/simple-file-picker.vitest.d.ts +2 -0
  374. package/dist/examples/simple-file-picker.vitest.d.ts.map +1 -0
  375. package/dist/examples/simple-file-picker.vitest.js +277 -0
  376. package/dist/examples/simple-file-picker.vitest.js.map +1 -0
  377. package/dist/examples/simple-grid.d.ts +2 -0
  378. package/dist/examples/simple-grid.d.ts.map +1 -0
  379. package/dist/examples/simple-grid.js +51 -0
  380. package/dist/examples/simple-grid.js.map +1 -0
  381. package/dist/examples/simple-grid.vitest.d.ts +2 -0
  382. package/dist/examples/simple-grid.vitest.d.ts.map +1 -0
  383. package/dist/examples/simple-grid.vitest.js +498 -0
  384. package/dist/examples/simple-grid.vitest.js.map +1 -0
  385. package/dist/examples/simple-hud.d.ts +2 -0
  386. package/dist/examples/simple-hud.d.ts.map +1 -0
  387. package/dist/examples/simple-hud.js +18 -0
  388. package/dist/examples/simple-hud.js.map +1 -0
  389. package/dist/examples/simple-list-search.d.ts +2 -0
  390. package/dist/examples/simple-list-search.d.ts.map +1 -0
  391. package/dist/examples/simple-list-search.js +26 -0
  392. package/dist/examples/simple-list-search.js.map +1 -0
  393. package/dist/examples/simple-list.d.ts +2 -0
  394. package/dist/examples/simple-list.d.ts.map +1 -0
  395. package/dist/examples/simple-list.js +50 -0
  396. package/dist/examples/simple-list.js.map +1 -0
  397. package/dist/examples/simple-navigation.d.ts +2 -0
  398. package/dist/examples/simple-navigation.d.ts.map +1 -0
  399. package/dist/examples/simple-navigation.js +36 -0
  400. package/dist/examples/simple-navigation.js.map +1 -0
  401. package/dist/examples/simple-navigation.vitest.d.ts +2 -0
  402. package/dist/examples/simple-navigation.vitest.d.ts.map +1 -0
  403. package/dist/examples/simple-navigation.vitest.js +522 -0
  404. package/dist/examples/simple-navigation.vitest.js.map +1 -0
  405. package/dist/examples/store.d.ts +2 -0
  406. package/dist/examples/store.d.ts.map +1 -0
  407. package/dist/examples/store.js +5 -0
  408. package/dist/examples/store.js.map +1 -0
  409. package/dist/examples/store.vitest.d.ts +2 -0
  410. package/dist/examples/store.vitest.d.ts.map +1 -0
  411. package/dist/examples/store.vitest.js +52 -0
  412. package/dist/examples/store.vitest.js.map +1 -0
  413. package/dist/examples/tanstack-demo.d.ts +2 -0
  414. package/dist/examples/tanstack-demo.d.ts.map +1 -0
  415. package/dist/examples/tanstack-demo.js +51 -0
  416. package/dist/examples/tanstack-demo.js.map +1 -0
  417. package/dist/examples/use-promise-demo.d.ts +2 -0
  418. package/dist/examples/use-promise-demo.d.ts.map +1 -0
  419. package/dist/examples/use-promise-demo.js +45 -0
  420. package/dist/examples/use-promise-demo.js.map +1 -0
  421. package/dist/extensions/dev.d.ts +7 -0
  422. package/dist/extensions/dev.d.ts.map +1 -0
  423. package/dist/extensions/dev.js +124 -0
  424. package/dist/extensions/dev.js.map +1 -0
  425. package/dist/extensions/home.d.ts +8 -0
  426. package/dist/extensions/home.d.ts.map +1 -0
  427. package/dist/extensions/home.js +184 -0
  428. package/dist/extensions/home.js.map +1 -0
  429. package/dist/extensions/store.d.ts +6 -0
  430. package/dist/extensions/store.d.ts.map +1 -0
  431. package/dist/extensions/store.js +203 -0
  432. package/dist/extensions/store.js.map +1 -0
  433. package/dist/globals.d.ts +9 -0
  434. package/dist/globals.d.ts.map +1 -0
  435. package/dist/globals.js +21 -0
  436. package/dist/globals.js.map +1 -0
  437. package/dist/home-command.d.ts +8 -0
  438. package/dist/home-command.d.ts.map +1 -0
  439. package/dist/home-command.js +181 -0
  440. package/dist/home-command.js.map +1 -0
  441. package/dist/hooks/hooks.test.d.ts +2 -0
  442. package/dist/hooks/hooks.test.d.ts.map +1 -0
  443. package/dist/hooks/hooks.test.js +37 -0
  444. package/dist/hooks/hooks.test.js.map +1 -0
  445. package/dist/hooks/index.d.ts +6 -0
  446. package/dist/hooks/index.d.ts.map +1 -0
  447. package/dist/hooks/index.js +6 -0
  448. package/dist/hooks/index.js.map +1 -0
  449. package/dist/hooks/use-action-panel.d.ts +16 -0
  450. package/dist/hooks/use-action-panel.d.ts.map +1 -0
  451. package/dist/hooks/use-action-panel.js +19 -0
  452. package/dist/hooks/use-action-panel.js.map +1 -0
  453. package/dist/hooks/use-id.d.ts +9 -0
  454. package/dist/hooks/use-id.d.ts.map +1 -0
  455. package/dist/hooks/use-id.js +17 -0
  456. package/dist/hooks/use-id.js.map +1 -0
  457. package/dist/hooks/use-unstable-ai.d.ts +9 -0
  458. package/dist/hooks/use-unstable-ai.d.ts.map +1 -0
  459. package/dist/hooks/use-unstable-ai.js +13 -0
  460. package/dist/hooks/use-unstable-ai.js.map +1 -0
  461. package/dist/hooks.d.ts +10 -0
  462. package/dist/hooks.d.ts.map +1 -0
  463. package/dist/hooks.js +20 -0
  464. package/dist/hooks.js.map +1 -0
  465. package/dist/hover-repro.d.ts +2 -0
  466. package/dist/hover-repro.d.ts.map +1 -0
  467. package/dist/hover-repro.js +20 -0
  468. package/dist/hover-repro.js.map +1 -0
  469. package/dist/index.d.ts +58 -0
  470. package/dist/index.d.ts.map +1 -0
  471. package/dist/index.js +71 -0
  472. package/dist/index.js.map +1 -0
  473. package/dist/internal/date-picker-widget.d.ts +9 -0
  474. package/dist/internal/date-picker-widget.d.ts.map +1 -0
  475. package/dist/internal/date-picker-widget.js +380 -0
  476. package/dist/internal/date-picker-widget.js.map +1 -0
  477. package/dist/internal/dialog.d.ts +21 -0
  478. package/dist/internal/dialog.d.ts.map +1 -0
  479. package/dist/internal/dialog.js +122 -0
  480. package/dist/internal/dialog.js.map +1 -0
  481. package/dist/internal/error-handler.d.ts +2 -0
  482. package/dist/internal/error-handler.d.ts.map +1 -0
  483. package/dist/internal/error-handler.js +29 -0
  484. package/dist/internal/error-handler.js.map +1 -0
  485. package/dist/internal/focus-context.d.ts +10 -0
  486. package/dist/internal/focus-context.d.ts.map +1 -0
  487. package/dist/internal/focus-context.js +12 -0
  488. package/dist/internal/focus-context.js.map +1 -0
  489. package/dist/internal/navigation.d.ts +18 -0
  490. package/dist/internal/navigation.d.ts.map +1 -0
  491. package/dist/internal/navigation.js +83 -0
  492. package/dist/internal/navigation.js.map +1 -0
  493. package/dist/internal/providers.d.ts +8 -0
  494. package/dist/internal/providers.d.ts.map +1 -0
  495. package/dist/internal/providers.js +262 -0
  496. package/dist/internal/providers.js.map +1 -0
  497. package/dist/localstorage.d.ts +13 -0
  498. package/dist/localstorage.d.ts.map +1 -0
  499. package/dist/localstorage.js +190 -0
  500. package/dist/localstorage.js.map +1 -0
  501. package/dist/localstorage.test.d.ts +2 -0
  502. package/dist/localstorage.test.d.ts.map +1 -0
  503. package/dist/localstorage.test.js +131 -0
  504. package/dist/localstorage.test.js.map +1 -0
  505. package/dist/logger.d.ts +7 -0
  506. package/dist/logger.d.ts.map +1 -0
  507. package/dist/logger.js +70 -0
  508. package/dist/logger.js.map +1 -0
  509. package/dist/oauth.d.ts +142 -0
  510. package/dist/oauth.d.ts.map +1 -0
  511. package/dist/oauth.js +551 -0
  512. package/dist/oauth.js.map +1 -0
  513. package/dist/package-json.d.ts +84 -0
  514. package/dist/package-json.d.ts.map +1 -0
  515. package/dist/package-json.js +77 -0
  516. package/dist/package-json.js.map +1 -0
  517. package/dist/preferences.d.ts +23 -0
  518. package/dist/preferences.d.ts.map +1 -0
  519. package/dist/preferences.js +105 -0
  520. package/dist/preferences.js.map +1 -0
  521. package/dist/preload.d.ts +2 -0
  522. package/dist/preload.d.ts.map +1 -0
  523. package/dist/preload.js +28 -0
  524. package/dist/preload.js.map +1 -0
  525. package/dist/state.d.ts +26 -0
  526. package/dist/state.d.ts.map +1 -0
  527. package/dist/state.js +18 -0
  528. package/dist/state.js.map +1 -0
  529. package/dist/store-api/download.d.ts +8 -0
  530. package/dist/store-api/download.d.ts.map +1 -0
  531. package/dist/store-api/download.js +37 -0
  532. package/dist/store-api/download.js.map +1 -0
  533. package/dist/store-api/download.test.d.ts +2 -0
  534. package/dist/store-api/download.test.d.ts.map +1 -0
  535. package/dist/store-api/download.test.js +36 -0
  536. package/dist/store-api/download.test.js.map +1 -0
  537. package/dist/store-api/extension.d.ts +87 -0
  538. package/dist/store-api/extension.d.ts.map +1 -0
  539. package/dist/store-api/extension.js +23 -0
  540. package/dist/store-api/extension.js.map +1 -0
  541. package/dist/store-api/extension.test.d.ts +2 -0
  542. package/dist/store-api/extension.test.d.ts.map +1 -0
  543. package/dist/store-api/extension.test.js +22 -0
  544. package/dist/store-api/extension.test.js.map +1 -0
  545. package/dist/store-api/search.d.ts +101 -0
  546. package/dist/store-api/search.d.ts.map +1 -0
  547. package/dist/store-api/search.js +29 -0
  548. package/dist/store-api/search.js.map +1 -0
  549. package/dist/store-api/search.test.d.ts +2 -0
  550. package/dist/store-api/search.test.d.ts.map +1 -0
  551. package/dist/store-api/search.test.js +45 -0
  552. package/dist/store-api/search.test.js.map +1 -0
  553. package/dist/store.d.ts +21 -0
  554. package/dist/store.d.ts.map +1 -0
  555. package/dist/store.js +84 -0
  556. package/dist/store.js.map +1 -0
  557. package/dist/theme.d.ts +20 -0
  558. package/dist/theme.d.ts.map +1 -0
  559. package/dist/theme.js +26 -0
  560. package/dist/theme.js.map +1 -0
  561. package/dist/toast.d.ts +44 -0
  562. package/dist/toast.d.ts.map +1 -0
  563. package/dist/toast.js +221 -0
  564. package/dist/toast.js.map +1 -0
  565. package/dist/utils/file-system.d.ts +11 -0
  566. package/dist/utils/file-system.d.ts.map +1 -0
  567. package/dist/utils/file-system.js +66 -0
  568. package/dist/utils/file-system.js.map +1 -0
  569. package/dist/utils.d.ts +234 -0
  570. package/dist/utils.d.ts.map +1 -0
  571. package/dist/utils.js +473 -0
  572. package/dist/utils.js.map +1 -0
  573. package/dist/utils.test.d.ts +2 -0
  574. package/dist/utils.test.d.ts.map +1 -0
  575. package/dist/utils.test.js +152 -0
  576. package/dist/utils.test.js.map +1 -0
  577. package/dist/window.d.ts +12 -0
  578. package/dist/window.d.ts.map +1 -0
  579. package/dist/window.js +48 -0
  580. package/dist/window.js.map +1 -0
  581. package/package.json +56 -0
  582. package/src/action-utils.tsx +207 -0
  583. package/src/apis/ai.tsx +177 -0
  584. package/src/apis/cache.test.ts +311 -0
  585. package/src/apis/cache.tsx +394 -0
  586. package/src/apis/clipboard.tsx +200 -0
  587. package/src/apis/environment.tsx +239 -0
  588. package/src/apis/hud.tsx +86 -0
  589. package/src/apis/localstorage.test.ts +164 -0
  590. package/src/apis/localstorage.tsx +215 -0
  591. package/src/apis/oauth.tsx +744 -0
  592. package/src/apis/preferences.tsx +140 -0
  593. package/src/apis/toast.tsx +388 -0
  594. package/src/apis/window.tsx +61 -0
  595. package/src/build.test.tsx +78 -0
  596. package/src/build.tsx +273 -0
  597. package/src/cli.tsx +328 -0
  598. package/src/colors.tsx +15 -0
  599. package/src/components/actions.tsx +718 -0
  600. package/src/components/alert.tsx +205 -0
  601. package/src/components/detail.tsx +359 -0
  602. package/src/components/dropdown.tsx +438 -0
  603. package/src/components/extension-preferences.tsx +269 -0
  604. package/src/components/form/assign-components.tsx +22 -0
  605. package/src/components/form/checkbox.tsx +96 -0
  606. package/src/components/form/date-picker.tsx +125 -0
  607. package/src/components/form/description.tsx +30 -0
  608. package/src/components/form/dropdown.tsx +512 -0
  609. package/src/components/form/file-autocomplete.tsx +141 -0
  610. package/src/components/form/file-picker.tsx +233 -0
  611. package/src/components/form/form-end.tsx +6 -0
  612. package/src/components/form/index.tsx +242 -0
  613. package/src/components/form/password-field.tsx +87 -0
  614. package/src/components/form/separator.tsx +15 -0
  615. package/src/components/form/tagpicker.tsx +245 -0
  616. package/src/components/form/text-area.tsx +82 -0
  617. package/src/components/form/text-field.tsx +82 -0
  618. package/src/components/form/types.tsx +49 -0
  619. package/src/components/form/use-form-navigation.tsx +65 -0
  620. package/src/components/form/with-left-border.tsx +53 -0
  621. package/src/components/icon.tsx +496 -0
  622. package/src/components/image.tsx +54 -0
  623. package/src/components/list.tsx +1564 -0
  624. package/src/components/loading-bar.tsx +141 -0
  625. package/src/components/menubar-extra.tsx +181 -0
  626. package/src/descendants.tsx +134 -0
  627. package/src/e2e-node.tsx +303 -0
  628. package/src/e2e.tsx +147 -0
  629. package/src/examples/action-show-in-finder.tsx +80 -0
  630. package/src/examples/environment-test.tsx +50 -0
  631. package/src/examples/error-boundary.tsx +217 -0
  632. package/src/examples/form-basic.tsx +122 -0
  633. package/src/examples/form-basic.vitest.tsx +1035 -0
  634. package/src/examples/form-dropdown.tsx +102 -0
  635. package/src/examples/form-dropdown.vitest.tsx +758 -0
  636. package/src/examples/form-tagpicker.tsx +66 -0
  637. package/src/examples/form-tagpicker.vitest.tsx +523 -0
  638. package/src/examples/internal/descendants-filtering.tsx +223 -0
  639. package/src/examples/internal/descendants.tsx +208 -0
  640. package/src/examples/internal/scrollbox-demo.tsx +149 -0
  641. package/src/examples/internal/simple-dialog.tsx +124 -0
  642. package/src/examples/internal/text-stacking.tsx +90 -0
  643. package/src/examples/list-dropdown-default.tsx +69 -0
  644. package/src/examples/list-dropdown-default.vitest.tsx +187 -0
  645. package/src/examples/list-fetch-data.tsx +123 -0
  646. package/src/examples/list-fetch-data.vitest.tsx +110 -0
  647. package/src/examples/list-with-detail.tsx +161 -0
  648. package/src/examples/list-with-detail.vitest.tsx +468 -0
  649. package/src/examples/list-with-dropdown.tsx +97 -0
  650. package/src/examples/list-with-dropdown.vitest.tsx +324 -0
  651. package/src/examples/list-with-sections.tsx +196 -0
  652. package/src/examples/list-with-sections.vitest.tsx +479 -0
  653. package/src/examples/miscellaneous.tsx +780 -0
  654. package/src/examples/nested-navigation.tsx +118 -0
  655. package/src/examples/preferences-test.tsx +82 -0
  656. package/src/examples/simple-dropdown.tsx +95 -0
  657. package/src/examples/simple-file-picker.tsx +75 -0
  658. package/src/examples/simple-file-picker.vitest.tsx +306 -0
  659. package/src/examples/simple-grid.tsx +149 -0
  660. package/src/examples/simple-grid.vitest.tsx +535 -0
  661. package/src/examples/simple-hud.tsx +60 -0
  662. package/src/examples/simple-list-search.tsx +93 -0
  663. package/src/examples/simple-list.tsx +149 -0
  664. package/src/examples/simple-navigation.tsx +89 -0
  665. package/src/examples/simple-navigation.vitest.tsx +571 -0
  666. package/src/examples/store.tsx +4 -0
  667. package/src/examples/store.vitest.tsx +59 -0
  668. package/src/examples/tanstack-demo.tsx +104 -0
  669. package/src/examples/use-promise-demo.tsx +96 -0
  670. package/src/extensions/dev.tsx +215 -0
  671. package/src/extensions/home.tsx +332 -0
  672. package/src/extensions/store.tsx +375 -0
  673. package/src/globals.ts +34 -0
  674. package/src/hooks/index.tsx +8 -0
  675. package/src/hooks/use-action-panel.tsx +28 -0
  676. package/src/hooks/use-id.tsx +19 -0
  677. package/src/hooks/use-unstable-ai.tsx +15 -0
  678. package/src/hooks.tsx +22 -0
  679. package/src/index.tsx +240 -0
  680. package/src/internal/date-picker-widget.tsx +500 -0
  681. package/src/internal/dialog.tsx +202 -0
  682. package/src/internal/error-handler.tsx +32 -0
  683. package/src/internal/focus-context.tsx +23 -0
  684. package/src/internal/navigation.tsx +149 -0
  685. package/src/internal/providers.tsx +430 -0
  686. package/src/logger.tsx +84 -0
  687. package/src/package-json.tsx +197 -0
  688. package/src/preload.tsx +32 -0
  689. package/src/state.tsx +49 -0
  690. package/src/store-api/download.test.tsx +38 -0
  691. package/src/store-api/download.tsx +52 -0
  692. package/src/store-api/extension.test.tsx +24 -0
  693. package/src/store-api/extension.tsx +123 -0
  694. package/src/store-api/search.test.tsx +50 -0
  695. package/src/store-api/search.tsx +146 -0
  696. package/src/theme.tsx +31 -0
  697. package/src/utils/file-system.ts +87 -0
  698. package/src/utils.test.tsx +204 -0
  699. package/src/utils.tsx +657 -0
@@ -0,0 +1,77 @@
1
+ import fs from 'node:fs';
2
+ import path from 'node:path';
3
+ export function parsePackageJson({ packageJsonPath, } = {}) {
4
+ const resolvedPath = packageJsonPath || path.join(process.cwd(), 'package.json');
5
+ if (!fs.existsSync(resolvedPath)) {
6
+ throw new Error(`Package.json not found at: ${resolvedPath}`);
7
+ }
8
+ const rawContent = fs.readFileSync(resolvedPath, 'utf-8');
9
+ const packageJson = JSON.parse(rawContent);
10
+ const raycastConfig = {
11
+ name: packageJson.name || '',
12
+ title: packageJson.title || packageJson.name || '',
13
+ description: packageJson.description || '',
14
+ icon: packageJson.icon,
15
+ author: packageJson.author,
16
+ categories: packageJson.categories || [],
17
+ license: packageJson.license,
18
+ commands: packageJson.commands || [],
19
+ tools: packageJson.tools || [],
20
+ platforms: packageJson.platforms,
21
+ ai: packageJson.ai,
22
+ owner: packageJson.owner,
23
+ access: packageJson.access,
24
+ contributors: packageJson.contributors || [],
25
+ pastContributors: packageJson.pastContributors || [],
26
+ keywords: packageJson.keywords || [],
27
+ preferences: packageJson.preferences || [],
28
+ external: packageJson.external || [],
29
+ };
30
+ return raycastConfig;
31
+ }
32
+ export function getCommandsWithFiles({ packageJsonPath, } = {}) {
33
+ const resolvedPath = packageJsonPath || path.join(process.cwd(), 'package.json');
34
+ const projectRoot = path.dirname(resolvedPath);
35
+ const packageJson = parsePackageJson({ packageJsonPath: resolvedPath });
36
+ const commands = (packageJson.commands || []).map((command) => {
37
+ const possibleExtensions = ['.tsx', '.ts', '.jsx', '.js'];
38
+ let filePath = '';
39
+ let exists = false;
40
+ // First, look for the file outside "src"
41
+ for (const ext of possibleExtensions) {
42
+ const candidatePath = path.join(projectRoot, `${command.name}${ext}`);
43
+ if (fs.existsSync(candidatePath)) {
44
+ filePath = candidatePath;
45
+ exists = true;
46
+ break;
47
+ }
48
+ }
49
+ // If not found, look for the file inside "src"
50
+ if (!exists) {
51
+ for (const ext of possibleExtensions) {
52
+ const candidatePath = path.join(projectRoot, 'src', `${command.name}${ext}`);
53
+ if (fs.existsSync(candidatePath)) {
54
+ filePath = candidatePath;
55
+ exists = true;
56
+ break;
57
+ }
58
+ }
59
+ }
60
+ // If still not found, default to "src/commandName.tsx"
61
+ if (!filePath) {
62
+ filePath = path.join(projectRoot, 'src', `${command.name}.tsx`);
63
+ }
64
+ return {
65
+ ...command,
66
+ filePath,
67
+ exists,
68
+ };
69
+ });
70
+ return {
71
+ packageJson,
72
+ packageJsonPath: resolvedPath,
73
+ projectRoot,
74
+ commands,
75
+ };
76
+ }
77
+ //# sourceMappingURL=package-json.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-json.js","sourceRoot":"","sources":["../src/package-json.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ export type PreferenceValues = {
2
+ [preferenceName: string]: any;
3
+ };
4
+ /**
5
+ * A function to access the preference values that have been passed to the command.
6
+ * Each preference name is mapped to its value, and the defined default values are used as fallback values.
7
+ *
8
+ * @returns An object with the preference names as property key and the typed value as property value.
9
+ */
10
+ export declare function getPreferenceValues<Values extends PreferenceValues = PreferenceValues>(): Values;
11
+ /**
12
+ * Opens the extension's preferences screen.
13
+ *
14
+ * @returns A Promise that resolves when the extensions preferences screen is opened.
15
+ */
16
+ export declare function openExtensionPreferences(): Promise<void>;
17
+ /**
18
+ * Opens the command's preferences screen.
19
+ *
20
+ * @returns A Promise that resolves when the command's preferences screen is opened.
21
+ */
22
+ export declare function openCommandPreferences(): Promise<void>;
23
+ //# sourceMappingURL=preferences.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preferences.d.ts","sourceRoot":"","sources":["../src/preferences.tsx"],"names":[],"mappings":"AAMA,MAAM,MAAM,gBAAgB,GAAG;IAC7B,CAAC,cAAc,EAAE,MAAM,GAAG,GAAG,CAAA;CAC9B,CAAA;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,SAAS,gBAAgB,GAAG,gBAAgB,KAC/C,MAAM,CA4DV;AAED;;;;GAIG;AACH,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC,CAqB9D;AAED;;;;GAIG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC,CA0B5D"}
@@ -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":";AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oDAAoD,CAAA;AAMzF;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB;IAGjC,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAA;IACjC,MAAM,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,aAAa,EAAE,GAAG,KAAK,CAAA;IAEzE,yDAAyD;IACzD,IAAI,aAAa,GAAkB,IAAI,CAAA;IACvC,IAAI,oBAAoB,EAAE,IAAI,EAAE,CAAC;QAC/B,aAAa,GAAG,oBAAoB,CAAC,IAAI,CAAA;IAC3C,CAAC;SAAM,IAAI,aAAa,EAAE,CAAC;QACzB,iEAAiE;QACjE,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAC1C,aAAa,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IACjD,CAAC;IAED,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAA;QACxD,OAAO,EAAY,CAAA;IACrB,CAAC;IAED,IAAI,CAAC;QACH,0FAA0F;QAC1F,IAAI,kBAAkB,EAAE,CAAC;YACvB,MAAM,qBAAqB,GAAG,eAAe,aAAa,IAAI,kBAAkB,EAAE,CAAA;YAClF,MAAM,kBAAkB,GAAG,YAAY,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAA;YAE1E,IAAI,kBAAkB,IAAI,OAAO,kBAAkB,KAAK,QAAQ,EAAE,CAAC;gBACjE,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAA;oBAC7C,MAAM,CAAC,GAAG,CACR,kCAAkC,aAAa,IAAI,kBAAkB,GAAG,EACxE,MAAM,CACP,CAAA;oBACD,OAAO,MAAgB,CAAA;gBACzB,CAAC;gBAAC,OAAO,UAAU,EAAE,CAAC;oBACpB,MAAM,CAAC,KAAK,CAAC,sCAAsC,EAAE,UAAU,CAAC,CAAA;gBAClE,CAAC;YACH,CAAC;QACH,CAAC;QAED,2CAA2C;QAC3C,MAAM,uBAAuB,GAAG,eAAe,aAAa,EAAE,CAAA;QAC9D,MAAM,oBAAoB,GAAG,YAAY,CAAC,WAAW,CACnD,uBAAuB,CACxB,CAAA;QAED,IAAI,oBAAoB,IAAI,OAAO,oBAAoB,KAAK,QAAQ,EAAE,CAAC;YACrE,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAA;gBAC/C,MAAM,CAAC,GAAG,CAAC,oCAAoC,aAAa,GAAG,EAAE,MAAM,CAAC,CAAA;gBACxE,OAAO,MAAgB,CAAA;YACzB,CAAC;YAAC,OAAO,UAAU,EAAE,CAAC;gBACpB,MAAM,CAAC,KAAK,CAAC,wCAAwC,EAAE,UAAU,CAAC,CAAA;YACpE,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,kCAAkC,aAAa,GAAG,EAAE,KAAK,CAAC,CAAA;IACzE,CAAC;IAED,yCAAyC;IACzC,OAAO,EAAY,CAAA;AACrB,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB;IAC5C,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAA;IACjC,MAAM,EAAE,oBAAoB,EAAE,eAAe,EAAE,GAAG,KAAK,CAAA;IAEvD,IAAI,CAAC,oBAAoB,EAAE,IAAI,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAA;IAC/C,CAAC;IAED,MAAM,CAAC,GAAG,CAAC,qCAAqC,oBAAoB,CAAC,IAAI,EAAE,CAAC,CAAA;IAE5E,yDAAyD;IACzD,MAAM,oBAAoB,GAAG,CAC3B,KAAC,oBAAoB,IAAC,aAAa,EAAE,oBAAoB,CAAC,IAAI,GAAI,CACnE,CAAA;IAED,QAAQ,CAAC,QAAQ,CAAC;QAChB,eAAe,EAAE,CAAC,GAAG,eAAe,EAAE,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAC;QACxE,WAAW,EAAE,EAAE;KAChB,CAAC,CAAA;IAEF,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;AAC1B,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB;IAC1C,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAA;IACjC,MAAM,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,eAAe,EAAE,GAAG,KAAK,CAAA;IAE3E,IAAI,CAAC,oBAAoB,EAAE,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACvD,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAA;IAC7C,CAAC;IAED,MAAM,CAAC,GAAG,CACR,mCAAmC,oBAAoB,CAAC,IAAI,IAAI,kBAAkB,EAAE,CACrF,CAAA;IAED,yDAAyD;IACzD,MAAM,oBAAoB,GAAG,CAC3B,KAAC,oBAAoB,IACnB,aAAa,EAAE,oBAAoB,CAAC,IAAI,EACxC,WAAW,EAAE,kBAAkB,GAC/B,CACH,CAAA;IAED,QAAQ,CAAC,QAAQ,CAAC;QAChB,eAAe,EAAE,CAAC,GAAG,eAAe,EAAE,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAC;QACxE,WAAW,EAAE,EAAE;KAChB,CAAC,CAAA;IAEF,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;AAC1B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=preload.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preload.d.ts","sourceRoot":"","sources":["../src/preload.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,28 @@
1
+ import { plugin } from 'bun';
2
+ plugin({
3
+ name: 'alias-raycast-to-termcast',
4
+ setup(build) {
5
+ build.onResolve({ filter: /@raycast\/api/ }, () => {
6
+ return {
7
+ path: require.resolve('@termcast/cli'),
8
+ };
9
+ });
10
+ // build.onResolve({ filter: /@raycast\/utils/ }, (args) => {
11
+ // return {
12
+ // path: require.resolve('@raycast/utils', {
13
+ // paths: [args.importer],
14
+ // }),
15
+ // }
16
+ // })
17
+ // build.onLoad({ filter: /@raycast\/utils/ }, (args) => {
18
+ // const filePath = require
19
+ // .resolve(args.path.replace('file:', ''))
20
+ // .replace('file:', '')
21
+ // return {
22
+ // contents: require('fs').readFileSync(filePath, 'utf8'),
23
+ // loader: 'js',
24
+ // }
25
+ // })
26
+ },
27
+ });
28
+ //# sourceMappingURL=preload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preload.js","sourceRoot":"","sources":["../src/preload.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAA;AAI5B,MAAM,CAAC;IACL,IAAI,EAAE,2BAA2B;IACjC,KAAK,CAAC,KAAK;QACT,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,EAAE,GAAG,EAAE;YAChD,OAAO;gBACL,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC;aACvC,CAAA;QACH,CAAC,CAAC,CAAA;QACF,6DAA6D;QAC7D,eAAe;QACf,oDAAoD;QACpD,sCAAsC;QACtC,cAAc;QAEd,QAAQ;QACR,KAAK;QACL,0DAA0D;QAC1D,+BAA+B;QAC/B,mDAAmD;QACnD,gCAAgC;QAChC,eAAe;QACf,kEAAkE;QAElE,wBAAwB;QACxB,QAAQ;QACR,KAAK;IACP,CAAC;CACF,CAAC,CAAA"}
@@ -0,0 +1,26 @@
1
+ import { type ReactNode } from 'react';
2
+ import type { RaycastPackageJson } from './package-json';
3
+ export type DialogPosition = 'center' | 'top-right' | 'bottom-right';
4
+ export interface DialogStackItem {
5
+ element: ReactNode;
6
+ position?: DialogPosition;
7
+ }
8
+ export interface NavigationStackItem {
9
+ element: ReactNode;
10
+ onPop?: () => void;
11
+ }
12
+ interface AppState {
13
+ toast: ReactNode | null;
14
+ dialogStack: DialogStackItem[];
15
+ navigationStack: NavigationStackItem[];
16
+ devElement: ReactNode | null;
17
+ devRebuildCount: number;
18
+ extensionPath: string | null;
19
+ extensionPackageJson: RaycastPackageJson | null;
20
+ currentCommandName: string | null;
21
+ googleAccessToken?: string;
22
+ googleIdToken?: string;
23
+ }
24
+ export declare const useStore: import("zustand").UseBoundStore<import("zustand").StoreApi<AppState>>;
25
+ export {};
26
+ //# sourceMappingURL=state.d.ts.map
@@ -0,0 +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;IAEjC,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,eAAO,MAAM,QAAQ,uEAelB,CAAA"}
package/dist/state.js ADDED
@@ -0,0 +1,18 @@
1
+ import { create } from 'zustand';
2
+ export const useStore = create(() => ({
3
+ toast: null,
4
+ dialogStack: [],
5
+ // Navigation state
6
+ navigationStack: [],
7
+ // Dev mode state
8
+ devElement: null,
9
+ devRebuildCount: 0,
10
+ // Extension and command state
11
+ extensionPath: null,
12
+ extensionPackageJson: null,
13
+ currentCommandName: null,
14
+ // OAuth state
15
+ googleAccessToken: undefined,
16
+ googleIdToken: undefined,
17
+ }));
18
+ //# sourceMappingURL=state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../src/state.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAiChC,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,cAAc;IACd,iBAAiB,EAAE,SAAS;IAC5B,aAAa,EAAE,SAAS;CACzB,CAAC,CAAC,CAAA"}
@@ -0,0 +1,8 @@
1
+ export declare function downloadExtension({ author, extension, }: {
2
+ author: string;
3
+ extension: string;
4
+ }): Promise<{
5
+ buffer: Buffer;
6
+ filename: string;
7
+ }[]>;
8
+ //# sourceMappingURL=download.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"download.d.ts","sourceRoot":"","sources":["../../src/store-api/download.tsx"],"names":[],"mappings":"AAGA,wBAAsB,iBAAiB,CAAC,EACtC,MAAM,EACN,SAAS,GACV,EAAE;IACD,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;CAClB,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,EAAE,CAAC,CA0ClD"}
@@ -0,0 +1,37 @@
1
+ import JSZip from 'jszip';
2
+ import path from 'path';
3
+ export async function downloadExtension({ author, extension, }) {
4
+ // curl -H 'cookie: __raycast_session=<SESSION_TOKEN>' \
5
+ // -H 'accept: */*' \
6
+ // -H 'user-agent: Raycast/1.102.6 (macOS Version 15.6 (Build 24G84))' \
7
+ // -H 'accept-language: en-GB,en;q=0.9' \
8
+ // -H 'authorization: Bearer <AUTH_TOKEN>' \
9
+ // https://backend.raycast.com/api/v1/extensions/mt40/memo/download
10
+ const url = `https://backend.raycast.com/api/v1/extensions/${author}/${extension}/download`;
11
+ const response = await fetch(url, {
12
+ redirect: 'follow',
13
+ headers: {
14
+ accept: '*/*',
15
+ 'user-agent': 'Raycast/1.102.6 (macOS Version 15.6 (Build 24G84))',
16
+ 'accept-language': 'en-GB,en;q=0.9',
17
+ },
18
+ });
19
+ const arrayBuffer = await response.arrayBuffer();
20
+ // Check if we got an error response instead of a zip
21
+ if (!response.ok) {
22
+ const text = new TextDecoder().decode(arrayBuffer);
23
+ throw new Error(`Failed to download extension: ${response.status} - ${text}`);
24
+ }
25
+ const zip = await JSZip.loadAsync(Buffer.from(arrayBuffer));
26
+ const files = [];
27
+ for (const [filename, file] of Object.entries(zip.files)) {
28
+ if (!file.dir) {
29
+ const buffer = await file.async('nodebuffer');
30
+ const pathParts = filename.split('/');
31
+ const filenameWithoutTopLevel = path.posix.join(...pathParts.slice(1));
32
+ files.push({ buffer, filename: filenameWithoutTopLevel });
33
+ }
34
+ }
35
+ return files;
36
+ }
37
+ //# sourceMappingURL=download.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"download.js","sourceRoot":"","sources":["../../src/store-api/download.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,IAAI,MAAM,MAAM,CAAA;AAEvB,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,EACtC,MAAM,EACN,SAAS,GAIV;IACC,wDAAwD;IACxD,0BAA0B;IAC1B,6EAA6E;IAC7E,8CAA8C;IAC9C,iDAAiD;IACjD,wEAAwE;IACxE,MAAM,GAAG,GAAG,iDAAiD,MAAM,IAAI,SAAS,WAAW,CAAA;IAE3F,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;QAChC,QAAQ,EAAE,QAAQ;QAClB,OAAO,EAAE;YACP,MAAM,EAAE,KAAK;YACb,YAAY,EAAE,oDAAoD;YAClE,iBAAiB,EAAE,gBAAgB;SACpC;KACF,CAAC,CAAA;IAEF,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAA;IAEhD,qDAAqD;IACrD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;QAClD,MAAM,IAAI,KAAK,CACb,iCAAiC,QAAQ,CAAC,MAAM,MAAM,IAAI,EAAE,CAC7D,CAAA;IACH,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAA;IAE3D,MAAM,KAAK,GAA2C,EAAE,CAAA;IAExD,KAAK,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACzD,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACd,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;YAC7C,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YACrC,MAAM,uBAAuB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;YACtE,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,uBAAuB,EAAE,CAAC,CAAA;QAC3D,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=download.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"download.test.d.ts","sourceRoot":"","sources":["../../src/store-api/download.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,36 @@
1
+ import { describe, test, expect } from 'bun:test';
2
+ import { downloadExtension } from './download';
3
+ describe('downloadExtension', () => {
4
+ test('downloads a real raycast extension and returns filenames', async () => {
5
+ // Test with a timeout since it needs to download from the API
6
+ const files = await downloadExtension({
7
+ author: 'xmorse',
8
+ extension: 'spiceblow-database',
9
+ });
10
+ const filenames = files.map((f) => f.filename).sort();
11
+ // Just check we get some files
12
+ expect(filenames).toMatchInlineSnapshot(`
13
+ [
14
+ "assets/extension-icon.png",
15
+ "package.json",
16
+ "search-database.js",
17
+ "search-database.js.map",
18
+ ]
19
+ `);
20
+ expect(filenames.length).toBeGreaterThan(0);
21
+ // Check package.json commands field
22
+ const packageJson = files.find((f) => f.filename === 'package.json');
23
+ const packageData = JSON.parse(packageJson?.buffer.toString());
24
+ expect(packageData.commands).toMatchInlineSnapshot(`
25
+ [
26
+ {
27
+ "description": "Search and update your PostgreSQL or MySQL database",
28
+ "mode": "view",
29
+ "name": "search-database",
30
+ "title": "Manage Database",
31
+ },
32
+ ]
33
+ `);
34
+ }, 10000);
35
+ });
36
+ //# sourceMappingURL=download.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"download.test.js","sourceRoot":"","sources":["../../src/store-api/download.test.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAC9C,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,IAAI,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;QAC1E,8DAA8D;QAC9D,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC;YACpC,MAAM,EAAE,QAAQ;YAChB,SAAS,EAAE,oBAAoB;SAChC,CAAC,CAAA;QAEF,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAA;QAErD,+BAA+B;QAC/B,MAAM,CAAC,SAAS,CAAC,CAAC,qBAAqB,CAAC;;;;;;;SAOnC,CAAC,CAAA;QACN,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;QAE3C,oCAAoC;QACpC,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,cAAc,CAAC,CAAA;QACpE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,QAAQ,EAAG,CAAC,CAAA;QAC/D,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;;SAS9C,CAAC,CAAA;IACR,CAAC,EAAE,KAAK,CAAC,CAAA;AACX,CAAC,CAAC,CAAA"}
@@ -0,0 +1,87 @@
1
+ export declare function fetchExtension({ author, extension, }: {
2
+ author: string;
3
+ extension: string;
4
+ }): Promise<ExtensionResponse>;
5
+ interface Author {
6
+ id: string;
7
+ name: string;
8
+ handle: string;
9
+ bio: string | null;
10
+ twitter_handle: string | null;
11
+ github_handle: string | null;
12
+ location: string | null;
13
+ initials: string;
14
+ avatar_placeholder_color: string;
15
+ slack_community_username: string | null;
16
+ slack_community_user_id: string | null;
17
+ created_at: number;
18
+ website_anchor: string | null;
19
+ website: string | null;
20
+ credits: number;
21
+ username: string;
22
+ avatar: string | null;
23
+ }
24
+ interface Icons {
25
+ light: string | null;
26
+ dark: string | null;
27
+ }
28
+ interface Command {
29
+ id: string;
30
+ name: string;
31
+ title: string;
32
+ subtitle: string;
33
+ description: string;
34
+ keywords: string[];
35
+ mode: string;
36
+ disabled_by_default: boolean;
37
+ beta: boolean;
38
+ icons: Icons;
39
+ }
40
+ interface ChangelogVersion {
41
+ title: string;
42
+ title_link: string | null;
43
+ date: string;
44
+ markdown: string;
45
+ }
46
+ interface Changelog {
47
+ versions: ChangelogVersion[];
48
+ }
49
+ interface ExtensionResponse {
50
+ id: string;
51
+ name: string;
52
+ native_id: string | null;
53
+ seo_categories: string[];
54
+ platforms: string[] | null;
55
+ author: Author;
56
+ created_at: number;
57
+ kill_listed_at: number;
58
+ owner: Author;
59
+ status: string;
60
+ is_new: boolean;
61
+ access: string;
62
+ store_url: string;
63
+ download_count: number;
64
+ past_contributors: any[];
65
+ listed: boolean;
66
+ title: string;
67
+ description: string;
68
+ commit_sha: string;
69
+ relative_path: string;
70
+ api_version: string;
71
+ categories: string[];
72
+ prompt_examples: any[];
73
+ metadata_count: number;
74
+ updated_at: number;
75
+ source_url: string;
76
+ readme_url: string;
77
+ readme_assets_path: string;
78
+ icons: Icons;
79
+ commands: Command[];
80
+ tools: any[];
81
+ download_url: string;
82
+ contributors: any[];
83
+ metadata: string[];
84
+ changelog: Changelog;
85
+ }
86
+ export {};
87
+ //# sourceMappingURL=extension.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extension.d.ts","sourceRoot":"","sources":["../../src/store-api/extension.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ // curl -H 'accept: application/json' \
2
+ // -H 'content-type: application/json' \
3
+ // -H 'cookie: __raycast_session=REDACTED' \
4
+ // -H 'user-agent: Raycast/1.102.6 (macOS Version 15.6 (Build 24G84))' \
5
+ // -H 'authorization: Bearer REDACTED' \
6
+ // -H 'accept-language: en-GB,en;q=0.9' \
7
+ // https://backend.raycast.com/api/v1/extensions/mt40/memo
8
+ export async function fetchExtension({ author, extension, }) {
9
+ const response = await fetch(`https://backend.raycast.com/api/v1/extensions/${author}/${extension}`, {
10
+ method: 'GET',
11
+ headers: {
12
+ accept: 'application/json',
13
+ 'content-type': 'application/json',
14
+ 'user-agent': 'Raycast/1.102.6 (macOS Version 15.6 (Build 24G84))',
15
+ 'accept-language': 'en-GB,en;q=0.9',
16
+ },
17
+ });
18
+ if (!response.ok) {
19
+ throw new Error(`Failed to fetch extension: ${response.status} ${response.statusText}`);
20
+ }
21
+ return response.json();
22
+ }
23
+ //# sourceMappingURL=extension.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extension.js","sourceRoot":"","sources":["../../src/store-api/extension.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,6CAA6C;AAC7C,iDAAiD;AACjD,6EAA6E;AAC7E,6CAA6C;AAC7C,8CAA8C;AAC9C,+DAA+D;AAE/D,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,EACnC,MAAM,EACN,SAAS,GAIV;IACC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAC1B,iDAAiD,MAAM,IAAI,SAAS,EAAE,EACtE;QACE,MAAM,EAAE,KAAK;QACb,OAAO,EAAE;YACP,MAAM,EAAE,kBAAkB;YAC1B,cAAc,EAAE,kBAAkB;YAClC,YAAY,EAAE,oDAAoD;YAClE,iBAAiB,EAAE,gBAAgB;SACpC;KACF,CACF,CAAA;IAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CACb,8BAA8B,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CACvE,CAAA;IACH,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,EAAS,CAAA;AAC/B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=extension.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extension.test.d.ts","sourceRoot":"","sources":["../../src/store-api/extension.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,22 @@
1
+ import { describe, test, expect } from 'bun:test';
2
+ import { fetchExtension } from './extension';
3
+ describe('fetchExtension', () => {
4
+ test('fetches a raycast extension metadata', async () => {
5
+ const extension = await fetchExtension({
6
+ author: 'xmorse',
7
+ extension: 'spiceblow-database',
8
+ });
9
+ // Check basic structure
10
+ expect(extension.id).toBeTruthy();
11
+ expect(extension.name).toBe('spiceblow-database');
12
+ expect(extension.author.handle).toBe('xmorse');
13
+ // Snapshot the command names
14
+ const commandNames = extension.commands.map((c) => c.name).sort();
15
+ expect(commandNames).toMatchInlineSnapshot(`
16
+ [
17
+ "search-database",
18
+ ]
19
+ `);
20
+ }, 10000);
21
+ });
22
+ //# sourceMappingURL=extension.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extension.test.js","sourceRoot":"","sources":["../../src/store-api/extension.test.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE5C,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,IAAI,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QACtD,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC;YACrC,MAAM,EAAE,QAAQ;YAChB,SAAS,EAAE,oBAAoB;SAChC,CAAC,CAAA;QAEF,wBAAwB;QACxB,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,UAAU,EAAE,CAAA;QACjC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAA;QACjD,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAE9C,6BAA6B;QAC7B,MAAM,YAAY,GAAG,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAA;QACjE,MAAM,CAAC,YAAY,CAAC,CAAC,qBAAqB,CAAC;;;;SAItC,CAAC,CAAA;IACR,CAAC,EAAE,KAAK,CAAC,CAAA;AACX,CAAC,CAAC,CAAA"}