alepha 0.22.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 (869) 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 +242 -230
  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 -1109
  58. package/dist/api/users/index.d.ts.map +1 -1
  59. package/dist/api/users/index.js +454 -369
  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 +169 -157
  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 +244 -475
  102. package/dist/cli/core/index.d.ts.map +1 -1
  103. package/dist/cli/core/index.js +308 -383
  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 +20 -39
  110. package/dist/cli/i18n/index.d.ts.map +1 -1
  111. package/dist/cli/i18n/index.js +51 -17
  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 +383 -410
  118. package/dist/cli/platform-lib/index.d.ts.map +1 -1
  119. package/dist/cli/platform-lib/index.js +300 -258
  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 +82 -194
  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 +36 -90
  183. package/dist/mcp/index.d.ts.map +1 -1
  184. package/dist/mcp/index.js +65 -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 -6
  219. package/dist/react/form/index.d.ts.map +1 -1
  220. package/dist/react/form/index.js +107 -71
  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 +47 -5
  227. package/dist/react/i18n/index.d.ts.map +1 -1
  228. package/dist/react/i18n/index.js +116 -12
  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 +188 -29
  234. package/dist/react/router/index.browser.js.map +1 -1
  235. package/dist/react/router/index.d.ts +480 -372
  236. package/dist/react/router/index.d.ts.map +1 -1
  237. package/dist/react/router/index.js +261 -47
  238. package/dist/react/router/index.js.map +1 -1
  239. package/dist/react/sitemap/index.browser.js +35 -0
  240. package/dist/react/sitemap/index.browser.js.map +1 -0
  241. package/dist/react/sitemap/index.d.ts +91 -0
  242. package/dist/react/sitemap/index.d.ts.map +1 -0
  243. package/dist/react/sitemap/index.js +131 -0
  244. package/dist/react/sitemap/index.js.map +1 -0
  245. package/dist/react/testing/index.d.ts +4 -5
  246. package/dist/react/testing/index.d.ts.map +1 -1
  247. package/dist/react/testing/index.js +41 -15
  248. package/dist/react/testing/index.js.map +1 -1
  249. package/dist/react/testing/{chunk-BpyX8vjI.js → rolldown-runtime-Bl3dcgcQ.js} +1 -1
  250. package/dist/react/ui/index.d.ts +35 -34
  251. package/dist/react/ui/index.d.ts.map +1 -1
  252. package/dist/react/ui/index.js +12 -17
  253. package/dist/react/ui/index.js.map +1 -1
  254. package/dist/redis/index.bun.js +5 -5
  255. package/dist/redis/index.bun.js.map +1 -1
  256. package/dist/redis/index.d.ts +6 -7
  257. package/dist/redis/index.d.ts.map +1 -1
  258. package/dist/redis/index.js +6 -6
  259. package/dist/redis/index.js.map +1 -1
  260. package/dist/retry/index.d.ts +0 -1
  261. package/dist/retry/index.d.ts.map +1 -1
  262. package/dist/retry/index.js.map +1 -1
  263. package/dist/router/index.d.ts.map +1 -1
  264. package/dist/router/index.js.map +1 -1
  265. package/dist/scheduler/index.d.ts +4 -12
  266. package/dist/scheduler/index.d.ts.map +1 -1
  267. package/dist/scheduler/index.js +9 -4
  268. package/dist/scheduler/index.js.map +1 -1
  269. package/dist/scheduler/index.workerd.js +9 -4
  270. package/dist/scheduler/index.workerd.js.map +1 -1
  271. package/dist/security/index.browser.js +30 -28
  272. package/dist/security/index.browser.js.map +1 -1
  273. package/dist/security/index.d.ts +113 -44
  274. package/dist/security/index.d.ts.map +1 -1
  275. package/dist/security/index.js +452 -37
  276. package/dist/security/index.js.map +1 -1
  277. package/dist/server/auth/index.browser.js +19 -19
  278. package/dist/server/auth/index.browser.js.map +1 -1
  279. package/dist/server/auth/index.d.ts +215 -187
  280. package/dist/server/auth/index.d.ts.map +1 -1
  281. package/dist/server/auth/index.js +1145 -86
  282. package/dist/server/auth/index.js.map +1 -1
  283. package/dist/server/cookies/index.browser.js +103 -5
  284. package/dist/server/cookies/index.browser.js.map +1 -1
  285. package/dist/server/cookies/index.d.ts +86 -4
  286. package/dist/server/cookies/index.d.ts.map +1 -1
  287. package/dist/server/cookies/index.js +121 -8
  288. package/dist/server/cookies/index.js.map +1 -1
  289. package/dist/server/core/index.browser.js +22 -27
  290. package/dist/server/core/index.browser.js.map +1 -1
  291. package/dist/server/core/index.d.ts +134 -85
  292. package/dist/server/core/index.d.ts.map +1 -1
  293. package/dist/server/core/index.js +130 -118
  294. package/dist/server/core/index.js.map +1 -1
  295. package/dist/server/cors/index.d.ts +9 -10
  296. package/dist/server/cors/index.d.ts.map +1 -1
  297. package/dist/server/cors/index.js +14 -26
  298. package/dist/server/cors/index.js.map +1 -1
  299. package/dist/server/etag/index.d.ts +2 -3
  300. package/dist/server/etag/index.d.ts.map +1 -1
  301. package/dist/server/etag/index.js.map +1 -1
  302. package/dist/server/health/index.d.ts +18 -19
  303. package/dist/server/health/index.d.ts.map +1 -1
  304. package/dist/server/health/index.js +6 -6
  305. package/dist/server/health/index.js.map +1 -1
  306. package/dist/server/links/index.browser.js +15 -18
  307. package/dist/server/links/index.browser.js.map +1 -1
  308. package/dist/server/links/index.d.ts +66 -67
  309. package/dist/server/links/index.d.ts.map +1 -1
  310. package/dist/server/links/index.js +29 -32
  311. package/dist/server/links/index.js.map +1 -1
  312. package/dist/server/metrics/index.d.ts +0 -1
  313. package/dist/server/metrics/index.d.ts.map +1 -1
  314. package/dist/server/metrics/index.js +10 -3
  315. package/dist/server/metrics/index.js.map +1 -1
  316. package/dist/server/proxy/index.d.ts +0 -1
  317. package/dist/server/proxy/index.d.ts.map +1 -1
  318. package/dist/server/proxy/index.js.map +1 -1
  319. package/dist/server/rate-limit/index.d.ts +8 -9
  320. package/dist/server/rate-limit/index.d.ts.map +1 -1
  321. package/dist/server/rate-limit/index.js +6 -12
  322. package/dist/server/rate-limit/index.js.map +1 -1
  323. package/dist/server/static/index.d.ts +0 -1
  324. package/dist/server/static/index.d.ts.map +1 -1
  325. package/dist/server/static/index.js.map +1 -1
  326. package/dist/server/swagger/index.d.ts +4 -4
  327. package/dist/server/swagger/index.d.ts.map +1 -1
  328. package/dist/server/swagger/index.js +37 -25
  329. package/dist/server/swagger/index.js.map +1 -1
  330. package/dist/sms/index.d.ts +0 -1
  331. package/dist/sms/index.d.ts.map +1 -1
  332. package/dist/sms/index.js.map +1 -1
  333. package/dist/system/index.browser.js.map +1 -1
  334. package/dist/system/index.d.ts +0 -1
  335. package/dist/system/index.d.ts.map +1 -1
  336. package/dist/system/index.js +2 -1
  337. package/dist/system/index.js.map +1 -1
  338. package/dist/system/index.workerd.js.map +1 -1
  339. package/dist/topic/core/index.d.ts +19 -20
  340. package/dist/topic/core/index.d.ts.map +1 -1
  341. package/dist/topic/core/index.js +8 -8
  342. package/dist/topic/core/index.js.map +1 -1
  343. package/dist/topic/redis/index.d.ts +3 -4
  344. package/dist/topic/redis/index.d.ts.map +1 -1
  345. package/dist/topic/redis/index.js +2 -2
  346. package/dist/topic/redis/index.js.map +1 -1
  347. package/package.json +36 -36
  348. package/src/api/audits/__tests__/AuditJobs.spec.ts +83 -0
  349. package/src/api/audits/__tests__/AuditService.spec.ts +139 -1
  350. package/src/api/audits/controllers/AdminAuditController.ts +41 -41
  351. package/src/api/audits/entities/audits.ts +22 -22
  352. package/src/api/audits/index.ts +6 -1
  353. package/src/api/audits/jobs/AuditJobs.ts +29 -0
  354. package/src/api/audits/parameters/AuditParameters.ts +51 -0
  355. package/src/api/audits/primitives/$audit.ts +24 -0
  356. package/src/api/audits/schemas/auditQuerySchema.ts +13 -13
  357. package/src/api/audits/schemas/createAuditSchema.ts +18 -18
  358. package/src/api/audits/services/AuditService.ts +79 -7
  359. package/src/api/files/__tests__/FileController.spec.ts +5 -5
  360. package/src/api/files/__tests__/FileJobs.spec.ts +6 -0
  361. package/src/api/files/controllers/FileController.ts +25 -25
  362. package/src/api/files/entities/files.ts +15 -15
  363. package/src/api/files/schemas/fileCreatorSummarySchema.ts +7 -7
  364. package/src/api/files/schemas/fileQuerySchema.ts +9 -9
  365. package/src/api/files/schemas/fileResourceSchema.ts +7 -9
  366. package/src/api/files/schemas/storageStatsSchema.ts +13 -13
  367. package/src/api/jobs/__tests__/$job-hardening.spec.ts +289 -0
  368. package/src/api/jobs/__tests__/$job.spec.ts +18 -18
  369. package/src/api/jobs/controllers/AdminJobController.ts +8 -8
  370. package/src/api/jobs/entities/jobExecutionEntity.ts +29 -19
  371. package/src/api/jobs/providers/JobProvider.ts +128 -12
  372. package/src/api/jobs/providers/JobQueueProvider.ts +2 -2
  373. package/src/api/jobs/schemas/jobConfigAtom.ts +22 -22
  374. package/src/api/jobs/schemas/jobExecutionQuerySchema.ts +6 -6
  375. package/src/api/jobs/schemas/jobExecutionResourceSchema.ts +11 -15
  376. package/src/api/jobs/schemas/jobRegistrationSchema.ts +20 -19
  377. package/src/api/jobs/schemas/triggerJobSchema.ts +3 -3
  378. package/src/api/jobs/services/JobService.ts +6 -6
  379. package/src/api/keys/__tests__/ApiKeyService.spec.ts +2 -2
  380. package/src/api/keys/controllers/AdminApiKeyController.ts +10 -10
  381. package/src/api/keys/entities/apiKeyEntity.ts +15 -15
  382. package/src/api/keys/schemas/adminApiKeyQuerySchema.ts +4 -4
  383. package/src/api/keys/schemas/adminApiKeyResourceSchema.ts +15 -15
  384. package/src/api/keys/schemas/createApiKeyBodySchema.ts +5 -5
  385. package/src/api/keys/schemas/createApiKeyResponseSchema.ts +9 -9
  386. package/src/api/keys/schemas/listApiKeyResponseSchema.ts +13 -13
  387. package/src/api/keys/schemas/revokeApiKeyParamsSchema.ts +3 -3
  388. package/src/api/keys/schemas/revokeApiKeyResponseSchema.ts +3 -3
  389. package/src/api/notifications/__tests__/AlephaApiNotifications.spec.ts +2 -2
  390. package/src/api/notifications/controllers/AdminNotificationController.ts +38 -14
  391. package/src/api/notifications/jobs/NotificationJobs.ts +7 -6
  392. package/src/api/notifications/primitives/$notification.ts +43 -4
  393. package/src/api/notifications/schemas/notificationContactPreferencesSchema.ts +4 -4
  394. package/src/api/notifications/schemas/notificationContactSchema.ts +7 -7
  395. package/src/api/notifications/schemas/notificationDetailResourceSchema.ts +9 -11
  396. package/src/api/notifications/schemas/notificationPayloadSchema.ts +11 -9
  397. package/src/api/notifications/schemas/notificationQuerySchema.ts +6 -6
  398. package/src/api/notifications/schemas/notificationResourceSchema.ts +14 -14
  399. package/src/api/notifications/services/NotificationSenderService.ts +38 -2
  400. package/src/api/oauth/__tests__/OAuthClientService.spec.ts +42 -0
  401. package/src/api/oauth/__tests__/OAuthController.spec.ts +128 -0
  402. package/src/api/oauth/controllers/OAuthController.ts +132 -12
  403. package/src/api/oauth/entities/oauthClientEntity.ts +29 -12
  404. package/src/api/oauth/helpers/oauthMetadata.ts +1 -0
  405. package/src/api/oauth/helpers/oidcMetadata.ts +19 -0
  406. package/src/api/oauth/index.ts +1 -0
  407. package/src/api/oauth/schemas/authorizeDecisionBodySchema.ts +12 -11
  408. package/src/api/oauth/schemas/authorizeQuerySchema.ts +12 -10
  409. package/src/api/oauth/schemas/registerClientBodySchema.ts +10 -11
  410. package/src/api/oauth/schemas/tokenRequestBodySchema.ts +9 -8
  411. package/src/api/oauth/services/OAuthClientService.ts +228 -15
  412. package/src/api/organizations/controllers/AdminOrganizationController.ts +8 -8
  413. package/src/api/organizations/entities/organizations.ts +6 -6
  414. package/src/api/organizations/schemas/createOrganizationSchema.ts +5 -5
  415. package/src/api/organizations/schemas/organizationQuerySchema.ts +4 -4
  416. package/src/api/organizations/schemas/updateOrganizationSchema.ts +1 -2
  417. package/src/api/parameters/__tests__/$parameter.spec.ts +229 -50
  418. package/src/api/parameters/controllers/AdminParameterController.ts +9 -12
  419. package/src/api/parameters/entities/parameters.ts +29 -16
  420. package/src/api/parameters/primitives/$parameter.ts +3 -3
  421. package/src/api/parameters/schemas/activateParameterBodySchema.ts +4 -4
  422. package/src/api/parameters/schemas/createParameterVersionBodySchema.ts +15 -15
  423. package/src/api/parameters/schemas/parameterCreatorSummarySchema.ts +7 -7
  424. package/src/api/parameters/schemas/parameterCurrentResponseSchema.ts +7 -7
  425. package/src/api/parameters/schemas/parameterHistoryResponseSchema.ts +3 -3
  426. package/src/api/parameters/schemas/parameterNameParamSchema.ts +2 -3
  427. package/src/api/parameters/schemas/parameterNamesResponseSchema.ts +3 -3
  428. package/src/api/parameters/schemas/parameterResponseSchema.ts +3 -3
  429. package/src/api/parameters/schemas/parameterStatusSchema.ts +2 -2
  430. package/src/api/parameters/schemas/parameterTreeNodeSchema.ts +6 -6
  431. package/src/api/parameters/schemas/parameterVersionParamSchema.ts +5 -6
  432. package/src/api/parameters/schemas/parameterVersionResponseSchema.ts +3 -3
  433. package/src/api/parameters/schemas/rollbackParameterBodySchema.ts +6 -9
  434. package/src/api/parameters/services/ParameterProvider.ts +152 -65
  435. package/src/api/payments/controllers/AdminPaymentController.ts +7 -7
  436. package/src/api/payments/controllers/MockCheckoutController.ts +79 -28
  437. package/src/api/payments/controllers/PaymentController.ts +4 -4
  438. package/src/api/payments/entities/paymentIntents.ts +11 -11
  439. package/src/api/payments/entities/paymentMethods.ts +11 -11
  440. package/src/api/payments/entities/refunds.ts +9 -9
  441. package/src/api/payments/providers/PaymentProvider.ts +18 -0
  442. package/src/api/payments/schemas/intentSchemas.ts +25 -25
  443. package/src/api/payments/schemas/paymentMethodSchemas.ts +3 -3
  444. package/src/api/payments/services/PaymentService.ts +60 -3
  445. package/src/api/subscriptions/__tests__/SubscriptionService.spec.ts +14 -0
  446. package/src/api/subscriptions/controllers/AdminSubscriptionController.ts +11 -11
  447. package/src/api/subscriptions/controllers/SubscriptionController.ts +5 -4
  448. package/src/api/subscriptions/entities/subscriptionEvents.ts +15 -15
  449. package/src/api/subscriptions/entities/subscriptions.ts +22 -22
  450. package/src/api/subscriptions/notifications/SubscriptionNotifications.ts +22 -22
  451. package/src/api/subscriptions/schemas/cancelSubscriptionSchema.ts +4 -4
  452. package/src/api/subscriptions/schemas/changePlanSchema.ts +5 -5
  453. package/src/api/subscriptions/schemas/createSubscriptionSchema.ts +14 -7
  454. package/src/api/subscriptions/schemas/entitlementsSchema.ts +10 -10
  455. package/src/api/subscriptions/schemas/mrrSchema.ts +9 -9
  456. package/src/api/subscriptions/schemas/planDefinitionSchema.ts +21 -21
  457. package/src/api/subscriptions/schemas/planResourceSchema.ts +19 -19
  458. package/src/api/subscriptions/schemas/subscriptionQuerySchema.ts +8 -8
  459. package/src/api/subscriptions/schemas/subscriptionSettingsSchema.ts +7 -7
  460. package/src/api/subscriptions/schemas/subscriptionStatsSchema.ts +17 -17
  461. package/src/api/subscriptions/services/SubscriptionConfig.ts +2 -2
  462. package/src/api/users/__tests__/ApiKeys-integration.spec.ts +11 -11
  463. package/src/api/users/atoms/realmAuthSettingsAtom.ts +111 -119
  464. package/src/api/users/controllers/AdminIdentityController.ts +29 -19
  465. package/src/api/users/controllers/AdminSessionController.ts +37 -27
  466. package/src/api/users/controllers/AdminUserController.ts +75 -53
  467. package/src/api/users/controllers/MySessionController.ts +125 -0
  468. package/src/api/users/controllers/RealmController.ts +9 -9
  469. package/src/api/users/controllers/UserController.ts +55 -55
  470. package/src/api/users/entities/identities.ts +8 -8
  471. package/src/api/users/entities/sessions.ts +17 -17
  472. package/src/api/users/entities/users.ts +17 -17
  473. package/src/api/users/index.ts +3 -0
  474. package/src/api/users/notifications/UserNotifications.ts +76 -24
  475. package/src/api/users/primitives/$realm.ts +12 -0
  476. package/src/api/users/schemas/completePasswordResetRequestSchema.ts +8 -12
  477. package/src/api/users/schemas/completeRegistrationRequestSchema.ts +17 -20
  478. package/src/api/users/schemas/createUserSchema.ts +2 -2
  479. package/src/api/users/schemas/identityQuerySchema.ts +4 -4
  480. package/src/api/users/schemas/identityResourceSchema.ts +3 -2
  481. package/src/api/users/schemas/loginSchema.ts +4 -4
  482. package/src/api/users/schemas/passwordResetIntentResponseSchema.ts +6 -8
  483. package/src/api/users/schemas/realmConfigSchema.ts +10 -10
  484. package/src/api/users/schemas/registerQuerySchema.ts +6 -6
  485. package/src/api/users/schemas/registerRequestSchema.ts +21 -43
  486. package/src/api/users/schemas/registerResponseSchema.ts +2 -2
  487. package/src/api/users/schemas/registerSchema.ts +13 -31
  488. package/src/api/users/schemas/registrationIntentResponseSchema.ts +19 -23
  489. package/src/api/users/schemas/resetPasswordSchema.ts +10 -17
  490. package/src/api/users/schemas/sessionQuerySchema.ts +3 -3
  491. package/src/api/users/schemas/sessionResourceSchema.ts +25 -25
  492. package/src/api/users/schemas/updateUserSchema.ts +3 -4
  493. package/src/api/users/schemas/userQuerySchema.ts +7 -7
  494. package/src/api/users/services/RegistrationService.ts +25 -11
  495. package/src/api/users/services/UserService.ts +12 -6
  496. package/src/api/verifications/__tests__/CodeVerification.spec.ts +63 -101
  497. package/src/api/verifications/__tests__/LinkVerification.spec.ts +23 -92
  498. package/src/api/verifications/controllers/VerificationController.ts +13 -27
  499. package/src/api/verifications/entities/verifications.ts +13 -14
  500. package/src/api/verifications/schemas/requestVerificationCodeResponseSchema.ts +17 -14
  501. package/src/api/verifications/schemas/validateVerificationCodeResponseSchema.ts +9 -10
  502. package/src/api/verifications/schemas/verificationSettingsSchema.ts +65 -66
  503. package/src/api/verifications/schemas/verificationTypeEnumSchema.ts +2 -2
  504. package/src/api/verifications/services/VerificationService.ts +12 -0
  505. package/src/background/__tests__/BackgroundTaskProvider.spec.ts +36 -0
  506. package/src/batch/__tests__/$batch.spec.ts +22 -22
  507. package/src/batch/__tests__/startup-buffering.spec.ts +9 -9
  508. package/src/bin/index.ts +1 -1
  509. package/src/bucket/__tests__/TenantScopedBucket.spec.ts +60 -0
  510. package/src/bucket/providers/LocalFileStorageProvider.ts +14 -6
  511. package/src/bucket/providers/MemoryFileStorageProvider.ts +18 -7
  512. package/src/bucket/providers/R2FileStorageProvider.ts +14 -6
  513. package/src/bucket/providers/S3FileStorageProvider.ts +31 -15
  514. package/src/cache/core/primitives/$cache.ts +7 -10
  515. package/src/cache/database/entities/cacheEntries.ts +16 -27
  516. package/src/cache/database/providers/DatabaseCacheProvider.ts +15 -13
  517. package/src/cache/redis/providers/RedisCacheProvider.ts +6 -6
  518. package/src/captcha/providers/TurnstileCaptchaProvider.ts +4 -4
  519. package/src/cli/core/__tests__/BuildCloudflareTask.spec.ts +178 -0
  520. package/src/cli/core/__tests__/BuildDockerTask.spec.ts +0 -2
  521. package/src/cli/core/__tests__/DbCommand.spec.ts +108 -0
  522. package/src/cli/core/atoms/appEntryOptions.ts +5 -5
  523. package/src/cli/core/atoms/buildOptions.ts +76 -88
  524. package/src/cli/core/atoms/changelogOptions.ts +3 -3
  525. package/src/cli/core/atoms/devOptions.ts +3 -3
  526. package/src/cli/core/commands/build.ts +36 -49
  527. package/src/cli/core/commands/db.ts +171 -83
  528. package/src/cli/core/commands/dev.ts +8 -8
  529. package/src/cli/core/commands/gen/changelog.ts +12 -14
  530. package/src/cli/core/commands/gen/env.ts +6 -6
  531. package/src/cli/core/commands/gen/openapi.ts +6 -6
  532. package/src/cli/core/commands/init.ts +28 -33
  533. package/src/cli/core/commands/pack.ts +10 -10
  534. package/src/cli/core/commands/root.ts +7 -8
  535. package/src/cli/core/commands/test.ts +17 -20
  536. package/src/cli/core/index.ts +0 -3
  537. package/src/cli/core/tasks/BuildCloudflareTask.ts +138 -245
  538. package/src/cli/core/tasks/BuildPrerenderTask.ts +44 -7
  539. package/src/cli/core/templates/apiHelloResponseSchemaTs.ts +4 -4
  540. package/src/cli/devtools/atoms/devtoolsOptions.ts +6 -6
  541. package/src/cli/i18n/__tests__/I18nCheckService.spec.ts +48 -0
  542. package/src/cli/i18n/atoms/i18nOptions.ts +8 -8
  543. package/src/cli/i18n/services/I18nCheckService.ts +65 -11
  544. package/src/cli/platform/commands/SecretsCommand.ts +24 -25
  545. package/src/cli/platform/commands/platform.ts +40 -46
  546. package/src/cli/platform/index.ts +1 -1
  547. package/src/cli/platform-lib/__tests__/CloudflareAdapter.spec.ts +0 -4
  548. package/src/cli/platform-lib/__tests__/PlatformInspector.spec.ts +10 -3
  549. package/src/cli/platform-lib/__tests__/VercelAdapter.spec.ts +0 -2
  550. package/src/cli/platform-lib/adapters/CloudflareAdapter.ts +141 -50
  551. package/src/cli/platform-lib/adapters/VercelAdapter.ts +6 -11
  552. package/src/cli/platform-lib/atoms/platformOptions.ts +46 -25
  553. package/src/cli/platform-lib/schemas/cloudflare.ts +87 -87
  554. package/src/cli/platform-lib/schemas/platform.ts +51 -51
  555. package/src/cli/platform-lib/schemas/vercel.ts +28 -28
  556. package/src/cli/platform-lib/services/CloudflareApi.ts +5 -5
  557. package/src/cli/platform-lib/services/VercelApi.ts +4 -4
  558. package/src/cli/platform-lib/services/VercelCli.ts +6 -15
  559. package/src/cli/platform-lib/services/WranglerApi.ts +6 -15
  560. package/src/cli/vendor/atoms/vendorOptions.ts +9 -9
  561. package/src/cli/vendor/commands/VendorCommand.ts +11 -12
  562. package/src/command/__tests__/$command.spec.ts +82 -83
  563. package/src/command/__tests__/Asker.spec.ts +6 -13
  564. package/src/command/__tests__/CliProvider.spec.ts +136 -149
  565. package/src/command/__tests__/Runner.spec.ts +86 -110
  566. package/src/command/helpers/Asker.ts +23 -58
  567. package/src/command/helpers/Runner.ts +34 -110
  568. package/src/command/index.ts +4 -9
  569. package/src/command/primitives/$command.ts +10 -10
  570. package/src/command/providers/CliProvider.ts +183 -161
  571. package/src/core/Alepha.ts +62 -13
  572. package/src/core/__tests__/$atom.spec.ts +52 -3
  573. package/src/core/__tests__/$computed.spec.ts +129 -0
  574. package/src/core/__tests__/$env.spec.ts +13 -13
  575. package/src/core/__tests__/$inject.spec.ts +4 -4
  576. package/src/core/__tests__/$module.spec.ts +1 -1
  577. package/src/core/__tests__/Alepha-graph.spec.ts +1 -1
  578. package/src/core/__tests__/Alepha-parseEnv.spec.ts +32 -32
  579. package/src/core/__tests__/Alepha-start.spec.ts +3 -3
  580. package/src/core/__tests__/CodecManager.spec.ts +113 -94
  581. package/src/core/__tests__/KeylessJsonSchemaCodec.spec.ts +138 -138
  582. package/src/core/__tests__/SchemaValidator.spec.ts +43 -44
  583. package/src/core/__tests__/StateManager.persist.browser.spec.ts +87 -0
  584. package/src/core/__tests__/StateManager.spec.ts +423 -0
  585. package/src/core/__tests__/TypeBox-usecases.spec.ts +8 -8
  586. package/src/core/__tests__/TypeProvider.spec.ts +314 -309
  587. package/src/core/__tests__/dump.spec.ts +6 -6
  588. package/src/core/__tests__/pagination.spec.ts +4 -4
  589. package/src/core/__tests__/scoped-after-start.spec.ts +43 -0
  590. package/src/core/errors/TypeBoxError.ts +10 -4
  591. package/src/core/helpers/FileLike.ts +5 -5
  592. package/src/core/helpers/coerceStrings.ts +70 -0
  593. package/src/core/helpers/jsonSchemaToZod.ts +112 -0
  594. package/src/core/index.shared.ts +4 -1
  595. package/src/core/primitives/$atom.ts +95 -27
  596. package/src/core/primitives/$computed.ts +148 -0
  597. package/src/core/primitives/$env.ts +5 -5
  598. package/src/core/primitives/$state.ts +1 -1
  599. package/src/core/providers/AlsProvider.ts +26 -0
  600. package/src/core/providers/CodecManager.ts +1 -2
  601. package/src/core/providers/JsonSchemaCodec.ts +1 -2
  602. package/src/core/providers/KeylessJsonSchemaCodec.ts +82 -57
  603. package/src/core/providers/SchemaValidator.ts +48 -158
  604. package/src/core/providers/StateManager.ts +383 -9
  605. package/src/core/providers/TypeProvider.ts +80 -734
  606. package/src/core/providers/ZodProvider.ts +380 -0
  607. package/src/core/providers/zodAugment.ts +69 -0
  608. package/src/core/schemas/pageQuerySchema.ts +19 -21
  609. package/src/core/schemas/pageSchema.ts +47 -57
  610. package/src/crypto/__tests__/SecretProvider.spec.ts +31 -0
  611. package/src/crypto/providers/SecretProvider.ts +16 -10
  612. package/src/datetime/primitives/$throttle.ts +6 -1
  613. package/src/email/brevo/providers/BrevoEmailProvider.ts +4 -4
  614. package/src/email/cloudflare/providers/CloudflareEmailProvider.ts +6 -6
  615. package/src/email/core/index.ts +7 -2
  616. package/src/email/core/primitives/$email.ts +5 -1
  617. package/src/email/core/providers/LocalEmailProvider.ts +5 -5
  618. package/src/email/smtp/providers/NodemailerEmailProvider.ts +41 -52
  619. package/src/fake/__tests__/FakeProvider.spec.ts +110 -110
  620. package/src/fake/__tests__/keyName.example.ts +21 -21
  621. package/src/fake/__tests__/keyName.spec.ts +41 -41
  622. package/src/fake/__tests__/module.example.ts +8 -8
  623. package/src/fake/providers/FakeProvider.ts +122 -121
  624. package/src/lock/core/__tests__/lock-mutual-exclusion.spec.ts +44 -0
  625. package/src/lock/core/index.ts +1 -0
  626. package/src/lock/core/primitives/$lock.ts +13 -6
  627. package/src/logger/__tests__/CliFormatterProvider.spec.ts +76 -0
  628. package/src/logger/__tests__/Logger.spec.ts +49 -0
  629. package/src/logger/index.ts +25 -18
  630. package/src/logger/providers/CliFormatterProvider.ts +75 -0
  631. package/src/logger/schemas/logEntrySchema.ts +10 -10
  632. package/src/logger/services/Logger.ts +18 -0
  633. package/src/mcp/__tests__/$prompt.spec.ts +21 -23
  634. package/src/mcp/__tests__/$tool.spec.ts +22 -22
  635. package/src/mcp/__tests__/McpServerProvider.spec.ts +82 -11
  636. package/src/mcp/__tests__/StreamableHttpMcpTransport.spec.ts +2 -2
  637. package/src/mcp/__tests__/integration.spec.ts +33 -33
  638. package/src/mcp/primitives/$prompt.ts +11 -9
  639. package/src/mcp/primitives/$tool.ts +27 -86
  640. package/src/mcp/providers/McpServerProvider.ts +55 -0
  641. package/src/mcp/transports/StreamableHttpMcpTransport.ts +7 -7
  642. package/src/orm/__tests__/$repository-tests.ts +133 -27
  643. package/src/orm/__tests__/$repository.spec.ts +23 -0
  644. package/src/orm/__tests__/$transactional-tests.ts +4 -4
  645. package/src/orm/__tests__/ModelBuilder-tests.ts +28 -28
  646. package/src/orm/__tests__/ModelBuilder.spec.ts +124 -106
  647. package/src/orm/__tests__/QueryManager.spec.ts +5 -5
  648. package/src/orm/__tests__/delete-returning-tests.ts +11 -11
  649. package/src/orm/__tests__/deletedAt-tests.ts +3 -3
  650. package/src/orm/__tests__/enums.spec.ts +29 -25
  651. package/src/orm/__tests__/execute-tests.ts +8 -8
  652. package/src/orm/__tests__/fixtures/bigEntitySchema.ts +48 -48
  653. package/src/orm/__tests__/fixtures/userEntitySchema.ts +6 -6
  654. package/src/orm/__tests__/joins-tests.ts +30 -30
  655. package/src/orm/__tests__/organization-tests.ts +105 -3
  656. package/src/orm/__tests__/organization.spec.ts +46 -0
  657. package/src/orm/__tests__/orm-errors.spec.ts +10 -10
  658. package/src/orm/__tests__/orm-next-tests.ts +29 -29
  659. package/src/orm/__tests__/orm-showcase-tests.ts +9 -9
  660. package/src/orm/__tests__/primaryKey.spec.ts +4 -4
  661. package/src/orm/__tests__/query-date-encoding-tests.ts +17 -17
  662. package/src/orm/__tests__/ref-auto-onDelete.spec.ts +14 -14
  663. package/src/orm/__tests__/references.spec.ts +7 -7
  664. package/src/orm/__tests__/security.spec.ts +17 -17
  665. package/src/orm/__tests__/string-operators-tests.ts +5 -5
  666. package/src/orm/__tests__/timestamps-tests.ts +14 -14
  667. package/src/orm/__tests__/validation-tests.ts +5 -5
  668. package/src/orm/core/__tests__/BunSqliteProvider.bun.spec.ts +8 -8
  669. package/src/orm/core/constants/PG_SYMBOLS.ts +13 -1
  670. package/src/orm/core/entities/alephaSequences.ts +8 -8
  671. package/src/orm/core/helpers/pgAttr.ts +4 -4
  672. package/src/orm/core/primitives/$entity.ts +10 -6
  673. package/src/orm/core/providers/DatabaseTypeProvider.ts +46 -53
  674. package/src/orm/core/providers/drivers/BunSqliteProvider.ts +8 -8
  675. package/src/orm/core/providers/drivers/CloudflareD1Provider.ts +3 -5
  676. package/src/orm/core/providers/drivers/NodeSqliteProvider.ts +8 -8
  677. package/src/orm/core/schemas/databaseEnvSchema.ts +4 -4
  678. package/src/orm/core/schemas/insertSchema.ts +14 -18
  679. package/src/orm/core/schemas/legacyIdSchema.ts +2 -2
  680. package/src/orm/core/schemas/updateSchema.ts +10 -16
  681. package/src/orm/core/services/PgRelationManager.ts +2 -2
  682. package/src/orm/core/services/QueryManager.ts +13 -2
  683. package/src/orm/core/services/Repository.ts +88 -33
  684. package/src/orm/core/services/SqliteModelBuilder.ts +38 -45
  685. package/src/orm/postgres/__tests__/BunPostgresProvider.bun.spec.ts +4 -4
  686. package/src/orm/postgres/providers/CloudflareHyperdriveProvider.ts +4 -6
  687. package/src/orm/postgres/schemas/postgresEnvSchema.ts +6 -6
  688. package/src/orm/postgres/services/PostgresModelBuilder.ts +127 -114
  689. package/src/queue/core/__tests__/$consumer.spec.ts +4 -4
  690. package/src/queue/core/__tests__/WorkerProvider.spec.ts +4 -4
  691. package/src/queue/core/__tests__/shared.ts +6 -6
  692. package/src/queue/core/primitives/$consumer.ts +5 -5
  693. package/src/queue/core/primitives/$queue.ts +44 -61
  694. package/src/queue/core/providers/CloudflareQueueProvider.ts +6 -0
  695. package/src/queue/core/providers/WorkerProvider.ts +17 -14
  696. package/src/queue/redis/providers/RedisQueueProvider.ts +3 -3
  697. package/src/react/core/__tests__/ErrorBoundary.browser.spec.tsx +92 -0
  698. package/src/react/core/__tests__/Router.spec.tsx +4 -4
  699. package/src/react/core/__tests__/useComputed.browser.spec.tsx +192 -0
  700. package/src/react/core/__tests__/useQuery.browser.spec.tsx +48 -0
  701. package/src/react/core/__tests__/useSelector.browser.spec.tsx +105 -0
  702. package/src/react/core/__tests__/useStore.browser.spec.tsx +113 -0
  703. package/src/react/core/components/ErrorBoundary.tsx +42 -0
  704. package/src/react/core/hooks/useAction.ts +56 -19
  705. package/src/react/core/hooks/useComputed.ts +91 -0
  706. package/src/react/core/hooks/useSelector.ts +67 -0
  707. package/src/react/core/hooks/useStore.ts +36 -17
  708. package/src/react/core/index.ts +3 -0
  709. package/src/react/core/utils/shallowEqual.ts +36 -0
  710. package/src/react/form/__tests__/FormModel-submit-loading.spec.ts +71 -0
  711. package/src/react/form/__tests__/form-submitting-reactive.browser.spec.tsx +96 -0
  712. package/src/react/form/__tests__/useForm.browser.spec.tsx +54 -54
  713. package/src/react/form/errors/FormValidationError.ts +0 -2
  714. package/src/react/form/hooks/useForm.ts +19 -4
  715. package/src/react/form/hooks/useFormQuerySync.ts +0 -0
  716. package/src/react/form/services/FormModel.ts +124 -86
  717. package/src/react/form/services/parseField.ts +66 -27
  718. package/src/react/i18n/__tests__/I18nProvider.spec.ts +89 -0
  719. package/src/react/i18n/__tests__/Localize.spec.tsx +1 -1
  720. package/src/react/i18n/__tests__/locale-routing.spec.ts +107 -0
  721. package/src/react/i18n/providers/I18nProvider.ts +173 -14
  722. package/src/react/router/__tests__/$page.browser.spec.tsx +19 -19
  723. package/src/react/router/__tests__/$page.spec.tsx +21 -21
  724. package/src/react/router/__tests__/ReactBrowserProvider.browser.spec.ts +87 -1
  725. package/src/react/router/__tests__/RouterLocaleProvider.spec.ts +127 -0
  726. package/src/react/router/atoms/ssrManifestAtom.ts +16 -16
  727. package/src/react/router/components/NestedView.tsx +11 -3
  728. package/src/react/router/hooks/useQueryParams.ts +1 -1
  729. package/src/react/router/index.browser.ts +4 -0
  730. package/src/react/router/index.shared.ts +1 -0
  731. package/src/react/router/index.ts +9 -0
  732. package/src/react/router/primitives/$page.ts +2 -2
  733. package/src/react/router/providers/ReactBrowserProvider.ts +64 -13
  734. package/src/react/router/providers/ReactBrowserRouterProvider.ts +15 -1
  735. package/src/react/router/providers/ReactPageProvider.ts +38 -13
  736. package/src/react/router/providers/ReactServerProvider.ts +105 -16
  737. package/src/react/router/providers/RootComponentsProvider.ts +13 -0
  738. package/src/react/router/providers/RouterLocaleProvider.ts +125 -0
  739. package/src/react/router/providers/__tests__/RootComponentsProvider.spec.ts +15 -0
  740. package/src/react/router/providers/__tests__/rootComponents.ssr.browser.spec.tsx +67 -0
  741. package/src/react/sitemap/__tests__/$sitemap.spec.ts +131 -0
  742. package/src/react/sitemap/index.browser.ts +21 -0
  743. package/src/react/sitemap/index.ts +25 -0
  744. package/src/react/sitemap/primitives/$sitemap.browser.ts +26 -0
  745. package/src/react/sitemap/primitives/$sitemap.ts +196 -0
  746. package/src/react/ui/atoms/uiAtom.ts +6 -6
  747. package/src/react/ui/atoms/uiThemeListAtom.ts +7 -7
  748. package/src/react/ui/hooks/useColorMode.ts +11 -4
  749. package/src/react/ui/services/SchemaControl.ts +4 -4
  750. package/src/redis/providers/BunRedisProvider.ts +19 -11
  751. package/src/redis/providers/NodeRedisProvider.ts +3 -3
  752. package/src/scheduler/primitives/$scheduler.ts +21 -8
  753. package/src/security/__tests__/assertRealmScope.spec.ts +29 -0
  754. package/src/security/atoms/currentTenantAtom.ts +6 -6
  755. package/src/security/atoms/currentUserAtom.ts +2 -2
  756. package/src/security/primitives/$issuer.ts +24 -2
  757. package/src/security/providers/JwtProvider.ts +100 -0
  758. package/src/security/providers/SecurityProvider.ts +43 -2
  759. package/src/security/schemas/permissionSchema.ts +19 -19
  760. package/src/security/schemas/roleSchema.ts +22 -28
  761. package/src/security/schemas/userAccountInfoSchema.ts +47 -37
  762. package/src/server/auth/__tests__/appleClientSecret.spec.ts +34 -0
  763. package/src/server/auth/__tests__/federationRedirectReplay.spec.ts +44 -0
  764. package/src/server/auth/helpers/appleClientSecret.ts +24 -0
  765. package/src/server/auth/helpers/jtiReplayGuard.ts +41 -0
  766. package/src/server/auth/helpers/safeRedirectPath.ts +19 -0
  767. package/src/server/auth/index.ts +1 -0
  768. package/src/server/auth/primitives/$auth.ts +6 -6
  769. package/src/server/auth/primitives/$authApple.ts +10 -10
  770. package/src/server/auth/primitives/$authFacebook.ts +10 -10
  771. package/src/server/auth/primitives/$authFranceConnect.ts +10 -10
  772. package/src/server/auth/primitives/$authGithub.ts +10 -10
  773. package/src/server/auth/primitives/$authGoogle.ts +10 -10
  774. package/src/server/auth/primitives/$authMicrosoft.ts +14 -14
  775. package/src/server/auth/providers/ServerAuthProvider.ts +67 -52
  776. package/src/server/auth/schemas/authenticationProviderSchema.ts +9 -12
  777. package/src/server/auth/schemas/tokenResponseSchema.ts +2 -2
  778. package/src/server/auth/schemas/tokensSchema.ts +16 -16
  779. package/src/server/auth/schemas/userinfoResponseSchema.ts +3 -3
  780. package/src/server/cookies/__tests__/AtomCookieBinding.spec.ts +80 -0
  781. package/src/server/cookies/__tests__/AtomCookiePersistence.browser.spec.ts +169 -0
  782. package/src/server/cookies/__tests__/AtomCookiePersistence.spec.ts +294 -0
  783. package/src/server/cookies/__tests__/ServerCookiesProvider.spec.ts +82 -12
  784. package/src/server/cookies/index.browser.ts +4 -1
  785. package/src/server/cookies/index.ts +8 -1
  786. package/src/server/cookies/primitives/$cookie.browser.ts +1 -1
  787. package/src/server/cookies/primitives/$cookie.ts +16 -0
  788. package/src/server/cookies/providers/AtomCookiePersistence.browser.ts +133 -0
  789. package/src/server/cookies/providers/AtomCookiePersistence.ts +148 -0
  790. package/src/server/cookies/providers/ServerCookiesProvider.ts +32 -4
  791. package/src/server/cookies/services/CookieParser.ts +6 -1
  792. package/src/server/core/__tests__/$action.spec.ts +13 -13
  793. package/src/server/core/__tests__/$middleware.spec.ts +10 -10
  794. package/src/server/core/__tests__/$route.spec.ts +9 -9
  795. package/src/server/core/__tests__/$sse.spec.ts +26 -26
  796. package/src/server/core/__tests__/BunHttpServerProvider.bun.spec.ts +6 -6
  797. package/src/server/core/__tests__/HttpClient.spec.ts +2 -2
  798. package/src/server/core/__tests__/NodeHttpServerProvider.spec.ts +15 -3
  799. package/src/server/core/__tests__/ServerBodyParserProvider.spec.ts +14 -14
  800. package/src/server/core/__tests__/ServerMultipartProvider.spec.ts +33 -33
  801. package/src/server/core/__tests__/ServerRouterProvider-errorHandler.spec.ts +5 -1
  802. package/src/server/core/__tests__/ServerRouterProvider-getRoutes.spec.ts +25 -25
  803. package/src/server/core/__tests__/ServerRouterProvider-serializationError.spec.ts +9 -5
  804. package/src/server/core/__tests__/ServerRouterProvider-validationError.spec.ts +56 -24
  805. package/src/server/core/errors/ValidationError.ts +6 -3
  806. package/src/server/core/helpers/isMultipart.ts +2 -1
  807. package/src/server/core/index.ts +5 -2
  808. package/src/server/core/interfaces/ServerRequest.ts +14 -14
  809. package/src/server/core/primitives/$action.ts +26 -36
  810. package/src/server/core/primitives/$route.ts +27 -0
  811. package/src/server/core/primitives/$sse.ts +3 -3
  812. package/src/server/core/providers/BunHttpServerProvider.ts +8 -9
  813. package/src/server/core/providers/NodeHttpServerProvider.ts +8 -9
  814. package/src/server/core/providers/ServerBodyParserProvider.ts +20 -12
  815. package/src/server/core/providers/ServerCompressProvider.ts +9 -10
  816. package/src/server/core/providers/ServerHelmetProvider.ts +26 -27
  817. package/src/server/core/providers/ServerMultipartProvider.ts +19 -19
  818. package/src/server/core/providers/ServerRouterProvider.ts +44 -15
  819. package/src/server/core/schemas/errorSchema.ts +20 -25
  820. package/src/server/core/schemas/okSchema.ts +9 -14
  821. package/src/server/core/services/HttpClient.ts +13 -1
  822. package/src/server/core/services/ServerRequestParser.ts +6 -6
  823. package/src/server/cors/providers/ServerCorsProvider.ts +26 -28
  824. package/src/server/health/schemas/healthSchema.ts +6 -6
  825. package/src/server/links/__tests__/$remote.spec.ts +3 -3
  826. package/src/server/links/__tests__/BatchEndpoint.spec.ts +9 -9
  827. package/src/server/links/__tests__/LinkProvider.spec.ts +9 -9
  828. package/src/server/links/__tests__/ServerLinksProvider.spec.ts +23 -23
  829. package/src/server/links/__tests__/fixtures/CrudApp.ts +21 -21
  830. package/src/server/links/atoms/apiLinksAtom.ts +2 -2
  831. package/src/server/links/atoms/linkOptionsAtom.ts +6 -6
  832. package/src/server/links/primitives/$remote.ts +3 -3
  833. package/src/server/links/providers/LinkProvider.ts +3 -3
  834. package/src/server/links/providers/ServerLinksProvider.ts +20 -20
  835. package/src/server/links/schemas/apiLinksResponseSchema.ts +23 -23
  836. package/src/server/proxy/__tests__/$proxy.spec.ts +9 -9
  837. package/src/server/proxy/providers/ServerProxyProvider.ts +5 -0
  838. package/src/server/rate-limit/providers/ServerRateLimitProvider.ts +18 -20
  839. package/src/server/swagger/__tests__/$swagger.spec.ts +91 -94
  840. package/src/server/swagger/__tests__/ui.spec.ts +3 -3
  841. package/src/server/swagger/providers/ServerSwaggerProvider.ts +66 -43
  842. package/src/system/__tests__/NodeShellProvider.spec.ts +46 -0
  843. package/src/system/providers/NodeShellProvider.ts +4 -1
  844. package/src/topic/core/__tests__/$subscriber.spec.ts +4 -4
  845. package/src/topic/core/__tests__/shared.ts +8 -8
  846. package/src/topic/core/primitives/$subscriber.ts +5 -5
  847. package/src/topic/core/primitives/$topic.ts +14 -14
  848. package/src/topic/redis/providers/RedisTopicProvider.ts +3 -3
  849. package/dist/container/core/index.d.ts +0 -236
  850. package/dist/container/core/index.d.ts.map +0 -1
  851. package/dist/container/core/index.js +0 -231
  852. package/dist/container/core/index.js.map +0 -1
  853. package/dist/container/core/index.workerd.js +0 -192
  854. package/dist/container/core/index.workerd.js.map +0 -1
  855. package/src/cli/core/tasks/BuildSitemapTask.ts +0 -130
  856. package/src/command/helpers/PrettyAsker.ts +0 -256
  857. package/src/command/helpers/PrettyPrint.ts +0 -332
  858. package/src/container/core/__tests__/$container.spec.ts +0 -83
  859. package/src/container/core/index.ts +0 -50
  860. package/src/container/core/index.workerd.ts +0 -53
  861. package/src/container/core/interfaces/ContainerOptions.ts +0 -69
  862. package/src/container/core/primitives/$container.ts +0 -100
  863. package/src/container/core/providers/CloudflareContainerProvider.ts +0 -70
  864. package/src/container/core/providers/ContainerProvider.ts +0 -92
  865. package/src/container/core/providers/MockContainerProvider.ts +0 -62
  866. package/src/container/core/providers/NodeContainerProvider.ts +0 -53
  867. package/src/core/__tests__/jsonSchemaToTypeBox.spec.ts +0 -771
  868. package/src/core/helpers/jsonSchemaToTypeBox.ts +0 -359
  869. /package/dist/orm/core/{chunk-B4FMCO8f.js → rolldown-runtime-B4FMCO8f.js} +0 -0
@@ -1,20 +1,22 @@
1
1
  import { Alepha, AlephaError, Page, PageQuery, Primitive, SchemaValidator, Static, StaticEncode, TNull, TObject, TOptional, TSchema, TUnion } from "alepha";
2
- import { CryptoProvider, IssuerPrimitive, IssuerPrimitiveOptions, SecurityProvider, UserAccount } from "alepha/security";
2
+ import { CryptoProvider, IssuerPrimitive, IssuerPrimitiveOptions, SecurityProvider, SigningConfig, UserAccount } from "alepha/security";
3
3
  import { Page as Page$1, Repository } from "alepha/orm";
4
+ import { VerificationController, VerificationService } from "alepha/api/verifications";
4
5
  import { CaptchaProvider } from "alepha/captcha";
5
6
  import { OAuth2Profile, ServerAuthProvider, WithLinkFn, WithLoginFn } from "alepha/server/auth";
6
- import { VerificationController, VerificationService } from "alepha/api/verifications";
7
7
  import { CacheProvider } from "alepha/cache";
8
8
  import { DateTime, DateTimeProvider } from "alepha/datetime";
9
9
  import { FileSystemProvider } from "alepha/system";
10
10
  import { ParameterPrimitive } from "alepha/api/parameters";
11
11
  import { BuildExtraConfigColumns, SQL, SQLWrapper } from "drizzle-orm";
12
12
  import { LockConfig, LockStrength, PgColumn, PgColumnBuilderBase, PgDatabase, PgInsertValue, PgSelectBase, PgSequenceOptions, PgTableExtraConfigValue, PgTableWithColumns, PgTransaction, UpdateDeleteAction } from "drizzle-orm/pg-core";
13
+ import "drizzle-orm/pg-core/foreign-keys";
13
14
  import { PgTransactionConfig } from "drizzle-orm/pg-core/session";
14
15
  import { CryptoProvider as CryptoProvider$1 } from "alepha/crypto";
15
16
  import * as DrizzleKit from "drizzle-kit/api";
17
+ import "drizzle-orm/d1";
18
+ import "drizzle-orm/sqlite-core";
16
19
  import { FileController } from "alepha/api/files";
17
-
18
20
  //#region ../../src/api/users/atoms/realmAuthSettingsAtom.d.ts
19
21
  /**
20
22
  * Tri-state field requirement for realm auth settings.
@@ -35,42 +37,42 @@ type FieldRequirement = "none" | "optional" | "required";
35
37
  * collision behavior.
36
38
  */
37
39
  type UsernameFieldRequirement = FieldRequirement | "email";
38
- declare const realmAuthSettingsAtom: import("alepha").Atom<import("typebox").TObject<{
39
- displayName: import("typebox").TOptional<import("typebox").TString>;
40
- description: import("typebox").TOptional<import("typebox").TString>;
41
- logoUrl: import("typebox").TOptional<import("typebox").TString>;
42
- registrationAllowed: import("typebox").TBoolean;
43
- email: import("typebox").TUnion<[import("typebox").TLiteral<"none">, import("typebox").TLiteral<"optional">, import("typebox").TLiteral<"required">]>;
44
- username: import("typebox").TUnion<[import("typebox").TLiteral<"none">, import("typebox").TLiteral<"optional">, import("typebox").TLiteral<"required">, import("typebox").TLiteral<"email">]>;
45
- usernameRegExp: import("typebox").TString;
46
- usernameBlocklist: import("typebox").TArray<import("typebox").TString>;
47
- phoneNumber: import("typebox").TUnion<[import("typebox").TLiteral<"none">, import("typebox").TLiteral<"optional">, import("typebox").TLiteral<"required">]>;
48
- verifyEmailRequired: import("typebox").TBoolean;
49
- verifyPhoneRequired: import("typebox").TBoolean;
50
- firstNameLastName: import("typebox").TUnion<[import("typebox").TLiteral<"none">, import("typebox").TLiteral<"optional">, import("typebox").TLiteral<"required">]>;
51
- resetPasswordAllowed: import("typebox").TBoolean;
52
- captchaRequired: import("typebox").TBoolean;
53
- adminEmails: import("typebox").TArray<import("typebox").TString>;
54
- adminUsernames: import("typebox").TArray<import("typebox").TString>;
55
- defaultRoles: import("typebox").TArray<import("typebox").TString>;
56
- verifyEmailUrl: import("typebox").TOptional<import("typebox").TString>;
57
- passwordPolicy: import("typebox").TObject<{
58
- minLength: import("typebox").TInteger;
59
- requireUppercase: import("typebox").TBoolean;
60
- requireLowercase: import("typebox").TBoolean;
61
- requireNumbers: import("typebox").TBoolean;
62
- requireSpecialCharacters: import("typebox").TBoolean;
63
- }>;
64
- loginRateLimit: import("typebox").TObject<{
65
- ipMaxAttempts: import("typebox").TInteger;
66
- accountMaxAttempts: import("typebox").TInteger;
67
- windowMs: import("typebox").TInteger;
68
- }>;
69
- registrationIpMaxAttempts: import("typebox").TInteger;
70
- refreshToken: import("typebox").TObject<{
71
- expirationIdle: import("typebox").TOptional<import("typebox").TInteger>;
72
- }>;
73
- }>, "alepha.api.users.realmAuthSettings">;
40
+ declare const realmAuthSettingsAtom: import("alepha").Atom<import("zod").ZodObject<{
41
+ displayName: import("zod").ZodOptional<import("zod").ZodString>;
42
+ description: import("zod").ZodOptional<import("zod").ZodString>;
43
+ logoUrl: import("zod").ZodOptional<import("zod").ZodString>;
44
+ registrationAllowed: import("zod").ZodBoolean;
45
+ email: import("zod").ZodUnion<readonly [import("zod").ZodLiteral<"none">, import("zod").ZodLiteral<"optional">, import("zod").ZodLiteral<"required">]>;
46
+ username: import("zod").ZodUnion<readonly [import("zod").ZodLiteral<"none">, import("zod").ZodLiteral<"optional">, import("zod").ZodLiteral<"required">, import("zod").ZodLiteral<"email">]>;
47
+ usernameRegExp: import("zod").ZodString;
48
+ usernameBlocklist: import("zod").ZodArray<import("zod").ZodString>;
49
+ phoneNumber: import("zod").ZodUnion<readonly [import("zod").ZodLiteral<"none">, import("zod").ZodLiteral<"optional">, import("zod").ZodLiteral<"required">]>;
50
+ verifyEmailRequired: import("zod").ZodBoolean;
51
+ verifyPhoneRequired: import("zod").ZodBoolean;
52
+ firstNameLastName: import("zod").ZodUnion<readonly [import("zod").ZodLiteral<"none">, import("zod").ZodLiteral<"optional">, import("zod").ZodLiteral<"required">]>;
53
+ resetPasswordAllowed: import("zod").ZodBoolean;
54
+ captchaRequired: import("zod").ZodBoolean;
55
+ adminEmails: import("zod").ZodArray<import("zod").ZodString>;
56
+ adminUsernames: import("zod").ZodArray<import("zod").ZodString>;
57
+ defaultRoles: import("zod").ZodArray<import("zod").ZodString>;
58
+ verifyEmailUrl: import("zod").ZodOptional<import("zod").ZodString>;
59
+ passwordPolicy: import("zod").ZodObject<{
60
+ minLength: import("zod").ZodDefault<import("zod").ZodInt>;
61
+ requireUppercase: import("zod").ZodBoolean;
62
+ requireLowercase: import("zod").ZodBoolean;
63
+ requireNumbers: import("zod").ZodBoolean;
64
+ requireSpecialCharacters: import("zod").ZodBoolean;
65
+ }, import("zod/v4/core").$strip>;
66
+ loginRateLimit: import("zod").ZodObject<{
67
+ ipMaxAttempts: import("zod").ZodDefault<import("zod").ZodInt>;
68
+ accountMaxAttempts: import("zod").ZodDefault<import("zod").ZodInt>;
69
+ windowMs: import("zod").ZodDefault<import("zod").ZodInt>;
70
+ }, import("zod/v4/core").$strip>;
71
+ registrationIpMaxAttempts: import("zod").ZodDefault<import("zod").ZodInt>;
72
+ refreshToken: import("zod").ZodObject<{
73
+ expirationIdle: import("zod").ZodOptional<import("zod").ZodInt>;
74
+ }, import("zod/v4/core").$strip>;
75
+ }, import("zod/v4/core").$strip>, "alepha.api.users.realmAuthSettings">;
74
76
  type RealmAuthSettings = Static<typeof realmAuthSettingsAtom.schema>;
75
77
  //#endregion
76
78
  //#region ../../src/api/users/audits/SessionAudits.d.ts
@@ -130,15 +132,13 @@ declare class UserBuckets {
130
132
  * Before: { name: string; age: number(default=0); fullName: generated }
131
133
  * After: { name: string; age?: number; }
132
134
  */
133
- type TObjectInsert<T extends TObject> = TObject<{ [K in keyof T["properties"] as T["properties"][K] extends {
135
+ type TObjectInsert<T extends TObject> = TObject<{ [K in keyof T["shape"] as T["shape"][K] extends {
134
136
  [PG_GENERATED]: any;
135
- } ? never : K]: T["properties"][K] extends {
137
+ } ? never : K]: T["shape"][K] extends {
136
138
  [PG_DEFAULT]: any;
137
139
  } | {
138
140
  [PG_ORGANIZATION]: any;
139
- } | {
140
- "~optional": true;
141
- } ? TOptional<T["properties"][K]> : T["properties"][K] }>;
141
+ } ? TOptional<Extract<T["shape"][K], TSchema>> : T["shape"][K]; }>;
142
142
  //#endregion
143
143
  //#region ../../src/orm/core/schemas/updateSchema.d.ts
144
144
  /**
@@ -150,9 +150,9 @@ type TObjectInsert<T extends TObject> = TObject<{ [K in keyof T["properties"] as
150
150
  * Before: { name?: string; age: number; fullName: generated }
151
151
  * After: { name?: string | null; age: number; }
152
152
  */
153
- type TObjectUpdate<T extends TObject> = TObject<{ [K in keyof T["properties"] as T["properties"][K] extends {
153
+ type TObjectUpdate<T extends TObject> = TObject<{ [K in keyof T["shape"] as T["shape"][K] extends {
154
154
  [PG_GENERATED]: any;
155
- } ? never : K]: T["properties"][K] extends TOptional<infer U> ? TOptional<TUnion<[U, TNull]>> : T["properties"][K] }>;
155
+ } ? never : K]: T["shape"][K] extends TOptional<infer U extends TSchema> ? TOptional<TUnion<[U, TNull]>> : T["shape"][K]; }>;
156
156
  //#endregion
157
157
  //#region ../../src/orm/core/primitives/$entity.d.ts
158
158
  interface EntityPrimitiveOptions<T extends TObject, Keys = keyof Static<T>> {
@@ -312,24 +312,26 @@ declare class EntityPrimitive<T extends TObject = TObject> {
312
312
  get cols(): EntityColumns<T>;
313
313
  get name(): string;
314
314
  get schema(): T;
315
+ protected _insertSchema?: TObjectInsert<T>;
315
316
  get insertSchema(): TObjectInsert<T>;
317
+ protected _updateSchema?: TObjectUpdate<T>;
316
318
  get updateSchema(): TObjectUpdate<T>;
317
319
  }
318
320
  /**
319
321
  * Convert a schema to columns.
320
322
  */
321
- type FromSchema<T extends TObject> = { [key in keyof T["properties"]]: PgColumnBuilderBase };
323
+ type FromSchema<T extends TObject> = { [key in keyof T["properties"]]: PgColumnBuilderBase; };
322
324
  type SchemaToTableConfig<T extends TObject> = {
323
325
  name: string;
324
326
  schema: string | undefined;
325
- columns: { [key in keyof T["properties"]]: PgColumn };
327
+ columns: { [key in keyof T["properties"]]: PgColumn; };
326
328
  dialect: string;
327
329
  };
328
330
  type EntityColumn<T extends TObject> = {
329
331
  name: string;
330
332
  entity: EntityPrimitive<T>;
331
333
  };
332
- type EntityColumns<T extends TObject> = { [key in keyof T["properties"]]: EntityColumn<T> };
334
+ type EntityColumns<T extends TObject> = { [key in keyof T["properties"]]: EntityColumn<T>; };
333
335
  //#endregion
334
336
  //#region ../../src/orm/core/constants/PG_SYMBOLS.d.ts
335
337
  declare const PG_DEFAULT: unique symbol;
@@ -358,13 +360,24 @@ type PgSymbols = {
358
360
  [PG_REF]: PgRefOptions;
359
361
  [PG_ENUM]: PgEnumOptions;
360
362
  [PG_GENERATED]: PgGeneratedOptions;
361
- [PG_ORGANIZATION]: {};
363
+ [PG_ORGANIZATION]: PgOrganizationOptions;
362
364
  /**
363
365
  * @deprecated Use `PG_IDENTITY` instead.
364
366
  */
365
367
  [PG_SERIAL]: {};
366
368
  };
367
369
  type PgSymbolKeys = keyof PgSymbols;
370
+ interface PgOrganizationOptions {
371
+ /**
372
+ * Fail-closed tenant scoping. When `true`, the repository (a) refuses any
373
+ * read/write with no resolved tenant instead of falling through to an
374
+ * unfiltered "see/write everything" query, and (b) drops the
375
+ * `OR organizationId IS NULL` "global row" escape — a scoped tenant never
376
+ * sees NULL/global rows. Use for security-sensitive tables. Defaults to
377
+ * `false` (the historic fail-open semantics).
378
+ */
379
+ strict?: boolean;
380
+ }
368
381
  type PgIdentityOptions = {
369
382
  mode: "always" | "byDefault";
370
383
  } & PgSequenceOptions & {
@@ -407,7 +420,7 @@ declare class DbError extends AlephaError {
407
420
  /**
408
421
  * Type representation.
409
422
  */
410
- type PgAttr<T extends TSchema, TAttr extends PgSymbolKeys> = T & { [K in TAttr]: PgSymbols[K] };
423
+ type PgAttr<T extends TSchema, TAttr extends PgSymbolKeys> = T & { [K in TAttr]: PgSymbols[K]; };
411
424
  interface PgAttrField {
412
425
  key: string;
413
426
  type: TSchema;
@@ -863,7 +876,7 @@ interface PgQuery<T extends TObject = TObject> {
863
876
  orderBy?: OrderBy<Static<T>>;
864
877
  groupBy?: (keyof Static<T>)[];
865
878
  }
866
- type PgStatic<T extends TObject, Relations extends PgRelationMap<T>> = Static<T> & { [K in keyof Relations]: Static<Relations[K]["join"]["schema"]> & (Relations[K]["with"] extends PgRelationMap<TObject> ? PgStatic<Relations[K]["join"]["schema"], Relations[K]["with"]> : {}) };
879
+ type PgStatic<T extends TObject, Relations extends PgRelationMap<T>> = Static<T> & { [K in keyof Relations]: Static<Relations[K]["join"]["schema"]> & (Relations[K]["with"] extends PgRelationMap<TObject> ? PgStatic<Relations[K]["join"]["schema"], Relations[K]["with"]> : {}); };
867
880
  interface PgQueryRelations<T extends TObject = TObject, Relations extends PgRelationMap<T> | undefined = undefined> extends PgQuery<T> {
868
881
  with?: Relations;
869
882
  where?: PgQueryWhereOrSQL<T, Relations>;
@@ -884,7 +897,7 @@ type PgRelation<Base extends TObject> = {
884
897
  //#region ../../src/orm/core/interfaces/PgQueryWhere.d.ts
885
898
  type PgQueryWhere<T extends TObject, Relations extends PgRelationMap<TObject> | undefined = undefined> = (PgQueryWhereOperators<T> & PgQueryWhereConditions<T>) | (PgQueryWhereRelations<Relations> & PgQueryWhereOperators<T> & PgQueryWhereConditions<T, Relations>);
886
899
  type PgQueryWhereOrSQL<T extends TObject, Relations extends PgRelationMap<TObject> | undefined = undefined> = SQLWrapper | PgQueryWhere<T, Relations>;
887
- type PgQueryWhereOperators<T extends TObject> = { [Key in keyof Static<T>]?: FilterOperators<Static<T>[Key]> | Static<T>[Key] };
900
+ type PgQueryWhereOperators<T extends TObject> = { [Key in keyof Static<T>]?: FilterOperators<Static<T>[Key]> | Static<T>[Key]; };
888
901
  type PgQueryWhereConditions<T extends TObject, Relations extends PgRelationMap<TObject> | undefined = undefined> = {
889
902
  /**
890
903
  * Combine a list of conditions with the `and` operator. Conditions
@@ -960,7 +973,7 @@ type PgQueryWhereConditions<T extends TObject, Relations extends PgRelationMap<T
960
973
  */
961
974
  notExists?: SQLWrapper;
962
975
  };
963
- type PgQueryWhereRelations<Relations extends PgRelationMap<TObject> | undefined = undefined> = Relations extends PgRelationMap<TObject> ? { [K in keyof Relations]?: PgQueryWhere<Relations[K]["join"]["schema"], Relations[K]["with"]> } : {};
976
+ type PgQueryWhereRelations<Relations extends PgRelationMap<TObject> | undefined = undefined> = Relations extends PgRelationMap<TObject> ? { [K in keyof Relations]?: PgQueryWhere<Relations[K]["join"]["schema"], Relations[K]["with"]>; } : {};
964
977
  //#endregion
965
978
  //#region ../../src/orm/core/interfaces/AggregateQuery.d.ts
966
979
  type AggregateOp = "count" | "sum" | "avg" | "min" | "max";
@@ -970,17 +983,17 @@ type AggregateOp = "count" | "sum" | "avg" | "min" | "max";
970
983
  * - `{ sum: true, avg: true, ... }` means compute those aggregations.
971
984
  */
972
985
  type AggregateColumnSelect = true | Partial<Record<AggregateOp, true>>;
973
- type AggregateSelect<T extends TObject> = { [K in keyof Static<T>]?: AggregateColumnSelect };
986
+ type AggregateSelect<T extends TObject> = { [K in keyof Static<T>]?: AggregateColumnSelect; };
974
987
  /**
975
988
  * Maps a single column's select definition to its result type.
976
989
  * - `true` → original column type
977
990
  * - `{ sum: true, avg: true }` → `{ sum: number; avg: number }`
978
991
  */
979
- type AggregateColumnResult<TValue, TSelect> = TSelect extends true ? TValue : { [Op in AggregateOp as TSelect extends Record<Op, true> ? Op : never]: number };
992
+ type AggregateColumnResult<TValue, TSelect> = TSelect extends true ? TValue : { [Op in AggregateOp as TSelect extends Record<Op, true> ? Op : never]: number; };
980
993
  /**
981
994
  * Result type for an aggregate query.
982
995
  */
983
- type AggregateResult<T extends TObject, S extends AggregateSelect<T>> = { [K in keyof S & keyof Static<T>]: AggregateColumnResult<Static<T>[K], NonNullable<S[K]>> };
996
+ type AggregateResult<T extends TObject, S extends AggregateSelect<T>> = { [K in keyof S & keyof Static<T>]: AggregateColumnResult<Static<T>[K], NonNullable<S[K]>>; };
984
997
  /**
985
998
  * HAVING clause for aggregate queries.
986
999
  * Only applies to columns with aggregate operations (not `true`).
@@ -992,7 +1005,7 @@ type AggregateHaving<T extends TObject, S extends AggregateSelect<T>> = { [K in
992
1005
  lte?: number;
993
1006
  eq?: number;
994
1007
  ne?: number;
995
- } } };
1008
+ }; }; };
996
1009
  /**
997
1010
  * Full aggregate query definition.
998
1011
  */
@@ -1085,14 +1098,14 @@ declare class DbCacheProvider {
1085
1098
  * the engine behind that call.
1086
1099
  */
1087
1100
  declare class SequenceProvider {
1088
- protected readonly repository: Repository$1<import("typebox").TObject<{
1089
- id: PgAttr<PgAttr<import("typebox").TString, typeof PG_PRIMARY_KEY>, typeof PG_DEFAULT>;
1090
- createdAt: PgAttr<PgAttr<import("typebox").TString, typeof PG_CREATED_AT>, typeof PG_DEFAULT>;
1091
- updatedAt: PgAttr<PgAttr<import("typebox").TString, typeof PG_UPDATED_AT>, typeof PG_DEFAULT>;
1092
- name: import("typebox").TString;
1093
- scope: import("typebox").TString;
1094
- value: import("typebox").TInteger;
1095
- }>>;
1101
+ protected readonly repository: Repository$1<import("zod").ZodObject<{
1102
+ id: PgAttr<PgAttr<import("zod").ZodString, typeof PG_PRIMARY_KEY>, typeof PG_DEFAULT>;
1103
+ createdAt: PgAttr<PgAttr<import("zod").ZodString, typeof PG_CREATED_AT>, typeof PG_DEFAULT>;
1104
+ updatedAt: PgAttr<PgAttr<import("zod").ZodString, typeof PG_UPDATED_AT>, typeof PG_DEFAULT>;
1105
+ name: import("zod").ZodString;
1106
+ scope: import("zod").ZodString;
1107
+ value: import("zod").ZodInt;
1108
+ }, import("zod/v4/core").$strip>>;
1096
1109
  protected readonly crypto: CryptoProvider$1;
1097
1110
  /**
1098
1111
  * Atomically advance the counter for `(name, scope)` and return the new value.
@@ -1865,7 +1878,7 @@ declare abstract class Repository$1<T extends TObject> {
1865
1878
  protected getPrimaryKey(schema: TObject): {
1866
1879
  key: string;
1867
1880
  col: PgColumn<import("drizzle-orm").ColumnBaseConfig<import("drizzle-orm").ColumnDataType, string>, {}, {}>;
1868
- type: TSchema;
1881
+ type: import("alepha").ZType;
1869
1882
  };
1870
1883
  }
1871
1884
  /**
@@ -1917,7 +1930,7 @@ interface StatementOptions {
1917
1930
  key?: string;
1918
1931
  };
1919
1932
  }
1920
- type WithSQL<T> = { [P in keyof T]?: T[P] | SQL };
1933
+ type WithSQL<T> = { [P in keyof T]?: T[P] | SQL; };
1921
1934
  //#endregion
1922
1935
  //#region ../../src/orm/core/schemas/databaseEnvSchema.d.ts
1923
1936
  /**
@@ -1933,93 +1946,73 @@ type WithSQL<T> = { [P in keyof T]?: T[P] | SQL };
1933
1946
  * - `d1://BINDING_NAME` — Cloudflare D1
1934
1947
  * - `hyperdrive://BINDING_NAME` — Cloudflare Hyperdrive
1935
1948
  */
1936
- declare const databaseEnvSchema: import("typebox").TObject<{
1937
- DATABASE_URL: import("typebox").TOptional<import("typebox").TString>;
1938
- /**
1939
- * Enable or disable push-based schema synchronization (drizzle-kit push).
1940
- *
1941
- * Defaults to `true` in development and test, `false` in production.
1942
- * Set to `false` in development to skip automatic schema sync
1943
- * (e.g. when managing migrations manually).
1944
- */
1945
- DATABASE_SYNC: import("typebox").TOptional<import("typebox").TBoolean>;
1946
- }>;
1949
+ declare const databaseEnvSchema: import("zod").ZodObject<{
1950
+ DATABASE_URL: import("zod").ZodOptional<import("zod").ZodString>;
1951
+ DATABASE_SYNC: import("zod").ZodOptional<import("zod").ZodBoolean>;
1952
+ }, import("zod/v4/core").$strip>;
1947
1953
  declare module "alepha" {
1948
1954
  interface Env extends Partial<Static<typeof databaseEnvSchema>> {}
1949
- } //# sourceMappingURL=databaseEnvSchema.d.ts.map
1955
+ }
1950
1956
  //#endregion
1951
1957
  //#region ../../src/api/users/entities/identities.d.ts
1952
- declare const identities: import("alepha/orm").EntityPrimitive<import("typebox").TObject<{
1953
- id: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("typebox").TString, typeof import("alepha/orm").PG_PRIMARY_KEY>, typeof import("alepha/orm").PG_DEFAULT>;
1954
- version: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("typebox").TInteger, typeof import("alepha/orm").PG_VERSION>, typeof import("alepha/orm").PG_DEFAULT>;
1955
- createdAt: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("typebox").TString, typeof import("alepha/orm").PG_CREATED_AT>, typeof import("alepha/orm").PG_DEFAULT>;
1956
- updatedAt: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("typebox").TString, typeof import("alepha/orm").PG_UPDATED_AT>, typeof import("alepha/orm").PG_DEFAULT>;
1957
- userId: import("alepha/orm").PgAttr<import("typebox").TString, typeof import("alepha/orm").PG_REF>;
1958
- password: import("typebox").TOptional<import("typebox").TString>;
1959
- provider: import("typebox").TString;
1960
- providerUserId: import("typebox").TOptional<import("typebox").TString>;
1961
- providerData: import("typebox").TOptional<import("typebox").TRecord<string, import("typebox").TAny>>;
1962
- }>>;
1958
+ declare const identities: import("alepha/orm").EntityPrimitive<import("zod").ZodObject<{
1959
+ id: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("zod").ZodString, typeof import("alepha/orm").PG_PRIMARY_KEY>, typeof import("alepha/orm").PG_DEFAULT>;
1960
+ version: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("zod").ZodInt, typeof import("alepha/orm").PG_VERSION>, typeof import("alepha/orm").PG_DEFAULT>;
1961
+ createdAt: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("zod").ZodString, typeof import("alepha/orm").PG_CREATED_AT>, typeof import("alepha/orm").PG_DEFAULT>;
1962
+ updatedAt: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("zod").ZodString, typeof import("alepha/orm").PG_UPDATED_AT>, typeof import("alepha/orm").PG_DEFAULT>;
1963
+ userId: import("alepha/orm").PgAttr<import("zod").ZodString, typeof import("alepha/orm").PG_REF>;
1964
+ password: import("zod").ZodOptional<import("zod").ZodString>;
1965
+ provider: import("zod").ZodString;
1966
+ providerUserId: import("zod").ZodOptional<import("zod").ZodString>;
1967
+ providerData: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodAny>>;
1968
+ }, import("zod/v4/core").$strip>>;
1963
1969
  type IdentityEntity = Static<typeof identities.schema>;
1964
1970
  //#endregion
1965
1971
  //#region ../../src/api/users/entities/sessions.d.ts
1966
- declare const sessions: import("alepha/orm").EntityPrimitive<import("typebox").TObject<{
1967
- id: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("typebox").TString, typeof import("alepha/orm").PG_PRIMARY_KEY>, typeof import("alepha/orm").PG_DEFAULT>;
1968
- version: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("typebox").TInteger, typeof import("alepha/orm").PG_VERSION>, typeof import("alepha/orm").PG_DEFAULT>;
1969
- createdAt: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("typebox").TString, typeof import("alepha/orm").PG_CREATED_AT>, typeof import("alepha/orm").PG_DEFAULT>;
1970
- updatedAt: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("typebox").TString, typeof import("alepha/orm").PG_UPDATED_AT>, typeof import("alepha/orm").PG_DEFAULT>;
1971
- refreshToken: import("typebox").TString;
1972
- userId: import("alepha/orm").PgAttr<import("typebox").TString, typeof import("alepha/orm").PG_REF>;
1973
- /**
1974
- * OAuth client this session was minted for, when it was created via the
1975
- * OAuth 2.1 authorization flow — the `client_id` of an `oauth_clients`
1976
- * row. Null for first-party logins. Deliberately NOT a DB-level foreign
1977
- * key: `sessions` is a core entity and must not depend on the optional
1978
- * OAuth module's table; the join to `oauth_clients` is done at query time.
1979
- */
1980
- clientId: import("typebox").TOptional<import("typebox").TString>;
1981
- expiresAt: import("typebox").TString;
1982
- /**
1983
- * Last time the session was used to refresh an access token.
1984
- * Used by realm `refreshToken.expirationIdle` to invalidate idle sessions.
1985
- * `null` on existing rows pre-migration — falls back to `createdAt`.
1986
- */
1987
- lastUsedAt: import("typebox").TOptional<import("typebox").TString>;
1988
- ip: import("typebox").TOptional<import("typebox").TString>;
1989
- /**
1990
- * ISO 3166-1 alpha-2 country code derived from the request geo headers
1991
- * (`cf-ipcountry` on Cloudflare, CDN equivalents elsewhere) at login time.
1992
- * `null` on pre-migration rows and where geo isn't available.
1993
- */
1994
- country: import("typebox").TOptional<import("typebox").TString>;
1995
- userAgent: import("typebox").TOptional<import("typebox").TObject<{
1996
- os: import("typebox").TString;
1997
- browser: import("typebox").TString;
1998
- device: import("typebox").TUnsafe<"MOBILE" | "DESKTOP" | "TABLET">;
1999
- }>>;
2000
- }>>;
1972
+ declare const sessions: import("alepha/orm").EntityPrimitive<import("zod").ZodObject<{
1973
+ id: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("zod").ZodString, typeof import("alepha/orm").PG_PRIMARY_KEY>, typeof import("alepha/orm").PG_DEFAULT>;
1974
+ version: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("zod").ZodInt, typeof import("alepha/orm").PG_VERSION>, typeof import("alepha/orm").PG_DEFAULT>;
1975
+ createdAt: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("zod").ZodString, typeof import("alepha/orm").PG_CREATED_AT>, typeof import("alepha/orm").PG_DEFAULT>;
1976
+ updatedAt: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("zod").ZodString, typeof import("alepha/orm").PG_UPDATED_AT>, typeof import("alepha/orm").PG_DEFAULT>;
1977
+ refreshToken: import("zod").ZodString;
1978
+ userId: import("alepha/orm").PgAttr<import("zod").ZodString, typeof import("alepha/orm").PG_REF>;
1979
+ clientId: import("zod").ZodOptional<import("zod").ZodString>;
1980
+ expiresAt: import("zod").ZodString;
1981
+ lastUsedAt: import("zod").ZodOptional<import("zod").ZodString>;
1982
+ ip: import("zod").ZodOptional<import("zod").ZodString>;
1983
+ country: import("zod").ZodOptional<import("zod").ZodString>;
1984
+ userAgent: import("zod").ZodOptional<import("zod").ZodObject<{
1985
+ os: import("zod").ZodString;
1986
+ browser: import("zod").ZodString;
1987
+ device: import("zod").ZodEnum<{
1988
+ DESKTOP: "DESKTOP";
1989
+ MOBILE: "MOBILE";
1990
+ TABLET: "TABLET";
1991
+ }>;
1992
+ }, import("zod/v4/core").$strip>>;
1993
+ }, import("zod/v4/core").$strip>>;
2001
1994
  type SessionEntity = Static<typeof sessions.schema>;
2002
1995
  //#endregion
2003
1996
  //#region ../../src/api/users/entities/users.d.ts
2004
1997
  declare const DEFAULT_USER_REALM_NAME = "default";
2005
- declare const users: import("alepha/orm").EntityPrimitive<import("typebox").TObject<{
2006
- id: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("typebox").TString, typeof import("alepha/orm").PG_PRIMARY_KEY>, typeof import("alepha/orm").PG_DEFAULT>;
2007
- version: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("typebox").TInteger, typeof import("alepha/orm").PG_VERSION>, typeof import("alepha/orm").PG_DEFAULT>;
2008
- createdAt: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("typebox").TString, typeof import("alepha/orm").PG_CREATED_AT>, typeof import("alepha/orm").PG_DEFAULT>;
2009
- updatedAt: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("typebox").TString, typeof import("alepha/orm").PG_UPDATED_AT>, typeof import("alepha/orm").PG_DEFAULT>;
2010
- realm: import("alepha/orm").PgAttr<import("typebox").TString, typeof import("alepha/orm").PG_DEFAULT>;
2011
- username: import("typebox").TOptional<import("typebox").TString>;
2012
- email: import("typebox").TOptional<import("typebox").TString>;
2013
- phoneNumber: import("typebox").TOptional<import("typebox").TString>;
2014
- roles: import("alepha/orm").PgAttr<import("typebox").TArray<import("typebox").TString>, typeof import("alepha/orm").PG_DEFAULT>;
2015
- firstName: import("typebox").TOptional<import("typebox").TString>;
2016
- lastName: import("typebox").TOptional<import("typebox").TString>;
2017
- picture: import("typebox").TOptional<import("typebox").TString>;
2018
- enabled: import("alepha/orm").PgAttr<import("typebox").TBoolean, typeof import("alepha/orm").PG_DEFAULT>;
2019
- emailVerified: import("alepha/orm").PgAttr<import("typebox").TBoolean, typeof import("alepha/orm").PG_DEFAULT>;
2020
- lastLoginAt: import("typebox").TOptional<import("typebox").TString>;
2021
- organizationId: import("alepha/orm").PgAttr<import("typebox").TString, typeof import("alepha/orm").PG_ORGANIZATION>;
2022
- }>>;
1998
+ declare const users: import("alepha/orm").EntityPrimitive<import("zod").ZodObject<{
1999
+ id: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("zod").ZodString, typeof import("alepha/orm").PG_PRIMARY_KEY>, typeof import("alepha/orm").PG_DEFAULT>;
2000
+ version: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("zod").ZodInt, typeof import("alepha/orm").PG_VERSION>, typeof import("alepha/orm").PG_DEFAULT>;
2001
+ createdAt: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("zod").ZodString, typeof import("alepha/orm").PG_CREATED_AT>, typeof import("alepha/orm").PG_DEFAULT>;
2002
+ updatedAt: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("zod").ZodString, typeof import("alepha/orm").PG_UPDATED_AT>, typeof import("alepha/orm").PG_DEFAULT>;
2003
+ realm: import("alepha/orm").PgAttr<import("zod").ZodString, typeof import("alepha/orm").PG_DEFAULT>;
2004
+ username: import("zod").ZodOptional<import("zod").ZodString>;
2005
+ email: import("zod").ZodOptional<import("zod").ZodString>;
2006
+ phoneNumber: import("zod").ZodOptional<import("zod").ZodString>;
2007
+ roles: import("alepha/orm").PgAttr<import("zod").ZodArray<import("zod").ZodString>, typeof import("alepha/orm").PG_DEFAULT>;
2008
+ firstName: import("zod").ZodOptional<import("zod").ZodString>;
2009
+ lastName: import("zod").ZodOptional<import("zod").ZodString>;
2010
+ picture: import("zod").ZodOptional<import("zod").ZodString>;
2011
+ enabled: import("alepha/orm").PgAttr<import("zod").ZodBoolean, typeof import("alepha/orm").PG_DEFAULT>;
2012
+ emailVerified: import("alepha/orm").PgAttr<import("zod").ZodBoolean, typeof import("alepha/orm").PG_DEFAULT>;
2013
+ lastLoginAt: import("zod").ZodOptional<import("zod").ZodString>;
2014
+ organizationId: import("alepha/orm").PgAttr<import("zod").ZodOptional<import("zod").ZodString> | import("zod").ZodString, typeof import("alepha/orm").PG_ORGANIZATION>;
2015
+ }, import("zod/v4/core").$strip>>;
2023
2016
  type UserEntity = Static<typeof users.schema>;
2024
2017
  //#endregion
2025
2018
  //#region ../../src/api/users/primitives/$realm.d.ts
@@ -2108,6 +2101,12 @@ interface RealmOptions {
2108
2101
  * If not provided, the secret from the SecurityProvider will be used (usually from the APP_SECRET environment variable).
2109
2102
  */
2110
2103
  secret?: string;
2104
+ /**
2105
+ * Asymmetric signing config for this realm's tokens (OIDC provider mode).
2106
+ * When set, issued tokens are signed asymmetrically and the public keys are
2107
+ * JWKS-publishable. Default is HS256 via `secret`.
2108
+ */
2109
+ signing?: SigningConfig;
2111
2110
  /**
2112
2111
  * Issuer configuration options.
2113
2112
  *
@@ -2156,53 +2155,57 @@ interface Realm {
2156
2155
  }
2157
2156
  declare class RealmProvider {
2158
2157
  protected readonly alepha: Alepha;
2159
- protected readonly defaultIdentities: Repository<import("typebox").TObject<{
2160
- id: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("typebox").TString, typeof import("alepha/orm").PG_PRIMARY_KEY>, typeof import("alepha/orm").PG_DEFAULT>;
2161
- version: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("typebox").TInteger, typeof import("alepha/orm").PG_VERSION>, typeof import("alepha/orm").PG_DEFAULT>;
2162
- createdAt: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("typebox").TString, typeof import("alepha/orm").PG_CREATED_AT>, typeof import("alepha/orm").PG_DEFAULT>;
2163
- updatedAt: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("typebox").TString, typeof import("alepha/orm").PG_UPDATED_AT>, typeof import("alepha/orm").PG_DEFAULT>;
2164
- userId: import("alepha/orm").PgAttr<import("typebox").TString, typeof import("alepha/orm").PG_REF>;
2165
- password: import("typebox").TOptional<import("typebox").TString>;
2166
- provider: import("typebox").TString;
2167
- providerUserId: import("typebox").TOptional<import("typebox").TString>;
2168
- providerData: import("typebox").TOptional<import("typebox").TRecord<string, import("typebox").TAny>>;
2169
- }>>;
2170
- protected readonly defaultSessions: Repository<import("typebox").TObject<{
2171
- id: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("typebox").TString, typeof import("alepha/orm").PG_PRIMARY_KEY>, typeof import("alepha/orm").PG_DEFAULT>;
2172
- version: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("typebox").TInteger, typeof import("alepha/orm").PG_VERSION>, typeof import("alepha/orm").PG_DEFAULT>;
2173
- createdAt: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("typebox").TString, typeof import("alepha/orm").PG_CREATED_AT>, typeof import("alepha/orm").PG_DEFAULT>;
2174
- updatedAt: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("typebox").TString, typeof import("alepha/orm").PG_UPDATED_AT>, typeof import("alepha/orm").PG_DEFAULT>;
2175
- refreshToken: import("typebox").TString;
2176
- userId: import("alepha/orm").PgAttr<import("typebox").TString, typeof import("alepha/orm").PG_REF>;
2177
- clientId: import("typebox").TOptional<import("typebox").TString>;
2178
- expiresAt: import("typebox").TString;
2179
- lastUsedAt: import("typebox").TOptional<import("typebox").TString>;
2180
- ip: import("typebox").TOptional<import("typebox").TString>;
2181
- country: import("typebox").TOptional<import("typebox").TString>;
2182
- userAgent: import("typebox").TOptional<import("typebox").TObject<{
2183
- os: import("typebox").TString;
2184
- browser: import("typebox").TString;
2185
- device: import("typebox").TUnsafe<"MOBILE" | "DESKTOP" | "TABLET">;
2186
- }>>;
2187
- }>>;
2188
- protected readonly defaultUsers: Repository<import("typebox").TObject<{
2189
- id: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("typebox").TString, typeof import("alepha/orm").PG_PRIMARY_KEY>, typeof import("alepha/orm").PG_DEFAULT>;
2190
- version: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("typebox").TInteger, typeof import("alepha/orm").PG_VERSION>, typeof import("alepha/orm").PG_DEFAULT>;
2191
- createdAt: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("typebox").TString, typeof import("alepha/orm").PG_CREATED_AT>, typeof import("alepha/orm").PG_DEFAULT>;
2192
- updatedAt: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("typebox").TString, typeof import("alepha/orm").PG_UPDATED_AT>, typeof import("alepha/orm").PG_DEFAULT>;
2193
- realm: import("alepha/orm").PgAttr<import("typebox").TString, typeof import("alepha/orm").PG_DEFAULT>;
2194
- username: import("typebox").TOptional<import("typebox").TString>;
2195
- email: import("typebox").TOptional<import("typebox").TString>;
2196
- phoneNumber: import("typebox").TOptional<import("typebox").TString>;
2197
- roles: import("alepha/orm").PgAttr<import("typebox").TArray<import("typebox").TString>, typeof import("alepha/orm").PG_DEFAULT>;
2198
- firstName: import("typebox").TOptional<import("typebox").TString>;
2199
- lastName: import("typebox").TOptional<import("typebox").TString>;
2200
- picture: import("typebox").TOptional<import("typebox").TString>;
2201
- enabled: import("alepha/orm").PgAttr<import("typebox").TBoolean, typeof import("alepha/orm").PG_DEFAULT>;
2202
- emailVerified: import("alepha/orm").PgAttr<import("typebox").TBoolean, typeof import("alepha/orm").PG_DEFAULT>;
2203
- lastLoginAt: import("typebox").TOptional<import("typebox").TString>;
2204
- organizationId: import("alepha/orm").PgAttr<import("typebox").TString, typeof import("alepha/orm").PG_ORGANIZATION>;
2205
- }>>;
2158
+ protected readonly defaultIdentities: Repository<import("zod").ZodObject<{
2159
+ id: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("zod").ZodString, typeof import("alepha/orm").PG_PRIMARY_KEY>, typeof import("alepha/orm").PG_DEFAULT>;
2160
+ version: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("zod").ZodInt, typeof import("alepha/orm").PG_VERSION>, typeof import("alepha/orm").PG_DEFAULT>;
2161
+ createdAt: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("zod").ZodString, typeof import("alepha/orm").PG_CREATED_AT>, typeof import("alepha/orm").PG_DEFAULT>;
2162
+ updatedAt: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("zod").ZodString, typeof import("alepha/orm").PG_UPDATED_AT>, typeof import("alepha/orm").PG_DEFAULT>;
2163
+ userId: import("alepha/orm").PgAttr<import("zod").ZodString, typeof import("alepha/orm").PG_REF>;
2164
+ password: import("zod").ZodOptional<import("zod").ZodString>;
2165
+ provider: import("zod").ZodString;
2166
+ providerUserId: import("zod").ZodOptional<import("zod").ZodString>;
2167
+ providerData: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodAny>>;
2168
+ }, import("zod/v4/core").$strip>>;
2169
+ protected readonly defaultSessions: Repository<import("zod").ZodObject<{
2170
+ id: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("zod").ZodString, typeof import("alepha/orm").PG_PRIMARY_KEY>, typeof import("alepha/orm").PG_DEFAULT>;
2171
+ version: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("zod").ZodInt, typeof import("alepha/orm").PG_VERSION>, typeof import("alepha/orm").PG_DEFAULT>;
2172
+ createdAt: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("zod").ZodString, typeof import("alepha/orm").PG_CREATED_AT>, typeof import("alepha/orm").PG_DEFAULT>;
2173
+ updatedAt: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("zod").ZodString, typeof import("alepha/orm").PG_UPDATED_AT>, typeof import("alepha/orm").PG_DEFAULT>;
2174
+ refreshToken: import("zod").ZodString;
2175
+ userId: import("alepha/orm").PgAttr<import("zod").ZodString, typeof import("alepha/orm").PG_REF>;
2176
+ clientId: import("zod").ZodOptional<import("zod").ZodString>;
2177
+ expiresAt: import("zod").ZodString;
2178
+ lastUsedAt: import("zod").ZodOptional<import("zod").ZodString>;
2179
+ ip: import("zod").ZodOptional<import("zod").ZodString>;
2180
+ country: import("zod").ZodOptional<import("zod").ZodString>;
2181
+ userAgent: import("zod").ZodOptional<import("zod").ZodObject<{
2182
+ os: import("zod").ZodString;
2183
+ browser: import("zod").ZodString;
2184
+ device: import("zod").ZodEnum<{
2185
+ DESKTOP: "DESKTOP";
2186
+ MOBILE: "MOBILE";
2187
+ TABLET: "TABLET";
2188
+ }>;
2189
+ }, import("zod/v4/core").$strip>>;
2190
+ }, import("zod/v4/core").$strip>>;
2191
+ protected readonly defaultUsers: Repository<import("zod").ZodObject<{
2192
+ id: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("zod").ZodString, typeof import("alepha/orm").PG_PRIMARY_KEY>, typeof import("alepha/orm").PG_DEFAULT>;
2193
+ version: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("zod").ZodInt, typeof import("alepha/orm").PG_VERSION>, typeof import("alepha/orm").PG_DEFAULT>;
2194
+ createdAt: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("zod").ZodString, typeof import("alepha/orm").PG_CREATED_AT>, typeof import("alepha/orm").PG_DEFAULT>;
2195
+ updatedAt: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("zod").ZodString, typeof import("alepha/orm").PG_UPDATED_AT>, typeof import("alepha/orm").PG_DEFAULT>;
2196
+ realm: import("alepha/orm").PgAttr<import("zod").ZodString, typeof import("alepha/orm").PG_DEFAULT>;
2197
+ username: import("zod").ZodOptional<import("zod").ZodString>;
2198
+ email: import("zod").ZodOptional<import("zod").ZodString>;
2199
+ phoneNumber: import("zod").ZodOptional<import("zod").ZodString>;
2200
+ roles: import("alepha/orm").PgAttr<import("zod").ZodArray<import("zod").ZodString>, typeof import("alepha/orm").PG_DEFAULT>;
2201
+ firstName: import("zod").ZodOptional<import("zod").ZodString>;
2202
+ lastName: import("zod").ZodOptional<import("zod").ZodString>;
2203
+ picture: import("zod").ZodOptional<import("zod").ZodString>;
2204
+ enabled: import("alepha/orm").PgAttr<import("zod").ZodBoolean, typeof import("alepha/orm").PG_DEFAULT>;
2205
+ emailVerified: import("alepha/orm").PgAttr<import("zod").ZodBoolean, typeof import("alepha/orm").PG_DEFAULT>;
2206
+ lastLoginAt: import("zod").ZodOptional<import("zod").ZodString>;
2207
+ organizationId: import("alepha/orm").PgAttr<import("zod").ZodOptional<import("zod").ZodString> | import("zod").ZodString, typeof import("alepha/orm").PG_ORGANIZATION>;
2208
+ }, import("zod/v4/core").$strip>>;
2206
2209
  protected realms: Map<string, Realm>;
2207
2210
  register(realmName: string, realmOptions?: RealmOptions): Realm;
2208
2211
  /**
@@ -2215,13 +2218,13 @@ declare class RealmProvider {
2215
2218
  }
2216
2219
  //#endregion
2217
2220
  //#region ../../src/api/users/schemas/identityQuerySchema.d.ts
2218
- declare const identityQuerySchema: import("typebox").TObject<{
2219
- page: import("typebox").TOptional<import("typebox").TInteger>;
2220
- size: import("typebox").TOptional<import("typebox").TInteger>;
2221
- sort: import("typebox").TOptional<import("typebox").TString>;
2222
- userId: import("typebox").TOptional<import("typebox").TString>;
2223
- provider: import("typebox").TOptional<import("typebox").TString>;
2224
- }>;
2221
+ declare const identityQuerySchema: import("zod").ZodObject<{
2222
+ page: import("zod").ZodOptional<import("zod").ZodDefault<import("zod").ZodInt>>;
2223
+ size: import("zod").ZodOptional<import("zod").ZodDefault<import("zod").ZodInt>>;
2224
+ sort: import("zod").ZodOptional<import("zod").ZodString>;
2225
+ userId: import("zod").ZodOptional<import("zod").ZodString>;
2226
+ provider: import("zod").ZodOptional<import("zod").ZodString>;
2227
+ }, import("zod/v4/core").$strip>;
2225
2228
  type IdentityQuery = Static<typeof identityQuerySchema>;
2226
2229
  //#endregion
2227
2230
  //#region ../../src/api/users/services/IdentityService.d.ts
@@ -2230,17 +2233,17 @@ declare class IdentityService {
2230
2233
  protected readonly log: import("alepha/logger").Logger;
2231
2234
  protected readonly realmProvider: RealmProvider;
2232
2235
  protected userAudits(realmName?: string): UserAudits | undefined;
2233
- identities(userRealmName?: string): import("alepha/orm").Repository<import("typebox").TObject<{
2234
- id: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("typebox").TString, typeof import("alepha/orm").PG_PRIMARY_KEY>, typeof import("alepha/orm").PG_DEFAULT>;
2235
- version: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("typebox").TInteger, typeof import("alepha/orm").PG_VERSION>, typeof import("alepha/orm").PG_DEFAULT>;
2236
- createdAt: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("typebox").TString, typeof import("alepha/orm").PG_CREATED_AT>, typeof import("alepha/orm").PG_DEFAULT>;
2237
- updatedAt: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("typebox").TString, typeof import("alepha/orm").PG_UPDATED_AT>, typeof import("alepha/orm").PG_DEFAULT>;
2238
- userId: import("alepha/orm").PgAttr<import("typebox").TString, typeof import("alepha/orm").PG_REF>;
2239
- password: import("typebox").TOptional<import("typebox").TString>;
2240
- provider: import("typebox").TString;
2241
- providerUserId: import("typebox").TOptional<import("typebox").TString>;
2242
- providerData: import("typebox").TOptional<import("typebox").TRecord<string, import("typebox").TAny>>;
2243
- }>>;
2236
+ identities(userRealmName?: string): import("alepha/orm").Repository<import("zod").ZodObject<{
2237
+ id: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("zod").ZodString, typeof import("alepha/orm").PG_PRIMARY_KEY>, typeof import("alepha/orm").PG_DEFAULT>;
2238
+ version: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("zod").ZodInt, typeof import("alepha/orm").PG_VERSION>, typeof import("alepha/orm").PG_DEFAULT>;
2239
+ createdAt: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("zod").ZodString, typeof import("alepha/orm").PG_CREATED_AT>, typeof import("alepha/orm").PG_DEFAULT>;
2240
+ updatedAt: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("zod").ZodString, typeof import("alepha/orm").PG_UPDATED_AT>, typeof import("alepha/orm").PG_DEFAULT>;
2241
+ userId: import("alepha/orm").PgAttr<import("zod").ZodString, typeof import("alepha/orm").PG_REF>;
2242
+ password: import("zod").ZodOptional<import("zod").ZodString>;
2243
+ provider: import("zod").ZodString;
2244
+ providerUserId: import("zod").ZodOptional<import("zod").ZodString>;
2245
+ providerData: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodAny>>;
2246
+ }, import("zod/v4/core").$strip>>;
2244
2247
  /**
2245
2248
  * Find identities with pagination and filtering.
2246
2249
  */
@@ -2260,99 +2263,117 @@ declare class AdminIdentityController {
2260
2263
  protected readonly url = "/identities";
2261
2264
  protected readonly group = "admin:identities";
2262
2265
  protected readonly identityService: IdentityService;
2266
+ protected readonly securityProvider: SecurityProvider;
2263
2267
  /**
2264
2268
  * Find identities with pagination and filtering.
2265
2269
  */
2266
2270
  readonly findIdentities: import("alepha/server").ActionPrimitiveFn<{
2267
- query: import("typebox").TObject<{
2268
- page: import("typebox").TOptional<import("typebox").TInteger>;
2269
- size: import("typebox").TOptional<import("typebox").TInteger>;
2270
- sort: import("typebox").TOptional<import("typebox").TString>;
2271
- userId: import("typebox").TOptional<import("typebox").TString>;
2272
- provider: import("typebox").TOptional<import("typebox").TString>;
2273
- userRealmName: import("typebox").TOptional<import("typebox").TString>;
2274
- }>;
2275
- response: import("alepha").TPage<import("typebox").TObject<{
2276
- id: PgAttr<PgAttr<import("typebox").TString, typeof PG_PRIMARY_KEY>, typeof PG_DEFAULT>;
2277
- version: PgAttr<PgAttr<import("typebox").TInteger, typeof PG_VERSION>, typeof PG_DEFAULT>;
2278
- createdAt: PgAttr<PgAttr<import("typebox").TString, typeof PG_CREATED_AT>, typeof PG_DEFAULT>;
2279
- updatedAt: PgAttr<PgAttr<import("typebox").TString, typeof PG_UPDATED_AT>, typeof PG_DEFAULT>;
2280
- userId: PgAttr<import("typebox").TString, typeof PG_REF>;
2281
- provider: import("typebox").TString;
2282
- providerUserId: import("typebox").TOptional<import("typebox").TString>;
2283
- providerData: import("typebox").TOptional<import("typebox").TRecord<string, import("typebox").TAny>>;
2284
- }>>;
2271
+ query: import("zod").ZodObject<{
2272
+ page: import("zod").ZodOptional<import("zod").ZodDefault<import("zod").ZodInt>>;
2273
+ size: import("zod").ZodOptional<import("zod").ZodDefault<import("zod").ZodInt>>;
2274
+ sort: import("zod").ZodOptional<import("zod").ZodString>;
2275
+ userId: import("zod").ZodOptional<import("zod").ZodString>;
2276
+ provider: import("zod").ZodOptional<import("zod").ZodString>;
2277
+ userRealmName: import("zod").ZodOptional<import("zod").ZodString>;
2278
+ }, import("zod/v4/core").$strip>;
2279
+ response: import("zod").ZodObject<{
2280
+ content: import("zod").ZodArray<import("zod").ZodObject<{
2281
+ id: PgAttr<PgAttr<import("zod").ZodString, typeof PG_PRIMARY_KEY>, typeof PG_DEFAULT>;
2282
+ version: PgAttr<PgAttr<import("zod").ZodInt, typeof PG_VERSION>, typeof PG_DEFAULT>;
2283
+ createdAt: PgAttr<PgAttr<import("zod").ZodString, typeof PG_CREATED_AT>, typeof PG_DEFAULT>;
2284
+ updatedAt: PgAttr<PgAttr<import("zod").ZodString, typeof PG_UPDATED_AT>, typeof PG_DEFAULT>;
2285
+ userId: PgAttr<import("zod").ZodString, typeof PG_REF>;
2286
+ provider: import("zod").ZodString;
2287
+ providerUserId: import("zod").ZodOptional<import("zod").ZodString>;
2288
+ providerData: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodAny>>;
2289
+ }, import("zod/v4/core").$strip>>;
2290
+ page: import("zod").ZodObject<{
2291
+ number: import("zod").ZodInt;
2292
+ size: import("zod").ZodInt;
2293
+ offset: import("zod").ZodInt;
2294
+ numberOfElements: import("zod").ZodInt;
2295
+ totalElements: import("zod").ZodOptional<import("zod").ZodInt>;
2296
+ totalPages: import("zod").ZodOptional<import("zod").ZodInt>;
2297
+ isEmpty: import("zod").ZodBoolean;
2298
+ isFirst: import("zod").ZodBoolean;
2299
+ isLast: import("zod").ZodBoolean;
2300
+ }, import("zod/v4/core").$strip>;
2301
+ }, import("zod/v4/core").$strip>;
2285
2302
  }>;
2286
2303
  /**
2287
2304
  * Get an identity by ID.
2288
2305
  */
2289
2306
  readonly getIdentity: import("alepha/server").ActionPrimitiveFn<{
2290
- params: import("typebox").TObject<{
2291
- id: import("typebox").TString;
2292
- }>;
2293
- query: import("typebox").TObject<{
2294
- userRealmName: import("typebox").TOptional<import("typebox").TString>;
2295
- }>;
2296
- response: import("typebox").TObject<{
2297
- id: PgAttr<PgAttr<import("typebox").TString, typeof PG_PRIMARY_KEY>, typeof PG_DEFAULT>;
2298
- version: PgAttr<PgAttr<import("typebox").TInteger, typeof PG_VERSION>, typeof PG_DEFAULT>;
2299
- createdAt: PgAttr<PgAttr<import("typebox").TString, typeof PG_CREATED_AT>, typeof PG_DEFAULT>;
2300
- updatedAt: PgAttr<PgAttr<import("typebox").TString, typeof PG_UPDATED_AT>, typeof PG_DEFAULT>;
2301
- userId: PgAttr<import("typebox").TString, typeof PG_REF>;
2302
- provider: import("typebox").TString;
2303
- providerUserId: import("typebox").TOptional<import("typebox").TString>;
2304
- providerData: import("typebox").TOptional<import("typebox").TRecord<string, import("typebox").TAny>>;
2305
- }>;
2307
+ params: import("zod").ZodObject<{
2308
+ id: import("zod").ZodString;
2309
+ }, import("zod/v4/core").$strip>;
2310
+ query: import("zod").ZodObject<{
2311
+ userRealmName: import("zod").ZodOptional<import("zod").ZodString>;
2312
+ }, import("zod/v4/core").$strip>;
2313
+ response: import("zod").ZodObject<{
2314
+ id: PgAttr<PgAttr<import("zod").ZodString, typeof PG_PRIMARY_KEY>, typeof PG_DEFAULT>;
2315
+ version: PgAttr<PgAttr<import("zod").ZodInt, typeof PG_VERSION>, typeof PG_DEFAULT>;
2316
+ createdAt: PgAttr<PgAttr<import("zod").ZodString, typeof PG_CREATED_AT>, typeof PG_DEFAULT>;
2317
+ updatedAt: PgAttr<PgAttr<import("zod").ZodString, typeof PG_UPDATED_AT>, typeof PG_DEFAULT>;
2318
+ userId: PgAttr<import("zod").ZodString, typeof PG_REF>;
2319
+ provider: import("zod").ZodString;
2320
+ providerUserId: import("zod").ZodOptional<import("zod").ZodString>;
2321
+ providerData: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodAny>>;
2322
+ }, import("zod/v4/core").$strip>;
2306
2323
  }>;
2307
2324
  /**
2308
2325
  * Delete an identity.
2309
2326
  */
2310
2327
  readonly deleteIdentity: import("alepha/server").ActionPrimitiveFn<{
2311
- params: import("typebox").TObject<{
2312
- id: import("typebox").TString;
2313
- }>;
2314
- query: import("typebox").TObject<{
2315
- userRealmName: import("typebox").TOptional<import("typebox").TString>;
2316
- }>;
2317
- response: import("typebox").TObject<{
2318
- ok: import("typebox").TBoolean;
2319
- id: import("typebox").TOptional<import("typebox").TUnion<[import("typebox").TString, import("typebox").TInteger]>>;
2320
- count: import("typebox").TOptional<import("typebox").TNumber>;
2321
- }>;
2328
+ params: import("zod").ZodObject<{
2329
+ id: import("zod").ZodString;
2330
+ }, import("zod/v4/core").$strip>;
2331
+ query: import("zod").ZodObject<{
2332
+ userRealmName: import("zod").ZodOptional<import("zod").ZodString>;
2333
+ }, import("zod/v4/core").$strip>;
2334
+ response: import("zod").ZodObject<{
2335
+ ok: import("zod").ZodBoolean;
2336
+ id: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodInt]>>;
2337
+ count: import("zod").ZodOptional<import("zod").ZodNumber>;
2338
+ }, import("zod/v4/core").$strip>;
2322
2339
  }>;
2323
2340
  }
2324
2341
  //#endregion
2325
2342
  //#region ../../src/api/users/schemas/sessionQuerySchema.d.ts
2326
- declare const sessionQuerySchema: import("typebox").TObject<{
2327
- page: import("typebox").TOptional<import("typebox").TInteger>;
2328
- size: import("typebox").TOptional<import("typebox").TInteger>;
2329
- sort: import("typebox").TOptional<import("typebox").TString>;
2330
- userId: import("typebox").TOptional<import("typebox").TString>;
2331
- }>;
2343
+ declare const sessionQuerySchema: import("zod").ZodObject<{
2344
+ page: import("zod").ZodOptional<import("zod").ZodDefault<import("zod").ZodInt>>;
2345
+ size: import("zod").ZodOptional<import("zod").ZodDefault<import("zod").ZodInt>>;
2346
+ sort: import("zod").ZodOptional<import("zod").ZodString>;
2347
+ userId: import("zod").ZodOptional<import("zod").ZodString>;
2348
+ }, import("zod/v4/core").$strip>;
2332
2349
  type SessionQuery = Static<typeof sessionQuerySchema>;
2333
2350
  //#endregion
2334
2351
  //#region ../../src/api/users/services/SessionCrudService.d.ts
2335
2352
  declare class SessionCrudService {
2336
2353
  protected readonly log: import("alepha/logger").Logger;
2337
2354
  protected readonly realmProvider: RealmProvider;
2338
- sessions(userRealmName?: string): import("alepha/orm").Repository<import("typebox").TObject<{
2339
- id: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("typebox").TString, typeof import("alepha/orm").PG_PRIMARY_KEY>, typeof import("alepha/orm").PG_DEFAULT>;
2340
- version: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("typebox").TInteger, typeof import("alepha/orm").PG_VERSION>, typeof import("alepha/orm").PG_DEFAULT>;
2341
- createdAt: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("typebox").TString, typeof import("alepha/orm").PG_CREATED_AT>, typeof import("alepha/orm").PG_DEFAULT>;
2342
- updatedAt: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("typebox").TString, typeof import("alepha/orm").PG_UPDATED_AT>, typeof import("alepha/orm").PG_DEFAULT>;
2343
- refreshToken: import("typebox").TString;
2344
- userId: import("alepha/orm").PgAttr<import("typebox").TString, typeof import("alepha/orm").PG_REF>;
2345
- clientId: import("typebox").TOptional<import("typebox").TString>;
2346
- expiresAt: import("typebox").TString;
2347
- lastUsedAt: import("typebox").TOptional<import("typebox").TString>;
2348
- ip: import("typebox").TOptional<import("typebox").TString>;
2349
- country: import("typebox").TOptional<import("typebox").TString>;
2350
- userAgent: import("typebox").TOptional<import("typebox").TObject<{
2351
- os: import("typebox").TString;
2352
- browser: import("typebox").TString;
2353
- device: import("typebox").TUnsafe<"MOBILE" | "DESKTOP" | "TABLET">;
2354
- }>>;
2355
- }>>;
2355
+ sessions(userRealmName?: string): import("alepha/orm").Repository<import("zod").ZodObject<{
2356
+ id: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("zod").ZodString, typeof import("alepha/orm").PG_PRIMARY_KEY>, typeof import("alepha/orm").PG_DEFAULT>;
2357
+ version: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("zod").ZodInt, typeof import("alepha/orm").PG_VERSION>, typeof import("alepha/orm").PG_DEFAULT>;
2358
+ createdAt: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("zod").ZodString, typeof import("alepha/orm").PG_CREATED_AT>, typeof import("alepha/orm").PG_DEFAULT>;
2359
+ updatedAt: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("zod").ZodString, typeof import("alepha/orm").PG_UPDATED_AT>, typeof import("alepha/orm").PG_DEFAULT>;
2360
+ refreshToken: import("zod").ZodString;
2361
+ userId: import("alepha/orm").PgAttr<import("zod").ZodString, typeof import("alepha/orm").PG_REF>;
2362
+ clientId: import("zod").ZodOptional<import("zod").ZodString>;
2363
+ expiresAt: import("zod").ZodString;
2364
+ lastUsedAt: import("zod").ZodOptional<import("zod").ZodString>;
2365
+ ip: import("zod").ZodOptional<import("zod").ZodString>;
2366
+ country: import("zod").ZodOptional<import("zod").ZodString>;
2367
+ userAgent: import("zod").ZodOptional<import("zod").ZodObject<{
2368
+ os: import("zod").ZodString;
2369
+ browser: import("zod").ZodString;
2370
+ device: import("zod").ZodEnum<{
2371
+ DESKTOP: "DESKTOP";
2372
+ MOBILE: "MOBILE";
2373
+ TABLET: "TABLET";
2374
+ }>;
2375
+ }, import("zod/v4/core").$strip>>;
2376
+ }, import("zod/v4/core").$strip>>;
2356
2377
  /**
2357
2378
  * Find sessions with pagination and filtering.
2358
2379
  */
@@ -2376,188 +2397,210 @@ declare class AdminSessionController {
2376
2397
  protected readonly url = "/sessions";
2377
2398
  protected readonly group = "admin:sessions";
2378
2399
  protected readonly sessionService: SessionCrudService;
2400
+ protected readonly securityProvider: SecurityProvider;
2379
2401
  /**
2380
2402
  * Find sessions with pagination and filtering.
2381
2403
  */
2382
2404
  readonly findSessions: import("alepha/server").ActionPrimitiveFn<{
2383
- query: import("typebox").TObject<{
2384
- page: import("typebox").TOptional<import("typebox").TInteger>;
2385
- size: import("typebox").TOptional<import("typebox").TInteger>;
2386
- sort: import("typebox").TOptional<import("typebox").TString>;
2387
- userId: import("typebox").TOptional<import("typebox").TString>;
2388
- userRealmName: import("typebox").TOptional<import("typebox").TString>;
2389
- }>;
2390
- response: import("alepha").TPage<import("typebox").TObject<{
2391
- id: import("typebox").TString;
2392
- version: import("typebox").TNumber;
2393
- createdAt: import("typebox").TString;
2394
- updatedAt: import("typebox").TString;
2395
- refreshToken: import("typebox").TString;
2396
- userId: import("typebox").TString;
2397
- expiresAt: import("typebox").TString;
2398
- ip: import("typebox").TOptional<import("typebox").TString>;
2399
- country: import("typebox").TOptional<import("typebox").TString>;
2400
- userAgent: import("typebox").TOptional<import("typebox").TObject<{
2401
- os: import("typebox").TString;
2402
- browser: import("typebox").TString;
2403
- device: import("typebox").TUnsafe<"MOBILE" | "DESKTOP" | "TABLET">;
2404
- }>>;
2405
- user: import("typebox").TOptional<import("typebox").TObject<{
2406
- id: import("typebox").TString;
2407
- email: import("typebox").TOptional<import("typebox").TString>;
2408
- username: import("typebox").TOptional<import("typebox").TString>;
2409
- firstName: import("typebox").TOptional<import("typebox").TString>;
2410
- lastName: import("typebox").TOptional<import("typebox").TString>;
2411
- }>>;
2412
- }>>;
2405
+ query: import("zod").ZodObject<{
2406
+ page: import("zod").ZodOptional<import("zod").ZodDefault<import("zod").ZodInt>>;
2407
+ size: import("zod").ZodOptional<import("zod").ZodDefault<import("zod").ZodInt>>;
2408
+ sort: import("zod").ZodOptional<import("zod").ZodString>;
2409
+ userId: import("zod").ZodOptional<import("zod").ZodString>;
2410
+ userRealmName: import("zod").ZodOptional<import("zod").ZodString>;
2411
+ }, import("zod/v4/core").$strip>;
2412
+ response: import("zod").ZodObject<{
2413
+ content: import("zod").ZodArray<import("zod").ZodObject<{
2414
+ id: import("zod").ZodString;
2415
+ version: import("zod").ZodNumber;
2416
+ createdAt: import("zod").ZodString;
2417
+ updatedAt: import("zod").ZodString;
2418
+ refreshToken: import("zod").ZodString;
2419
+ userId: import("zod").ZodString;
2420
+ expiresAt: import("zod").ZodString;
2421
+ ip: import("zod").ZodOptional<import("zod").ZodString>;
2422
+ country: import("zod").ZodOptional<import("zod").ZodString>;
2423
+ userAgent: import("zod").ZodOptional<import("zod").ZodObject<{
2424
+ os: import("zod").ZodString;
2425
+ browser: import("zod").ZodString;
2426
+ device: import("zod").ZodEnum<{
2427
+ DESKTOP: "DESKTOP";
2428
+ MOBILE: "MOBILE";
2429
+ TABLET: "TABLET";
2430
+ }>;
2431
+ }, import("zod/v4/core").$strip>>;
2432
+ user: import("zod").ZodOptional<import("zod").ZodObject<{
2433
+ id: import("zod").ZodString;
2434
+ email: import("zod").ZodOptional<import("zod").ZodString>;
2435
+ username: import("zod").ZodOptional<import("zod").ZodString>;
2436
+ firstName: import("zod").ZodOptional<import("zod").ZodString>;
2437
+ lastName: import("zod").ZodOptional<import("zod").ZodString>;
2438
+ }, import("zod/v4/core").$strip>>;
2439
+ }, import("zod/v4/core").$strip>>;
2440
+ page: import("zod").ZodObject<{
2441
+ number: import("zod").ZodInt;
2442
+ size: import("zod").ZodInt;
2443
+ offset: import("zod").ZodInt;
2444
+ numberOfElements: import("zod").ZodInt;
2445
+ totalElements: import("zod").ZodOptional<import("zod").ZodInt>;
2446
+ totalPages: import("zod").ZodOptional<import("zod").ZodInt>;
2447
+ isEmpty: import("zod").ZodBoolean;
2448
+ isFirst: import("zod").ZodBoolean;
2449
+ isLast: import("zod").ZodBoolean;
2450
+ }, import("zod/v4/core").$strip>;
2451
+ }, import("zod/v4/core").$strip>;
2413
2452
  }>;
2414
2453
  /**
2415
2454
  * Get a session by ID.
2416
2455
  */
2417
2456
  readonly getSession: import("alepha/server").ActionPrimitiveFn<{
2418
- params: import("typebox").TObject<{
2419
- id: import("typebox").TString;
2420
- }>;
2421
- query: import("typebox").TObject<{
2422
- userRealmName: import("typebox").TOptional<import("typebox").TString>;
2423
- }>;
2424
- response: import("typebox").TObject<{
2425
- id: import("typebox").TString;
2426
- version: import("typebox").TNumber;
2427
- createdAt: import("typebox").TString;
2428
- updatedAt: import("typebox").TString;
2429
- refreshToken: import("typebox").TString;
2430
- userId: import("typebox").TString;
2431
- expiresAt: import("typebox").TString;
2432
- ip: import("typebox").TOptional<import("typebox").TString>;
2433
- country: import("typebox").TOptional<import("typebox").TString>;
2434
- userAgent: import("typebox").TOptional<import("typebox").TObject<{
2435
- os: import("typebox").TString;
2436
- browser: import("typebox").TString;
2437
- device: import("typebox").TUnsafe<"MOBILE" | "DESKTOP" | "TABLET">;
2438
- }>>;
2439
- user: import("typebox").TOptional<import("typebox").TObject<{
2440
- id: import("typebox").TString;
2441
- email: import("typebox").TOptional<import("typebox").TString>;
2442
- username: import("typebox").TOptional<import("typebox").TString>;
2443
- firstName: import("typebox").TOptional<import("typebox").TString>;
2444
- lastName: import("typebox").TOptional<import("typebox").TString>;
2445
- }>>;
2446
- }>;
2457
+ params: import("zod").ZodObject<{
2458
+ id: import("zod").ZodString;
2459
+ }, import("zod/v4/core").$strip>;
2460
+ query: import("zod").ZodObject<{
2461
+ userRealmName: import("zod").ZodOptional<import("zod").ZodString>;
2462
+ }, import("zod/v4/core").$strip>;
2463
+ response: import("zod").ZodObject<{
2464
+ id: import("zod").ZodString;
2465
+ version: import("zod").ZodNumber;
2466
+ createdAt: import("zod").ZodString;
2467
+ updatedAt: import("zod").ZodString;
2468
+ refreshToken: import("zod").ZodString;
2469
+ userId: import("zod").ZodString;
2470
+ expiresAt: import("zod").ZodString;
2471
+ ip: import("zod").ZodOptional<import("zod").ZodString>;
2472
+ country: import("zod").ZodOptional<import("zod").ZodString>;
2473
+ userAgent: import("zod").ZodOptional<import("zod").ZodObject<{
2474
+ os: import("zod").ZodString;
2475
+ browser: import("zod").ZodString;
2476
+ device: import("zod").ZodEnum<{
2477
+ DESKTOP: "DESKTOP";
2478
+ MOBILE: "MOBILE";
2479
+ TABLET: "TABLET";
2480
+ }>;
2481
+ }, import("zod/v4/core").$strip>>;
2482
+ user: import("zod").ZodOptional<import("zod").ZodObject<{
2483
+ id: import("zod").ZodString;
2484
+ email: import("zod").ZodOptional<import("zod").ZodString>;
2485
+ username: import("zod").ZodOptional<import("zod").ZodString>;
2486
+ firstName: import("zod").ZodOptional<import("zod").ZodString>;
2487
+ lastName: import("zod").ZodOptional<import("zod").ZodString>;
2488
+ }, import("zod/v4/core").$strip>>;
2489
+ }, import("zod/v4/core").$strip>;
2447
2490
  }>;
2448
2491
  /**
2449
2492
  * Delete a session.
2450
2493
  */
2451
2494
  readonly deleteSession: import("alepha/server").ActionPrimitiveFn<{
2452
- params: import("typebox").TObject<{
2453
- id: import("typebox").TString;
2454
- }>;
2455
- query: import("typebox").TObject<{
2456
- userRealmName: import("typebox").TOptional<import("typebox").TString>;
2457
- }>;
2458
- response: import("typebox").TObject<{
2459
- ok: import("typebox").TBoolean;
2460
- id: import("typebox").TOptional<import("typebox").TUnion<[import("typebox").TString, import("typebox").TInteger]>>;
2461
- count: import("typebox").TOptional<import("typebox").TNumber>;
2462
- }>;
2495
+ params: import("zod").ZodObject<{
2496
+ id: import("zod").ZodString;
2497
+ }, import("zod/v4/core").$strip>;
2498
+ query: import("zod").ZodObject<{
2499
+ userRealmName: import("zod").ZodOptional<import("zod").ZodString>;
2500
+ }, import("zod/v4/core").$strip>;
2501
+ response: import("zod").ZodObject<{
2502
+ ok: import("zod").ZodBoolean;
2503
+ id: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodInt]>>;
2504
+ count: import("zod").ZodOptional<import("zod").ZodNumber>;
2505
+ }, import("zod/v4/core").$strip>;
2463
2506
  }>;
2464
2507
  /**
2465
2508
  * Delete many sessions in one repository call.
2466
2509
  */
2467
2510
  readonly deleteSessions: import("alepha/server").ActionPrimitiveFn<{
2468
- query: import("typebox").TObject<{
2469
- userRealmName: import("typebox").TOptional<import("typebox").TString>;
2470
- }>;
2471
- body: import("typebox").TObject<{
2472
- ids: import("typebox").TArray<import("typebox").TString>;
2473
- }>;
2474
- response: import("typebox").TObject<{
2475
- deleted: import("typebox").TArray<import("typebox").TString>;
2476
- }>;
2511
+ query: import("zod").ZodObject<{
2512
+ userRealmName: import("zod").ZodOptional<import("zod").ZodString>;
2513
+ }, import("zod/v4/core").$strip>;
2514
+ body: import("zod").ZodObject<{
2515
+ ids: import("zod").ZodArray<import("zod").ZodString>;
2516
+ }, import("zod/v4/core").$strip>;
2517
+ response: import("zod").ZodObject<{
2518
+ deleted: import("zod").ZodArray<import("zod").ZodString>;
2519
+ }, import("zod/v4/core").$strip>;
2477
2520
  }>;
2478
2521
  }
2479
2522
  //#endregion
2480
2523
  //#region ../../src/api/users/notifications/UserNotifications.d.ts
2481
2524
  declare class UserNotifications {
2482
- readonly passwordReset: import("alepha/api/notifications").NotificationPrimitive<import("typebox").TObject<{
2483
- email: import("typebox").TString;
2484
- code: import("typebox").TString;
2485
- expiresInMinutes: import("typebox").TNumber;
2486
- }>>;
2487
- readonly emailVerification: import("alepha/api/notifications").NotificationPrimitive<import("typebox").TObject<{
2488
- email: import("typebox").TString;
2489
- code: import("typebox").TString;
2490
- expiresInMinutes: import("typebox").TNumber;
2491
- }>>;
2492
- readonly phoneVerification: import("alepha/api/notifications").NotificationPrimitive<import("typebox").TObject<{
2493
- phoneNumber: import("typebox").TString;
2494
- code: import("typebox").TString;
2495
- expiresInMinutes: import("typebox").TNumber;
2496
- }>>;
2497
- readonly passwordResetLink: import("alepha/api/notifications").NotificationPrimitive<import("typebox").TObject<{
2498
- email: import("typebox").TString;
2499
- resetUrl: import("typebox").TString;
2500
- expiresInMinutes: import("typebox").TNumber;
2501
- }>>;
2502
- readonly accountLockout: import("alepha/api/notifications").NotificationPrimitive<import("typebox").TObject<{
2503
- email: import("typebox").TString;
2504
- lockoutMinutes: import("typebox").TNumber;
2505
- }>>;
2506
- readonly emailVerificationLink: import("alepha/api/notifications").NotificationPrimitive<import("typebox").TObject<{
2507
- email: import("typebox").TString;
2508
- verifyUrl: import("typebox").TString;
2509
- expiresInMinutes: import("typebox").TNumber;
2510
- }>>;
2525
+ readonly passwordReset: import("alepha/api/notifications").NotificationPrimitive<import("zod").ZodObject<{
2526
+ email: import("zod").ZodString;
2527
+ code: import("zod").ZodString;
2528
+ expiresInMinutes: import("zod").ZodNumber;
2529
+ }, import("zod/v4/core").$strip>>;
2530
+ readonly emailVerification: import("alepha/api/notifications").NotificationPrimitive<import("zod").ZodObject<{
2531
+ email: import("zod").ZodString;
2532
+ code: import("zod").ZodString;
2533
+ expiresInMinutes: import("zod").ZodNumber;
2534
+ }, import("zod/v4/core").$strip>>;
2535
+ readonly phoneVerification: import("alepha/api/notifications").NotificationPrimitive<import("zod").ZodObject<{
2536
+ phoneNumber: import("zod").ZodString;
2537
+ code: import("zod").ZodString;
2538
+ expiresInMinutes: import("zod").ZodNumber;
2539
+ }, import("zod/v4/core").$strip>>;
2540
+ readonly passwordResetLink: import("alepha/api/notifications").NotificationPrimitive<import("zod").ZodObject<{
2541
+ email: import("zod").ZodString;
2542
+ resetUrl: import("zod").ZodString;
2543
+ expiresInMinutes: import("zod").ZodNumber;
2544
+ }, import("zod/v4/core").$strip>>;
2545
+ readonly accountLockout: import("alepha/api/notifications").NotificationPrimitive<import("zod").ZodObject<{
2546
+ email: import("zod").ZodString;
2547
+ lockoutMinutes: import("zod").ZodNumber;
2548
+ }, import("zod/v4/core").$strip>>;
2549
+ readonly emailVerificationLink: import("alepha/api/notifications").NotificationPrimitive<import("zod").ZodObject<{
2550
+ email: import("zod").ZodString;
2551
+ verifyUrl: import("zod").ZodString;
2552
+ expiresInMinutes: import("zod").ZodNumber;
2553
+ }, import("zod/v4/core").$strip>>;
2511
2554
  }
2512
2555
  //#endregion
2513
2556
  //#region ../../src/api/users/schemas/createUserSchema.d.ts
2514
- declare const createUserSchema: import("typebox").TObject<{
2515
- email: import("typebox").TOptional<import("typebox").TOptional<import("typebox").TString>>;
2516
- username: import("typebox").TOptional<import("typebox").TOptional<import("typebox").TString>>;
2517
- phoneNumber: import("typebox").TOptional<import("typebox").TOptional<import("typebox").TString>>;
2518
- enabled: import("typebox").TOptional<PgAttr<import("typebox").TBoolean, typeof PG_DEFAULT>>;
2519
- id: import("typebox").TOptional<PgAttr<PgAttr<import("typebox").TString, typeof PG_PRIMARY_KEY>, typeof PG_DEFAULT>>;
2520
- version: import("typebox").TOptional<PgAttr<PgAttr<import("typebox").TInteger, typeof PG_VERSION>, typeof PG_DEFAULT>>;
2521
- createdAt: import("typebox").TOptional<PgAttr<PgAttr<import("typebox").TString, typeof PG_CREATED_AT>, typeof PG_DEFAULT>>;
2522
- updatedAt: import("typebox").TOptional<PgAttr<PgAttr<import("typebox").TString, typeof PG_UPDATED_AT>, typeof PG_DEFAULT>>;
2523
- roles: import("typebox").TOptional<PgAttr<import("typebox").TArray<import("typebox").TString>, typeof PG_DEFAULT>>;
2524
- firstName: import("typebox").TOptional<import("typebox").TOptional<import("typebox").TString>>;
2525
- lastName: import("typebox").TOptional<import("typebox").TOptional<import("typebox").TString>>;
2526
- picture: import("typebox").TOptional<import("typebox").TOptional<import("typebox").TString>>;
2527
- emailVerified: import("typebox").TOptional<PgAttr<import("typebox").TBoolean, typeof PG_DEFAULT>>;
2528
- lastLoginAt: import("typebox").TOptional<import("typebox").TOptional<import("typebox").TString>>;
2529
- organizationId: import("typebox").TOptional<PgAttr<import("typebox").TString, typeof PG_ORGANIZATION>>;
2530
- }>;
2557
+ declare const createUserSchema: import("zod").ZodObject<{
2558
+ id: import("alepha").TOptional<PgAttr<PgAttr<import("zod").ZodString, typeof PG_PRIMARY_KEY>, typeof PG_DEFAULT>>;
2559
+ version: import("alepha").TOptional<PgAttr<PgAttr<import("zod").ZodInt, typeof PG_VERSION>, typeof PG_DEFAULT>>;
2560
+ createdAt: import("alepha").TOptional<PgAttr<PgAttr<import("zod").ZodString, typeof PG_CREATED_AT>, typeof PG_DEFAULT>>;
2561
+ updatedAt: import("alepha").TOptional<PgAttr<PgAttr<import("zod").ZodString, typeof PG_UPDATED_AT>, typeof PG_DEFAULT>>;
2562
+ username: import("zod").ZodOptional<import("zod").ZodString>;
2563
+ email: import("zod").ZodOptional<import("zod").ZodString>;
2564
+ phoneNumber: import("zod").ZodOptional<import("zod").ZodString>;
2565
+ roles: import("alepha").TOptional<PgAttr<import("zod").ZodArray<import("zod").ZodString>, typeof PG_DEFAULT>>;
2566
+ firstName: import("zod").ZodOptional<import("zod").ZodString>;
2567
+ lastName: import("zod").ZodOptional<import("zod").ZodString>;
2568
+ picture: import("zod").ZodOptional<import("zod").ZodString>;
2569
+ enabled: import("alepha").TOptional<PgAttr<import("zod").ZodBoolean, typeof PG_DEFAULT>>;
2570
+ emailVerified: import("alepha").TOptional<PgAttr<import("zod").ZodBoolean, typeof PG_DEFAULT>>;
2571
+ lastLoginAt: import("zod").ZodOptional<import("zod").ZodString>;
2572
+ organizationId: import("alepha").TOptional<PgAttr<import("zod").ZodOptional<import("zod").ZodString> | import("zod").ZodString, typeof PG_ORGANIZATION>>;
2573
+ }, import("zod/v4/core").$strip>;
2531
2574
  type CreateUser = Static<typeof createUserSchema>;
2532
2575
  //#endregion
2533
2576
  //#region ../../src/api/users/schemas/updateUserSchema.d.ts
2534
- declare const updateUserSchema: import("typebox").TObject<{
2535
- email: import("typebox").TOptional<import("typebox").TOptional<import("typebox").TString>>;
2536
- username: import("typebox").TOptional<import("typebox").TOptional<import("typebox").TString>>;
2537
- phoneNumber: import("typebox").TOptional<import("typebox").TOptional<import("typebox").TString>>;
2538
- enabled: import("typebox").TOptional<PgAttr<import("typebox").TBoolean, typeof PG_DEFAULT>>;
2539
- realm: import("typebox").TOptional<PgAttr<import("typebox").TString, typeof PG_DEFAULT>>;
2540
- roles: import("typebox").TOptional<PgAttr<import("typebox").TArray<import("typebox").TString>, typeof PG_DEFAULT>>;
2541
- firstName: import("typebox").TOptional<import("typebox").TOptional<import("typebox").TString>>;
2542
- lastName: import("typebox").TOptional<import("typebox").TOptional<import("typebox").TString>>;
2543
- picture: import("typebox").TOptional<import("typebox").TOptional<import("typebox").TString>>;
2544
- emailVerified: import("typebox").TOptional<PgAttr<import("typebox").TBoolean, typeof PG_DEFAULT>>;
2545
- lastLoginAt: import("typebox").TOptional<import("typebox").TOptional<import("typebox").TString>>;
2546
- organizationId: import("typebox").TOptional<PgAttr<import("typebox").TString, typeof PG_ORGANIZATION>>;
2547
- }>;
2577
+ declare const updateUserSchema: import("zod").ZodObject<{
2578
+ realm: import("zod").ZodOptional<import("alepha").TOptional<PgAttr<import("zod").ZodString, typeof PG_DEFAULT>>>;
2579
+ username: import("zod").ZodOptional<import("zod").ZodOptional<import("zod").ZodString>>;
2580
+ email: import("zod").ZodOptional<import("zod").ZodOptional<import("zod").ZodString>>;
2581
+ phoneNumber: import("zod").ZodOptional<import("zod").ZodOptional<import("zod").ZodString>>;
2582
+ roles: import("zod").ZodOptional<import("alepha").TOptional<PgAttr<import("zod").ZodArray<import("zod").ZodString>, typeof PG_DEFAULT>>>;
2583
+ firstName: import("zod").ZodOptional<import("zod").ZodOptional<import("zod").ZodString>>;
2584
+ lastName: import("zod").ZodOptional<import("zod").ZodOptional<import("zod").ZodString>>;
2585
+ picture: import("zod").ZodOptional<import("zod").ZodOptional<import("zod").ZodString>>;
2586
+ enabled: import("zod").ZodOptional<import("alepha").TOptional<PgAttr<import("zod").ZodBoolean, typeof PG_DEFAULT>>>;
2587
+ emailVerified: import("zod").ZodOptional<import("alepha").TOptional<PgAttr<import("zod").ZodBoolean, typeof PG_DEFAULT>>>;
2588
+ lastLoginAt: import("zod").ZodOptional<import("zod").ZodOptional<import("zod").ZodString>>;
2589
+ organizationId: import("zod").ZodOptional<import("alepha").TOptional<PgAttr<import("zod").ZodOptional<import("zod").ZodString> | import("zod").ZodString, typeof PG_ORGANIZATION>>>;
2590
+ }, import("zod/v4/core").$strip>;
2548
2591
  type UpdateUser = Static<typeof updateUserSchema>;
2549
2592
  //#endregion
2550
2593
  //#region ../../src/api/users/schemas/userQuerySchema.d.ts
2551
- declare const userQuerySchema: import("typebox").TObject<{
2552
- page: import("typebox").TOptional<import("typebox").TInteger>;
2553
- size: import("typebox").TOptional<import("typebox").TInteger>;
2554
- sort: import("typebox").TOptional<import("typebox").TString>;
2555
- search: import("typebox").TOptional<import("typebox").TString>;
2556
- email: import("typebox").TOptional<import("typebox").TString>;
2557
- enabled: import("typebox").TOptional<import("typebox").TBoolean>;
2558
- emailVerified: import("typebox").TOptional<import("typebox").TBoolean>;
2559
- roles: import("typebox").TOptional<import("typebox").TArray<import("typebox").TString>>;
2560
- }>;
2594
+ declare const userQuerySchema: import("zod").ZodObject<{
2595
+ page: import("zod").ZodOptional<import("zod").ZodDefault<import("zod").ZodInt>>;
2596
+ size: import("zod").ZodOptional<import("zod").ZodDefault<import("zod").ZodInt>>;
2597
+ sort: import("zod").ZodOptional<import("zod").ZodString>;
2598
+ search: import("zod").ZodOptional<import("zod").ZodString>;
2599
+ email: import("zod").ZodOptional<import("zod").ZodString>;
2600
+ enabled: import("zod").ZodOptional<import("zod").ZodBoolean>;
2601
+ emailVerified: import("zod").ZodOptional<import("zod").ZodBoolean>;
2602
+ roles: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
2603
+ }, import("zod/v4/core").$strip>;
2561
2604
  type UserQuery = Static<typeof userQuerySchema>;
2562
2605
  //#endregion
2563
2606
  //#region ../../src/api/users/services/UserService.d.ts
@@ -2565,28 +2608,29 @@ declare class UserService {
2565
2608
  protected readonly alepha: Alepha;
2566
2609
  protected readonly log: import("alepha/logger").Logger;
2567
2610
  protected readonly verificationController: import("alepha/server/links").HttpVirtualClient<VerificationController>;
2611
+ protected readonly verificationService: VerificationService;
2568
2612
  protected readonly realmProvider: RealmProvider;
2569
2613
  protected readonly cryptoProvider: CryptoProvider;
2570
2614
  protected userAudits(realmName?: string): UserAudits | undefined;
2571
2615
  protected userNotifications(realmName?: string): UserNotifications | undefined;
2572
- users(userRealmName?: string): import("alepha/orm").Repository<import("typebox").TObject<{
2573
- id: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("typebox").TString, typeof import("alepha/orm").PG_PRIMARY_KEY>, typeof import("alepha/orm").PG_DEFAULT>;
2574
- version: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("typebox").TInteger, typeof import("alepha/orm").PG_VERSION>, typeof import("alepha/orm").PG_DEFAULT>;
2575
- createdAt: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("typebox").TString, typeof import("alepha/orm").PG_CREATED_AT>, typeof import("alepha/orm").PG_DEFAULT>;
2576
- updatedAt: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("typebox").TString, typeof import("alepha/orm").PG_UPDATED_AT>, typeof import("alepha/orm").PG_DEFAULT>;
2577
- realm: import("alepha/orm").PgAttr<import("typebox").TString, typeof import("alepha/orm").PG_DEFAULT>;
2578
- username: import("typebox").TOptional<import("typebox").TString>;
2579
- email: import("typebox").TOptional<import("typebox").TString>;
2580
- phoneNumber: import("typebox").TOptional<import("typebox").TString>;
2581
- roles: import("alepha/orm").PgAttr<import("typebox").TArray<import("typebox").TString>, typeof import("alepha/orm").PG_DEFAULT>;
2582
- firstName: import("typebox").TOptional<import("typebox").TString>;
2583
- lastName: import("typebox").TOptional<import("typebox").TString>;
2584
- picture: import("typebox").TOptional<import("typebox").TString>;
2585
- enabled: import("alepha/orm").PgAttr<import("typebox").TBoolean, typeof import("alepha/orm").PG_DEFAULT>;
2586
- emailVerified: import("alepha/orm").PgAttr<import("typebox").TBoolean, typeof import("alepha/orm").PG_DEFAULT>;
2587
- lastLoginAt: import("typebox").TOptional<import("typebox").TString>;
2588
- organizationId: import("alepha/orm").PgAttr<import("typebox").TString, typeof import("alepha/orm").PG_ORGANIZATION>;
2589
- }>>;
2616
+ users(userRealmName?: string): import("alepha/orm").Repository<import("zod").ZodObject<{
2617
+ id: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("zod").ZodString, typeof import("alepha/orm").PG_PRIMARY_KEY>, typeof import("alepha/orm").PG_DEFAULT>;
2618
+ version: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("zod").ZodInt, typeof import("alepha/orm").PG_VERSION>, typeof import("alepha/orm").PG_DEFAULT>;
2619
+ createdAt: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("zod").ZodString, typeof import("alepha/orm").PG_CREATED_AT>, typeof import("alepha/orm").PG_DEFAULT>;
2620
+ updatedAt: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("zod").ZodString, typeof import("alepha/orm").PG_UPDATED_AT>, typeof import("alepha/orm").PG_DEFAULT>;
2621
+ realm: import("alepha/orm").PgAttr<import("zod").ZodString, typeof import("alepha/orm").PG_DEFAULT>;
2622
+ username: import("zod").ZodOptional<import("zod").ZodString>;
2623
+ email: import("zod").ZodOptional<import("zod").ZodString>;
2624
+ phoneNumber: import("zod").ZodOptional<import("zod").ZodString>;
2625
+ roles: import("alepha/orm").PgAttr<import("zod").ZodArray<import("zod").ZodString>, typeof import("alepha/orm").PG_DEFAULT>;
2626
+ firstName: import("zod").ZodOptional<import("zod").ZodString>;
2627
+ lastName: import("zod").ZodOptional<import("zod").ZodString>;
2628
+ picture: import("zod").ZodOptional<import("zod").ZodString>;
2629
+ enabled: import("alepha/orm").PgAttr<import("zod").ZodBoolean, typeof import("alepha/orm").PG_DEFAULT>;
2630
+ emailVerified: import("alepha/orm").PgAttr<import("zod").ZodBoolean, typeof import("alepha/orm").PG_DEFAULT>;
2631
+ lastLoginAt: import("zod").ZodOptional<import("zod").ZodString>;
2632
+ organizationId: import("alepha/orm").PgAttr<import("zod").ZodOptional<import("zod").ZodString> | import("zod").ZodString, typeof import("alepha/orm").PG_ORGANIZATION>;
2633
+ }, import("zod/v4/core").$strip>>;
2590
2634
  /**
2591
2635
  * Request email verification for a user.
2592
2636
  * @param email - The email address to verify.
@@ -2644,163 +2688,176 @@ declare class AdminUserController {
2644
2688
  * role picker and grey out defaults (which cannot be removed).
2645
2689
  */
2646
2690
  readonly findRoles: import("alepha/server").ActionPrimitiveFn<{
2647
- query: import("typebox").TObject<{
2648
- userRealmName: import("typebox").TOptional<import("typebox").TString>;
2649
- }>;
2650
- response: import("typebox").TArray<import("typebox").TObject<{
2651
- name: import("typebox").TString;
2652
- default: import("typebox").TOptional<import("typebox").TBoolean>;
2653
- description: import("typebox").TOptional<import("typebox").TString>;
2654
- }>>;
2691
+ query: import("zod").ZodObject<{
2692
+ userRealmName: import("zod").ZodOptional<import("zod").ZodString>;
2693
+ }, import("zod/v4/core").$strip>;
2694
+ response: import("zod").ZodArray<import("zod").ZodObject<{
2695
+ name: import("zod").ZodString;
2696
+ default: import("zod").ZodOptional<import("zod").ZodBoolean>;
2697
+ description: import("zod").ZodOptional<import("zod").ZodString>;
2698
+ }, import("zod/v4/core").$strip>>;
2655
2699
  }>;
2656
2700
  /**
2657
2701
  * Find users with pagination and filtering.
2658
2702
  */
2659
2703
  readonly findUsers: import("alepha/server").ActionPrimitiveFn<{
2660
- query: import("typebox").TObject<{
2661
- page: import("typebox").TOptional<import("typebox").TInteger>;
2662
- size: import("typebox").TOptional<import("typebox").TInteger>;
2663
- sort: import("typebox").TOptional<import("typebox").TString>;
2664
- search: import("typebox").TOptional<import("typebox").TString>;
2665
- email: import("typebox").TOptional<import("typebox").TString>;
2666
- enabled: import("typebox").TOptional<import("typebox").TBoolean>;
2667
- emailVerified: import("typebox").TOptional<import("typebox").TBoolean>;
2668
- roles: import("typebox").TOptional<import("typebox").TArray<import("typebox").TString>>;
2669
- userRealmName: import("typebox").TOptional<import("typebox").TString>;
2670
- }>;
2671
- response: import("alepha").TPage<import("typebox").TObject<{
2672
- id: PgAttr<PgAttr<import("typebox").TString, typeof PG_PRIMARY_KEY>, typeof PG_DEFAULT>;
2673
- version: PgAttr<PgAttr<import("typebox").TInteger, typeof PG_VERSION>, typeof PG_DEFAULT>;
2674
- createdAt: PgAttr<PgAttr<import("typebox").TString, typeof PG_CREATED_AT>, typeof PG_DEFAULT>;
2675
- updatedAt: PgAttr<PgAttr<import("typebox").TString, typeof PG_UPDATED_AT>, typeof PG_DEFAULT>;
2676
- realm: PgAttr<import("typebox").TString, typeof PG_DEFAULT>;
2677
- username: import("typebox").TOptional<import("typebox").TString>;
2678
- email: import("typebox").TOptional<import("typebox").TString>;
2679
- phoneNumber: import("typebox").TOptional<import("typebox").TString>;
2680
- roles: PgAttr<import("typebox").TArray<import("typebox").TString>, typeof PG_DEFAULT>;
2681
- firstName: import("typebox").TOptional<import("typebox").TString>;
2682
- lastName: import("typebox").TOptional<import("typebox").TString>;
2683
- picture: import("typebox").TOptional<import("typebox").TString>;
2684
- enabled: PgAttr<import("typebox").TBoolean, typeof PG_DEFAULT>;
2685
- emailVerified: PgAttr<import("typebox").TBoolean, typeof PG_DEFAULT>;
2686
- lastLoginAt: import("typebox").TOptional<import("typebox").TString>;
2687
- organizationId: PgAttr<import("typebox").TString, typeof PG_ORGANIZATION>;
2688
- }>>;
2704
+ query: import("zod").ZodObject<{
2705
+ page: import("zod").ZodOptional<import("zod").ZodDefault<import("zod").ZodInt>>;
2706
+ size: import("zod").ZodOptional<import("zod").ZodDefault<import("zod").ZodInt>>;
2707
+ sort: import("zod").ZodOptional<import("zod").ZodString>;
2708
+ search: import("zod").ZodOptional<import("zod").ZodString>;
2709
+ email: import("zod").ZodOptional<import("zod").ZodString>;
2710
+ enabled: import("zod").ZodOptional<import("zod").ZodBoolean>;
2711
+ emailVerified: import("zod").ZodOptional<import("zod").ZodBoolean>;
2712
+ roles: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
2713
+ userRealmName: import("zod").ZodOptional<import("zod").ZodString>;
2714
+ }, import("zod/v4/core").$strip>;
2715
+ response: import("zod").ZodObject<{
2716
+ content: import("zod").ZodArray<import("zod").ZodObject<{
2717
+ id: PgAttr<PgAttr<import("zod").ZodString, typeof PG_PRIMARY_KEY>, typeof PG_DEFAULT>;
2718
+ version: PgAttr<PgAttr<import("zod").ZodInt, typeof PG_VERSION>, typeof PG_DEFAULT>;
2719
+ createdAt: PgAttr<PgAttr<import("zod").ZodString, typeof PG_CREATED_AT>, typeof PG_DEFAULT>;
2720
+ updatedAt: PgAttr<PgAttr<import("zod").ZodString, typeof PG_UPDATED_AT>, typeof PG_DEFAULT>;
2721
+ realm: PgAttr<import("zod").ZodString, typeof PG_DEFAULT>;
2722
+ username: import("zod").ZodOptional<import("zod").ZodString>;
2723
+ email: import("zod").ZodOptional<import("zod").ZodString>;
2724
+ phoneNumber: import("zod").ZodOptional<import("zod").ZodString>;
2725
+ roles: PgAttr<import("zod").ZodArray<import("zod").ZodString>, typeof PG_DEFAULT>;
2726
+ firstName: import("zod").ZodOptional<import("zod").ZodString>;
2727
+ lastName: import("zod").ZodOptional<import("zod").ZodString>;
2728
+ picture: import("zod").ZodOptional<import("zod").ZodString>;
2729
+ enabled: PgAttr<import("zod").ZodBoolean, typeof PG_DEFAULT>;
2730
+ emailVerified: PgAttr<import("zod").ZodBoolean, typeof PG_DEFAULT>;
2731
+ lastLoginAt: import("zod").ZodOptional<import("zod").ZodString>;
2732
+ organizationId: PgAttr<import("zod").ZodOptional<import("zod").ZodString> | import("zod").ZodString, typeof PG_ORGANIZATION>;
2733
+ }, import("zod/v4/core").$strip>>;
2734
+ page: import("zod").ZodObject<{
2735
+ number: import("zod").ZodInt;
2736
+ size: import("zod").ZodInt;
2737
+ offset: import("zod").ZodInt;
2738
+ numberOfElements: import("zod").ZodInt;
2739
+ totalElements: import("zod").ZodOptional<import("zod").ZodInt>;
2740
+ totalPages: import("zod").ZodOptional<import("zod").ZodInt>;
2741
+ isEmpty: import("zod").ZodBoolean;
2742
+ isFirst: import("zod").ZodBoolean;
2743
+ isLast: import("zod").ZodBoolean;
2744
+ }, import("zod/v4/core").$strip>;
2745
+ }, import("zod/v4/core").$strip>;
2689
2746
  }>;
2690
2747
  /**
2691
2748
  * Get a user by ID.
2692
2749
  */
2693
2750
  readonly getUser: import("alepha/server").ActionPrimitiveFn<{
2694
- params: import("typebox").TObject<{
2695
- id: import("typebox").TString;
2696
- }>;
2697
- query: import("typebox").TObject<{
2698
- userRealmName: import("typebox").TOptional<import("typebox").TString>;
2699
- }>;
2700
- response: import("typebox").TObject<{
2701
- id: PgAttr<PgAttr<import("typebox").TString, typeof PG_PRIMARY_KEY>, typeof PG_DEFAULT>;
2702
- version: PgAttr<PgAttr<import("typebox").TInteger, typeof PG_VERSION>, typeof PG_DEFAULT>;
2703
- createdAt: PgAttr<PgAttr<import("typebox").TString, typeof PG_CREATED_AT>, typeof PG_DEFAULT>;
2704
- updatedAt: PgAttr<PgAttr<import("typebox").TString, typeof PG_UPDATED_AT>, typeof PG_DEFAULT>;
2705
- realm: PgAttr<import("typebox").TString, typeof PG_DEFAULT>;
2706
- username: import("typebox").TOptional<import("typebox").TString>;
2707
- email: import("typebox").TOptional<import("typebox").TString>;
2708
- phoneNumber: import("typebox").TOptional<import("typebox").TString>;
2709
- roles: PgAttr<import("typebox").TArray<import("typebox").TString>, typeof PG_DEFAULT>;
2710
- firstName: import("typebox").TOptional<import("typebox").TString>;
2711
- lastName: import("typebox").TOptional<import("typebox").TString>;
2712
- picture: import("typebox").TOptional<import("typebox").TString>;
2713
- enabled: PgAttr<import("typebox").TBoolean, typeof PG_DEFAULT>;
2714
- emailVerified: PgAttr<import("typebox").TBoolean, typeof PG_DEFAULT>;
2715
- lastLoginAt: import("typebox").TOptional<import("typebox").TString>;
2716
- organizationId: PgAttr<import("typebox").TString, typeof PG_ORGANIZATION>;
2717
- }>;
2751
+ params: import("zod").ZodObject<{
2752
+ id: import("zod").ZodString;
2753
+ }, import("zod/v4/core").$strip>;
2754
+ query: import("zod").ZodObject<{
2755
+ userRealmName: import("zod").ZodOptional<import("zod").ZodString>;
2756
+ }, import("zod/v4/core").$strip>;
2757
+ response: import("zod").ZodObject<{
2758
+ id: PgAttr<PgAttr<import("zod").ZodString, typeof PG_PRIMARY_KEY>, typeof PG_DEFAULT>;
2759
+ version: PgAttr<PgAttr<import("zod").ZodInt, typeof PG_VERSION>, typeof PG_DEFAULT>;
2760
+ createdAt: PgAttr<PgAttr<import("zod").ZodString, typeof PG_CREATED_AT>, typeof PG_DEFAULT>;
2761
+ updatedAt: PgAttr<PgAttr<import("zod").ZodString, typeof PG_UPDATED_AT>, typeof PG_DEFAULT>;
2762
+ realm: PgAttr<import("zod").ZodString, typeof PG_DEFAULT>;
2763
+ username: import("zod").ZodOptional<import("zod").ZodString>;
2764
+ email: import("zod").ZodOptional<import("zod").ZodString>;
2765
+ phoneNumber: import("zod").ZodOptional<import("zod").ZodString>;
2766
+ roles: PgAttr<import("zod").ZodArray<import("zod").ZodString>, typeof PG_DEFAULT>;
2767
+ firstName: import("zod").ZodOptional<import("zod").ZodString>;
2768
+ lastName: import("zod").ZodOptional<import("zod").ZodString>;
2769
+ picture: import("zod").ZodOptional<import("zod").ZodString>;
2770
+ enabled: PgAttr<import("zod").ZodBoolean, typeof PG_DEFAULT>;
2771
+ emailVerified: PgAttr<import("zod").ZodBoolean, typeof PG_DEFAULT>;
2772
+ lastLoginAt: import("zod").ZodOptional<import("zod").ZodString>;
2773
+ organizationId: PgAttr<import("zod").ZodOptional<import("zod").ZodString> | import("zod").ZodString, typeof PG_ORGANIZATION>;
2774
+ }, import("zod/v4/core").$strip>;
2718
2775
  }>;
2719
2776
  /**
2720
2777
  * Create a new user.
2721
2778
  */
2722
2779
  readonly createUser: import("alepha/server").ActionPrimitiveFn<{
2723
- query: import("typebox").TObject<{
2724
- userRealmName: import("typebox").TOptional<import("typebox").TString>;
2725
- }>;
2726
- body: import("typebox").TObject<{
2727
- email: import("typebox").TOptional<import("typebox").TOptional<import("typebox").TString>>;
2728
- username: import("typebox").TOptional<import("typebox").TOptional<import("typebox").TString>>;
2729
- phoneNumber: import("typebox").TOptional<import("typebox").TOptional<import("typebox").TString>>;
2730
- enabled: import("typebox").TOptional<PgAttr<import("typebox").TBoolean, typeof PG_DEFAULT>>;
2731
- id: import("typebox").TOptional<PgAttr<PgAttr<import("typebox").TString, typeof PG_PRIMARY_KEY>, typeof PG_DEFAULT>>;
2732
- version: import("typebox").TOptional<PgAttr<PgAttr<import("typebox").TInteger, typeof PG_VERSION>, typeof PG_DEFAULT>>;
2733
- createdAt: import("typebox").TOptional<PgAttr<PgAttr<import("typebox").TString, typeof PG_CREATED_AT>, typeof PG_DEFAULT>>;
2734
- updatedAt: import("typebox").TOptional<PgAttr<PgAttr<import("typebox").TString, typeof PG_UPDATED_AT>, typeof PG_DEFAULT>>;
2735
- roles: import("typebox").TOptional<PgAttr<import("typebox").TArray<import("typebox").TString>, typeof PG_DEFAULT>>;
2736
- firstName: import("typebox").TOptional<import("typebox").TOptional<import("typebox").TString>>;
2737
- lastName: import("typebox").TOptional<import("typebox").TOptional<import("typebox").TString>>;
2738
- picture: import("typebox").TOptional<import("typebox").TOptional<import("typebox").TString>>;
2739
- emailVerified: import("typebox").TOptional<PgAttr<import("typebox").TBoolean, typeof PG_DEFAULT>>;
2740
- lastLoginAt: import("typebox").TOptional<import("typebox").TOptional<import("typebox").TString>>;
2741
- organizationId: import("typebox").TOptional<PgAttr<import("typebox").TString, typeof PG_ORGANIZATION>>;
2742
- }>;
2743
- response: import("typebox").TObject<{
2744
- id: PgAttr<PgAttr<import("typebox").TString, typeof PG_PRIMARY_KEY>, typeof PG_DEFAULT>;
2745
- version: PgAttr<PgAttr<import("typebox").TInteger, typeof PG_VERSION>, typeof PG_DEFAULT>;
2746
- createdAt: PgAttr<PgAttr<import("typebox").TString, typeof PG_CREATED_AT>, typeof PG_DEFAULT>;
2747
- updatedAt: PgAttr<PgAttr<import("typebox").TString, typeof PG_UPDATED_AT>, typeof PG_DEFAULT>;
2748
- realm: PgAttr<import("typebox").TString, typeof PG_DEFAULT>;
2749
- username: import("typebox").TOptional<import("typebox").TString>;
2750
- email: import("typebox").TOptional<import("typebox").TString>;
2751
- phoneNumber: import("typebox").TOptional<import("typebox").TString>;
2752
- roles: PgAttr<import("typebox").TArray<import("typebox").TString>, typeof PG_DEFAULT>;
2753
- firstName: import("typebox").TOptional<import("typebox").TString>;
2754
- lastName: import("typebox").TOptional<import("typebox").TString>;
2755
- picture: import("typebox").TOptional<import("typebox").TString>;
2756
- enabled: PgAttr<import("typebox").TBoolean, typeof PG_DEFAULT>;
2757
- emailVerified: PgAttr<import("typebox").TBoolean, typeof PG_DEFAULT>;
2758
- lastLoginAt: import("typebox").TOptional<import("typebox").TString>;
2759
- organizationId: PgAttr<import("typebox").TString, typeof PG_ORGANIZATION>;
2760
- }>;
2780
+ query: import("zod").ZodObject<{
2781
+ userRealmName: import("zod").ZodOptional<import("zod").ZodString>;
2782
+ }, import("zod/v4/core").$strip>;
2783
+ body: import("zod").ZodObject<{
2784
+ id: import("alepha").TOptional<PgAttr<PgAttr<import("zod").ZodString, typeof PG_PRIMARY_KEY>, typeof PG_DEFAULT>>;
2785
+ version: import("alepha").TOptional<PgAttr<PgAttr<import("zod").ZodInt, typeof PG_VERSION>, typeof PG_DEFAULT>>;
2786
+ createdAt: import("alepha").TOptional<PgAttr<PgAttr<import("zod").ZodString, typeof PG_CREATED_AT>, typeof PG_DEFAULT>>;
2787
+ updatedAt: import("alepha").TOptional<PgAttr<PgAttr<import("zod").ZodString, typeof PG_UPDATED_AT>, typeof PG_DEFAULT>>;
2788
+ username: import("zod").ZodOptional<import("zod").ZodString>;
2789
+ email: import("zod").ZodOptional<import("zod").ZodString>;
2790
+ phoneNumber: import("zod").ZodOptional<import("zod").ZodString>;
2791
+ roles: import("alepha").TOptional<PgAttr<import("zod").ZodArray<import("zod").ZodString>, typeof PG_DEFAULT>>;
2792
+ firstName: import("zod").ZodOptional<import("zod").ZodString>;
2793
+ lastName: import("zod").ZodOptional<import("zod").ZodString>;
2794
+ picture: import("zod").ZodOptional<import("zod").ZodString>;
2795
+ enabled: import("alepha").TOptional<PgAttr<import("zod").ZodBoolean, typeof PG_DEFAULT>>;
2796
+ emailVerified: import("alepha").TOptional<PgAttr<import("zod").ZodBoolean, typeof PG_DEFAULT>>;
2797
+ lastLoginAt: import("zod").ZodOptional<import("zod").ZodString>;
2798
+ organizationId: import("alepha").TOptional<PgAttr<import("zod").ZodOptional<import("zod").ZodString> | import("zod").ZodString, typeof PG_ORGANIZATION>>;
2799
+ }, import("zod/v4/core").$strip>;
2800
+ response: import("zod").ZodObject<{
2801
+ id: PgAttr<PgAttr<import("zod").ZodString, typeof PG_PRIMARY_KEY>, typeof PG_DEFAULT>;
2802
+ version: PgAttr<PgAttr<import("zod").ZodInt, typeof PG_VERSION>, typeof PG_DEFAULT>;
2803
+ createdAt: PgAttr<PgAttr<import("zod").ZodString, typeof PG_CREATED_AT>, typeof PG_DEFAULT>;
2804
+ updatedAt: PgAttr<PgAttr<import("zod").ZodString, typeof PG_UPDATED_AT>, typeof PG_DEFAULT>;
2805
+ realm: PgAttr<import("zod").ZodString, typeof PG_DEFAULT>;
2806
+ username: import("zod").ZodOptional<import("zod").ZodString>;
2807
+ email: import("zod").ZodOptional<import("zod").ZodString>;
2808
+ phoneNumber: import("zod").ZodOptional<import("zod").ZodString>;
2809
+ roles: PgAttr<import("zod").ZodArray<import("zod").ZodString>, typeof PG_DEFAULT>;
2810
+ firstName: import("zod").ZodOptional<import("zod").ZodString>;
2811
+ lastName: import("zod").ZodOptional<import("zod").ZodString>;
2812
+ picture: import("zod").ZodOptional<import("zod").ZodString>;
2813
+ enabled: PgAttr<import("zod").ZodBoolean, typeof PG_DEFAULT>;
2814
+ emailVerified: PgAttr<import("zod").ZodBoolean, typeof PG_DEFAULT>;
2815
+ lastLoginAt: import("zod").ZodOptional<import("zod").ZodString>;
2816
+ organizationId: PgAttr<import("zod").ZodOptional<import("zod").ZodString> | import("zod").ZodString, typeof PG_ORGANIZATION>;
2817
+ }, import("zod/v4/core").$strip>;
2761
2818
  }>;
2762
2819
  /**
2763
2820
  * Update a user.
2764
2821
  */
2765
2822
  readonly updateUser: import("alepha/server").ActionPrimitiveFn<{
2766
- params: import("typebox").TObject<{
2767
- id: import("typebox").TString;
2768
- }>;
2769
- query: import("typebox").TObject<{
2770
- userRealmName: import("typebox").TOptional<import("typebox").TString>;
2771
- }>;
2772
- body: import("typebox").TObject<{
2773
- email: import("typebox").TOptional<import("typebox").TOptional<import("typebox").TString>>;
2774
- username: import("typebox").TOptional<import("typebox").TOptional<import("typebox").TString>>;
2775
- phoneNumber: import("typebox").TOptional<import("typebox").TOptional<import("typebox").TString>>;
2776
- enabled: import("typebox").TOptional<PgAttr<import("typebox").TBoolean, typeof PG_DEFAULT>>;
2777
- realm: import("typebox").TOptional<PgAttr<import("typebox").TString, typeof PG_DEFAULT>>;
2778
- roles: import("typebox").TOptional<PgAttr<import("typebox").TArray<import("typebox").TString>, typeof PG_DEFAULT>>;
2779
- firstName: import("typebox").TOptional<import("typebox").TOptional<import("typebox").TString>>;
2780
- lastName: import("typebox").TOptional<import("typebox").TOptional<import("typebox").TString>>;
2781
- picture: import("typebox").TOptional<import("typebox").TOptional<import("typebox").TString>>;
2782
- emailVerified: import("typebox").TOptional<PgAttr<import("typebox").TBoolean, typeof PG_DEFAULT>>;
2783
- lastLoginAt: import("typebox").TOptional<import("typebox").TOptional<import("typebox").TString>>;
2784
- organizationId: import("typebox").TOptional<PgAttr<import("typebox").TString, typeof PG_ORGANIZATION>>;
2785
- }>;
2786
- response: import("typebox").TObject<{
2787
- id: PgAttr<PgAttr<import("typebox").TString, typeof PG_PRIMARY_KEY>, typeof PG_DEFAULT>;
2788
- version: PgAttr<PgAttr<import("typebox").TInteger, typeof PG_VERSION>, typeof PG_DEFAULT>;
2789
- createdAt: PgAttr<PgAttr<import("typebox").TString, typeof PG_CREATED_AT>, typeof PG_DEFAULT>;
2790
- updatedAt: PgAttr<PgAttr<import("typebox").TString, typeof PG_UPDATED_AT>, typeof PG_DEFAULT>;
2791
- realm: PgAttr<import("typebox").TString, typeof PG_DEFAULT>;
2792
- username: import("typebox").TOptional<import("typebox").TString>;
2793
- email: import("typebox").TOptional<import("typebox").TString>;
2794
- phoneNumber: import("typebox").TOptional<import("typebox").TString>;
2795
- roles: PgAttr<import("typebox").TArray<import("typebox").TString>, typeof PG_DEFAULT>;
2796
- firstName: import("typebox").TOptional<import("typebox").TString>;
2797
- lastName: import("typebox").TOptional<import("typebox").TString>;
2798
- picture: import("typebox").TOptional<import("typebox").TString>;
2799
- enabled: PgAttr<import("typebox").TBoolean, typeof PG_DEFAULT>;
2800
- emailVerified: PgAttr<import("typebox").TBoolean, typeof PG_DEFAULT>;
2801
- lastLoginAt: import("typebox").TOptional<import("typebox").TString>;
2802
- organizationId: PgAttr<import("typebox").TString, typeof PG_ORGANIZATION>;
2803
- }>;
2823
+ params: import("zod").ZodObject<{
2824
+ id: import("zod").ZodString;
2825
+ }, import("zod/v4/core").$strip>;
2826
+ query: import("zod").ZodObject<{
2827
+ userRealmName: import("zod").ZodOptional<import("zod").ZodString>;
2828
+ }, import("zod/v4/core").$strip>;
2829
+ body: import("zod").ZodObject<{
2830
+ realm: import("zod").ZodOptional<import("alepha").TOptional<PgAttr<import("zod").ZodString, typeof PG_DEFAULT>>>;
2831
+ username: import("zod").ZodOptional<import("zod").ZodOptional<import("zod").ZodString>>;
2832
+ email: import("zod").ZodOptional<import("zod").ZodOptional<import("zod").ZodString>>;
2833
+ phoneNumber: import("zod").ZodOptional<import("zod").ZodOptional<import("zod").ZodString>>;
2834
+ roles: import("zod").ZodOptional<import("alepha").TOptional<PgAttr<import("zod").ZodArray<import("zod").ZodString>, typeof PG_DEFAULT>>>;
2835
+ firstName: import("zod").ZodOptional<import("zod").ZodOptional<import("zod").ZodString>>;
2836
+ lastName: import("zod").ZodOptional<import("zod").ZodOptional<import("zod").ZodString>>;
2837
+ picture: import("zod").ZodOptional<import("zod").ZodOptional<import("zod").ZodString>>;
2838
+ enabled: import("zod").ZodOptional<import("alepha").TOptional<PgAttr<import("zod").ZodBoolean, typeof PG_DEFAULT>>>;
2839
+ emailVerified: import("zod").ZodOptional<import("alepha").TOptional<PgAttr<import("zod").ZodBoolean, typeof PG_DEFAULT>>>;
2840
+ lastLoginAt: import("zod").ZodOptional<import("zod").ZodOptional<import("zod").ZodString>>;
2841
+ organizationId: import("zod").ZodOptional<import("alepha").TOptional<PgAttr<import("zod").ZodOptional<import("zod").ZodString> | import("zod").ZodString, typeof PG_ORGANIZATION>>>;
2842
+ }, import("zod/v4/core").$strip>;
2843
+ response: import("zod").ZodObject<{
2844
+ id: PgAttr<PgAttr<import("zod").ZodString, typeof PG_PRIMARY_KEY>, typeof PG_DEFAULT>;
2845
+ version: PgAttr<PgAttr<import("zod").ZodInt, typeof PG_VERSION>, typeof PG_DEFAULT>;
2846
+ createdAt: PgAttr<PgAttr<import("zod").ZodString, typeof PG_CREATED_AT>, typeof PG_DEFAULT>;
2847
+ updatedAt: PgAttr<PgAttr<import("zod").ZodString, typeof PG_UPDATED_AT>, typeof PG_DEFAULT>;
2848
+ realm: PgAttr<import("zod").ZodString, typeof PG_DEFAULT>;
2849
+ username: import("zod").ZodOptional<import("zod").ZodString>;
2850
+ email: import("zod").ZodOptional<import("zod").ZodString>;
2851
+ phoneNumber: import("zod").ZodOptional<import("zod").ZodString>;
2852
+ roles: PgAttr<import("zod").ZodArray<import("zod").ZodString>, typeof PG_DEFAULT>;
2853
+ firstName: import("zod").ZodOptional<import("zod").ZodString>;
2854
+ lastName: import("zod").ZodOptional<import("zod").ZodString>;
2855
+ picture: import("zod").ZodOptional<import("zod").ZodString>;
2856
+ enabled: PgAttr<import("zod").ZodBoolean, typeof PG_DEFAULT>;
2857
+ emailVerified: PgAttr<import("zod").ZodBoolean, typeof PG_DEFAULT>;
2858
+ lastLoginAt: import("zod").ZodOptional<import("zod").ZodString>;
2859
+ organizationId: PgAttr<import("zod").ZodOptional<import("zod").ZodString> | import("zod").ZodString, typeof PG_ORGANIZATION>;
2860
+ }, import("zod/v4/core").$strip>;
2804
2861
  }>;
2805
2862
  /**
2806
2863
  * Set (or reset) a user's password. Admin-only flow — does NOT
@@ -2808,36 +2865,36 @@ declare class AdminUserController {
2808
2865
  * "credentials" identity for the user (upsert).
2809
2866
  */
2810
2867
  readonly setUserPassword: import("alepha/server").ActionPrimitiveFn<{
2811
- params: import("typebox").TObject<{
2812
- id: import("typebox").TString;
2813
- }>;
2814
- query: import("typebox").TObject<{
2815
- userRealmName: import("typebox").TOptional<import("typebox").TString>;
2816
- }>;
2817
- body: import("typebox").TObject<{
2818
- password: import("typebox").TString;
2819
- }>;
2820
- response: import("typebox").TObject<{
2821
- ok: import("typebox").TBoolean;
2822
- id: import("typebox").TOptional<import("typebox").TUnion<[import("typebox").TString, import("typebox").TInteger]>>;
2823
- count: import("typebox").TOptional<import("typebox").TNumber>;
2824
- }>;
2868
+ params: import("zod").ZodObject<{
2869
+ id: import("zod").ZodString;
2870
+ }, import("zod/v4/core").$strip>;
2871
+ query: import("zod").ZodObject<{
2872
+ userRealmName: import("zod").ZodOptional<import("zod").ZodString>;
2873
+ }, import("zod/v4/core").$strip>;
2874
+ body: import("zod").ZodObject<{
2875
+ password: import("zod").ZodString;
2876
+ }, import("zod/v4/core").$strip>;
2877
+ response: import("zod").ZodObject<{
2878
+ ok: import("zod").ZodBoolean;
2879
+ id: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodInt]>>;
2880
+ count: import("zod").ZodOptional<import("zod").ZodNumber>;
2881
+ }, import("zod/v4/core").$strip>;
2825
2882
  }>;
2826
2883
  /**
2827
2884
  * Delete a user.
2828
2885
  */
2829
2886
  readonly deleteUser: import("alepha/server").ActionPrimitiveFn<{
2830
- params: import("typebox").TObject<{
2831
- id: import("typebox").TString;
2832
- }>;
2833
- query: import("typebox").TObject<{
2834
- userRealmName: import("typebox").TOptional<import("typebox").TString>;
2835
- }>;
2836
- response: import("typebox").TObject<{
2837
- ok: import("typebox").TBoolean;
2838
- id: import("typebox").TOptional<import("typebox").TUnion<[import("typebox").TString, import("typebox").TInteger]>>;
2839
- count: import("typebox").TOptional<import("typebox").TNumber>;
2840
- }>;
2887
+ params: import("zod").ZodObject<{
2888
+ id: import("zod").ZodString;
2889
+ }, import("zod/v4/core").$strip>;
2890
+ query: import("zod").ZodObject<{
2891
+ userRealmName: import("zod").ZodOptional<import("zod").ZodString>;
2892
+ }, import("zod/v4/core").$strip>;
2893
+ response: import("zod").ZodObject<{
2894
+ ok: import("zod").ZodBoolean;
2895
+ id: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodInt]>>;
2896
+ count: import("zod").ZodOptional<import("zod").ZodNumber>;
2897
+ }, import("zod/v4/core").$strip>;
2841
2898
  }>;
2842
2899
  /**
2843
2900
  * Delete many users in one request. Each id is processed sequentially so
@@ -2845,15 +2902,118 @@ declare class AdminUserController {
2845
2902
  * id surface with that id in the response.
2846
2903
  */
2847
2904
  readonly deleteUsers: import("alepha/server").ActionPrimitiveFn<{
2848
- query: import("typebox").TObject<{
2849
- userRealmName: import("typebox").TOptional<import("typebox").TString>;
2850
- }>;
2851
- body: import("typebox").TObject<{
2852
- ids: import("typebox").TArray<import("typebox").TString>;
2853
- }>;
2854
- response: import("typebox").TObject<{
2855
- deleted: import("typebox").TArray<import("typebox").TString>;
2856
- }>;
2905
+ query: import("zod").ZodObject<{
2906
+ userRealmName: import("zod").ZodOptional<import("zod").ZodString>;
2907
+ }, import("zod/v4/core").$strip>;
2908
+ body: import("zod").ZodObject<{
2909
+ ids: import("zod").ZodArray<import("zod").ZodString>;
2910
+ }, import("zod/v4/core").$strip>;
2911
+ response: import("zod").ZodObject<{
2912
+ deleted: import("zod").ZodArray<import("zod").ZodString>;
2913
+ }, import("zod/v4/core").$strip>;
2914
+ }>;
2915
+ }
2916
+ //#endregion
2917
+ //#region ../../src/api/users/controllers/MySessionController.d.ts
2918
+ /**
2919
+ * A session as exposed to ITS OWNER — `refreshToken` is deliberately
2920
+ * omitted (returning it would let any XSS exfiltrate a long-lived
2921
+ * credential); `current` flags the session backing the calling request.
2922
+ */
2923
+ declare const mySessionSchema: import("zod").ZodObject<{
2924
+ id: import("zod").ZodString;
2925
+ createdAt: import("zod").ZodString;
2926
+ expiresAt: import("zod").ZodString;
2927
+ lastUsedAt: import("zod").ZodOptional<import("zod").ZodString>;
2928
+ ip: import("zod").ZodOptional<import("zod").ZodString>;
2929
+ country: import("zod").ZodOptional<import("zod").ZodString>;
2930
+ userAgent: import("zod").ZodOptional<import("zod").ZodObject<{
2931
+ os: import("zod").ZodString;
2932
+ browser: import("zod").ZodString;
2933
+ device: import("zod").ZodEnum<{
2934
+ DESKTOP: "DESKTOP";
2935
+ MOBILE: "MOBILE";
2936
+ TABLET: "TABLET";
2937
+ }>;
2938
+ }, import("zod/v4/core").$strip>>;
2939
+ current: import("zod").ZodBoolean;
2940
+ }, import("zod/v4/core").$strip>;
2941
+ type MySession = Static<typeof mySessionSchema>;
2942
+ /**
2943
+ * Self-service session management — the "where am I signed in?" page of an
2944
+ * account area. Counterpart of {@link AdminSessionController}, scoped to the
2945
+ * CALLER's own sessions: list them, revoke one (a stolen laptop), or revoke
2946
+ * everything except the current one.
2947
+ */
2948
+ declare class MySessionController {
2949
+ protected readonly realmProvider: RealmProvider;
2950
+ protected sessions(realm?: string): Repository$1<import("zod").ZodObject<{
2951
+ id: PgAttr<PgAttr<import("zod").ZodString, typeof PG_PRIMARY_KEY>, typeof PG_DEFAULT>;
2952
+ version: PgAttr<PgAttr<import("zod").ZodInt, typeof PG_VERSION>, typeof PG_DEFAULT>;
2953
+ createdAt: PgAttr<PgAttr<import("zod").ZodString, typeof PG_CREATED_AT>, typeof PG_DEFAULT>;
2954
+ updatedAt: PgAttr<PgAttr<import("zod").ZodString, typeof PG_UPDATED_AT>, typeof PG_DEFAULT>;
2955
+ refreshToken: import("zod").ZodString;
2956
+ userId: PgAttr<import("zod").ZodString, typeof PG_REF>;
2957
+ clientId: import("zod").ZodOptional<import("zod").ZodString>;
2958
+ expiresAt: import("zod").ZodString;
2959
+ lastUsedAt: import("zod").ZodOptional<import("zod").ZodString>;
2960
+ ip: import("zod").ZodOptional<import("zod").ZodString>;
2961
+ country: import("zod").ZodOptional<import("zod").ZodString>;
2962
+ userAgent: import("zod").ZodOptional<import("zod").ZodObject<{
2963
+ os: import("zod").ZodString;
2964
+ browser: import("zod").ZodString;
2965
+ device: import("zod").ZodEnum<{
2966
+ DESKTOP: "DESKTOP";
2967
+ MOBILE: "MOBILE";
2968
+ TABLET: "TABLET";
2969
+ }>;
2970
+ }, import("zod/v4/core").$strip>>;
2971
+ }, import("zod/v4/core").$strip>>;
2972
+ protected toMySession(session: {
2973
+ id: string;
2974
+ createdAt: string;
2975
+ expiresAt: string;
2976
+ lastUsedAt?: string;
2977
+ ip?: string;
2978
+ country?: string;
2979
+ userAgent?: {
2980
+ os: string;
2981
+ browser: string;
2982
+ device: string;
2983
+ };
2984
+ }, currentSessionId: string | undefined): MySession;
2985
+ listMySessions: import("alepha/server").ActionPrimitiveFn<{
2986
+ response: import("zod").ZodArray<import("zod").ZodObject<{
2987
+ id: import("zod").ZodString;
2988
+ createdAt: import("zod").ZodString;
2989
+ expiresAt: import("zod").ZodString;
2990
+ lastUsedAt: import("zod").ZodOptional<import("zod").ZodString>;
2991
+ ip: import("zod").ZodOptional<import("zod").ZodString>;
2992
+ country: import("zod").ZodOptional<import("zod").ZodString>;
2993
+ userAgent: import("zod").ZodOptional<import("zod").ZodObject<{
2994
+ os: import("zod").ZodString;
2995
+ browser: import("zod").ZodString;
2996
+ device: import("zod").ZodEnum<{
2997
+ DESKTOP: "DESKTOP";
2998
+ MOBILE: "MOBILE";
2999
+ TABLET: "TABLET";
3000
+ }>;
3001
+ }, import("zod/v4/core").$strip>>;
3002
+ current: import("zod").ZodBoolean;
3003
+ }, import("zod/v4/core").$strip>>;
3004
+ }>;
3005
+ deleteMySession: import("alepha/server").ActionPrimitiveFn<{
3006
+ params: import("zod").ZodObject<{
3007
+ id: import("zod").ZodString;
3008
+ }, import("zod/v4/core").$strip>;
3009
+ response: import("zod").ZodObject<{
3010
+ ok: import("zod").ZodBoolean;
3011
+ }, import("zod/v4/core").$strip>;
3012
+ }>;
3013
+ deleteMyOtherSessions: import("alepha/server").ActionPrimitiveFn<{
3014
+ response: import("zod").ZodObject<{
3015
+ revoked: import("zod").ZodInt;
3016
+ }, import("zod/v4/core").$strip>;
2857
3017
  }>;
2858
3018
  }
2859
3019
  //#endregion
@@ -2873,64 +3033,68 @@ declare class RealmController {
2873
3033
  * This endpoint is not exposed in the API documentation.
2874
3034
  */
2875
3035
  readonly getRealmConfig: import("alepha/server").ActionPrimitiveFn<{
2876
- query: import("typebox").TObject<{
2877
- realmName: import("typebox").TOptional<import("typebox").TString>;
2878
- }>;
2879
- response: import("typebox").TObject<{
2880
- settings: import("typebox").TObject<{
2881
- displayName: import("typebox").TOptional<import("typebox").TString>;
2882
- description: import("typebox").TOptional<import("typebox").TString>;
2883
- logoUrl: import("typebox").TOptional<import("typebox").TString>;
2884
- registrationAllowed: import("typebox").TBoolean;
2885
- email: import("typebox").TUnion<[import("typebox").TLiteral<"none">, import("typebox").TLiteral<"optional">, import("typebox").TLiteral<"required">]>;
2886
- username: import("typebox").TUnion<[import("typebox").TLiteral<"none">, import("typebox").TLiteral<"optional">, import("typebox").TLiteral<"required">, import("typebox").TLiteral<"email">]>;
2887
- usernameRegExp: import("typebox").TString;
2888
- usernameBlocklist: import("typebox").TArray<import("typebox").TString>;
2889
- phoneNumber: import("typebox").TUnion<[import("typebox").TLiteral<"none">, import("typebox").TLiteral<"optional">, import("typebox").TLiteral<"required">]>;
2890
- verifyEmailRequired: import("typebox").TBoolean;
2891
- verifyPhoneRequired: import("typebox").TBoolean;
2892
- firstNameLastName: import("typebox").TUnion<[import("typebox").TLiteral<"none">, import("typebox").TLiteral<"optional">, import("typebox").TLiteral<"required">]>;
2893
- resetPasswordAllowed: import("typebox").TBoolean;
2894
- captchaRequired: import("typebox").TBoolean;
2895
- adminEmails: import("typebox").TArray<import("typebox").TString>;
2896
- adminUsernames: import("typebox").TArray<import("typebox").TString>;
2897
- defaultRoles: import("typebox").TArray<import("typebox").TString>;
2898
- verifyEmailUrl: import("typebox").TOptional<import("typebox").TString>;
2899
- passwordPolicy: import("typebox").TObject<{
2900
- minLength: import("typebox").TInteger;
2901
- requireUppercase: import("typebox").TBoolean;
2902
- requireLowercase: import("typebox").TBoolean;
2903
- requireNumbers: import("typebox").TBoolean;
2904
- requireSpecialCharacters: import("typebox").TBoolean;
2905
- }>;
2906
- loginRateLimit: import("typebox").TObject<{
2907
- ipMaxAttempts: import("typebox").TInteger;
2908
- accountMaxAttempts: import("typebox").TInteger;
2909
- windowMs: import("typebox").TInteger;
3036
+ query: import("zod").ZodObject<{
3037
+ realmName: import("zod").ZodOptional<import("zod").ZodString>;
3038
+ }, import("zod/v4/core").$strip>;
3039
+ response: import("zod").ZodObject<{
3040
+ settings: import("zod").ZodObject<{
3041
+ displayName: import("zod").ZodOptional<import("zod").ZodString>;
3042
+ description: import("zod").ZodOptional<import("zod").ZodString>;
3043
+ logoUrl: import("zod").ZodOptional<import("zod").ZodString>;
3044
+ registrationAllowed: import("zod").ZodBoolean;
3045
+ email: import("zod").ZodUnion<readonly [import("zod").ZodLiteral<"none">, import("zod").ZodLiteral<"optional">, import("zod").ZodLiteral<"required">]>;
3046
+ username: import("zod").ZodUnion<readonly [import("zod").ZodLiteral<"none">, import("zod").ZodLiteral<"optional">, import("zod").ZodLiteral<"required">, import("zod").ZodLiteral<"email">]>;
3047
+ usernameRegExp: import("zod").ZodString;
3048
+ usernameBlocklist: import("zod").ZodArray<import("zod").ZodString>;
3049
+ phoneNumber: import("zod").ZodUnion<readonly [import("zod").ZodLiteral<"none">, import("zod").ZodLiteral<"optional">, import("zod").ZodLiteral<"required">]>;
3050
+ verifyEmailRequired: import("zod").ZodBoolean;
3051
+ verifyPhoneRequired: import("zod").ZodBoolean;
3052
+ firstNameLastName: import("zod").ZodUnion<readonly [import("zod").ZodLiteral<"none">, import("zod").ZodLiteral<"optional">, import("zod").ZodLiteral<"required">]>;
3053
+ resetPasswordAllowed: import("zod").ZodBoolean;
3054
+ captchaRequired: import("zod").ZodBoolean;
3055
+ adminEmails: import("zod").ZodArray<import("zod").ZodString>;
3056
+ adminUsernames: import("zod").ZodArray<import("zod").ZodString>;
3057
+ defaultRoles: import("zod").ZodArray<import("zod").ZodString>;
3058
+ verifyEmailUrl: import("zod").ZodOptional<import("zod").ZodString>;
3059
+ passwordPolicy: import("zod").ZodObject<{
3060
+ minLength: import("zod").ZodDefault<import("zod").ZodInt>;
3061
+ requireUppercase: import("zod").ZodBoolean;
3062
+ requireLowercase: import("zod").ZodBoolean;
3063
+ requireNumbers: import("zod").ZodBoolean;
3064
+ requireSpecialCharacters: import("zod").ZodBoolean;
3065
+ }, import("zod/v4/core").$strip>;
3066
+ loginRateLimit: import("zod").ZodObject<{
3067
+ ipMaxAttempts: import("zod").ZodDefault<import("zod").ZodInt>;
3068
+ accountMaxAttempts: import("zod").ZodDefault<import("zod").ZodInt>;
3069
+ windowMs: import("zod").ZodDefault<import("zod").ZodInt>;
3070
+ }, import("zod/v4/core").$strip>;
3071
+ registrationIpMaxAttempts: import("zod").ZodDefault<import("zod").ZodInt>;
3072
+ refreshToken: import("zod").ZodObject<{
3073
+ expirationIdle: import("zod").ZodOptional<import("zod").ZodInt>;
3074
+ }, import("zod/v4/core").$strip>;
3075
+ }, import("zod/v4/core").$strip>;
3076
+ realmName: import("zod").ZodString;
3077
+ authenticationMethods: import("zod").ZodArray<import("zod").ZodObject<{
3078
+ name: import("zod").ZodString;
3079
+ type: import("zod").ZodEnum<{
3080
+ CREDENTIALS: "CREDENTIALS";
3081
+ OAUTH2: "OAUTH2";
3082
+ OIDC: "OIDC";
2910
3083
  }>;
2911
- registrationIpMaxAttempts: import("typebox").TInteger;
2912
- refreshToken: import("typebox").TObject<{
2913
- expirationIdle: import("typebox").TOptional<import("typebox").TInteger>;
2914
- }>;
2915
- }>;
2916
- realmName: import("typebox").TString;
2917
- authenticationMethods: import("typebox").TArray<import("typebox").TObject<{
2918
- name: import("typebox").TString;
2919
- type: import("typebox").TUnsafe<"OAUTH2" | "OIDC" | "CREDENTIALS">;
2920
- }>>;
2921
- captchaSiteKey: import("typebox").TOptional<import("typebox").TString>;
2922
- }>;
3084
+ }, import("zod/v4/core").$strip>>;
3085
+ captchaSiteKey: import("zod").ZodOptional<import("zod").ZodString>;
3086
+ }, import("zod/v4/core").$strip>;
2923
3087
  }>;
2924
3088
  readonly checkUsernameAvailability: import("alepha/server").ActionPrimitiveFn<{
2925
- query: import("typebox").TObject<{
2926
- realmName: import("typebox").TOptional<import("typebox").TString>;
2927
- }>;
2928
- body: import("typebox").TObject<{
2929
- username: import("typebox").TString;
2930
- }>;
2931
- response: import("typebox").TObject<{
2932
- available: import("typebox").TBoolean;
2933
- }>;
3089
+ query: import("zod").ZodObject<{
3090
+ realmName: import("zod").ZodOptional<import("zod").ZodString>;
3091
+ }, import("zod/v4/core").$strip>;
3092
+ body: import("zod").ZodObject<{
3093
+ username: import("zod").ZodString;
3094
+ }, import("zod/v4/core").$strip>;
3095
+ response: import("zod").ZodObject<{
3096
+ available: import("zod").ZodBoolean;
3097
+ }, import("zod/v4/core").$strip>;
2934
3098
  }>;
2935
3099
  }
2936
3100
  //#endregion
@@ -2941,11 +3105,11 @@ declare class RealmController {
2941
3105
  * Requires the intent ID from Phase 1, the verification code,
2942
3106
  * and the new password.
2943
3107
  */
2944
- declare const completePasswordResetRequestSchema: import("typebox").TObject<{
2945
- intentId: import("typebox").TString;
2946
- code: import("typebox").TString;
2947
- newPassword: import("typebox").TString;
2948
- }>;
3108
+ declare const completePasswordResetRequestSchema: import("zod").ZodObject<{
3109
+ intentId: import("zod").ZodString;
3110
+ code: import("zod").ZodString;
3111
+ newPassword: import("zod").ZodString;
3112
+ }, import("zod/v4/core").$strip>;
2949
3113
  type CompletePasswordResetRequest = Static<typeof completePasswordResetRequestSchema>;
2950
3114
  //#endregion
2951
3115
  //#region ../../src/api/users/schemas/passwordResetIntentResponseSchema.d.ts
@@ -2955,10 +3119,10 @@ type CompletePasswordResetRequest = Static<typeof completePasswordResetRequestSc
2955
3119
  * Contains the intent ID needed for Phase 2 completion,
2956
3120
  * along with expiration time.
2957
3121
  */
2958
- declare const passwordResetIntentResponseSchema: import("typebox").TObject<{
2959
- intentId: import("typebox").TString;
2960
- expiresAt: import("typebox").TString;
2961
- }>;
3122
+ declare const passwordResetIntentResponseSchema: import("zod").ZodObject<{
3123
+ intentId: import("zod").ZodString;
3124
+ expiresAt: import("zod").ZodString;
3125
+ }, import("zod/v4/core").$strip>;
2962
3126
  type PasswordResetIntentResponse = Static<typeof passwordResetIntentResponseSchema>;
2963
3127
  //#endregion
2964
3128
  //#region ../../src/api/users/services/CredentialService.d.ts
@@ -2983,53 +3147,57 @@ declare class CredentialService {
2983
3147
  protected sessionAudits(realmName?: string): SessionAudits | undefined;
2984
3148
  protected userNotifications(realmName?: string): UserNotifications | undefined;
2985
3149
  protected readonly intentCache: import("alepha/cache").CacheMiddlewareFn<PasswordResetIntent>;
2986
- users(userRealmName?: string): Repository$1<import("typebox").TObject<{
2987
- id: PgAttr<PgAttr<import("typebox").TString, typeof PG_PRIMARY_KEY>, typeof PG_DEFAULT>;
2988
- version: PgAttr<PgAttr<import("typebox").TInteger, typeof PG_VERSION>, typeof PG_DEFAULT>;
2989
- createdAt: PgAttr<PgAttr<import("typebox").TString, typeof PG_CREATED_AT>, typeof PG_DEFAULT>;
2990
- updatedAt: PgAttr<PgAttr<import("typebox").TString, typeof PG_UPDATED_AT>, typeof PG_DEFAULT>;
2991
- realm: PgAttr<import("typebox").TString, typeof PG_DEFAULT>;
2992
- username: import("typebox").TOptional<import("typebox").TString>;
2993
- email: import("typebox").TOptional<import("typebox").TString>;
2994
- phoneNumber: import("typebox").TOptional<import("typebox").TString>;
2995
- roles: PgAttr<import("typebox").TArray<import("typebox").TString>, typeof PG_DEFAULT>;
2996
- firstName: import("typebox").TOptional<import("typebox").TString>;
2997
- lastName: import("typebox").TOptional<import("typebox").TString>;
2998
- picture: import("typebox").TOptional<import("typebox").TString>;
2999
- enabled: PgAttr<import("typebox").TBoolean, typeof PG_DEFAULT>;
3000
- emailVerified: PgAttr<import("typebox").TBoolean, typeof PG_DEFAULT>;
3001
- lastLoginAt: import("typebox").TOptional<import("typebox").TString>;
3002
- organizationId: PgAttr<import("typebox").TString, typeof PG_ORGANIZATION>;
3003
- }>>;
3004
- sessions(userRealmName?: string): Repository$1<import("typebox").TObject<{
3005
- id: PgAttr<PgAttr<import("typebox").TString, typeof PG_PRIMARY_KEY>, typeof PG_DEFAULT>;
3006
- version: PgAttr<PgAttr<import("typebox").TInteger, typeof PG_VERSION>, typeof PG_DEFAULT>;
3007
- createdAt: PgAttr<PgAttr<import("typebox").TString, typeof PG_CREATED_AT>, typeof PG_DEFAULT>;
3008
- updatedAt: PgAttr<PgAttr<import("typebox").TString, typeof PG_UPDATED_AT>, typeof PG_DEFAULT>;
3009
- refreshToken: import("typebox").TString;
3010
- userId: PgAttr<import("typebox").TString, typeof PG_REF>;
3011
- clientId: import("typebox").TOptional<import("typebox").TString>;
3012
- expiresAt: import("typebox").TString;
3013
- lastUsedAt: import("typebox").TOptional<import("typebox").TString>;
3014
- ip: import("typebox").TOptional<import("typebox").TString>;
3015
- country: import("typebox").TOptional<import("typebox").TString>;
3016
- userAgent: import("typebox").TOptional<import("typebox").TObject<{
3017
- os: import("typebox").TString;
3018
- browser: import("typebox").TString;
3019
- device: import("typebox").TUnsafe<"MOBILE" | "DESKTOP" | "TABLET">;
3020
- }>>;
3021
- }>>;
3022
- identities(userRealmName?: string): Repository$1<import("typebox").TObject<{
3023
- id: PgAttr<PgAttr<import("typebox").TString, typeof PG_PRIMARY_KEY>, typeof PG_DEFAULT>;
3024
- version: PgAttr<PgAttr<import("typebox").TInteger, typeof PG_VERSION>, typeof PG_DEFAULT>;
3025
- createdAt: PgAttr<PgAttr<import("typebox").TString, typeof PG_CREATED_AT>, typeof PG_DEFAULT>;
3026
- updatedAt: PgAttr<PgAttr<import("typebox").TString, typeof PG_UPDATED_AT>, typeof PG_DEFAULT>;
3027
- userId: PgAttr<import("typebox").TString, typeof PG_REF>;
3028
- password: import("typebox").TOptional<import("typebox").TString>;
3029
- provider: import("typebox").TString;
3030
- providerUserId: import("typebox").TOptional<import("typebox").TString>;
3031
- providerData: import("typebox").TOptional<import("typebox").TRecord<string, import("typebox").TAny>>;
3032
- }>>;
3150
+ users(userRealmName?: string): Repository$1<import("zod").ZodObject<{
3151
+ id: PgAttr<PgAttr<import("zod").ZodString, typeof PG_PRIMARY_KEY>, typeof PG_DEFAULT>;
3152
+ version: PgAttr<PgAttr<import("zod").ZodInt, typeof PG_VERSION>, typeof PG_DEFAULT>;
3153
+ createdAt: PgAttr<PgAttr<import("zod").ZodString, typeof PG_CREATED_AT>, typeof PG_DEFAULT>;
3154
+ updatedAt: PgAttr<PgAttr<import("zod").ZodString, typeof PG_UPDATED_AT>, typeof PG_DEFAULT>;
3155
+ realm: PgAttr<import("zod").ZodString, typeof PG_DEFAULT>;
3156
+ username: import("zod").ZodOptional<import("zod").ZodString>;
3157
+ email: import("zod").ZodOptional<import("zod").ZodString>;
3158
+ phoneNumber: import("zod").ZodOptional<import("zod").ZodString>;
3159
+ roles: PgAttr<import("zod").ZodArray<import("zod").ZodString>, typeof PG_DEFAULT>;
3160
+ firstName: import("zod").ZodOptional<import("zod").ZodString>;
3161
+ lastName: import("zod").ZodOptional<import("zod").ZodString>;
3162
+ picture: import("zod").ZodOptional<import("zod").ZodString>;
3163
+ enabled: PgAttr<import("zod").ZodBoolean, typeof PG_DEFAULT>;
3164
+ emailVerified: PgAttr<import("zod").ZodBoolean, typeof PG_DEFAULT>;
3165
+ lastLoginAt: import("zod").ZodOptional<import("zod").ZodString>;
3166
+ organizationId: PgAttr<import("zod").ZodOptional<import("zod").ZodString> | import("zod").ZodString, typeof PG_ORGANIZATION>;
3167
+ }, import("zod/v4/core").$strip>>;
3168
+ sessions(userRealmName?: string): Repository$1<import("zod").ZodObject<{
3169
+ id: PgAttr<PgAttr<import("zod").ZodString, typeof PG_PRIMARY_KEY>, typeof PG_DEFAULT>;
3170
+ version: PgAttr<PgAttr<import("zod").ZodInt, typeof PG_VERSION>, typeof PG_DEFAULT>;
3171
+ createdAt: PgAttr<PgAttr<import("zod").ZodString, typeof PG_CREATED_AT>, typeof PG_DEFAULT>;
3172
+ updatedAt: PgAttr<PgAttr<import("zod").ZodString, typeof PG_UPDATED_AT>, typeof PG_DEFAULT>;
3173
+ refreshToken: import("zod").ZodString;
3174
+ userId: PgAttr<import("zod").ZodString, typeof PG_REF>;
3175
+ clientId: import("zod").ZodOptional<import("zod").ZodString>;
3176
+ expiresAt: import("zod").ZodString;
3177
+ lastUsedAt: import("zod").ZodOptional<import("zod").ZodString>;
3178
+ ip: import("zod").ZodOptional<import("zod").ZodString>;
3179
+ country: import("zod").ZodOptional<import("zod").ZodString>;
3180
+ userAgent: import("zod").ZodOptional<import("zod").ZodObject<{
3181
+ os: import("zod").ZodString;
3182
+ browser: import("zod").ZodString;
3183
+ device: import("zod").ZodEnum<{
3184
+ DESKTOP: "DESKTOP";
3185
+ MOBILE: "MOBILE";
3186
+ TABLET: "TABLET";
3187
+ }>;
3188
+ }, import("zod/v4/core").$strip>>;
3189
+ }, import("zod/v4/core").$strip>>;
3190
+ identities(userRealmName?: string): Repository$1<import("zod").ZodObject<{
3191
+ id: PgAttr<PgAttr<import("zod").ZodString, typeof PG_PRIMARY_KEY>, typeof PG_DEFAULT>;
3192
+ version: PgAttr<PgAttr<import("zod").ZodInt, typeof PG_VERSION>, typeof PG_DEFAULT>;
3193
+ createdAt: PgAttr<PgAttr<import("zod").ZodString, typeof PG_CREATED_AT>, typeof PG_DEFAULT>;
3194
+ updatedAt: PgAttr<PgAttr<import("zod").ZodString, typeof PG_UPDATED_AT>, typeof PG_DEFAULT>;
3195
+ userId: PgAttr<import("zod").ZodString, typeof PG_REF>;
3196
+ password: import("zod").ZodOptional<import("zod").ZodString>;
3197
+ provider: import("zod").ZodString;
3198
+ providerUserId: import("zod").ZodOptional<import("zod").ZodString>;
3199
+ providerData: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodAny>>;
3200
+ }, import("zod/v4/core").$strip>>;
3033
3201
  /**
3034
3202
  * Validate a password against the realm's password policy.
3035
3203
  */
@@ -3069,12 +3237,12 @@ declare class CredentialService {
3069
3237
  }
3070
3238
  //#endregion
3071
3239
  //#region ../../src/api/users/schemas/completeRegistrationRequestSchema.d.ts
3072
- declare const completeRegistrationRequestSchema: import("typebox").TObject<{
3073
- intentId: import("typebox").TString;
3074
- emailCode: import("typebox").TOptional<import("typebox").TString>;
3075
- phoneCode: import("typebox").TOptional<import("typebox").TString>;
3076
- captchaToken: import("typebox").TOptional<import("typebox").TString>;
3077
- }>;
3240
+ declare const completeRegistrationRequestSchema: import("zod").ZodObject<{
3241
+ intentId: import("zod").ZodString;
3242
+ emailCode: import("zod").ZodOptional<import("zod").ZodString>;
3243
+ phoneCode: import("zod").ZodOptional<import("zod").ZodString>;
3244
+ captchaToken: import("zod").ZodOptional<import("zod").ZodString>;
3245
+ }, import("zod/v4/core").$strip>;
3078
3246
  type CompleteRegistrationRequest = Static<typeof completeRegistrationRequestSchema>;
3079
3247
  //#endregion
3080
3248
  //#region ../../src/api/users/schemas/registerRequestSchema.d.ts
@@ -3082,27 +3250,27 @@ type CompleteRegistrationRequest = Static<typeof completeRegistrationRequestSche
3082
3250
  * Schema for user registration request body.
3083
3251
  * Password is always required, other fields depend on realm settings.
3084
3252
  */
3085
- declare const registerRequestSchema: import("typebox").TObject<{
3086
- password: import("typebox").TString;
3087
- username: import("typebox").TOptional<import("typebox").TString>;
3088
- email: import("typebox").TOptional<import("typebox").TString>;
3089
- phoneNumber: import("typebox").TOptional<import("typebox").TString>;
3090
- firstName: import("typebox").TOptional<import("typebox").TString>;
3091
- lastName: import("typebox").TOptional<import("typebox").TString>;
3092
- picture: import("typebox").TOptional<import("typebox").TString>;
3093
- captchaToken: import("typebox").TOptional<import("typebox").TString>;
3094
- }>;
3253
+ declare const registerRequestSchema: import("zod").ZodObject<{
3254
+ password: import("zod").ZodString;
3255
+ username: import("zod").ZodOptional<import("zod").ZodString>;
3256
+ email: import("zod").ZodOptional<import("zod").ZodString>;
3257
+ phoneNumber: import("zod").ZodOptional<import("zod").ZodString>;
3258
+ firstName: import("zod").ZodOptional<import("zod").ZodString>;
3259
+ lastName: import("zod").ZodOptional<import("zod").ZodString>;
3260
+ picture: import("zod").ZodOptional<import("zod").ZodString>;
3261
+ captchaToken: import("zod").ZodOptional<import("zod").ZodString>;
3262
+ }, import("zod/v4/core").$strip>;
3095
3263
  type RegisterRequest = Static<typeof registerRequestSchema>;
3096
3264
  //#endregion
3097
3265
  //#region ../../src/api/users/schemas/registrationIntentResponseSchema.d.ts
3098
- declare const registrationIntentResponseSchema: import("typebox").TObject<{
3099
- intentId: import("typebox").TString;
3100
- expectCaptcha: import("typebox").TBoolean;
3101
- captchaSiteKey: import("typebox").TOptional<import("typebox").TString>;
3102
- expectEmailVerification: import("typebox").TBoolean;
3103
- expectPhoneVerification: import("typebox").TBoolean;
3104
- expiresAt: import("typebox").TString;
3105
- }>;
3266
+ declare const registrationIntentResponseSchema: import("zod").ZodObject<{
3267
+ intentId: import("zod").ZodString;
3268
+ expectCaptcha: import("zod").ZodBoolean;
3269
+ captchaSiteKey: import("zod").ZodOptional<import("zod").ZodString>;
3270
+ expectEmailVerification: import("zod").ZodBoolean;
3271
+ expectPhoneVerification: import("zod").ZodBoolean;
3272
+ expiresAt: import("zod").ZodString;
3273
+ }, import("zod/v4/core").$strip>;
3106
3274
  type RegistrationIntentResponse = Static<typeof registrationIntentResponseSchema>;
3107
3275
  //#endregion
3108
3276
  //#region ../../src/api/users/services/UsernameSlugger.d.ts
@@ -3223,6 +3391,7 @@ declare class RegistrationService {
3223
3391
  protected readonly dateTimeProvider: DateTimeProvider;
3224
3392
  protected readonly cryptoProvider: CryptoProvider;
3225
3393
  protected readonly verificationController: import("alepha/server/links").HttpVirtualClient<VerificationController>;
3394
+ protected readonly verificationService: VerificationService;
3226
3395
  protected readonly realmProvider: RealmProvider;
3227
3396
  protected readonly credentialService: CredentialService;
3228
3397
  protected readonly captchaProvider: CaptchaProvider;
@@ -3279,135 +3448,135 @@ declare class UserController {
3279
3448
  * Validates data, creates verification sessions, and stores intent in cache.
3280
3449
  */
3281
3450
  readonly createRegistrationIntent: import("alepha/server").ActionPrimitiveFn<{
3282
- body: import("typebox").TObject<{
3283
- password: import("typebox").TString;
3284
- username: import("typebox").TOptional<import("typebox").TString>;
3285
- email: import("typebox").TOptional<import("typebox").TString>;
3286
- phoneNumber: import("typebox").TOptional<import("typebox").TString>;
3287
- firstName: import("typebox").TOptional<import("typebox").TString>;
3288
- lastName: import("typebox").TOptional<import("typebox").TString>;
3289
- picture: import("typebox").TOptional<import("typebox").TString>;
3290
- captchaToken: import("typebox").TOptional<import("typebox").TString>;
3291
- }>;
3292
- query: import("typebox").TObject<{
3293
- userRealmName: import("typebox").TOptional<import("typebox").TString>;
3294
- }>;
3295
- response: import("typebox").TObject<{
3296
- intentId: import("typebox").TString;
3297
- expectCaptcha: import("typebox").TBoolean;
3298
- captchaSiteKey: import("typebox").TOptional<import("typebox").TString>;
3299
- expectEmailVerification: import("typebox").TBoolean;
3300
- expectPhoneVerification: import("typebox").TBoolean;
3301
- expiresAt: import("typebox").TString;
3302
- }>;
3451
+ body: import("zod").ZodObject<{
3452
+ password: import("zod").ZodString;
3453
+ username: import("zod").ZodOptional<import("zod").ZodString>;
3454
+ email: import("zod").ZodOptional<import("zod").ZodString>;
3455
+ phoneNumber: import("zod").ZodOptional<import("zod").ZodString>;
3456
+ firstName: import("zod").ZodOptional<import("zod").ZodString>;
3457
+ lastName: import("zod").ZodOptional<import("zod").ZodString>;
3458
+ picture: import("zod").ZodOptional<import("zod").ZodString>;
3459
+ captchaToken: import("zod").ZodOptional<import("zod").ZodString>;
3460
+ }, import("zod/v4/core").$strip>;
3461
+ query: import("zod").ZodObject<{
3462
+ userRealmName: import("zod").ZodOptional<import("zod").ZodString>;
3463
+ }, import("zod/v4/core").$strip>;
3464
+ response: import("zod").ZodObject<{
3465
+ intentId: import("zod").ZodString;
3466
+ expectCaptcha: import("zod").ZodBoolean;
3467
+ captchaSiteKey: import("zod").ZodOptional<import("zod").ZodString>;
3468
+ expectEmailVerification: import("zod").ZodBoolean;
3469
+ expectPhoneVerification: import("zod").ZodBoolean;
3470
+ expiresAt: import("zod").ZodString;
3471
+ }, import("zod/v4/core").$strip>;
3303
3472
  }>;
3304
3473
  /**
3305
3474
  * Phase 2: Complete registration using an intent.
3306
3475
  * Validates verification codes and creates the user.
3307
3476
  */
3308
3477
  readonly createUserFromIntent: import("alepha/server").ActionPrimitiveFn<{
3309
- body: import("typebox").TObject<{
3310
- intentId: import("typebox").TString;
3311
- emailCode: import("typebox").TOptional<import("typebox").TString>;
3312
- phoneCode: import("typebox").TOptional<import("typebox").TString>;
3313
- captchaToken: import("typebox").TOptional<import("typebox").TString>;
3314
- }>;
3315
- response: import("typebox").TObject<{
3316
- id: PgAttr<PgAttr<import("typebox").TString, typeof PG_PRIMARY_KEY>, typeof PG_DEFAULT>;
3317
- version: PgAttr<PgAttr<import("typebox").TInteger, typeof PG_VERSION>, typeof PG_DEFAULT>;
3318
- createdAt: PgAttr<PgAttr<import("typebox").TString, typeof PG_CREATED_AT>, typeof PG_DEFAULT>;
3319
- updatedAt: PgAttr<PgAttr<import("typebox").TString, typeof PG_UPDATED_AT>, typeof PG_DEFAULT>;
3320
- realm: PgAttr<import("typebox").TString, typeof PG_DEFAULT>;
3321
- username: import("typebox").TOptional<import("typebox").TString>;
3322
- email: import("typebox").TOptional<import("typebox").TString>;
3323
- phoneNumber: import("typebox").TOptional<import("typebox").TString>;
3324
- roles: PgAttr<import("typebox").TArray<import("typebox").TString>, typeof PG_DEFAULT>;
3325
- firstName: import("typebox").TOptional<import("typebox").TString>;
3326
- lastName: import("typebox").TOptional<import("typebox").TString>;
3327
- picture: import("typebox").TOptional<import("typebox").TString>;
3328
- enabled: PgAttr<import("typebox").TBoolean, typeof PG_DEFAULT>;
3329
- emailVerified: PgAttr<import("typebox").TBoolean, typeof PG_DEFAULT>;
3330
- lastLoginAt: import("typebox").TOptional<import("typebox").TString>;
3331
- organizationId: PgAttr<import("typebox").TString, typeof PG_ORGANIZATION>;
3332
- }>;
3478
+ body: import("zod").ZodObject<{
3479
+ intentId: import("zod").ZodString;
3480
+ emailCode: import("zod").ZodOptional<import("zod").ZodString>;
3481
+ phoneCode: import("zod").ZodOptional<import("zod").ZodString>;
3482
+ captchaToken: import("zod").ZodOptional<import("zod").ZodString>;
3483
+ }, import("zod/v4/core").$strip>;
3484
+ response: import("zod").ZodObject<{
3485
+ id: PgAttr<PgAttr<import("zod").ZodString, typeof PG_PRIMARY_KEY>, typeof PG_DEFAULT>;
3486
+ version: PgAttr<PgAttr<import("zod").ZodInt, typeof PG_VERSION>, typeof PG_DEFAULT>;
3487
+ createdAt: PgAttr<PgAttr<import("zod").ZodString, typeof PG_CREATED_AT>, typeof PG_DEFAULT>;
3488
+ updatedAt: PgAttr<PgAttr<import("zod").ZodString, typeof PG_UPDATED_AT>, typeof PG_DEFAULT>;
3489
+ realm: PgAttr<import("zod").ZodString, typeof PG_DEFAULT>;
3490
+ username: import("zod").ZodOptional<import("zod").ZodString>;
3491
+ email: import("zod").ZodOptional<import("zod").ZodString>;
3492
+ phoneNumber: import("zod").ZodOptional<import("zod").ZodString>;
3493
+ roles: PgAttr<import("zod").ZodArray<import("zod").ZodString>, typeof PG_DEFAULT>;
3494
+ firstName: import("zod").ZodOptional<import("zod").ZodString>;
3495
+ lastName: import("zod").ZodOptional<import("zod").ZodString>;
3496
+ picture: import("zod").ZodOptional<import("zod").ZodString>;
3497
+ enabled: PgAttr<import("zod").ZodBoolean, typeof PG_DEFAULT>;
3498
+ emailVerified: PgAttr<import("zod").ZodBoolean, typeof PG_DEFAULT>;
3499
+ lastLoginAt: import("zod").ZodOptional<import("zod").ZodString>;
3500
+ organizationId: PgAttr<import("zod").ZodOptional<import("zod").ZodString> | import("zod").ZodString, typeof PG_ORGANIZATION>;
3501
+ }, import("zod/v4/core").$strip>;
3333
3502
  }>;
3334
3503
  /**
3335
3504
  * Phase 1: Create a password reset intent.
3336
3505
  * Validates email, sends verification code, and stores intent in cache.
3337
3506
  */
3338
3507
  readonly createPasswordResetIntent: import("alepha/server").ActionPrimitiveFn<{
3339
- query: import("typebox").TObject<{
3340
- userRealmName: import("typebox").TOptional<import("typebox").TString>;
3341
- }>;
3342
- body: import("typebox").TObject<{
3343
- email: import("typebox").TString;
3344
- }>;
3345
- response: import("typebox").TObject<{
3346
- intentId: import("typebox").TString;
3347
- expiresAt: import("typebox").TString;
3348
- }>;
3508
+ query: import("zod").ZodObject<{
3509
+ userRealmName: import("zod").ZodOptional<import("zod").ZodString>;
3510
+ }, import("zod/v4/core").$strip>;
3511
+ body: import("zod").ZodObject<{
3512
+ email: import("zod").ZodString;
3513
+ }, import("zod/v4/core").$strip>;
3514
+ response: import("zod").ZodObject<{
3515
+ intentId: import("zod").ZodString;
3516
+ expiresAt: import("zod").ZodString;
3517
+ }, import("zod/v4/core").$strip>;
3349
3518
  }>;
3350
3519
  /**
3351
3520
  * Phase 2: Complete password reset using an intent.
3352
3521
  * Validates verification code, updates password, and invalidates sessions.
3353
3522
  */
3354
3523
  readonly completePasswordReset: import("alepha/server").ActionPrimitiveFn<{
3355
- body: import("typebox").TObject<{
3356
- intentId: import("typebox").TString;
3357
- code: import("typebox").TString;
3358
- newPassword: import("typebox").TString;
3359
- }>;
3360
- response: import("typebox").TObject<{
3361
- ok: import("typebox").TBoolean;
3362
- id: import("typebox").TOptional<import("typebox").TUnion<[import("typebox").TString, import("typebox").TInteger]>>;
3363
- count: import("typebox").TOptional<import("typebox").TNumber>;
3364
- }>;
3524
+ body: import("zod").ZodObject<{
3525
+ intentId: import("zod").ZodString;
3526
+ code: import("zod").ZodString;
3527
+ newPassword: import("zod").ZodString;
3528
+ }, import("zod/v4/core").$strip>;
3529
+ response: import("zod").ZodObject<{
3530
+ ok: import("zod").ZodBoolean;
3531
+ id: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodInt]>>;
3532
+ count: import("zod").ZodOptional<import("zod").ZodNumber>;
3533
+ }, import("zod/v4/core").$strip>;
3365
3534
  }>;
3366
3535
  /**
3367
3536
  * @deprecated Use createPasswordResetIntent instead
3368
3537
  */
3369
3538
  requestPasswordReset: import("alepha/server").ActionPrimitiveFn<{
3370
- query: import("typebox").TObject<{
3371
- userRealmName: import("typebox").TOptional<import("typebox").TString>;
3372
- }>;
3373
- body: import("typebox").TObject<{
3374
- email: import("typebox").TString;
3375
- }>;
3376
- response: import("typebox").TObject<{
3377
- success: import("typebox").TBoolean;
3378
- message: import("typebox").TString;
3379
- }>;
3539
+ query: import("zod").ZodObject<{
3540
+ userRealmName: import("zod").ZodOptional<import("zod").ZodString>;
3541
+ }, import("zod/v4/core").$strip>;
3542
+ body: import("zod").ZodObject<{
3543
+ email: import("zod").ZodString;
3544
+ }, import("zod/v4/core").$strip>;
3545
+ response: import("zod").ZodObject<{
3546
+ success: import("zod").ZodBoolean;
3547
+ message: import("zod").ZodString;
3548
+ }, import("zod/v4/core").$strip>;
3380
3549
  }>;
3381
3550
  /**
3382
3551
  * @deprecated Use completePasswordReset instead
3383
3552
  */
3384
3553
  validateResetToken: import("alepha/server").ActionPrimitiveFn<{
3385
- query: import("typebox").TObject<{
3386
- email: import("typebox").TString;
3387
- token: import("typebox").TString;
3388
- userRealmName: import("typebox").TOptional<import("typebox").TString>;
3389
- }>;
3390
- response: import("typebox").TObject<{
3391
- valid: import("typebox").TBoolean;
3392
- email: import("typebox").TOptional<import("typebox").TString>;
3393
- }>;
3554
+ query: import("zod").ZodObject<{
3555
+ email: import("zod").ZodString;
3556
+ token: import("zod").ZodString;
3557
+ userRealmName: import("zod").ZodOptional<import("zod").ZodString>;
3558
+ }, import("zod/v4/core").$strip>;
3559
+ response: import("zod").ZodObject<{
3560
+ valid: import("zod").ZodBoolean;
3561
+ email: import("zod").ZodOptional<import("zod").ZodString>;
3562
+ }, import("zod/v4/core").$strip>;
3394
3563
  }>;
3395
3564
  /**
3396
3565
  * @deprecated Use completePasswordReset instead
3397
3566
  */
3398
3567
  resetPassword: import("alepha/server").ActionPrimitiveFn<{
3399
- query: import("typebox").TObject<{
3400
- userRealmName: import("typebox").TOptional<import("typebox").TString>;
3401
- }>;
3402
- body: import("typebox").TObject<{
3403
- email: import("typebox").TString;
3404
- token: import("typebox").TString;
3405
- newPassword: import("typebox").TString;
3406
- }>;
3407
- response: import("typebox").TObject<{
3408
- success: import("typebox").TBoolean;
3409
- message: import("typebox").TString;
3410
- }>;
3568
+ query: import("zod").ZodObject<{
3569
+ userRealmName: import("zod").ZodOptional<import("zod").ZodString>;
3570
+ }, import("zod/v4/core").$strip>;
3571
+ body: import("zod").ZodObject<{
3572
+ email: import("zod").ZodString;
3573
+ token: import("zod").ZodString;
3574
+ newPassword: import("zod").ZodString;
3575
+ }, import("zod/v4/core").$strip>;
3576
+ response: import("zod").ZodObject<{
3577
+ success: import("zod").ZodBoolean;
3578
+ message: import("zod").ZodString;
3579
+ }, import("zod/v4/core").$strip>;
3411
3580
  }>;
3412
3581
  /**
3413
3582
  * Request email verification.
@@ -3416,46 +3585,49 @@ declare class UserController {
3416
3585
  * @param verifyUrl - Required when method is "link". The base URL for the verification link. Token and email will be appended as query params.
3417
3586
  */
3418
3587
  requestEmailVerification: import("alepha/server").ActionPrimitiveFn<{
3419
- query: import("typebox").TObject<{
3420
- userRealmName: import("typebox").TOptional<import("typebox").TString>;
3421
- method: import("typebox").TOptional<import("typebox").TUnsafe<"link" | "code">>;
3422
- }>;
3423
- body: import("typebox").TObject<{
3424
- email: import("typebox").TString;
3425
- }>;
3426
- response: import("typebox").TObject<{
3427
- success: import("typebox").TBoolean;
3428
- message: import("typebox").TString;
3429
- }>;
3588
+ query: import("zod").ZodObject<{
3589
+ userRealmName: import("zod").ZodOptional<import("zod").ZodString>;
3590
+ method: import("zod").ZodOptional<import("zod").ZodDefault<import("zod").ZodEnum<{
3591
+ code: "code";
3592
+ link: "link";
3593
+ }>>>;
3594
+ }, import("zod/v4/core").$strip>;
3595
+ body: import("zod").ZodObject<{
3596
+ email: import("zod").ZodString;
3597
+ }, import("zod/v4/core").$strip>;
3598
+ response: import("zod").ZodObject<{
3599
+ success: import("zod").ZodBoolean;
3600
+ message: import("zod").ZodString;
3601
+ }, import("zod/v4/core").$strip>;
3430
3602
  }>;
3431
3603
  /**
3432
3604
  * Verify email with a valid token.
3433
3605
  * Updates the user's emailVerified status.
3434
3606
  */
3435
3607
  verifyEmail: import("alepha/server").ActionPrimitiveFn<{
3436
- query: import("typebox").TObject<{
3437
- userRealmName: import("typebox").TOptional<import("typebox").TString>;
3438
- }>;
3439
- body: import("typebox").TObject<{
3440
- email: import("typebox").TString;
3441
- token: import("typebox").TString;
3442
- }>;
3443
- response: import("typebox").TObject<{
3444
- success: import("typebox").TBoolean;
3445
- message: import("typebox").TString;
3446
- }>;
3608
+ query: import("zod").ZodObject<{
3609
+ userRealmName: import("zod").ZodOptional<import("zod").ZodString>;
3610
+ }, import("zod/v4/core").$strip>;
3611
+ body: import("zod").ZodObject<{
3612
+ email: import("zod").ZodString;
3613
+ token: import("zod").ZodString;
3614
+ }, import("zod/v4/core").$strip>;
3615
+ response: import("zod").ZodObject<{
3616
+ success: import("zod").ZodBoolean;
3617
+ message: import("zod").ZodString;
3618
+ }, import("zod/v4/core").$strip>;
3447
3619
  }>;
3448
3620
  /**
3449
3621
  * Check if an email is verified.
3450
3622
  */
3451
3623
  checkEmailVerification: import("alepha/server").ActionPrimitiveFn<{
3452
- query: import("typebox").TObject<{
3453
- email: import("typebox").TString;
3454
- userRealmName: import("typebox").TOptional<import("typebox").TString>;
3455
- }>;
3456
- response: import("typebox").TObject<{
3457
- verified: import("typebox").TBoolean;
3458
- }>;
3624
+ query: import("zod").ZodObject<{
3625
+ email: import("zod").ZodString;
3626
+ userRealmName: import("zod").ZodOptional<import("zod").ZodString>;
3627
+ }, import("zod/v4/core").$strip>;
3628
+ response: import("zod").ZodObject<{
3629
+ verified: import("zod").ZodBoolean;
3630
+ }, import("zod/v4/core").$strip>;
3459
3631
  }>;
3460
3632
  }
3461
3633
  //#endregion
@@ -3474,24 +3646,28 @@ declare class UserController {
3474
3646
  declare class UserJobs {
3475
3647
  protected readonly log: import("alepha/logger").Logger;
3476
3648
  protected readonly dateTimeProvider: DateTimeProvider;
3477
- protected readonly sessionRepository: import("alepha/orm").Repository<import("typebox").TObject<{
3478
- id: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("typebox").TString, typeof import("alepha/orm").PG_PRIMARY_KEY>, typeof import("alepha/orm").PG_DEFAULT>;
3479
- version: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("typebox").TInteger, typeof import("alepha/orm").PG_VERSION>, typeof import("alepha/orm").PG_DEFAULT>;
3480
- createdAt: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("typebox").TString, typeof import("alepha/orm").PG_CREATED_AT>, typeof import("alepha/orm").PG_DEFAULT>;
3481
- updatedAt: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("typebox").TString, typeof import("alepha/orm").PG_UPDATED_AT>, typeof import("alepha/orm").PG_DEFAULT>;
3482
- refreshToken: import("typebox").TString;
3483
- userId: import("alepha/orm").PgAttr<import("typebox").TString, typeof import("alepha/orm").PG_REF>;
3484
- clientId: import("typebox").TOptional<import("typebox").TString>;
3485
- expiresAt: import("typebox").TString;
3486
- lastUsedAt: import("typebox").TOptional<import("typebox").TString>;
3487
- ip: import("typebox").TOptional<import("typebox").TString>;
3488
- country: import("typebox").TOptional<import("typebox").TString>;
3489
- userAgent: import("typebox").TOptional<import("typebox").TObject<{
3490
- os: import("typebox").TString;
3491
- browser: import("typebox").TString;
3492
- device: import("typebox").TUnsafe<"MOBILE" | "DESKTOP" | "TABLET">;
3493
- }>>;
3494
- }>>;
3649
+ protected readonly sessionRepository: import("alepha/orm").Repository<import("zod").ZodObject<{
3650
+ id: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("zod").ZodString, typeof import("alepha/orm").PG_PRIMARY_KEY>, typeof import("alepha/orm").PG_DEFAULT>;
3651
+ version: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("zod").ZodInt, typeof import("alepha/orm").PG_VERSION>, typeof import("alepha/orm").PG_DEFAULT>;
3652
+ createdAt: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("zod").ZodString, typeof import("alepha/orm").PG_CREATED_AT>, typeof import("alepha/orm").PG_DEFAULT>;
3653
+ updatedAt: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("zod").ZodString, typeof import("alepha/orm").PG_UPDATED_AT>, typeof import("alepha/orm").PG_DEFAULT>;
3654
+ refreshToken: import("zod").ZodString;
3655
+ userId: import("alepha/orm").PgAttr<import("zod").ZodString, typeof import("alepha/orm").PG_REF>;
3656
+ clientId: import("zod").ZodOptional<import("zod").ZodString>;
3657
+ expiresAt: import("zod").ZodString;
3658
+ lastUsedAt: import("zod").ZodOptional<import("zod").ZodString>;
3659
+ ip: import("zod").ZodOptional<import("zod").ZodString>;
3660
+ country: import("zod").ZodOptional<import("zod").ZodString>;
3661
+ userAgent: import("zod").ZodOptional<import("zod").ZodObject<{
3662
+ os: import("zod").ZodString;
3663
+ browser: import("zod").ZodString;
3664
+ device: import("zod").ZodEnum<{
3665
+ DESKTOP: "DESKTOP";
3666
+ MOBILE: "MOBILE";
3667
+ TABLET: "TABLET";
3668
+ }>;
3669
+ }, import("zod/v4/core").$strip>>;
3670
+ }, import("zod/v4/core").$strip>>;
3495
3671
  protected readonly realmProvider: RealmProvider;
3496
3672
  /**
3497
3673
  * Purge expired sessions from the database.
@@ -3505,96 +3681,100 @@ declare class UserJobs {
3505
3681
  * The idle sweep is best-effort cleanup — runtime enforcement happens in
3506
3682
  * `SessionService.refreshSession()`.
3507
3683
  */
3508
- readonly purgeExpiredSessions: import("alepha/api/jobs").JobPrimitive<import("typebox").TSchema>;
3684
+ readonly purgeExpiredSessions: import("alepha/api/jobs").JobPrimitive<import("alepha").ZType>;
3509
3685
  }
3510
3686
  //#endregion
3511
3687
  //#region ../../src/api/users/schemas/identityResourceSchema.d.ts
3512
- declare const identityResourceSchema: import("typebox").TObject<{
3513
- id: PgAttr<PgAttr<import("typebox").TString, typeof PG_PRIMARY_KEY>, typeof PG_DEFAULT>;
3514
- version: PgAttr<PgAttr<import("typebox").TInteger, typeof PG_VERSION>, typeof PG_DEFAULT>;
3515
- createdAt: PgAttr<PgAttr<import("typebox").TString, typeof PG_CREATED_AT>, typeof PG_DEFAULT>;
3516
- updatedAt: PgAttr<PgAttr<import("typebox").TString, typeof PG_UPDATED_AT>, typeof PG_DEFAULT>;
3517
- userId: PgAttr<import("typebox").TString, typeof PG_REF>;
3518
- provider: import("typebox").TString;
3519
- providerUserId: import("typebox").TOptional<import("typebox").TString>;
3520
- providerData: import("typebox").TOptional<import("typebox").TRecord<string, import("typebox").TAny>>;
3521
- }>;
3688
+ declare const identityResourceSchema: import("zod").ZodObject<{
3689
+ id: PgAttr<PgAttr<import("zod").ZodString, typeof PG_PRIMARY_KEY>, typeof PG_DEFAULT>;
3690
+ version: PgAttr<PgAttr<import("zod").ZodInt, typeof PG_VERSION>, typeof PG_DEFAULT>;
3691
+ createdAt: PgAttr<PgAttr<import("zod").ZodString, typeof PG_CREATED_AT>, typeof PG_DEFAULT>;
3692
+ updatedAt: PgAttr<PgAttr<import("zod").ZodString, typeof PG_UPDATED_AT>, typeof PG_DEFAULT>;
3693
+ userId: PgAttr<import("zod").ZodString, typeof PG_REF>;
3694
+ provider: import("zod").ZodString;
3695
+ providerUserId: import("zod").ZodOptional<import("zod").ZodString>;
3696
+ providerData: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodAny>>;
3697
+ }, import("zod/v4/core").$strip>;
3522
3698
  type IdentityResource = Static<typeof identityResourceSchema>;
3523
3699
  //#endregion
3524
3700
  //#region ../../src/api/users/schemas/loginSchema.d.ts
3525
- declare const loginSchema: import("typebox").TObject<{
3526
- username: import("typebox").TString;
3527
- password: import("typebox").TString;
3528
- }>;
3701
+ declare const loginSchema: import("zod").ZodObject<{
3702
+ username: import("zod").ZodString;
3703
+ password: import("zod").ZodString;
3704
+ }, import("zod/v4/core").$strip>;
3529
3705
  type LoginInput = Static<typeof loginSchema>;
3530
3706
  //#endregion
3531
3707
  //#region ../../src/api/users/schemas/realmConfigSchema.d.ts
3532
- declare const realmConfigSchema: import("typebox").TObject<{
3533
- settings: import("typebox").TObject<{
3534
- displayName: import("typebox").TOptional<import("typebox").TString>;
3535
- description: import("typebox").TOptional<import("typebox").TString>;
3536
- logoUrl: import("typebox").TOptional<import("typebox").TString>;
3537
- registrationAllowed: import("typebox").TBoolean;
3538
- email: import("typebox").TUnion<[import("typebox").TLiteral<"none">, import("typebox").TLiteral<"optional">, import("typebox").TLiteral<"required">]>;
3539
- username: import("typebox").TUnion<[import("typebox").TLiteral<"none">, import("typebox").TLiteral<"optional">, import("typebox").TLiteral<"required">, import("typebox").TLiteral<"email">]>;
3540
- usernameRegExp: import("typebox").TString;
3541
- usernameBlocklist: import("typebox").TArray<import("typebox").TString>;
3542
- phoneNumber: import("typebox").TUnion<[import("typebox").TLiteral<"none">, import("typebox").TLiteral<"optional">, import("typebox").TLiteral<"required">]>;
3543
- verifyEmailRequired: import("typebox").TBoolean;
3544
- verifyPhoneRequired: import("typebox").TBoolean;
3545
- firstNameLastName: import("typebox").TUnion<[import("typebox").TLiteral<"none">, import("typebox").TLiteral<"optional">, import("typebox").TLiteral<"required">]>;
3546
- resetPasswordAllowed: import("typebox").TBoolean;
3547
- captchaRequired: import("typebox").TBoolean;
3548
- adminEmails: import("typebox").TArray<import("typebox").TString>;
3549
- adminUsernames: import("typebox").TArray<import("typebox").TString>;
3550
- defaultRoles: import("typebox").TArray<import("typebox").TString>;
3551
- verifyEmailUrl: import("typebox").TOptional<import("typebox").TString>;
3552
- passwordPolicy: import("typebox").TObject<{
3553
- minLength: import("typebox").TInteger;
3554
- requireUppercase: import("typebox").TBoolean;
3555
- requireLowercase: import("typebox").TBoolean;
3556
- requireNumbers: import("typebox").TBoolean;
3557
- requireSpecialCharacters: import("typebox").TBoolean;
3558
- }>;
3559
- loginRateLimit: import("typebox").TObject<{
3560
- ipMaxAttempts: import("typebox").TInteger;
3561
- accountMaxAttempts: import("typebox").TInteger;
3562
- windowMs: import("typebox").TInteger;
3563
- }>;
3564
- registrationIpMaxAttempts: import("typebox").TInteger;
3565
- refreshToken: import("typebox").TObject<{
3566
- expirationIdle: import("typebox").TOptional<import("typebox").TInteger>;
3567
- }>;
3568
- }>;
3569
- realmName: import("typebox").TString;
3570
- authenticationMethods: import("typebox").TArray<import("typebox").TObject<{
3571
- name: import("typebox").TString;
3572
- type: import("typebox").TUnsafe<"OAUTH2" | "OIDC" | "CREDENTIALS">;
3573
- }>>;
3574
- captchaSiteKey: import("typebox").TOptional<import("typebox").TString>;
3575
- }>;
3708
+ declare const realmConfigSchema: import("zod").ZodObject<{
3709
+ settings: import("zod").ZodObject<{
3710
+ displayName: import("zod").ZodOptional<import("zod").ZodString>;
3711
+ description: import("zod").ZodOptional<import("zod").ZodString>;
3712
+ logoUrl: import("zod").ZodOptional<import("zod").ZodString>;
3713
+ registrationAllowed: import("zod").ZodBoolean;
3714
+ email: import("zod").ZodUnion<readonly [import("zod").ZodLiteral<"none">, import("zod").ZodLiteral<"optional">, import("zod").ZodLiteral<"required">]>;
3715
+ username: import("zod").ZodUnion<readonly [import("zod").ZodLiteral<"none">, import("zod").ZodLiteral<"optional">, import("zod").ZodLiteral<"required">, import("zod").ZodLiteral<"email">]>;
3716
+ usernameRegExp: import("zod").ZodString;
3717
+ usernameBlocklist: import("zod").ZodArray<import("zod").ZodString>;
3718
+ phoneNumber: import("zod").ZodUnion<readonly [import("zod").ZodLiteral<"none">, import("zod").ZodLiteral<"optional">, import("zod").ZodLiteral<"required">]>;
3719
+ verifyEmailRequired: import("zod").ZodBoolean;
3720
+ verifyPhoneRequired: import("zod").ZodBoolean;
3721
+ firstNameLastName: import("zod").ZodUnion<readonly [import("zod").ZodLiteral<"none">, import("zod").ZodLiteral<"optional">, import("zod").ZodLiteral<"required">]>;
3722
+ resetPasswordAllowed: import("zod").ZodBoolean;
3723
+ captchaRequired: import("zod").ZodBoolean;
3724
+ adminEmails: import("zod").ZodArray<import("zod").ZodString>;
3725
+ adminUsernames: import("zod").ZodArray<import("zod").ZodString>;
3726
+ defaultRoles: import("zod").ZodArray<import("zod").ZodString>;
3727
+ verifyEmailUrl: import("zod").ZodOptional<import("zod").ZodString>;
3728
+ passwordPolicy: import("zod").ZodObject<{
3729
+ minLength: import("zod").ZodDefault<import("zod").ZodInt>;
3730
+ requireUppercase: import("zod").ZodBoolean;
3731
+ requireLowercase: import("zod").ZodBoolean;
3732
+ requireNumbers: import("zod").ZodBoolean;
3733
+ requireSpecialCharacters: import("zod").ZodBoolean;
3734
+ }, import("zod/v4/core").$strip>;
3735
+ loginRateLimit: import("zod").ZodObject<{
3736
+ ipMaxAttempts: import("zod").ZodDefault<import("zod").ZodInt>;
3737
+ accountMaxAttempts: import("zod").ZodDefault<import("zod").ZodInt>;
3738
+ windowMs: import("zod").ZodDefault<import("zod").ZodInt>;
3739
+ }, import("zod/v4/core").$strip>;
3740
+ registrationIpMaxAttempts: import("zod").ZodDefault<import("zod").ZodInt>;
3741
+ refreshToken: import("zod").ZodObject<{
3742
+ expirationIdle: import("zod").ZodOptional<import("zod").ZodInt>;
3743
+ }, import("zod/v4/core").$strip>;
3744
+ }, import("zod/v4/core").$strip>;
3745
+ realmName: import("zod").ZodString;
3746
+ authenticationMethods: import("zod").ZodArray<import("zod").ZodObject<{
3747
+ name: import("zod").ZodString;
3748
+ type: import("zod").ZodEnum<{
3749
+ CREDENTIALS: "CREDENTIALS";
3750
+ OAUTH2: "OAUTH2";
3751
+ OIDC: "OIDC";
3752
+ }>;
3753
+ }, import("zod/v4/core").$strip>>;
3754
+ captchaSiteKey: import("zod").ZodOptional<import("zod").ZodString>;
3755
+ }, import("zod/v4/core").$strip>;
3576
3756
  type RealmConfig = Static<typeof realmConfigSchema>;
3577
3757
  //#endregion
3578
3758
  //#region ../../src/api/users/schemas/registerSchema.d.ts
3579
- declare const registerSchema: import("typebox").TObject<{
3580
- username: import("typebox").TString;
3581
- email: import("typebox").TString;
3582
- password: import("typebox").TString;
3583
- confirmPassword: import("typebox").TString;
3584
- firstName: import("typebox").TOptional<import("typebox").TString>;
3585
- lastName: import("typebox").TOptional<import("typebox").TString>;
3586
- }>;
3759
+ declare const registerSchema: import("zod").ZodObject<{
3760
+ username: import("zod").ZodString;
3761
+ email: import("zod").ZodString;
3762
+ password: import("zod").ZodString;
3763
+ confirmPassword: import("zod").ZodString;
3764
+ firstName: import("zod").ZodOptional<import("zod").ZodString>;
3765
+ lastName: import("zod").ZodOptional<import("zod").ZodString>;
3766
+ }, import("zod/v4/core").$strip>;
3587
3767
  type RegisterInput = Static<typeof registerSchema>;
3588
3768
  //#endregion
3589
3769
  //#region ../../src/api/users/schemas/resetPasswordSchema.d.ts
3590
- declare const resetPasswordRequestSchema: import("typebox").TObject<{
3591
- email: import("typebox").TString;
3592
- }>;
3593
- declare const resetPasswordSchema: import("typebox").TObject<{
3594
- token: import("typebox").TString;
3595
- password: import("typebox").TString;
3596
- confirmPassword: import("typebox").TString;
3597
- }>;
3770
+ declare const resetPasswordRequestSchema: import("zod").ZodObject<{
3771
+ email: import("zod").ZodString;
3772
+ }, import("zod/v4/core").$strip>;
3773
+ declare const resetPasswordSchema: import("zod").ZodObject<{
3774
+ token: import("zod").ZodString;
3775
+ password: import("zod").ZodString;
3776
+ confirmPassword: import("zod").ZodString;
3777
+ }, import("zod/v4/core").$strip>;
3598
3778
  type ResetPasswordRequest = Static<typeof resetPasswordRequestSchema>;
3599
3779
  type ResetPasswordInput = Static<typeof resetPasswordSchema>;
3600
3780
  //#endregion
@@ -3605,57 +3785,61 @@ type ResetPasswordInput = Static<typeof resetPasswordSchema>;
3605
3785
  * back via a left join, so it's optional (a session whose user was deleted
3606
3786
  * still returns; `user` is undefined).
3607
3787
  */
3608
- declare const sessionUserSummarySchema: import("typebox").TObject<{
3609
- id: import("typebox").TString;
3610
- email: import("typebox").TOptional<import("typebox").TString>;
3611
- username: import("typebox").TOptional<import("typebox").TString>;
3612
- firstName: import("typebox").TOptional<import("typebox").TString>;
3613
- lastName: import("typebox").TOptional<import("typebox").TString>;
3614
- }>;
3615
- declare const sessionResourceSchema: import("typebox").TObject<{
3616
- id: import("typebox").TString;
3617
- version: import("typebox").TNumber;
3618
- createdAt: import("typebox").TString;
3619
- updatedAt: import("typebox").TString;
3620
- refreshToken: import("typebox").TString;
3621
- userId: import("typebox").TString;
3622
- expiresAt: import("typebox").TString;
3623
- ip: import("typebox").TOptional<import("typebox").TString>;
3624
- country: import("typebox").TOptional<import("typebox").TString>;
3625
- userAgent: import("typebox").TOptional<import("typebox").TObject<{
3626
- os: import("typebox").TString;
3627
- browser: import("typebox").TString;
3628
- device: import("typebox").TUnsafe<"MOBILE" | "DESKTOP" | "TABLET">;
3629
- }>>;
3630
- user: import("typebox").TOptional<import("typebox").TObject<{
3631
- id: import("typebox").TString;
3632
- email: import("typebox").TOptional<import("typebox").TString>;
3633
- username: import("typebox").TOptional<import("typebox").TString>;
3634
- firstName: import("typebox").TOptional<import("typebox").TString>;
3635
- lastName: import("typebox").TOptional<import("typebox").TString>;
3636
- }>>;
3637
- }>;
3788
+ declare const sessionUserSummarySchema: import("zod").ZodObject<{
3789
+ id: import("zod").ZodString;
3790
+ email: import("zod").ZodOptional<import("zod").ZodString>;
3791
+ username: import("zod").ZodOptional<import("zod").ZodString>;
3792
+ firstName: import("zod").ZodOptional<import("zod").ZodString>;
3793
+ lastName: import("zod").ZodOptional<import("zod").ZodString>;
3794
+ }, import("zod/v4/core").$strip>;
3795
+ declare const sessionResourceSchema: import("zod").ZodObject<{
3796
+ id: import("zod").ZodString;
3797
+ version: import("zod").ZodNumber;
3798
+ createdAt: import("zod").ZodString;
3799
+ updatedAt: import("zod").ZodString;
3800
+ refreshToken: import("zod").ZodString;
3801
+ userId: import("zod").ZodString;
3802
+ expiresAt: import("zod").ZodString;
3803
+ ip: import("zod").ZodOptional<import("zod").ZodString>;
3804
+ country: import("zod").ZodOptional<import("zod").ZodString>;
3805
+ userAgent: import("zod").ZodOptional<import("zod").ZodObject<{
3806
+ os: import("zod").ZodString;
3807
+ browser: import("zod").ZodString;
3808
+ device: import("zod").ZodEnum<{
3809
+ DESKTOP: "DESKTOP";
3810
+ MOBILE: "MOBILE";
3811
+ TABLET: "TABLET";
3812
+ }>;
3813
+ }, import("zod/v4/core").$strip>>;
3814
+ user: import("zod").ZodOptional<import("zod").ZodObject<{
3815
+ id: import("zod").ZodString;
3816
+ email: import("zod").ZodOptional<import("zod").ZodString>;
3817
+ username: import("zod").ZodOptional<import("zod").ZodString>;
3818
+ firstName: import("zod").ZodOptional<import("zod").ZodString>;
3819
+ lastName: import("zod").ZodOptional<import("zod").ZodString>;
3820
+ }, import("zod/v4/core").$strip>>;
3821
+ }, import("zod/v4/core").$strip>;
3638
3822
  type SessionResource = Static<typeof sessionResourceSchema>;
3639
3823
  //#endregion
3640
3824
  //#region ../../src/api/users/schemas/userResourceSchema.d.ts
3641
- declare const userResourceSchema: import("typebox").TObject<{
3642
- id: PgAttr<PgAttr<import("typebox").TString, typeof PG_PRIMARY_KEY>, typeof PG_DEFAULT>;
3643
- version: PgAttr<PgAttr<import("typebox").TInteger, typeof PG_VERSION>, typeof PG_DEFAULT>;
3644
- createdAt: PgAttr<PgAttr<import("typebox").TString, typeof PG_CREATED_AT>, typeof PG_DEFAULT>;
3645
- updatedAt: PgAttr<PgAttr<import("typebox").TString, typeof PG_UPDATED_AT>, typeof PG_DEFAULT>;
3646
- realm: PgAttr<import("typebox").TString, typeof PG_DEFAULT>;
3647
- username: import("typebox").TOptional<import("typebox").TString>;
3648
- email: import("typebox").TOptional<import("typebox").TString>;
3649
- phoneNumber: import("typebox").TOptional<import("typebox").TString>;
3650
- roles: PgAttr<import("typebox").TArray<import("typebox").TString>, typeof PG_DEFAULT>;
3651
- firstName: import("typebox").TOptional<import("typebox").TString>;
3652
- lastName: import("typebox").TOptional<import("typebox").TString>;
3653
- picture: import("typebox").TOptional<import("typebox").TString>;
3654
- enabled: PgAttr<import("typebox").TBoolean, typeof PG_DEFAULT>;
3655
- emailVerified: PgAttr<import("typebox").TBoolean, typeof PG_DEFAULT>;
3656
- lastLoginAt: import("typebox").TOptional<import("typebox").TString>;
3657
- organizationId: PgAttr<import("typebox").TString, typeof PG_ORGANIZATION>;
3658
- }>;
3825
+ declare const userResourceSchema: import("zod").ZodObject<{
3826
+ id: PgAttr<PgAttr<import("zod").ZodString, typeof PG_PRIMARY_KEY>, typeof PG_DEFAULT>;
3827
+ version: PgAttr<PgAttr<import("zod").ZodInt, typeof PG_VERSION>, typeof PG_DEFAULT>;
3828
+ createdAt: PgAttr<PgAttr<import("zod").ZodString, typeof PG_CREATED_AT>, typeof PG_DEFAULT>;
3829
+ updatedAt: PgAttr<PgAttr<import("zod").ZodString, typeof PG_UPDATED_AT>, typeof PG_DEFAULT>;
3830
+ realm: PgAttr<import("zod").ZodString, typeof PG_DEFAULT>;
3831
+ username: import("zod").ZodOptional<import("zod").ZodString>;
3832
+ email: import("zod").ZodOptional<import("zod").ZodString>;
3833
+ phoneNumber: import("zod").ZodOptional<import("zod").ZodString>;
3834
+ roles: PgAttr<import("zod").ZodArray<import("zod").ZodString>, typeof PG_DEFAULT>;
3835
+ firstName: import("zod").ZodOptional<import("zod").ZodString>;
3836
+ lastName: import("zod").ZodOptional<import("zod").ZodString>;
3837
+ picture: import("zod").ZodOptional<import("zod").ZodString>;
3838
+ enabled: PgAttr<import("zod").ZodBoolean, typeof PG_DEFAULT>;
3839
+ emailVerified: PgAttr<import("zod").ZodBoolean, typeof PG_DEFAULT>;
3840
+ lastLoginAt: import("zod").ZodOptional<import("zod").ZodString>;
3841
+ organizationId: PgAttr<import("zod").ZodOptional<import("zod").ZodString> | import("zod").ZodString, typeof PG_ORGANIZATION>;
3842
+ }, import("zod/v4/core").$strip>;
3659
3843
  type UserResource = Static<typeof userResourceSchema>;
3660
3844
  //#endregion
3661
3845
  //#region ../../src/api/users/services/SessionService.d.ts
@@ -3672,53 +3856,57 @@ declare class SessionService {
3672
3856
  protected userAudits(realmName?: string): UserAudits | undefined;
3673
3857
  protected sessionAudits(realmName?: string): SessionAudits | undefined;
3674
3858
  protected userNotifications(realmName?: string): UserNotifications | undefined;
3675
- users(userRealmName?: string): Repository$1<import("typebox").TObject<{
3676
- id: PgAttr<PgAttr<import("typebox").TString, typeof PG_PRIMARY_KEY>, typeof PG_DEFAULT>;
3677
- version: PgAttr<PgAttr<import("typebox").TInteger, typeof PG_VERSION>, typeof PG_DEFAULT>;
3678
- createdAt: PgAttr<PgAttr<import("typebox").TString, typeof PG_CREATED_AT>, typeof PG_DEFAULT>;
3679
- updatedAt: PgAttr<PgAttr<import("typebox").TString, typeof PG_UPDATED_AT>, typeof PG_DEFAULT>;
3680
- realm: PgAttr<import("typebox").TString, typeof PG_DEFAULT>;
3681
- username: import("typebox").TOptional<import("typebox").TString>;
3682
- email: import("typebox").TOptional<import("typebox").TString>;
3683
- phoneNumber: import("typebox").TOptional<import("typebox").TString>;
3684
- roles: PgAttr<import("typebox").TArray<import("typebox").TString>, typeof PG_DEFAULT>;
3685
- firstName: import("typebox").TOptional<import("typebox").TString>;
3686
- lastName: import("typebox").TOptional<import("typebox").TString>;
3687
- picture: import("typebox").TOptional<import("typebox").TString>;
3688
- enabled: PgAttr<import("typebox").TBoolean, typeof PG_DEFAULT>;
3689
- emailVerified: PgAttr<import("typebox").TBoolean, typeof PG_DEFAULT>;
3690
- lastLoginAt: import("typebox").TOptional<import("typebox").TString>;
3691
- organizationId: PgAttr<import("typebox").TString, typeof PG_ORGANIZATION>;
3692
- }>>;
3693
- sessions(userRealmName?: string): Repository$1<import("typebox").TObject<{
3694
- id: PgAttr<PgAttr<import("typebox").TString, typeof PG_PRIMARY_KEY>, typeof PG_DEFAULT>;
3695
- version: PgAttr<PgAttr<import("typebox").TInteger, typeof PG_VERSION>, typeof PG_DEFAULT>;
3696
- createdAt: PgAttr<PgAttr<import("typebox").TString, typeof PG_CREATED_AT>, typeof PG_DEFAULT>;
3697
- updatedAt: PgAttr<PgAttr<import("typebox").TString, typeof PG_UPDATED_AT>, typeof PG_DEFAULT>;
3698
- refreshToken: import("typebox").TString;
3699
- userId: PgAttr<import("typebox").TString, typeof PG_REF>;
3700
- clientId: import("typebox").TOptional<import("typebox").TString>;
3701
- expiresAt: import("typebox").TString;
3702
- lastUsedAt: import("typebox").TOptional<import("typebox").TString>;
3703
- ip: import("typebox").TOptional<import("typebox").TString>;
3704
- country: import("typebox").TOptional<import("typebox").TString>;
3705
- userAgent: import("typebox").TOptional<import("typebox").TObject<{
3706
- os: import("typebox").TString;
3707
- browser: import("typebox").TString;
3708
- device: import("typebox").TUnsafe<"MOBILE" | "DESKTOP" | "TABLET">;
3709
- }>>;
3710
- }>>;
3711
- identities(userRealmName?: string): Repository$1<import("typebox").TObject<{
3712
- id: PgAttr<PgAttr<import("typebox").TString, typeof PG_PRIMARY_KEY>, typeof PG_DEFAULT>;
3713
- version: PgAttr<PgAttr<import("typebox").TInteger, typeof PG_VERSION>, typeof PG_DEFAULT>;
3714
- createdAt: PgAttr<PgAttr<import("typebox").TString, typeof PG_CREATED_AT>, typeof PG_DEFAULT>;
3715
- updatedAt: PgAttr<PgAttr<import("typebox").TString, typeof PG_UPDATED_AT>, typeof PG_DEFAULT>;
3716
- userId: PgAttr<import("typebox").TString, typeof PG_REF>;
3717
- password: import("typebox").TOptional<import("typebox").TString>;
3718
- provider: import("typebox").TString;
3719
- providerUserId: import("typebox").TOptional<import("typebox").TString>;
3720
- providerData: import("typebox").TOptional<import("typebox").TRecord<string, import("typebox").TAny>>;
3721
- }>>;
3859
+ users(userRealmName?: string): Repository$1<import("zod").ZodObject<{
3860
+ id: PgAttr<PgAttr<import("zod").ZodString, typeof PG_PRIMARY_KEY>, typeof PG_DEFAULT>;
3861
+ version: PgAttr<PgAttr<import("zod").ZodInt, typeof PG_VERSION>, typeof PG_DEFAULT>;
3862
+ createdAt: PgAttr<PgAttr<import("zod").ZodString, typeof PG_CREATED_AT>, typeof PG_DEFAULT>;
3863
+ updatedAt: PgAttr<PgAttr<import("zod").ZodString, typeof PG_UPDATED_AT>, typeof PG_DEFAULT>;
3864
+ realm: PgAttr<import("zod").ZodString, typeof PG_DEFAULT>;
3865
+ username: import("zod").ZodOptional<import("zod").ZodString>;
3866
+ email: import("zod").ZodOptional<import("zod").ZodString>;
3867
+ phoneNumber: import("zod").ZodOptional<import("zod").ZodString>;
3868
+ roles: PgAttr<import("zod").ZodArray<import("zod").ZodString>, typeof PG_DEFAULT>;
3869
+ firstName: import("zod").ZodOptional<import("zod").ZodString>;
3870
+ lastName: import("zod").ZodOptional<import("zod").ZodString>;
3871
+ picture: import("zod").ZodOptional<import("zod").ZodString>;
3872
+ enabled: PgAttr<import("zod").ZodBoolean, typeof PG_DEFAULT>;
3873
+ emailVerified: PgAttr<import("zod").ZodBoolean, typeof PG_DEFAULT>;
3874
+ lastLoginAt: import("zod").ZodOptional<import("zod").ZodString>;
3875
+ organizationId: PgAttr<import("zod").ZodOptional<import("zod").ZodString> | import("zod").ZodString, typeof PG_ORGANIZATION>;
3876
+ }, import("zod/v4/core").$strip>>;
3877
+ sessions(userRealmName?: string): Repository$1<import("zod").ZodObject<{
3878
+ id: PgAttr<PgAttr<import("zod").ZodString, typeof PG_PRIMARY_KEY>, typeof PG_DEFAULT>;
3879
+ version: PgAttr<PgAttr<import("zod").ZodInt, typeof PG_VERSION>, typeof PG_DEFAULT>;
3880
+ createdAt: PgAttr<PgAttr<import("zod").ZodString, typeof PG_CREATED_AT>, typeof PG_DEFAULT>;
3881
+ updatedAt: PgAttr<PgAttr<import("zod").ZodString, typeof PG_UPDATED_AT>, typeof PG_DEFAULT>;
3882
+ refreshToken: import("zod").ZodString;
3883
+ userId: PgAttr<import("zod").ZodString, typeof PG_REF>;
3884
+ clientId: import("zod").ZodOptional<import("zod").ZodString>;
3885
+ expiresAt: import("zod").ZodString;
3886
+ lastUsedAt: import("zod").ZodOptional<import("zod").ZodString>;
3887
+ ip: import("zod").ZodOptional<import("zod").ZodString>;
3888
+ country: import("zod").ZodOptional<import("zod").ZodString>;
3889
+ userAgent: import("zod").ZodOptional<import("zod").ZodObject<{
3890
+ os: import("zod").ZodString;
3891
+ browser: import("zod").ZodString;
3892
+ device: import("zod").ZodEnum<{
3893
+ DESKTOP: "DESKTOP";
3894
+ MOBILE: "MOBILE";
3895
+ TABLET: "TABLET";
3896
+ }>;
3897
+ }, import("zod/v4/core").$strip>>;
3898
+ }, import("zod/v4/core").$strip>>;
3899
+ identities(userRealmName?: string): Repository$1<import("zod").ZodObject<{
3900
+ id: PgAttr<PgAttr<import("zod").ZodString, typeof PG_PRIMARY_KEY>, typeof PG_DEFAULT>;
3901
+ version: PgAttr<PgAttr<import("zod").ZodInt, typeof PG_VERSION>, typeof PG_DEFAULT>;
3902
+ createdAt: PgAttr<PgAttr<import("zod").ZodString, typeof PG_CREATED_AT>, typeof PG_DEFAULT>;
3903
+ updatedAt: PgAttr<PgAttr<import("zod").ZodString, typeof PG_UPDATED_AT>, typeof PG_DEFAULT>;
3904
+ userId: PgAttr<import("zod").ZodString, typeof PG_REF>;
3905
+ password: import("zod").ZodOptional<import("zod").ZodString>;
3906
+ provider: import("zod").ZodString;
3907
+ providerUserId: import("zod").ZodOptional<import("zod").ZodString>;
3908
+ providerData: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodAny>>;
3909
+ }, import("zod/v4/core").$strip>>;
3722
3910
  /**
3723
3911
  * Check if user should be auto-promoted to admin based on adminEmails/adminUsernames settings.
3724
3912
  * If user matches and doesn't have admin role, promote them.
@@ -3766,62 +3954,62 @@ declare class SessionService {
3766
3954
  sessionId: string;
3767
3955
  }>;
3768
3956
  refreshSession(refreshToken: string, userRealmName?: string): Promise<{
3769
- user: PgStatic<import("typebox").TObject<{
3770
- id: PgAttr<PgAttr<import("typebox").TString, typeof PG_PRIMARY_KEY>, typeof PG_DEFAULT>;
3771
- version: PgAttr<PgAttr<import("typebox").TInteger, typeof PG_VERSION>, typeof PG_DEFAULT>;
3772
- createdAt: PgAttr<PgAttr<import("typebox").TString, typeof PG_CREATED_AT>, typeof PG_DEFAULT>;
3773
- updatedAt: PgAttr<PgAttr<import("typebox").TString, typeof PG_UPDATED_AT>, typeof PG_DEFAULT>;
3774
- realm: PgAttr<import("typebox").TString, typeof PG_DEFAULT>;
3775
- username: import("typebox").TOptional<import("typebox").TString>;
3776
- email: import("typebox").TOptional<import("typebox").TString>;
3777
- phoneNumber: import("typebox").TOptional<import("typebox").TString>;
3778
- roles: PgAttr<import("typebox").TArray<import("typebox").TString>, typeof PG_DEFAULT>;
3779
- firstName: import("typebox").TOptional<import("typebox").TString>;
3780
- lastName: import("typebox").TOptional<import("typebox").TString>;
3781
- picture: import("typebox").TOptional<import("typebox").TString>;
3782
- enabled: PgAttr<import("typebox").TBoolean, typeof PG_DEFAULT>;
3783
- emailVerified: PgAttr<import("typebox").TBoolean, typeof PG_DEFAULT>;
3784
- lastLoginAt: import("typebox").TOptional<import("typebox").TString>;
3785
- organizationId: PgAttr<import("typebox").TString, typeof PG_ORGANIZATION>;
3786
- }>, PgRelationMap<import("typebox").TObject<{
3787
- id: PgAttr<PgAttr<import("typebox").TString, typeof PG_PRIMARY_KEY>, typeof PG_DEFAULT>;
3788
- version: PgAttr<PgAttr<import("typebox").TInteger, typeof PG_VERSION>, typeof PG_DEFAULT>;
3789
- createdAt: PgAttr<PgAttr<import("typebox").TString, typeof PG_CREATED_AT>, typeof PG_DEFAULT>;
3790
- updatedAt: PgAttr<PgAttr<import("typebox").TString, typeof PG_UPDATED_AT>, typeof PG_DEFAULT>;
3791
- realm: PgAttr<import("typebox").TString, typeof PG_DEFAULT>;
3792
- username: import("typebox").TOptional<import("typebox").TString>;
3793
- email: import("typebox").TOptional<import("typebox").TString>;
3794
- phoneNumber: import("typebox").TOptional<import("typebox").TString>;
3795
- roles: PgAttr<import("typebox").TArray<import("typebox").TString>, typeof PG_DEFAULT>;
3796
- firstName: import("typebox").TOptional<import("typebox").TString>;
3797
- lastName: import("typebox").TOptional<import("typebox").TString>;
3798
- picture: import("typebox").TOptional<import("typebox").TString>;
3799
- enabled: PgAttr<import("typebox").TBoolean, typeof PG_DEFAULT>;
3800
- emailVerified: PgAttr<import("typebox").TBoolean, typeof PG_DEFAULT>;
3801
- lastLoginAt: import("typebox").TOptional<import("typebox").TString>;
3802
- organizationId: PgAttr<import("typebox").TString, typeof PG_ORGANIZATION>;
3803
- }>>>;
3957
+ user: PgStatic<import("zod").ZodObject<{
3958
+ id: PgAttr<PgAttr<import("zod").ZodString, typeof PG_PRIMARY_KEY>, typeof PG_DEFAULT>;
3959
+ version: PgAttr<PgAttr<import("zod").ZodInt, typeof PG_VERSION>, typeof PG_DEFAULT>;
3960
+ createdAt: PgAttr<PgAttr<import("zod").ZodString, typeof PG_CREATED_AT>, typeof PG_DEFAULT>;
3961
+ updatedAt: PgAttr<PgAttr<import("zod").ZodString, typeof PG_UPDATED_AT>, typeof PG_DEFAULT>;
3962
+ realm: PgAttr<import("zod").ZodString, typeof PG_DEFAULT>;
3963
+ username: import("zod").ZodOptional<import("zod").ZodString>;
3964
+ email: import("zod").ZodOptional<import("zod").ZodString>;
3965
+ phoneNumber: import("zod").ZodOptional<import("zod").ZodString>;
3966
+ roles: PgAttr<import("zod").ZodArray<import("zod").ZodString>, typeof PG_DEFAULT>;
3967
+ firstName: import("zod").ZodOptional<import("zod").ZodString>;
3968
+ lastName: import("zod").ZodOptional<import("zod").ZodString>;
3969
+ picture: import("zod").ZodOptional<import("zod").ZodString>;
3970
+ enabled: PgAttr<import("zod").ZodBoolean, typeof PG_DEFAULT>;
3971
+ emailVerified: PgAttr<import("zod").ZodBoolean, typeof PG_DEFAULT>;
3972
+ lastLoginAt: import("zod").ZodOptional<import("zod").ZodString>;
3973
+ organizationId: PgAttr<import("zod").ZodOptional<import("zod").ZodString> | import("zod").ZodString, typeof PG_ORGANIZATION>;
3974
+ }, import("zod/v4/core").$strip>, PgRelationMap<import("zod").ZodObject<{
3975
+ id: PgAttr<PgAttr<import("zod").ZodString, typeof PG_PRIMARY_KEY>, typeof PG_DEFAULT>;
3976
+ version: PgAttr<PgAttr<import("zod").ZodInt, typeof PG_VERSION>, typeof PG_DEFAULT>;
3977
+ createdAt: PgAttr<PgAttr<import("zod").ZodString, typeof PG_CREATED_AT>, typeof PG_DEFAULT>;
3978
+ updatedAt: PgAttr<PgAttr<import("zod").ZodString, typeof PG_UPDATED_AT>, typeof PG_DEFAULT>;
3979
+ realm: PgAttr<import("zod").ZodString, typeof PG_DEFAULT>;
3980
+ username: import("zod").ZodOptional<import("zod").ZodString>;
3981
+ email: import("zod").ZodOptional<import("zod").ZodString>;
3982
+ phoneNumber: import("zod").ZodOptional<import("zod").ZodString>;
3983
+ roles: PgAttr<import("zod").ZodArray<import("zod").ZodString>, typeof PG_DEFAULT>;
3984
+ firstName: import("zod").ZodOptional<import("zod").ZodString>;
3985
+ lastName: import("zod").ZodOptional<import("zod").ZodString>;
3986
+ picture: import("zod").ZodOptional<import("zod").ZodString>;
3987
+ enabled: PgAttr<import("zod").ZodBoolean, typeof PG_DEFAULT>;
3988
+ emailVerified: PgAttr<import("zod").ZodBoolean, typeof PG_DEFAULT>;
3989
+ lastLoginAt: import("zod").ZodOptional<import("zod").ZodString>;
3990
+ organizationId: PgAttr<import("zod").ZodOptional<import("zod").ZodString> | import("zod").ZodString, typeof PG_ORGANIZATION>;
3991
+ }, import("zod/v4/core").$strip>>>;
3804
3992
  expiresIn: number;
3805
3993
  sessionId: string;
3806
3994
  }>;
3807
3995
  deleteSession(refreshToken: string, userRealmName?: string): Promise<void>;
3808
3996
  link(provider: string, profile: OAuth2Profile, userRealmName?: string): Promise<{
3809
- email?: string | undefined;
3810
- username?: string | undefined;
3811
- phoneNumber?: string | undefined;
3812
- firstName?: string | undefined;
3813
- lastName?: string | undefined;
3814
- picture?: string | undefined;
3815
- lastLoginAt?: string | undefined;
3816
- enabled: boolean;
3817
3997
  id: string;
3818
3998
  version: number;
3819
3999
  createdAt: string;
3820
4000
  updatedAt: string;
3821
4001
  realm: string;
4002
+ username?: string | undefined;
4003
+ email?: string | undefined;
4004
+ phoneNumber?: string | undefined;
3822
4005
  roles: string[];
4006
+ firstName?: string | undefined;
4007
+ lastName?: string | undefined;
4008
+ picture?: string | undefined;
4009
+ enabled: boolean;
3823
4010
  emailVerified: boolean;
3824
- organizationId: string;
4011
+ lastLoginAt?: string | undefined;
4012
+ organizationId: string | undefined;
3825
4013
  } | {
3826
4014
  sub: string;
3827
4015
  email?: string;
@@ -3872,5 +4060,5 @@ declare class SessionService {
3872
4060
  */
3873
4061
  declare const AlephaApiUsers: import("alepha").Service<import("alepha").Module>;
3874
4062
  //#endregion
3875
- export { $realm, AdminIdentityController, AdminSessionController, AdminUserController, AlephaApiUsers, CompletePasswordResetRequest, CompleteRegistrationRequest, CreateUser, CredentialService, DEFAULT_USER_REALM_NAME, FieldRequirement, IdentityEntity, IdentityQuery, IdentityResource, IdentityService, LoginInput, PasswordResetIntentResponse, Realm, RealmAuthSettings, RealmConfig, RealmController, RealmFeatures, RealmOptions, RealmPrimitive, RealmProvider, RealmRepositories, RegisterInput, RegistrationIntentResponse, RegistrationService, ResetPasswordInput, ResetPasswordRequest, SessionAudits, SessionCrudService, SessionEntity, SessionQuery, SessionResource, SessionService, UpdateUser, UserAudits, UserBuckets, UserController, UserEntity, UserJobs, UserNotifications, UserQuery, UserResource, UserService, UsernameFieldRequirement, UsernameSlugger, completePasswordResetRequestSchema, completeRegistrationRequestSchema, createUserSchema, identities, identityQuerySchema, identityResourceSchema, loginSchema, passwordResetIntentResponseSchema, realmAuthSettingsAtom, realmConfigSchema, registerSchema, registrationIntentResponseSchema, resetPasswordRequestSchema, resetPasswordSchema, sessionQuerySchema, sessionResourceSchema, sessionUserSummarySchema, sessions, updateUserSchema, userQuerySchema, userResourceSchema, users };
4063
+ export { $realm, AdminIdentityController, AdminSessionController, AdminUserController, AlephaApiUsers, CompletePasswordResetRequest, CompleteRegistrationRequest, CreateUser, CredentialService, DEFAULT_USER_REALM_NAME, FieldRequirement, IdentityEntity, IdentityQuery, IdentityResource, IdentityService, LoginInput, MySession, MySessionController, PasswordResetIntentResponse, Realm, RealmAuthSettings, RealmConfig, RealmController, RealmFeatures, RealmOptions, RealmPrimitive, RealmProvider, RealmRepositories, RegisterInput, RegistrationIntentResponse, RegistrationService, ResetPasswordInput, ResetPasswordRequest, SessionAudits, SessionCrudService, SessionEntity, SessionQuery, SessionResource, SessionService, UpdateUser, UserAudits, UserBuckets, UserController, UserEntity, UserJobs, UserNotifications, UserQuery, UserResource, UserService, UsernameFieldRequirement, UsernameSlugger, completePasswordResetRequestSchema, completeRegistrationRequestSchema, createUserSchema, identities, identityQuerySchema, identityResourceSchema, loginSchema, mySessionSchema, passwordResetIntentResponseSchema, realmAuthSettingsAtom, realmConfigSchema, registerSchema, registrationIntentResponseSchema, resetPasswordRequestSchema, resetPasswordSchema, sessionQuerySchema, sessionResourceSchema, sessionUserSummarySchema, sessions, updateUserSchema, userQuerySchema, userResourceSchema, users };
3876
4064
  //# sourceMappingURL=index.d.ts.map