@tanstack/cta-engine 0.10.0-alpha.21 → 0.10.0-alpha.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 (340) hide show
  1. package/dist/add-ons.js +91 -5
  2. package/dist/add.js +125 -0
  3. package/dist/cli.js +132 -0
  4. package/dist/config-file.js +9 -14
  5. package/dist/constants.js +2 -0
  6. package/dist/create-app.js +451 -142
  7. package/dist/custom-add-on.js +254 -0
  8. package/dist/environment.js +32 -64
  9. package/dist/file-helper.js +18 -0
  10. package/dist/index.js +1 -17
  11. package/dist/mcp.js +229 -0
  12. package/dist/options.js +333 -9
  13. package/dist/package-manager.js +6 -51
  14. package/dist/templates.js +6 -0
  15. package/dist/toolchain.js +6 -0
  16. package/dist/types/add-ons.d.ts +8 -3
  17. package/dist/types/add.d.ts +3 -0
  18. package/dist/types/cli.d.ts +7 -0
  19. package/dist/types/config-file.d.ts +4 -6
  20. package/dist/types/constants.d.ts +3 -0
  21. package/dist/types/create-app.d.ts +7 -1
  22. package/dist/types/custom-add-on.d.ts +3 -0
  23. package/dist/types/environment.d.ts +1 -2
  24. package/dist/types/file-helper.d.ts +2 -0
  25. package/dist/types/index.d.ts +1 -20
  26. package/dist/types/mcp.d.ts +7 -0
  27. package/dist/types/options.d.ts +6 -2
  28. package/dist/types/package-manager.d.ts +1 -18
  29. package/dist/types/templates.d.ts +1 -0
  30. package/dist/types/toolchain.d.ts +3 -0
  31. package/dist/types/types.d.ts +85 -788
  32. package/dist/types/utils.d.ts +0 -5
  33. package/dist/types.js +1 -65
  34. package/dist/utils.js +0 -9
  35. package/package.json +12 -9
  36. package/src/add-ons.ts +123 -7
  37. package/src/add.ts +186 -0
  38. package/src/cli.ts +210 -0
  39. package/src/config-file.ts +17 -26
  40. package/src/constants.ts +5 -0
  41. package/src/create-app.ts +730 -180
  42. package/src/custom-add-on.ts +325 -0
  43. package/src/environment.ts +33 -77
  44. package/src/file-helper.ts +20 -0
  45. package/src/index.ts +1 -77
  46. package/src/mcp.ts +302 -0
  47. package/src/options.ts +409 -8
  48. package/src/package-manager.ts +9 -80
  49. package/src/templates.ts +7 -0
  50. package/src/toolchain.ts +7 -0
  51. package/src/types.ts +87 -175
  52. package/src/utils.ts +0 -17
  53. package/templates/react/add-on/clerk/README.md +3 -0
  54. package/templates/react/add-on/clerk/assets/_dot_env.local.append +2 -0
  55. package/templates/react/add-on/clerk/assets/src/integrations/clerk/header-user.tsx +19 -0
  56. package/templates/react/add-on/clerk/assets/src/integrations/clerk/provider.tsx +18 -0
  57. package/templates/react/add-on/clerk/assets/src/routes/demo.clerk.tsx +20 -0
  58. package/templates/react/add-on/clerk/info.json +13 -0
  59. package/templates/react/add-on/clerk/package.json +5 -0
  60. package/templates/react/add-on/convex/README.md +4 -0
  61. package/templates/react/add-on/convex/assets/_dot_cursorrules.append +93 -0
  62. package/templates/react/add-on/convex/assets/_dot_env.local.append +3 -0
  63. package/templates/react/add-on/convex/assets/convex/products.ts +8 -0
  64. package/templates/react/add-on/convex/assets/convex/schema.ts +10 -0
  65. package/templates/react/add-on/convex/assets/src/integrations/convex/provider.tsx +20 -0
  66. package/templates/react/add-on/convex/assets/src/routes/demo.convex.tsx +33 -0
  67. package/templates/react/add-on/convex/info.json +13 -0
  68. package/templates/react/add-on/convex/package.json +6 -0
  69. package/templates/react/add-on/form/assets/src/components/demo.FormComponents.tsx.ejs +300 -0
  70. package/templates/react/add-on/form/assets/src/hooks/demo.form-context.ts +4 -0
  71. package/templates/react/add-on/form/assets/src/hooks/demo.form.ts +22 -0
  72. package/templates/react/add-on/form/assets/src/routes/demo.form.address.tsx.ejs +213 -0
  73. package/templates/react/add-on/form/assets/src/routes/demo.form.simple.tsx.ejs +77 -0
  74. package/templates/react/add-on/form/info.json +26 -0
  75. package/templates/react/add-on/form/package.json +6 -0
  76. package/templates/react/add-on/module-federation/assets/module-federation.config.js.ejs +31 -0
  77. package/templates/react/add-on/module-federation/assets/src/demo-mf-component.tsx +3 -0
  78. package/templates/react/add-on/module-federation/assets/src/demo-mf-self-contained.tsx +11 -0
  79. package/templates/react/add-on/module-federation/info.json +7 -0
  80. package/templates/react/add-on/module-federation/package.json +5 -0
  81. package/templates/react/add-on/netlify/README.md +11 -0
  82. package/templates/react/add-on/netlify/info.json +7 -0
  83. package/templates/react/add-on/sentry/assets/_dot_cursorrules.append +22 -0
  84. package/templates/react/add-on/sentry/assets/_dot_env.local.append +11 -0
  85. package/templates/react/add-on/sentry/assets/src/app/global-middleware.ts +11 -0
  86. package/templates/react/add-on/sentry/assets/src/routes/demo.sentry.testing.tsx +489 -0
  87. package/templates/react/add-on/sentry/info.json +14 -0
  88. package/templates/react/add-on/sentry/package.json +5 -0
  89. package/templates/react/add-on/shadcn/README.md +7 -0
  90. package/templates/react/add-on/shadcn/assets/_dot_cursorrules.append +7 -0
  91. package/templates/react/add-on/shadcn/assets/components.json +21 -0
  92. package/templates/react/add-on/shadcn/assets/src/lib/utils.ts +6 -0
  93. package/templates/react/add-on/shadcn/assets/src/styles.css +138 -0
  94. package/templates/react/add-on/shadcn/info.json +7 -0
  95. package/templates/react/add-on/shadcn/package.json +9 -0
  96. package/templates/react/add-on/start/assets/_dot_gitignore.append +2 -0
  97. package/templates/react/add-on/start/assets/app.config.ts.ejs +32 -0
  98. package/templates/react/add-on/start/assets/src/api.ts +6 -0
  99. package/templates/react/add-on/start/assets/src/client.tsx.ejs +33 -0
  100. package/templates/react/add-on/start/assets/src/router.tsx.ejs +48 -0
  101. package/templates/react/add-on/start/assets/src/routes/api.demo-names.ts +11 -0
  102. package/templates/react/add-on/start/assets/src/routes/demo.start.api-request.tsx.ejs +33 -0
  103. package/templates/react/add-on/start/assets/src/routes/demo.start.server-funcs.tsx +50 -0
  104. package/templates/react/add-on/start/assets/src/ssr.tsx.ejs +30 -0
  105. package/templates/react/add-on/start/info.json +18 -0
  106. package/templates/react/add-on/start/package.json +13 -0
  107. package/templates/react/add-on/store/assets/src/lib/demo-store.ts +13 -0
  108. package/templates/react/add-on/store/assets/src/routes/demo.store.tsx.ejs +75 -0
  109. package/templates/react/add-on/store/info.json +13 -0
  110. package/templates/react/add-on/store/package.json +6 -0
  111. package/templates/react/add-on/t3env/README.md +16 -0
  112. package/templates/react/add-on/t3env/assets/src/env.ts +39 -0
  113. package/templates/react/add-on/t3env/info.json +10 -0
  114. package/templates/react/add-on/t3env/package.json +6 -0
  115. package/templates/react/add-on/tRPC/assets/src/integrations/trpc/init.ts +9 -0
  116. package/templates/react/add-on/tRPC/assets/src/integrations/trpc/react.ts +4 -0
  117. package/templates/react/add-on/tRPC/assets/src/integrations/trpc/router.ts +18 -0
  118. package/templates/react/add-on/tRPC/assets/src/routes/api.trpc.$.tsx +16 -0
  119. package/templates/react/add-on/tRPC/info.json +9 -0
  120. package/templates/react/add-on/tRPC/package.json +9 -0
  121. package/templates/react/add-on/table/assets/src/data/demo-table-data.ts +50 -0
  122. package/templates/react/add-on/table/assets/src/routes/demo.table.tsx.ejs +373 -0
  123. package/templates/react/add-on/table/info.json +13 -0
  124. package/templates/react/add-on/table/package.json +7 -0
  125. package/templates/react/add-on/tanstack-query/assets/src/integrations/tanstack-query/layout.tsx +5 -0
  126. package/templates/react/add-on/tanstack-query/assets/src/integrations/tanstack-query/root-provider.tsx.ejs +70 -0
  127. package/templates/react/add-on/tanstack-query/assets/src/routes/demo.tanstack-query.tsx.ejs +53 -0
  128. package/templates/react/add-on/tanstack-query/info.json +13 -0
  129. package/templates/react/add-on/tanstack-query/package.json +6 -0
  130. package/templates/react/base/README.md.ejs +558 -0
  131. package/templates/react/base/_dot_gitignore +5 -0
  132. package/templates/react/base/_dot_vscode/settings.biome.json +35 -0
  133. package/templates/react/base/_dot_vscode/settings.json +11 -0
  134. package/templates/react/base/index.html.ejs +20 -0
  135. package/templates/react/base/package.biome.json +10 -0
  136. package/templates/react/base/package.eslintprettier.json +11 -0
  137. package/templates/react/base/package.json +30 -0
  138. package/templates/react/base/package.ts.json +7 -0
  139. package/templates/react/base/package.tw.json +6 -0
  140. package/templates/react/base/public/favicon.ico +0 -0
  141. package/templates/react/base/public/logo192.png +0 -0
  142. package/templates/react/base/public/logo512.png +0 -0
  143. package/templates/react/base/public/manifest.json +25 -0
  144. package/templates/react/base/public/robots.txt +3 -0
  145. package/templates/react/base/src/App.css +38 -0
  146. package/templates/react/base/src/App.test.tsx.ejs +10 -0
  147. package/templates/react/base/src/App.tsx.ejs +74 -0
  148. package/templates/react/base/src/components/Header.tsx.ejs +27 -0
  149. package/templates/react/base/src/logo.svg +44 -0
  150. package/templates/react/base/src/reportWebVitals.ts.ejs +28 -0
  151. package/templates/react/base/src/styles.css.ejs +15 -0
  152. package/templates/react/base/toolchain/.prettierignore +3 -0
  153. package/templates/react/base/toolchain/biome.json +31 -0
  154. package/templates/react/base/toolchain/eslint.config.js +5 -0
  155. package/templates/react/base/toolchain/prettier.config.js +10 -0
  156. package/templates/react/base/tsconfig.json.ejs +29 -0
  157. package/templates/react/base/vite.config.js.ejs +23 -0
  158. package/templates/react/code-router/src/main.tsx.ejs +92 -0
  159. package/templates/react/example/tanchat/README.md +37 -0
  160. package/templates/react/example/tanchat/assets/_dot_env.local.append +2 -0
  161. package/templates/react/example/tanchat/assets/public/example-guitar-flowers.jpg +0 -0
  162. package/templates/react/example/tanchat/assets/public/example-guitar-motherboard.jpg +0 -0
  163. package/templates/react/example/tanchat/assets/public/example-guitar-racing.jpg +0 -0
  164. package/templates/react/example/tanchat/assets/public/example-guitar-steamer-trunk.jpg +0 -0
  165. package/templates/react/example/tanchat/assets/public/example-guitar-superhero.jpg +0 -0
  166. package/templates/react/example/tanchat/assets/public/example-guitar-traveling.jpg +0 -0
  167. package/templates/react/example/tanchat/assets/public/example-guitar-video-games.jpg +0 -0
  168. package/templates/react/example/tanchat/assets/src/components/example-AIAssistant.tsx +173 -0
  169. package/templates/react/example/tanchat/assets/src/components/example-GuitarRecommendation.tsx +47 -0
  170. package/templates/react/example/tanchat/assets/src/data/example-guitars.ts +83 -0
  171. package/templates/react/example/tanchat/assets/src/demo.index.css +220 -0
  172. package/templates/react/example/tanchat/assets/src/integrations/tanchat/header-user.tsx +5 -0
  173. package/templates/react/example/tanchat/assets/src/routes/api.messages.ts +24 -0
  174. package/templates/react/example/tanchat/assets/src/routes/api.sse.ts +23 -0
  175. package/templates/react/example/tanchat/assets/src/routes/example.chat.tsx +159 -0
  176. package/templates/react/example/tanchat/assets/src/routes/example.guitars/$guitarId.tsx +50 -0
  177. package/templates/react/example/tanchat/assets/src/routes/example.guitars/index.tsx +54 -0
  178. package/templates/react/example/tanchat/assets/src/store/example-assistant.ts +3 -0
  179. package/templates/react/example/tanchat/assets/src/utils/demo.ai.ts +62 -0
  180. package/templates/react/example/tanchat/assets/src/utils/demo.sse.ts +31 -0
  181. package/templates/react/example/tanchat/assets/src/utils/demo.tools.ts +47 -0
  182. package/templates/react/example/tanchat/info.json +19 -0
  183. package/templates/react/example/tanchat/package.json +16 -0
  184. package/templates/react/file-router/package.fr.json +5 -0
  185. package/templates/react/file-router/src/main.tsx.ejs +55 -0
  186. package/templates/react/file-router/src/routes/__root.tsx.ejs +82 -0
  187. package/templates/solid/add-on/form/assets/src/routes/demo.form.tsx.ejs +352 -0
  188. package/templates/solid/add-on/form/info.json +13 -0
  189. package/templates/solid/add-on/form/package.json +5 -0
  190. package/templates/solid/add-on/module-federation/assets/module-federation.config.js.ejs +27 -0
  191. package/templates/solid/add-on/module-federation/assets/src/demo-mf-component.tsx +3 -0
  192. package/templates/solid/add-on/module-federation/assets/src/demo-mf-self-contained.tsx +9 -0
  193. package/templates/solid/add-on/module-federation/info.json +7 -0
  194. package/templates/solid/add-on/module-federation/package.json +5 -0
  195. package/templates/solid/add-on/sentry/assets/_dot_cursorrules.append +22 -0
  196. package/templates/solid/add-on/sentry/assets/_dot_env.local.append +2 -0
  197. package/templates/solid/add-on/sentry/assets/src/routes/demo.sentry.bad-event-handler.tsx +20 -0
  198. package/templates/solid/add-on/sentry/info.json +13 -0
  199. package/templates/solid/add-on/sentry/package.json +5 -0
  200. package/templates/solid/add-on/solid-ui/README.md +9 -0
  201. package/templates/solid/add-on/solid-ui/assets/src/lib/utils.ts +6 -0
  202. package/templates/solid/add-on/solid-ui/assets/src/styles.css +138 -0
  203. package/templates/solid/add-on/solid-ui/assets/ui.config.json +13 -0
  204. package/templates/solid/add-on/solid-ui/info.json +11 -0
  205. package/templates/solid/add-on/solid-ui/package.json +9 -0
  206. package/templates/solid/add-on/start/assets/app.config.ts +16 -0
  207. package/templates/solid/add-on/start/assets/src/api.ts +6 -0
  208. package/templates/solid/add-on/start/assets/src/client.tsx +7 -0
  209. package/templates/solid/add-on/start/assets/src/router.tsx.ejs +24 -0
  210. package/templates/solid/add-on/start/assets/src/routes/demo.start.server-funcs.tsx +49 -0
  211. package/templates/solid/add-on/start/assets/src/ssr.tsx +12 -0
  212. package/templates/solid/add-on/start/info.json +14 -0
  213. package/templates/solid/add-on/start/package.json +12 -0
  214. package/templates/solid/add-on/store/assets/src/lib/demo-store.ts +13 -0
  215. package/templates/solid/add-on/store/assets/src/routes/demo.store.tsx.ejs +77 -0
  216. package/templates/solid/add-on/store/info.json +13 -0
  217. package/templates/solid/add-on/store/package.json +6 -0
  218. package/templates/solid/add-on/t3env/README.md +16 -0
  219. package/templates/solid/add-on/t3env/assets/src/env.ts +39 -0
  220. package/templates/solid/add-on/t3env/info.json +10 -0
  221. package/templates/solid/add-on/t3env/package.json +6 -0
  222. package/templates/solid/add-on/tanstack-query/assets/src/integrations/tanstack-query/header-user.tsx +5 -0
  223. package/templates/solid/add-on/tanstack-query/assets/src/integrations/tanstack-query/provider.tsx +15 -0
  224. package/templates/solid/add-on/tanstack-query/assets/src/routes/demo.tanstack-query.tsx +30 -0
  225. package/templates/solid/add-on/tanstack-query/info.json +13 -0
  226. package/templates/solid/add-on/tanstack-query/package.json +6 -0
  227. package/templates/solid/base/README.md.ejs +215 -0
  228. package/templates/solid/base/_dot_cursorrules.append +35 -0
  229. package/templates/solid/base/_dot_gitignore +5 -0
  230. package/templates/solid/base/_dot_vscode/settings.biome.json +35 -0
  231. package/templates/solid/base/_dot_vscode/settings.json +11 -0
  232. package/templates/solid/base/index.html.ejs +20 -0
  233. package/templates/solid/base/package.biome.json +10 -0
  234. package/templates/solid/base/package.eslintprettier.json +11 -0
  235. package/templates/solid/base/package.json +23 -0
  236. package/templates/solid/base/package.ts.json +5 -0
  237. package/templates/solid/base/package.tw.json +6 -0
  238. package/templates/solid/base/public/favicon.ico +0 -0
  239. package/templates/solid/base/public/logo192.png +0 -0
  240. package/templates/solid/base/public/logo512.png +0 -0
  241. package/templates/solid/base/public/manifest.json +25 -0
  242. package/templates/solid/base/public/robots.txt +3 -0
  243. package/templates/solid/base/src/App.css +0 -0
  244. package/templates/solid/base/src/App.tsx.ejs +47 -0
  245. package/templates/solid/base/src/components/Header.tsx.ejs +26 -0
  246. package/templates/solid/base/src/logo.svg +120 -0
  247. package/templates/solid/base/src/styles.css.ejs +15 -0
  248. package/templates/solid/base/toolchain/.prettierignore +3 -0
  249. package/templates/solid/base/toolchain/biome.json +31 -0
  250. package/templates/solid/base/toolchain/eslint.config.js +5 -0
  251. package/templates/solid/base/toolchain/prettier.config.js +10 -0
  252. package/templates/solid/base/tsconfig.json.ejs +31 -0
  253. package/templates/solid/base/vite.config.js.ejs +22 -0
  254. package/templates/solid/code-router/src/main.tsx.ejs +71 -0
  255. package/templates/solid/example/tanchat/README.md +52 -0
  256. package/templates/solid/example/tanchat/assets/ai-streaming-server/README.md +110 -0
  257. package/templates/solid/example/tanchat/assets/ai-streaming-server/_dot_env.example +1 -0
  258. package/templates/solid/example/tanchat/assets/ai-streaming-server/package.json +26 -0
  259. package/templates/solid/example/tanchat/assets/ai-streaming-server/src/index.ts +102 -0
  260. package/templates/solid/example/tanchat/assets/ai-streaming-server/tsconfig.json +15 -0
  261. package/templates/solid/example/tanchat/assets/src/components/demo.SettingsDialog.tsx +149 -0
  262. package/templates/solid/example/tanchat/assets/src/demo.index.css +227 -0
  263. package/templates/solid/example/tanchat/assets/src/lib/demo-store.ts +13 -0
  264. package/templates/solid/example/tanchat/assets/src/routes/example.chat.tsx +435 -0
  265. package/templates/solid/example/tanchat/assets/src/store/demo.hooks.ts +17 -0
  266. package/templates/solid/example/tanchat/assets/src/store/demo.store.ts +133 -0
  267. package/templates/solid/example/tanchat/info.json +14 -0
  268. package/templates/solid/example/tanchat/package.json +7 -0
  269. package/templates/solid/file-router/package.fr.json +5 -0
  270. package/templates/solid/file-router/src/main.tsx.ejs +47 -0
  271. package/templates/solid/file-router/src/routes/__root.tsx.ejs +41 -0
  272. package/templates/solid/file-router/src/routes/index.tsx +43 -0
  273. package/tests/cra.test.ts +293 -0
  274. package/tests/snapshots/cra/cr-js-npm.json +33 -0
  275. package/tests/snapshots/cra/cr-ts-npm.json +34 -0
  276. package/tests/snapshots/cra/cr-ts-start-npm.json +38 -0
  277. package/tests/snapshots/cra/fr-ts-npm.json +34 -0
  278. package/tests/snapshots/cra/fr-ts-tw-npm.json +33 -0
  279. package/tests/snapshots/cra/solid-cr-js-npm.json +31 -0
  280. package/tests/snapshots/cra/solid-cr-ts-npm.json +32 -0
  281. package/tests/snapshots/cra/solid-cr-ts-start-npm.json +36 -0
  282. package/tests/snapshots/cra/solid-fr-ts-npm.json +33 -0
  283. package/tests/snapshots/cra/solid-fr-ts-tw-npm.json +32 -0
  284. package/tests/test-utilities.ts +87 -0
  285. package/dist/add-to-app.js +0 -169
  286. package/dist/custom-add-ons/add-on.js +0 -175
  287. package/dist/custom-add-ons/shared.js +0 -117
  288. package/dist/custom-add-ons/starter.js +0 -84
  289. package/dist/file-helpers.js +0 -165
  290. package/dist/frameworks.js +0 -92
  291. package/dist/integrations/git.js +0 -4
  292. package/dist/integrations/shadcn.js +0 -33
  293. package/dist/package-json.js +0 -48
  294. package/dist/special-steps/index.js +0 -24
  295. package/dist/special-steps/rimraf-node-modules.js +0 -16
  296. package/dist/template-file.js +0 -112
  297. package/dist/types/add-to-app.d.ts +0 -17
  298. package/dist/types/custom-add-ons/add-on.d.ts +0 -69
  299. package/dist/types/custom-add-ons/shared.d.ts +0 -15
  300. package/dist/types/custom-add-ons/starter.d.ts +0 -7
  301. package/dist/types/file-helpers.d.ts +0 -15
  302. package/dist/types/frameworks.d.ts +0 -7
  303. package/dist/types/integrations/git.d.ts +0 -2
  304. package/dist/types/integrations/shadcn.d.ts +0 -2
  305. package/dist/types/package-json.d.ts +0 -7
  306. package/dist/types/special-steps/index.d.ts +0 -2
  307. package/dist/types/special-steps/rimraf-node-modules.d.ts +0 -2
  308. package/dist/types/template-file.d.ts +0 -2
  309. package/src/add-to-app.ts +0 -274
  310. package/src/custom-add-ons/add-on.ts +0 -261
  311. package/src/custom-add-ons/shared.ts +0 -161
  312. package/src/custom-add-ons/starter.ts +0 -126
  313. package/src/file-helpers.ts +0 -235
  314. package/src/frameworks.ts +0 -134
  315. package/src/integrations/git.ts +0 -7
  316. package/src/integrations/shadcn.ts +0 -54
  317. package/src/package-json.ts +0 -69
  318. package/src/special-steps/index.ts +0 -36
  319. package/src/special-steps/rimraf-node-modules.ts +0 -25
  320. package/src/template-file.ts +0 -150
  321. package/tests/add-ons.test.ts +0 -67
  322. package/tests/add-to-app.test.ts +0 -358
  323. package/tests/config-file.test.ts +0 -68
  324. package/tests/create-app.test.ts +0 -120
  325. package/tests/custom-add-ons/add-on.test.ts +0 -12
  326. package/tests/custom-add-ons/shared.test.ts +0 -257
  327. package/tests/custom-add-ons/starter.test.ts +0 -58
  328. package/tests/environment.test.ts +0 -115
  329. package/tests/file-helper.test.ts +0 -90
  330. package/tests/frameworks.test.ts +0 -95
  331. package/tests/index.test.ts +0 -9
  332. package/tests/integrations/git.test.ts +0 -20
  333. package/tests/integrations/shadcn.test.ts +0 -91
  334. package/tests/options.test.ts +0 -42
  335. package/tests/package-json.test.ts +0 -63
  336. package/tests/package-manager.test.ts +0 -154
  337. package/tests/setupVitest.ts +0 -6
  338. package/tests/template-file.test.ts +0 -178
  339. package/tests/utils.test.ts +0 -23
  340. package/vitest.config.ts +0 -21
@@ -1,813 +1,110 @@
1
- import z from 'zod';
2
1
  import type { CODE_ROUTER, FILE_ROUTER } from './constants.js';
3
2
  import type { PackageManager } from './package-manager.js';
3
+ import type { ToolChain } from './toolchain.js';
4
+ export type Framework = 'solid' | 'react';
5
+ export type TemplateOptions = 'typescript' | 'javascript' | 'file-router';
4
6
  export type Mode = typeof CODE_ROUTER | typeof FILE_ROUTER;
5
- export type StatusStepType = 'file' | 'command' | 'info' | 'package-manager' | 'other';
6
- export declare const AddOnBaseSchema: z.ZodObject<{
7
- id: z.ZodString;
8
- name: z.ZodString;
9
- description: z.ZodString;
10
- author: z.ZodOptional<z.ZodString>;
11
- version: z.ZodOptional<z.ZodString>;
12
- link: z.ZodOptional<z.ZodString>;
13
- license: z.ZodOptional<z.ZodString>;
14
- warning: z.ZodOptional<z.ZodString>;
15
- type: z.ZodEnum<["add-on", "example", "starter", "toolchain"]>;
16
- command: z.ZodOptional<z.ZodObject<{
17
- command: z.ZodString;
18
- args: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
19
- }, "strip", z.ZodTypeAny, {
20
- command: string;
21
- args?: string[] | undefined;
22
- }, {
23
- command: string;
24
- args?: string[] | undefined;
25
- }>>;
26
- routes: z.ZodOptional<z.ZodArray<z.ZodObject<{
27
- url: z.ZodOptional<z.ZodString>;
28
- name: z.ZodOptional<z.ZodString>;
29
- path: z.ZodString;
30
- jsName: z.ZodString;
31
- }, "strip", z.ZodTypeAny, {
32
- path: string;
33
- jsName: string;
34
- name?: string | undefined;
35
- url?: string | undefined;
36
- }, {
37
- path: string;
38
- jsName: string;
39
- name?: string | undefined;
40
- url?: string | undefined;
41
- }>, "many">>;
42
- packageAdditions: z.ZodOptional<z.ZodObject<{
43
- dependencies: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
44
- devDependencies: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
45
- scripts: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
46
- }, "strip", z.ZodTypeAny, {
47
- dependencies?: Record<string, string> | undefined;
48
- devDependencies?: Record<string, string> | undefined;
49
- scripts?: Record<string, string> | undefined;
50
- }, {
51
- dependencies?: Record<string, string> | undefined;
52
- devDependencies?: Record<string, string> | undefined;
53
- scripts?: Record<string, string> | undefined;
54
- }>>;
55
- shadcnComponents: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
56
- dependsOn: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
57
- smallLogo: z.ZodOptional<z.ZodString>;
58
- logo: z.ZodOptional<z.ZodString>;
59
- addOnSpecialSteps: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
60
- createSpecialSteps: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
61
- }, "strip", z.ZodTypeAny, {
62
- id: string;
63
- name: string;
64
- description: string;
65
- type: "add-on" | "example" | "starter" | "toolchain";
66
- command?: {
67
- command: string;
68
- args?: string[] | undefined;
69
- } | undefined;
70
- author?: string | undefined;
71
- version?: string | undefined;
72
- link?: string | undefined;
73
- license?: string | undefined;
74
- warning?: string | undefined;
75
- routes?: {
76
- path: string;
77
- jsName: string;
78
- name?: string | undefined;
79
- url?: string | undefined;
80
- }[] | undefined;
81
- packageAdditions?: {
82
- dependencies?: Record<string, string> | undefined;
83
- devDependencies?: Record<string, string> | undefined;
84
- scripts?: Record<string, string> | undefined;
85
- } | undefined;
86
- shadcnComponents?: string[] | undefined;
87
- dependsOn?: string[] | undefined;
88
- smallLogo?: string | undefined;
89
- logo?: string | undefined;
90
- addOnSpecialSteps?: string[] | undefined;
91
- createSpecialSteps?: string[] | undefined;
92
- }, {
93
- id: string;
94
- name: string;
95
- description: string;
96
- type: "add-on" | "example" | "starter" | "toolchain";
97
- command?: {
98
- command: string;
99
- args?: string[] | undefined;
100
- } | undefined;
101
- author?: string | undefined;
102
- version?: string | undefined;
103
- link?: string | undefined;
104
- license?: string | undefined;
105
- warning?: string | undefined;
106
- routes?: {
107
- path: string;
108
- jsName: string;
109
- name?: string | undefined;
110
- url?: string | undefined;
111
- }[] | undefined;
112
- packageAdditions?: {
113
- dependencies?: Record<string, string> | undefined;
114
- devDependencies?: Record<string, string> | undefined;
115
- scripts?: Record<string, string> | undefined;
116
- } | undefined;
117
- shadcnComponents?: string[] | undefined;
118
- dependsOn?: string[] | undefined;
119
- smallLogo?: string | undefined;
120
- logo?: string | undefined;
121
- addOnSpecialSteps?: string[] | undefined;
122
- createSpecialSteps?: string[] | undefined;
123
- }>;
124
- export declare const StarterSchema: z.ZodObject<{
125
- id: z.ZodString;
126
- name: z.ZodString;
127
- description: z.ZodString;
128
- author: z.ZodOptional<z.ZodString>;
129
- version: z.ZodOptional<z.ZodString>;
130
- link: z.ZodOptional<z.ZodString>;
131
- license: z.ZodOptional<z.ZodString>;
132
- warning: z.ZodOptional<z.ZodString>;
133
- type: z.ZodEnum<["add-on", "example", "starter", "toolchain"]>;
134
- command: z.ZodOptional<z.ZodObject<{
135
- command: z.ZodString;
136
- args: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
137
- }, "strip", z.ZodTypeAny, {
138
- command: string;
139
- args?: string[] | undefined;
140
- }, {
141
- command: string;
142
- args?: string[] | undefined;
143
- }>>;
144
- routes: z.ZodOptional<z.ZodArray<z.ZodObject<{
145
- url: z.ZodOptional<z.ZodString>;
146
- name: z.ZodOptional<z.ZodString>;
147
- path: z.ZodString;
148
- jsName: z.ZodString;
149
- }, "strip", z.ZodTypeAny, {
150
- path: string;
151
- jsName: string;
152
- name?: string | undefined;
153
- url?: string | undefined;
154
- }, {
155
- path: string;
156
- jsName: string;
157
- name?: string | undefined;
158
- url?: string | undefined;
159
- }>, "many">>;
160
- packageAdditions: z.ZodOptional<z.ZodObject<{
161
- dependencies: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
162
- devDependencies: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
163
- scripts: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
164
- }, "strip", z.ZodTypeAny, {
165
- dependencies?: Record<string, string> | undefined;
166
- devDependencies?: Record<string, string> | undefined;
167
- scripts?: Record<string, string> | undefined;
168
- }, {
169
- dependencies?: Record<string, string> | undefined;
170
- devDependencies?: Record<string, string> | undefined;
171
- scripts?: Record<string, string> | undefined;
172
- }>>;
173
- shadcnComponents: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
174
- dependsOn: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
175
- smallLogo: z.ZodOptional<z.ZodString>;
176
- logo: z.ZodOptional<z.ZodString>;
177
- addOnSpecialSteps: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
178
- createSpecialSteps: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
179
- } & {
180
- framework: z.ZodString;
181
- mode: z.ZodString;
182
- typescript: z.ZodBoolean;
183
- tailwind: z.ZodBoolean;
184
- banner: z.ZodOptional<z.ZodString>;
185
- }, "strip", z.ZodTypeAny, {
186
- id: string;
187
- name: string;
188
- description: string;
189
- type: "add-on" | "example" | "starter" | "toolchain";
190
- framework: string;
191
- mode: string;
192
- typescript: boolean;
193
- tailwind: boolean;
194
- command?: {
195
- command: string;
196
- args?: string[] | undefined;
197
- } | undefined;
198
- author?: string | undefined;
199
- version?: string | undefined;
200
- link?: string | undefined;
201
- license?: string | undefined;
202
- warning?: string | undefined;
203
- routes?: {
204
- path: string;
205
- jsName: string;
206
- name?: string | undefined;
207
- url?: string | undefined;
208
- }[] | undefined;
209
- packageAdditions?: {
210
- dependencies?: Record<string, string> | undefined;
211
- devDependencies?: Record<string, string> | undefined;
212
- scripts?: Record<string, string> | undefined;
213
- } | undefined;
214
- shadcnComponents?: string[] | undefined;
215
- dependsOn?: string[] | undefined;
216
- smallLogo?: string | undefined;
217
- logo?: string | undefined;
218
- addOnSpecialSteps?: string[] | undefined;
219
- createSpecialSteps?: string[] | undefined;
220
- banner?: string | undefined;
221
- }, {
222
- id: string;
223
- name: string;
224
- description: string;
225
- type: "add-on" | "example" | "starter" | "toolchain";
226
- framework: string;
227
- mode: string;
228
- typescript: boolean;
229
- tailwind: boolean;
230
- command?: {
231
- command: string;
232
- args?: string[] | undefined;
233
- } | undefined;
234
- author?: string | undefined;
235
- version?: string | undefined;
236
- link?: string | undefined;
237
- license?: string | undefined;
238
- warning?: string | undefined;
239
- routes?: {
240
- path: string;
241
- jsName: string;
242
- name?: string | undefined;
243
- url?: string | undefined;
244
- }[] | undefined;
245
- packageAdditions?: {
246
- dependencies?: Record<string, string> | undefined;
247
- devDependencies?: Record<string, string> | undefined;
248
- scripts?: Record<string, string> | undefined;
249
- } | undefined;
250
- shadcnComponents?: string[] | undefined;
251
- dependsOn?: string[] | undefined;
252
- smallLogo?: string | undefined;
253
- logo?: string | undefined;
254
- addOnSpecialSteps?: string[] | undefined;
255
- createSpecialSteps?: string[] | undefined;
256
- banner?: string | undefined;
257
- }>;
258
- export declare const StarterCompiledSchema: z.ZodObject<{
259
- id: z.ZodString;
260
- name: z.ZodString;
261
- description: z.ZodString;
262
- author: z.ZodOptional<z.ZodString>;
263
- version: z.ZodOptional<z.ZodString>;
264
- link: z.ZodOptional<z.ZodString>;
265
- license: z.ZodOptional<z.ZodString>;
266
- warning: z.ZodOptional<z.ZodString>;
267
- type: z.ZodEnum<["add-on", "example", "starter", "toolchain"]>;
268
- command: z.ZodOptional<z.ZodObject<{
269
- command: z.ZodString;
270
- args: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
271
- }, "strip", z.ZodTypeAny, {
272
- command: string;
273
- args?: string[] | undefined;
274
- }, {
275
- command: string;
276
- args?: string[] | undefined;
277
- }>>;
278
- routes: z.ZodOptional<z.ZodArray<z.ZodObject<{
279
- url: z.ZodOptional<z.ZodString>;
280
- name: z.ZodOptional<z.ZodString>;
281
- path: z.ZodString;
282
- jsName: z.ZodString;
283
- }, "strip", z.ZodTypeAny, {
284
- path: string;
285
- jsName: string;
286
- name?: string | undefined;
287
- url?: string | undefined;
288
- }, {
289
- path: string;
290
- jsName: string;
291
- name?: string | undefined;
292
- url?: string | undefined;
293
- }>, "many">>;
294
- packageAdditions: z.ZodOptional<z.ZodObject<{
295
- dependencies: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
296
- devDependencies: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
297
- scripts: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
298
- }, "strip", z.ZodTypeAny, {
299
- dependencies?: Record<string, string> | undefined;
300
- devDependencies?: Record<string, string> | undefined;
301
- scripts?: Record<string, string> | undefined;
302
- }, {
303
- dependencies?: Record<string, string> | undefined;
304
- devDependencies?: Record<string, string> | undefined;
305
- scripts?: Record<string, string> | undefined;
306
- }>>;
307
- shadcnComponents: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
308
- dependsOn: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
309
- smallLogo: z.ZodOptional<z.ZodString>;
310
- logo: z.ZodOptional<z.ZodString>;
311
- addOnSpecialSteps: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
312
- createSpecialSteps: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
313
- } & {
314
- framework: z.ZodString;
315
- mode: z.ZodString;
316
- typescript: z.ZodBoolean;
317
- tailwind: z.ZodBoolean;
318
- banner: z.ZodOptional<z.ZodString>;
319
- } & {
320
- files: z.ZodRecord<z.ZodString, z.ZodString>;
321
- deletedFiles: z.ZodArray<z.ZodString, "many">;
322
- }, "strip", z.ZodTypeAny, {
323
- id: string;
324
- name: string;
325
- description: string;
326
- type: "add-on" | "example" | "starter" | "toolchain";
327
- framework: string;
328
- mode: string;
329
- typescript: boolean;
330
- tailwind: boolean;
331
- files: Record<string, string>;
332
- deletedFiles: string[];
333
- command?: {
334
- command: string;
335
- args?: string[] | undefined;
336
- } | undefined;
337
- author?: string | undefined;
338
- version?: string | undefined;
339
- link?: string | undefined;
340
- license?: string | undefined;
341
- warning?: string | undefined;
342
- routes?: {
343
- path: string;
344
- jsName: string;
345
- name?: string | undefined;
346
- url?: string | undefined;
347
- }[] | undefined;
348
- packageAdditions?: {
349
- dependencies?: Record<string, string> | undefined;
350
- devDependencies?: Record<string, string> | undefined;
351
- scripts?: Record<string, string> | undefined;
352
- } | undefined;
353
- shadcnComponents?: string[] | undefined;
354
- dependsOn?: string[] | undefined;
355
- smallLogo?: string | undefined;
356
- logo?: string | undefined;
357
- addOnSpecialSteps?: string[] | undefined;
358
- createSpecialSteps?: string[] | undefined;
359
- banner?: string | undefined;
360
- }, {
361
- id: string;
362
- name: string;
363
- description: string;
364
- type: "add-on" | "example" | "starter" | "toolchain";
365
- framework: string;
366
- mode: string;
367
- typescript: boolean;
368
- tailwind: boolean;
369
- files: Record<string, string>;
370
- deletedFiles: string[];
371
- command?: {
372
- command: string;
373
- args?: string[] | undefined;
374
- } | undefined;
375
- author?: string | undefined;
376
- version?: string | undefined;
377
- link?: string | undefined;
378
- license?: string | undefined;
379
- warning?: string | undefined;
380
- routes?: {
381
- path: string;
382
- jsName: string;
383
- name?: string | undefined;
384
- url?: string | undefined;
385
- }[] | undefined;
386
- packageAdditions?: {
387
- dependencies?: Record<string, string> | undefined;
388
- devDependencies?: Record<string, string> | undefined;
389
- scripts?: Record<string, string> | undefined;
390
- } | undefined;
391
- shadcnComponents?: string[] | undefined;
392
- dependsOn?: string[] | undefined;
393
- smallLogo?: string | undefined;
394
- logo?: string | undefined;
395
- addOnSpecialSteps?: string[] | undefined;
396
- createSpecialSteps?: string[] | undefined;
397
- banner?: string | undefined;
398
- }>;
399
- export declare const IntegrationSchema: z.ZodObject<{
400
- type: z.ZodString;
401
- path: z.ZodString;
402
- jsName: z.ZodString;
403
- }, "strip", z.ZodTypeAny, {
404
- type: string;
405
- path: string;
406
- jsName: string;
407
- }, {
408
- type: string;
409
- path: string;
410
- jsName: string;
411
- }>;
412
- export declare const AddOnInfoSchema: z.ZodObject<{
413
- id: z.ZodString;
414
- name: z.ZodString;
415
- description: z.ZodString;
416
- author: z.ZodOptional<z.ZodString>;
417
- version: z.ZodOptional<z.ZodString>;
418
- link: z.ZodOptional<z.ZodString>;
419
- license: z.ZodOptional<z.ZodString>;
420
- warning: z.ZodOptional<z.ZodString>;
421
- type: z.ZodEnum<["add-on", "example", "starter", "toolchain"]>;
422
- command: z.ZodOptional<z.ZodObject<{
423
- command: z.ZodString;
424
- args: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
425
- }, "strip", z.ZodTypeAny, {
426
- command: string;
427
- args?: string[] | undefined;
428
- }, {
429
- command: string;
430
- args?: string[] | undefined;
431
- }>>;
432
- routes: z.ZodOptional<z.ZodArray<z.ZodObject<{
433
- url: z.ZodOptional<z.ZodString>;
434
- name: z.ZodOptional<z.ZodString>;
435
- path: z.ZodString;
436
- jsName: z.ZodString;
437
- }, "strip", z.ZodTypeAny, {
438
- path: string;
439
- jsName: string;
440
- name?: string | undefined;
441
- url?: string | undefined;
442
- }, {
443
- path: string;
444
- jsName: string;
445
- name?: string | undefined;
446
- url?: string | undefined;
447
- }>, "many">>;
448
- packageAdditions: z.ZodOptional<z.ZodObject<{
449
- dependencies: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
450
- devDependencies: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
451
- scripts: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
452
- }, "strip", z.ZodTypeAny, {
453
- dependencies?: Record<string, string> | undefined;
454
- devDependencies?: Record<string, string> | undefined;
455
- scripts?: Record<string, string> | undefined;
456
- }, {
457
- dependencies?: Record<string, string> | undefined;
458
- devDependencies?: Record<string, string> | undefined;
459
- scripts?: Record<string, string> | undefined;
460
- }>>;
461
- shadcnComponents: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
462
- dependsOn: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
463
- smallLogo: z.ZodOptional<z.ZodString>;
464
- logo: z.ZodOptional<z.ZodString>;
465
- addOnSpecialSteps: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
466
- createSpecialSteps: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
467
- } & {
468
- modes: z.ZodArray<z.ZodString, "many">;
469
- integrations: z.ZodOptional<z.ZodArray<z.ZodObject<{
470
- type: z.ZodString;
471
- path: z.ZodString;
472
- jsName: z.ZodString;
473
- }, "strip", z.ZodTypeAny, {
474
- type: string;
475
- path: string;
476
- jsName: string;
477
- }, {
478
- type: string;
479
- path: string;
480
- jsName: string;
481
- }>, "many">>;
482
- phase: z.ZodEnum<["setup", "add-on"]>;
483
- readme: z.ZodOptional<z.ZodString>;
484
- }, "strip", z.ZodTypeAny, {
485
- id: string;
486
- name: string;
487
- description: string;
488
- type: "add-on" | "example" | "starter" | "toolchain";
489
- modes: string[];
490
- phase: "add-on" | "setup";
491
- command?: {
492
- command: string;
493
- args?: string[] | undefined;
494
- } | undefined;
495
- author?: string | undefined;
496
- version?: string | undefined;
497
- link?: string | undefined;
498
- license?: string | undefined;
499
- warning?: string | undefined;
500
- routes?: {
501
- path: string;
502
- jsName: string;
503
- name?: string | undefined;
504
- url?: string | undefined;
505
- }[] | undefined;
506
- packageAdditions?: {
507
- dependencies?: Record<string, string> | undefined;
508
- devDependencies?: Record<string, string> | undefined;
509
- scripts?: Record<string, string> | undefined;
510
- } | undefined;
511
- shadcnComponents?: string[] | undefined;
512
- dependsOn?: string[] | undefined;
513
- smallLogo?: string | undefined;
514
- logo?: string | undefined;
515
- addOnSpecialSteps?: string[] | undefined;
516
- createSpecialSteps?: string[] | undefined;
517
- integrations?: {
518
- type: string;
519
- path: string;
520
- jsName: string;
521
- }[] | undefined;
522
- readme?: string | undefined;
523
- }, {
524
- id: string;
525
- name: string;
526
- description: string;
527
- type: "add-on" | "example" | "starter" | "toolchain";
528
- modes: string[];
529
- phase: "add-on" | "setup";
530
- command?: {
531
- command: string;
532
- args?: string[] | undefined;
533
- } | undefined;
534
- author?: string | undefined;
535
- version?: string | undefined;
536
- link?: string | undefined;
537
- license?: string | undefined;
538
- warning?: string | undefined;
539
- routes?: {
540
- path: string;
541
- jsName: string;
542
- name?: string | undefined;
543
- url?: string | undefined;
544
- }[] | undefined;
545
- packageAdditions?: {
546
- dependencies?: Record<string, string> | undefined;
547
- devDependencies?: Record<string, string> | undefined;
548
- scripts?: Record<string, string> | undefined;
549
- } | undefined;
550
- shadcnComponents?: string[] | undefined;
551
- dependsOn?: string[] | undefined;
552
- smallLogo?: string | undefined;
553
- logo?: string | undefined;
554
- addOnSpecialSteps?: string[] | undefined;
555
- createSpecialSteps?: string[] | undefined;
556
- integrations?: {
557
- type: string;
558
- path: string;
559
- jsName: string;
560
- }[] | undefined;
561
- readme?: string | undefined;
562
- }>;
563
- export declare const AddOnCompiledSchema: z.ZodObject<{
564
- id: z.ZodString;
565
- name: z.ZodString;
566
- description: z.ZodString;
567
- author: z.ZodOptional<z.ZodString>;
568
- version: z.ZodOptional<z.ZodString>;
569
- link: z.ZodOptional<z.ZodString>;
570
- license: z.ZodOptional<z.ZodString>;
571
- warning: z.ZodOptional<z.ZodString>;
572
- type: z.ZodEnum<["add-on", "example", "starter", "toolchain"]>;
573
- command: z.ZodOptional<z.ZodObject<{
574
- command: z.ZodString;
575
- args: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
576
- }, "strip", z.ZodTypeAny, {
577
- command: string;
578
- args?: string[] | undefined;
579
- }, {
580
- command: string;
581
- args?: string[] | undefined;
582
- }>>;
583
- routes: z.ZodOptional<z.ZodArray<z.ZodObject<{
584
- url: z.ZodOptional<z.ZodString>;
585
- name: z.ZodOptional<z.ZodString>;
586
- path: z.ZodString;
587
- jsName: z.ZodString;
588
- }, "strip", z.ZodTypeAny, {
589
- path: string;
590
- jsName: string;
591
- name?: string | undefined;
592
- url?: string | undefined;
593
- }, {
594
- path: string;
595
- jsName: string;
596
- name?: string | undefined;
597
- url?: string | undefined;
598
- }>, "many">>;
599
- packageAdditions: z.ZodOptional<z.ZodObject<{
600
- dependencies: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
601
- devDependencies: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
602
- scripts: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
603
- }, "strip", z.ZodTypeAny, {
604
- dependencies?: Record<string, string> | undefined;
605
- devDependencies?: Record<string, string> | undefined;
606
- scripts?: Record<string, string> | undefined;
607
- }, {
608
- dependencies?: Record<string, string> | undefined;
609
- devDependencies?: Record<string, string> | undefined;
610
- scripts?: Record<string, string> | undefined;
611
- }>>;
612
- shadcnComponents: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
613
- dependsOn: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
614
- smallLogo: z.ZodOptional<z.ZodString>;
615
- logo: z.ZodOptional<z.ZodString>;
616
- addOnSpecialSteps: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
617
- createSpecialSteps: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
618
- } & {
619
- modes: z.ZodArray<z.ZodString, "many">;
620
- integrations: z.ZodOptional<z.ZodArray<z.ZodObject<{
621
- type: z.ZodString;
622
- path: z.ZodString;
623
- jsName: z.ZodString;
624
- }, "strip", z.ZodTypeAny, {
625
- type: string;
626
- path: string;
627
- jsName: string;
628
- }, {
629
- type: string;
630
- path: string;
631
- jsName: string;
632
- }>, "many">>;
633
- phase: z.ZodEnum<["setup", "add-on"]>;
634
- readme: z.ZodOptional<z.ZodString>;
635
- } & {
636
- files: z.ZodRecord<z.ZodString, z.ZodString>;
637
- deletedFiles: z.ZodArray<z.ZodString, "many">;
638
- }, "strip", z.ZodTypeAny, {
639
- id: string;
640
- name: string;
641
- description: string;
642
- type: "add-on" | "example" | "starter" | "toolchain";
643
- files: Record<string, string>;
644
- deletedFiles: string[];
645
- modes: string[];
646
- phase: "add-on" | "setup";
647
- command?: {
648
- command: string;
649
- args?: string[] | undefined;
650
- } | undefined;
651
- author?: string | undefined;
652
- version?: string | undefined;
653
- link?: string | undefined;
654
- license?: string | undefined;
655
- warning?: string | undefined;
656
- routes?: {
657
- path: string;
658
- jsName: string;
659
- name?: string | undefined;
660
- url?: string | undefined;
661
- }[] | undefined;
662
- packageAdditions?: {
663
- dependencies?: Record<string, string> | undefined;
664
- devDependencies?: Record<string, string> | undefined;
665
- scripts?: Record<string, string> | undefined;
666
- } | undefined;
667
- shadcnComponents?: string[] | undefined;
668
- dependsOn?: string[] | undefined;
669
- smallLogo?: string | undefined;
670
- logo?: string | undefined;
671
- addOnSpecialSteps?: string[] | undefined;
672
- createSpecialSteps?: string[] | undefined;
673
- integrations?: {
674
- type: string;
675
- path: string;
676
- jsName: string;
677
- }[] | undefined;
678
- readme?: string | undefined;
679
- }, {
680
- id: string;
681
- name: string;
682
- description: string;
683
- type: "add-on" | "example" | "starter" | "toolchain";
684
- files: Record<string, string>;
685
- deletedFiles: string[];
686
- modes: string[];
687
- phase: "add-on" | "setup";
688
- command?: {
689
- command: string;
690
- args?: string[] | undefined;
691
- } | undefined;
692
- author?: string | undefined;
693
- version?: string | undefined;
694
- link?: string | undefined;
695
- license?: string | undefined;
696
- warning?: string | undefined;
697
- routes?: {
698
- path: string;
699
- jsName: string;
700
- name?: string | undefined;
701
- url?: string | undefined;
702
- }[] | undefined;
703
- packageAdditions?: {
704
- dependencies?: Record<string, string> | undefined;
705
- devDependencies?: Record<string, string> | undefined;
706
- scripts?: Record<string, string> | undefined;
707
- } | undefined;
708
- shadcnComponents?: string[] | undefined;
709
- dependsOn?: string[] | undefined;
710
- smallLogo?: string | undefined;
711
- logo?: string | undefined;
712
- addOnSpecialSteps?: string[] | undefined;
713
- createSpecialSteps?: string[] | undefined;
714
- integrations?: {
715
- type: string;
716
- path: string;
717
- jsName: string;
718
- }[] | undefined;
719
- readme?: string | undefined;
720
- }>;
721
- export type Integration = z.infer<typeof IntegrationSchema>;
722
- export type AddOnBase = z.infer<typeof AddOnBaseSchema>;
723
- export type StarterInfo = z.infer<typeof StarterSchema>;
724
- export type StarterCompiled = z.infer<typeof StarterCompiledSchema>;
725
- export type AddOnInfo = z.infer<typeof AddOnInfoSchema>;
726
- export type AddOnCompiled = z.infer<typeof AddOnCompiledSchema>;
727
- export type FileBundleHandler = {
728
- getFiles: () => Promise<Array<string>>;
729
- getFileContents: (path: string) => Promise<string>;
730
- getDeletedFiles: () => Promise<Array<string>>;
731
- };
732
- export type AddOn = AddOnInfo & FileBundleHandler;
733
- export type Starter = StarterCompiled & FileBundleHandler;
734
- export type FrameworkDefinition = {
735
- id: string;
736
- name: string;
737
- description: string;
738
- version: string;
739
- baseDirectory: string;
740
- addOnsDirectories: Array<string>;
741
- examplesDirectory: string;
742
- };
743
- export type Framework = FrameworkDefinition & FileBundleHandler & {
744
- basePackageJSON: Record<string, any>;
745
- optionalPackages: Record<string, any>;
746
- getAddOns: () => Array<AddOn>;
747
- };
748
7
  export interface Options {
749
- projectName: string;
750
- targetDir: string;
751
8
  framework: Framework;
752
- mode: Mode;
9
+ projectName: string;
753
10
  typescript: boolean;
754
11
  tailwind: boolean;
755
12
  packageManager: PackageManager;
756
- git: boolean;
13
+ toolchain: ToolChain;
14
+ mode: Mode;
15
+ addOns: boolean;
757
16
  chosenAddOns: Array<AddOn>;
758
- starter?: Starter | undefined;
17
+ git: boolean;
18
+ variableValues: Record<string, string | number | boolean>;
19
+ overlay?: AddOn | undefined;
759
20
  }
760
- export type SerializedOptions = Omit<Options, 'chosenAddOns' | 'starter' | 'framework'> & {
761
- chosenAddOns: Array<string>;
762
- starter?: string | undefined;
763
- framework: string;
764
- };
765
- type ProjectEnvironment = {
21
+ export interface CliOptions {
22
+ template?: TemplateOptions;
23
+ framework?: Framework;
24
+ tailwind?: boolean;
25
+ packageManager?: PackageManager;
26
+ toolchain?: ToolChain;
27
+ projectName?: string;
28
+ git?: boolean;
29
+ addOns?: Array<string> | boolean;
30
+ listAddOns?: boolean;
31
+ mcp?: boolean;
32
+ mcpSse?: boolean;
33
+ overlay?: string;
34
+ targetDir?: string;
35
+ interactive?: boolean;
36
+ }
37
+ export type Environment = {
766
38
  startRun: () => void;
767
39
  finishRun: () => void;
768
40
  getErrors: () => Array<string>;
769
- };
770
- type FileEnvironment = {
771
41
  appendFile: (path: string, contents: string) => Promise<void>;
772
42
  copyFile: (from: string, to: string) => Promise<void>;
773
43
  writeFile: (path: string, contents: string) => Promise<void>;
774
- writeFileBase64: (path: string, base64Contents: string) => Promise<void>;
775
- execute: (command: string, args: Array<string>, cwd: string) => Promise<{
776
- stdout: string;
777
- }>;
44
+ execute: (command: string, args: Array<string>, cwd: string) => Promise<void>;
778
45
  deleteFile: (path: string) => Promise<void>;
46
+ readFile: (path: string, encoding?: BufferEncoding) => Promise<string>;
779
47
  exists: (path: string) => boolean;
48
+ readdir: (path: string) => Array<string>;
780
49
  isDirectory: (path: string) => boolean;
781
- readFile: (path: string) => Promise<string>;
782
- readdir: (path: string) => Promise<Array<string>>;
783
- rimraf: (path: string) => Promise<void>;
784
50
  };
785
- export type StatusEvent = {
786
- id: string;
787
- type: StatusStepType;
788
- message: string;
51
+ type BooleanVariable = {
52
+ name: string;
53
+ default: boolean;
54
+ description: string;
55
+ type: 'boolean';
789
56
  };
790
- export type StopEvent = {
791
- id: string;
57
+ type NumberVariable = {
58
+ name: string;
59
+ default: number;
60
+ description: string;
61
+ type: 'number';
62
+ };
63
+ type StringVariable = {
64
+ name: string;
65
+ default: string;
66
+ description: string;
67
+ type: 'string';
792
68
  };
793
- type UIEnvironment = {
794
- appName: string;
795
- startStep: (info: {
796
- id: string;
797
- type: StatusStepType;
798
- message: string;
799
- }) => void;
800
- finishStep: (id: string, finalMessage: string) => void;
801
- intro: (message: string) => void;
802
- outro: (message: string) => void;
803
- info: (title?: string, message?: string) => void;
804
- error: (title?: string, message?: string) => void;
805
- warn: (title?: string, message?: string) => void;
806
- spinner: () => {
807
- start: (message: string) => void;
808
- stop: (message: string) => void;
69
+ export type Variable = BooleanVariable | NumberVariable | StringVariable;
70
+ export type AddOn = {
71
+ id: string;
72
+ name: string;
73
+ description: string;
74
+ type: 'add-on' | 'example' | 'overlay';
75
+ link: string;
76
+ templates: Array<string>;
77
+ routes: Array<{
78
+ url: string;
79
+ name: string;
80
+ }>;
81
+ packageAdditions: {
82
+ dependencies?: Record<string, string>;
83
+ devDependencies?: Record<string, string>;
84
+ scripts?: Record<string, string>;
85
+ };
86
+ command?: {
87
+ command: string;
88
+ args?: Array<string>;
809
89
  };
810
- confirm: (message: string) => Promise<boolean>;
90
+ readme?: string;
91
+ phase: 'setup' | 'add-on';
92
+ shadcnComponents?: Array<string>;
93
+ warning?: string;
94
+ dependsOn?: Array<string>;
95
+ variables?: Array<Variable>;
96
+ files?: Record<string, string>;
97
+ deletedFiles?: Array<string>;
98
+ };
99
+ export type Overlay = AddOn & {
100
+ type: 'overlay';
101
+ version: string;
102
+ author: string;
103
+ link: string;
104
+ license: string;
105
+ mode: Mode;
106
+ framework: Framework;
107
+ typescript: boolean;
108
+ tailwind: boolean;
811
109
  };
812
- export type Environment = ProjectEnvironment & FileEnvironment & UIEnvironment;
813
110
  export {};