@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.
Files changed (386) hide show
  1. package/build/client/_app/immutable/chunks/46qGscyh.js +2 -0
  2. package/build/client/_app/immutable/chunks/46qGscyh.js.br +0 -0
  3. package/build/client/_app/immutable/chunks/46qGscyh.js.gz +0 -0
  4. package/build/client/_app/immutable/chunks/B2Vkpbkw.js +2 -0
  5. package/build/client/_app/immutable/chunks/B2Vkpbkw.js.br +0 -0
  6. package/build/client/_app/immutable/chunks/B2Vkpbkw.js.gz +0 -0
  7. package/build/client/_app/immutable/chunks/BKixenYx.js +1 -0
  8. package/build/client/_app/immutable/chunks/BKixenYx.js.br +0 -0
  9. package/build/client/_app/immutable/chunks/BKixenYx.js.gz +0 -0
  10. package/build/client/_app/immutable/chunks/BLtAtlP3.js +1 -0
  11. package/build/client/_app/immutable/chunks/BLtAtlP3.js.br +2 -0
  12. package/build/client/_app/immutable/chunks/BLtAtlP3.js.gz +0 -0
  13. package/build/client/_app/immutable/chunks/BNTlty5m.js +1 -0
  14. package/build/client/_app/immutable/chunks/BNTlty5m.js.br +0 -0
  15. package/build/client/_app/immutable/chunks/BNTlty5m.js.gz +0 -0
  16. package/build/client/_app/immutable/chunks/Beh6Ec8J.js +1 -0
  17. package/build/client/_app/immutable/chunks/Beh6Ec8J.js.br +0 -0
  18. package/build/client/_app/immutable/chunks/Beh6Ec8J.js.gz +0 -0
  19. package/build/client/_app/immutable/chunks/BrUe-Qen.js +1 -0
  20. package/build/client/_app/immutable/chunks/BrUe-Qen.js.br +0 -0
  21. package/build/client/_app/immutable/chunks/BrUe-Qen.js.gz +0 -0
  22. package/build/client/_app/immutable/chunks/Bs4cD_pX.js +1 -0
  23. package/build/client/_app/immutable/chunks/Bs4cD_pX.js.br +0 -0
  24. package/build/client/_app/immutable/chunks/Bs4cD_pX.js.gz +0 -0
  25. package/build/client/_app/immutable/chunks/C62F-tXu.js +1 -0
  26. package/build/client/_app/immutable/chunks/C62F-tXu.js.br +1 -0
  27. package/build/client/_app/immutable/chunks/C62F-tXu.js.gz +0 -0
  28. package/build/client/_app/immutable/chunks/CUBtP2L9.js +23 -0
  29. package/build/client/_app/immutable/chunks/CUBtP2L9.js.br +0 -0
  30. package/build/client/_app/immutable/chunks/CUBtP2L9.js.gz +0 -0
  31. package/build/client/_app/immutable/chunks/CoYD6HNm.js +1 -0
  32. package/build/client/_app/immutable/chunks/CoYD6HNm.js.br +0 -0
  33. package/build/client/_app/immutable/chunks/CoYD6HNm.js.gz +0 -0
  34. package/build/client/_app/immutable/chunks/D40Zn55h.js +1 -0
  35. package/build/client/_app/immutable/chunks/D40Zn55h.js.br +0 -0
  36. package/build/client/_app/immutable/chunks/D40Zn55h.js.gz +0 -0
  37. package/build/client/_app/immutable/chunks/DW7-1esk.js +21 -0
  38. package/build/client/_app/immutable/chunks/DW7-1esk.js.br +0 -0
  39. package/build/client/_app/immutable/chunks/DW7-1esk.js.gz +0 -0
  40. package/build/client/_app/immutable/chunks/DvOBbqVY.js +1 -0
  41. package/build/client/_app/immutable/chunks/DvOBbqVY.js.br +0 -0
  42. package/build/client/_app/immutable/chunks/DvOBbqVY.js.gz +0 -0
  43. package/build/client/_app/immutable/chunks/DwZYWemd.js +1 -0
  44. package/build/client/_app/immutable/chunks/DwZYWemd.js.br +0 -0
  45. package/build/client/_app/immutable/chunks/DwZYWemd.js.gz +0 -0
  46. package/build/client/_app/immutable/chunks/Dy2Ho0cF.js +1 -0
  47. package/build/client/_app/immutable/chunks/Dy2Ho0cF.js.br +0 -0
  48. package/build/client/_app/immutable/chunks/Dy2Ho0cF.js.gz +0 -0
  49. package/build/client/_app/immutable/chunks/FTv0qR3w.js +1 -0
  50. package/build/client/_app/immutable/chunks/FTv0qR3w.js.br +0 -0
  51. package/build/client/_app/immutable/chunks/FTv0qR3w.js.gz +0 -0
  52. package/build/client/_app/immutable/chunks/NeK0YGoY.js +1 -0
  53. package/build/client/_app/immutable/chunks/NeK0YGoY.js.br +0 -0
  54. package/build/client/_app/immutable/chunks/NeK0YGoY.js.gz +0 -0
  55. package/build/client/_app/immutable/chunks/aArGsq9c.js +1 -0
  56. package/build/client/_app/immutable/chunks/aArGsq9c.js.br +0 -0
  57. package/build/client/_app/immutable/chunks/aArGsq9c.js.gz +0 -0
  58. package/build/client/_app/immutable/chunks/lH47zGKU.js +1 -0
  59. package/build/client/_app/immutable/chunks/lH47zGKU.js.br +0 -0
  60. package/build/client/_app/immutable/chunks/lH47zGKU.js.gz +0 -0
  61. package/build/client/_app/immutable/chunks/sMHjBQqw.js +1 -0
  62. package/build/client/_app/immutable/chunks/sMHjBQqw.js.br +0 -0
  63. package/build/client/_app/immutable/chunks/sMHjBQqw.js.gz +0 -0
  64. package/build/client/_app/immutable/chunks/vQfHcJV6.js +2 -0
  65. package/build/client/_app/immutable/chunks/vQfHcJV6.js.br +0 -0
  66. package/build/client/_app/immutable/chunks/vQfHcJV6.js.gz +0 -0
  67. package/build/client/_app/immutable/entry/app.pLVZKpSD.js +2 -0
  68. package/build/client/_app/immutable/entry/app.pLVZKpSD.js.br +0 -0
  69. package/build/client/_app/immutable/entry/app.pLVZKpSD.js.gz +0 -0
  70. package/build/client/_app/immutable/entry/start.CUaVsIrY.js +1 -0
  71. package/build/client/_app/immutable/entry/start.CUaVsIrY.js.br +2 -0
  72. package/build/client/_app/immutable/entry/start.CUaVsIrY.js.gz +0 -0
  73. package/build/client/_app/immutable/nodes/0.D7hET-Bq.js +1 -0
  74. package/build/client/_app/immutable/nodes/0.D7hET-Bq.js.br +0 -0
  75. package/build/client/_app/immutable/nodes/0.D7hET-Bq.js.gz +0 -0
  76. package/build/client/_app/immutable/nodes/1.BWU-JJm_.js +1 -0
  77. package/build/client/_app/immutable/nodes/1.BWU-JJm_.js.br +2 -0
  78. package/build/client/_app/immutable/nodes/1.BWU-JJm_.js.gz +0 -0
  79. package/build/client/_app/immutable/nodes/10.C5N2XBee.js +1 -0
  80. package/build/client/_app/immutable/nodes/10.C5N2XBee.js.br +0 -0
  81. package/build/client/_app/immutable/nodes/10.C5N2XBee.js.gz +0 -0
  82. package/build/client/_app/immutable/nodes/11.CerbuSAv.js +1 -0
  83. package/build/client/_app/immutable/nodes/11.CerbuSAv.js.br +0 -0
  84. package/build/client/_app/immutable/nodes/11.CerbuSAv.js.gz +0 -0
  85. package/build/client/_app/immutable/nodes/12.Z4B9zS78.js +1 -0
  86. package/build/client/_app/immutable/nodes/12.Z4B9zS78.js.br +0 -0
  87. package/build/client/_app/immutable/nodes/12.Z4B9zS78.js.gz +0 -0
  88. package/build/client/_app/immutable/nodes/13.CuICShck.js +1 -0
  89. package/build/client/_app/immutable/nodes/13.CuICShck.js.br +0 -0
  90. package/build/client/_app/immutable/nodes/13.CuICShck.js.gz +0 -0
  91. package/build/client/_app/immutable/nodes/14.BSEF5oaF.js +1 -0
  92. package/build/client/_app/immutable/nodes/14.BSEF5oaF.js.br +0 -0
  93. package/build/client/_app/immutable/nodes/14.BSEF5oaF.js.gz +0 -0
  94. package/build/client/_app/immutable/nodes/15.D1nsmo6j.js +1 -0
  95. package/build/client/_app/immutable/nodes/15.D1nsmo6j.js.br +0 -0
  96. package/build/client/_app/immutable/nodes/15.D1nsmo6j.js.gz +0 -0
  97. package/build/client/_app/immutable/nodes/2.DQ1JcYgz.js +1 -0
  98. package/build/client/_app/immutable/nodes/2.DQ1JcYgz.js.br +0 -0
  99. package/build/client/_app/immutable/nodes/2.DQ1JcYgz.js.gz +0 -0
  100. package/build/client/_app/immutable/nodes/3.BJp2JEtW.js +1 -0
  101. package/build/client/_app/immutable/nodes/3.BJp2JEtW.js.br +0 -0
  102. package/build/client/_app/immutable/nodes/3.BJp2JEtW.js.gz +0 -0
  103. package/build/client/_app/immutable/nodes/4.Cvn_QsIx.js +1 -0
  104. package/build/client/_app/immutable/nodes/4.Cvn_QsIx.js.br +0 -0
  105. package/build/client/_app/immutable/nodes/4.Cvn_QsIx.js.gz +0 -0
  106. package/build/client/_app/immutable/nodes/5.DgPP9GX3.js +1 -0
  107. package/build/client/_app/immutable/nodes/5.DgPP9GX3.js.br +0 -0
  108. package/build/client/_app/immutable/nodes/5.DgPP9GX3.js.gz +0 -0
  109. package/build/client/_app/immutable/nodes/6.DKIzms8i.js +2 -0
  110. package/build/client/_app/immutable/nodes/6.DKIzms8i.js.br +0 -0
  111. package/build/client/_app/immutable/nodes/6.DKIzms8i.js.gz +0 -0
  112. package/build/client/_app/immutable/nodes/7.3UigVXV4.js +1 -0
  113. package/build/client/_app/immutable/nodes/7.3UigVXV4.js.br +0 -0
  114. package/build/client/_app/immutable/nodes/7.3UigVXV4.js.gz +0 -0
  115. package/build/client/_app/immutable/nodes/8.B8s2TdNQ.js +1 -0
  116. package/build/client/_app/immutable/nodes/8.B8s2TdNQ.js.br +0 -0
  117. package/build/client/_app/immutable/nodes/8.B8s2TdNQ.js.gz +0 -0
  118. package/build/client/_app/immutable/nodes/9.LBMMe2kc.js +1 -0
  119. package/build/client/_app/immutable/nodes/9.LBMMe2kc.js.br +0 -0
  120. package/build/client/_app/immutable/nodes/9.LBMMe2kc.js.gz +0 -0
  121. package/build/client/_app/version.json +1 -1
  122. package/build/client/_app/version.json.br +0 -0
  123. package/build/client/_app/version.json.gz +0 -0
  124. package/build/client/styles.css +21 -0
  125. package/build/client/styles.css.br +0 -0
  126. package/build/client/styles.css.gz +0 -0
  127. package/build/server/chunks/{0-CZBaNtSI.js → 0-CNbALTKz.js} +2 -2
  128. package/build/server/chunks/0-CNbALTKz.js.map +1 -0
  129. package/build/server/chunks/1-Dgxy393u.js +9 -0
  130. package/build/server/chunks/1-Dgxy393u.js.map +1 -0
  131. package/build/server/chunks/10-DovmbqKa.js +14 -0
  132. package/build/server/chunks/10-DovmbqKa.js.map +1 -0
  133. package/build/server/chunks/11-CRK_ubcl.js +14 -0
  134. package/build/server/chunks/11-CRK_ubcl.js.map +1 -0
  135. package/build/server/chunks/12-SbQlwMfe.js +9 -0
  136. package/build/server/chunks/12-SbQlwMfe.js.map +1 -0
  137. package/build/server/chunks/13-CbniIW7F.js +14 -0
  138. package/build/server/chunks/13-CbniIW7F.js.map +1 -0
  139. package/build/server/chunks/14-D9Vb_8Yx.js +9 -0
  140. package/build/server/chunks/14-D9Vb_8Yx.js.map +1 -0
  141. package/build/server/chunks/15-D-75Hdef.js +9 -0
  142. package/build/server/chunks/15-D-75Hdef.js.map +1 -0
  143. package/build/server/chunks/2-57exN8ae.js +14 -0
  144. package/build/server/chunks/2-57exN8ae.js.map +1 -0
  145. package/build/server/chunks/{3-B1CwnVF_.js → 3-DNQft-pY.js} +2 -2
  146. package/build/server/chunks/{3-B1CwnVF_.js.map → 3-DNQft-pY.js.map} +1 -1
  147. package/build/server/chunks/4-D9Bwp-f8.js +14 -0
  148. package/build/server/chunks/4-D9Bwp-f8.js.map +1 -0
  149. package/build/server/chunks/5-COEQwZNP.js +14 -0
  150. package/build/server/chunks/5-COEQwZNP.js.map +1 -0
  151. package/build/server/chunks/6-RT4yiDcP.js +14 -0
  152. package/build/server/chunks/6-RT4yiDcP.js.map +1 -0
  153. package/build/server/chunks/7-CVqF_r5D.js +14 -0
  154. package/build/server/chunks/7-CVqF_r5D.js.map +1 -0
  155. package/build/server/chunks/8-C5SO-sVH.js +14 -0
  156. package/build/server/chunks/8-C5SO-sVH.js.map +1 -0
  157. package/build/server/chunks/9-DoCOKtY-.js +14 -0
  158. package/build/server/chunks/9-DoCOKtY-.js.map +1 -0
  159. package/build/server/chunks/FormDialog-ZCY0chY1.js +102 -0
  160. package/build/server/chunks/FormDialog-ZCY0chY1.js.map +1 -0
  161. package/build/server/chunks/{Icon-CG7XnWX5.js → Icon-BVo9qbDf.js} +2 -2
  162. package/build/server/chunks/{Icon-CG7XnWX5.js.map → Icon-BVo9qbDf.js.map} +1 -1
  163. package/build/server/chunks/{Logout-BwzK1P29.js → Logout-CmBZgu0j.js} +4 -3
  164. package/build/server/chunks/{Logout-BwzK1P29.js.map → Logout-CmBZgu0j.js.map} +1 -1
  165. package/build/server/chunks/{_layout.svelte-9KMUotip.js → _layout.svelte-DuS006VZ.js} +6 -4
  166. package/build/server/chunks/_layout.svelte-DuS006VZ.js.map +1 -0
  167. package/build/server/chunks/_page.svelte-BFVobcI7.js +14 -0
  168. package/build/server/chunks/{_page.svelte-Bou2_u6i.js.map → _page.svelte-BFVobcI7.js.map} +1 -1
  169. package/build/server/chunks/{_page.svelte-rrN2zFNa.js → _page.svelte-B_cvhWJS.js} +4 -4
  170. package/build/server/chunks/_page.svelte-B_cvhWJS.js.map +1 -0
  171. package/build/server/chunks/{_page.svelte-BD3HmLo_.js → _page.svelte-BriaBR9l.js} +3 -3
  172. package/build/server/chunks/_page.svelte-BriaBR9l.js.map +1 -0
  173. package/build/server/chunks/{_page.svelte-CAzWL4aq.js → _page.svelte-BtQQzT7H.js} +12 -6
  174. package/build/server/chunks/_page.svelte-BtQQzT7H.js.map +1 -0
  175. package/build/server/chunks/{_page.svelte-BIxxuzff.js → _page.svelte-C8D3c3yB.js} +4 -4
  176. package/build/server/chunks/_page.svelte-C8D3c3yB.js.map +1 -0
  177. package/build/server/chunks/{_page.svelte-cAsZlwLs.js → _page.svelte-CVSb9eHQ.js} +4 -4
  178. package/build/server/chunks/_page.svelte-CVSb9eHQ.js.map +1 -0
  179. package/build/server/chunks/{_page.svelte-BFzPdJ6z.js → _page.svelte-CwRjZqL7.js} +9 -7
  180. package/build/server/chunks/_page.svelte-CwRjZqL7.js.map +1 -0
  181. package/build/server/chunks/{_page.svelte-DgyZKeaF.js → _page.svelte-D9A9RYjx.js} +10 -8
  182. package/build/server/chunks/_page.svelte-D9A9RYjx.js.map +1 -0
  183. package/build/server/chunks/_page.svelte-DGhwqWMM.js +34 -0
  184. package/build/server/chunks/_page.svelte-DGhwqWMM.js.map +1 -0
  185. package/build/server/chunks/{_page.svelte-Ci5V-DhL.js → _page.svelte-DTvnX95_.js} +10 -7
  186. package/build/server/chunks/_page.svelte-DTvnX95_.js.map +1 -0
  187. package/build/server/chunks/{_page.svelte-C25oQ2NT.js → _page.svelte-DUfwpXfC.js} +51 -9
  188. package/build/server/chunks/_page.svelte-DUfwpXfC.js.map +1 -0
  189. package/build/server/chunks/{_page.svelte-CnfRSJsl.js → _page.svelte-DxDoD3rZ.js} +3 -3
  190. package/build/server/chunks/_page.svelte-DxDoD3rZ.js.map +1 -0
  191. package/build/server/chunks/{account-BZSP6KBP.js → account-Bf_llRe2.js} +6 -5
  192. package/build/server/chunks/{account-BZSP6KBP.js.map → account-Bf_llRe2.js.map} +1 -1
  193. package/build/server/chunks/auth_redirect-olBYiIF2.js +24 -0
  194. package/build/server/chunks/auth_redirect-olBYiIF2.js.map +1 -0
  195. package/build/server/chunks/{error.svelte-DTrQqomO.js → error.svelte-CkSCwrMJ.js} +2 -2
  196. package/build/server/chunks/error.svelte-CkSCwrMJ.js.map +1 -0
  197. package/build/server/chunks/{index-DJrm8BZm.js → index-CIEcmmdN.js} +57 -11
  198. package/build/server/chunks/index-CIEcmmdN.js.map +1 -0
  199. package/build/server/chunks/{index-eKiDBuyI.js → index-Tt4zVDIZ.js} +25 -8
  200. package/build/server/chunks/index-Tt4zVDIZ.js.map +1 -0
  201. package/build/server/chunks/{user2-Coq3Frtw.js → user2-CRfK67II.js} +9 -102
  202. package/build/server/chunks/user2-CRfK67II.js.map +1 -0
  203. package/build/server/chunks/{utils-DlBYhQz7.js → utils-h74ns7K6.js} +1 -2
  204. package/build/server/chunks/utils-h74ns7K6.js.map +1 -0
  205. package/build/server/index.js +573 -202
  206. package/build/server/index.js.map +1 -1
  207. package/build/server/manifest.js +26 -18
  208. package/build/server/manifest.js.map +1 -1
  209. package/dist/acl.js +1 -1
  210. package/dist/api/admin.js +20 -3
  211. package/dist/api/metadata.js +3 -3
  212. package/dist/api/users.js +4 -1
  213. package/dist/audit.d.ts +1 -0
  214. package/dist/audit.js +3 -3
  215. package/dist/cli.js +511 -541
  216. package/dist/config.d.ts +6 -6
  217. package/dist/config.js +25 -13
  218. package/dist/database.js +7 -6
  219. package/dist/io.d.ts +0 -50
  220. package/dist/io.js +23 -171
  221. package/dist/linking.js +4 -4
  222. package/dist/requests.d.ts +5 -1
  223. package/dist/requests.js +4 -2
  224. package/dist/routes.js +3 -3
  225. package/dist/serve.d.ts +4 -0
  226. package/dist/serve.js +13 -8
  227. package/package.json +5 -5
  228. package/routes/admin/+layout.ts +2 -0
  229. package/routes/admin/audit/+page.svelte +23 -2
  230. package/routes/admin/audit/+page.ts +4 -2
  231. package/routes/login/client/+page.svelte +72 -0
  232. package/routes/login/client/+page.ts +27 -0
  233. package/build/client/_app/immutable/chunks/1taVrT-y.js +0 -1
  234. package/build/client/_app/immutable/chunks/1taVrT-y.js.br +0 -0
  235. package/build/client/_app/immutable/chunks/1taVrT-y.js.gz +0 -0
  236. package/build/client/_app/immutable/chunks/BSFUgC2l.js +0 -23
  237. package/build/client/_app/immutable/chunks/BSFUgC2l.js.br +0 -0
  238. package/build/client/_app/immutable/chunks/BSFUgC2l.js.gz +0 -0
  239. package/build/client/_app/immutable/chunks/Bbzjahjl.js +0 -2
  240. package/build/client/_app/immutable/chunks/Bbzjahjl.js.br +0 -0
  241. package/build/client/_app/immutable/chunks/Bbzjahjl.js.gz +0 -0
  242. package/build/client/_app/immutable/chunks/BxjargW5.js +0 -1
  243. package/build/client/_app/immutable/chunks/BxjargW5.js.br +0 -0
  244. package/build/client/_app/immutable/chunks/BxjargW5.js.gz +0 -0
  245. package/build/client/_app/immutable/chunks/C2ewTgu8.js +0 -1
  246. package/build/client/_app/immutable/chunks/C2ewTgu8.js.br +0 -0
  247. package/build/client/_app/immutable/chunks/C2ewTgu8.js.gz +0 -0
  248. package/build/client/_app/immutable/chunks/CFWAHLsq.js +0 -1
  249. package/build/client/_app/immutable/chunks/CFWAHLsq.js.br +0 -0
  250. package/build/client/_app/immutable/chunks/CFWAHLsq.js.gz +0 -0
  251. package/build/client/_app/immutable/chunks/CPL43v-I.js +0 -1
  252. package/build/client/_app/immutable/chunks/CPL43v-I.js.br +0 -0
  253. package/build/client/_app/immutable/chunks/CPL43v-I.js.gz +0 -0
  254. package/build/client/_app/immutable/chunks/CTKC36WM.js +0 -1
  255. package/build/client/_app/immutable/chunks/CTKC36WM.js.br +0 -0
  256. package/build/client/_app/immutable/chunks/CTKC36WM.js.gz +0 -0
  257. package/build/client/_app/immutable/chunks/CekH6JMP.js +0 -1
  258. package/build/client/_app/immutable/chunks/CekH6JMP.js.br +0 -0
  259. package/build/client/_app/immutable/chunks/CekH6JMP.js.gz +0 -0
  260. package/build/client/_app/immutable/chunks/CqfYW08-.js +0 -1
  261. package/build/client/_app/immutable/chunks/CqfYW08-.js.br +0 -0
  262. package/build/client/_app/immutable/chunks/CqfYW08-.js.gz +0 -0
  263. package/build/client/_app/immutable/chunks/D1v6O410.js +0 -1
  264. package/build/client/_app/immutable/chunks/D1v6O410.js.br +0 -0
  265. package/build/client/_app/immutable/chunks/D1v6O410.js.gz +0 -0
  266. package/build/client/_app/immutable/chunks/DdnE6dyJ.js +0 -2
  267. package/build/client/_app/immutable/chunks/DdnE6dyJ.js.br +0 -0
  268. package/build/client/_app/immutable/chunks/DdnE6dyJ.js.gz +0 -0
  269. package/build/client/_app/immutable/chunks/DeieCYM0.js +0 -22
  270. package/build/client/_app/immutable/chunks/DeieCYM0.js.br +0 -0
  271. package/build/client/_app/immutable/chunks/DeieCYM0.js.gz +0 -0
  272. package/build/client/_app/immutable/chunks/DfUzlYF5.js +0 -1
  273. package/build/client/_app/immutable/chunks/DfUzlYF5.js.br +0 -0
  274. package/build/client/_app/immutable/chunks/DfUzlYF5.js.gz +0 -0
  275. package/build/client/_app/immutable/chunks/Dnk28BpG.js +0 -1
  276. package/build/client/_app/immutable/chunks/Dnk28BpG.js.br +0 -0
  277. package/build/client/_app/immutable/chunks/Dnk28BpG.js.gz +0 -0
  278. package/build/client/_app/immutable/chunks/DsnmJJEf.js +0 -1
  279. package/build/client/_app/immutable/chunks/DsnmJJEf.js.br +0 -2
  280. package/build/client/_app/immutable/chunks/DsnmJJEf.js.gz +0 -0
  281. package/build/client/_app/immutable/chunks/KNAS5R2A.js +0 -3
  282. package/build/client/_app/immutable/chunks/KNAS5R2A.js.br +0 -0
  283. package/build/client/_app/immutable/chunks/KNAS5R2A.js.gz +0 -0
  284. package/build/client/_app/immutable/chunks/eyJgPND9.js +0 -1
  285. package/build/client/_app/immutable/chunks/eyJgPND9.js.br +0 -1
  286. package/build/client/_app/immutable/chunks/eyJgPND9.js.gz +0 -0
  287. package/build/client/_app/immutable/entry/app.CPF6A_DV.js +0 -2
  288. package/build/client/_app/immutable/entry/app.CPF6A_DV.js.br +0 -0
  289. package/build/client/_app/immutable/entry/app.CPF6A_DV.js.gz +0 -0
  290. package/build/client/_app/immutable/entry/start.Dos_Ttds.js +0 -1
  291. package/build/client/_app/immutable/entry/start.Dos_Ttds.js.br +0 -2
  292. package/build/client/_app/immutable/entry/start.Dos_Ttds.js.gz +0 -0
  293. package/build/client/_app/immutable/nodes/0.C5HgTRfT.js +0 -1
  294. package/build/client/_app/immutable/nodes/0.C5HgTRfT.js.br +0 -0
  295. package/build/client/_app/immutable/nodes/0.C5HgTRfT.js.gz +0 -0
  296. package/build/client/_app/immutable/nodes/1.CGcgSoA9.js +0 -1
  297. package/build/client/_app/immutable/nodes/1.CGcgSoA9.js.br +0 -0
  298. package/build/client/_app/immutable/nodes/1.CGcgSoA9.js.gz +0 -0
  299. package/build/client/_app/immutable/nodes/10.ukScuXwz.js +0 -1
  300. package/build/client/_app/immutable/nodes/10.ukScuXwz.js.br +0 -5
  301. package/build/client/_app/immutable/nodes/10.ukScuXwz.js.gz +0 -0
  302. package/build/client/_app/immutable/nodes/11.D3RDNx7M.js +0 -1
  303. package/build/client/_app/immutable/nodes/11.D3RDNx7M.js.br +0 -0
  304. package/build/client/_app/immutable/nodes/11.D3RDNx7M.js.gz +0 -0
  305. package/build/client/_app/immutable/nodes/12._vvpCcSG.js +0 -1
  306. package/build/client/_app/immutable/nodes/12._vvpCcSG.js.br +0 -0
  307. package/build/client/_app/immutable/nodes/12._vvpCcSG.js.gz +0 -0
  308. package/build/client/_app/immutable/nodes/13.BWPzZMQ5.js +0 -1
  309. package/build/client/_app/immutable/nodes/13.BWPzZMQ5.js.br +0 -0
  310. package/build/client/_app/immutable/nodes/13.BWPzZMQ5.js.gz +0 -0
  311. package/build/client/_app/immutable/nodes/14.Cr843Lep.js +0 -1
  312. package/build/client/_app/immutable/nodes/14.Cr843Lep.js.br +0 -0
  313. package/build/client/_app/immutable/nodes/14.Cr843Lep.js.gz +0 -0
  314. package/build/client/_app/immutable/nodes/2.DUpwDjw8.js +0 -1
  315. package/build/client/_app/immutable/nodes/2.DUpwDjw8.js.br +0 -0
  316. package/build/client/_app/immutable/nodes/2.DUpwDjw8.js.gz +0 -0
  317. package/build/client/_app/immutable/nodes/3.DPH7xl7M.js +0 -1
  318. package/build/client/_app/immutable/nodes/3.DPH7xl7M.js.br +0 -0
  319. package/build/client/_app/immutable/nodes/3.DPH7xl7M.js.gz +0 -0
  320. package/build/client/_app/immutable/nodes/4.Bk0knTIK.js +0 -1
  321. package/build/client/_app/immutable/nodes/4.Bk0knTIK.js.br +0 -0
  322. package/build/client/_app/immutable/nodes/4.Bk0knTIK.js.gz +0 -0
  323. package/build/client/_app/immutable/nodes/5.DwnZ1Bh8.js +0 -1
  324. package/build/client/_app/immutable/nodes/5.DwnZ1Bh8.js.br +0 -0
  325. package/build/client/_app/immutable/nodes/5.DwnZ1Bh8.js.gz +0 -0
  326. package/build/client/_app/immutable/nodes/6.5U-KxFgt.js +0 -2
  327. package/build/client/_app/immutable/nodes/6.5U-KxFgt.js.br +0 -0
  328. package/build/client/_app/immutable/nodes/6.5U-KxFgt.js.gz +0 -0
  329. package/build/client/_app/immutable/nodes/7.DFc4sJix.js +0 -1
  330. package/build/client/_app/immutable/nodes/7.DFc4sJix.js.br +0 -0
  331. package/build/client/_app/immutable/nodes/7.DFc4sJix.js.gz +0 -0
  332. package/build/client/_app/immutable/nodes/8.BG4bv5P5.js +0 -1
  333. package/build/client/_app/immutable/nodes/8.BG4bv5P5.js.br +0 -0
  334. package/build/client/_app/immutable/nodes/8.BG4bv5P5.js.gz +0 -0
  335. package/build/client/_app/immutable/nodes/9.BKljyhOi.js +0 -1
  336. package/build/client/_app/immutable/nodes/9.BKljyhOi.js.br +0 -0
  337. package/build/client/_app/immutable/nodes/9.BKljyhOi.js.gz +0 -0
  338. package/build/server/chunks/0-CZBaNtSI.js.map +0 -1
  339. package/build/server/chunks/1-D_3BtEbe.js +0 -9
  340. package/build/server/chunks/1-D_3BtEbe.js.map +0 -1
  341. package/build/server/chunks/10-CLkNMKHU.js +0 -13
  342. package/build/server/chunks/10-CLkNMKHU.js.map +0 -1
  343. package/build/server/chunks/11-5xPYR_1w.js +0 -13
  344. package/build/server/chunks/11-5xPYR_1w.js.map +0 -1
  345. package/build/server/chunks/12-N7UaQj7u.js +0 -9
  346. package/build/server/chunks/12-N7UaQj7u.js.map +0 -1
  347. package/build/server/chunks/13-QYVLpXli.js +0 -9
  348. package/build/server/chunks/13-QYVLpXli.js.map +0 -1
  349. package/build/server/chunks/14-CPY578rT.js +0 -9
  350. package/build/server/chunks/14-CPY578rT.js.map +0 -1
  351. package/build/server/chunks/2-_1jFrcvz.js +0 -13
  352. package/build/server/chunks/2-_1jFrcvz.js.map +0 -1
  353. package/build/server/chunks/4-CcxCcH4F.js +0 -13
  354. package/build/server/chunks/4-CcxCcH4F.js.map +0 -1
  355. package/build/server/chunks/5-CrlH6VoB.js +0 -13
  356. package/build/server/chunks/5-CrlH6VoB.js.map +0 -1
  357. package/build/server/chunks/6-FkP678Uz.js +0 -13
  358. package/build/server/chunks/6-FkP678Uz.js.map +0 -1
  359. package/build/server/chunks/7-B1iCe7VA.js +0 -13
  360. package/build/server/chunks/7-B1iCe7VA.js.map +0 -1
  361. package/build/server/chunks/8-p6n9G-P_.js +0 -13
  362. package/build/server/chunks/8-p6n9G-P_.js.map +0 -1
  363. package/build/server/chunks/9-fc3lKB7X.js +0 -13
  364. package/build/server/chunks/9-fc3lKB7X.js.map +0 -1
  365. package/build/server/chunks/_layout.svelte-9KMUotip.js.map +0 -1
  366. package/build/server/chunks/_page.svelte-BD3HmLo_.js.map +0 -1
  367. package/build/server/chunks/_page.svelte-BFzPdJ6z.js.map +0 -1
  368. package/build/server/chunks/_page.svelte-BIxxuzff.js.map +0 -1
  369. package/build/server/chunks/_page.svelte-Bou2_u6i.js +0 -13
  370. package/build/server/chunks/_page.svelte-C25oQ2NT.js.map +0 -1
  371. package/build/server/chunks/_page.svelte-CAzWL4aq.js.map +0 -1
  372. package/build/server/chunks/_page.svelte-Ci5V-DhL.js.map +0 -1
  373. package/build/server/chunks/_page.svelte-CnfRSJsl.js.map +0 -1
  374. package/build/server/chunks/_page.svelte-DgyZKeaF.js.map +0 -1
  375. package/build/server/chunks/_page.svelte-cAsZlwLs.js.map +0 -1
  376. package/build/server/chunks/_page.svelte-rrN2zFNa.js.map +0 -1
  377. package/build/server/chunks/error.svelte-DTrQqomO.js.map +0 -1
  378. package/build/server/chunks/index-DJrm8BZm.js.map +0 -1
  379. package/build/server/chunks/index-eKiDBuyI.js.map +0 -1
  380. package/build/server/chunks/user2-Coq3Frtw.js.map +0 -1
  381. package/build/server/chunks/utils-DlBYhQz7.js.map +0 -1
  382. package/dist/apps.d.ts +0 -6
  383. package/dist/apps.js +0 -6
  384. package/dist/plugins.d.ts +0 -14
  385. package/dist/plugins.js +0 -64
  386. /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<"error" | "debug" | "Emergency" | "Alert" | "Critical" | "Error" | "Warning" | "Notice" | "Info" | "Debug" | "emergency" | "alert" | "critical" | "warning" | "notice" | "info">>;
13
- auto_suspend: z.ZodOptional<z.ZodLiteral<"error" | "debug" | "Emergency" | "Alert" | "Critical" | "Error" | "Warning" | "Notice" | "Info" | "Debug" | "emergency" | "alert" | "critical" | "warning" | "notice" | "info">>;
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<"error" | "debug" | "Emergency" | "Alert" | "Critical" | "Error" | "Warning" | "Notice" | "Info" | "Debug" | "emergency" | "alert" | "critical" | "warning" | "notice" | "info">>;
86
- auto_suspend: z.ZodOptional<z.ZodLiteral<"error" | "debug" | "Emergency" | "Alert" | "Critical" | "Error" | "Warning" | "Notice" | "Info" | "Debug" | "emergency" | "alert" | "critical" | "warning" | "notice" | "info">>;
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 { _setDebugOutput, dirs, logger, output } from './io.js';
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.array(z.string()),
156
- plugins: z.array(z.string()),
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(output);
178
+ logger.detach(io);
178
179
  if (config.log.console)
179
- logger.attach(output, { output: config.log.level });
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
- output.debug(`Skipping config at ${path} (${e.message})`);
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
- output.debug(`Loading invalid config from ${path} (${e.message})`);
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
- output.debug('Loaded config: ' + path);
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
- output.info('Reloaded configuration files');
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
- output.debug(`Wrote config to ${path}`);
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 * as io from './io.js';
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.plugin(plugin.name);
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.plugin(plugin.name);
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.plugin(plugin.name);
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.plugin(plugin.name);
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 run('Finding setcap', 'command -v setcap')
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 run('Finding node', 'command -v node')
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
  }
@@ -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 declare function createSessionData(userId: string, elevated?: boolean): Promise<Response>;
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 'cookie';
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 './apps.js';
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
- output.debug('Added route: ' + route.path);
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
@@ -1,5 +1,9 @@
1
1
  import '@axium/server/api/index';
2
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;
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 { _debugOutput, dirs, logger, output } from '@axium/server/io';
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
- output.debug(`Loaded plugin handler: ${plugin.name}`);
87
+ debug(`Loaded plugin handler: ${plugin.name}`);
83
88
  }
84
89
  catch (e) {
85
- output.warn(`Failed to load plugin HTTP handler for ${plugin.name} ${_debugOutput ? ': ' + (e instanceof Error ? e.message : e) : ''}`);
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
- output.info('Reloading configuration due to SIGHUP.');
186
+ info('Reloading configuration due to SIGHUP.');
182
187
  void reloadConfigs();
183
188
  });
184
189
  }