alepha 0.23.0 → 0.24.0

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 (845) hide show
  1. package/assets/swagger-ui/swagger-ui-bundle.js +1 -1
  2. package/assets/swagger-ui/swagger-ui-standalone-preset.js +1 -1
  3. package/dist/api/audits/index.browser.js +49 -52
  4. package/dist/api/audits/index.browser.js.map +1 -1
  5. package/dist/api/audits/index.d.ts +629 -565
  6. package/dist/api/audits/index.d.ts.map +1 -1
  7. package/dist/api/audits/index.js +206 -98
  8. package/dist/api/audits/index.js.map +1 -1
  9. package/dist/api/files/index.browser.js +44 -44
  10. package/dist/api/files/index.browser.js.map +1 -1
  11. package/dist/api/files/index.d.ts +292 -293
  12. package/dist/api/files/index.d.ts.map +1 -1
  13. package/dist/api/files/index.js +61 -64
  14. package/dist/api/files/index.js.map +1 -1
  15. package/dist/api/jobs/index.browser.js +61 -59
  16. package/dist/api/jobs/index.browser.js.map +1 -1
  17. package/dist/api/jobs/index.d.ts +546 -347
  18. package/dist/api/jobs/index.d.ts.map +1 -1
  19. package/dist/api/jobs/index.js +165 -86
  20. package/dist/api/jobs/index.js.map +1 -1
  21. package/dist/api/keys/index.d.ts +247 -235
  22. package/dist/api/keys/index.d.ts.map +1 -1
  23. package/dist/api/keys/index.js +63 -66
  24. package/dist/api/keys/index.js.map +1 -1
  25. package/dist/api/notifications/index.browser.js +40 -38
  26. package/dist/api/notifications/index.browser.js.map +1 -1
  27. package/dist/api/notifications/index.d.ts +339 -209
  28. package/dist/api/notifications/index.d.ts.map +1 -1
  29. package/dist/api/notifications/index.js +108 -60
  30. package/dist/api/notifications/index.js.map +1 -1
  31. package/dist/api/oauth/index.d.ts +190 -78
  32. package/dist/api/oauth/index.d.ts.map +1 -1
  33. package/dist/api/oauth/index.js +290 -68
  34. package/dist/api/oauth/index.js.map +1 -1
  35. package/dist/api/organizations/index.browser.js +14 -14
  36. package/dist/api/organizations/index.browser.js.map +1 -1
  37. package/dist/api/organizations/index.d.ts +158 -134
  38. package/dist/api/organizations/index.d.ts.map +1 -1
  39. package/dist/api/organizations/index.js +18 -18
  40. package/dist/api/organizations/index.js.map +1 -1
  41. package/dist/api/parameters/index.browser.js +74 -53
  42. package/dist/api/parameters/index.browser.js.map +1 -1
  43. package/dist/api/parameters/index.d.ts +607 -513
  44. package/dist/api/parameters/index.d.ts.map +1 -1
  45. package/dist/api/parameters/index.js +205 -127
  46. package/dist/api/parameters/index.js.map +1 -1
  47. package/dist/api/payments/index.d.ts +652 -449
  48. package/dist/api/payments/index.d.ts.map +1 -1
  49. package/dist/api/payments/index.js +159 -93
  50. package/dist/api/payments/index.js.map +1 -1
  51. package/dist/api/subscriptions/index.d.ts +1032 -762
  52. package/dist/api/subscriptions/index.d.ts.map +1 -1
  53. package/dist/api/subscriptions/index.js +166 -185
  54. package/dist/api/subscriptions/index.js.map +1 -1
  55. package/dist/api/users/index.browser.js +48 -71
  56. package/dist/api/users/index.browser.js.map +1 -1
  57. package/dist/api/users/index.d.ts +1297 -1143
  58. package/dist/api/users/index.d.ts.map +1 -1
  59. package/dist/api/users/index.js +456 -392
  60. package/dist/api/users/index.js.map +1 -1
  61. package/dist/api/verifications/index.browser.js +17 -17
  62. package/dist/api/verifications/index.browser.js.map +1 -1
  63. package/dist/api/verifications/index.d.ts +167 -155
  64. package/dist/api/verifications/index.d.ts.map +1 -1
  65. package/dist/api/verifications/index.js +47 -95
  66. package/dist/api/verifications/index.js.map +1 -1
  67. package/dist/background/index.d.ts +0 -1
  68. package/dist/background/index.d.ts.map +1 -1
  69. package/dist/background/index.js.map +1 -1
  70. package/dist/background/index.workerd.js.map +1 -1
  71. package/dist/batch/index.d.ts +0 -1
  72. package/dist/batch/index.d.ts.map +1 -1
  73. package/dist/batch/index.js.map +1 -1
  74. package/dist/bin/index.js +1 -1
  75. package/dist/bin/index.js.map +1 -1
  76. package/dist/bucket/index.d.ts +27 -32
  77. package/dist/bucket/index.d.ts.map +1 -1
  78. package/dist/bucket/index.js +56 -26
  79. package/dist/bucket/index.js.map +1 -1
  80. package/dist/bucket/index.workerd.js +52 -24
  81. package/dist/bucket/index.workerd.js.map +1 -1
  82. package/dist/cache/core/index.d.ts +4 -6
  83. package/dist/cache/core/index.d.ts.map +1 -1
  84. package/dist/cache/core/index.js +4 -10
  85. package/dist/cache/core/index.js.map +1 -1
  86. package/dist/cache/core/index.workerd.js +4 -10
  87. package/dist/cache/core/index.workerd.js.map +1 -1
  88. package/dist/cache/database/index.d.ts +22 -23
  89. package/dist/cache/database/index.d.ts.map +1 -1
  90. package/dist/cache/database/index.js +11 -20
  91. package/dist/cache/database/index.js.map +1 -1
  92. package/dist/cache/redis/index.d.ts +3 -4
  93. package/dist/cache/redis/index.d.ts.map +1 -1
  94. package/dist/cache/redis/index.js +2 -2
  95. package/dist/cache/redis/index.js.map +1 -1
  96. package/dist/captcha/index.d.ts.map +1 -1
  97. package/dist/captcha/index.js +4 -4
  98. package/dist/captcha/index.js.map +1 -1
  99. package/dist/cli/config/index.d.ts +0 -1
  100. package/dist/cli/config/index.d.ts.map +1 -1
  101. package/dist/cli/core/index.d.ts +205 -442
  102. package/dist/cli/core/index.d.ts.map +1 -1
  103. package/dist/cli/core/index.js +259 -284
  104. package/dist/cli/core/index.js.map +1 -1
  105. package/dist/cli/devtools/index.d.ts +3 -9
  106. package/dist/cli/devtools/index.d.ts.map +1 -1
  107. package/dist/cli/devtools/index.js +3 -3
  108. package/dist/cli/devtools/index.js.map +1 -1
  109. package/dist/cli/i18n/index.d.ts +8 -34
  110. package/dist/cli/i18n/index.d.ts.map +1 -1
  111. package/dist/cli/i18n/index.js +6 -6
  112. package/dist/cli/i18n/index.js.map +1 -1
  113. package/dist/cli/platform/index.d.ts +89 -82
  114. package/dist/cli/platform/index.d.ts.map +1 -1
  115. package/dist/cli/platform/index.js +27 -33
  116. package/dist/cli/platform/index.js.map +1 -1
  117. package/dist/cli/platform-lib/index.d.ts +351 -404
  118. package/dist/cli/platform-lib/index.d.ts.map +1 -1
  119. package/dist/cli/platform-lib/index.js +218 -239
  120. package/dist/cli/platform-lib/index.js.map +1 -1
  121. package/dist/cli/vendor/index.d.ts +17 -41
  122. package/dist/cli/vendor/index.d.ts.map +1 -1
  123. package/dist/cli/vendor/index.js +10 -13
  124. package/dist/cli/vendor/index.js.map +1 -1
  125. package/dist/command/index.d.ts +83 -195
  126. package/dist/command/index.d.ts.map +1 -1
  127. package/dist/command/index.js +160 -563
  128. package/dist/command/index.js.map +1 -1
  129. package/dist/core/index.browser.js +845 -859
  130. package/dist/core/index.browser.js.map +1 -1
  131. package/dist/core/index.d.ts +787 -527
  132. package/dist/core/index.d.ts.map +1 -1
  133. package/dist/core/index.js +845 -859
  134. package/dist/core/index.js.map +1 -1
  135. package/dist/core/index.native.js +845 -859
  136. package/dist/core/index.native.js.map +1 -1
  137. package/dist/core/index.workerd.js +845 -859
  138. package/dist/core/index.workerd.js.map +1 -1
  139. package/dist/crypto/index.browser.js +1 -1
  140. package/dist/crypto/index.browser.js.map +1 -1
  141. package/dist/crypto/index.d.ts +3 -4
  142. package/dist/crypto/index.d.ts.map +1 -1
  143. package/dist/crypto/index.js +6 -3
  144. package/dist/crypto/index.js.map +1 -1
  145. package/dist/datetime/index.d.ts +12 -2
  146. package/dist/datetime/index.d.ts.map +1 -1
  147. package/dist/datetime/index.js +6 -1
  148. package/dist/datetime/index.js.map +1 -1
  149. package/dist/email/brevo/index.d.ts +0 -1
  150. package/dist/email/brevo/index.d.ts.map +1 -1
  151. package/dist/email/brevo/index.js +4 -4
  152. package/dist/email/brevo/index.js.map +1 -1
  153. package/dist/email/cloudflare/index.d.ts +0 -1
  154. package/dist/email/cloudflare/index.d.ts.map +1 -1
  155. package/dist/email/cloudflare/index.js +2 -2
  156. package/dist/email/cloudflare/index.js.map +1 -1
  157. package/dist/email/core/index.d.ts +15 -7
  158. package/dist/email/core/index.d.ts.map +1 -1
  159. package/dist/email/core/index.js +14 -5
  160. package/dist/email/core/index.js.map +1 -1
  161. package/dist/email/core/index.workerd.js +5 -1
  162. package/dist/email/core/index.workerd.js.map +1 -1
  163. package/dist/email/smtp/index.d.ts +8 -9
  164. package/dist/email/smtp/index.d.ts.map +1 -1
  165. package/dist/email/smtp/index.js +702 -479
  166. package/dist/email/smtp/index.js.map +1 -1
  167. package/dist/fake/index.d.ts +1580 -1238
  168. package/dist/fake/index.d.ts.map +1 -1
  169. package/dist/fake/index.js +11728 -32131
  170. package/dist/fake/index.js.map +1 -1
  171. package/dist/lock/core/index.d.ts +13 -9
  172. package/dist/lock/core/index.d.ts.map +1 -1
  173. package/dist/lock/core/index.js +5 -5
  174. package/dist/lock/core/index.js.map +1 -1
  175. package/dist/lock/redis/index.d.ts +0 -1
  176. package/dist/lock/redis/index.d.ts.map +1 -1
  177. package/dist/lock/redis/index.js.map +1 -1
  178. package/dist/logger/index.d.ts +81 -69
  179. package/dist/logger/index.d.ts.map +1 -1
  180. package/dist/logger/index.js +123 -56
  181. package/dist/logger/index.js.map +1 -1
  182. package/dist/mcp/index.d.ts +27 -90
  183. package/dist/mcp/index.d.ts.map +1 -1
  184. package/dist/mcp/index.js +42 -70
  185. package/dist/mcp/index.js.map +1 -1
  186. package/dist/orm/core/index.browser.js +54 -40
  187. package/dist/orm/core/index.browser.js.map +1 -1
  188. package/dist/orm/core/index.bun.js +140 -106
  189. package/dist/orm/core/index.bun.js.map +1 -1
  190. package/dist/orm/core/index.d.ts +145 -150
  191. package/dist/orm/core/index.d.ts.map +1 -1
  192. package/dist/orm/core/index.js +144 -109
  193. package/dist/orm/core/index.js.map +1 -1
  194. package/dist/orm/postgres/index.bun.js +64 -54
  195. package/dist/orm/postgres/index.bun.js.map +1 -1
  196. package/dist/orm/postgres/index.d.ts +36 -76
  197. package/dist/orm/postgres/index.d.ts.map +1 -1
  198. package/dist/orm/postgres/index.js +67 -57
  199. package/dist/orm/postgres/index.js.map +1 -1
  200. package/dist/queue/core/index.d.ts +62 -75
  201. package/dist/queue/core/index.d.ts.map +1 -1
  202. package/dist/queue/core/index.js +48 -71
  203. package/dist/queue/core/index.js.map +1 -1
  204. package/dist/queue/core/index.workerd.js +48 -71
  205. package/dist/queue/core/index.workerd.js.map +1 -1
  206. package/dist/queue/redis/index.d.ts +3 -4
  207. package/dist/queue/redis/index.d.ts.map +1 -1
  208. package/dist/queue/redis/index.js +2 -2
  209. package/dist/queue/redis/index.js.map +1 -1
  210. package/dist/react/auth/index.browser.js.map +1 -1
  211. package/dist/react/auth/index.d.ts +7 -4
  212. package/dist/react/auth/index.d.ts.map +1 -1
  213. package/dist/react/auth/index.js.map +1 -1
  214. package/dist/react/core/index.d.ts +87 -5
  215. package/dist/react/core/index.d.ts.map +1 -1
  216. package/dist/react/core/index.js +170 -23
  217. package/dist/react/core/index.js.map +1 -1
  218. package/dist/react/form/index.d.ts +4 -5
  219. package/dist/react/form/index.d.ts.map +1 -1
  220. package/dist/react/form/index.js +91 -56
  221. package/dist/react/form/index.js.map +1 -1
  222. package/dist/react/head/index.browser.js.map +1 -1
  223. package/dist/react/head/index.d.ts +0 -1
  224. package/dist/react/head/index.d.ts.map +1 -1
  225. package/dist/react/head/index.js.map +1 -1
  226. package/dist/react/i18n/index.d.ts +4 -5
  227. package/dist/react/i18n/index.d.ts.map +1 -1
  228. package/dist/react/i18n/index.js +2 -2
  229. package/dist/react/i18n/index.js.map +1 -1
  230. package/dist/react/intro/index.d.ts +1 -4
  231. package/dist/react/intro/index.d.ts.map +1 -1
  232. package/dist/react/intro/index.js.map +1 -1
  233. package/dist/react/router/index.browser.js +60 -24
  234. package/dist/react/router/index.browser.js.map +1 -1
  235. package/dist/react/router/index.d.ts +378 -377
  236. package/dist/react/router/index.d.ts.map +1 -1
  237. package/dist/react/router/index.js +77 -41
  238. package/dist/react/router/index.js.map +1 -1
  239. package/dist/react/sitemap/index.d.ts +0 -1
  240. package/dist/react/sitemap/index.d.ts.map +1 -1
  241. package/dist/react/sitemap/index.js.map +1 -1
  242. package/dist/react/testing/index.d.ts +4 -5
  243. package/dist/react/testing/index.d.ts.map +1 -1
  244. package/dist/react/testing/index.js +41 -15
  245. package/dist/react/testing/index.js.map +1 -1
  246. package/dist/react/testing/{chunk-BpyX8vjI.js → rolldown-runtime-Bl3dcgcQ.js} +1 -1
  247. package/dist/react/ui/index.d.ts +35 -34
  248. package/dist/react/ui/index.d.ts.map +1 -1
  249. package/dist/react/ui/index.js +12 -17
  250. package/dist/react/ui/index.js.map +1 -1
  251. package/dist/redis/index.bun.js +5 -5
  252. package/dist/redis/index.bun.js.map +1 -1
  253. package/dist/redis/index.d.ts +6 -7
  254. package/dist/redis/index.d.ts.map +1 -1
  255. package/dist/redis/index.js +6 -6
  256. package/dist/redis/index.js.map +1 -1
  257. package/dist/retry/index.d.ts +0 -1
  258. package/dist/retry/index.d.ts.map +1 -1
  259. package/dist/retry/index.js.map +1 -1
  260. package/dist/router/index.d.ts.map +1 -1
  261. package/dist/router/index.js.map +1 -1
  262. package/dist/scheduler/index.d.ts +4 -12
  263. package/dist/scheduler/index.d.ts.map +1 -1
  264. package/dist/scheduler/index.js +9 -4
  265. package/dist/scheduler/index.js.map +1 -1
  266. package/dist/scheduler/index.workerd.js +9 -4
  267. package/dist/scheduler/index.workerd.js.map +1 -1
  268. package/dist/security/index.browser.js +30 -28
  269. package/dist/security/index.browser.js.map +1 -1
  270. package/dist/security/index.d.ts +113 -44
  271. package/dist/security/index.d.ts.map +1 -1
  272. package/dist/security/index.js +452 -37
  273. package/dist/security/index.js.map +1 -1
  274. package/dist/server/auth/index.browser.js +19 -19
  275. package/dist/server/auth/index.browser.js.map +1 -1
  276. package/dist/server/auth/index.d.ts +198 -274
  277. package/dist/server/auth/index.d.ts.map +1 -1
  278. package/dist/server/auth/index.js +83 -621
  279. package/dist/server/auth/index.js.map +1 -1
  280. package/dist/server/cookies/index.browser.js +103 -5
  281. package/dist/server/cookies/index.browser.js.map +1 -1
  282. package/dist/server/cookies/index.d.ts +72 -5
  283. package/dist/server/cookies/index.d.ts.map +1 -1
  284. package/dist/server/cookies/index.js +103 -9
  285. package/dist/server/cookies/index.js.map +1 -1
  286. package/dist/server/core/index.browser.js +22 -27
  287. package/dist/server/core/index.browser.js.map +1 -1
  288. package/dist/server/core/index.d.ts +116 -85
  289. package/dist/server/core/index.d.ts.map +1 -1
  290. package/dist/server/core/index.js +105 -118
  291. package/dist/server/core/index.js.map +1 -1
  292. package/dist/server/cors/index.d.ts +9 -10
  293. package/dist/server/cors/index.d.ts.map +1 -1
  294. package/dist/server/cors/index.js +14 -26
  295. package/dist/server/cors/index.js.map +1 -1
  296. package/dist/server/etag/index.d.ts +2 -3
  297. package/dist/server/etag/index.d.ts.map +1 -1
  298. package/dist/server/etag/index.js.map +1 -1
  299. package/dist/server/health/index.d.ts +18 -19
  300. package/dist/server/health/index.d.ts.map +1 -1
  301. package/dist/server/health/index.js +6 -6
  302. package/dist/server/health/index.js.map +1 -1
  303. package/dist/server/links/index.browser.js +15 -18
  304. package/dist/server/links/index.browser.js.map +1 -1
  305. package/dist/server/links/index.d.ts +66 -67
  306. package/dist/server/links/index.d.ts.map +1 -1
  307. package/dist/server/links/index.js +29 -32
  308. package/dist/server/links/index.js.map +1 -1
  309. package/dist/server/metrics/index.d.ts +0 -1
  310. package/dist/server/metrics/index.d.ts.map +1 -1
  311. package/dist/server/metrics/index.js +10 -3
  312. package/dist/server/metrics/index.js.map +1 -1
  313. package/dist/server/proxy/index.d.ts +0 -1
  314. package/dist/server/proxy/index.d.ts.map +1 -1
  315. package/dist/server/proxy/index.js.map +1 -1
  316. package/dist/server/rate-limit/index.d.ts +8 -9
  317. package/dist/server/rate-limit/index.d.ts.map +1 -1
  318. package/dist/server/rate-limit/index.js +6 -12
  319. package/dist/server/rate-limit/index.js.map +1 -1
  320. package/dist/server/static/index.d.ts +0 -1
  321. package/dist/server/static/index.d.ts.map +1 -1
  322. package/dist/server/static/index.js.map +1 -1
  323. package/dist/server/swagger/index.d.ts +4 -4
  324. package/dist/server/swagger/index.d.ts.map +1 -1
  325. package/dist/server/swagger/index.js +37 -25
  326. package/dist/server/swagger/index.js.map +1 -1
  327. package/dist/sms/index.d.ts +0 -1
  328. package/dist/sms/index.d.ts.map +1 -1
  329. package/dist/sms/index.js.map +1 -1
  330. package/dist/system/index.browser.js.map +1 -1
  331. package/dist/system/index.d.ts +0 -1
  332. package/dist/system/index.d.ts.map +1 -1
  333. package/dist/system/index.js +2 -1
  334. package/dist/system/index.js.map +1 -1
  335. package/dist/system/index.workerd.js.map +1 -1
  336. package/dist/topic/core/index.d.ts +19 -20
  337. package/dist/topic/core/index.d.ts.map +1 -1
  338. package/dist/topic/core/index.js +8 -8
  339. package/dist/topic/core/index.js.map +1 -1
  340. package/dist/topic/redis/index.d.ts +3 -4
  341. package/dist/topic/redis/index.d.ts.map +1 -1
  342. package/dist/topic/redis/index.js +2 -2
  343. package/dist/topic/redis/index.js.map +1 -1
  344. package/package.json +22 -35
  345. package/src/api/audits/__tests__/AuditJobs.spec.ts +83 -0
  346. package/src/api/audits/__tests__/AuditService.spec.ts +139 -1
  347. package/src/api/audits/controllers/AdminAuditController.ts +41 -41
  348. package/src/api/audits/entities/audits.ts +22 -22
  349. package/src/api/audits/index.ts +6 -1
  350. package/src/api/audits/jobs/AuditJobs.ts +29 -0
  351. package/src/api/audits/parameters/AuditParameters.ts +51 -0
  352. package/src/api/audits/primitives/$audit.ts +24 -0
  353. package/src/api/audits/schemas/auditQuerySchema.ts +13 -13
  354. package/src/api/audits/schemas/createAuditSchema.ts +18 -18
  355. package/src/api/audits/services/AuditService.ts +79 -7
  356. package/src/api/files/__tests__/FileController.spec.ts +5 -5
  357. package/src/api/files/__tests__/FileJobs.spec.ts +6 -0
  358. package/src/api/files/controllers/FileController.ts +25 -25
  359. package/src/api/files/entities/files.ts +15 -15
  360. package/src/api/files/schemas/fileCreatorSummarySchema.ts +7 -7
  361. package/src/api/files/schemas/fileQuerySchema.ts +9 -9
  362. package/src/api/files/schemas/fileResourceSchema.ts +7 -9
  363. package/src/api/files/schemas/storageStatsSchema.ts +13 -13
  364. package/src/api/jobs/__tests__/$job-hardening.spec.ts +289 -0
  365. package/src/api/jobs/__tests__/$job.spec.ts +18 -18
  366. package/src/api/jobs/controllers/AdminJobController.ts +8 -8
  367. package/src/api/jobs/entities/jobExecutionEntity.ts +29 -19
  368. package/src/api/jobs/providers/JobProvider.ts +128 -12
  369. package/src/api/jobs/providers/JobQueueProvider.ts +2 -2
  370. package/src/api/jobs/schemas/jobConfigAtom.ts +22 -22
  371. package/src/api/jobs/schemas/jobExecutionQuerySchema.ts +6 -6
  372. package/src/api/jobs/schemas/jobExecutionResourceSchema.ts +11 -15
  373. package/src/api/jobs/schemas/jobRegistrationSchema.ts +20 -19
  374. package/src/api/jobs/schemas/triggerJobSchema.ts +3 -3
  375. package/src/api/jobs/services/JobService.ts +6 -6
  376. package/src/api/keys/__tests__/ApiKeyService.spec.ts +2 -2
  377. package/src/api/keys/controllers/AdminApiKeyController.ts +10 -10
  378. package/src/api/keys/entities/apiKeyEntity.ts +15 -15
  379. package/src/api/keys/schemas/adminApiKeyQuerySchema.ts +4 -4
  380. package/src/api/keys/schemas/adminApiKeyResourceSchema.ts +15 -15
  381. package/src/api/keys/schemas/createApiKeyBodySchema.ts +5 -5
  382. package/src/api/keys/schemas/createApiKeyResponseSchema.ts +9 -9
  383. package/src/api/keys/schemas/listApiKeyResponseSchema.ts +13 -13
  384. package/src/api/keys/schemas/revokeApiKeyParamsSchema.ts +3 -3
  385. package/src/api/keys/schemas/revokeApiKeyResponseSchema.ts +3 -3
  386. package/src/api/notifications/__tests__/AlephaApiNotifications.spec.ts +2 -2
  387. package/src/api/notifications/controllers/AdminNotificationController.ts +38 -14
  388. package/src/api/notifications/jobs/NotificationJobs.ts +7 -6
  389. package/src/api/notifications/primitives/$notification.ts +43 -4
  390. package/src/api/notifications/schemas/notificationContactPreferencesSchema.ts +4 -4
  391. package/src/api/notifications/schemas/notificationContactSchema.ts +7 -7
  392. package/src/api/notifications/schemas/notificationDetailResourceSchema.ts +9 -11
  393. package/src/api/notifications/schemas/notificationPayloadSchema.ts +11 -9
  394. package/src/api/notifications/schemas/notificationQuerySchema.ts +6 -6
  395. package/src/api/notifications/schemas/notificationResourceSchema.ts +14 -14
  396. package/src/api/notifications/services/NotificationSenderService.ts +38 -2
  397. package/src/api/oauth/__tests__/OAuthClientService.spec.ts +42 -0
  398. package/src/api/oauth/__tests__/OAuthController.spec.ts +128 -0
  399. package/src/api/oauth/controllers/OAuthController.ts +132 -12
  400. package/src/api/oauth/entities/oauthClientEntity.ts +29 -12
  401. package/src/api/oauth/helpers/oauthMetadata.ts +1 -0
  402. package/src/api/oauth/helpers/oidcMetadata.ts +19 -0
  403. package/src/api/oauth/index.ts +1 -0
  404. package/src/api/oauth/schemas/authorizeDecisionBodySchema.ts +12 -11
  405. package/src/api/oauth/schemas/authorizeQuerySchema.ts +12 -10
  406. package/src/api/oauth/schemas/registerClientBodySchema.ts +10 -11
  407. package/src/api/oauth/schemas/tokenRequestBodySchema.ts +9 -8
  408. package/src/api/oauth/services/OAuthClientService.ts +228 -15
  409. package/src/api/organizations/controllers/AdminOrganizationController.ts +8 -8
  410. package/src/api/organizations/entities/organizations.ts +6 -6
  411. package/src/api/organizations/schemas/createOrganizationSchema.ts +5 -5
  412. package/src/api/organizations/schemas/organizationQuerySchema.ts +4 -4
  413. package/src/api/organizations/schemas/updateOrganizationSchema.ts +1 -2
  414. package/src/api/parameters/__tests__/$parameter.spec.ts +229 -50
  415. package/src/api/parameters/controllers/AdminParameterController.ts +9 -12
  416. package/src/api/parameters/entities/parameters.ts +29 -16
  417. package/src/api/parameters/primitives/$parameter.ts +3 -3
  418. package/src/api/parameters/schemas/activateParameterBodySchema.ts +4 -4
  419. package/src/api/parameters/schemas/createParameterVersionBodySchema.ts +15 -15
  420. package/src/api/parameters/schemas/parameterCreatorSummarySchema.ts +7 -7
  421. package/src/api/parameters/schemas/parameterCurrentResponseSchema.ts +7 -7
  422. package/src/api/parameters/schemas/parameterHistoryResponseSchema.ts +3 -3
  423. package/src/api/parameters/schemas/parameterNameParamSchema.ts +2 -3
  424. package/src/api/parameters/schemas/parameterNamesResponseSchema.ts +3 -3
  425. package/src/api/parameters/schemas/parameterResponseSchema.ts +3 -3
  426. package/src/api/parameters/schemas/parameterStatusSchema.ts +2 -2
  427. package/src/api/parameters/schemas/parameterTreeNodeSchema.ts +6 -6
  428. package/src/api/parameters/schemas/parameterVersionParamSchema.ts +5 -6
  429. package/src/api/parameters/schemas/parameterVersionResponseSchema.ts +3 -3
  430. package/src/api/parameters/schemas/rollbackParameterBodySchema.ts +6 -9
  431. package/src/api/parameters/services/ParameterProvider.ts +152 -65
  432. package/src/api/payments/controllers/AdminPaymentController.ts +7 -7
  433. package/src/api/payments/controllers/MockCheckoutController.ts +79 -28
  434. package/src/api/payments/controllers/PaymentController.ts +4 -4
  435. package/src/api/payments/entities/paymentIntents.ts +11 -11
  436. package/src/api/payments/entities/paymentMethods.ts +11 -11
  437. package/src/api/payments/entities/refunds.ts +9 -9
  438. package/src/api/payments/providers/PaymentProvider.ts +18 -0
  439. package/src/api/payments/schemas/intentSchemas.ts +25 -25
  440. package/src/api/payments/schemas/paymentMethodSchemas.ts +3 -3
  441. package/src/api/payments/services/PaymentService.ts +60 -3
  442. package/src/api/subscriptions/__tests__/SubscriptionService.spec.ts +14 -0
  443. package/src/api/subscriptions/controllers/AdminSubscriptionController.ts +11 -11
  444. package/src/api/subscriptions/controllers/SubscriptionController.ts +5 -4
  445. package/src/api/subscriptions/entities/subscriptionEvents.ts +15 -15
  446. package/src/api/subscriptions/entities/subscriptions.ts +22 -22
  447. package/src/api/subscriptions/notifications/SubscriptionNotifications.ts +22 -22
  448. package/src/api/subscriptions/schemas/cancelSubscriptionSchema.ts +4 -4
  449. package/src/api/subscriptions/schemas/changePlanSchema.ts +5 -5
  450. package/src/api/subscriptions/schemas/createSubscriptionSchema.ts +14 -7
  451. package/src/api/subscriptions/schemas/entitlementsSchema.ts +10 -10
  452. package/src/api/subscriptions/schemas/mrrSchema.ts +9 -9
  453. package/src/api/subscriptions/schemas/planDefinitionSchema.ts +21 -21
  454. package/src/api/subscriptions/schemas/planResourceSchema.ts +19 -19
  455. package/src/api/subscriptions/schemas/subscriptionQuerySchema.ts +8 -8
  456. package/src/api/subscriptions/schemas/subscriptionSettingsSchema.ts +7 -7
  457. package/src/api/subscriptions/schemas/subscriptionStatsSchema.ts +17 -17
  458. package/src/api/subscriptions/services/SubscriptionConfig.ts +2 -2
  459. package/src/api/users/__tests__/ApiKeys-integration.spec.ts +11 -11
  460. package/src/api/users/atoms/realmAuthSettingsAtom.ts +111 -119
  461. package/src/api/users/controllers/AdminIdentityController.ts +29 -19
  462. package/src/api/users/controllers/AdminSessionController.ts +37 -27
  463. package/src/api/users/controllers/AdminUserController.ts +75 -53
  464. package/src/api/users/controllers/MySessionController.ts +125 -0
  465. package/src/api/users/controllers/RealmController.ts +9 -10
  466. package/src/api/users/controllers/UserController.ts +55 -55
  467. package/src/api/users/entities/identities.ts +8 -8
  468. package/src/api/users/entities/sessions.ts +17 -17
  469. package/src/api/users/entities/users.ts +17 -17
  470. package/src/api/users/index.ts +3 -0
  471. package/src/api/users/notifications/UserNotifications.ts +76 -24
  472. package/src/api/users/primitives/$realm.ts +12 -26
  473. package/src/api/users/providers/RealmProvider.ts +0 -15
  474. package/src/api/users/schemas/completePasswordResetRequestSchema.ts +8 -12
  475. package/src/api/users/schemas/completeRegistrationRequestSchema.ts +17 -20
  476. package/src/api/users/schemas/createUserSchema.ts +2 -2
  477. package/src/api/users/schemas/identityQuerySchema.ts +4 -4
  478. package/src/api/users/schemas/identityResourceSchema.ts +3 -2
  479. package/src/api/users/schemas/loginSchema.ts +4 -4
  480. package/src/api/users/schemas/passwordResetIntentResponseSchema.ts +6 -8
  481. package/src/api/users/schemas/realmConfigSchema.ts +10 -24
  482. package/src/api/users/schemas/registerQuerySchema.ts +6 -6
  483. package/src/api/users/schemas/registerRequestSchema.ts +21 -43
  484. package/src/api/users/schemas/registerResponseSchema.ts +2 -2
  485. package/src/api/users/schemas/registerSchema.ts +13 -31
  486. package/src/api/users/schemas/registrationIntentResponseSchema.ts +19 -23
  487. package/src/api/users/schemas/resetPasswordSchema.ts +10 -17
  488. package/src/api/users/schemas/sessionQuerySchema.ts +3 -3
  489. package/src/api/users/schemas/sessionResourceSchema.ts +25 -25
  490. package/src/api/users/schemas/updateUserSchema.ts +3 -4
  491. package/src/api/users/schemas/userQuerySchema.ts +7 -7
  492. package/src/api/users/services/RegistrationService.ts +25 -11
  493. package/src/api/users/services/UserService.ts +12 -6
  494. package/src/api/verifications/__tests__/CodeVerification.spec.ts +63 -101
  495. package/src/api/verifications/__tests__/LinkVerification.spec.ts +23 -92
  496. package/src/api/verifications/controllers/VerificationController.ts +13 -27
  497. package/src/api/verifications/entities/verifications.ts +13 -14
  498. package/src/api/verifications/schemas/requestVerificationCodeResponseSchema.ts +17 -14
  499. package/src/api/verifications/schemas/validateVerificationCodeResponseSchema.ts +9 -10
  500. package/src/api/verifications/schemas/verificationSettingsSchema.ts +65 -66
  501. package/src/api/verifications/schemas/verificationTypeEnumSchema.ts +2 -2
  502. package/src/api/verifications/services/VerificationService.ts +12 -0
  503. package/src/background/__tests__/BackgroundTaskProvider.spec.ts +36 -0
  504. package/src/batch/__tests__/$batch.spec.ts +22 -22
  505. package/src/batch/__tests__/startup-buffering.spec.ts +9 -9
  506. package/src/bin/index.ts +1 -1
  507. package/src/bucket/__tests__/TenantScopedBucket.spec.ts +60 -0
  508. package/src/bucket/providers/LocalFileStorageProvider.ts +14 -6
  509. package/src/bucket/providers/MemoryFileStorageProvider.ts +18 -7
  510. package/src/bucket/providers/R2FileStorageProvider.ts +14 -6
  511. package/src/bucket/providers/S3FileStorageProvider.ts +31 -15
  512. package/src/cache/core/primitives/$cache.ts +7 -10
  513. package/src/cache/database/entities/cacheEntries.ts +16 -27
  514. package/src/cache/database/providers/DatabaseCacheProvider.ts +15 -13
  515. package/src/cache/redis/providers/RedisCacheProvider.ts +6 -6
  516. package/src/captcha/providers/TurnstileCaptchaProvider.ts +4 -4
  517. package/src/cli/core/__tests__/BuildCloudflareTask.spec.ts +178 -0
  518. package/src/cli/core/__tests__/BuildDockerTask.spec.ts +0 -2
  519. package/src/cli/core/__tests__/DbCommand.spec.ts +108 -0
  520. package/src/cli/core/atoms/appEntryOptions.ts +5 -5
  521. package/src/cli/core/atoms/buildOptions.ts +76 -76
  522. package/src/cli/core/atoms/changelogOptions.ts +3 -3
  523. package/src/cli/core/atoms/devOptions.ts +3 -3
  524. package/src/cli/core/commands/build.ts +36 -39
  525. package/src/cli/core/commands/db.ts +171 -83
  526. package/src/cli/core/commands/dev.ts +8 -8
  527. package/src/cli/core/commands/gen/changelog.ts +12 -14
  528. package/src/cli/core/commands/gen/env.ts +6 -6
  529. package/src/cli/core/commands/gen/openapi.ts +6 -6
  530. package/src/cli/core/commands/init.ts +28 -33
  531. package/src/cli/core/commands/pack.ts +10 -10
  532. package/src/cli/core/commands/root.ts +7 -8
  533. package/src/cli/core/commands/test.ts +17 -20
  534. package/src/cli/core/tasks/BuildCloudflareTask.ts +103 -230
  535. package/src/cli/core/templates/apiHelloResponseSchemaTs.ts +4 -4
  536. package/src/cli/devtools/atoms/devtoolsOptions.ts +6 -6
  537. package/src/cli/i18n/atoms/i18nOptions.ts +8 -8
  538. package/src/cli/platform/commands/SecretsCommand.ts +24 -25
  539. package/src/cli/platform/commands/platform.ts +40 -46
  540. package/src/cli/platform/index.ts +1 -1
  541. package/src/cli/platform-lib/__tests__/CloudflareAdapter.spec.ts +0 -4
  542. package/src/cli/platform-lib/__tests__/PlatformInspector.spec.ts +10 -3
  543. package/src/cli/platform-lib/__tests__/VercelAdapter.spec.ts +0 -2
  544. package/src/cli/platform-lib/adapters/CloudflareAdapter.ts +13 -14
  545. package/src/cli/platform-lib/adapters/VercelAdapter.ts +6 -11
  546. package/src/cli/platform-lib/atoms/platformOptions.ts +46 -25
  547. package/src/cli/platform-lib/schemas/cloudflare.ts +87 -87
  548. package/src/cli/platform-lib/schemas/platform.ts +51 -51
  549. package/src/cli/platform-lib/schemas/vercel.ts +28 -28
  550. package/src/cli/platform-lib/services/CloudflareApi.ts +5 -5
  551. package/src/cli/platform-lib/services/VercelApi.ts +4 -4
  552. package/src/cli/platform-lib/services/VercelCli.ts +6 -15
  553. package/src/cli/platform-lib/services/WranglerApi.ts +6 -15
  554. package/src/cli/vendor/atoms/vendorOptions.ts +9 -9
  555. package/src/cli/vendor/commands/VendorCommand.ts +11 -12
  556. package/src/command/__tests__/$command.spec.ts +82 -83
  557. package/src/command/__tests__/Asker.spec.ts +6 -13
  558. package/src/command/__tests__/CliProvider.spec.ts +136 -149
  559. package/src/command/__tests__/Runner.spec.ts +86 -110
  560. package/src/command/helpers/Asker.ts +23 -58
  561. package/src/command/helpers/Runner.ts +34 -110
  562. package/src/command/index.ts +4 -9
  563. package/src/command/primitives/$command.ts +10 -10
  564. package/src/command/providers/CliProvider.ts +183 -161
  565. package/src/core/Alepha.ts +62 -13
  566. package/src/core/__tests__/$atom.spec.ts +52 -3
  567. package/src/core/__tests__/$computed.spec.ts +129 -0
  568. package/src/core/__tests__/$env.spec.ts +13 -13
  569. package/src/core/__tests__/$inject.spec.ts +4 -4
  570. package/src/core/__tests__/$module.spec.ts +1 -1
  571. package/src/core/__tests__/Alepha-graph.spec.ts +1 -1
  572. package/src/core/__tests__/Alepha-parseEnv.spec.ts +32 -32
  573. package/src/core/__tests__/Alepha-start.spec.ts +3 -3
  574. package/src/core/__tests__/CodecManager.spec.ts +113 -94
  575. package/src/core/__tests__/KeylessJsonSchemaCodec.spec.ts +138 -138
  576. package/src/core/__tests__/SchemaValidator.spec.ts +43 -44
  577. package/src/core/__tests__/StateManager.persist.browser.spec.ts +87 -0
  578. package/src/core/__tests__/StateManager.spec.ts +423 -0
  579. package/src/core/__tests__/TypeBox-usecases.spec.ts +8 -8
  580. package/src/core/__tests__/TypeProvider.spec.ts +314 -309
  581. package/src/core/__tests__/dump.spec.ts +6 -6
  582. package/src/core/__tests__/pagination.spec.ts +4 -4
  583. package/src/core/__tests__/scoped-after-start.spec.ts +43 -0
  584. package/src/core/errors/TypeBoxError.ts +10 -4
  585. package/src/core/helpers/FileLike.ts +5 -5
  586. package/src/core/helpers/coerceStrings.ts +70 -0
  587. package/src/core/helpers/jsonSchemaToZod.ts +112 -0
  588. package/src/core/index.shared.ts +4 -1
  589. package/src/core/primitives/$atom.ts +95 -27
  590. package/src/core/primitives/$computed.ts +148 -0
  591. package/src/core/primitives/$env.ts +5 -5
  592. package/src/core/primitives/$state.ts +1 -1
  593. package/src/core/providers/AlsProvider.ts +26 -0
  594. package/src/core/providers/CodecManager.ts +1 -2
  595. package/src/core/providers/JsonSchemaCodec.ts +1 -2
  596. package/src/core/providers/KeylessJsonSchemaCodec.ts +82 -57
  597. package/src/core/providers/SchemaValidator.ts +48 -158
  598. package/src/core/providers/StateManager.ts +383 -9
  599. package/src/core/providers/TypeProvider.ts +80 -734
  600. package/src/core/providers/ZodProvider.ts +380 -0
  601. package/src/core/providers/zodAugment.ts +69 -0
  602. package/src/core/schemas/pageQuerySchema.ts +19 -21
  603. package/src/core/schemas/pageSchema.ts +47 -57
  604. package/src/crypto/__tests__/SecretProvider.spec.ts +31 -0
  605. package/src/crypto/providers/SecretProvider.ts +16 -10
  606. package/src/datetime/primitives/$throttle.ts +6 -1
  607. package/src/email/brevo/providers/BrevoEmailProvider.ts +4 -4
  608. package/src/email/cloudflare/providers/CloudflareEmailProvider.ts +6 -6
  609. package/src/email/core/index.ts +7 -2
  610. package/src/email/core/primitives/$email.ts +5 -1
  611. package/src/email/core/providers/LocalEmailProvider.ts +5 -5
  612. package/src/email/smtp/providers/NodemailerEmailProvider.ts +41 -52
  613. package/src/fake/__tests__/FakeProvider.spec.ts +110 -110
  614. package/src/fake/__tests__/keyName.example.ts +21 -21
  615. package/src/fake/__tests__/keyName.spec.ts +41 -41
  616. package/src/fake/__tests__/module.example.ts +8 -8
  617. package/src/fake/providers/FakeProvider.ts +122 -121
  618. package/src/lock/core/__tests__/lock-mutual-exclusion.spec.ts +44 -0
  619. package/src/lock/core/index.ts +1 -0
  620. package/src/lock/core/primitives/$lock.ts +13 -6
  621. package/src/logger/__tests__/CliFormatterProvider.spec.ts +76 -0
  622. package/src/logger/__tests__/Logger.spec.ts +49 -0
  623. package/src/logger/index.ts +25 -18
  624. package/src/logger/providers/CliFormatterProvider.ts +75 -0
  625. package/src/logger/schemas/logEntrySchema.ts +10 -10
  626. package/src/logger/services/Logger.ts +18 -0
  627. package/src/mcp/__tests__/$prompt.spec.ts +21 -23
  628. package/src/mcp/__tests__/$tool.spec.ts +22 -22
  629. package/src/mcp/__tests__/McpServerProvider.spec.ts +11 -11
  630. package/src/mcp/__tests__/StreamableHttpMcpTransport.spec.ts +2 -2
  631. package/src/mcp/__tests__/integration.spec.ts +33 -33
  632. package/src/mcp/primitives/$prompt.ts +11 -9
  633. package/src/mcp/primitives/$tool.ts +27 -86
  634. package/src/mcp/transports/StreamableHttpMcpTransport.ts +7 -7
  635. package/src/orm/__tests__/$repository-tests.ts +133 -27
  636. package/src/orm/__tests__/$repository.spec.ts +23 -0
  637. package/src/orm/__tests__/$transactional-tests.ts +4 -4
  638. package/src/orm/__tests__/ModelBuilder-tests.ts +28 -28
  639. package/src/orm/__tests__/ModelBuilder.spec.ts +124 -106
  640. package/src/orm/__tests__/QueryManager.spec.ts +5 -5
  641. package/src/orm/__tests__/delete-returning-tests.ts +11 -11
  642. package/src/orm/__tests__/deletedAt-tests.ts +3 -3
  643. package/src/orm/__tests__/enums.spec.ts +29 -25
  644. package/src/orm/__tests__/execute-tests.ts +8 -8
  645. package/src/orm/__tests__/fixtures/bigEntitySchema.ts +48 -48
  646. package/src/orm/__tests__/fixtures/userEntitySchema.ts +6 -6
  647. package/src/orm/__tests__/joins-tests.ts +30 -30
  648. package/src/orm/__tests__/organization-tests.ts +105 -3
  649. package/src/orm/__tests__/organization.spec.ts +46 -0
  650. package/src/orm/__tests__/orm-errors.spec.ts +10 -10
  651. package/src/orm/__tests__/orm-next-tests.ts +29 -29
  652. package/src/orm/__tests__/orm-showcase-tests.ts +9 -9
  653. package/src/orm/__tests__/primaryKey.spec.ts +4 -4
  654. package/src/orm/__tests__/query-date-encoding-tests.ts +17 -17
  655. package/src/orm/__tests__/ref-auto-onDelete.spec.ts +14 -14
  656. package/src/orm/__tests__/references.spec.ts +7 -7
  657. package/src/orm/__tests__/security.spec.ts +17 -17
  658. package/src/orm/__tests__/string-operators-tests.ts +5 -5
  659. package/src/orm/__tests__/timestamps-tests.ts +14 -14
  660. package/src/orm/__tests__/validation-tests.ts +5 -5
  661. package/src/orm/core/__tests__/BunSqliteProvider.bun.spec.ts +8 -8
  662. package/src/orm/core/constants/PG_SYMBOLS.ts +13 -1
  663. package/src/orm/core/entities/alephaSequences.ts +8 -8
  664. package/src/orm/core/helpers/pgAttr.ts +4 -4
  665. package/src/orm/core/primitives/$entity.ts +10 -6
  666. package/src/orm/core/providers/DatabaseTypeProvider.ts +46 -53
  667. package/src/orm/core/providers/drivers/BunSqliteProvider.ts +8 -8
  668. package/src/orm/core/providers/drivers/CloudflareD1Provider.ts +3 -5
  669. package/src/orm/core/providers/drivers/NodeSqliteProvider.ts +8 -8
  670. package/src/orm/core/schemas/databaseEnvSchema.ts +4 -4
  671. package/src/orm/core/schemas/insertSchema.ts +14 -18
  672. package/src/orm/core/schemas/legacyIdSchema.ts +2 -2
  673. package/src/orm/core/schemas/updateSchema.ts +10 -16
  674. package/src/orm/core/services/PgRelationManager.ts +2 -2
  675. package/src/orm/core/services/QueryManager.ts +13 -2
  676. package/src/orm/core/services/Repository.ts +88 -33
  677. package/src/orm/core/services/SqliteModelBuilder.ts +38 -45
  678. package/src/orm/postgres/__tests__/BunPostgresProvider.bun.spec.ts +4 -4
  679. package/src/orm/postgres/providers/CloudflareHyperdriveProvider.ts +4 -6
  680. package/src/orm/postgres/schemas/postgresEnvSchema.ts +6 -6
  681. package/src/orm/postgres/services/PostgresModelBuilder.ts +127 -114
  682. package/src/queue/core/__tests__/$consumer.spec.ts +4 -4
  683. package/src/queue/core/__tests__/WorkerProvider.spec.ts +4 -4
  684. package/src/queue/core/__tests__/shared.ts +6 -6
  685. package/src/queue/core/primitives/$consumer.ts +5 -5
  686. package/src/queue/core/primitives/$queue.ts +44 -61
  687. package/src/queue/core/providers/CloudflareQueueProvider.ts +6 -0
  688. package/src/queue/core/providers/WorkerProvider.ts +17 -14
  689. package/src/queue/redis/providers/RedisQueueProvider.ts +3 -3
  690. package/src/react/core/__tests__/ErrorBoundary.browser.spec.tsx +92 -0
  691. package/src/react/core/__tests__/Router.spec.tsx +4 -4
  692. package/src/react/core/__tests__/useComputed.browser.spec.tsx +192 -0
  693. package/src/react/core/__tests__/useQuery.browser.spec.tsx +48 -0
  694. package/src/react/core/__tests__/useSelector.browser.spec.tsx +105 -0
  695. package/src/react/core/__tests__/useStore.browser.spec.tsx +113 -0
  696. package/src/react/core/components/ErrorBoundary.tsx +42 -0
  697. package/src/react/core/hooks/useAction.ts +56 -19
  698. package/src/react/core/hooks/useComputed.ts +91 -0
  699. package/src/react/core/hooks/useSelector.ts +67 -0
  700. package/src/react/core/hooks/useStore.ts +36 -17
  701. package/src/react/core/index.ts +3 -0
  702. package/src/react/core/utils/shallowEqual.ts +36 -0
  703. package/src/react/form/__tests__/FormModel-submit-loading.spec.ts +2 -2
  704. package/src/react/form/__tests__/form-submitting-reactive.browser.spec.tsx +5 -5
  705. package/src/react/form/__tests__/useForm.browser.spec.tsx +54 -54
  706. package/src/react/form/errors/FormValidationError.ts +0 -2
  707. package/src/react/form/hooks/useForm.ts +19 -4
  708. package/src/react/form/hooks/useFormQuerySync.ts +0 -0
  709. package/src/react/form/services/FormModel.ts +67 -47
  710. package/src/react/form/services/parseField.ts +66 -27
  711. package/src/react/i18n/__tests__/Localize.spec.tsx +1 -1
  712. package/src/react/i18n/providers/I18nProvider.ts +2 -2
  713. package/src/react/router/__tests__/$page.browser.spec.tsx +19 -19
  714. package/src/react/router/__tests__/$page.spec.tsx +21 -21
  715. package/src/react/router/__tests__/ReactBrowserProvider.browser.spec.ts +87 -1
  716. package/src/react/router/atoms/ssrManifestAtom.ts +16 -16
  717. package/src/react/router/components/NestedView.tsx +11 -3
  718. package/src/react/router/hooks/useQueryParams.ts +1 -1
  719. package/src/react/router/primitives/$page.ts +2 -2
  720. package/src/react/router/providers/ReactBrowserProvider.ts +64 -13
  721. package/src/react/router/providers/ReactPageProvider.ts +26 -12
  722. package/src/react/router/providers/ReactServerProvider.ts +13 -15
  723. package/src/react/sitemap/__tests__/$sitemap.spec.ts +2 -2
  724. package/src/react/ui/atoms/uiAtom.ts +6 -6
  725. package/src/react/ui/atoms/uiThemeListAtom.ts +7 -7
  726. package/src/react/ui/hooks/useColorMode.ts +11 -4
  727. package/src/react/ui/services/SchemaControl.ts +4 -4
  728. package/src/redis/providers/BunRedisProvider.ts +19 -11
  729. package/src/redis/providers/NodeRedisProvider.ts +3 -3
  730. package/src/scheduler/primitives/$scheduler.ts +21 -8
  731. package/src/security/__tests__/assertRealmScope.spec.ts +29 -0
  732. package/src/security/atoms/currentTenantAtom.ts +6 -6
  733. package/src/security/atoms/currentUserAtom.ts +2 -2
  734. package/src/security/primitives/$issuer.ts +24 -2
  735. package/src/security/providers/JwtProvider.ts +100 -0
  736. package/src/security/providers/SecurityProvider.ts +43 -2
  737. package/src/security/schemas/permissionSchema.ts +19 -19
  738. package/src/security/schemas/roleSchema.ts +22 -28
  739. package/src/security/schemas/userAccountInfoSchema.ts +47 -37
  740. package/src/server/auth/index.ts +0 -3
  741. package/src/server/auth/primitives/$auth.ts +6 -6
  742. package/src/server/auth/primitives/$authApple.ts +10 -10
  743. package/src/server/auth/primitives/$authFacebook.ts +10 -10
  744. package/src/server/auth/primitives/$authFranceConnect.ts +10 -10
  745. package/src/server/auth/primitives/$authGithub.ts +10 -10
  746. package/src/server/auth/primitives/$authGoogle.ts +10 -10
  747. package/src/server/auth/primitives/$authMicrosoft.ts +14 -14
  748. package/src/server/auth/providers/ServerAuthProvider.ts +49 -48
  749. package/src/server/auth/schemas/authenticationProviderSchema.ts +9 -12
  750. package/src/server/auth/schemas/tokenResponseSchema.ts +2 -2
  751. package/src/server/auth/schemas/tokensSchema.ts +16 -16
  752. package/src/server/auth/schemas/userinfoResponseSchema.ts +3 -3
  753. package/src/server/cookies/__tests__/AtomCookieBinding.spec.ts +80 -0
  754. package/src/server/cookies/__tests__/AtomCookiePersistence.browser.spec.ts +169 -0
  755. package/src/server/cookies/__tests__/AtomCookiePersistence.spec.ts +294 -0
  756. package/src/server/cookies/__tests__/ServerCookiesProvider.spec.ts +14 -14
  757. package/src/server/cookies/index.browser.ts +4 -1
  758. package/src/server/cookies/index.ts +8 -1
  759. package/src/server/cookies/primitives/$cookie.browser.ts +1 -1
  760. package/src/server/cookies/primitives/$cookie.ts +16 -0
  761. package/src/server/cookies/providers/AtomCookiePersistence.browser.ts +133 -0
  762. package/src/server/cookies/providers/AtomCookiePersistence.ts +148 -0
  763. package/src/server/cookies/providers/ServerCookiesProvider.ts +13 -5
  764. package/src/server/cookies/services/CookieParser.ts +6 -1
  765. package/src/server/core/__tests__/$action.spec.ts +13 -13
  766. package/src/server/core/__tests__/$middleware.spec.ts +10 -10
  767. package/src/server/core/__tests__/$route.spec.ts +9 -9
  768. package/src/server/core/__tests__/$sse.spec.ts +26 -26
  769. package/src/server/core/__tests__/BunHttpServerProvider.bun.spec.ts +6 -6
  770. package/src/server/core/__tests__/HttpClient.spec.ts +2 -2
  771. package/src/server/core/__tests__/NodeHttpServerProvider.spec.ts +15 -3
  772. package/src/server/core/__tests__/ServerBodyParserProvider.spec.ts +14 -14
  773. package/src/server/core/__tests__/ServerMultipartProvider.spec.ts +33 -33
  774. package/src/server/core/__tests__/ServerRouterProvider-errorHandler.spec.ts +5 -1
  775. package/src/server/core/__tests__/ServerRouterProvider-getRoutes.spec.ts +25 -25
  776. package/src/server/core/__tests__/ServerRouterProvider-serializationError.spec.ts +9 -5
  777. package/src/server/core/__tests__/ServerRouterProvider-validationError.spec.ts +56 -24
  778. package/src/server/core/errors/ValidationError.ts +6 -3
  779. package/src/server/core/helpers/isMultipart.ts +2 -1
  780. package/src/server/core/index.ts +5 -2
  781. package/src/server/core/interfaces/ServerRequest.ts +6 -14
  782. package/src/server/core/primitives/$action.ts +26 -36
  783. package/src/server/core/primitives/$sse.ts +3 -3
  784. package/src/server/core/providers/BunHttpServerProvider.ts +8 -9
  785. package/src/server/core/providers/NodeHttpServerProvider.ts +8 -9
  786. package/src/server/core/providers/ServerBodyParserProvider.ts +20 -12
  787. package/src/server/core/providers/ServerCompressProvider.ts +9 -10
  788. package/src/server/core/providers/ServerHelmetProvider.ts +26 -27
  789. package/src/server/core/providers/ServerMultipartProvider.ts +19 -19
  790. package/src/server/core/providers/ServerRouterProvider.ts +44 -15
  791. package/src/server/core/schemas/errorSchema.ts +20 -25
  792. package/src/server/core/schemas/okSchema.ts +9 -14
  793. package/src/server/core/services/HttpClient.ts +13 -1
  794. package/src/server/core/services/ServerRequestParser.ts +6 -6
  795. package/src/server/cors/providers/ServerCorsProvider.ts +26 -28
  796. package/src/server/health/schemas/healthSchema.ts +6 -6
  797. package/src/server/links/__tests__/$remote.spec.ts +3 -3
  798. package/src/server/links/__tests__/BatchEndpoint.spec.ts +9 -9
  799. package/src/server/links/__tests__/LinkProvider.spec.ts +9 -9
  800. package/src/server/links/__tests__/ServerLinksProvider.spec.ts +23 -23
  801. package/src/server/links/__tests__/fixtures/CrudApp.ts +21 -21
  802. package/src/server/links/atoms/apiLinksAtom.ts +2 -2
  803. package/src/server/links/atoms/linkOptionsAtom.ts +6 -6
  804. package/src/server/links/primitives/$remote.ts +3 -3
  805. package/src/server/links/providers/LinkProvider.ts +3 -3
  806. package/src/server/links/providers/ServerLinksProvider.ts +20 -20
  807. package/src/server/links/schemas/apiLinksResponseSchema.ts +23 -23
  808. package/src/server/proxy/__tests__/$proxy.spec.ts +9 -9
  809. package/src/server/proxy/providers/ServerProxyProvider.ts +5 -0
  810. package/src/server/rate-limit/providers/ServerRateLimitProvider.ts +18 -20
  811. package/src/server/swagger/__tests__/$swagger.spec.ts +91 -94
  812. package/src/server/swagger/__tests__/ui.spec.ts +3 -3
  813. package/src/server/swagger/providers/ServerSwaggerProvider.ts +66 -43
  814. package/src/system/__tests__/NodeShellProvider.spec.ts +46 -0
  815. package/src/system/providers/NodeShellProvider.ts +4 -1
  816. package/src/topic/core/__tests__/$subscriber.spec.ts +4 -4
  817. package/src/topic/core/__tests__/shared.ts +8 -8
  818. package/src/topic/core/primitives/$subscriber.ts +5 -5
  819. package/src/topic/core/primitives/$topic.ts +14 -14
  820. package/src/topic/redis/providers/RedisTopicProvider.ts +3 -3
  821. package/dist/container/core/index.d.ts +0 -236
  822. package/dist/container/core/index.d.ts.map +0 -1
  823. package/dist/container/core/index.js +0 -231
  824. package/dist/container/core/index.js.map +0 -1
  825. package/dist/container/core/index.workerd.js +0 -192
  826. package/dist/container/core/index.workerd.js.map +0 -1
  827. package/src/command/helpers/PrettyAsker.ts +0 -256
  828. package/src/command/helpers/PrettyPrint.ts +0 -332
  829. package/src/container/core/__tests__/$container.spec.ts +0 -83
  830. package/src/container/core/index.ts +0 -50
  831. package/src/container/core/index.workerd.ts +0 -53
  832. package/src/container/core/interfaces/ContainerOptions.ts +0 -69
  833. package/src/container/core/primitives/$container.ts +0 -100
  834. package/src/container/core/providers/CloudflareContainerProvider.ts +0 -70
  835. package/src/container/core/providers/ContainerProvider.ts +0 -92
  836. package/src/container/core/providers/MockContainerProvider.ts +0 -62
  837. package/src/container/core/providers/NodeContainerProvider.ts +0 -53
  838. package/src/core/__tests__/jsonSchemaToTypeBox.spec.ts +0 -771
  839. package/src/core/helpers/jsonSchemaToTypeBox.ts +0 -359
  840. package/src/server/auth/__tests__/authFederationClient.spec.ts +0 -40
  841. package/src/server/auth/__tests__/federationAssertion.spec.ts +0 -146
  842. package/src/server/auth/helpers/federationAssertion.ts +0 -74
  843. package/src/server/auth/primitives/$authFederationBroker.ts +0 -273
  844. package/src/server/auth/primitives/$authFederationClient.ts +0 -89
  845. /package/dist/orm/core/{chunk-B4FMCO8f.js → rolldown-runtime-B4FMCO8f.js} +0 -0
@@ -8,7 +8,7 @@ import {
8
8
  type Static,
9
9
  type TObject,
10
10
  type TSchema,
11
- t,
11
+ z,
12
12
  } from "alepha";
13
13
  import type { AskMethod } from "../helpers/Asker.ts";
14
14
  import type { RunnerMethod } from "../helpers/Runner.ts";
@@ -74,9 +74,9 @@ export interface CommandPrimitiveOptions<
74
74
  * @example
75
75
  * ```ts
76
76
  * $command({
77
- * env: t.object({
78
- * VERCEL_TOKEN: t.text({ description: "Vercel API token" }),
79
- * VERCEL_ORG_ID: t.optional(t.text({ description: "Organization ID" })),
77
+ * env: z.object({
78
+ * VERCEL_TOKEN: z.text({ description: "Vercel API token" }),
79
+ * VERCEL_ORG_ID: z.text({ description: "Organization ID" }).optional(),
80
80
  * }),
81
81
  * handler: async ({ env }) => {
82
82
  * // env.VERCEL_TOKEN is typed & guaranteed to exist
@@ -91,16 +91,16 @@ export interface CommandPrimitiveOptions<
91
91
  * An optional TypeBox schema defining the arguments for the command.
92
92
  *
93
93
  * @example
94
- * args: t.text()
94
+ * args: z.text()
95
95
  * my-cli command <arg1: string>
96
96
  *
97
- * args: t.optional(t.text())
97
+ * args: z.text().optional()
98
98
  * my-cli command [arg1: string]
99
99
  *
100
- * args: t.tuple([t.text(), t.number()])
100
+ * args: z.tuple([z.text(), z.number()])
101
101
  * my-cli command <arg1: string> <arg2: number>
102
102
  *
103
- * args: t.tuple([t.text(), t.optional(t.number())])
103
+ * args: z.tuple([z.text(), z.number().optional()])
104
104
  * my-cli command <arg1: string> [arg2: number]
105
105
  */
106
106
  args?: A;
@@ -254,8 +254,8 @@ export class CommandPrimitive<
254
254
  A extends TSchema = TSchema,
255
255
  E extends TObject = TObject,
256
256
  > extends Primitive<CommandPrimitiveOptions<T, A, E>> {
257
- public readonly flags = this.options.flags ?? t.object({});
258
- public readonly env = this.options.env ?? t.object({});
257
+ public readonly flags = this.options.flags ?? z.object({});
258
+ public readonly env = this.options.env ?? z.object({});
259
259
  public readonly aliases = this.options.aliases ?? [];
260
260
 
261
261
  protected onInit() {
@@ -12,7 +12,7 @@ import {
12
12
  type TSchema,
13
13
  type TUnion,
14
14
  TypeBoxError,
15
- t,
15
+ z,
16
16
  } from "alepha";
17
17
  import { $logger, ConsoleColorProvider } from "alepha/logger";
18
18
  import { CommandError } from "../errors/CommandError.ts";
@@ -27,12 +27,12 @@ import {
27
27
 
28
28
  // ---------------------------------------------------------------------------------------------------------------------
29
29
 
30
- const envSchema = t.object({
31
- CLI_NAME: t.text({
30
+ const envSchema = z.object({
31
+ CLI_NAME: z.text({
32
32
  default: "cli",
33
33
  description: "Name of the CLI application.",
34
34
  }),
35
- CLI_DESCRIPTION: t.text({
35
+ CLI_DESCRIPTION: z.text({
36
36
  default: "",
37
37
  description: "Description of the CLI application.",
38
38
  }),
@@ -47,22 +47,16 @@ declare module "alepha" {
47
47
  */
48
48
  export const cliOptions = $atom({
49
49
  name: "alepha.command.cli.options",
50
- schema: t.object({
51
- name: t.optional(
52
- t.string({
53
- description: "Name of the CLI application.",
54
- }),
55
- ),
56
- description: t.optional(
57
- t.string({
58
- description: "Description of the CLI application.",
59
- }),
60
- ),
61
- argv: t.optional(
62
- t.array(t.string(), {
63
- description: "Command line arguments to parse.",
64
- }),
65
- ),
50
+ schema: z.object({
51
+ name: z.string().describe("Name of the CLI application.").optional(),
52
+ description: z
53
+ .string()
54
+ .describe("Description of the CLI application.")
55
+ .optional(),
56
+ argv: z
57
+ .array(z.string())
58
+ .describe("Command line arguments to parse.")
59
+ .optional(),
66
60
  }),
67
61
  default: {},
68
62
  });
@@ -94,7 +88,7 @@ declare module "alepha" {
94
88
  * build = $command({
95
89
  * name: "build",
96
90
  * description: "Build the project",
97
- * flags: t.object({ watch: t.optional(t.boolean()) }),
91
+ * flags: z.object({ watch: z.boolean().optional() }),
98
92
  * handler: async ({ flags }) => { ... }
99
93
  * });
100
94
  * }
@@ -143,14 +137,14 @@ export class CliProvider {
143
137
  help: {
144
138
  aliases: ["h", "help"],
145
139
  description: "Show this help message",
146
- schema: t.boolean(),
140
+ schema: z.boolean(),
147
141
  },
148
142
  verbose: {
149
143
  // No `-v` alias — it collides with `--version` on the root command.
150
144
  aliases: ["verbose"],
151
145
  description:
152
- "Verbose output: debug logs in plain pretty format (turns off the dynamic CLI UI).",
153
- schema: t.boolean(),
146
+ "Verbose output: trace-level logs (framework internals) in pretty format. Task output already streams by default.",
147
+ schema: z.boolean(),
154
148
  },
155
149
  };
156
150
 
@@ -182,11 +176,17 @@ export class CliProvider {
182
176
  { strict: false }, // Don't throw for command-specific flags
183
177
  );
184
178
 
185
- // `--verbose` → flip the logger to debug + plain pretty output via
186
- // state (read live by Logger + Runner). Set before the command runs
187
- // so its output and task UI honor it.
188
- if (globalFlags.verbose) {
189
- this.alepha.store.set("alepha.logger.level", "debug");
179
+ // `--verbose` → raise the logger to trace + pretty format via state
180
+ // (read live by Logger). Task output already streams to the terminal;
181
+ // this additionally surfaces the framework's own trace/debug logs.
182
+ //
183
+ // An agent session (Claude Code sets CLAUDECODE) implies verbose: the
184
+ // compact `cli` format is tuned for a human watching a terminal, but an
185
+ // agent benefits from the full module/context and internal logs — same
186
+ // as if `--verbose` were passed.
187
+ const verbose = globalFlags.verbose || !!this.alepha.env.CLAUDECODE;
188
+ if (verbose) {
189
+ this.alepha.store.set("alepha.logger.level", "trace");
190
190
  this.alepha.store.set("alepha.logger.format", "pretty");
191
191
  }
192
192
 
@@ -532,6 +532,42 @@ export class CliProvider {
532
532
  return { ...this.globalFlags };
533
533
  }
534
534
 
535
+ /**
536
+ * Read a schema's metadata (`title`, `description`, `aliases`, `alias`, …).
537
+ *
538
+ * Under zod these options live on the schema's `.meta()` registry rather than
539
+ * as direct properties (typebox), and they sit on the INNER schema — so any
540
+ * optional / nullable / default wrappers are peeled first.
541
+ */
542
+ protected schemaMeta(schema: TSchema | undefined): Record<string, any> {
543
+ if (!schema) return {};
544
+ const base = z.schema.unwrap(schema) as any;
545
+ return (typeof base?.meta === "function" ? base.meta() : undefined) ?? {};
546
+ }
547
+
548
+ /**
549
+ * Build flag definitions (key, aliases, description, schema) from a flags
550
+ * object schema. Centralises the metadata reading so every call-site (parsing,
551
+ * arg-splitting, help) extracts aliases/descriptions the same way.
552
+ */
553
+ protected extractFlagDefs(schema: TObject): Array<{
554
+ key: string;
555
+ aliases: string[];
556
+ description?: string;
557
+ schema: TSchema;
558
+ }> {
559
+ return Object.entries(schema.properties).map(([key, value]) => {
560
+ const meta = this.schemaMeta(value as TSchema);
561
+ const extra: string[] = meta.aliases ?? (meta.alias ? [meta.alias] : []);
562
+ return {
563
+ key,
564
+ aliases: [key, ...extra],
565
+ description: meta.description,
566
+ schema: value as TSchema,
567
+ };
568
+ });
569
+ }
570
+
535
571
  // ─────────────────────────────────────────────────────────────────────────────
536
572
  // Parsing (Flags, Args, Env)
537
573
  // ─────────────────────────────────────────────────────────────────────────────
@@ -545,17 +581,7 @@ export class CliProvider {
545
581
  options: { modeEnabled?: boolean } = {},
546
582
  ): Record<string, any> {
547
583
  const { modeEnabled = false } = options;
548
- const flagDefs = Object.entries(schema.properties).map(([key, value]) => ({
549
- key,
550
- aliases: [
551
- key,
552
- ...((value as any).aliases ??
553
- ((value as any).alias ? [(value as any).alias] : undefined) ??
554
- []),
555
- ],
556
- description: (value as any).description,
557
- schema: value,
558
- }));
584
+ const flagDefs = this.extractFlagDefs(schema);
559
585
 
560
586
  // Add mode flags if mode is enabled (they're parsed elsewhere by parseModeFlag)
561
587
  if (modeEnabled) {
@@ -563,7 +589,7 @@ export class CliProvider {
563
589
  key: "__mode__",
564
590
  aliases: ["mode", "m"],
565
591
  description: undefined,
566
- schema: t.string(),
592
+ schema: z.string(),
567
593
  });
568
594
  }
569
595
 
@@ -591,11 +617,13 @@ export class CliProvider {
591
617
  }
592
618
 
593
619
  // apply manually defaults for optional properties that have defaults
594
- for (const [key, value] of Object.entries(schema.properties)) {
595
- if (!(key in parsed) && t.schema.isOptional(value)) {
596
- const innerSchema = value;
597
- if (innerSchema && "default" in innerSchema) {
598
- parsed[key] = innerSchema.default;
620
+ for (const [key, value] of Object.entries(
621
+ schema.properties as Record<string, TSchema>,
622
+ )) {
623
+ if (!(key in parsed)) {
624
+ const def = z.schema.getDefault(value);
625
+ if (def !== undefined) {
626
+ parsed[key] = def;
599
627
  }
600
628
  }
601
629
  }
@@ -622,17 +650,22 @@ export class CliProvider {
622
650
  const result: Record<string, any> = {};
623
651
  const missing: string[] = [];
624
652
 
625
- for (const [key, propSchema] of Object.entries(schema.properties)) {
653
+ for (const [key, propSchema] of Object.entries(
654
+ schema.properties as Record<string, TSchema>,
655
+ )) {
626
656
  const value = process.env[key];
627
657
 
628
658
  if (value !== undefined) {
629
659
  result[key] = value;
630
- } else if ("default" in propSchema) {
631
- result[key] = propSchema.default;
632
- } else if (t.schema.isOptional(propSchema)) {
633
- // Optional with no default — leave undefined
634
660
  } else {
635
- missing.push(key);
661
+ const def = z.schema.getDefault(propSchema);
662
+ if (def !== undefined) {
663
+ result[key] = def;
664
+ } else if (z.schema.isOptional(propSchema)) {
665
+ // Optional with no default — leave undefined
666
+ } else {
667
+ missing.push(key);
668
+ }
636
669
  }
637
670
  }
638
671
 
@@ -711,7 +744,7 @@ export class CliProvider {
711
744
  if (!arg.startsWith("-")) continue;
712
745
 
713
746
  const [rawKey, ...valueParts] = arg.replace(/^-{1,2}/, "").split("=");
714
- let value = valueParts.join("=");
747
+ const value = valueParts.join("=");
715
748
 
716
749
  const def = flagDefs.find((d) => d.aliases.includes(rawKey));
717
750
  if (!def) {
@@ -721,12 +754,16 @@ export class CliProvider {
721
754
  continue;
722
755
  }
723
756
 
757
+ // Resolve the underlying schema (peel optional/nullable/default) so flags
758
+ // like `z.boolean().optional()` are still recognised as booleans.
759
+ const base = z.schema.unwrap(def.schema);
760
+
724
761
  // Check if schema is a union containing boolean (allows flag without value)
725
762
  const isUnionWithBoolean =
726
- t.schema.isUnion(def.schema) &&
727
- (def.schema as TUnion).anyOf.some((s) => t.schema.isBoolean(s));
763
+ z.schema.isUnion(base) &&
764
+ (base as TUnion).anyOf.some((s) => z.schema.isBoolean(s));
728
765
 
729
- if (t.schema.isBoolean(def.schema)) {
766
+ if (z.schema.isBoolean(base)) {
730
767
  result[def.key] = true;
731
768
  } else if (isUnionWithBoolean && !value) {
732
769
  // Union with boolean: --flag without value → true
@@ -741,29 +778,12 @@ export class CliProvider {
741
778
  }
742
779
  } else if (value) {
743
780
  // Value provided via --flag=value syntax
744
- try {
745
- if (t.schema.isObject(def.schema) || t.schema.isArray(def.schema)) {
746
- result[def.key] = JSON.parse(value);
747
- } else {
748
- result[def.key] = value;
749
- }
750
- } catch {
751
- throw new CommandError(`Invalid JSON value for flag --${rawKey}`);
752
- }
781
+ result[def.key] = this.castFlagValue(value, base, rawKey);
753
782
  } else {
754
783
  // Check for space-separated value: --flag value
755
784
  const nextArg = argv[i + 1];
756
785
  if (nextArg && !nextArg.startsWith("-")) {
757
- value = nextArg;
758
- try {
759
- if (t.schema.isObject(def.schema) || t.schema.isArray(def.schema)) {
760
- result[def.key] = JSON.parse(value);
761
- } else {
762
- result[def.key] = value;
763
- }
764
- } catch {
765
- throw new CommandError(`Invalid JSON value for flag --${rawKey}`);
766
- }
786
+ result[def.key] = this.castFlagValue(nextArg, base, rawKey);
767
787
  } else {
768
788
  throw new CommandError(`Flag --${rawKey} requires a value.`);
769
789
  }
@@ -773,6 +793,29 @@ export class CliProvider {
773
793
  return result;
774
794
  }
775
795
 
796
+ /**
797
+ * Convert a raw flag value string into the value its schema expects.
798
+ *
799
+ * zod no longer coerces, so scalar values (number / integer / boolean) are
800
+ * cast + validated via {@link parseArgumentValue} (same path as positional
801
+ * args); object / array / record values are JSON-parsed. `schema` is expected
802
+ * to already be unwrapped of optional/nullable/default.
803
+ */
804
+ protected castFlagValue(value: string, schema: TSchema, rawKey: string): any {
805
+ if (
806
+ z.schema.isObject(schema) ||
807
+ z.schema.isArray(schema) ||
808
+ z.schema.isRecord(schema)
809
+ ) {
810
+ try {
811
+ return JSON.parse(value);
812
+ } catch {
813
+ throw new CommandError(`Invalid JSON value for flag --${rawKey}`);
814
+ }
815
+ }
816
+ return this.parseArgumentValue(value, schema);
817
+ }
818
+
776
819
  /**
777
820
  * Get indices of argv elements consumed by flags (for separating args from flags)
778
821
  */
@@ -794,18 +837,17 @@ export class CliProvider {
794
837
  const def = flagDefs.find((d) => d.aliases.includes(rawKey));
795
838
  if (!def) continue;
796
839
 
840
+ // Peel optional/nullable/default so boolean flags are recognised.
841
+ const base = z.schema.unwrap(def.schema);
842
+
797
843
  // Check if schema is a union containing boolean
798
844
  const isUnionWithBoolean =
799
- t.schema.isUnion(def.schema) &&
800
- (def.schema as TUnion).anyOf.some((s) => t.schema.isBoolean(s));
845
+ z.schema.isUnion(base) &&
846
+ (base as TUnion).anyOf.some((s) => z.schema.isBoolean(s));
801
847
 
802
848
  // If not a boolean flag and no = value, the next arg is consumed as the value
803
849
  // Exception: union with boolean can work without a value
804
- if (
805
- !t.schema.isBoolean(def.schema) &&
806
- !isUnionWithBoolean &&
807
- !hasEqualValue
808
- ) {
850
+ if (!z.schema.isBoolean(base) && !isUnionWithBoolean && !hasEqualValue) {
809
851
  const nextArg = argv[i + 1];
810
852
  if (nextArg && !nextArg.startsWith("-")) {
811
853
  consumed.add(i + 1);
@@ -833,18 +875,7 @@ export class CliProvider {
833
875
  }
834
876
 
835
877
  // Get indices consumed by flags (including space-separated values)
836
- const flagDefs = flagSchema
837
- ? Object.entries(flagSchema.properties).map(([key, value]) => ({
838
- key,
839
- aliases: [
840
- key,
841
- ...((value as any).aliases ??
842
- ((value as any).alias ? [(value as any).alias] : undefined) ??
843
- []),
844
- ],
845
- schema: value as TSchema,
846
- }))
847
- : [];
878
+ const flagDefs = flagSchema ? this.extractFlagDefs(flagSchema) : [];
848
879
  const consumedIndices = this.getFlagConsumedIndices(argv, flagDefs);
849
880
 
850
881
  // Extract positional arguments (non-flag arguments that aren't consumed as flag values)
@@ -855,21 +886,21 @@ export class CliProvider {
855
886
  const argsOnly = isRootCommand ? positionalArgs : positionalArgs.slice(1);
856
887
 
857
888
  try {
858
- if (t.schema.isOptional(schema)) {
859
- // Handle optional args: t.optional(t.text())
889
+ if (z.schema.isOptional(schema)) {
890
+ // Handle optional args: z.text().optional()
860
891
  if (argsOnly.length === 0) {
861
892
  return undefined;
862
893
  }
863
894
  return this.parseArgumentValue(argsOnly[0], schema);
864
- } else if (t.schema.isTuple(schema) && schema.items) {
865
- // Handle tuple args: t.tuple([t.text(), t.number()])
895
+ } else if (z.schema.isTuple(schema) && schema.items) {
896
+ // Handle tuple args: z.tuple([z.text(), z.number()])
866
897
  const result: any[] = [];
867
898
  const items = schema.items;
868
899
  for (let i = 0; i < items.length; i++) {
869
900
  const itemSchema = items[i];
870
901
  if (i < argsOnly.length) {
871
902
  result.push(this.parseArgumentValue(argsOnly[i], itemSchema));
872
- } else if (t.schema.isOptional(itemSchema)) {
903
+ } else if (z.schema.isOptional(itemSchema)) {
873
904
  result.push(undefined);
874
905
  } else {
875
906
  throw new CommandError(
@@ -879,7 +910,7 @@ export class CliProvider {
879
910
  }
880
911
  return result;
881
912
  } else {
882
- // Handle single arg: t.text(), t.number(), etc.
913
+ // Handle single arg: z.text(), z.number(), etc.
883
914
  if (argsOnly.length === 0) {
884
915
  throw new CommandError("Missing required argument");
885
916
  }
@@ -897,22 +928,22 @@ export class CliProvider {
897
928
  * Convert a string argument value to the appropriate type based on schema
898
929
  */
899
930
  protected parseArgumentValue(value: string, schema: TSchema): any {
900
- if (t.schema.isString(schema)) {
931
+ if (z.schema.isString(schema)) {
901
932
  return value;
902
933
  }
903
934
 
904
- if (t.schema.isNumber(schema) || t.schema.isInteger(schema)) {
935
+ if (z.schema.isNumber(schema) || z.schema.isInteger(schema)) {
905
936
  const num = Number(value);
906
937
  if (Number.isNaN(num)) {
907
938
  throw new CommandError(`Expected number, got "${value}"`);
908
939
  }
909
- if (t.schema.isInteger(schema) && !Number.isInteger(num)) {
940
+ if (z.schema.isInteger(schema) && !Number.isInteger(num)) {
910
941
  throw new CommandError(`Expected integer, got "${value}"`);
911
942
  }
912
943
  return num;
913
944
  }
914
945
 
915
- if (t.schema.isBoolean(schema)) {
946
+ if (z.schema.isBoolean(schema)) {
916
947
  const lower = value.toLowerCase();
917
948
  if (lower === "true" || lower === "1") return true;
918
949
  if (lower === "false" || lower === "0") return false;
@@ -935,18 +966,18 @@ export class CliProvider {
935
966
  return "";
936
967
  }
937
968
 
938
- if (t.schema.isOptional(schema)) {
969
+ if (z.schema.isOptional(schema)) {
939
970
  const typeName = this.getTypeName(schema);
940
- const key = "title" in schema ? (schema as any).title : "arg1";
971
+ const key = this.schemaMeta(schema).title ?? "arg1";
941
972
  return ` [${key}${typeName}]`;
942
973
  }
943
974
 
944
- if (t.schema.isTuple(schema) && schema.items) {
975
+ if (z.schema.isTuple(schema) && schema.items) {
945
976
  const items = schema.items;
946
977
  const args = items.map((item, index) => {
947
978
  const argName = `arg${index + 1}`;
948
979
  const typeName = this.getTypeName(item);
949
- if (t.schema.isOptional(item)) {
980
+ if (z.schema.isOptional(item)) {
950
981
  return `[${argName}${typeName}]`;
951
982
  }
952
983
  return `<${argName}${typeName}>`;
@@ -955,7 +986,7 @@ export class CliProvider {
955
986
  }
956
987
 
957
988
  const typeName = this.getTypeName(schema);
958
- const key = "title" in schema ? (schema as any).title : "arg1";
989
+ const key = this.schemaMeta(schema).title ?? "arg1";
959
990
  return ` <${key}${typeName}>`;
960
991
  }
961
992
 
@@ -965,11 +996,15 @@ export class CliProvider {
965
996
  protected getTypeName(schema: TSchema): string {
966
997
  if (!schema) return "";
967
998
 
968
- // Check TypeBox type guards first
969
- if (t.schema.isString(schema)) return "";
970
- if (t.schema.isNumber(schema)) return ": number";
971
- if (t.schema.isInteger(schema)) return ": integer";
972
- if (t.schema.isBoolean(schema)) return ": boolean";
999
+ // Peel optional/nullable/default before inspecting the scalar type.
1000
+ const base = z.schema.unwrap(schema);
1001
+
1002
+ // Order matters: under zod an integer IS a number (format "safeint"), so the
1003
+ // narrower integer check must come before the number check.
1004
+ if (z.schema.isString(base)) return "";
1005
+ if (z.schema.isInteger(base)) return ": integer";
1006
+ if (z.schema.isNumber(base)) return ": number";
1007
+ if (z.schema.isBoolean(base)) return ": boolean";
973
1008
 
974
1009
  return "";
975
1010
  }
@@ -981,6 +1016,11 @@ export class CliProvider {
981
1016
  * If omitted, shows general CLI help with all commands.
982
1017
  */
983
1018
  public printHelp(command?: CommandPrimitive<any>): void {
1019
+ // Help is a document, not a log stream: render bare lines (no timestamp
1020
+ // or level prefix). Embedded colors live in the message itself, so they
1021
+ // survive the `raw` formatter.
1022
+ this.alepha.store.set("alepha.logger.format", "raw");
1023
+
984
1024
  const cliName = this.name || "cli";
985
1025
  const c = this.color;
986
1026
  this.log.info(""); // Newline
@@ -1028,16 +1068,9 @@ export class CliProvider {
1028
1068
  this.log.info(c.set("WHITE_BOLD", "Flags:"));
1029
1069
 
1030
1070
  const flags = [
1031
- ...Object.entries(command.flags.properties).map(([key, value]) => ({
1032
- key,
1033
- schema: value,
1034
- aliases: [
1035
- key,
1036
- ...((value as any).aliases ??
1037
- ((value as any).alias ? [(value as any).alias] : [])),
1038
- ],
1039
- description: (value as any).description,
1040
- })),
1071
+ // Read aliases/description from the schema's `.meta()` registry (zod),
1072
+ // not as direct schema properties (typebox) — see extractFlagDefs.
1073
+ ...this.extractFlagDefs(command.flags),
1041
1074
  // Add --mode flag if command has mode option enabled
1042
1075
  ...(command.options.mode
1043
1076
  ? [
@@ -1048,7 +1081,7 @@ export class CliProvider {
1048
1081
  typeof command.options.mode === "string"
1049
1082
  ? `Environment mode - loads .env.{mode} (default: ${command.options.mode})`
1050
1083
  : "Environment mode (e.g., production, staging) - loads .env.{mode}",
1051
- schema: t.string() as TSchema,
1084
+ schema: z.string() as TSchema,
1052
1085
  },
1053
1086
  ]
1054
1087
  : []),
@@ -1082,7 +1115,7 @@ export class CliProvider {
1082
1115
  this.log.info(c.set("WHITE_BOLD", "Env:"));
1083
1116
  const maxEnvLength = Math.max(...envVars.map(([key]) => key.length));
1084
1117
  for (const [key, schema] of envVars) {
1085
- const isOptional = t.schema.isOptional(schema as TSchema);
1118
+ const isOptional = z.schema.isOptional(schema as TSchema);
1086
1119
  const description = (schema as any).description ?? "";
1087
1120
  const optionalStr = isOptional
1088
1121
  ? c.set("GREY_DARK", " (optional)")
@@ -1129,18 +1162,10 @@ export class CliProvider {
1129
1162
 
1130
1163
  // In general help, also show root command flags
1131
1164
  const rootCommand = this.commands.find((cmd) => cmd.name === "");
1165
+ // Read aliases/description from the schema's `.meta()` registry (zod),
1166
+ // not as direct schema properties (typebox) — see extractFlagDefs.
1132
1167
  const rootFlags = rootCommand
1133
- ? Object.entries(rootCommand.flags.properties).map(([key, value]) => ({
1134
- key,
1135
- aliases: [
1136
- key,
1137
- ...((value as any).aliases ??
1138
- ((value as any).alias ? [(value as any).alias] : undefined) ??
1139
- []),
1140
- ],
1141
- description: (value as any).description,
1142
- schema: value as TSchema,
1143
- }))
1168
+ ? this.extractFlagDefs(rootCommand.flags)
1144
1169
  : [];
1145
1170
 
1146
1171
  const globalFlags = [
@@ -1171,18 +1196,18 @@ export class CliProvider {
1171
1196
 
1172
1197
  const c = this.color;
1173
1198
 
1174
- if (t.schema.isOptional(schema)) {
1199
+ if (z.schema.isOptional(schema)) {
1175
1200
  const typeName = this.getTypeName(schema);
1176
- const key = "title" in schema ? (schema as any).title : "arg1";
1201
+ const key = this.schemaMeta(schema).title ?? "arg1";
1177
1202
  return ` ${c.set("GREY_DARK", `[${key}${typeName}]`)}`;
1178
1203
  }
1179
1204
 
1180
- if (t.schema.isTuple(schema) && schema.items) {
1205
+ if (z.schema.isTuple(schema) && schema.items) {
1181
1206
  const items = schema.items;
1182
1207
  const args = items.map((item, index) => {
1183
1208
  const argName = `arg${index + 1}`;
1184
1209
  const typeName = this.getTypeName(item);
1185
- if (t.schema.isOptional(item)) {
1210
+ if (z.schema.isOptional(item)) {
1186
1211
  return c.set("GREY_DARK", `[${argName}${typeName}]`);
1187
1212
  }
1188
1213
  return c.set("CYAN", `<${argName}${typeName}>`);
@@ -1191,7 +1216,7 @@ export class CliProvider {
1191
1216
  }
1192
1217
 
1193
1218
  const typeName = this.getTypeName(schema);
1194
- const key = "title" in schema ? (schema as any).title : "arg1";
1219
+ const key = this.schemaMeta(schema).title ?? "arg1";
1195
1220
  return ` ${c.set("CYAN", `<${key}${typeName}>`)}`;
1196
1221
  }
1197
1222
 
@@ -1298,30 +1323,27 @@ export class CliProvider {
1298
1323
  protected getEnumValues(schema: TSchema): string[] | undefined {
1299
1324
  if (!schema) return undefined;
1300
1325
 
1301
- // Check if schema has an enum property (t.enum creates schemas with this)
1302
- if (
1303
- "enum" in schema &&
1304
- Array.isArray(schema.enum) &&
1305
- schema.enum.every((v) => typeof v === "string")
1306
- ) {
1307
- return schema.enum as string[];
1326
+ const base = z.schema.unwrap(schema);
1327
+
1328
+ // A zod enum (`z.enum`).
1329
+ if (z.schema.isEnum(base)) {
1330
+ const values = z.schema.enumValues(base);
1331
+ return values.length > 0 && values.every((v) => typeof v === "string")
1332
+ ? values
1333
+ : undefined;
1308
1334
  }
1309
1335
 
1310
- // Also check for union of string literals (alternative enum representation)
1311
- if (t.schema.isUnion(schema)) {
1312
- const union = schema as TUnion;
1336
+ // A union of string literals (alternative enum representation).
1337
+ if (z.schema.isUnion(base)) {
1338
+ const variants = (base as any).anyOf ?? [];
1313
1339
  const values: string[] = [];
1314
1340
 
1315
- for (const variant of union.anyOf) {
1316
- // Check if the variant is a string literal (has const property)
1317
- if (
1318
- t.schema.isString(variant) &&
1319
- "const" in variant &&
1320
- typeof variant.const === "string"
1321
- ) {
1322
- values.push(variant.const);
1341
+ for (const variant of variants) {
1342
+ const value = (variant as any).value; // zod literal value
1343
+ if (z.schema.isLiteral(variant) && typeof value === "string") {
1344
+ values.push(value);
1323
1345
  } else {
1324
- // Not all variants are string literals, not a simple enum
1346
+ // Not all variants are string literals, not a simple enum.
1325
1347
  return undefined;
1326
1348
  }
1327
1349
  }