@axium/server 0.22.13 → 0.23.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 (105) hide show
  1. package/build/client/_app/immutable/chunks/{XdRahthI.js → B1E1cVbi.js} +1 -1
  2. package/build/client/_app/immutable/chunks/B1E1cVbi.js.br +0 -0
  3. package/build/client/_app/immutable/chunks/B1E1cVbi.js.gz +0 -0
  4. package/build/client/_app/immutable/chunks/{Dext3JFj.js → Ci6FLQWx.js} +1 -1
  5. package/build/client/_app/immutable/chunks/Ci6FLQWx.js.br +0 -0
  6. package/build/client/_app/immutable/chunks/Ci6FLQWx.js.gz +0 -0
  7. package/build/client/_app/immutable/chunks/DJeR1n-B.js +51 -0
  8. package/build/client/_app/immutable/chunks/DJeR1n-B.js.br +0 -0
  9. package/build/client/_app/immutable/chunks/DJeR1n-B.js.gz +0 -0
  10. package/build/client/_app/immutable/entry/{app.C5LuJT06.js → app.DajZ-3z_.js} +2 -2
  11. package/build/client/_app/immutable/entry/app.DajZ-3z_.js.br +0 -0
  12. package/build/client/_app/immutable/entry/app.DajZ-3z_.js.gz +0 -0
  13. package/build/client/_app/immutable/entry/start.CjB-0vPC.js +1 -0
  14. package/build/client/_app/immutable/entry/start.CjB-0vPC.js.br +2 -0
  15. package/build/client/_app/immutable/entry/start.CjB-0vPC.js.gz +0 -0
  16. package/build/client/_app/immutable/nodes/{1.BAsobPu4.js → 1.Bvl_5X3J.js} +1 -1
  17. package/build/client/_app/immutable/nodes/1.Bvl_5X3J.js.br +0 -0
  18. package/build/client/_app/immutable/nodes/1.Bvl_5X3J.js.gz +0 -0
  19. package/build/client/_app/immutable/nodes/3.CVudd8x2.js +7 -0
  20. package/build/client/_app/immutable/nodes/3.CVudd8x2.js.br +0 -0
  21. package/build/client/_app/immutable/nodes/3.CVudd8x2.js.gz +0 -0
  22. package/build/client/_app/immutable/nodes/{4.eINJOagY.js → 4.Dhj0R0r7.js} +1 -1
  23. package/build/client/_app/immutable/nodes/4.Dhj0R0r7.js.br +0 -0
  24. package/build/client/_app/immutable/nodes/4.Dhj0R0r7.js.gz +0 -0
  25. package/build/client/_app/immutable/nodes/5.CGoBaVII.js +1 -0
  26. package/build/client/_app/immutable/nodes/5.CGoBaVII.js.br +0 -0
  27. package/build/client/_app/immutable/nodes/5.CGoBaVII.js.gz +0 -0
  28. package/build/client/_app/immutable/nodes/{6.BbgUOuKV.js → 6.BtB2uWXy.js} +1 -1
  29. package/build/client/_app/immutable/nodes/6.BtB2uWXy.js.br +0 -0
  30. package/build/client/_app/immutable/nodes/6.BtB2uWXy.js.gz +0 -0
  31. package/build/client/_app/version.json +1 -1
  32. package/build/client/_app/version.json.br +0 -0
  33. package/build/client/_app/version.json.gz +0 -0
  34. package/build/server/chunks/{1-5bszWZCQ.js → 1-C1tGJX1L.js} +2 -2
  35. package/build/server/chunks/{1-5bszWZCQ.js.map → 1-C1tGJX1L.js.map} +1 -1
  36. package/build/server/chunks/{3-CGyRgNsB.js → 3-Ds69w-dU.js} +3 -3
  37. package/build/server/chunks/{3-CGyRgNsB.js.map → 3-Ds69w-dU.js.map} +1 -1
  38. package/build/server/chunks/{4-BuMxaapL.js → 4-BscEiwUk.js} +3 -3
  39. package/build/server/chunks/{4-BuMxaapL.js.map → 4-BscEiwUk.js.map} +1 -1
  40. package/build/server/chunks/{5-BhHQT7ic.js → 5-H0ePIJBE.js} +3 -3
  41. package/build/server/chunks/{5-BhHQT7ic.js.map → 5-H0ePIJBE.js.map} +1 -1
  42. package/build/server/chunks/{6-Do2XsDIk.js → 6-BrPpcagX.js} +3 -3
  43. package/build/server/chunks/{6-Do2XsDIk.js.map → 6-BrPpcagX.js.map} +1 -1
  44. package/build/server/chunks/{FormDialog-BemX_bll.js → FormDialog-CB-2YGWi.js} +29 -26
  45. package/build/server/chunks/{FormDialog-BemX_bll.js.map → FormDialog-CB-2YGWi.js.map} +1 -1
  46. package/build/server/chunks/{Logout-BhQS74v2.js → Logout-LKOt-AST.js} +2 -2
  47. package/build/server/chunks/{Logout-BhQS74v2.js.map → Logout-LKOt-AST.js.map} +1 -1
  48. package/build/server/chunks/_page.svelte-B1LK5J87.js +11 -0
  49. package/build/server/chunks/{_page.svelte-BdL0IPY2.js.map → _page.svelte-B1LK5J87.js.map} +1 -1
  50. package/build/server/chunks/{_page.svelte-Q_wBpED1.js → _page.svelte-CMtkwvbP.js} +3 -3
  51. package/build/server/chunks/{_page.svelte-Q_wBpED1.js.map → _page.svelte-CMtkwvbP.js.map} +1 -1
  52. package/build/server/chunks/{_page.svelte-Cw9An0SZ.js → _page.svelte-CbI2KxeA.js} +3 -3
  53. package/build/server/chunks/{_page.svelte-Cw9An0SZ.js.map → _page.svelte-CbI2KxeA.js.map} +1 -1
  54. package/build/server/chunks/{_page.svelte-D6BUZio7.js → _page.svelte-dZWfu9yR.js} +7 -4
  55. package/build/server/chunks/_page.svelte-dZWfu9yR.js.map +1 -0
  56. package/build/server/chunks/{hooks.server-B7iBt6uC.js → hooks.server-BBmyHiWm.js} +169 -152
  57. package/build/server/chunks/hooks.server-BBmyHiWm.js.map +1 -0
  58. package/build/server/chunks/{index-wXTeP1jh.js → index-CvHf_GW2.js} +257 -275
  59. package/build/server/chunks/index-CvHf_GW2.js.map +1 -0
  60. package/build/server/index.js +3 -3
  61. package/build/server/index.js.map +1 -1
  62. package/build/server/manifest.js +6 -6
  63. package/build/server/manifest.js.map +1 -1
  64. package/dist/api/metadata.js +3 -4
  65. package/dist/api/passkeys.js +1 -1
  66. package/dist/api/register.js +3 -3
  67. package/dist/api/users.js +5 -4
  68. package/dist/apps.d.ts +1 -4
  69. package/dist/apps.js +0 -5
  70. package/dist/auth.d.ts +1 -3
  71. package/dist/auth.js +1 -1
  72. package/dist/config.d.ts +6 -6
  73. package/dist/plugins.d.ts +12 -0
  74. package/dist/plugins.js +8 -0
  75. package/dist/requests.js +4 -2
  76. package/package.json +2 -2
  77. package/web/template.html +0 -3
  78. package/build/client/_app/immutable/chunks/CiUsfGrc.js +0 -43
  79. package/build/client/_app/immutable/chunks/CiUsfGrc.js.br +0 -0
  80. package/build/client/_app/immutable/chunks/CiUsfGrc.js.gz +0 -0
  81. package/build/client/_app/immutable/chunks/Dext3JFj.js.br +0 -0
  82. package/build/client/_app/immutable/chunks/Dext3JFj.js.gz +0 -0
  83. package/build/client/_app/immutable/chunks/XdRahthI.js.br +0 -0
  84. package/build/client/_app/immutable/chunks/XdRahthI.js.gz +0 -0
  85. package/build/client/_app/immutable/entry/app.C5LuJT06.js.br +0 -0
  86. package/build/client/_app/immutable/entry/app.C5LuJT06.js.gz +0 -0
  87. package/build/client/_app/immutable/entry/start.BQJupvGE.js +0 -1
  88. package/build/client/_app/immutable/entry/start.BQJupvGE.js.br +0 -2
  89. package/build/client/_app/immutable/entry/start.BQJupvGE.js.gz +0 -0
  90. package/build/client/_app/immutable/nodes/1.BAsobPu4.js.br +0 -0
  91. package/build/client/_app/immutable/nodes/1.BAsobPu4.js.gz +0 -0
  92. package/build/client/_app/immutable/nodes/3.C18mc0nK.js +0 -7
  93. package/build/client/_app/immutable/nodes/3.C18mc0nK.js.br +0 -0
  94. package/build/client/_app/immutable/nodes/3.C18mc0nK.js.gz +0 -0
  95. package/build/client/_app/immutable/nodes/4.eINJOagY.js.br +0 -0
  96. package/build/client/_app/immutable/nodes/4.eINJOagY.js.gz +0 -0
  97. package/build/client/_app/immutable/nodes/5.DITFCLgK.js +0 -1
  98. package/build/client/_app/immutable/nodes/5.DITFCLgK.js.br +0 -0
  99. package/build/client/_app/immutable/nodes/5.DITFCLgK.js.gz +0 -0
  100. package/build/client/_app/immutable/nodes/6.BbgUOuKV.js.br +0 -0
  101. package/build/client/_app/immutable/nodes/6.BbgUOuKV.js.gz +0 -0
  102. package/build/server/chunks/_page.svelte-BdL0IPY2.js +0 -11
  103. package/build/server/chunks/_page.svelte-D6BUZio7.js.map +0 -1
  104. package/build/server/chunks/hooks.server-B7iBt6uC.js.map +0 -1
  105. package/build/server/chunks/index-wXTeP1jh.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_page.svelte-dZWfu9yR.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/account/_page.svelte.js"],"sourcesContent":["import { u as push, z as spread_attributes, F as attr, w as pop, G as props_id, J as copy_payload, K as assign_payload, N as bind_props, O as css_props, P as ensure_array_like, Q as maybe_selected, y as escape_html, T as stringify, V as head, W as attr_style } from \"../../../chunks/index.js\";\nimport { p as preferenceDefaults, a as preferenceSchemas, b as preferenceLabels, g as getUserImage, d as deleteUser, u as updatePasskey, c as deletePasskey, l as logout, e as logoutAll, f as updateUser } from \"../../../chunks/user.js\";\nimport \"mime\";\nimport { F as FormDialog } from \"../../../chunks/FormDialog.js\";\nimport \"clsx\";\nimport { getByString, pick } from \"utilium\";\nimport { L as Logout } from \"../../../chunks/Logout.js\";\nfunction zIs(schema, type) {\n return schema.def.type == type;\n}\nconst $$css$4 = {\n hash: \"svelte-1l501sr\",\n code: \"svg.svelte-1l501sr {width:var(--size, 1em);height:var(--size, 1em);display:inline-block;fill:var(--fill, hsl(var(--hue) 0 var(--fg-light)));}\"\n};\nfunction Icon($$payload, $$props) {\n $$payload.css.add($$css$4);\n push();\n const { i, $$slots, $$events, ...rest } = $$props;\n const [style, id] = i.includes(\"/\") ? i.split(\"/\") : [\"solid\", i];\n const href = `/icons/${style}.svg#${id}`;\n $$payload.out.push(`<svg${spread_attributes(\n {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 512 512\",\n width: \"1em\",\n height: \"1em\",\n ...rest\n },\n \"svelte-1l501sr\",\n void 0,\n void 0,\n 3\n )}><use${attr(\"href\", href)}></use></svg>`);\n pop();\n}\nconst $$css$3 = {\n hash: \"svelte-g409dh\",\n code: \"button.svelte-g409dh {position:relative;display:inline-block;width:1em;height:1em;border:none;background:transparent;}span.svelte-g409dh {position:absolute;inset:0;}\"\n};\nfunction ClipboardCopy($$payload, $$props) {\n $$payload.css.add($$css$3);\n push();\n $$payload.out.push(`<button class=\"svelte-g409dh\">`);\n {\n $$payload.out.push(\"<!--[!-->\");\n $$payload.out.push(`<span class=\"svelte-g409dh\">`);\n Icon($$payload, { i: \"copy\" });\n $$payload.out.push(`<!----></span>`);\n }\n $$payload.out.push(`<!--]--></button>`);\n pop();\n}\nconst $$css$2 = {\n hash: \"svelte-23hpnn\",\n code: \"input[type='checkbox'].svelte-23hpnn {display:none;}label.checkbox.svelte-23hpnn {cursor:pointer;width:1.5em;height:1.5em;border:1px solid var(--border-accent);border-radius:0.5em;display:inline-flex;justify-content:center;align-items:center;}\"\n};\nfunction Preference_1($$payload, $$props) {\n $$payload.css.add($$css$2);\n push();\n const id = props_id($$payload);\n let { preferences = void 0, userId, path, schema, optional = false } = $$props;\n let checked = schema.def.type == \"boolean\" && getByString(preferences, path);\n const initialValue = getByString(preferences, path) ?? getByString(preferenceDefaults, path);\n function dateAttr(date, format) {\n if (!date) return null;\n const pad = (n) => String(n).padStart(2, \"0\");\n const yyyy = date.getFullYear();\n const mm = pad(date.getMonth() + 1);\n const dd = pad(date.getDate());\n const dateStr = `${yyyy}-${mm}-${dd}`;\n const HH = pad(date.getHours());\n const MM = pad(date.getMinutes());\n const timeStr = `${HH}:${MM}`;\n switch (format) {\n case \"date\":\n return dateStr;\n case \"time\":\n return timeStr;\n case \"time+sec\":\n return `${timeStr}:${pad(date.getSeconds())}`;\n case \"datetime\":\n default:\n return `${dateStr}T${timeStr}`;\n }\n }\n function _in($$payload2, rest) {\n $$payload2.out.push(`<input${spread_attributes({ id, ...rest, value: initialValue, required: !optional }, \"svelte-23hpnn\")}/>`);\n }\n let $$settled = true;\n let $$inner_payload;\n function $$render_inner($$payload2) {\n if (zIs(schema, \"string\")) {\n $$payload2.out.push(\"<!--[-->\");\n _in($$payload2, {\n type: schema.format == \"email\" ? \"email\" : \"text\",\n ...pick(schema, \"minLength\", \"maxLength\")\n });\n } else {\n $$payload2.out.push(\"<!--[!-->\");\n if (zIs(schema, \"number\")) {\n $$payload2.out.push(\"<!--[-->\");\n _in($$payload2, {\n type: \"number\",\n min: schema.minValue,\n max: schema.maxValue,\n step: schema.format?.includes(\"int\") ? 1 : 0.1\n });\n } else {\n $$payload2.out.push(\"<!--[!-->\");\n if (zIs(schema, \"bigint\")) {\n $$payload2.out.push(\"<!--[-->\");\n _in($$payload2, {\n type: \"number\",\n min: Number(schema.minValue),\n max: Number(schema.maxValue),\n step: 1\n });\n } else {\n $$payload2.out.push(\"<!--[!-->\");\n if (zIs(schema, \"boolean\")) {\n $$payload2.out.push(\"<!--[-->\");\n $$payload2.out.push(`<input${attr(\"checked\", checked, true)}${attr(\"id\", id)} type=\"checkbox\"${attr(\"required\", !optional, true)} class=\"svelte-23hpnn\"/> <label${attr(\"for\", id)} class=\"checkbox svelte-23hpnn\">`);\n if (checked) {\n $$payload2.out.push(\"<!--[-->\");\n css_props($$payload2, true, { \"--size\": \"1.3em\" }, () => {\n Icon($$payload2, { i: \"check\" });\n });\n } else {\n $$payload2.out.push(\"<!--[!-->\");\n }\n $$payload2.out.push(`<!--]--></label>`);\n } else {\n $$payload2.out.push(\"<!--[!-->\");\n if (zIs(schema, \"date\")) {\n $$payload2.out.push(\"<!--[-->\");\n _in($$payload2, {\n type: \"date\",\n min: dateAttr(schema.minDate, \"date\"),\n max: dateAttr(schema.maxDate, \"date\")\n });\n } else {\n $$payload2.out.push(\"<!--[!-->\");\n if (zIs(schema, \"file\")) {\n $$payload2.out.push(\"<!--[-->\");\n } else {\n $$payload2.out.push(\"<!--[!-->\");\n if (zIs(schema, \"literal\")) {\n $$payload2.out.push(\"<!--[-->\");\n const each_array = ensure_array_like(schema.values);\n $$payload2.out.push(`<select${attr(\"id\", id)}${attr(\"required\", !optional, true)}><!--[-->`);\n for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {\n let value = each_array[$$index];\n $$payload2.out.push(`<option${attr(\"value\", value)}${maybe_selected($$payload2, value)}${attr(\"selected\", initialValue === value, true)}>${escape_html(value)}</option>`);\n }\n $$payload2.out.push(`<!--]--></select>`);\n } else {\n $$payload2.out.push(\"<!--[!-->\");\n if (zIs(schema, \"template_literal\")) {\n $$payload2.out.push(\"<!--[-->\");\n } else {\n $$payload2.out.push(\"<!--[!-->\");\n if (zIs(schema, \"nullable\") || zIs(schema, \"optional\")) {\n $$payload2.out.push(\"<!--[-->\");\n Preference_1($$payload2, {\n userId,\n path,\n schema: schema.def.innerType,\n optional: true,\n get preferences() {\n return preferences;\n },\n set preferences($$value) {\n preferences = $$value;\n $$settled = false;\n }\n });\n } else {\n $$payload2.out.push(\"<!--[!-->\");\n if (zIs(schema, \"array\")) {\n $$payload2.out.push(\"<!--[-->\");\n const each_array_1 = ensure_array_like(initialValue);\n $$payload2.out.push(`<div class=\"pref-sub\"><!--[-->`);\n for (let i = 0, $$length = each_array_1.length; i < $$length; i++) {\n $$payload2.out.push(`<div class=\"pref-record-entry\">`);\n Preference_1($$payload2, {\n userId,\n path: `${stringify(path)}.${stringify(i)}`,\n schema: schema.element,\n get preferences() {\n return preferences;\n },\n set preferences($$value) {\n preferences = $$value;\n $$settled = false;\n }\n });\n $$payload2.out.push(`<!----></div>`);\n }\n $$payload2.out.push(`<!--]--></div>`);\n } else {\n $$payload2.out.push(\"<!--[!-->\");\n if (zIs(schema, \"record\")) {\n $$payload2.out.push(\"<!--[-->\");\n const each_array_2 = ensure_array_like(Object.keys(initialValue));\n $$payload2.out.push(`<div class=\"pref-sub\"><!--[-->`);\n for (let $$index_2 = 0, $$length = each_array_2.length; $$index_2 < $$length; $$index_2++) {\n let key = each_array_2[$$index_2];\n $$payload2.out.push(`<div class=\"pref-record-entry\"><label${attr(\"for\", id)}>${escape_html(key)}</label> `);\n Preference_1($$payload2, {\n userId,\n path: `${stringify(path)}.${stringify(key)}`,\n schema: schema.valueType,\n get preferences() {\n return preferences;\n },\n set preferences($$value) {\n preferences = $$value;\n $$settled = false;\n }\n });\n $$payload2.out.push(`<!----></div>`);\n }\n $$payload2.out.push(`<!--]--></div>`);\n } else {\n $$payload2.out.push(\"<!--[!-->\");\n if (zIs(schema, \"object\")) {\n $$payload2.out.push(\"<!--[-->\");\n const each_array_3 = ensure_array_like(Object.entries(schema.shape));\n $$payload2.out.push(`<!--[-->`);\n for (let $$index_3 = 0, $$length = each_array_3.length; $$index_3 < $$length; $$index_3++) {\n let [key, value] = each_array_3[$$index_3];\n $$payload2.out.push(`<div class=\"pref-sub\"><label${attr(\"for\", id)}>${escape_html(key)}</label> `);\n Preference_1($$payload2, {\n userId,\n path: `${stringify(path)}.${stringify(key)}`,\n schema: value,\n get preferences() {\n return preferences;\n },\n set preferences($$value) {\n preferences = $$value;\n $$settled = false;\n }\n });\n $$payload2.out.push(`<!----></div>`);\n }\n $$payload2.out.push(`<!--]-->`);\n } else {\n $$payload2.out.push(\"<!--[!-->\");\n if (zIs(schema, \"tuple\")) {\n $$payload2.out.push(\"<!--[-->\");\n const each_array_4 = ensure_array_like(schema.def.items);\n $$payload2.out.push(`<div class=\"pref-sub\"${attr(\"data-rest\", schema.def.rest)}><!--[-->`);\n for (let i = 0, $$length = each_array_4.length; i < $$length; i++) {\n let item = each_array_4[i];\n Preference_1($$payload2, {\n userId,\n path: `${stringify(path)}.${stringify(i)}`,\n schema: item,\n get preferences() {\n return preferences;\n },\n set preferences($$value) {\n preferences = $$value;\n $$settled = false;\n }\n });\n }\n $$payload2.out.push(`<!--]--></div>`);\n } else {\n $$payload2.out.push(\"<!--[!-->\");\n if (zIs(schema, \"enum\")) {\n $$payload2.out.push(\"<!--[-->\");\n const each_array_5 = ensure_array_like(Object.entries(schema.enum));\n $$payload2.out.push(`<select${attr(\"id\", id)}${attr(\"required\", !optional, true)}><!--[-->`);\n for (let $$index_5 = 0, $$length = each_array_5.length; $$index_5 < $$length; $$index_5++) {\n let [key, value] = each_array_5[$$index_5];\n $$payload2.out.push(`<option${attr(\"value\", value)}${maybe_selected($$payload2, value)}${attr(\"selected\", initialValue === value, true)}>${escape_html(key)}</option>`);\n }\n $$payload2.out.push(`<!--]--></select>`);\n } else {\n $$payload2.out.push(\"<!--[!-->\");\n $$payload2.out.push(`<i class=\"error-text\">Invalid preference type: ${escape_html(JSON.stringify(schema?.def?.type))}</i>`);\n }\n $$payload2.out.push(`<!--]-->`);\n }\n $$payload2.out.push(`<!--]-->`);\n }\n $$payload2.out.push(`<!--]-->`);\n }\n $$payload2.out.push(`<!--]-->`);\n }\n $$payload2.out.push(`<!--]-->`);\n }\n $$payload2.out.push(`<!--]-->`);\n }\n $$payload2.out.push(`<!--]-->`);\n }\n $$payload2.out.push(`<!--]-->`);\n }\n $$payload2.out.push(`<!--]-->`);\n }\n $$payload2.out.push(`<!--]-->`);\n }\n $$payload2.out.push(`<!--]-->`);\n }\n $$payload2.out.push(`<!--]-->`);\n }\n $$payload2.out.push(`<!--]-->`);\n }\n $$payload2.out.push(`<!--]-->`);\n }\n do {\n $$settled = true;\n $$inner_payload = copy_payload($$payload);\n $$render_inner($$inner_payload);\n } while (!$$settled);\n assign_payload($$payload, $$inner_payload);\n bind_props($$props, { preferences });\n pop();\n}\nconst $$css$1 = {\n hash: \"svelte-b9ddyh\",\n code: \".pref.svelte-b9ddyh {display:grid;grid-template-columns:1fr 1fr;gap:1em;}\"\n};\nfunction Preferences($$payload, $$props) {\n $$payload.css.add($$css$1);\n push();\n const id = props_id($$payload);\n let { preferences = void 0, userId } = $$props;\n let $$settled = true;\n let $$inner_payload;\n function $$render_inner($$payload2) {\n const each_array = ensure_array_like(Object.keys(preferenceSchemas));\n $$payload2.out.push(`<!--[-->`);\n for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {\n let path = each_array[$$index];\n $$payload2.out.push(`<div class=\"pref svelte-b9ddyh\"><label${attr(\"for\", id)}>${escape_html(preferenceLabels[path])}</label> `);\n Preference_1($$payload2, {\n userId,\n path,\n schema: preferenceSchemas[path],\n get preferences() {\n return preferences;\n },\n set preferences($$value) {\n preferences = $$value;\n $$settled = false;\n }\n });\n $$payload2.out.push(`<!----></div>`);\n }\n $$payload2.out.push(`<!--]-->`);\n }\n do {\n $$settled = true;\n $$inner_payload = copy_payload($$payload);\n $$render_inner($$inner_payload);\n } while (!$$settled);\n assign_payload($$payload, $$inner_payload);\n bind_props($$props, { preferences });\n pop();\n}\nconst $$css = {\n hash: \"svelte-c74k6c\",\n code: \"#pfp-container.svelte-c74k6c {width:100px;height:100px;margin-top:3em;.MenuToggle {float:right;position:relative;top:-24px;}}#pfp.svelte-c74k6c {width:100px;height:100px;border-radius:50%;border:1px solid #8888;}.greeting.svelte-c74k6c {font-size:2em;}.signout.svelte-c74k6c {margin-top:2em;}.section.svelte-c74k6c {width:50%;padding-top:4em;\\n\\n\t\t/* This is causing duplicate separators when removing sessions/passkeys\\n\t\t> div:has(+ div) {\\n\t\t\tborder-bottom: 1px solid #8888;\\n\t\t}\\n\t\t*/}.section.svelte-c74k6c .item:where(.svelte-c74k6c) {display:grid;align-items:center;width:100%;gap:1em;text-wrap:nowrap;border-top:1px solid #8888;padding-bottom:1em;}.info.svelte-c74k6c {grid-template-columns:10em 1fr 2em;> :where(.svelte-c74k6c):first-child {margin-left:1em;}> :where(.svelte-c74k6c):nth-child(2) {text-overflow:ellipsis;overflow:hidden;}}.passkey.svelte-c74k6c {grid-template-columns:1em 1em 1fr 1fr 1em 1em;dfn:where(.svelte-c74k6c):not(.disabled) {cursor:help;}}.session.svelte-c74k6c {grid-template-columns:1fr 1fr 1fr 1em;.current:where(.svelte-c74k6c) {border-radius:2em;padding:0 0.5em;background-color:#337;}.elevated:where(.svelte-c74k6c) {border-radius:2em;padding:0 0.5em;background-color:#733;}}\"\n};\nfunction _page($$payload, $$props) {\n $$payload.css.add($$css);\n push();\n const { data } = $$props;\n const { canVerify } = data;\n const dialogs = {};\n let currentSession = data.currentSession;\n let user = data.user;\n let passkeys = data.passkeys;\n let sessions = data.sessions;\n async function _editUser(data2) {\n const result = await updateUser(user.id, data2);\n user = result;\n }\n function action($$payload2, name, i = \"pen\") {\n $$payload2.out.push(`<button class=\"svelte-c74k6c\"${attr_style(\"\", { display: \"contents\" })}>`);\n css_props($$payload2, true, { \"--size\": \"16px\" }, () => {\n Icon($$payload2, { i });\n });\n $$payload2.out.push(`</button>`);\n }\n let $$settled = true;\n let $$inner_payload;\n function $$render_inner($$payload2) {\n const each_array = ensure_array_like(passkeys);\n const each_array_1 = ensure_array_like(sessions);\n head($$payload2, ($$payload3) => {\n $$payload3.title = `<title>Account</title>`;\n });\n $$payload2.out.push(`<div class=\"Account flex-content\"><div id=\"pfp-container\" class=\"svelte-c74k6c\"><img id=\"pfp\"${attr(\"src\", getUserImage(user))} alt=\"User profile\" width=\"100px\" height=\"100px\" class=\"svelte-c74k6c\"/></div> <p class=\"greeting svelte-c74k6c\">Welcome, ${escape_html(user.name)}</p> <div class=\"section main svelte-c74k6c\"><h3>Personal Information</h3> <div class=\"item info svelte-c74k6c\"><p class=\"subtle svelte-c74k6c\">Name</p> <p class=\"svelte-c74k6c\">${escape_html(user.name)}</p> `);\n action($$payload2);\n $$payload2.out.push(`<!----></div> `);\n FormDialog($$payload2, {\n submit: _editUser,\n submitText: \"Change\",\n get dialog() {\n return dialogs.edit_name;\n },\n set dialog($$value) {\n dialogs.edit_name = $$value;\n $$settled = false;\n },\n children: ($$payload3) => {\n $$payload3.out.push(`<div><label for=\"name\">What do you want to be called?</label> <input name=\"name\" type=\"text\"${attr(\"value\", user.name || \"\")} required/></div>`);\n },\n $$slots: { default: true }\n });\n $$payload2.out.push(`<!----> <div class=\"item info svelte-c74k6c\"><p class=\"subtle svelte-c74k6c\">Email</p> <p class=\"svelte-c74k6c\">${escape_html(user.email)} `);\n if (user.emailVerified) {\n $$payload2.out.push(\"<!--[-->\");\n $$payload2.out.push(`<dfn${attr(\"title\", `Email verified on ${stringify(user.emailVerified.toLocaleDateString())}`)}>`);\n Icon($$payload2, { i: \"regular/circle-check\" });\n $$payload2.out.push(`<!----></dfn>`);\n } else {\n $$payload2.out.push(\"<!--[!-->\");\n if (canVerify) {\n $$payload2.out.push(\"<!--[-->\");\n $$payload2.out.push(`<button>${escape_html(\"Verify\")}</button>`);\n } else {\n $$payload2.out.push(\"<!--[!-->\");\n }\n $$payload2.out.push(`<!--]-->`);\n }\n $$payload2.out.push(`<!--]--></p> `);\n action($$payload2);\n $$payload2.out.push(`<!----></div> `);\n FormDialog($$payload2, {\n submit: _editUser,\n submitText: \"Change\",\n get dialog() {\n return dialogs.edit_email;\n },\n set dialog($$value) {\n dialogs.edit_email = $$value;\n $$settled = false;\n },\n children: ($$payload3) => {\n $$payload3.out.push(`<div><label for=\"email\">Email Address</label> <input name=\"email\" type=\"email\"${attr(\"value\", user.email || \"\")} required/></div>`);\n },\n $$slots: { default: true }\n });\n $$payload2.out.push(`<!----> <div class=\"item info svelte-c74k6c\"><p class=\"subtle svelte-c74k6c\">User ID <dfn title=\"This is your UUID. It can't be changed.\">`);\n Icon($$payload2, { i: \"regular/circle-info\" });\n $$payload2.out.push(`<!----></dfn></p> <p class=\"svelte-c74k6c\">${escape_html(user.id)}</p> `);\n css_props($$payload2, true, { \"--size\": \"16px\" }, () => {\n ClipboardCopy($$payload2, { value: user.id });\n });\n $$payload2.out.push(`</div> <span><button class=\"signout svelte-c74k6c\">Sign Out</button> <button class=\"danger\"${attr_style(\"\", { cursor: \"pointer\" })}>Delete Account</button> `);\n Logout($$payload2, {\n get dialog() {\n return dialogs.logout;\n },\n set dialog($$value) {\n dialogs.logout = $$value;\n $$settled = false;\n }\n });\n $$payload2.out.push(`<!----> `);\n FormDialog($$payload2, {\n submit: () => deleteUser(user.id).then(() => window.location.href = \"/\"),\n submitText: \"Delete Account\",\n submitDanger: true,\n get dialog() {\n return dialogs.delete;\n },\n set dialog($$value) {\n dialogs.delete = $$value;\n $$settled = false;\n },\n children: ($$payload3) => {\n $$payload3.out.push(`<p>Are you sure you want to delete your account?<br/>This action can't be undone.</p>`);\n },\n $$slots: { default: true }\n });\n $$payload2.out.push(`<!----></span></div> <div class=\"section main svelte-c74k6c\"><h3>Passkeys</h3> <!--[-->`);\n for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {\n let passkey = each_array[$$index];\n $$payload2.out.push(`<div class=\"item passkey svelte-c74k6c\"><dfn${attr(\"title\", passkey.deviceType == \"multiDevice\" ? \"Multiple devices\" : \"Single device\")} class=\"svelte-c74k6c\">`);\n css_props($$payload2, true, { \"--size\": \"16px\" }, () => {\n Icon($$payload2, {\n i: passkey.deviceType == \"multiDevice\" ? \"laptop-mobile\" : \"mobile\"\n });\n });\n $$payload2.out.push(`</dfn> <dfn${attr(\"title\", `This passkey is ${stringify(passkey.backedUp ? \"\" : \"not \")}backed up`)} class=\"svelte-c74k6c\">`);\n css_props($$payload2, true, { \"--size\": \"16px\" }, () => {\n Icon($$payload2, { i: passkey.backedUp ? \"circle-check\" : \"circle-xmark\" });\n });\n $$payload2.out.push(`</dfn> `);\n if (passkey.name) {\n $$payload2.out.push(\"<!--[-->\");\n $$payload2.out.push(`<p>${escape_html(passkey.name)}</p>`);\n } else {\n $$payload2.out.push(\"<!--[!-->\");\n $$payload2.out.push(`<p class=\"subtle\"><i>Unnamed</i></p>`);\n }\n $$payload2.out.push(`<!--]--> <p>Created ${escape_html(passkey.createdAt.toLocaleString())}</p> `);\n action($$payload2, \"edit_passkey#\" + passkey.id);\n $$payload2.out.push(`<!----> `);\n if (passkeys.length > 1) {\n $$payload2.out.push(\"<!--[-->\");\n action($$payload2, \"delete_passkey#\" + passkey.id, \"trash\");\n } else {\n $$payload2.out.push(\"<!--[!-->\");\n $$payload2.out.push(`<dfn title=\"You must have at least one passkey\" class=\"disabled svelte-c74k6c\">`);\n css_props($$payload2, true, { \"--fill\": \"#888\", \"--size\": \"16px\" }, () => {\n Icon($$payload2, { i: \"trash-slash\" });\n });\n $$payload2.out.push(`</dfn>`);\n }\n $$payload2.out.push(`<!--]--></div> `);\n FormDialog($$payload2, {\n submit: (data2) => {\n if (typeof data2.name != \"string\") throw \"Passkey name must be a string\";\n passkey.name = data2.name;\n return updatePasskey(passkey.id, data2);\n },\n submitText: \"Change\",\n get dialog() {\n return dialogs[\"edit_passkey#\" + passkey.id];\n },\n set dialog($$value) {\n dialogs[\"edit_passkey#\" + passkey.id] = $$value;\n $$settled = false;\n },\n children: ($$payload3) => {\n $$payload3.out.push(`<div><label for=\"name\">Passkey Name</label> <input name=\"name\" type=\"text\"${attr(\"value\", passkey.name || \"\")}/></div>`);\n },\n $$slots: { default: true }\n });\n $$payload2.out.push(`<!----> `);\n FormDialog($$payload2, {\n submit: () => deletePasskey(passkey.id).then(() => passkeys.splice(passkeys.indexOf(passkey), 1)),\n submitText: \"Delete\",\n submitDanger: true,\n get dialog() {\n return dialogs[\"delete_passkey#\" + passkey.id];\n },\n set dialog($$value) {\n dialogs[\"delete_passkey#\" + passkey.id] = $$value;\n $$settled = false;\n },\n children: ($$payload3) => {\n $$payload3.out.push(`<p>Are you sure you want to delete this passkey?<br/>This action can't be undone.</p>`);\n },\n $$slots: { default: true }\n });\n $$payload2.out.push(`<!---->`);\n }\n $$payload2.out.push(`<!--]--> <span><button class=\"icon-text\">`);\n Icon($$payload2, { i: \"plus\" });\n $$payload2.out.push(`<!----> Create</button></span></div> <div class=\"section main svelte-c74k6c\"><h3>Sessions</h3> <!--[-->`);\n for (let $$index_1 = 0, $$length = each_array_1.length; $$index_1 < $$length; $$index_1++) {\n let session = each_array_1[$$index_1];\n $$payload2.out.push(`<div class=\"item session svelte-c74k6c\"><p>${escape_html(session.id.slice(0, 4))}...${escape_html(session.id.slice(-4))} `);\n if (session.id == currentSession.id) {\n $$payload2.out.push(\"<!--[-->\");\n $$payload2.out.push(`<span class=\"current svelte-c74k6c\">Current</span>`);\n } else {\n $$payload2.out.push(\"<!--[!-->\");\n }\n $$payload2.out.push(`<!--]--> `);\n if (session.elevated) {\n $$payload2.out.push(\"<!--[-->\");\n $$payload2.out.push(`<span class=\"elevated svelte-c74k6c\">Elevated</span>`);\n } else {\n $$payload2.out.push(\"<!--[!-->\");\n }\n $$payload2.out.push(`<!--]--></p> <p>Created ${escape_html(session.created.toLocaleString())}</p> <p>Expires ${escape_html(session.expires.toLocaleString())}</p> `);\n action($$payload2, \"logout#\" + session.id, \"right-from-bracket\");\n $$payload2.out.push(`<!----></div> `);\n FormDialog($$payload2, {\n submit: async () => {\n await logout(user.id, session.id);\n dialogs[\"logout#\" + session.id].remove();\n sessions.splice(sessions.indexOf(session), 1);\n if (session.id == currentSession.id) window.location.href = \"/\";\n },\n submitText: \"Logout\",\n get dialog() {\n return dialogs[\"logout#\" + session.id];\n },\n set dialog($$value) {\n dialogs[\"logout#\" + session.id] = $$value;\n $$settled = false;\n },\n children: ($$payload3) => {\n $$payload3.out.push(`<p>Are you sure you want to log out this session?</p>`);\n },\n $$slots: { default: true }\n });\n $$payload2.out.push(`<!---->`);\n }\n $$payload2.out.push(`<!--]--> <span><button class=\"danger\">Logout All</button></span> `);\n FormDialog($$payload2, {\n submit: () => logoutAll(user.id).then(() => window.location.href = \"/\"),\n submitText: \"Logout All Sessions\",\n submitDanger: true,\n get dialog() {\n return dialogs[\"logout_all\"];\n },\n set dialog($$value) {\n dialogs[\"logout_all\"] = $$value;\n $$settled = false;\n },\n children: ($$payload3) => {\n $$payload3.out.push(`<p>Are you sure you want to log out all sessions?</p>`);\n },\n $$slots: { default: true }\n });\n $$payload2.out.push(`<!----></div> <div class=\"section main svelte-c74k6c\"><h3>Preferences</h3> `);\n Preferences($$payload2, {\n userId: user.id,\n get preferences() {\n return user.preferences;\n },\n set preferences($$value) {\n user.preferences = $$value;\n $$settled = false;\n }\n });\n $$payload2.out.push(`<!----></div></div>`);\n }\n do {\n $$settled = true;\n $$inner_payload = copy_payload($$payload);\n $$render_inner($$inner_payload);\n } while (!$$settled);\n assign_payload($$payload, $$inner_payload);\n pop();\n}\nexport {\n _page as default\n};\n"],"names":[],"mappings":"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"}
@@ -8,10 +8,10 @@ import { c as capitalize, d as deepAssign, o as omit, p as pick } from './string
8
8
  import 'node:child_process';
9
9
  import { homedir } from 'node:os';
10
10
  import { styleText } from 'node:util';
11
- import { _ as _unknown, a as _tuple, b as _array, $ as $ZodUnknown, c as $ZodArray, d as $ZodTuple, p as parse, e as parseAsync, l as literal, o as object, r as record, f as any, s as string, n as number, g as array, h as _enum, u as uuid, i as email, j as boolean, k as custom, m as looseObject, q as partialRecord, t as prettifyError, v as $ZodError, w as stringbool, x as date, y as url } from './index-wXTeP1jh.js';
12
- import { serialize } from 'cookie';
11
+ import { _ as _unknown, a as _tuple, b as _array, $ as $ZodUnknown, c as $ZodArray, d as $ZodTuple, p as parse, e as parseAsync, o as object, s as string, l as literal, r as record, f as any, n as number, g as array, h as _enum, i as boolean, j as custom, k as date, u as url, m as email, q as uuid, t as looseObject, v as partialRecord, w as prettifyError, x as $ZodError, y as stringbool } from './index-CvHf_GW2.js';
13
12
  import { randomBytes, randomUUID } from 'node:crypto';
14
13
  import pg from 'pg';
14
+ import { serialize } from 'cookie';
15
15
  import * as webauthn from '@simplewebauthn/server';
16
16
  import { verifyRegistrationResponse, generateRegistrationOptions } from '@simplewebauthn/server';
17
17
  import { render } from 'svelte/server';
@@ -233,9 +233,29 @@ function prettyDate(date) {
233
233
  return `${date.getFullYear()} ${months[date.getMonth()]} ${_2(date.getDate())} ${_2(date.getHours())}:${_2(date.getMinutes())}:${_2(date.getSeconds())}.${date.getMilliseconds().toString().padStart(3, '0')}`;
234
234
  }
235
235
 
236
- function zAsyncFunction(schema) {
237
- return custom((fn) => schema.implementAsync(fn));
238
- }
236
+ var Permission;
237
+ (function (Permission) {
238
+ Permission[Permission["None"] = 0] = "None";
239
+ Permission[Permission["Read"] = 1] = "Read";
240
+ Permission[Permission["Comment"] = 2] = "Comment";
241
+ Permission[Permission["Edit"] = 3] = "Edit";
242
+ Permission[Permission["Manage"] = 5] = "Manage";
243
+ })(Permission || (Permission = {}));
244
+ ({
245
+ [Permission.None]: 'No Permissions',
246
+ [Permission.Read]: 'Reader',
247
+ [Permission.Comment]: 'Commenter',
248
+ [Permission.Edit]: 'Editor',
249
+ [Permission.Manage]: 'Manager',
250
+ });
251
+
252
+ const App = object({
253
+ id: string(),
254
+ name: string().optional(),
255
+ image: string().optional(),
256
+ icon: string().optional(),
257
+ });
258
+
239
259
  const transports = ['ble', 'cable', 'hybrid', 'internal', 'nfc', 'smart-card', 'usb'];
240
260
  const authenticatorAttachment = literal(['platform', 'cross-platform']).optional();
241
261
  const PasskeyRegistration = object({
@@ -269,24 +289,69 @@ const PasskeyAuthenticationResponse = object({
269
289
  clientExtensionResults: record(any(), any()),
270
290
  type: literal('public-key'),
271
291
  });
272
- const APIUserRegistration = object({
292
+ const PasskeyChangeable = object({ name: string() }).partial();
293
+
294
+ /**
295
+ * @internal
296
+ */
297
+ const preferenceSchemas = {
298
+ debug: boolean(),
299
+ };
300
+ /**
301
+ * @internal
302
+ */
303
+ const preferenceDefaults = {
304
+ debug: false,
305
+ };
306
+
307
+ const requestMethods = ['GET', 'POST', 'PUT', 'DELETE', 'OPTIONS', 'HEAD', 'PATCH'];
308
+
309
+ function zAsyncFunction(schema) {
310
+ return custom((fn) => schema.implementAsync(fn));
311
+ }
312
+
313
+ const User = object({
314
+ id: uuid(),
315
+ name: string().min(1, 'Name is required').max(255, 'Name is too long'),
316
+ email: email(),
317
+ emailVerified: date().nullish(),
318
+ image: url().nullish(),
319
+ preferences: record(string(), any()),
320
+ roles: array(string()),
321
+ registeredAt: date(),
322
+ });
323
+ const userPublicFields = ['id', 'image', 'name', 'registeredAt', 'roles'];
324
+ const userProtectedFields = ['email', 'emailVerified', 'preferences'];
325
+ const UserChangeable = User.pick({
326
+ name: true,
327
+ email: true,
328
+ image: true,
329
+ preferences: true,
330
+ }).partial();
331
+ const UserRegistration = object({
273
332
  name: string().min(1).max(100),
274
333
  email: email(),
275
334
  userId: uuid(),
276
335
  response: PasskeyRegistration,
277
336
  });
278
- const PasskeyChangeable = object({ name: string() }).partial();
279
337
  const UserAuthOptions = object({ type: literal(['login', 'action']) });
280
338
  const LogoutSessions = object({
281
339
  id: array(uuid()).optional(),
282
340
  confirm_all: boolean().optional(),
283
341
  });
284
342
 
343
+ const apps = _unique('apps', new Map());
344
+ const appDisabledContent = {
345
+ head: '<title>App Disabled</title>',
346
+ body: '<h1>App Disabled</h1><p>This app is currently disabled.</p>',
347
+ };
348
+
285
349
  const PluginMetadata = looseObject({
286
350
  name: string(),
287
351
  version: string(),
288
352
  description: string().optional(),
289
353
  routes: string().optional(),
354
+ apps: array(App).optional(),
290
355
  });
291
356
  const hookNames = ['db_init', 'remove', 'db_wipe', 'clean'];
292
357
  const fn = custom(data => typeof data === 'function');
@@ -306,6 +371,11 @@ async function loadPlugin(specifier) {
306
371
  if (plugin.name.startsWith('#') || plugin.name.includes(' ')) {
307
372
  throw 'Invalid plugin name. Plugin names can not start with a hash or contain spaces.';
308
373
  }
374
+ for (const app of plugin.apps ?? []) {
375
+ if (apps.has(app.id))
376
+ throw new ReferenceError(`App with ID "${app.id}" already exists.`);
377
+ apps.set(app.id, app);
378
+ }
309
379
  plugins.add(plugin);
310
380
  output$1.debug(`Loaded plugin: ${plugin.name} ${plugin.version}`);
311
381
  }
@@ -535,31 +605,10 @@ function findConfigPaths() {
535
605
  if (process.env.AXIUM_CONFIG)
536
606
  await loadConfig(process.env.AXIUM_CONFIG);
537
607
 
538
- const requestMethods = ['GET', 'POST', 'PUT', 'DELETE', 'OPTIONS', 'HEAD', 'PATCH'];
539
-
540
- var version = "0.22.13";
608
+ var version = "0.23.0";
541
609
  var pkg = {
542
610
  version: version};
543
611
 
544
- const User = object({
545
- id: uuid(),
546
- name: string().min(1, 'Name is required').max(255, 'Name is too long'),
547
- email: email(),
548
- emailVerified: date().nullish(),
549
- image: url().nullish(),
550
- preferences: record(string(), any()),
551
- roles: array(string()),
552
- registeredAt: date(),
553
- });
554
- const userPublicFields = ['id', 'image', 'name', 'registeredAt', 'roles'];
555
- const userProtectedFields = ['email', 'emailVerified', 'preferences'];
556
- const UserChangeable = User.pick({
557
- name: true,
558
- email: true,
559
- image: true,
560
- preferences: true,
561
- }).partial();
562
-
563
612
  /// <reference types="./object-utils.d.ts" />
564
613
  function isUndefined(obj) {
565
614
  return typeof obj === 'undefined' || obj === undefined;
@@ -16504,90 +16553,6 @@ addEvent({
16504
16553
  noAutoSuspend: true,
16505
16554
  });
16506
16555
 
16507
- async function getUser(id) {
16508
- return await database.selectFrom('users').selectAll().where('id', '=', id).executeTakeFirstOrThrow();
16509
- }
16510
- const in30days = () => new Date(Date.now() + 2592000000);
16511
- const in10minutes = () => new Date(Date.now() + 600000);
16512
- async function createSession(userId, elevated = false) {
16513
- const session = {
16514
- id: randomUUID(),
16515
- userId,
16516
- token: randomBytes(64).toString('base64'),
16517
- expires: elevated ? in10minutes() : in30days(),
16518
- elevated,
16519
- created: new Date(),
16520
- };
16521
- await database.insertInto('sessions').values(session).execute();
16522
- await audit('new_session', userId, { id: session.id });
16523
- return session;
16524
- }
16525
- async function getSessionAndUser(token) {
16526
- const result = await database
16527
- .selectFrom('sessions')
16528
- .selectAll()
16529
- .select(userFromId)
16530
- .where('sessions.token', '=', token)
16531
- .where('sessions.expires', '>', new Date())
16532
- .executeTakeFirstOrThrow();
16533
- if (!result.user)
16534
- throw new Error('Session references non-existing user');
16535
- return result;
16536
- }
16537
- async function getSessions(userId) {
16538
- return await database.selectFrom('sessions').selectAll().where('userId', '=', userId).where('sessions.expires', '>', new Date()).execute();
16539
- }
16540
- /**
16541
- * Create a verification
16542
- * @param expires How long the token should be valid for in seconds
16543
- */
16544
- async function createVerification(role, userId, expires) {
16545
- const token = randomBytes(64).toString('base64url');
16546
- const verification = { userId, token, expires: new Date(Date.now() + expires * 1000), role };
16547
- await database.insertInto('verifications').values(verification).executeTakeFirstOrThrow();
16548
- setTimeout(() => {
16549
- void database.deleteFrom('verifications').where('verifications.token', '=', verification.token).execute();
16550
- }, expires * 1000);
16551
- return verification;
16552
- }
16553
- async function useVerification(role, userId, token) {
16554
- const query = database
16555
- .deleteFrom('verifications')
16556
- .where('verifications.token', '=', token)
16557
- .where('verifications.userId', '=', userId)
16558
- .where('verifications.role', '=', role);
16559
- return await query.returningAll().executeTakeFirst();
16560
- }
16561
- async function getPasskey(id) {
16562
- return await database.selectFrom('passkeys').selectAll().where('id', '=', id).executeTakeFirstOrThrow();
16563
- }
16564
- async function createPasskey(passkey) {
16565
- const result = await database.insertInto('passkeys').values(passkey).returningAll().executeTakeFirstOrThrow();
16566
- return result;
16567
- }
16568
- async function getPasskeysByUserId(userId) {
16569
- return await database.selectFrom('passkeys').selectAll().where('userId', '=', userId).execute();
16570
- }
16571
- async function checkAuthForUser(event, userId, sensitive = false) {
16572
- const token = getToken(event, sensitive);
16573
- if (!token)
16574
- throw error(401, 'Missing token');
16575
- const session = await getSessionAndUser(token).catch(withError('Invalid or expired session', 401));
16576
- if (session.user.isSuspended)
16577
- error(403, 'User is suspended');
16578
- if (session.userId !== userId) {
16579
- if (!session.user?.isAdmin)
16580
- error(403, 'User ID mismatch');
16581
- // Admins are allowed to manage other users.
16582
- const accessor = session.user;
16583
- session.user = await getUser(userId).catch(withError('Target user not found', 404));
16584
- return Object.assign(session, { accessor });
16585
- }
16586
- if (!session.elevated && sensitive)
16587
- error(403, 'This token can not be used for sensitive actions');
16588
- return Object.assign(session, { accessor: session.user });
16589
- }
16590
-
16591
16556
  function isResponseError(e) {
16592
16557
  return e instanceof Error && e.name === 'ResponseError' && typeof e.status === 'number';
16593
16558
  }
@@ -16671,8 +16636,10 @@ async function handleAPIRequest(event, route) {
16671
16636
  const result = await route[method](event);
16672
16637
  if (result instanceof Response)
16673
16638
  return result;
16674
- result._warnings ||= [];
16675
- result._warnings.push(..._warnings);
16639
+ if (typeof result == 'object' || typeof result == 'function') {
16640
+ result._warnings ||= [];
16641
+ result._warnings.push(..._warnings);
16642
+ }
16676
16643
  return json(result);
16677
16644
  }
16678
16645
  function handleResponseError(e) {
@@ -16690,11 +16657,89 @@ const noCacheHeaders = {
16690
16657
  Expires: '0',
16691
16658
  };
16692
16659
 
16693
- const apps = _unique('apps', new Map());
16694
- const appDisabledContent = {
16695
- head: '<title>App Disabled</title>',
16696
- body: '<h1>App Disabled</h1><p>This app is currently disabled.</p>',
16697
- };
16660
+ async function getUser(id) {
16661
+ return await database.selectFrom('users').selectAll().where('id', '=', id).executeTakeFirstOrThrow();
16662
+ }
16663
+ const in30days = () => new Date(Date.now() + 2592000000);
16664
+ const in10minutes = () => new Date(Date.now() + 600000);
16665
+ async function createSession(userId, elevated = false) {
16666
+ const session = {
16667
+ id: randomUUID(),
16668
+ userId,
16669
+ token: randomBytes(64).toString('base64'),
16670
+ expires: elevated ? in10minutes() : in30days(),
16671
+ elevated,
16672
+ created: new Date(),
16673
+ };
16674
+ await database.insertInto('sessions').values(session).execute();
16675
+ await audit('new_session', userId, { id: session.id });
16676
+ return session;
16677
+ }
16678
+ async function getSessionAndUser(token) {
16679
+ const result = await database
16680
+ .selectFrom('sessions')
16681
+ .selectAll()
16682
+ .select(userFromId)
16683
+ .where('sessions.token', '=', token)
16684
+ .where('sessions.expires', '>', new Date())
16685
+ .executeTakeFirstOrThrow();
16686
+ if (!result.user)
16687
+ throw new Error('Session references non-existing user');
16688
+ return result;
16689
+ }
16690
+ async function getSessions(userId) {
16691
+ return await database.selectFrom('sessions').selectAll().where('userId', '=', userId).where('sessions.expires', '>', new Date()).execute();
16692
+ }
16693
+ /**
16694
+ * Create a verification
16695
+ * @param expires How long the token should be valid for in seconds
16696
+ */
16697
+ async function createVerification(role, userId, expires) {
16698
+ const token = randomBytes(64).toString('base64url');
16699
+ const verification = { userId, token, expires: new Date(Date.now() + expires * 1000), role };
16700
+ await database.insertInto('verifications').values(verification).executeTakeFirstOrThrow();
16701
+ setTimeout(() => {
16702
+ void database.deleteFrom('verifications').where('verifications.token', '=', verification.token).execute();
16703
+ }, expires * 1000);
16704
+ return verification;
16705
+ }
16706
+ async function useVerification(role, userId, token) {
16707
+ const query = database
16708
+ .deleteFrom('verifications')
16709
+ .where('verifications.token', '=', token)
16710
+ .where('verifications.userId', '=', userId)
16711
+ .where('verifications.role', '=', role);
16712
+ return await query.returningAll().executeTakeFirst();
16713
+ }
16714
+ async function getPasskey(id) {
16715
+ return await database.selectFrom('passkeys').selectAll().where('id', '=', id).executeTakeFirstOrThrow();
16716
+ }
16717
+ async function createPasskey(passkey) {
16718
+ const result = await database.insertInto('passkeys').values(passkey).returningAll().executeTakeFirstOrThrow();
16719
+ return result;
16720
+ }
16721
+ async function getPasskeysByUserId(userId) {
16722
+ return await database.selectFrom('passkeys').selectAll().where('userId', '=', userId).execute();
16723
+ }
16724
+ async function checkAuthForUser(event, userId, sensitive = false) {
16725
+ const token = getToken(event, sensitive);
16726
+ if (!token)
16727
+ throw error(401, 'Missing token');
16728
+ const session = await getSessionAndUser(token).catch(withError('Invalid or expired session', 401));
16729
+ if (session.user.isSuspended)
16730
+ error(403, 'User is suspended');
16731
+ if (session.userId !== userId) {
16732
+ if (!session.user?.isAdmin)
16733
+ error(403, 'User ID mismatch');
16734
+ // Admins are allowed to manage other users.
16735
+ const accessor = session.user;
16736
+ session.user = await getUser(userId).catch(withError('Target user not found', 404));
16737
+ return Object.assign(session, { accessor });
16738
+ }
16739
+ if (!session.elevated && sensitive)
16740
+ error(403, 'This token can not be used for sensitive actions');
16741
+ return Object.assign(session, { accessor: session.user });
16742
+ }
16698
16743
 
16699
16744
  /**
16700
16745
  * @internal
@@ -16787,7 +16832,7 @@ addRoute({
16787
16832
  for (const app of apps.values()) {
16788
16833
  if (config.apps.disabled.includes(app.id))
16789
16834
  continue;
16790
- result.push(pick(app, ['id', 'name', 'version', 'image', 'icon']));
16835
+ result.push(app);
16791
16836
  }
16792
16837
  return result;
16793
16838
  },
@@ -16865,7 +16910,7 @@ async function OPTIONS(event) {
16865
16910
  async function POST(event) {
16866
16911
  if (!config.allow_new_users)
16867
16912
  error(409, 'New user registration is disabled');
16868
- const { userId, email, name, response } = await parseBody(event, APIUserRegistration);
16913
+ const { userId, email, name, response } = await parseBody(event, UserRegistration);
16869
16914
  const existing = await database.selectFrom('users').selectAll().where('email', '=', email.toLowerCase()).executeTakeFirst();
16870
16915
  if (existing)
16871
16916
  error(409, 'Email already in use');
@@ -16929,35 +16974,7 @@ addRoute({
16929
16974
  },
16930
16975
  });
16931
16976
 
16932
- var Permission;
16933
- (function (Permission) {
16934
- Permission[Permission["None"] = 0] = "None";
16935
- Permission[Permission["Read"] = 1] = "Read";
16936
- Permission[Permission["Comment"] = 2] = "Comment";
16937
- Permission[Permission["Edit"] = 3] = "Edit";
16938
- Permission[Permission["Manage"] = 5] = "Manage";
16939
- })(Permission || (Permission = {}));
16940
- ({
16941
- [Permission.None]: 'No Permissions',
16942
- [Permission.Read]: 'Reader',
16943
- [Permission.Comment]: 'Commenter',
16944
- [Permission.Edit]: 'Editor',
16945
- [Permission.Manage]: 'Manager',
16946
- });
16947
-
16948
- /**
16949
- * @internal
16950
- */
16951
- const preferenceSchemas = {
16952
- debug: boolean(),
16953
- };
16954
- /**
16955
- * @internal
16956
- */
16957
- const preferenceDefaults = {
16958
- debug: false,
16959
- };
16960
-
16977
+ /** Register a new passkey for a new or existing user. */
16961
16978
  const challenges = new Map();
16962
16979
  const params = { id: uuid() };
16963
16980
  /**
@@ -17270,4 +17287,4 @@ async function handleSvelteKit({ event, resolve, }) {
17270
17287
  await init();
17271
17288
 
17272
17289
  export { handleSvelteKit as handle };
17273
- //# sourceMappingURL=hooks.server-B7iBt6uC.js.map
17290
+ //# sourceMappingURL=hooks.server-BBmyHiWm.js.map