stacks 0.51.0 → 0.52.1

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 (700) hide show
  1. package/README.md +20 -17
  2. package/api/nitro.config.ts +17 -0
  3. package/api/package.json +42 -0
  4. package/api/routes/index.ts +1 -0
  5. package/api/serverless.yml +11 -0
  6. package/auto-imports.d.ts +1606 -667
  7. package/components/vue/main.ts +1 -0
  8. package/components/vue/package.json +1 -1
  9. package/components/web/package.json +1 -1
  10. package/components.d.ts +4 -2
  11. package/core/actions/README.md +1 -1
  12. package/core/actions/build.config.ts +15 -0
  13. package/core/actions/node_modules/.bin/markdown-it +2 -2
  14. package/core/actions/node_modules/.bin/unbuild +17 -0
  15. package/core/actions/package.json +226 -13
  16. package/core/actions/src/build/core.ts +6 -0
  17. package/core/actions/src/clean.ts +12 -25
  18. package/core/actions/src/deploy/domains.ts +8 -0
  19. package/core/actions/src/deploy.ts +8 -0
  20. package/core/actions/src/dev/docs.ts +5 -0
  21. package/core/actions/src/{dev.ts → dev/index.ts} +0 -25
  22. package/core/actions/src/fresh.ts +1 -1
  23. package/core/actions/src/{generate-component-meta.ts → generate/component-meta.ts} +1 -1
  24. package/core/actions/src/{generate-ide-helpers.ts → generate/ide-helpers.ts} +2 -1
  25. package/core/actions/src/{generate.ts → generate/index.ts} +18 -3
  26. package/core/actions/src/{generate-lib-entries.ts → generate/lib-entries.ts} +1 -1
  27. package/core/actions/src/{generate-package-jsons.ts → generate/package-jsons.ts} +1 -1
  28. package/core/actions/src/{generate-vscode-custom-data.ts → generate/vscode-custom-data.ts} +1 -1
  29. package/core/actions/src/{generate-vue-compat.ts → generate/vue-compat.ts} +1 -1
  30. package/core/actions/src/helpers/lib-entries.ts +7 -6
  31. package/core/actions/src/helpers/package-json.ts +10 -11
  32. package/core/actions/src/helpers/utils.ts +20 -25
  33. package/core/actions/src/helpers/vscode-custom-data.ts +1 -1
  34. package/core/actions/src/key-generate.ts +2 -2
  35. package/core/actions/src/make.ts +63 -19
  36. package/core/actions/src/migrate.ts +3 -0
  37. package/core/actions/src/preinstall.ts +2 -2
  38. package/core/actions/src/release.ts +5 -4
  39. package/core/actions/src/seed.ts +3 -0
  40. package/core/actions/src/tinker.ts +10 -0
  41. package/core/actions/src/upgrade/framework.ts +29 -0
  42. package/core/actions/src/upgrade/index.ts +27 -0
  43. package/core/actions/src/upgrade/node.ts +4 -0
  44. package/core/actions/src/upgrade/package-manager.ts +4 -0
  45. package/core/actions/src/upgrade.ts +75 -0
  46. package/core/ai/README.md +1 -1
  47. package/core/ai/build.config.ts +15 -0
  48. package/core/ai/package.json +15 -12
  49. package/core/alias/README.md +1 -1
  50. package/core/alias/build.config.ts +15 -0
  51. package/core/alias/package.json +11 -12
  52. package/core/alias/src/index.ts +27 -10
  53. package/core/{drivers → analytics}/README.md +18 -9
  54. package/core/analytics/build.config.ts +15 -0
  55. package/core/analytics/package.json +64 -0
  56. package/core/arrays/README.md +1 -1
  57. package/core/arrays/build.config.ts +15 -0
  58. package/core/arrays/package.json +13 -12
  59. package/core/arrays/src/index.ts +4 -0
  60. package/core/auth/README.md +1 -1
  61. package/core/auth/build.config.ts +15 -0
  62. package/core/auth/package.json +11 -12
  63. package/core/auth/src/index.ts +1 -3
  64. package/{buddy → core/buddy}/README.md +20 -17
  65. package/core/buddy/build.config.ts +16 -0
  66. package/core/buddy/package.json +127 -0
  67. package/core/buddy/src/cli.ts +96 -0
  68. package/{buddy → core/buddy}/src/commands/add.ts +6 -11
  69. package/{buddy → core/buddy}/src/commands/build.ts +22 -31
  70. package/{buddy → core/buddy}/src/commands/changelog.ts +5 -6
  71. package/core/buddy/src/commands/clean.ts +29 -0
  72. package/{buddy → core/buddy}/src/commands/commit.ts +0 -2
  73. package/{buddy → core/buddy}/src/commands/create.ts +4 -6
  74. package/core/buddy/src/commands/deploy.ts +30 -0
  75. package/{buddy → core/buddy}/src/commands/dev.ts +44 -27
  76. package/{buddy → core/buddy}/src/commands/example.ts +8 -12
  77. package/{buddy → core/buddy}/src/commands/fresh.ts +3 -5
  78. package/{buddy → core/buddy}/src/commands/generate.ts +19 -22
  79. package/{buddy → core/buddy}/src/commands/index.ts +7 -1
  80. package/core/buddy/src/commands/inspire.ts +25 -0
  81. package/{buddy → core/buddy}/src/commands/key.ts +6 -7
  82. package/{buddy → core/buddy}/src/commands/lint.ts +10 -11
  83. package/{buddy → core/buddy}/src/commands/make.ts +55 -47
  84. package/core/buddy/src/commands/migrate.ts +32 -0
  85. package/{buddy → core/buddy}/src/commands/onboarding.ts +6 -5
  86. package/{buddy → core/buddy}/src/commands/preinstall.ts +0 -2
  87. package/{buddy → core/buddy}/src/commands/prepublish.ts +0 -2
  88. package/{buddy → core/buddy}/src/commands/release.ts +4 -12
  89. package/core/buddy/src/commands/seed.ts +31 -0
  90. package/{buddy → core/buddy}/src/commands/setting.ts +6 -5
  91. package/{buddy → core/buddy}/src/commands/setup.ts +0 -3
  92. package/{buddy → core/buddy}/src/commands/test.ts +15 -15
  93. package/core/buddy/src/commands/tinker.ts +29 -0
  94. package/{buddy → core/buddy}/src/commands/types.ts +0 -3
  95. package/core/buddy/src/commands/upgrade.ts +141 -0
  96. package/core/buddy/src/commands/version.ts +40 -0
  97. package/{buddy → core/buddy}/src/index.ts +2 -1
  98. package/core/build/README.md +1 -1
  99. package/core/build/build.config.ts +15 -0
  100. package/core/build/node_modules/.bin/unbuild +4 -4
  101. package/core/build/node_modules/.bin/vite +4 -4
  102. package/core/build/node_modules/.bin/vite-ssg +4 -4
  103. package/core/build/node_modules/.bin/vue-docgen-web-types +4 -4
  104. package/core/build/package.json +26 -24
  105. package/core/build/src/desktop.ts +141 -11
  106. package/core/build/src/pages.ts +1 -0
  107. package/core/build/src/stacks.ts +18 -22
  108. package/core/build/src/vue-components.ts +6 -4
  109. package/core/build/web-types.config.cjs +1 -0
  110. package/core/cache/README.md +1 -1
  111. package/core/cache/build.config.ts +15 -0
  112. package/core/cache/package.json +30 -15
  113. package/core/cache/src/drivers/dynamodb.ts +119 -117
  114. package/core/cache/src/drivers/memcached.ts +15 -14
  115. package/core/cache/src/drivers/redis.ts +7 -4
  116. package/core/cache/tests/Redis.test.ts +1 -0
  117. package/core/chat/README.md +2 -1
  118. package/core/chat/build.config.ts +15 -0
  119. package/core/chat/package.json +16 -16
  120. package/core/chat/src/drivers/slack.ts +20 -18
  121. package/core/chat/src/drivers/teams.ts +24 -0
  122. package/core/chat/src/index.ts +1 -0
  123. package/core/cli/README.md +2 -2
  124. package/core/cli/build.config.ts +14 -0
  125. package/core/cli/package.json +16 -14
  126. package/core/cli/src/actions/install.ts +21 -3
  127. package/core/cli/src/command.ts +2 -7
  128. package/core/cli/src/console.ts +2 -3
  129. package/core/cli/src/helpers.ts +6 -1
  130. package/core/cli/src/index.ts +1 -0
  131. package/core/cli/src/parse.ts +99 -0
  132. package/core/cli/src/run.ts +33 -19
  133. package/core/cloud/README.md +1 -1
  134. package/core/cloud/build.config.ts +15 -0
  135. package/core/cloud/package.json +11 -12
  136. package/core/collections/README.md +1 -1
  137. package/core/collections/build.config.ts +15 -0
  138. package/core/collections/package.json +12 -13
  139. package/core/config/README.md +28 -10
  140. package/core/config/build.config.ts +40 -4
  141. package/core/config/package.json +20 -19
  142. package/core/config/src/defaults.ts +20 -0
  143. package/core/config/src/index.ts +3 -19
  144. package/core/config/src/stacks.ts +49 -0
  145. package/core/database/README.md +1 -1
  146. package/core/database/build.config.ts +17 -0
  147. package/core/database/package.json +19 -14
  148. package/core/database/src/factory/index.ts +16 -62
  149. package/core/database/src/migrations/index.ts +146 -3
  150. package/core/database/src/seeder/index.ts +75 -6
  151. package/core/datetime/README.md +1 -1
  152. package/core/datetime/build.config.ts +14 -0
  153. package/core/datetime/package.json +11 -12
  154. package/core/datetime/src/index.ts +1 -1
  155. package/core/desktop/README.md +1 -1
  156. package/core/desktop/build.config.ts +15 -0
  157. package/core/desktop/node_modules/.bin/tauri +4 -4
  158. package/core/desktop/package.json +15 -16
  159. package/core/development/README.md +27 -0
  160. package/core/development/build.config.ts +15 -0
  161. package/core/development/node_modules/.bin/tsc +17 -0
  162. package/core/development/node_modules/.bin/tsserver +17 -0
  163. package/core/development/node_modules/.bin/tsx +17 -0
  164. package/core/development/node_modules/.bin/unbuild +17 -0
  165. package/core/{x-ray → development}/package.json +30 -31
  166. package/core/development/src/index.ts +2 -0
  167. package/core/docs/README.md +1 -1
  168. package/core/docs/build.config.ts +16 -0
  169. package/core/docs/node_modules/.bin/vitepress +4 -4
  170. package/core/docs/package.json +14 -13
  171. package/core/docs/src/index.ts +3 -2
  172. package/core/domains/README.md +1 -1
  173. package/core/domains/build.config.ts +15 -0
  174. package/core/domains/package.json +11 -11
  175. package/core/email/README.md +1 -1
  176. package/core/email/build.config.ts +14 -0
  177. package/core/email/node_modules/.bin/maizzle +4 -4
  178. package/core/email/package.json +29 -24
  179. package/core/email/src/actions/send.ts +1 -1
  180. package/core/email/src/drivers/emailjs.ts +10 -8
  181. package/core/email/src/drivers/mailgun.ts +8 -6
  182. package/core/email/src/drivers/mailjet.ts +8 -5
  183. package/core/email/src/drivers/mandrill.ts +6 -4
  184. package/core/email/src/drivers/netcore.ts +6 -4
  185. package/core/email/src/drivers/nodemailer.ts +10 -8
  186. package/core/email/src/drivers/postmark.ts +6 -4
  187. package/core/email/src/drivers/sendgrid.ts +7 -5
  188. package/core/email/src/drivers/ses.ts +18 -15
  189. package/core/email/src/tailwind.config.ts +1 -1
  190. package/core/error-handling/README.md +1 -1
  191. package/core/error-handling/build.config.ts +14 -0
  192. package/core/error-handling/package.json +14 -12
  193. package/core/error-handling/src/index.ts +1 -3
  194. package/core/events/README.md +1 -1
  195. package/core/events/package.json +12 -12
  196. package/core/events/src/index.ts +3 -2
  197. package/core/faker/README.md +62 -0
  198. package/core/faker/build.config.ts +15 -0
  199. package/{pages → core/faker}/package.json +22 -22
  200. package/core/faker/src/index.ts +1 -0
  201. package/core/git/README.md +1 -1
  202. package/core/git/build.config.ts +15 -0
  203. package/core/git/node_modules/.bin/bumpp +4 -4
  204. package/core/git/node_modules/.bin/changelogen +4 -4
  205. package/core/git/node_modules/.bin/commitizen +2 -2
  206. package/core/git/node_modules/.bin/cz +2 -2
  207. package/core/git/node_modules/.bin/giget +4 -4
  208. package/core/git/node_modules/.bin/git-cz +2 -2
  209. package/core/git/node_modules/.bin/simple-git-hooks +2 -2
  210. package/core/git/package.json +15 -16
  211. package/core/health/README.md +1 -1
  212. package/core/health/build.config.ts +15 -0
  213. package/core/health/package.json +11 -12
  214. package/core/lint/README.md +1 -1
  215. package/core/lint/build.config.ts +15 -0
  216. package/core/lint/node_modules/.bin/eslint +4 -4
  217. package/core/lint/node_modules/.bin/lint-staged +4 -4
  218. package/core/lint/node_modules/.bin/publint +17 -0
  219. package/core/lint/package.json +16 -16
  220. package/core/lint/src/index.ts +1 -1
  221. package/core/logging/README.md +1 -1
  222. package/core/logging/build.config.ts +15 -0
  223. package/core/logging/node_modules/.bin/tsc +4 -4
  224. package/core/logging/node_modules/.bin/tsserver +4 -4
  225. package/core/logging/node_modules/.bin/tsx +17 -0
  226. package/core/logging/node_modules/.bin/unbuild +17 -0
  227. package/core/logging/package.json +20 -12
  228. package/core/logging/src/index.ts +4 -8
  229. package/core/modules/README.md +1 -1
  230. package/core/modules/build.config.ts +15 -0
  231. package/core/modules/package.json +19 -11
  232. package/core/notifications/README.md +1 -1
  233. package/core/notifications/build.config.ts +0 -1
  234. package/core/notifications/node_modules/.bin/maizzle +4 -4
  235. package/core/notifications/package.json +33 -33
  236. package/core/notifications/src/index.ts +16 -13
  237. package/core/notifications/src/tailwind.config.ts +3 -3
  238. package/core/notifications/src/utils/config.ts +2 -2
  239. package/core/notifications/tests/email/Mailgun.test.ts +1 -1
  240. package/core/objects/README.md +1 -1
  241. package/core/objects/build.config.ts +15 -0
  242. package/core/objects/package.json +14 -13
  243. package/core/{cloud/dist/actions → orm}/README.md +14 -19
  244. package/core/orm/build.config.ts +15 -0
  245. package/core/{drivers → orm}/package.json +18 -19
  246. package/core/orm/src/index.ts +43 -0
  247. package/core/pages/build.config.ts +15 -0
  248. package/core/pages/package.json +16 -14
  249. package/core/pages/src/index.ts +25 -5
  250. package/core/path/README.md +1 -1
  251. package/core/{tables → path}/build.config.ts +3 -5
  252. package/core/path/package.json +13 -11
  253. package/core/path/src/index.ts +55 -13
  254. package/core/payments/README.md +1 -1
  255. package/core/payments/build.config.ts +15 -0
  256. package/core/payments/package.json +18 -12
  257. package/core/payments/src/drivers/stripe.ts +136 -0
  258. package/core/payments/src/index.ts +1 -1
  259. package/core/push/README.md +1 -1
  260. package/core/push/build.config.ts +15 -0
  261. package/core/push/package.json +13 -16
  262. package/core/push/src/drivers/expo.ts +18 -16
  263. package/core/push/src/drivers/fcm.ts +18 -16
  264. package/core/{x-ray → query-builder}/README.md +14 -21
  265. package/core/query-builder/build.config.ts +15 -0
  266. package/core/query-builder/package.json +56 -0
  267. package/core/query-builder/src/index.ts +1 -0
  268. package/core/query-builder/src/kysely.ts +37 -0
  269. package/core/queue/README.md +1 -1
  270. package/core/queue/build.config.ts +15 -0
  271. package/core/queue/package.json +11 -12
  272. package/core/realtime/README.md +1 -1
  273. package/core/realtime/build.config.ts +15 -0
  274. package/core/realtime/package.json +11 -12
  275. package/core/router/README.md +1 -1
  276. package/core/router/build.config.ts +15 -0
  277. package/core/router/package.json +12 -13
  278. package/core/router/src/index.ts +116 -12
  279. package/core/scheduler/README.md +137 -0
  280. package/core/scheduler/build.config.ts +15 -0
  281. package/core/{dashboard → scheduler}/package.json +20 -21
  282. package/core/scheduler/src/index.ts +120 -0
  283. package/core/search-engine/README.md +1 -1
  284. package/core/search-engine/build.config.ts +14 -0
  285. package/core/search-engine/package.json +16 -15
  286. package/core/search-engine/src/drivers/meilisearch.ts +3 -1
  287. package/core/search-engine/src/index.ts +5 -24
  288. package/core/security/README.md +1 -1
  289. package/core/security/build.config.ts +15 -0
  290. package/core/security/package.json +12 -13
  291. package/core/server/README.md +1 -1
  292. package/core/server/build.config.ts +15 -0
  293. package/core/server/node_modules/.bin/nitro +4 -4
  294. package/core/server/node_modules/.bin/nitropack +4 -4
  295. package/core/server/node_modules/.bin/vite +4 -4
  296. package/core/server/package.json +13 -13
  297. package/core/server/src/index.ts +1 -1
  298. package/core/server/src/nitro.config.ts +1 -0
  299. package/core/signals/README.md +105 -0
  300. package/core/signals/build.config.ts +15 -0
  301. package/core/signals/package.json +55 -0
  302. package/core/signals/src/index.ts +1 -0
  303. package/core/signals/tests/example.test.ts +7 -0
  304. package/core/{cloud/src/actions → slug}/README.md +11 -5
  305. package/core/slug/build.config.ts +15 -0
  306. package/core/slug/package.json +55 -0
  307. package/core/slug/src/index.ts +56 -0
  308. package/core/slug/tests/example.test.ts +7 -0
  309. package/core/sms/README.md +2 -1
  310. package/core/sms/build.config.ts +15 -0
  311. package/core/sms/package.json +22 -22
  312. package/core/sms/src/drivers/gupshup.ts +3 -3
  313. package/core/sms/src/drivers/nexmo.ts +4 -4
  314. package/core/sms/src/drivers/plivo.ts +4 -4
  315. package/core/sms/src/drivers/sms77.ts +3 -3
  316. package/core/sms/src/drivers/sns.ts +4 -4
  317. package/core/sms/src/drivers/telnyx.ts +4 -4
  318. package/core/sms/src/drivers/termii.ts +3 -3
  319. package/core/sms/src/drivers/twilio.ts +4 -4
  320. package/core/storage/README.md +1 -1
  321. package/core/storage/build.config.ts +15 -0
  322. package/core/storage/package.json +14 -14
  323. package/core/storage/src/index.ts +15 -4
  324. package/core/strings/README.md +7 -6
  325. package/core/strings/package.json +12 -12
  326. package/core/strings/src/case.ts +1 -0
  327. package/core/strings/src/index.ts +0 -1
  328. package/core/strings/src/pluralize.ts +5 -1
  329. package/core/strings/src/utils.ts +48 -6
  330. package/core/testing/README.md +1 -1
  331. package/core/testing/build.config.ts +15 -0
  332. package/core/testing/node_modules/.bin/playwright +4 -4
  333. package/core/testing/node_modules/.bin/tsc +4 -4
  334. package/core/testing/node_modules/.bin/tsserver +4 -4
  335. package/core/testing/node_modules/.bin/unbuild +17 -0
  336. package/core/testing/node_modules/.bin/vitest +4 -4
  337. package/core/testing/package.json +16 -15
  338. package/core/testing/src/index.ts +1 -0
  339. package/core/tinker/README.md +61 -0
  340. package/core/tinker/node_modules/.bin/tsx +17 -0
  341. package/core/tinker/package.json +45 -0
  342. package/core/tinker/tinker.js +2 -0
  343. package/core/types/README.md +1 -1
  344. package/core/types/build.config.ts +15 -0
  345. package/core/types/node_modules/.bin/markdown-it +2 -2
  346. package/core/types/node_modules/.bin/vite +17 -0
  347. package/core/types/node_modules/.bin/vite-ssg +4 -4
  348. package/core/types/node_modules/.bin/vitepress +4 -4
  349. package/core/types/package.json +33 -24
  350. package/core/types/src/app.ts +4 -16
  351. package/core/types/src/auto-imports.ts +1 -3
  352. package/core/types/src/build.ts +1 -1
  353. package/core/types/src/cache.ts +78 -0
  354. package/core/types/src/cdn.ts +15 -0
  355. package/core/types/src/cli.ts +85 -63
  356. package/core/types/src/components.ts +1 -3
  357. package/core/types/src/cron-jobs.ts +17 -0
  358. package/core/types/src/database.ts +39 -2
  359. package/core/types/src/deploy.ts +8 -11
  360. package/core/types/src/dns.ts +49 -0
  361. package/core/types/src/docs.ts +2 -0
  362. package/core/types/src/events.ts +1 -1
  363. package/core/types/src/fs.ts +8 -0
  364. package/core/types/src/git.ts +1 -1
  365. package/core/types/src/index.ts +10 -2
  366. package/core/types/src/library.ts +6 -1
  367. package/core/types/src/model.ts +46 -0
  368. package/core/types/src/notifications.ts +151 -117
  369. package/core/types/src/payments.ts +63 -0
  370. package/core/types/src/reactivity.ts +1 -3
  371. package/core/types/src/router.ts +52 -0
  372. package/core/types/src/search-engine.ts +56 -8
  373. package/core/types/src/ssg.ts +1 -1
  374. package/core/types/src/stacks.ts +203 -0
  375. package/core/types/src/ui.ts +1 -1
  376. package/core/ui/README.md +1 -1
  377. package/core/ui/build.config.ts +15 -0
  378. package/core/ui/node_modules/.bin/vue-tsc +4 -4
  379. package/core/ui/package.json +23 -20
  380. package/core/ui/src/index.ts +6 -3
  381. package/core/ui/src/unocss.config.ts +47 -0
  382. package/core/ui/src/unocss.ts +3 -3
  383. package/core/utils/build.config.ts +15 -0
  384. package/core/utils/node_modules/.bin/rimraf +4 -4
  385. package/core/utils/node_modules/.bin/semver +17 -0
  386. package/core/utils/package.json +45 -21
  387. package/core/utils/src/base.ts +15 -9
  388. package/core/utils/src/config.ts +96 -0
  389. package/core/utils/src/currency.ts +26 -0
  390. package/core/utils/src/debounce.ts +1 -0
  391. package/core/utils/src/delete.ts +3 -0
  392. package/core/utils/src/guards.ts +3 -3
  393. package/core/utils/src/helpers.ts +31 -23
  394. package/core/utils/src/index.ts +11 -10
  395. package/core/utils/src/math.ts +30 -0
  396. package/core/utils/src/promise.ts +1 -1
  397. package/core/utils/src/throttle.ts +42 -0
  398. package/core/utils/src/vendors.ts +221 -0
  399. package/core/utils/src/versions.ts +1 -0
  400. package/core/validation/README.md +1 -1
  401. package/core/validation/build.config.ts +15 -0
  402. package/core/validation/package.json +13 -14
  403. package/core/validation/src/index.ts +2 -3
  404. package/core/{strings/src/validation.ts → validation/src/is.ts} +83 -8
  405. package/core/validation/src/validate.ts +29 -0
  406. package/docs/.vitepress/config.ts +9 -0
  407. package/docs/README.md +13 -0
  408. package/docs/node_modules/.bin/rimraf +17 -0
  409. package/docs/node_modules/.bin/vitepress +17 -0
  410. package/docs/package.json +46 -0
  411. package/package.json +121 -34
  412. package/pages/desktop/.gitignore +24 -0
  413. package/pages/desktop/README.md +73 -0
  414. package/{core/x-ray → pages/desktop}/index.html +1 -1
  415. package/pages/desktop/package.json +26 -0
  416. package/pages/desktop/public/favicon.svg +1 -0
  417. package/pages/desktop/src/.gitignore +3 -0
  418. package/pages/desktop/src/Cargo.lock +3599 -0
  419. package/pages/desktop/src/Cargo.toml +28 -0
  420. package/pages/desktop/src/build.rs +3 -0
  421. package/pages/desktop/src/icons/128x128.png +0 -0
  422. package/pages/desktop/src/icons/128x128@2x.png +0 -0
  423. package/pages/desktop/src/icons/32x32.png +0 -0
  424. package/pages/desktop/src/icons/Square107x107Logo.png +0 -0
  425. package/pages/desktop/src/icons/Square142x142Logo.png +0 -0
  426. package/pages/desktop/src/icons/Square150x150Logo.png +0 -0
  427. package/pages/desktop/src/icons/Square284x284Logo.png +0 -0
  428. package/pages/desktop/src/icons/Square30x30Logo.png +0 -0
  429. package/pages/desktop/src/icons/Square310x310Logo.png +0 -0
  430. package/pages/desktop/src/icons/Square44x44Logo.png +0 -0
  431. package/pages/desktop/src/icons/Square71x71Logo.png +0 -0
  432. package/pages/desktop/src/icons/Square89x89Logo.png +0 -0
  433. package/pages/desktop/src/icons/StoreLogo.png +0 -0
  434. package/pages/desktop/src/icons/icon.icns +0 -0
  435. package/pages/desktop/src/icons/icon.ico +0 -0
  436. package/pages/desktop/src/icons/icon.png +0 -0
  437. package/pages/desktop/src/src/main.rs +10 -0
  438. package/pages/desktop/src/tauri.conf.json +73 -0
  439. package/simple-git-hooks.cjs +1 -0
  440. package/tsconfig.json +33 -12
  441. package/vitest.config.ts +25 -17
  442. package/buddy/bin/stacks.mjs +0 -4
  443. package/buddy/build.config.ts +0 -17
  444. package/buddy/node_modules/.bin/only-allow +0 -17
  445. package/buddy/node_modules/.bin/tsc +0 -17
  446. package/buddy/node_modules/.bin/tsserver +0 -17
  447. package/buddy/node_modules/.bin/unbuild +0 -17
  448. package/buddy/package.json +0 -194
  449. package/buddy/src/cli.ts +0 -66
  450. package/buddy/src/commands/clean.ts +0 -20
  451. package/buddy/src/commands/update.ts +0 -115
  452. package/core/actions/node_modules/.bin/esno +0 -17
  453. package/core/actions/node_modules/.bin/mkdist +0 -17
  454. package/core/actions/node_modules/.bin/tsc +0 -17
  455. package/core/actions/node_modules/.bin/tsserver +0 -17
  456. package/core/actions/src/build-core.ts +0 -7
  457. package/core/actions/src/fix-lint-issues.ts +0 -4
  458. package/core/actions/src/generate-onboarding.ts +0 -3
  459. package/core/actions/src/update.ts +0 -149
  460. package/core/ai/node_modules/.bin/mkdist +0 -17
  461. package/core/ai/node_modules/.bin/tsc +0 -17
  462. package/core/ai/node_modules/.bin/tsserver +0 -17
  463. package/core/alias/node_modules/.bin/mkdist +0 -17
  464. package/core/alias/node_modules/.bin/tsc +0 -17
  465. package/core/alias/node_modules/.bin/tsserver +0 -17
  466. package/core/arrays/node_modules/.bin/mkdist +0 -17
  467. package/core/arrays/node_modules/.bin/tsc +0 -17
  468. package/core/arrays/node_modules/.bin/tsserver +0 -17
  469. package/core/auth/node_modules/.bin/mkdist +0 -17
  470. package/core/auth/node_modules/.bin/tsc +0 -17
  471. package/core/auth/node_modules/.bin/tsserver +0 -17
  472. package/core/build/node_modules/.bin/mkdist +0 -17
  473. package/core/build/node_modules/.bin/tsc +0 -17
  474. package/core/build/node_modules/.bin/tsserver +0 -17
  475. package/core/cache/node_modules/.bin/mkdist +0 -17
  476. package/core/cache/node_modules/.bin/tsc +0 -17
  477. package/core/cache/node_modules/.bin/tsserver +0 -17
  478. package/core/chat/node_modules/.bin/mkdist +0 -17
  479. package/core/chat/node_modules/.bin/tsc +0 -17
  480. package/core/chat/node_modules/.bin/tsserver +0 -17
  481. package/core/cli/node_modules/.bin/esno +0 -17
  482. package/core/cli/node_modules/.bin/mkdist +0 -17
  483. package/core/cloud/node_modules/.bin/mkdist +0 -17
  484. package/core/cloud/node_modules/.bin/tsc +0 -17
  485. package/core/cloud/node_modules/.bin/tsserver +0 -17
  486. package/core/collections/node_modules/.bin/mkdist +0 -17
  487. package/core/collections/node_modules/.bin/tsc +0 -17
  488. package/core/collections/node_modules/.bin/tsserver +0 -17
  489. package/core/config/node_modules/.bin/mkdist +0 -17
  490. package/core/config/node_modules/.bin/tsc +0 -17
  491. package/core/config/node_modules/.bin/tsserver +0 -17
  492. package/core/config/node_modules/.bin/unbuild +0 -17
  493. package/core/config/src/helpers.ts +0 -30
  494. package/core/dashboard/README.md +0 -74
  495. package/core/dashboard/node_modules/.bin/mkdist +0 -17
  496. package/core/database/node_modules/.bin/mkdist +0 -17
  497. package/core/database/node_modules/.bin/tsc +0 -17
  498. package/core/database/node_modules/.bin/tsserver +0 -17
  499. package/core/datetime/node_modules/.bin/mkdist +0 -17
  500. package/core/datetime/node_modules/.bin/tsc +0 -17
  501. package/core/datetime/node_modules/.bin/tsserver +0 -17
  502. package/core/desktop/node_modules/.bin/mkdist +0 -17
  503. package/core/desktop/node_modules/.bin/tsc +0 -17
  504. package/core/desktop/node_modules/.bin/tsserver +0 -17
  505. package/core/docs/node_modules/.bin/mkdist +0 -17
  506. package/core/docs/node_modules/.bin/tsc +0 -17
  507. package/core/docs/node_modules/.bin/tsserver +0 -17
  508. package/core/domains/node_modules/.bin/mkdist +0 -17
  509. package/core/domains/node_modules/.bin/tsc +0 -17
  510. package/core/domains/node_modules/.bin/tsserver +0 -17
  511. package/core/drivers/node_modules/.bin/mkdist +0 -17
  512. package/core/drivers/node_modules/.bin/tsc +0 -17
  513. package/core/drivers/node_modules/.bin/tsserver +0 -17
  514. package/core/drivers/src/index.ts +0 -10
  515. package/core/email/dist/utils/template.html +0 -8
  516. package/core/email/node_modules/.bin/mkdist +0 -17
  517. package/core/email/node_modules/.bin/tsc +0 -17
  518. package/core/email/node_modules/.bin/tsserver +0 -17
  519. package/core/error-handling/node_modules/.bin/mkdist +0 -17
  520. package/core/error-handling/node_modules/.bin/tsc +0 -17
  521. package/core/error-handling/node_modules/.bin/tsserver +0 -17
  522. package/core/events/node_modules/.bin/mkdist +0 -17
  523. package/core/events/node_modules/.bin/tsc +0 -17
  524. package/core/events/node_modules/.bin/tsserver +0 -17
  525. package/core/git/node_modules/.bin/mkdist +0 -17
  526. package/core/git/node_modules/.bin/tsc +0 -17
  527. package/core/git/node_modules/.bin/tsserver +0 -17
  528. package/core/health/node_modules/.bin/mkdist +0 -17
  529. package/core/health/node_modules/.bin/tsc +0 -17
  530. package/core/health/node_modules/.bin/tsserver +0 -17
  531. package/core/lint/node_modules/.bin/mkdist +0 -17
  532. package/core/lint/node_modules/.bin/tsc +0 -17
  533. package/core/lint/node_modules/.bin/tsserver +0 -17
  534. package/core/logging/debug-test.ts +0 -8
  535. package/core/logging/node_modules/.bin/mkdist +0 -17
  536. package/core/modules/node_modules/.bin/mkdist +0 -17
  537. package/core/modules/node_modules/.bin/tsc +0 -17
  538. package/core/modules/node_modules/.bin/tsserver +0 -17
  539. package/core/notifications/node_modules/.bin/mkdist +0 -17
  540. package/core/notifications/node_modules/.bin/tsc +0 -17
  541. package/core/notifications/node_modules/.bin/tsserver +0 -17
  542. package/core/notifications/node_modules/.bin/unbuild +0 -17
  543. package/core/objects/node_modules/.bin/mkdist +0 -17
  544. package/core/objects/node_modules/.bin/tsc +0 -17
  545. package/core/objects/node_modules/.bin/tsserver +0 -17
  546. package/core/pages/node_modules/.bin/mkdist +0 -17
  547. package/core/pages/node_modules/.bin/tsc +0 -17
  548. package/core/pages/node_modules/.bin/tsserver +0 -17
  549. package/core/path/node_modules/.bin/mkdist +0 -17
  550. package/core/path/node_modules/.bin/tsc +0 -17
  551. package/core/path/node_modules/.bin/tsserver +0 -17
  552. package/core/payments/node_modules/.bin/mkdist +0 -17
  553. package/core/payments/node_modules/.bin/tsc +0 -17
  554. package/core/payments/node_modules/.bin/tsserver +0 -17
  555. package/core/push/node_modules/.bin/mkdist +0 -17
  556. package/core/push/node_modules/.bin/tsc +0 -17
  557. package/core/push/node_modules/.bin/tsserver +0 -17
  558. package/core/queue/node_modules/.bin/mkdist +0 -17
  559. package/core/queue/node_modules/.bin/tsc +0 -17
  560. package/core/queue/node_modules/.bin/tsserver +0 -17
  561. package/core/realtime/node_modules/.bin/mkdist +0 -17
  562. package/core/realtime/node_modules/.bin/tsc +0 -17
  563. package/core/realtime/node_modules/.bin/tsserver +0 -17
  564. package/core/router/node_modules/.bin/mkdist +0 -17
  565. package/core/router/node_modules/.bin/tsc +0 -17
  566. package/core/router/node_modules/.bin/tsserver +0 -17
  567. package/core/search-engine/node_modules/.bin/mkdist +0 -17
  568. package/core/search-engine/node_modules/.bin/tsc +0 -17
  569. package/core/search-engine/node_modules/.bin/tsserver +0 -17
  570. package/core/security/node_modules/.bin/mkdist +0 -17
  571. package/core/security/node_modules/.bin/tsc +0 -17
  572. package/core/security/node_modules/.bin/tsserver +0 -17
  573. package/core/server/node_modules/.bin/mkdist +0 -17
  574. package/core/server/node_modules/.bin/tsc +0 -17
  575. package/core/server/node_modules/.bin/tsserver +0 -17
  576. package/core/sms/node_modules/.bin/mkdist +0 -17
  577. package/core/sms/node_modules/.bin/tsc +0 -17
  578. package/core/sms/node_modules/.bin/tsserver +0 -17
  579. package/core/storage/node_modules/.bin/mkdist +0 -17
  580. package/core/storage/node_modules/.bin/tsc +0 -17
  581. package/core/storage/node_modules/.bin/tsserver +0 -17
  582. package/core/strings/node_modules/.bin/mkdist +0 -17
  583. package/core/strings/node_modules/.bin/tsc +0 -17
  584. package/core/strings/node_modules/.bin/tsserver +0 -17
  585. package/core/strings/node_modules/.bin/unbuild +0 -17
  586. package/core/tables/README.md +0 -109
  587. package/core/tables/examples/vue/App.vue +0 -12
  588. package/core/tables/examples/vue/favicon.png +0 -0
  589. package/core/tables/examples/vue/index.html +0 -20
  590. package/core/tables/examples/web/favicon.png +0 -0
  591. package/core/tables/examples/web/index.html +0 -13
  592. package/core/tables/index.html +0 -13
  593. package/core/tables/node_modules/.bin/mkdist +0 -17
  594. package/core/tables/node_modules/.bin/tsc +0 -17
  595. package/core/tables/node_modules/.bin/tsserver +0 -17
  596. package/core/tables/node_modules/.bin/unbuild +0 -17
  597. package/core/tables/node_modules/.bin/vite +0 -17
  598. package/core/tables/package.json +0 -64
  599. package/core/tables/src/App.vue +0 -23
  600. package/core/tables/src/components/Demo.vue +0 -89
  601. package/core/tables/src/components/README.md +0 -111
  602. package/core/tables/src/components/Table.vue +0 -342
  603. package/core/tables/src/components/TableBody.vue +0 -33
  604. package/core/tables/src/components/TableCellActionItems.vue +0 -9
  605. package/core/tables/src/components/TableFilters.vue +0 -703
  606. package/core/tables/src/components/TableHead.vue +0 -87
  607. package/core/tables/src/components/TablePagination.vue +0 -146
  608. package/core/tables/src/components/TableRow.vue +0 -78
  609. package/core/tables/src/components/TableSearch.vue +0 -38
  610. package/core/tables/src/components/Tooltip.vue +0 -10
  611. package/core/tables/src/docs/index.md +0 -0
  612. package/core/tables/src/functions/README.md +0 -8
  613. package/core/tables/src/functions/dark.ts +0 -3
  614. package/core/tables/src/functions/index.ts +0 -2
  615. package/core/tables/src/functions/table.ts +0 -207
  616. package/core/tables/src/main.js +0 -4
  617. package/core/tables/vite.config.ts +0 -26
  618. package/core/testing/node_modules/.bin/mkdist +0 -17
  619. package/core/types/node_modules/.bin/mkdist +0 -17
  620. package/core/types/node_modules/.bin/tsc +0 -17
  621. package/core/types/node_modules/.bin/tsserver +0 -17
  622. package/core/ui/node_modules/.bin/mkdist +0 -17
  623. package/core/ui/node_modules/.bin/tsc +0 -17
  624. package/core/ui/node_modules/.bin/tsserver +0 -17
  625. package/core/utils/node_modules/.bin/esno +0 -17
  626. package/core/utils/node_modules/.bin/mkdist +0 -17
  627. package/core/utils/node_modules/.bin/tsc +0 -17
  628. package/core/utils/node_modules/.bin/tsserver +0 -17
  629. package/core/utils/src/is.ts +0 -14
  630. package/core/utils/src/vendor.ts +0 -1
  631. package/core/validation/node_modules/.bin/mkdist +0 -17
  632. package/core/validation/node_modules/.bin/tsc +0 -17
  633. package/core/validation/node_modules/.bin/tsserver +0 -17
  634. package/core/x-ray/node_modules/.bin/mkdist +0 -17
  635. package/core/x-ray/node_modules/.bin/tsc +0 -17
  636. package/core/x-ray/node_modules/.bin/tsserver +0 -17
  637. package/core/x-ray/routes/index.ts +0 -19
  638. package/core/x-ray/src/client.ts +0 -14
  639. package/core/x-ray/src/desktop/api/nitro.config.ts +0 -18
  640. package/core/x-ray/src/desktop/api/routes/api/logs.ts +0 -7
  641. package/core/x-ray/src/desktop/api/routes/api/store-logs.ts +0 -22
  642. package/core/x-ray/src/desktop/api/src/types.ts +0 -7
  643. package/core/x-ray/src/desktop/api/storage/index.ts +0 -7
  644. package/core/x-ray/src/desktop/app.vue +0 -376
  645. package/core/x-ray/src/desktop/functions/http.ts +0 -26
  646. package/core/x-ray/src/desktop/functions/types.ts +0 -7
  647. package/core/x-ray/src/desktop/main.ts +0 -14
  648. package/core/x-ray/src/desktop/modules/counter/mod.vue +0 -44
  649. package/core/x-ray/src/desktop/modules/fetcher/mod.vue +0 -63
  650. package/core/x-ray/src/desktop/plugins/unified/unified-app.ts +0 -5
  651. package/core/x-ray/src/desktop/plugins/unified/unified-styles.scss +0 -0
  652. package/core/x-ray/src/desktop/services/http.ts +0 -45
  653. package/core/x-ray/src/desktop/styles/app.scss +0 -0
  654. package/core/x-ray/src/http.ts +0 -26
  655. package/core/x-ray/src/index.ts +0 -42
  656. package/core/x-ray/src/ray.config.js +0 -28
  657. package/core/x-ray/src/types.ts +0 -8
  658. package/examples/vue/App.vue +0 -12
  659. package/examples/vue/favicon.png +0 -0
  660. package/examples/vue/index.html +0 -20
  661. package/examples/web/favicon.png +0 -0
  662. package/examples/web/index.html +0 -13
  663. package/functions/package.json +0 -41
  664. package/pages/node_modules/.bin/mkdist +0 -17
  665. package/pages/node_modules/.bin/tsc +0 -17
  666. package/pages/node_modules/.bin/tsserver +0 -17
  667. package/pages/src/index.ts +0 -19
  668. package/tests/feature/example.spec.ts +0 -20
  669. /package/core/actions/src/{build-component-libs.ts → build/component-libs.ts} +0 -0
  670. /package/core/actions/src/{build-stacks.ts → build/stacks.ts} +0 -0
  671. /package/core/actions/src/{dev-components.ts → dev/components.ts} +0 -0
  672. /package/core/actions/src/{generate-settings.ts → generate/settings.ts} +0 -0
  673. /package/core/actions/src/{lint-fix.ts → lint/fix.ts} +0 -0
  674. /package/core/actions/src/{lint.ts → lint/index.ts} +0 -0
  675. /package/core/actions/src/{test-coverage.ts → test/coverage.ts} +0 -0
  676. /package/core/actions/src/{test-feature.ts → test/feature.ts} +0 -0
  677. /package/core/actions/src/{test-ui.ts → test/ui.ts} +0 -0
  678. /package/core/actions/src/{test-unit.ts → test/unit.ts} +0 -0
  679. /package/core/{dashboard/src/index.ts → actions/src/upgrade/dependencies.ts} +0 -0
  680. /package/core/{tables/src/cli/index.ts → analytics/src/drivers/fathom.ts} +0 -0
  681. /package/core/{tables/src/config/tables.ts → analytics/src/index.ts} +0 -0
  682. /package/core/{dashboard → analytics}/tests/example.test.ts +0 -0
  683. /package/{buddy → core/buddy}/art/social.png +0 -0
  684. /package/{netlify.toml → core/cloud/netlify.toml} +0 -0
  685. /package/core/{drivers → development}/tests/example.test.ts +0 -0
  686. /package/core/{tables → faker}/tests/example.test.ts +0 -0
  687. /package/core/{x-ray → orm}/tests/example.test.ts +0 -0
  688. /package/{pages → core/query-builder}/tests/example.test.ts +0 -0
  689. /package/{tests/unit → core/scheduler/tests}/example.test.ts +0 -0
  690. /package/pages/{App.vue → web/App.vue} +0 -0
  691. /package/pages/{index.html → web/index.html} +0 -0
  692. /package/pages/{main.ts → web/main.ts} +0 -0
  693. /package/pages/{public → web/public}/_headers +0 -0
  694. /package/pages/{public → web/public}/favicon-dark.svg +0 -0
  695. /package/pages/{public → web/public}/favicon.svg +0 -0
  696. /package/pages/{public → web/public}/pwa-192x192.png +0 -0
  697. /package/pages/{public → web/public}/pwa-512x512.png +0 -0
  698. /package/pages/{public → web/public}/safari-pinned-tab.svg +0 -0
  699. /package/pages/{styles → web/styles}/main.css +0 -0
  700. /package/pages/{styles → web/styles}/markdown.css +0 -0
@@ -0,0 +1,96 @@
1
+ #!/usr/bin/env node
2
+ import { runAction } from '@stacksjs/actions'
3
+ import { command, execSync, log, runCommand } from '@stacksjs/cli'
4
+ import { env, frameworkVersion, isProjectCreated, parseYaml, semver } from '@stacksjs/utils'
5
+ import { projectPath } from '@stacksjs/path'
6
+ import { Action } from '@stacksjs/types'
7
+ import { filesystem } from '@stacksjs/storage'
8
+ 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
+
10
+ const cli = command('buddy')
11
+ const { fs } = filesystem
12
+
13
+ // setup global error handlers
14
+ process.on('uncaughtException', errorHandler)
15
+ process.on('unhandledRejection', errorHandler)
16
+
17
+ async function main() {
18
+ // the following commands are not dependent on the project being initialized
19
+ installIfVersionMismatch()
20
+ await setup(cli)
21
+ await key(cli)
22
+
23
+ // before running any commands, check if the project is already initialized
24
+ if (!await isProjectCreated()) {
25
+ if (env('APP_ENV') !== 'production') {
26
+ log.info('Project not yet initialized, generating application key...')
27
+ }
28
+ else {
29
+ log.error('Please run `buddy key:generate` to generate an application key.')
30
+ process.exit()
31
+ }
32
+
33
+ const result = await runAction(Action.KeyGenerate, { cwd: projectPath() })
34
+
35
+ if (result.isErr()) {
36
+ log.error(result.error)
37
+ process.exit()
38
+ }
39
+
40
+ log.info('Application key generated.')
41
+
42
+ await create(cli)
43
+ }
44
+
45
+ await preinstall(cli)
46
+ await prepublish(cli)
47
+ await upgrade(cli)
48
+ await generate(cli)
49
+ await dev(cli)
50
+ await build(cli)
51
+ await changelog(cli)
52
+ await clean(cli)
53
+ await commit(cli)
54
+ await fresh(cli)
55
+ await lint(cli)
56
+ await release(cli)
57
+ await make(cli)
58
+ await migrate(cli)
59
+ await seed(cli)
60
+ await example(cli)
61
+ await test(cli)
62
+ await version(cli)
63
+
64
+ cli.help()
65
+ cli.version(await frameworkVersion())
66
+
67
+ cli.parse()
68
+ }
69
+
70
+ main()
71
+
72
+ async function installIfVersionMismatch() {
73
+ const dependenciesYaml = fs.readFileSync(projectPath('tea.yaml'), 'utf8')
74
+ const dependencies = parseYaml(dependenciesYaml).dependencies
75
+
76
+ const requiredNodeVersion = dependencies['nodejs.org']
77
+ const requiredPnpmVersion = dependencies['pnpm.io']
78
+
79
+ const installedNodeVersion = process.version
80
+ const installedPnpmVersion = execSync('pnpm -v').trim()
81
+
82
+ if (!semver.satisfies(installedNodeVersion, requiredNodeVersion)) {
83
+ log.error(`Installed Node.js version (${installedNodeVersion}) does not satisfy required version (${requiredNodeVersion}). Installing...`)
84
+ await runCommand(`tea +nodejs.org${requiredNodeVersion} >/dev/null 2>&1`)
85
+ }
86
+
87
+ if (!semver.satisfies(installedPnpmVersion, requiredPnpmVersion)) {
88
+ log.error(`Installed pnpm version (${installedPnpmVersion}) does not satisfy required version (${requiredPnpmVersion}). Installing...`)
89
+ await runCommand(`tea +pnpm.io${requiredPnpmVersion} >/dev/null 2>&1`)
90
+ }
91
+ }
92
+
93
+ function errorHandler(error: Error): void {
94
+ log.error(error)
95
+ process.exit(1)
96
+ }
@@ -1,6 +1,6 @@
1
1
  import type { AddOptions, BuildOptions, CLI } from '@stacksjs/types'
2
2
  import { ExitCode } from '@stacksjs/types'
3
- import { prompts } from '@stacksjs/cli'
3
+ import { prompt } from '@stacksjs/cli'
4
4
  import { invoke } from '@stacksjs/actions/add'
5
5
 
6
6
  async function add(buddy: CLI) {
@@ -9,8 +9,8 @@ async function add(buddy: CLI) {
9
9
  table: 'Add the Table Stack to your project',
10
10
  calendar: 'Add the Calendar Stack to your project',
11
11
  all: 'Add all stacks',
12
+ select: 'Which stack/s are you trying to add?',
12
13
  verbose: 'Enable verbose output',
13
- debug: 'Enable debug mode',
14
14
  }
15
15
 
16
16
  buddy
@@ -19,16 +19,13 @@ async function add(buddy: CLI) {
19
19
  .option('-c, --calendar', descriptions.calendar, { default: false })
20
20
  .option('-a, --all', descriptions.all, { default: false })
21
21
  .option('--verbose', descriptions.verbose, { default: false })
22
- .option('--debug', descriptions.debug, { default: false })
23
22
  .action(async (options: BuildOptions) => {
24
23
  if (hasNoOptions(options)) {
25
- const answers = await prompts.multiselect({
24
+ const answers = await prompt(descriptions.select, {
26
25
  type: 'multiselect',
27
- name: 'add',
28
- message: 'Which stack/s are you trying to add?',
29
- choices: [
30
- { title: 'Calendar', value: 'calendar' },
31
- { title: 'Table', value: 'table' },
26
+ options: [
27
+ { label: 'Calendar', value: 'calendar' },
28
+ { label: 'Table', value: 'table' },
32
29
  ],
33
30
  })
34
31
 
@@ -45,7 +42,6 @@ async function add(buddy: CLI) {
45
42
  .command('add:table', descriptions.table)
46
43
  .option('-t, --table', descriptions.table, { default: true })
47
44
  .option('--verbose', descriptions.verbose, { default: false })
48
- .option('--debug', descriptions.debug, { default: false })
49
45
  .action(async (options: BuildOptions) => {
50
46
  await invoke(options)
51
47
  })
@@ -54,7 +50,6 @@ async function add(buddy: CLI) {
54
50
  .command('add:calendar', descriptions.calendar)
55
51
  .option('-t, --calendar', descriptions.calendar, { default: true })
56
52
  .option('--verbose', descriptions.verbose, { default: false })
57
- .option('--debug', descriptions.debug, { default: false })
58
53
  .action(async (options: BuildOptions) => {
59
54
  await invoke(options)
60
55
  })
@@ -1,6 +1,6 @@
1
1
  import type { BuildOptions, CLI } from '@stacksjs/types'
2
2
  import { Action, ExitCode } from '@stacksjs/types'
3
- import { intro, log, outro, prompts } from '@stacksjs/cli'
3
+ import { intro, outro, prompt } from '@stacksjs/cli'
4
4
  import { runAction } from '@stacksjs/actions'
5
5
 
6
6
  async function build(buddy: CLI) {
@@ -13,8 +13,8 @@ async function build(buddy: CLI) {
13
13
  pages: 'Build your SSG pages',
14
14
  docs: 'Build your documentation site',
15
15
  stacks: 'Build Stacks framework',
16
+ select: 'What are you trying to build?',
16
17
  verbose: 'Enable verbose output',
17
- debug: 'Enable debug mode',
18
18
  }
19
19
 
20
20
  buddy
@@ -28,20 +28,18 @@ async function build(buddy: CLI) {
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
- .option('--debug', descriptions.debug, { default: false })
32
31
  .action(async (options: BuildOptions) => {
33
32
  if (hasNoOptions(options)) {
34
- const answers = await prompts.multiselect({
33
+ const answers = await prompt(descriptions.select, {
35
34
  type: 'multiselect',
36
- name: 'update',
37
- message: 'What are you trying to build?',
38
- choices: [
39
- { title: 'Components', value: 'components' },
40
- { title: 'Vue Components', value: 'vue-components' },
41
- { title: 'Web Components', value: 'web-components' },
42
- { title: 'Functions', value: 'functions' },
43
- { title: 'Pages', value: 'pages' },
44
- { title: 'Documentation', value: 'docs' },
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' },
45
43
  ],
46
44
  })
47
45
 
@@ -58,8 +56,6 @@ async function build(buddy: CLI) {
58
56
  .command('build:components', 'Automagically build component libraries for production use & npm/CDN distribution')
59
57
  .option('-c, --components', descriptions.components, { default: true })
60
58
  .option('--verbose', descriptions.verbose, { default: false })
61
- .option('--debug', descriptions.debug, { default: false })
62
- .option('--debug', descriptions.debug, { default: false })
63
59
  .action(async (options: BuildOptions) => {
64
60
  await runAction(Action.BuildComponentLibs, options)
65
61
  })
@@ -68,8 +64,6 @@ async function build(buddy: CLI) {
68
64
  .command('build:cli', 'Automagically build the CLI')
69
65
  .option('-c, --components', descriptions.components, { default: true })
70
66
  .option('--verbose', descriptions.verbose, { default: false })
71
- .option('--debug', descriptions.debug, { default: false })
72
- .option('--debug', descriptions.debug, { default: false })
73
67
  .action(async (options: BuildOptions) => {
74
68
  await runAction(Action.BuildCli, options)
75
69
  })
@@ -78,8 +72,6 @@ async function build(buddy: CLI) {
78
72
  .command('build:functions', 'Automagically build function library for npm/CDN distribution')
79
73
  .option('-f, --functions', descriptions.functions, { default: true })
80
74
  .option('--verbose', descriptions.verbose, { default: false })
81
- .option('--debug', descriptions.debug, { default: false })
82
- .option('--debug', descriptions.debug, { default: false })
83
75
  .action(async (options: BuildOptions) => {
84
76
  await runAction(Action.BuildFunctionLib, options)
85
77
  })
@@ -88,7 +80,6 @@ async function build(buddy: CLI) {
88
80
  .command('build:vue-components', 'Automagically build Vue component library for npm/CDN distribution')
89
81
  .option('-v, --vue-components', descriptions.vueComponents, { default: true })
90
82
  .option('--verbose', descriptions.verbose, { default: false })
91
- .option('--debug', descriptions.debug, { default: false })
92
83
  .alias('build:vue')
93
84
  .action(async (options: BuildOptions) => {
94
85
  await runAction(Action.BuildVueComponentLib, options)
@@ -98,7 +89,6 @@ async function build(buddy: CLI) {
98
89
  .command('build:web-components', 'Automagically build Web Component library for npm/CDN distribution')
99
90
  .option('-w, --web-components', descriptions.webComponents, { default: true })
100
91
  .option('--verbose', descriptions.verbose, { default: false })
101
- .option('--debug', descriptions.debug, { default: false })
102
92
  .alias('build:elements')
103
93
  .alias('build:wc')
104
94
  .action(async (options: BuildOptions) => {
@@ -109,7 +99,6 @@ async function build(buddy: CLI) {
109
99
  .command('build:docs', 'Automagically build your documentation site.')
110
100
  .option('-d, --docs', descriptions.docs, { default: true })
111
101
  .option('--verbose', descriptions.verbose, { default: false })
112
- .option('--debug', descriptions.debug, { default: false })
113
102
  .action(async (options: BuildOptions) => {
114
103
  await runAction(Action.BuildDocs, options)
115
104
  })
@@ -121,10 +110,12 @@ async function build(buddy: CLI) {
121
110
  const startTime = await intro('buddy build:core')
122
111
  const result = await runAction(Action.BuildCore, options)
123
112
 
124
- if (result.isErr()) {
125
- log.error('Failed to build the Stacks core.', result.error)
126
- process.exit()
127
- }
113
+ console.log('result', result)
114
+
115
+ // if (result.isErr()) {
116
+ // log.error('Failed to build the Stacks core.', result.error)
117
+ // process.exit()
118
+ // }
128
119
 
129
120
  outro('Stacks core built successfully', { startTime, useSeconds: true })
130
121
  })
@@ -133,15 +124,15 @@ async function build(buddy: CLI) {
133
124
  .command('build:stacks', 'Build the Stacks framework.')
134
125
  .option('-s, --stacks', descriptions.stacks, { default: true })
135
126
  .option('--verbose', descriptions.verbose, { default: false })
136
- .option('--debug', descriptions.debug, { default: false })
137
127
  .action(async (options: BuildOptions) => {
138
128
  const startTime = await intro('buddy build:stacks')
139
129
  const result = await runAction(Action.BuildStacks, options)
130
+ console.log('result', result)
140
131
 
141
- if (result.isErr()) {
142
- log.error('Failed to build Stacks.', result.error)
143
- process.exit()
144
- }
132
+ // if (result.isErr()) {
133
+ // log.error('Failed to build Stacks.', result.error)
134
+ // process.exit()
135
+ // }
145
136
 
146
137
  outro('Stacks built successfully', { startTime, useSeconds: true })
147
138
  })
@@ -7,21 +7,20 @@ async function changelog(buddy: CLI) {
7
7
  const descriptions = {
8
8
  changelog: 'Create a CHANGELOG.md file',
9
9
  verbose: 'Enable verbose output',
10
- debug: 'Enable debug mode',
11
10
  }
12
11
 
13
12
  buddy
14
13
  .command('changelog', descriptions.changelog)
15
14
  .option('--verbose', descriptions.verbose, { default: false })
16
- .option('--debug', descriptions.debug, { default: false })
17
15
  .action(async (options: FreshOptions) => {
18
16
  const perf = await intro('buddy changelog')
19
17
  const result = await runAction(Action.Changelog, options)
18
+ console.log('result', result)
20
19
 
21
- if (result.isErr()) {
22
- outro('While running the changelog command, there was an issue', { startTime: perf, useSeconds: true, isError: true }, result.error)
23
- process.exit()
24
- }
20
+ // if (result.isErr()) {
21
+ // outro('While running the changelog command, there was an issue', { startTime: perf, useSeconds: true, isError: true }, result.error)
22
+ // process.exit()
23
+ // }
25
24
 
26
25
  outro('Generated the CHANGELOG.md file.', { startTime: perf, useSeconds: true })
27
26
  process.exit(ExitCode.Success)
@@ -0,0 +1,29 @@
1
+ import type { CLI, CleanOptions } from '@stacksjs/types'
2
+ import { runAction } from '@stacksjs/actions'
3
+ import { intro, outro } from '@stacksjs/cli'
4
+ import { Action, ExitCode } from '@stacksjs/types'
5
+
6
+ async function clean(buddy: CLI) {
7
+ const descriptions = {
8
+ clean: 'Removes all node_modules & lock files',
9
+ verbose: 'Enable verbose output',
10
+ }
11
+
12
+ buddy
13
+ .command('clean', descriptions.clean)
14
+ .option('--verbose', descriptions.verbose, { default: false })
15
+ .action(async (options: CleanOptions) => {
16
+ const perf = await intro('buddy clean')
17
+ const result = await runAction(Action.Clean, { ...options, verbose: true })
18
+
19
+ if (result.isErr()) {
20
+ outro('While running the clean command, there was an issue', { startTime: perf, useSeconds: true, isError: true }, result.error as Error)
21
+ process.exit(ExitCode.FatalError)
22
+ }
23
+
24
+ outro('Cleaned up', { startTime: perf, useSeconds: true })
25
+ process.exit(ExitCode.Success)
26
+ })
27
+ }
28
+
29
+ export { clean }
@@ -5,13 +5,11 @@ async function commit(buddy: CLI) {
5
5
  const descriptions = {
6
6
  commit: 'Commit your stashed changes',
7
7
  verbose: 'Enable verbose output',
8
- debug: 'Enable debug mode',
9
8
  }
10
9
 
11
10
  buddy
12
11
  .command('commit', descriptions.commit)
13
12
  .option('--verbose', descriptions.verbose, { default: false })
14
- .option('--debug', descriptions.debug, { default: false })
15
13
  .action(async (options: FreshOptions) => {
16
14
  await invoke(options)
17
15
  })
@@ -1,5 +1,5 @@
1
1
  import type { CLI, CreateOptions } from '@stacksjs/types'
2
- import { bold, cyan, green, intro, link, log, runCommand } from '@stacksjs/cli'
2
+ import { bold, cyan, green, intro, log, runCommand } from '@stacksjs/cli'
3
3
  import { useOnline } from '@stacksjs/utils'
4
4
  import { isFolder } from '@stacksjs/storage'
5
5
  import { resolve } from '@stacksjs/path'
@@ -18,7 +18,6 @@ async function create(buddy: CLI) {
18
18
  api: 'Are you building an API?',
19
19
  database: 'Do you need a database?',
20
20
  verbose: 'Enable verbose output',
21
- debug: 'Enable debug mode',
22
21
  }
23
22
 
24
23
  buddy
@@ -32,7 +31,6 @@ async function create(buddy: CLI) {
32
31
  .option('-a, --api', descriptions.api, { default: true }) // APIs need an HTTP server & assumes functions is true
33
32
  .option('-d, --database', descriptions.database, { default: true })
34
33
  .option('--verbose', descriptions.verbose, { default: false })
35
- .option('--debug', descriptions.debug, { default: false })
36
34
  // .option('--auth', 'Scaffold an authentication?', { default: true })
37
35
  .action(async (options: CreateOptions) => {
38
36
  const startTime = await intro('stacks new')
@@ -52,7 +50,7 @@ async function create(buddy: CLI) {
52
50
  await install(path, options)
53
51
 
54
52
  // a custom outro
55
- console.log()
53
+ // console.log()
56
54
 
57
55
  if (startTime) {
58
56
  const time = performance.now() - startTime
@@ -60,8 +58,8 @@ async function create(buddy: CLI) {
60
58
  }
61
59
 
62
60
  log.info(bold('Welcome to the Stacks Framework! ⚛️'))
63
- console.log(`cd ${link(path, `vscode://file/${path}:1`)} && code .`)
64
- console.log()
61
+ // console.log(`cd ${link(path, `vscode://file/${path}:1`)} && code .`)
62
+ // console.log()
65
63
  log.info('To learn more, visit https://stacksjs.dev')
66
64
 
67
65
  process.exit(ExitCode.Success)
@@ -0,0 +1,30 @@
1
+ import type { CLI, DeployOptions } from '@stacksjs/types'
2
+ import { runAction } from '@stacksjs/actions'
3
+ import { intro, outro } from '@stacksjs/cli'
4
+ import { Action, ExitCode } from '@stacksjs/types'
5
+
6
+ async function deploy(buddy: CLI) {
7
+ const descriptions = {
8
+ deploy: 'Reinstalls your npm dependencies',
9
+ verbose: 'Enable verbose output',
10
+ }
11
+
12
+ buddy
13
+ .command('deploy', descriptions.deploy)
14
+ .option('--verbose', descriptions.verbose, { default: false })
15
+ .action(async (options: DeployOptions) => {
16
+ const perf = await intro('buddy deploy')
17
+ const result = await runAction(Action.Deploy, options)
18
+ console.log('result', result)
19
+
20
+ // if (result.isErr()) {
21
+ // outro('While running the `buddy deploy`, there was an issue', { startTime: perf, useSeconds: true, isError: true }, result.error)
22
+ // process.exit()
23
+ // }
24
+
25
+ outro('Deployment succeeded.', { startTime: perf, useSeconds: true })
26
+ process.exit(ExitCode.Success)
27
+ })
28
+ }
29
+
30
+ export { deploy }
@@ -1,8 +1,10 @@
1
1
  import { Action, ExitCode } from '@stacksjs/types'
2
2
  import { runAction } from '@stacksjs/actions'
3
- import type { CLI, DevOption, DevOptions } from '@stacksjs/types'
4
- import { intro, log, outro, prompts } from '@stacksjs/cli'
5
- import { components, desktop, docs, functions, pages, invoke as startDevelopmentServer } from '@stacksjs/actions/dev'
3
+ import type { CLI, DevOptions } from '@stacksjs/types'
4
+ import { intro, log, outro, prompt } from '@stacksjs/cli'
5
+ import { components, desktop, functions, pages } from '@stacksjs/actions/dev'
6
+
7
+ // import { components, desktop, functions, pages, invoke as startDevelopmentServer } from '@stacksjs/actions/dev'
6
8
 
7
9
  async function dev(buddy: CLI) {
8
10
  const descriptions = {
@@ -11,8 +13,8 @@ async function dev(buddy: CLI) {
11
13
  functions: 'Start the Functions development server',
12
14
  docs: 'Start the Documentation development server',
13
15
  pages: 'Start the Pages development server',
16
+ select: 'Which development server are you trying to start?',
14
17
  verbose: 'Enable verbose output',
15
- debug: 'Enable debug mode',
16
18
  }
17
19
 
18
20
  buddy
@@ -22,18 +24,17 @@ async function dev(buddy: CLI) {
22
24
  .option('-d, --docs', descriptions.docs)
23
25
  .option('-p, --pages', descriptions.pages)
24
26
  .option('--verbose', descriptions.verbose, { default: false })
25
- .option('--debug', descriptions.debug, { default: false })
26
27
  .action(async (options: DevOptions) => {
27
28
  if (hasNoOptions(options)) {
28
- const answer: DevOption | void = await prompts.select({
29
+ const answer = await prompt(descriptions.select, {
29
30
  type: 'select',
30
- name: 'development',
31
- message: 'Which development server are you trying to start?',
32
- choices: [
33
- { title: 'Components', value: 'components' },
34
- { title: 'Functions', value: 'functions' },
35
- { title: 'Pages', value: 'pages' },
36
- { title: 'Docs', value: 'docs' },
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' },
37
38
  ],
38
39
  })
39
40
 
@@ -46,13 +47,13 @@ async function dev(buddy: CLI) {
46
47
  await functions(options)
47
48
  else if (answer === 'pages')
48
49
  await pages(options)
49
- else if (answer === 'docs')
50
- await docs(options)
50
+ // else if (answer === 'docs')
51
+ // await docs(options)
51
52
 
52
53
  else process.exit(ExitCode.InvalidArgument)
53
54
  }
54
55
 
55
- await startDevelopmentServer(options)
56
+ // await startDevelopmentServer(options)
56
57
  process.exit(ExitCode.Success)
57
58
  })
58
59
 
@@ -68,34 +69,52 @@ async function dev(buddy: CLI) {
68
69
  // check if result is an array
69
70
  if (Array.isArray(result)) {
70
71
  // check if any of the items in the array is an error
71
- if (result.some(item => item.isErr())) {
72
- outro('While running the dev:components command, there was an issue', { startTime: perf, useSeconds: true, isError: true }, result.error)
73
- process.exit()
74
- }
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
+ // }
75
76
  }
76
77
 
77
78
  // check if result is an error
78
79
  else if (result.isErr()) {
79
- outro('While running the dev:components command, there was an issue', { startTime: perf, useSeconds: true, isError: true }, result.error)
80
+ outro('While running the dev:components command, there was an issue', { startTime: perf, useSeconds: true, isError: true }, result.error ?? undefined)
80
81
  process.exit()
81
82
  }
82
83
 
83
- outro('Finished running dev:components.', { startTime: perf, useSeconds: true })
84
+ console.log('')
85
+ outro('Exited', { startTime: perf, useSeconds: true })
84
86
  process.exit(ExitCode.Success)
85
87
  })
86
88
 
87
89
  buddy
88
90
  .command('dev:docs', descriptions.docs)
89
91
  .option('--verbose', descriptions.verbose, { default: false })
90
- .option('--debug', descriptions.debug, { default: false })
91
92
  .action(async (options: DevOptions) => {
92
- await docs(options)
93
+ const perf = await intro('buddy dev:docs')
94
+ const result = await runAction(Action.DevDocs, { ...options, verbose: true })
95
+
96
+ // check if result is an array
97
+ if (Array.isArray(result)) {
98
+ // check if any of the items in the array is an error
99
+ // if (result.some(item => item.isErr())) {
100
+ // outro('While running the dev:docs command, there was an issue', { startTime: perf, useSeconds: true, isError: true })
101
+ // process.exit()
102
+ // }
103
+ }
104
+
105
+ // check if result is an error
106
+ else if (result.isErr()) {
107
+ outro('While running the dev:components command, there was an issue', { startTime: perf, useSeconds: true, isError: true }, result.error ?? undefined)
108
+ process.exit()
109
+ }
110
+
111
+ outro('Finished running dev:docs.', { startTime: perf, useSeconds: true })
112
+ process.exit(ExitCode.Success)
93
113
  })
94
114
 
95
115
  buddy
96
116
  .command('dev:desktop', descriptions.desktop)
97
117
  .option('--verbose', descriptions.verbose, { default: false })
98
- .option('--debug', descriptions.debug, { default: false })
99
118
  .action(async (options: DevOptions) => {
100
119
  await desktop(options)
101
120
  })
@@ -103,7 +122,6 @@ async function dev(buddy: CLI) {
103
122
  buddy
104
123
  .command('dev:functions', descriptions.functions)
105
124
  .option('--verbose', descriptions.verbose, { default: false })
106
- .option('--debug', descriptions.debug, { default: false })
107
125
  .action(async (options: DevOptions) => {
108
126
  await functions(options)
109
127
  })
@@ -111,7 +129,6 @@ async function dev(buddy: CLI) {
111
129
  buddy
112
130
  .command('dev:pages', descriptions.pages)
113
131
  .option('--verbose', descriptions.verbose, { default: false })
114
- .option('--debug', descriptions.debug, { default: false })
115
132
  .action(async (options: DevOptions) => {
116
133
  await pages(options)
117
134
  })
@@ -1,6 +1,6 @@
1
1
  import { ExitCode } from '@stacksjs/types'
2
- import type { CLI, ExamplesOption, ExamplesOptions } from '@stacksjs/types'
3
- import { italic, log, prompts } from '@stacksjs/cli'
2
+ import type { CLI, ExamplesOptions } from '@stacksjs/types'
3
+ import { italic, log, 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) {
@@ -9,8 +9,8 @@ async function example(buddy: CLI) {
9
9
  components: 'Test your libraries against your built bundle',
10
10
  vue: 'Test your Vue component library',
11
11
  webComponents: 'Test your web component library',
12
+ select: 'Which example are you trying to view?',
12
13
  verbose: 'Enable verbose output',
13
- debug: 'Enable debug mode',
14
14
  }
15
15
 
16
16
  buddy
@@ -19,15 +19,13 @@ async function example(buddy: CLI) {
19
19
  .option('-v, --vue', descriptions.vue)
20
20
  .option('-w, --web-components', descriptions.webComponents)
21
21
  .option('--verbose', descriptions.verbose, { default: false })
22
- .option('--debug', descriptions.debug, { default: false })
23
22
  .action(async (options: ExamplesOptions) => {
24
- const answer: ExamplesOption = await prompts.select({
23
+ const answer = await prompt(descriptions.select, {
25
24
  type: 'select',
26
- name: 'example',
27
- message: 'Which example are you trying to view?',
28
- choices: [
29
- { title: 'Components', value: 'components' },
30
- { title: 'Web Components', value: 'web-components' },
25
+ required: true,
26
+ options: [
27
+ { value: 'components', label: 'Vue Components' },
28
+ { value: 'web-components', label: 'Web Components' },
31
29
  ],
32
30
  })
33
31
 
@@ -50,7 +48,6 @@ async function example(buddy: CLI) {
50
48
  .command('example:vue', descriptions.vue)
51
49
  .option('-v, --vue', descriptions.verbose, { default: true })
52
50
  .option('--verbose', descriptions.verbose, { default: false })
53
- .option('--debug', descriptions.debug, { default: false })
54
51
  .alias('example:components')
55
52
  .action(async (options: ExamplesOptions) => {
56
53
  await runExample(options)
@@ -60,7 +57,6 @@ async function example(buddy: CLI) {
60
57
  .command('example:web-components', 'Test your Web Component library.')
61
58
  .option('-w, --web-components', descriptions.verbose, { default: true })
62
59
  .option('--verbose', descriptions.verbose, { default: false })
63
- .option('--debug', descriptions.debug, { default: false })
64
60
  .action(async (options: ExamplesOptions) => {
65
61
  await runExample(options)
66
62
  })
@@ -7,20 +7,18 @@ async function fresh(buddy: CLI) {
7
7
  const descriptions = {
8
8
  fresh: 'Reinstalls your npm dependencies',
9
9
  verbose: 'Enable verbose output',
10
- debug: 'Enable debug mode',
11
10
  }
12
11
 
13
12
  buddy
14
13
  .command('fresh', descriptions.fresh)
15
14
  .option('--verbose', descriptions.verbose, { default: false })
16
- .option('--debug', descriptions.debug, { default: false })
17
15
  .action(async (options: FreshOptions) => {
18
16
  const perf = await intro('buddy fresh')
19
- const result = await runAction(Action.Fresh, { ...options, showSpinner: true, spinnerText: 'Freshly installing dependencies...' })
17
+ const result = await runAction(Action.Fresh, { ...options, verbose: true })
20
18
 
21
19
  if (result.isErr()) {
22
- outro('While running the fresh command, there was an issue', { startTime: perf, useSeconds: true, isError: true }, result.error)
23
- process.exit()
20
+ outro('While running the `fresh` command, there was an issue', { startTime: perf, useSeconds: true, isError: true }, result.error as Error)
21
+ process.exit(ExitCode.FatalError)
24
22
  }
25
23
 
26
24
  outro('Freshly reinstalled your dependencies.', { startTime: perf, useSeconds: true })