@axium/server 0.24.1 → 0.26.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 (389) hide show
  1. package/build/client/_app/immutable/assets/account.dAAx7bby.css +1 -0
  2. package/build/client/_app/immutable/assets/account.dAAx7bby.css.br +0 -0
  3. package/build/client/_app/immutable/assets/account.dAAx7bby.css.gz +0 -0
  4. package/build/client/_app/immutable/assets/list.DVGH0BeP.css +1 -0
  5. package/build/client/_app/immutable/assets/list.DVGH0BeP.css.br +0 -0
  6. package/build/client/_app/immutable/assets/list.DVGH0BeP.css.gz +0 -0
  7. package/build/client/_app/immutable/assets/styles.D8SZ-PeY.css +1 -0
  8. package/build/client/_app/immutable/assets/styles.D8SZ-PeY.css.br +2 -0
  9. package/build/client/_app/immutable/assets/styles.D8SZ-PeY.css.gz +0 -0
  10. package/build/client/_app/immutable/chunks/46qGscyh.js +2 -0
  11. package/build/client/_app/immutable/chunks/46qGscyh.js.br +0 -0
  12. package/build/client/_app/immutable/chunks/46qGscyh.js.gz +0 -0
  13. package/build/client/_app/immutable/chunks/B2Vkpbkw.js +2 -0
  14. package/build/client/_app/immutable/chunks/B2Vkpbkw.js.br +0 -0
  15. package/build/client/_app/immutable/chunks/B2Vkpbkw.js.gz +0 -0
  16. package/build/client/_app/immutable/chunks/BKixenYx.js +1 -0
  17. package/build/client/_app/immutable/chunks/BKixenYx.js.br +0 -0
  18. package/build/client/_app/immutable/chunks/BKixenYx.js.gz +0 -0
  19. package/build/client/_app/immutable/chunks/BLtAtlP3.js +1 -0
  20. package/build/client/_app/immutable/chunks/BLtAtlP3.js.br +2 -0
  21. package/build/client/_app/immutable/chunks/BLtAtlP3.js.gz +0 -0
  22. package/build/client/_app/immutable/chunks/BNTlty5m.js +1 -0
  23. package/build/client/_app/immutable/chunks/BNTlty5m.js.br +0 -0
  24. package/build/client/_app/immutable/chunks/BNTlty5m.js.gz +0 -0
  25. package/build/client/_app/immutable/chunks/Beh6Ec8J.js +1 -0
  26. package/build/client/_app/immutable/chunks/Beh6Ec8J.js.br +0 -0
  27. package/build/client/_app/immutable/chunks/Beh6Ec8J.js.gz +0 -0
  28. package/build/client/_app/immutable/chunks/BrUe-Qen.js +1 -0
  29. package/build/client/_app/immutable/chunks/BrUe-Qen.js.br +0 -0
  30. package/build/client/_app/immutable/chunks/BrUe-Qen.js.gz +0 -0
  31. package/build/client/_app/immutable/chunks/Bs4cD_pX.js +1 -0
  32. package/build/client/_app/immutable/chunks/Bs4cD_pX.js.br +0 -0
  33. package/build/client/_app/immutable/chunks/Bs4cD_pX.js.gz +0 -0
  34. package/build/client/_app/immutable/chunks/C62F-tXu.js +1 -0
  35. package/build/client/_app/immutable/chunks/C62F-tXu.js.br +1 -0
  36. package/build/client/_app/immutable/chunks/C62F-tXu.js.gz +0 -0
  37. package/build/client/_app/immutable/chunks/CUBtP2L9.js +23 -0
  38. package/build/client/_app/immutable/chunks/CUBtP2L9.js.br +0 -0
  39. package/build/client/_app/immutable/chunks/CUBtP2L9.js.gz +0 -0
  40. package/build/client/_app/immutable/chunks/Ch16TNvP.js +1 -0
  41. package/build/client/_app/immutable/chunks/Ch16TNvP.js.br +0 -0
  42. package/build/client/_app/immutable/chunks/Ch16TNvP.js.gz +0 -0
  43. package/build/client/_app/immutable/chunks/CoYD6HNm.js +1 -0
  44. package/build/client/_app/immutable/chunks/CoYD6HNm.js.br +0 -0
  45. package/build/client/_app/immutable/chunks/CoYD6HNm.js.gz +0 -0
  46. package/build/client/_app/immutable/chunks/D40Zn55h.js +1 -0
  47. package/build/client/_app/immutable/chunks/D40Zn55h.js.br +0 -0
  48. package/build/client/_app/immutable/chunks/D40Zn55h.js.gz +0 -0
  49. package/build/client/_app/immutable/chunks/DW7-1esk.js +21 -0
  50. package/build/client/_app/immutable/chunks/DW7-1esk.js.br +0 -0
  51. package/build/client/_app/immutable/chunks/DW7-1esk.js.gz +0 -0
  52. package/build/client/_app/immutable/chunks/DY4fWHx_.js +1 -0
  53. package/build/client/_app/immutable/chunks/DY4fWHx_.js.br +0 -0
  54. package/build/client/_app/immutable/chunks/DY4fWHx_.js.gz +0 -0
  55. package/build/client/_app/immutable/chunks/DvOBbqVY.js +1 -0
  56. package/build/client/_app/immutable/chunks/DvOBbqVY.js.br +0 -0
  57. package/build/client/_app/immutable/chunks/DvOBbqVY.js.gz +0 -0
  58. package/build/client/_app/immutable/chunks/DwZYWemd.js +1 -0
  59. package/build/client/_app/immutable/chunks/DwZYWemd.js.br +0 -0
  60. package/build/client/_app/immutable/chunks/DwZYWemd.js.gz +0 -0
  61. package/build/client/_app/immutable/chunks/Dy2Ho0cF.js +1 -0
  62. package/build/client/_app/immutable/chunks/Dy2Ho0cF.js.br +0 -0
  63. package/build/client/_app/immutable/chunks/Dy2Ho0cF.js.gz +0 -0
  64. package/build/client/_app/immutable/chunks/FTv0qR3w.js +1 -0
  65. package/build/client/_app/immutable/chunks/FTv0qR3w.js.br +0 -0
  66. package/build/client/_app/immutable/chunks/FTv0qR3w.js.gz +0 -0
  67. package/build/client/_app/immutable/chunks/NeK0YGoY.js +1 -0
  68. package/build/client/_app/immutable/chunks/NeK0YGoY.js.br +0 -0
  69. package/build/client/_app/immutable/chunks/NeK0YGoY.js.gz +0 -0
  70. package/build/client/_app/immutable/chunks/aArGsq9c.js +1 -0
  71. package/build/client/_app/immutable/chunks/aArGsq9c.js.br +0 -0
  72. package/build/client/_app/immutable/chunks/aArGsq9c.js.gz +0 -0
  73. package/build/client/_app/immutable/chunks/lH47zGKU.js +1 -0
  74. package/build/client/_app/immutable/chunks/lH47zGKU.js.br +0 -0
  75. package/build/client/_app/immutable/chunks/lH47zGKU.js.gz +0 -0
  76. package/build/client/_app/immutable/chunks/sMHjBQqw.js +1 -0
  77. package/build/client/_app/immutable/chunks/sMHjBQqw.js.br +0 -0
  78. package/build/client/_app/immutable/chunks/sMHjBQqw.js.gz +0 -0
  79. package/build/client/_app/immutable/chunks/vQfHcJV6.js +2 -0
  80. package/build/client/_app/immutable/chunks/vQfHcJV6.js.br +0 -0
  81. package/build/client/_app/immutable/chunks/vQfHcJV6.js.gz +0 -0
  82. package/build/client/_app/immutable/entry/app.pLVZKpSD.js +2 -0
  83. package/build/client/_app/immutable/entry/app.pLVZKpSD.js.br +0 -0
  84. package/build/client/_app/immutable/entry/app.pLVZKpSD.js.gz +0 -0
  85. package/build/client/_app/immutable/entry/start.CUaVsIrY.js +1 -0
  86. package/build/client/_app/immutable/entry/start.CUaVsIrY.js.br +2 -0
  87. package/build/client/_app/immutable/entry/start.CUaVsIrY.js.gz +0 -0
  88. package/build/client/_app/immutable/nodes/0.D7hET-Bq.js +1 -0
  89. package/build/client/_app/immutable/nodes/0.D7hET-Bq.js.br +0 -0
  90. package/build/client/_app/immutable/nodes/0.D7hET-Bq.js.gz +0 -0
  91. package/build/client/_app/immutable/nodes/1.BWU-JJm_.js +1 -0
  92. package/build/client/_app/immutable/nodes/1.BWU-JJm_.js.br +2 -0
  93. package/build/client/_app/immutable/nodes/1.BWU-JJm_.js.gz +0 -0
  94. package/build/client/_app/immutable/nodes/10.C5N2XBee.js +1 -0
  95. package/build/client/_app/immutable/nodes/10.C5N2XBee.js.br +0 -0
  96. package/build/client/_app/immutable/nodes/10.C5N2XBee.js.gz +0 -0
  97. package/build/client/_app/immutable/nodes/11.CerbuSAv.js +1 -0
  98. package/build/client/_app/immutable/nodes/11.CerbuSAv.js.br +0 -0
  99. package/build/client/_app/immutable/nodes/11.CerbuSAv.js.gz +0 -0
  100. package/build/client/_app/immutable/nodes/12.Z4B9zS78.js +1 -0
  101. package/build/client/_app/immutable/nodes/12.Z4B9zS78.js.br +0 -0
  102. package/build/client/_app/immutable/nodes/12.Z4B9zS78.js.gz +0 -0
  103. package/build/client/_app/immutable/nodes/13.CuICShck.js +1 -0
  104. package/build/client/_app/immutable/nodes/13.CuICShck.js.br +0 -0
  105. package/build/client/_app/immutable/nodes/13.CuICShck.js.gz +0 -0
  106. package/build/client/_app/immutable/nodes/14.BSEF5oaF.js +1 -0
  107. package/build/client/_app/immutable/nodes/14.BSEF5oaF.js.br +0 -0
  108. package/build/client/_app/immutable/nodes/14.BSEF5oaF.js.gz +0 -0
  109. package/build/client/_app/immutable/nodes/15.D1nsmo6j.js +1 -0
  110. package/build/client/_app/immutable/nodes/15.D1nsmo6j.js.br +0 -0
  111. package/build/client/_app/immutable/nodes/15.D1nsmo6j.js.gz +0 -0
  112. package/build/client/_app/immutable/nodes/2.DQ1JcYgz.js +1 -0
  113. package/build/client/_app/immutable/nodes/2.DQ1JcYgz.js.br +0 -0
  114. package/build/client/_app/immutable/nodes/2.DQ1JcYgz.js.gz +0 -0
  115. package/build/client/_app/immutable/nodes/3.BJp2JEtW.js +1 -0
  116. package/build/client/_app/immutable/nodes/3.BJp2JEtW.js.br +0 -0
  117. package/build/client/_app/immutable/nodes/3.BJp2JEtW.js.gz +0 -0
  118. package/build/client/_app/immutable/nodes/4.Cvn_QsIx.js +1 -0
  119. package/build/client/_app/immutable/nodes/4.Cvn_QsIx.js.br +0 -0
  120. package/build/client/_app/immutable/nodes/4.Cvn_QsIx.js.gz +0 -0
  121. package/build/client/_app/immutable/nodes/5.DgPP9GX3.js +1 -0
  122. package/build/client/_app/immutable/nodes/5.DgPP9GX3.js.br +0 -0
  123. package/build/client/_app/immutable/nodes/5.DgPP9GX3.js.gz +0 -0
  124. package/build/client/_app/immutable/nodes/6.DKIzms8i.js +2 -0
  125. package/build/client/_app/immutable/nodes/6.DKIzms8i.js.br +0 -0
  126. package/build/client/_app/immutable/nodes/6.DKIzms8i.js.gz +0 -0
  127. package/build/client/_app/immutable/nodes/7.3UigVXV4.js +1 -0
  128. package/build/client/_app/immutable/nodes/7.3UigVXV4.js.br +0 -0
  129. package/build/client/_app/immutable/nodes/7.3UigVXV4.js.gz +0 -0
  130. package/build/client/_app/immutable/nodes/8.B8s2TdNQ.js +1 -0
  131. package/build/client/_app/immutable/nodes/8.B8s2TdNQ.js.br +0 -0
  132. package/build/client/_app/immutable/nodes/8.B8s2TdNQ.js.gz +0 -0
  133. package/build/client/_app/immutable/nodes/9.LBMMe2kc.js +1 -0
  134. package/build/client/_app/immutable/nodes/9.LBMMe2kc.js.br +0 -0
  135. package/build/client/_app/immutable/nodes/9.LBMMe2kc.js.gz +0 -0
  136. package/build/client/_app/version.json +1 -1
  137. package/build/client/_app/version.json.br +0 -0
  138. package/build/client/_app/version.json.gz +0 -0
  139. package/build/client/styles.css +28 -0
  140. package/build/client/styles.css.br +0 -0
  141. package/build/client/styles.css.gz +0 -0
  142. package/build/handler.js +20 -3
  143. package/build/server/chunks/0-CNbALTKz.js +9 -0
  144. package/build/server/chunks/0-CNbALTKz.js.map +1 -0
  145. package/build/server/chunks/1-Dgxy393u.js +9 -0
  146. package/build/server/chunks/1-Dgxy393u.js.map +1 -0
  147. package/build/server/chunks/10-DovmbqKa.js +14 -0
  148. package/build/server/chunks/10-DovmbqKa.js.map +1 -0
  149. package/build/server/chunks/11-CRK_ubcl.js +14 -0
  150. package/build/server/chunks/11-CRK_ubcl.js.map +1 -0
  151. package/build/server/chunks/12-SbQlwMfe.js +9 -0
  152. package/build/server/chunks/12-SbQlwMfe.js.map +1 -0
  153. package/build/server/chunks/13-CbniIW7F.js +14 -0
  154. package/build/server/chunks/13-CbniIW7F.js.map +1 -0
  155. package/build/server/chunks/14-D9Vb_8Yx.js +9 -0
  156. package/build/server/chunks/14-D9Vb_8Yx.js.map +1 -0
  157. package/build/server/chunks/15-D-75Hdef.js +9 -0
  158. package/build/server/chunks/15-D-75Hdef.js.map +1 -0
  159. package/build/server/chunks/2-57exN8ae.js +14 -0
  160. package/build/server/chunks/2-57exN8ae.js.map +1 -0
  161. package/build/server/chunks/3-DNQft-pY.js +9 -0
  162. package/build/server/chunks/{2-CXlrhpR6.js.map → 3-DNQft-pY.js.map} +1 -1
  163. package/build/server/chunks/4-D9Bwp-f8.js +14 -0
  164. package/build/server/chunks/4-D9Bwp-f8.js.map +1 -0
  165. package/build/server/chunks/5-COEQwZNP.js +14 -0
  166. package/build/server/chunks/5-COEQwZNP.js.map +1 -0
  167. package/build/server/chunks/6-RT4yiDcP.js +14 -0
  168. package/build/server/chunks/6-RT4yiDcP.js.map +1 -0
  169. package/build/server/chunks/7-CVqF_r5D.js +14 -0
  170. package/build/server/chunks/7-CVqF_r5D.js.map +1 -0
  171. package/build/server/chunks/8-C5SO-sVH.js +14 -0
  172. package/build/server/chunks/8-C5SO-sVH.js.map +1 -0
  173. package/build/server/chunks/9-DoCOKtY-.js +14 -0
  174. package/build/server/chunks/9-DoCOKtY-.js.map +1 -0
  175. package/build/server/chunks/FormDialog-ZCY0chY1.js +102 -0
  176. package/build/server/chunks/FormDialog-ZCY0chY1.js.map +1 -0
  177. package/build/server/chunks/Icon-BVo9qbDf.js +30 -0
  178. package/build/server/chunks/Icon-BVo9qbDf.js.map +1 -0
  179. package/build/server/chunks/Logout-CmBZgu0j.js +46 -0
  180. package/build/server/chunks/Logout-CmBZgu0j.js.map +1 -0
  181. package/build/server/chunks/_layout.svelte-DuS006VZ.js +33 -0
  182. package/build/server/chunks/_layout.svelte-DuS006VZ.js.map +1 -0
  183. package/build/server/chunks/_page.svelte-BFVobcI7.js +14 -0
  184. package/build/server/chunks/_page.svelte-BFVobcI7.js.map +1 -0
  185. package/build/server/chunks/_page.svelte-B_cvhWJS.js +66 -0
  186. package/build/server/chunks/_page.svelte-B_cvhWJS.js.map +1 -0
  187. package/build/server/chunks/_page.svelte-BriaBR9l.js +28 -0
  188. package/build/server/chunks/_page.svelte-BriaBR9l.js.map +1 -0
  189. package/build/server/chunks/_page.svelte-BtQQzT7H.js +72 -0
  190. package/build/server/chunks/_page.svelte-BtQQzT7H.js.map +1 -0
  191. package/build/server/chunks/_page.svelte-C8D3c3yB.js +64 -0
  192. package/build/server/chunks/_page.svelte-C8D3c3yB.js.map +1 -0
  193. package/build/server/chunks/_page.svelte-CVSb9eHQ.js +24 -0
  194. package/build/server/chunks/_page.svelte-CVSb9eHQ.js.map +1 -0
  195. package/build/server/chunks/_page.svelte-CwRjZqL7.js +107 -0
  196. package/build/server/chunks/_page.svelte-CwRjZqL7.js.map +1 -0
  197. package/build/server/chunks/_page.svelte-D9A9RYjx.js +233 -0
  198. package/build/server/chunks/_page.svelte-D9A9RYjx.js.map +1 -0
  199. package/build/server/chunks/_page.svelte-DGhwqWMM.js +34 -0
  200. package/build/server/chunks/_page.svelte-DGhwqWMM.js.map +1 -0
  201. package/build/server/chunks/_page.svelte-DTvnX95_.js +75 -0
  202. package/build/server/chunks/_page.svelte-DTvnX95_.js.map +1 -0
  203. package/build/server/chunks/_page.svelte-DUfwpXfC.js +122 -0
  204. package/build/server/chunks/_page.svelte-DUfwpXfC.js.map +1 -0
  205. package/build/server/chunks/_page.svelte-DxDoD3rZ.js +37 -0
  206. package/build/server/chunks/_page.svelte-DxDoD3rZ.js.map +1 -0
  207. package/build/server/chunks/_page.svelte-VDBvShZ8.js +6 -0
  208. package/build/server/chunks/_page.svelte-VDBvShZ8.js.map +1 -0
  209. package/build/server/chunks/account-Bf_llRe2.js +446 -0
  210. package/build/server/chunks/account-Bf_llRe2.js.map +1 -0
  211. package/build/server/chunks/auth_redirect-olBYiIF2.js +24 -0
  212. package/build/server/chunks/auth_redirect-olBYiIF2.js.map +1 -0
  213. package/build/server/chunks/color-K_MR7m8s.js +14 -0
  214. package/build/server/chunks/color-K_MR7m8s.js.map +1 -0
  215. package/build/server/chunks/context-R2425nfV.js +64 -0
  216. package/build/server/chunks/context-R2425nfV.js.map +1 -0
  217. package/build/server/chunks/{error.svelte-DNQXZmIO.js → error.svelte-CkSCwrMJ.js} +7 -6
  218. package/build/server/chunks/error.svelte-CkSCwrMJ.js.map +1 -0
  219. package/build/server/chunks/index-CIEcmmdN.js +890 -0
  220. package/build/server/chunks/index-CIEcmmdN.js.map +1 -0
  221. package/build/server/chunks/{index-CvHf_GW2.js → index-Tt4zVDIZ.js} +843 -438
  222. package/build/server/chunks/index-Tt4zVDIZ.js.map +1 -0
  223. package/build/server/chunks/layout.svelte-UxsTmhKc.js +8 -0
  224. package/build/server/chunks/layout.svelte-UxsTmhKc.js.map +1 -0
  225. package/build/server/chunks/{string-DLbvtT1R.js → numbers-DL8C9q4W.js} +1 -71
  226. package/build/server/chunks/numbers-DL8C9q4W.js.map +1 -0
  227. package/build/server/chunks/{FormDialog-CB-2YGWi.js → user2-CRfK67II.js} +12 -206
  228. package/build/server/chunks/user2-CRfK67II.js.map +1 -0
  229. package/build/server/chunks/utils-h74ns7K6.js.map +1 -1
  230. package/build/server/index.js +2304 -1140
  231. package/build/server/index.js.map +1 -1
  232. package/build/server/manifest.js +78 -13
  233. package/build/server/manifest.js.map +1 -1
  234. package/dist/acl.d.ts +1 -2
  235. package/dist/acl.js +1 -1
  236. package/dist/api/acl.js +4 -4
  237. package/dist/api/admin.d.ts +1 -0
  238. package/dist/api/admin.js +152 -0
  239. package/dist/api/index.d.ts +2 -0
  240. package/dist/api/index.js +2 -0
  241. package/dist/api/metadata.js +5 -5
  242. package/dist/api/passkeys.js +10 -10
  243. package/dist/api/register.js +4 -4
  244. package/dist/api/session.js +5 -5
  245. package/dist/api/users.js +52 -49
  246. package/dist/audit.d.ts +8 -39
  247. package/dist/audit.js +13 -16
  248. package/dist/auth.d.ts +4 -11
  249. package/dist/auth.js +4 -4
  250. package/dist/cli.js +515 -559
  251. package/dist/config.d.ts +26 -16
  252. package/dist/config.js +65 -36
  253. package/dist/database.d.ts +3 -4
  254. package/dist/database.js +19 -18
  255. package/dist/internal_requests.d.ts +3 -0
  256. package/dist/internal_requests.js +119 -0
  257. package/dist/io.d.ts +0 -49
  258. package/dist/io.js +23 -171
  259. package/dist/linking.d.ts +0 -1
  260. package/dist/linking.js +5 -8
  261. package/dist/requests.d.ts +10 -6
  262. package/dist/requests.js +17 -15
  263. package/dist/routes.d.ts +6 -10
  264. package/dist/routes.js +7 -8
  265. package/dist/serve.d.ts +7 -2
  266. package/dist/serve.js +170 -13
  267. package/dist/state.js +2 -1
  268. package/package.json +8 -7
  269. package/routes/account/+page.svelte +5 -109
  270. package/routes/admin/+layout.svelte +56 -0
  271. package/routes/admin/+layout.ts +31 -0
  272. package/routes/admin/+page.svelte +39 -0
  273. package/routes/admin/+page.ts +7 -0
  274. package/routes/admin/audit/+page.svelte +158 -0
  275. package/routes/admin/audit/+page.ts +22 -0
  276. package/routes/admin/audit/[id]/+page.svelte +43 -0
  277. package/routes/admin/audit/[id]/+page.ts +9 -0
  278. package/routes/admin/audit/styles.css +31 -0
  279. package/routes/admin/config/+page.svelte +28 -0
  280. package/routes/admin/config/+page.ts +9 -0
  281. package/routes/admin/plugins/+page.svelte +23 -0
  282. package/routes/admin/plugins/+page.ts +7 -0
  283. package/routes/admin/users/+page.svelte +60 -0
  284. package/routes/admin/users/+page.ts +9 -0
  285. package/routes/admin/users/[id]/+page.svelte +108 -0
  286. package/routes/admin/users/[id]/+page.ts +17 -0
  287. package/routes/login/client/+page.svelte +72 -0
  288. package/routes/login/client/+page.ts +27 -0
  289. package/routes/tsconfig.json +1 -1
  290. package/svelte.config.js +4 -10
  291. package/{web/template.html → template.html} +1 -1
  292. package/{web/tsconfig.json → web.tsconfig.json} +2 -2
  293. package/build/client/_app/immutable/chunks/B1E1cVbi.js +0 -1
  294. package/build/client/_app/immutable/chunks/B1E1cVbi.js.br +0 -0
  295. package/build/client/_app/immutable/chunks/B1E1cVbi.js.gz +0 -0
  296. package/build/client/_app/immutable/chunks/CIywFg5g.js +0 -3
  297. package/build/client/_app/immutable/chunks/CIywFg5g.js.br +0 -0
  298. package/build/client/_app/immutable/chunks/CIywFg5g.js.gz +0 -0
  299. package/build/client/_app/immutable/chunks/D3hk2v8y.js +0 -1
  300. package/build/client/_app/immutable/chunks/D3hk2v8y.js.br +0 -2
  301. package/build/client/_app/immutable/chunks/D3hk2v8y.js.gz +0 -0
  302. package/build/client/_app/immutable/chunks/D4Bce_hb.js +0 -1
  303. package/build/client/_app/immutable/chunks/D4Bce_hb.js.br +0 -0
  304. package/build/client/_app/immutable/chunks/D4Bce_hb.js.gz +0 -0
  305. package/build/client/_app/immutable/chunks/D9TfJrfD.js +0 -1
  306. package/build/client/_app/immutable/chunks/D9TfJrfD.js.br +0 -0
  307. package/build/client/_app/immutable/chunks/D9TfJrfD.js.gz +0 -0
  308. package/build/client/_app/immutable/chunks/DJeR1n-B.js +0 -51
  309. package/build/client/_app/immutable/chunks/DJeR1n-B.js.br +0 -0
  310. package/build/client/_app/immutable/chunks/DJeR1n-B.js.gz +0 -0
  311. package/build/client/_app/immutable/chunks/DsnmJJEf.js +0 -1
  312. package/build/client/_app/immutable/chunks/DsnmJJEf.js.br +0 -2
  313. package/build/client/_app/immutable/chunks/DsnmJJEf.js.gz +0 -0
  314. package/build/client/_app/immutable/chunks/Dy1O3iBu.js +0 -2
  315. package/build/client/_app/immutable/chunks/Dy1O3iBu.js.br +0 -0
  316. package/build/client/_app/immutable/chunks/Dy1O3iBu.js.gz +0 -0
  317. package/build/client/_app/immutable/chunks/pba7IodQ.js +0 -1
  318. package/build/client/_app/immutable/chunks/pba7IodQ.js.br +0 -0
  319. package/build/client/_app/immutable/chunks/pba7IodQ.js.gz +0 -0
  320. package/build/client/_app/immutable/entry/app.ChtScU8h.js +0 -2
  321. package/build/client/_app/immutable/entry/app.ChtScU8h.js.br +0 -0
  322. package/build/client/_app/immutable/entry/app.ChtScU8h.js.gz +0 -0
  323. package/build/client/_app/immutable/entry/start.DdjgBKiR.js +0 -1
  324. package/build/client/_app/immutable/entry/start.DdjgBKiR.js.br +0 -2
  325. package/build/client/_app/immutable/entry/start.DdjgBKiR.js.gz +0 -0
  326. package/build/client/_app/immutable/nodes/0.DlE8ZTIF.js +0 -1
  327. package/build/client/_app/immutable/nodes/0.DlE8ZTIF.js.br +0 -0
  328. package/build/client/_app/immutable/nodes/0.DlE8ZTIF.js.gz +0 -0
  329. package/build/client/_app/immutable/nodes/1.DRjfV_5C.js +0 -1
  330. package/build/client/_app/immutable/nodes/1.DRjfV_5C.js.br +0 -0
  331. package/build/client/_app/immutable/nodes/1.DRjfV_5C.js.gz +0 -0
  332. package/build/client/_app/immutable/nodes/2.CvEpuMc7.js +0 -1
  333. package/build/client/_app/immutable/nodes/2.CvEpuMc7.js.br +0 -0
  334. package/build/client/_app/immutable/nodes/2.CvEpuMc7.js.gz +0 -0
  335. package/build/client/_app/immutable/nodes/3.CVudd8x2.js +0 -7
  336. package/build/client/_app/immutable/nodes/3.CVudd8x2.js.br +0 -0
  337. package/build/client/_app/immutable/nodes/3.CVudd8x2.js.gz +0 -0
  338. package/build/client/_app/immutable/nodes/4.Dhj0R0r7.js +0 -1
  339. package/build/client/_app/immutable/nodes/4.Dhj0R0r7.js.br +0 -0
  340. package/build/client/_app/immutable/nodes/4.Dhj0R0r7.js.gz +0 -0
  341. package/build/client/_app/immutable/nodes/5.CGoBaVII.js +0 -1
  342. package/build/client/_app/immutable/nodes/5.CGoBaVII.js.br +0 -0
  343. package/build/client/_app/immutable/nodes/5.CGoBaVII.js.gz +0 -0
  344. package/build/client/_app/immutable/nodes/6.BtB2uWXy.js +0 -1
  345. package/build/client/_app/immutable/nodes/6.BtB2uWXy.js.br +0 -0
  346. package/build/client/_app/immutable/nodes/6.BtB2uWXy.js.gz +0 -0
  347. package/build/server/chunks/0-DgHTujtC.js +0 -9
  348. package/build/server/chunks/0-DgHTujtC.js.map +0 -1
  349. package/build/server/chunks/1-B3zVLOO8.js +0 -9
  350. package/build/server/chunks/1-B3zVLOO8.js.map +0 -1
  351. package/build/server/chunks/2-CXlrhpR6.js +0 -9
  352. package/build/server/chunks/3-CGT4Ugys.js +0 -13
  353. package/build/server/chunks/3-CGT4Ugys.js.map +0 -1
  354. package/build/server/chunks/4-BscEiwUk.js +0 -9
  355. package/build/server/chunks/4-BscEiwUk.js.map +0 -1
  356. package/build/server/chunks/5-H0ePIJBE.js +0 -9
  357. package/build/server/chunks/5-H0ePIJBE.js.map +0 -1
  358. package/build/server/chunks/6-BrPpcagX.js +0 -9
  359. package/build/server/chunks/6-BrPpcagX.js.map +0 -1
  360. package/build/server/chunks/FormDialog-CB-2YGWi.js.map +0 -1
  361. package/build/server/chunks/Logout-LKOt-AST.js +0 -45
  362. package/build/server/chunks/Logout-LKOt-AST.js.map +0 -1
  363. package/build/server/chunks/_page.svelte-B1LK5J87.js +0 -11
  364. package/build/server/chunks/_page.svelte-B1LK5J87.js.map +0 -1
  365. package/build/server/chunks/_page.svelte-CMtkwvbP.js +0 -68
  366. package/build/server/chunks/_page.svelte-CMtkwvbP.js.map +0 -1
  367. package/build/server/chunks/_page.svelte-CbI2KxeA.js +0 -62
  368. package/build/server/chunks/_page.svelte-CbI2KxeA.js.map +0 -1
  369. package/build/server/chunks/_page.svelte-D1_WJoyP.js +0 -6
  370. package/build/server/chunks/_page.svelte-D1_WJoyP.js.map +0 -1
  371. package/build/server/chunks/_page.svelte-d01Hl2Ia.js +0 -639
  372. package/build/server/chunks/_page.svelte-d01Hl2Ia.js.map +0 -1
  373. package/build/server/chunks/error.svelte-DNQXZmIO.js.map +0 -1
  374. package/build/server/chunks/hooks.server-CQhG9POo.js +0 -17298
  375. package/build/server/chunks/hooks.server-CQhG9POo.js.map +0 -1
  376. package/build/server/chunks/index-CvHf_GW2.js.map +0 -1
  377. package/build/server/chunks/index-RTKpMYZ1.js +0 -397
  378. package/build/server/chunks/index-RTKpMYZ1.js.map +0 -1
  379. package/build/server/chunks/layout.svelte-BSvrn-4a.js +0 -8
  380. package/build/server/chunks/layout.svelte-BSvrn-4a.js.map +0 -1
  381. package/build/server/chunks/string-DLbvtT1R.js.map +0 -1
  382. package/dist/apps.d.ts +0 -6
  383. package/dist/apps.js +0 -6
  384. package/dist/plugins.d.ts +0 -49
  385. package/dist/plugins.js +0 -80
  386. package/dist/sveltekit.d.ts +0 -8
  387. package/dist/sveltekit.js +0 -60
  388. package/web/hooks.server.ts +0 -4
  389. /package/{axiumd.service → axium.service} +0 -0
@@ -10,15 +10,24 @@ 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.DdjgBKiR.js",app:"_app/immutable/entry/app.ChtScU8h.js",imports:["_app/immutable/entry/start.DdjgBKiR.js","_app/immutable/chunks/CIywFg5g.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.ChtScU8h.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.CUaVsIrY.js",app:"_app/immutable/entry/app.pLVZKpSD.js",imports:["_app/immutable/entry/start.CUaVsIrY.js","_app/immutable/chunks/FTv0qR3w.js","_app/immutable/chunks/BrUe-Qen.js","_app/immutable/chunks/BKixenYx.js","_app/immutable/entry/app.pLVZKpSD.js","_app/immutable/chunks/BrUe-Qen.js","_app/immutable/chunks/vQfHcJV6.js","_app/immutable/chunks/D40Zn55h.js","_app/immutable/chunks/BKixenYx.js","_app/immutable/chunks/CoYD6HNm.js","_app/immutable/chunks/NeK0YGoY.js","_app/immutable/chunks/C62F-tXu.js","_app/immutable/chunks/DvOBbqVY.js"],stylesheets:[],fonts:[],uses_env_dynamic_public:false},
14
14
  nodes: [
15
- __memo(() => import('./chunks/0-DgHTujtC.js')),
16
- __memo(() => import('./chunks/1-B3zVLOO8.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-CNbALTKz.js')),
16
+ __memo(() => import('./chunks/1-Dgxy393u.js')),
17
+ __memo(() => import('./chunks/2-57exN8ae.js')),
18
+ __memo(() => import('./chunks/3-DNQft-pY.js')),
19
+ __memo(() => import('./chunks/4-D9Bwp-f8.js')),
20
+ __memo(() => import('./chunks/5-COEQwZNP.js')),
21
+ __memo(() => import('./chunks/6-RT4yiDcP.js')),
22
+ __memo(() => import('./chunks/7-CVqF_r5D.js')),
23
+ __memo(() => import('./chunks/8-C5SO-sVH.js')),
24
+ __memo(() => import('./chunks/9-DoCOKtY-.js')),
25
+ __memo(() => import('./chunks/10-DovmbqKa.js')),
26
+ __memo(() => import('./chunks/11-CRK_ubcl.js')),
27
+ __memo(() => import('./chunks/12-SbQlwMfe.js')),
28
+ __memo(() => import('./chunks/13-CbniIW7F.js')),
29
+ __memo(() => import('./chunks/14-D9Vb_8Yx.js')),
30
+ __memo(() => import('./chunks/15-D-75Hdef.js'))
22
31
  ],
23
32
  remotes: {
24
33
 
@@ -28,35 +37,91 @@ return {
28
37
  id: "/_axium/default",
29
38
  pattern: /^\/_axium\/default\/?$/,
30
39
  params: [],
31
- page: { layouts: [0,], errors: [1,], leaf: 2 },
40
+ page: { layouts: [0,], errors: [1,], leaf: 3 },
32
41
  endpoint: null
33
42
  },
34
43
  {
35
44
  id: "/account",
36
45
  pattern: /^\/account\/?$/,
37
46
  params: [],
38
- page: { layouts: [0,], errors: [1,], leaf: 3 },
47
+ page: { layouts: [0,], errors: [1,], leaf: 4 },
48
+ endpoint: null
49
+ },
50
+ {
51
+ id: "/admin",
52
+ pattern: /^\/admin\/?$/,
53
+ params: [],
54
+ page: { layouts: [0,2,], errors: [1,,], leaf: 5 },
55
+ endpoint: null
56
+ },
57
+ {
58
+ id: "/admin/audit",
59
+ pattern: /^\/admin\/audit\/?$/,
60
+ params: [],
61
+ page: { layouts: [0,2,], errors: [1,,], leaf: 6 },
62
+ endpoint: null
63
+ },
64
+ {
65
+ id: "/admin/audit/[id]",
66
+ pattern: /^\/admin\/audit\/([^/]+?)\/?$/,
67
+ params: [{"name":"id","optional":false,"rest":false,"chained":false}],
68
+ page: { layouts: [0,2,], errors: [1,,], leaf: 7 },
69
+ endpoint: null
70
+ },
71
+ {
72
+ id: "/admin/config",
73
+ pattern: /^\/admin\/config\/?$/,
74
+ params: [],
75
+ page: { layouts: [0,2,], errors: [1,,], leaf: 8 },
76
+ endpoint: null
77
+ },
78
+ {
79
+ id: "/admin/plugins",
80
+ pattern: /^\/admin\/plugins\/?$/,
81
+ params: [],
82
+ page: { layouts: [0,2,], errors: [1,,], leaf: 9 },
83
+ endpoint: null
84
+ },
85
+ {
86
+ id: "/admin/users",
87
+ pattern: /^\/admin\/users\/?$/,
88
+ params: [],
89
+ page: { layouts: [0,2,], errors: [1,,], leaf: 10 },
90
+ endpoint: null
91
+ },
92
+ {
93
+ id: "/admin/users/[id]",
94
+ pattern: /^\/admin\/users\/([^/]+?)\/?$/,
95
+ params: [{"name":"id","optional":false,"rest":false,"chained":false}],
96
+ page: { layouts: [0,2,], errors: [1,,], leaf: 11 },
39
97
  endpoint: null
40
98
  },
41
99
  {
42
100
  id: "/login",
43
101
  pattern: /^\/login\/?$/,
44
102
  params: [],
45
- page: { layouts: [0,], errors: [1,], leaf: 4 },
103
+ page: { layouts: [0,], errors: [1,], leaf: 12 },
104
+ endpoint: null
105
+ },
106
+ {
107
+ id: "/login/client",
108
+ pattern: /^\/login\/client\/?$/,
109
+ params: [],
110
+ page: { layouts: [0,], errors: [1,], leaf: 13 },
46
111
  endpoint: null
47
112
  },
48
113
  {
49
114
  id: "/logout",
50
115
  pattern: /^\/logout\/?$/,
51
116
  params: [],
52
- page: { layouts: [0,], errors: [1,], leaf: 5 },
117
+ page: { layouts: [0,], errors: [1,], leaf: 14 },
53
118
  endpoint: null
54
119
  },
55
120
  {
56
121
  id: "/register",
57
122
  pattern: /^\/register\/?$/,
58
123
  params: [],
59
- page: { layouts: [0,], errors: [1,], leaf: 6 },
124
+ page: { layouts: [0,], errors: [1,], leaf: 15 },
60
125
  endpoint: null
61
126
  }
62
127
  ],
@@ -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.DdjgBKiR.js\",app:\"_app/immutable/entry/app.ChtScU8h.js\",imports:[\"_app/immutable/entry/start.DdjgBKiR.js\",\"_app/immutable/chunks/CIywFg5g.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.ChtScU8h.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.CUaVsIrY.js\",app:\"_app/immutable/entry/app.pLVZKpSD.js\",imports:[\"_app/immutable/entry/start.CUaVsIrY.js\",\"_app/immutable/chunks/FTv0qR3w.js\",\"_app/immutable/chunks/BrUe-Qen.js\",\"_app/immutable/chunks/BKixenYx.js\",\"_app/immutable/entry/app.pLVZKpSD.js\",\"_app/immutable/chunks/BrUe-Qen.js\",\"_app/immutable/chunks/vQfHcJV6.js\",\"_app/immutable/chunks/D40Zn55h.js\",\"_app/immutable/chunks/BKixenYx.js\",\"_app/immutable/chunks/CoYD6HNm.js\",\"_app/immutable/chunks/NeK0YGoY.js\",\"_app/immutable/chunks/C62F-tXu.js\",\"_app/immutable/chunks/DvOBbqVY.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\t__memo(() => import('./nodes/15.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: \"/login/client\",\n\t\t\t\tpattern: /^\\/login\\/client\\/?$/,\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: \"/logout\",\n\t\t\t\tpattern: /^\\/logout\\/?$/,\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\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: 15 },\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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"}
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/acl.js CHANGED
@@ -1,7 +1,7 @@
1
+ import * as io from '@axium/core/node/io';
1
2
  import { sql } from 'kysely';
2
3
  import { jsonArrayFrom } from 'kysely/helpers/postgres';
3
4
  import * as db from './database.js';
4
- import * as io from './io.js';
5
5
  const accessControllableTypes = {
6
6
  userId: { type: 'uuid', required: true },
7
7
  publicPermission: { type: 'int4', required: true, hasDefault: true },
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,152 @@
1
+ import { AuditFilter, Severity } from '@axium/core';
2
+ import { plugins } from '@axium/core/plugins';
3
+ import { jsonArrayFrom, jsonObjectFrom } from 'kysely/helpers/postgres';
4
+ import { omit } from 'utilium';
5
+ import * as z from 'zod';
6
+ import pkg from '../../package.json' with { type: 'json' };
7
+ import { audit, events, getEvents } from '../audit.js';
8
+ import { getSessionAndUser } from '../auth.js';
9
+ import { config } from '../config.js';
10
+ import { count, database as db } from '../database.js';
11
+ import { error, getToken, withError } from '../requests.js';
12
+ import { addRoute } from '../routes.js';
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 OPTIONS(req) {
103
+ await assertAdmin(this, req);
104
+ if (config.audit.allow_raw)
105
+ return false;
106
+ const tags = new Set(), source = new Set(), name = [];
107
+ for (const event of events.values()) {
108
+ for (const tag of event.tags)
109
+ tags.add(tag);
110
+ source.add(event.source);
111
+ name.push(event.name);
112
+ }
113
+ return {
114
+ tags: Array.from(tags),
115
+ source: Array.from(source),
116
+ name: name,
117
+ };
118
+ },
119
+ async GET(req) {
120
+ await assertAdmin(this, req);
121
+ const filter = { severity: Severity.Info };
122
+ try {
123
+ const search = Object.fromEntries(new URL(req.url).searchParams);
124
+ Object.assign(filter, AuditFilter.parse(search));
125
+ }
126
+ catch (e) {
127
+ error(400, e instanceof z.core.$ZodError ? z.prettifyError(e) : 'invalid body');
128
+ }
129
+ return await getEvents(filter)
130
+ .select(eb => jsonObjectFrom(eb.selectFrom('users').whereRef('users.id', '=', 'audit_log.userId').select(['id', 'name'])).as('user'))
131
+ .execute();
132
+ },
133
+ });
134
+ addRoute({
135
+ path: '/api/admin/audit/:eventId',
136
+ params: { eventId: z.uuid() },
137
+ async GET(req, params) {
138
+ await assertAdmin(this, req);
139
+ if (!params.eventId)
140
+ error(400, 'Missing event ID');
141
+ const event = await db
142
+ .selectFrom('audit_log')
143
+ .selectAll()
144
+ .select(eb => jsonObjectFrom(eb.selectFrom('users').whereRef('users.id', '=', 'audit_log.userId').selectAll())
145
+ .$castTo()
146
+ .as('user'))
147
+ .where('id', '=', params.eventId)
148
+ .executeTakeFirstOrThrow()
149
+ .catch(withError('Audit event not found', 404));
150
+ return event;
151
+ },
152
+ });
@@ -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';
@@ -1,16 +1,16 @@
1
+ import { apps } from '@axium/core';
2
+ import { plugins } from '@axium/core/plugins';
1
3
  import { requestMethods } from '@axium/core/requests';
2
4
  import pkg from '../../package.json' with { type: 'json' };
3
- import { apps } from '../apps.js';
4
5
  import { getSessionAndUser } from '../auth.js';
5
6
  import { config } from '../config.js';
6
- import { plugins } from '../plugins.js';
7
7
  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
+ 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