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
@@ -10,7 +10,7 @@ import {
10
10
  type Static,
11
11
  type TObject,
12
12
  type TSchema,
13
- t,
13
+ z,
14
14
  } from "alepha";
15
15
  import { $logger } from "alepha/logger";
16
16
  import {
@@ -36,12 +36,11 @@ import {
36
36
  */
37
37
  export const swaggerOptions = $atom({
38
38
  name: "alepha.server.swagger.options",
39
- schema: t.object({
40
- excludeKeys: t.optional(
41
- t.array(t.string(), {
42
- description: "Keys to exclude from swagger schema",
43
- }),
44
- ),
39
+ schema: z.object({
40
+ excludeKeys: z
41
+ .array(z.string())
42
+ .describe("Keys to exclude from swagger schema")
43
+ .optional(),
45
44
  }),
46
45
  default: {
47
46
  excludeKeys: [],
@@ -136,21 +135,34 @@ export class ServerSwaggerProvider {
136
135
  const excludeTags = doc.excludeTags ?? [];
137
136
  const schemas: Record<string, any> = {};
138
137
 
139
- const schema = (source: TSchema) => {
140
- if ("title" in source && typeof source.title === "string") {
141
- schemas[source.title] = copy(source);
142
- return { $ref: `#/components/schemas/${source.title}` };
138
+ const toJson = (source: TSchema): any => {
139
+ let json: any;
140
+ try {
141
+ json = z.toJSONSchema(source as any);
142
+ } catch {
143
+ json = {};
143
144
  }
144
- return copy(source);
145
- };
146
-
147
- const copy = (obj: any) => {
148
- const newValue = JSON.parse(JSON.stringify(obj));
149
- this.removePrivateFields(newValue, [
145
+ // zod stamps a `$schema` dialect URL we don't want in OpenAPI fragments.
146
+ json.$schema = undefined;
147
+ this.removePrivateFields(json, [
150
148
  ...(this.options.excludeKeys || []),
151
149
  "~options",
152
150
  ]);
153
- return newValue;
151
+ return json;
152
+ };
153
+
154
+ const schema = (source: TSchema): any => {
155
+ const json = toJson(source);
156
+ // A titled schema is hoisted into `components/schemas` and referenced.
157
+ const title =
158
+ (typeof (source as any)?.meta === "function"
159
+ ? (source as any).meta()?.title
160
+ : undefined) ?? json.title;
161
+ if (typeof title === "string") {
162
+ schemas[title] = json;
163
+ return { $ref: `#/components/schemas/${title}` };
164
+ }
165
+ return json;
154
166
  };
155
167
 
156
168
  for (const route of actions) {
@@ -202,11 +214,11 @@ export class ServerSwaggerProvider {
202
214
  }
203
215
 
204
216
  if (
205
- t.schema.isObject(route.options.schema.body) ||
206
- t.schema.isArray(route.options.schema.body)
217
+ z.schema.isObject(route.options.schema.body) ||
218
+ z.schema.isArray(route.options.schema.body)
207
219
  ) {
208
220
  if (
209
- t.schema.isObject(route.options.schema.body) &&
221
+ z.schema.isObject(route.options.schema.body) &&
210
222
  this.isBodyMultipart(route.options.schema.body)
211
223
  ) {
212
224
  operation.requestBody = {
@@ -229,10 +241,11 @@ export class ServerSwaggerProvider {
229
241
  }
230
242
  }
231
243
 
232
- if (t.schema.isObject(route.options.schema.query)) {
244
+ if (z.schema.isObject(route.options.schema.query)) {
233
245
  operation.parameters ??= [];
234
- const requiredKeys: string[] =
235
- route.options.schema.query.required ?? [];
246
+ const requiredKeys: string[] = z.schema.requiredKeys(
247
+ route.options.schema.query,
248
+ );
236
249
  for (const [key, value] of Object.entries(
237
250
  route.options.schema.query.properties,
238
251
  )) {
@@ -248,14 +261,18 @@ export class ServerSwaggerProvider {
248
261
  }
249
262
  }
250
263
 
251
- if (t.schema.isObject(route.options.schema.params)) {
264
+ if (z.schema.isObject(route.options.schema.params)) {
252
265
  operation.parameters ??= [];
253
266
  for (const [key, value] of Object.entries(
254
267
  route.options.schema.params.properties,
255
268
  )) {
269
+ const valueMeta =
270
+ typeof (value as any)?.meta === "function"
271
+ ? ((value as any).meta() ?? {})
272
+ : {};
256
273
  const description =
257
- "description" in value && typeof value.description === "string"
258
- ? value.description
274
+ typeof valueMeta.description === "string"
275
+ ? valueMeta.description
259
276
  : undefined;
260
277
  const ref = schema(value);
261
278
  ref.description = undefined;
@@ -335,7 +352,7 @@ export class ServerSwaggerProvider {
335
352
  };
336
353
  }
337
354
 
338
- if (t.schema.isObject(schema) || t.schema.isArray(schema)) {
355
+ if (z.schema.isObject(schema) || z.schema.isArray(schema)) {
339
356
  return {
340
357
  schema,
341
358
  status: 200,
@@ -343,7 +360,7 @@ export class ServerSwaggerProvider {
343
360
  };
344
361
  }
345
362
 
346
- if (t.schema.isString(schema)) {
363
+ if (z.schema.isString(schema)) {
347
364
  return {
348
365
  schema,
349
366
  status: 200,
@@ -352,9 +369,9 @@ export class ServerSwaggerProvider {
352
369
  }
353
370
 
354
371
  if (
355
- t.schema.isNumber(schema) ||
356
- t.schema.isInteger(schema) ||
357
- t.schema.isBoolean(schema)
372
+ z.schema.isNumber(schema) ||
373
+ z.schema.isInteger(schema) ||
374
+ z.schema.isBoolean(schema)
358
375
  ) {
359
376
  return {
360
377
  schema,
@@ -371,7 +388,7 @@ export class ServerSwaggerProvider {
371
388
  };
372
389
  }
373
390
 
374
- // Status-code-keyed map: e.g. { 201: t.object({...}) }
391
+ // Status-code-keyed map: e.g. { 201: z.object({...}) }
375
392
  const status = Object.keys(schema)[0];
376
393
  if (status && !Number.isNaN(Number(status))) {
377
394
  const inner = schema[status];
@@ -384,11 +401,17 @@ export class ServerSwaggerProvider {
384
401
  }
385
402
 
386
403
  protected extractExample(schema: any): any {
387
- if ("examples" in schema && Array.isArray(schema.examples)) {
388
- return schema.examples[0];
404
+ const meta =
405
+ typeof schema?.meta === "function" ? (schema.meta() ?? {}) : {};
406
+ if (Array.isArray(meta.examples) && meta.examples.length > 0) {
407
+ return meta.examples[0];
408
+ }
409
+ if (meta.example !== undefined) {
410
+ return meta.example;
389
411
  }
390
- if ("default" in schema) {
391
- return schema.default;
412
+ const def = z.schema.getDefault(schema);
413
+ if (def !== undefined) {
414
+ return def;
392
415
  }
393
416
  return undefined;
394
417
  }
@@ -418,14 +441,14 @@ export class ServerSwaggerProvider {
418
441
 
419
442
  protected getContentType(schema: any): string | undefined {
420
443
  if (!schema) return undefined;
421
- if (t.schema.isObject(schema) || t.schema.isArray(schema)) {
444
+ if (z.schema.isObject(schema) || z.schema.isArray(schema)) {
422
445
  return "application/json";
423
446
  }
424
- if (t.schema.isString(schema)) return "text/plain";
447
+ if (z.schema.isString(schema)) return "text/plain";
425
448
  if (
426
- t.schema.isNumber(schema) ||
427
- t.schema.isInteger(schema) ||
428
- t.schema.isBoolean(schema)
449
+ z.schema.isNumber(schema) ||
450
+ z.schema.isInteger(schema) ||
451
+ z.schema.isBoolean(schema)
429
452
  ) {
430
453
  return "application/json";
431
454
  }
@@ -438,7 +461,7 @@ export class ServerSwaggerProvider {
438
461
  method: "GET",
439
462
  path: `${prefix}/json`,
440
463
  schema: {
441
- response: t.json(),
464
+ response: z.json(),
442
465
  },
443
466
  handler: () => json,
444
467
  });
@@ -0,0 +1,46 @@
1
+ import { Alepha } from "alepha";
2
+ import { afterAll, beforeAll, describe, expect, it } from "vitest";
3
+ import { NodeShellProvider } from "../providers/NodeShellProvider.ts";
4
+ import { ShellProvider } from "../providers/ShellProvider.ts";
5
+
6
+ // ---------------------------------------------------------------------------------------------------------------------
7
+
8
+ describe("NodeShellProvider", () => {
9
+ let alepha: Alepha;
10
+ let shell: ShellProvider;
11
+
12
+ beforeAll(async () => {
13
+ alepha = Alepha.create().with({
14
+ provide: ShellProvider,
15
+ use: NodeShellProvider,
16
+ });
17
+ shell = alepha.inject(ShellProvider);
18
+ await alepha.start();
19
+ });
20
+
21
+ afterAll(async () => {
22
+ await alepha?.stop().catch(() => {});
23
+ });
24
+
25
+ describe("run with capture", () => {
26
+ it("captures stdout from a successful command", async () => {
27
+ const cmd = `node -e "process.stdout.write('hello-node')"`;
28
+ const out = await shell.run(cmd, { capture: true });
29
+ expect(out).toContain("hello-node");
30
+ });
31
+
32
+ it("attaches both stdout and stderr to the error on failure", async () => {
33
+ const cmd = `node -e "process.stdout.write('OUT');process.stderr.write('ERR');process.exit(3)"`;
34
+
35
+ const err = await shell.run(cmd, { capture: true }).then(
36
+ () => {
37
+ throw new Error("expected the command to reject");
38
+ },
39
+ (e) => e as { stdout?: string; stderr?: string },
40
+ );
41
+
42
+ expect(err.stdout).toContain("OUT");
43
+ expect(err.stderr).toContain("ERR");
44
+ });
45
+ });
46
+ });
@@ -122,9 +122,12 @@ export class NodeShellProvider implements ShellProvider {
122
122
  ...options.env,
123
123
  },
124
124
  },
125
- (err, stdout) => {
125
+ (err, stdout, stderr) => {
126
126
  if (err) {
127
+ // Attach both streams so callers (e.g. the CLI Runner) can surface
128
+ // the full output of a failed command, not just stdout.
127
129
  (err as any).stdout = stdout;
130
+ (err as any).stderr = stderr;
128
131
  reject(err);
129
132
  } else {
130
133
  resolve(stdout);
@@ -1,4 +1,4 @@
1
- import { Alepha, createMiddleware, t } from "alepha";
1
+ import { Alepha, createMiddleware, z } from "alepha";
2
2
  import { describe, expect, test } from "vitest";
3
3
  import {
4
4
  $subscriber,
@@ -21,9 +21,9 @@ const $track = (log: string[], tag: string) =>
21
21
  });
22
22
 
23
23
  const eventSchema = {
24
- payload: t.object({
25
- id: t.text(),
26
- action: t.text(),
24
+ payload: z.object({
25
+ id: z.text(),
26
+ action: z.text(),
27
27
  }),
28
28
  };
29
29
 
@@ -1,4 +1,4 @@
1
- import { $inject, Alepha, type Service, t } from "alepha";
1
+ import { $inject, Alepha, type Service, z } from "alepha";
2
2
  import {
3
3
  $subscriber,
4
4
  $topic,
@@ -17,8 +17,8 @@ export const testTopicParams = async (
17
17
  sensor = $topic({
18
18
  name: "devices/{deviceId}/sensor",
19
19
  schema: {
20
- params: t.object({ deviceId: t.text() }),
21
- payload: t.object({ temp: t.number() }),
20
+ params: z.object({ deviceId: z.text() }),
21
+ payload: z.object({ temp: z.number() }),
22
22
  },
23
23
  });
24
24
  }
@@ -58,9 +58,9 @@ export const testTopicParams = async (
58
58
  await app.stop();
59
59
  };
60
60
 
61
- export const payloadSchema = t.object({
62
- id: t.text(),
63
- count: t.integer(),
61
+ export const payloadSchema = z.object({
62
+ id: z.text(),
63
+ count: z.integer(),
64
64
  });
65
65
 
66
66
  export const subscriptions: Record<string, SubscribeCallback[]> = {};
@@ -139,7 +139,7 @@ export const testTopicAsSub = async (
139
139
  t = $topic({
140
140
  name: "a",
141
141
  schema: {
142
- payload: t.object({ n: t.integer() }),
142
+ payload: z.object({ n: z.integer() }),
143
143
  },
144
144
  handler: async ({ payload }) => {
145
145
  count += payload.n;
@@ -176,7 +176,7 @@ export const testTopicRetain = async (
176
176
  t = $topic({
177
177
  name: `retain-test-${crypto.randomUUID()}`,
178
178
  schema: {
179
- payload: t.object({ value: t.text() }),
179
+ payload: z.object({ value: z.text() }),
180
180
  },
181
181
  retain: true,
182
182
  });
@@ -35,10 +35,10 @@ import type {
35
35
  * userEvents = $topic({
36
36
  * name: "user-activity",
37
37
  * schema: {
38
- * payload: t.object({
39
- * userId: t.text(),
40
- * action: t.enum(["login", "logout", "purchase"]),
41
- * timestamp: t.number()
38
+ * payload: z.object({
39
+ * userId: z.text(),
40
+ * action: z.enum(["login", "logout", "purchase"]),
41
+ * timestamp: z.number()
42
42
  * })
43
43
  * }
44
44
  * });
@@ -97,7 +97,7 @@ export interface SubscriberPrimitiveOptions<T extends TopicMessageSchema>
97
97
  * userEvents = $topic({
98
98
  * name: "user-activity",
99
99
  * schema: {
100
- * payload: t.object({ userId: t.text(), action: t.text() })
100
+ * payload: z.object({ userId: z.text(), action: z.text() })
101
101
  * }
102
102
  * });
103
103
  *
@@ -29,10 +29,10 @@ import {
29
29
  * userActivity = $topic({
30
30
  * name: "user-activity",
31
31
  * schema: {
32
- * payload: t.object({
33
- * userId: t.text(),
34
- * action: t.enum(["login", "logout", "purchase"]),
35
- * timestamp: t.number()
32
+ * payload: z.object({
33
+ * userId: z.text(),
34
+ * action: z.enum(["login", "logout", "purchase"]),
35
+ * timestamp: z.number()
36
36
  * })
37
37
  * },
38
38
  * handler: async (message) => {
@@ -158,17 +158,17 @@ export interface TopicPrimitiveOptions<T extends TopicMessageSchema> {
158
158
  * @example
159
159
  * ```ts
160
160
  * {
161
- * payload: t.object({
162
- * eventId: t.text(),
163
- * eventType: t.enum(["created", "updated"]),
164
- * data: t.record(t.text(), t.any()),
165
- * timestamp: t.number(),
166
- * userId: t.optional(t.text())
161
+ * payload: z.object({
162
+ * eventId: z.text(),
163
+ * eventType: z.enum(["created", "updated"]),
164
+ * data: z.record(z.text(), z.any()),
165
+ * timestamp: z.number(),
166
+ * userId: z.text().optional()
167
167
  * }),
168
- * headers: t.optional(t.object({
169
- * source: t.text(),
170
- * correlationId: t.text()
171
- * }))
168
+ * headers: z.object({
169
+ * source: z.text(),
170
+ * correlationId: z.text()
171
+ * }).optional()
172
172
  * }
173
173
  * ```
174
174
  */
@@ -1,4 +1,4 @@
1
- import { $atom, $hook, $inject, $state, Alepha, type Static, t } from "alepha";
1
+ import { $atom, $hook, $inject, $state, Alepha, type Static, z } from "alepha";
2
2
  import { $logger } from "alepha/logger";
3
3
  import { RedisProvider, RedisSubscriberProvider } from "alepha/redis";
4
4
  import {
@@ -16,8 +16,8 @@ import {
16
16
  */
17
17
  export const redisTopicOptions = $atom({
18
18
  name: "alepha.topic.redis.options",
19
- schema: t.object({
20
- prefix: t.text({
19
+ schema: z.object({
20
+ prefix: z.text({
21
21
  default: "topic",
22
22
  description: "Prefix for all topic channels in Redis.",
23
23
  }),
@@ -1,236 +0,0 @@
1
- import { Alepha, KIND, Primitive } from "alepha";
2
- import { DurationLike } from "alepha/datetime";
3
-
4
- //#region ../../src/container/core/interfaces/ContainerOptions.d.ts
5
- /**
6
- * Options for the `$container` primitive.
7
- *
8
- * Describes a remote Alepha app running in an ephemeral container. The
9
- * primitive returns a typed Proxy that calls the container's `$action`
10
- * endpoints through whatever transport the active provider chooses
11
- * (Cloudflare Containers binding on `target=cloudflare`, plain HTTP on
12
- * Node when `url` is set).
13
- */
14
- interface ContainerPrimitiveOptions {
15
- /**
16
- * Logical container name. Defaults to the property key.
17
- *
18
- * Cloudflare provider uppercases this to look up the binding
19
- * (`env.<NAME>`), so prefer lowercase here.
20
- */
21
- name?: string;
22
- /**
23
- * Docker image the container runs. Required.
24
- *
25
- * The build task uses this verbatim in `wrangler.jsonc`'s
26
- * `containers[].image` entry.
27
- */
28
- image: string;
29
- /**
30
- * Explicit URL the Node provider should call. When set, `$container`
31
- * routes through `LinkProvider` exactly like `$remote({ url })`.
32
- *
33
- * On `target=cloudflare`, this is ignored — the Containers binding is
34
- * used instead.
35
- */
36
- url?: string | (() => string);
37
- /**
38
- * Port the container app listens on. Defaults to 3000 (Alepha
39
- * convention — NOT Cloudflare's 8080). Used in build-time codegen.
40
- */
41
- port?: number;
42
- /**
43
- * Idle window before the platform stops the container instance.
44
- *
45
- * @default "15m"
46
- */
47
- sleepAfter?: DurationLike;
48
- /**
49
- * Environment variables injected into the container at runtime.
50
- */
51
- envVars?: Record<string, string>;
52
- /**
53
- * Cloudflare-specific instance class. Ignored on other targets.
54
- *
55
- * @default "dev"
56
- */
57
- instanceType?: "dev" | "basic" | "standard";
58
- /**
59
- * Maximum concurrent container instances.
60
- *
61
- * @default 5
62
- */
63
- maxInstances?: number;
64
- }
65
- //#endregion
66
- //#region ../../src/container/core/providers/ContainerProvider.d.ts
67
- interface ContainerInvokeConfig {
68
- body?: unknown;
69
- query?: Record<string, unknown>;
70
- params?: Record<string, unknown>;
71
- headers?: Record<string, string>;
72
- }
73
- /**
74
- * Abstract transport for `$container` proxies.
75
- *
76
- * Concrete subclasses translate a `(container, action, config)` call
77
- * into an HTTP request that reaches the running container. The default
78
- * binding on Node throws — apps must register either a
79
- * `NodeContainerProvider` (with `url` on each primitive) or the
80
- * Cloudflare workerd variant.
81
- */
82
- declare abstract class ContainerProvider {
83
- protected readonly log: import("alepha/logger").Logger;
84
- /**
85
- * Invoke a remote action on the container. Subclasses do the work;
86
- * the default implementation rejects to make missing wiring obvious.
87
- */
88
- invoke(container: ContainerPrimitive, action: string, config: ContainerInvokeConfig): Promise<unknown>;
89
- /**
90
- * Helper: build the fetch path/body for an action call. Kept as a
91
- * protected method so workerd and Node providers share the wire
92
- * shape — `POST /api/<action>` with the JSON body, query params on
93
- * the URL, and the request headers merged in.
94
- */
95
- protected buildRequest(action: string, config: ContainerInvokeConfig): {
96
- path: string;
97
- init: RequestInit;
98
- };
99
- }
100
- //#endregion
101
- //#region ../../src/container/core/primitives/$container.d.ts
102
- /**
103
- * `$container` — typed RPC client to a containerized Alepha app.
104
- *
105
- * Returns a typed Proxy whose method calls map 1:1 to the target
106
- * controller's `$action` endpoints. The wire format mirrors what a
107
- * normal Alepha server exposes (`POST /api/<method>` with a JSON body),
108
- * so the container is literally a tiny Alepha worker.
109
- *
110
- * Transport is owned by the active {@link ContainerProvider}:
111
- * - `target=cloudflare` → `CloudflareContainerProvider` routes through
112
- * the Containers binding (`env.<NAME>.getContainer(...).fetch()`).
113
- * - Node (with `url` set) → `NodeContainerProvider` uses plain
114
- * `fetch()` against the configured URL.
115
- *
116
- * Build-time, `BuildCloudflareTask.enhanceContainers` walks
117
- * `alepha.primitives($container)` to emit the matching `wrangler.jsonc`
118
- * entries and Durable Object class declarations into
119
- * `main.cloudflare.js`.
120
- *
121
- * @example
122
- * ```ts
123
- * import { $container } from "alepha/container";
124
- * import type { RocketController } from "@alepha/rocket";
125
- *
126
- * class DeployService {
127
- * rocket = $container<RocketController>({
128
- * image: "alepha/rocket:latest",
129
- * port: 3000,
130
- * sleepAfter: "15m",
131
- * });
132
- *
133
- * async deploy() {
134
- * return this.rocket.createJob({ body: { op: "up" } });
135
- * }
136
- * }
137
- * ```
138
- */
139
- declare const $container: {
140
- <T extends object = any>(options: ContainerPrimitiveOptions): ContainerProxy<T>;
141
- [KIND]: typeof ContainerPrimitive;
142
- };
143
- /**
144
- * Typed proxy returned by `$container<T>()`. Each `$action` member of
145
- * `T` becomes a callable returning the action's response body.
146
- *
147
- * The runtime shape is a `Proxy(primitive)` — own-property reads hit the
148
- * underlying `ContainerPrimitive` (so `alepha.primitives($container)`
149
- * still finds it via the `instanceof Primitive` check inside
150
- * `Alepha.new()`), and anything else is treated as an action name and
151
- * routed through the active `ContainerProvider`.
152
- */
153
- type ContainerProxy<T extends object> = { [K in keyof T]: T[K] extends ((...args: infer A) => infer R) ? (...args: A) => Promise<Awaited<R>> : (config?: {
154
- body?: unknown;
155
- query?: unknown;
156
- params?: unknown;
157
- }) => Promise<any> };
158
- declare class ContainerPrimitive extends Primitive<ContainerPrimitiveOptions> {
159
- protected readonly provider: ContainerProvider;
160
- get name(): string;
161
- /**
162
- * Build the typed Proxy. The target is the primitive itself so
163
- * `instanceof Primitive` keeps working (required by Alepha's
164
- * primitive registration in `Alepha.new`). Property reads that match
165
- * an own/inherited member return that member; anything else is
166
- * treated as an action name and routed through the provider.
167
- */
168
- proxy<T extends object = any>(): ContainerProxy<T>;
169
- }
170
- //#endregion
171
- //#region ../../src/container/core/providers/MockContainerProvider.d.ts
172
- /**
173
- * In-process test provider.
174
- *
175
- * Resolves the action name against `LinkProvider`'s registered links in
176
- * the SAME Alepha instance — effectively calling the "containerized"
177
- * controller as if it were local. Use it in tests: register the
178
- * controller class on the test container alongside the consumer and
179
- * substitute `ContainerProvider` with `MockContainerProvider`.
180
- *
181
- * @example
182
- * ```ts
183
- * const alepha = Alepha.create()
184
- * .with(AlephaContainer)
185
- * .with(RocketController)
186
- * .with(MyApp)
187
- * .with({ provide: ContainerProvider, use: MockContainerProvider });
188
- * ```
189
- */
190
- declare class MockContainerProvider extends ContainerProvider {
191
- protected readonly alepha: Alepha;
192
- invoke(container: ContainerPrimitive, action: string, config: ContainerInvokeConfig): Promise<unknown>;
193
- protected loadLinkProvider(): Promise<any>;
194
- }
195
- //#endregion
196
- //#region ../../src/container/core/providers/NodeContainerProvider.d.ts
197
- /**
198
- * Node (dev / test / non-Cloudflare) container provider.
199
- *
200
- * Routes proxy calls through plain `fetch()` against the URL given on
201
- * the `$container` primitive. If no `url` is supplied, calls throw —
202
- * v1 deliberately has no Docker spawning. This is the "temporary, not
203
- * perfect" Node path documented in the spec; the longer-term plan is
204
- * to plug in a `target=docker` adapter once that lands.
205
- */
206
- declare class NodeContainerProvider extends ContainerProvider {
207
- invoke(container: ContainerPrimitive, action: string, config: ContainerInvokeConfig): Promise<unknown>;
208
- protected resolveUrl(container: ContainerPrimitive): string | undefined;
209
- }
210
- //#endregion
211
- //#region ../../src/container/core/index.d.ts
212
- /**
213
- * Type-safe RPC clients for ephemeral containerized Alepha apps.
214
- *
215
- * **Features:**
216
- * - `$container<T>()` directive returns a typed Proxy onto a remote
217
- * Alepha controller's `$action` endpoints — the wire format is the
218
- * same `POST /api/<method>` shape served by every Alepha server.
219
- * - Pluggable transport: Node (plain `fetch` against a configured URL),
220
- * Mock (in-process call via `LinkProvider.follow` for tests),
221
- * Cloudflare workerd (`getContainer().fetch()` through the Containers
222
- * binding — see `alepha/container` workerd entry).
223
- * - Build-time integration: `BuildCloudflareTask.enhanceContainers`
224
- * emits the matching wrangler bindings and Durable Object class
225
- * declarations.
226
- *
227
- * The Node binding is the "temporary, not perfect" path documented in
228
- * the spec — apps need to provide an explicit `url` per primitive
229
- * until a `target=docker` adapter ships.
230
- *
231
- * @module alepha.container
232
- */
233
- declare const AlephaContainer: import("alepha").Service<import("alepha").Module>;
234
- //#endregion
235
- export { $container, AlephaContainer, ContainerInvokeConfig, ContainerPrimitive, ContainerPrimitiveOptions, ContainerProvider, ContainerProxy, MockContainerProvider, NodeContainerProvider };
236
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/container/core/interfaces/ContainerOptions.ts","../../../src/container/core/providers/ContainerProvider.ts","../../../src/container/core/primitives/$container.ts","../../../src/container/core/providers/MockContainerProvider.ts","../../../src/container/core/providers/NodeContainerProvider.ts","../../../src/container/core/index.ts"],"mappings":";;;;;;;AAWA;;;;;;UAAiB,yBAAA;EA8Bf;;;;;;EAvBA,IAAA;EAiDY;AAAA;;;;AC/Dd;EDsBE,KAAA;;;;;;;;EASA,GAAA;EC7BQ;;;;EDmCR,IAAA;ECjCgB;AAAA;AAYlB;;;ED4BE,UAAA,GAAa,YAAA;EClBH;;;EDuBV,OAAA,GAAU,MAAM;ECLoB;;;;;EDYpC,YAAA;EChCE;;;;;EDuCF,YAAA;AAAA;;;UC/De,qBAAA;EACf,IAAA;EACA,KAAA,GAAQ,MAAA;EACR,MAAA,GAAS,MAAA;EACT,OAAA,GAAU,MAAA;AAAA;;;;;;;;;;uBAYU,iBAAA;EAAA,mBACD,GAAA,0BAAG,MAAA;ED8CV;AAAA;;;ECxCC,MAAA,CACX,SAAA,EAAW,kBAAA,EACX,MAAA,UACA,MAAA,EAAQ,qBAAA,GACP,OAAA;EA3BY;;;;;;EAAA,UAyCL,YAAA,CACR,MAAA,UACA,MAAA,EAAQ,qBAAA;IACL,IAAA;IAAc,IAAA,EAAM,WAAA;EAAA;AAAA;;;;ADrC3B;;;;;;;;;;;;;;;AAwDc;;;;AC/Dd;;;;;;;;;;;;;;;;AAIkB;cCiCL,UAAA;EAAA,yBAA8B,OAAA,EAChC,yBAAA,GACR,cAAA,CAAe,CAAA;EAAA;;;;;;;;;;;;KAkBN,cAAA,mCACE,CAAA,GAAI,CAAA,CAAE,CAAA,eAAe,IAAA,6BACzB,IAAA,EAAM,CAAA,KAAM,OAAA,CAAQ,OAAA,CAAQ,CAAA,MAC/B,MAAA;EACC,IAAA;EACA,KAAA;EACA,MAAA;AAAA,MACI,OAAA;AAAA,cAGC,kBAAA,SAA2B,SAAA,CAAU,yBAAA;EAAA,mBAC7B,QAAA,EAAQ,iBAAA;EAAA,IAEhB,IAAA;ED1BQ;;;AAAiB;;;;ECqC7B,KAAA,4BAAiC,cAAA,CAAe,CAAA;AAAA;;;;AF1EzD;;;;;;;;;;;;;;;AAwDc;;cG1CD,qBAAA,SAA8B,iBAAA;EAAA,mBACtB,MAAA,EAAM,MAAA;EAEH,MAAA,CACpB,SAAA,EAAW,kBAAA,EACX,MAAA,UACA,MAAA,EAAQ,qBAAA,GACP,OAAA;EAAA,UAmBa,gBAAA,IAAoB,OAAA;AAAA;;;;;AHxCtC;;;;;;;cIKa,qBAAA,SAA8B,iBAAA;EACnB,MAAA,CACpB,SAAA,EAAW,kBAAA,EACX,MAAA,UACA,MAAA,EAAQ,qBAAA,GACP,OAAA;EAAA,UA2BO,UAAA,CAAW,SAAA,EAAW,kBAAA;AAAA;;;;;;;;;;;;;;;;;AJmBpB;;;;AC/Dd;;;cIiCa,eAAA,mBAAe,OAAA,kBAAA,MAAA"}