alepha 0.20.1 → 0.20.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 (393) hide show
  1. package/README.md +0 -1
  2. package/assets/swagger-ui/swagger-ui-bundle.js +1 -1
  3. package/assets/swagger-ui/swagger-ui.css +1 -1
  4. package/dist/api/audits/index.browser.js +49 -0
  5. package/dist/api/audits/index.browser.js.map +1 -1
  6. package/dist/api/audits/index.d.ts.map +1 -1
  7. package/dist/api/audits/index.js +49 -0
  8. package/dist/api/audits/index.js.map +1 -1
  9. package/dist/api/files/index.d.ts.map +1 -1
  10. package/dist/api/files/index.js +2 -1
  11. package/dist/api/files/index.js.map +1 -1
  12. package/dist/api/jobs/index.browser.js +64 -148
  13. package/dist/api/jobs/index.browser.js.map +1 -1
  14. package/dist/api/jobs/index.d.ts +339 -600
  15. package/dist/api/jobs/index.d.ts.map +1 -1
  16. package/dist/api/jobs/index.js +605 -1012
  17. package/dist/api/jobs/index.js.map +1 -1
  18. package/dist/api/keys/index.js.map +1 -1
  19. package/dist/api/notifications/index.d.ts +79 -27
  20. package/dist/api/notifications/index.d.ts.map +1 -1
  21. package/dist/api/notifications/index.js +90 -23
  22. package/dist/api/notifications/index.js.map +1 -1
  23. package/dist/api/organizations/index.d.ts.map +1 -1
  24. package/dist/api/parameters/index.browser.js +37 -0
  25. package/dist/api/parameters/index.browser.js.map +1 -1
  26. package/dist/api/parameters/index.d.ts +4 -65
  27. package/dist/api/parameters/index.d.ts.map +1 -1
  28. package/dist/api/parameters/index.js +37 -0
  29. package/dist/api/parameters/index.js.map +1 -1
  30. package/dist/api/payments/index.d.ts +2 -1
  31. package/dist/api/payments/index.d.ts.map +1 -1
  32. package/dist/api/payments/index.js +4 -2
  33. package/dist/api/payments/index.js.map +1 -1
  34. package/dist/api/users/index.d.ts +225 -5199
  35. package/dist/api/users/index.d.ts.map +1 -1
  36. package/dist/api/users/index.js +15 -11
  37. package/dist/api/users/index.js.map +1 -1
  38. package/dist/api/verifications/index.d.ts.map +1 -1
  39. package/dist/api/verifications/index.js +4 -2
  40. package/dist/api/verifications/index.js.map +1 -1
  41. package/dist/bucket/index.js +5 -1
  42. package/dist/bucket/index.js.map +1 -1
  43. package/dist/bucket/index.workerd.js +5 -1
  44. package/dist/bucket/index.workerd.js.map +1 -1
  45. package/dist/cache/core/index.js.map +1 -1
  46. package/dist/cache/core/index.workerd.js.map +1 -1
  47. package/dist/captcha/index.js.map +1 -1
  48. package/dist/cli/core/index.d.ts +225 -11681
  49. package/dist/cli/core/index.d.ts.map +1 -1
  50. package/dist/cli/core/index.js +732 -257
  51. package/dist/cli/core/index.js.map +1 -1
  52. package/dist/cli/devtools/index.js +7 -1
  53. package/dist/cli/devtools/index.js.map +1 -1
  54. package/dist/cli/platform/index.d.ts +65 -63
  55. package/dist/cli/platform/index.d.ts.map +1 -1
  56. package/dist/cli/platform/index.js +140 -27
  57. package/dist/cli/platform/index.js.map +1 -1
  58. package/dist/cli/vendor/index.js +15 -0
  59. package/dist/cli/vendor/index.js.map +1 -1
  60. package/dist/command/index.d.ts +1 -1
  61. package/dist/command/index.js +1 -1
  62. package/dist/command/index.js.map +1 -1
  63. package/dist/core/index.browser.js +6 -0
  64. package/dist/core/index.browser.js.map +1 -1
  65. package/dist/core/index.d.ts +8 -8
  66. package/dist/core/index.d.ts.map +1 -1
  67. package/dist/core/index.js +6 -0
  68. package/dist/core/index.js.map +1 -1
  69. package/dist/core/index.native.js +6 -0
  70. package/dist/core/index.native.js.map +1 -1
  71. package/dist/core/index.workerd.js +6 -0
  72. package/dist/core/index.workerd.js.map +1 -1
  73. package/dist/crypto/index.js.map +1 -1
  74. package/dist/datetime/index.js.map +1 -1
  75. package/dist/email/core/index.js.map +1 -1
  76. package/dist/email/smtp/index.js +2 -10522
  77. package/dist/email/smtp/index.js.map +1 -1
  78. package/dist/fake/index.d.ts +4 -8085
  79. package/dist/fake/index.d.ts.map +1 -1
  80. package/dist/fake/index.js +3 -33554
  81. package/dist/fake/index.js.map +1 -1
  82. package/dist/lock/core/index.js.map +1 -1
  83. package/dist/lock/redis/index.js.map +1 -1
  84. package/dist/logger/index.js +32 -1
  85. package/dist/logger/index.js.map +1 -1
  86. package/dist/mcp/index.js +5 -1
  87. package/dist/mcp/index.js.map +1 -1
  88. package/dist/orm/core/index.browser.js +1 -361
  89. package/dist/orm/core/index.browser.js.map +1 -1
  90. package/dist/orm/core/index.bun.js +14 -406
  91. package/dist/orm/core/index.bun.js.map +1 -1
  92. package/dist/orm/core/index.d.ts +96 -5117
  93. package/dist/orm/core/index.d.ts.map +1 -1
  94. package/dist/orm/core/index.js +23 -419
  95. package/dist/orm/core/index.js.map +1 -1
  96. package/dist/orm/postgres/index.bun.js +17 -20
  97. package/dist/orm/postgres/index.bun.js.map +1 -1
  98. package/dist/orm/postgres/index.d.ts +2 -613
  99. package/dist/orm/postgres/index.d.ts.map +1 -1
  100. package/dist/orm/postgres/index.js +17 -20
  101. package/dist/orm/postgres/index.js.map +1 -1
  102. package/dist/react/core/index.js.map +1 -1
  103. package/dist/react/form/index.d.ts +60 -1
  104. package/dist/react/form/index.d.ts.map +1 -1
  105. package/dist/react/form/index.js +86 -1
  106. package/dist/react/form/index.js.map +1 -1
  107. package/dist/react/head/index.browser.js +16 -1
  108. package/dist/react/head/index.browser.js.map +1 -1
  109. package/dist/react/head/index.d.ts +6 -0
  110. package/dist/react/head/index.d.ts.map +1 -1
  111. package/dist/react/head/index.js +16 -1
  112. package/dist/react/head/index.js.map +1 -1
  113. package/dist/react/i18n/index.js.map +1 -1
  114. package/dist/react/intro/index.js +22 -17
  115. package/dist/react/intro/index.js.map +1 -1
  116. package/dist/react/router/index.browser.js +78 -12
  117. package/dist/react/router/index.browser.js.map +1 -1
  118. package/dist/react/router/index.d.ts +57 -13
  119. package/dist/react/router/index.d.ts.map +1 -1
  120. package/dist/react/router/index.js +102 -14
  121. package/dist/react/router/index.js.map +1 -1
  122. package/dist/react/testing/index.d.ts +1 -411
  123. package/dist/react/testing/index.d.ts.map +1 -1
  124. package/dist/react/testing/index.js +13 -12293
  125. package/dist/react/testing/index.js.map +1 -1
  126. package/dist/react/ui/index.d.ts +124 -0
  127. package/dist/react/ui/index.d.ts.map +1 -0
  128. package/dist/react/ui/index.js +209 -0
  129. package/dist/react/ui/index.js.map +1 -0
  130. package/dist/react/websocket/index.js.map +1 -1
  131. package/dist/redis/index.js.map +1 -1
  132. package/dist/router/index.d.ts +13 -13
  133. package/dist/router/index.d.ts.map +1 -1
  134. package/dist/router/index.js +45 -32
  135. package/dist/router/index.js.map +1 -1
  136. package/dist/scheduler/index.d.ts +1 -83
  137. package/dist/scheduler/index.d.ts.map +1 -1
  138. package/dist/scheduler/index.js +2 -391
  139. package/dist/scheduler/index.js.map +1 -1
  140. package/dist/scheduler/index.workerd.js +2 -391
  141. package/dist/scheduler/index.workerd.js.map +1 -1
  142. package/dist/security/index.browser.js.map +1 -1
  143. package/dist/security/index.d.ts +2 -325
  144. package/dist/security/index.d.ts.map +1 -1
  145. package/dist/security/index.js +3 -1362
  146. package/dist/security/index.js.map +1 -1
  147. package/dist/server/auth/index.d.ts +1 -1054
  148. package/dist/server/auth/index.d.ts.map +1 -1
  149. package/dist/server/auth/index.js +16 -1224
  150. package/dist/server/auth/index.js.map +1 -1
  151. package/dist/server/cookies/index.js.map +1 -1
  152. package/dist/server/core/index.browser.js.map +1 -1
  153. package/dist/server/core/index.d.ts +1 -4
  154. package/dist/server/core/index.d.ts.map +1 -1
  155. package/dist/server/core/index.js +19 -4
  156. package/dist/server/core/index.js.map +1 -1
  157. package/dist/server/links/index.browser.js.map +1 -1
  158. package/dist/server/links/index.js.map +1 -1
  159. package/dist/server/metrics/index.d.ts +1 -514
  160. package/dist/server/metrics/index.d.ts.map +1 -1
  161. package/dist/server/metrics/index.js +4 -4356
  162. package/dist/server/metrics/index.js.map +1 -1
  163. package/dist/server/rate-limit/index.js.map +1 -1
  164. package/dist/server/static/index.js.map +1 -1
  165. package/dist/server/swagger/index.js +1 -1
  166. package/dist/server/swagger/index.js.map +1 -1
  167. package/dist/sms/index.js.map +1 -1
  168. package/dist/system/index.browser.js.map +1 -1
  169. package/dist/system/index.d.ts.map +1 -1
  170. package/dist/system/index.js +1 -0
  171. package/dist/system/index.js.map +1 -1
  172. package/dist/system/index.workerd.js.map +1 -1
  173. package/dist/topic/core/index.js +1 -1
  174. package/dist/topic/core/index.js.map +1 -1
  175. package/dist/websocket/index.browser.js +21 -0
  176. package/dist/websocket/index.browser.js.map +1 -1
  177. package/dist/websocket/index.js +21 -0
  178. package/dist/websocket/index.js.map +1 -1
  179. package/package.json +23 -37
  180. package/src/api/files/__tests__/FileController.spec.ts +1 -1
  181. package/src/api/files/jobs/FileJobs.ts +2 -1
  182. package/src/api/jobs/__tests__/$job.spec.ts +320 -2867
  183. package/src/api/jobs/controllers/AdminJobController.ts +29 -138
  184. package/src/api/jobs/entities/jobExecutionEntity.ts +27 -19
  185. package/src/api/jobs/index.browser.ts +5 -7
  186. package/src/api/jobs/index.ts +23 -51
  187. package/src/api/jobs/primitives/$job.ts +66 -58
  188. package/src/api/jobs/providers/JobProvider.ts +561 -566
  189. package/src/api/jobs/providers/JobQueueProvider.ts +18 -19
  190. package/src/api/jobs/schemas/jobConfigAtom.ts +20 -23
  191. package/src/api/jobs/schemas/jobExecutionQuerySchema.ts +3 -27
  192. package/src/api/jobs/schemas/jobExecutionResourceSchema.ts +5 -7
  193. package/src/api/jobs/schemas/jobRegistrationSchema.ts +7 -4
  194. package/src/api/jobs/schemas/triggerJobSchema.ts +0 -1
  195. package/src/api/jobs/services/JobService.ts +90 -483
  196. package/src/api/notifications/controllers/AdminNotificationController.ts +19 -12
  197. package/src/api/notifications/index.ts +7 -4
  198. package/src/api/notifications/jobs/NotificationJobs.ts +83 -12
  199. package/src/api/payments/services/PaymentService.ts +4 -2
  200. package/src/api/users/__tests__/UserJobs.spec.ts +10 -49
  201. package/src/api/users/audits/UserAudits.ts +3 -1
  202. package/src/api/users/buckets/UserBuckets.ts +2 -1
  203. package/src/api/users/index.ts +1 -4
  204. package/src/api/users/jobs/UserJobs.ts +5 -4
  205. package/src/api/users/schemas/userQuerySchema.ts +0 -1
  206. package/src/api/users/services/UserService.ts +1 -5
  207. package/src/api/verifications/__tests__/CodeVerification.spec.ts +14 -0
  208. package/src/api/verifications/__tests__/LinkVerification.spec.ts +14 -0
  209. package/src/api/verifications/jobs/VerificationJobs.ts +2 -1
  210. package/src/api/verifications/services/VerificationService.ts +1 -0
  211. package/src/cli/core/__tests__/init.spec.ts +209 -1
  212. package/src/cli/core/commands/init.ts +9 -9
  213. package/src/cli/core/services/PackageManagerUtils.ts +22 -12
  214. package/src/cli/core/services/ProjectScaffolder.ts +300 -70
  215. package/src/cli/core/tasks/BuildDockerTask.ts +9 -10
  216. package/src/cli/core/tasks/BuildServerTask.ts +8 -0
  217. package/src/cli/core/templates/agentMd.ts +2 -8
  218. package/src/cli/core/templates/apiIndexTs.ts +22 -14
  219. package/src/cli/core/templates/componentsJsonTs.ts +39 -0
  220. package/src/cli/core/templates/mainCss.ts +2 -36
  221. package/src/cli/core/templates/saasAdminLayoutTsx.ts +77 -0
  222. package/src/cli/core/templates/saasAdminPagesTsx.ts +26 -0
  223. package/src/cli/core/templates/saasAuthLayoutTsx.ts +20 -0
  224. package/src/cli/core/templates/saasAuthPagesTsx.ts +62 -0
  225. package/src/cli/core/templates/saasRealmProviderTs.ts +46 -0
  226. package/src/cli/core/templates/vitestConfigTs.ts +17 -0
  227. package/src/cli/core/templates/webAppRouterTs.ts +102 -82
  228. package/src/cli/core/templates/webIndexTs.ts +23 -1
  229. package/src/cli/platform/__tests__/CloudflareAdapter.spec.ts +22 -71
  230. package/src/cli/platform/__tests__/SecretsCommand.spec.ts +2 -0
  231. package/src/cli/platform/adapters/CloudflareAdapter.ts +12 -11
  232. package/src/cli/platform/atoms/platformOptions.ts +9 -0
  233. package/src/cli/platform/schemas/cloudflare.ts +3 -2
  234. package/src/cli/platform/services/CloudflareApi.ts +164 -25
  235. package/src/cli/platform/services/WranglerApi.ts +0 -17
  236. package/src/command/providers/CliProvider.ts +1 -1
  237. package/src/core/Alepha.ts +9 -0
  238. package/src/core/interfaces/Service.ts +3 -1
  239. package/src/core/providers/TypeProvider.ts +1 -1
  240. package/src/logger/services/Logger.ts +1 -1
  241. package/src/mcp/__tests__/$resource.spec.ts +1 -1
  242. package/src/mcp/__tests__/$tool.spec.ts +1 -1
  243. package/src/mcp/__tests__/McpServerProvider.spec.ts +1 -1
  244. package/src/orm/__tests__/$repository-tests.ts +1 -0
  245. package/src/orm/__tests__/orm-next-tests.ts +2 -67
  246. package/src/orm/__tests__/orm-next.spec.ts +0 -21
  247. package/src/orm/core/index.shared.ts +0 -2
  248. package/src/orm/core/index.ts +1 -2
  249. package/src/orm/core/primitives/$repository.ts +3 -6
  250. package/src/orm/core/providers/drivers/DatabaseProvider.ts +0 -5
  251. package/src/orm/core/providers/drivers/NodeSqliteProvider.ts +11 -13
  252. package/src/orm/core/services/ModelBuilder.ts +1 -13
  253. package/src/orm/core/services/Repository.ts +1 -42
  254. package/src/orm/core/services/SqliteModelBuilder.ts +2 -33
  255. package/src/orm/postgres/services/PostgresModelBuilder.ts +10 -45
  256. package/src/react/form/index.ts +2 -0
  257. package/src/react/form/services/parseField.ts +163 -0
  258. package/src/react/form/services/prettyName.ts +19 -0
  259. package/src/react/head/providers/BrowserHeadProvider.ts +31 -10
  260. package/src/react/intro/components/GettingStartedAuthSlide.tsx +11 -4
  261. package/src/react/router/__tests__/ReactBrowserProvider.browser.spec.ts +213 -2
  262. package/src/react/router/primitives/$page.ts +35 -12
  263. package/src/react/router/providers/ReactBrowserProvider.ts +73 -0
  264. package/src/react/router/providers/ReactBrowserRouterProvider.ts +1 -1
  265. package/src/react/router/providers/ReactPreloadProvider.ts +1 -1
  266. package/src/react/router/providers/ReactServerProvider.ts +1 -0
  267. package/src/react/ui/atoms/uiAtom.ts +28 -0
  268. package/src/react/ui/components/ColorScheme.tsx +36 -0
  269. package/src/react/ui/hooks/useColorMode.ts +49 -0
  270. package/src/react/ui/hooks/useSidebarState.ts +26 -0
  271. package/src/react/ui/hooks/useTheme.ts +22 -0
  272. package/src/react/ui/index.ts +35 -0
  273. package/src/react/ui/services/UiPersistence.ts +41 -0
  274. package/src/router/TemplatedPathParser.ts +50 -51
  275. package/src/router/__tests__/RouterProvider.spec.ts +62 -0
  276. package/src/router/__tests__/TemplatedPathParser.spec.ts +18 -0
  277. package/src/router/providers/RouterProvider.ts +10 -5
  278. package/src/scheduler/providers/CronProvider.ts +1 -1
  279. package/src/security/primitives/$basicAuth.ts +1 -1
  280. package/src/server/auth/providers/ServerAuthProvider.ts +5 -1
  281. package/src/server/core/interfaces/ServerRequest.ts +1 -0
  282. package/src/server/core/providers/ServerProvider.ts +1 -1
  283. package/src/server/core/providers/ServerRouterProvider.ts +2 -2
  284. package/src/server/core/services/HttpClient.ts +1 -1
  285. package/src/server/swagger/providers/ServerSwaggerProvider.ts +1 -1
  286. package/src/system/providers/NodeShellProvider.ts +1 -0
  287. package/src/topic/core/providers/TopicProvider.ts +1 -1
  288. package/dist/api/invitations/index.d.ts +0 -790
  289. package/dist/api/invitations/index.d.ts.map +0 -1
  290. package/dist/api/invitations/index.js +0 -662
  291. package/dist/api/invitations/index.js.map +0 -1
  292. package/dist/api/issues/index.d.ts +0 -810
  293. package/dist/api/issues/index.d.ts.map +0 -1
  294. package/dist/api/issues/index.js +0 -444
  295. package/dist/api/issues/index.js.map +0 -1
  296. package/dist/api/subscriptions/index.d.ts +0 -1692
  297. package/dist/api/subscriptions/index.d.ts.map +0 -1
  298. package/dist/api/subscriptions/index.js +0 -1867
  299. package/dist/api/subscriptions/index.js.map +0 -1
  300. package/dist/api/workflows/index.browser.js +0 -246
  301. package/dist/api/workflows/index.browser.js.map +0 -1
  302. package/dist/api/workflows/index.d.ts +0 -1618
  303. package/dist/api/workflows/index.d.ts.map +0 -1
  304. package/dist/api/workflows/index.js +0 -1495
  305. package/dist/api/workflows/index.js.map +0 -1
  306. package/dist/react/testing/chunk-DBEY4PJZ.js +0 -16
  307. package/src/api/invitations/__tests__/InvitationService.spec.ts +0 -439
  308. package/src/api/invitations/controllers/AdminInvitationController.ts +0 -86
  309. package/src/api/invitations/controllers/InvitationController.ts +0 -84
  310. package/src/api/invitations/entities/invitations.ts +0 -33
  311. package/src/api/invitations/index.ts +0 -58
  312. package/src/api/invitations/jobs/InvitationJobs.ts +0 -37
  313. package/src/api/invitations/providers/InvitationProvider.ts +0 -45
  314. package/src/api/invitations/schemas/createInvitationSchema.ts +0 -12
  315. package/src/api/invitations/schemas/invitationConfigAtom.ts +0 -20
  316. package/src/api/invitations/schemas/invitationQuerySchema.ts +0 -15
  317. package/src/api/invitations/schemas/invitationResourceSchema.ts +0 -6
  318. package/src/api/invitations/schemas/invitationWithResourceInfoSchema.ts +0 -22
  319. package/src/api/invitations/schemas/myInvitationsQuerySchema.ts +0 -10
  320. package/src/api/invitations/services/InvitationService.ts +0 -556
  321. package/src/api/issues/__tests__/IssueService.spec.ts +0 -263
  322. package/src/api/issues/controllers/AdminIssueController.ts +0 -149
  323. package/src/api/issues/controllers/IssueController.ts +0 -44
  324. package/src/api/issues/entities/issues.ts +0 -49
  325. package/src/api/issues/index.ts +0 -50
  326. package/src/api/issues/schemas/createIssueSchema.ts +0 -13
  327. package/src/api/issues/schemas/issueConfigAtom.ts +0 -13
  328. package/src/api/issues/schemas/issueQuerySchema.ts +0 -18
  329. package/src/api/issues/schemas/issueResourceSchema.ts +0 -6
  330. package/src/api/issues/schemas/myIssueQuerySchema.ts +0 -10
  331. package/src/api/issues/schemas/updateIssueSchema.ts +0 -13
  332. package/src/api/issues/services/IssueService.ts +0 -264
  333. package/src/api/jobs/__tests__/$job-middleware.spec.ts +0 -126
  334. package/src/api/jobs/__tests__/JobService.spec.ts +0 -31
  335. package/src/api/jobs/entities/jobExecutionLogEntity.ts +0 -13
  336. package/src/api/jobs/schemas/jobActivitySchema.ts +0 -15
  337. package/src/api/jobs/schemas/jobCronInfoSchema.ts +0 -22
  338. package/src/api/jobs/schemas/jobExecutionDetailResourceSchema.ts +0 -20
  339. package/src/api/jobs/schemas/jobFailureSchema.ts +0 -9
  340. package/src/api/jobs/schemas/jobQueueDepthSchema.ts +0 -14
  341. package/src/api/jobs/schemas/jobStatsSchema.ts +0 -14
  342. package/src/api/jobs/services/JobService-tests.ts +0 -157
  343. package/src/api/subscriptions/__tests__/BillingService.spec.ts +0 -218
  344. package/src/api/subscriptions/__tests__/SubscriptionService.spec.ts +0 -278
  345. package/src/api/subscriptions/controllers/AdminSubscriptionController.ts +0 -212
  346. package/src/api/subscriptions/controllers/SubscriptionController.ts +0 -189
  347. package/src/api/subscriptions/entities/subscriptionEvents.ts +0 -54
  348. package/src/api/subscriptions/entities/subscriptions.ts +0 -68
  349. package/src/api/subscriptions/index.ts +0 -133
  350. package/src/api/subscriptions/jobs/SubscriptionJobs.ts +0 -382
  351. package/src/api/subscriptions/middleware/$requireLimit.ts +0 -50
  352. package/src/api/subscriptions/middleware/$requirePlan.ts +0 -49
  353. package/src/api/subscriptions/notifications/SubscriptionNotifications.ts +0 -110
  354. package/src/api/subscriptions/schemas/cancelSubscriptionSchema.ts +0 -8
  355. package/src/api/subscriptions/schemas/changePlanSchema.ts +0 -9
  356. package/src/api/subscriptions/schemas/createSubscriptionSchema.ts +0 -11
  357. package/src/api/subscriptions/schemas/entitlementsSchema.ts +0 -21
  358. package/src/api/subscriptions/schemas/mrrSchema.ts +0 -13
  359. package/src/api/subscriptions/schemas/planDefinitionSchema.ts +0 -71
  360. package/src/api/subscriptions/schemas/planResourceSchema.ts +0 -25
  361. package/src/api/subscriptions/schemas/subscriptionEventResourceSchema.ts +0 -8
  362. package/src/api/subscriptions/schemas/subscriptionQuerySchema.ts +0 -19
  363. package/src/api/subscriptions/schemas/subscriptionResourceSchema.ts +0 -6
  364. package/src/api/subscriptions/schemas/subscriptionSettingsSchema.ts +0 -32
  365. package/src/api/subscriptions/schemas/subscriptionStatsSchema.ts +0 -23
  366. package/src/api/subscriptions/services/BillingService.ts +0 -437
  367. package/src/api/subscriptions/services/SubscriptionConfig.ts +0 -56
  368. package/src/api/subscriptions/services/SubscriptionService.ts +0 -867
  369. package/src/api/subscriptions/services/UsageService.ts +0 -118
  370. package/src/api/workflows/__tests__/$workflow.spec.ts +0 -616
  371. package/src/api/workflows/controllers/AdminWorkflowController.ts +0 -191
  372. package/src/api/workflows/entities/workflowExecutions.ts +0 -74
  373. package/src/api/workflows/entities/workflowStepExecutions.ts +0 -74
  374. package/src/api/workflows/entities/workflowStepLogs.ts +0 -13
  375. package/src/api/workflows/index.browser.ts +0 -22
  376. package/src/api/workflows/index.ts +0 -115
  377. package/src/api/workflows/jobs/WorkflowJobs.ts +0 -77
  378. package/src/api/workflows/primitives/$workflow.ts +0 -202
  379. package/src/api/workflows/providers/WorkflowProvider.ts +0 -1284
  380. package/src/api/workflows/schemas/workflowActivitySchema.ts +0 -15
  381. package/src/api/workflows/schemas/workflowConfigAtom.ts +0 -51
  382. package/src/api/workflows/schemas/workflowExecutionDetailSchema.ts +0 -18
  383. package/src/api/workflows/schemas/workflowExecutionQuerySchema.ts +0 -26
  384. package/src/api/workflows/schemas/workflowExecutionResourceSchema.ts +0 -30
  385. package/src/api/workflows/schemas/workflowRegistrationSchema.ts +0 -26
  386. package/src/api/workflows/schemas/workflowStatsSchema.ts +0 -16
  387. package/src/api/workflows/schemas/workflowStepExecutionResourceSchema.ts +0 -15
  388. package/src/api/workflows/services/WorkflowService.ts +0 -382
  389. package/src/cli/core/templates/apiAppSecurityTs.ts +0 -43
  390. package/src/cli/core/templates/webAdminDashboardTsx.ts +0 -17
  391. package/src/orm/core/__tests__/parseQueryString.spec.ts +0 -196
  392. package/src/orm/core/helpers/parseQueryString.ts +0 -502
  393. package/src/orm/core/primitives/$view.ts +0 -88
@@ -493,6 +493,214 @@ describe("alepha init", () => {
493
493
  });
494
494
  });
495
495
 
496
+ // ─────────────────────────────────────────────────────────────────────────────
497
+ // SaaS preset (--saas flag)
498
+ // ─────────────────────────────────────────────────────────────────────────────
499
+
500
+ describe("--saas flag", () => {
501
+ it("should imply --shadcn / --tailwind / --react / --api", async () => {
502
+ const { fs, cli, cmd, json } = createTestEnv();
503
+ await setupProject(fs, json);
504
+
505
+ await cli.run(cmd.init, { argv: "--saas", root: "/project" });
506
+
507
+ // shadcn → components.json + main.css uses tailwind
508
+ expect(fs.wasWritten("/project/components.json")).toBe(true);
509
+ expect(
510
+ fs.wasWrittenMatching("/project/src/main.css", /@import "tailwindcss"/),
511
+ ).toBe(true);
512
+ // tailwind → vite.config.ts
513
+ expect(fs.wasWritten("/project/vite.config.ts")).toBe(true);
514
+ // react → web/ tree
515
+ expect(fs.wasWritten("/project/src/web/AppRouter.ts")).toBe(true);
516
+ expect(fs.wasWritten("/project/src/main.browser.ts")).toBe(true);
517
+ // api → api/ tree
518
+ expect(fs.wasWritten("/project/src/api/index.ts")).toBe(true);
519
+ });
520
+
521
+ it("should wire AlephaApiUsers into api/index.ts", async () => {
522
+ const { fs, cli, cmd, json } = createTestEnv();
523
+ await setupProject(fs, json);
524
+
525
+ await cli.run(cmd.init, { argv: "--saas", root: "/project" });
526
+
527
+ expect(
528
+ fs.wasWrittenMatching("/project/src/api/index.ts", /AlephaApiUsers/),
529
+ ).toBe(true);
530
+ expect(
531
+ fs.wasWrittenMatching(
532
+ "/project/src/api/index.ts",
533
+ /imports:\s*\[AlephaApiUsers\]/,
534
+ ),
535
+ ).toBe(true);
536
+ });
537
+
538
+ it("should scaffold src/api/providers/RealmProvider.ts with $realm", async () => {
539
+ const { fs, cli, cmd, json } = createTestEnv();
540
+ await setupProject(fs, json);
541
+
542
+ await cli.run(cmd.init, { argv: "--saas", root: "/project" });
543
+
544
+ expect(fs.wasWritten("/project/src/api/providers/RealmProvider.ts")).toBe(
545
+ true,
546
+ );
547
+ expect(
548
+ fs.wasWrittenMatching(
549
+ "/project/src/api/providers/RealmProvider.ts",
550
+ /\$realm\(/,
551
+ ),
552
+ ).toBe(true);
553
+ expect(
554
+ fs.wasWrittenMatching(
555
+ "/project/src/api/providers/RealmProvider.ts",
556
+ /adminEmails:/,
557
+ ),
558
+ ).toBe(true);
559
+ expect(
560
+ fs.wasWrittenMatching(
561
+ "/project/src/api/providers/RealmProvider.ts",
562
+ /\$permission\(\s*\{[\s\S]*group:\s*"admin"[\s\S]*name:\s*"ui"/,
563
+ ),
564
+ ).toBe(true);
565
+ });
566
+
567
+ it("should register RealmProvider in the API module", async () => {
568
+ const { fs, cli, cmd, json } = createTestEnv();
569
+ await setupProject(fs, json);
570
+
571
+ await cli.run(cmd.init, { argv: "--saas", root: "/project" });
572
+
573
+ expect(
574
+ fs.wasWrittenMatching(
575
+ "/project/src/api/index.ts",
576
+ /services:\s*\[HelloController,\s*RealmProvider\]/,
577
+ ),
578
+ ).toBe(true);
579
+ });
580
+
581
+ it("should scaffold auth pages + AuthLayout", async () => {
582
+ const { fs, cli, cmd, json } = createTestEnv();
583
+ await setupProject(fs, json);
584
+
585
+ await cli.run(cmd.init, { argv: "--saas", root: "/project" });
586
+
587
+ expect(
588
+ fs.wasWritten("/project/src/web/components/auth/AuthLayout.tsx"),
589
+ ).toBe(true);
590
+ expect(fs.wasWritten("/project/src/web/components/auth/Login.tsx")).toBe(
591
+ true,
592
+ );
593
+ expect(
594
+ fs.wasWritten("/project/src/web/components/auth/Register.tsx"),
595
+ ).toBe(true);
596
+ expect(
597
+ fs.wasWritten("/project/src/web/components/auth/ResetPassword.tsx"),
598
+ ).toBe(true);
599
+ expect(
600
+ fs.wasWritten("/project/src/web/components/auth/VerifyEmail.tsx"),
601
+ ).toBe(true);
602
+ });
603
+
604
+ it("should scaffold admin AppShell + admin pages", async () => {
605
+ const { fs, cli, cmd, json } = createTestEnv();
606
+ await setupProject(fs, json);
607
+
608
+ await cli.run(cmd.init, { argv: "--saas", root: "/project" });
609
+
610
+ expect(
611
+ fs.wasWritten("/project/src/web/components/admin/AdminLayout.tsx"),
612
+ ).toBe(true);
613
+ expect(
614
+ fs.wasWrittenMatching(
615
+ "/project/src/web/components/admin/AdminLayout.tsx",
616
+ /AppShell/,
617
+ ),
618
+ ).toBe(true);
619
+ expect(fs.wasWritten("/project/src/web/components/admin/Users.tsx")).toBe(
620
+ true,
621
+ );
622
+ expect(
623
+ fs.wasWritten("/project/src/web/components/admin/Sessions.tsx"),
624
+ ).toBe(true);
625
+ });
626
+
627
+ it("should wire /auth and /admin routes into AppRouter", async () => {
628
+ const { fs, cli, cmd, json } = createTestEnv();
629
+ await setupProject(fs, json);
630
+
631
+ await cli.run(cmd.init, { argv: "--saas", root: "/project" });
632
+
633
+ expect(
634
+ fs.wasWrittenMatching(
635
+ "/project/src/web/AppRouter.ts",
636
+ /authLayout\s*=\s*\$page/,
637
+ ),
638
+ ).toBe(true);
639
+ expect(
640
+ fs.wasWrittenMatching(
641
+ "/project/src/web/AppRouter.ts",
642
+ /adminLayout\s*=\s*\$page/,
643
+ ),
644
+ ).toBe(true);
645
+ expect(
646
+ fs.wasWrittenMatching(
647
+ "/project/src/web/AppRouter.ts",
648
+ /adminUsers\s*=\s*\$page/,
649
+ ),
650
+ ).toBe(true);
651
+ });
652
+
653
+ it("should default the shadcn preset to b0", async () => {
654
+ const { fs, shell, cli, cmd, json } = createTestEnv();
655
+ await setupProject(fs, json);
656
+
657
+ await cli.run(cmd.init, { argv: "--shadcn", root: "/project" });
658
+
659
+ expect(shell.wasCalledMatching(/shadcn\s+init.*--preset\s+b0\b/)).toBe(
660
+ true,
661
+ );
662
+ });
663
+
664
+ it("should let --shadcn <id> override the preset", async () => {
665
+ const { fs, shell, cli, cmd, json } = createTestEnv();
666
+ await setupProject(fs, json);
667
+
668
+ await cli.run(cmd.init, {
669
+ argv: "--shadcn bOgTgBE1b",
670
+ root: "/project",
671
+ });
672
+
673
+ expect(
674
+ shell.wasCalledMatching(/shadcn\s+init.*--preset\s+bOgTgBE1b\b/),
675
+ ).toBe(true);
676
+ });
677
+
678
+ it("should let --saas <id> override the preset", async () => {
679
+ const { fs, shell, cli, cmd, json } = createTestEnv();
680
+ await setupProject(fs, json);
681
+
682
+ await cli.run(cmd.init, {
683
+ argv: "--saas bOgTgBE1b",
684
+ root: "/project",
685
+ });
686
+
687
+ expect(
688
+ shell.wasCalledMatching(/shadcn\s+init.*--preset\s+bOgTgBE1b\b/),
689
+ ).toBe(true);
690
+ });
691
+
692
+ it("should add the @alepha/saas registry bundle in one shot", async () => {
693
+ const { fs, cli, cmd, shell, json } = createTestEnv();
694
+ await setupProject(fs, json);
695
+
696
+ await cli.run(cmd.init, { argv: "--saas", root: "/project" });
697
+
698
+ expect(shell.wasCalledMatching(/shadcn\s+add\s+@alepha\/saas/)).toBe(
699
+ true,
700
+ );
701
+ });
702
+ });
703
+
496
704
  // ─────────────────────────────────────────────────────────────────────────────
497
705
  // Non-empty directory guard (codegen flags)
498
706
  // ─────────────────────────────────────────────────────────────────────────────
@@ -542,7 +750,7 @@ describe("alepha init", () => {
542
750
  });
543
751
 
544
752
  it("should check each codegen flag independently", async () => {
545
- for (const flag of ["--react", "--ui", "--saas", "--tailwind"]) {
753
+ for (const flag of ["--react", "--tailwind"]) {
546
754
  const { fs, cli, cmd, json } = createTestEnv();
547
755
  await setupProject(fs, json);
548
756
  await fs.writeFile("/project/src/existing.ts", "export {}");
@@ -37,21 +37,21 @@ export class InitCommand {
37
37
  description: "Include React dependencies and web module (src/web/)",
38
38
  }),
39
39
  ),
40
- ui: t.optional(
40
+ tailwind: t.optional(
41
41
  t.boolean({
42
- description:
43
- "Include @alepha/ui (components, auth portal, admin portal)",
42
+ description: "Include Tailwind CSS with Vite plugin. Implies --react",
44
43
  }),
45
44
  ),
46
- saas: t.optional(
47
- t.boolean({
45
+ shadcn: t.optional(
46
+ t.union([t.boolean(), t.text()], {
48
47
  description:
49
- "Include authentication, admin portal, API, UI, and React. Everything you need for a SaaS app.",
48
+ "Set up shadcn/ui (components.json, cn helper, theme tokens, alepha registry). Pass an optional preset id (default: b0). Implies --react and --tailwind",
50
49
  }),
51
50
  ),
52
- tailwind: t.optional(
53
- t.boolean({
54
- description: "Include Tailwind CSS with Vite plugin. Implies --react",
51
+ saas: t.optional(
52
+ t.union([t.boolean(), t.text()], {
53
+ description:
54
+ "Scaffold a SaaS starter: auth (login/register/reset/verify) + admin panel (/admin AppShell with users/sessions/api-keys/parameters/audits). Pass an optional preset id (default: b0). Implies --shadcn and --api",
55
55
  }),
56
56
  ),
57
57
  test: t.optional(
@@ -297,7 +297,7 @@ export class PackageManagerUtils {
297
297
  public async removeYarn(root: string): Promise<void> {
298
298
  await this.removeFiles(root, [".yarn", ".yarnrc.yml", "yarn.lock"]);
299
299
  await this.editPackageJson(root, (pkg) => {
300
- delete pkg.packageManager;
300
+ pkg.packageManager = undefined;
301
301
  return pkg;
302
302
  });
303
303
  }
@@ -305,7 +305,7 @@ export class PackageManagerUtils {
305
305
  public async removePnpm(root: string): Promise<void> {
306
306
  await this.removeFiles(root, ["pnpm-lock.yaml", "pnpm-workspace.yaml"]);
307
307
  await this.editPackageJson(root, (pkg) => {
308
- delete pkg.packageManager;
308
+ pkg.packageManager = undefined;
309
309
  return pkg;
310
310
  });
311
311
  }
@@ -402,9 +402,9 @@ export class PackageManagerUtils {
402
402
  };
403
403
 
404
404
  // Only include drizzle-kit when the project uses a database.
405
- // React-only projects (--react without --api/--saas) don't need it.
406
- const isReactOnly = modes.react && !modes.ui;
407
- if (!isReactOnly) {
405
+ // - React-only projects skip it (no ORM in scope).
406
+ // - SaaS pulls AlephaApiUsers which DOES need a DB → keep drizzle-kit.
407
+ if (!modes.react || modes.saas) {
408
408
  devDependencies["drizzle-kit"] = alephaDeps["drizzle-kit"];
409
409
  }
410
410
 
@@ -428,14 +428,19 @@ export class PackageManagerUtils {
428
428
  scripts.test = "vitest run";
429
429
  }
430
430
 
431
- if (modes.ui) {
432
- dependencies["@alepha/ui"] = `^${version}`;
433
- modes.react = true;
431
+ if (modes.tailwind) {
432
+ devDependencies.tailwindcss = alephaDeps.tailwindcss;
433
+ devDependencies["@tailwindcss/vite"] = alephaDeps["@tailwindcss/vite"];
434
434
  }
435
435
 
436
- if (modes.tailwind) {
437
- devDependencies.tailwindcss = "^4.2.0";
438
- devDependencies["@tailwindcss/vite"] = "^4.2.0";
436
+ if (modes.shadcn) {
437
+ // Add `shadcn` CLI as a project devDep — `alepha init --shadcn` runs
438
+ // `yarn shadcn init` after install to scaffold components.json,
439
+ // theme tokens, cn() helper, and runtime deps (clsx, tailwind-merge,
440
+ // class-variance-authority, lucide-react, tw-animate-css). Keeping
441
+ // the CLI in the project lets users re-run `yarn shadcn add ...`
442
+ // without `npx`.
443
+ devDependencies.shadcn = alephaDeps.shadcn;
439
444
  }
440
445
 
441
446
  if (modes.react) {
@@ -467,9 +472,14 @@ export class PackageManagerUtils {
467
472
 
468
473
  export interface DependencyModes {
469
474
  react?: boolean;
470
- ui?: boolean;
471
475
  expo?: boolean;
472
476
  tailwind?: boolean;
477
+ shadcn?: boolean;
478
+ /**
479
+ * SaaS starter: implies `shadcn` + adds the alepha auth + admin registry
480
+ * components on top via `shadcn add @alepha/...`.
481
+ */
482
+ saas?: boolean;
473
483
  test?: boolean;
474
484
  /**
475
485
  * Skip biome/vitest when inside a workspace package (they're at root).