stacks 0.53.1 → 0.56.3

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 (461) hide show
  1. package/.gitignore +4 -2
  2. package/README.md +71 -74
  3. package/api/package.json +3 -2
  4. package/art/logo-dark.svg +11 -0
  5. package/art/logo.svg +11 -0
  6. package/auto-imports.d.ts +1182 -841
  7. package/components.d.ts +7 -9
  8. package/core/actions/build.config.ts +181 -9
  9. package/core/actions/package.json +6 -8
  10. package/core/actions/src/build/component-libs.ts +2 -12
  11. package/core/actions/src/dev/index.ts +6 -5
  12. package/core/actions/src/generate/index.ts +2 -2
  13. package/core/actions/src/generate/settings.ts +1 -1
  14. package/core/actions/src/helpers/lib-entries.ts +43 -35
  15. package/core/actions/src/helpers/utils.ts +7 -9
  16. package/core/actions/src/lint/index.ts +14 -2
  17. package/core/actions/src/make.ts +7 -4
  18. package/core/actions/src/migrate.ts +2 -2
  19. package/core/actions/src/prepublish.ts +2 -2
  20. package/core/actions/src/release.ts +1 -1
  21. package/core/actions/src/seed.ts +1 -1
  22. package/core/actions/src/upgrade/framework.ts +1 -1
  23. package/core/actions/src/upgrade.ts +3 -3
  24. package/core/ai/build.config.ts +5 -7
  25. package/core/ai/package.json +5 -9
  26. package/core/alias/build.config.ts +5 -7
  27. package/core/alias/package.json +3 -6
  28. package/core/alias/src/index.ts +6 -7
  29. package/core/analytics/build.config.ts +5 -7
  30. package/core/analytics/package.json +6 -6
  31. package/core/arrays/build.config.ts +4 -7
  32. package/core/arrays/package.json +8 -4
  33. package/core/arrays/src/contains.ts +23 -0
  34. package/core/arrays/src/helpers.ts +206 -0
  35. package/core/arrays/src/index.ts +4 -226
  36. package/core/arrays/src/macro.ts +135 -0
  37. package/core/arrays/src/math.ts +19 -0
  38. package/core/auth/build.config.ts +4 -7
  39. package/core/auth/package.json +3 -3
  40. package/core/buddy/README.md +73 -76
  41. package/core/buddy/build.config.ts +1 -2
  42. package/core/buddy/package.json +4 -4
  43. package/core/buddy/src/cli.ts +10 -18
  44. package/core/buddy/src/commands/add.ts +2 -2
  45. package/core/buddy/src/commands/build.ts +23 -16
  46. package/core/buddy/src/commands/create.ts +2 -2
  47. package/core/buddy/src/commands/dev.ts +31 -30
  48. package/core/buddy/src/commands/example.ts +8 -14
  49. package/core/buddy/src/commands/generate.ts +16 -14
  50. package/core/buddy/src/commands/key.ts +1 -1
  51. package/core/buddy/src/commands/lint.ts +4 -4
  52. package/core/buddy/src/commands/make.ts +20 -15
  53. package/core/buddy/src/commands/setting.ts +2 -2
  54. package/core/buddy/src/commands/upgrade.ts +18 -22
  55. package/core/buddy/src/commands/version.ts +1 -1
  56. package/core/build/build.config.ts +22 -7
  57. package/core/build/package.json +11 -10
  58. package/core/build/src/desktop.ts +2 -2
  59. package/core/build/src/example-vue.ts +5 -4
  60. package/core/build/src/example-wc.ts +5 -4
  61. package/core/build/src/functions.ts +9 -11
  62. package/core/build/src/index.ts +7 -7
  63. package/core/build/src/stacks.ts +31 -50
  64. package/core/build/src/{pages.ts → views.ts} +13 -14
  65. package/core/build/src/vue-components.ts +73 -12
  66. package/core/build/src/web-components.ts +12 -11
  67. package/core/build/web-types.ts +3 -3
  68. package/core/cache/build.config.ts +7 -7
  69. package/core/cache/package.json +17 -17
  70. package/core/cache/tests/DynamoDB.test.ts +19 -33
  71. package/core/chat/build.config.ts +5 -7
  72. package/core/chat/package.json +8 -8
  73. package/core/cli/build.config.ts +3 -2
  74. package/core/cli/package.json +3 -3
  75. package/core/cli/src/console.ts +75 -2
  76. package/core/cli/src/helpers.ts +1 -1
  77. package/core/cli/src/parse.ts +2 -2
  78. package/core/cli/src/run.ts +5 -6
  79. package/core/cloud/build.config.ts +4 -7
  80. package/core/cloud/package.json +17 -3
  81. package/core/cloud/src/aws/index.ts +9 -0
  82. package/core/cloud/src/aws/logger.ts +8 -0
  83. package/core/cloud/src/aws/metrics.ts +8 -0
  84. package/core/cloud/src/aws/stack.ts +12 -0
  85. package/core/cloud/src/aws/tracer.ts +3 -0
  86. package/core/cloud/src/index.ts +1 -1
  87. package/core/cloud/src/runtime/nodejs/bootstrap.ts +16 -0
  88. package/core/cloud/src/runtime/nodejs/build.sh +1 -0
  89. package/core/collections/build.config.ts +3 -7
  90. package/core/collections/package.json +3 -3
  91. package/core/config/build.config.ts +33 -33
  92. package/core/config/package.json +4 -4
  93. package/core/config/src/defaults.ts +0 -3
  94. package/core/config/src/stacks.ts +10 -11
  95. package/core/database/build.config.ts +1 -2
  96. package/core/database/package.json +3 -3
  97. package/core/database/src/factory/index.ts +1 -1
  98. package/core/database/src/migrations/index.ts +1 -1
  99. package/core/datetime/build.config.ts +1 -2
  100. package/core/datetime/package.json +3 -3
  101. package/core/datetime/src/index.ts +2 -1
  102. package/core/desktop/build.config.ts +2 -1
  103. package/core/desktop/package.json +6 -6
  104. package/core/development/build.config.ts +15 -8
  105. package/core/development/package.json +11 -5
  106. package/core/development/src/index.ts +2 -0
  107. package/core/{domains → dns}/README.md +2 -2
  108. package/core/dns/build.config.ts +22 -0
  109. package/core/{domains → dns}/package.json +13 -9
  110. package/core/dns/src/index.ts +18 -0
  111. package/core/docs/build.config.ts +1 -2
  112. package/core/docs/package.json +4 -4
  113. package/core/email/build.config.ts +1 -2
  114. package/core/email/package.json +15 -15
  115. package/core/email/src/drivers/emailjs.ts +1 -1
  116. package/core/email/src/drivers/mailgun.ts +1 -1
  117. package/core/email/src/drivers/mailjet.ts +2 -2
  118. package/core/email/src/drivers/mandrill.ts +1 -1
  119. package/core/email/src/drivers/netcore.ts +1 -1
  120. package/core/email/src/drivers/nodemailer.ts +1 -1
  121. package/core/email/src/drivers/postmark.ts +1 -1
  122. package/core/email/src/drivers/sendgrid.ts +1 -1
  123. package/core/error-handling/build.config.ts +7 -2
  124. package/core/error-handling/package.json +6 -4
  125. package/core/error-handling/src/index.ts +45 -0
  126. package/core/events/README.md +1 -1
  127. package/core/events/build.config.ts +1 -2
  128. package/core/events/package.json +3 -3
  129. package/core/events/src/index.ts +8 -1
  130. package/core/faker/build.config.ts +3 -1
  131. package/core/faker/package.json +4 -4
  132. package/core/git/build.config.ts +3 -1
  133. package/core/git/package.json +4 -4
  134. package/core/health/build.config.ts +3 -1
  135. package/core/health/package.json +3 -3
  136. package/core/lint/build.config.ts +3 -1
  137. package/core/lint/package.json +6 -6
  138. package/core/logging/build.config.ts +5 -3
  139. package/core/logging/package.json +6 -6
  140. package/core/modules/build.config.ts +10 -7
  141. package/core/modules/package.json +3 -3
  142. package/core/notifications/README.md +1 -1
  143. package/core/notifications/build.config.ts +2 -1
  144. package/core/notifications/package.json +25 -25
  145. package/core/notifications/src/tailwind.config.ts +1 -1
  146. package/core/notifications/tests/email/Mailgun.test.ts +4 -4
  147. package/core/notifications/tests/email/Sendgrid.test.ts +2 -2
  148. package/core/objects/build.config.ts +15 -7
  149. package/core/objects/package.json +5 -4
  150. package/core/orm/build.config.ts +1 -2
  151. package/core/orm/package.json +3 -3
  152. package/core/pages/build.config.ts +4 -7
  153. package/core/pages/package.json +3 -3
  154. package/core/pages/src/index.ts +2 -2
  155. package/core/path/build.config.ts +1 -2
  156. package/core/path/package.json +4 -5
  157. package/core/path/src/index.ts +84 -65
  158. package/core/payments/build.config.ts +4 -7
  159. package/core/payments/package.json +5 -5
  160. package/core/push/build.config.ts +4 -7
  161. package/core/push/package.json +5 -5
  162. package/core/query-builder/build.config.ts +4 -7
  163. package/core/query-builder/package.json +7 -7
  164. package/core/queue/build.config.ts +4 -7
  165. package/core/queue/package.json +3 -3
  166. package/core/realtime/build.config.ts +4 -7
  167. package/core/realtime/package.json +3 -3
  168. package/core/realtime/src/index.ts +3 -1
  169. package/core/repl/README.md +53 -0
  170. package/core/repl/build.config.ts +12 -0
  171. package/core/repl/package.json +56 -0
  172. package/core/repl/src/index.ts +1 -0
  173. package/core/repl/tests/example.test.ts +7 -0
  174. package/core/router/build.config.ts +13 -7
  175. package/core/router/package.json +4 -4
  176. package/core/router/src/index.ts +2 -0
  177. package/core/scheduler/build.config.ts +4 -7
  178. package/core/scheduler/package.json +4 -4
  179. package/core/search-engine/build.config.ts +17 -7
  180. package/core/search-engine/package.json +4 -4
  181. package/core/search-engine/src/index.ts +2 -2
  182. package/core/security/build.config.ts +17 -7
  183. package/core/security/package.json +4 -3
  184. package/core/security/src/crypt.ts +11 -2
  185. package/core/server/build.config.ts +3 -7
  186. package/core/server/package.json +5 -5
  187. package/core/signals/README.md +2 -2
  188. package/core/signals/build.config.ts +4 -7
  189. package/core/signals/package.json +4 -4
  190. package/core/signals/src/index.ts +1 -1
  191. package/core/slug/build.config.ts +4 -7
  192. package/core/slug/package.json +3 -3
  193. package/core/slug/src/index.ts +2 -1
  194. package/core/sms/build.config.ts +3 -1
  195. package/core/sms/package.json +13 -13
  196. package/core/storage/build.config.ts +3 -7
  197. package/core/storage/package.json +5 -5
  198. package/core/storage/src/index.ts +2 -22
  199. package/core/strings/build.config.ts +1 -2
  200. package/core/strings/package.json +9 -3
  201. package/core/strings/src/case.ts +12 -0
  202. package/core/strings/src/index.ts +2 -1
  203. package/core/strings/src/is.ts +170 -0
  204. package/core/strings/src/macro.ts +139 -0
  205. package/core/strings/src/utils.ts +10 -12
  206. package/core/testing/build.config.ts +3 -1
  207. package/core/testing/package.json +8 -8
  208. package/core/tinker/build.config.ts +12 -0
  209. package/core/tinker/package.json +15 -3
  210. package/core/tinker/src/index.ts +1 -0
  211. package/core/types/build.config.ts +17 -8
  212. package/core/types/package.json +25 -19
  213. package/core/types/src/app.ts +4 -4
  214. package/core/types/src/cli.ts +36 -34
  215. package/core/types/src/cron-jobs.ts +25 -4
  216. package/core/types/src/database.ts +12 -3
  217. package/core/types/src/errors.ts +19 -1
  218. package/core/types/src/events.ts +13 -5
  219. package/core/types/src/git.ts +1 -1
  220. package/core/types/src/index.ts +2 -1
  221. package/core/types/src/library.ts +0 -7
  222. package/core/types/src/model.ts +21 -7
  223. package/core/types/src/money.ts +3 -0
  224. package/core/types/src/notifications.ts +9 -7
  225. package/core/types/src/queue.ts +34 -0
  226. package/core/types/src/search-engine.ts +3 -3
  227. package/core/types/src/stacks.ts +1 -12
  228. package/core/ui/build.config.ts +5 -7
  229. package/core/ui/package.json +7 -7
  230. package/core/utils/build.config.ts +32 -7
  231. package/core/utils/package.json +16 -16
  232. package/core/utils/src/config.ts +88 -49
  233. package/core/utils/src/currency.ts +3 -0
  234. package/core/utils/src/delete.ts +1 -3
  235. package/core/utils/src/helpers.ts +11 -5
  236. package/core/validation/build.config.ts +18 -8
  237. package/core/validation/package.json +8 -6
  238. package/core/validation/src/index.ts +2 -0
  239. package/core/validation/src/is.ts +27 -174
  240. package/core/validation/src/rules.ts +126 -0
  241. package/core/validation/src/types/env.ts +147 -0
  242. package/core/validation/src/types/index.ts +2 -0
  243. package/core/validation/src/types/money.ts +17 -0
  244. package/core/validation/src/validate.ts +14 -25
  245. package/core/vite-plugin/README.md +59 -0
  246. package/core/vite-plugin/build.config.ts +21 -0
  247. package/core/vite-plugin/package.json +51 -0
  248. package/core/vite-plugin/src/index.ts +23 -0
  249. package/core/vite-plugin/tests/example.test.ts +7 -0
  250. package/dictionary.txt +228 -0
  251. package/docs/package.json +3 -2
  252. package/env.d.ts +7 -0
  253. package/ide/jetbrains/.fleet/run.json +5 -0
  254. package/ide/jetbrains/.fleet/settings.json +4 -0
  255. package/ide/jetbrains/.idea/.gitignore +5 -0
  256. package/ide/jetbrains/.idea/inspectionProfiles/Project_Default.xml +6 -0
  257. package/ide/jetbrains/.idea/jsLibraryMappings.xml +6 -0
  258. package/ide/jetbrains/.idea/jsLinters/eslint.xml +7 -0
  259. package/ide/jetbrains/.idea/modules.xml +8 -0
  260. package/ide/jetbrains/.idea/stacks.iml +69 -0
  261. package/ide/jetbrains/.idea/vcs.xml +6 -0
  262. package/ide/jetbrains/.idea/webResources.xml +14 -0
  263. package/ide/jetbrains/.idea/workspace.xml +225 -0
  264. package/ide/jetbrains/IntelliJ IDEA Global Settings +0 -0
  265. package/ide/jetbrains/installed.txt +4 -0
  266. package/ide/jetbrains/options/github-copilot.xml +5 -0
  267. package/ide/jetbrains/options/nodejs.xml +7 -0
  268. package/ide/jetbrains/options/templates.xml +124 -0
  269. package/ide/jetbrains/templates/JavaScript.xml +6 -0
  270. package/ide/jetbrains/templates/Stacks.xml +8 -0
  271. package/ide/vscode/.vscode/README.md +23 -0
  272. package/ide/vscode/.vscode/extensions.json +5 -0
  273. package/ide/vscode/.vscode/settings.json +111 -0
  274. package/ide/vscode/.vscode/stacks.code-snippets +182 -0
  275. package/ide/vscode/README.md +42 -0
  276. package/ide/vscode/logo.png +0 -0
  277. package/ide/vscode/package.json +64 -0
  278. package/{components → libs/components}/vue/main.ts +1 -1
  279. package/{components → libs/components}/vue/package.json +1 -1
  280. package/{components → libs/components}/web/package.json +1 -1
  281. package/libs/examples/vue/App.vue +12 -0
  282. package/libs/examples/vue/favicon.png +0 -0
  283. package/libs/examples/vue/index.html +20 -0
  284. package/libs/examples/web/favicon.png +0 -0
  285. package/libs/examples/web/index.html +13 -0
  286. package/libs/functions/package.json +41 -0
  287. package/package.json +104 -98
  288. package/reset.d.ts +1 -0
  289. package/scripts/ensure.sh +33 -0
  290. package/scripts/publish.sh +18 -0
  291. package/scripts/setup.sh +540 -0
  292. package/stacks/dashboard/README.md +74 -0
  293. package/{core/domains → stacks/dashboard}/build.config.ts +1 -1
  294. package/stacks/dashboard/package.json +46 -0
  295. package/stacks/dashboard/src/index.ts +0 -0
  296. package/stacks/dashboard/tests/example.test.ts +7 -0
  297. package/stacks/tables/README.md +109 -0
  298. package/stacks/tables/build.config.ts +16 -0
  299. package/stacks/tables/examples/vue/App.vue +12 -0
  300. package/stacks/tables/examples/vue/favicon.png +0 -0
  301. package/stacks/tables/examples/vue/index.html +20 -0
  302. package/stacks/tables/examples/web/favicon.png +0 -0
  303. package/stacks/tables/examples/web/index.html +13 -0
  304. package/stacks/tables/index.html +13 -0
  305. package/stacks/tables/package.json +57 -0
  306. package/stacks/tables/src/App.vue +23 -0
  307. package/stacks/tables/src/components/Demo.vue +84 -0
  308. package/stacks/tables/src/components/README.md +110 -0
  309. package/stacks/tables/src/components/Table.vue +342 -0
  310. package/stacks/tables/src/components/TableBody.vue +32 -0
  311. package/stacks/tables/src/components/TableCellActionItems.vue +9 -0
  312. package/stacks/tables/src/components/TableFilters.vue +704 -0
  313. package/stacks/tables/src/components/TableHead.vue +60 -0
  314. package/stacks/tables/src/components/TablePagination.vue +131 -0
  315. package/stacks/tables/src/components/TableRow.vue +73 -0
  316. package/stacks/tables/src/components/TableSearch.vue +39 -0
  317. package/stacks/tables/src/components/Tooltip.vue +10 -0
  318. package/stacks/tables/src/config/tables.ts +1 -0
  319. package/stacks/tables/src/docs/index.md +0 -0
  320. package/stacks/tables/src/functions/README.md +8 -0
  321. package/stacks/tables/src/functions/dark.ts +3 -0
  322. package/stacks/tables/src/functions/index.ts +2 -0
  323. package/stacks/tables/src/functions/table.ts +207 -0
  324. package/stacks/tables/src/main.ts +4 -0
  325. package/stacks/tables/tests/example.test.ts +7 -0
  326. package/stacks/tables/vite.config.ts +26 -0
  327. package/stacks/tinker/package.json +48 -0
  328. package/stacks/tinker/src/index.ts +1 -0
  329. package/stacks/x-ray/README.md +55 -0
  330. package/stacks/x-ray/build.config.ts +15 -0
  331. package/stacks/x-ray/index.html +13 -0
  332. package/stacks/x-ray/package.json +55 -0
  333. package/stacks/x-ray/routes/index.ts +19 -0
  334. package/stacks/x-ray/src/client.ts +14 -0
  335. package/stacks/x-ray/src/desktop/api/nitro.config.ts +19 -0
  336. package/stacks/x-ray/src/desktop/api/routes/api/logs.ts +7 -0
  337. package/stacks/x-ray/src/desktop/api/routes/api/store-logs.ts +22 -0
  338. package/stacks/x-ray/src/desktop/api/src/types.ts +7 -0
  339. package/stacks/x-ray/src/desktop/api/storage/index.ts +7 -0
  340. package/stacks/x-ray/src/desktop/app.vue +377 -0
  341. package/stacks/x-ray/src/desktop/functions/http.ts +26 -0
  342. package/stacks/x-ray/src/desktop/functions/types.ts +7 -0
  343. package/stacks/x-ray/src/desktop/main.ts +14 -0
  344. package/stacks/x-ray/src/desktop/modules/counter/mod.vue +44 -0
  345. package/stacks/x-ray/src/desktop/modules/fetcher/mod.vue +63 -0
  346. package/stacks/x-ray/src/desktop/plugins/unified/unified-app.ts +5 -0
  347. package/stacks/x-ray/src/desktop/plugins/unified/unified-styles.scss +0 -0
  348. package/stacks/x-ray/src/desktop/services/http.ts +45 -0
  349. package/stacks/x-ray/src/desktop/styles/app.scss +0 -0
  350. package/stacks/x-ray/src/http.ts +26 -0
  351. package/stacks/x-ray/src/index.ts +42 -0
  352. package/stacks/x-ray/src/ray.config.ts +27 -0
  353. package/stacks/x-ray/src/types.ts +8 -0
  354. package/stacks/x-ray/tests/example.test.ts +7 -0
  355. package/stacks.d.ts +22 -0
  356. package/tsconfig.json +21 -12
  357. package/vcs/github/CODE_OF_CONDUCT.md +83 -0
  358. package/vcs/github/CONTRIBUTING.md +190 -0
  359. package/vcs/github/EXPLANATIONS.md +41 -0
  360. package/vcs/github/FUNDING.yml +1 -0
  361. package/vcs/github/ISSUE_TEMPLATE/bug_report.yml +62 -0
  362. package/vcs/github/ISSUE_TEMPLATE/config.yml +10 -0
  363. package/vcs/github/ISSUE_TEMPLATE/feature_request.yml +44 -0
  364. package/vcs/github/SECURITY.md +70 -0
  365. package/vcs/github/renovate.json +5 -0
  366. package/vcs/github/stale.yml +14 -0
  367. package/vcs/github/workflows/README.md +16 -0
  368. package/vcs/github/workflows/ci.yml +173 -0
  369. package/vcs/github/workflows/export-size.yml +32 -0
  370. package/vcs/github/workflows/release.yml +57 -0
  371. package/{pages → views}/desktop/src/Cargo.lock +363 -46
  372. package/{pages → views}/desktop/src/Cargo.toml +2 -2
  373. package/{pages → views}/web/main.ts +2 -2
  374. package/api/serverless.yml +0 -11
  375. package/core/actions/node_modules/.bin/markdown-it +0 -17
  376. package/core/actions/node_modules/.bin/unbuild +0 -17
  377. package/core/build/entries/README.md +0 -7
  378. package/core/build/node_modules/.bin/unbuild +0 -17
  379. package/core/build/node_modules/.bin/vite +0 -17
  380. package/core/build/node_modules/.bin/vite-ssg +0 -17
  381. package/core/build/node_modules/.bin/vue-docgen-web-types +0 -17
  382. package/core/desktop/node_modules/.bin/tauri +0 -17
  383. package/core/development/node_modules/.bin/tsc +0 -17
  384. package/core/development/node_modules/.bin/tsserver +0 -17
  385. package/core/development/node_modules/.bin/tsx +0 -17
  386. package/core/development/node_modules/.bin/unbuild +0 -17
  387. package/core/docs/node_modules/.bin/vitepress +0 -17
  388. package/core/email/node_modules/.bin/maizzle +0 -17
  389. package/core/git/node_modules/.bin/bumpp +0 -17
  390. package/core/git/node_modules/.bin/changelogen +0 -17
  391. package/core/git/node_modules/.bin/commitizen +0 -17
  392. package/core/git/node_modules/.bin/cz +0 -17
  393. package/core/git/node_modules/.bin/giget +0 -17
  394. package/core/git/node_modules/.bin/git-cz +0 -17
  395. package/core/git/node_modules/.bin/simple-git-hooks +0 -17
  396. package/core/lint/node_modules/.bin/eslint +0 -17
  397. package/core/lint/node_modules/.bin/lint-staged +0 -17
  398. package/core/lint/node_modules/.bin/publint +0 -17
  399. package/core/logging/node_modules/.bin/tsc +0 -17
  400. package/core/logging/node_modules/.bin/tsserver +0 -17
  401. package/core/logging/node_modules/.bin/tsx +0 -17
  402. package/core/logging/node_modules/.bin/unbuild +0 -17
  403. package/core/notifications/node_modules/.bin/maizzle +0 -17
  404. package/core/server/node_modules/.bin/nitro +0 -17
  405. package/core/server/node_modules/.bin/nitropack +0 -17
  406. package/core/server/node_modules/.bin/vite +0 -17
  407. package/core/testing/node_modules/.bin/playwright +0 -17
  408. package/core/testing/node_modules/.bin/tsc +0 -17
  409. package/core/testing/node_modules/.bin/tsserver +0 -17
  410. package/core/testing/node_modules/.bin/unbuild +0 -17
  411. package/core/testing/node_modules/.bin/vitest +0 -17
  412. package/core/tinker/node_modules/.bin/tsx +0 -17
  413. package/core/types/node_modules/.bin/markdown-it +0 -17
  414. package/core/types/node_modules/.bin/vite +0 -17
  415. package/core/types/node_modules/.bin/vite-ssg +0 -17
  416. package/core/types/node_modules/.bin/vitepress +0 -17
  417. package/core/types/src/markdown.ts +0 -198
  418. package/core/ui/node_modules/.bin/vue-tsc +0 -17
  419. package/core/utils/node_modules/.bin/rimraf +0 -17
  420. package/core/utils/node_modules/.bin/semver +0 -17
  421. package/docs/node_modules/.bin/rimraf +0 -17
  422. package/docs/node_modules/.bin/vitepress +0 -17
  423. /package/core/{domains → dns}/tests/example.test.ts +0 -0
  424. /package/{LICENSE.md → ide/vscode/LICENSE.md} +0 -0
  425. /package/{components → libs/components}/vue/index.html +0 -0
  426. /package/{core/domains/src → stacks/tables/src/cli}/index.ts +0 -0
  427. /package/{pages → views}/desktop/.gitignore +0 -0
  428. /package/{pages → views}/desktop/README.md +0 -0
  429. /package/{pages → views}/desktop/index.html +0 -0
  430. /package/{pages → views}/desktop/package.json +0 -0
  431. /package/{pages → views}/desktop/public/favicon.svg +0 -0
  432. /package/{pages → views}/desktop/src/.gitignore +0 -0
  433. /package/{pages → views}/desktop/src/build.rs +0 -0
  434. /package/{pages → views}/desktop/src/icons/128x128.png +0 -0
  435. /package/{pages → views}/desktop/src/icons/128x128@2x.png +0 -0
  436. /package/{pages → views}/desktop/src/icons/32x32.png +0 -0
  437. /package/{pages → views}/desktop/src/icons/Square107x107Logo.png +0 -0
  438. /package/{pages → views}/desktop/src/icons/Square142x142Logo.png +0 -0
  439. /package/{pages → views}/desktop/src/icons/Square150x150Logo.png +0 -0
  440. /package/{pages → views}/desktop/src/icons/Square284x284Logo.png +0 -0
  441. /package/{pages → views}/desktop/src/icons/Square30x30Logo.png +0 -0
  442. /package/{pages → views}/desktop/src/icons/Square310x310Logo.png +0 -0
  443. /package/{pages → views}/desktop/src/icons/Square44x44Logo.png +0 -0
  444. /package/{pages → views}/desktop/src/icons/Square71x71Logo.png +0 -0
  445. /package/{pages → views}/desktop/src/icons/Square89x89Logo.png +0 -0
  446. /package/{pages → views}/desktop/src/icons/StoreLogo.png +0 -0
  447. /package/{pages → views}/desktop/src/icons/icon.icns +0 -0
  448. /package/{pages → views}/desktop/src/icons/icon.ico +0 -0
  449. /package/{pages → views}/desktop/src/icons/icon.png +0 -0
  450. /package/{pages → views}/desktop/src/src/main.rs +0 -0
  451. /package/{pages → views}/desktop/src/tauri.conf.json +0 -0
  452. /package/{pages → views}/web/App.vue +0 -0
  453. /package/{pages → views}/web/index.html +0 -0
  454. /package/{pages → views}/web/public/_headers +0 -0
  455. /package/{pages → views}/web/public/favicon-dark.svg +0 -0
  456. /package/{pages → views}/web/public/favicon.svg +0 -0
  457. /package/{pages → views}/web/public/pwa-192x192.png +0 -0
  458. /package/{pages → views}/web/public/pwa-512x512.png +0 -0
  459. /package/{pages → views}/web/public/safari-pinned-tab.svg +0 -0
  460. /package/{pages → views}/web/styles/main.css +0 -0
  461. /package/{pages → views}/web/styles/markdown.css +0 -0
@@ -8,7 +8,7 @@
8
8
  [![npm downloads][npm-downloads-src]][npm-downloads-href]
9
9
  <!-- [![Codecov][codecov-src]][codecov-href] -->
10
10
 
11
- _Pre-release until public beta released. Coming May/June._
11
+ _Beta coming soon._
12
12
 
13
13
  The goal of the framework is to _help you_ create & maintain frontends, backends, and clouds—without having to worry about the boilerplate. Stacks is a rapid application development framework, meeting all your full stack needs.
14
14
 
@@ -72,7 +72,7 @@ _Create your personal or professional Vercel-like cloud, based on MIT-licensed O
72
72
  - ⛅️ **Serverless** _on-demand, auto-scaling, zero maintenance_
73
73
  - 🚏 **CDN** _zero-config low-latency CDN, including request life-cycle hooks & optimized request compressions (Brotli & gzip)_
74
74
  - 🔀 **Domain** _version-controlled & zero-config domain management (e.g. DNS)_
75
- - 📧 **Email** _secure & simplistic <easy-peasy@custom-domains.com> mail_
75
+ - 📧 **Email** _secure & simplistic easy-peasy@custom-domains.com mail_
76
76
  - 🔐 **Firewall** _native web application firewall support_
77
77
  - 🚜 **Maintenance** _handles your cloud infrastructure via the Stacks & Serverless framework_
78
78
  - 🤖 **Infrastructure as Code** _create & maintain your cloud infrastructure with ease_
@@ -94,7 +94,7 @@ _Enhanced productivity for developers. No more creating boilerplate._
94
94
  - 💪🏼 **Type Strong** _built-in e2e type-safety_
95
95
  - ✨ **Git Workflows** _committing with ease_
96
96
  - 🚗 **Auto Imports** _your components & functions, including date, string, array, & object helpers_
97
- - ⏩ **Code Snippets** _say goodbye to the boilerplate—thank you [Sarah Drasner](https://github.com/sdras/vue-vscode-snippets)_
97
+ - ⏩ **Code Snippets** _say goodbye to the boilerplate—thank you Sarah Drasner_
98
98
  - 🔤 **Spell Checker** _be notified once there are typos_
99
99
  - 🛠️ **Utilities** _Collections, VueUse, and more_
100
100
  - 🧪 **Testing** _unit & e2e tests powered by Vitest & Playwright_
@@ -110,27 +110,24 @@ Develop beautiful, reactive, composable UIs without learning a new set of langua
110
110
  It's incredibly easy to get started with this framework. Simply run the following command in your terminal:
111
111
 
112
112
  ```bash
113
- sh <(curl stacksjs.dev)
113
+ sh <(curl stacksjs.dev) my-project
114
114
 
115
- # alternatively, if Node.js >= v18.12 is installed already,
115
+ # alternatively, if Node.js >= v18.16 is installed already,
116
116
  # you may also get started via:
117
117
  npx stacks new my-project
118
118
  ```
119
119
 
120
- > **Note**
121
- > pnpm 8 required. _Run the setup script & 🐶 Buddy will set you up. He barks otherwise._
122
-
123
120
  ## 🤖 Usage
124
121
 
125
122
  The following list includes some of the most common ways to interact with the Stacks API. Meet the toolkit, Buddy:
126
123
 
127
124
  ```bash
128
125
  buddy install # installs all dependencies
129
- buddy dev # starts one of the dev servers (components, functions, pages, or docs)
126
+ buddy dev # starts one of the dev servers (components, functions, views, or docs)
130
127
  buddy build # follow CLI prompts to select which library (or server) to build
131
128
  buddy commit # follow CLI prompts for committing changes
132
129
  buddy release # creates the releases for the stack & consequently, publishes them to npm
133
- buddy upgrade # auto-update deps & the Stacks framework
130
+ buddy upgrade # auto-update all deps & the Stacks framework
134
131
 
135
132
  buddy make:component HelloWorld # scaffolds a component
136
133
  buddy make:function HelloWorld # scaffolds a function
@@ -148,69 +145,76 @@ buddy --help # view help menu
148
145
  # please note: you may suffix any command with the
149
146
  # `command --help` flag to review the help menu
150
147
 
151
- buddy install # installs your dependencies
148
+ buddy install # installs dependencies
149
+ buddy add # adds a stack or dependency
152
150
  buddy fresh # fresh reinstall of all deps
153
- buddy clean # removes all your deps
151
+ buddy clean # removes all deps
154
152
 
155
- buddy update # auto-update deps & the Stacks framework
156
- buddy update:dependencies # auto-update deps & the Stacks framework
157
- buddy update:framework # auto-update deps & the Stacks framework
158
- buddy update:package-manager # auto-update deps & the Stacks framework
159
- buddy update:search-engine # auto-updates Meilisearch
160
- buddy update:node # update to latest project-defined node version
161
- buddy update:all # update Node, package manager, framework, dependencies
153
+ buddy upgrade # auto-upgrades deps, framework, node.js, and/or pnpm
154
+ buddy upgrade:dependencies # auto-upgrades deps & the Stacks framework
155
+ buddy upgrade:framework # auto-upgrades deps & the Stacks framework
156
+ buddy upgrade:package-manager # auto-upgrades deps & the Stacks framework
157
+ buddy upgrade:search-engine # auto-upgrades configured search engine
158
+ buddy upgrade:node # upgrades to latest project-defined node version
159
+ buddy upgrade:all # upgrades Node, package manager, framework, dependencies
162
160
 
163
161
  # if you need any more info on any command listed here, you may suffix
164
162
  # any of them via the "help option", i.e. `buddy ... --help`
165
163
 
166
- buddy dev # start one of the dev servers (components, functions, pages, or docs)
167
- buddy dev:components # start local playground dev server
164
+ buddy dev # starts one of the dev servers (components, functions, views, or docs)
165
+ buddy dev:components # starts local playground dev server
168
166
  buddy dev:desktop # starts the Desktop playground
169
- buddy dev:pages # start local playground pages dev server
170
- buddy dev:functions # stub local the functions
171
- buddy dev:docs # start local docs dev server
167
+ buddy dev:views # starts local playground views dev server
168
+ buddy dev:functions # stubs local the functions
169
+ buddy dev:docs # starts local docs dev server
172
170
  buddy development # `buddy dev` alias
173
171
 
174
172
  # for Laravel folks, `serve` may ring more familiar than the `dev` name. Hence, we aliased it:
175
173
  buddy serve
176
174
  buddy serve:components
177
- buddy serve:pages
175
+ buddy serve:desktop
176
+ buddy serve:views
178
177
  buddy serve:functions
179
178
  buddy serve:docs
180
179
 
181
180
  # building for production (e.g. AWS, Google Cloud, npm, Vercel, Netlify, et al.)
182
181
  buddy build # select a specific build (follow CLI prompts)
183
- buddy build:components # build Vue component library & Web Component library
184
- buddy build:vue-components # build Vue 2 & 3-ready Component library
185
- buddy build:web-components # build framework agnostic Web Component library (i.e. Custom Elements)
186
- buddy build:functions # build function library
187
- buddy build:pages # build SSG pages
188
- buddy build:all # build all your code
182
+ buddy build:views # builds SSG views
183
+ buddy build:desktop # builds Desktop application
184
+ buddy build:library # builds any or all libraries
185
+ buddy build:functions # builds function library
186
+ buddy build:components # builds Vue component library & Web Component library
187
+ buddy build:web-components # builds framework agnostic Web Component library (i.e. Custom Elements)
188
+ buddy build:vue-components # builds Vue 2 & 3-ready Component library
189
+ buddy build:all # builds all your code
189
190
 
190
191
  # `buddy build` aliases
191
192
  buddy prod
192
193
  buddy prod:components
194
+ buddy prod:desktop
195
+ buddy prod:library
196
+ buddy prod:views
197
+ buddy prod:functions
193
198
  buddy prod:vue-components
194
199
  buddy prod:web-components
195
- buddy prod:functions
196
- buddy prod:pages
197
200
  buddy prod:all
198
201
  buddy production # `buddy prod` alias
199
202
 
200
203
  # sets your application key
201
204
  buddy key:generate
202
205
 
203
- buddy make:stack project
204
- buddy make:component HelloWorld
205
- buddy make:function hello-world
206
- buddy make:page hello-world
207
- buddy make:lang de
208
- buddy make:notification welcome-email
209
- buddy make:database cars
210
- buddy make:table brands
211
- buddy make:migration create_cars_table
212
- buddy make:factory cars
213
- buddy make:seed cars
206
+ buddy make:component HelloWorld # bootstraps a HelloWorld component
207
+ buddy make:function hello-world # bootstraps a hello-world function
208
+ buddy make:page hello-world # bootstraps a hello-word page
209
+ buddy make:model Car # bootstraps a Car model
210
+ buddy make:database cars # creates a cars database
211
+ buddy make:migration create_cars_table # creates a cars migration file
212
+ buddy make:factory cars # creates a Car factory file
213
+ buddy make:seed cars # creates a Car seed file
214
+ buddy make:table cars # boostraps a cars data table
215
+ buddy make:notification welcome-email # bootstraps a welcome-email notification
216
+ buddy make:lang de # bootstraps a lang/de.yml language file
217
+ buddy make:stack my-project # shares logic with `npx stacks new my-project`
214
218
 
215
219
  buddy lint # runs linter
216
220
  buddy lint:fix # runs linter and fixes issues
@@ -220,33 +224,33 @@ buddy release # creates the releases for the stack & triggers the Release Action
220
224
  buddy changelog # generates CHANGELOG.md
221
225
 
222
226
  # when deploying your app/s to a remote server or cloud provider
223
- buddy deploy
224
- buddy deploy:docs
225
- buddy deploy:functions
226
- buddy deploy:pages
227
- buddy deploy:all
227
+ buddy deploy # select a specific deployment (follow CLI prompts)
228
+ buddy deploy:docs # deploys docs to AWS (or other configured provider)
229
+ buddy deploy:functions # deploys functions to AWS (or other configured provider)
230
+ buddy deploy:views # deploys views to AWS (or other configured provider)
231
+ buddy deploy:all # deploys all your code
228
232
 
229
233
  # select the example to run (follow CLI prompts)
230
- buddy example
231
- buddy example:vue
232
- buddy example:web-components
234
+ buddy example # prompts you to select which example to run
235
+ buddy example:vue # runs the Vue example
236
+ buddy example:web-components # runs the Web Component example
233
237
 
234
238
  # you likely won't need to run these commands as they are auto-triggered, but they are available
235
- buddy generate
236
- buddy generate:entries
237
- buddy generate:vue-compat
238
- buddy generate:web-types
239
- buddy generate:vscode-custom-data
240
- buddy generate:ide-helpers
241
- buddy generate:component-meta
242
- buddy generate:all
239
+ buddy generate # prompts you to select which generator to run
240
+ buddy generate:entries # generates entry files for components, functions, & views
241
+ buddy generate:vue-compat # generates Vue 2 compatibility layer
242
+ buddy generate:web-types # generates Web Component types
243
+ buddy generate:vscode-custom-data # generates VSCode custom data
244
+ buddy generate:ide-helpers # generates IDE helpers
245
+ buddy generate:component-meta # generates component meta
246
+ buddy generate:all # runs all generators
243
247
 
244
248
  # generates your application key
245
- buddy key:generate
249
+ buddy key:generate # generates your application key
246
250
 
247
251
  # generate your TypeScript declarations
248
- buddy types:generate
249
- buddy types:fix
252
+ buddy types:generate # generates types for your components, functions, & views
253
+ buddy types:fix # auto-fixes types for your components, functions, & views
250
254
 
251
255
  # test your stack
252
256
  buddy test # runs test suite (unit & e2e)
@@ -259,12 +263,6 @@ stx fresh
259
263
  buddy fresh
260
264
  bud fresh
261
265
  buddy fresh
262
- pnpm stx fresh
263
- pnpm buddy fresh
264
- pnpm buddy fresh
265
- pnpm fresh
266
- pnpm run fresh
267
- pnpm run buddy fresh
268
266
  ```
269
267
 
270
268
  </details>
@@ -275,7 +273,7 @@ Read more here about the Stacks CLI in the documentation.
275
273
 
276
274
  Because Stacks optimizes the development of easily reusable & composable component & function libraries, the primary intention is to always _keep it simple, yet configurable._
277
275
 
278
- By default, Stacks realizes whether your Stack includes components, functions, and/or pages. Based on that determination, Stacks builds your outputs.
276
+ By default, Stacks realizes whether your Stack includes components, functions, and/or views. Based on that determination, Stacks builds your outputs.
279
277
 
280
278
  The UI libraries that automatically get built are: a Web Component (Custom Elements) & Vue Component library.
281
279
 
@@ -347,7 +345,7 @@ You may view this framework as an incredibly “useful set of frames” to assis
347
345
 
348
346
  Part of the Stacks ecosystem are the following first-party supported stacks:
349
347
 
350
- - [Table](https://github.com/stacksjs/table) (Data tables with ease)
348
+ - [Table](https://github.com/stacksjs/stacks/tree/main/.stacks/stacks/tables) (Data tables with ease)
351
349
  - [Calendar](https://github.com/stacksjs/calendar) (Add to Calendar utilities—iCal, Google, and more)
352
350
  - [Command Palette](https://github.com/stacksjs/command-palette) (`⌘ + k` for the web)
353
351
  - [Date Picker](https://github.com/stacksjs/date-picker) (Beautiful, modern date picker)
@@ -355,11 +353,10 @@ Part of the Stacks ecosystem are the following first-party supported stacks:
355
353
  - [Image](https://github.com/stacksjs/image) (Modern image experience)
356
354
  - [Video](https://github.com/stacksjs/video) (Modern video experience)
357
355
  - [Audio](https://github.com/stacksjs/audio) (Modern audio experience)
358
- - [Web3](https://github.com/stacksjs/web3) (Solana support, cross-chain core. _Ethereum & Cardano drivers coming._)
359
- - [Wallets](https://github.com/stacksjs/wallets) (Wallet Authentication)
360
- - [NFT](https://github.com/stacksjs/nft) (NFTs, Candy Machine mechanisms, and more.)
361
- - [DeFi](https://github.com/stacksjs/defi) (Cross-chain DeFi engine, including staking support)
362
- - [DAO](https://github.com/stacksjs/dao) (Powerful toolkit for DAO governance, including a Reddit-type of voting system)
356
+ - [Identity](https://github.com/stacksjs/identity) (Identity providers & wallet integrations)
357
+ - [Digital Ownership](https://github.com/stacksjs/ownership) (Public ownership protocol integrations)
358
+ - [Payments](https://github.com/stacksjs/payments) (Unified payment APIs)
359
+ - [Governance](https://github.com/stacksjs/governance) (Powerful toolkit for democratic governance)
363
360
 
364
361
  View our detailed roadmap/s [here](https://github.com/stacksjs/stacks/projects?query=is%3Aopen), for more information. Additionally, you may find interesting stacks, information & examples over at [Awesome Stacks](https://github.com/stacksjs/awesome-stacks).
365
362
 
@@ -1,5 +1,4 @@
1
- import { defineBuildConfig } from 'unbuild'
2
- import { alias } from '@stacksjs/alias'
1
+ import { alias, defineBuildConfig } from '@stacksjs/development'
3
2
 
4
3
  export default defineBuildConfig({
5
4
  alias,
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@stacksjs/buddy",
3
3
  "type": "module",
4
- "version": "0.53.1",
5
- "packageManager": "pnpm@8.5.1",
4
+ "version": "0.56.3",
5
+ "packageManager": "pnpm@8.6.5",
6
6
  "description": "Meet Buddy. The Stacks runtime.",
7
7
  "author": "Chris Breuer",
8
8
  "license": "MIT",
@@ -66,7 +66,7 @@
66
66
  "preinstall": "npx only-allow pnpm",
67
67
  "build": "unbuild",
68
68
  "dev": "unbuild --stub",
69
- "prepublishOnly": "pnpm buddy prepublish",
69
+ "prepublishOnly": "tsx ./src/cli.ts prepublish",
70
70
  "typecheck": "tsc --noEmit"
71
71
  },
72
72
  "peerDependencies": {
@@ -84,8 +84,8 @@
84
84
  "@stacksjs/database": "workspace:*",
85
85
  "@stacksjs/desktop": "workspace:*",
86
86
  "@stacksjs/development": "workspace:*",
87
+ "@stacksjs/dns": "workspace:*",
87
88
  "@stacksjs/docs": "workspace:*",
88
- "@stacksjs/domains": "workspace:*",
89
89
  "@stacksjs/email": "workspace:*",
90
90
  "@stacksjs/error-handling": "workspace:*",
91
91
  "@stacksjs/events": "workspace:*",
@@ -1,7 +1,9 @@
1
1
  #!/usr/bin/env node
2
2
  import { runAction } from '@stacksjs/actions'
3
+ import { handleError } from '@stacksjs/error-handling'
3
4
  import { command, log } from '@stacksjs/cli'
4
- import { env, frameworkVersion, installIfVersionMismatch, isProjectCreated } from '@stacksjs/utils'
5
+ import { env } from '@stacksjs/validation'
6
+ import { frameworkVersion, installIfVersionMismatch, isProjectCreated } from '@stacksjs/utils'
5
7
  import { projectPath } from '@stacksjs/path'
6
8
  import { Action } from '@stacksjs/types'
7
9
  import { build, changelog, clean, commit, create, dev, example, fresh, generate, key, lint, make, migrate, preinstall, prepublish, release, seed, setup, test, upgrade, version } from './commands'
@@ -9,8 +11,8 @@ import { build, changelog, clean, commit, create, dev, example, fresh, generate,
9
11
  const cli = command('buddy')
10
12
 
11
13
  // setup global error handlers
12
- process.on('uncaughtException', errorHandler)
13
- process.on('unhandledRejection', errorHandler)
14
+ process.on('uncaughtException', handleError)
15
+ process.on('unhandledRejection', handleError)
14
16
 
15
17
  async function main() {
16
18
  // the following commands are not dependent on the project being initialized
@@ -20,20 +22,15 @@ async function main() {
20
22
 
21
23
  // before running any commands, check if the project is already initialized
22
24
  if (!await isProjectCreated()) {
23
- if (env('APP_ENV') !== 'production') {
25
+ if (env.APP_ENV !== 'production')
24
26
  log.info('Project not yet initialized, generating application key...')
25
- }
26
- else {
27
- log.error('Please run `buddy key:generate` to generate an application key.')
28
- process.exit()
29
- }
27
+ else
28
+ handleError(new Error('Please run `buddy key:generate` to generate an application key'))
30
29
 
31
30
  const result = await runAction(Action.KeyGenerate, { cwd: projectPath() })
32
31
 
33
- if (result.isErr()) {
34
- log.error(result.error)
35
- process.exit()
36
- }
32
+ if (result.isErr())
33
+ handleError(result.error as Error)
37
34
 
38
35
  log.info('Application key generated.')
39
36
 
@@ -66,8 +63,3 @@ async function main() {
66
63
  }
67
64
 
68
65
  main()
69
-
70
- function errorHandler(error: Error): void {
71
- log.error(error)
72
- process.exit(1)
73
- }
@@ -1,6 +1,6 @@
1
1
  import type { AddOptions, BuildOptions, CLI } from '@stacksjs/types'
2
2
  import { ExitCode } from '@stacksjs/types'
3
- import { prompt } from '@stacksjs/cli'
3
+ import { log } from '@stacksjs/cli'
4
4
  import { invoke } from '@stacksjs/actions/add'
5
5
 
6
6
  async function add(buddy: CLI) {
@@ -21,7 +21,7 @@ async function add(buddy: CLI) {
21
21
  .option('--verbose', descriptions.verbose, { default: false })
22
22
  .action(async (options: BuildOptions) => {
23
23
  if (hasNoOptions(options)) {
24
- const answers = await prompt(descriptions.select, {
24
+ const answers = await log.prompt(descriptions.select, {
25
25
  type: 'multiselect',
26
26
  options: [
27
27
  { label: 'Calendar', value: 'calendar' },
@@ -1,6 +1,6 @@
1
1
  import type { BuildOptions, CLI } from '@stacksjs/types'
2
2
  import { Action, ExitCode } from '@stacksjs/types'
3
- import { intro, outro, prompt } from '@stacksjs/cli'
3
+ import { intro, log, outro, prompt } from '@stacksjs/cli'
4
4
  import { runAction } from '@stacksjs/actions'
5
5
 
6
6
  async function build(buddy: CLI) {
@@ -10,7 +10,7 @@ async function build(buddy: CLI) {
10
10
  webComponents: 'Build your framework agnostic web component library',
11
11
  elements: 'An alias to the -w flag',
12
12
  functions: 'Build your function library',
13
- pages: 'Build your SSG pages',
13
+ pages: 'Build your SSG views',
14
14
  docs: 'Build your documentation site',
15
15
  stacks: 'Build Stacks framework',
16
16
  select: 'What are you trying to build?',
@@ -24,29 +24,36 @@ async function build(buddy: CLI) {
24
24
  .option('-w, --web-components', descriptions.webComponents) // these are automatically built with your -c option as well
25
25
  .option('-e, --elements', descriptions.elements)
26
26
  .option('-f, --functions', descriptions.functions)
27
- .option('-p, --pages', descriptions.pages)
27
+ .option('-p, --views', descriptions.pages)
28
28
  .option('-d, --docs', descriptions.docs)
29
29
  .option('-s, --stacks', descriptions.stacks, { default: false })
30
30
  .option('--verbose', descriptions.verbose, { default: false })
31
31
  .action(async (options: BuildOptions) => {
32
32
  if (hasNoOptions(options)) {
33
- const answers = await prompt(descriptions.select, {
34
- type: 'multiselect',
35
- required: true,
36
- options: [
37
- { label: 'Components', value: 'components' },
38
- // { label: 'Vue Components', value: 'vue-components' },
39
- // { label: 'Web Components', value: 'web-components' },
40
- { label: 'Functions', value: 'functions' },
41
- { label: 'Pages', value: 'pages' },
42
- { label: 'Documentation', value: 'docs' },
43
- ],
44
- })
33
+ let answers = await prompt.require()
34
+ .multiselect(descriptions.select, {
35
+ options: [
36
+ { label: 'Components', value: 'components' },
37
+ // { label: 'Vue Components', value: 'vue-components' },
38
+ // { label: 'Web Components', value: 'web-components' },
39
+ { label: 'Functions', value: 'functions' },
40
+ { label: 'Pages', value: 'pages' },
41
+ { label: 'Documentation', value: 'docs' },
42
+ ],
43
+ })
44
+
45
+ if (answers !== null)
46
+ process.exit(ExitCode.InvalidArgument)
47
+
48
+ if (isString(answers))
49
+ answers = [answers]
45
50
 
46
51
  // creates an object out of array and sets answers to true
47
52
  options = answers.reduce((a: any, v: any) => ({ ...a, [v]: true }), {})
48
53
  }
49
54
 
55
+ console.log('options', options)
56
+
50
57
  await runAction(Action.BuildStacks, options)
51
58
 
52
59
  process.exit(ExitCode.Success)
@@ -111,7 +118,7 @@ async function build(buddy: CLI) {
111
118
  const result = await runAction(Action.BuildCore, options)
112
119
 
113
120
  if (result.isErr()) {
114
- log.error('Failed to build the Stacks core.', result.error as Error)
121
+ log.error('Failed to build the Stacks core.', result.error)
115
122
  process.exit()
116
123
  }
117
124
 
@@ -13,7 +13,7 @@ async function create(buddy: CLI) {
13
13
  components: 'Are you building UI components?',
14
14
  webComponents: 'Automagically built optimized custom elements/web components?',
15
15
  vue: 'Automagically built a Vue component library?',
16
- pages: 'How about pages?',
16
+ pages: 'How about views/views?',
17
17
  functions: 'Are you developing functions/composables?',
18
18
  api: 'Are you building an API?',
19
19
  database: 'Do you need a database?',
@@ -26,7 +26,7 @@ async function create(buddy: CLI) {
26
26
  .option('-c, --components', descriptions.components, { default: true }) // if no, -v and -w would be false
27
27
  .option('-w, --web-components', descriptions.webComponents, { default: true })
28
28
  .option('-v, --vue', descriptions.vue, { default: true })
29
- .option('-p, --pages', descriptions.pages, { default: true }) // pages need an HTTP server
29
+ .option('-p, --views', descriptions.pages, { default: true }) // views need an HTTP server
30
30
  .option('-f, --functions', descriptions.functions, { default: true }) // if no, API would be false
31
31
  .option('-a, --api', descriptions.api, { default: true }) // APIs need an HTTP server & assumes functions is true
32
32
  .option('-d, --database', descriptions.database, { default: true })
@@ -4,7 +4,7 @@ import type { CLI, DevOptions } from '@stacksjs/types'
4
4
  import { intro, log, outro, prompt } from '@stacksjs/cli'
5
5
  import { components, desktop, functions, pages } from '@stacksjs/actions/dev'
6
6
 
7
- // import { components, desktop, functions, pages, invoke as startDevelopmentServer } from '@stacksjs/actions/dev'
7
+ // import { components, desktop, functions, views, invoke as startDevelopmentServer } from '@stacksjs/actions/dev'
8
8
 
9
9
  async function dev(buddy: CLI) {
10
10
  const descriptions = {
@@ -22,24 +22,25 @@ async function dev(buddy: CLI) {
22
22
  .option('-c, --components', descriptions.components)
23
23
  .option('-f, --functions', descriptions.functions)
24
24
  .option('-d, --docs', descriptions.docs)
25
- .option('-p, --pages', descriptions.pages)
25
+ .option('-p, --views', descriptions.pages)
26
26
  .option('--verbose', descriptions.verbose, { default: false })
27
27
  .action(async (options: DevOptions) => {
28
+ // const perf = await intro('buddy dev')
29
+ // const result = await runAction(Action.Dev, { ...options, verbose: true })
30
+
28
31
  if (hasNoOptions(options)) {
29
- const answer = await prompt(descriptions.select, {
30
- type: 'select',
31
- required: true,
32
- options: [
33
- { value: 'pages', label: 'Pages' },
34
- { value: 'desktop', label: 'Desktop' },
35
- { value: 'components', label: 'Components' },
36
- { value: 'functions', label: 'Functions' },
37
- { value: 'docs', label: 'Documentation' },
38
- ],
39
- })
40
-
41
- if (answer !== null)
42
- process.exit(ExitCode.InvalidArgument)
32
+ const answer = await prompt.require()
33
+ .select(descriptions.select, {
34
+ options: [
35
+ { value: 'all', label: 'All' },
36
+ { value: 'pages', label: 'Frontend' },
37
+ { value: 'api', label: 'Backend' },
38
+ { value: 'desktop', label: 'Desktop' },
39
+ { value: 'components', label: 'Components' },
40
+ { value: 'functions', label: 'Functions' },
41
+ { value: 'docs', label: 'Documentation' },
42
+ ],
43
+ })
43
44
 
44
45
  if (answer === 'components')
45
46
  await components(options)
@@ -48,12 +49,21 @@ async function dev(buddy: CLI) {
48
49
  else if (answer === 'pages')
49
50
  await pages(options)
50
51
  // else if (answer === 'docs')
51
- // await docs(options)
52
+ // await docs(options)
52
53
 
53
54
  else process.exit(ExitCode.InvalidArgument)
54
55
  }
55
-
56
+ else {
57
+ if (options.components)
58
+ await components(options)
59
+ else if (options.functions)
60
+ await functions(options)
61
+ else if (options.pages)
62
+ await pages(options)
63
+ // else if (options.docs)
64
+ }
56
65
  // await startDevelopmentServer(options)
66
+
57
67
  process.exit(ExitCode.Success)
58
68
  })
59
69
 
@@ -64,19 +74,10 @@ async function dev(buddy: CLI) {
64
74
  const result = await runAction(Action.DevComponents, { ...options, verbose: true })
65
75
 
66
76
  if (options.verbose)
67
- log.info('The result object is', result)
68
-
69
- // check if result is an array
70
- if (Array.isArray(result)) {
71
- // check if any of the items in the array is an error
72
- // if (result.some(item => item.isErr())) {
73
- // outro('While running the dev:components command, there was an issue', { startTime: perf, useSeconds: true, isError: true })
74
- // process.exit()
75
- // }
76
- }
77
+ log.info('runAction result is', result)
77
78
 
78
79
  // check if result is an error
79
- else if (result.isErr()) {
80
+ if (result.isErr()) {
80
81
  outro('While running the dev:components command, there was an issue', { startTime: perf, useSeconds: true, isError: true }, result.error ?? undefined)
81
82
  process.exit()
82
83
  }
@@ -127,7 +128,7 @@ async function dev(buddy: CLI) {
127
128
  })
128
129
 
129
130
  buddy
130
- .command('dev:pages', descriptions.pages)
131
+ .command('dev:views', descriptions.pages)
131
132
  .option('--verbose', descriptions.verbose, { default: false })
132
133
  .action(async (options: DevOptions) => {
133
134
  await pages(options)
@@ -1,6 +1,6 @@
1
1
  import { ExitCode } from '@stacksjs/types'
2
2
  import type { CLI, ExamplesOptions } from '@stacksjs/types'
3
- import { italic, log, prompt } from '@stacksjs/cli'
3
+ import { prompt } from '@stacksjs/cli'
4
4
  import { componentExample, invoke as runExample, webComponentExample } from '@stacksjs/actions/examples'
5
5
 
6
6
  async function example(buddy: CLI) {
@@ -20,19 +20,13 @@ async function example(buddy: CLI) {
20
20
  .option('-w, --web-components', descriptions.webComponents)
21
21
  .option('--verbose', descriptions.verbose, { default: false })
22
22
  .action(async (options: ExamplesOptions) => {
23
- const answer = await prompt(descriptions.select, {
24
- type: 'select',
25
- required: true,
26
- options: [
27
- { value: 'components', label: 'Vue Components' },
28
- { value: 'web-components', label: 'Web Components' },
29
- ],
30
- })
31
-
32
- if (answer !== null) {
33
- log.error(`You did not provide an answer. Please try again, ${italic('or report the issue')}`)
34
- process.exit()
35
- }
23
+ const answer = await prompt.require()
24
+ .select(descriptions.select, {
25
+ options: [
26
+ { value: 'components', label: 'Vue Components' },
27
+ { value: 'web-components', label: 'Web Components' },
28
+ ],
29
+ })
36
30
 
37
31
  if (answer === 'components')
38
32
  await componentExample(options)