@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.
- 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/46qGscyh.js +2 -0
- package/build/client/_app/immutable/chunks/46qGscyh.js.br +0 -0
- package/build/client/_app/immutable/chunks/46qGscyh.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B2Vkpbkw.js +2 -0
- package/build/client/_app/immutable/chunks/B2Vkpbkw.js.br +0 -0
- package/build/client/_app/immutable/chunks/B2Vkpbkw.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BKixenYx.js +1 -0
- package/build/client/_app/immutable/chunks/BKixenYx.js.br +0 -0
- package/build/client/_app/immutable/chunks/BKixenYx.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BLtAtlP3.js +1 -0
- package/build/client/_app/immutable/chunks/BLtAtlP3.js.br +2 -0
- package/build/client/_app/immutable/chunks/BLtAtlP3.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BNTlty5m.js +1 -0
- package/build/client/_app/immutable/chunks/BNTlty5m.js.br +0 -0
- package/build/client/_app/immutable/chunks/BNTlty5m.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Beh6Ec8J.js +1 -0
- package/build/client/_app/immutable/chunks/Beh6Ec8J.js.br +0 -0
- package/build/client/_app/immutable/chunks/Beh6Ec8J.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BrUe-Qen.js +1 -0
- package/build/client/_app/immutable/chunks/BrUe-Qen.js.br +0 -0
- package/build/client/_app/immutable/chunks/BrUe-Qen.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Bs4cD_pX.js +1 -0
- package/build/client/_app/immutable/chunks/Bs4cD_pX.js.br +0 -0
- package/build/client/_app/immutable/chunks/Bs4cD_pX.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C62F-tXu.js +1 -0
- package/build/client/_app/immutable/chunks/C62F-tXu.js.br +1 -0
- package/build/client/_app/immutable/chunks/C62F-tXu.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CUBtP2L9.js +23 -0
- package/build/client/_app/immutable/chunks/CUBtP2L9.js.br +0 -0
- package/build/client/_app/immutable/chunks/CUBtP2L9.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/CoYD6HNm.js +1 -0
- package/build/client/_app/immutable/chunks/CoYD6HNm.js.br +0 -0
- package/build/client/_app/immutable/chunks/CoYD6HNm.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D40Zn55h.js +1 -0
- package/build/client/_app/immutable/chunks/D40Zn55h.js.br +0 -0
- package/build/client/_app/immutable/chunks/D40Zn55h.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DW7-1esk.js +21 -0
- package/build/client/_app/immutable/chunks/DW7-1esk.js.br +0 -0
- package/build/client/_app/immutable/chunks/DW7-1esk.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/DvOBbqVY.js +1 -0
- package/build/client/_app/immutable/chunks/DvOBbqVY.js.br +0 -0
- package/build/client/_app/immutable/chunks/DvOBbqVY.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DwZYWemd.js +1 -0
- package/build/client/_app/immutable/chunks/DwZYWemd.js.br +0 -0
- package/build/client/_app/immutable/chunks/DwZYWemd.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Dy2Ho0cF.js +1 -0
- package/build/client/_app/immutable/chunks/Dy2Ho0cF.js.br +0 -0
- package/build/client/_app/immutable/chunks/Dy2Ho0cF.js.gz +0 -0
- package/build/client/_app/immutable/chunks/FTv0qR3w.js +1 -0
- package/build/client/_app/immutable/chunks/FTv0qR3w.js.br +0 -0
- package/build/client/_app/immutable/chunks/FTv0qR3w.js.gz +0 -0
- package/build/client/_app/immutable/chunks/NeK0YGoY.js +1 -0
- package/build/client/_app/immutable/chunks/NeK0YGoY.js.br +0 -0
- package/build/client/_app/immutable/chunks/NeK0YGoY.js.gz +0 -0
- package/build/client/_app/immutable/chunks/aArGsq9c.js +1 -0
- package/build/client/_app/immutable/chunks/aArGsq9c.js.br +0 -0
- package/build/client/_app/immutable/chunks/aArGsq9c.js.gz +0 -0
- package/build/client/_app/immutable/chunks/lH47zGKU.js +1 -0
- package/build/client/_app/immutable/chunks/lH47zGKU.js.br +0 -0
- package/build/client/_app/immutable/chunks/lH47zGKU.js.gz +0 -0
- package/build/client/_app/immutable/chunks/sMHjBQqw.js +1 -0
- package/build/client/_app/immutable/chunks/sMHjBQqw.js.br +0 -0
- package/build/client/_app/immutable/chunks/sMHjBQqw.js.gz +0 -0
- package/build/client/_app/immutable/chunks/vQfHcJV6.js +2 -0
- package/build/client/_app/immutable/chunks/vQfHcJV6.js.br +0 -0
- package/build/client/_app/immutable/chunks/vQfHcJV6.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.pLVZKpSD.js +2 -0
- package/build/client/_app/immutable/entry/app.pLVZKpSD.js.br +0 -0
- package/build/client/_app/immutable/entry/app.pLVZKpSD.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.CUaVsIrY.js +1 -0
- package/build/client/_app/immutable/entry/start.CUaVsIrY.js.br +2 -0
- package/build/client/_app/immutable/entry/start.CUaVsIrY.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.D7hET-Bq.js +1 -0
- package/build/client/_app/immutable/nodes/0.D7hET-Bq.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.D7hET-Bq.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.BWU-JJm_.js +1 -0
- package/build/client/_app/immutable/nodes/1.BWU-JJm_.js.br +2 -0
- package/build/client/_app/immutable/nodes/1.BWU-JJm_.js.gz +0 -0
- package/build/client/_app/immutable/nodes/10.C5N2XBee.js +1 -0
- package/build/client/_app/immutable/nodes/10.C5N2XBee.js.br +0 -0
- package/build/client/_app/immutable/nodes/10.C5N2XBee.js.gz +0 -0
- package/build/client/_app/immutable/nodes/11.CerbuSAv.js +1 -0
- package/build/client/_app/immutable/nodes/11.CerbuSAv.js.br +0 -0
- package/build/client/_app/immutable/nodes/11.CerbuSAv.js.gz +0 -0
- package/build/client/_app/immutable/nodes/12.Z4B9zS78.js +1 -0
- package/build/client/_app/immutable/nodes/12.Z4B9zS78.js.br +0 -0
- package/build/client/_app/immutable/nodes/12.Z4B9zS78.js.gz +0 -0
- package/build/client/_app/immutable/nodes/13.CuICShck.js +1 -0
- package/build/client/_app/immutable/nodes/13.CuICShck.js.br +0 -0
- package/build/client/_app/immutable/nodes/13.CuICShck.js.gz +0 -0
- package/build/client/_app/immutable/nodes/14.BSEF5oaF.js +1 -0
- package/build/client/_app/immutable/nodes/14.BSEF5oaF.js.br +0 -0
- package/build/client/_app/immutable/nodes/14.BSEF5oaF.js.gz +0 -0
- package/build/client/_app/immutable/nodes/15.D1nsmo6j.js +1 -0
- package/build/client/_app/immutable/nodes/15.D1nsmo6j.js.br +0 -0
- package/build/client/_app/immutable/nodes/15.D1nsmo6j.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.DQ1JcYgz.js +1 -0
- package/build/client/_app/immutable/nodes/2.DQ1JcYgz.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.DQ1JcYgz.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.BJp2JEtW.js +1 -0
- package/build/client/_app/immutable/nodes/3.BJp2JEtW.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.BJp2JEtW.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.Cvn_QsIx.js +1 -0
- package/build/client/_app/immutable/nodes/4.Cvn_QsIx.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.Cvn_QsIx.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.DgPP9GX3.js +1 -0
- package/build/client/_app/immutable/nodes/5.DgPP9GX3.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.DgPP9GX3.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.DKIzms8i.js +2 -0
- package/build/client/_app/immutable/nodes/6.DKIzms8i.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.DKIzms8i.js.gz +0 -0
- package/build/client/_app/immutable/nodes/7.3UigVXV4.js +1 -0
- package/build/client/_app/immutable/nodes/7.3UigVXV4.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.3UigVXV4.js.gz +0 -0
- package/build/client/_app/immutable/nodes/8.B8s2TdNQ.js +1 -0
- package/build/client/_app/immutable/nodes/8.B8s2TdNQ.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.B8s2TdNQ.js.gz +0 -0
- package/build/client/_app/immutable/nodes/9.LBMMe2kc.js +1 -0
- package/build/client/_app/immutable/nodes/9.LBMMe2kc.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.LBMMe2kc.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 +28 -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-CNbALTKz.js +9 -0
- package/build/server/chunks/0-CNbALTKz.js.map +1 -0
- package/build/server/chunks/1-Dgxy393u.js +9 -0
- package/build/server/chunks/1-Dgxy393u.js.map +1 -0
- package/build/server/chunks/10-DovmbqKa.js +14 -0
- package/build/server/chunks/10-DovmbqKa.js.map +1 -0
- package/build/server/chunks/11-CRK_ubcl.js +14 -0
- package/build/server/chunks/11-CRK_ubcl.js.map +1 -0
- package/build/server/chunks/12-SbQlwMfe.js +9 -0
- package/build/server/chunks/12-SbQlwMfe.js.map +1 -0
- package/build/server/chunks/13-CbniIW7F.js +14 -0
- package/build/server/chunks/13-CbniIW7F.js.map +1 -0
- package/build/server/chunks/14-D9Vb_8Yx.js +9 -0
- package/build/server/chunks/14-D9Vb_8Yx.js.map +1 -0
- package/build/server/chunks/15-D-75Hdef.js +9 -0
- package/build/server/chunks/15-D-75Hdef.js.map +1 -0
- package/build/server/chunks/2-57exN8ae.js +14 -0
- package/build/server/chunks/2-57exN8ae.js.map +1 -0
- package/build/server/chunks/3-DNQft-pY.js +9 -0
- package/build/server/chunks/{2-CXlrhpR6.js.map → 3-DNQft-pY.js.map} +1 -1
- package/build/server/chunks/4-D9Bwp-f8.js +14 -0
- package/build/server/chunks/4-D9Bwp-f8.js.map +1 -0
- package/build/server/chunks/5-COEQwZNP.js +14 -0
- package/build/server/chunks/5-COEQwZNP.js.map +1 -0
- package/build/server/chunks/6-RT4yiDcP.js +14 -0
- package/build/server/chunks/6-RT4yiDcP.js.map +1 -0
- package/build/server/chunks/7-CVqF_r5D.js +14 -0
- package/build/server/chunks/7-CVqF_r5D.js.map +1 -0
- package/build/server/chunks/8-C5SO-sVH.js +14 -0
- package/build/server/chunks/8-C5SO-sVH.js.map +1 -0
- package/build/server/chunks/9-DoCOKtY-.js +14 -0
- package/build/server/chunks/9-DoCOKtY-.js.map +1 -0
- package/build/server/chunks/FormDialog-ZCY0chY1.js +102 -0
- package/build/server/chunks/FormDialog-ZCY0chY1.js.map +1 -0
- package/build/server/chunks/Icon-BVo9qbDf.js +30 -0
- package/build/server/chunks/Icon-BVo9qbDf.js.map +1 -0
- package/build/server/chunks/Logout-CmBZgu0j.js +46 -0
- package/build/server/chunks/Logout-CmBZgu0j.js.map +1 -0
- package/build/server/chunks/_layout.svelte-DuS006VZ.js +33 -0
- package/build/server/chunks/_layout.svelte-DuS006VZ.js.map +1 -0
- package/build/server/chunks/_page.svelte-BFVobcI7.js +14 -0
- package/build/server/chunks/_page.svelte-BFVobcI7.js.map +1 -0
- package/build/server/chunks/_page.svelte-B_cvhWJS.js +66 -0
- package/build/server/chunks/_page.svelte-B_cvhWJS.js.map +1 -0
- package/build/server/chunks/_page.svelte-BriaBR9l.js +28 -0
- package/build/server/chunks/_page.svelte-BriaBR9l.js.map +1 -0
- package/build/server/chunks/_page.svelte-BtQQzT7H.js +72 -0
- package/build/server/chunks/_page.svelte-BtQQzT7H.js.map +1 -0
- package/build/server/chunks/_page.svelte-C8D3c3yB.js +64 -0
- package/build/server/chunks/_page.svelte-C8D3c3yB.js.map +1 -0
- package/build/server/chunks/_page.svelte-CVSb9eHQ.js +24 -0
- package/build/server/chunks/_page.svelte-CVSb9eHQ.js.map +1 -0
- package/build/server/chunks/_page.svelte-CwRjZqL7.js +107 -0
- package/build/server/chunks/_page.svelte-CwRjZqL7.js.map +1 -0
- package/build/server/chunks/_page.svelte-D9A9RYjx.js +233 -0
- package/build/server/chunks/_page.svelte-D9A9RYjx.js.map +1 -0
- package/build/server/chunks/_page.svelte-DGhwqWMM.js +34 -0
- package/build/server/chunks/_page.svelte-DGhwqWMM.js.map +1 -0
- package/build/server/chunks/_page.svelte-DTvnX95_.js +75 -0
- package/build/server/chunks/_page.svelte-DTvnX95_.js.map +1 -0
- package/build/server/chunks/_page.svelte-DUfwpXfC.js +122 -0
- package/build/server/chunks/_page.svelte-DUfwpXfC.js.map +1 -0
- package/build/server/chunks/_page.svelte-DxDoD3rZ.js +37 -0
- package/build/server/chunks/_page.svelte-DxDoD3rZ.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/account-Bf_llRe2.js +446 -0
- package/build/server/chunks/account-Bf_llRe2.js.map +1 -0
- package/build/server/chunks/auth_redirect-olBYiIF2.js +24 -0
- package/build/server/chunks/auth_redirect-olBYiIF2.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-CkSCwrMJ.js} +7 -6
- package/build/server/chunks/error.svelte-CkSCwrMJ.js.map +1 -0
- package/build/server/chunks/index-CIEcmmdN.js +890 -0
- package/build/server/chunks/index-CIEcmmdN.js.map +1 -0
- package/build/server/chunks/{index-CvHf_GW2.js → index-Tt4zVDIZ.js} +843 -438
- package/build/server/chunks/index-Tt4zVDIZ.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-CRfK67II.js} +12 -206
- package/build/server/chunks/user2-CRfK67II.js.map +1 -0
- package/build/server/chunks/utils-h74ns7K6.js.map +1 -1
- package/build/server/index.js +2304 -1140
- package/build/server/index.js.map +1 -1
- package/build/server/manifest.js +78 -13
- package/build/server/manifest.js.map +1 -1
- package/dist/acl.d.ts +1 -2
- package/dist/acl.js +1 -1
- package/dist/api/acl.js +4 -4
- package/dist/api/admin.d.ts +1 -0
- package/dist/api/admin.js +152 -0
- package/dist/api/index.d.ts +2 -0
- package/dist/api/index.js +2 -0
- package/dist/api/metadata.js +5 -5
- 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 +52 -49
- package/dist/audit.d.ts +8 -39
- package/dist/audit.js +13 -16
- package/dist/auth.d.ts +4 -11
- package/dist/auth.js +4 -4
- package/dist/cli.js +515 -559
- package/dist/config.d.ts +26 -16
- package/dist/config.js +65 -36
- package/dist/database.d.ts +3 -4
- package/dist/database.js +19 -18
- package/dist/internal_requests.d.ts +3 -0
- package/dist/internal_requests.js +119 -0
- package/dist/io.d.ts +0 -49
- package/dist/io.js +23 -171
- package/dist/linking.d.ts +0 -1
- package/dist/linking.js +5 -8
- package/dist/requests.d.ts +10 -6
- package/dist/requests.js +17 -15
- package/dist/routes.d.ts +6 -10
- package/dist/routes.js +7 -8
- package/dist/serve.d.ts +7 -2
- package/dist/serve.js +170 -13
- package/dist/state.js +2 -1
- package/package.json +8 -7
- package/routes/account/+page.svelte +5 -109
- package/routes/admin/+layout.svelte +56 -0
- package/routes/admin/+layout.ts +31 -0
- package/routes/admin/+page.svelte +39 -0
- package/routes/admin/+page.ts +7 -0
- package/routes/admin/audit/+page.svelte +158 -0
- package/routes/admin/audit/+page.ts +22 -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/login/client/+page.svelte +72 -0
- package/routes/login/client/+page.ts +27 -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/DsnmJJEf.js +0 -1
- package/build/client/_app/immutable/chunks/DsnmJJEf.js.br +0 -2
- package/build/client/_app/immutable/chunks/DsnmJJEf.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 +0 -1
- 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 +0 -1
- 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/0-DgHTujtC.js.map +0 -1
- package/build/server/chunks/1-B3zVLOO8.js +0 -9
- package/build/server/chunks/1-B3zVLOO8.js.map +0 -1
- 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/dist/apps.d.ts +0 -6
- package/dist/apps.js +0 -6
- package/dist/plugins.d.ts +0 -49
- package/dist/plugins.js +0 -80
- package/dist/sveltekit.d.ts +0 -8
- package/dist/sveltekit.js +0 -60
- package/web/hooks.server.ts +0 -4
- /package/{axiumd.service → axium.service} +0 -0
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(
|
|
22
|
-
const { value } = await parseBody(
|
|
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(
|
|
36
|
-
const userId =
|
|
37
|
-
const auth = await checkAuthForUser(
|
|
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(
|
|
42
|
-
const userId =
|
|
43
|
-
const body = await parseBody(
|
|
44
|
-
await checkAuthForUser(
|
|
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(
|
|
59
|
-
const userId =
|
|
60
|
-
await checkAuthForUser(
|
|
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(
|
|
75
|
-
const userId =
|
|
76
|
-
const { user } = await checkAuthForUser(
|
|
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(
|
|
88
|
-
const userId =
|
|
89
|
-
const { type } = await parseBody(
|
|
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(
|
|
104
|
-
const userId =
|
|
105
|
-
const response = await parseBody(
|
|
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');
|
|
@@ -125,10 +125,13 @@ addRoute({
|
|
|
125
125
|
switch (type) {
|
|
126
126
|
case 'login':
|
|
127
127
|
return await createSessionData(userId);
|
|
128
|
+
case 'client_login':
|
|
129
|
+
/** @todo tag in DB so users can manage easier */
|
|
130
|
+
return await createSessionData(userId, { noCookie: true });
|
|
128
131
|
case 'action':
|
|
129
132
|
if ((Date.now() - passkey.createdAt.getTime()) / 60_000 < config.auth.passkey_probation)
|
|
130
133
|
error(403, 'You can not authorize sensitive actions with a newly created passkey');
|
|
131
|
-
return await createSessionData(userId, true);
|
|
134
|
+
return await createSessionData(userId, { elevated: true });
|
|
132
135
|
}
|
|
133
136
|
},
|
|
134
137
|
});
|
|
@@ -140,10 +143,10 @@ addRoute({
|
|
|
140
143
|
/**
|
|
141
144
|
* Get passkey registration options for a user.
|
|
142
145
|
*/
|
|
143
|
-
async OPTIONS(
|
|
144
|
-
const userId =
|
|
146
|
+
async OPTIONS(request, params) {
|
|
147
|
+
const userId = params.id;
|
|
145
148
|
const existing = await getPasskeysByUserId(userId);
|
|
146
|
-
const { user } = await checkAuthForUser(
|
|
149
|
+
const { user } = await checkAuthForUser(request, userId);
|
|
147
150
|
const options = await webauthn.generateRegistrationOptions({
|
|
148
151
|
rpName: config.auth.rp_name,
|
|
149
152
|
rpID: config.auth.rp_id,
|
|
@@ -163,19 +166,19 @@ addRoute({
|
|
|
163
166
|
/**
|
|
164
167
|
* Get passkeys for a user.
|
|
165
168
|
*/
|
|
166
|
-
async GET(
|
|
167
|
-
const userId =
|
|
168
|
-
await checkAuthForUser(
|
|
169
|
+
async GET(request, params) {
|
|
170
|
+
const userId = params.id;
|
|
171
|
+
await checkAuthForUser(request, userId);
|
|
169
172
|
const passkeys = await getPasskeysByUserId(userId);
|
|
170
173
|
return passkeys.map(p => omit(p, 'publicKey', 'counter'));
|
|
171
174
|
},
|
|
172
175
|
/**
|
|
173
176
|
* Register a new passkey for an existing user.
|
|
174
177
|
*/
|
|
175
|
-
async PUT(
|
|
176
|
-
const userId =
|
|
177
|
-
const response = await parseBody(
|
|
178
|
-
await checkAuthForUser(
|
|
178
|
+
async PUT(request, params) {
|
|
179
|
+
const userId = params.id;
|
|
180
|
+
const response = await parseBody(request, PasskeyRegistration);
|
|
181
|
+
await checkAuthForUser(request, userId);
|
|
179
182
|
const expectedChallenge = registrations.get(userId);
|
|
180
183
|
if (!expectedChallenge)
|
|
181
184
|
error(404, 'No registration challenge found for this user');
|
|
@@ -202,15 +205,15 @@ addRoute({
|
|
|
202
205
|
addRoute({
|
|
203
206
|
path: '/api/users/:id/sessions',
|
|
204
207
|
params,
|
|
205
|
-
async GET(
|
|
206
|
-
const userId =
|
|
207
|
-
await checkAuthForUser(
|
|
208
|
+
async GET(request, params) {
|
|
209
|
+
const userId = params.id;
|
|
210
|
+
await checkAuthForUser(request, userId);
|
|
208
211
|
return (await getSessions(userId).catch(e => error(503, 'Failed to get sessions' + (config.debug ? ': ' + e : '')))).map(s => omit(s, 'token'));
|
|
209
212
|
},
|
|
210
|
-
async DELETE(
|
|
211
|
-
const userId =
|
|
212
|
-
const body = await parseBody(
|
|
213
|
-
await checkAuthForUser(
|
|
213
|
+
async DELETE(request, params) {
|
|
214
|
+
const userId = params.id;
|
|
215
|
+
const body = await parseBody(request, LogoutSessions);
|
|
216
|
+
await checkAuthForUser(request, userId, body.confirm_all);
|
|
214
217
|
if (!body.confirm_all && !Array.isArray(body.id))
|
|
215
218
|
error(400, 'Invalid request body');
|
|
216
219
|
const query = body.confirm_all ? db.deleteFrom('sessions') : db.deleteFrom('sessions').where('sessions.id', 'in', body.id);
|
|
@@ -226,27 +229,27 @@ addRoute({
|
|
|
226
229
|
addRoute({
|
|
227
230
|
path: '/api/users/:id/verify_email',
|
|
228
231
|
params,
|
|
229
|
-
async OPTIONS(
|
|
230
|
-
const userId =
|
|
232
|
+
async OPTIONS(request, params) {
|
|
233
|
+
const userId = params.id;
|
|
231
234
|
if (!config.auth.email_verification)
|
|
232
235
|
return { enabled: false };
|
|
233
|
-
await checkAuthForUser(
|
|
236
|
+
await checkAuthForUser(request, userId);
|
|
234
237
|
if (!config.auth.email_verification)
|
|
235
238
|
return { enabled: false };
|
|
236
239
|
return { enabled: true };
|
|
237
240
|
},
|
|
238
|
-
async GET(
|
|
239
|
-
const userId =
|
|
240
|
-
const { user } = await checkAuthForUser(
|
|
241
|
+
async GET(request, params) {
|
|
242
|
+
const userId = params.id;
|
|
243
|
+
const { user } = await checkAuthForUser(request, userId);
|
|
241
244
|
if (user.emailVerified)
|
|
242
245
|
error(409, 'Email already verified');
|
|
243
246
|
const verification = await createVerification('verify_email', userId, config.auth.verification_timeout * 60);
|
|
244
247
|
return omit(verification, 'token', 'role');
|
|
245
248
|
},
|
|
246
|
-
async POST(
|
|
247
|
-
const userId =
|
|
248
|
-
const { token } = await parseBody(
|
|
249
|
-
const { user } = await checkAuthForUser(
|
|
249
|
+
async POST(request, params) {
|
|
250
|
+
const userId = params.id;
|
|
251
|
+
const { token } = await parseBody(request, z.object({ token: z.string() }));
|
|
252
|
+
const { user } = await checkAuthForUser(request, userId);
|
|
250
253
|
if (user.emailVerified)
|
|
251
254
|
error(409, 'Email already verified');
|
|
252
255
|
await useVerification('verify_email', userId, token).catch(withError('Invalid or expired verification token', 400));
|
package/dist/audit.d.ts
CHANGED
|
@@ -1,35 +1,8 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { Severity, type AuditEvent, type AuditFilter } from '@axium/core/audit';
|
|
2
|
+
import type { Insertable, SelectQueryBuilder } from 'kysely';
|
|
2
3
|
import * as z from 'zod';
|
|
3
4
|
import { type Schema } from './database.js';
|
|
4
|
-
export declare enum Severity {
|
|
5
|
-
Emergency = 0,
|
|
6
|
-
Alert = 1,
|
|
7
|
-
Critical = 2,
|
|
8
|
-
Error = 3,
|
|
9
|
-
Warning = 4,
|
|
10
|
-
Notice = 5,
|
|
11
|
-
Info = 6,
|
|
12
|
-
Debug = 7
|
|
13
|
-
}
|
|
14
5
|
export declare function styleSeverity(sev: Severity, align?: boolean): string;
|
|
15
|
-
export interface AuditEvent<T extends Record<string, unknown> = Record<string, unknown>> {
|
|
16
|
-
/** UUID of the event */
|
|
17
|
-
id: string;
|
|
18
|
-
/** UUID of the user that triggered the event. `null` for events triggered via the server CLI */
|
|
19
|
-
userId?: string | null;
|
|
20
|
-
/** When the event happened */
|
|
21
|
-
timestamp: Date;
|
|
22
|
-
/** How severe the event is */
|
|
23
|
-
severity: Severity;
|
|
24
|
-
/** Snake case name for the event */
|
|
25
|
-
name: string;
|
|
26
|
-
/** The source of the event. This should be a package name */
|
|
27
|
-
source: string;
|
|
28
|
-
/** Tags for the event. For example, `auth` for authentication events */
|
|
29
|
-
tags: string[];
|
|
30
|
-
/** Additional event specific data. */
|
|
31
|
-
extra: T;
|
|
32
|
-
}
|
|
33
6
|
export interface AuditEventInit extends Insertable<Schema['audit_log']> {
|
|
34
7
|
}
|
|
35
8
|
export declare function audit_raw(event: AuditEventInit): Promise<void>;
|
|
@@ -48,6 +21,10 @@ export interface $EventTypes {
|
|
|
48
21
|
admin_change: {
|
|
49
22
|
user: string;
|
|
50
23
|
};
|
|
24
|
+
admin_api: {
|
|
25
|
+
route: string;
|
|
26
|
+
session: string;
|
|
27
|
+
};
|
|
51
28
|
}
|
|
52
29
|
export type EventName = keyof $EventTypes;
|
|
53
30
|
export type EventExtra<T extends EventName> = $EventTypes[T];
|
|
@@ -69,15 +46,7 @@ export interface AuditEventConfig {
|
|
|
69
46
|
extra?: z.ZodObject;
|
|
70
47
|
noAutoSuspend?: boolean;
|
|
71
48
|
}
|
|
49
|
+
export declare const events: Map<keyof $EventTypes, AuditEventConfig>;
|
|
72
50
|
export declare function addEvent(init: AuditEventConfigInit): void;
|
|
73
51
|
export declare function audit<T extends EventName>(eventName: T, userId?: string, extra?: EventExtra<T>): Promise<void>;
|
|
74
|
-
export
|
|
75
|
-
since?: Date;
|
|
76
|
-
until?: Date;
|
|
77
|
-
user?: string | null;
|
|
78
|
-
severity?: Severity;
|
|
79
|
-
source?: string;
|
|
80
|
-
tags?: string[];
|
|
81
|
-
event?: string;
|
|
82
|
-
}
|
|
83
|
-
export declare function getEvents(filter: AuditFilter): Promise<AuditEvent[]>;
|
|
52
|
+
export declare function getEvents(filter: AuditFilter): SelectQueryBuilder<Schema, 'audit_log', AuditEvent>;
|
package/dist/audit.js
CHANGED
|
@@ -1,20 +1,10 @@
|
|
|
1
|
+
import { Severity } from '@axium/core/audit';
|
|
1
2
|
import { styleText } from 'node:util';
|
|
2
3
|
import { capitalize, omit } from 'utilium';
|
|
3
4
|
import * as z from 'zod';
|
|
4
5
|
import config from './config.js';
|
|
5
6
|
import { database } from './database.js';
|
|
6
|
-
import * as io from '
|
|
7
|
-
export var Severity;
|
|
8
|
-
(function (Severity) {
|
|
9
|
-
Severity[Severity["Emergency"] = 0] = "Emergency";
|
|
10
|
-
Severity[Severity["Alert"] = 1] = "Alert";
|
|
11
|
-
Severity[Severity["Critical"] = 2] = "Critical";
|
|
12
|
-
Severity[Severity["Error"] = 3] = "Error";
|
|
13
|
-
Severity[Severity["Warning"] = 4] = "Warning";
|
|
14
|
-
Severity[Severity["Notice"] = 5] = "Notice";
|
|
15
|
-
Severity[Severity["Info"] = 6] = "Info";
|
|
16
|
-
Severity[Severity["Debug"] = 7] = "Debug";
|
|
17
|
-
})(Severity || (Severity = {}));
|
|
7
|
+
import * as io from '@axium/core/node/io';
|
|
18
8
|
const severityFormat = {
|
|
19
9
|
[Severity.Emergency]: ['bgRedBright', 'white', 'underline'],
|
|
20
10
|
[Severity.Alert]: ['bgRedBright', 'white'],
|
|
@@ -42,7 +32,7 @@ export async function audit_raw(event) {
|
|
|
42
32
|
const result = await database.insertInto('audit_log').values(event).returningAll().executeTakeFirstOrThrow();
|
|
43
33
|
output(result);
|
|
44
34
|
}
|
|
45
|
-
const events = new Map();
|
|
35
|
+
export const events = new Map();
|
|
46
36
|
export function addEvent(init) {
|
|
47
37
|
if (events.has(init.name))
|
|
48
38
|
throw io.error(`Can not register multiple events with the same name ("${init.name}")`);
|
|
@@ -62,7 +52,7 @@ export async function audit(eventName, userId, extra) {
|
|
|
62
52
|
if (cfg.extra)
|
|
63
53
|
extra = cfg.extra.parse(extra);
|
|
64
54
|
}
|
|
65
|
-
catch
|
|
55
|
+
catch {
|
|
66
56
|
io.error('Audit event has invalid extra data: ' + eventName);
|
|
67
57
|
return;
|
|
68
58
|
}
|
|
@@ -83,7 +73,7 @@ export async function audit(eventName, userId, extra) {
|
|
|
83
73
|
.catch(() => null);
|
|
84
74
|
}
|
|
85
75
|
}
|
|
86
|
-
export
|
|
76
|
+
export function getEvents(filter) {
|
|
87
77
|
let query = database.selectFrom('audit_log').selectAll();
|
|
88
78
|
if ('user' in filter && !filter.user)
|
|
89
79
|
query = query.where('userId', 'is', null);
|
|
@@ -101,7 +91,7 @@ export async function getEvents(filter) {
|
|
|
101
91
|
query = query.where('timestamp', '>=', filter.since);
|
|
102
92
|
if (filter.until)
|
|
103
93
|
query = query.where('timestamp', '<=', filter.until);
|
|
104
|
-
return
|
|
94
|
+
return query;
|
|
105
95
|
}
|
|
106
96
|
// Register built-ins
|
|
107
97
|
addEvent({ source: '@axium/server', name: 'user_created', severity: Severity.Info, tags: ['user'] });
|
|
@@ -123,3 +113,10 @@ addEvent({
|
|
|
123
113
|
extra: { item: z.string() },
|
|
124
114
|
noAutoSuspend: true,
|
|
125
115
|
});
|
|
116
|
+
addEvent({
|
|
117
|
+
source: '@axium/server',
|
|
118
|
+
name: 'admin_api',
|
|
119
|
+
severity: Severity.Debug,
|
|
120
|
+
tags: ['auth'],
|
|
121
|
+
extra: { route: z.string(), session: z.string() },
|
|
122
|
+
});
|
package/dist/auth.d.ts
CHANGED
|
@@ -1,14 +1,7 @@
|
|
|
1
|
-
import type { Passkey, Permission, Session,
|
|
1
|
+
import type { Passkey, Permission, Session, UserInternal, Verification } from '@axium/core';
|
|
2
2
|
import type { Insertable } from 'kysely';
|
|
3
3
|
import * as acl from './acl.js';
|
|
4
4
|
import { type Schema } from './database.js';
|
|
5
|
-
import type { RequestEvent } from './requests.js';
|
|
6
|
-
export interface UserInternal extends User {
|
|
7
|
-
isAdmin: boolean;
|
|
8
|
-
isSuspended: boolean;
|
|
9
|
-
/** Tags are internal, roles are public */
|
|
10
|
-
tags: string[];
|
|
11
|
-
}
|
|
12
5
|
export declare function getUser(id: string): Promise<UserInternal>;
|
|
13
6
|
export declare function updateUser({ id, ...user }: Insertable<Schema['users']>): Promise<UserInternal>;
|
|
14
7
|
export interface SessionInternal extends Session {
|
|
@@ -33,7 +26,7 @@ export interface VerificationInternal extends Verification {
|
|
|
33
26
|
export declare function createVerification(role: VerificationRole, userId: string, expires: number): Promise<VerificationInternal>;
|
|
34
27
|
export declare function useVerification(role: VerificationRole, userId: string, token: string): Promise<VerificationInternal | undefined>;
|
|
35
28
|
export interface PasskeyInternal extends Passkey {
|
|
36
|
-
publicKey: Uint8Array
|
|
29
|
+
publicKey: Uint8Array<ArrayBuffer>;
|
|
37
30
|
counter: number;
|
|
38
31
|
}
|
|
39
32
|
export declare function getPasskey(id: string): Promise<PasskeyInternal>;
|
|
@@ -44,11 +37,11 @@ export interface UserAuthResult extends SessionAndUser {
|
|
|
44
37
|
/** The user authenticating the request. */
|
|
45
38
|
accessor: UserInternal;
|
|
46
39
|
}
|
|
47
|
-
export declare function checkAuthForUser(
|
|
40
|
+
export declare function checkAuthForUser(request: Request, userId: string, sensitive?: boolean): Promise<UserAuthResult>;
|
|
48
41
|
export interface ItemAuthResult<T extends acl.Target> {
|
|
49
42
|
fromACL: boolean;
|
|
50
43
|
item: T;
|
|
51
44
|
user?: UserInternal;
|
|
52
45
|
session?: SessionInternal;
|
|
53
46
|
}
|
|
54
|
-
export declare function checkAuthForItem<const V extends acl.Target>(
|
|
47
|
+
export declare function checkAuthForItem<const V extends acl.Target>(request: Request, itemType: acl.TargetName, itemId: string, permission: Permission): Promise<ItemAuthResult<V>>;
|
package/dist/auth.js
CHANGED
|
@@ -87,8 +87,8 @@ export async function updatePasskeyCounter(id, newCounter) {
|
|
|
87
87
|
throw new Error('Passkey not found');
|
|
88
88
|
return passkey;
|
|
89
89
|
}
|
|
90
|
-
export async function checkAuthForUser(
|
|
91
|
-
const token = getToken(
|
|
90
|
+
export async function checkAuthForUser(request, userId, sensitive = false) {
|
|
91
|
+
const token = getToken(request, sensitive);
|
|
92
92
|
if (!token)
|
|
93
93
|
throw error(401, 'Missing token');
|
|
94
94
|
const session = await getSessionAndUser(token).catch(withError('Invalid or expired session', 401));
|
|
@@ -106,8 +106,8 @@ export async function checkAuthForUser(event, userId, sensitive = false) {
|
|
|
106
106
|
error(403, 'This token can not be used for sensitive actions');
|
|
107
107
|
return Object.assign(session, { accessor: session.user });
|
|
108
108
|
}
|
|
109
|
-
export async function checkAuthForItem(
|
|
110
|
-
const token = getToken(
|
|
109
|
+
export async function checkAuthForItem(request, itemType, itemId, permission) {
|
|
110
|
+
const token = getToken(request, false);
|
|
111
111
|
if (!token)
|
|
112
112
|
error(401, 'Missing token');
|
|
113
113
|
const session = await getSessionAndUser(token).catch(() => null);
|