diff --git a/web/package-lock.json b/web/package-lock.json index 244a3345..26e75e0f 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -8,6 +8,7 @@ "name": "wanderer", "version": "0.12.0", "dependencies": { + "@felte/validator-zod": "^1.0.18", "@fortawesome/fontawesome-free": "^6.5.1", "@sveltejs/adapter-node": "^4.0.1", "@threlte/core": "^7.1.0", @@ -22,6 +23,7 @@ "chartjs-plugin-crosshair": "^2.0.0", "chartjs-plugin-zoom": "^2.1.0", "crypto-random-string": "^5.0.0", + "felte": "^1.3.0", "heic2any": "^0.0.4", "instead": "^1.0.3", "isomorphic-xml2js": "^0.1.3", @@ -38,7 +40,6 @@ "svelte-i18n": "^4.0.0", "three": "^0.161.0", "xmldom": "^0.6.0", - "yup": "^1.3.3", "zod": "^3.24.1" }, "devDependencies": { @@ -438,6 +439,39 @@ "node": ">=12" } }, + "node_modules/@felte/common": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/@felte/common/-/common-1.1.9.tgz", + "integrity": "sha512-d9e9M5FWc7AyaX/fb2I78AvwIAAA6S8ncKoTd3vYdPGQfgryl18oMU+ScM1WgFnbOBSoItdt61oaZAuRqfE4AA==", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/@felte/core": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/@felte/core/-/core-1.4.4.tgz", + "integrity": "sha512-qXEofmfc0tKvd1MOP9T1ixoI4+u0ZcUtC7JpBfb2A/lr/mhc8HrkvVWGatrGBnNovTc4lgIKWOySVVFswa4BYg==", + "dependencies": { + "@felte/common": "1.1.9" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/@felte/validator-zod": { + "version": "1.0.18", + "resolved": "https://registry.npmjs.org/@felte/validator-zod/-/validator-zod-1.0.18.tgz", + "integrity": "sha512-nLhy3qhCrL14iMxIHXtIH0MckZr/dmpqRd/KcqQ6HJoT2tjvv8gPpgOGJdOR15Wfzd25n/UUr3tyX7ydgXA5xQ==", + "dependencies": { + "@felte/common": "1.1.9" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "peerDependencies": { + "zod": "^3.2.0" + } + }, "node_modules/@formatjs/ecma402-abstract": { "version": "1.18.2", "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.18.2.tgz", @@ -2717,6 +2751,20 @@ "reusify": "^1.0.4" } }, + "node_modules/felte": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/felte/-/felte-1.3.0.tgz", + "integrity": "sha512-J09vuOC2Hw/d+ajhT4ueVEcSU0af+tlnfwF9QWVTuOWQf286pSGS48cFYhjmS7K7hUNMRUIwXwCnHWpyasadmA==", + "dependencies": { + "@felte/core": "1.4.4" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "peerDependencies": { + "svelte": "^3.31.0 || ^4.0.0 || ^5.0.0" + } + }, "node_modules/fflate": { "version": "0.6.10", "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.6.10.tgz", @@ -4823,11 +4871,6 @@ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, - "node_modules/property-expr": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/property-expr/-/property-expr-2.0.6.tgz", - "integrity": "sha512-SVtmxhRE/CGkn3eZY1T6pC8Nln6Fr/lu1mKSgRud0eC73whjGfoAogbn78LkD8aFL0zz3bAFerKSnOl7NlErBA==" - }, "node_modules/protocol-buffers-schema": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.6.0.tgz", @@ -5866,11 +5909,6 @@ "next-tick": "1" } }, - "node_modules/tiny-case": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tiny-case/-/tiny-case-1.0.3.tgz", - "integrity": "sha512-Eet/eeMhkO6TX8mnUteS9zgPbUMQa4I6Kkp5ORiBD5476/m+PIRiumP5tmh5ioJpH7k51Kehawy2UDfsnxxY8Q==" - }, "node_modules/tiny-glob": { "version": "0.2.9", "resolved": "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.9.tgz", @@ -5926,11 +5964,6 @@ "node": ">=8.0" } }, - "node_modules/toposort": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz", - "integrity": "sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==" - }, "node_modules/totalist": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", @@ -6729,17 +6762,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/yup": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/yup/-/yup-1.3.3.tgz", - "integrity": "sha512-v8QwZSsHH2K3/G9WSkp6mZKO+hugKT1EmnMqLNUcfu51HU9MDyhlETT/JgtzprnrnQHPWsjc6MUDMBp/l9fNnw==", - "dependencies": { - "property-expr": "^2.0.5", - "tiny-case": "^1.0.3", - "toposort": "^2.0.2", - "type-fest": "^2.19.0" - } - }, "node_modules/zod": { "version": "3.24.1", "resolved": "https://registry.npmjs.org/zod/-/zod-3.24.1.tgz", diff --git a/web/package.json b/web/package.json index 73cef91e..902a993c 100644 --- a/web/package.json +++ b/web/package.json @@ -30,6 +30,7 @@ }, "type": "module", "dependencies": { + "@felte/validator-zod": "^1.0.18", "@fortawesome/fontawesome-free": "^6.5.1", "@sveltejs/adapter-node": "^4.0.1", "@threlte/core": "^7.1.0", @@ -44,6 +45,7 @@ "chartjs-plugin-crosshair": "^2.0.0", "chartjs-plugin-zoom": "^2.1.0", "crypto-random-string": "^5.0.0", + "felte": "^1.3.0", "heic2any": "^0.0.4", "instead": "^1.0.3", "isomorphic-xml2js": "^0.1.3", @@ -60,7 +62,6 @@ "svelte-i18n": "^4.0.0", "three": "^0.161.0", "xmldom": "^0.6.0", - "yup": "^1.3.3", "zod": "^3.24.1" } } diff --git a/web/src/lib/components/base/datepicker.svelte b/web/src/lib/components/base/datepicker.svelte index 39e15e6c..571c351c 100644 --- a/web/src/lib/components/base/datepicker.svelte +++ b/web/src/lib/components/base/datepicker.svelte @@ -1,8 +1,10 @@
+ No notifications +
{/if} {/if} diff --git a/web/src/lib/components/settings/email_modal.svelte b/web/src/lib/components/settings/email_modal.svelte index 850b3585..e772aff8 100644 --- a/web/src/lib/components/settings/email_modal.svelte +++ b/web/src/lib/components/settings/email_modal.svelte @@ -1,16 +1,17 @@ -