alepha 0.23.0 → 0.24.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (845) hide show
  1. package/assets/swagger-ui/swagger-ui-bundle.js +1 -1
  2. package/assets/swagger-ui/swagger-ui-standalone-preset.js +1 -1
  3. package/dist/api/audits/index.browser.js +49 -52
  4. package/dist/api/audits/index.browser.js.map +1 -1
  5. package/dist/api/audits/index.d.ts +629 -565
  6. package/dist/api/audits/index.d.ts.map +1 -1
  7. package/dist/api/audits/index.js +206 -98
  8. package/dist/api/audits/index.js.map +1 -1
  9. package/dist/api/files/index.browser.js +44 -44
  10. package/dist/api/files/index.browser.js.map +1 -1
  11. package/dist/api/files/index.d.ts +292 -293
  12. package/dist/api/files/index.d.ts.map +1 -1
  13. package/dist/api/files/index.js +61 -64
  14. package/dist/api/files/index.js.map +1 -1
  15. package/dist/api/jobs/index.browser.js +61 -59
  16. package/dist/api/jobs/index.browser.js.map +1 -1
  17. package/dist/api/jobs/index.d.ts +546 -347
  18. package/dist/api/jobs/index.d.ts.map +1 -1
  19. package/dist/api/jobs/index.js +165 -86
  20. package/dist/api/jobs/index.js.map +1 -1
  21. package/dist/api/keys/index.d.ts +247 -235
  22. package/dist/api/keys/index.d.ts.map +1 -1
  23. package/dist/api/keys/index.js +63 -66
  24. package/dist/api/keys/index.js.map +1 -1
  25. package/dist/api/notifications/index.browser.js +40 -38
  26. package/dist/api/notifications/index.browser.js.map +1 -1
  27. package/dist/api/notifications/index.d.ts +339 -209
  28. package/dist/api/notifications/index.d.ts.map +1 -1
  29. package/dist/api/notifications/index.js +108 -60
  30. package/dist/api/notifications/index.js.map +1 -1
  31. package/dist/api/oauth/index.d.ts +190 -78
  32. package/dist/api/oauth/index.d.ts.map +1 -1
  33. package/dist/api/oauth/index.js +290 -68
  34. package/dist/api/oauth/index.js.map +1 -1
  35. package/dist/api/organizations/index.browser.js +14 -14
  36. package/dist/api/organizations/index.browser.js.map +1 -1
  37. package/dist/api/organizations/index.d.ts +158 -134
  38. package/dist/api/organizations/index.d.ts.map +1 -1
  39. package/dist/api/organizations/index.js +18 -18
  40. package/dist/api/organizations/index.js.map +1 -1
  41. package/dist/api/parameters/index.browser.js +74 -53
  42. package/dist/api/parameters/index.browser.js.map +1 -1
  43. package/dist/api/parameters/index.d.ts +607 -513
  44. package/dist/api/parameters/index.d.ts.map +1 -1
  45. package/dist/api/parameters/index.js +205 -127
  46. package/dist/api/parameters/index.js.map +1 -1
  47. package/dist/api/payments/index.d.ts +652 -449
  48. package/dist/api/payments/index.d.ts.map +1 -1
  49. package/dist/api/payments/index.js +159 -93
  50. package/dist/api/payments/index.js.map +1 -1
  51. package/dist/api/subscriptions/index.d.ts +1032 -762
  52. package/dist/api/subscriptions/index.d.ts.map +1 -1
  53. package/dist/api/subscriptions/index.js +166 -185
  54. package/dist/api/subscriptions/index.js.map +1 -1
  55. package/dist/api/users/index.browser.js +48 -71
  56. package/dist/api/users/index.browser.js.map +1 -1
  57. package/dist/api/users/index.d.ts +1297 -1143
  58. package/dist/api/users/index.d.ts.map +1 -1
  59. package/dist/api/users/index.js +456 -392
  60. package/dist/api/users/index.js.map +1 -1
  61. package/dist/api/verifications/index.browser.js +17 -17
  62. package/dist/api/verifications/index.browser.js.map +1 -1
  63. package/dist/api/verifications/index.d.ts +167 -155
  64. package/dist/api/verifications/index.d.ts.map +1 -1
  65. package/dist/api/verifications/index.js +47 -95
  66. package/dist/api/verifications/index.js.map +1 -1
  67. package/dist/background/index.d.ts +0 -1
  68. package/dist/background/index.d.ts.map +1 -1
  69. package/dist/background/index.js.map +1 -1
  70. package/dist/background/index.workerd.js.map +1 -1
  71. package/dist/batch/index.d.ts +0 -1
  72. package/dist/batch/index.d.ts.map +1 -1
  73. package/dist/batch/index.js.map +1 -1
  74. package/dist/bin/index.js +1 -1
  75. package/dist/bin/index.js.map +1 -1
  76. package/dist/bucket/index.d.ts +27 -32
  77. package/dist/bucket/index.d.ts.map +1 -1
  78. package/dist/bucket/index.js +56 -26
  79. package/dist/bucket/index.js.map +1 -1
  80. package/dist/bucket/index.workerd.js +52 -24
  81. package/dist/bucket/index.workerd.js.map +1 -1
  82. package/dist/cache/core/index.d.ts +4 -6
  83. package/dist/cache/core/index.d.ts.map +1 -1
  84. package/dist/cache/core/index.js +4 -10
  85. package/dist/cache/core/index.js.map +1 -1
  86. package/dist/cache/core/index.workerd.js +4 -10
  87. package/dist/cache/core/index.workerd.js.map +1 -1
  88. package/dist/cache/database/index.d.ts +22 -23
  89. package/dist/cache/database/index.d.ts.map +1 -1
  90. package/dist/cache/database/index.js +11 -20
  91. package/dist/cache/database/index.js.map +1 -1
  92. package/dist/cache/redis/index.d.ts +3 -4
  93. package/dist/cache/redis/index.d.ts.map +1 -1
  94. package/dist/cache/redis/index.js +2 -2
  95. package/dist/cache/redis/index.js.map +1 -1
  96. package/dist/captcha/index.d.ts.map +1 -1
  97. package/dist/captcha/index.js +4 -4
  98. package/dist/captcha/index.js.map +1 -1
  99. package/dist/cli/config/index.d.ts +0 -1
  100. package/dist/cli/config/index.d.ts.map +1 -1
  101. package/dist/cli/core/index.d.ts +205 -442
  102. package/dist/cli/core/index.d.ts.map +1 -1
  103. package/dist/cli/core/index.js +259 -284
  104. package/dist/cli/core/index.js.map +1 -1
  105. package/dist/cli/devtools/index.d.ts +3 -9
  106. package/dist/cli/devtools/index.d.ts.map +1 -1
  107. package/dist/cli/devtools/index.js +3 -3
  108. package/dist/cli/devtools/index.js.map +1 -1
  109. package/dist/cli/i18n/index.d.ts +8 -34
  110. package/dist/cli/i18n/index.d.ts.map +1 -1
  111. package/dist/cli/i18n/index.js +6 -6
  112. package/dist/cli/i18n/index.js.map +1 -1
  113. package/dist/cli/platform/index.d.ts +89 -82
  114. package/dist/cli/platform/index.d.ts.map +1 -1
  115. package/dist/cli/platform/index.js +27 -33
  116. package/dist/cli/platform/index.js.map +1 -1
  117. package/dist/cli/platform-lib/index.d.ts +351 -404
  118. package/dist/cli/platform-lib/index.d.ts.map +1 -1
  119. package/dist/cli/platform-lib/index.js +218 -239
  120. package/dist/cli/platform-lib/index.js.map +1 -1
  121. package/dist/cli/vendor/index.d.ts +17 -41
  122. package/dist/cli/vendor/index.d.ts.map +1 -1
  123. package/dist/cli/vendor/index.js +10 -13
  124. package/dist/cli/vendor/index.js.map +1 -1
  125. package/dist/command/index.d.ts +83 -195
  126. package/dist/command/index.d.ts.map +1 -1
  127. package/dist/command/index.js +160 -563
  128. package/dist/command/index.js.map +1 -1
  129. package/dist/core/index.browser.js +845 -859
  130. package/dist/core/index.browser.js.map +1 -1
  131. package/dist/core/index.d.ts +787 -527
  132. package/dist/core/index.d.ts.map +1 -1
  133. package/dist/core/index.js +845 -859
  134. package/dist/core/index.js.map +1 -1
  135. package/dist/core/index.native.js +845 -859
  136. package/dist/core/index.native.js.map +1 -1
  137. package/dist/core/index.workerd.js +845 -859
  138. package/dist/core/index.workerd.js.map +1 -1
  139. package/dist/crypto/index.browser.js +1 -1
  140. package/dist/crypto/index.browser.js.map +1 -1
  141. package/dist/crypto/index.d.ts +3 -4
  142. package/dist/crypto/index.d.ts.map +1 -1
  143. package/dist/crypto/index.js +6 -3
  144. package/dist/crypto/index.js.map +1 -1
  145. package/dist/datetime/index.d.ts +12 -2
  146. package/dist/datetime/index.d.ts.map +1 -1
  147. package/dist/datetime/index.js +6 -1
  148. package/dist/datetime/index.js.map +1 -1
  149. package/dist/email/brevo/index.d.ts +0 -1
  150. package/dist/email/brevo/index.d.ts.map +1 -1
  151. package/dist/email/brevo/index.js +4 -4
  152. package/dist/email/brevo/index.js.map +1 -1
  153. package/dist/email/cloudflare/index.d.ts +0 -1
  154. package/dist/email/cloudflare/index.d.ts.map +1 -1
  155. package/dist/email/cloudflare/index.js +2 -2
  156. package/dist/email/cloudflare/index.js.map +1 -1
  157. package/dist/email/core/index.d.ts +15 -7
  158. package/dist/email/core/index.d.ts.map +1 -1
  159. package/dist/email/core/index.js +14 -5
  160. package/dist/email/core/index.js.map +1 -1
  161. package/dist/email/core/index.workerd.js +5 -1
  162. package/dist/email/core/index.workerd.js.map +1 -1
  163. package/dist/email/smtp/index.d.ts +8 -9
  164. package/dist/email/smtp/index.d.ts.map +1 -1
  165. package/dist/email/smtp/index.js +702 -479
  166. package/dist/email/smtp/index.js.map +1 -1
  167. package/dist/fake/index.d.ts +1580 -1238
  168. package/dist/fake/index.d.ts.map +1 -1
  169. package/dist/fake/index.js +11728 -32131
  170. package/dist/fake/index.js.map +1 -1
  171. package/dist/lock/core/index.d.ts +13 -9
  172. package/dist/lock/core/index.d.ts.map +1 -1
  173. package/dist/lock/core/index.js +5 -5
  174. package/dist/lock/core/index.js.map +1 -1
  175. package/dist/lock/redis/index.d.ts +0 -1
  176. package/dist/lock/redis/index.d.ts.map +1 -1
  177. package/dist/lock/redis/index.js.map +1 -1
  178. package/dist/logger/index.d.ts +81 -69
  179. package/dist/logger/index.d.ts.map +1 -1
  180. package/dist/logger/index.js +123 -56
  181. package/dist/logger/index.js.map +1 -1
  182. package/dist/mcp/index.d.ts +27 -90
  183. package/dist/mcp/index.d.ts.map +1 -1
  184. package/dist/mcp/index.js +42 -70
  185. package/dist/mcp/index.js.map +1 -1
  186. package/dist/orm/core/index.browser.js +54 -40
  187. package/dist/orm/core/index.browser.js.map +1 -1
  188. package/dist/orm/core/index.bun.js +140 -106
  189. package/dist/orm/core/index.bun.js.map +1 -1
  190. package/dist/orm/core/index.d.ts +145 -150
  191. package/dist/orm/core/index.d.ts.map +1 -1
  192. package/dist/orm/core/index.js +144 -109
  193. package/dist/orm/core/index.js.map +1 -1
  194. package/dist/orm/postgres/index.bun.js +64 -54
  195. package/dist/orm/postgres/index.bun.js.map +1 -1
  196. package/dist/orm/postgres/index.d.ts +36 -76
  197. package/dist/orm/postgres/index.d.ts.map +1 -1
  198. package/dist/orm/postgres/index.js +67 -57
  199. package/dist/orm/postgres/index.js.map +1 -1
  200. package/dist/queue/core/index.d.ts +62 -75
  201. package/dist/queue/core/index.d.ts.map +1 -1
  202. package/dist/queue/core/index.js +48 -71
  203. package/dist/queue/core/index.js.map +1 -1
  204. package/dist/queue/core/index.workerd.js +48 -71
  205. package/dist/queue/core/index.workerd.js.map +1 -1
  206. package/dist/queue/redis/index.d.ts +3 -4
  207. package/dist/queue/redis/index.d.ts.map +1 -1
  208. package/dist/queue/redis/index.js +2 -2
  209. package/dist/queue/redis/index.js.map +1 -1
  210. package/dist/react/auth/index.browser.js.map +1 -1
  211. package/dist/react/auth/index.d.ts +7 -4
  212. package/dist/react/auth/index.d.ts.map +1 -1
  213. package/dist/react/auth/index.js.map +1 -1
  214. package/dist/react/core/index.d.ts +87 -5
  215. package/dist/react/core/index.d.ts.map +1 -1
  216. package/dist/react/core/index.js +170 -23
  217. package/dist/react/core/index.js.map +1 -1
  218. package/dist/react/form/index.d.ts +4 -5
  219. package/dist/react/form/index.d.ts.map +1 -1
  220. package/dist/react/form/index.js +91 -56
  221. package/dist/react/form/index.js.map +1 -1
  222. package/dist/react/head/index.browser.js.map +1 -1
  223. package/dist/react/head/index.d.ts +0 -1
  224. package/dist/react/head/index.d.ts.map +1 -1
  225. package/dist/react/head/index.js.map +1 -1
  226. package/dist/react/i18n/index.d.ts +4 -5
  227. package/dist/react/i18n/index.d.ts.map +1 -1
  228. package/dist/react/i18n/index.js +2 -2
  229. package/dist/react/i18n/index.js.map +1 -1
  230. package/dist/react/intro/index.d.ts +1 -4
  231. package/dist/react/intro/index.d.ts.map +1 -1
  232. package/dist/react/intro/index.js.map +1 -1
  233. package/dist/react/router/index.browser.js +60 -24
  234. package/dist/react/router/index.browser.js.map +1 -1
  235. package/dist/react/router/index.d.ts +378 -377
  236. package/dist/react/router/index.d.ts.map +1 -1
  237. package/dist/react/router/index.js +77 -41
  238. package/dist/react/router/index.js.map +1 -1
  239. package/dist/react/sitemap/index.d.ts +0 -1
  240. package/dist/react/sitemap/index.d.ts.map +1 -1
  241. package/dist/react/sitemap/index.js.map +1 -1
  242. package/dist/react/testing/index.d.ts +4 -5
  243. package/dist/react/testing/index.d.ts.map +1 -1
  244. package/dist/react/testing/index.js +41 -15
  245. package/dist/react/testing/index.js.map +1 -1
  246. package/dist/react/testing/{chunk-BpyX8vjI.js → rolldown-runtime-Bl3dcgcQ.js} +1 -1
  247. package/dist/react/ui/index.d.ts +35 -34
  248. package/dist/react/ui/index.d.ts.map +1 -1
  249. package/dist/react/ui/index.js +12 -17
  250. package/dist/react/ui/index.js.map +1 -1
  251. package/dist/redis/index.bun.js +5 -5
  252. package/dist/redis/index.bun.js.map +1 -1
  253. package/dist/redis/index.d.ts +6 -7
  254. package/dist/redis/index.d.ts.map +1 -1
  255. package/dist/redis/index.js +6 -6
  256. package/dist/redis/index.js.map +1 -1
  257. package/dist/retry/index.d.ts +0 -1
  258. package/dist/retry/index.d.ts.map +1 -1
  259. package/dist/retry/index.js.map +1 -1
  260. package/dist/router/index.d.ts.map +1 -1
  261. package/dist/router/index.js.map +1 -1
  262. package/dist/scheduler/index.d.ts +4 -12
  263. package/dist/scheduler/index.d.ts.map +1 -1
  264. package/dist/scheduler/index.js +9 -4
  265. package/dist/scheduler/index.js.map +1 -1
  266. package/dist/scheduler/index.workerd.js +9 -4
  267. package/dist/scheduler/index.workerd.js.map +1 -1
  268. package/dist/security/index.browser.js +30 -28
  269. package/dist/security/index.browser.js.map +1 -1
  270. package/dist/security/index.d.ts +113 -44
  271. package/dist/security/index.d.ts.map +1 -1
  272. package/dist/security/index.js +452 -37
  273. package/dist/security/index.js.map +1 -1
  274. package/dist/server/auth/index.browser.js +19 -19
  275. package/dist/server/auth/index.browser.js.map +1 -1
  276. package/dist/server/auth/index.d.ts +198 -274
  277. package/dist/server/auth/index.d.ts.map +1 -1
  278. package/dist/server/auth/index.js +83 -621
  279. package/dist/server/auth/index.js.map +1 -1
  280. package/dist/server/cookies/index.browser.js +103 -5
  281. package/dist/server/cookies/index.browser.js.map +1 -1
  282. package/dist/server/cookies/index.d.ts +72 -5
  283. package/dist/server/cookies/index.d.ts.map +1 -1
  284. package/dist/server/cookies/index.js +103 -9
  285. package/dist/server/cookies/index.js.map +1 -1
  286. package/dist/server/core/index.browser.js +22 -27
  287. package/dist/server/core/index.browser.js.map +1 -1
  288. package/dist/server/core/index.d.ts +116 -85
  289. package/dist/server/core/index.d.ts.map +1 -1
  290. package/dist/server/core/index.js +105 -118
  291. package/dist/server/core/index.js.map +1 -1
  292. package/dist/server/cors/index.d.ts +9 -10
  293. package/dist/server/cors/index.d.ts.map +1 -1
  294. package/dist/server/cors/index.js +14 -26
  295. package/dist/server/cors/index.js.map +1 -1
  296. package/dist/server/etag/index.d.ts +2 -3
  297. package/dist/server/etag/index.d.ts.map +1 -1
  298. package/dist/server/etag/index.js.map +1 -1
  299. package/dist/server/health/index.d.ts +18 -19
  300. package/dist/server/health/index.d.ts.map +1 -1
  301. package/dist/server/health/index.js +6 -6
  302. package/dist/server/health/index.js.map +1 -1
  303. package/dist/server/links/index.browser.js +15 -18
  304. package/dist/server/links/index.browser.js.map +1 -1
  305. package/dist/server/links/index.d.ts +66 -67
  306. package/dist/server/links/index.d.ts.map +1 -1
  307. package/dist/server/links/index.js +29 -32
  308. package/dist/server/links/index.js.map +1 -1
  309. package/dist/server/metrics/index.d.ts +0 -1
  310. package/dist/server/metrics/index.d.ts.map +1 -1
  311. package/dist/server/metrics/index.js +10 -3
  312. package/dist/server/metrics/index.js.map +1 -1
  313. package/dist/server/proxy/index.d.ts +0 -1
  314. package/dist/server/proxy/index.d.ts.map +1 -1
  315. package/dist/server/proxy/index.js.map +1 -1
  316. package/dist/server/rate-limit/index.d.ts +8 -9
  317. package/dist/server/rate-limit/index.d.ts.map +1 -1
  318. package/dist/server/rate-limit/index.js +6 -12
  319. package/dist/server/rate-limit/index.js.map +1 -1
  320. package/dist/server/static/index.d.ts +0 -1
  321. package/dist/server/static/index.d.ts.map +1 -1
  322. package/dist/server/static/index.js.map +1 -1
  323. package/dist/server/swagger/index.d.ts +4 -4
  324. package/dist/server/swagger/index.d.ts.map +1 -1
  325. package/dist/server/swagger/index.js +37 -25
  326. package/dist/server/swagger/index.js.map +1 -1
  327. package/dist/sms/index.d.ts +0 -1
  328. package/dist/sms/index.d.ts.map +1 -1
  329. package/dist/sms/index.js.map +1 -1
  330. package/dist/system/index.browser.js.map +1 -1
  331. package/dist/system/index.d.ts +0 -1
  332. package/dist/system/index.d.ts.map +1 -1
  333. package/dist/system/index.js +2 -1
  334. package/dist/system/index.js.map +1 -1
  335. package/dist/system/index.workerd.js.map +1 -1
  336. package/dist/topic/core/index.d.ts +19 -20
  337. package/dist/topic/core/index.d.ts.map +1 -1
  338. package/dist/topic/core/index.js +8 -8
  339. package/dist/topic/core/index.js.map +1 -1
  340. package/dist/topic/redis/index.d.ts +3 -4
  341. package/dist/topic/redis/index.d.ts.map +1 -1
  342. package/dist/topic/redis/index.js +2 -2
  343. package/dist/topic/redis/index.js.map +1 -1
  344. package/package.json +22 -35
  345. package/src/api/audits/__tests__/AuditJobs.spec.ts +83 -0
  346. package/src/api/audits/__tests__/AuditService.spec.ts +139 -1
  347. package/src/api/audits/controllers/AdminAuditController.ts +41 -41
  348. package/src/api/audits/entities/audits.ts +22 -22
  349. package/src/api/audits/index.ts +6 -1
  350. package/src/api/audits/jobs/AuditJobs.ts +29 -0
  351. package/src/api/audits/parameters/AuditParameters.ts +51 -0
  352. package/src/api/audits/primitives/$audit.ts +24 -0
  353. package/src/api/audits/schemas/auditQuerySchema.ts +13 -13
  354. package/src/api/audits/schemas/createAuditSchema.ts +18 -18
  355. package/src/api/audits/services/AuditService.ts +79 -7
  356. package/src/api/files/__tests__/FileController.spec.ts +5 -5
  357. package/src/api/files/__tests__/FileJobs.spec.ts +6 -0
  358. package/src/api/files/controllers/FileController.ts +25 -25
  359. package/src/api/files/entities/files.ts +15 -15
  360. package/src/api/files/schemas/fileCreatorSummarySchema.ts +7 -7
  361. package/src/api/files/schemas/fileQuerySchema.ts +9 -9
  362. package/src/api/files/schemas/fileResourceSchema.ts +7 -9
  363. package/src/api/files/schemas/storageStatsSchema.ts +13 -13
  364. package/src/api/jobs/__tests__/$job-hardening.spec.ts +289 -0
  365. package/src/api/jobs/__tests__/$job.spec.ts +18 -18
  366. package/src/api/jobs/controllers/AdminJobController.ts +8 -8
  367. package/src/api/jobs/entities/jobExecutionEntity.ts +29 -19
  368. package/src/api/jobs/providers/JobProvider.ts +128 -12
  369. package/src/api/jobs/providers/JobQueueProvider.ts +2 -2
  370. package/src/api/jobs/schemas/jobConfigAtom.ts +22 -22
  371. package/src/api/jobs/schemas/jobExecutionQuerySchema.ts +6 -6
  372. package/src/api/jobs/schemas/jobExecutionResourceSchema.ts +11 -15
  373. package/src/api/jobs/schemas/jobRegistrationSchema.ts +20 -19
  374. package/src/api/jobs/schemas/triggerJobSchema.ts +3 -3
  375. package/src/api/jobs/services/JobService.ts +6 -6
  376. package/src/api/keys/__tests__/ApiKeyService.spec.ts +2 -2
  377. package/src/api/keys/controllers/AdminApiKeyController.ts +10 -10
  378. package/src/api/keys/entities/apiKeyEntity.ts +15 -15
  379. package/src/api/keys/schemas/adminApiKeyQuerySchema.ts +4 -4
  380. package/src/api/keys/schemas/adminApiKeyResourceSchema.ts +15 -15
  381. package/src/api/keys/schemas/createApiKeyBodySchema.ts +5 -5
  382. package/src/api/keys/schemas/createApiKeyResponseSchema.ts +9 -9
  383. package/src/api/keys/schemas/listApiKeyResponseSchema.ts +13 -13
  384. package/src/api/keys/schemas/revokeApiKeyParamsSchema.ts +3 -3
  385. package/src/api/keys/schemas/revokeApiKeyResponseSchema.ts +3 -3
  386. package/src/api/notifications/__tests__/AlephaApiNotifications.spec.ts +2 -2
  387. package/src/api/notifications/controllers/AdminNotificationController.ts +38 -14
  388. package/src/api/notifications/jobs/NotificationJobs.ts +7 -6
  389. package/src/api/notifications/primitives/$notification.ts +43 -4
  390. package/src/api/notifications/schemas/notificationContactPreferencesSchema.ts +4 -4
  391. package/src/api/notifications/schemas/notificationContactSchema.ts +7 -7
  392. package/src/api/notifications/schemas/notificationDetailResourceSchema.ts +9 -11
  393. package/src/api/notifications/schemas/notificationPayloadSchema.ts +11 -9
  394. package/src/api/notifications/schemas/notificationQuerySchema.ts +6 -6
  395. package/src/api/notifications/schemas/notificationResourceSchema.ts +14 -14
  396. package/src/api/notifications/services/NotificationSenderService.ts +38 -2
  397. package/src/api/oauth/__tests__/OAuthClientService.spec.ts +42 -0
  398. package/src/api/oauth/__tests__/OAuthController.spec.ts +128 -0
  399. package/src/api/oauth/controllers/OAuthController.ts +132 -12
  400. package/src/api/oauth/entities/oauthClientEntity.ts +29 -12
  401. package/src/api/oauth/helpers/oauthMetadata.ts +1 -0
  402. package/src/api/oauth/helpers/oidcMetadata.ts +19 -0
  403. package/src/api/oauth/index.ts +1 -0
  404. package/src/api/oauth/schemas/authorizeDecisionBodySchema.ts +12 -11
  405. package/src/api/oauth/schemas/authorizeQuerySchema.ts +12 -10
  406. package/src/api/oauth/schemas/registerClientBodySchema.ts +10 -11
  407. package/src/api/oauth/schemas/tokenRequestBodySchema.ts +9 -8
  408. package/src/api/oauth/services/OAuthClientService.ts +228 -15
  409. package/src/api/organizations/controllers/AdminOrganizationController.ts +8 -8
  410. package/src/api/organizations/entities/organizations.ts +6 -6
  411. package/src/api/organizations/schemas/createOrganizationSchema.ts +5 -5
  412. package/src/api/organizations/schemas/organizationQuerySchema.ts +4 -4
  413. package/src/api/organizations/schemas/updateOrganizationSchema.ts +1 -2
  414. package/src/api/parameters/__tests__/$parameter.spec.ts +229 -50
  415. package/src/api/parameters/controllers/AdminParameterController.ts +9 -12
  416. package/src/api/parameters/entities/parameters.ts +29 -16
  417. package/src/api/parameters/primitives/$parameter.ts +3 -3
  418. package/src/api/parameters/schemas/activateParameterBodySchema.ts +4 -4
  419. package/src/api/parameters/schemas/createParameterVersionBodySchema.ts +15 -15
  420. package/src/api/parameters/schemas/parameterCreatorSummarySchema.ts +7 -7
  421. package/src/api/parameters/schemas/parameterCurrentResponseSchema.ts +7 -7
  422. package/src/api/parameters/schemas/parameterHistoryResponseSchema.ts +3 -3
  423. package/src/api/parameters/schemas/parameterNameParamSchema.ts +2 -3
  424. package/src/api/parameters/schemas/parameterNamesResponseSchema.ts +3 -3
  425. package/src/api/parameters/schemas/parameterResponseSchema.ts +3 -3
  426. package/src/api/parameters/schemas/parameterStatusSchema.ts +2 -2
  427. package/src/api/parameters/schemas/parameterTreeNodeSchema.ts +6 -6
  428. package/src/api/parameters/schemas/parameterVersionParamSchema.ts +5 -6
  429. package/src/api/parameters/schemas/parameterVersionResponseSchema.ts +3 -3
  430. package/src/api/parameters/schemas/rollbackParameterBodySchema.ts +6 -9
  431. package/src/api/parameters/services/ParameterProvider.ts +152 -65
  432. package/src/api/payments/controllers/AdminPaymentController.ts +7 -7
  433. package/src/api/payments/controllers/MockCheckoutController.ts +79 -28
  434. package/src/api/payments/controllers/PaymentController.ts +4 -4
  435. package/src/api/payments/entities/paymentIntents.ts +11 -11
  436. package/src/api/payments/entities/paymentMethods.ts +11 -11
  437. package/src/api/payments/entities/refunds.ts +9 -9
  438. package/src/api/payments/providers/PaymentProvider.ts +18 -0
  439. package/src/api/payments/schemas/intentSchemas.ts +25 -25
  440. package/src/api/payments/schemas/paymentMethodSchemas.ts +3 -3
  441. package/src/api/payments/services/PaymentService.ts +60 -3
  442. package/src/api/subscriptions/__tests__/SubscriptionService.spec.ts +14 -0
  443. package/src/api/subscriptions/controllers/AdminSubscriptionController.ts +11 -11
  444. package/src/api/subscriptions/controllers/SubscriptionController.ts +5 -4
  445. package/src/api/subscriptions/entities/subscriptionEvents.ts +15 -15
  446. package/src/api/subscriptions/entities/subscriptions.ts +22 -22
  447. package/src/api/subscriptions/notifications/SubscriptionNotifications.ts +22 -22
  448. package/src/api/subscriptions/schemas/cancelSubscriptionSchema.ts +4 -4
  449. package/src/api/subscriptions/schemas/changePlanSchema.ts +5 -5
  450. package/src/api/subscriptions/schemas/createSubscriptionSchema.ts +14 -7
  451. package/src/api/subscriptions/schemas/entitlementsSchema.ts +10 -10
  452. package/src/api/subscriptions/schemas/mrrSchema.ts +9 -9
  453. package/src/api/subscriptions/schemas/planDefinitionSchema.ts +21 -21
  454. package/src/api/subscriptions/schemas/planResourceSchema.ts +19 -19
  455. package/src/api/subscriptions/schemas/subscriptionQuerySchema.ts +8 -8
  456. package/src/api/subscriptions/schemas/subscriptionSettingsSchema.ts +7 -7
  457. package/src/api/subscriptions/schemas/subscriptionStatsSchema.ts +17 -17
  458. package/src/api/subscriptions/services/SubscriptionConfig.ts +2 -2
  459. package/src/api/users/__tests__/ApiKeys-integration.spec.ts +11 -11
  460. package/src/api/users/atoms/realmAuthSettingsAtom.ts +111 -119
  461. package/src/api/users/controllers/AdminIdentityController.ts +29 -19
  462. package/src/api/users/controllers/AdminSessionController.ts +37 -27
  463. package/src/api/users/controllers/AdminUserController.ts +75 -53
  464. package/src/api/users/controllers/MySessionController.ts +125 -0
  465. package/src/api/users/controllers/RealmController.ts +9 -10
  466. package/src/api/users/controllers/UserController.ts +55 -55
  467. package/src/api/users/entities/identities.ts +8 -8
  468. package/src/api/users/entities/sessions.ts +17 -17
  469. package/src/api/users/entities/users.ts +17 -17
  470. package/src/api/users/index.ts +3 -0
  471. package/src/api/users/notifications/UserNotifications.ts +76 -24
  472. package/src/api/users/primitives/$realm.ts +12 -26
  473. package/src/api/users/providers/RealmProvider.ts +0 -15
  474. package/src/api/users/schemas/completePasswordResetRequestSchema.ts +8 -12
  475. package/src/api/users/schemas/completeRegistrationRequestSchema.ts +17 -20
  476. package/src/api/users/schemas/createUserSchema.ts +2 -2
  477. package/src/api/users/schemas/identityQuerySchema.ts +4 -4
  478. package/src/api/users/schemas/identityResourceSchema.ts +3 -2
  479. package/src/api/users/schemas/loginSchema.ts +4 -4
  480. package/src/api/users/schemas/passwordResetIntentResponseSchema.ts +6 -8
  481. package/src/api/users/schemas/realmConfigSchema.ts +10 -24
  482. package/src/api/users/schemas/registerQuerySchema.ts +6 -6
  483. package/src/api/users/schemas/registerRequestSchema.ts +21 -43
  484. package/src/api/users/schemas/registerResponseSchema.ts +2 -2
  485. package/src/api/users/schemas/registerSchema.ts +13 -31
  486. package/src/api/users/schemas/registrationIntentResponseSchema.ts +19 -23
  487. package/src/api/users/schemas/resetPasswordSchema.ts +10 -17
  488. package/src/api/users/schemas/sessionQuerySchema.ts +3 -3
  489. package/src/api/users/schemas/sessionResourceSchema.ts +25 -25
  490. package/src/api/users/schemas/updateUserSchema.ts +3 -4
  491. package/src/api/users/schemas/userQuerySchema.ts +7 -7
  492. package/src/api/users/services/RegistrationService.ts +25 -11
  493. package/src/api/users/services/UserService.ts +12 -6
  494. package/src/api/verifications/__tests__/CodeVerification.spec.ts +63 -101
  495. package/src/api/verifications/__tests__/LinkVerification.spec.ts +23 -92
  496. package/src/api/verifications/controllers/VerificationController.ts +13 -27
  497. package/src/api/verifications/entities/verifications.ts +13 -14
  498. package/src/api/verifications/schemas/requestVerificationCodeResponseSchema.ts +17 -14
  499. package/src/api/verifications/schemas/validateVerificationCodeResponseSchema.ts +9 -10
  500. package/src/api/verifications/schemas/verificationSettingsSchema.ts +65 -66
  501. package/src/api/verifications/schemas/verificationTypeEnumSchema.ts +2 -2
  502. package/src/api/verifications/services/VerificationService.ts +12 -0
  503. package/src/background/__tests__/BackgroundTaskProvider.spec.ts +36 -0
  504. package/src/batch/__tests__/$batch.spec.ts +22 -22
  505. package/src/batch/__tests__/startup-buffering.spec.ts +9 -9
  506. package/src/bin/index.ts +1 -1
  507. package/src/bucket/__tests__/TenantScopedBucket.spec.ts +60 -0
  508. package/src/bucket/providers/LocalFileStorageProvider.ts +14 -6
  509. package/src/bucket/providers/MemoryFileStorageProvider.ts +18 -7
  510. package/src/bucket/providers/R2FileStorageProvider.ts +14 -6
  511. package/src/bucket/providers/S3FileStorageProvider.ts +31 -15
  512. package/src/cache/core/primitives/$cache.ts +7 -10
  513. package/src/cache/database/entities/cacheEntries.ts +16 -27
  514. package/src/cache/database/providers/DatabaseCacheProvider.ts +15 -13
  515. package/src/cache/redis/providers/RedisCacheProvider.ts +6 -6
  516. package/src/captcha/providers/TurnstileCaptchaProvider.ts +4 -4
  517. package/src/cli/core/__tests__/BuildCloudflareTask.spec.ts +178 -0
  518. package/src/cli/core/__tests__/BuildDockerTask.spec.ts +0 -2
  519. package/src/cli/core/__tests__/DbCommand.spec.ts +108 -0
  520. package/src/cli/core/atoms/appEntryOptions.ts +5 -5
  521. package/src/cli/core/atoms/buildOptions.ts +76 -76
  522. package/src/cli/core/atoms/changelogOptions.ts +3 -3
  523. package/src/cli/core/atoms/devOptions.ts +3 -3
  524. package/src/cli/core/commands/build.ts +36 -39
  525. package/src/cli/core/commands/db.ts +171 -83
  526. package/src/cli/core/commands/dev.ts +8 -8
  527. package/src/cli/core/commands/gen/changelog.ts +12 -14
  528. package/src/cli/core/commands/gen/env.ts +6 -6
  529. package/src/cli/core/commands/gen/openapi.ts +6 -6
  530. package/src/cli/core/commands/init.ts +28 -33
  531. package/src/cli/core/commands/pack.ts +10 -10
  532. package/src/cli/core/commands/root.ts +7 -8
  533. package/src/cli/core/commands/test.ts +17 -20
  534. package/src/cli/core/tasks/BuildCloudflareTask.ts +103 -230
  535. package/src/cli/core/templates/apiHelloResponseSchemaTs.ts +4 -4
  536. package/src/cli/devtools/atoms/devtoolsOptions.ts +6 -6
  537. package/src/cli/i18n/atoms/i18nOptions.ts +8 -8
  538. package/src/cli/platform/commands/SecretsCommand.ts +24 -25
  539. package/src/cli/platform/commands/platform.ts +40 -46
  540. package/src/cli/platform/index.ts +1 -1
  541. package/src/cli/platform-lib/__tests__/CloudflareAdapter.spec.ts +0 -4
  542. package/src/cli/platform-lib/__tests__/PlatformInspector.spec.ts +10 -3
  543. package/src/cli/platform-lib/__tests__/VercelAdapter.spec.ts +0 -2
  544. package/src/cli/platform-lib/adapters/CloudflareAdapter.ts +13 -14
  545. package/src/cli/platform-lib/adapters/VercelAdapter.ts +6 -11
  546. package/src/cli/platform-lib/atoms/platformOptions.ts +46 -25
  547. package/src/cli/platform-lib/schemas/cloudflare.ts +87 -87
  548. package/src/cli/platform-lib/schemas/platform.ts +51 -51
  549. package/src/cli/platform-lib/schemas/vercel.ts +28 -28
  550. package/src/cli/platform-lib/services/CloudflareApi.ts +5 -5
  551. package/src/cli/platform-lib/services/VercelApi.ts +4 -4
  552. package/src/cli/platform-lib/services/VercelCli.ts +6 -15
  553. package/src/cli/platform-lib/services/WranglerApi.ts +6 -15
  554. package/src/cli/vendor/atoms/vendorOptions.ts +9 -9
  555. package/src/cli/vendor/commands/VendorCommand.ts +11 -12
  556. package/src/command/__tests__/$command.spec.ts +82 -83
  557. package/src/command/__tests__/Asker.spec.ts +6 -13
  558. package/src/command/__tests__/CliProvider.spec.ts +136 -149
  559. package/src/command/__tests__/Runner.spec.ts +86 -110
  560. package/src/command/helpers/Asker.ts +23 -58
  561. package/src/command/helpers/Runner.ts +34 -110
  562. package/src/command/index.ts +4 -9
  563. package/src/command/primitives/$command.ts +10 -10
  564. package/src/command/providers/CliProvider.ts +183 -161
  565. package/src/core/Alepha.ts +62 -13
  566. package/src/core/__tests__/$atom.spec.ts +52 -3
  567. package/src/core/__tests__/$computed.spec.ts +129 -0
  568. package/src/core/__tests__/$env.spec.ts +13 -13
  569. package/src/core/__tests__/$inject.spec.ts +4 -4
  570. package/src/core/__tests__/$module.spec.ts +1 -1
  571. package/src/core/__tests__/Alepha-graph.spec.ts +1 -1
  572. package/src/core/__tests__/Alepha-parseEnv.spec.ts +32 -32
  573. package/src/core/__tests__/Alepha-start.spec.ts +3 -3
  574. package/src/core/__tests__/CodecManager.spec.ts +113 -94
  575. package/src/core/__tests__/KeylessJsonSchemaCodec.spec.ts +138 -138
  576. package/src/core/__tests__/SchemaValidator.spec.ts +43 -44
  577. package/src/core/__tests__/StateManager.persist.browser.spec.ts +87 -0
  578. package/src/core/__tests__/StateManager.spec.ts +423 -0
  579. package/src/core/__tests__/TypeBox-usecases.spec.ts +8 -8
  580. package/src/core/__tests__/TypeProvider.spec.ts +314 -309
  581. package/src/core/__tests__/dump.spec.ts +6 -6
  582. package/src/core/__tests__/pagination.spec.ts +4 -4
  583. package/src/core/__tests__/scoped-after-start.spec.ts +43 -0
  584. package/src/core/errors/TypeBoxError.ts +10 -4
  585. package/src/core/helpers/FileLike.ts +5 -5
  586. package/src/core/helpers/coerceStrings.ts +70 -0
  587. package/src/core/helpers/jsonSchemaToZod.ts +112 -0
  588. package/src/core/index.shared.ts +4 -1
  589. package/src/core/primitives/$atom.ts +95 -27
  590. package/src/core/primitives/$computed.ts +148 -0
  591. package/src/core/primitives/$env.ts +5 -5
  592. package/src/core/primitives/$state.ts +1 -1
  593. package/src/core/providers/AlsProvider.ts +26 -0
  594. package/src/core/providers/CodecManager.ts +1 -2
  595. package/src/core/providers/JsonSchemaCodec.ts +1 -2
  596. package/src/core/providers/KeylessJsonSchemaCodec.ts +82 -57
  597. package/src/core/providers/SchemaValidator.ts +48 -158
  598. package/src/core/providers/StateManager.ts +383 -9
  599. package/src/core/providers/TypeProvider.ts +80 -734
  600. package/src/core/providers/ZodProvider.ts +380 -0
  601. package/src/core/providers/zodAugment.ts +69 -0
  602. package/src/core/schemas/pageQuerySchema.ts +19 -21
  603. package/src/core/schemas/pageSchema.ts +47 -57
  604. package/src/crypto/__tests__/SecretProvider.spec.ts +31 -0
  605. package/src/crypto/providers/SecretProvider.ts +16 -10
  606. package/src/datetime/primitives/$throttle.ts +6 -1
  607. package/src/email/brevo/providers/BrevoEmailProvider.ts +4 -4
  608. package/src/email/cloudflare/providers/CloudflareEmailProvider.ts +6 -6
  609. package/src/email/core/index.ts +7 -2
  610. package/src/email/core/primitives/$email.ts +5 -1
  611. package/src/email/core/providers/LocalEmailProvider.ts +5 -5
  612. package/src/email/smtp/providers/NodemailerEmailProvider.ts +41 -52
  613. package/src/fake/__tests__/FakeProvider.spec.ts +110 -110
  614. package/src/fake/__tests__/keyName.example.ts +21 -21
  615. package/src/fake/__tests__/keyName.spec.ts +41 -41
  616. package/src/fake/__tests__/module.example.ts +8 -8
  617. package/src/fake/providers/FakeProvider.ts +122 -121
  618. package/src/lock/core/__tests__/lock-mutual-exclusion.spec.ts +44 -0
  619. package/src/lock/core/index.ts +1 -0
  620. package/src/lock/core/primitives/$lock.ts +13 -6
  621. package/src/logger/__tests__/CliFormatterProvider.spec.ts +76 -0
  622. package/src/logger/__tests__/Logger.spec.ts +49 -0
  623. package/src/logger/index.ts +25 -18
  624. package/src/logger/providers/CliFormatterProvider.ts +75 -0
  625. package/src/logger/schemas/logEntrySchema.ts +10 -10
  626. package/src/logger/services/Logger.ts +18 -0
  627. package/src/mcp/__tests__/$prompt.spec.ts +21 -23
  628. package/src/mcp/__tests__/$tool.spec.ts +22 -22
  629. package/src/mcp/__tests__/McpServerProvider.spec.ts +11 -11
  630. package/src/mcp/__tests__/StreamableHttpMcpTransport.spec.ts +2 -2
  631. package/src/mcp/__tests__/integration.spec.ts +33 -33
  632. package/src/mcp/primitives/$prompt.ts +11 -9
  633. package/src/mcp/primitives/$tool.ts +27 -86
  634. package/src/mcp/transports/StreamableHttpMcpTransport.ts +7 -7
  635. package/src/orm/__tests__/$repository-tests.ts +133 -27
  636. package/src/orm/__tests__/$repository.spec.ts +23 -0
  637. package/src/orm/__tests__/$transactional-tests.ts +4 -4
  638. package/src/orm/__tests__/ModelBuilder-tests.ts +28 -28
  639. package/src/orm/__tests__/ModelBuilder.spec.ts +124 -106
  640. package/src/orm/__tests__/QueryManager.spec.ts +5 -5
  641. package/src/orm/__tests__/delete-returning-tests.ts +11 -11
  642. package/src/orm/__tests__/deletedAt-tests.ts +3 -3
  643. package/src/orm/__tests__/enums.spec.ts +29 -25
  644. package/src/orm/__tests__/execute-tests.ts +8 -8
  645. package/src/orm/__tests__/fixtures/bigEntitySchema.ts +48 -48
  646. package/src/orm/__tests__/fixtures/userEntitySchema.ts +6 -6
  647. package/src/orm/__tests__/joins-tests.ts +30 -30
  648. package/src/orm/__tests__/organization-tests.ts +105 -3
  649. package/src/orm/__tests__/organization.spec.ts +46 -0
  650. package/src/orm/__tests__/orm-errors.spec.ts +10 -10
  651. package/src/orm/__tests__/orm-next-tests.ts +29 -29
  652. package/src/orm/__tests__/orm-showcase-tests.ts +9 -9
  653. package/src/orm/__tests__/primaryKey.spec.ts +4 -4
  654. package/src/orm/__tests__/query-date-encoding-tests.ts +17 -17
  655. package/src/orm/__tests__/ref-auto-onDelete.spec.ts +14 -14
  656. package/src/orm/__tests__/references.spec.ts +7 -7
  657. package/src/orm/__tests__/security.spec.ts +17 -17
  658. package/src/orm/__tests__/string-operators-tests.ts +5 -5
  659. package/src/orm/__tests__/timestamps-tests.ts +14 -14
  660. package/src/orm/__tests__/validation-tests.ts +5 -5
  661. package/src/orm/core/__tests__/BunSqliteProvider.bun.spec.ts +8 -8
  662. package/src/orm/core/constants/PG_SYMBOLS.ts +13 -1
  663. package/src/orm/core/entities/alephaSequences.ts +8 -8
  664. package/src/orm/core/helpers/pgAttr.ts +4 -4
  665. package/src/orm/core/primitives/$entity.ts +10 -6
  666. package/src/orm/core/providers/DatabaseTypeProvider.ts +46 -53
  667. package/src/orm/core/providers/drivers/BunSqliteProvider.ts +8 -8
  668. package/src/orm/core/providers/drivers/CloudflareD1Provider.ts +3 -5
  669. package/src/orm/core/providers/drivers/NodeSqliteProvider.ts +8 -8
  670. package/src/orm/core/schemas/databaseEnvSchema.ts +4 -4
  671. package/src/orm/core/schemas/insertSchema.ts +14 -18
  672. package/src/orm/core/schemas/legacyIdSchema.ts +2 -2
  673. package/src/orm/core/schemas/updateSchema.ts +10 -16
  674. package/src/orm/core/services/PgRelationManager.ts +2 -2
  675. package/src/orm/core/services/QueryManager.ts +13 -2
  676. package/src/orm/core/services/Repository.ts +88 -33
  677. package/src/orm/core/services/SqliteModelBuilder.ts +38 -45
  678. package/src/orm/postgres/__tests__/BunPostgresProvider.bun.spec.ts +4 -4
  679. package/src/orm/postgres/providers/CloudflareHyperdriveProvider.ts +4 -6
  680. package/src/orm/postgres/schemas/postgresEnvSchema.ts +6 -6
  681. package/src/orm/postgres/services/PostgresModelBuilder.ts +127 -114
  682. package/src/queue/core/__tests__/$consumer.spec.ts +4 -4
  683. package/src/queue/core/__tests__/WorkerProvider.spec.ts +4 -4
  684. package/src/queue/core/__tests__/shared.ts +6 -6
  685. package/src/queue/core/primitives/$consumer.ts +5 -5
  686. package/src/queue/core/primitives/$queue.ts +44 -61
  687. package/src/queue/core/providers/CloudflareQueueProvider.ts +6 -0
  688. package/src/queue/core/providers/WorkerProvider.ts +17 -14
  689. package/src/queue/redis/providers/RedisQueueProvider.ts +3 -3
  690. package/src/react/core/__tests__/ErrorBoundary.browser.spec.tsx +92 -0
  691. package/src/react/core/__tests__/Router.spec.tsx +4 -4
  692. package/src/react/core/__tests__/useComputed.browser.spec.tsx +192 -0
  693. package/src/react/core/__tests__/useQuery.browser.spec.tsx +48 -0
  694. package/src/react/core/__tests__/useSelector.browser.spec.tsx +105 -0
  695. package/src/react/core/__tests__/useStore.browser.spec.tsx +113 -0
  696. package/src/react/core/components/ErrorBoundary.tsx +42 -0
  697. package/src/react/core/hooks/useAction.ts +56 -19
  698. package/src/react/core/hooks/useComputed.ts +91 -0
  699. package/src/react/core/hooks/useSelector.ts +67 -0
  700. package/src/react/core/hooks/useStore.ts +36 -17
  701. package/src/react/core/index.ts +3 -0
  702. package/src/react/core/utils/shallowEqual.ts +36 -0
  703. package/src/react/form/__tests__/FormModel-submit-loading.spec.ts +2 -2
  704. package/src/react/form/__tests__/form-submitting-reactive.browser.spec.tsx +5 -5
  705. package/src/react/form/__tests__/useForm.browser.spec.tsx +54 -54
  706. package/src/react/form/errors/FormValidationError.ts +0 -2
  707. package/src/react/form/hooks/useForm.ts +19 -4
  708. package/src/react/form/hooks/useFormQuerySync.ts +0 -0
  709. package/src/react/form/services/FormModel.ts +67 -47
  710. package/src/react/form/services/parseField.ts +66 -27
  711. package/src/react/i18n/__tests__/Localize.spec.tsx +1 -1
  712. package/src/react/i18n/providers/I18nProvider.ts +2 -2
  713. package/src/react/router/__tests__/$page.browser.spec.tsx +19 -19
  714. package/src/react/router/__tests__/$page.spec.tsx +21 -21
  715. package/src/react/router/__tests__/ReactBrowserProvider.browser.spec.ts +87 -1
  716. package/src/react/router/atoms/ssrManifestAtom.ts +16 -16
  717. package/src/react/router/components/NestedView.tsx +11 -3
  718. package/src/react/router/hooks/useQueryParams.ts +1 -1
  719. package/src/react/router/primitives/$page.ts +2 -2
  720. package/src/react/router/providers/ReactBrowserProvider.ts +64 -13
  721. package/src/react/router/providers/ReactPageProvider.ts +26 -12
  722. package/src/react/router/providers/ReactServerProvider.ts +13 -15
  723. package/src/react/sitemap/__tests__/$sitemap.spec.ts +2 -2
  724. package/src/react/ui/atoms/uiAtom.ts +6 -6
  725. package/src/react/ui/atoms/uiThemeListAtom.ts +7 -7
  726. package/src/react/ui/hooks/useColorMode.ts +11 -4
  727. package/src/react/ui/services/SchemaControl.ts +4 -4
  728. package/src/redis/providers/BunRedisProvider.ts +19 -11
  729. package/src/redis/providers/NodeRedisProvider.ts +3 -3
  730. package/src/scheduler/primitives/$scheduler.ts +21 -8
  731. package/src/security/__tests__/assertRealmScope.spec.ts +29 -0
  732. package/src/security/atoms/currentTenantAtom.ts +6 -6
  733. package/src/security/atoms/currentUserAtom.ts +2 -2
  734. package/src/security/primitives/$issuer.ts +24 -2
  735. package/src/security/providers/JwtProvider.ts +100 -0
  736. package/src/security/providers/SecurityProvider.ts +43 -2
  737. package/src/security/schemas/permissionSchema.ts +19 -19
  738. package/src/security/schemas/roleSchema.ts +22 -28
  739. package/src/security/schemas/userAccountInfoSchema.ts +47 -37
  740. package/src/server/auth/index.ts +0 -3
  741. package/src/server/auth/primitives/$auth.ts +6 -6
  742. package/src/server/auth/primitives/$authApple.ts +10 -10
  743. package/src/server/auth/primitives/$authFacebook.ts +10 -10
  744. package/src/server/auth/primitives/$authFranceConnect.ts +10 -10
  745. package/src/server/auth/primitives/$authGithub.ts +10 -10
  746. package/src/server/auth/primitives/$authGoogle.ts +10 -10
  747. package/src/server/auth/primitives/$authMicrosoft.ts +14 -14
  748. package/src/server/auth/providers/ServerAuthProvider.ts +49 -48
  749. package/src/server/auth/schemas/authenticationProviderSchema.ts +9 -12
  750. package/src/server/auth/schemas/tokenResponseSchema.ts +2 -2
  751. package/src/server/auth/schemas/tokensSchema.ts +16 -16
  752. package/src/server/auth/schemas/userinfoResponseSchema.ts +3 -3
  753. package/src/server/cookies/__tests__/AtomCookieBinding.spec.ts +80 -0
  754. package/src/server/cookies/__tests__/AtomCookiePersistence.browser.spec.ts +169 -0
  755. package/src/server/cookies/__tests__/AtomCookiePersistence.spec.ts +294 -0
  756. package/src/server/cookies/__tests__/ServerCookiesProvider.spec.ts +14 -14
  757. package/src/server/cookies/index.browser.ts +4 -1
  758. package/src/server/cookies/index.ts +8 -1
  759. package/src/server/cookies/primitives/$cookie.browser.ts +1 -1
  760. package/src/server/cookies/primitives/$cookie.ts +16 -0
  761. package/src/server/cookies/providers/AtomCookiePersistence.browser.ts +133 -0
  762. package/src/server/cookies/providers/AtomCookiePersistence.ts +148 -0
  763. package/src/server/cookies/providers/ServerCookiesProvider.ts +13 -5
  764. package/src/server/cookies/services/CookieParser.ts +6 -1
  765. package/src/server/core/__tests__/$action.spec.ts +13 -13
  766. package/src/server/core/__tests__/$middleware.spec.ts +10 -10
  767. package/src/server/core/__tests__/$route.spec.ts +9 -9
  768. package/src/server/core/__tests__/$sse.spec.ts +26 -26
  769. package/src/server/core/__tests__/BunHttpServerProvider.bun.spec.ts +6 -6
  770. package/src/server/core/__tests__/HttpClient.spec.ts +2 -2
  771. package/src/server/core/__tests__/NodeHttpServerProvider.spec.ts +15 -3
  772. package/src/server/core/__tests__/ServerBodyParserProvider.spec.ts +14 -14
  773. package/src/server/core/__tests__/ServerMultipartProvider.spec.ts +33 -33
  774. package/src/server/core/__tests__/ServerRouterProvider-errorHandler.spec.ts +5 -1
  775. package/src/server/core/__tests__/ServerRouterProvider-getRoutes.spec.ts +25 -25
  776. package/src/server/core/__tests__/ServerRouterProvider-serializationError.spec.ts +9 -5
  777. package/src/server/core/__tests__/ServerRouterProvider-validationError.spec.ts +56 -24
  778. package/src/server/core/errors/ValidationError.ts +6 -3
  779. package/src/server/core/helpers/isMultipart.ts +2 -1
  780. package/src/server/core/index.ts +5 -2
  781. package/src/server/core/interfaces/ServerRequest.ts +6 -14
  782. package/src/server/core/primitives/$action.ts +26 -36
  783. package/src/server/core/primitives/$sse.ts +3 -3
  784. package/src/server/core/providers/BunHttpServerProvider.ts +8 -9
  785. package/src/server/core/providers/NodeHttpServerProvider.ts +8 -9
  786. package/src/server/core/providers/ServerBodyParserProvider.ts +20 -12
  787. package/src/server/core/providers/ServerCompressProvider.ts +9 -10
  788. package/src/server/core/providers/ServerHelmetProvider.ts +26 -27
  789. package/src/server/core/providers/ServerMultipartProvider.ts +19 -19
  790. package/src/server/core/providers/ServerRouterProvider.ts +44 -15
  791. package/src/server/core/schemas/errorSchema.ts +20 -25
  792. package/src/server/core/schemas/okSchema.ts +9 -14
  793. package/src/server/core/services/HttpClient.ts +13 -1
  794. package/src/server/core/services/ServerRequestParser.ts +6 -6
  795. package/src/server/cors/providers/ServerCorsProvider.ts +26 -28
  796. package/src/server/health/schemas/healthSchema.ts +6 -6
  797. package/src/server/links/__tests__/$remote.spec.ts +3 -3
  798. package/src/server/links/__tests__/BatchEndpoint.spec.ts +9 -9
  799. package/src/server/links/__tests__/LinkProvider.spec.ts +9 -9
  800. package/src/server/links/__tests__/ServerLinksProvider.spec.ts +23 -23
  801. package/src/server/links/__tests__/fixtures/CrudApp.ts +21 -21
  802. package/src/server/links/atoms/apiLinksAtom.ts +2 -2
  803. package/src/server/links/atoms/linkOptionsAtom.ts +6 -6
  804. package/src/server/links/primitives/$remote.ts +3 -3
  805. package/src/server/links/providers/LinkProvider.ts +3 -3
  806. package/src/server/links/providers/ServerLinksProvider.ts +20 -20
  807. package/src/server/links/schemas/apiLinksResponseSchema.ts +23 -23
  808. package/src/server/proxy/__tests__/$proxy.spec.ts +9 -9
  809. package/src/server/proxy/providers/ServerProxyProvider.ts +5 -0
  810. package/src/server/rate-limit/providers/ServerRateLimitProvider.ts +18 -20
  811. package/src/server/swagger/__tests__/$swagger.spec.ts +91 -94
  812. package/src/server/swagger/__tests__/ui.spec.ts +3 -3
  813. package/src/server/swagger/providers/ServerSwaggerProvider.ts +66 -43
  814. package/src/system/__tests__/NodeShellProvider.spec.ts +46 -0
  815. package/src/system/providers/NodeShellProvider.ts +4 -1
  816. package/src/topic/core/__tests__/$subscriber.spec.ts +4 -4
  817. package/src/topic/core/__tests__/shared.ts +8 -8
  818. package/src/topic/core/primitives/$subscriber.ts +5 -5
  819. package/src/topic/core/primitives/$topic.ts +14 -14
  820. package/src/topic/redis/providers/RedisTopicProvider.ts +3 -3
  821. package/dist/container/core/index.d.ts +0 -236
  822. package/dist/container/core/index.d.ts.map +0 -1
  823. package/dist/container/core/index.js +0 -231
  824. package/dist/container/core/index.js.map +0 -1
  825. package/dist/container/core/index.workerd.js +0 -192
  826. package/dist/container/core/index.workerd.js.map +0 -1
  827. package/src/command/helpers/PrettyAsker.ts +0 -256
  828. package/src/command/helpers/PrettyPrint.ts +0 -332
  829. package/src/container/core/__tests__/$container.spec.ts +0 -83
  830. package/src/container/core/index.ts +0 -50
  831. package/src/container/core/index.workerd.ts +0 -53
  832. package/src/container/core/interfaces/ContainerOptions.ts +0 -69
  833. package/src/container/core/primitives/$container.ts +0 -100
  834. package/src/container/core/providers/CloudflareContainerProvider.ts +0 -70
  835. package/src/container/core/providers/ContainerProvider.ts +0 -92
  836. package/src/container/core/providers/MockContainerProvider.ts +0 -62
  837. package/src/container/core/providers/NodeContainerProvider.ts +0 -53
  838. package/src/core/__tests__/jsonSchemaToTypeBox.spec.ts +0 -771
  839. package/src/core/helpers/jsonSchemaToTypeBox.ts +0 -359
  840. package/src/server/auth/__tests__/authFederationClient.spec.ts +0 -40
  841. package/src/server/auth/__tests__/federationAssertion.spec.ts +0 -146
  842. package/src/server/auth/helpers/federationAssertion.ts +0 -74
  843. package/src/server/auth/primitives/$authFederationBroker.ts +0 -273
  844. package/src/server/auth/primitives/$authFederationClient.ts +0 -89
  845. /package/dist/orm/core/{chunk-B4FMCO8f.js → rolldown-runtime-B4FMCO8f.js} +0 -0
@@ -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
  *
@@ -2131,19 +2130,6 @@ interface RealmOptions {
2131
2130
  facebook?: true;
2132
2131
  microsoft?: true;
2133
2132
  franceconnect?: true;
2134
- /**
2135
- * Federated social login via a central broker (the platform).
2136
- *
2137
- * The broker performs the real OIDC dance with Google/Apple on a single
2138
- * shared OAuth client and hands this realm a short-lived, asymmetric-signed
2139
- * assertion. This realm verifies it (broker `publicKey`), links a local
2140
- * user, and establishes a session — no per-tenant OAuth client required.
2141
- */
2142
- federated?: {
2143
- /** Broker origin (assertion `iss`), e.g. https://alepha.club. */brokerUrl: string; /** Broker EdDSA public key (SPKI PEM) used to verify assertions. */
2144
- publicKey: string; /** Providers to surface as broker login buttons. */
2145
- providers: Array<"google" | "apple">;
2146
- };
2147
2133
  };
2148
2134
  /**
2149
2135
  * Enable or disable realm features.
@@ -2164,67 +2150,62 @@ interface Realm {
2164
2150
  repositories: RealmRepositories;
2165
2151
  settings: RealmAuthSettings;
2166
2152
  features: RealmFeatures;
2167
- /**
2168
- * Federated (broker) login config surfaced to the login UI, when the realm
2169
- * declares `identities.federated`. The broker public key is intentionally
2170
- * omitted — only the broker URL + provider list are client-facing.
2171
- */
2172
- federated?: {
2173
- brokerUrl: string;
2174
- providers: Array<"google" | "apple">;
2175
- };
2176
2153
  settingsParameter?: ParameterPrimitive<typeof realmAuthSettingsAtom.schema>;
2177
2154
  getSettings(): Promise<RealmAuthSettings>;
2178
2155
  }
2179
2156
  declare class RealmProvider {
2180
2157
  protected readonly alepha: Alepha;
2181
- protected readonly defaultIdentities: Repository<import("typebox").TObject<{
2182
- 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>;
2183
- version: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("typebox").TInteger, typeof import("alepha/orm").PG_VERSION>, typeof import("alepha/orm").PG_DEFAULT>;
2184
- 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>;
2185
- 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>;
2186
- userId: import("alepha/orm").PgAttr<import("typebox").TString, typeof import("alepha/orm").PG_REF>;
2187
- password: import("typebox").TOptional<import("typebox").TString>;
2188
- provider: import("typebox").TString;
2189
- providerUserId: import("typebox").TOptional<import("typebox").TString>;
2190
- providerData: import("typebox").TOptional<import("typebox").TRecord<string, import("typebox").TAny>>;
2191
- }>>;
2192
- protected readonly defaultSessions: Repository<import("typebox").TObject<{
2193
- 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>;
2194
- version: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("typebox").TInteger, typeof import("alepha/orm").PG_VERSION>, typeof import("alepha/orm").PG_DEFAULT>;
2195
- 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>;
2196
- 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>;
2197
- refreshToken: import("typebox").TString;
2198
- userId: import("alepha/orm").PgAttr<import("typebox").TString, typeof import("alepha/orm").PG_REF>;
2199
- clientId: import("typebox").TOptional<import("typebox").TString>;
2200
- expiresAt: import("typebox").TString;
2201
- lastUsedAt: import("typebox").TOptional<import("typebox").TString>;
2202
- ip: import("typebox").TOptional<import("typebox").TString>;
2203
- country: import("typebox").TOptional<import("typebox").TString>;
2204
- userAgent: import("typebox").TOptional<import("typebox").TObject<{
2205
- os: import("typebox").TString;
2206
- browser: import("typebox").TString;
2207
- device: import("typebox").TUnsafe<"MOBILE" | "DESKTOP" | "TABLET">;
2208
- }>>;
2209
- }>>;
2210
- protected readonly defaultUsers: Repository<import("typebox").TObject<{
2211
- 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>;
2212
- version: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("typebox").TInteger, typeof import("alepha/orm").PG_VERSION>, typeof import("alepha/orm").PG_DEFAULT>;
2213
- 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>;
2214
- 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>;
2215
- realm: import("alepha/orm").PgAttr<import("typebox").TString, typeof import("alepha/orm").PG_DEFAULT>;
2216
- username: import("typebox").TOptional<import("typebox").TString>;
2217
- email: import("typebox").TOptional<import("typebox").TString>;
2218
- phoneNumber: import("typebox").TOptional<import("typebox").TString>;
2219
- roles: import("alepha/orm").PgAttr<import("typebox").TArray<import("typebox").TString>, typeof import("alepha/orm").PG_DEFAULT>;
2220
- firstName: import("typebox").TOptional<import("typebox").TString>;
2221
- lastName: import("typebox").TOptional<import("typebox").TString>;
2222
- picture: import("typebox").TOptional<import("typebox").TString>;
2223
- enabled: import("alepha/orm").PgAttr<import("typebox").TBoolean, typeof import("alepha/orm").PG_DEFAULT>;
2224
- emailVerified: import("alepha/orm").PgAttr<import("typebox").TBoolean, typeof import("alepha/orm").PG_DEFAULT>;
2225
- lastLoginAt: import("typebox").TOptional<import("typebox").TString>;
2226
- organizationId: import("alepha/orm").PgAttr<import("typebox").TString, typeof import("alepha/orm").PG_ORGANIZATION>;
2227
- }>>;
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>>;
2228
2209
  protected realms: Map<string, Realm>;
2229
2210
  register(realmName: string, realmOptions?: RealmOptions): Realm;
2230
2211
  /**
@@ -2237,13 +2218,13 @@ declare class RealmProvider {
2237
2218
  }
2238
2219
  //#endregion
2239
2220
  //#region ../../src/api/users/schemas/identityQuerySchema.d.ts
2240
- declare const identityQuerySchema: import("typebox").TObject<{
2241
- page: import("typebox").TOptional<import("typebox").TInteger>;
2242
- size: import("typebox").TOptional<import("typebox").TInteger>;
2243
- sort: import("typebox").TOptional<import("typebox").TString>;
2244
- userId: import("typebox").TOptional<import("typebox").TString>;
2245
- provider: import("typebox").TOptional<import("typebox").TString>;
2246
- }>;
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>;
2247
2228
  type IdentityQuery = Static<typeof identityQuerySchema>;
2248
2229
  //#endregion
2249
2230
  //#region ../../src/api/users/services/IdentityService.d.ts
@@ -2252,17 +2233,17 @@ declare class IdentityService {
2252
2233
  protected readonly log: import("alepha/logger").Logger;
2253
2234
  protected readonly realmProvider: RealmProvider;
2254
2235
  protected userAudits(realmName?: string): UserAudits | undefined;
2255
- identities(userRealmName?: string): import("alepha/orm").Repository<import("typebox").TObject<{
2256
- 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>;
2257
- version: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("typebox").TInteger, typeof import("alepha/orm").PG_VERSION>, typeof import("alepha/orm").PG_DEFAULT>;
2258
- 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>;
2259
- 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>;
2260
- userId: import("alepha/orm").PgAttr<import("typebox").TString, typeof import("alepha/orm").PG_REF>;
2261
- password: import("typebox").TOptional<import("typebox").TString>;
2262
- provider: import("typebox").TString;
2263
- providerUserId: import("typebox").TOptional<import("typebox").TString>;
2264
- providerData: import("typebox").TOptional<import("typebox").TRecord<string, import("typebox").TAny>>;
2265
- }>>;
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>>;
2266
2247
  /**
2267
2248
  * Find identities with pagination and filtering.
2268
2249
  */
@@ -2282,99 +2263,117 @@ declare class AdminIdentityController {
2282
2263
  protected readonly url = "/identities";
2283
2264
  protected readonly group = "admin:identities";
2284
2265
  protected readonly identityService: IdentityService;
2266
+ protected readonly securityProvider: SecurityProvider;
2285
2267
  /**
2286
2268
  * Find identities with pagination and filtering.
2287
2269
  */
2288
2270
  readonly findIdentities: import("alepha/server").ActionPrimitiveFn<{
2289
- query: import("typebox").TObject<{
2290
- page: import("typebox").TOptional<import("typebox").TInteger>;
2291
- size: import("typebox").TOptional<import("typebox").TInteger>;
2292
- sort: import("typebox").TOptional<import("typebox").TString>;
2293
- userId: import("typebox").TOptional<import("typebox").TString>;
2294
- provider: import("typebox").TOptional<import("typebox").TString>;
2295
- userRealmName: import("typebox").TOptional<import("typebox").TString>;
2296
- }>;
2297
- response: import("alepha").TPage<import("typebox").TObject<{
2298
- id: PgAttr<PgAttr<import("typebox").TString, typeof PG_PRIMARY_KEY>, typeof PG_DEFAULT>;
2299
- version: PgAttr<PgAttr<import("typebox").TInteger, typeof PG_VERSION>, typeof PG_DEFAULT>;
2300
- createdAt: PgAttr<PgAttr<import("typebox").TString, typeof PG_CREATED_AT>, typeof PG_DEFAULT>;
2301
- updatedAt: PgAttr<PgAttr<import("typebox").TString, typeof PG_UPDATED_AT>, typeof PG_DEFAULT>;
2302
- userId: PgAttr<import("typebox").TString, typeof PG_REF>;
2303
- provider: import("typebox").TString;
2304
- providerUserId: import("typebox").TOptional<import("typebox").TString>;
2305
- providerData: import("typebox").TOptional<import("typebox").TRecord<string, import("typebox").TAny>>;
2306
- }>>;
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>;
2307
2302
  }>;
2308
2303
  /**
2309
2304
  * Get an identity by ID.
2310
2305
  */
2311
2306
  readonly getIdentity: import("alepha/server").ActionPrimitiveFn<{
2312
- params: import("typebox").TObject<{
2313
- id: import("typebox").TString;
2314
- }>;
2315
- query: import("typebox").TObject<{
2316
- userRealmName: import("typebox").TOptional<import("typebox").TString>;
2317
- }>;
2318
- response: import("typebox").TObject<{
2319
- id: PgAttr<PgAttr<import("typebox").TString, typeof PG_PRIMARY_KEY>, typeof PG_DEFAULT>;
2320
- version: PgAttr<PgAttr<import("typebox").TInteger, typeof PG_VERSION>, typeof PG_DEFAULT>;
2321
- createdAt: PgAttr<PgAttr<import("typebox").TString, typeof PG_CREATED_AT>, typeof PG_DEFAULT>;
2322
- updatedAt: PgAttr<PgAttr<import("typebox").TString, typeof PG_UPDATED_AT>, typeof PG_DEFAULT>;
2323
- userId: PgAttr<import("typebox").TString, typeof PG_REF>;
2324
- provider: import("typebox").TString;
2325
- providerUserId: import("typebox").TOptional<import("typebox").TString>;
2326
- providerData: import("typebox").TOptional<import("typebox").TRecord<string, import("typebox").TAny>>;
2327
- }>;
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>;
2328
2323
  }>;
2329
2324
  /**
2330
2325
  * Delete an identity.
2331
2326
  */
2332
2327
  readonly deleteIdentity: import("alepha/server").ActionPrimitiveFn<{
2333
- params: import("typebox").TObject<{
2334
- id: import("typebox").TString;
2335
- }>;
2336
- query: import("typebox").TObject<{
2337
- userRealmName: import("typebox").TOptional<import("typebox").TString>;
2338
- }>;
2339
- response: import("typebox").TObject<{
2340
- ok: import("typebox").TBoolean;
2341
- id: import("typebox").TOptional<import("typebox").TUnion<[import("typebox").TString, import("typebox").TInteger]>>;
2342
- count: import("typebox").TOptional<import("typebox").TNumber>;
2343
- }>;
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>;
2344
2339
  }>;
2345
2340
  }
2346
2341
  //#endregion
2347
2342
  //#region ../../src/api/users/schemas/sessionQuerySchema.d.ts
2348
- declare const sessionQuerySchema: import("typebox").TObject<{
2349
- page: import("typebox").TOptional<import("typebox").TInteger>;
2350
- size: import("typebox").TOptional<import("typebox").TInteger>;
2351
- sort: import("typebox").TOptional<import("typebox").TString>;
2352
- userId: import("typebox").TOptional<import("typebox").TString>;
2353
- }>;
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>;
2354
2349
  type SessionQuery = Static<typeof sessionQuerySchema>;
2355
2350
  //#endregion
2356
2351
  //#region ../../src/api/users/services/SessionCrudService.d.ts
2357
2352
  declare class SessionCrudService {
2358
2353
  protected readonly log: import("alepha/logger").Logger;
2359
2354
  protected readonly realmProvider: RealmProvider;
2360
- sessions(userRealmName?: string): import("alepha/orm").Repository<import("typebox").TObject<{
2361
- 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>;
2362
- version: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("typebox").TInteger, typeof import("alepha/orm").PG_VERSION>, typeof import("alepha/orm").PG_DEFAULT>;
2363
- 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>;
2364
- 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>;
2365
- refreshToken: import("typebox").TString;
2366
- userId: import("alepha/orm").PgAttr<import("typebox").TString, typeof import("alepha/orm").PG_REF>;
2367
- clientId: import("typebox").TOptional<import("typebox").TString>;
2368
- expiresAt: import("typebox").TString;
2369
- lastUsedAt: import("typebox").TOptional<import("typebox").TString>;
2370
- ip: import("typebox").TOptional<import("typebox").TString>;
2371
- country: import("typebox").TOptional<import("typebox").TString>;
2372
- userAgent: import("typebox").TOptional<import("typebox").TObject<{
2373
- os: import("typebox").TString;
2374
- browser: import("typebox").TString;
2375
- device: import("typebox").TUnsafe<"MOBILE" | "DESKTOP" | "TABLET">;
2376
- }>>;
2377
- }>>;
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>>;
2378
2377
  /**
2379
2378
  * Find sessions with pagination and filtering.
2380
2379
  */
@@ -2398,188 +2397,210 @@ declare class AdminSessionController {
2398
2397
  protected readonly url = "/sessions";
2399
2398
  protected readonly group = "admin:sessions";
2400
2399
  protected readonly sessionService: SessionCrudService;
2400
+ protected readonly securityProvider: SecurityProvider;
2401
2401
  /**
2402
2402
  * Find sessions with pagination and filtering.
2403
2403
  */
2404
2404
  readonly findSessions: import("alepha/server").ActionPrimitiveFn<{
2405
- query: import("typebox").TObject<{
2406
- page: import("typebox").TOptional<import("typebox").TInteger>;
2407
- size: import("typebox").TOptional<import("typebox").TInteger>;
2408
- sort: import("typebox").TOptional<import("typebox").TString>;
2409
- userId: import("typebox").TOptional<import("typebox").TString>;
2410
- userRealmName: import("typebox").TOptional<import("typebox").TString>;
2411
- }>;
2412
- response: import("alepha").TPage<import("typebox").TObject<{
2413
- id: import("typebox").TString;
2414
- version: import("typebox").TNumber;
2415
- createdAt: import("typebox").TString;
2416
- updatedAt: import("typebox").TString;
2417
- refreshToken: import("typebox").TString;
2418
- userId: import("typebox").TString;
2419
- expiresAt: import("typebox").TString;
2420
- ip: import("typebox").TOptional<import("typebox").TString>;
2421
- country: import("typebox").TOptional<import("typebox").TString>;
2422
- userAgent: import("typebox").TOptional<import("typebox").TObject<{
2423
- os: import("typebox").TString;
2424
- browser: import("typebox").TString;
2425
- device: import("typebox").TUnsafe<"MOBILE" | "DESKTOP" | "TABLET">;
2426
- }>>;
2427
- user: import("typebox").TOptional<import("typebox").TObject<{
2428
- id: import("typebox").TString;
2429
- email: import("typebox").TOptional<import("typebox").TString>;
2430
- username: import("typebox").TOptional<import("typebox").TString>;
2431
- firstName: import("typebox").TOptional<import("typebox").TString>;
2432
- lastName: import("typebox").TOptional<import("typebox").TString>;
2433
- }>>;
2434
- }>>;
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>;
2435
2452
  }>;
2436
2453
  /**
2437
2454
  * Get a session by ID.
2438
2455
  */
2439
2456
  readonly getSession: import("alepha/server").ActionPrimitiveFn<{
2440
- params: import("typebox").TObject<{
2441
- id: import("typebox").TString;
2442
- }>;
2443
- query: import("typebox").TObject<{
2444
- userRealmName: import("typebox").TOptional<import("typebox").TString>;
2445
- }>;
2446
- response: import("typebox").TObject<{
2447
- id: import("typebox").TString;
2448
- version: import("typebox").TNumber;
2449
- createdAt: import("typebox").TString;
2450
- updatedAt: import("typebox").TString;
2451
- refreshToken: import("typebox").TString;
2452
- userId: import("typebox").TString;
2453
- expiresAt: import("typebox").TString;
2454
- ip: import("typebox").TOptional<import("typebox").TString>;
2455
- country: import("typebox").TOptional<import("typebox").TString>;
2456
- userAgent: import("typebox").TOptional<import("typebox").TObject<{
2457
- os: import("typebox").TString;
2458
- browser: import("typebox").TString;
2459
- device: import("typebox").TUnsafe<"MOBILE" | "DESKTOP" | "TABLET">;
2460
- }>>;
2461
- user: import("typebox").TOptional<import("typebox").TObject<{
2462
- id: import("typebox").TString;
2463
- email: import("typebox").TOptional<import("typebox").TString>;
2464
- username: import("typebox").TOptional<import("typebox").TString>;
2465
- firstName: import("typebox").TOptional<import("typebox").TString>;
2466
- lastName: import("typebox").TOptional<import("typebox").TString>;
2467
- }>>;
2468
- }>;
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>;
2469
2490
  }>;
2470
2491
  /**
2471
2492
  * Delete a session.
2472
2493
  */
2473
2494
  readonly deleteSession: import("alepha/server").ActionPrimitiveFn<{
2474
- params: import("typebox").TObject<{
2475
- id: import("typebox").TString;
2476
- }>;
2477
- query: import("typebox").TObject<{
2478
- userRealmName: import("typebox").TOptional<import("typebox").TString>;
2479
- }>;
2480
- response: import("typebox").TObject<{
2481
- ok: import("typebox").TBoolean;
2482
- id: import("typebox").TOptional<import("typebox").TUnion<[import("typebox").TString, import("typebox").TInteger]>>;
2483
- count: import("typebox").TOptional<import("typebox").TNumber>;
2484
- }>;
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>;
2485
2506
  }>;
2486
2507
  /**
2487
2508
  * Delete many sessions in one repository call.
2488
2509
  */
2489
2510
  readonly deleteSessions: import("alepha/server").ActionPrimitiveFn<{
2490
- query: import("typebox").TObject<{
2491
- userRealmName: import("typebox").TOptional<import("typebox").TString>;
2492
- }>;
2493
- body: import("typebox").TObject<{
2494
- ids: import("typebox").TArray<import("typebox").TString>;
2495
- }>;
2496
- response: import("typebox").TObject<{
2497
- deleted: import("typebox").TArray<import("typebox").TString>;
2498
- }>;
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>;
2499
2520
  }>;
2500
2521
  }
2501
2522
  //#endregion
2502
2523
  //#region ../../src/api/users/notifications/UserNotifications.d.ts
2503
2524
  declare class UserNotifications {
2504
- readonly passwordReset: import("alepha/api/notifications").NotificationPrimitive<import("typebox").TObject<{
2505
- email: import("typebox").TString;
2506
- code: import("typebox").TString;
2507
- expiresInMinutes: import("typebox").TNumber;
2508
- }>>;
2509
- readonly emailVerification: import("alepha/api/notifications").NotificationPrimitive<import("typebox").TObject<{
2510
- email: import("typebox").TString;
2511
- code: import("typebox").TString;
2512
- expiresInMinutes: import("typebox").TNumber;
2513
- }>>;
2514
- readonly phoneVerification: import("alepha/api/notifications").NotificationPrimitive<import("typebox").TObject<{
2515
- phoneNumber: import("typebox").TString;
2516
- code: import("typebox").TString;
2517
- expiresInMinutes: import("typebox").TNumber;
2518
- }>>;
2519
- readonly passwordResetLink: import("alepha/api/notifications").NotificationPrimitive<import("typebox").TObject<{
2520
- email: import("typebox").TString;
2521
- resetUrl: import("typebox").TString;
2522
- expiresInMinutes: import("typebox").TNumber;
2523
- }>>;
2524
- readonly accountLockout: import("alepha/api/notifications").NotificationPrimitive<import("typebox").TObject<{
2525
- email: import("typebox").TString;
2526
- lockoutMinutes: import("typebox").TNumber;
2527
- }>>;
2528
- readonly emailVerificationLink: import("alepha/api/notifications").NotificationPrimitive<import("typebox").TObject<{
2529
- email: import("typebox").TString;
2530
- verifyUrl: import("typebox").TString;
2531
- expiresInMinutes: import("typebox").TNumber;
2532
- }>>;
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>>;
2533
2554
  }
2534
2555
  //#endregion
2535
2556
  //#region ../../src/api/users/schemas/createUserSchema.d.ts
2536
- declare const createUserSchema: import("typebox").TObject<{
2537
- enabled: import("typebox").TOptional<PgAttr<import("typebox").TBoolean, typeof PG_DEFAULT>>;
2538
- email: import("typebox").TOptional<import("typebox").TOptional<import("typebox").TString>>;
2539
- phoneNumber: import("typebox").TOptional<import("typebox").TOptional<import("typebox").TString>>;
2540
- id: import("typebox").TOptional<PgAttr<PgAttr<import("typebox").TString, typeof PG_PRIMARY_KEY>, typeof PG_DEFAULT>>;
2541
- version: import("typebox").TOptional<PgAttr<PgAttr<import("typebox").TInteger, typeof PG_VERSION>, typeof PG_DEFAULT>>;
2542
- createdAt: import("typebox").TOptional<PgAttr<PgAttr<import("typebox").TString, typeof PG_CREATED_AT>, typeof PG_DEFAULT>>;
2543
- updatedAt: import("typebox").TOptional<PgAttr<PgAttr<import("typebox").TString, typeof PG_UPDATED_AT>, typeof PG_DEFAULT>>;
2544
- username: import("typebox").TOptional<import("typebox").TOptional<import("typebox").TString>>;
2545
- roles: import("typebox").TOptional<PgAttr<import("typebox").TArray<import("typebox").TString>, typeof PG_DEFAULT>>;
2546
- firstName: import("typebox").TOptional<import("typebox").TOptional<import("typebox").TString>>;
2547
- lastName: import("typebox").TOptional<import("typebox").TOptional<import("typebox").TString>>;
2548
- picture: import("typebox").TOptional<import("typebox").TOptional<import("typebox").TString>>;
2549
- emailVerified: import("typebox").TOptional<PgAttr<import("typebox").TBoolean, typeof PG_DEFAULT>>;
2550
- lastLoginAt: import("typebox").TOptional<import("typebox").TOptional<import("typebox").TString>>;
2551
- organizationId: import("typebox").TOptional<PgAttr<import("typebox").TString, typeof PG_ORGANIZATION>>;
2552
- }>;
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>;
2553
2574
  type CreateUser = Static<typeof createUserSchema>;
2554
2575
  //#endregion
2555
2576
  //#region ../../src/api/users/schemas/updateUserSchema.d.ts
2556
- declare const updateUserSchema: import("typebox").TObject<{
2557
- enabled: import("typebox").TOptional<PgAttr<import("typebox").TBoolean, typeof PG_DEFAULT>>;
2558
- email: import("typebox").TOptional<import("typebox").TOptional<import("typebox").TString>>;
2559
- phoneNumber: import("typebox").TOptional<import("typebox").TOptional<import("typebox").TString>>;
2560
- realm: import("typebox").TOptional<PgAttr<import("typebox").TString, typeof PG_DEFAULT>>;
2561
- username: import("typebox").TOptional<import("typebox").TOptional<import("typebox").TString>>;
2562
- roles: import("typebox").TOptional<PgAttr<import("typebox").TArray<import("typebox").TString>, typeof PG_DEFAULT>>;
2563
- firstName: import("typebox").TOptional<import("typebox").TOptional<import("typebox").TString>>;
2564
- lastName: import("typebox").TOptional<import("typebox").TOptional<import("typebox").TString>>;
2565
- picture: import("typebox").TOptional<import("typebox").TOptional<import("typebox").TString>>;
2566
- emailVerified: import("typebox").TOptional<PgAttr<import("typebox").TBoolean, typeof PG_DEFAULT>>;
2567
- lastLoginAt: import("typebox").TOptional<import("typebox").TOptional<import("typebox").TString>>;
2568
- organizationId: import("typebox").TOptional<PgAttr<import("typebox").TString, typeof PG_ORGANIZATION>>;
2569
- }>;
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>;
2570
2591
  type UpdateUser = Static<typeof updateUserSchema>;
2571
2592
  //#endregion
2572
2593
  //#region ../../src/api/users/schemas/userQuerySchema.d.ts
2573
- declare const userQuerySchema: import("typebox").TObject<{
2574
- page: import("typebox").TOptional<import("typebox").TInteger>;
2575
- size: import("typebox").TOptional<import("typebox").TInteger>;
2576
- sort: import("typebox").TOptional<import("typebox").TString>;
2577
- search: import("typebox").TOptional<import("typebox").TString>;
2578
- email: import("typebox").TOptional<import("typebox").TString>;
2579
- enabled: import("typebox").TOptional<import("typebox").TBoolean>;
2580
- emailVerified: import("typebox").TOptional<import("typebox").TBoolean>;
2581
- roles: import("typebox").TOptional<import("typebox").TArray<import("typebox").TString>>;
2582
- }>;
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>;
2583
2604
  type UserQuery = Static<typeof userQuerySchema>;
2584
2605
  //#endregion
2585
2606
  //#region ../../src/api/users/services/UserService.d.ts
@@ -2587,28 +2608,29 @@ declare class UserService {
2587
2608
  protected readonly alepha: Alepha;
2588
2609
  protected readonly log: import("alepha/logger").Logger;
2589
2610
  protected readonly verificationController: import("alepha/server/links").HttpVirtualClient<VerificationController>;
2611
+ protected readonly verificationService: VerificationService;
2590
2612
  protected readonly realmProvider: RealmProvider;
2591
2613
  protected readonly cryptoProvider: CryptoProvider;
2592
2614
  protected userAudits(realmName?: string): UserAudits | undefined;
2593
2615
  protected userNotifications(realmName?: string): UserNotifications | undefined;
2594
- users(userRealmName?: string): import("alepha/orm").Repository<import("typebox").TObject<{
2595
- 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>;
2596
- version: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("typebox").TInteger, typeof import("alepha/orm").PG_VERSION>, typeof import("alepha/orm").PG_DEFAULT>;
2597
- 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>;
2598
- 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>;
2599
- realm: import("alepha/orm").PgAttr<import("typebox").TString, typeof import("alepha/orm").PG_DEFAULT>;
2600
- username: import("typebox").TOptional<import("typebox").TString>;
2601
- email: import("typebox").TOptional<import("typebox").TString>;
2602
- phoneNumber: import("typebox").TOptional<import("typebox").TString>;
2603
- roles: import("alepha/orm").PgAttr<import("typebox").TArray<import("typebox").TString>, typeof import("alepha/orm").PG_DEFAULT>;
2604
- firstName: import("typebox").TOptional<import("typebox").TString>;
2605
- lastName: import("typebox").TOptional<import("typebox").TString>;
2606
- picture: import("typebox").TOptional<import("typebox").TString>;
2607
- enabled: import("alepha/orm").PgAttr<import("typebox").TBoolean, typeof import("alepha/orm").PG_DEFAULT>;
2608
- emailVerified: import("alepha/orm").PgAttr<import("typebox").TBoolean, typeof import("alepha/orm").PG_DEFAULT>;
2609
- lastLoginAt: import("typebox").TOptional<import("typebox").TString>;
2610
- organizationId: import("alepha/orm").PgAttr<import("typebox").TString, typeof import("alepha/orm").PG_ORGANIZATION>;
2611
- }>>;
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>>;
2612
2634
  /**
2613
2635
  * Request email verification for a user.
2614
2636
  * @param email - The email address to verify.
@@ -2666,163 +2688,176 @@ declare class AdminUserController {
2666
2688
  * role picker and grey out defaults (which cannot be removed).
2667
2689
  */
2668
2690
  readonly findRoles: import("alepha/server").ActionPrimitiveFn<{
2669
- query: import("typebox").TObject<{
2670
- userRealmName: import("typebox").TOptional<import("typebox").TString>;
2671
- }>;
2672
- response: import("typebox").TArray<import("typebox").TObject<{
2673
- name: import("typebox").TString;
2674
- default: import("typebox").TOptional<import("typebox").TBoolean>;
2675
- description: import("typebox").TOptional<import("typebox").TString>;
2676
- }>>;
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>>;
2677
2699
  }>;
2678
2700
  /**
2679
2701
  * Find users with pagination and filtering.
2680
2702
  */
2681
2703
  readonly findUsers: import("alepha/server").ActionPrimitiveFn<{
2682
- query: import("typebox").TObject<{
2683
- page: import("typebox").TOptional<import("typebox").TInteger>;
2684
- size: import("typebox").TOptional<import("typebox").TInteger>;
2685
- sort: import("typebox").TOptional<import("typebox").TString>;
2686
- search: import("typebox").TOptional<import("typebox").TString>;
2687
- email: import("typebox").TOptional<import("typebox").TString>;
2688
- enabled: import("typebox").TOptional<import("typebox").TBoolean>;
2689
- emailVerified: import("typebox").TOptional<import("typebox").TBoolean>;
2690
- roles: import("typebox").TOptional<import("typebox").TArray<import("typebox").TString>>;
2691
- userRealmName: import("typebox").TOptional<import("typebox").TString>;
2692
- }>;
2693
- response: import("alepha").TPage<import("typebox").TObject<{
2694
- id: PgAttr<PgAttr<import("typebox").TString, typeof PG_PRIMARY_KEY>, typeof PG_DEFAULT>;
2695
- version: PgAttr<PgAttr<import("typebox").TInteger, typeof PG_VERSION>, typeof PG_DEFAULT>;
2696
- createdAt: PgAttr<PgAttr<import("typebox").TString, typeof PG_CREATED_AT>, typeof PG_DEFAULT>;
2697
- updatedAt: PgAttr<PgAttr<import("typebox").TString, typeof PG_UPDATED_AT>, typeof PG_DEFAULT>;
2698
- realm: PgAttr<import("typebox").TString, typeof PG_DEFAULT>;
2699
- username: import("typebox").TOptional<import("typebox").TString>;
2700
- email: import("typebox").TOptional<import("typebox").TString>;
2701
- phoneNumber: import("typebox").TOptional<import("typebox").TString>;
2702
- roles: PgAttr<import("typebox").TArray<import("typebox").TString>, typeof PG_DEFAULT>;
2703
- firstName: import("typebox").TOptional<import("typebox").TString>;
2704
- lastName: import("typebox").TOptional<import("typebox").TString>;
2705
- picture: import("typebox").TOptional<import("typebox").TString>;
2706
- enabled: PgAttr<import("typebox").TBoolean, typeof PG_DEFAULT>;
2707
- emailVerified: PgAttr<import("typebox").TBoolean, typeof PG_DEFAULT>;
2708
- lastLoginAt: import("typebox").TOptional<import("typebox").TString>;
2709
- organizationId: PgAttr<import("typebox").TString, typeof PG_ORGANIZATION>;
2710
- }>>;
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>;
2711
2746
  }>;
2712
2747
  /**
2713
2748
  * Get a user by ID.
2714
2749
  */
2715
2750
  readonly getUser: import("alepha/server").ActionPrimitiveFn<{
2716
- params: import("typebox").TObject<{
2717
- id: import("typebox").TString;
2718
- }>;
2719
- query: import("typebox").TObject<{
2720
- userRealmName: import("typebox").TOptional<import("typebox").TString>;
2721
- }>;
2722
- response: import("typebox").TObject<{
2723
- id: PgAttr<PgAttr<import("typebox").TString, typeof PG_PRIMARY_KEY>, typeof PG_DEFAULT>;
2724
- version: PgAttr<PgAttr<import("typebox").TInteger, typeof PG_VERSION>, typeof PG_DEFAULT>;
2725
- createdAt: PgAttr<PgAttr<import("typebox").TString, typeof PG_CREATED_AT>, typeof PG_DEFAULT>;
2726
- updatedAt: PgAttr<PgAttr<import("typebox").TString, typeof PG_UPDATED_AT>, typeof PG_DEFAULT>;
2727
- realm: PgAttr<import("typebox").TString, typeof PG_DEFAULT>;
2728
- username: import("typebox").TOptional<import("typebox").TString>;
2729
- email: import("typebox").TOptional<import("typebox").TString>;
2730
- phoneNumber: import("typebox").TOptional<import("typebox").TString>;
2731
- roles: PgAttr<import("typebox").TArray<import("typebox").TString>, typeof PG_DEFAULT>;
2732
- firstName: import("typebox").TOptional<import("typebox").TString>;
2733
- lastName: import("typebox").TOptional<import("typebox").TString>;
2734
- picture: import("typebox").TOptional<import("typebox").TString>;
2735
- enabled: PgAttr<import("typebox").TBoolean, typeof PG_DEFAULT>;
2736
- emailVerified: PgAttr<import("typebox").TBoolean, typeof PG_DEFAULT>;
2737
- lastLoginAt: import("typebox").TOptional<import("typebox").TString>;
2738
- organizationId: PgAttr<import("typebox").TString, typeof PG_ORGANIZATION>;
2739
- }>;
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>;
2740
2775
  }>;
2741
2776
  /**
2742
2777
  * Create a new user.
2743
2778
  */
2744
2779
  readonly createUser: import("alepha/server").ActionPrimitiveFn<{
2745
- query: import("typebox").TObject<{
2746
- userRealmName: import("typebox").TOptional<import("typebox").TString>;
2747
- }>;
2748
- body: import("typebox").TObject<{
2749
- enabled: import("typebox").TOptional<PgAttr<import("typebox").TBoolean, typeof PG_DEFAULT>>;
2750
- email: import("typebox").TOptional<import("typebox").TOptional<import("typebox").TString>>;
2751
- phoneNumber: import("typebox").TOptional<import("typebox").TOptional<import("typebox").TString>>;
2752
- id: import("typebox").TOptional<PgAttr<PgAttr<import("typebox").TString, typeof PG_PRIMARY_KEY>, typeof PG_DEFAULT>>;
2753
- version: import("typebox").TOptional<PgAttr<PgAttr<import("typebox").TInteger, typeof PG_VERSION>, typeof PG_DEFAULT>>;
2754
- createdAt: import("typebox").TOptional<PgAttr<PgAttr<import("typebox").TString, typeof PG_CREATED_AT>, typeof PG_DEFAULT>>;
2755
- updatedAt: import("typebox").TOptional<PgAttr<PgAttr<import("typebox").TString, typeof PG_UPDATED_AT>, typeof PG_DEFAULT>>;
2756
- username: import("typebox").TOptional<import("typebox").TOptional<import("typebox").TString>>;
2757
- roles: import("typebox").TOptional<PgAttr<import("typebox").TArray<import("typebox").TString>, typeof PG_DEFAULT>>;
2758
- firstName: import("typebox").TOptional<import("typebox").TOptional<import("typebox").TString>>;
2759
- lastName: import("typebox").TOptional<import("typebox").TOptional<import("typebox").TString>>;
2760
- picture: import("typebox").TOptional<import("typebox").TOptional<import("typebox").TString>>;
2761
- emailVerified: import("typebox").TOptional<PgAttr<import("typebox").TBoolean, typeof PG_DEFAULT>>;
2762
- lastLoginAt: import("typebox").TOptional<import("typebox").TOptional<import("typebox").TString>>;
2763
- organizationId: import("typebox").TOptional<PgAttr<import("typebox").TString, typeof PG_ORGANIZATION>>;
2764
- }>;
2765
- response: import("typebox").TObject<{
2766
- id: PgAttr<PgAttr<import("typebox").TString, typeof PG_PRIMARY_KEY>, typeof PG_DEFAULT>;
2767
- version: PgAttr<PgAttr<import("typebox").TInteger, typeof PG_VERSION>, typeof PG_DEFAULT>;
2768
- createdAt: PgAttr<PgAttr<import("typebox").TString, typeof PG_CREATED_AT>, typeof PG_DEFAULT>;
2769
- updatedAt: PgAttr<PgAttr<import("typebox").TString, typeof PG_UPDATED_AT>, typeof PG_DEFAULT>;
2770
- realm: PgAttr<import("typebox").TString, typeof PG_DEFAULT>;
2771
- username: import("typebox").TOptional<import("typebox").TString>;
2772
- email: import("typebox").TOptional<import("typebox").TString>;
2773
- phoneNumber: import("typebox").TOptional<import("typebox").TString>;
2774
- roles: PgAttr<import("typebox").TArray<import("typebox").TString>, typeof PG_DEFAULT>;
2775
- firstName: import("typebox").TOptional<import("typebox").TString>;
2776
- lastName: import("typebox").TOptional<import("typebox").TString>;
2777
- picture: import("typebox").TOptional<import("typebox").TString>;
2778
- enabled: PgAttr<import("typebox").TBoolean, typeof PG_DEFAULT>;
2779
- emailVerified: PgAttr<import("typebox").TBoolean, typeof PG_DEFAULT>;
2780
- lastLoginAt: import("typebox").TOptional<import("typebox").TString>;
2781
- organizationId: PgAttr<import("typebox").TString, typeof PG_ORGANIZATION>;
2782
- }>;
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>;
2783
2818
  }>;
2784
2819
  /**
2785
2820
  * Update a user.
2786
2821
  */
2787
2822
  readonly updateUser: import("alepha/server").ActionPrimitiveFn<{
2788
- params: import("typebox").TObject<{
2789
- id: import("typebox").TString;
2790
- }>;
2791
- query: import("typebox").TObject<{
2792
- userRealmName: import("typebox").TOptional<import("typebox").TString>;
2793
- }>;
2794
- body: import("typebox").TObject<{
2795
- enabled: import("typebox").TOptional<PgAttr<import("typebox").TBoolean, typeof PG_DEFAULT>>;
2796
- email: import("typebox").TOptional<import("typebox").TOptional<import("typebox").TString>>;
2797
- phoneNumber: import("typebox").TOptional<import("typebox").TOptional<import("typebox").TString>>;
2798
- realm: import("typebox").TOptional<PgAttr<import("typebox").TString, typeof PG_DEFAULT>>;
2799
- username: import("typebox").TOptional<import("typebox").TOptional<import("typebox").TString>>;
2800
- roles: import("typebox").TOptional<PgAttr<import("typebox").TArray<import("typebox").TString>, typeof PG_DEFAULT>>;
2801
- firstName: import("typebox").TOptional<import("typebox").TOptional<import("typebox").TString>>;
2802
- lastName: import("typebox").TOptional<import("typebox").TOptional<import("typebox").TString>>;
2803
- picture: import("typebox").TOptional<import("typebox").TOptional<import("typebox").TString>>;
2804
- emailVerified: import("typebox").TOptional<PgAttr<import("typebox").TBoolean, typeof PG_DEFAULT>>;
2805
- lastLoginAt: import("typebox").TOptional<import("typebox").TOptional<import("typebox").TString>>;
2806
- organizationId: import("typebox").TOptional<PgAttr<import("typebox").TString, typeof PG_ORGANIZATION>>;
2807
- }>;
2808
- response: import("typebox").TObject<{
2809
- id: PgAttr<PgAttr<import("typebox").TString, typeof PG_PRIMARY_KEY>, typeof PG_DEFAULT>;
2810
- version: PgAttr<PgAttr<import("typebox").TInteger, typeof PG_VERSION>, typeof PG_DEFAULT>;
2811
- createdAt: PgAttr<PgAttr<import("typebox").TString, typeof PG_CREATED_AT>, typeof PG_DEFAULT>;
2812
- updatedAt: PgAttr<PgAttr<import("typebox").TString, typeof PG_UPDATED_AT>, typeof PG_DEFAULT>;
2813
- realm: PgAttr<import("typebox").TString, typeof PG_DEFAULT>;
2814
- username: import("typebox").TOptional<import("typebox").TString>;
2815
- email: import("typebox").TOptional<import("typebox").TString>;
2816
- phoneNumber: import("typebox").TOptional<import("typebox").TString>;
2817
- roles: PgAttr<import("typebox").TArray<import("typebox").TString>, typeof PG_DEFAULT>;
2818
- firstName: import("typebox").TOptional<import("typebox").TString>;
2819
- lastName: import("typebox").TOptional<import("typebox").TString>;
2820
- picture: import("typebox").TOptional<import("typebox").TString>;
2821
- enabled: PgAttr<import("typebox").TBoolean, typeof PG_DEFAULT>;
2822
- emailVerified: PgAttr<import("typebox").TBoolean, typeof PG_DEFAULT>;
2823
- lastLoginAt: import("typebox").TOptional<import("typebox").TString>;
2824
- organizationId: PgAttr<import("typebox").TString, typeof PG_ORGANIZATION>;
2825
- }>;
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>;
2826
2861
  }>;
2827
2862
  /**
2828
2863
  * Set (or reset) a user's password. Admin-only flow — does NOT
@@ -2830,36 +2865,36 @@ declare class AdminUserController {
2830
2865
  * "credentials" identity for the user (upsert).
2831
2866
  */
2832
2867
  readonly setUserPassword: import("alepha/server").ActionPrimitiveFn<{
2833
- params: import("typebox").TObject<{
2834
- id: import("typebox").TString;
2835
- }>;
2836
- query: import("typebox").TObject<{
2837
- userRealmName: import("typebox").TOptional<import("typebox").TString>;
2838
- }>;
2839
- body: import("typebox").TObject<{
2840
- password: import("typebox").TString;
2841
- }>;
2842
- response: import("typebox").TObject<{
2843
- ok: import("typebox").TBoolean;
2844
- id: import("typebox").TOptional<import("typebox").TUnion<[import("typebox").TString, import("typebox").TInteger]>>;
2845
- count: import("typebox").TOptional<import("typebox").TNumber>;
2846
- }>;
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>;
2847
2882
  }>;
2848
2883
  /**
2849
2884
  * Delete a user.
2850
2885
  */
2851
2886
  readonly deleteUser: import("alepha/server").ActionPrimitiveFn<{
2852
- params: import("typebox").TObject<{
2853
- id: import("typebox").TString;
2854
- }>;
2855
- query: import("typebox").TObject<{
2856
- userRealmName: import("typebox").TOptional<import("typebox").TString>;
2857
- }>;
2858
- response: import("typebox").TObject<{
2859
- ok: import("typebox").TBoolean;
2860
- id: import("typebox").TOptional<import("typebox").TUnion<[import("typebox").TString, import("typebox").TInteger]>>;
2861
- count: import("typebox").TOptional<import("typebox").TNumber>;
2862
- }>;
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>;
2863
2898
  }>;
2864
2899
  /**
2865
2900
  * Delete many users in one request. Each id is processed sequentially so
@@ -2867,15 +2902,118 @@ declare class AdminUserController {
2867
2902
  * id surface with that id in the response.
2868
2903
  */
2869
2904
  readonly deleteUsers: import("alepha/server").ActionPrimitiveFn<{
2870
- query: import("typebox").TObject<{
2871
- userRealmName: import("typebox").TOptional<import("typebox").TString>;
2872
- }>;
2873
- body: import("typebox").TObject<{
2874
- ids: import("typebox").TArray<import("typebox").TString>;
2875
- }>;
2876
- response: import("typebox").TObject<{
2877
- deleted: import("typebox").TArray<import("typebox").TString>;
2878
- }>;
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>;
2879
3017
  }>;
2880
3018
  }
2881
3019
  //#endregion
@@ -2895,68 +3033,68 @@ declare class RealmController {
2895
3033
  * This endpoint is not exposed in the API documentation.
2896
3034
  */
2897
3035
  readonly getRealmConfig: import("alepha/server").ActionPrimitiveFn<{
2898
- query: import("typebox").TObject<{
2899
- realmName: import("typebox").TOptional<import("typebox").TString>;
2900
- }>;
2901
- response: import("typebox").TObject<{
2902
- settings: import("typebox").TObject<{
2903
- displayName: import("typebox").TOptional<import("typebox").TString>;
2904
- description: import("typebox").TOptional<import("typebox").TString>;
2905
- logoUrl: import("typebox").TOptional<import("typebox").TString>;
2906
- registrationAllowed: import("typebox").TBoolean;
2907
- email: import("typebox").TUnion<[import("typebox").TLiteral<"none">, import("typebox").TLiteral<"optional">, import("typebox").TLiteral<"required">]>;
2908
- username: import("typebox").TUnion<[import("typebox").TLiteral<"none">, import("typebox").TLiteral<"optional">, import("typebox").TLiteral<"required">, import("typebox").TLiteral<"email">]>;
2909
- usernameRegExp: import("typebox").TString;
2910
- usernameBlocklist: import("typebox").TArray<import("typebox").TString>;
2911
- phoneNumber: import("typebox").TUnion<[import("typebox").TLiteral<"none">, import("typebox").TLiteral<"optional">, import("typebox").TLiteral<"required">]>;
2912
- verifyEmailRequired: import("typebox").TBoolean;
2913
- verifyPhoneRequired: import("typebox").TBoolean;
2914
- firstNameLastName: import("typebox").TUnion<[import("typebox").TLiteral<"none">, import("typebox").TLiteral<"optional">, import("typebox").TLiteral<"required">]>;
2915
- resetPasswordAllowed: import("typebox").TBoolean;
2916
- captchaRequired: import("typebox").TBoolean;
2917
- adminEmails: import("typebox").TArray<import("typebox").TString>;
2918
- adminUsernames: import("typebox").TArray<import("typebox").TString>;
2919
- defaultRoles: import("typebox").TArray<import("typebox").TString>;
2920
- verifyEmailUrl: import("typebox").TOptional<import("typebox").TString>;
2921
- passwordPolicy: import("typebox").TObject<{
2922
- minLength: import("typebox").TInteger;
2923
- requireUppercase: import("typebox").TBoolean;
2924
- requireLowercase: import("typebox").TBoolean;
2925
- requireNumbers: import("typebox").TBoolean;
2926
- requireSpecialCharacters: import("typebox").TBoolean;
2927
- }>;
2928
- loginRateLimit: import("typebox").TObject<{
2929
- ipMaxAttempts: import("typebox").TInteger;
2930
- accountMaxAttempts: import("typebox").TInteger;
2931
- 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";
2932
3083
  }>;
2933
- registrationIpMaxAttempts: import("typebox").TInteger;
2934
- refreshToken: import("typebox").TObject<{
2935
- expirationIdle: import("typebox").TOptional<import("typebox").TInteger>;
2936
- }>;
2937
- }>;
2938
- realmName: import("typebox").TString;
2939
- authenticationMethods: import("typebox").TArray<import("typebox").TObject<{
2940
- name: import("typebox").TString;
2941
- type: import("typebox").TUnsafe<"OAUTH2" | "OIDC" | "CREDENTIALS">;
2942
- }>>;
2943
- captchaSiteKey: import("typebox").TOptional<import("typebox").TString>;
2944
- federated: import("typebox").TOptional<import("typebox").TObject<{
2945
- brokerUrl: import("typebox").TString;
2946
- providers: import("typebox").TArray<import("typebox").TUnion<[import("typebox").TLiteral<"google">, import("typebox").TLiteral<"apple">]>>;
2947
- }>>;
2948
- }>;
3084
+ }, import("zod/v4/core").$strip>>;
3085
+ captchaSiteKey: import("zod").ZodOptional<import("zod").ZodString>;
3086
+ }, import("zod/v4/core").$strip>;
2949
3087
  }>;
2950
3088
  readonly checkUsernameAvailability: import("alepha/server").ActionPrimitiveFn<{
2951
- query: import("typebox").TObject<{
2952
- realmName: import("typebox").TOptional<import("typebox").TString>;
2953
- }>;
2954
- body: import("typebox").TObject<{
2955
- username: import("typebox").TString;
2956
- }>;
2957
- response: import("typebox").TObject<{
2958
- available: import("typebox").TBoolean;
2959
- }>;
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>;
2960
3098
  }>;
2961
3099
  }
2962
3100
  //#endregion
@@ -2967,11 +3105,11 @@ declare class RealmController {
2967
3105
  * Requires the intent ID from Phase 1, the verification code,
2968
3106
  * and the new password.
2969
3107
  */
2970
- declare const completePasswordResetRequestSchema: import("typebox").TObject<{
2971
- intentId: import("typebox").TString;
2972
- code: import("typebox").TString;
2973
- newPassword: import("typebox").TString;
2974
- }>;
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>;
2975
3113
  type CompletePasswordResetRequest = Static<typeof completePasswordResetRequestSchema>;
2976
3114
  //#endregion
2977
3115
  //#region ../../src/api/users/schemas/passwordResetIntentResponseSchema.d.ts
@@ -2981,10 +3119,10 @@ type CompletePasswordResetRequest = Static<typeof completePasswordResetRequestSc
2981
3119
  * Contains the intent ID needed for Phase 2 completion,
2982
3120
  * along with expiration time.
2983
3121
  */
2984
- declare const passwordResetIntentResponseSchema: import("typebox").TObject<{
2985
- intentId: import("typebox").TString;
2986
- expiresAt: import("typebox").TString;
2987
- }>;
3122
+ declare const passwordResetIntentResponseSchema: import("zod").ZodObject<{
3123
+ intentId: import("zod").ZodString;
3124
+ expiresAt: import("zod").ZodString;
3125
+ }, import("zod/v4/core").$strip>;
2988
3126
  type PasswordResetIntentResponse = Static<typeof passwordResetIntentResponseSchema>;
2989
3127
  //#endregion
2990
3128
  //#region ../../src/api/users/services/CredentialService.d.ts
@@ -3009,53 +3147,57 @@ declare class CredentialService {
3009
3147
  protected sessionAudits(realmName?: string): SessionAudits | undefined;
3010
3148
  protected userNotifications(realmName?: string): UserNotifications | undefined;
3011
3149
  protected readonly intentCache: import("alepha/cache").CacheMiddlewareFn<PasswordResetIntent>;
3012
- users(userRealmName?: string): Repository$1<import("typebox").TObject<{
3013
- id: PgAttr<PgAttr<import("typebox").TString, typeof PG_PRIMARY_KEY>, typeof PG_DEFAULT>;
3014
- version: PgAttr<PgAttr<import("typebox").TInteger, typeof PG_VERSION>, typeof PG_DEFAULT>;
3015
- createdAt: PgAttr<PgAttr<import("typebox").TString, typeof PG_CREATED_AT>, typeof PG_DEFAULT>;
3016
- updatedAt: PgAttr<PgAttr<import("typebox").TString, typeof PG_UPDATED_AT>, typeof PG_DEFAULT>;
3017
- realm: PgAttr<import("typebox").TString, typeof PG_DEFAULT>;
3018
- username: import("typebox").TOptional<import("typebox").TString>;
3019
- email: import("typebox").TOptional<import("typebox").TString>;
3020
- phoneNumber: import("typebox").TOptional<import("typebox").TString>;
3021
- roles: PgAttr<import("typebox").TArray<import("typebox").TString>, typeof PG_DEFAULT>;
3022
- firstName: import("typebox").TOptional<import("typebox").TString>;
3023
- lastName: import("typebox").TOptional<import("typebox").TString>;
3024
- picture: import("typebox").TOptional<import("typebox").TString>;
3025
- enabled: PgAttr<import("typebox").TBoolean, typeof PG_DEFAULT>;
3026
- emailVerified: PgAttr<import("typebox").TBoolean, typeof PG_DEFAULT>;
3027
- lastLoginAt: import("typebox").TOptional<import("typebox").TString>;
3028
- organizationId: PgAttr<import("typebox").TString, typeof PG_ORGANIZATION>;
3029
- }>>;
3030
- sessions(userRealmName?: string): Repository$1<import("typebox").TObject<{
3031
- id: PgAttr<PgAttr<import("typebox").TString, typeof PG_PRIMARY_KEY>, typeof PG_DEFAULT>;
3032
- version: PgAttr<PgAttr<import("typebox").TInteger, typeof PG_VERSION>, typeof PG_DEFAULT>;
3033
- createdAt: PgAttr<PgAttr<import("typebox").TString, typeof PG_CREATED_AT>, typeof PG_DEFAULT>;
3034
- updatedAt: PgAttr<PgAttr<import("typebox").TString, typeof PG_UPDATED_AT>, typeof PG_DEFAULT>;
3035
- refreshToken: import("typebox").TString;
3036
- userId: PgAttr<import("typebox").TString, typeof PG_REF>;
3037
- clientId: import("typebox").TOptional<import("typebox").TString>;
3038
- expiresAt: import("typebox").TString;
3039
- lastUsedAt: import("typebox").TOptional<import("typebox").TString>;
3040
- ip: import("typebox").TOptional<import("typebox").TString>;
3041
- country: import("typebox").TOptional<import("typebox").TString>;
3042
- userAgent: import("typebox").TOptional<import("typebox").TObject<{
3043
- os: import("typebox").TString;
3044
- browser: import("typebox").TString;
3045
- device: import("typebox").TUnsafe<"MOBILE" | "DESKTOP" | "TABLET">;
3046
- }>>;
3047
- }>>;
3048
- identities(userRealmName?: string): Repository$1<import("typebox").TObject<{
3049
- id: PgAttr<PgAttr<import("typebox").TString, typeof PG_PRIMARY_KEY>, typeof PG_DEFAULT>;
3050
- version: PgAttr<PgAttr<import("typebox").TInteger, typeof PG_VERSION>, typeof PG_DEFAULT>;
3051
- createdAt: PgAttr<PgAttr<import("typebox").TString, typeof PG_CREATED_AT>, typeof PG_DEFAULT>;
3052
- updatedAt: PgAttr<PgAttr<import("typebox").TString, typeof PG_UPDATED_AT>, typeof PG_DEFAULT>;
3053
- userId: PgAttr<import("typebox").TString, typeof PG_REF>;
3054
- password: import("typebox").TOptional<import("typebox").TString>;
3055
- provider: import("typebox").TString;
3056
- providerUserId: import("typebox").TOptional<import("typebox").TString>;
3057
- providerData: import("typebox").TOptional<import("typebox").TRecord<string, import("typebox").TAny>>;
3058
- }>>;
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>>;
3059
3201
  /**
3060
3202
  * Validate a password against the realm's password policy.
3061
3203
  */
@@ -3095,12 +3237,12 @@ declare class CredentialService {
3095
3237
  }
3096
3238
  //#endregion
3097
3239
  //#region ../../src/api/users/schemas/completeRegistrationRequestSchema.d.ts
3098
- declare const completeRegistrationRequestSchema: import("typebox").TObject<{
3099
- intentId: import("typebox").TString;
3100
- emailCode: import("typebox").TOptional<import("typebox").TString>;
3101
- phoneCode: import("typebox").TOptional<import("typebox").TString>;
3102
- captchaToken: import("typebox").TOptional<import("typebox").TString>;
3103
- }>;
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>;
3104
3246
  type CompleteRegistrationRequest = Static<typeof completeRegistrationRequestSchema>;
3105
3247
  //#endregion
3106
3248
  //#region ../../src/api/users/schemas/registerRequestSchema.d.ts
@@ -3108,27 +3250,27 @@ type CompleteRegistrationRequest = Static<typeof completeRegistrationRequestSche
3108
3250
  * Schema for user registration request body.
3109
3251
  * Password is always required, other fields depend on realm settings.
3110
3252
  */
3111
- declare const registerRequestSchema: import("typebox").TObject<{
3112
- password: import("typebox").TString;
3113
- username: import("typebox").TOptional<import("typebox").TString>;
3114
- email: import("typebox").TOptional<import("typebox").TString>;
3115
- phoneNumber: import("typebox").TOptional<import("typebox").TString>;
3116
- firstName: import("typebox").TOptional<import("typebox").TString>;
3117
- lastName: import("typebox").TOptional<import("typebox").TString>;
3118
- picture: import("typebox").TOptional<import("typebox").TString>;
3119
- captchaToken: import("typebox").TOptional<import("typebox").TString>;
3120
- }>;
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>;
3121
3263
  type RegisterRequest = Static<typeof registerRequestSchema>;
3122
3264
  //#endregion
3123
3265
  //#region ../../src/api/users/schemas/registrationIntentResponseSchema.d.ts
3124
- declare const registrationIntentResponseSchema: import("typebox").TObject<{
3125
- intentId: import("typebox").TString;
3126
- expectCaptcha: import("typebox").TBoolean;
3127
- captchaSiteKey: import("typebox").TOptional<import("typebox").TString>;
3128
- expectEmailVerification: import("typebox").TBoolean;
3129
- expectPhoneVerification: import("typebox").TBoolean;
3130
- expiresAt: import("typebox").TString;
3131
- }>;
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>;
3132
3274
  type RegistrationIntentResponse = Static<typeof registrationIntentResponseSchema>;
3133
3275
  //#endregion
3134
3276
  //#region ../../src/api/users/services/UsernameSlugger.d.ts
@@ -3249,6 +3391,7 @@ declare class RegistrationService {
3249
3391
  protected readonly dateTimeProvider: DateTimeProvider;
3250
3392
  protected readonly cryptoProvider: CryptoProvider;
3251
3393
  protected readonly verificationController: import("alepha/server/links").HttpVirtualClient<VerificationController>;
3394
+ protected readonly verificationService: VerificationService;
3252
3395
  protected readonly realmProvider: RealmProvider;
3253
3396
  protected readonly credentialService: CredentialService;
3254
3397
  protected readonly captchaProvider: CaptchaProvider;
@@ -3305,135 +3448,135 @@ declare class UserController {
3305
3448
  * Validates data, creates verification sessions, and stores intent in cache.
3306
3449
  */
3307
3450
  readonly createRegistrationIntent: import("alepha/server").ActionPrimitiveFn<{
3308
- body: import("typebox").TObject<{
3309
- password: import("typebox").TString;
3310
- username: import("typebox").TOptional<import("typebox").TString>;
3311
- email: import("typebox").TOptional<import("typebox").TString>;
3312
- phoneNumber: import("typebox").TOptional<import("typebox").TString>;
3313
- firstName: import("typebox").TOptional<import("typebox").TString>;
3314
- lastName: import("typebox").TOptional<import("typebox").TString>;
3315
- picture: import("typebox").TOptional<import("typebox").TString>;
3316
- captchaToken: import("typebox").TOptional<import("typebox").TString>;
3317
- }>;
3318
- query: import("typebox").TObject<{
3319
- userRealmName: import("typebox").TOptional<import("typebox").TString>;
3320
- }>;
3321
- response: import("typebox").TObject<{
3322
- intentId: import("typebox").TString;
3323
- expectCaptcha: import("typebox").TBoolean;
3324
- captchaSiteKey: import("typebox").TOptional<import("typebox").TString>;
3325
- expectEmailVerification: import("typebox").TBoolean;
3326
- expectPhoneVerification: import("typebox").TBoolean;
3327
- expiresAt: import("typebox").TString;
3328
- }>;
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>;
3329
3472
  }>;
3330
3473
  /**
3331
3474
  * Phase 2: Complete registration using an intent.
3332
3475
  * Validates verification codes and creates the user.
3333
3476
  */
3334
3477
  readonly createUserFromIntent: import("alepha/server").ActionPrimitiveFn<{
3335
- body: import("typebox").TObject<{
3336
- intentId: import("typebox").TString;
3337
- emailCode: import("typebox").TOptional<import("typebox").TString>;
3338
- phoneCode: import("typebox").TOptional<import("typebox").TString>;
3339
- captchaToken: import("typebox").TOptional<import("typebox").TString>;
3340
- }>;
3341
- response: import("typebox").TObject<{
3342
- id: PgAttr<PgAttr<import("typebox").TString, typeof PG_PRIMARY_KEY>, typeof PG_DEFAULT>;
3343
- version: PgAttr<PgAttr<import("typebox").TInteger, typeof PG_VERSION>, typeof PG_DEFAULT>;
3344
- createdAt: PgAttr<PgAttr<import("typebox").TString, typeof PG_CREATED_AT>, typeof PG_DEFAULT>;
3345
- updatedAt: PgAttr<PgAttr<import("typebox").TString, typeof PG_UPDATED_AT>, typeof PG_DEFAULT>;
3346
- realm: PgAttr<import("typebox").TString, typeof PG_DEFAULT>;
3347
- username: import("typebox").TOptional<import("typebox").TString>;
3348
- email: import("typebox").TOptional<import("typebox").TString>;
3349
- phoneNumber: import("typebox").TOptional<import("typebox").TString>;
3350
- roles: PgAttr<import("typebox").TArray<import("typebox").TString>, typeof PG_DEFAULT>;
3351
- firstName: import("typebox").TOptional<import("typebox").TString>;
3352
- lastName: import("typebox").TOptional<import("typebox").TString>;
3353
- picture: import("typebox").TOptional<import("typebox").TString>;
3354
- enabled: PgAttr<import("typebox").TBoolean, typeof PG_DEFAULT>;
3355
- emailVerified: PgAttr<import("typebox").TBoolean, typeof PG_DEFAULT>;
3356
- lastLoginAt: import("typebox").TOptional<import("typebox").TString>;
3357
- organizationId: PgAttr<import("typebox").TString, typeof PG_ORGANIZATION>;
3358
- }>;
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>;
3359
3502
  }>;
3360
3503
  /**
3361
3504
  * Phase 1: Create a password reset intent.
3362
3505
  * Validates email, sends verification code, and stores intent in cache.
3363
3506
  */
3364
3507
  readonly createPasswordResetIntent: import("alepha/server").ActionPrimitiveFn<{
3365
- query: import("typebox").TObject<{
3366
- userRealmName: import("typebox").TOptional<import("typebox").TString>;
3367
- }>;
3368
- body: import("typebox").TObject<{
3369
- email: import("typebox").TString;
3370
- }>;
3371
- response: import("typebox").TObject<{
3372
- intentId: import("typebox").TString;
3373
- expiresAt: import("typebox").TString;
3374
- }>;
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>;
3375
3518
  }>;
3376
3519
  /**
3377
3520
  * Phase 2: Complete password reset using an intent.
3378
3521
  * Validates verification code, updates password, and invalidates sessions.
3379
3522
  */
3380
3523
  readonly completePasswordReset: import("alepha/server").ActionPrimitiveFn<{
3381
- body: import("typebox").TObject<{
3382
- intentId: import("typebox").TString;
3383
- code: import("typebox").TString;
3384
- newPassword: import("typebox").TString;
3385
- }>;
3386
- response: import("typebox").TObject<{
3387
- ok: import("typebox").TBoolean;
3388
- id: import("typebox").TOptional<import("typebox").TUnion<[import("typebox").TString, import("typebox").TInteger]>>;
3389
- count: import("typebox").TOptional<import("typebox").TNumber>;
3390
- }>;
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>;
3391
3534
  }>;
3392
3535
  /**
3393
3536
  * @deprecated Use createPasswordResetIntent instead
3394
3537
  */
3395
3538
  requestPasswordReset: import("alepha/server").ActionPrimitiveFn<{
3396
- query: import("typebox").TObject<{
3397
- userRealmName: import("typebox").TOptional<import("typebox").TString>;
3398
- }>;
3399
- body: import("typebox").TObject<{
3400
- email: import("typebox").TString;
3401
- }>;
3402
- response: import("typebox").TObject<{
3403
- success: import("typebox").TBoolean;
3404
- message: import("typebox").TString;
3405
- }>;
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>;
3406
3549
  }>;
3407
3550
  /**
3408
3551
  * @deprecated Use completePasswordReset instead
3409
3552
  */
3410
3553
  validateResetToken: import("alepha/server").ActionPrimitiveFn<{
3411
- query: import("typebox").TObject<{
3412
- email: import("typebox").TString;
3413
- token: import("typebox").TString;
3414
- userRealmName: import("typebox").TOptional<import("typebox").TString>;
3415
- }>;
3416
- response: import("typebox").TObject<{
3417
- valid: import("typebox").TBoolean;
3418
- email: import("typebox").TOptional<import("typebox").TString>;
3419
- }>;
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>;
3420
3563
  }>;
3421
3564
  /**
3422
3565
  * @deprecated Use completePasswordReset instead
3423
3566
  */
3424
3567
  resetPassword: import("alepha/server").ActionPrimitiveFn<{
3425
- query: import("typebox").TObject<{
3426
- userRealmName: import("typebox").TOptional<import("typebox").TString>;
3427
- }>;
3428
- body: import("typebox").TObject<{
3429
- email: import("typebox").TString;
3430
- token: import("typebox").TString;
3431
- newPassword: import("typebox").TString;
3432
- }>;
3433
- response: import("typebox").TObject<{
3434
- success: import("typebox").TBoolean;
3435
- message: import("typebox").TString;
3436
- }>;
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>;
3437
3580
  }>;
3438
3581
  /**
3439
3582
  * Request email verification.
@@ -3442,46 +3585,49 @@ declare class UserController {
3442
3585
  * @param verifyUrl - Required when method is "link". The base URL for the verification link. Token and email will be appended as query params.
3443
3586
  */
3444
3587
  requestEmailVerification: import("alepha/server").ActionPrimitiveFn<{
3445
- query: import("typebox").TObject<{
3446
- userRealmName: import("typebox").TOptional<import("typebox").TString>;
3447
- method: import("typebox").TOptional<import("typebox").TUnsafe<"link" | "code">>;
3448
- }>;
3449
- body: import("typebox").TObject<{
3450
- email: import("typebox").TString;
3451
- }>;
3452
- response: import("typebox").TObject<{
3453
- success: import("typebox").TBoolean;
3454
- message: import("typebox").TString;
3455
- }>;
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>;
3456
3602
  }>;
3457
3603
  /**
3458
3604
  * Verify email with a valid token.
3459
3605
  * Updates the user's emailVerified status.
3460
3606
  */
3461
3607
  verifyEmail: import("alepha/server").ActionPrimitiveFn<{
3462
- query: import("typebox").TObject<{
3463
- userRealmName: import("typebox").TOptional<import("typebox").TString>;
3464
- }>;
3465
- body: import("typebox").TObject<{
3466
- email: import("typebox").TString;
3467
- token: import("typebox").TString;
3468
- }>;
3469
- response: import("typebox").TObject<{
3470
- success: import("typebox").TBoolean;
3471
- message: import("typebox").TString;
3472
- }>;
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>;
3473
3619
  }>;
3474
3620
  /**
3475
3621
  * Check if an email is verified.
3476
3622
  */
3477
3623
  checkEmailVerification: import("alepha/server").ActionPrimitiveFn<{
3478
- query: import("typebox").TObject<{
3479
- email: import("typebox").TString;
3480
- userRealmName: import("typebox").TOptional<import("typebox").TString>;
3481
- }>;
3482
- response: import("typebox").TObject<{
3483
- verified: import("typebox").TBoolean;
3484
- }>;
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>;
3485
3631
  }>;
3486
3632
  }
3487
3633
  //#endregion
@@ -3500,24 +3646,28 @@ declare class UserController {
3500
3646
  declare class UserJobs {
3501
3647
  protected readonly log: import("alepha/logger").Logger;
3502
3648
  protected readonly dateTimeProvider: DateTimeProvider;
3503
- protected readonly sessionRepository: import("alepha/orm").Repository<import("typebox").TObject<{
3504
- 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>;
3505
- version: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("typebox").TInteger, typeof import("alepha/orm").PG_VERSION>, typeof import("alepha/orm").PG_DEFAULT>;
3506
- 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>;
3507
- 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>;
3508
- refreshToken: import("typebox").TString;
3509
- userId: import("alepha/orm").PgAttr<import("typebox").TString, typeof import("alepha/orm").PG_REF>;
3510
- clientId: import("typebox").TOptional<import("typebox").TString>;
3511
- expiresAt: import("typebox").TString;
3512
- lastUsedAt: import("typebox").TOptional<import("typebox").TString>;
3513
- ip: import("typebox").TOptional<import("typebox").TString>;
3514
- country: import("typebox").TOptional<import("typebox").TString>;
3515
- userAgent: import("typebox").TOptional<import("typebox").TObject<{
3516
- os: import("typebox").TString;
3517
- browser: import("typebox").TString;
3518
- device: import("typebox").TUnsafe<"MOBILE" | "DESKTOP" | "TABLET">;
3519
- }>>;
3520
- }>>;
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>>;
3521
3671
  protected readonly realmProvider: RealmProvider;
3522
3672
  /**
3523
3673
  * Purge expired sessions from the database.
@@ -3531,104 +3681,100 @@ declare class UserJobs {
3531
3681
  * The idle sweep is best-effort cleanup — runtime enforcement happens in
3532
3682
  * `SessionService.refreshSession()`.
3533
3683
  */
3534
- readonly purgeExpiredSessions: import("alepha/api/jobs").JobPrimitive<import("typebox").TSchema>;
3684
+ readonly purgeExpiredSessions: import("alepha/api/jobs").JobPrimitive<import("alepha").ZType>;
3535
3685
  }
3536
3686
  //#endregion
3537
3687
  //#region ../../src/api/users/schemas/identityResourceSchema.d.ts
3538
- declare const identityResourceSchema: import("typebox").TObject<{
3539
- id: PgAttr<PgAttr<import("typebox").TString, typeof PG_PRIMARY_KEY>, typeof PG_DEFAULT>;
3540
- version: PgAttr<PgAttr<import("typebox").TInteger, typeof PG_VERSION>, typeof PG_DEFAULT>;
3541
- createdAt: PgAttr<PgAttr<import("typebox").TString, typeof PG_CREATED_AT>, typeof PG_DEFAULT>;
3542
- updatedAt: PgAttr<PgAttr<import("typebox").TString, typeof PG_UPDATED_AT>, typeof PG_DEFAULT>;
3543
- userId: PgAttr<import("typebox").TString, typeof PG_REF>;
3544
- provider: import("typebox").TString;
3545
- providerUserId: import("typebox").TOptional<import("typebox").TString>;
3546
- providerData: import("typebox").TOptional<import("typebox").TRecord<string, import("typebox").TAny>>;
3547
- }>;
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>;
3548
3698
  type IdentityResource = Static<typeof identityResourceSchema>;
3549
3699
  //#endregion
3550
3700
  //#region ../../src/api/users/schemas/loginSchema.d.ts
3551
- declare const loginSchema: import("typebox").TObject<{
3552
- username: import("typebox").TString;
3553
- password: import("typebox").TString;
3554
- }>;
3701
+ declare const loginSchema: import("zod").ZodObject<{
3702
+ username: import("zod").ZodString;
3703
+ password: import("zod").ZodString;
3704
+ }, import("zod/v4/core").$strip>;
3555
3705
  type LoginInput = Static<typeof loginSchema>;
3556
3706
  //#endregion
3557
3707
  //#region ../../src/api/users/schemas/realmConfigSchema.d.ts
3558
- declare const realmConfigSchema: import("typebox").TObject<{
3559
- settings: import("typebox").TObject<{
3560
- displayName: import("typebox").TOptional<import("typebox").TString>;
3561
- description: import("typebox").TOptional<import("typebox").TString>;
3562
- logoUrl: import("typebox").TOptional<import("typebox").TString>;
3563
- registrationAllowed: import("typebox").TBoolean;
3564
- email: import("typebox").TUnion<[import("typebox").TLiteral<"none">, import("typebox").TLiteral<"optional">, import("typebox").TLiteral<"required">]>;
3565
- username: import("typebox").TUnion<[import("typebox").TLiteral<"none">, import("typebox").TLiteral<"optional">, import("typebox").TLiteral<"required">, import("typebox").TLiteral<"email">]>;
3566
- usernameRegExp: import("typebox").TString;
3567
- usernameBlocklist: import("typebox").TArray<import("typebox").TString>;
3568
- phoneNumber: import("typebox").TUnion<[import("typebox").TLiteral<"none">, import("typebox").TLiteral<"optional">, import("typebox").TLiteral<"required">]>;
3569
- verifyEmailRequired: import("typebox").TBoolean;
3570
- verifyPhoneRequired: import("typebox").TBoolean;
3571
- firstNameLastName: import("typebox").TUnion<[import("typebox").TLiteral<"none">, import("typebox").TLiteral<"optional">, import("typebox").TLiteral<"required">]>;
3572
- resetPasswordAllowed: import("typebox").TBoolean;
3573
- captchaRequired: import("typebox").TBoolean;
3574
- adminEmails: import("typebox").TArray<import("typebox").TString>;
3575
- adminUsernames: import("typebox").TArray<import("typebox").TString>;
3576
- defaultRoles: import("typebox").TArray<import("typebox").TString>;
3577
- verifyEmailUrl: import("typebox").TOptional<import("typebox").TString>;
3578
- passwordPolicy: import("typebox").TObject<{
3579
- minLength: import("typebox").TInteger;
3580
- requireUppercase: import("typebox").TBoolean;
3581
- requireLowercase: import("typebox").TBoolean;
3582
- requireNumbers: import("typebox").TBoolean;
3583
- requireSpecialCharacters: import("typebox").TBoolean;
3584
- }>;
3585
- loginRateLimit: import("typebox").TObject<{
3586
- ipMaxAttempts: import("typebox").TInteger;
3587
- accountMaxAttempts: import("typebox").TInteger;
3588
- windowMs: import("typebox").TInteger;
3589
- }>;
3590
- registrationIpMaxAttempts: import("typebox").TInteger;
3591
- refreshToken: import("typebox").TObject<{
3592
- expirationIdle: import("typebox").TOptional<import("typebox").TInteger>;
3593
- }>;
3594
- }>;
3595
- realmName: import("typebox").TString;
3596
- authenticationMethods: import("typebox").TArray<import("typebox").TObject<{
3597
- name: import("typebox").TString;
3598
- type: import("typebox").TUnsafe<"OAUTH2" | "OIDC" | "CREDENTIALS">;
3599
- }>>;
3600
- captchaSiteKey: import("typebox").TOptional<import("typebox").TString>;
3601
- /**
3602
- * Federated (broker) social login. When present, the login UI renders one
3603
- * button per provider linking to `{brokerUrl}/auth/federated/start`.
3604
- */
3605
- federated: import("typebox").TOptional<import("typebox").TObject<{
3606
- brokerUrl: import("typebox").TString;
3607
- providers: import("typebox").TArray<import("typebox").TUnion<[import("typebox").TLiteral<"google">, import("typebox").TLiteral<"apple">]>>;
3608
- }>>;
3609
- }>;
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>;
3610
3756
  type RealmConfig = Static<typeof realmConfigSchema>;
3611
3757
  //#endregion
3612
3758
  //#region ../../src/api/users/schemas/registerSchema.d.ts
3613
- declare const registerSchema: import("typebox").TObject<{
3614
- username: import("typebox").TString;
3615
- email: import("typebox").TString;
3616
- password: import("typebox").TString;
3617
- confirmPassword: import("typebox").TString;
3618
- firstName: import("typebox").TOptional<import("typebox").TString>;
3619
- lastName: import("typebox").TOptional<import("typebox").TString>;
3620
- }>;
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>;
3621
3767
  type RegisterInput = Static<typeof registerSchema>;
3622
3768
  //#endregion
3623
3769
  //#region ../../src/api/users/schemas/resetPasswordSchema.d.ts
3624
- declare const resetPasswordRequestSchema: import("typebox").TObject<{
3625
- email: import("typebox").TString;
3626
- }>;
3627
- declare const resetPasswordSchema: import("typebox").TObject<{
3628
- token: import("typebox").TString;
3629
- password: import("typebox").TString;
3630
- confirmPassword: import("typebox").TString;
3631
- }>;
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>;
3632
3778
  type ResetPasswordRequest = Static<typeof resetPasswordRequestSchema>;
3633
3779
  type ResetPasswordInput = Static<typeof resetPasswordSchema>;
3634
3780
  //#endregion
@@ -3639,57 +3785,61 @@ type ResetPasswordInput = Static<typeof resetPasswordSchema>;
3639
3785
  * back via a left join, so it's optional (a session whose user was deleted
3640
3786
  * still returns; `user` is undefined).
3641
3787
  */
3642
- declare const sessionUserSummarySchema: import("typebox").TObject<{
3643
- id: import("typebox").TString;
3644
- email: import("typebox").TOptional<import("typebox").TString>;
3645
- username: import("typebox").TOptional<import("typebox").TString>;
3646
- firstName: import("typebox").TOptional<import("typebox").TString>;
3647
- lastName: import("typebox").TOptional<import("typebox").TString>;
3648
- }>;
3649
- declare const sessionResourceSchema: import("typebox").TObject<{
3650
- id: import("typebox").TString;
3651
- version: import("typebox").TNumber;
3652
- createdAt: import("typebox").TString;
3653
- updatedAt: import("typebox").TString;
3654
- refreshToken: import("typebox").TString;
3655
- userId: import("typebox").TString;
3656
- expiresAt: import("typebox").TString;
3657
- ip: import("typebox").TOptional<import("typebox").TString>;
3658
- country: import("typebox").TOptional<import("typebox").TString>;
3659
- userAgent: import("typebox").TOptional<import("typebox").TObject<{
3660
- os: import("typebox").TString;
3661
- browser: import("typebox").TString;
3662
- device: import("typebox").TUnsafe<"MOBILE" | "DESKTOP" | "TABLET">;
3663
- }>>;
3664
- user: import("typebox").TOptional<import("typebox").TObject<{
3665
- id: import("typebox").TString;
3666
- email: import("typebox").TOptional<import("typebox").TString>;
3667
- username: import("typebox").TOptional<import("typebox").TString>;
3668
- firstName: import("typebox").TOptional<import("typebox").TString>;
3669
- lastName: import("typebox").TOptional<import("typebox").TString>;
3670
- }>>;
3671
- }>;
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>;
3672
3822
  type SessionResource = Static<typeof sessionResourceSchema>;
3673
3823
  //#endregion
3674
3824
  //#region ../../src/api/users/schemas/userResourceSchema.d.ts
3675
- declare const userResourceSchema: 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
- }>;
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>;
3693
3843
  type UserResource = Static<typeof userResourceSchema>;
3694
3844
  //#endregion
3695
3845
  //#region ../../src/api/users/services/SessionService.d.ts
@@ -3706,53 +3856,57 @@ declare class SessionService {
3706
3856
  protected userAudits(realmName?: string): UserAudits | undefined;
3707
3857
  protected sessionAudits(realmName?: string): SessionAudits | undefined;
3708
3858
  protected userNotifications(realmName?: string): UserNotifications | undefined;
3709
- users(userRealmName?: string): Repository$1<import("typebox").TObject<{
3710
- id: PgAttr<PgAttr<import("typebox").TString, typeof PG_PRIMARY_KEY>, typeof PG_DEFAULT>;
3711
- version: PgAttr<PgAttr<import("typebox").TInteger, typeof PG_VERSION>, typeof PG_DEFAULT>;
3712
- createdAt: PgAttr<PgAttr<import("typebox").TString, typeof PG_CREATED_AT>, typeof PG_DEFAULT>;
3713
- updatedAt: PgAttr<PgAttr<import("typebox").TString, typeof PG_UPDATED_AT>, typeof PG_DEFAULT>;
3714
- realm: PgAttr<import("typebox").TString, typeof PG_DEFAULT>;
3715
- username: import("typebox").TOptional<import("typebox").TString>;
3716
- email: import("typebox").TOptional<import("typebox").TString>;
3717
- phoneNumber: import("typebox").TOptional<import("typebox").TString>;
3718
- roles: PgAttr<import("typebox").TArray<import("typebox").TString>, typeof PG_DEFAULT>;
3719
- firstName: import("typebox").TOptional<import("typebox").TString>;
3720
- lastName: import("typebox").TOptional<import("typebox").TString>;
3721
- picture: import("typebox").TOptional<import("typebox").TString>;
3722
- enabled: PgAttr<import("typebox").TBoolean, typeof PG_DEFAULT>;
3723
- emailVerified: PgAttr<import("typebox").TBoolean, typeof PG_DEFAULT>;
3724
- lastLoginAt: import("typebox").TOptional<import("typebox").TString>;
3725
- organizationId: PgAttr<import("typebox").TString, typeof PG_ORGANIZATION>;
3726
- }>>;
3727
- sessions(userRealmName?: string): Repository$1<import("typebox").TObject<{
3728
- id: PgAttr<PgAttr<import("typebox").TString, typeof PG_PRIMARY_KEY>, typeof PG_DEFAULT>;
3729
- version: PgAttr<PgAttr<import("typebox").TInteger, typeof PG_VERSION>, typeof PG_DEFAULT>;
3730
- createdAt: PgAttr<PgAttr<import("typebox").TString, typeof PG_CREATED_AT>, typeof PG_DEFAULT>;
3731
- updatedAt: PgAttr<PgAttr<import("typebox").TString, typeof PG_UPDATED_AT>, typeof PG_DEFAULT>;
3732
- refreshToken: import("typebox").TString;
3733
- userId: PgAttr<import("typebox").TString, typeof PG_REF>;
3734
- clientId: import("typebox").TOptional<import("typebox").TString>;
3735
- expiresAt: import("typebox").TString;
3736
- lastUsedAt: import("typebox").TOptional<import("typebox").TString>;
3737
- ip: import("typebox").TOptional<import("typebox").TString>;
3738
- country: import("typebox").TOptional<import("typebox").TString>;
3739
- userAgent: import("typebox").TOptional<import("typebox").TObject<{
3740
- os: import("typebox").TString;
3741
- browser: import("typebox").TString;
3742
- device: import("typebox").TUnsafe<"MOBILE" | "DESKTOP" | "TABLET">;
3743
- }>>;
3744
- }>>;
3745
- identities(userRealmName?: string): Repository$1<import("typebox").TObject<{
3746
- id: PgAttr<PgAttr<import("typebox").TString, typeof PG_PRIMARY_KEY>, typeof PG_DEFAULT>;
3747
- version: PgAttr<PgAttr<import("typebox").TInteger, typeof PG_VERSION>, typeof PG_DEFAULT>;
3748
- createdAt: PgAttr<PgAttr<import("typebox").TString, typeof PG_CREATED_AT>, typeof PG_DEFAULT>;
3749
- updatedAt: PgAttr<PgAttr<import("typebox").TString, typeof PG_UPDATED_AT>, typeof PG_DEFAULT>;
3750
- userId: PgAttr<import("typebox").TString, typeof PG_REF>;
3751
- password: import("typebox").TOptional<import("typebox").TString>;
3752
- provider: import("typebox").TString;
3753
- providerUserId: import("typebox").TOptional<import("typebox").TString>;
3754
- providerData: import("typebox").TOptional<import("typebox").TRecord<string, import("typebox").TAny>>;
3755
- }>>;
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>>;
3756
3910
  /**
3757
3911
  * Check if user should be auto-promoted to admin based on adminEmails/adminUsernames settings.
3758
3912
  * If user matches and doesn't have admin role, promote them.
@@ -3800,62 +3954,62 @@ declare class SessionService {
3800
3954
  sessionId: string;
3801
3955
  }>;
3802
3956
  refreshSession(refreshToken: string, userRealmName?: string): Promise<{
3803
- user: PgStatic<import("typebox").TObject<{
3804
- id: PgAttr<PgAttr<import("typebox").TString, typeof PG_PRIMARY_KEY>, typeof PG_DEFAULT>;
3805
- version: PgAttr<PgAttr<import("typebox").TInteger, typeof PG_VERSION>, typeof PG_DEFAULT>;
3806
- createdAt: PgAttr<PgAttr<import("typebox").TString, typeof PG_CREATED_AT>, typeof PG_DEFAULT>;
3807
- updatedAt: PgAttr<PgAttr<import("typebox").TString, typeof PG_UPDATED_AT>, typeof PG_DEFAULT>;
3808
- realm: PgAttr<import("typebox").TString, typeof PG_DEFAULT>;
3809
- username: import("typebox").TOptional<import("typebox").TString>;
3810
- email: import("typebox").TOptional<import("typebox").TString>;
3811
- phoneNumber: import("typebox").TOptional<import("typebox").TString>;
3812
- roles: PgAttr<import("typebox").TArray<import("typebox").TString>, typeof PG_DEFAULT>;
3813
- firstName: import("typebox").TOptional<import("typebox").TString>;
3814
- lastName: import("typebox").TOptional<import("typebox").TString>;
3815
- picture: import("typebox").TOptional<import("typebox").TString>;
3816
- enabled: PgAttr<import("typebox").TBoolean, typeof PG_DEFAULT>;
3817
- emailVerified: PgAttr<import("typebox").TBoolean, typeof PG_DEFAULT>;
3818
- lastLoginAt: import("typebox").TOptional<import("typebox").TString>;
3819
- organizationId: PgAttr<import("typebox").TString, typeof PG_ORGANIZATION>;
3820
- }>, PgRelationMap<import("typebox").TObject<{
3821
- id: PgAttr<PgAttr<import("typebox").TString, typeof PG_PRIMARY_KEY>, typeof PG_DEFAULT>;
3822
- version: PgAttr<PgAttr<import("typebox").TInteger, typeof PG_VERSION>, typeof PG_DEFAULT>;
3823
- createdAt: PgAttr<PgAttr<import("typebox").TString, typeof PG_CREATED_AT>, typeof PG_DEFAULT>;
3824
- updatedAt: PgAttr<PgAttr<import("typebox").TString, typeof PG_UPDATED_AT>, typeof PG_DEFAULT>;
3825
- realm: PgAttr<import("typebox").TString, typeof PG_DEFAULT>;
3826
- username: import("typebox").TOptional<import("typebox").TString>;
3827
- email: import("typebox").TOptional<import("typebox").TString>;
3828
- phoneNumber: import("typebox").TOptional<import("typebox").TString>;
3829
- roles: PgAttr<import("typebox").TArray<import("typebox").TString>, typeof PG_DEFAULT>;
3830
- firstName: import("typebox").TOptional<import("typebox").TString>;
3831
- lastName: import("typebox").TOptional<import("typebox").TString>;
3832
- picture: import("typebox").TOptional<import("typebox").TString>;
3833
- enabled: PgAttr<import("typebox").TBoolean, typeof PG_DEFAULT>;
3834
- emailVerified: PgAttr<import("typebox").TBoolean, typeof PG_DEFAULT>;
3835
- lastLoginAt: import("typebox").TOptional<import("typebox").TString>;
3836
- organizationId: PgAttr<import("typebox").TString, typeof PG_ORGANIZATION>;
3837
- }>>>;
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>>>;
3838
3992
  expiresIn: number;
3839
3993
  sessionId: string;
3840
3994
  }>;
3841
3995
  deleteSession(refreshToken: string, userRealmName?: string): Promise<void>;
3842
3996
  link(provider: string, profile: OAuth2Profile, userRealmName?: string): Promise<{
3843
- email?: string | undefined;
3844
- phoneNumber?: string | undefined;
3845
- username?: string | undefined;
3846
- firstName?: string | undefined;
3847
- lastName?: string | undefined;
3848
- picture?: string | undefined;
3849
- lastLoginAt?: string | undefined;
3850
- enabled: boolean;
3851
3997
  id: string;
3852
3998
  version: number;
3853
3999
  createdAt: string;
3854
4000
  updatedAt: string;
3855
4001
  realm: string;
4002
+ username?: string | undefined;
4003
+ email?: string | undefined;
4004
+ phoneNumber?: string | undefined;
3856
4005
  roles: string[];
4006
+ firstName?: string | undefined;
4007
+ lastName?: string | undefined;
4008
+ picture?: string | undefined;
4009
+ enabled: boolean;
3857
4010
  emailVerified: boolean;
3858
- organizationId: string;
4011
+ lastLoginAt?: string | undefined;
4012
+ organizationId: string | undefined;
3859
4013
  } | {
3860
4014
  sub: string;
3861
4015
  email?: string;
@@ -3906,5 +4060,5 @@ declare class SessionService {
3906
4060
  */
3907
4061
  declare const AlephaApiUsers: import("alepha").Service<import("alepha").Module>;
3908
4062
  //#endregion
3909
- 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 };
3910
4064
  //# sourceMappingURL=index.d.ts.map