@archlast/server 0.1.7 → 0.1.9

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 (372) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +14 -10
  3. package/dist/admin/auth.d.ts +24 -5
  4. package/dist/admin/auth.js +49 -25
  5. package/dist/admin/schema.d.ts +122 -32
  6. package/dist/admin/schema.js +131 -95
  7. package/dist/admin/seed.d.ts +1 -1
  8. package/dist/admin/seed.js +79 -47
  9. package/dist/auth/api-key-resolver.d.ts +1 -1
  10. package/dist/auth/api-key-resolver.js +7 -3
  11. package/dist/auth/archlast-auth-adapter.d.ts +2 -5
  12. package/dist/auth/archlast-auth-adapter.js +1 -1
  13. package/dist/auth/better-auth-adapter.d.ts.map +1 -1
  14. package/dist/auth/better-auth-adapter.js +41 -26
  15. package/dist/auth/better-auth-adapter.js.map +1 -1
  16. package/dist/auth/better-auth-admin.d.ts.map +1 -1
  17. package/dist/auth/better-auth-admin.js +1 -1
  18. package/dist/auth/better-auth-admin.js.map +1 -1
  19. package/dist/auth/better-auth-api-key-resolver.js +1 -1
  20. package/dist/auth/better-auth-api-key-resolver.js.map +1 -1
  21. package/dist/auth/better-auth-instance.d.ts +247 -303
  22. package/dist/auth/better-auth-instance.d.ts.map +1 -1
  23. package/dist/auth/better-auth-instance.js +11 -0
  24. package/dist/auth/better-auth-instance.js.map +1 -1
  25. package/dist/auth/better-auth-seed.d.ts +5 -2
  26. package/dist/auth/better-auth-seed.js +31 -22
  27. package/dist/auth/better-auth-session-adapter.d.ts.map +1 -1
  28. package/dist/auth/better-auth-session-adapter.js +14 -10
  29. package/dist/auth/better-auth-session-adapter.js.map +1 -1
  30. package/dist/auth/errors.d.ts.map +1 -1
  31. package/dist/auth/errors.js +11 -11
  32. package/dist/auth/errors.js.map +1 -1
  33. package/dist/auth/oauth-proxy.d.ts +5 -2
  34. package/dist/auth/oauth-proxy.js +23 -27
  35. package/dist/auth/resolver.d.ts.map +1 -1
  36. package/dist/auth/resolver.js.map +1 -1
  37. package/dist/auth/role-helpers.d.ts +1 -1
  38. package/dist/auth/role-helpers.d.ts.map +1 -1
  39. package/dist/auth/role-helpers.js.map +1 -1
  40. package/dist/auth/session-manager.d.ts +2 -5
  41. package/dist/auth/session-manager.js +16 -6
  42. package/dist/auth/system/better-auth-schema.d.ts.map +1 -1
  43. package/dist/auth/system/better-auth-schema.js +6 -23
  44. package/dist/auth/system/better-auth-schema.js.map +1 -1
  45. package/dist/cache/circuit-breaker.d.ts +81 -0
  46. package/dist/cache/circuit-breaker.d.ts.map +1 -0
  47. package/dist/cache/circuit-breaker.js +170 -0
  48. package/dist/cache/circuit-breaker.js.map +1 -0
  49. package/dist/cache/client.d.ts +6 -3
  50. package/dist/cache/client.d.ts.map +1 -1
  51. package/dist/cache/client.js +12 -53
  52. package/dist/cache/client.js.map +1 -1
  53. package/dist/cache/index.d.ts +2 -0
  54. package/dist/cache/index.d.ts.map +1 -1
  55. package/dist/cache/index.js +5 -1
  56. package/dist/cache/index.js.map +1 -1
  57. package/dist/cache/invalidation-queue.d.ts +63 -0
  58. package/dist/cache/invalidation-queue.d.ts.map +1 -0
  59. package/dist/cache/invalidation-queue.js +196 -0
  60. package/dist/cache/invalidation-queue.js.map +1 -0
  61. package/dist/cache/layers.d.ts +14 -4
  62. package/dist/cache/layers.d.ts.map +1 -1
  63. package/dist/cache/layers.js +66 -72
  64. package/dist/cache/layers.js.map +1 -1
  65. package/dist/cache/manager.d.ts.map +1 -1
  66. package/dist/cache/manager.js +6 -41
  67. package/dist/cache/manager.js.map +1 -1
  68. package/dist/cache/protocol.d.ts +4 -39
  69. package/dist/cache/protocol.d.ts.map +1 -1
  70. package/dist/cache/protocol.js.map +1 -1
  71. package/dist/cache/redis-adapter.d.ts +103 -0
  72. package/dist/cache/redis-adapter.d.ts.map +1 -0
  73. package/dist/cache/redis-adapter.js +424 -0
  74. package/dist/cache/redis-adapter.js.map +1 -0
  75. package/dist/cache/run-sidecar.js +10 -1
  76. package/dist/cache/run-sidecar.js.map +1 -1
  77. package/dist/cache/sidecar-server.d.ts +51 -1
  78. package/dist/cache/sidecar-server.d.ts.map +1 -1
  79. package/dist/cache/sidecar-server.js +368 -22
  80. package/dist/cache/sidecar-server.js.map +1 -1
  81. package/dist/cache/store.d.ts +43 -0
  82. package/dist/cache/store.d.ts.map +1 -1
  83. package/dist/cache/store.js +69 -76
  84. package/dist/cache/store.js.map +1 -1
  85. package/dist/cache/strategies.d.ts +2 -9
  86. package/dist/cache/strategies.d.ts.map +1 -1
  87. package/dist/cache/types.d.ts +130 -0
  88. package/dist/cache/types.d.ts.map +1 -0
  89. package/dist/cache/types.js +60 -0
  90. package/dist/cache/types.js.map +1 -0
  91. package/dist/config/bullmq.d.ts +16 -0
  92. package/dist/config/bullmq.d.ts.map +1 -0
  93. package/dist/config/bullmq.js +103 -0
  94. package/dist/config/bullmq.js.map +1 -0
  95. package/dist/config/index.d.ts +1 -0
  96. package/dist/config/index.d.ts.map +1 -1
  97. package/dist/config/index.js +1 -0
  98. package/dist/config/index.js.map +1 -1
  99. package/dist/config/schema.d.ts +80 -6
  100. package/dist/config/schema.d.ts.map +1 -1
  101. package/dist/config/schema.js +71 -6
  102. package/dist/config/schema.js.map +1 -1
  103. package/dist/config/service.d.ts +54 -4
  104. package/dist/config/service.d.ts.map +1 -1
  105. package/dist/config/service.js +56 -2
  106. package/dist/config/service.js.map +1 -1
  107. package/dist/controllers/admin/admin-tokens.controller.d.ts +131 -115
  108. package/dist/controllers/admin/admin-tokens.controller.js +117 -98
  109. package/dist/controllers/admin/api-keys.controller.d.ts +1 -1
  110. package/dist/controllers/admin/api-keys.controller.d.ts.map +1 -1
  111. package/dist/controllers/admin/api-keys.controller.js.map +1 -1
  112. package/dist/controllers/admin/app-users.controller.d.ts +274 -243
  113. package/dist/controllers/admin/app-users.controller.js +301 -257
  114. package/dist/controllers/admin/auth.controller.d.ts +260 -236
  115. package/dist/controllers/admin/auth.controller.js +197 -174
  116. package/dist/controllers/admin/backup.controller.d.ts.map +1 -1
  117. package/dist/controllers/admin/backup.controller.js.map +1 -1
  118. package/dist/controllers/admin/settings.controller.d.ts +1 -1
  119. package/dist/controllers/admin/storage-stats.controller.d.ts +63 -0
  120. package/dist/controllers/admin/storage-stats.controller.d.ts.map +1 -0
  121. package/dist/controllers/admin/storage-stats.controller.js +33 -0
  122. package/dist/controllers/admin/storage-stats.controller.js.map +1 -0
  123. package/dist/controllers/admin/tenants.controller.d.ts.map +1 -1
  124. package/dist/controllers/admin/tenants.controller.js.map +1 -1
  125. package/dist/controllers/admin/users.controller.d.ts +1 -1
  126. package/dist/controllers/admin/users.controller.d.ts.map +1 -1
  127. package/dist/controllers/admin/users.controller.js.map +1 -1
  128. package/dist/controllers/auth.controller.d.ts +289 -271
  129. package/dist/controllers/auth.controller.js +275 -226
  130. package/dist/controllers/crud-generator.controller.d.ts.map +1 -1
  131. package/dist/controllers/crud-generator.controller.js +4 -2
  132. package/dist/controllers/crud-generator.controller.js.map +1 -1
  133. package/dist/controllers/index.d.ts +1 -1
  134. package/dist/controllers/index.d.ts.map +1 -1
  135. package/dist/controllers/index.js.map +1 -1
  136. package/dist/controllers/introspection.controller.d.ts +666 -0
  137. package/dist/controllers/introspection.controller.d.ts.map +1 -1
  138. package/dist/controllers/introspection.controller.js +628 -0
  139. package/dist/controllers/introspection.controller.js.map +1 -1
  140. package/dist/controllers/invite.controller.d.ts +190 -170
  141. package/dist/controllers/invite.controller.js +183 -164
  142. package/dist/controllers/mfa.controller.d.ts +205 -183
  143. package/dist/controllers/mfa.controller.js +131 -111
  144. package/dist/controllers/otp.controller.d.ts +194 -171
  145. package/dist/controllers/otp.controller.js +192 -175
  146. package/dist/controllers/storage.controller.d.ts.map +1 -1
  147. package/dist/controllers/storage.controller.js.map +1 -1
  148. package/dist/controllers/system.controller.d.ts +21 -3
  149. package/dist/controllers/system.controller.d.ts.map +1 -1
  150. package/dist/controllers/system.controller.js +32 -2
  151. package/dist/controllers/system.controller.js.map +1 -1
  152. package/dist/controllers/tenant.controller.d.ts +258 -227
  153. package/dist/controllers/tenant.controller.js +224 -200
  154. package/dist/db/cachedclient.d.ts +6 -11
  155. package/dist/db/cachedclient.d.ts.map +1 -1
  156. package/dist/db/cachedclient.js +79 -43
  157. package/dist/db/cachedclient.js.map +1 -1
  158. package/dist/db/distributed-client.d.ts +79 -24
  159. package/dist/db/distributed-client.js +23 -24
  160. package/dist/db/factory.d.ts +3 -8
  161. package/dist/db/factory.d.ts.map +1 -1
  162. package/dist/db/factory.js +3 -22
  163. package/dist/db/factory.js.map +1 -1
  164. package/dist/db/socket-client.d.ts +7 -0
  165. package/dist/db/socket-client.d.ts.map +1 -1
  166. package/dist/db/socket-client.js +140 -11
  167. package/dist/db/socket-client.js.map +1 -1
  168. package/dist/deployment/handler.d.ts +10 -2
  169. package/dist/deployment/handler.d.ts.map +1 -1
  170. package/dist/deployment/handler.js +103 -21
  171. package/dist/deployment/handler.js.map +1 -1
  172. package/dist/deployment/persistence.d.ts.map +1 -1
  173. package/dist/deployment/persistence.js +6 -1
  174. package/dist/deployment/persistence.js.map +1 -1
  175. package/dist/docker/compose.d.ts.map +1 -1
  176. package/dist/docker/compose.js +76 -0
  177. package/dist/docker/compose.js.map +1 -1
  178. package/dist/engine/runner.d.ts.map +1 -1
  179. package/dist/engine/runner.js +0 -43
  180. package/dist/engine/runner.js.map +1 -1
  181. package/dist/functions/built-in/auth-apikey.d.ts.map +1 -1
  182. package/dist/functions/built-in/auth-apikey.js.map +1 -1
  183. package/dist/functions/built-in/system-cache.d.ts.map +1 -1
  184. package/dist/functions/built-in/system-cache.js +6 -31
  185. package/dist/functions/built-in/system-cache.js.map +1 -1
  186. package/dist/functions/built-in/system-data.d.ts.map +1 -1
  187. package/dist/functions/built-in/system-data.js +4 -2
  188. package/dist/functions/built-in/system-data.js.map +1 -1
  189. package/dist/functions/definition.d.ts.map +1 -1
  190. package/dist/functions/definition.js +6 -2
  191. package/dist/functions/definition.js.map +1 -1
  192. package/dist/http/router.d.ts +1 -0
  193. package/dist/http/router.d.ts.map +1 -1
  194. package/dist/http/router.js +14 -3
  195. package/dist/http/router.js.map +1 -1
  196. package/dist/http/routes/metrics.d.ts +42 -0
  197. package/dist/http/routes/metrics.d.ts.map +1 -0
  198. package/dist/http/routes/metrics.js +29 -0
  199. package/dist/http/routes/metrics.js.map +1 -0
  200. package/dist/http/server.d.ts +1 -0
  201. package/dist/http/server.d.ts.map +1 -1
  202. package/dist/http/server.js +63 -22
  203. package/dist/http/server.js.map +1 -1
  204. package/dist/ipc/socket-bridge.d.ts +1 -0
  205. package/dist/ipc/socket-bridge.d.ts.map +1 -1
  206. package/dist/ipc/socket-bridge.js +5 -1
  207. package/dist/ipc/socket-bridge.js.map +1 -1
  208. package/dist/jobs/bullmq-adapter.d.ts +154 -0
  209. package/dist/jobs/bullmq-adapter.d.ts.map +1 -0
  210. package/dist/jobs/bullmq-adapter.js +688 -0
  211. package/dist/jobs/bullmq-adapter.js.map +1 -0
  212. package/dist/jobs/bullmq-circuit-breaker.d.ts +133 -0
  213. package/dist/jobs/bullmq-circuit-breaker.d.ts.map +1 -0
  214. package/dist/jobs/bullmq-circuit-breaker.js +323 -0
  215. package/dist/jobs/bullmq-circuit-breaker.js.map +1 -0
  216. package/dist/jobs/bullmq-dlq-manager.d.ts +155 -0
  217. package/dist/jobs/bullmq-dlq-manager.d.ts.map +1 -0
  218. package/dist/jobs/bullmq-dlq-manager.js +325 -0
  219. package/dist/jobs/bullmq-dlq-manager.js.map +1 -0
  220. package/dist/jobs/bullmq-metrics.d.ts +104 -0
  221. package/dist/jobs/bullmq-metrics.d.ts.map +1 -0
  222. package/dist/jobs/bullmq-metrics.js +323 -0
  223. package/dist/jobs/bullmq-metrics.js.map +1 -0
  224. package/dist/jobs/bullmq-priority-service.d.ts +173 -0
  225. package/dist/jobs/bullmq-priority-service.d.ts.map +1 -0
  226. package/dist/jobs/bullmq-priority-service.js +390 -0
  227. package/dist/jobs/bullmq-priority-service.js.map +1 -0
  228. package/dist/jobs/bullmq-scheduler.d.ts +111 -0
  229. package/dist/jobs/bullmq-scheduler.d.ts.map +1 -0
  230. package/dist/jobs/bullmq-scheduler.js +300 -0
  231. package/dist/jobs/bullmq-scheduler.js.map +1 -0
  232. package/dist/jobs/bullmq-worker.d.ts +155 -0
  233. package/dist/jobs/bullmq-worker.d.ts.map +1 -0
  234. package/dist/jobs/bullmq-worker.js +651 -0
  235. package/dist/jobs/bullmq-worker.js.map +1 -0
  236. package/dist/jobs/circuit-breaker.d.ts +120 -0
  237. package/dist/jobs/circuit-breaker.d.ts.map +1 -0
  238. package/dist/jobs/circuit-breaker.js +262 -0
  239. package/dist/jobs/circuit-breaker.js.map +1 -0
  240. package/dist/jobs/index.d.ts +1 -1
  241. package/dist/jobs/index.d.ts.map +1 -1
  242. package/dist/jobs/index.js.map +1 -1
  243. package/dist/jobs/queue.d.ts +120 -1
  244. package/dist/jobs/queue.d.ts.map +1 -1
  245. package/dist/jobs/queue.js +487 -9
  246. package/dist/jobs/queue.js.map +1 -1
  247. package/dist/jobs/redis-connection.d.ts +50 -0
  248. package/dist/jobs/redis-connection.d.ts.map +1 -0
  249. package/dist/jobs/redis-connection.js +123 -0
  250. package/dist/jobs/redis-connection.js.map +1 -0
  251. package/dist/jobs/run-scheduler.js +163 -10
  252. package/dist/jobs/run-scheduler.js.map +1 -1
  253. package/dist/jobs/run-worker.js +101 -9
  254. package/dist/jobs/run-worker.js.map +1 -1
  255. package/dist/jobs/worker-thread.d.ts +6 -0
  256. package/dist/jobs/worker-thread.d.ts.map +1 -1
  257. package/dist/jobs/worker-thread.js +37 -8
  258. package/dist/jobs/worker-thread.js.map +1 -1
  259. package/dist/jobs/worker.d.ts +33 -0
  260. package/dist/jobs/worker.d.ts.map +1 -1
  261. package/dist/jobs/worker.js +358 -115
  262. package/dist/jobs/worker.js.map +1 -1
  263. package/dist/linq/async-enumerable.d.ts.map +1 -1
  264. package/dist/linq/async-enumerable.js.map +1 -1
  265. package/dist/linq/enumerable.d.ts.map +1 -1
  266. package/dist/linq/enumerable.js +10 -10
  267. package/dist/linq/enumerable.js.map +1 -1
  268. package/dist/metrics/collector.d.ts +26 -0
  269. package/dist/metrics/collector.d.ts.map +1 -0
  270. package/dist/metrics/collector.js +103 -0
  271. package/dist/metrics/collector.js.map +1 -0
  272. package/dist/polling/updates.controller.d.ts +57 -0
  273. package/dist/polling/updates.controller.d.ts.map +1 -0
  274. package/dist/polling/updates.controller.js +70 -0
  275. package/dist/polling/updates.controller.js.map +1 -0
  276. package/dist/repository/db-set.d.ts.map +1 -1
  277. package/dist/repository/db-set.js +12 -8
  278. package/dist/repository/db-set.js.map +1 -1
  279. package/dist/repository/ef-core.d.ts.map +1 -1
  280. package/dist/repository/ef-core.js +6 -6
  281. package/dist/repository/ef-core.js.map +1 -1
  282. package/dist/repository/factory.d.ts +1 -1
  283. package/dist/repository/factory.d.ts.map +1 -1
  284. package/dist/repository/factory.js.map +1 -1
  285. package/dist/repository/interfaces.d.ts.map +1 -1
  286. package/dist/repository/interfaces.js.map +1 -1
  287. package/dist/repository/queryable.d.ts.map +1 -1
  288. package/dist/repository/queryable.js.map +1 -1
  289. package/dist/rpc/adapter.d.ts.map +1 -1
  290. package/dist/rpc/adapter.js.map +1 -1
  291. package/dist/rpc/router.d.ts +2 -2
  292. package/dist/rpc/router.d.ts.map +1 -1
  293. package/dist/rpc/router.js +1 -1
  294. package/dist/rpc/router.js.map +1 -1
  295. package/dist/schema/input-types.d.ts +1 -1
  296. package/dist/schema/input-types.d.ts.map +1 -1
  297. package/dist/schema/input-types.js +4 -3
  298. package/dist/schema/input-types.js.map +1 -1
  299. package/dist/schema/modifiers.d.ts +2 -1
  300. package/dist/schema/modifiers.d.ts.map +1 -1
  301. package/dist/schema/modifiers.js +41 -5
  302. package/dist/schema/modifiers.js.map +1 -1
  303. package/dist/schema/relationship-types.d.ts +7 -2
  304. package/dist/schema/relationship-types.js +1 -1
  305. package/dist/schema/type-helpers.d.ts +35 -0
  306. package/dist/schema/type-helpers.d.ts.map +1 -1
  307. package/dist/schema/type-helpers.js +32 -21
  308. package/dist/schema/type-helpers.js.map +1 -1
  309. package/dist/schema/types.d.ts.map +1 -1
  310. package/dist/schema/validators.d.ts +1 -1
  311. package/dist/schema/validators.d.ts.map +1 -1
  312. package/dist/schema/validators.js +27 -16
  313. package/dist/schema/validators.js.map +1 -1
  314. package/dist/services/admin/app-users.service.d.ts +1 -1
  315. package/dist/services/admin/app-users.service.js +31 -38
  316. package/dist/services/admin/auth.service.d.ts +1 -1
  317. package/dist/services/admin/auth.service.js +11 -5
  318. package/dist/services/admin/backup/BackupOrchestrator.d.ts.map +1 -1
  319. package/dist/services/admin/backup/BackupOrchestrator.js +4 -7
  320. package/dist/services/admin/backup/BackupOrchestrator.js.map +1 -1
  321. package/dist/services/admin/backup/StorageStreamer.d.ts +3 -3
  322. package/dist/services/admin/backup/StorageStreamer.d.ts.map +1 -1
  323. package/dist/services/admin/backup/StorageStreamer.js +16 -55
  324. package/dist/services/admin/backup/StorageStreamer.js.map +1 -1
  325. package/dist/services/admin/backup/ZipComposer.d.ts +2 -0
  326. package/dist/services/admin/backup/ZipComposer.d.ts.map +1 -1
  327. package/dist/services/admin/backup/ZipComposer.js +23 -0
  328. package/dist/services/admin/backup/ZipComposer.js.map +1 -1
  329. package/dist/services/admin/backup.service.d.ts.map +1 -1
  330. package/dist/services/admin/backup.service.js.map +1 -1
  331. package/dist/services/admin/data.service.d.ts.map +1 -1
  332. package/dist/services/admin/data.service.js +287 -286
  333. package/dist/services/admin/data.service.js.map +1 -1
  334. package/dist/services/admin/tenants.service.d.ts.map +1 -1
  335. package/dist/services/admin/tenants.service.js.map +1 -1
  336. package/dist/services/auth.service.d.ts +2 -3
  337. package/dist/services/auth.service.js +16 -16
  338. package/dist/services/introspection.service.d.ts.map +1 -1
  339. package/dist/services/introspection.service.js +6 -3
  340. package/dist/services/introspection.service.js.map +1 -1
  341. package/dist/services/invite.service.d.ts +1 -1
  342. package/dist/services/invite.service.js +17 -15
  343. package/dist/services/storage.service.d.ts.map +1 -1
  344. package/dist/services/storage.service.js +35 -4
  345. package/dist/services/storage.service.js.map +1 -1
  346. package/dist/services/system.service.d.ts +4 -0
  347. package/dist/services/system.service.d.ts.map +1 -1
  348. package/dist/services/system.service.js +43 -1
  349. package/dist/services/system.service.js.map +1 -1
  350. package/dist/services/tenant.service.d.ts +1 -1
  351. package/dist/services/tenant.service.js +43 -31
  352. package/dist/sse/subscriptions.controller.d.ts +57 -0
  353. package/dist/sse/subscriptions.controller.d.ts.map +1 -0
  354. package/dist/sse/subscriptions.controller.js +127 -0
  355. package/dist/sse/subscriptions.controller.js.map +1 -0
  356. package/dist/startup/bootstrap.d.ts +13 -2
  357. package/dist/startup/bootstrap.d.ts.map +1 -1
  358. package/dist/startup/bootstrap.js +85 -13
  359. package/dist/startup/bootstrap.js.map +1 -1
  360. package/dist/storage/s3-backend.d.ts.map +1 -1
  361. package/dist/storage/s3-backend.js +3 -3
  362. package/dist/storage/s3-backend.js.map +1 -1
  363. package/dist/websocket/server.d.ts.map +1 -1
  364. package/dist/websocket/server.js +14 -3
  365. package/dist/websocket/server.js.map +1 -1
  366. package/docker/README.md +299 -1
  367. package/package.json +5 -1
  368. package/templates/.env.example +76 -16
  369. package/templates/archlast.config.js +15 -1
  370. package/templates/docker-compose.dev.yml +8 -8
  371. package/templates/docker-compose.prod.yml +29 -12
  372. package/templates/docker-compose.yml +112 -28
@@ -43,306 +43,350 @@ exports.adminAppUsersController = new elysia_1.Elysia({
43
43
  * GET /_archlast/admin/app-users
44
44
  * List all application users (with pagination support)
45
45
  */
46
- .get("/", async (ctx) => {
47
- const { rawDb, db, request, set, query } = (0, context_helper_js_1.getCtx)(ctx);
48
- const auth = await (0, auth_js_1.requireAdminAuth)(rawDb, request);
49
- if (!auth) {
50
- set.status = 401;
51
- return { error: "Unauthorized" };
52
- }
53
- const page = Number(query.page ?? 0);
54
- const pageSize = Number(query.pageSize ?? 25);
55
- const search = query.search?.trim();
56
- const filterParam = query.filter;
57
- const result = await adminAppUsersService.listUsers({
58
- db,
59
- page,
60
- pageSize,
61
- search,
62
- filterParam,
63
- });
64
- // When no pagination params are provided (default non-paginated call),
65
- // return just the users array for backward compatibility with useAppUsers hook
66
- const isPaginated = query.page !== undefined || query.pageSize !== undefined ||
67
- query.search?.trim() || query.filter;
68
- if (!isPaginated) {
69
- return result.users;
70
- }
71
- return result;
72
- }, {
73
- detail: { summary: "List app users" },
74
- query: elysia_1.t.Object({
75
- page: elysia_1.t.Optional(elysia_1.t.String()),
76
- pageSize: elysia_1.t.Optional(elysia_1.t.String()),
77
- search: elysia_1.t.Optional(elysia_1.t.String()),
78
- filter: elysia_1.t.Optional(elysia_1.t.String()),
79
- }),
80
- })
46
+ .get(
47
+ "/",
48
+ async (ctx) => {
49
+ const { rawDb, db, request, set, query } = (0, context_helper_js_1.getCtx)(ctx);
50
+ const auth = await (0, auth_js_1.requireAdminAuth)(rawDb, request);
51
+ if (!auth) {
52
+ set.status = 401;
53
+ return { error: "Unauthorized" };
54
+ }
55
+ const page = Number(query.page ?? 0);
56
+ const pageSize = Number(query.pageSize ?? 25);
57
+ const search = query.search?.trim();
58
+ const filterParam = query.filter;
59
+ const result = await adminAppUsersService.listUsers({
60
+ db,
61
+ page,
62
+ pageSize,
63
+ search,
64
+ filterParam,
65
+ });
66
+ // When no pagination params are provided (default non-paginated call),
67
+ // return just the users array for backward compatibility with useAppUsers hook
68
+ const isPaginated =
69
+ query.page !== undefined ||
70
+ query.pageSize !== undefined ||
71
+ query.search?.trim() ||
72
+ query.filter;
73
+ if (!isPaginated) {
74
+ return result.users;
75
+ }
76
+ return result;
77
+ },
78
+ {
79
+ detail: { summary: "List app users" },
80
+ query: elysia_1.t.Object({
81
+ page: elysia_1.t.Optional(elysia_1.t.String()),
82
+ pageSize: elysia_1.t.Optional(elysia_1.t.String()),
83
+ search: elysia_1.t.Optional(elysia_1.t.String()),
84
+ filter: elysia_1.t.Optional(elysia_1.t.String()),
85
+ }),
86
+ }
87
+ )
81
88
  /**
82
89
  * GET /_archlast/admin/app-users/:id
83
90
  * Get single user details
84
91
  */
85
- .get("/:id", async (ctx) => {
86
- const { rawDb, db, params, request, set } = (0, context_helper_js_1.getCtx)(ctx);
87
- const auth = await (0, auth_js_1.requireAdminAuth)(rawDb, request);
88
- if (!auth) {
89
- set.status = 401;
90
- return { error: "Unauthorized" };
91
- }
92
- const user = await adminAppUsersService.getUser({ db, userId: params.id });
93
- if (!user) {
94
- set.status = 404;
95
- return { error: "User not found" };
96
- }
97
- return user;
98
- }, {
99
- params: elysia_1.t.Object({ id: elysia_1.t.String() }),
100
- detail: { summary: "Get app user" },
101
- })
92
+ .get(
93
+ "/:id",
94
+ async (ctx) => {
95
+ const { rawDb, db, params, request, set } = (0, context_helper_js_1.getCtx)(ctx);
96
+ const auth = await (0, auth_js_1.requireAdminAuth)(rawDb, request);
97
+ if (!auth) {
98
+ set.status = 401;
99
+ return { error: "Unauthorized" };
100
+ }
101
+ const user = await adminAppUsersService.getUser({ db, userId: params.id });
102
+ if (!user) {
103
+ set.status = 404;
104
+ return { error: "User not found" };
105
+ }
106
+ return user;
107
+ },
108
+ {
109
+ params: elysia_1.t.Object({ id: elysia_1.t.String() }),
110
+ detail: { summary: "Get app user" },
111
+ }
112
+ )
102
113
  /**
103
114
  * POST /_archlast/admin/app-users
104
115
  * Create application user
105
116
  */
106
- .post("/", async (ctx) => {
107
- const { rawDb, db, body, request, set } = (0, context_helper_js_1.getCtx)(ctx);
108
- const auth = await (0, auth_js_1.requireAdminAuth)(rawDb, request);
109
- if (!auth) {
110
- set.status = 401;
111
- return { error: "Unauthorized" };
112
- }
113
- try {
114
- const result = await adminAppUsersService.createUser({
115
- db,
116
- email: body.email,
117
- password: body.password,
118
- name: body.name,
119
- emailVerified: body.emailVerified,
120
- imageUrl: body.imageUrl,
121
- });
122
- set.status = 201;
123
- return result;
124
- }
125
- catch (error) {
126
- if (error instanceof app_users_service_js_1.AdminAppUsersError) {
127
- set.status = error.statusCode;
128
- return { error: error.message };
117
+ .post(
118
+ "/",
119
+ async (ctx) => {
120
+ const { rawDb, db, body, request, set } = (0, context_helper_js_1.getCtx)(ctx);
121
+ const auth = await (0, auth_js_1.requireAdminAuth)(rawDb, request);
122
+ if (!auth) {
123
+ set.status = 401;
124
+ return { error: "Unauthorized" };
125
+ }
126
+ try {
127
+ const result = await adminAppUsersService.createUser({
128
+ db,
129
+ email: body.email,
130
+ password: body.password,
131
+ name: body.name,
132
+ emailVerified: body.emailVerified,
133
+ imageUrl: body.imageUrl,
134
+ });
135
+ set.status = 201;
136
+ return result;
137
+ } catch (error) {
138
+ if (error instanceof app_users_service_js_1.AdminAppUsersError) {
139
+ set.status = error.statusCode;
140
+ return { error: error.message };
141
+ }
142
+ throw error;
143
+ }
144
+ },
145
+ {
146
+ body: CreateUserSchema,
147
+ detail: { summary: "Create app user" },
129
148
  }
130
- throw error;
131
- }
132
- }, {
133
- body: CreateUserSchema,
134
- detail: { summary: "Create app user" },
135
- })
149
+ )
136
150
  /**
137
151
  * PATCH /_archlast/admin/app-users/:id
138
152
  * Update application user
139
153
  */
140
- .patch("/:id", async (ctx) => {
141
- const { rawDb, db, params, body, request, set } = (0, context_helper_js_1.getCtx)(ctx);
142
- const auth = await (0, auth_js_1.requireAdminAuth)(rawDb, request);
143
- if (!auth) {
144
- set.status = 401;
145
- return { error: "Unauthorized" };
146
- }
147
- try {
148
- return await adminAppUsersService.updateUser({
149
- db,
150
- userId: params.id,
151
- email: body.email,
152
- password: body.password,
153
- name: body.name,
154
- emailVerified: body.emailVerified,
155
- imageUrl: body.imageUrl,
156
- });
157
- }
158
- catch (error) {
159
- if (error instanceof app_users_service_js_1.AdminAppUsersError) {
160
- set.status = error.statusCode;
161
- return { error: error.message };
154
+ .patch(
155
+ "/:id",
156
+ async (ctx) => {
157
+ const { rawDb, db, params, body, request, set } = (0, context_helper_js_1.getCtx)(ctx);
158
+ const auth = await (0, auth_js_1.requireAdminAuth)(rawDb, request);
159
+ if (!auth) {
160
+ set.status = 401;
161
+ return { error: "Unauthorized" };
162
+ }
163
+ try {
164
+ return await adminAppUsersService.updateUser({
165
+ db,
166
+ userId: params.id,
167
+ email: body.email,
168
+ password: body.password,
169
+ name: body.name,
170
+ emailVerified: body.emailVerified,
171
+ imageUrl: body.imageUrl,
172
+ });
173
+ } catch (error) {
174
+ if (error instanceof app_users_service_js_1.AdminAppUsersError) {
175
+ set.status = error.statusCode;
176
+ return { error: error.message };
177
+ }
178
+ throw error;
179
+ }
180
+ },
181
+ {
182
+ params: elysia_1.t.Object({ id: elysia_1.t.String() }),
183
+ body: UpdateUserSchema,
184
+ detail: { summary: "Update app user" },
162
185
  }
163
- throw error;
164
- }
165
- }, {
166
- params: elysia_1.t.Object({ id: elysia_1.t.String() }),
167
- body: UpdateUserSchema,
168
- detail: { summary: "Update app user" },
169
- })
186
+ )
170
187
  /**
171
188
  * DELETE /_archlast/admin/app-users/:id
172
189
  * Delete application user
173
190
  */
174
- .delete("/:id", async (ctx) => {
175
- const { rawDb, db, params, request, set } = (0, context_helper_js_1.getCtx)(ctx);
176
- const auth = await (0, auth_js_1.requireAdminAuth)(rawDb, request);
177
- if (!auth) {
178
- set.status = 401;
179
- return { error: "Unauthorized" };
180
- }
181
- try {
182
- await adminAppUsersService.deleteUser({ db, userId: params.id });
183
- return { success: true };
184
- }
185
- catch (error) {
186
- if (error instanceof app_users_service_js_1.AdminAppUsersError) {
187
- set.status = error.statusCode;
188
- return { error: error.message };
191
+ .delete(
192
+ "/:id",
193
+ async (ctx) => {
194
+ const { rawDb, db, params, request, set } = (0, context_helper_js_1.getCtx)(ctx);
195
+ const auth = await (0, auth_js_1.requireAdminAuth)(rawDb, request);
196
+ if (!auth) {
197
+ set.status = 401;
198
+ return { error: "Unauthorized" };
199
+ }
200
+ try {
201
+ await adminAppUsersService.deleteUser({ db, userId: params.id });
202
+ return { success: true };
203
+ } catch (error) {
204
+ if (error instanceof app_users_service_js_1.AdminAppUsersError) {
205
+ set.status = error.statusCode;
206
+ return { error: error.message };
207
+ }
208
+ throw error;
209
+ }
210
+ },
211
+ {
212
+ params: elysia_1.t.Object({ id: elysia_1.t.String() }),
213
+ detail: { summary: "Delete app user" },
189
214
  }
190
- throw error;
191
- }
192
- }, {
193
- params: elysia_1.t.Object({ id: elysia_1.t.String() }),
194
- detail: { summary: "Delete app user" },
195
- })
215
+ )
196
216
  /**
197
217
  * GET /_archlast/admin/app-users/:id/sessions
198
218
  * List user's sessions
199
219
  */
200
- .get("/:id/sessions", async (ctx) => {
201
- const { rawDb, db, params, request, set } = (0, context_helper_js_1.getCtx)(ctx);
202
- const auth = await (0, auth_js_1.requireAdminAuth)(rawDb, request);
203
- if (!auth) {
204
- set.status = 401;
205
- return { error: "Unauthorized" };
206
- }
207
- const sessions = await adminAppUsersService.listUserSessions({
208
- db,
209
- userId: params.id,
210
- });
211
- return sessions;
212
- }, {
213
- params: elysia_1.t.Object({ id: elysia_1.t.String() }),
214
- detail: { summary: "List user sessions" },
215
- })
220
+ .get(
221
+ "/:id/sessions",
222
+ async (ctx) => {
223
+ const { rawDb, db, params, request, set } = (0, context_helper_js_1.getCtx)(ctx);
224
+ const auth = await (0, auth_js_1.requireAdminAuth)(rawDb, request);
225
+ if (!auth) {
226
+ set.status = 401;
227
+ return { error: "Unauthorized" };
228
+ }
229
+ const sessions = await adminAppUsersService.listUserSessions({
230
+ db,
231
+ userId: params.id,
232
+ });
233
+ return sessions;
234
+ },
235
+ {
236
+ params: elysia_1.t.Object({ id: elysia_1.t.String() }),
237
+ detail: { summary: "List user sessions" },
238
+ }
239
+ )
216
240
  /**
217
241
  * POST /_archlast/admin/app-users/:id/sessions/revoke-all
218
242
  * Revoke all user sessions
219
243
  */
220
- .post("/:id/sessions/revoke-all", async (ctx) => {
221
- const { rawDb, db, params, request, set } = (0, context_helper_js_1.getCtx)(ctx);
222
- const auth = await (0, auth_js_1.requireAdminAuth)(rawDb, request);
223
- if (!auth) {
224
- set.status = 401;
225
- return { error: "Unauthorized" };
226
- }
227
- const result = await adminAppUsersService.revokeAllUserSessions({
228
- db,
229
- userId: params.id,
230
- });
231
- return result;
232
- }, {
233
- params: elysia_1.t.Object({ id: elysia_1.t.String() }),
234
- detail: { summary: "Revoke all user sessions" },
235
- })
244
+ .post(
245
+ "/:id/sessions/revoke-all",
246
+ async (ctx) => {
247
+ const { rawDb, db, params, request, set } = (0, context_helper_js_1.getCtx)(ctx);
248
+ const auth = await (0, auth_js_1.requireAdminAuth)(rawDb, request);
249
+ if (!auth) {
250
+ set.status = 401;
251
+ return { error: "Unauthorized" };
252
+ }
253
+ const result = await adminAppUsersService.revokeAllUserSessions({
254
+ db,
255
+ userId: params.id,
256
+ });
257
+ return result;
258
+ },
259
+ {
260
+ params: elysia_1.t.Object({ id: elysia_1.t.String() }),
261
+ detail: { summary: "Revoke all user sessions" },
262
+ }
263
+ )
236
264
  /**
237
265
  * POST /_archlast/admin/app-users/:id/reset-password
238
266
  * Trigger password reset
239
267
  */
240
- .post("/:id/reset-password", async (ctx) => {
241
- const { rawDb, db, email, params, request, set } = (0, context_helper_js_1.getCtx)(ctx);
242
- const auth = await (0, auth_js_1.requireAdminAuth)(rawDb, request);
243
- if (!auth) {
244
- set.status = 401;
245
- return { error: "Unauthorized" };
246
- }
247
- try {
248
- const result = await adminAppUsersService.triggerPasswordReset({
249
- db,
250
- emailService: (0, service_js_1.getEmailService)(),
251
- userId: params.id,
252
- });
253
- return result;
254
- }
255
- catch (error) {
256
- if (error instanceof app_users_service_js_1.AdminAppUsersError) {
257
- set.status = error.statusCode;
258
- return { error: error.message };
268
+ .post(
269
+ "/:id/reset-password",
270
+ async (ctx) => {
271
+ const { rawDb, db, email, params, request, set } = (0, context_helper_js_1.getCtx)(ctx);
272
+ const auth = await (0, auth_js_1.requireAdminAuth)(rawDb, request);
273
+ if (!auth) {
274
+ set.status = 401;
275
+ return { error: "Unauthorized" };
276
+ }
277
+ try {
278
+ const result = await adminAppUsersService.triggerPasswordReset({
279
+ db,
280
+ emailService: (0, service_js_1.getEmailService)(),
281
+ userId: params.id,
282
+ });
283
+ return result;
284
+ } catch (error) {
285
+ if (error instanceof app_users_service_js_1.AdminAppUsersError) {
286
+ set.status = error.statusCode;
287
+ return { error: error.message };
288
+ }
289
+ throw error;
290
+ }
291
+ },
292
+ {
293
+ params: elysia_1.t.Object({ id: elysia_1.t.String() }),
294
+ detail: { summary: "Trigger password reset" },
259
295
  }
260
- throw error;
261
- }
262
- }, {
263
- params: elysia_1.t.Object({ id: elysia_1.t.String() }),
264
- detail: { summary: "Trigger password reset" },
265
- })
296
+ )
266
297
  /**
267
298
  * GET /_archlast/admin/app-users/:id/memberships
268
299
  * List user memberships
269
300
  */
270
- .get("/:id/memberships", async (ctx) => {
271
- const { rawDb, db, params, request, set } = (0, context_helper_js_1.getCtx)(ctx);
272
- const auth = await (0, auth_js_1.requireAdminAuth)(rawDb, request);
273
- if (!auth) {
274
- set.status = 401;
275
- return { error: "Unauthorized" };
276
- }
277
- const memberships = await adminAppUsersService.listUserMemberships({
278
- db,
279
- userId: params.id,
280
- });
281
- return { memberships };
282
- }, {
283
- params: elysia_1.t.Object({ id: elysia_1.t.String() }),
284
- detail: { summary: "List user memberships" },
285
- })
301
+ .get(
302
+ "/:id/memberships",
303
+ async (ctx) => {
304
+ const { rawDb, db, params, request, set } = (0, context_helper_js_1.getCtx)(ctx);
305
+ const auth = await (0, auth_js_1.requireAdminAuth)(rawDb, request);
306
+ if (!auth) {
307
+ set.status = 401;
308
+ return { error: "Unauthorized" };
309
+ }
310
+ const memberships = await adminAppUsersService.listUserMemberships({
311
+ db,
312
+ userId: params.id,
313
+ });
314
+ return { memberships };
315
+ },
316
+ {
317
+ params: elysia_1.t.Object({ id: elysia_1.t.String() }),
318
+ detail: { summary: "List user memberships" },
319
+ }
320
+ )
286
321
  /**
287
322
  * POST /_archlast/admin/app-users/:id/memberships
288
323
  * Add user to tenant
289
324
  */
290
- .post("/:id/memberships", async (ctx) => {
291
- const { rawDb, db, params, body, request, set } = (0, context_helper_js_1.getCtx)(ctx);
292
- const auth = await (0, auth_js_1.requireAdminAuth)(rawDb, request);
293
- if (!auth) {
294
- set.status = 401;
295
- return { error: "Unauthorized" };
296
- }
297
- try {
298
- const result = await adminAppUsersService.addUserMembership({
299
- db,
300
- userId: params.id,
301
- tenantId: body.tenantId,
302
- role: body.role,
303
- });
304
- set.status = 201;
305
- return result;
306
- }
307
- catch (error) {
308
- if (error instanceof app_users_service_js_1.AdminAppUsersError) {
309
- set.status = error.statusCode;
310
- return { error: error.message };
325
+ .post(
326
+ "/:id/memberships",
327
+ async (ctx) => {
328
+ const { rawDb, db, params, body, request, set } = (0, context_helper_js_1.getCtx)(ctx);
329
+ const auth = await (0, auth_js_1.requireAdminAuth)(rawDb, request);
330
+ if (!auth) {
331
+ set.status = 401;
332
+ return { error: "Unauthorized" };
333
+ }
334
+ try {
335
+ const result = await adminAppUsersService.addUserMembership({
336
+ db,
337
+ userId: params.id,
338
+ tenantId: body.tenantId,
339
+ role: body.role,
340
+ });
341
+ set.status = 201;
342
+ return result;
343
+ } catch (error) {
344
+ if (error instanceof app_users_service_js_1.AdminAppUsersError) {
345
+ set.status = error.statusCode;
346
+ return { error: error.message };
347
+ }
348
+ throw error;
349
+ }
350
+ },
351
+ {
352
+ params: elysia_1.t.Object({ id: elysia_1.t.String() }),
353
+ body: AddMembershipSchema,
354
+ detail: { summary: "Add user to tenant" },
311
355
  }
312
- throw error;
313
- }
314
- }, {
315
- params: elysia_1.t.Object({ id: elysia_1.t.String() }),
316
- body: AddMembershipSchema,
317
- detail: { summary: "Add user to tenant" },
318
- })
356
+ )
319
357
  /**
320
358
  * DELETE /_archlast/admin/app-users/:id/memberships/:membershipId
321
359
  * Remove membership
322
360
  */
323
- .delete("/:id/memberships/:membershipId", async (ctx) => {
324
- const { rawDb, db, params, request, set } = (0, context_helper_js_1.getCtx)(ctx);
325
- const auth = await (0, auth_js_1.requireAdminAuth)(rawDb, request);
326
- if (!auth) {
327
- set.status = 401;
328
- return { error: "Unauthorized" };
329
- }
330
- try {
331
- await adminAppUsersService.removeUserMembership({
332
- db,
333
- membershipId: params.membershipId,
334
- });
335
- return { success: true };
336
- }
337
- catch (error) {
338
- if (error instanceof app_users_service_js_1.AdminAppUsersError) {
339
- set.status = error.statusCode;
340
- return { error: error.message };
361
+ .delete(
362
+ "/:id/memberships/:membershipId",
363
+ async (ctx) => {
364
+ const { rawDb, db, params, request, set } = (0, context_helper_js_1.getCtx)(ctx);
365
+ const auth = await (0, auth_js_1.requireAdminAuth)(rawDb, request);
366
+ if (!auth) {
367
+ set.status = 401;
368
+ return { error: "Unauthorized" };
369
+ }
370
+ try {
371
+ await adminAppUsersService.removeUserMembership({
372
+ db,
373
+ membershipId: params.membershipId,
374
+ });
375
+ return { success: true };
376
+ } catch (error) {
377
+ if (error instanceof app_users_service_js_1.AdminAppUsersError) {
378
+ set.status = error.statusCode;
379
+ return { error: error.message };
380
+ }
381
+ throw error;
382
+ }
383
+ },
384
+ {
385
+ params: elysia_1.t.Object({
386
+ id: elysia_1.t.String(),
387
+ membershipId: elysia_1.t.String(),
388
+ }),
389
+ detail: { summary: "Remove membership" },
341
390
  }
342
- throw error;
343
- }
344
- }, {
345
- params: elysia_1.t.Object({ id: elysia_1.t.String(), membershipId: elysia_1.t.String() }),
346
- detail: { summary: "Remove membership" },
347
- });
348
- //# sourceMappingURL=app-users.controller.js.map
391
+ );
392
+ //# sourceMappingURL=app-users.controller.js.map