stacks 0.52.10 → 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 (492) hide show
  1. package/.gitignore +4 -2
  2. package/README.md +71 -74
  3. package/api/nitro.config.ts +2 -2
  4. package/api/package.json +3 -2
  5. package/api/routes/index.ts +1 -1
  6. package/art/logo-dark.svg +11 -0
  7. package/art/logo.svg +11 -0
  8. package/auto-imports.d.ts +1186 -839
  9. package/components.d.ts +7 -9
  10. package/core/actions/build.config.ts +181 -9
  11. package/core/actions/package.json +6 -12
  12. package/core/actions/src/build/component-libs.ts +2 -12
  13. package/core/actions/src/clean.ts +1 -1
  14. package/core/actions/src/dev/index.ts +6 -14
  15. package/core/actions/src/generate/index.ts +2 -2
  16. package/core/actions/src/generate/settings.ts +3 -3
  17. package/core/actions/src/helpers/lib-entries.ts +47 -40
  18. package/core/actions/src/helpers/utils.ts +7 -9
  19. package/core/actions/src/lint/index.ts +14 -2
  20. package/core/actions/src/make.ts +8 -5
  21. package/core/actions/src/migrate.ts +2 -2
  22. package/core/actions/src/prepublish.ts +2 -2
  23. package/core/actions/src/release.ts +5 -3
  24. package/core/actions/src/seed.ts +1 -1
  25. package/core/actions/src/upgrade/framework.ts +29 -29
  26. package/core/actions/src/upgrade/index.ts +13 -15
  27. package/core/actions/src/upgrade/node.ts +4 -4
  28. package/core/actions/src/upgrade/package-manager.ts +4 -4
  29. package/core/actions/src/upgrade.ts +3 -3
  30. package/core/ai/build.config.ts +5 -7
  31. package/core/ai/package.json +5 -9
  32. package/core/alias/build.config.ts +5 -7
  33. package/core/alias/package.json +3 -6
  34. package/core/alias/src/index.ts +6 -7
  35. package/core/analytics/build.config.ts +5 -7
  36. package/core/analytics/package.json +6 -6
  37. package/core/arrays/build.config.ts +4 -7
  38. package/core/arrays/package.json +8 -4
  39. package/core/arrays/src/contains.ts +23 -0
  40. package/core/arrays/src/helpers.ts +206 -0
  41. package/core/arrays/src/index.ts +4 -226
  42. package/core/arrays/src/macro.ts +135 -0
  43. package/core/arrays/src/math.ts +19 -0
  44. package/core/auth/build.config.ts +4 -7
  45. package/core/auth/package.json +3 -3
  46. package/core/buddy/README.md +73 -76
  47. package/core/buddy/build.config.ts +1 -2
  48. package/core/buddy/package.json +4 -4
  49. package/core/buddy/src/cli.ts +12 -43
  50. package/core/buddy/src/commands/add.ts +2 -2
  51. package/core/buddy/src/commands/build.ts +23 -16
  52. package/core/buddy/src/commands/create.ts +2 -2
  53. package/core/buddy/src/commands/dev.ts +31 -30
  54. package/core/buddy/src/commands/example.ts +8 -14
  55. package/core/buddy/src/commands/fresh.ts +1 -1
  56. package/core/buddy/src/commands/generate.ts +16 -14
  57. package/core/buddy/src/commands/key.ts +1 -1
  58. package/core/buddy/src/commands/lint.ts +5 -5
  59. package/core/buddy/src/commands/make.ts +20 -15
  60. package/core/buddy/src/commands/onboarding.ts +9 -15
  61. package/core/buddy/src/commands/setting.ts +10 -12
  62. package/core/buddy/src/commands/upgrade.ts +18 -22
  63. package/core/buddy/src/commands/version.ts +7 -19
  64. package/core/buddy/src/index.ts +0 -21
  65. package/core/build/build.config.ts +22 -7
  66. package/core/build/package.json +11 -10
  67. package/core/build/src/desktop.ts +2 -2
  68. package/core/build/src/example-vue.ts +5 -4
  69. package/core/build/src/example-wc.ts +5 -4
  70. package/core/build/src/functions.ts +11 -13
  71. package/core/build/src/index.ts +7 -7
  72. package/core/build/src/stacks.ts +31 -53
  73. package/core/build/src/{pages.ts → views.ts} +13 -14
  74. package/core/build/src/vue-components.ts +73 -12
  75. package/core/build/src/web-components.ts +13 -12
  76. package/core/build/web-types.ts +3 -3
  77. package/core/cache/build.config.ts +7 -7
  78. package/core/cache/package.json +17 -17
  79. package/core/cache/src/drivers/redis.ts +2 -2
  80. package/core/cache/tests/DynamoDB.test.ts +19 -33
  81. package/core/chat/build.config.ts +5 -7
  82. package/core/chat/package.json +8 -8
  83. package/core/cli/build.config.ts +3 -2
  84. package/core/cli/package.json +3 -3
  85. package/core/cli/src/console.ts +75 -2
  86. package/core/cli/src/helpers.ts +1 -1
  87. package/core/cli/src/parse.ts +2 -2
  88. package/core/cli/src/run.ts +6 -7
  89. package/core/cloud/build.config.ts +4 -7
  90. package/core/cloud/package.json +17 -3
  91. package/core/cloud/src/aws/index.ts +9 -0
  92. package/core/cloud/src/aws/logger.ts +8 -0
  93. package/core/cloud/src/aws/metrics.ts +8 -0
  94. package/core/cloud/src/aws/stack.ts +12 -0
  95. package/core/cloud/src/aws/tracer.ts +3 -0
  96. package/core/cloud/src/index.ts +1 -1
  97. package/core/cloud/src/runtime/nodejs/bootstrap.ts +16 -0
  98. package/core/cloud/src/runtime/nodejs/build.sh +1 -0
  99. package/core/collections/build.config.ts +3 -7
  100. package/core/collections/package.json +3 -3
  101. package/core/config/build.config.ts +33 -33
  102. package/core/config/package.json +4 -4
  103. package/core/config/src/defaults.ts +0 -3
  104. package/core/config/src/stacks.ts +10 -11
  105. package/core/database/build.config.ts +1 -2
  106. package/core/database/package.json +3 -3
  107. package/core/database/src/factory/index.ts +2 -2
  108. package/core/database/src/migrations/index.ts +3 -3
  109. package/core/datetime/build.config.ts +1 -2
  110. package/core/datetime/package.json +3 -3
  111. package/core/datetime/src/index.ts +2 -1
  112. package/core/desktop/build.config.ts +2 -1
  113. package/core/desktop/package.json +6 -6
  114. package/core/development/build.config.ts +15 -8
  115. package/core/development/package.json +11 -5
  116. package/core/development/src/index.ts +2 -0
  117. package/core/{domains → dns}/README.md +2 -2
  118. package/core/dns/build.config.ts +22 -0
  119. package/core/{domains → dns}/package.json +13 -9
  120. package/core/dns/src/index.ts +18 -0
  121. package/core/docs/build.config.ts +1 -2
  122. package/core/docs/package.json +4 -4
  123. package/core/email/build.config.ts +1 -2
  124. package/core/email/package.json +15 -15
  125. package/core/email/src/actions/send.ts +2 -0
  126. package/core/email/src/drivers/emailjs.ts +1 -1
  127. package/core/email/src/drivers/mailgun.ts +1 -1
  128. package/core/email/src/drivers/mailjet.ts +2 -2
  129. package/core/email/src/drivers/mandrill.ts +1 -1
  130. package/core/email/src/drivers/netcore.ts +1 -1
  131. package/core/email/src/drivers/nodemailer.ts +1 -1
  132. package/core/email/src/drivers/postmark.ts +1 -1
  133. package/core/email/src/drivers/sendgrid.ts +1 -1
  134. package/core/email/src/tailwind.config.ts +3 -3
  135. package/core/error-handling/build.config.ts +7 -2
  136. package/core/error-handling/package.json +6 -4
  137. package/core/error-handling/src/index.ts +45 -0
  138. package/core/events/README.md +1 -1
  139. package/core/events/build.config.ts +1 -2
  140. package/core/events/package.json +3 -3
  141. package/core/events/src/index.ts +8 -1
  142. package/core/faker/build.config.ts +3 -1
  143. package/core/faker/package.json +4 -4
  144. package/core/git/build.config.ts +3 -1
  145. package/core/git/package.json +4 -4
  146. package/core/health/build.config.ts +3 -1
  147. package/core/health/package.json +3 -3
  148. package/core/lint/build.config.ts +3 -1
  149. package/core/lint/package.json +7 -7
  150. package/core/logging/build.config.ts +5 -3
  151. package/core/logging/package.json +6 -6
  152. package/core/modules/build.config.ts +10 -7
  153. package/core/modules/package.json +3 -3
  154. package/core/notifications/README.md +1 -1
  155. package/core/notifications/build.config.ts +2 -1
  156. package/core/notifications/package.json +25 -25
  157. package/core/notifications/src/tailwind.config.ts +1 -1
  158. package/core/notifications/tests/chat/Slack.test.ts +35 -35
  159. package/core/notifications/tests/email/Mailgun.test.ts +41 -41
  160. package/core/notifications/tests/email/Sendgrid.test.ts +41 -41
  161. package/core/notifications/tests/sms/Twilio.test.ts +38 -38
  162. package/core/objects/build.config.ts +15 -7
  163. package/core/objects/package.json +5 -4
  164. package/core/objects/src/index.ts +2 -1
  165. package/core/orm/build.config.ts +1 -2
  166. package/core/orm/package.json +3 -3
  167. package/core/pages/build.config.ts +4 -7
  168. package/core/pages/package.json +3 -3
  169. package/core/pages/src/index.ts +39 -39
  170. package/core/path/build.config.ts +1 -2
  171. package/core/path/package.json +4 -5
  172. package/core/path/src/index.ts +94 -65
  173. package/core/payments/build.config.ts +4 -7
  174. package/core/payments/package.json +5 -5
  175. package/core/push/build.config.ts +4 -7
  176. package/core/push/package.json +5 -5
  177. package/core/query-builder/build.config.ts +4 -7
  178. package/core/query-builder/package.json +7 -7
  179. package/core/queue/build.config.ts +4 -7
  180. package/core/queue/package.json +3 -3
  181. package/core/realtime/build.config.ts +4 -7
  182. package/core/realtime/package.json +3 -3
  183. package/core/realtime/src/index.ts +3 -1
  184. package/core/repl/README.md +53 -0
  185. package/core/repl/build.config.ts +12 -0
  186. package/core/repl/package.json +56 -0
  187. package/core/repl/src/index.ts +1 -0
  188. package/core/repl/tests/example.test.ts +7 -0
  189. package/core/router/build.config.ts +13 -7
  190. package/core/router/package.json +4 -4
  191. package/core/router/src/index.ts +2 -0
  192. package/core/scheduler/build.config.ts +4 -7
  193. package/core/scheduler/package.json +4 -4
  194. package/core/search-engine/build.config.ts +17 -7
  195. package/core/search-engine/package.json +4 -4
  196. package/core/search-engine/src/helpers.ts +1 -1
  197. package/core/search-engine/src/index.ts +2 -2
  198. package/core/security/build.config.ts +17 -7
  199. package/core/security/package.json +4 -3
  200. package/core/security/src/crypt.ts +11 -2
  201. package/core/server/build.config.ts +3 -7
  202. package/core/server/package.json +6 -5
  203. package/core/server/src/index.ts +2 -5
  204. package/core/server/src/nitro.config.ts +2 -2
  205. package/core/signals/README.md +2 -2
  206. package/core/signals/build.config.ts +4 -7
  207. package/core/signals/package.json +4 -4
  208. package/core/signals/src/index.ts +1 -1
  209. package/core/slug/build.config.ts +4 -7
  210. package/core/slug/package.json +3 -3
  211. package/core/slug/src/index.ts +2 -1
  212. package/core/sms/build.config.ts +3 -1
  213. package/core/sms/package.json +13 -13
  214. package/core/sms/src/drivers/gupshup.ts +1 -1
  215. package/core/sms/src/drivers/nexmo.ts +3 -2
  216. package/core/sms/src/drivers/plivo.ts +3 -2
  217. package/core/sms/src/drivers/sms77.ts +3 -2
  218. package/core/sms/src/drivers/sns.ts +1 -1
  219. package/core/sms/src/drivers/telnyx.ts +3 -2
  220. package/core/sms/src/drivers/termii.ts +3 -2
  221. package/core/sms/src/drivers/twilio.ts +3 -2
  222. package/core/storage/build.config.ts +3 -7
  223. package/core/storage/package.json +5 -5
  224. package/core/storage/src/index.ts +2 -24
  225. package/core/strings/build.config.ts +1 -2
  226. package/core/strings/package.json +9 -3
  227. package/core/strings/src/case.ts +12 -0
  228. package/core/strings/src/index.ts +2 -1
  229. package/core/strings/src/is.ts +170 -0
  230. package/core/strings/src/macro.ts +139 -0
  231. package/core/strings/src/utils.ts +10 -12
  232. package/core/testing/build.config.ts +3 -1
  233. package/core/testing/package.json +8 -8
  234. package/core/tinker/build.config.ts +12 -0
  235. package/core/tinker/package.json +15 -3
  236. package/core/tinker/src/index.ts +1 -0
  237. package/core/types/build.config.ts +17 -8
  238. package/core/types/package.json +25 -19
  239. package/core/types/src/app.ts +4 -4
  240. package/core/types/src/cli.ts +34 -34
  241. package/core/types/src/cron-jobs.ts +25 -4
  242. package/core/types/src/database.ts +12 -3
  243. package/core/types/src/errors.ts +19 -1
  244. package/core/types/src/events.ts +13 -5
  245. package/core/types/src/fs.ts +5 -0
  246. package/core/types/src/git.ts +1 -1
  247. package/core/types/src/index.ts +2 -1
  248. package/core/types/src/library.ts +0 -7
  249. package/core/types/src/model.ts +21 -8
  250. package/core/types/src/money.ts +3 -0
  251. package/core/types/src/notifications.ts +9 -7
  252. package/core/types/src/queue.ts +34 -0
  253. package/core/types/src/search-engine.ts +3 -3
  254. package/core/types/src/stacks.ts +1 -12
  255. package/core/ui/build.config.ts +5 -7
  256. package/core/ui/package.json +7 -7
  257. package/core/utils/build.config.ts +32 -7
  258. package/core/utils/package.json +16 -16
  259. package/core/utils/src/config.ts +88 -49
  260. package/core/utils/src/currency.ts +3 -0
  261. package/core/utils/src/delete.ts +1 -3
  262. package/core/utils/src/guards.ts +3 -3
  263. package/core/utils/src/helpers.ts +36 -12
  264. package/core/utils/src/vendors.ts +1 -0
  265. package/core/validation/build.config.ts +18 -8
  266. package/core/validation/package.json +8 -6
  267. package/core/validation/src/index.ts +2 -0
  268. package/core/validation/src/is.ts +27 -174
  269. package/core/validation/src/rules.ts +126 -0
  270. package/core/validation/src/types/env.ts +147 -0
  271. package/core/validation/src/types/index.ts +2 -0
  272. package/core/validation/src/types/money.ts +17 -0
  273. package/core/validation/src/validate.ts +14 -25
  274. package/core/vite-plugin/README.md +59 -0
  275. package/core/vite-plugin/build.config.ts +21 -0
  276. package/core/vite-plugin/package.json +51 -0
  277. package/core/vite-plugin/src/index.ts +23 -0
  278. package/core/vite-plugin/tests/example.test.ts +7 -0
  279. package/dictionary.txt +228 -0
  280. package/docs/package.json +3 -2
  281. package/env.d.ts +7 -0
  282. package/ide/jetbrains/.fleet/run.json +5 -0
  283. package/ide/jetbrains/.fleet/settings.json +4 -0
  284. package/ide/jetbrains/.idea/.gitignore +5 -0
  285. package/ide/jetbrains/.idea/inspectionProfiles/Project_Default.xml +6 -0
  286. package/ide/jetbrains/.idea/jsLibraryMappings.xml +6 -0
  287. package/ide/jetbrains/.idea/jsLinters/eslint.xml +7 -0
  288. package/ide/jetbrains/.idea/modules.xml +8 -0
  289. package/ide/jetbrains/.idea/stacks.iml +69 -0
  290. package/ide/jetbrains/.idea/vcs.xml +6 -0
  291. package/ide/jetbrains/.idea/webResources.xml +14 -0
  292. package/ide/jetbrains/.idea/workspace.xml +225 -0
  293. package/ide/jetbrains/IntelliJ IDEA Global Settings +0 -0
  294. package/ide/jetbrains/installed.txt +4 -0
  295. package/ide/jetbrains/options/github-copilot.xml +5 -0
  296. package/ide/jetbrains/options/nodejs.xml +7 -0
  297. package/ide/jetbrains/options/templates.xml +124 -0
  298. package/ide/jetbrains/templates/JavaScript.xml +6 -0
  299. package/ide/jetbrains/templates/Stacks.xml +8 -0
  300. package/ide/vscode/.vscode/README.md +23 -0
  301. package/ide/vscode/.vscode/extensions.json +5 -0
  302. package/ide/vscode/.vscode/settings.json +111 -0
  303. package/ide/vscode/.vscode/stacks.code-snippets +182 -0
  304. package/ide/vscode/README.md +42 -0
  305. package/ide/vscode/logo.png +0 -0
  306. package/ide/vscode/package.json +64 -0
  307. package/{components → libs/components}/vue/main.ts +1 -1
  308. package/{components → libs/components}/vue/package.json +1 -1
  309. package/{components → libs/components}/web/package.json +1 -1
  310. package/libs/examples/vue/App.vue +12 -0
  311. package/libs/examples/vue/favicon.png +0 -0
  312. package/libs/examples/vue/index.html +20 -0
  313. package/libs/examples/web/favicon.png +0 -0
  314. package/libs/examples/web/index.html +13 -0
  315. package/libs/functions/package.json +41 -0
  316. package/package.json +104 -98
  317. package/reset.d.ts +1 -0
  318. package/scripts/ensure.sh +33 -0
  319. package/scripts/publish.sh +18 -0
  320. package/scripts/setup.sh +540 -0
  321. package/stacks/dashboard/README.md +74 -0
  322. package/{core/domains → stacks/dashboard}/build.config.ts +1 -1
  323. package/stacks/dashboard/package.json +46 -0
  324. package/stacks/dashboard/src/index.ts +0 -0
  325. package/stacks/dashboard/tests/example.test.ts +7 -0
  326. package/stacks/tables/README.md +109 -0
  327. package/stacks/tables/build.config.ts +16 -0
  328. package/stacks/tables/examples/vue/App.vue +12 -0
  329. package/stacks/tables/examples/vue/favicon.png +0 -0
  330. package/stacks/tables/examples/vue/index.html +20 -0
  331. package/stacks/tables/examples/web/favicon.png +0 -0
  332. package/stacks/tables/examples/web/index.html +13 -0
  333. package/stacks/tables/index.html +13 -0
  334. package/stacks/tables/package.json +57 -0
  335. package/stacks/tables/src/App.vue +23 -0
  336. package/stacks/tables/src/components/Demo.vue +84 -0
  337. package/stacks/tables/src/components/README.md +110 -0
  338. package/stacks/tables/src/components/Table.vue +342 -0
  339. package/stacks/tables/src/components/TableBody.vue +32 -0
  340. package/stacks/tables/src/components/TableCellActionItems.vue +9 -0
  341. package/stacks/tables/src/components/TableFilters.vue +704 -0
  342. package/stacks/tables/src/components/TableHead.vue +60 -0
  343. package/stacks/tables/src/components/TablePagination.vue +131 -0
  344. package/stacks/tables/src/components/TableRow.vue +73 -0
  345. package/stacks/tables/src/components/TableSearch.vue +39 -0
  346. package/stacks/tables/src/components/Tooltip.vue +10 -0
  347. package/stacks/tables/src/config/tables.ts +1 -0
  348. package/stacks/tables/src/docs/index.md +0 -0
  349. package/stacks/tables/src/functions/README.md +8 -0
  350. package/stacks/tables/src/functions/dark.ts +3 -0
  351. package/stacks/tables/src/functions/index.ts +2 -0
  352. package/stacks/tables/src/functions/table.ts +207 -0
  353. package/stacks/tables/src/main.ts +4 -0
  354. package/stacks/tables/tests/example.test.ts +7 -0
  355. package/stacks/tables/vite.config.ts +26 -0
  356. package/stacks/tinker/package.json +48 -0
  357. package/stacks/tinker/src/index.ts +1 -0
  358. package/stacks/x-ray/README.md +55 -0
  359. package/stacks/x-ray/build.config.ts +15 -0
  360. package/stacks/x-ray/index.html +13 -0
  361. package/stacks/x-ray/package.json +55 -0
  362. package/stacks/x-ray/routes/index.ts +19 -0
  363. package/stacks/x-ray/src/client.ts +14 -0
  364. package/stacks/x-ray/src/desktop/api/nitro.config.ts +19 -0
  365. package/stacks/x-ray/src/desktop/api/routes/api/logs.ts +7 -0
  366. package/stacks/x-ray/src/desktop/api/routes/api/store-logs.ts +22 -0
  367. package/stacks/x-ray/src/desktop/api/src/types.ts +7 -0
  368. package/stacks/x-ray/src/desktop/api/storage/index.ts +7 -0
  369. package/stacks/x-ray/src/desktop/app.vue +377 -0
  370. package/stacks/x-ray/src/desktop/functions/http.ts +26 -0
  371. package/stacks/x-ray/src/desktop/functions/types.ts +7 -0
  372. package/stacks/x-ray/src/desktop/main.ts +14 -0
  373. package/stacks/x-ray/src/desktop/modules/counter/mod.vue +44 -0
  374. package/stacks/x-ray/src/desktop/modules/fetcher/mod.vue +63 -0
  375. package/stacks/x-ray/src/desktop/plugins/unified/unified-app.ts +5 -0
  376. package/stacks/x-ray/src/desktop/plugins/unified/unified-styles.scss +0 -0
  377. package/stacks/x-ray/src/desktop/services/http.ts +45 -0
  378. package/stacks/x-ray/src/desktop/styles/app.scss +0 -0
  379. package/stacks/x-ray/src/http.ts +26 -0
  380. package/stacks/x-ray/src/index.ts +42 -0
  381. package/stacks/x-ray/src/ray.config.ts +27 -0
  382. package/stacks/x-ray/src/types.ts +8 -0
  383. package/stacks/x-ray/tests/example.test.ts +7 -0
  384. package/stacks.d.ts +22 -0
  385. package/tsconfig.json +21 -12
  386. package/vcs/github/CODE_OF_CONDUCT.md +83 -0
  387. package/vcs/github/CONTRIBUTING.md +190 -0
  388. package/vcs/github/EXPLANATIONS.md +41 -0
  389. package/vcs/github/FUNDING.yml +1 -0
  390. package/vcs/github/ISSUE_TEMPLATE/bug_report.yml +62 -0
  391. package/vcs/github/ISSUE_TEMPLATE/config.yml +10 -0
  392. package/vcs/github/ISSUE_TEMPLATE/feature_request.yml +44 -0
  393. package/vcs/github/SECURITY.md +70 -0
  394. package/vcs/github/renovate.json +5 -0
  395. package/vcs/github/stale.yml +14 -0
  396. package/vcs/github/workflows/README.md +16 -0
  397. package/vcs/github/workflows/ci.yml +173 -0
  398. package/vcs/github/workflows/export-size.yml +32 -0
  399. package/vcs/github/workflows/release.yml +57 -0
  400. package/{pages → views}/desktop/src/Cargo.lock +363 -46
  401. package/{pages → views}/desktop/src/Cargo.toml +2 -2
  402. package/views/web/main.ts +26 -0
  403. package/api/serverless.yml +0 -11
  404. package/core/actions/node_modules/.bin/markdown-it +0 -17
  405. package/core/actions/node_modules/.bin/unbuild +0 -17
  406. package/core/actions/src/generate/package-jsons.ts +0 -11
  407. package/core/build/entries/README.md +0 -7
  408. package/core/build/node_modules/.bin/unbuild +0 -17
  409. package/core/build/node_modules/.bin/vite +0 -17
  410. package/core/build/node_modules/.bin/vite-ssg +0 -17
  411. package/core/build/node_modules/.bin/vue-docgen-web-types +0 -17
  412. package/core/desktop/node_modules/.bin/tauri +0 -17
  413. package/core/development/node_modules/.bin/tsc +0 -17
  414. package/core/development/node_modules/.bin/tsserver +0 -17
  415. package/core/development/node_modules/.bin/tsx +0 -17
  416. package/core/development/node_modules/.bin/unbuild +0 -17
  417. package/core/docs/node_modules/.bin/vitepress +0 -17
  418. package/core/email/node_modules/.bin/maizzle +0 -17
  419. package/core/git/node_modules/.bin/bumpp +0 -17
  420. package/core/git/node_modules/.bin/changelogen +0 -17
  421. package/core/git/node_modules/.bin/commitizen +0 -17
  422. package/core/git/node_modules/.bin/cz +0 -17
  423. package/core/git/node_modules/.bin/giget +0 -17
  424. package/core/git/node_modules/.bin/git-cz +0 -17
  425. package/core/git/node_modules/.bin/simple-git-hooks +0 -17
  426. package/core/lint/node_modules/.bin/eslint +0 -17
  427. package/core/lint/node_modules/.bin/lint-staged +0 -17
  428. package/core/lint/node_modules/.bin/publint +0 -17
  429. package/core/logging/node_modules/.bin/tsc +0 -17
  430. package/core/logging/node_modules/.bin/tsserver +0 -17
  431. package/core/logging/node_modules/.bin/tsx +0 -17
  432. package/core/logging/node_modules/.bin/unbuild +0 -17
  433. package/core/notifications/node_modules/.bin/maizzle +0 -17
  434. package/core/server/node_modules/.bin/nitro +0 -17
  435. package/core/server/node_modules/.bin/nitropack +0 -17
  436. package/core/server/node_modules/.bin/vite +0 -17
  437. package/core/testing/node_modules/.bin/playwright +0 -17
  438. package/core/testing/node_modules/.bin/tsc +0 -17
  439. package/core/testing/node_modules/.bin/tsserver +0 -17
  440. package/core/testing/node_modules/.bin/unbuild +0 -17
  441. package/core/testing/node_modules/.bin/vitest +0 -17
  442. package/core/tinker/node_modules/.bin/tsx +0 -17
  443. package/core/types/node_modules/.bin/markdown-it +0 -17
  444. package/core/types/node_modules/.bin/vite +0 -17
  445. package/core/types/node_modules/.bin/vite-ssg +0 -17
  446. package/core/types/node_modules/.bin/vitepress +0 -17
  447. package/core/types/src/markdown.ts +0 -198
  448. package/core/ui/node_modules/.bin/vue-tsc +0 -17
  449. package/core/utils/node_modules/.bin/rimraf +0 -17
  450. package/core/utils/node_modules/.bin/semver +0 -17
  451. package/docs/node_modules/.bin/rimraf +0 -17
  452. package/docs/node_modules/.bin/vitepress +0 -17
  453. package/pages/web/main.ts +0 -26
  454. /package/core/{domains → dns}/tests/example.test.ts +0 -0
  455. /package/{LICENSE.md → ide/vscode/LICENSE.md} +0 -0
  456. /package/{components → libs/components}/vue/index.html +0 -0
  457. /package/{core/domains/src → stacks/tables/src/cli}/index.ts +0 -0
  458. /package/{pages → views}/desktop/.gitignore +0 -0
  459. /package/{pages → views}/desktop/README.md +0 -0
  460. /package/{pages → views}/desktop/index.html +0 -0
  461. /package/{pages → views}/desktop/package.json +0 -0
  462. /package/{pages → views}/desktop/public/favicon.svg +0 -0
  463. /package/{pages → views}/desktop/src/.gitignore +0 -0
  464. /package/{pages → views}/desktop/src/build.rs +0 -0
  465. /package/{pages → views}/desktop/src/icons/128x128.png +0 -0
  466. /package/{pages → views}/desktop/src/icons/128x128@2x.png +0 -0
  467. /package/{pages → views}/desktop/src/icons/32x32.png +0 -0
  468. /package/{pages → views}/desktop/src/icons/Square107x107Logo.png +0 -0
  469. /package/{pages → views}/desktop/src/icons/Square142x142Logo.png +0 -0
  470. /package/{pages → views}/desktop/src/icons/Square150x150Logo.png +0 -0
  471. /package/{pages → views}/desktop/src/icons/Square284x284Logo.png +0 -0
  472. /package/{pages → views}/desktop/src/icons/Square30x30Logo.png +0 -0
  473. /package/{pages → views}/desktop/src/icons/Square310x310Logo.png +0 -0
  474. /package/{pages → views}/desktop/src/icons/Square44x44Logo.png +0 -0
  475. /package/{pages → views}/desktop/src/icons/Square71x71Logo.png +0 -0
  476. /package/{pages → views}/desktop/src/icons/Square89x89Logo.png +0 -0
  477. /package/{pages → views}/desktop/src/icons/StoreLogo.png +0 -0
  478. /package/{pages → views}/desktop/src/icons/icon.icns +0 -0
  479. /package/{pages → views}/desktop/src/icons/icon.ico +0 -0
  480. /package/{pages → views}/desktop/src/icons/icon.png +0 -0
  481. /package/{pages → views}/desktop/src/src/main.rs +0 -0
  482. /package/{pages → views}/desktop/src/tauri.conf.json +0 -0
  483. /package/{pages → views}/web/App.vue +0 -0
  484. /package/{pages → views}/web/index.html +0 -0
  485. /package/{pages → views}/web/public/_headers +0 -0
  486. /package/{pages → views}/web/public/favicon-dark.svg +0 -0
  487. /package/{pages → views}/web/public/favicon.svg +0 -0
  488. /package/{pages → views}/web/public/pwa-192x192.png +0 -0
  489. /package/{pages → views}/web/public/pwa-512x512.png +0 -0
  490. /package/{pages → views}/web/public/safari-pinned-tab.svg +0 -0
  491. /package/{pages → views}/web/styles/main.css +0 -0
  492. /package/{pages → views}/web/styles/markdown.css +0 -0
@@ -1,10 +1,11 @@
1
+ import type { AddressInfo } from 'node:net'
1
2
  import type { CliOptions, CommandResult, Manifest, NpmScript } from '@stacksjs/types'
2
- import detectIndent from 'detect-indent'
3
3
  import { frameworkPath, projectPath } from '@stacksjs/path'
4
4
  import { parse } from 'yaml'
5
- import { log, runCommand, spawn } from '@stacksjs/cli'
6
- import storage from '@stacksjs/storage'
5
+ import { execSync, log, runCommand, spawn } from '@stacksjs/cli'
7
6
  import { app, ui } from '@stacksjs/config'
7
+ import * as storage from '@stacksjs/storage'
8
+ import { semver } from './versions'
8
9
 
9
10
  export async function isProjectCreated() {
10
11
  if (storage.isFile('.env'))
@@ -17,9 +18,29 @@ export async function isProjectCreated() {
17
18
  return await isAppKeySet()
18
19
  }
19
20
 
21
+ export async function installIfVersionMismatch() {
22
+ const dependenciesYaml = storage.fs.readFileSync(projectPath('tea.yaml'), 'utf8')
23
+ const dependencies = parseYaml(dependenciesYaml).dependencies
24
+
25
+ const requiredNodeVersion = dependencies['nodejs.org']
26
+ const requiredPnpmVersion = dependencies['pnpm.io']
27
+
28
+ const installedNodeVersion = process.version
29
+ const installedPnpmVersion = execSync('pnpm -v').trim()
30
+
31
+ if (!semver.satisfies(installedNodeVersion, requiredNodeVersion)) {
32
+ log.error(`Installed Node.js version (${installedNodeVersion}) does not satisfy required version (${requiredNodeVersion}). One moment...`)
33
+ await runCommand(`tea +nodejs.org${requiredNodeVersion} >/dev/null 2>&1`)
34
+ }
35
+
36
+ if (!semver.satisfies(installedPnpmVersion, requiredPnpmVersion)) {
37
+ log.error(`Installed pnpm version (${installedPnpmVersion}) does not satisfy required version (${requiredPnpmVersion}). One moment...`)
38
+ await runCommand(`tea +pnpm.io${requiredPnpmVersion} >/dev/null 2>&1`)
39
+ }
40
+ }
41
+
20
42
  export async function frameworkVersion(): Promise<string> {
21
- const packageJson = await storage.fs.readJson(frameworkPath('package.json'))
22
- return packageJson.version
43
+ return (await storage.readPackageJson(frameworkPath('package.json'))).version
23
44
  }
24
45
 
25
46
  export async function isAppKeySet() {
@@ -27,10 +48,7 @@ export async function isAppKeySet() {
27
48
  const lines = env.data.split('\n')
28
49
  const appKey = lines.find(line => line.startsWith('APP_KEY='))
29
50
 
30
- if (appKey && appKey.length > 16)
31
- return true
32
-
33
- return false
51
+ return !!(appKey && appKey.length > 16)
34
52
  }
35
53
 
36
54
  /**
@@ -139,7 +157,13 @@ export function determineDebugLevel(options?: CliOptions) {
139
157
  return app.debug === true
140
158
  }
141
159
 
142
- // export { SemVer } from 'semver'
160
+ export function isIpv6(address: AddressInfo): boolean {
161
+ return address.family === 'IPv6'
162
+ // in node >=18.0 <18.4 this was an integer value. This was changed in a minor version.
163
+ // See: https://github.com/laravel/vite-plugin/issues/103
143
164
 
144
- export { detectIndent }
145
- export { detectNewline } from 'detect-newline'
165
+ // @ts-expect-error-next-line
166
+ || address.family === 6
167
+ }
168
+
169
+ // export { SemVer } from 'semver'
@@ -145,6 +145,7 @@ export {
145
145
  useTimestamp,
146
146
  useTitle,
147
147
  useTransition,
148
+ useToggle,
148
149
  useUrlSearchParams,
149
150
  useUserMedia,
150
151
  useVModel,
@@ -1,15 +1,25 @@
1
- import { defineBuildConfig } from 'unbuild'
1
+ import { alias, defineBuildConfig } from '@stacksjs/development'
2
2
 
3
3
  export default defineBuildConfig({
4
+ alias,
5
+
4
6
  entries: [
5
- {
6
- builder: 'mkdist',
7
- input: './src/',
8
- outDir: './dist/',
9
- format: 'esm',
10
- },
7
+ './src/index',
8
+ ],
9
+
10
+ externals: [
11
+ '@vinejs/vine',
12
+ 'vite',
13
+ 'validator',
14
+ '@stacksjs/path',
15
+ '@stacksjs/utils',
16
+ '@stacksjs/types',
11
17
  ],
12
18
 
19
+ rollup: {
20
+ inlineDependencies: true,
21
+ },
22
+
13
23
  clean: true,
14
- declaration: true,
24
+ declaration: false, // todo: this should be set to true
15
25
  })
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@stacksjs/validation",
3
3
  "type": "module",
4
- "version": "0.52.10",
5
- "packageManager": "pnpm@8.5.1",
4
+ "version": "0.56.3",
5
+ "packageManager": "pnpm@8.6.5",
6
6
  "description": "The Stacks Validation methods.",
7
7
  "author": "Chris Breuer",
8
8
  "license": "MIT",
@@ -25,12 +25,10 @@
25
25
  ],
26
26
  "exports": {
27
27
  ".": {
28
- "types": "./dist/index.d.ts",
29
28
  "import": "./dist/index.mjs"
30
29
  }
31
30
  },
32
31
  "module": "dist/index.mjs",
33
- "types": "dist/index.d.ts",
34
32
  "contributors": [
35
33
  "Chris Breuer <chris@ow3.org>"
36
34
  ],
@@ -41,11 +39,15 @@
41
39
  "scripts": {
42
40
  "build": "unbuild",
43
41
  "dev": "unbuild --stub",
44
- "prepublishOnly": "pnpm run build",
42
+ "prepublishOnly": "unbuild",
45
43
  "typecheck": "tsc --noEmit"
46
44
  },
47
45
  "peerDependencies": {
48
- "zod": "^3.21.4"
46
+ "@stacksjs/utils": "workspace:*",
47
+ "@vinejs/vine": "^1.4.1"
48
+ },
49
+ "dependencies": {
50
+ "@vinejs/vine": "^1.4.1"
49
51
  },
50
52
  "devDependencies": {
51
53
  "@stacksjs/development": "workspace:*",
@@ -1,2 +1,4 @@
1
1
  export * from './is'
2
+ export * from './rules'
2
3
  export * from './validate'
4
+ export * from './types'
@@ -1,257 +1,110 @@
1
1
  import { getTypeName, toString } from '@stacksjs/utils'
2
- import validator from 'validator'
3
- import type { HashAlgorithm } from '@stacksjs/types'
4
-
5
- export function isEmail(email: string) {
6
- return validator.isEmail(email)
7
- }
8
-
9
- export function isStrongPassword(password: string) {
10
- return validator.isStrongPassword(password)
11
- }
12
-
13
- export function isAlphanumeric(username: string) {
14
- return validator.isAlphanumeric(username)
15
- }
16
-
17
- export function validateUsername(username: string) {
18
- return isAlphanumeric(username)
19
- }
20
-
21
- export function isURL(url: string) {
22
- return validator.isURL(url)
23
- }
24
-
25
- export function isMobilePhone(phoneNumber: string) {
26
- return validator.isMobilePhone(phoneNumber)
27
- }
28
-
29
- export function isAlpha(name: string) {
30
- return validator.isAlpha(name)
31
- }
32
-
33
- export function isPostalCode(zipCode: string) {
34
- return validator.isPostalCode(zipCode, 'any')
35
- }
36
-
37
- export function isNumeric(number: string) {
38
- return validator.isNumeric(number)
39
- }
40
-
41
- export function isHexColor(color: string) {
42
- return validator.isHexColor(color)
43
- }
44
-
45
- export function isHexadecimal(hex: string) {
46
- return validator.isHexadecimal(hex)
47
- }
48
-
49
- export function isBase64(base64: string) {
50
- return validator.isBase64(base64)
51
- }
52
-
53
- export function isUUID(uuid: string) {
54
- return validator.isUUID(uuid)
55
- }
56
-
57
- export function isJSON(json: string) {
58
- return validator.isJSON(json)
59
- }
60
-
61
- export function isCreditCard(creditCard: string) {
62
- return validator.isCreditCard(creditCard)
63
- }
64
-
65
- export function isISBN(isbn: string) {
66
- return validator.isISBN(isbn)
67
- }
68
-
69
- export function isIP(ip: string) {
70
- return validator.isIP(ip)
71
- }
72
-
73
- export function isIPRange(ip: string) {
74
- return validator.isIPRange(ip)
75
- }
76
-
77
- export function isMACAddress(macAddress: string) {
78
- return validator.isMACAddress(macAddress)
79
- }
80
-
81
- export function isLatLong(latitude: string) {
82
- return validator.isLatLong(latitude)
83
- }
84
-
85
- export function isLatitude(longitude: string) {
86
- return validator.isLatLong(longitude)
87
- }
88
-
89
- export function isLongitude(longitude: string) {
90
- return validator.isLatLong(longitude)
91
- }
92
-
93
- export function isCurrency(currency: string) {
94
- return validator.isCurrency(currency)
95
- }
96
-
97
- export function isDataURI(dataURI: string) {
98
- return validator.isDataURI(dataURI)
99
- }
100
-
101
- export function isMimeType(mimeType: string) {
102
- return validator.isMimeType(mimeType)
103
- }
104
-
105
- export function isJWT(jwt: string) {
106
- return validator.isJWT(jwt)
107
- }
108
-
109
- export function isMongoId(mongoId: string) {
110
- return validator.isMongoId(mongoId)
111
- }
112
-
113
- export function isAscii(ascii: string) {
114
- return validator.isAscii(ascii)
115
- }
116
-
117
- export function isBase32(base32: string) {
118
- return validator.isBase32(base32)
119
- }
120
-
121
- export function isByteLength(byteLength: string) {
122
- return validator.isByteLength(byteLength)
123
- }
124
-
125
- export function isFQDN(fqdn: string) {
126
- return validator.isFQDN(fqdn)
127
- }
128
-
129
- export function isFullWidth(fullWidth: string) {
130
- return validator.isFullWidth(fullWidth)
131
- }
132
-
133
- export function isHalfWidth(halfWidth: string) {
134
- return validator.isHalfWidth(halfWidth)
135
- }
136
-
137
- export function isHash(hash: string, algorithm: HashAlgorithm) {
138
- return validator.isHash(hash, algorithm)
139
- }
140
-
141
- export function isHSL(hsl: string) {
142
- return validator.isHSL(hsl)
143
- }
144
-
145
- export function isIBAN(iban: string) {
146
- return validator.isIBAN(iban)
147
- }
148
-
149
- export function isIdentityCard(identityCard: string) {
150
- return validator.isIdentityCard(identityCard)
151
- }
152
-
153
- export function isISIN(isin: string) {
154
- return validator.isISIN(isin)
155
- }
156
-
157
- export function isISO8601(iso8601: string) {
158
- return validator.isISO8601(iso8601)
159
- }
160
-
161
- export function isISRC(isrc: string) {
162
- return validator.isISRC(isrc)
163
- }
164
-
165
- export function isISSN(issn: string) {
166
- return validator.isISSN(issn)
167
- }
168
-
169
- export function isISO31661Alpha2(iso31661Alpha2: string) {
170
- return validator.isISO31661Alpha2(iso31661Alpha2)
171
- }
172
-
173
- export function isISO31661Alpha3(iso31661Alpha3: string) {
174
- return validator.isISO31661Alpha3(iso31661Alpha3)
175
- }
176
2
 
177
3
  export function isDef<T = any>(val?: T): val is T {
178
4
  return typeof val !== 'undefined'
179
5
  }
6
+
180
7
  export function isBoolean(val: any): val is boolean {
181
8
  return typeof val === 'boolean'
182
9
  }
10
+
183
11
  export function isFunction<T extends Function>(val: any): val is T {
184
12
  return typeof val === 'function'
185
13
  }
14
+
186
15
  export function isNumber(val: any): val is number {
187
16
  return typeof val === 'number'
188
17
  }
18
+
189
19
  export function isString(val: unknown): val is string {
190
20
  return typeof val === 'string'
191
21
  }
22
+
192
23
  export function isObject(val: any): val is object {
193
24
  return toString(val) === '[object Object]'
194
25
  }
26
+
195
27
  export function isWindow(val: any): boolean {
196
28
  return typeof window !== 'undefined' && toString(val) === '[object Window]'
197
29
  }
30
+
198
31
  export const isBrowser = typeof window !== 'undefined'
32
+
199
33
  export const isServer = typeof document === 'undefined' // https://remix.run/docs/en/v1/pages/gotchas#typeof-window-checks
34
+
200
35
  export function isMap(val: any): val is Map<any, any> {
201
36
  return toString(val) === '[object Map]'
202
37
  }
38
+
203
39
  export function isSet(val: any): val is Set<any> {
204
40
  return toString(val) === '[object Set]'
205
41
  }
42
+
206
43
  export function isPromise<T = any>(val: any): val is Promise<T> {
207
44
  return toString(val) === '[object Promise]'
208
45
  }
46
+
209
47
  export function isUndefined(v: any) {
210
48
  return getTypeName(v) === 'undefined'
211
49
  }
50
+
212
51
  export function isNull(v: any) {
213
52
  return getTypeName(v) === 'null'
214
53
  }
54
+
215
55
  export function isSymbol(v: any) {
216
56
  return getTypeName(v) === 'symbol'
217
57
  }
58
+
218
59
  export function isDate(v: any) {
219
60
  return getTypeName(v) === 'date'
220
61
  }
62
+
221
63
  export function isRegExp(v: any) {
222
64
  return getTypeName(v) === 'regexp'
223
65
  }
66
+
224
67
  export function isArray(v: any) {
225
68
  return getTypeName(v) === 'array'
226
69
  }
70
+
227
71
  export function isPrimitive(v: any) {
228
72
  const type = getTypeName(v)
229
73
  return type === 'null' || type === 'undefined' || type === 'string' || type === 'number' || type === 'boolean' || type === 'symbol'
230
74
  }
75
+
231
76
  export function isInteger(v: any) {
232
77
  return isNumber(v) && Number.isInteger(v)
233
78
  }
79
+
234
80
  export function isFloat(v: any) {
235
81
  return isNumber(v) && !Number.isInteger(v)
236
82
  }
83
+
237
84
  export function isPositive(v: any) {
238
85
  return isNumber(v) && v > 0
239
86
  }
87
+
240
88
  export function isNegative(v: any) {
241
89
  return isNumber(v) && v < 0
242
90
  }
91
+
243
92
  export function isEven(v: any) {
244
93
  return isNumber(v) && v % 2 === 0
245
94
  }
95
+
246
96
  export function isOdd(v: any) {
247
97
  return isNumber(v) && v % 2 !== 0
248
98
  }
99
+
249
100
  export function isEvenOrOdd(v: any) {
250
101
  return isNumber(v) && (v % 2 === 0 ? 'even' : 'odd')
251
102
  }
103
+
252
104
  export function isPositiveOrNegative(v: any) {
253
105
  return isNumber(v) && (v > 0 ? 'positive' : 'negative')
254
106
  }
107
+
255
108
  export function isIntegerOrFloat(v: any) {
256
109
  return isNumber(v) && (Number.isInteger(v) ? 'integer' : 'float')
257
110
  }
@@ -0,0 +1,126 @@
1
+ import { USD, currency } from '@stacksjs/utils'
2
+ import { validator } from './validate'
3
+
4
+ /**
5
+ * Thanks to VineJS for the following types:
6
+ *
7
+ * The context shared with the entire validation pipeline.
8
+ * Each field gets its own context object.
9
+ */
10
+ export interface FieldContext {
11
+ /**
12
+ * Field value
13
+ */
14
+ value: unknown
15
+
16
+ /**
17
+ * The data property is the top-level object under validation.
18
+ */
19
+ data: any
20
+
21
+ /**
22
+ * Shared metadata across the entire validation lifecycle. It can be
23
+ * used to pass data between validation rules
24
+ */
25
+ meta: Record<string, any>
26
+
27
+ /**
28
+ * Mutate the value of field under validation.
29
+ */
30
+ mutate(newValue: any, field: FieldContext): void
31
+
32
+ /**
33
+ * Report error to the error reporter
34
+ */
35
+ report: ErrorReporterContract['report']
36
+
37
+ /**
38
+ * Is this field valid. Default: true
39
+ */
40
+ isValid: boolean
41
+
42
+ /**
43
+ * Is this field has value defined.
44
+ */
45
+ isDefined: boolean
46
+
47
+ /**
48
+ * Wildcard path for the field. The value is a nested
49
+ * pointer to the field under validation.
50
+ *
51
+ * In case of arrays, the `*` wildcard is used.
52
+ */
53
+ wildCardPath: string
54
+
55
+ /**
56
+ * The parent property is the parent of the field. It could be an
57
+ * array or an object.
58
+ */
59
+ parent: any
60
+
61
+ /**
62
+ * Name of the field under validation. In case of an array, the field
63
+ * name will be a number
64
+ */
65
+ name: string | number
66
+
67
+ /**
68
+ * Is this field an array member
69
+ */
70
+ isArrayMember: boolean
71
+ }
72
+
73
+ /**
74
+ * Thanks to VineJS for the following types:
75
+ *
76
+ * The error reporter is used to report errors during the validation
77
+ * process.
78
+ */
79
+ export interface ErrorReporterContract {
80
+ /**
81
+ * A boolean to known if there are one or more
82
+ * errors.
83
+ */
84
+ hasErrors: boolean
85
+
86
+ /**
87
+ * Creates an instance of an exception to throw
88
+ */
89
+ createError(): Error
90
+
91
+ /**
92
+ * Report error for a field
93
+ */
94
+ report(message: string, rule: string, field: FieldContext, args?: Record<string, any>): any
95
+ }
96
+
97
+ // export const isMoney = validator.createRule((value: unknown, _, field: FieldContext) => {
98
+ export const isMoney = validator.createRule((value: unknown, _, field: FieldContext) => {
99
+ /**
100
+ * Convert string representation of a number to a JavaScript
101
+ * Number data type.
102
+ */
103
+ const numericValue = validator.helpers.asNumber(value)
104
+
105
+ /**
106
+ * Report error, if the value is NaN post-conversion
107
+ */
108
+ if (Number.isNaN(numericValue)) {
109
+ field.report(
110
+ 'The {{ field }} field value must be a number',
111
+ 'money',
112
+ field,
113
+ )
114
+ return
115
+ }
116
+
117
+ /**
118
+ * Create amount type
119
+ */
120
+ const amount = currency({ amount: numericValue, currency: USD })
121
+
122
+ /**
123
+ * Mutate the field's value
124
+ */
125
+ field.mutate(amount, field)
126
+ }) as any