@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/io.js
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
|
+
import * as io from '@axium/core/node/io';
|
|
1
2
|
import { Logger } from 'logzen';
|
|
2
|
-
import { exec } from 'node:child_process';
|
|
3
3
|
import * as fs from 'node:fs';
|
|
4
4
|
import { dirname, join, resolve } from 'node:path/posix';
|
|
5
|
-
import { styleText } from 'node:util';
|
|
6
5
|
import { _unique } from './state.js';
|
|
7
6
|
export const systemDir = '/etc/axium';
|
|
8
7
|
export const dirs = _unique('dirs', [systemDir]);
|
|
@@ -22,130 +21,7 @@ export const logger = new Logger({
|
|
|
22
21
|
hideWarningStack: true,
|
|
23
22
|
noGlobalConsole: true,
|
|
24
23
|
});
|
|
25
|
-
|
|
26
|
-
* @internal
|
|
27
|
-
*/
|
|
28
|
-
export const output = {
|
|
29
|
-
constructor: { name: 'Console' },
|
|
30
|
-
error(message) {
|
|
31
|
-
console.error(message.startsWith('\x1b') ? message : styleText('red', message));
|
|
32
|
-
},
|
|
33
|
-
warn(message) {
|
|
34
|
-
console.warn(message.startsWith('\x1b') ? message : styleText('yellow', message));
|
|
35
|
-
},
|
|
36
|
-
info(message) {
|
|
37
|
-
console.info(message.startsWith('\x1b') ? message : styleText('blue', message));
|
|
38
|
-
},
|
|
39
|
-
log(message) {
|
|
40
|
-
console.log(message);
|
|
41
|
-
},
|
|
42
|
-
debug(message) {
|
|
43
|
-
_debugOutput && console.debug(message.startsWith('\x1b') ? message : styleText('gray', message));
|
|
44
|
-
},
|
|
45
|
-
};
|
|
46
|
-
logger.attach(output);
|
|
47
|
-
let timeout = 1000;
|
|
48
|
-
export function setCommandTimeout(value) {
|
|
49
|
-
timeout = value;
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* Run a system command with the fancy "Example... done."
|
|
53
|
-
* @internal
|
|
54
|
-
*/
|
|
55
|
-
export async function run(message, command) {
|
|
56
|
-
let stderr;
|
|
57
|
-
try {
|
|
58
|
-
start(message);
|
|
59
|
-
const { promise, resolve, reject } = Promise.withResolvers();
|
|
60
|
-
exec(command, { timeout }, (err, stdout, _stderr) => {
|
|
61
|
-
stderr = _stderr.startsWith('ERROR:') ? _stderr.slice(6).trim() : _stderr;
|
|
62
|
-
if (err)
|
|
63
|
-
reject('[command]');
|
|
64
|
-
else
|
|
65
|
-
resolve(stdout);
|
|
66
|
-
});
|
|
67
|
-
const value = await promise;
|
|
68
|
-
done();
|
|
69
|
-
return value;
|
|
70
|
-
}
|
|
71
|
-
catch (error) {
|
|
72
|
-
throw error == '[command]'
|
|
73
|
-
? stderr?.slice(0, 100) || 'failed.'
|
|
74
|
-
: typeof error == 'object' && 'message' in error
|
|
75
|
-
? error.message
|
|
76
|
-
: error;
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
/** Yet another convenience function */
|
|
80
|
-
export function exit(message, code = 1) {
|
|
81
|
-
if (message instanceof Error)
|
|
82
|
-
message = message.message;
|
|
83
|
-
output.error(message);
|
|
84
|
-
process.exit(code);
|
|
85
|
-
}
|
|
86
|
-
export function handleError(e) {
|
|
87
|
-
if (typeof e == 'number')
|
|
88
|
-
process.exit(e);
|
|
89
|
-
else
|
|
90
|
-
exit(e);
|
|
91
|
-
}
|
|
92
|
-
let _debugOutput = false;
|
|
93
|
-
/**
|
|
94
|
-
* Enable or disable debug output.
|
|
95
|
-
*/
|
|
96
|
-
export function _setDebugOutput(enabled) {
|
|
97
|
-
_debugOutput = enabled;
|
|
98
|
-
}
|
|
99
|
-
function defaultOutput(tag, message = '') {
|
|
100
|
-
switch (tag) {
|
|
101
|
-
case 'debug':
|
|
102
|
-
_debugOutput && output.debug(message);
|
|
103
|
-
break;
|
|
104
|
-
case 'info':
|
|
105
|
-
console.log(message);
|
|
106
|
-
break;
|
|
107
|
-
case 'warn':
|
|
108
|
-
console.warn(styleText('yellow', message));
|
|
109
|
-
break;
|
|
110
|
-
case 'error':
|
|
111
|
-
console.error(styleText('red', message));
|
|
112
|
-
break;
|
|
113
|
-
case 'start':
|
|
114
|
-
process.stdout.write(message + '... ');
|
|
115
|
-
break;
|
|
116
|
-
case 'done':
|
|
117
|
-
console.log('done.');
|
|
118
|
-
break;
|
|
119
|
-
case 'plugin':
|
|
120
|
-
console.log(styleText('whiteBright', 'Running plugin: ' + message));
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
let _taggedOutput = defaultOutput;
|
|
124
|
-
export function useTaggedOutput(output) {
|
|
125
|
-
_taggedOutput = output;
|
|
126
|
-
}
|
|
127
|
-
// Shortcuts for tagged output
|
|
128
|
-
export function done() {
|
|
129
|
-
_taggedOutput?.('done');
|
|
130
|
-
}
|
|
131
|
-
export function start(message) {
|
|
132
|
-
_taggedOutput?.('start', message);
|
|
133
|
-
}
|
|
134
|
-
export function plugin(name) {
|
|
135
|
-
_taggedOutput?.('plugin', name);
|
|
136
|
-
}
|
|
137
|
-
export function debug(message) {
|
|
138
|
-
_taggedOutput?.('debug', message);
|
|
139
|
-
}
|
|
140
|
-
export function info(message) {
|
|
141
|
-
_taggedOutput?.('info', message);
|
|
142
|
-
}
|
|
143
|
-
export function warn(message) {
|
|
144
|
-
_taggedOutput?.('warn', message);
|
|
145
|
-
}
|
|
146
|
-
export function error(message) {
|
|
147
|
-
_taggedOutput?.('error', message);
|
|
148
|
-
}
|
|
24
|
+
logger.attach(io);
|
|
149
25
|
/** @internal */
|
|
150
26
|
export const _portMethods = ['node-cap'];
|
|
151
27
|
/** @internal */
|
|
@@ -156,72 +32,48 @@ export const _portActions = ['enable', 'disable'];
|
|
|
156
32
|
* If the origin has a port, passkeys do not work correctly with some password managers.
|
|
157
33
|
*/
|
|
158
34
|
export async function restrictedPorts(opt) {
|
|
159
|
-
start('Checking for root privileges');
|
|
35
|
+
io.start('Checking for root privileges');
|
|
160
36
|
if (process.getuid?.() != 0)
|
|
161
37
|
throw 'root privileges are needed to change restricted ports.';
|
|
162
|
-
done();
|
|
163
|
-
start('Checking ports method');
|
|
38
|
+
io.done();
|
|
39
|
+
io.start('Checking ports method');
|
|
164
40
|
if (!_portMethods.includes(opt.method))
|
|
165
41
|
throw 'invalid';
|
|
166
|
-
done();
|
|
167
|
-
start('Checking ports action');
|
|
42
|
+
io.done();
|
|
43
|
+
io.start('Checking ports action');
|
|
168
44
|
if (!_portActions.includes(opt.action))
|
|
169
45
|
throw 'invalid';
|
|
170
|
-
done();
|
|
46
|
+
io.done();
|
|
171
47
|
switch (opt.method) {
|
|
172
48
|
case 'node-cap': {
|
|
173
|
-
const setcap = await
|
|
49
|
+
const setcap = await io
|
|
50
|
+
.run('Finding setcap', 'command -v setcap')
|
|
174
51
|
.then(e => e.trim())
|
|
175
52
|
.catch(() => {
|
|
176
|
-
warn('not in path.');
|
|
177
|
-
start('Checking for /usr/sbin/setcap');
|
|
53
|
+
io.warn('not in path.');
|
|
54
|
+
io.start('Checking for /usr/sbin/setcap');
|
|
178
55
|
fs.accessSync('/usr/sbin/setcap', fs.constants.X_OK);
|
|
179
|
-
done();
|
|
56
|
+
io.done();
|
|
180
57
|
return '/usr/sbin/setcap';
|
|
181
58
|
});
|
|
182
|
-
debug('Using setcap at ' + setcap);
|
|
59
|
+
io.debug('Using setcap at ' + setcap);
|
|
183
60
|
let { node } = opt;
|
|
184
|
-
node ||= await
|
|
61
|
+
node ||= await io
|
|
62
|
+
.run('Finding node', 'command -v node')
|
|
185
63
|
.then(e => e.trim())
|
|
186
64
|
.catch(() => {
|
|
187
|
-
warn('not in path.');
|
|
188
|
-
start('Checking for /usr/bin/node');
|
|
65
|
+
io.warn('not in path.');
|
|
66
|
+
io.start('Checking for /usr/bin/node');
|
|
189
67
|
fs.accessSync('/usr/bin/node', fs.constants.X_OK);
|
|
190
|
-
done();
|
|
68
|
+
io.done();
|
|
191
69
|
return '/usr/bin/node';
|
|
192
70
|
});
|
|
193
|
-
start('Resolving real path for node');
|
|
71
|
+
io.start('Resolving real path for node');
|
|
194
72
|
node = fs.realpathSync(node);
|
|
195
|
-
done();
|
|
196
|
-
debug('Using node at ' + node);
|
|
197
|
-
await run('Setting ports capability', `${setcap} cap_net_bind_service=${opt.action == 'enable' ? '+' : '-'}ep ${node}`);
|
|
73
|
+
io.done();
|
|
74
|
+
io.debug('Using node at ' + node);
|
|
75
|
+
await io.run('Setting ports capability', `${setcap} cap_net_bind_service=${opt.action == 'enable' ? '+' : '-'}ep ${node}`);
|
|
198
76
|
break;
|
|
199
77
|
}
|
|
200
78
|
}
|
|
201
79
|
}
|
|
202
|
-
/**
|
|
203
|
-
* This is a factory for handling errors when performing operations.
|
|
204
|
-
* The handler will allow the parent scope to continue if a relation already exists,
|
|
205
|
-
* rather than fatally exiting.
|
|
206
|
-
*/
|
|
207
|
-
export function someWarnings(...allowList) {
|
|
208
|
-
return (error) => {
|
|
209
|
-
error = typeof error == 'object' && 'message' in error ? error.message : error;
|
|
210
|
-
for (const [pattern, message = error] of allowList) {
|
|
211
|
-
if (!pattern.test(error))
|
|
212
|
-
continue;
|
|
213
|
-
warn(message);
|
|
214
|
-
return;
|
|
215
|
-
}
|
|
216
|
-
throw error;
|
|
217
|
-
};
|
|
218
|
-
}
|
|
219
|
-
const months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
|
|
220
|
-
// Shortcut to convert to 2-digit. Mostly used to make the line shorter.
|
|
221
|
-
const _2 = (v) => v.toString().padStart(2, '0');
|
|
222
|
-
/**
|
|
223
|
-
* Get a human-readable string for a date that also fits into CLIs well (fixed-width)
|
|
224
|
-
*/
|
|
225
|
-
export function prettyDate(date) {
|
|
226
|
-
return `${date.getFullYear()} ${months[date.getMonth()]} ${_2(date.getDate())} ${_2(date.getHours())}:${_2(date.getMinutes())}:${_2(date.getSeconds())}.${date.getMilliseconds().toString().padStart(3, '0')}`;
|
|
227
|
-
}
|
package/dist/linking.d.ts
CHANGED
package/dist/linking.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
+
import * as io from '@axium/core/node/io';
|
|
2
|
+
import { plugins } from '@axium/core/plugins';
|
|
1
3
|
import { existsSync, symlinkSync, unlinkSync } from 'node:fs';
|
|
2
4
|
import { join, resolve } from 'node:path/posix';
|
|
3
5
|
import config from './config.js';
|
|
4
|
-
import * as io from './io.js';
|
|
5
|
-
import { plugins } from './plugins.js';
|
|
6
6
|
const textFor = {
|
|
7
7
|
builtin: 'built-in routes',
|
|
8
8
|
};
|
|
@@ -11,21 +11,18 @@ function info(id) {
|
|
|
11
11
|
const link = join(config.web.routes, `(${id.startsWith('#') ? id.slice(1) : id.replaceAll('/', '__')})`);
|
|
12
12
|
return [text, link];
|
|
13
13
|
}
|
|
14
|
-
const defaultPackagesDir = join(import.meta.dirname, '../../..');
|
|
15
14
|
export function* listRouteLinks(options = {}) {
|
|
16
|
-
const packagesDir = options.packagesDir || defaultPackagesDir;
|
|
17
|
-
io.debug('Using packages from ' + packagesDir);
|
|
18
15
|
if (!options.only) {
|
|
19
16
|
const [text, link] = info('#builtin');
|
|
20
17
|
yield { text, id: '#builtin', from: link, to: resolve(import.meta.dirname, '../routes') };
|
|
21
18
|
}
|
|
22
|
-
for (const plugin of plugins) {
|
|
23
|
-
if (!plugin.routes)
|
|
19
|
+
for (const plugin of plugins.values()) {
|
|
20
|
+
if (!plugin.server?.routes)
|
|
24
21
|
continue;
|
|
25
22
|
if (options.only && !options.only.includes(plugin.name))
|
|
26
23
|
continue;
|
|
27
24
|
const [text, link] = info(plugin.name);
|
|
28
|
-
const to = resolve(join(
|
|
25
|
+
const to = resolve(join(plugin.dirname, plugin.server.routes));
|
|
29
26
|
yield { text, id: plugin.name, from: link, to };
|
|
30
27
|
}
|
|
31
28
|
}
|
package/dist/requests.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { User, UserInternal } from '@axium/core';
|
|
2
2
|
import * as z from 'zod';
|
|
3
|
-
import { type UserInternal } from './auth.js';
|
|
4
3
|
import type { ServerRoute } from './routes.js';
|
|
5
4
|
/**
|
|
6
5
|
* @todo Add parsing for Node.js `IncomingMessage` -> standard `Request` and standard `Response` -> Node.js `ServerResponse`
|
|
7
6
|
*/
|
|
8
7
|
/**
|
|
9
8
|
* A `Request` with some commonly used stuff pre-parsed for convenience.
|
|
9
|
+
* @deprecated
|
|
10
10
|
*/
|
|
11
11
|
export interface RequestEvent<Params extends Partial<Record<string, string>> = Partial<Record<string, string>>> {
|
|
12
12
|
request: Request;
|
|
@@ -32,12 +32,16 @@ export declare function isRedirect(e: unknown): e is Redirect;
|
|
|
32
32
|
*/
|
|
33
33
|
export declare function redirect(location: string, status?: number): never;
|
|
34
34
|
export declare function json(data: object, init?: ResponseInit): Response;
|
|
35
|
-
export declare function parseBody<const Schema extends z.ZodType, const Result extends z.infer<Schema> = z.infer<Schema>>(
|
|
36
|
-
export declare function getToken(
|
|
37
|
-
export
|
|
35
|
+
export declare function parseBody<const Schema extends z.ZodType, const Result extends z.infer<Schema> = z.infer<Schema>>(request: Request, schema: Schema): Promise<Result>;
|
|
36
|
+
export declare function getToken(request: Request, sensitive?: boolean): string | undefined;
|
|
37
|
+
export interface CreateSessionOptions {
|
|
38
|
+
elevated?: boolean;
|
|
39
|
+
noCookie?: boolean;
|
|
40
|
+
}
|
|
41
|
+
export declare function createSessionData(userId: string, { elevated, noCookie }?: CreateSessionOptions): Promise<Response>;
|
|
38
42
|
export declare function stripUser(user: UserInternal, includeProtected?: boolean): User;
|
|
39
43
|
export declare function withError(text: string, code?: number): (e: Error | ResponseError) => never;
|
|
40
|
-
export declare function handleAPIRequest(
|
|
44
|
+
export declare function handleAPIRequest(request: Request, params: Record<string, any>, route: ServerRoute): Promise<Response>;
|
|
41
45
|
export declare function handleResponseError(e: Error | ResponseError | Redirect): Response;
|
|
42
46
|
export declare const noCacheHeaders: {
|
|
43
47
|
'Content-Type': string;
|
package/dist/requests.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { userProtectedFields, userPublicFields } from '@axium/core/user';
|
|
2
|
-
import
|
|
2
|
+
import * as cookie from 'cookie_v1';
|
|
3
3
|
import { pick } from 'utilium';
|
|
4
4
|
import * as z from 'zod';
|
|
5
5
|
import { createSession } from './auth.js';
|
|
@@ -29,11 +29,11 @@ export function json(data, init) {
|
|
|
29
29
|
}
|
|
30
30
|
return response;
|
|
31
31
|
}
|
|
32
|
-
export async function parseBody(
|
|
33
|
-
const contentType =
|
|
32
|
+
export async function parseBody(request, schema) {
|
|
33
|
+
const contentType = request.headers.get('content-type');
|
|
34
34
|
if (!contentType || !contentType.includes('application/json'))
|
|
35
35
|
error(415, 'Invalid content type');
|
|
36
|
-
const body = await
|
|
36
|
+
const body = await request.json().catch(() => error(415, 'Invalid JSON'));
|
|
37
37
|
try {
|
|
38
38
|
return schema.parse(body);
|
|
39
39
|
}
|
|
@@ -41,18 +41,20 @@ export async function parseBody(event, schema) {
|
|
|
41
41
|
error(400, e instanceof z.core.$ZodError ? z.prettifyError(e) : 'invalid body');
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
|
-
export function getToken(
|
|
45
|
-
const header_token =
|
|
44
|
+
export function getToken(request, sensitive = false) {
|
|
45
|
+
const header_token = request.headers.get('Authorization')?.replace('Bearer ', '');
|
|
46
46
|
if (header_token)
|
|
47
47
|
return header_token;
|
|
48
48
|
if (config.debug || !config.auth.header_only) {
|
|
49
|
-
return
|
|
49
|
+
return cookie.parse(request.headers.get('cookie') || '')[sensitive ? 'elevated_token' : 'session_token'];
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
|
-
export async function createSessionData(userId, elevated = false) {
|
|
52
|
+
export async function createSessionData(userId, { elevated = false, noCookie } = {}) {
|
|
53
53
|
const { token, expires } = await createSession(userId, elevated);
|
|
54
54
|
const response = json({ userId, token: elevated ? '[[redacted:elevated]]' : token }, { status: 201 });
|
|
55
|
-
|
|
55
|
+
if (noCookie)
|
|
56
|
+
return response;
|
|
57
|
+
const cookies = cookie.serialize(elevated ? 'elevated_token' : 'session_token', token, {
|
|
56
58
|
httpOnly: true,
|
|
57
59
|
path: '/',
|
|
58
60
|
expires,
|
|
@@ -72,18 +74,18 @@ export function withError(text, code = 500) {
|
|
|
72
74
|
error(code, text + (config.debug && e.message ? `: ${e.message}` : ''));
|
|
73
75
|
};
|
|
74
76
|
}
|
|
75
|
-
export async function handleAPIRequest(
|
|
76
|
-
const method =
|
|
77
|
+
export async function handleAPIRequest(request, params, route) {
|
|
78
|
+
const method = request.method;
|
|
77
79
|
const _warnings = [];
|
|
78
|
-
if (route.api && !
|
|
80
|
+
if (route.api && !request.headers.get('Accept')?.includes('application/json')) {
|
|
79
81
|
_warnings.push('Only application/json is supported');
|
|
80
|
-
|
|
82
|
+
request.headers.set('Accept', 'application/json');
|
|
81
83
|
}
|
|
82
84
|
for (const [key, type] of Object.entries(route.params || {})) {
|
|
83
85
|
if (!type)
|
|
84
86
|
continue;
|
|
85
87
|
try {
|
|
86
|
-
|
|
88
|
+
params[key] = type.parse(params[key]);
|
|
87
89
|
}
|
|
88
90
|
catch (e) {
|
|
89
91
|
error(400, `Invalid parameter: ${e instanceof z.core.$ZodError ? z.prettifyError(e) : '<unknown error>'}`);
|
|
@@ -91,7 +93,7 @@ export async function handleAPIRequest(event, route) {
|
|
|
91
93
|
}
|
|
92
94
|
if (typeof route[method] != 'function')
|
|
93
95
|
error(405, `Method ${method} not allowed for ${route.path}`);
|
|
94
|
-
const result = await route[method](
|
|
96
|
+
const result = await route[method].call(route, request, params);
|
|
95
97
|
if (result instanceof Response)
|
|
96
98
|
return result;
|
|
97
99
|
if (typeof result == 'object' || typeof result == 'function') {
|
package/dist/routes.d.ts
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import type { RequestMethod } from '@axium/core/requests';
|
|
2
2
|
import type { Component } from 'svelte';
|
|
3
3
|
import type z from 'zod';
|
|
4
|
-
import type { RequestEvent } from './requests.js';
|
|
5
4
|
type _Params = Partial<Record<string, string>>;
|
|
6
|
-
type MaybePromise<T> = T | Promise<T>;
|
|
7
|
-
export type EndpointHandlers<Params extends _Params = _Params> = Partial<Record<RequestMethod, (
|
|
5
|
+
export type MaybePromise<T> = T | Promise<T>;
|
|
6
|
+
export type EndpointHandlers<Params extends _Params = _Params, This = unknown> = Partial<Record<RequestMethod, (this: This, request: Request, params: Params) => MaybePromise<object | Response>>>;
|
|
8
7
|
export type RouteParamOptions = z.ZodType;
|
|
9
8
|
export interface CommonRouteOptions<Params extends _Params = _Params> {
|
|
10
9
|
path: string;
|
|
@@ -15,11 +14,11 @@ export interface CommonRouteOptions<Params extends _Params = _Params> {
|
|
|
15
14
|
/**
|
|
16
15
|
* A route with server-side handlers for different HTTP methods.
|
|
17
16
|
*/
|
|
18
|
-
export interface ServerRouteOptions<Params extends _Params = _Params> extends CommonRouteOptions<Params>, EndpointHandlers<Params> {
|
|
17
|
+
export interface ServerRouteOptions<Params extends _Params = _Params> extends CommonRouteOptions<Params>, EndpointHandlers<Params, RouteCommon> {
|
|
19
18
|
api?: boolean;
|
|
20
19
|
}
|
|
21
20
|
export interface WebRouteOptions extends CommonRouteOptions {
|
|
22
|
-
load?(
|
|
21
|
+
load?(request: Request): object | Promise<object>;
|
|
23
22
|
/** the Svelte page */
|
|
24
23
|
page?: Component;
|
|
25
24
|
}
|
|
@@ -34,7 +33,7 @@ export interface ServerRoute extends RouteCommon, EndpointHandlers {
|
|
|
34
33
|
}
|
|
35
34
|
export interface WebRoute extends RouteCommon {
|
|
36
35
|
server: false;
|
|
37
|
-
load?(
|
|
36
|
+
load?(request: Request): object | Promise<object>;
|
|
38
37
|
page: Component;
|
|
39
38
|
}
|
|
40
39
|
export type Route = ServerRoute | WebRoute;
|
|
@@ -50,8 +49,5 @@ export declare function addRoute(opt: RouteOptions): void;
|
|
|
50
49
|
* Resolve a request URL into a route.
|
|
51
50
|
* This handles parsing of parameters in the URL.
|
|
52
51
|
*/
|
|
53
|
-
export declare function resolveRoute(
|
|
54
|
-
url: URL;
|
|
55
|
-
params?: object;
|
|
56
|
-
}): Route | undefined;
|
|
52
|
+
export declare function resolveRoute(url: URL): [Route, params: object] | void;
|
|
57
53
|
export {};
|
package/dist/routes.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { apps } from '
|
|
1
|
+
import { apps } from '@axium/core';
|
|
2
|
+
import { debug } from '@axium/core/node/io';
|
|
2
3
|
import config from './config.js';
|
|
3
|
-
import { output } from './io.js';
|
|
4
4
|
import { _unique } from './state.js';
|
|
5
5
|
/**
|
|
6
6
|
* @internal
|
|
@@ -19,16 +19,16 @@ export function addRoute(opt) {
|
|
|
19
19
|
if (route.api && !route.server)
|
|
20
20
|
throw new Error(`API routes cannot have a client page: ${route.path}`);
|
|
21
21
|
routes.set(route.path, route);
|
|
22
|
-
|
|
22
|
+
debug('Added route: ' + route.path);
|
|
23
23
|
}
|
|
24
24
|
/**
|
|
25
25
|
* Resolve a request URL into a route.
|
|
26
26
|
* This handles parsing of parameters in the URL.
|
|
27
27
|
*/
|
|
28
|
-
export function resolveRoute(
|
|
29
|
-
const { pathname } =
|
|
28
|
+
export function resolveRoute(url) {
|
|
29
|
+
const { pathname } = url;
|
|
30
30
|
if (routes.has(pathname) && !pathname.split('/').some(p => p.startsWith(':')))
|
|
31
|
-
return routes.get(pathname);
|
|
31
|
+
return [routes.get(pathname), {}];
|
|
32
32
|
// Otherwise we must have a parameterized route
|
|
33
33
|
_routes: for (const route of routes.values()) {
|
|
34
34
|
const params = {};
|
|
@@ -50,7 +50,6 @@ export function resolveRoute(event) {
|
|
|
50
50
|
// we didn't find a match, since an exact match would have been found already
|
|
51
51
|
if (pathParts.length || !Object.keys(params).length)
|
|
52
52
|
continue;
|
|
53
|
-
|
|
54
|
-
return route;
|
|
53
|
+
return [route, params];
|
|
55
54
|
}
|
|
56
55
|
}
|
package/dist/serve.d.ts
CHANGED
|
@@ -1,12 +1,17 @@
|
|
|
1
|
-
import type { Server } from 'node:http';
|
|
2
1
|
import '@axium/server/api/index';
|
|
2
|
+
import type { Server } from 'node:http';
|
|
3
|
+
export declare const appDisabledContent: {
|
|
4
|
+
head: string;
|
|
5
|
+
body: string;
|
|
6
|
+
};
|
|
3
7
|
export interface ServeOptions {
|
|
4
8
|
secure: boolean;
|
|
5
9
|
ssl_key: string;
|
|
6
10
|
ssl_cert: string;
|
|
7
11
|
build: string;
|
|
12
|
+
multiBuild: boolean;
|
|
8
13
|
}
|
|
9
|
-
export declare function
|
|
14
|
+
export declare function serve(opt: Partial<ServeOptions>): Promise<Server>;
|
|
10
15
|
/**
|
|
11
16
|
* Perform initial setup for when the server is serving web pages.
|
|
12
17
|
*/
|