@axium/server 0.24.1 → 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.
- package/build/client/_app/immutable/assets/account.dAAx7bby.css +1 -0
- package/build/client/_app/immutable/assets/account.dAAx7bby.css.br +0 -0
- package/build/client/_app/immutable/assets/account.dAAx7bby.css.gz +0 -0
- package/build/client/_app/immutable/assets/list.DVGH0BeP.css +1 -0
- package/build/client/_app/immutable/assets/list.DVGH0BeP.css.br +0 -0
- package/build/client/_app/immutable/assets/list.DVGH0BeP.css.gz +0 -0
- package/build/client/_app/immutable/assets/styles.D8SZ-PeY.css +1 -0
- package/build/client/_app/immutable/assets/styles.D8SZ-PeY.css.br +2 -0
- package/build/client/_app/immutable/assets/styles.D8SZ-PeY.css.gz +0 -0
- package/build/client/_app/immutable/chunks/1taVrT-y.js +1 -0
- package/build/client/_app/immutable/chunks/1taVrT-y.js.br +0 -0
- package/build/client/_app/immutable/chunks/1taVrT-y.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BSFUgC2l.js +23 -0
- package/build/client/_app/immutable/chunks/BSFUgC2l.js.br +0 -0
- package/build/client/_app/immutable/chunks/BSFUgC2l.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Bbzjahjl.js +2 -0
- package/build/client/_app/immutable/chunks/Bbzjahjl.js.br +0 -0
- package/build/client/_app/immutable/chunks/Bbzjahjl.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BxjargW5.js +1 -0
- package/build/client/_app/immutable/chunks/BxjargW5.js.br +0 -0
- package/build/client/_app/immutable/chunks/BxjargW5.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C2ewTgu8.js +1 -0
- package/build/client/_app/immutable/chunks/C2ewTgu8.js.br +0 -0
- package/build/client/_app/immutable/chunks/C2ewTgu8.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CFWAHLsq.js +1 -0
- package/build/client/_app/immutable/chunks/CFWAHLsq.js.br +0 -0
- package/build/client/_app/immutable/chunks/CFWAHLsq.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CPL43v-I.js +1 -0
- package/build/client/_app/immutable/chunks/CPL43v-I.js.br +0 -0
- package/build/client/_app/immutable/chunks/CPL43v-I.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CTKC36WM.js +1 -0
- package/build/client/_app/immutable/chunks/CTKC36WM.js.br +0 -0
- package/build/client/_app/immutable/chunks/CTKC36WM.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CekH6JMP.js +1 -0
- package/build/client/_app/immutable/chunks/CekH6JMP.js.br +0 -0
- package/build/client/_app/immutable/chunks/CekH6JMP.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Ch16TNvP.js +1 -0
- package/build/client/_app/immutable/chunks/Ch16TNvP.js.br +0 -0
- package/build/client/_app/immutable/chunks/Ch16TNvP.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CqfYW08-.js +1 -0
- package/build/client/_app/immutable/chunks/CqfYW08-.js.br +0 -0
- package/build/client/_app/immutable/chunks/CqfYW08-.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D1v6O410.js +1 -0
- package/build/client/_app/immutable/chunks/D1v6O410.js.br +0 -0
- package/build/client/_app/immutable/chunks/D1v6O410.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DY4fWHx_.js +1 -0
- package/build/client/_app/immutable/chunks/DY4fWHx_.js.br +0 -0
- package/build/client/_app/immutable/chunks/DY4fWHx_.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DdnE6dyJ.js +2 -0
- package/build/client/_app/immutable/chunks/DdnE6dyJ.js.br +0 -0
- package/build/client/_app/immutable/chunks/DdnE6dyJ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DeieCYM0.js +22 -0
- package/build/client/_app/immutable/chunks/DeieCYM0.js.br +0 -0
- package/build/client/_app/immutable/chunks/DeieCYM0.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DfUzlYF5.js +1 -0
- package/build/client/_app/immutable/chunks/DfUzlYF5.js.br +0 -0
- package/build/client/_app/immutable/chunks/DfUzlYF5.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Dnk28BpG.js +1 -0
- package/build/client/_app/immutable/chunks/Dnk28BpG.js.br +0 -0
- package/build/client/_app/immutable/chunks/Dnk28BpG.js.gz +0 -0
- package/build/client/_app/immutable/chunks/KNAS5R2A.js +3 -0
- package/build/client/_app/immutable/chunks/KNAS5R2A.js.br +0 -0
- package/build/client/_app/immutable/chunks/KNAS5R2A.js.gz +0 -0
- package/build/client/_app/immutable/chunks/eyJgPND9.js +1 -0
- package/build/client/_app/immutable/chunks/eyJgPND9.js.br +1 -0
- package/build/client/_app/immutable/chunks/eyJgPND9.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.CPF6A_DV.js +2 -0
- package/build/client/_app/immutable/entry/app.CPF6A_DV.js.br +0 -0
- package/build/client/_app/immutable/entry/app.CPF6A_DV.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.Dos_Ttds.js +1 -0
- package/build/client/_app/immutable/entry/start.Dos_Ttds.js.br +2 -0
- package/build/client/_app/immutable/entry/start.Dos_Ttds.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{0.DlE8ZTIF.js → 0.C5HgTRfT.js} +1 -1
- package/build/client/_app/immutable/nodes/0.C5HgTRfT.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.C5HgTRfT.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.CGcgSoA9.js +1 -0
- package/build/client/_app/immutable/nodes/1.CGcgSoA9.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.CGcgSoA9.js.gz +0 -0
- package/build/client/_app/immutable/nodes/10.ukScuXwz.js +1 -0
- package/build/client/_app/immutable/nodes/10.ukScuXwz.js.br +5 -0
- package/build/client/_app/immutable/nodes/10.ukScuXwz.js.gz +0 -0
- package/build/client/_app/immutable/nodes/11.D3RDNx7M.js +1 -0
- package/build/client/_app/immutable/nodes/11.D3RDNx7M.js.br +0 -0
- package/build/client/_app/immutable/nodes/11.D3RDNx7M.js.gz +0 -0
- package/build/client/_app/immutable/nodes/12._vvpCcSG.js +1 -0
- package/build/client/_app/immutable/nodes/12._vvpCcSG.js.br +0 -0
- package/build/client/_app/immutable/nodes/12._vvpCcSG.js.gz +0 -0
- package/build/client/_app/immutable/nodes/13.BWPzZMQ5.js +1 -0
- package/build/client/_app/immutable/nodes/13.BWPzZMQ5.js.br +0 -0
- package/build/client/_app/immutable/nodes/13.BWPzZMQ5.js.gz +0 -0
- package/build/client/_app/immutable/nodes/14.Cr843Lep.js +1 -0
- package/build/client/_app/immutable/nodes/14.Cr843Lep.js.br +0 -0
- package/build/client/_app/immutable/nodes/14.Cr843Lep.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.DUpwDjw8.js +1 -0
- package/build/client/_app/immutable/nodes/2.DUpwDjw8.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.DUpwDjw8.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{2.CvEpuMc7.js → 3.DPH7xl7M.js} +1 -1
- package/build/client/_app/immutable/nodes/3.DPH7xl7M.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.DPH7xl7M.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.Bk0knTIK.js +1 -0
- package/build/client/_app/immutable/nodes/4.Bk0knTIK.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.Bk0knTIK.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.DwnZ1Bh8.js +1 -0
- package/build/client/_app/immutable/nodes/5.DwnZ1Bh8.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.DwnZ1Bh8.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.5U-KxFgt.js +2 -0
- package/build/client/_app/immutable/nodes/6.5U-KxFgt.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.5U-KxFgt.js.gz +0 -0
- package/build/client/_app/immutable/nodes/7.DFc4sJix.js +1 -0
- package/build/client/_app/immutable/nodes/7.DFc4sJix.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.DFc4sJix.js.gz +0 -0
- package/build/client/_app/immutable/nodes/8.BG4bv5P5.js +1 -0
- package/build/client/_app/immutable/nodes/8.BG4bv5P5.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.BG4bv5P5.js.gz +0 -0
- package/build/client/_app/immutable/nodes/9.BKljyhOi.js +1 -0
- package/build/client/_app/immutable/nodes/9.BKljyhOi.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.BKljyhOi.js.gz +0 -0
- package/build/client/_app/version.json +1 -1
- package/build/client/_app/version.json.br +0 -0
- package/build/client/_app/version.json.gz +0 -0
- package/build/client/styles.css +7 -0
- package/build/client/styles.css.br +0 -0
- package/build/client/styles.css.gz +0 -0
- package/build/handler.js +20 -3
- package/build/server/chunks/0-CZBaNtSI.js +9 -0
- package/build/server/chunks/{0-DgHTujtC.js.map → 0-CZBaNtSI.js.map} +1 -1
- package/build/server/chunks/1-D_3BtEbe.js +9 -0
- package/build/server/chunks/{1-B3zVLOO8.js.map → 1-D_3BtEbe.js.map} +1 -1
- package/build/server/chunks/10-CLkNMKHU.js +13 -0
- package/build/server/chunks/10-CLkNMKHU.js.map +1 -0
- package/build/server/chunks/11-5xPYR_1w.js +13 -0
- package/build/server/chunks/11-5xPYR_1w.js.map +1 -0
- package/build/server/chunks/12-N7UaQj7u.js +9 -0
- package/build/server/chunks/12-N7UaQj7u.js.map +1 -0
- package/build/server/chunks/13-QYVLpXli.js +9 -0
- package/build/server/chunks/13-QYVLpXli.js.map +1 -0
- package/build/server/chunks/14-CPY578rT.js +9 -0
- package/build/server/chunks/14-CPY578rT.js.map +1 -0
- package/build/server/chunks/2-_1jFrcvz.js +13 -0
- package/build/server/chunks/2-_1jFrcvz.js.map +1 -0
- package/build/server/chunks/3-B1CwnVF_.js +9 -0
- package/build/server/chunks/{2-CXlrhpR6.js.map → 3-B1CwnVF_.js.map} +1 -1
- package/build/server/chunks/4-CcxCcH4F.js +13 -0
- package/build/server/chunks/4-CcxCcH4F.js.map +1 -0
- package/build/server/chunks/5-CrlH6VoB.js +13 -0
- package/build/server/chunks/5-CrlH6VoB.js.map +1 -0
- package/build/server/chunks/6-FkP678Uz.js +13 -0
- package/build/server/chunks/6-FkP678Uz.js.map +1 -0
- package/build/server/chunks/7-B1iCe7VA.js +13 -0
- package/build/server/chunks/7-B1iCe7VA.js.map +1 -0
- package/build/server/chunks/8-p6n9G-P_.js +13 -0
- package/build/server/chunks/8-p6n9G-P_.js.map +1 -0
- package/build/server/chunks/9-fc3lKB7X.js +13 -0
- package/build/server/chunks/9-fc3lKB7X.js.map +1 -0
- package/build/server/chunks/Icon-CG7XnWX5.js +30 -0
- package/build/server/chunks/Icon-CG7XnWX5.js.map +1 -0
- package/build/server/chunks/Logout-BwzK1P29.js +45 -0
- package/build/server/chunks/Logout-BwzK1P29.js.map +1 -0
- package/build/server/chunks/_layout.svelte-9KMUotip.js +31 -0
- package/build/server/chunks/_layout.svelte-9KMUotip.js.map +1 -0
- package/build/server/chunks/_page.svelte-BD3HmLo_.js +28 -0
- package/build/server/chunks/_page.svelte-BD3HmLo_.js.map +1 -0
- package/build/server/chunks/_page.svelte-BFzPdJ6z.js +105 -0
- package/build/server/chunks/_page.svelte-BFzPdJ6z.js.map +1 -0
- package/build/server/chunks/_page.svelte-BIxxuzff.js +64 -0
- package/build/server/chunks/_page.svelte-BIxxuzff.js.map +1 -0
- package/build/server/chunks/_page.svelte-Bou2_u6i.js +13 -0
- package/build/server/chunks/_page.svelte-Bou2_u6i.js.map +1 -0
- package/build/server/chunks/_page.svelte-C25oQ2NT.js +80 -0
- package/build/server/chunks/_page.svelte-C25oQ2NT.js.map +1 -0
- package/build/server/chunks/_page.svelte-CAzWL4aq.js +66 -0
- package/build/server/chunks/_page.svelte-CAzWL4aq.js.map +1 -0
- package/build/server/chunks/_page.svelte-Ci5V-DhL.js +72 -0
- package/build/server/chunks/_page.svelte-Ci5V-DhL.js.map +1 -0
- package/build/server/chunks/_page.svelte-CnfRSJsl.js +37 -0
- package/build/server/chunks/_page.svelte-CnfRSJsl.js.map +1 -0
- package/build/server/chunks/_page.svelte-DgyZKeaF.js +231 -0
- package/build/server/chunks/_page.svelte-DgyZKeaF.js.map +1 -0
- package/build/server/chunks/_page.svelte-VDBvShZ8.js +6 -0
- package/build/server/chunks/_page.svelte-VDBvShZ8.js.map +1 -0
- package/build/server/chunks/_page.svelte-cAsZlwLs.js +24 -0
- package/build/server/chunks/_page.svelte-cAsZlwLs.js.map +1 -0
- package/build/server/chunks/_page.svelte-rrN2zFNa.js +66 -0
- package/build/server/chunks/_page.svelte-rrN2zFNa.js.map +1 -0
- package/build/server/chunks/account-BZSP6KBP.js +445 -0
- package/build/server/chunks/account-BZSP6KBP.js.map +1 -0
- package/build/server/chunks/color-K_MR7m8s.js +14 -0
- package/build/server/chunks/color-K_MR7m8s.js.map +1 -0
- package/build/server/chunks/context-R2425nfV.js +64 -0
- package/build/server/chunks/context-R2425nfV.js.map +1 -0
- package/build/server/chunks/{error.svelte-DNQXZmIO.js → error.svelte-DTrQqomO.js} +8 -7
- package/build/server/chunks/error.svelte-DTrQqomO.js.map +1 -0
- package/build/server/chunks/index-DJrm8BZm.js +844 -0
- package/build/server/chunks/index-DJrm8BZm.js.map +1 -0
- package/build/server/chunks/{index-CvHf_GW2.js → index-eKiDBuyI.js} +826 -438
- package/build/server/chunks/index-eKiDBuyI.js.map +1 -0
- package/build/server/chunks/layout.svelte-UxsTmhKc.js +8 -0
- package/build/server/chunks/layout.svelte-UxsTmhKc.js.map +1 -0
- package/build/server/chunks/{string-DLbvtT1R.js → numbers-DL8C9q4W.js} +1 -71
- package/build/server/chunks/numbers-DL8C9q4W.js.map +1 -0
- package/build/server/chunks/{FormDialog-CB-2YGWi.js → user2-Coq3Frtw.js} +102 -203
- package/build/server/chunks/user2-Coq3Frtw.js.map +1 -0
- package/build/server/chunks/{utils-h74ns7K6.js → utils-DlBYhQz7.js} +2 -1
- package/build/server/chunks/utils-DlBYhQz7.js.map +1 -0
- package/build/server/index.js +1787 -994
- package/build/server/index.js.map +1 -1
- package/build/server/manifest.js +70 -13
- package/build/server/manifest.js.map +1 -1
- package/dist/acl.d.ts +1 -2
- package/dist/api/acl.js +4 -4
- package/dist/api/admin.d.ts +1 -0
- package/dist/api/admin.js +135 -0
- package/dist/api/index.d.ts +2 -0
- package/dist/api/index.js +2 -0
- package/dist/api/metadata.js +3 -3
- package/dist/api/passkeys.js +10 -10
- package/dist/api/register.js +4 -4
- package/dist/api/session.js +5 -5
- package/dist/api/users.js +48 -48
- package/dist/audit.d.ts +7 -39
- package/dist/audit.js +10 -13
- package/dist/auth.d.ts +4 -11
- package/dist/auth.js +4 -4
- package/dist/cli.js +40 -54
- package/dist/config.d.ts +24 -14
- package/dist/config.js +42 -25
- package/dist/database.d.ts +3 -4
- package/dist/database.js +12 -12
- package/dist/internal_requests.d.ts +3 -0
- package/dist/internal_requests.js +119 -0
- package/dist/io.d.ts +1 -0
- package/dist/io.js +1 -1
- package/dist/linking.d.ts +0 -1
- package/dist/linking.js +2 -5
- package/dist/plugins.d.ts +4 -39
- package/dist/plugins.js +35 -51
- package/dist/requests.d.ts +5 -5
- package/dist/requests.js +14 -14
- package/dist/routes.d.ts +6 -10
- package/dist/routes.js +4 -5
- package/dist/serve.d.ts +3 -2
- package/dist/serve.js +165 -13
- package/dist/state.js +2 -1
- package/package.json +6 -5
- package/routes/account/+page.svelte +5 -109
- package/routes/admin/+layout.svelte +56 -0
- package/routes/admin/+layout.ts +29 -0
- package/routes/admin/+page.svelte +39 -0
- package/routes/admin/+page.ts +7 -0
- package/routes/admin/audit/+page.svelte +137 -0
- package/routes/admin/audit/+page.ts +20 -0
- package/routes/admin/audit/[id]/+page.svelte +43 -0
- package/routes/admin/audit/[id]/+page.ts +9 -0
- package/routes/admin/audit/styles.css +31 -0
- package/routes/admin/config/+page.svelte +28 -0
- package/routes/admin/config/+page.ts +9 -0
- package/routes/admin/plugins/+page.svelte +23 -0
- package/routes/admin/plugins/+page.ts +7 -0
- package/routes/admin/users/+page.svelte +60 -0
- package/routes/admin/users/+page.ts +9 -0
- package/routes/admin/users/[id]/+page.svelte +108 -0
- package/routes/admin/users/[id]/+page.ts +17 -0
- package/routes/tsconfig.json +1 -1
- package/svelte.config.js +4 -10
- package/{web/template.html → template.html} +1 -1
- package/{web/tsconfig.json → web.tsconfig.json} +2 -2
- package/build/client/_app/immutable/chunks/B1E1cVbi.js +0 -1
- package/build/client/_app/immutable/chunks/B1E1cVbi.js.br +0 -0
- package/build/client/_app/immutable/chunks/B1E1cVbi.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CIywFg5g.js +0 -3
- package/build/client/_app/immutable/chunks/CIywFg5g.js.br +0 -0
- package/build/client/_app/immutable/chunks/CIywFg5g.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D3hk2v8y.js +0 -1
- package/build/client/_app/immutable/chunks/D3hk2v8y.js.br +0 -2
- package/build/client/_app/immutable/chunks/D3hk2v8y.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D4Bce_hb.js +0 -1
- package/build/client/_app/immutable/chunks/D4Bce_hb.js.br +0 -0
- package/build/client/_app/immutable/chunks/D4Bce_hb.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D9TfJrfD.js +0 -1
- package/build/client/_app/immutable/chunks/D9TfJrfD.js.br +0 -0
- package/build/client/_app/immutable/chunks/D9TfJrfD.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DJeR1n-B.js +0 -51
- package/build/client/_app/immutable/chunks/DJeR1n-B.js.br +0 -0
- package/build/client/_app/immutable/chunks/DJeR1n-B.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Dy1O3iBu.js +0 -2
- package/build/client/_app/immutable/chunks/Dy1O3iBu.js.br +0 -0
- package/build/client/_app/immutable/chunks/Dy1O3iBu.js.gz +0 -0
- package/build/client/_app/immutable/chunks/pba7IodQ.js +0 -1
- package/build/client/_app/immutable/chunks/pba7IodQ.js.br +0 -0
- package/build/client/_app/immutable/chunks/pba7IodQ.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.ChtScU8h.js +0 -2
- package/build/client/_app/immutable/entry/app.ChtScU8h.js.br +0 -0
- package/build/client/_app/immutable/entry/app.ChtScU8h.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.DdjgBKiR.js +0 -1
- package/build/client/_app/immutable/entry/start.DdjgBKiR.js.br +0 -2
- package/build/client/_app/immutable/entry/start.DdjgBKiR.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.DlE8ZTIF.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.DlE8ZTIF.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.DRjfV_5C.js +0 -1
- package/build/client/_app/immutable/nodes/1.DRjfV_5C.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.DRjfV_5C.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.CvEpuMc7.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.CvEpuMc7.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.CVudd8x2.js +0 -7
- package/build/client/_app/immutable/nodes/3.CVudd8x2.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.CVudd8x2.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.Dhj0R0r7.js +0 -1
- package/build/client/_app/immutable/nodes/4.Dhj0R0r7.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.Dhj0R0r7.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.CGoBaVII.js +0 -1
- package/build/client/_app/immutable/nodes/5.CGoBaVII.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.CGoBaVII.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.BtB2uWXy.js +0 -1
- package/build/client/_app/immutable/nodes/6.BtB2uWXy.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.BtB2uWXy.js.gz +0 -0
- package/build/server/chunks/0-DgHTujtC.js +0 -9
- package/build/server/chunks/1-B3zVLOO8.js +0 -9
- package/build/server/chunks/2-CXlrhpR6.js +0 -9
- package/build/server/chunks/3-CGT4Ugys.js +0 -13
- package/build/server/chunks/3-CGT4Ugys.js.map +0 -1
- package/build/server/chunks/4-BscEiwUk.js +0 -9
- package/build/server/chunks/4-BscEiwUk.js.map +0 -1
- package/build/server/chunks/5-H0ePIJBE.js +0 -9
- package/build/server/chunks/5-H0ePIJBE.js.map +0 -1
- package/build/server/chunks/6-BrPpcagX.js +0 -9
- package/build/server/chunks/6-BrPpcagX.js.map +0 -1
- package/build/server/chunks/FormDialog-CB-2YGWi.js.map +0 -1
- package/build/server/chunks/Logout-LKOt-AST.js +0 -45
- package/build/server/chunks/Logout-LKOt-AST.js.map +0 -1
- package/build/server/chunks/_page.svelte-B1LK5J87.js +0 -11
- package/build/server/chunks/_page.svelte-B1LK5J87.js.map +0 -1
- package/build/server/chunks/_page.svelte-CMtkwvbP.js +0 -68
- package/build/server/chunks/_page.svelte-CMtkwvbP.js.map +0 -1
- package/build/server/chunks/_page.svelte-CbI2KxeA.js +0 -62
- package/build/server/chunks/_page.svelte-CbI2KxeA.js.map +0 -1
- package/build/server/chunks/_page.svelte-D1_WJoyP.js +0 -6
- package/build/server/chunks/_page.svelte-D1_WJoyP.js.map +0 -1
- package/build/server/chunks/_page.svelte-d01Hl2Ia.js +0 -639
- package/build/server/chunks/_page.svelte-d01Hl2Ia.js.map +0 -1
- package/build/server/chunks/error.svelte-DNQXZmIO.js.map +0 -1
- package/build/server/chunks/hooks.server-CQhG9POo.js +0 -17298
- package/build/server/chunks/hooks.server-CQhG9POo.js.map +0 -1
- package/build/server/chunks/index-CvHf_GW2.js.map +0 -1
- package/build/server/chunks/index-RTKpMYZ1.js +0 -397
- package/build/server/chunks/index-RTKpMYZ1.js.map +0 -1
- package/build/server/chunks/layout.svelte-BSvrn-4a.js +0 -8
- package/build/server/chunks/layout.svelte-BSvrn-4a.js.map +0 -1
- package/build/server/chunks/string-DLbvtT1R.js.map +0 -1
- package/build/server/chunks/utils-h74ns7K6.js.map +0 -1
- package/dist/sveltekit.d.ts +0 -8
- package/dist/sveltekit.js +0 -60
- package/web/hooks.server.ts +0 -4
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { Icon } from '@axium/client/components';
|
|
3
|
+
import '@axium/client/styles/list';
|
|
4
|
+
import './styles.css';
|
|
5
|
+
import { Severity, severityNames } from '@axium/core';
|
|
6
|
+
import { capitalize } from 'utilium';
|
|
7
|
+
|
|
8
|
+
const { data } = $props();
|
|
9
|
+
</script>
|
|
10
|
+
|
|
11
|
+
<svelte:head>
|
|
12
|
+
<title>Admin — Audit Log</title>
|
|
13
|
+
</svelte:head>
|
|
14
|
+
|
|
15
|
+
<h2>Audit Log</h2>
|
|
16
|
+
|
|
17
|
+
{#if data.filterError}
|
|
18
|
+
<div class="error">
|
|
19
|
+
<strong>Invalid Filter:</strong>
|
|
20
|
+
{#each data.filterError.split('\n') as line}
|
|
21
|
+
<p>{line}</p>
|
|
22
|
+
{/each}
|
|
23
|
+
</div>
|
|
24
|
+
{/if}
|
|
25
|
+
|
|
26
|
+
<form id="filter" method="dialog">
|
|
27
|
+
<h4>Filters</h4>
|
|
28
|
+
<span>Minimum Severity:</span>
|
|
29
|
+
<select name="severity" value={data.filter.severity}>
|
|
30
|
+
{#each severityNames as value}
|
|
31
|
+
<option {value} selected={value == 'info'}>{capitalize(value)}</option>
|
|
32
|
+
{/each}
|
|
33
|
+
</select>
|
|
34
|
+
<span>Since:</span>
|
|
35
|
+
<input type="date" name="since" value={data.filter.since} />
|
|
36
|
+
|
|
37
|
+
<span>Until:</span>
|
|
38
|
+
<input type="date" name="until" value={data.filter.until} />
|
|
39
|
+
|
|
40
|
+
<span>Tags:</span>
|
|
41
|
+
<input type="text" name="tags" value={data.filter.tags} />
|
|
42
|
+
|
|
43
|
+
<span>Event Name:</span>
|
|
44
|
+
<input type="text" name="event" value={data.filter.event} />
|
|
45
|
+
|
|
46
|
+
<span>Source:</span>
|
|
47
|
+
<input type="text" name="source" value={data.filter.source} />
|
|
48
|
+
|
|
49
|
+
<span>User UUID:</span>
|
|
50
|
+
<input type="text" name="user" size="36" value={data.filter.user} />
|
|
51
|
+
<button
|
|
52
|
+
onclick={e => {
|
|
53
|
+
e.preventDefault();
|
|
54
|
+
const fd = new FormData(e.currentTarget.form!);
|
|
55
|
+
const params = new URLSearchParams();
|
|
56
|
+
for (let [key, value] of fd.entries()) {
|
|
57
|
+
if (!value) continue;
|
|
58
|
+
switch (key) {
|
|
59
|
+
case 'since':
|
|
60
|
+
case 'until':
|
|
61
|
+
params.set(key, new Date(value as string).toISOString());
|
|
62
|
+
break;
|
|
63
|
+
case 'tags':
|
|
64
|
+
for (const tag of value
|
|
65
|
+
.toString()
|
|
66
|
+
.split(',')
|
|
67
|
+
.map(t => t.trim()))
|
|
68
|
+
params.append(key, tag);
|
|
69
|
+
break;
|
|
70
|
+
default:
|
|
71
|
+
params.set(key, value as string);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
location.search = params ? '?' + params.toString() : '';
|
|
75
|
+
}}>Apply</button
|
|
76
|
+
>
|
|
77
|
+
<button
|
|
78
|
+
onclick={e => {
|
|
79
|
+
e.preventDefault();
|
|
80
|
+
location.search = '';
|
|
81
|
+
}}>Reset</button
|
|
82
|
+
>
|
|
83
|
+
</form>
|
|
84
|
+
|
|
85
|
+
<div class="list-container">
|
|
86
|
+
<div class="list">
|
|
87
|
+
<div class="list-item list-header">
|
|
88
|
+
<span>Timestamp</span>
|
|
89
|
+
<span>Severity</span>
|
|
90
|
+
<span>Source</span>
|
|
91
|
+
<span>Name</span>
|
|
92
|
+
<span>Tags</span>
|
|
93
|
+
<span>User</span>
|
|
94
|
+
</div>
|
|
95
|
+
|
|
96
|
+
{#each data.events as event}
|
|
97
|
+
<div class="list-item" onclick={e => e.currentTarget === e.target && (location.href = '/admin/audit/' + event.id)}>
|
|
98
|
+
<span>{new Date(event.timestamp).toLocaleString()}</span>
|
|
99
|
+
<span class="severity--{Severity[event.severity].toLowerCase()}">{Severity[event.severity]}</span>
|
|
100
|
+
<span>{event.source}</span>
|
|
101
|
+
<span>{event.name}</span>
|
|
102
|
+
<span>{event.tags.join(', ')}</span>
|
|
103
|
+
{#if event.user}
|
|
104
|
+
<a href="/admin/users/{event.userId}">
|
|
105
|
+
{event.user.name}
|
|
106
|
+
{#if event.userId === data.session?.userId}<span class="subtle">(You)</span>{/if}
|
|
107
|
+
</a>
|
|
108
|
+
{:else}
|
|
109
|
+
<i>Unknown</i>
|
|
110
|
+
{/if}
|
|
111
|
+
<a href="/admin/audit/{event.id}"><Icon i="chevron-right" /></a>
|
|
112
|
+
</div>
|
|
113
|
+
{:else}
|
|
114
|
+
<p class="list-empty">No audit log events found</p>
|
|
115
|
+
{/each}
|
|
116
|
+
</div>
|
|
117
|
+
</div>
|
|
118
|
+
|
|
119
|
+
<style>
|
|
120
|
+
.list-item {
|
|
121
|
+
grid-template-columns: 15em 10em 10em 1fr 1fr 10em repeat(1, 2em);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
#filter {
|
|
125
|
+
background-color: var(--bg-menu);
|
|
126
|
+
padding: 1em;
|
|
127
|
+
border-radius: 0.5em;
|
|
128
|
+
display: grid;
|
|
129
|
+
grid-template-columns: repeat(2, 1fr);
|
|
130
|
+
gap: 0.25em;
|
|
131
|
+
width: fit-content;
|
|
132
|
+
|
|
133
|
+
h4 {
|
|
134
|
+
grid-column: 1 / span 2;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
</style>
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { fetchAPI } from '@axium/client/requests';
|
|
2
|
+
import { AuditFilter, Severity } from '@axium/core';
|
|
3
|
+
import { prettifyError, type input } from 'zod';
|
|
4
|
+
|
|
5
|
+
export const ssr = false;
|
|
6
|
+
|
|
7
|
+
export async function load({ url }) {
|
|
8
|
+
let filterError = null;
|
|
9
|
+
try {
|
|
10
|
+
AuditFilter.parse(Object.fromEntries(url.searchParams));
|
|
11
|
+
} catch (e: any) {
|
|
12
|
+
filterError = prettifyError(e);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
const filter: input<typeof AuditFilter> = filterError ? {} : Object.fromEntries(url.searchParams);
|
|
16
|
+
|
|
17
|
+
const events = await fetchAPI('GET', 'admin/audit/events', filter);
|
|
18
|
+
|
|
19
|
+
return { events, filterError, filter };
|
|
20
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { Severity } from '@axium/core/audit';
|
|
3
|
+
import '../styles.css';
|
|
4
|
+
import UserCard from '@axium/client/components/UserCard';
|
|
5
|
+
|
|
6
|
+
const { data } = $props();
|
|
7
|
+
const { event } = data;
|
|
8
|
+
</script>
|
|
9
|
+
|
|
10
|
+
<svelte:head>
|
|
11
|
+
<title>Admin — Audit Log Event #{event.id}</title>
|
|
12
|
+
</svelte:head>
|
|
13
|
+
|
|
14
|
+
<h2>Audit Event</h2>
|
|
15
|
+
|
|
16
|
+
<h4>UUID</h4>
|
|
17
|
+
<p>{event.id}</p>
|
|
18
|
+
|
|
19
|
+
<h4>Severity</h4>
|
|
20
|
+
<p class="severity--{Severity[event.severity].toLowerCase()}">{Severity[event.severity]}</p>
|
|
21
|
+
|
|
22
|
+
<h4>Name</h4>
|
|
23
|
+
<p>{event.name}</p>
|
|
24
|
+
|
|
25
|
+
<h4>Timestamp</h4>
|
|
26
|
+
<p>{new Date(event.timestamp).toLocaleString()}</p>
|
|
27
|
+
|
|
28
|
+
<h4>Source</h4>
|
|
29
|
+
<p>{event.source}</p>
|
|
30
|
+
|
|
31
|
+
<h4>Tags</h4>
|
|
32
|
+
<p>{event.tags.join(', ')}</p>
|
|
33
|
+
|
|
34
|
+
<h4>User</h4>
|
|
35
|
+
{#if event.user}
|
|
36
|
+
<UserCard user={event.user} href="/admin/users/{event.user.id}" />
|
|
37
|
+
{:else}
|
|
38
|
+
<i>Unknown</i>
|
|
39
|
+
{/if}
|
|
40
|
+
|
|
41
|
+
<h4>Extra Data</h4>
|
|
42
|
+
|
|
43
|
+
<pre>{JSON.stringify(event.extra, null, 4)}</pre>
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
.severity--emergency {
|
|
2
|
+
background-color: red;
|
|
3
|
+
color: white;
|
|
4
|
+
text-decoration: underline;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
.severity--alert {
|
|
8
|
+
background-color: red;
|
|
9
|
+
color: white;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.severity--critical {
|
|
13
|
+
font-weight: bold;
|
|
14
|
+
color: red;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.severity--error {
|
|
18
|
+
color: red;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.severity--warning {
|
|
22
|
+
color: yellow;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.severity--notice {
|
|
26
|
+
color: cyan;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.severity--debug {
|
|
30
|
+
opacity: 0.7;
|
|
31
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
const { data } = $props();
|
|
3
|
+
</script>
|
|
4
|
+
|
|
5
|
+
<svelte:head>
|
|
6
|
+
<title>Admin — Configuration</title>
|
|
7
|
+
</svelte:head>
|
|
8
|
+
|
|
9
|
+
<h2>Active Configuration</h2>
|
|
10
|
+
|
|
11
|
+
<pre>{JSON.stringify(data.config, null, 4)}</pre>
|
|
12
|
+
|
|
13
|
+
<h2>Loaded Files</h2>
|
|
14
|
+
|
|
15
|
+
{#each Object.entries(data.files) as [path, config]}
|
|
16
|
+
<details>
|
|
17
|
+
<summary>{path}</summary>
|
|
18
|
+
<pre>{JSON.stringify(config, null, 4)}</pre>
|
|
19
|
+
</details>
|
|
20
|
+
{/each}
|
|
21
|
+
|
|
22
|
+
<style>
|
|
23
|
+
summary {
|
|
24
|
+
cursor: pointer;
|
|
25
|
+
padding: 1em 0;
|
|
26
|
+
font-size: large;
|
|
27
|
+
}
|
|
28
|
+
</style>
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
const { data } = $props();
|
|
3
|
+
</script>
|
|
4
|
+
|
|
5
|
+
<svelte:head>
|
|
6
|
+
<title>Admin — Plugins</title>
|
|
7
|
+
</svelte:head>
|
|
8
|
+
|
|
9
|
+
<h2>Plugins</h2>
|
|
10
|
+
|
|
11
|
+
{#each data.plugins as plugin}
|
|
12
|
+
<h4>{plugin.name}</h4>
|
|
13
|
+
<p><strong>Loaded from</strong> {plugin.path} by {plugin._loadedBy ?? '<unknown>'}</p>
|
|
14
|
+
<p><strong>Version:</strong> {plugin.version}</p>
|
|
15
|
+
<p><strong>Author:</strong> {plugin.author}</p>
|
|
16
|
+
<p>
|
|
17
|
+
<strong>Provided apps:</strong>
|
|
18
|
+
{#if plugin.apps?.length}{plugin.apps?.map(a => a.name).join(', ')}{:else}<i>None</i>{/if}
|
|
19
|
+
</p>
|
|
20
|
+
<p>{plugin.description}</p>
|
|
21
|
+
{:else}
|
|
22
|
+
<i>No plugins loaded.</i>
|
|
23
|
+
{/each}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import Icon from '@axium/client/components/Icon';
|
|
3
|
+
import '@axium/client/styles/list';
|
|
4
|
+
import { colorHash } from '@axium/core/color';
|
|
5
|
+
|
|
6
|
+
const { data } = $props();
|
|
7
|
+
</script>
|
|
8
|
+
|
|
9
|
+
<svelte:head>
|
|
10
|
+
<title>Admin - Users</title>
|
|
11
|
+
</svelte:head>
|
|
12
|
+
|
|
13
|
+
<h2>Users</h2>
|
|
14
|
+
|
|
15
|
+
{#snippet attr(i: string, text: string, color: string = colorHash(text))}
|
|
16
|
+
<span class="attribute" style:background-color={color}><Icon {i} />{text}</span>
|
|
17
|
+
{/snippet}
|
|
18
|
+
|
|
19
|
+
<div id="user-list" class="list">
|
|
20
|
+
<div class="list-item list-header">
|
|
21
|
+
<span>Name</span>
|
|
22
|
+
<span>Email</span>
|
|
23
|
+
<span>Attributes</span>
|
|
24
|
+
</div>
|
|
25
|
+
{#each data.users as user}
|
|
26
|
+
<div class="user list-item" onclick={e => e.currentTarget === e.target && (location.href = '/admin/users/' + user.id)}>
|
|
27
|
+
<span>{user.name}</span>
|
|
28
|
+
<span>{user.email}</span>
|
|
29
|
+
<span>
|
|
30
|
+
{#if user.isAdmin}
|
|
31
|
+
{@render attr('crown', 'Admin', '#710')}
|
|
32
|
+
{/if}
|
|
33
|
+
{#each user.tags as tag}
|
|
34
|
+
{@render attr('hashtag', tag)}
|
|
35
|
+
{/each}
|
|
36
|
+
{#each user.roles as role}
|
|
37
|
+
{@render attr('at', role)}
|
|
38
|
+
{/each}
|
|
39
|
+
</span>
|
|
40
|
+
<a href="/admin/audit?user={user.id}"><Icon i="file-shield" /></a>
|
|
41
|
+
<a href="/admin/users/{user.id}"><Icon i="chevron-right" /></a>
|
|
42
|
+
</div>
|
|
43
|
+
{:else}
|
|
44
|
+
<div class="error">No users!</div>
|
|
45
|
+
{/each}
|
|
46
|
+
</div>
|
|
47
|
+
|
|
48
|
+
<style>
|
|
49
|
+
.list-item {
|
|
50
|
+
grid-template-columns: 1fr 1fr 3fr repeat(2, 2em);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.attribute {
|
|
54
|
+
border-radius: 1em;
|
|
55
|
+
padding: 0.25em 0.75em;
|
|
56
|
+
display: inline-flex;
|
|
57
|
+
align-items: center;
|
|
58
|
+
gap: 0.25em;
|
|
59
|
+
}
|
|
60
|
+
</style>
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { ClipboardCopy, Preferences, SessionList, Icon } from '@axium/client/components';
|
|
3
|
+
import '@axium/client/styles/account';
|
|
4
|
+
import { formatDateRange } from '@axium/core/format';
|
|
5
|
+
|
|
6
|
+
const { data } = $props();
|
|
7
|
+
const { user } = data;
|
|
8
|
+
|
|
9
|
+
let sessions = $state(user.sessions);
|
|
10
|
+
</script>
|
|
11
|
+
|
|
12
|
+
<svelte:head>
|
|
13
|
+
<title>Admin — User Management</title>
|
|
14
|
+
</svelte:head>
|
|
15
|
+
|
|
16
|
+
<a href="/admin/users">
|
|
17
|
+
<button class="icon-text">
|
|
18
|
+
<Icon i="up-left" /> Back to all users
|
|
19
|
+
</button>
|
|
20
|
+
</a>
|
|
21
|
+
|
|
22
|
+
<h2>User Management</h2>
|
|
23
|
+
|
|
24
|
+
<div class="section main">
|
|
25
|
+
<div class="item info">
|
|
26
|
+
<p>UUID</p>
|
|
27
|
+
<p>{user.id}</p>
|
|
28
|
+
<ClipboardCopy value={user.id} --size="16px" />
|
|
29
|
+
</div>
|
|
30
|
+
|
|
31
|
+
<div class="item info">
|
|
32
|
+
<p>Display Name</p>
|
|
33
|
+
<p>{user.name}</p>
|
|
34
|
+
<ClipboardCopy value={user.name} --size="16px" />
|
|
35
|
+
</div>
|
|
36
|
+
|
|
37
|
+
<div class="item info">
|
|
38
|
+
<p>Email</p>
|
|
39
|
+
<p>
|
|
40
|
+
<a href="mailto:{user.email}">{user.email}</a>, {user.emailVerified
|
|
41
|
+
? 'verified ' + user.emailVerified.toLocaleString()
|
|
42
|
+
: 'not verified'}
|
|
43
|
+
</p>
|
|
44
|
+
<ClipboardCopy value={user.email} --size="16px" />
|
|
45
|
+
</div>
|
|
46
|
+
|
|
47
|
+
<div class="item info">
|
|
48
|
+
<p>Registered</p>
|
|
49
|
+
<p>{formatDateRange(user.registeredAt)}</p>
|
|
50
|
+
<ClipboardCopy value={user.registeredAt.toISOString()} --size="16px" />
|
|
51
|
+
</div>
|
|
52
|
+
<div class="item info">
|
|
53
|
+
<p>Administrator</p>
|
|
54
|
+
{#if user.isAdmin}
|
|
55
|
+
<strong>Yes</strong>
|
|
56
|
+
{:else}
|
|
57
|
+
<p>No</p>
|
|
58
|
+
{/if}
|
|
59
|
+
<p></p>
|
|
60
|
+
</div>
|
|
61
|
+
<div class="item info">
|
|
62
|
+
<p>Suspended</p>
|
|
63
|
+
{#if user.isSuspended}
|
|
64
|
+
<strong>Yes</strong>
|
|
65
|
+
{:else}
|
|
66
|
+
<p>No</p>
|
|
67
|
+
{/if}
|
|
68
|
+
<button>{user.isSuspended ? 'Unsuspend' : 'Suspend'}</button>
|
|
69
|
+
</div>
|
|
70
|
+
<div class="item info">
|
|
71
|
+
<p>Profile Image</p>
|
|
72
|
+
{#if user.image}
|
|
73
|
+
<a href={user.image} target="_blank" rel="noopener noreferrer">{user.image}</a>
|
|
74
|
+
<ClipboardCopy value={user.image} --size="16px" />
|
|
75
|
+
{:else}
|
|
76
|
+
<i>Default</i>
|
|
77
|
+
<p></p>
|
|
78
|
+
{/if}
|
|
79
|
+
</div>
|
|
80
|
+
<div class="item info">
|
|
81
|
+
<p>Roles</p>
|
|
82
|
+
<p>{user.roles.join(', ')}</p>
|
|
83
|
+
</div>
|
|
84
|
+
<div class="item info">
|
|
85
|
+
<p>Tags</p>
|
|
86
|
+
<p>{user.tags.join(', ')}</p>
|
|
87
|
+
</div>
|
|
88
|
+
</div>
|
|
89
|
+
|
|
90
|
+
<div class="section main">
|
|
91
|
+
<h3>Sessions</h3>
|
|
92
|
+
<SessionList {sessions} {user} />
|
|
93
|
+
</div>
|
|
94
|
+
|
|
95
|
+
<div class="section main">
|
|
96
|
+
<h3>Preferences</h3>
|
|
97
|
+
<Preferences userId={user.id} bind:preferences={user.preferences} />
|
|
98
|
+
</div>
|
|
99
|
+
|
|
100
|
+
<style>
|
|
101
|
+
div.info {
|
|
102
|
+
grid-template-columns: 10em 1fr 6em;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
.section {
|
|
106
|
+
margin-bottom: 2em;
|
|
107
|
+
}
|
|
108
|
+
</style>
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { fetchAPI } from '@axium/client/requests';
|
|
2
|
+
|
|
3
|
+
export const ssr = false;
|
|
4
|
+
|
|
5
|
+
export async function load({ params }) {
|
|
6
|
+
const user = await fetchAPI('GET', 'admin/users/:userId', null, params.id);
|
|
7
|
+
|
|
8
|
+
for (const session of user.sessions) {
|
|
9
|
+
session.created = new Date(session.created);
|
|
10
|
+
session.expires = new Date(session.expires);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
user.registeredAt = new Date(user.registeredAt);
|
|
14
|
+
user.emailVerified = user.emailVerified ? new Date(user.emailVerified) : null;
|
|
15
|
+
|
|
16
|
+
return { user };
|
|
17
|
+
}
|
package/routes/tsconfig.json
CHANGED
package/svelte.config.js
CHANGED
|
@@ -1,13 +1,7 @@
|
|
|
1
|
-
import config from '@axium/server/config';
|
|
2
1
|
import node from '@sveltejs/adapter-node';
|
|
3
2
|
import { join } from 'node:path/posix';
|
|
4
3
|
import { fileURLToPath } from 'node:url';
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Paths relative to the directory of this file.
|
|
8
|
-
* This allows this file to be imported from other projects and still resolve to the correct paths.
|
|
9
|
-
*/
|
|
10
|
-
const fixed = p => join(import.meta.dirname, p);
|
|
4
|
+
import config from '@axium/server/config';
|
|
11
5
|
|
|
12
6
|
/** @type {import('@sveltejs/kit').Config} */
|
|
13
7
|
export default {
|
|
@@ -20,11 +14,11 @@ export default {
|
|
|
20
14
|
kit: {
|
|
21
15
|
adapter: node(),
|
|
22
16
|
files: {
|
|
23
|
-
routes: config.web.routes,
|
|
24
17
|
assets: join(fileURLToPath(new URL(import.meta.resolve('@axium/client'))), '../../assets'),
|
|
25
|
-
appTemplate:
|
|
18
|
+
appTemplate: join(import.meta.dirname, 'template.html'),
|
|
19
|
+
routes: config.web.routes,
|
|
26
20
|
hooks: {
|
|
27
|
-
|
|
21
|
+
universal: '/dev/null',
|
|
28
22
|
},
|
|
29
23
|
},
|
|
30
24
|
},
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
<html lang="en">
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="utf-8" />
|
|
5
|
-
<link rel="icon" href="%sveltekit.assets%/favicon.svg" />
|
|
5
|
+
<link rel="icon" href="%sveltekit.assets%/favicon.svg" type="image/svg" />
|
|
6
6
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
7
7
|
<meta name="color-scheme" content="dark light" />
|
|
8
8
|
<link rel="stylesheet" href="%sveltekit.assets%/theme.css" />
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./DsnmJJEf.js";import{q as p,r as c,p as f,v as d,f as b,a as u}from"./D9TfJrfD.js";import{d as v}from"./Dy1O3iBu.js";import{p as n,i as _}from"./pba7IodQ.js";import{F as h,l as k}from"./DJeR1n-B.js";var w=(t,o)=>{t.preventDefault(),o().close(),history.back()},y=f("<button>Take me back</button>"),L=f("<p>Are you sure you want to log out?</p> <!>",1);function A(t,o){p(o,!0);let a=n(o,"dialog",15),l=n(o,"fullPage",3,!1);h(t,{get pageMode(){return l()},submitText:"Log Out",submit:()=>k().then(()=>window.location.href="/"),get dialog(){return a()},set dialog(r){a(r)},children:(r,P)=>{var i=L(),g=d(b(i),2);{var m=e=>{var s=y();s.__click=[w,a],u(e,s)};_(g,e=>{l()&&e(m)})}u(r,i)},$$slots:{default:!0}}),c()}v(["click"]);export{A as L};
|
|
Binary file
|
|
Binary file
|