@axium/server 0.25.0 → 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/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/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/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 +21 -0
- package/build/client/styles.css.br +0 -0
- package/build/client/styles.css.gz +0 -0
- package/build/server/chunks/{0-CZBaNtSI.js → 0-CNbALTKz.js} +2 -2
- 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-B1CwnVF_.js → 3-DNQft-pY.js} +2 -2
- package/build/server/chunks/{3-B1CwnVF_.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-CG7XnWX5.js → Icon-BVo9qbDf.js} +2 -2
- package/build/server/chunks/{Icon-CG7XnWX5.js.map → Icon-BVo9qbDf.js.map} +1 -1
- package/build/server/chunks/{Logout-BwzK1P29.js → Logout-CmBZgu0j.js} +4 -3
- package/build/server/chunks/{Logout-BwzK1P29.js.map → Logout-CmBZgu0j.js.map} +1 -1
- package/build/server/chunks/{_layout.svelte-9KMUotip.js → _layout.svelte-DuS006VZ.js} +6 -4
- 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-Bou2_u6i.js.map → _page.svelte-BFVobcI7.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-rrN2zFNa.js → _page.svelte-B_cvhWJS.js} +4 -4
- package/build/server/chunks/_page.svelte-B_cvhWJS.js.map +1 -0
- package/build/server/chunks/{_page.svelte-BD3HmLo_.js → _page.svelte-BriaBR9l.js} +3 -3
- package/build/server/chunks/_page.svelte-BriaBR9l.js.map +1 -0
- package/build/server/chunks/{_page.svelte-CAzWL4aq.js → _page.svelte-BtQQzT7H.js} +12 -6
- package/build/server/chunks/_page.svelte-BtQQzT7H.js.map +1 -0
- package/build/server/chunks/{_page.svelte-BIxxuzff.js → _page.svelte-C8D3c3yB.js} +4 -4
- package/build/server/chunks/_page.svelte-C8D3c3yB.js.map +1 -0
- package/build/server/chunks/{_page.svelte-cAsZlwLs.js → _page.svelte-CVSb9eHQ.js} +4 -4
- package/build/server/chunks/_page.svelte-CVSb9eHQ.js.map +1 -0
- package/build/server/chunks/{_page.svelte-BFzPdJ6z.js → _page.svelte-CwRjZqL7.js} +9 -7
- package/build/server/chunks/_page.svelte-CwRjZqL7.js.map +1 -0
- package/build/server/chunks/{_page.svelte-DgyZKeaF.js → _page.svelte-D9A9RYjx.js} +10 -8
- 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-Ci5V-DhL.js → _page.svelte-DTvnX95_.js} +10 -7
- package/build/server/chunks/_page.svelte-DTvnX95_.js.map +1 -0
- package/build/server/chunks/{_page.svelte-C25oQ2NT.js → _page.svelte-DUfwpXfC.js} +51 -9
- package/build/server/chunks/_page.svelte-DUfwpXfC.js.map +1 -0
- package/build/server/chunks/{_page.svelte-CnfRSJsl.js → _page.svelte-DxDoD3rZ.js} +3 -3
- package/build/server/chunks/_page.svelte-DxDoD3rZ.js.map +1 -0
- package/build/server/chunks/{account-BZSP6KBP.js → account-Bf_llRe2.js} +6 -5
- package/build/server/chunks/{account-BZSP6KBP.js.map → account-Bf_llRe2.js.map} +1 -1
- 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/{error.svelte-DTrQqomO.js → error.svelte-CkSCwrMJ.js} +2 -2
- package/build/server/chunks/error.svelte-CkSCwrMJ.js.map +1 -0
- package/build/server/chunks/{index-DJrm8BZm.js → index-CIEcmmdN.js} +57 -11
- package/build/server/chunks/index-CIEcmmdN.js.map +1 -0
- package/build/server/chunks/{index-eKiDBuyI.js → index-Tt4zVDIZ.js} +25 -8
- package/build/server/chunks/index-Tt4zVDIZ.js.map +1 -0
- package/build/server/chunks/{user2-Coq3Frtw.js → user2-CRfK67II.js} +9 -102
- package/build/server/chunks/user2-CRfK67II.js.map +1 -0
- package/build/server/chunks/{utils-DlBYhQz7.js → utils-h74ns7K6.js} +1 -2
- package/build/server/chunks/utils-h74ns7K6.js.map +1 -0
- package/build/server/index.js +573 -202
- package/build/server/index.js.map +1 -1
- package/build/server/manifest.js +26 -18
- package/build/server/manifest.js.map +1 -1
- package/dist/acl.js +1 -1
- package/dist/api/admin.js +20 -3
- package/dist/api/metadata.js +3 -3
- package/dist/api/users.js +4 -1
- package/dist/audit.d.ts +1 -0
- package/dist/audit.js +3 -3
- package/dist/cli.js +511 -541
- package/dist/config.d.ts +6 -6
- package/dist/config.js +25 -13
- package/dist/database.js +7 -6
- package/dist/io.d.ts +0 -50
- package/dist/io.js +23 -171
- package/dist/linking.js +4 -4
- package/dist/requests.d.ts +5 -1
- package/dist/requests.js +4 -2
- package/dist/routes.js +3 -3
- package/dist/serve.d.ts +4 -0
- package/dist/serve.js +13 -8
- package/package.json +5 -5
- package/routes/admin/+layout.ts +2 -0
- package/routes/admin/audit/+page.svelte +23 -2
- package/routes/admin/audit/+page.ts +4 -2
- package/routes/login/client/+page.svelte +72 -0
- package/routes/login/client/+page.ts +27 -0
- package/build/client/_app/immutable/chunks/1taVrT-y.js +0 -1
- 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 +0 -23
- 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 +0 -2
- 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 +0 -1
- 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 +0 -1
- 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 +0 -1
- 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 +0 -1
- 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 +0 -1
- 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 +0 -1
- 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/CqfYW08-.js +0 -1
- 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 +0 -1
- 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/DdnE6dyJ.js +0 -2
- 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 +0 -22
- 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 +0 -1
- 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 +0 -1
- 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/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/KNAS5R2A.js +0 -3
- 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 +0 -1
- package/build/client/_app/immutable/chunks/eyJgPND9.js.br +0 -1
- package/build/client/_app/immutable/chunks/eyJgPND9.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.CPF6A_DV.js +0 -2
- 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 +0 -1
- package/build/client/_app/immutable/entry/start.Dos_Ttds.js.br +0 -2
- package/build/client/_app/immutable/entry/start.Dos_Ttds.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.C5HgTRfT.js +0 -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 +0 -1
- 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 +0 -1
- package/build/client/_app/immutable/nodes/10.ukScuXwz.js.br +0 -5
- package/build/client/_app/immutable/nodes/10.ukScuXwz.js.gz +0 -0
- package/build/client/_app/immutable/nodes/11.D3RDNx7M.js +0 -1
- 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 +0 -1
- 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 +0 -1
- 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 +0 -1
- 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 +0 -1
- 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/3.DPH7xl7M.js +0 -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 +0 -1
- 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 +0 -1
- 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 +0 -2
- 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 +0 -1
- 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 +0 -1
- 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 +0 -1
- 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/server/chunks/0-CZBaNtSI.js.map +0 -1
- package/build/server/chunks/1-D_3BtEbe.js +0 -9
- package/build/server/chunks/1-D_3BtEbe.js.map +0 -1
- package/build/server/chunks/10-CLkNMKHU.js +0 -13
- package/build/server/chunks/10-CLkNMKHU.js.map +0 -1
- package/build/server/chunks/11-5xPYR_1w.js +0 -13
- package/build/server/chunks/11-5xPYR_1w.js.map +0 -1
- package/build/server/chunks/12-N7UaQj7u.js +0 -9
- package/build/server/chunks/12-N7UaQj7u.js.map +0 -1
- package/build/server/chunks/13-QYVLpXli.js +0 -9
- package/build/server/chunks/13-QYVLpXli.js.map +0 -1
- package/build/server/chunks/14-CPY578rT.js +0 -9
- package/build/server/chunks/14-CPY578rT.js.map +0 -1
- package/build/server/chunks/2-_1jFrcvz.js +0 -13
- package/build/server/chunks/2-_1jFrcvz.js.map +0 -1
- package/build/server/chunks/4-CcxCcH4F.js +0 -13
- package/build/server/chunks/4-CcxCcH4F.js.map +0 -1
- package/build/server/chunks/5-CrlH6VoB.js +0 -13
- package/build/server/chunks/5-CrlH6VoB.js.map +0 -1
- package/build/server/chunks/6-FkP678Uz.js +0 -13
- package/build/server/chunks/6-FkP678Uz.js.map +0 -1
- package/build/server/chunks/7-B1iCe7VA.js +0 -13
- package/build/server/chunks/7-B1iCe7VA.js.map +0 -1
- package/build/server/chunks/8-p6n9G-P_.js +0 -13
- package/build/server/chunks/8-p6n9G-P_.js.map +0 -1
- package/build/server/chunks/9-fc3lKB7X.js +0 -13
- package/build/server/chunks/9-fc3lKB7X.js.map +0 -1
- package/build/server/chunks/_layout.svelte-9KMUotip.js.map +0 -1
- package/build/server/chunks/_page.svelte-BD3HmLo_.js.map +0 -1
- package/build/server/chunks/_page.svelte-BFzPdJ6z.js.map +0 -1
- package/build/server/chunks/_page.svelte-BIxxuzff.js.map +0 -1
- package/build/server/chunks/_page.svelte-Bou2_u6i.js +0 -13
- package/build/server/chunks/_page.svelte-C25oQ2NT.js.map +0 -1
- package/build/server/chunks/_page.svelte-CAzWL4aq.js.map +0 -1
- package/build/server/chunks/_page.svelte-Ci5V-DhL.js.map +0 -1
- package/build/server/chunks/_page.svelte-CnfRSJsl.js.map +0 -1
- package/build/server/chunks/_page.svelte-DgyZKeaF.js.map +0 -1
- package/build/server/chunks/_page.svelte-cAsZlwLs.js.map +0 -1
- package/build/server/chunks/_page.svelte-rrN2zFNa.js.map +0 -1
- package/build/server/chunks/error.svelte-DTrQqomO.js.map +0 -1
- package/build/server/chunks/index-DJrm8BZm.js.map +0 -1
- package/build/server/chunks/index-eKiDBuyI.js.map +0 -1
- package/build/server/chunks/user2-Coq3Frtw.js.map +0 -1
- package/build/server/chunks/utils-DlBYhQz7.js.map +0 -1
- package/dist/apps.d.ts +0 -6
- package/dist/apps.js +0 -6
- package/dist/plugins.d.ts +0 -14
- package/dist/plugins.js +0 -64
- /package/{axiumd.service → axium.service} +0 -0
package/dist/config.d.ts
CHANGED
|
@@ -9,8 +9,8 @@ export declare const ConfigSchema: z.ZodObject<{
|
|
|
9
9
|
audit: z.ZodOptional<z.ZodObject<{
|
|
10
10
|
allow_raw: z.ZodOptional<z.ZodBoolean>;
|
|
11
11
|
retention: z.ZodOptional<z.ZodNumber>;
|
|
12
|
-
min_severity: z.ZodOptional<z.ZodLiteral<"
|
|
13
|
-
auto_suspend: z.ZodOptional<z.ZodLiteral<"
|
|
12
|
+
min_severity: z.ZodOptional<z.ZodLiteral<"Emergency" | "Alert" | "Critical" | "Error" | "Warning" | "Notice" | "Info" | "Debug" | "emergency" | "alert" | "critical" | "error" | "warning" | "notice" | "info" | "debug">>;
|
|
13
|
+
auto_suspend: z.ZodOptional<z.ZodLiteral<"Emergency" | "Alert" | "Critical" | "Error" | "Warning" | "Notice" | "Info" | "Debug" | "emergency" | "alert" | "critical" | "error" | "warning" | "notice" | "info" | "debug">>;
|
|
14
14
|
}, z.core.$loose>>;
|
|
15
15
|
auth: z.ZodOptional<z.ZodObject<{
|
|
16
16
|
origin: z.ZodOptional<z.ZodString>;
|
|
@@ -34,9 +34,9 @@ export declare const ConfigSchema: z.ZodObject<{
|
|
|
34
34
|
log: z.ZodOptional<z.ZodObject<{
|
|
35
35
|
level: z.ZodOptional<z.ZodEnum<{
|
|
36
36
|
error: "error";
|
|
37
|
-
debug: "debug";
|
|
38
37
|
notice: "notice";
|
|
39
38
|
info: "info";
|
|
39
|
+
debug: "debug";
|
|
40
40
|
warn: "warn";
|
|
41
41
|
}>>;
|
|
42
42
|
console: z.ZodOptional<z.ZodBoolean>;
|
|
@@ -82,8 +82,8 @@ export declare const FileSchema: z.ZodObject<{
|
|
|
82
82
|
audit: z.ZodOptional<z.ZodOptional<z.ZodObject<{
|
|
83
83
|
allow_raw: z.ZodOptional<z.ZodBoolean>;
|
|
84
84
|
retention: z.ZodOptional<z.ZodNumber>;
|
|
85
|
-
min_severity: z.ZodOptional<z.ZodLiteral<"
|
|
86
|
-
auto_suspend: z.ZodOptional<z.ZodLiteral<"
|
|
85
|
+
min_severity: z.ZodOptional<z.ZodLiteral<"Emergency" | "Alert" | "Critical" | "Error" | "Warning" | "Notice" | "Info" | "Debug" | "emergency" | "alert" | "critical" | "error" | "warning" | "notice" | "info" | "debug">>;
|
|
86
|
+
auto_suspend: z.ZodOptional<z.ZodLiteral<"Emergency" | "Alert" | "Critical" | "Error" | "Warning" | "Notice" | "Info" | "Debug" | "emergency" | "alert" | "critical" | "error" | "warning" | "notice" | "info" | "debug">>;
|
|
87
87
|
}, z.core.$loose>>>;
|
|
88
88
|
auth: z.ZodOptional<z.ZodOptional<z.ZodObject<{
|
|
89
89
|
origin: z.ZodOptional<z.ZodString>;
|
|
@@ -107,9 +107,9 @@ export declare const FileSchema: z.ZodObject<{
|
|
|
107
107
|
log: z.ZodOptional<z.ZodOptional<z.ZodObject<{
|
|
108
108
|
level: z.ZodOptional<z.ZodEnum<{
|
|
109
109
|
error: "error";
|
|
110
|
-
debug: "debug";
|
|
111
110
|
notice: "notice";
|
|
112
111
|
info: "info";
|
|
112
|
+
debug: "debug";
|
|
113
113
|
warn: "warn";
|
|
114
114
|
}>>;
|
|
115
115
|
console: z.ZodOptional<z.ZodBoolean>;
|
package/dist/config.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
|
+
import * as io from '@axium/core/node/io';
|
|
2
|
+
import { loadPlugin } from '@axium/core/node/plugins';
|
|
1
3
|
import { levelText } from 'logzen';
|
|
2
4
|
import { existsSync, readFileSync, writeFileSync } from 'node:fs';
|
|
3
5
|
import { dirname, join, resolve } from 'node:path/posix';
|
|
4
6
|
import { capitalize, deepAssign, omit } from 'utilium';
|
|
5
7
|
import * as z from 'zod';
|
|
6
|
-
import {
|
|
7
|
-
import { loadPlugin } from './plugins.js';
|
|
8
|
+
import { dirs, logger, systemDir } from './io.js';
|
|
8
9
|
import { _duplicateStateWarnings, _unique } from './state.js';
|
|
9
10
|
const audit_severity_levels = ['emergency', 'alert', 'critical', 'error', 'warning', 'notice', 'info', 'debug'];
|
|
10
11
|
const z_audit_severity = z.literal([...audit_severity_levels, ...audit_severity_levels.map(capitalize)]);
|
|
@@ -152,8 +153,8 @@ export default config;
|
|
|
152
153
|
export const FileSchema = z
|
|
153
154
|
.looseObject({
|
|
154
155
|
...ConfigSchema.shape,
|
|
155
|
-
include: z.
|
|
156
|
-
plugins: z.
|
|
156
|
+
include: z.string().array(),
|
|
157
|
+
plugins: z.string().array(),
|
|
157
158
|
})
|
|
158
159
|
.partial();
|
|
159
160
|
export function addConfigDefaults(other, _target = config, _noDefault = false) {
|
|
@@ -174,10 +175,10 @@ export function addConfigDefaults(other, _target = config, _noDefault = false) {
|
|
|
174
175
|
*/
|
|
175
176
|
export function setConfig(other) {
|
|
176
177
|
deepAssign(config, other);
|
|
177
|
-
logger.detach(
|
|
178
|
+
logger.detach(io);
|
|
178
179
|
if (config.log.console)
|
|
179
|
-
logger.attach(
|
|
180
|
-
_setDebugOutput(config.debug);
|
|
180
|
+
logger.attach(io, { output: config.log.level });
|
|
181
|
+
io._setDebugOutput(config.debug);
|
|
181
182
|
_duplicateStateWarnings(config.show_duplicate_state);
|
|
182
183
|
}
|
|
183
184
|
const kWasIncluded = Symbol.for('_wasIncluded');
|
|
@@ -192,9 +193,20 @@ export async function loadConfig(path, options = {}) {
|
|
|
192
193
|
json = JSON.parse(readFileSync(path, 'utf8'));
|
|
193
194
|
}
|
|
194
195
|
catch (e) {
|
|
196
|
+
if (path == join(systemDir, 'config.json') && 'code' in e && e.code === 'ENOENT') {
|
|
197
|
+
try {
|
|
198
|
+
writeFileSync(path, '{}');
|
|
199
|
+
}
|
|
200
|
+
catch {
|
|
201
|
+
io.warn('Failed to create the main configuration file (/etc/axium/config.json): ' + e.message);
|
|
202
|
+
return;
|
|
203
|
+
}
|
|
204
|
+
io.debug('Created main configuration file (fresh install?)');
|
|
205
|
+
return;
|
|
206
|
+
}
|
|
195
207
|
if (!options.optional)
|
|
196
208
|
throw e;
|
|
197
|
-
|
|
209
|
+
io.debug(`Skipping config at ${path} (${e.message})`);
|
|
198
210
|
return;
|
|
199
211
|
}
|
|
200
212
|
let file;
|
|
@@ -204,16 +216,16 @@ export async function loadConfig(path, options = {}) {
|
|
|
204
216
|
catch (e) {
|
|
205
217
|
if (!options.loose)
|
|
206
218
|
throw e;
|
|
207
|
-
|
|
219
|
+
io.debug(`Loading invalid config from ${path} (${e.message})`);
|
|
208
220
|
file = json;
|
|
209
221
|
}
|
|
210
222
|
configFiles.set(path, { ...file, [kWasIncluded]: !!options._markIncluded });
|
|
211
223
|
setConfig(file);
|
|
212
|
-
|
|
224
|
+
io.debug('Loaded config: ' + path);
|
|
213
225
|
for (const include of file.include ?? [])
|
|
214
226
|
await loadConfig(resolve(dirname(path), include), { ...options, optional: true, _markIncluded: true });
|
|
215
227
|
for (const plugin of file.plugins ?? [])
|
|
216
|
-
await loadPlugin(plugin, path, options.safe);
|
|
228
|
+
await loadPlugin('server', plugin, path, options.safe);
|
|
217
229
|
}
|
|
218
230
|
export async function loadDefaultConfigs(safe = false) {
|
|
219
231
|
for (const path of findConfigPaths()) {
|
|
@@ -237,7 +249,7 @@ export async function reloadConfigs(safe = false) {
|
|
|
237
249
|
setConfig(defaultConfig);
|
|
238
250
|
for (const path of paths)
|
|
239
251
|
await loadConfig(path, { safe });
|
|
240
|
-
|
|
252
|
+
io.info('Reloaded configuration files');
|
|
241
253
|
}
|
|
242
254
|
/**
|
|
243
255
|
* Update the current config and write the updated config to the appropriate file
|
|
@@ -252,7 +264,7 @@ export function saveConfigTo(path, changed) {
|
|
|
252
264
|
setConfig(changed);
|
|
253
265
|
const config = configFiles.get(path) ?? {};
|
|
254
266
|
Object.assign(config, { ...changed, db: { ...config.db, ...changed.db } });
|
|
255
|
-
|
|
267
|
+
io.debug(`Wrote config to ${path}`);
|
|
256
268
|
writeFileSync(path, JSON.stringify(config));
|
|
257
269
|
}
|
|
258
270
|
/**
|
package/dist/database.js
CHANGED
|
@@ -50,14 +50,15 @@ var __disposeResources = (this && this.__disposeResources) || (function (Suppres
|
|
|
50
50
|
var e = new Error(message);
|
|
51
51
|
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
52
52
|
});
|
|
53
|
+
import * as io from '@axium/core/node/io';
|
|
54
|
+
import { plugins } from '@axium/core/plugins';
|
|
53
55
|
import { Kysely, PostgresDialect, sql } from 'kysely';
|
|
54
56
|
import { jsonObjectFrom } from 'kysely/helpers/postgres';
|
|
55
57
|
import { randomBytes } from 'node:crypto';
|
|
56
58
|
import { readFileSync, writeFileSync } from 'node:fs';
|
|
57
59
|
import pg from 'pg';
|
|
58
60
|
import config from './config.js';
|
|
59
|
-
import
|
|
60
|
-
import { plugins } from './plugins.js';
|
|
61
|
+
import { styleText } from 'node:util';
|
|
61
62
|
const sym = Symbol.for('Axium:database');
|
|
62
63
|
export let database;
|
|
63
64
|
export function connect() {
|
|
@@ -280,7 +281,7 @@ export async function init(opt) {
|
|
|
280
281
|
for (const plugin of plugins.values()) {
|
|
281
282
|
if (!plugin._hooks?.db_init)
|
|
282
283
|
continue;
|
|
283
|
-
io.
|
|
284
|
+
io.log(styleText('whiteBright', 'Running plugin: '), plugin.name);
|
|
284
285
|
await plugin._hooks?.db_init(opt);
|
|
285
286
|
}
|
|
286
287
|
}
|
|
@@ -435,7 +436,7 @@ export async function clean(opt) {
|
|
|
435
436
|
for (const plugin of plugins.values()) {
|
|
436
437
|
if (!plugin._hooks?.clean)
|
|
437
438
|
continue;
|
|
438
|
-
io.
|
|
439
|
+
io.log(styleText('whiteBright', 'Running plugin: '), plugin.name);
|
|
439
440
|
await plugin._hooks?.clean(opt);
|
|
440
441
|
}
|
|
441
442
|
}
|
|
@@ -446,7 +447,7 @@ export async function uninstall(opt) {
|
|
|
446
447
|
for (const plugin of plugins.values()) {
|
|
447
448
|
if (!plugin._hooks?.remove)
|
|
448
449
|
continue;
|
|
449
|
-
io.
|
|
450
|
+
io.log(styleText('whiteBright', 'Running plugin: '), plugin.name);
|
|
450
451
|
await plugin._hooks?.remove(opt);
|
|
451
452
|
}
|
|
452
453
|
await _sql('DROP DATABASE axium', 'Dropping database');
|
|
@@ -472,7 +473,7 @@ export async function wipe(opt) {
|
|
|
472
473
|
for (const plugin of plugins.values()) {
|
|
473
474
|
if (!plugin._hooks?.db_wipe)
|
|
474
475
|
continue;
|
|
475
|
-
io.
|
|
476
|
+
io.log(styleText('whiteBright', 'Running plugin: '), plugin.name);
|
|
476
477
|
await plugin._hooks?.db_wipe(opt);
|
|
477
478
|
}
|
|
478
479
|
for (const table of ['users', 'passkeys', 'sessions', 'verifications']) {
|
package/dist/io.d.ts
CHANGED
|
@@ -2,46 +2,6 @@ import { Logger } from 'logzen';
|
|
|
2
2
|
export declare const systemDir = "/etc/axium";
|
|
3
3
|
export declare const dirs: string[];
|
|
4
4
|
export declare const logger: Logger;
|
|
5
|
-
/**
|
|
6
|
-
* @internal
|
|
7
|
-
*/
|
|
8
|
-
export declare const output: {
|
|
9
|
-
constructor: {
|
|
10
|
-
name: string;
|
|
11
|
-
};
|
|
12
|
-
error(message: string): void;
|
|
13
|
-
warn(message: string): void;
|
|
14
|
-
info(message: string): void;
|
|
15
|
-
log(message: string): void;
|
|
16
|
-
debug(message: string): void;
|
|
17
|
-
};
|
|
18
|
-
export declare function setCommandTimeout(value: number): void;
|
|
19
|
-
/**
|
|
20
|
-
* Run a system command with the fancy "Example... done."
|
|
21
|
-
* @internal
|
|
22
|
-
*/
|
|
23
|
-
export declare function run(message: string, command: string): Promise<string>;
|
|
24
|
-
/** Yet another convenience function */
|
|
25
|
-
export declare function exit(message: string | Error, code?: number): never;
|
|
26
|
-
export declare function handleError(e: number | string | Error): void;
|
|
27
|
-
export type OutputTag = 'debug' | 'info' | 'warn' | 'error' | 'start' | 'done' | 'plugin';
|
|
28
|
-
export interface Output {
|
|
29
|
-
(tag: 'done'): void;
|
|
30
|
-
(tag: Exclude<OutputTag, 'done'>, message: string): void;
|
|
31
|
-
}
|
|
32
|
-
export declare let _debugOutput: boolean;
|
|
33
|
-
/**
|
|
34
|
-
* Enable or disable debug output.
|
|
35
|
-
*/
|
|
36
|
-
export declare function _setDebugOutput(enabled: boolean): void;
|
|
37
|
-
export declare function useTaggedOutput(output: Output | null): void;
|
|
38
|
-
export declare function done(): void;
|
|
39
|
-
export declare function start(message: string): void;
|
|
40
|
-
export declare function plugin(name: string): void;
|
|
41
|
-
export declare function debug(message: string): void;
|
|
42
|
-
export declare function info(message: string): void;
|
|
43
|
-
export declare function warn(message: string): void;
|
|
44
|
-
export declare function error(message: string): void;
|
|
45
5
|
/** @internal */
|
|
46
6
|
export declare const _portMethods: readonly ["node-cap"];
|
|
47
7
|
/** @internal */
|
|
@@ -63,13 +23,3 @@ export interface PortOptions {
|
|
|
63
23
|
* If the origin has a port, passkeys do not work correctly with some password managers.
|
|
64
24
|
*/
|
|
65
25
|
export declare function restrictedPorts(opt: PortOptions): Promise<void>;
|
|
66
|
-
/**
|
|
67
|
-
* This is a factory for handling errors when performing operations.
|
|
68
|
-
* The handler will allow the parent scope to continue if a relation already exists,
|
|
69
|
-
* rather than fatally exiting.
|
|
70
|
-
*/
|
|
71
|
-
export declare function someWarnings(...allowList: [RegExp, string?][]): (error: string | Error) => void;
|
|
72
|
-
/**
|
|
73
|
-
* Get a human-readable string for a date that also fits into CLIs well (fixed-width)
|
|
74
|
-
*/
|
|
75
|
-
export declare function prettyDate(date: Date): string;
|
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
|
-
export 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.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
|
};
|
|
@@ -17,12 +17,12 @@ export function* listRouteLinks(options = {}) {
|
|
|
17
17
|
yield { text, id: '#builtin', from: link, to: resolve(import.meta.dirname, '../routes') };
|
|
18
18
|
}
|
|
19
19
|
for (const plugin of plugins.values()) {
|
|
20
|
-
if (!plugin.routes)
|
|
20
|
+
if (!plugin.server?.routes)
|
|
21
21
|
continue;
|
|
22
22
|
if (options.only && !options.only.includes(plugin.name))
|
|
23
23
|
continue;
|
|
24
24
|
const [text, link] = info(plugin.name);
|
|
25
|
-
const to = resolve(join(plugin.dirname, plugin.routes));
|
|
25
|
+
const to = resolve(join(plugin.dirname, plugin.server.routes));
|
|
26
26
|
yield { text, id: plugin.name, from: link, to };
|
|
27
27
|
}
|
|
28
28
|
}
|
package/dist/requests.d.ts
CHANGED
|
@@ -34,7 +34,11 @@ export declare function redirect(location: string, status?: number): never;
|
|
|
34
34
|
export declare function json(data: object, init?: ResponseInit): Response;
|
|
35
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
36
|
export declare function getToken(request: Request, sensitive?: boolean): string | undefined;
|
|
37
|
-
export
|
|
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
44
|
export declare function handleAPIRequest(request: Request, params: Record<string, any>, route: ServerRoute): Promise<Response>;
|
package/dist/requests.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { userProtectedFields, userPublicFields } from '@axium/core/user';
|
|
2
|
-
import * as cookie from '
|
|
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';
|
|
@@ -49,9 +49,11 @@ export function getToken(request, sensitive = false) {
|
|
|
49
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
|
+
if (noCookie)
|
|
56
|
+
return response;
|
|
55
57
|
const cookies = cookie.serialize(elevated ? 'elevated_token' : 'session_token', token, {
|
|
56
58
|
httpOnly: true,
|
|
57
59
|
path: '/',
|
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,7 +19,7 @@ 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.
|
package/dist/serve.d.ts
CHANGED
package/dist/serve.js
CHANGED
|
@@ -1,17 +1,18 @@
|
|
|
1
|
+
import { apps } from '@axium/core';
|
|
2
|
+
import { _debugOutput, debug, warn, info } from '@axium/core/node/io';
|
|
3
|
+
import { plugins } from '@axium/core/plugins';
|
|
1
4
|
import '@axium/server/api/index';
|
|
2
5
|
import { loadDefaultConfigs, reloadConfigs } from '@axium/server/config';
|
|
3
6
|
import { clean, connect, database } from '@axium/server/database';
|
|
4
|
-
import {
|
|
7
|
+
import { dirs, logger } from '@axium/server/io';
|
|
5
8
|
import { allLogLevels } from 'logzen';
|
|
6
9
|
import { createWriteStream, readFileSync } from 'node:fs';
|
|
7
10
|
import { createServer, ServerResponse } from 'node:http';
|
|
8
11
|
import { createServer as createSecureServer } from 'node:https';
|
|
9
12
|
import { join } from 'node:path/posix';
|
|
10
13
|
import { styleText } from 'node:util';
|
|
11
|
-
import { appDisabledContent, apps } from './apps.js';
|
|
12
14
|
import config from './config.js';
|
|
13
15
|
import { convertFromResponse, convertToRequest } from './internal_requests.js';
|
|
14
|
-
import { plugins } from './plugins.js';
|
|
15
16
|
import { error, handleAPIRequest, handleResponseError, json, noCacheHeaders } from './requests.js';
|
|
16
17
|
import { resolveRoute } from './routes.js';
|
|
17
18
|
const template = readFileSync(join(import.meta.dirname, '../template.html'), 'utf-8');
|
|
@@ -24,6 +25,10 @@ function fillSvelteKitTemplate({ head, body }, env = {}, nonce = '') {
|
|
|
24
25
|
.replaceAll('%sveltekit.nonce%', nonce)
|
|
25
26
|
.replace(/%sveltekit\.env\.([^%]+)%/g, (_match, key) => env[key] ?? ''));
|
|
26
27
|
}
|
|
28
|
+
export const appDisabledContent = {
|
|
29
|
+
head: '<title>App Disabled</title>',
|
|
30
|
+
body: '<h1>App Disabled</h1><p>This app is currently disabled.</p>',
|
|
31
|
+
};
|
|
27
32
|
async function handleRequestDefault(req) {
|
|
28
33
|
const url = new URL(req.url);
|
|
29
34
|
const [route, params] = resolveRoute(url) ?? [];
|
|
@@ -74,15 +79,15 @@ function __next(error) {
|
|
|
74
79
|
async function _getMultiBuildHandler() {
|
|
75
80
|
const handlers = [];
|
|
76
81
|
for (const plugin of plugins.values()) {
|
|
77
|
-
if (!plugin.http_handler)
|
|
82
|
+
if (!plugin.server?.http_handler)
|
|
78
83
|
continue;
|
|
79
84
|
try {
|
|
80
|
-
const { handler } = await import(join(plugin.dirname, plugin.http_handler));
|
|
85
|
+
const { handler } = await import(join(plugin.dirname, plugin.server.http_handler));
|
|
81
86
|
handlers.push(handler);
|
|
82
|
-
|
|
87
|
+
debug(`Loaded plugin handler: ${plugin.name}`);
|
|
83
88
|
}
|
|
84
89
|
catch (e) {
|
|
85
|
-
|
|
90
|
+
warn(`Failed to load plugin HTTP handler for ${plugin.name} ${_debugOutput ? ': ' + (e instanceof Error ? e.message : e) : ''}`);
|
|
86
91
|
}
|
|
87
92
|
}
|
|
88
93
|
// @ts-expect-error 7016 - it is plain JS
|
|
@@ -178,7 +183,7 @@ export async function init() {
|
|
|
178
183
|
// eslint-disable-next-line @typescript-eslint/no-misused-promises
|
|
179
184
|
process.on('beforeExit', () => database.destroy());
|
|
180
185
|
process.on('SIGHUP', () => {
|
|
181
|
-
|
|
186
|
+
info('Reloading configuration due to SIGHUP.');
|
|
182
187
|
void reloadConfigs();
|
|
183
188
|
});
|
|
184
189
|
}
|