@archlast/server 0.1.8 → 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 (347) hide show
  1. package/README.md +104 -100
  2. package/dist/admin/auth.d.ts +24 -5
  3. package/dist/admin/auth.js +49 -25
  4. package/dist/admin/schema.d.ts +122 -32
  5. package/dist/admin/schema.js +131 -95
  6. package/dist/admin/seed.d.ts +1 -1
  7. package/dist/admin/seed.js +79 -47
  8. package/dist/auth/api-key-resolver.d.ts +1 -1
  9. package/dist/auth/api-key-resolver.js +7 -3
  10. package/dist/auth/archlast-auth-adapter.d.ts +2 -5
  11. package/dist/auth/archlast-auth-adapter.js +1 -1
  12. package/dist/auth/better-auth-adapter.d.ts.map +1 -1
  13. package/dist/auth/better-auth-adapter.js +41 -26
  14. package/dist/auth/better-auth-adapter.js.map +1 -1
  15. package/dist/auth/better-auth-admin.d.ts.map +1 -1
  16. package/dist/auth/better-auth-admin.js +1 -1
  17. package/dist/auth/better-auth-admin.js.map +1 -1
  18. package/dist/auth/better-auth-api-key-resolver.js +1 -1
  19. package/dist/auth/better-auth-api-key-resolver.js.map +1 -1
  20. package/dist/auth/better-auth-instance.d.ts +249 -301
  21. package/dist/auth/better-auth-instance.d.ts.map +1 -1
  22. package/dist/auth/better-auth-instance.js +11 -0
  23. package/dist/auth/better-auth-instance.js.map +1 -1
  24. package/dist/auth/better-auth-seed.d.ts +5 -2
  25. package/dist/auth/better-auth-seed.js +31 -22
  26. package/dist/auth/better-auth-session-adapter.d.ts.map +1 -1
  27. package/dist/auth/better-auth-session-adapter.js +14 -10
  28. package/dist/auth/better-auth-session-adapter.js.map +1 -1
  29. package/dist/auth/errors.d.ts.map +1 -1
  30. package/dist/auth/errors.js +11 -11
  31. package/dist/auth/errors.js.map +1 -1
  32. package/dist/auth/oauth-proxy.d.ts +5 -2
  33. package/dist/auth/oauth-proxy.js +23 -27
  34. package/dist/auth/resolver.d.ts.map +1 -1
  35. package/dist/auth/resolver.js.map +1 -1
  36. package/dist/auth/role-helpers.d.ts +1 -1
  37. package/dist/auth/role-helpers.d.ts.map +1 -1
  38. package/dist/auth/role-helpers.js.map +1 -1
  39. package/dist/auth/session-manager.d.ts +2 -5
  40. package/dist/auth/session-manager.js +16 -6
  41. package/dist/auth/system/better-auth-schema.d.ts.map +1 -1
  42. package/dist/auth/system/better-auth-schema.js +6 -23
  43. package/dist/auth/system/better-auth-schema.js.map +1 -1
  44. package/dist/cache/circuit-breaker.d.ts +81 -0
  45. package/dist/cache/circuit-breaker.d.ts.map +1 -0
  46. package/dist/cache/circuit-breaker.js +170 -0
  47. package/dist/cache/circuit-breaker.js.map +1 -0
  48. package/dist/cache/client.d.ts +6 -3
  49. package/dist/cache/client.d.ts.map +1 -1
  50. package/dist/cache/client.js +12 -53
  51. package/dist/cache/client.js.map +1 -1
  52. package/dist/cache/index.d.ts +2 -0
  53. package/dist/cache/index.d.ts.map +1 -1
  54. package/dist/cache/index.js +5 -1
  55. package/dist/cache/index.js.map +1 -1
  56. package/dist/cache/invalidation-queue.d.ts +63 -0
  57. package/dist/cache/invalidation-queue.d.ts.map +1 -0
  58. package/dist/cache/invalidation-queue.js +196 -0
  59. package/dist/cache/invalidation-queue.js.map +1 -0
  60. package/dist/cache/layers.d.ts +14 -4
  61. package/dist/cache/layers.d.ts.map +1 -1
  62. package/dist/cache/layers.js +66 -72
  63. package/dist/cache/layers.js.map +1 -1
  64. package/dist/cache/manager.d.ts.map +1 -1
  65. package/dist/cache/manager.js +6 -41
  66. package/dist/cache/manager.js.map +1 -1
  67. package/dist/cache/protocol.d.ts +4 -39
  68. package/dist/cache/protocol.d.ts.map +1 -1
  69. package/dist/cache/protocol.js.map +1 -1
  70. package/dist/cache/redis-adapter.d.ts +103 -0
  71. package/dist/cache/redis-adapter.d.ts.map +1 -0
  72. package/dist/cache/redis-adapter.js +424 -0
  73. package/dist/cache/redis-adapter.js.map +1 -0
  74. package/dist/cache/run-sidecar.js +10 -1
  75. package/dist/cache/run-sidecar.js.map +1 -1
  76. package/dist/cache/sidecar-server.d.ts +51 -1
  77. package/dist/cache/sidecar-server.d.ts.map +1 -1
  78. package/dist/cache/sidecar-server.js +368 -22
  79. package/dist/cache/sidecar-server.js.map +1 -1
  80. package/dist/cache/store.d.ts +43 -0
  81. package/dist/cache/store.d.ts.map +1 -1
  82. package/dist/cache/store.js +69 -76
  83. package/dist/cache/store.js.map +1 -1
  84. package/dist/cache/strategies.d.ts +2 -9
  85. package/dist/cache/strategies.d.ts.map +1 -1
  86. package/dist/cache/types.d.ts +130 -0
  87. package/dist/cache/types.d.ts.map +1 -0
  88. package/dist/cache/types.js +60 -0
  89. package/dist/cache/types.js.map +1 -0
  90. package/dist/config/bullmq.d.ts +16 -0
  91. package/dist/config/bullmq.d.ts.map +1 -0
  92. package/dist/config/bullmq.js +103 -0
  93. package/dist/config/bullmq.js.map +1 -0
  94. package/dist/config/index.d.ts +1 -0
  95. package/dist/config/index.d.ts.map +1 -1
  96. package/dist/config/index.js +1 -0
  97. package/dist/config/index.js.map +1 -1
  98. package/dist/config/schema.d.ts +80 -6
  99. package/dist/config/schema.d.ts.map +1 -1
  100. package/dist/config/schema.js +71 -6
  101. package/dist/config/schema.js.map +1 -1
  102. package/dist/config/service.d.ts +54 -4
  103. package/dist/config/service.d.ts.map +1 -1
  104. package/dist/config/service.js +56 -2
  105. package/dist/config/service.js.map +1 -1
  106. package/dist/controllers/admin/admin-tokens.controller.d.ts +131 -115
  107. package/dist/controllers/admin/admin-tokens.controller.js +117 -98
  108. package/dist/controllers/admin/api-keys.controller.d.ts +1 -1
  109. package/dist/controllers/admin/api-keys.controller.d.ts.map +1 -1
  110. package/dist/controllers/admin/api-keys.controller.js.map +1 -1
  111. package/dist/controllers/admin/app-users.controller.d.ts +274 -243
  112. package/dist/controllers/admin/app-users.controller.js +301 -257
  113. package/dist/controllers/admin/auth.controller.d.ts +260 -236
  114. package/dist/controllers/admin/auth.controller.js +197 -174
  115. package/dist/controllers/admin/backup.controller.d.ts.map +1 -1
  116. package/dist/controllers/admin/backup.controller.js.map +1 -1
  117. package/dist/controllers/admin/settings.controller.d.ts +1 -1
  118. package/dist/controllers/admin/storage-stats.controller.d.ts +63 -0
  119. package/dist/controllers/admin/storage-stats.controller.d.ts.map +1 -0
  120. package/dist/controllers/admin/storage-stats.controller.js +33 -0
  121. package/dist/controllers/admin/storage-stats.controller.js.map +1 -0
  122. package/dist/controllers/admin/tenants.controller.d.ts.map +1 -1
  123. package/dist/controllers/admin/tenants.controller.js.map +1 -1
  124. package/dist/controllers/admin/users.controller.d.ts +1 -1
  125. package/dist/controllers/admin/users.controller.d.ts.map +1 -1
  126. package/dist/controllers/admin/users.controller.js.map +1 -1
  127. package/dist/controllers/auth.controller.d.ts +289 -271
  128. package/dist/controllers/auth.controller.js +275 -226
  129. package/dist/controllers/crud-generator.controller.d.ts.map +1 -1
  130. package/dist/controllers/crud-generator.controller.js +127 -125
  131. package/dist/controllers/crud-generator.controller.js.map +1 -1
  132. package/dist/controllers/index.d.ts +1 -1
  133. package/dist/controllers/index.d.ts.map +1 -1
  134. package/dist/controllers/index.js.map +1 -1
  135. package/dist/controllers/introspection.controller.d.ts +642 -0
  136. package/dist/controllers/introspection.controller.d.ts.map +1 -1
  137. package/dist/controllers/introspection.controller.js +611 -0
  138. package/dist/controllers/introspection.controller.js.map +1 -1
  139. package/dist/controllers/invite.controller.d.ts +190 -170
  140. package/dist/controllers/invite.controller.js +183 -164
  141. package/dist/controllers/mfa.controller.d.ts +205 -183
  142. package/dist/controllers/mfa.controller.js +131 -111
  143. package/dist/controllers/otp.controller.d.ts +194 -171
  144. package/dist/controllers/otp.controller.js +192 -175
  145. package/dist/controllers/storage.controller.d.ts.map +1 -1
  146. package/dist/controllers/storage.controller.js.map +1 -1
  147. package/dist/controllers/system.controller.d.ts +5 -3
  148. package/dist/controllers/system.controller.d.ts.map +1 -1
  149. package/dist/controllers/system.controller.js +4 -2
  150. package/dist/controllers/system.controller.js.map +1 -1
  151. package/dist/controllers/tenant.controller.d.ts +258 -227
  152. package/dist/controllers/tenant.controller.js +224 -200
  153. package/dist/db/cachedclient.d.ts +6 -11
  154. package/dist/db/cachedclient.d.ts.map +1 -1
  155. package/dist/db/cachedclient.js +79 -43
  156. package/dist/db/cachedclient.js.map +1 -1
  157. package/dist/db/distributed-client.d.ts +79 -24
  158. package/dist/db/distributed-client.js +23 -24
  159. package/dist/db/factory.d.ts +3 -8
  160. package/dist/db/factory.d.ts.map +1 -1
  161. package/dist/db/factory.js +3 -22
  162. package/dist/db/factory.js.map +1 -1
  163. package/dist/db/socket-client.d.ts +7 -0
  164. package/dist/db/socket-client.d.ts.map +1 -1
  165. package/dist/db/socket-client.js +140 -11
  166. package/dist/db/socket-client.js.map +1 -1
  167. package/dist/deployment/handler.d.ts +10 -2
  168. package/dist/deployment/handler.d.ts.map +1 -1
  169. package/dist/deployment/handler.js +70 -15
  170. package/dist/deployment/handler.js.map +1 -1
  171. package/dist/deployment/persistence.d.ts.map +1 -1
  172. package/dist/deployment/persistence.js +6 -1
  173. package/dist/deployment/persistence.js.map +1 -1
  174. package/dist/docker/compose.d.ts.map +1 -1
  175. package/dist/docker/compose.js +76 -0
  176. package/dist/docker/compose.js.map +1 -1
  177. package/dist/engine/runner.d.ts.map +1 -1
  178. package/dist/engine/runner.js +0 -43
  179. package/dist/engine/runner.js.map +1 -1
  180. package/dist/functions/built-in/auth-apikey.d.ts.map +1 -1
  181. package/dist/functions/built-in/auth-apikey.js.map +1 -1
  182. package/dist/functions/built-in/system-cache.d.ts.map +1 -1
  183. package/dist/functions/built-in/system-cache.js +6 -31
  184. package/dist/functions/built-in/system-cache.js.map +1 -1
  185. package/dist/functions/built-in/system-data.d.ts.map +1 -1
  186. package/dist/functions/built-in/system-data.js +4 -2
  187. package/dist/functions/built-in/system-data.js.map +1 -1
  188. package/dist/functions/definition.d.ts.map +1 -1
  189. package/dist/functions/definition.js +6 -2
  190. package/dist/functions/definition.js.map +1 -1
  191. package/dist/http/routes/metrics.d.ts +42 -0
  192. package/dist/http/routes/metrics.d.ts.map +1 -0
  193. package/dist/http/routes/metrics.js +29 -0
  194. package/dist/http/routes/metrics.js.map +1 -0
  195. package/dist/http/server.d.ts +1 -0
  196. package/dist/http/server.d.ts.map +1 -1
  197. package/dist/http/server.js +41 -3
  198. package/dist/http/server.js.map +1 -1
  199. package/dist/ipc/socket-bridge.d.ts +1 -0
  200. package/dist/ipc/socket-bridge.d.ts.map +1 -1
  201. package/dist/ipc/socket-bridge.js +5 -1
  202. package/dist/ipc/socket-bridge.js.map +1 -1
  203. package/dist/jobs/bullmq-adapter.d.ts +154 -0
  204. package/dist/jobs/bullmq-adapter.d.ts.map +1 -0
  205. package/dist/jobs/bullmq-adapter.js +688 -0
  206. package/dist/jobs/bullmq-adapter.js.map +1 -0
  207. package/dist/jobs/bullmq-circuit-breaker.d.ts +133 -0
  208. package/dist/jobs/bullmq-circuit-breaker.d.ts.map +1 -0
  209. package/dist/jobs/bullmq-circuit-breaker.js +323 -0
  210. package/dist/jobs/bullmq-circuit-breaker.js.map +1 -0
  211. package/dist/jobs/bullmq-dlq-manager.d.ts +155 -0
  212. package/dist/jobs/bullmq-dlq-manager.d.ts.map +1 -0
  213. package/dist/jobs/bullmq-dlq-manager.js +325 -0
  214. package/dist/jobs/bullmq-dlq-manager.js.map +1 -0
  215. package/dist/jobs/bullmq-metrics.d.ts +104 -0
  216. package/dist/jobs/bullmq-metrics.d.ts.map +1 -0
  217. package/dist/jobs/bullmq-metrics.js +323 -0
  218. package/dist/jobs/bullmq-metrics.js.map +1 -0
  219. package/dist/jobs/bullmq-priority-service.d.ts +173 -0
  220. package/dist/jobs/bullmq-priority-service.d.ts.map +1 -0
  221. package/dist/jobs/bullmq-priority-service.js +390 -0
  222. package/dist/jobs/bullmq-priority-service.js.map +1 -0
  223. package/dist/jobs/bullmq-scheduler.d.ts +111 -0
  224. package/dist/jobs/bullmq-scheduler.d.ts.map +1 -0
  225. package/dist/jobs/bullmq-scheduler.js +300 -0
  226. package/dist/jobs/bullmq-scheduler.js.map +1 -0
  227. package/dist/jobs/bullmq-worker.d.ts +155 -0
  228. package/dist/jobs/bullmq-worker.d.ts.map +1 -0
  229. package/dist/jobs/bullmq-worker.js +651 -0
  230. package/dist/jobs/bullmq-worker.js.map +1 -0
  231. package/dist/jobs/circuit-breaker.d.ts +120 -0
  232. package/dist/jobs/circuit-breaker.d.ts.map +1 -0
  233. package/dist/jobs/circuit-breaker.js +262 -0
  234. package/dist/jobs/circuit-breaker.js.map +1 -0
  235. package/dist/jobs/index.d.ts +1 -1
  236. package/dist/jobs/index.d.ts.map +1 -1
  237. package/dist/jobs/index.js.map +1 -1
  238. package/dist/jobs/queue.d.ts +120 -1
  239. package/dist/jobs/queue.d.ts.map +1 -1
  240. package/dist/jobs/queue.js +487 -9
  241. package/dist/jobs/queue.js.map +1 -1
  242. package/dist/jobs/redis-connection.d.ts +50 -0
  243. package/dist/jobs/redis-connection.d.ts.map +1 -0
  244. package/dist/jobs/redis-connection.js +123 -0
  245. package/dist/jobs/redis-connection.js.map +1 -0
  246. package/dist/jobs/run-scheduler.js +163 -10
  247. package/dist/jobs/run-scheduler.js.map +1 -1
  248. package/dist/jobs/run-worker.js +101 -9
  249. package/dist/jobs/run-worker.js.map +1 -1
  250. package/dist/jobs/worker-thread.d.ts +6 -0
  251. package/dist/jobs/worker-thread.d.ts.map +1 -1
  252. package/dist/jobs/worker-thread.js +37 -8
  253. package/dist/jobs/worker-thread.js.map +1 -1
  254. package/dist/jobs/worker.d.ts +33 -0
  255. package/dist/jobs/worker.d.ts.map +1 -1
  256. package/dist/jobs/worker.js +358 -115
  257. package/dist/jobs/worker.js.map +1 -1
  258. package/dist/linq/async-enumerable.d.ts.map +1 -1
  259. package/dist/linq/async-enumerable.js.map +1 -1
  260. package/dist/linq/enumerable.d.ts.map +1 -1
  261. package/dist/linq/enumerable.js +10 -10
  262. package/dist/linq/enumerable.js.map +1 -1
  263. package/dist/metrics/collector.d.ts +26 -0
  264. package/dist/metrics/collector.d.ts.map +1 -0
  265. package/dist/metrics/collector.js +103 -0
  266. package/dist/metrics/collector.js.map +1 -0
  267. package/dist/polling/updates.controller.d.ts +57 -0
  268. package/dist/polling/updates.controller.d.ts.map +1 -0
  269. package/dist/polling/updates.controller.js +70 -0
  270. package/dist/polling/updates.controller.js.map +1 -0
  271. package/dist/repository/db-set.d.ts.map +1 -1
  272. package/dist/repository/db-set.js +12 -8
  273. package/dist/repository/db-set.js.map +1 -1
  274. package/dist/repository/ef-core.d.ts.map +1 -1
  275. package/dist/repository/ef-core.js +6 -6
  276. package/dist/repository/ef-core.js.map +1 -1
  277. package/dist/repository/factory.d.ts +1 -1
  278. package/dist/repository/factory.d.ts.map +1 -1
  279. package/dist/repository/factory.js.map +1 -1
  280. package/dist/repository/interfaces.d.ts.map +1 -1
  281. package/dist/repository/interfaces.js.map +1 -1
  282. package/dist/repository/queryable.d.ts.map +1 -1
  283. package/dist/repository/queryable.js.map +1 -1
  284. package/dist/rpc/adapter.d.ts.map +1 -1
  285. package/dist/rpc/adapter.js.map +1 -1
  286. package/dist/rpc/router.d.ts +2 -2
  287. package/dist/rpc/router.d.ts.map +1 -1
  288. package/dist/rpc/router.js +1 -1
  289. package/dist/rpc/router.js.map +1 -1
  290. package/dist/schema/relationship-types.d.ts +7 -2
  291. package/dist/schema/relationship-types.js +1 -1
  292. package/dist/schema/types.d.ts.map +1 -1
  293. package/dist/services/admin/app-users.service.d.ts +1 -1
  294. package/dist/services/admin/app-users.service.js +31 -38
  295. package/dist/services/admin/auth.service.d.ts +1 -1
  296. package/dist/services/admin/auth.service.js +11 -5
  297. package/dist/services/admin/backup/BackupOrchestrator.d.ts.map +1 -1
  298. package/dist/services/admin/backup/BackupOrchestrator.js +4 -7
  299. package/dist/services/admin/backup/BackupOrchestrator.js.map +1 -1
  300. package/dist/services/admin/backup/SqliteGenerator.js +8 -8
  301. package/dist/services/admin/backup/StorageStreamer.d.ts +3 -3
  302. package/dist/services/admin/backup/StorageStreamer.d.ts.map +1 -1
  303. package/dist/services/admin/backup/StorageStreamer.js +16 -55
  304. package/dist/services/admin/backup/StorageStreamer.js.map +1 -1
  305. package/dist/services/admin/backup/ZipComposer.d.ts +2 -0
  306. package/dist/services/admin/backup/ZipComposer.d.ts.map +1 -1
  307. package/dist/services/admin/backup/ZipComposer.js +23 -0
  308. package/dist/services/admin/backup/ZipComposer.js.map +1 -1
  309. package/dist/services/admin/backup.service.d.ts.map +1 -1
  310. package/dist/services/admin/backup.service.js.map +1 -1
  311. package/dist/services/admin/data.service.d.ts.map +1 -1
  312. package/dist/services/admin/data.service.js +287 -286
  313. package/dist/services/admin/data.service.js.map +1 -1
  314. package/dist/services/admin/tenants.service.d.ts.map +1 -1
  315. package/dist/services/admin/tenants.service.js.map +1 -1
  316. package/dist/services/auth.service.d.ts +2 -3
  317. package/dist/services/auth.service.js +16 -16
  318. package/dist/services/invite.service.d.ts +1 -1
  319. package/dist/services/invite.service.js +17 -15
  320. package/dist/services/storage.service.d.ts.map +1 -1
  321. package/dist/services/storage.service.js +35 -4
  322. package/dist/services/storage.service.js.map +1 -1
  323. package/dist/services/system.service.d.ts.map +1 -1
  324. package/dist/services/system.service.js +1 -1
  325. package/dist/services/system.service.js.map +1 -1
  326. package/dist/services/tenant.service.d.ts +1 -1
  327. package/dist/services/tenant.service.js +43 -31
  328. package/dist/sse/subscriptions.controller.d.ts +57 -0
  329. package/dist/sse/subscriptions.controller.d.ts.map +1 -0
  330. package/dist/sse/subscriptions.controller.js +127 -0
  331. package/dist/sse/subscriptions.controller.js.map +1 -0
  332. package/dist/startup/bootstrap.d.ts +13 -2
  333. package/dist/startup/bootstrap.d.ts.map +1 -1
  334. package/dist/startup/bootstrap.js +85 -13
  335. package/dist/startup/bootstrap.js.map +1 -1
  336. package/dist/storage/s3-backend.d.ts.map +1 -1
  337. package/dist/storage/s3-backend.js +3 -3
  338. package/dist/storage/s3-backend.js.map +1 -1
  339. package/dist/websocket/server.d.ts.map +1 -1
  340. package/dist/websocket/server.js +14 -3
  341. package/dist/websocket/server.js.map +1 -1
  342. package/docker/README.md +309 -11
  343. package/package.json +214 -210
  344. package/templates/.env.example +115 -55
  345. package/templates/archlast.config.js +51 -37
  346. package/templates/docker-compose.prod.yml +32 -15
  347. package/templates/docker-compose.yml +117 -33
@@ -37,9 +37,15 @@ export declare const adminSchema: {
37
37
  _id: import("../schema/validators.js").FieldSchema<import("zod").ZodString>;
38
38
  username: import("../schema/validators.js").FieldSchema<import("zod").ZodString>;
39
39
  password_hash: import("../schema/validators.js").FieldSchema<import("zod").ZodString>;
40
- name: import("../schema/validators.js").FieldSchema<import("zod").ZodOptional<import("zod").ZodString>>;
41
- avatar_url: import("../schema/validators.js").FieldSchema<import("zod").ZodOptional<import("zod").ZodString>>;
42
- is_super_admin: import("../schema/validators.js").FieldSchema<import("zod").ZodDefault<import("zod").ZodBoolean>>;
40
+ name: import("../schema/validators.js").FieldSchema<
41
+ import("zod").ZodOptional<import("zod").ZodString>
42
+ >;
43
+ avatar_url: import("../schema/validators.js").FieldSchema<
44
+ import("zod").ZodOptional<import("zod").ZodString>
45
+ >;
46
+ is_super_admin: import("../schema/validators.js").FieldSchema<
47
+ import("zod").ZodDefault<import("zod").ZodBoolean>
48
+ >;
43
49
  created_at: import("../schema/validators.js").FieldSchema<import("zod").ZodNumber>;
44
50
  updated_at: import("../schema/validators.js").FieldSchema<import("zod").ZodNumber>;
45
51
  }>;
@@ -49,28 +55,50 @@ export declare const adminSchema: {
49
55
  token: import("../schema/validators.js").FieldSchema<import("zod").ZodString>;
50
56
  expires_at: import("../schema/validators.js").FieldSchema<import("zod").ZodNumber>;
51
57
  created_at: import("../schema/validators.js").FieldSchema<import("zod").ZodNumber>;
52
- last_accessed_at: import("../schema/validators.js").FieldSchema<import("zod").ZodNumber>;
53
- user_agent: import("../schema/validators.js").FieldSchema<import("zod").ZodOptional<import("zod").ZodString>>;
54
- ip_address: import("../schema/validators.js").FieldSchema<import("zod").ZodOptional<import("zod").ZodString>>;
58
+ last_accessed_at: import("../schema/validators.js").FieldSchema<
59
+ import("zod").ZodNumber
60
+ >;
61
+ user_agent: import("../schema/validators.js").FieldSchema<
62
+ import("zod").ZodOptional<import("zod").ZodString>
63
+ >;
64
+ ip_address: import("../schema/validators.js").FieldSchema<
65
+ import("zod").ZodOptional<import("zod").ZodString>
66
+ >;
55
67
  }>;
56
68
  _api_keys: import("../schema/definition.js").TableDefinition<{
57
69
  _id: import("../schema/validators.js").FieldSchema<import("zod").ZodString>;
58
70
  key: import("../schema/validators.js").FieldSchema<import("zod").ZodString>;
59
71
  name: import("../schema/validators.js").FieldSchema<import("zod").ZodString>;
60
- created_by_admin_id: import("../schema/validators.js").FieldSchema<import("zod").ZodString>;
72
+ created_by_admin_id: import("../schema/validators.js").FieldSchema<
73
+ import("zod").ZodString
74
+ >;
61
75
  created_at: import("../schema/validators.js").FieldSchema<import("zod").ZodNumber>;
62
- last_used_at: import("../schema/validators.js").FieldSchema<import("zod").ZodOptional<import("zod").ZodNumber>>;
63
- is_revoked: import("../schema/validators.js").FieldSchema<import("zod").ZodDefault<import("zod").ZodBoolean>>;
76
+ last_used_at: import("../schema/validators.js").FieldSchema<
77
+ import("zod").ZodOptional<import("zod").ZodNumber>
78
+ >;
79
+ is_revoked: import("../schema/validators.js").FieldSchema<
80
+ import("zod").ZodDefault<import("zod").ZodBoolean>
81
+ >;
64
82
  }>;
65
83
  _admin_tokens: import("../schema/definition.js").TableDefinition<{
66
84
  _id: import("../schema/validators.js").FieldSchema<import("zod").ZodString>;
67
85
  token: import("../schema/validators.js").FieldSchema<import("zod").ZodString>;
68
86
  name: import("../schema/validators.js").FieldSchema<import("zod").ZodString>;
69
- created_by_admin_id: import("../schema/validators.js").FieldSchema<import("zod").ZodString>;
70
- scopes: import("../schema/validators.js").FieldSchema<import("zod").ZodArray<import("zod").ZodString>>;
71
- expires_at: import("../schema/validators.js").FieldSchema<import("zod").ZodOptional<import("zod").ZodNumber>>;
72
- last_used_at: import("../schema/validators.js").FieldSchema<import("zod").ZodOptional<import("zod").ZodNumber>>;
73
- is_revoked: import("../schema/validators.js").FieldSchema<import("zod").ZodDefault<import("zod").ZodBoolean>>;
87
+ created_by_admin_id: import("../schema/validators.js").FieldSchema<
88
+ import("zod").ZodString
89
+ >;
90
+ scopes: import("../schema/validators.js").FieldSchema<
91
+ import("zod").ZodArray<import("zod").ZodString>
92
+ >;
93
+ expires_at: import("../schema/validators.js").FieldSchema<
94
+ import("zod").ZodOptional<import("zod").ZodNumber>
95
+ >;
96
+ last_used_at: import("../schema/validators.js").FieldSchema<
97
+ import("zod").ZodOptional<import("zod").ZodNumber>
98
+ >;
99
+ is_revoked: import("../schema/validators.js").FieldSchema<
100
+ import("zod").ZodDefault<import("zod").ZodBoolean>
101
+ >;
74
102
  created_at: import("../schema/validators.js").FieldSchema<import("zod").ZodNumber>;
75
103
  }>;
76
104
  };
@@ -126,32 +154,59 @@ export declare function hasAnyAdminUsers(db: IDatabaseClient): Promise<boolean>;
126
154
  /**
127
155
  * Create the first admin user (setup flow)
128
156
  */
129
- export declare function createFirstAdminUser(db: IDatabaseClient, username: string, passwordHash: string, name?: string): Promise<AdminUser>;
157
+ export declare function createFirstAdminUser(
158
+ db: IDatabaseClient,
159
+ username: string,
160
+ passwordHash: string,
161
+ name?: string
162
+ ): Promise<AdminUser>;
130
163
  /**
131
164
  * Find admin user by username
132
165
  */
133
- export declare function findAdminUserByUsername(db: IDatabaseClient, username: string): Promise<AdminUser | null>;
166
+ export declare function findAdminUserByUsername(
167
+ db: IDatabaseClient,
168
+ username: string
169
+ ): Promise<AdminUser | null>;
134
170
  /**
135
171
  * Find admin user by email (deprecated, use findAdminUserByUsername)
136
172
  * @deprecated Use findAdminUserByUsername instead
137
173
  */
138
- export declare function findAdminUserByEmail(db: IDatabaseClient, email: string): Promise<AdminUser | null>;
174
+ export declare function findAdminUserByEmail(
175
+ db: IDatabaseClient,
176
+ email: string
177
+ ): Promise<AdminUser | null>;
139
178
  /**
140
179
  * Find admin user by ID
141
180
  */
142
- export declare function findAdminUserById(db: IDatabaseClient, id: string): Promise<AdminUser | null>;
181
+ export declare function findAdminUserById(
182
+ db: IDatabaseClient,
183
+ id: string
184
+ ): Promise<AdminUser | null>;
143
185
  /**
144
186
  * Create admin session
145
187
  */
146
- export declare function createAdminSession(db: IDatabaseClient, adminUserId: string, token: string, expiresInMs: number, userAgent: string | null, ipAddress: string | null): Promise<AdminSession>;
188
+ export declare function createAdminSession(
189
+ db: IDatabaseClient,
190
+ adminUserId: string,
191
+ token: string,
192
+ expiresInMs: number,
193
+ userAgent: string | null,
194
+ ipAddress: string | null
195
+ ): Promise<AdminSession>;
147
196
  /**
148
197
  * Find session by token
149
198
  */
150
- export declare function findAdminSessionByToken(db: IDatabaseClient, token: string): Promise<AdminSession | null>;
199
+ export declare function findAdminSessionByToken(
200
+ db: IDatabaseClient,
201
+ token: string
202
+ ): Promise<AdminSession | null>;
151
203
  /**
152
204
  * Update session last accessed time
153
205
  */
154
- export declare function updateSessionLastAccessed(db: IDatabaseClient, sessionId: string): Promise<void>;
206
+ export declare function updateSessionLastAccessed(
207
+ db: IDatabaseClient,
208
+ sessionId: string
209
+ ): Promise<void>;
155
210
  /**
156
211
  * Delete session (logout)
157
212
  */
@@ -159,11 +214,17 @@ export declare function deleteAdminSession(db: IDatabaseClient, token: string):
159
214
  /**
160
215
  * Delete all sessions for a user
161
216
  */
162
- export declare function deleteAllUserSessions(db: IDatabaseClient, adminUserId: string): Promise<number>;
217
+ export declare function deleteAllUserSessions(
218
+ db: IDatabaseClient,
219
+ adminUserId: string
220
+ ): Promise<number>;
163
221
  /**
164
222
  * List all sessions for an admin user
165
223
  */
166
- export declare function listAdminSessions(db: IDatabaseClient, adminUserId: string): Promise<AdminSession[]>;
224
+ export declare function listAdminSessions(
225
+ db: IDatabaseClient,
226
+ adminUserId: string
227
+ ): Promise<AdminSession[]>;
167
228
  /**
168
229
  * Clean up expired sessions
169
230
  */
@@ -171,11 +232,18 @@ export declare function cleanupExpiredSessions(db: IDatabaseClient): Promise<num
171
232
  /**
172
233
  * Create admin user (requires existing admin)
173
234
  */
174
- export declare function createAdminUser(db: IDatabaseClient, username: string, passwordHash: string, isSuperAdmin?: boolean): Promise<AdminUser>;
235
+ export declare function createAdminUser(
236
+ db: IDatabaseClient,
237
+ username: string,
238
+ passwordHash: string,
239
+ isSuperAdmin?: boolean
240
+ ): Promise<AdminUser>;
175
241
  /**
176
242
  * List all admin users
177
243
  */
178
- export declare function listAdminUsers(db: IDatabaseClient): Promise<Omit<AdminUser, "password_hash">[]>;
244
+ export declare function listAdminUsers(
245
+ db: IDatabaseClient
246
+ ): Promise<Omit<AdminUser, "password_hash">[]>;
179
247
  /**
180
248
  * Delete admin user
181
249
  */
@@ -183,11 +251,19 @@ export declare function deleteAdminUser(db: IDatabaseClient, id: string): Promis
183
251
  /**
184
252
  * Update admin user
185
253
  */
186
- export declare function updateAdminUser(db: IDatabaseClient, id: string, data: Partial<Pick<AdminUser, "name" | "avatar_url">>): Promise<void>;
254
+ export declare function updateAdminUser(
255
+ db: IDatabaseClient,
256
+ id: string,
257
+ data: Partial<Pick<AdminUser, "name" | "avatar_url">>
258
+ ): Promise<void>;
187
259
  /**
188
260
  * Create API key
189
261
  */
190
- export declare function createApiKey(db: IDatabaseClient, name: string, createdByAdminId: string): Promise<ApiKey>;
262
+ export declare function createApiKey(
263
+ db: IDatabaseClient,
264
+ name: string,
265
+ createdByAdminId: string
266
+ ): Promise<ApiKey>;
191
267
  /**
192
268
  * Find API key by key string
193
269
  */
@@ -211,15 +287,26 @@ export declare function deleteApiKey(db: IDatabaseClient, id: string): Promise<v
211
287
  /**
212
288
  * Create admin token (sat_ prefix)
213
289
  */
214
- export declare function createAdminToken(db: IDatabaseClient, name: string, createdByAdminId: string, expiresInDays?: number | null): Promise<AdminToken>;
290
+ export declare function createAdminToken(
291
+ db: IDatabaseClient,
292
+ name: string,
293
+ createdByAdminId: string,
294
+ expiresInDays?: number | null
295
+ ): Promise<AdminToken>;
215
296
  /**
216
297
  * Find admin token by token string
217
298
  */
218
- export declare function findAdminTokenByToken(db: IDatabaseClient, token: string): Promise<AdminToken | null>;
299
+ export declare function findAdminTokenByToken(
300
+ db: IDatabaseClient,
301
+ token: string
302
+ ): Promise<AdminToken | null>;
219
303
  /**
220
304
  * Update admin token last used time
221
305
  */
222
- export declare function updateAdminTokenLastUsed(db: IDatabaseClient, tokenId: string): Promise<void>;
306
+ export declare function updateAdminTokenLastUsed(
307
+ db: IDatabaseClient,
308
+ tokenId: string
309
+ ): Promise<void>;
223
310
  /**
224
311
  * List admin tokens (masked, excludes token value)
225
312
  */
@@ -228,7 +315,10 @@ export declare function listAdminTokens(db: IDatabaseClient): Promise<Omit<Admin
228
315
  * Get admin token by ID with full token value (for copy functionality)
229
316
  * Warning: Only use this when user explicitly requests to reveal the token
230
317
  */
231
- export declare function getAdminTokenById(db: IDatabaseClient, id: string): Promise<AdminToken | null>;
318
+ export declare function getAdminTokenById(
319
+ db: IDatabaseClient,
320
+ id: string
321
+ ): Promise<AdminToken | null>;
232
322
  /**
233
323
  * Revoke admin token
234
324
  */
@@ -237,4 +327,4 @@ export declare function revokeAdminToken(db: IDatabaseClient, id: string): Promi
237
327
  * Delete admin token permanently
238
328
  */
239
329
  export declare function deleteAdminToken(db: IDatabaseClient, id: string): Promise<void>;
240
- //# sourceMappingURL=schema.d.ts.map
330
+ //# sourceMappingURL=schema.d.ts.map
@@ -6,7 +6,13 @@
6
6
  * Collections: _admin_users, _admin_sessions, _api_keys, _admin_tokens
7
7
  */
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.adminSchema = exports.ADMIN_COLLECTIONS = exports.ADMIN_TOKENS_COLLECTION = exports.API_KEYS_COLLECTION = exports.ADMIN_SESSIONS_COLLECTION = exports.ADMIN_USERS_COLLECTION = void 0;
9
+ exports.adminSchema =
10
+ exports.ADMIN_COLLECTIONS =
11
+ exports.ADMIN_TOKENS_COLLECTION =
12
+ exports.API_KEYS_COLLECTION =
13
+ exports.ADMIN_SESSIONS_COLLECTION =
14
+ exports.ADMIN_USERS_COLLECTION =
15
+ void 0;
10
16
  exports.isValidUsername = isValidUsername;
11
17
  exports.normalizeUsername = normalizeUsername;
12
18
  exports.hasAnyAdminUsers = hasAnyAdminUsers;
@@ -74,89 +80,119 @@ function normalizeUsername(username) {
74
80
  * This can be merged with application schemas at runtime.
75
81
  */
76
82
  exports.adminSchema = (0, definition_js_1.defineSchema)({
77
- [exports.ADMIN_USERS_COLLECTION]: (0, definition_js_1.defineTable)({
78
- _id: definition_js_1.v.id().primaryKey(),
79
- username: definition_js_1.v.string(),
80
- password_hash: definition_js_1.v.string(),
81
- name: definition_js_1.v.string().optional(),
82
- avatar_url: definition_js_1.v.string().optional(),
83
- is_super_admin: definition_js_1.v.boolean().default(false),
84
- created_at: definition_js_1.v.number(),
85
- updated_at: definition_js_1.v.number(),
86
- }, {
87
- indexes: [
88
- { fields: ["username"], name: "idx_admin_users_username", unique: true },
89
- { fields: ["created_at"], name: "idx_admin_users_created_at" },
90
- ],
91
- relationships: {
92
- sessions: (0, definition_js_1.hasMany)(exports.ADMIN_SESSIONS_COLLECTION, "admin_user_id"),
93
- apiKeys: (0, definition_js_1.hasMany)(exports.API_KEYS_COLLECTION, "created_by_admin_id"),
94
- adminTokens: (0, definition_js_1.hasMany)(exports.ADMIN_TOKENS_COLLECTION, "created_by_admin_id"),
83
+ [exports.ADMIN_USERS_COLLECTION]: (0, definition_js_1.defineTable)(
84
+ {
85
+ _id: definition_js_1.v.id().primaryKey(),
86
+ username: definition_js_1.v.string(),
87
+ password_hash: definition_js_1.v.string(),
88
+ name: definition_js_1.v.string().optional(),
89
+ avatar_url: definition_js_1.v.string().optional(),
90
+ is_super_admin: definition_js_1.v.boolean().default(false),
91
+ created_at: definition_js_1.v.number(),
92
+ updated_at: definition_js_1.v.number(),
95
93
  },
96
- }),
97
- [exports.ADMIN_SESSIONS_COLLECTION]: (0, definition_js_1.defineTable)({
98
- _id: definition_js_1.v.id().primaryKey(),
99
- admin_user_id: definition_js_1.v
100
- .id()
101
- .foreignKey(exports.ADMIN_USERS_COLLECTION, "_id", { onDelete: "CASCADE" }),
102
- token: definition_js_1.v.string(),
103
- expires_at: definition_js_1.v.number(),
104
- created_at: definition_js_1.v.number(),
105
- last_accessed_at: definition_js_1.v.number(),
106
- user_agent: definition_js_1.v.string().optional(),
107
- ip_address: definition_js_1.v.string().optional(),
108
- }, {
109
- indexes: [
110
- { fields: ["token"], name: "idx_admin_sessions_token", unique: true },
111
- { fields: ["admin_user_id"], name: "idx_admin_sessions_user_id" },
112
- { fields: ["expires_at"], name: "idx_admin_sessions_expires" },
113
- ],
114
- relationships: {
115
- adminUser: (0, definition_js_1.belongsTo)(exports.ADMIN_USERS_COLLECTION, "admin_user_id"),
94
+ {
95
+ indexes: [
96
+ { fields: ["username"], name: "idx_admin_users_username", unique: true },
97
+ { fields: ["created_at"], name: "idx_admin_users_created_at" },
98
+ ],
99
+ relationships: {
100
+ sessions: (0, definition_js_1.hasMany)(
101
+ exports.ADMIN_SESSIONS_COLLECTION,
102
+ "admin_user_id"
103
+ ),
104
+ apiKeys: (0, definition_js_1.hasMany)(
105
+ exports.API_KEYS_COLLECTION,
106
+ "created_by_admin_id"
107
+ ),
108
+ adminTokens: (0, definition_js_1.hasMany)(
109
+ exports.ADMIN_TOKENS_COLLECTION,
110
+ "created_by_admin_id"
111
+ ),
112
+ },
113
+ }
114
+ ),
115
+ [exports.ADMIN_SESSIONS_COLLECTION]: (0, definition_js_1.defineTable)(
116
+ {
117
+ _id: definition_js_1.v.id().primaryKey(),
118
+ admin_user_id: definition_js_1.v
119
+ .id()
120
+ .foreignKey(exports.ADMIN_USERS_COLLECTION, "_id", { onDelete: "CASCADE" }),
121
+ token: definition_js_1.v.string(),
122
+ expires_at: definition_js_1.v.number(),
123
+ created_at: definition_js_1.v.number(),
124
+ last_accessed_at: definition_js_1.v.number(),
125
+ user_agent: definition_js_1.v.string().optional(),
126
+ ip_address: definition_js_1.v.string().optional(),
116
127
  },
117
- }),
118
- [exports.API_KEYS_COLLECTION]: (0, definition_js_1.defineTable)({
119
- _id: definition_js_1.v.id().primaryKey(),
120
- key: definition_js_1.v.string(),
121
- name: definition_js_1.v.string(),
122
- created_by_admin_id: definition_js_1.v
123
- .id()
124
- .foreignKey(exports.ADMIN_USERS_COLLECTION, "_id", { onDelete: "CASCADE" }),
125
- created_at: definition_js_1.v.number(),
126
- last_used_at: definition_js_1.v.number().optional(),
127
- is_revoked: definition_js_1.v.boolean().default(false),
128
- }, {
129
- indexes: [
130
- { fields: ["key"], name: "idx_api_keys_key", unique: true },
131
- { fields: ["created_by_admin_id"], name: "idx_api_keys_creator" },
132
- { fields: ["is_revoked"], name: "idx_api_keys_revoked" },
133
- ],
134
- relationships: {
135
- createdBy: (0, definition_js_1.belongsTo)(exports.ADMIN_USERS_COLLECTION, "created_by_admin_id"),
128
+ {
129
+ indexes: [
130
+ { fields: ["token"], name: "idx_admin_sessions_token", unique: true },
131
+ { fields: ["admin_user_id"], name: "idx_admin_sessions_user_id" },
132
+ { fields: ["expires_at"], name: "idx_admin_sessions_expires" },
133
+ ],
134
+ relationships: {
135
+ adminUser: (0, definition_js_1.belongsTo)(
136
+ exports.ADMIN_USERS_COLLECTION,
137
+ "admin_user_id"
138
+ ),
139
+ },
140
+ }
141
+ ),
142
+ [exports.API_KEYS_COLLECTION]: (0, definition_js_1.defineTable)(
143
+ {
144
+ _id: definition_js_1.v.id().primaryKey(),
145
+ key: definition_js_1.v.string(),
146
+ name: definition_js_1.v.string(),
147
+ created_by_admin_id: definition_js_1.v
148
+ .id()
149
+ .foreignKey(exports.ADMIN_USERS_COLLECTION, "_id", { onDelete: "CASCADE" }),
150
+ created_at: definition_js_1.v.number(),
151
+ last_used_at: definition_js_1.v.number().optional(),
152
+ is_revoked: definition_js_1.v.boolean().default(false),
136
153
  },
137
- }),
138
- [exports.ADMIN_TOKENS_COLLECTION]: (0, definition_js_1.defineTable)({
139
- _id: definition_js_1.v.id().primaryKey(),
140
- token: definition_js_1.v.string(),
141
- name: definition_js_1.v.string(),
142
- created_by_admin_id: definition_js_1.v
143
- .id()
144
- .foreignKey(exports.ADMIN_USERS_COLLECTION, "_id", { onDelete: "CASCADE" }),
145
- scopes: definition_js_1.v.array(definition_js_1.v.string()),
146
- expires_at: definition_js_1.v.number().optional(),
147
- last_used_at: definition_js_1.v.number().optional(),
148
- is_revoked: definition_js_1.v.boolean().default(false),
149
- created_at: definition_js_1.v.number(),
150
- }, {
151
- indexes: [
152
- { fields: ["token"], name: "idx_admin_tokens_token", unique: true },
153
- { fields: ["created_by_admin_id"], name: "idx_admin_tokens_creator" },
154
- { fields: ["is_revoked"], name: "idx_admin_tokens_revoked" },
155
- ],
156
- relationships: {
157
- createdBy: (0, definition_js_1.belongsTo)(exports.ADMIN_USERS_COLLECTION, "created_by_admin_id"),
154
+ {
155
+ indexes: [
156
+ { fields: ["key"], name: "idx_api_keys_key", unique: true },
157
+ { fields: ["created_by_admin_id"], name: "idx_api_keys_creator" },
158
+ { fields: ["is_revoked"], name: "idx_api_keys_revoked" },
159
+ ],
160
+ relationships: {
161
+ createdBy: (0, definition_js_1.belongsTo)(
162
+ exports.ADMIN_USERS_COLLECTION,
163
+ "created_by_admin_id"
164
+ ),
165
+ },
166
+ }
167
+ ),
168
+ [exports.ADMIN_TOKENS_COLLECTION]: (0, definition_js_1.defineTable)(
169
+ {
170
+ _id: definition_js_1.v.id().primaryKey(),
171
+ token: definition_js_1.v.string(),
172
+ name: definition_js_1.v.string(),
173
+ created_by_admin_id: definition_js_1.v
174
+ .id()
175
+ .foreignKey(exports.ADMIN_USERS_COLLECTION, "_id", { onDelete: "CASCADE" }),
176
+ scopes: definition_js_1.v.array(definition_js_1.v.string()),
177
+ expires_at: definition_js_1.v.number().optional(),
178
+ last_used_at: definition_js_1.v.number().optional(),
179
+ is_revoked: definition_js_1.v.boolean().default(false),
180
+ created_at: definition_js_1.v.number(),
158
181
  },
159
- }),
182
+ {
183
+ indexes: [
184
+ { fields: ["token"], name: "idx_admin_tokens_token", unique: true },
185
+ { fields: ["created_by_admin_id"], name: "idx_admin_tokens_creator" },
186
+ { fields: ["is_revoked"], name: "idx_admin_tokens_revoked" },
187
+ ],
188
+ relationships: {
189
+ createdBy: (0, definition_js_1.belongsTo)(
190
+ exports.ADMIN_USERS_COLLECTION,
191
+ "created_by_admin_id"
192
+ ),
193
+ },
194
+ }
195
+ ),
160
196
  });
161
197
  /**
162
198
  * Check if any admin users exist
@@ -217,7 +253,7 @@ async function findAdminUserByEmail(db, email) {
217
253
  * Find admin user by ID
218
254
  */
219
255
  async function findAdminUserById(db, id) {
220
- return (await db.get(exports.ADMIN_USERS_COLLECTION, id));
256
+ return await db.get(exports.ADMIN_USERS_COLLECTION, id);
221
257
  }
222
258
  /**
223
259
  * Create admin session
@@ -251,11 +287,11 @@ async function createAdminSession(db, adminUserId, token, expiresInMs, userAgent
251
287
  */
252
288
  async function findAdminSessionByToken(db, token) {
253
289
  const now = Date.now();
254
- return (await db.findFirst(exports.ADMIN_SESSIONS_COLLECTION, {
290
+ return await db.findFirst(exports.ADMIN_SESSIONS_COLLECTION, {
255
291
  where: {
256
292
  and: [{ token: { eq: token } }, { expires_at: { gt: now } }],
257
293
  },
258
- }));
294
+ });
259
295
  }
260
296
  /**
261
297
  * Update session last accessed time
@@ -330,9 +366,9 @@ async function createAdminUser(db, username, passwordHash, isSuperAdmin = false)
330
366
  * List all admin users
331
367
  */
332
368
  async function listAdminUsers(db) {
333
- const users = (await db.findMany(exports.ADMIN_USERS_COLLECTION, {
369
+ const users = await db.findMany(exports.ADMIN_USERS_COLLECTION, {
334
370
  orderBy: { created_at: "desc" },
335
- }));
371
+ });
336
372
  return users.map(({ password_hash, ...rest }) => rest);
337
373
  }
338
374
  /**
@@ -340,9 +376,9 @@ async function listAdminUsers(db) {
340
376
  */
341
377
  async function deleteAdminUser(db, id) {
342
378
  // Prevent deleting the last super admin
343
- const superAdmins = (await db.findMany(exports.ADMIN_USERS_COLLECTION, {
379
+ const superAdmins = await db.findMany(exports.ADMIN_USERS_COLLECTION, {
344
380
  where: { is_super_admin: { eq: true } },
345
- }));
381
+ });
346
382
  const user = await findAdminUserById(db, id);
347
383
  if (user?.is_super_admin && superAdmins.length <= 1) {
348
384
  throw new Error("Cannot delete the last super admin");
@@ -405,9 +441,9 @@ async function updateApiKeyLastUsed(db, keyId) {
405
441
  * List API keys
406
442
  */
407
443
  async function listApiKeys(db) {
408
- const keys = (await db.findMany(exports.API_KEYS_COLLECTION, {
444
+ const keys = await db.findMany(exports.API_KEYS_COLLECTION, {
409
445
  orderBy: { created_at: "desc" },
410
- }));
446
+ });
411
447
  return keys.map(({ key, ...rest }) => rest);
412
448
  }
413
449
  /**
@@ -461,12 +497,12 @@ async function findAdminTokenByToken(db, token) {
461
497
  const now = Date.now();
462
498
  // First, find the token by matching token string and not revoked
463
499
  // Note: We handle expiration in application code since 'or' operator has limited support
464
- const result = (await db.findFirst(exports.ADMIN_TOKENS_COLLECTION, {
500
+ const result = await db.findFirst(exports.ADMIN_TOKENS_COLLECTION, {
465
501
  where: {
466
502
  token: { eq: token },
467
503
  is_revoked: { eq: false },
468
504
  },
469
- }));
505
+ });
470
506
  if (!result) {
471
507
  return null;
472
508
  }
@@ -489,9 +525,9 @@ async function updateAdminTokenLastUsed(db, tokenId) {
489
525
  * List admin tokens (masked, excludes token value)
490
526
  */
491
527
  async function listAdminTokens(db) {
492
- const tokens = (await db.findMany(exports.ADMIN_TOKENS_COLLECTION, {
528
+ const tokens = await db.findMany(exports.ADMIN_TOKENS_COLLECTION, {
493
529
  orderBy: { created_at: "desc" },
494
- }));
530
+ });
495
531
  return tokens.map(({ token, ...rest }) => rest);
496
532
  }
497
533
  /**
@@ -499,7 +535,7 @@ async function listAdminTokens(db) {
499
535
  * Warning: Only use this when user explicitly requests to reveal the token
500
536
  */
501
537
  async function getAdminTokenById(db, id) {
502
- return (await db.get(exports.ADMIN_TOKENS_COLLECTION, id));
538
+ return await db.get(exports.ADMIN_TOKENS_COLLECTION, id);
503
539
  }
504
540
  /**
505
541
  * Revoke admin token
@@ -518,4 +554,4 @@ async function deleteAdminToken(db, id) {
518
554
  // Legacy functions removed - no longer using raw SQLite
519
555
  // initializeAdminSchema() and migrateAdminSchema() are no longer needed
520
556
  // as the Document Store handles schema dynamically
521
- //# sourceMappingURL=schema.js.map
557
+ //# sourceMappingURL=schema.js.map
@@ -6,4 +6,4 @@ import type { IDatabaseClient } from "../db/interfaces.js";
6
6
  * In production, use the provisioning endpoint or setup flow instead.
7
7
  */
8
8
  export declare function seedAdminUser(db: IDatabaseClient): Promise<void>;
9
- //# sourceMappingURL=seed.d.ts.map
9
+ //# sourceMappingURL=seed.d.ts.map