@axium/server 0.24.0 → 0.25.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 (353) hide show
  1. package/axiumd.service +1 -1
  2. package/build/client/_app/immutable/assets/account.dAAx7bby.css +1 -0
  3. package/build/client/_app/immutable/assets/account.dAAx7bby.css.br +0 -0
  4. package/build/client/_app/immutable/assets/account.dAAx7bby.css.gz +0 -0
  5. package/build/client/_app/immutable/assets/list.DVGH0BeP.css +1 -0
  6. package/build/client/_app/immutable/assets/list.DVGH0BeP.css.br +0 -0
  7. package/build/client/_app/immutable/assets/list.DVGH0BeP.css.gz +0 -0
  8. package/build/client/_app/immutable/assets/styles.D8SZ-PeY.css +1 -0
  9. package/build/client/_app/immutable/assets/styles.D8SZ-PeY.css.br +2 -0
  10. package/build/client/_app/immutable/assets/styles.D8SZ-PeY.css.gz +0 -0
  11. package/build/client/_app/immutable/chunks/1taVrT-y.js +1 -0
  12. package/build/client/_app/immutable/chunks/1taVrT-y.js.br +0 -0
  13. package/build/client/_app/immutable/chunks/1taVrT-y.js.gz +0 -0
  14. package/build/client/_app/immutable/chunks/BSFUgC2l.js +23 -0
  15. package/build/client/_app/immutable/chunks/BSFUgC2l.js.br +0 -0
  16. package/build/client/_app/immutable/chunks/BSFUgC2l.js.gz +0 -0
  17. package/build/client/_app/immutable/chunks/Bbzjahjl.js +2 -0
  18. package/build/client/_app/immutable/chunks/Bbzjahjl.js.br +0 -0
  19. package/build/client/_app/immutable/chunks/Bbzjahjl.js.gz +0 -0
  20. package/build/client/_app/immutable/chunks/BxjargW5.js +1 -0
  21. package/build/client/_app/immutable/chunks/BxjargW5.js.br +0 -0
  22. package/build/client/_app/immutable/chunks/BxjargW5.js.gz +0 -0
  23. package/build/client/_app/immutable/chunks/C2ewTgu8.js +1 -0
  24. package/build/client/_app/immutable/chunks/C2ewTgu8.js.br +0 -0
  25. package/build/client/_app/immutable/chunks/C2ewTgu8.js.gz +0 -0
  26. package/build/client/_app/immutable/chunks/CFWAHLsq.js +1 -0
  27. package/build/client/_app/immutable/chunks/CFWAHLsq.js.br +0 -0
  28. package/build/client/_app/immutable/chunks/CFWAHLsq.js.gz +0 -0
  29. package/build/client/_app/immutable/chunks/CPL43v-I.js +1 -0
  30. package/build/client/_app/immutable/chunks/CPL43v-I.js.br +0 -0
  31. package/build/client/_app/immutable/chunks/CPL43v-I.js.gz +0 -0
  32. package/build/client/_app/immutable/chunks/CTKC36WM.js +1 -0
  33. package/build/client/_app/immutable/chunks/CTKC36WM.js.br +0 -0
  34. package/build/client/_app/immutable/chunks/CTKC36WM.js.gz +0 -0
  35. package/build/client/_app/immutable/chunks/CekH6JMP.js +1 -0
  36. package/build/client/_app/immutable/chunks/CekH6JMP.js.br +0 -0
  37. package/build/client/_app/immutable/chunks/CekH6JMP.js.gz +0 -0
  38. package/build/client/_app/immutable/chunks/Ch16TNvP.js +1 -0
  39. package/build/client/_app/immutable/chunks/Ch16TNvP.js.br +0 -0
  40. package/build/client/_app/immutable/chunks/Ch16TNvP.js.gz +0 -0
  41. package/build/client/_app/immutable/chunks/CqfYW08-.js +1 -0
  42. package/build/client/_app/immutable/chunks/CqfYW08-.js.br +0 -0
  43. package/build/client/_app/immutable/chunks/CqfYW08-.js.gz +0 -0
  44. package/build/client/_app/immutable/chunks/D1v6O410.js +1 -0
  45. package/build/client/_app/immutable/chunks/D1v6O410.js.br +0 -0
  46. package/build/client/_app/immutable/chunks/D1v6O410.js.gz +0 -0
  47. package/build/client/_app/immutable/chunks/DY4fWHx_.js +1 -0
  48. package/build/client/_app/immutable/chunks/DY4fWHx_.js.br +0 -0
  49. package/build/client/_app/immutable/chunks/DY4fWHx_.js.gz +0 -0
  50. package/build/client/_app/immutable/chunks/DdnE6dyJ.js +2 -0
  51. package/build/client/_app/immutable/chunks/DdnE6dyJ.js.br +0 -0
  52. package/build/client/_app/immutable/chunks/DdnE6dyJ.js.gz +0 -0
  53. package/build/client/_app/immutable/chunks/DeieCYM0.js +22 -0
  54. package/build/client/_app/immutable/chunks/DeieCYM0.js.br +0 -0
  55. package/build/client/_app/immutable/chunks/DeieCYM0.js.gz +0 -0
  56. package/build/client/_app/immutable/chunks/DfUzlYF5.js +1 -0
  57. package/build/client/_app/immutable/chunks/DfUzlYF5.js.br +0 -0
  58. package/build/client/_app/immutable/chunks/DfUzlYF5.js.gz +0 -0
  59. package/build/client/_app/immutable/chunks/Dnk28BpG.js +1 -0
  60. package/build/client/_app/immutable/chunks/Dnk28BpG.js.br +0 -0
  61. package/build/client/_app/immutable/chunks/Dnk28BpG.js.gz +0 -0
  62. package/build/client/_app/immutable/chunks/KNAS5R2A.js +3 -0
  63. package/build/client/_app/immutable/chunks/KNAS5R2A.js.br +0 -0
  64. package/build/client/_app/immutable/chunks/KNAS5R2A.js.gz +0 -0
  65. package/build/client/_app/immutable/chunks/eyJgPND9.js +1 -0
  66. package/build/client/_app/immutable/chunks/eyJgPND9.js.br +1 -0
  67. package/build/client/_app/immutable/chunks/eyJgPND9.js.gz +0 -0
  68. package/build/client/_app/immutable/entry/app.CPF6A_DV.js +2 -0
  69. package/build/client/_app/immutable/entry/app.CPF6A_DV.js.br +0 -0
  70. package/build/client/_app/immutable/entry/app.CPF6A_DV.js.gz +0 -0
  71. package/build/client/_app/immutable/entry/start.Dos_Ttds.js +1 -0
  72. package/build/client/_app/immutable/entry/start.Dos_Ttds.js.br +2 -0
  73. package/build/client/_app/immutable/entry/start.Dos_Ttds.js.gz +0 -0
  74. package/build/client/_app/immutable/nodes/{0.DlE8ZTIF.js → 0.C5HgTRfT.js} +1 -1
  75. package/build/client/_app/immutable/nodes/0.C5HgTRfT.js.br +0 -0
  76. package/build/client/_app/immutable/nodes/0.C5HgTRfT.js.gz +0 -0
  77. package/build/client/_app/immutable/nodes/1.CGcgSoA9.js +1 -0
  78. package/build/client/_app/immutable/nodes/1.CGcgSoA9.js.br +0 -0
  79. package/build/client/_app/immutable/nodes/1.CGcgSoA9.js.gz +0 -0
  80. package/build/client/_app/immutable/nodes/10.ukScuXwz.js +1 -0
  81. package/build/client/_app/immutable/nodes/10.ukScuXwz.js.br +5 -0
  82. package/build/client/_app/immutable/nodes/10.ukScuXwz.js.gz +0 -0
  83. package/build/client/_app/immutable/nodes/11.D3RDNx7M.js +1 -0
  84. package/build/client/_app/immutable/nodes/11.D3RDNx7M.js.br +0 -0
  85. package/build/client/_app/immutable/nodes/11.D3RDNx7M.js.gz +0 -0
  86. package/build/client/_app/immutable/nodes/12._vvpCcSG.js +1 -0
  87. package/build/client/_app/immutable/nodes/12._vvpCcSG.js.br +0 -0
  88. package/build/client/_app/immutable/nodes/12._vvpCcSG.js.gz +0 -0
  89. package/build/client/_app/immutable/nodes/13.BWPzZMQ5.js +1 -0
  90. package/build/client/_app/immutable/nodes/13.BWPzZMQ5.js.br +0 -0
  91. package/build/client/_app/immutable/nodes/13.BWPzZMQ5.js.gz +0 -0
  92. package/build/client/_app/immutable/nodes/14.Cr843Lep.js +1 -0
  93. package/build/client/_app/immutable/nodes/14.Cr843Lep.js.br +0 -0
  94. package/build/client/_app/immutable/nodes/14.Cr843Lep.js.gz +0 -0
  95. package/build/client/_app/immutable/nodes/2.DUpwDjw8.js +1 -0
  96. package/build/client/_app/immutable/nodes/2.DUpwDjw8.js.br +0 -0
  97. package/build/client/_app/immutable/nodes/2.DUpwDjw8.js.gz +0 -0
  98. package/build/client/_app/immutable/nodes/{2.CvEpuMc7.js → 3.DPH7xl7M.js} +1 -1
  99. package/build/client/_app/immutable/nodes/3.DPH7xl7M.js.br +0 -0
  100. package/build/client/_app/immutable/nodes/3.DPH7xl7M.js.gz +0 -0
  101. package/build/client/_app/immutable/nodes/4.Bk0knTIK.js +1 -0
  102. package/build/client/_app/immutable/nodes/4.Bk0knTIK.js.br +0 -0
  103. package/build/client/_app/immutable/nodes/4.Bk0knTIK.js.gz +0 -0
  104. package/build/client/_app/immutable/nodes/5.DwnZ1Bh8.js +1 -0
  105. package/build/client/_app/immutable/nodes/5.DwnZ1Bh8.js.br +0 -0
  106. package/build/client/_app/immutable/nodes/5.DwnZ1Bh8.js.gz +0 -0
  107. package/build/client/_app/immutable/nodes/6.5U-KxFgt.js +2 -0
  108. package/build/client/_app/immutable/nodes/6.5U-KxFgt.js.br +0 -0
  109. package/build/client/_app/immutable/nodes/6.5U-KxFgt.js.gz +0 -0
  110. package/build/client/_app/immutable/nodes/7.DFc4sJix.js +1 -0
  111. package/build/client/_app/immutable/nodes/7.DFc4sJix.js.br +0 -0
  112. package/build/client/_app/immutable/nodes/7.DFc4sJix.js.gz +0 -0
  113. package/build/client/_app/immutable/nodes/8.BG4bv5P5.js +1 -0
  114. package/build/client/_app/immutable/nodes/8.BG4bv5P5.js.br +0 -0
  115. package/build/client/_app/immutable/nodes/8.BG4bv5P5.js.gz +0 -0
  116. package/build/client/_app/immutable/nodes/9.BKljyhOi.js +1 -0
  117. package/build/client/_app/immutable/nodes/9.BKljyhOi.js.br +0 -0
  118. package/build/client/_app/immutable/nodes/9.BKljyhOi.js.gz +0 -0
  119. package/build/client/_app/version.json +1 -1
  120. package/build/client/_app/version.json.br +0 -0
  121. package/build/client/_app/version.json.gz +0 -0
  122. package/build/client/styles.css +7 -0
  123. package/build/client/styles.css.br +0 -0
  124. package/build/client/styles.css.gz +0 -0
  125. package/build/handler.js +20 -3
  126. package/build/server/chunks/0-CZBaNtSI.js +9 -0
  127. package/build/server/chunks/{0-DgHTujtC.js.map → 0-CZBaNtSI.js.map} +1 -1
  128. package/build/server/chunks/1-D_3BtEbe.js +9 -0
  129. package/build/server/chunks/{1-k30i-hic.js.map → 1-D_3BtEbe.js.map} +1 -1
  130. package/build/server/chunks/10-CLkNMKHU.js +13 -0
  131. package/build/server/chunks/10-CLkNMKHU.js.map +1 -0
  132. package/build/server/chunks/11-5xPYR_1w.js +13 -0
  133. package/build/server/chunks/11-5xPYR_1w.js.map +1 -0
  134. package/build/server/chunks/12-N7UaQj7u.js +9 -0
  135. package/build/server/chunks/12-N7UaQj7u.js.map +1 -0
  136. package/build/server/chunks/13-QYVLpXli.js +9 -0
  137. package/build/server/chunks/13-QYVLpXli.js.map +1 -0
  138. package/build/server/chunks/14-CPY578rT.js +9 -0
  139. package/build/server/chunks/14-CPY578rT.js.map +1 -0
  140. package/build/server/chunks/2-_1jFrcvz.js +13 -0
  141. package/build/server/chunks/2-_1jFrcvz.js.map +1 -0
  142. package/build/server/chunks/3-B1CwnVF_.js +9 -0
  143. package/build/server/chunks/{2-CXlrhpR6.js.map → 3-B1CwnVF_.js.map} +1 -1
  144. package/build/server/chunks/4-CcxCcH4F.js +13 -0
  145. package/build/server/chunks/4-CcxCcH4F.js.map +1 -0
  146. package/build/server/chunks/5-CrlH6VoB.js +13 -0
  147. package/build/server/chunks/5-CrlH6VoB.js.map +1 -0
  148. package/build/server/chunks/6-FkP678Uz.js +13 -0
  149. package/build/server/chunks/6-FkP678Uz.js.map +1 -0
  150. package/build/server/chunks/7-B1iCe7VA.js +13 -0
  151. package/build/server/chunks/7-B1iCe7VA.js.map +1 -0
  152. package/build/server/chunks/8-p6n9G-P_.js +13 -0
  153. package/build/server/chunks/8-p6n9G-P_.js.map +1 -0
  154. package/build/server/chunks/9-fc3lKB7X.js +13 -0
  155. package/build/server/chunks/9-fc3lKB7X.js.map +1 -0
  156. package/build/server/chunks/Icon-CG7XnWX5.js +30 -0
  157. package/build/server/chunks/Icon-CG7XnWX5.js.map +1 -0
  158. package/build/server/chunks/Logout-BwzK1P29.js +45 -0
  159. package/build/server/chunks/Logout-BwzK1P29.js.map +1 -0
  160. package/build/server/chunks/_layout.svelte-9KMUotip.js +31 -0
  161. package/build/server/chunks/_layout.svelte-9KMUotip.js.map +1 -0
  162. package/build/server/chunks/_page.svelte-BD3HmLo_.js +28 -0
  163. package/build/server/chunks/_page.svelte-BD3HmLo_.js.map +1 -0
  164. package/build/server/chunks/_page.svelte-BFzPdJ6z.js +105 -0
  165. package/build/server/chunks/_page.svelte-BFzPdJ6z.js.map +1 -0
  166. package/build/server/chunks/_page.svelte-BIxxuzff.js +64 -0
  167. package/build/server/chunks/_page.svelte-BIxxuzff.js.map +1 -0
  168. package/build/server/chunks/_page.svelte-Bou2_u6i.js +13 -0
  169. package/build/server/chunks/_page.svelte-Bou2_u6i.js.map +1 -0
  170. package/build/server/chunks/_page.svelte-C25oQ2NT.js +80 -0
  171. package/build/server/chunks/_page.svelte-C25oQ2NT.js.map +1 -0
  172. package/build/server/chunks/_page.svelte-CAzWL4aq.js +66 -0
  173. package/build/server/chunks/_page.svelte-CAzWL4aq.js.map +1 -0
  174. package/build/server/chunks/_page.svelte-Ci5V-DhL.js +72 -0
  175. package/build/server/chunks/_page.svelte-Ci5V-DhL.js.map +1 -0
  176. package/build/server/chunks/_page.svelte-CnfRSJsl.js +37 -0
  177. package/build/server/chunks/_page.svelte-CnfRSJsl.js.map +1 -0
  178. package/build/server/chunks/_page.svelte-DgyZKeaF.js +231 -0
  179. package/build/server/chunks/_page.svelte-DgyZKeaF.js.map +1 -0
  180. package/build/server/chunks/_page.svelte-VDBvShZ8.js +6 -0
  181. package/build/server/chunks/_page.svelte-VDBvShZ8.js.map +1 -0
  182. package/build/server/chunks/_page.svelte-cAsZlwLs.js +24 -0
  183. package/build/server/chunks/_page.svelte-cAsZlwLs.js.map +1 -0
  184. package/build/server/chunks/_page.svelte-rrN2zFNa.js +66 -0
  185. package/build/server/chunks/_page.svelte-rrN2zFNa.js.map +1 -0
  186. package/build/server/chunks/account-BZSP6KBP.js +445 -0
  187. package/build/server/chunks/account-BZSP6KBP.js.map +1 -0
  188. package/build/server/chunks/color-K_MR7m8s.js +14 -0
  189. package/build/server/chunks/color-K_MR7m8s.js.map +1 -0
  190. package/build/server/chunks/context-R2425nfV.js +64 -0
  191. package/build/server/chunks/context-R2425nfV.js.map +1 -0
  192. package/build/server/chunks/{error.svelte-DNQXZmIO.js → error.svelte-DTrQqomO.js} +8 -7
  193. package/build/server/chunks/error.svelte-DTrQqomO.js.map +1 -0
  194. package/build/server/chunks/index-DJrm8BZm.js +844 -0
  195. package/build/server/chunks/index-DJrm8BZm.js.map +1 -0
  196. package/build/server/chunks/{index-CvHf_GW2.js → index-eKiDBuyI.js} +826 -438
  197. package/build/server/chunks/index-eKiDBuyI.js.map +1 -0
  198. package/build/server/chunks/layout.svelte-UxsTmhKc.js +8 -0
  199. package/build/server/chunks/layout.svelte-UxsTmhKc.js.map +1 -0
  200. package/build/server/chunks/{string-DLbvtT1R.js → numbers-DL8C9q4W.js} +1 -71
  201. package/build/server/chunks/numbers-DL8C9q4W.js.map +1 -0
  202. package/build/server/chunks/{FormDialog-CB-2YGWi.js → user2-Coq3Frtw.js} +102 -203
  203. package/build/server/chunks/user2-Coq3Frtw.js.map +1 -0
  204. package/build/server/chunks/{utils-h74ns7K6.js → utils-DlBYhQz7.js} +2 -1
  205. package/build/server/chunks/utils-DlBYhQz7.js.map +1 -0
  206. package/build/server/index.js +1787 -994
  207. package/build/server/index.js.map +1 -1
  208. package/build/server/manifest.js +70 -13
  209. package/build/server/manifest.js.map +1 -1
  210. package/dist/acl.d.ts +1 -2
  211. package/dist/api/acl.js +4 -4
  212. package/dist/api/admin.d.ts +1 -0
  213. package/dist/api/admin.js +135 -0
  214. package/dist/api/index.d.ts +2 -0
  215. package/dist/api/index.js +2 -0
  216. package/dist/api/metadata.js +3 -3
  217. package/dist/api/passkeys.js +10 -10
  218. package/dist/api/register.js +4 -4
  219. package/dist/api/session.js +5 -5
  220. package/dist/api/users.js +48 -48
  221. package/dist/audit.d.ts +7 -39
  222. package/dist/audit.js +10 -13
  223. package/dist/auth.d.ts +4 -11
  224. package/dist/auth.js +4 -4
  225. package/dist/cli.js +40 -54
  226. package/dist/config.d.ts +24 -14
  227. package/dist/config.js +42 -25
  228. package/dist/database.d.ts +3 -4
  229. package/dist/database.js +12 -12
  230. package/dist/internal_requests.d.ts +3 -0
  231. package/dist/internal_requests.js +119 -0
  232. package/dist/io.d.ts +1 -1
  233. package/dist/io.js +2 -5
  234. package/dist/linking.d.ts +0 -1
  235. package/dist/linking.js +2 -5
  236. package/dist/plugins.d.ts +4 -39
  237. package/dist/plugins.js +35 -51
  238. package/dist/requests.d.ts +5 -5
  239. package/dist/requests.js +14 -14
  240. package/dist/routes.d.ts +6 -10
  241. package/dist/routes.js +4 -5
  242. package/dist/serve.d.ts +3 -2
  243. package/dist/serve.js +165 -13
  244. package/dist/state.js +2 -1
  245. package/package.json +6 -5
  246. package/routes/account/+page.svelte +5 -109
  247. package/routes/admin/+layout.svelte +56 -0
  248. package/routes/admin/+layout.ts +29 -0
  249. package/routes/admin/+page.svelte +39 -0
  250. package/routes/admin/+page.ts +7 -0
  251. package/routes/admin/audit/+page.svelte +137 -0
  252. package/routes/admin/audit/+page.ts +20 -0
  253. package/routes/admin/audit/[id]/+page.svelte +43 -0
  254. package/routes/admin/audit/[id]/+page.ts +9 -0
  255. package/routes/admin/audit/styles.css +31 -0
  256. package/routes/admin/config/+page.svelte +28 -0
  257. package/routes/admin/config/+page.ts +9 -0
  258. package/routes/admin/plugins/+page.svelte +23 -0
  259. package/routes/admin/plugins/+page.ts +7 -0
  260. package/routes/admin/users/+page.svelte +60 -0
  261. package/routes/admin/users/+page.ts +9 -0
  262. package/routes/admin/users/[id]/+page.svelte +108 -0
  263. package/routes/admin/users/[id]/+page.ts +17 -0
  264. package/routes/tsconfig.json +1 -1
  265. package/svelte.config.js +4 -10
  266. package/{web/template.html → template.html} +1 -1
  267. package/{web/tsconfig.json → web.tsconfig.json} +2 -2
  268. package/build/client/_app/immutable/chunks/B1E1cVbi.js +0 -1
  269. package/build/client/_app/immutable/chunks/B1E1cVbi.js.br +0 -0
  270. package/build/client/_app/immutable/chunks/B1E1cVbi.js.gz +0 -0
  271. package/build/client/_app/immutable/chunks/D3hk2v8y.js +0 -1
  272. package/build/client/_app/immutable/chunks/D3hk2v8y.js.br +0 -2
  273. package/build/client/_app/immutable/chunks/D3hk2v8y.js.gz +0 -0
  274. package/build/client/_app/immutable/chunks/D4Bce_hb.js +0 -1
  275. package/build/client/_app/immutable/chunks/D4Bce_hb.js.br +0 -0
  276. package/build/client/_app/immutable/chunks/D4Bce_hb.js.gz +0 -0
  277. package/build/client/_app/immutable/chunks/D9TfJrfD.js +0 -1
  278. package/build/client/_app/immutable/chunks/D9TfJrfD.js.br +0 -0
  279. package/build/client/_app/immutable/chunks/D9TfJrfD.js.gz +0 -0
  280. package/build/client/_app/immutable/chunks/DJeR1n-B.js +0 -51
  281. package/build/client/_app/immutable/chunks/DJeR1n-B.js.br +0 -0
  282. package/build/client/_app/immutable/chunks/DJeR1n-B.js.gz +0 -0
  283. package/build/client/_app/immutable/chunks/Dy1O3iBu.js +0 -2
  284. package/build/client/_app/immutable/chunks/Dy1O3iBu.js.br +0 -0
  285. package/build/client/_app/immutable/chunks/Dy1O3iBu.js.gz +0 -0
  286. package/build/client/_app/immutable/chunks/NhZR8nmR.js +0 -3
  287. package/build/client/_app/immutable/chunks/NhZR8nmR.js.br +0 -0
  288. package/build/client/_app/immutable/chunks/NhZR8nmR.js.gz +0 -0
  289. package/build/client/_app/immutable/chunks/pba7IodQ.js +0 -1
  290. package/build/client/_app/immutable/chunks/pba7IodQ.js.br +0 -0
  291. package/build/client/_app/immutable/chunks/pba7IodQ.js.gz +0 -0
  292. package/build/client/_app/immutable/entry/app.DJWgFLyv.js +0 -2
  293. package/build/client/_app/immutable/entry/app.DJWgFLyv.js.br +0 -0
  294. package/build/client/_app/immutable/entry/app.DJWgFLyv.js.gz +0 -0
  295. package/build/client/_app/immutable/entry/start.CM7y0WAo.js +0 -1
  296. package/build/client/_app/immutable/entry/start.CM7y0WAo.js.br +0 -2
  297. package/build/client/_app/immutable/entry/start.CM7y0WAo.js.gz +0 -0
  298. package/build/client/_app/immutable/nodes/0.DlE8ZTIF.js.br +0 -0
  299. package/build/client/_app/immutable/nodes/0.DlE8ZTIF.js.gz +0 -0
  300. package/build/client/_app/immutable/nodes/1.BER4lkmI.js +0 -1
  301. package/build/client/_app/immutable/nodes/1.BER4lkmI.js.br +0 -0
  302. package/build/client/_app/immutable/nodes/1.BER4lkmI.js.gz +0 -0
  303. package/build/client/_app/immutable/nodes/2.CvEpuMc7.js.br +0 -0
  304. package/build/client/_app/immutable/nodes/2.CvEpuMc7.js.gz +0 -0
  305. package/build/client/_app/immutable/nodes/3.CVudd8x2.js +0 -7
  306. package/build/client/_app/immutable/nodes/3.CVudd8x2.js.br +0 -0
  307. package/build/client/_app/immutable/nodes/3.CVudd8x2.js.gz +0 -0
  308. package/build/client/_app/immutable/nodes/4.Dhj0R0r7.js +0 -1
  309. package/build/client/_app/immutable/nodes/4.Dhj0R0r7.js.br +0 -0
  310. package/build/client/_app/immutable/nodes/4.Dhj0R0r7.js.gz +0 -0
  311. package/build/client/_app/immutable/nodes/5.CGoBaVII.js +0 -1
  312. package/build/client/_app/immutable/nodes/5.CGoBaVII.js.br +0 -0
  313. package/build/client/_app/immutable/nodes/5.CGoBaVII.js.gz +0 -0
  314. package/build/client/_app/immutable/nodes/6.BtB2uWXy.js +0 -1
  315. package/build/client/_app/immutable/nodes/6.BtB2uWXy.js.br +0 -0
  316. package/build/client/_app/immutable/nodes/6.BtB2uWXy.js.gz +0 -0
  317. package/build/server/chunks/0-DgHTujtC.js +0 -9
  318. package/build/server/chunks/1-k30i-hic.js +0 -9
  319. package/build/server/chunks/2-CXlrhpR6.js +0 -9
  320. package/build/server/chunks/3-CGT4Ugys.js +0 -13
  321. package/build/server/chunks/3-CGT4Ugys.js.map +0 -1
  322. package/build/server/chunks/4-BscEiwUk.js +0 -9
  323. package/build/server/chunks/4-BscEiwUk.js.map +0 -1
  324. package/build/server/chunks/5-H0ePIJBE.js +0 -9
  325. package/build/server/chunks/5-H0ePIJBE.js.map +0 -1
  326. package/build/server/chunks/6-BrPpcagX.js +0 -9
  327. package/build/server/chunks/6-BrPpcagX.js.map +0 -1
  328. package/build/server/chunks/FormDialog-CB-2YGWi.js.map +0 -1
  329. package/build/server/chunks/Logout-LKOt-AST.js +0 -45
  330. package/build/server/chunks/Logout-LKOt-AST.js.map +0 -1
  331. package/build/server/chunks/_page.svelte-B1LK5J87.js +0 -11
  332. package/build/server/chunks/_page.svelte-B1LK5J87.js.map +0 -1
  333. package/build/server/chunks/_page.svelte-CMtkwvbP.js +0 -68
  334. package/build/server/chunks/_page.svelte-CMtkwvbP.js.map +0 -1
  335. package/build/server/chunks/_page.svelte-CbI2KxeA.js +0 -62
  336. package/build/server/chunks/_page.svelte-CbI2KxeA.js.map +0 -1
  337. package/build/server/chunks/_page.svelte-D1_WJoyP.js +0 -6
  338. package/build/server/chunks/_page.svelte-D1_WJoyP.js.map +0 -1
  339. package/build/server/chunks/_page.svelte-d01Hl2Ia.js +0 -639
  340. package/build/server/chunks/_page.svelte-d01Hl2Ia.js.map +0 -1
  341. package/build/server/chunks/error.svelte-DNQXZmIO.js.map +0 -1
  342. package/build/server/chunks/hooks.server-BQqilaHv.js +0 -17301
  343. package/build/server/chunks/hooks.server-BQqilaHv.js.map +0 -1
  344. package/build/server/chunks/index-CvHf_GW2.js.map +0 -1
  345. package/build/server/chunks/index-RTKpMYZ1.js +0 -397
  346. package/build/server/chunks/index-RTKpMYZ1.js.map +0 -1
  347. package/build/server/chunks/layout.svelte-BSvrn-4a.js +0 -8
  348. package/build/server/chunks/layout.svelte-BSvrn-4a.js.map +0 -1
  349. package/build/server/chunks/string-DLbvtT1R.js.map +0 -1
  350. package/build/server/chunks/utils-h74ns7K6.js.map +0 -1
  351. package/dist/sveltekit.d.ts +0 -8
  352. package/dist/sveltekit.js +0 -60
  353. package/web/hooks.server.ts +0 -4
@@ -10,15 +10,23 @@ return {
10
10
  assets: new Set(["icons/brands.svg","icons/light.svg","icons/regular.svg","icons/solid.svg","styles.css","theme.css"]),
11
11
  mimeTypes: {".svg":"image/svg+xml",".css":"text/css"},
12
12
  _: {
13
- client: {start:"_app/immutable/entry/start.CM7y0WAo.js",app:"_app/immutable/entry/app.DJWgFLyv.js",imports:["_app/immutable/entry/start.CM7y0WAo.js","_app/immutable/chunks/NhZR8nmR.js","_app/immutable/chunks/D4Bce_hb.js","_app/immutable/chunks/D9TfJrfD.js","_app/immutable/chunks/Dy1O3iBu.js","_app/immutable/chunks/D3hk2v8y.js","_app/immutable/entry/app.DJWgFLyv.js","_app/immutable/chunks/D9TfJrfD.js","_app/immutable/chunks/Dy1O3iBu.js","_app/immutable/chunks/DsnmJJEf.js","_app/immutable/chunks/D4Bce_hb.js","_app/immutable/chunks/D3hk2v8y.js","_app/immutable/chunks/pba7IodQ.js"],stylesheets:[],fonts:[],uses_env_dynamic_public:false},
13
+ client: {start:"_app/immutable/entry/start.Dos_Ttds.js",app:"_app/immutable/entry/app.CPF6A_DV.js",imports:["_app/immutable/entry/start.Dos_Ttds.js","_app/immutable/chunks/KNAS5R2A.js","_app/immutable/chunks/CFWAHLsq.js","_app/immutable/chunks/Dnk28BpG.js","_app/immutable/chunks/Bbzjahjl.js","_app/immutable/chunks/D1v6O410.js","_app/immutable/entry/app.CPF6A_DV.js","_app/immutable/chunks/Dnk28BpG.js","_app/immutable/chunks/Bbzjahjl.js","_app/immutable/chunks/DsnmJJEf.js","_app/immutable/chunks/CFWAHLsq.js","_app/immutable/chunks/D1v6O410.js","_app/immutable/chunks/1taVrT-y.js","_app/immutable/chunks/DfUzlYF5.js","_app/immutable/chunks/CTKC36WM.js"],stylesheets:[],fonts:[],uses_env_dynamic_public:false},
14
14
  nodes: [
15
- __memo(() => import('./chunks/0-DgHTujtC.js')),
16
- __memo(() => import('./chunks/1-k30i-hic.js')),
17
- __memo(() => import('./chunks/2-CXlrhpR6.js')),
18
- __memo(() => import('./chunks/3-CGT4Ugys.js')),
19
- __memo(() => import('./chunks/4-BscEiwUk.js')),
20
- __memo(() => import('./chunks/5-H0ePIJBE.js')),
21
- __memo(() => import('./chunks/6-BrPpcagX.js'))
15
+ __memo(() => import('./chunks/0-CZBaNtSI.js')),
16
+ __memo(() => import('./chunks/1-D_3BtEbe.js')),
17
+ __memo(() => import('./chunks/2-_1jFrcvz.js')),
18
+ __memo(() => import('./chunks/3-B1CwnVF_.js')),
19
+ __memo(() => import('./chunks/4-CcxCcH4F.js')),
20
+ __memo(() => import('./chunks/5-CrlH6VoB.js')),
21
+ __memo(() => import('./chunks/6-FkP678Uz.js')),
22
+ __memo(() => import('./chunks/7-B1iCe7VA.js')),
23
+ __memo(() => import('./chunks/8-p6n9G-P_.js')),
24
+ __memo(() => import('./chunks/9-fc3lKB7X.js')),
25
+ __memo(() => import('./chunks/10-CLkNMKHU.js')),
26
+ __memo(() => import('./chunks/11-5xPYR_1w.js')),
27
+ __memo(() => import('./chunks/12-N7UaQj7u.js')),
28
+ __memo(() => import('./chunks/13-QYVLpXli.js')),
29
+ __memo(() => import('./chunks/14-CPY578rT.js'))
22
30
  ],
23
31
  remotes: {
24
32
 
@@ -28,35 +36,84 @@ return {
28
36
  id: "/_axium/default",
29
37
  pattern: /^\/_axium\/default\/?$/,
30
38
  params: [],
31
- page: { layouts: [0,], errors: [1,], leaf: 2 },
39
+ page: { layouts: [0,], errors: [1,], leaf: 3 },
32
40
  endpoint: null
33
41
  },
34
42
  {
35
43
  id: "/account",
36
44
  pattern: /^\/account\/?$/,
37
45
  params: [],
38
- page: { layouts: [0,], errors: [1,], leaf: 3 },
46
+ page: { layouts: [0,], errors: [1,], leaf: 4 },
47
+ endpoint: null
48
+ },
49
+ {
50
+ id: "/admin",
51
+ pattern: /^\/admin\/?$/,
52
+ params: [],
53
+ page: { layouts: [0,2,], errors: [1,,], leaf: 5 },
54
+ endpoint: null
55
+ },
56
+ {
57
+ id: "/admin/audit",
58
+ pattern: /^\/admin\/audit\/?$/,
59
+ params: [],
60
+ page: { layouts: [0,2,], errors: [1,,], leaf: 6 },
61
+ endpoint: null
62
+ },
63
+ {
64
+ id: "/admin/audit/[id]",
65
+ pattern: /^\/admin\/audit\/([^/]+?)\/?$/,
66
+ params: [{"name":"id","optional":false,"rest":false,"chained":false}],
67
+ page: { layouts: [0,2,], errors: [1,,], leaf: 7 },
68
+ endpoint: null
69
+ },
70
+ {
71
+ id: "/admin/config",
72
+ pattern: /^\/admin\/config\/?$/,
73
+ params: [],
74
+ page: { layouts: [0,2,], errors: [1,,], leaf: 8 },
75
+ endpoint: null
76
+ },
77
+ {
78
+ id: "/admin/plugins",
79
+ pattern: /^\/admin\/plugins\/?$/,
80
+ params: [],
81
+ page: { layouts: [0,2,], errors: [1,,], leaf: 9 },
82
+ endpoint: null
83
+ },
84
+ {
85
+ id: "/admin/users",
86
+ pattern: /^\/admin\/users\/?$/,
87
+ params: [],
88
+ page: { layouts: [0,2,], errors: [1,,], leaf: 10 },
89
+ endpoint: null
90
+ },
91
+ {
92
+ id: "/admin/users/[id]",
93
+ pattern: /^\/admin\/users\/([^/]+?)\/?$/,
94
+ params: [{"name":"id","optional":false,"rest":false,"chained":false}],
95
+ page: { layouts: [0,2,], errors: [1,,], leaf: 11 },
39
96
  endpoint: null
40
97
  },
41
98
  {
42
99
  id: "/login",
43
100
  pattern: /^\/login\/?$/,
44
101
  params: [],
45
- page: { layouts: [0,], errors: [1,], leaf: 4 },
102
+ page: { layouts: [0,], errors: [1,], leaf: 12 },
46
103
  endpoint: null
47
104
  },
48
105
  {
49
106
  id: "/logout",
50
107
  pattern: /^\/logout\/?$/,
51
108
  params: [],
52
- page: { layouts: [0,], errors: [1,], leaf: 5 },
109
+ page: { layouts: [0,], errors: [1,], leaf: 13 },
53
110
  endpoint: null
54
111
  },
55
112
  {
56
113
  id: "/register",
57
114
  pattern: /^\/register\/?$/,
58
115
  params: [],
59
- page: { layouts: [0,], errors: [1,], leaf: 6 },
116
+ page: { layouts: [0,], errors: [1,], leaf: 14 },
60
117
  endpoint: null
61
118
  }
62
119
  ],
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.js","sources":["../../.svelte-kit/adapter-node/manifest.js"],"sourcesContent":["export const manifest = (() => {\nfunction __memo(fn) {\n\tlet value;\n\treturn () => value ??= (value = fn());\n}\n\nreturn {\n\tappDir: \"_app\",\n\tappPath: \"_app\",\n\tassets: new Set([\"icons/brands.svg\",\"icons/light.svg\",\"icons/regular.svg\",\"icons/solid.svg\",\"styles.css\",\"theme.css\"]),\n\tmimeTypes: {\".svg\":\"image/svg+xml\",\".css\":\"text/css\"},\n\t_: {\n\t\tclient: {start:\"_app/immutable/entry/start.CM7y0WAo.js\",app:\"_app/immutable/entry/app.DJWgFLyv.js\",imports:[\"_app/immutable/entry/start.CM7y0WAo.js\",\"_app/immutable/chunks/NhZR8nmR.js\",\"_app/immutable/chunks/D4Bce_hb.js\",\"_app/immutable/chunks/D9TfJrfD.js\",\"_app/immutable/chunks/Dy1O3iBu.js\",\"_app/immutable/chunks/D3hk2v8y.js\",\"_app/immutable/entry/app.DJWgFLyv.js\",\"_app/immutable/chunks/D9TfJrfD.js\",\"_app/immutable/chunks/Dy1O3iBu.js\",\"_app/immutable/chunks/DsnmJJEf.js\",\"_app/immutable/chunks/D4Bce_hb.js\",\"_app/immutable/chunks/D3hk2v8y.js\",\"_app/immutable/chunks/pba7IodQ.js\"],stylesheets:[],fonts:[],uses_env_dynamic_public:false},\n\t\tnodes: [\n\t\t\t__memo(() => import('./nodes/0.js')),\n\t\t\t__memo(() => import('./nodes/1.js')),\n\t\t\t__memo(() => import('./nodes/2.js')),\n\t\t\t__memo(() => import('./nodes/3.js')),\n\t\t\t__memo(() => import('./nodes/4.js')),\n\t\t\t__memo(() => import('./nodes/5.js')),\n\t\t\t__memo(() => import('./nodes/6.js'))\n\t\t],\n\t\tremotes: {\n\t\t\t\n\t\t},\n\t\troutes: [\n\t\t\t{\n\t\t\t\tid: \"/_axium/default\",\n\t\t\t\tpattern: /^\\/_axium\\/default\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 2 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/account\",\n\t\t\t\tpattern: /^\\/account\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 3 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/login\",\n\t\t\t\tpattern: /^\\/login\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 4 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/logout\",\n\t\t\t\tpattern: /^\\/logout\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 5 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/register\",\n\t\t\t\tpattern: /^\\/register\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 6 },\n\t\t\t\tendpoint: null\n\t\t\t}\n\t\t],\n\t\tprerendered_routes: new Set([]),\n\t\tmatchers: async () => {\n\t\t\t\n\t\t\treturn { };\n\t\t},\n\t\tserver_assets: {}\n\t}\n}\n})();\n\nexport const prerendered = new Set([]);\n\nexport const base = \"\";"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manifest.js","sources":["../../.svelte-kit/adapter-node/manifest.js"],"sourcesContent":["export const manifest = (() => {\nfunction __memo(fn) {\n\tlet value;\n\treturn () => value ??= (value = fn());\n}\n\nreturn {\n\tappDir: \"_app\",\n\tappPath: \"_app\",\n\tassets: new Set([\"icons/brands.svg\",\"icons/light.svg\",\"icons/regular.svg\",\"icons/solid.svg\",\"styles.css\",\"theme.css\"]),\n\tmimeTypes: {\".svg\":\"image/svg+xml\",\".css\":\"text/css\"},\n\t_: {\n\t\tclient: {start:\"_app/immutable/entry/start.Dos_Ttds.js\",app:\"_app/immutable/entry/app.CPF6A_DV.js\",imports:[\"_app/immutable/entry/start.Dos_Ttds.js\",\"_app/immutable/chunks/KNAS5R2A.js\",\"_app/immutable/chunks/CFWAHLsq.js\",\"_app/immutable/chunks/Dnk28BpG.js\",\"_app/immutable/chunks/Bbzjahjl.js\",\"_app/immutable/chunks/D1v6O410.js\",\"_app/immutable/entry/app.CPF6A_DV.js\",\"_app/immutable/chunks/Dnk28BpG.js\",\"_app/immutable/chunks/Bbzjahjl.js\",\"_app/immutable/chunks/DsnmJJEf.js\",\"_app/immutable/chunks/CFWAHLsq.js\",\"_app/immutable/chunks/D1v6O410.js\",\"_app/immutable/chunks/1taVrT-y.js\",\"_app/immutable/chunks/DfUzlYF5.js\",\"_app/immutable/chunks/CTKC36WM.js\"],stylesheets:[],fonts:[],uses_env_dynamic_public:false},\n\t\tnodes: [\n\t\t\t__memo(() => import('./nodes/0.js')),\n\t\t\t__memo(() => import('./nodes/1.js')),\n\t\t\t__memo(() => import('./nodes/2.js')),\n\t\t\t__memo(() => import('./nodes/3.js')),\n\t\t\t__memo(() => import('./nodes/4.js')),\n\t\t\t__memo(() => import('./nodes/5.js')),\n\t\t\t__memo(() => import('./nodes/6.js')),\n\t\t\t__memo(() => import('./nodes/7.js')),\n\t\t\t__memo(() => import('./nodes/8.js')),\n\t\t\t__memo(() => import('./nodes/9.js')),\n\t\t\t__memo(() => import('./nodes/10.js')),\n\t\t\t__memo(() => import('./nodes/11.js')),\n\t\t\t__memo(() => import('./nodes/12.js')),\n\t\t\t__memo(() => import('./nodes/13.js')),\n\t\t\t__memo(() => import('./nodes/14.js'))\n\t\t],\n\t\tremotes: {\n\t\t\t\n\t\t},\n\t\troutes: [\n\t\t\t{\n\t\t\t\tid: \"/_axium/default\",\n\t\t\t\tpattern: /^\\/_axium\\/default\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 3 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/account\",\n\t\t\t\tpattern: /^\\/account\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 4 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/admin\",\n\t\t\t\tpattern: /^\\/admin\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,2,], errors: [1,,], leaf: 5 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/admin/audit\",\n\t\t\t\tpattern: /^\\/admin\\/audit\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,2,], errors: [1,,], leaf: 6 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/admin/audit/[id]\",\n\t\t\t\tpattern: /^\\/admin\\/audit\\/([^/]+?)\\/?$/,\n\t\t\t\tparams: [{\"name\":\"id\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,2,], errors: [1,,], leaf: 7 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/admin/config\",\n\t\t\t\tpattern: /^\\/admin\\/config\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,2,], errors: [1,,], leaf: 8 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/admin/plugins\",\n\t\t\t\tpattern: /^\\/admin\\/plugins\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,2,], errors: [1,,], leaf: 9 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/admin/users\",\n\t\t\t\tpattern: /^\\/admin\\/users\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,2,], errors: [1,,], leaf: 10 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/admin/users/[id]\",\n\t\t\t\tpattern: /^\\/admin\\/users\\/([^/]+?)\\/?$/,\n\t\t\t\tparams: [{\"name\":\"id\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,2,], errors: [1,,], leaf: 11 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/login\",\n\t\t\t\tpattern: /^\\/login\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 12 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/logout\",\n\t\t\t\tpattern: /^\\/logout\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 13 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/register\",\n\t\t\t\tpattern: /^\\/register\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 14 },\n\t\t\t\tendpoint: null\n\t\t\t}\n\t\t],\n\t\tprerendered_routes: new Set([]),\n\t\tmatchers: async () => {\n\t\t\t\n\t\t\treturn { };\n\t\t},\n\t\tserver_assets: {}\n\t}\n}\n})();\n\nexport const prerendered = new Set([]);\n\nexport const base = \"\";"],"names":[],"mappings":"AAAY,MAAC,QAAQ,GAAG,CAAC,MAAM;AAC/B,SAAS,MAAM,CAAC,EAAE,EAAE;AACpB,CAAC,IAAI,KAAK;AACV,CAAC,OAAO,MAAM,KAAK,MAAM,KAAK,GAAG,EAAE,EAAE,CAAC;AACtC;;AAEA,OAAO;AACP,CAAC,MAAM,EAAE,MAAM;AACf,CAAC,OAAO,EAAE,MAAM;AAChB,CAAC,MAAM,EAAE,IAAI,GAAG,CAAC,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;AACvH,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC;AACtD,CAAC,CAAC,EAAE;AACJ,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,wCAAwC,CAAC,GAAG,CAAC,sCAAsC,CAAC,OAAO,CAAC,CAAC,wCAAwC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,sCAAsC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAAC,KAAK,CAAC;AACzsB,EAAE,KAAK,EAAE;AACT,GAAG,MAAM,CAAC,MAAM,OAAO,wBAAc,CAAC,CAAC;AACvC,GAAG,MAAM,CAAC,MAAM,OAAO,wBAAc,CAAC,CAAC;AACvC,GAAG,MAAM,CAAC,MAAM,OAAO,wBAAc,CAAC,CAAC;AACvC,GAAG,MAAM,CAAC,MAAM,OAAO,wBAAc,CAAC,CAAC;AACvC,GAAG,MAAM,CAAC,MAAM,OAAO,wBAAc,CAAC,CAAC;AACvC,GAAG,MAAM,CAAC,MAAM,OAAO,wBAAc,CAAC,CAAC;AACvC,GAAG,MAAM,CAAC,MAAM,OAAO,wBAAc,CAAC,CAAC;AACvC,GAAG,MAAM,CAAC,MAAM,OAAO,wBAAc,CAAC,CAAC;AACvC,GAAG,MAAM,CAAC,MAAM,OAAO,wBAAc,CAAC,CAAC;AACvC,GAAG,MAAM,CAAC,MAAM,OAAO,wBAAc,CAAC,CAAC;AACvC,GAAG,MAAM,CAAC,MAAM,OAAO,yBAAe,CAAC,CAAC;AACxC,GAAG,MAAM,CAAC,MAAM,OAAO,yBAAe,CAAC,CAAC;AACxC,GAAG,MAAM,CAAC,MAAM,OAAO,yBAAe,CAAC,CAAC;AACxC,GAAG,MAAM,CAAC,MAAM,OAAO,yBAAe,CAAC,CAAC;AACxC,GAAG,MAAM,CAAC,MAAM,OAAO,yBAAe,CAAC;AACvC,GAAG;AACH,EAAE,OAAO,EAAE;AACX;AACA,GAAG;AACH,EAAE,MAAM,EAAE;AACV,GAAG;AACH,IAAI,EAAE,EAAE,iBAAiB;AACzB,IAAI,OAAO,EAAE,wBAAwB;AACrC,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;AAClD,IAAI,QAAQ,EAAE;AACd,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,UAAU;AAClB,IAAI,OAAO,EAAE,gBAAgB;AAC7B,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;AAClD,IAAI,QAAQ,EAAE;AACd,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,QAAQ;AAChB,IAAI,OAAO,EAAE,cAAc;AAC3B,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE;AACrD,IAAI,QAAQ,EAAE;AACd,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,cAAc;AACtB,IAAI,OAAO,EAAE,qBAAqB;AAClC,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE;AACrD,IAAI,QAAQ,EAAE;AACd,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,mBAAmB;AAC3B,IAAI,OAAO,EAAE,+BAA+B;AAC5C,IAAI,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACzE,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE;AACrD,IAAI,QAAQ,EAAE;AACd,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,eAAe;AACvB,IAAI,OAAO,EAAE,sBAAsB;AACnC,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE;AACrD,IAAI,QAAQ,EAAE;AACd,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,gBAAgB;AACxB,IAAI,OAAO,EAAE,uBAAuB;AACpC,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE;AACrD,IAAI,QAAQ,EAAE;AACd,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,cAAc;AACtB,IAAI,OAAO,EAAE,qBAAqB;AAClC,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE;AACtD,IAAI,QAAQ,EAAE;AACd,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,mBAAmB;AAC3B,IAAI,OAAO,EAAE,+BAA+B;AAC5C,IAAI,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACzE,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE;AACtD,IAAI,QAAQ,EAAE;AACd,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,QAAQ;AAChB,IAAI,OAAO,EAAE,cAAc;AAC3B,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;AACnD,IAAI,QAAQ,EAAE;AACd,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,SAAS;AACjB,IAAI,OAAO,EAAE,eAAe;AAC5B,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;AACnD,IAAI,QAAQ,EAAE;AACd,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,WAAW;AACnB,IAAI,OAAO,EAAE,iBAAiB;AAC9B,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;AACnD,IAAI,QAAQ,EAAE;AACd;AACA,GAAG;AACH,EAAE,kBAAkB,EAAE,IAAI,GAAG,CAAC,EAAE,CAAC;AACjC,EAAE,QAAQ,EAAE,YAAY;AACxB;AACA,GAAG,OAAO,IAAI;AACd,EAAE,CAAC;AACH,EAAE,aAAa,EAAE;AACjB;AACA;AACA,CAAC;;AAEW,MAAC,WAAW,GAAG,IAAI,GAAG,CAAC,EAAE;;AAEzB,MAAC,IAAI,GAAG;;;;"}
package/dist/acl.d.ts CHANGED
@@ -1,6 +1,5 @@
1
- import type { AccessControl, Permission } from '@axium/core';
1
+ import type { AccessControl, Permission, UserInternal } from '@axium/core';
2
2
  import type { AliasedRawBuilder, Expression, ExpressionBuilder, Selectable } from 'kysely';
3
- import type { UserInternal } from './auth.js';
4
3
  import * as db from './database.js';
5
4
  export interface Target {
6
5
  userId: string;
package/dist/api/acl.js CHANGED
@@ -8,10 +8,10 @@ addRoute({
8
8
  itemType: z.string(),
9
9
  itemId: z.uuid(),
10
10
  },
11
- async PUT(event) {
12
- const type = event.params.itemType;
13
- const itemId = event.params.itemId;
14
- const data = await parseBody(event, z.object({
11
+ async PUT(request, params) {
12
+ const type = params.itemType;
13
+ const itemId = params.itemId;
14
+ const data = await parseBody(request, z.object({
15
15
  userId: z.uuid(),
16
16
  permission: z.number().int().min(0).max(5),
17
17
  }));
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,135 @@
1
+ import { AuditFilter, Severity } from '@axium/core';
2
+ import { jsonArrayFrom, jsonObjectFrom } from 'kysely/helpers/postgres';
3
+ import { omit } from 'utilium';
4
+ import * as z from 'zod';
5
+ import { audit, getEvents } from '../audit.js';
6
+ import { getSessionAndUser } from '../auth.js';
7
+ import { config } from '../config.js';
8
+ import { count, database as db } from '../database.js';
9
+ import { error, getToken, withError } from '../requests.js';
10
+ import { addRoute } from '../routes.js';
11
+ import { plugins } from '../plugins.js';
12
+ import pkg from '../../package.json' with { type: 'json' };
13
+ async function assertAdmin(route, req) {
14
+ const token = getToken(req);
15
+ if (!token)
16
+ error(401, 'Missing token');
17
+ const admin = await getSessionAndUser(token).catch(withError('Invalid session', 400));
18
+ if (!admin.user.isAdmin)
19
+ error(403, 'Not an administrator');
20
+ if (!config.admin_api)
21
+ error(503, 'Admin API is disabled');
22
+ await audit('admin_api', admin.userId, { route: route.path, session: admin.id });
23
+ return admin.user;
24
+ }
25
+ addRoute({
26
+ path: '/api/admin/summary',
27
+ async GET(req) {
28
+ await assertAdmin(this, req);
29
+ const groups = Object.groupBy(await getEvents({}).execute(), e => e.severity);
30
+ const auditEvents = Object.fromEntries(Object.entries(groups).map(([sev, events]) => [sev, events.length]));
31
+ return {
32
+ ...(await count('users', 'passkeys', 'sessions')),
33
+ auditEvents,
34
+ configFiles: config.files.size,
35
+ plugins: plugins.size,
36
+ version: pkg.version,
37
+ };
38
+ },
39
+ });
40
+ addRoute({
41
+ path: '/api/admin/plugins',
42
+ async GET(req) {
43
+ await assertAdmin(this, req);
44
+ return Array.from(plugins.values()).map(p => omit(p, '_hooks'));
45
+ },
46
+ });
47
+ addRoute({
48
+ path: '/api/admin/users/all',
49
+ async GET(req) {
50
+ await assertAdmin(this, req);
51
+ const users = await db.selectFrom('users').selectAll().execute();
52
+ return users;
53
+ },
54
+ });
55
+ addRoute({
56
+ path: '/api/admin/users/:userId',
57
+ params: { userId: z.uuid() },
58
+ async GET(req, params) {
59
+ await assertAdmin(this, req);
60
+ if (!params.userId)
61
+ error(400, 'Missing user ID');
62
+ const user = await db
63
+ .selectFrom('users')
64
+ .selectAll()
65
+ .select(eb => jsonArrayFrom(eb.selectFrom('sessions').whereRef('sessions.userId', '=', 'users.id').selectAll())
66
+ .$castTo()
67
+ .as('sessions'))
68
+ .where('id', '=', params.userId)
69
+ .executeTakeFirstOrThrow()
70
+ .catch(withError('User not found', 404));
71
+ return {
72
+ ...user,
73
+ sessions: user.sessions.map(s => ({
74
+ ...omit(s, 'token'),
75
+ created: new Date(s.created),
76
+ expires: new Date(s.expires),
77
+ })),
78
+ };
79
+ },
80
+ });
81
+ /**
82
+ * Redacts critical information that we don't want to send over the API, even to admins.
83
+ */
84
+ function _redactConfig(config) {
85
+ if (config.db?.password) {
86
+ config.db.password = '*'.repeat(config.db.password.length);
87
+ }
88
+ return config;
89
+ }
90
+ addRoute({
91
+ path: '/api/admin/config',
92
+ async GET(req) {
93
+ await assertAdmin(this, req);
94
+ return {
95
+ config: _redactConfig(config.plain()),
96
+ files: Object.fromEntries(config.files.entries().map(([path, cfg]) => [path, _redactConfig(cfg)])),
97
+ };
98
+ },
99
+ });
100
+ addRoute({
101
+ path: '/api/admin/audit/events',
102
+ async GET(req) {
103
+ await assertAdmin(this, req);
104
+ const filter = { severity: Severity.Info };
105
+ try {
106
+ const search = Object.fromEntries(new URL(req.url).searchParams);
107
+ Object.assign(filter, AuditFilter.parse(search));
108
+ }
109
+ catch (e) {
110
+ error(400, e instanceof z.core.$ZodError ? z.prettifyError(e) : 'invalid body');
111
+ }
112
+ return await getEvents(filter)
113
+ .select(eb => jsonObjectFrom(eb.selectFrom('users').whereRef('users.id', '=', 'audit_log.userId').select(['id', 'name'])).as('user'))
114
+ .execute();
115
+ },
116
+ });
117
+ addRoute({
118
+ path: '/api/admin/audit/:eventId',
119
+ params: { eventId: z.uuid() },
120
+ async GET(req, params) {
121
+ await assertAdmin(this, req);
122
+ if (!params.eventId)
123
+ error(400, 'Missing event ID');
124
+ const event = await db
125
+ .selectFrom('audit_log')
126
+ .selectAll()
127
+ .select(eb => jsonObjectFrom(eb.selectFrom('users').whereRef('users.id', '=', 'audit_log.userId').selectAll())
128
+ .$castTo()
129
+ .as('user'))
130
+ .where('id', '=', params.eventId)
131
+ .executeTakeFirstOrThrow()
132
+ .catch(withError('Audit event not found', 404));
133
+ return event;
134
+ },
135
+ });
@@ -1,3 +1,5 @@
1
+ import './acl.js';
2
+ import './admin.js';
1
3
  import './metadata.js';
2
4
  import './passkeys.js';
3
5
  import './register.js';
package/dist/api/index.js CHANGED
@@ -1,3 +1,5 @@
1
+ import './acl.js';
2
+ import './admin.js';
1
3
  import './metadata.js';
2
4
  import './passkeys.js';
3
5
  import './register.js';
@@ -8,9 +8,9 @@ import { error, getToken } from '../requests.js';
8
8
  import { addRoute, routes } from '../routes.js';
9
9
  addRoute({
10
10
  path: '/api/metadata',
11
- async GET(event) {
11
+ async GET(request) {
12
12
  if (!config.debug) {
13
- const token = getToken(event);
13
+ const token = getToken(request);
14
14
  if (!token)
15
15
  error(401, 'Missing session token');
16
16
  const session = await getSessionAndUser(token);
@@ -39,7 +39,7 @@ addRoute({
39
39
  });
40
40
  addRoute({
41
41
  path: '/api/apps',
42
- async GET(event) {
42
+ async GET() {
43
43
  const result = [];
44
44
  for (const app of apps.values()) {
45
45
  if (config.apps.disabled.includes(app.id))
@@ -10,15 +10,15 @@ addRoute({
10
10
  params: {
11
11
  id: z.string(),
12
12
  },
13
- async GET(event) {
14
- const passkey = await getPasskey(event.params.id);
15
- await checkAuthForUser(event, passkey.userId);
13
+ async GET(request, params) {
14
+ const passkey = await getPasskey(params.id);
15
+ await checkAuthForUser(request, passkey.userId);
16
16
  return omit(passkey, 'counter', 'publicKey');
17
17
  },
18
- async PATCH(event) {
19
- const body = await parseBody(event, PasskeyChangeable);
20
- const passkey = await getPasskey(event.params.id);
21
- await checkAuthForUser(event, passkey.userId);
18
+ async PATCH(request, params) {
19
+ const body = await parseBody(request, PasskeyChangeable);
20
+ const passkey = await getPasskey(params.id);
21
+ await checkAuthForUser(request, passkey.userId);
22
22
  const result = await db
23
23
  .updateTable('passkeys')
24
24
  .set(body)
@@ -28,9 +28,9 @@ addRoute({
28
28
  .catch(withError('Could not update passkey'));
29
29
  return omit(result, 'counter', 'publicKey');
30
30
  },
31
- async DELETE(event) {
32
- const passkey = await getPasskey(event.params.id);
33
- await checkAuthForUser(event, passkey.userId);
31
+ async DELETE(request, params) {
32
+ const passkey = await getPasskey(params.id);
33
+ await checkAuthForUser(request, passkey.userId);
34
34
  const { count } = await db
35
35
  .selectFrom('passkeys')
36
36
  .select(db.fn.countAll().as('count'))
@@ -10,10 +10,10 @@ import { createSessionData, error, parseBody, withError } from '../requests.js';
10
10
  import { addRoute } from '../routes.js';
11
11
  // Map of user ID => challenge
12
12
  const registrations = new Map();
13
- async function OPTIONS(event) {
13
+ async function OPTIONS(request) {
14
14
  if (!config.allow_new_users)
15
15
  error(409, 'New user registration is disabled');
16
- const { name, email } = await parseBody(event, z.object({ name: z.string().optional(), email: z.email().optional() }));
16
+ const { name, email } = await parseBody(request, z.object({ name: z.string().optional(), email: z.email().optional() }));
17
17
  const userId = randomUUID();
18
18
  const user = await getUser(userId).catch(() => null);
19
19
  if (user)
@@ -34,10 +34,10 @@ async function OPTIONS(event) {
34
34
  registrations.set(userId, options.challenge);
35
35
  return { userId, options };
36
36
  }
37
- async function POST(event) {
37
+ async function POST(request) {
38
38
  if (!config.allow_new_users)
39
39
  error(409, 'New user registration is disabled');
40
- const { userId, email, name, response } = await parseBody(event, UserRegistration);
40
+ const { userId, email, name, response } = await parseBody(request, UserRegistration);
41
41
  const existing = await db.selectFrom('users').selectAll().where('email', '=', email.toLowerCase()).executeTakeFirst();
42
42
  if (existing)
43
43
  error(409, 'Email already in use');
@@ -1,13 +1,13 @@
1
1
  import { omit } from 'utilium';
2
+ import { audit } from '../audit.js';
2
3
  import { getSessionAndUser } from '../auth.js';
3
4
  import { database as db } from '../database.js';
4
5
  import { error, getToken, stripUser, withError } from '../requests.js';
5
6
  import { addRoute } from '../routes.js';
6
- import { audit } from '../audit.js';
7
7
  addRoute({
8
8
  path: '/api/session',
9
- async GET(event) {
10
- const token = getToken(event);
9
+ async GET(request) {
10
+ const token = getToken(request);
11
11
  if (!token)
12
12
  error(401, 'Missing token');
13
13
  const result = await getSessionAndUser(token).catch(withError('Invalid session', 400));
@@ -16,8 +16,8 @@ addRoute({
16
16
  user: stripUser(result.user, true),
17
17
  };
18
18
  },
19
- async DELETE(event) {
20
- const token = getToken(event);
19
+ async DELETE(request) {
20
+ const token = getToken(request);
21
21
  if (!token)
22
22
  error(401, 'Missing token');
23
23
  const result = await db
package/dist/api/users.js CHANGED
@@ -18,8 +18,8 @@ const params = { id: z.uuid() };
18
18
  */
19
19
  addRoute({
20
20
  path: '/api/user_id',
21
- async POST(event) {
22
- const { value } = await parseBody(event, z.object({ using: z.literal('email'), value: z.email() }));
21
+ async POST(request) {
22
+ const { value } = await parseBody(request, z.object({ using: z.literal('email'), value: z.email() }));
23
23
  const { id } = await db
24
24
  .selectFrom('users')
25
25
  .select('id')
@@ -32,16 +32,16 @@ addRoute({
32
32
  addRoute({
33
33
  path: '/api/users/:id',
34
34
  params,
35
- async GET(event) {
36
- const userId = event.params.id;
37
- const auth = await checkAuthForUser(event, userId).catch(() => null);
35
+ async GET(request, params) {
36
+ const userId = params.id;
37
+ const auth = await checkAuthForUser(request, userId).catch(() => null);
38
38
  const user = auth?.user || (await getUser(userId).catch(withError('User does not exist', 404)));
39
39
  return stripUser(user, !!auth);
40
40
  },
41
- async PATCH(event) {
42
- const userId = event.params.id;
43
- const body = await parseBody(event, UserChangeable);
44
- await checkAuthForUser(event, userId);
41
+ async PATCH(request, params) {
42
+ const userId = params.id;
43
+ const body = await parseBody(request, UserChangeable);
44
+ await checkAuthForUser(request, userId);
45
45
  if ('email' in body)
46
46
  body.emailVerified = null;
47
47
  if ('preferences' in body)
@@ -55,9 +55,9 @@ addRoute({
55
55
  .catch(withError('Failed to update user'));
56
56
  return stripUser(result, true);
57
57
  },
58
- async DELETE(event) {
59
- const userId = event.params.id;
60
- await checkAuthForUser(event, userId, true);
58
+ async DELETE(request, params) {
59
+ const userId = params.id;
60
+ await checkAuthForUser(request, userId, true);
61
61
  const result = await db
62
62
  .deleteFrom('users')
63
63
  .where('id', '=', userId)
@@ -71,9 +71,9 @@ addRoute({
71
71
  addRoute({
72
72
  path: '/api/users/:id/full',
73
73
  params,
74
- async GET(event) {
75
- const userId = event.params.id;
76
- const { user } = await checkAuthForUser(event, userId);
74
+ async GET(request, params) {
75
+ const userId = params.id;
76
+ const { user } = await checkAuthForUser(request, userId);
77
77
  const sessions = await getSessions(userId);
78
78
  return {
79
79
  ...stripUser(user, true),
@@ -84,9 +84,9 @@ addRoute({
84
84
  addRoute({
85
85
  path: '/api/users/:id/auth',
86
86
  params,
87
- async OPTIONS(event) {
88
- const userId = event.params.id;
89
- const { type } = await parseBody(event, UserAuthOptions);
87
+ async OPTIONS(request, params) {
88
+ const userId = params.id;
89
+ const { type } = await parseBody(request, UserAuthOptions);
90
90
  const user = await getUser(userId).catch(withError('User does not exist', 404));
91
91
  if (user.isSuspended)
92
92
  error(403, 'User is suspended');
@@ -100,9 +100,9 @@ addRoute({
100
100
  challenges.set(userId, { data: options.challenge, type });
101
101
  return options;
102
102
  },
103
- async POST(event) {
104
- const userId = event.params.id;
105
- const response = await parseBody(event, PasskeyAuthenticationResponse);
103
+ async POST(request, params) {
104
+ const userId = params.id;
105
+ const response = await parseBody(request, PasskeyAuthenticationResponse);
106
106
  const auth = challenges.get(userId);
107
107
  if (!auth)
108
108
  error(404, 'No challenge');
@@ -140,10 +140,10 @@ addRoute({
140
140
  /**
141
141
  * Get passkey registration options for a user.
142
142
  */
143
- async OPTIONS(event) {
144
- const userId = event.params.id;
143
+ async OPTIONS(request, params) {
144
+ const userId = params.id;
145
145
  const existing = await getPasskeysByUserId(userId);
146
- const { user } = await checkAuthForUser(event, userId);
146
+ const { user } = await checkAuthForUser(request, userId);
147
147
  const options = await webauthn.generateRegistrationOptions({
148
148
  rpName: config.auth.rp_name,
149
149
  rpID: config.auth.rp_id,
@@ -163,19 +163,19 @@ addRoute({
163
163
  /**
164
164
  * Get passkeys for a user.
165
165
  */
166
- async GET(event) {
167
- const userId = event.params.id;
168
- await checkAuthForUser(event, userId);
166
+ async GET(request, params) {
167
+ const userId = params.id;
168
+ await checkAuthForUser(request, userId);
169
169
  const passkeys = await getPasskeysByUserId(userId);
170
170
  return passkeys.map(p => omit(p, 'publicKey', 'counter'));
171
171
  },
172
172
  /**
173
173
  * Register a new passkey for an existing user.
174
174
  */
175
- async PUT(event) {
176
- const userId = event.params.id;
177
- const response = await parseBody(event, PasskeyRegistration);
178
- await checkAuthForUser(event, userId);
175
+ async PUT(request, params) {
176
+ const userId = params.id;
177
+ const response = await parseBody(request, PasskeyRegistration);
178
+ await checkAuthForUser(request, userId);
179
179
  const expectedChallenge = registrations.get(userId);
180
180
  if (!expectedChallenge)
181
181
  error(404, 'No registration challenge found for this user');
@@ -202,15 +202,15 @@ addRoute({
202
202
  addRoute({
203
203
  path: '/api/users/:id/sessions',
204
204
  params,
205
- async GET(event) {
206
- const userId = event.params.id;
207
- await checkAuthForUser(event, userId);
205
+ async GET(request, params) {
206
+ const userId = params.id;
207
+ await checkAuthForUser(request, userId);
208
208
  return (await getSessions(userId).catch(e => error(503, 'Failed to get sessions' + (config.debug ? ': ' + e : '')))).map(s => omit(s, 'token'));
209
209
  },
210
- async DELETE(event) {
211
- const userId = event.params.id;
212
- const body = await parseBody(event, LogoutSessions);
213
- await checkAuthForUser(event, userId, body.confirm_all);
210
+ async DELETE(request, params) {
211
+ const userId = params.id;
212
+ const body = await parseBody(request, LogoutSessions);
213
+ await checkAuthForUser(request, userId, body.confirm_all);
214
214
  if (!body.confirm_all && !Array.isArray(body.id))
215
215
  error(400, 'Invalid request body');
216
216
  const query = body.confirm_all ? db.deleteFrom('sessions') : db.deleteFrom('sessions').where('sessions.id', 'in', body.id);
@@ -226,27 +226,27 @@ addRoute({
226
226
  addRoute({
227
227
  path: '/api/users/:id/verify_email',
228
228
  params,
229
- async OPTIONS(event) {
230
- const userId = event.params.id;
229
+ async OPTIONS(request, params) {
230
+ const userId = params.id;
231
231
  if (!config.auth.email_verification)
232
232
  return { enabled: false };
233
- await checkAuthForUser(event, userId);
233
+ await checkAuthForUser(request, userId);
234
234
  if (!config.auth.email_verification)
235
235
  return { enabled: false };
236
236
  return { enabled: true };
237
237
  },
238
- async GET(event) {
239
- const userId = event.params.id;
240
- const { user } = await checkAuthForUser(event, userId);
238
+ async GET(request, params) {
239
+ const userId = params.id;
240
+ const { user } = await checkAuthForUser(request, userId);
241
241
  if (user.emailVerified)
242
242
  error(409, 'Email already verified');
243
243
  const verification = await createVerification('verify_email', userId, config.auth.verification_timeout * 60);
244
244
  return omit(verification, 'token', 'role');
245
245
  },
246
- async POST(event) {
247
- const userId = event.params.id;
248
- const { token } = await parseBody(event, z.object({ token: z.string() }));
249
- const { user } = await checkAuthForUser(event, userId);
246
+ async POST(request, params) {
247
+ const userId = params.id;
248
+ const { token } = await parseBody(request, z.object({ token: z.string() }));
249
+ const { user } = await checkAuthForUser(request, userId);
250
250
  if (user.emailVerified)
251
251
  error(409, 'Email already verified');
252
252
  await useVerification('verify_email', userId, token).catch(withError('Invalid or expired verification token', 400));