diff --git a/package.json b/package.json index f397b7e..ec01d4d 100644 --- a/package.json +++ b/package.json @@ -16,9 +16,10 @@ "@fontsource/fira-mono": "^4.5.10", "@neoconfetti/svelte": "^1.0.0", "@playwright/test": "^1.28.1", - "@sveltejs/adapter-auto": "^2.0.0", - "@sveltejs/adapter-vercel": "^2.4.1", - "@sveltejs/kit": "^1.27.6", + "@sveltejs/adapter-auto": "^3.0.0", + "@sveltejs/adapter-vercel": "^4.0.0", + "@sveltejs/kit": "^2.0.3", + "@sveltejs/vite-plugin-svelte": "^3.0.0", "@types/aws-sdk": "^2.7.0", "@types/cookie": "^0.5.1", "@types/lodash.uniqueid": "^4.0.7", @@ -32,7 +33,7 @@ "postcss-load-config": "^4.0.1", "prettier": "^2.8.0", "prettier-plugin-svelte": "^2.8.1", - "svelte": "^4.0.1", + "svelte": "^4.2.8", "svelte-check": "^3.4.4", "svelte-portal": "^2.2.0", "svelte-preprocess": "^4.10.7", @@ -41,14 +42,16 @@ "sveltekit-superforms": "1.5.1", "tailwindcss": "^3.3.1", "tslib": "^2.4.1", - "typescript": "^5.0.4", - "vite": "^4.4.2" + "typescript": "^5.3.3", + "vite": "^5.0.0", + "zod": "^3.22.4" }, "type": "module", "dependencies": { "@auth/core": "^0.7.1", - "@auth/sveltekit": "^0.3.1", + "@auth/sveltekit": "^0.4.0", "@aws-sdk/s3-request-presigner": "^3.423.0", + "@sveltejs/adapter-static": "3", "daisyui": "^3.0.20", "date-fns": "^2.30.0", "deep-rename-keys": "^0.2.1", @@ -62,12 +65,11 @@ "openai": "^3.2.1", "sharp": "^0.32.6", "sse.js": "^0.6.1", - "sveltekit-flash-message": "^2.1.3", "svelte-markdown": "^0.2.3", "svelte-select": "^5.6.1", "svelte-tel-input": "^3.1.0", + "sveltekit-flash-message": "^2.1.3", "viewerjs": "^1.11.6", - "zod": "^3.21.4", - "zod-to-json-schema": "^3.21.2" + "zod-to-json-schema": "^3.22.3" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 72349c2..61e7d34 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,11 +9,14 @@ dependencies: specifier: ^0.7.1 version: 0.7.1 '@auth/sveltekit': - specifier: ^0.3.1 - version: 0.3.1(@sveltejs/kit@1.27.6)(svelte@4.0.1) + specifier: ^0.4.0 + version: 0.4.0(@sveltejs/kit@2.0.3)(svelte@4.2.8) '@aws-sdk/s3-request-presigner': specifier: ^3.423.0 version: 3.423.0 + '@sveltejs/adapter-static': + specifier: '3' + version: 3.0.0(@sveltejs/kit@2.0.3) daisyui: specifier: ^3.0.20 version: 3.0.20(postcss@8.4.21) @@ -55,7 +58,7 @@ dependencies: version: 0.6.1 svelte-markdown: specifier: ^0.2.3 - version: 0.2.3(svelte@4.0.1) + version: 0.2.3(svelte@4.2.8) svelte-select: specifier: ^5.6.1 version: 5.6.1 @@ -64,16 +67,13 @@ dependencies: version: 3.1.0 sveltekit-flash-message: specifier: ^2.1.3 - version: 2.1.3(@sveltejs/kit@1.27.6)(svelte@4.0.1) + version: 2.1.3(@sveltejs/kit@2.0.3)(svelte@4.2.8) viewerjs: specifier: ^1.11.6 version: 1.11.6 - zod: - specifier: ^3.21.4 - version: 3.21.4 zod-to-json-schema: - specifier: ^3.21.2 - version: 3.21.2(zod@3.21.4) + specifier: ^3.22.3 + version: 3.22.3(zod@3.22.4) devDependencies: '@aws-sdk/client-s3': @@ -89,14 +89,17 @@ devDependencies: specifier: ^1.28.1 version: 1.32.1 '@sveltejs/adapter-auto': - specifier: ^2.0.0 - version: 2.0.0(@sveltejs/kit@1.27.6) + specifier: ^3.0.0 + version: 3.0.0(@sveltejs/kit@2.0.3) '@sveltejs/adapter-vercel': - specifier: ^2.4.1 - version: 2.4.1(@sveltejs/kit@1.27.6) + specifier: ^4.0.0 + version: 4.0.2(@sveltejs/kit@2.0.3) '@sveltejs/kit': - specifier: ^1.27.6 - version: 1.27.6(svelte@4.0.1)(vite@4.4.2) + specifier: ^2.0.3 + version: 2.0.3(@sveltejs/vite-plugin-svelte@3.0.1)(svelte@4.2.8)(vite@5.0.10) + '@sveltejs/vite-plugin-svelte': + specifier: ^3.0.0 + version: 3.0.1(svelte@4.2.8)(vite@5.0.10) '@types/aws-sdk': specifier: ^2.7.0 version: 2.7.0 @@ -108,10 +111,10 @@ devDependencies: version: 4.0.7 '@typescript-eslint/eslint-plugin': specifier: ^5.45.0 - version: 5.56.0(@typescript-eslint/parser@5.56.0)(eslint@8.36.0)(typescript@5.0.4) + version: 5.56.0(@typescript-eslint/parser@5.56.0)(eslint@8.36.0)(typescript@5.3.3) '@typescript-eslint/parser': specifier: ^5.45.0 - version: 5.56.0(eslint@8.36.0)(typescript@5.0.4) + version: 5.56.0(eslint@8.36.0)(typescript@5.3.3) autoprefixer: specifier: ^10.4.14 version: 10.4.14(postcss@8.4.21) @@ -123,7 +126,7 @@ devDependencies: version: 8.8.0(eslint@8.36.0) eslint-plugin-svelte3: specifier: ^4.0.0 - version: 4.0.0(eslint@8.36.0)(svelte@4.0.1) + version: 4.0.0(eslint@8.36.0)(svelte@4.2.8) postcss: specifier: ^8.4.21 version: 8.4.21 @@ -135,28 +138,28 @@ devDependencies: version: 2.8.7 prettier-plugin-svelte: specifier: ^2.8.1 - version: 2.10.0(prettier@2.8.7)(svelte@4.0.1) + version: 2.10.0(prettier@2.8.7)(svelte@4.2.8) svelte: - specifier: ^4.0.1 - version: 4.0.1 + specifier: ^4.2.8 + version: 4.2.8 svelte-check: specifier: ^3.4.4 - version: 3.4.4(postcss-load-config@4.0.1)(postcss@8.4.21)(svelte@4.0.1) + version: 3.4.4(postcss-load-config@4.0.1)(postcss@8.4.21)(svelte@4.2.8) svelte-portal: specifier: ^2.2.0 version: 2.2.0 svelte-preprocess: specifier: ^4.10.7 - version: 4.10.7(postcss-load-config@4.0.1)(postcss@8.4.21)(svelte@4.0.1)(typescript@5.0.4) + version: 4.10.7(postcss-load-config@4.0.1)(postcss@8.4.21)(svelte@4.2.8)(typescript@5.3.3) sveltekit-autoimport: specifier: ^1.6.10 version: 1.6.10 sveltekit-search-params: specifier: ^1.0.15 - version: 1.0.16(@sveltejs/kit@1.27.6)(svelte@4.0.1) + version: 1.0.16(@sveltejs/kit@2.0.3)(svelte@4.2.8) sveltekit-superforms: specifier: 1.5.1 - version: 1.5.1(@sveltejs/kit@1.27.6)(svelte@4.0.1)(zod@3.21.4) + version: 1.5.1(@sveltejs/kit@2.0.3)(svelte@4.2.8)(zod@3.22.4) tailwindcss: specifier: ^3.3.1 version: 3.3.2 @@ -164,11 +167,14 @@ devDependencies: specifier: ^2.4.1 version: 2.5.0 typescript: - specifier: ^5.0.4 - version: 5.0.4 + specifier: ^5.3.3 + version: 5.3.3 vite: - specifier: ^4.4.2 - version: 4.4.2 + specifier: ^5.0.0 + version: 5.0.10 + zod: + specifier: ^3.22.4 + version: 3.22.4 packages: @@ -183,8 +189,8 @@ packages: '@jridgewell/gen-mapping': 0.3.3 '@jridgewell/trace-mapping': 0.3.20 - /@auth/core@0.5.1: - resolution: {integrity: sha512-t9z8F7dkuVceKWBmMy1fd2t6H+vfRju/YJ1lm+6RnJ7pNEvX5qMR874wg0+cYbWvyZazLi8fFK/FA6I3D5sSkA==} + /@auth/core@0.18.6: + resolution: {integrity: sha512-AI7tnyNOg5zVS2elA44O03MWS6jyp69S8habJts63IyiCIoSkhqcZX4EcEJ0287m0hxzOltPCV9Zq2aqXbrNSA==} peerDependencies: nodemailer: ^6.8.0 peerDependenciesMeta: @@ -192,9 +198,10 @@ packages: optional: true dependencies: '@panva/hkdf': 1.1.1 - cookie: 0.5.0 - jose: 4.14.3 - oauth4webapi: 2.3.0 + '@types/cookie': 0.6.0 + cookie: 0.6.0 + jose: 5.1.3 + oauth4webapi: 2.4.0 preact: 10.11.3 preact-render-to-string: 5.2.3(preact@10.11.3) dev: false @@ -215,15 +222,15 @@ packages: preact-render-to-string: 5.2.3(preact@10.11.3) dev: false - /@auth/sveltekit@0.3.1(@sveltejs/kit@1.27.6)(svelte@4.0.1): - resolution: {integrity: sha512-fyWvPfQCEO15M6GmC1+M9YoRo8rHC1oCXNBmEZJwvG4eZ7hmufm/m3B3U1eRaPqLZwfRHO8PQcvERja15yPB5w==} + /@auth/sveltekit@0.4.0(@sveltejs/kit@2.0.3)(svelte@4.2.8): + resolution: {integrity: sha512-3mX14XZo8TDhivD2uvn4kGr8e4okpRPNBazRjNqBr8orOTi0hWic5I9eaYTR1nsK/ktHGnJ5lZ9iZ9npDCZyaA==} peerDependencies: '@sveltejs/kit': ^1.0.0 - svelte: ^3.54.0 + svelte: ^3.54.0 || ^4.0.0 dependencies: - '@auth/core': 0.5.1 - '@sveltejs/kit': 1.27.6(svelte@4.0.1)(vite@4.4.2) - svelte: 4.0.1 + '@auth/core': 0.18.6 + '@sveltejs/kit': 2.0.3(@sveltejs/vite-plugin-svelte@3.0.1)(svelte@4.2.8)(vite@5.0.10) + svelte: 4.2.8 transitivePeerDependencies: - nodemailer dev: false @@ -1222,374 +1229,176 @@ packages: regenerator-runtime: 0.13.11 dev: false - /@esbuild/android-arm64@0.16.17: - resolution: {integrity: sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg==} + /@esbuild/android-arm64@0.19.9: + resolution: {integrity: sha512-q4cR+6ZD0938R19MyEW3jEsMzbb/1rulLXiNAJQADD/XYp7pT+rOS5JGxvpRW8dFDEfjW4wLgC/3FXIw4zYglQ==} engines: {node: '>=12'} cpu: [arm64] os: [android] requiresBuild: true - dev: true optional: true - /@esbuild/android-arm64@0.18.11: - resolution: {integrity: sha512-snieiq75Z1z5LJX9cduSAjUr7vEI1OdlzFPMw0HH5YI7qQHDd3qs+WZoMrWYDsfRJSq36lIA6mfZBkvL46KoIw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - requiresBuild: true - optional: true - - /@esbuild/android-arm@0.16.17: - resolution: {integrity: sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw==} + /@esbuild/android-arm@0.19.9: + resolution: {integrity: sha512-jkYjjq7SdsWuNI6b5quymW0oC83NN5FdRPuCbs9HZ02mfVdAP8B8eeqLSYU3gb6OJEaY5CQabtTFbqBf26H3GA==} engines: {node: '>=12'} cpu: [arm] os: [android] requiresBuild: true - dev: true optional: true - /@esbuild/android-arm@0.18.11: - resolution: {integrity: sha512-q4qlUf5ucwbUJZXF5tEQ8LF7y0Nk4P58hOsGk3ucY0oCwgQqAnqXVbUuahCddVHfrxmpyewRpiTHwVHIETYu7Q==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - requiresBuild: true - optional: true - - /@esbuild/android-x64@0.16.17: - resolution: {integrity: sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@esbuild/android-x64@0.18.11: - resolution: {integrity: sha512-iPuoxQEV34+hTF6FT7om+Qwziv1U519lEOvekXO9zaMMlT9+XneAhKL32DW3H7okrCOBQ44BMihE8dclbZtTuw==} + /@esbuild/android-x64@0.19.9: + resolution: {integrity: sha512-KOqoPntWAH6ZxDwx1D6mRntIgZh9KodzgNOy5Ebt9ghzffOk9X2c1sPwtM9P+0eXbefnDhqYfkh5PLP5ULtWFA==} engines: {node: '>=12'} cpu: [x64] os: [android] requiresBuild: true optional: true - /@esbuild/darwin-arm64@0.16.17: - resolution: {integrity: sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w==} + /@esbuild/darwin-arm64@0.19.9: + resolution: {integrity: sha512-KBJ9S0AFyLVx2E5D8W0vExqRW01WqRtczUZ8NRu+Pi+87opZn5tL4Y0xT0mA4FtHctd0ZgwNoN639fUUGlNIWw==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] requiresBuild: true - dev: true optional: true - /@esbuild/darwin-arm64@0.18.11: - resolution: {integrity: sha512-Gm0QkI3k402OpfMKyQEEMG0RuW2LQsSmI6OeO4El2ojJMoF5NLYb3qMIjvbG/lbMeLOGiW6ooU8xqc+S0fgz2w==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - optional: true - - /@esbuild/darwin-x64@0.16.17: - resolution: {integrity: sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg==} + /@esbuild/darwin-x64@0.19.9: + resolution: {integrity: sha512-vE0VotmNTQaTdX0Q9dOHmMTao6ObjyPm58CHZr1UK7qpNleQyxlFlNCaHsHx6Uqv86VgPmR4o2wdNq3dP1qyDQ==} engines: {node: '>=12'} cpu: [x64] os: [darwin] requiresBuild: true - dev: true - optional: true - - /@esbuild/darwin-x64@0.18.11: - resolution: {integrity: sha512-N15Vzy0YNHu6cfyDOjiyfJlRJCB/ngKOAvoBf1qybG3eOq0SL2Lutzz9N7DYUbb7Q23XtHPn6lMDF6uWbGv9Fw==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - requiresBuild: true - optional: true - - /@esbuild/freebsd-arm64@0.16.17: - resolution: {integrity: sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - requiresBuild: true - dev: true optional: true - /@esbuild/freebsd-arm64@0.18.11: - resolution: {integrity: sha512-atEyuq6a3omEY5qAh5jIORWk8MzFnCpSTUruBgeyN9jZq1K/QI9uke0ATi3MHu4L8c59CnIi4+1jDKMuqmR71A==} + /@esbuild/freebsd-arm64@0.19.9: + resolution: {integrity: sha512-uFQyd/o1IjiEk3rUHSwUKkqZwqdvuD8GevWF065eqgYfexcVkxh+IJgwTaGZVu59XczZGcN/YMh9uF1fWD8j1g==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] requiresBuild: true optional: true - /@esbuild/freebsd-x64@0.16.17: - resolution: {integrity: sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/freebsd-x64@0.18.11: - resolution: {integrity: sha512-XtuPrEfBj/YYYnAAB7KcorzzpGTvOr/dTtXPGesRfmflqhA4LMF0Gh/n5+a9JBzPuJ+CGk17CA++Hmr1F/gI0Q==} + /@esbuild/freebsd-x64@0.19.9: + resolution: {integrity: sha512-WMLgWAtkdTbTu1AWacY7uoj/YtHthgqrqhf1OaEWnZb7PQgpt8eaA/F3LkV0E6K/Lc0cUr/uaVP/49iE4M4asA==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] requiresBuild: true optional: true - /@esbuild/linux-arm64@0.16.17: - resolution: {integrity: sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-arm64@0.18.11: - resolution: {integrity: sha512-c6Vh2WS9VFKxKZ2TvJdA7gdy0n6eSy+yunBvv4aqNCEhSWVor1TU43wNRp2YLO9Vng2G+W94aRz+ILDSwAiYog==} + /@esbuild/linux-arm64@0.19.9: + resolution: {integrity: sha512-PiPblfe1BjK7WDAKR1Cr9O7VVPqVNpwFcPWgfn4xu0eMemzRp442hXyzF/fSwgrufI66FpHOEJk0yYdPInsmyQ==} engines: {node: '>=12'} cpu: [arm64] os: [linux] requiresBuild: true optional: true - /@esbuild/linux-arm@0.16.17: - resolution: {integrity: sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-arm@0.18.11: - resolution: {integrity: sha512-Idipz+Taso/toi2ETugShXjQ3S59b6m62KmLHkJlSq/cBejixmIydqrtM2XTvNCywFl3VC7SreSf6NV0i6sRyg==} + /@esbuild/linux-arm@0.19.9: + resolution: {integrity: sha512-C/ChPohUYoyUaqn1h17m/6yt6OB14hbXvT8EgM1ZWaiiTYz7nWZR0SYmMnB5BzQA4GXl3BgBO1l8MYqL/He3qw==} engines: {node: '>=12'} cpu: [arm] os: [linux] requiresBuild: true optional: true - /@esbuild/linux-ia32@0.16.17: - resolution: {integrity: sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg==} + /@esbuild/linux-ia32@0.19.9: + resolution: {integrity: sha512-f37i/0zE0MjDxijkPSQw1CO/7C27Eojqb+r3BbHVxMLkj8GCa78TrBZzvPyA/FNLUMzP3eyHCVkAopkKVja+6Q==} engines: {node: '>=12'} cpu: [ia32] os: [linux] requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-ia32@0.18.11: - resolution: {integrity: sha512-S3hkIF6KUqRh9n1Q0dSyYcWmcVa9Cg+mSoZEfFuzoYXXsk6196qndrM+ZiHNwpZKi3XOXpShZZ+9dfN5ykqjjw==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - requiresBuild: true - optional: true - - /@esbuild/linux-loong64@0.16.17: - resolution: {integrity: sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - requiresBuild: true - dev: true optional: true - /@esbuild/linux-loong64@0.18.11: - resolution: {integrity: sha512-MRESANOoObQINBA+RMZW+Z0TJWpibtE7cPFnahzyQHDCA9X9LOmGh68MVimZlM9J8n5Ia8lU773te6O3ILW8kw==} + /@esbuild/linux-loong64@0.19.9: + resolution: {integrity: sha512-t6mN147pUIf3t6wUt3FeumoOTPfmv9Cc6DQlsVBpB7eCpLOqQDyWBP1ymXn1lDw4fNUSb/gBcKAmvTP49oIkaA==} engines: {node: '>=12'} cpu: [loong64] os: [linux] requiresBuild: true optional: true - /@esbuild/linux-mips64el@0.16.17: - resolution: {integrity: sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-mips64el@0.18.11: - resolution: {integrity: sha512-qVyPIZrXNMOLYegtD1u8EBccCrBVshxMrn5MkuFc3mEVsw7CCQHaqZ4jm9hbn4gWY95XFnb7i4SsT3eflxZsUg==} + /@esbuild/linux-mips64el@0.19.9: + resolution: {integrity: sha512-jg9fujJTNTQBuDXdmAg1eeJUL4Jds7BklOTkkH80ZgQIoCTdQrDaHYgbFZyeTq8zbY+axgptncko3v9p5hLZtw==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] requiresBuild: true optional: true - /@esbuild/linux-ppc64@0.16.17: - resolution: {integrity: sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-ppc64@0.18.11: - resolution: {integrity: sha512-T3yd8vJXfPirZaUOoA9D2ZjxZX4Gr3QuC3GztBJA6PklLotc/7sXTOuuRkhE9W/5JvJP/K9b99ayPNAD+R+4qQ==} + /@esbuild/linux-ppc64@0.19.9: + resolution: {integrity: sha512-tkV0xUX0pUUgY4ha7z5BbDS85uI7ABw3V1d0RNTii7E9lbmV8Z37Pup2tsLV46SQWzjOeyDi1Q7Wx2+QM8WaCQ==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] requiresBuild: true optional: true - /@esbuild/linux-riscv64@0.16.17: - resolution: {integrity: sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw==} + /@esbuild/linux-riscv64@0.19.9: + resolution: {integrity: sha512-DfLp8dj91cufgPZDXr9p3FoR++m3ZJ6uIXsXrIvJdOjXVREtXuQCjfMfvmc3LScAVmLjcfloyVtpn43D56JFHg==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-riscv64@0.18.11: - resolution: {integrity: sha512-evUoRPWiwuFk++snjH9e2cAjF5VVSTj+Dnf+rkO/Q20tRqv+644279TZlPK8nUGunjPAtQRCj1jQkDAvL6rm2w==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - requiresBuild: true - optional: true - - /@esbuild/linux-s390x@0.16.17: - resolution: {integrity: sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - requiresBuild: true - dev: true optional: true - /@esbuild/linux-s390x@0.18.11: - resolution: {integrity: sha512-/SlRJ15XR6i93gRWquRxYCfhTeC5PdqEapKoLbX63PLCmAkXZHY2uQm2l9bN0oPHBsOw2IswRZctMYS0MijFcg==} + /@esbuild/linux-s390x@0.19.9: + resolution: {integrity: sha512-zHbglfEdC88KMgCWpOl/zc6dDYJvWGLiUtmPRsr1OgCViu3z5GncvNVdf+6/56O2Ca8jUU+t1BW261V6kp8qdw==} engines: {node: '>=12'} cpu: [s390x] os: [linux] requiresBuild: true optional: true - /@esbuild/linux-x64@0.16.17: - resolution: {integrity: sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-x64@0.18.11: - resolution: {integrity: sha512-xcncej+wF16WEmIwPtCHi0qmx1FweBqgsRtEL1mSHLFR6/mb3GEZfLQnx+pUDfRDEM4DQF8dpXIW7eDOZl1IbA==} + /@esbuild/linux-x64@0.19.9: + resolution: {integrity: sha512-JUjpystGFFmNrEHQnIVG8hKwvA2DN5o7RqiO1CVX8EN/F/gkCjkUMgVn6hzScpwnJtl2mPR6I9XV1oW8k9O+0A==} engines: {node: '>=12'} cpu: [x64] os: [linux] requiresBuild: true optional: true - /@esbuild/netbsd-x64@0.16.17: - resolution: {integrity: sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/netbsd-x64@0.18.11: - resolution: {integrity: sha512-aSjMHj/F7BuS1CptSXNg6S3M4F3bLp5wfFPIJM+Km2NfIVfFKhdmfHF9frhiCLIGVzDziggqWll0B+9AUbud/Q==} + /@esbuild/netbsd-x64@0.19.9: + resolution: {integrity: sha512-GThgZPAwOBOsheA2RUlW5UeroRfESwMq/guy8uEe3wJlAOjpOXuSevLRd70NZ37ZrpO6RHGHgEHvPg1h3S1Jug==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] requiresBuild: true optional: true - /@esbuild/openbsd-x64@0.16.17: - resolution: {integrity: sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/openbsd-x64@0.18.11: - resolution: {integrity: sha512-tNBq+6XIBZtht0xJGv7IBB5XaSyvYPCm1PxJ33zLQONdZoLVM0bgGqUrXnJyiEguD9LU4AHiu+GCXy/Hm9LsdQ==} + /@esbuild/openbsd-x64@0.19.9: + resolution: {integrity: sha512-Ki6PlzppaFVbLnD8PtlVQfsYw4S9n3eQl87cqgeIw+O3sRr9IghpfSKY62mggdt1yCSZ8QWvTZ9jo9fjDSg9uw==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] requiresBuild: true optional: true - /@esbuild/sunos-x64@0.16.17: - resolution: {integrity: sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw==} + /@esbuild/sunos-x64@0.19.9: + resolution: {integrity: sha512-MLHj7k9hWh4y1ddkBpvRj2b9NCBhfgBt3VpWbHQnXRedVun/hC7sIyTGDGTfsGuXo4ebik2+3ShjcPbhtFwWDw==} engines: {node: '>=12'} cpu: [x64] os: [sunos] requiresBuild: true - dev: true optional: true - /@esbuild/sunos-x64@0.18.11: - resolution: {integrity: sha512-kxfbDOrH4dHuAAOhr7D7EqaYf+W45LsAOOhAet99EyuxxQmjbk8M9N4ezHcEiCYPaiW8Dj3K26Z2V17Gt6p3ng==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - requiresBuild: true - optional: true - - /@esbuild/win32-arm64@0.16.17: - resolution: {integrity: sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw==} + /@esbuild/win32-arm64@0.19.9: + resolution: {integrity: sha512-GQoa6OrQ8G08guMFgeXPH7yE/8Dt0IfOGWJSfSH4uafwdC7rWwrfE6P9N8AtPGIjUzdo2+7bN8Xo3qC578olhg==} engines: {node: '>=12'} cpu: [arm64] os: [win32] requiresBuild: true - dev: true optional: true - /@esbuild/win32-arm64@0.18.11: - resolution: {integrity: sha512-Sh0dDRyk1Xi348idbal7lZyfSkjhJsdFeuC13zqdipsvMetlGiFQNdO+Yfp6f6B4FbyQm7qsk16yaZk25LChzg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - requiresBuild: true - optional: true - - /@esbuild/win32-ia32@0.16.17: - resolution: {integrity: sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@esbuild/win32-ia32@0.18.11: - resolution: {integrity: sha512-o9JUIKF1j0rqJTFbIoF4bXj6rvrTZYOrfRcGyL0Vm5uJ/j5CkBD/51tpdxe9lXEDouhRgdr/BYzUrDOvrWwJpg==} + /@esbuild/win32-ia32@0.19.9: + resolution: {integrity: sha512-UOozV7Ntykvr5tSOlGCrqU3NBr3d8JqPes0QWN2WOXfvkWVGRajC+Ym0/Wj88fUgecUCLDdJPDF0Nna2UK3Qtg==} engines: {node: '>=12'} cpu: [ia32] os: [win32] requiresBuild: true optional: true - /@esbuild/win32-x64@0.16.17: - resolution: {integrity: sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@esbuild/win32-x64@0.18.11: - resolution: {integrity: sha512-rQI4cjLHd2hGsM1LqgDI7oOCYbQ6IBOVsX9ejuRMSze0GqXUG2ekwiKkiBU1pRGSeCqFFHxTrcEydB2Hyoz9CA==} + /@esbuild/win32-x64@0.19.9: + resolution: {integrity: sha512-oxoQgglOP7RH6iasDrhY+R/3cHrfwIDvRlT4CGChflq6twk8iENeVvMJjmvBb94Ik1Z+93iGO27err7w6l54GQ==} engines: {node: '>=12'} cpu: [x64] os: [win32] @@ -1633,10 +1442,6 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@fastify/busboy@2.1.0: - resolution: {integrity: sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==} - engines: {node: '>=14'} - /@floating-ui/core@1.3.1: resolution: {integrity: sha512-Bu+AMaXNjrpjh41znzHqaz3r2Nr8hHuHZT6V2LBKMhyMl0FgKA62PNYbqnfgmzOhoWZj70Zecisbo4H1rotP5g==} dev: false @@ -1709,14 +1514,14 @@ packages: resolution: {integrity: sha512-4ySo4CjzStuprMwk35H5pPbkymjv1SF3jGLj6rAHp/xT/RF7TL7bd9CTm1xDY49K2qF7jmR/g7k+SkLETP6opA==} hasBin: true dependencies: - detect-libc: 2.0.1 + detect-libc: 2.0.2 https-proxy-agent: 5.0.1 make-dir: 3.1.0 node-fetch: 2.6.9 nopt: 5.0.0 npmlog: 5.0.1 rimraf: 3.0.2 - semver: 7.3.8 + semver: 7.5.4 tar: 6.1.13 transitivePeerDependencies: - encoding @@ -1771,6 +1576,97 @@ packages: picomatch: 2.3.1 dev: true + /@rollup/rollup-android-arm-eabi@4.9.1: + resolution: {integrity: sha512-6vMdBZqtq1dVQ4CWdhFwhKZL6E4L1dV6jUjuBvsavvNJSppzi6dLBbuV+3+IyUREaj9ZFvQefnQm28v4OCXlig==} + cpu: [arm] + os: [android] + requiresBuild: true + optional: true + + /@rollup/rollup-android-arm64@4.9.1: + resolution: {integrity: sha512-Jto9Fl3YQ9OLsTDWtLFPtaIMSL2kwGyGoVCmPC8Gxvym9TCZm4Sie+cVeblPO66YZsYH8MhBKDMGZ2NDxuk/XQ==} + cpu: [arm64] + os: [android] + requiresBuild: true + optional: true + + /@rollup/rollup-darwin-arm64@4.9.1: + resolution: {integrity: sha512-LtYcLNM+bhsaKAIGwVkh5IOWhaZhjTfNOkGzGqdHvhiCUVuJDalvDxEdSnhFzAn+g23wgsycmZk1vbnaibZwwA==} + cpu: [arm64] + os: [darwin] + requiresBuild: true + optional: true + + /@rollup/rollup-darwin-x64@4.9.1: + resolution: {integrity: sha512-KyP/byeXu9V+etKO6Lw3E4tW4QdcnzDG/ake031mg42lob5tN+5qfr+lkcT/SGZaH2PdW4Z1NX9GHEkZ8xV7og==} + cpu: [x64] + os: [darwin] + requiresBuild: true + optional: true + + /@rollup/rollup-linux-arm-gnueabihf@4.9.1: + resolution: {integrity: sha512-Yqz/Doumf3QTKplwGNrCHe/B2p9xqDghBZSlAY0/hU6ikuDVQuOUIpDP/YcmoT+447tsZTmirmjgG3znvSCR0Q==} + cpu: [arm] + os: [linux] + requiresBuild: true + optional: true + + /@rollup/rollup-linux-arm64-gnu@4.9.1: + resolution: {integrity: sha512-u3XkZVvxcvlAOlQJ3UsD1rFvLWqu4Ef/Ggl40WAVCuogf4S1nJPHh5RTgqYFpCOvuGJ7H5yGHabjFKEZGExk5Q==} + cpu: [arm64] + os: [linux] + requiresBuild: true + optional: true + + /@rollup/rollup-linux-arm64-musl@4.9.1: + resolution: {integrity: sha512-0XSYN/rfWShW+i+qjZ0phc6vZ7UWI8XWNz4E/l+6edFt+FxoEghrJHjX1EY/kcUGCnZzYYRCl31SNdfOi450Aw==} + cpu: [arm64] + os: [linux] + requiresBuild: true + optional: true + + /@rollup/rollup-linux-riscv64-gnu@4.9.1: + resolution: {integrity: sha512-LmYIO65oZVfFt9t6cpYkbC4d5lKHLYv5B4CSHRpnANq0VZUQXGcCPXHzbCXCz4RQnx7jvlYB1ISVNCE/omz5cw==} + cpu: [riscv64] + os: [linux] + requiresBuild: true + optional: true + + /@rollup/rollup-linux-x64-gnu@4.9.1: + resolution: {integrity: sha512-kr8rEPQ6ns/Lmr/hiw8sEVj9aa07gh1/tQF2Y5HrNCCEPiCBGnBUt9tVusrcBBiJfIt1yNaXN6r1CCmpbFEDpg==} + cpu: [x64] + os: [linux] + requiresBuild: true + optional: true + + /@rollup/rollup-linux-x64-musl@4.9.1: + resolution: {integrity: sha512-t4QSR7gN+OEZLG0MiCgPqMWZGwmeHhsM4AkegJ0Kiy6TnJ9vZ8dEIwHw1LcZKhbHxTY32hp9eVCMdR3/I8MGRw==} + cpu: [x64] + os: [linux] + requiresBuild: true + optional: true + + /@rollup/rollup-win32-arm64-msvc@4.9.1: + resolution: {integrity: sha512-7XI4ZCBN34cb+BH557FJPmh0kmNz2c25SCQeT9OiFWEgf8+dL6ZwJ8f9RnUIit+j01u07Yvrsuu1rZGxJCc51g==} + cpu: [arm64] + os: [win32] + requiresBuild: true + optional: true + + /@rollup/rollup-win32-ia32-msvc@4.9.1: + resolution: {integrity: sha512-yE5c2j1lSWOH5jp+Q0qNL3Mdhr8WuqCNVjc6BxbVfS5cAS6zRmdiw7ktb8GNpDCEUJphILY6KACoFoRtKoqNQg==} + cpu: [ia32] + os: [win32] + requiresBuild: true + optional: true + + /@rollup/rollup-win32-x64-msvc@4.9.1: + resolution: {integrity: sha512-PyJsSsafjmIhVgaI1Zdj7m8BB8mMckFah/xbpplObyHfiXzKcI5UOUXRyOdHW7nz4DpMCuzLnF7v5IWHenCwYA==} + cpu: [x64] + os: [win32] + requiresBuild: true + optional: true + /@smithy/abort-controller@2.0.13: resolution: {integrity: sha512-eeOPD+GF9BzF/Mjy3PICLePx4l0f3rG/nQegQHRLTloN5p1lSJJNZsyn+FzDnW8P2AduragZqJdtKNCxXozB1Q==} engines: {node: '>=14.0.0'} @@ -2010,86 +1906,92 @@ packages: tslib: 2.5.0 dev: false - /@sveltejs/adapter-auto@2.0.0(@sveltejs/kit@1.27.6): - resolution: {integrity: sha512-b+gkHFZgD771kgV3aO4avHFd7y1zhmMYy9i6xOK7m/rwmwaRO8gnF5zBc0Rgca80B2PMU1bKNxyBTHA14OzUAQ==} + /@sveltejs/adapter-auto@3.0.0(@sveltejs/kit@2.0.3): + resolution: {integrity: sha512-UNWSs/rOReBRfI/xFwSO2WYF1a7PT74SrWOHJmSNLY3Lq+zbH0uuvnlP+TmrTUBvOTkou3WJDjL6lK3n6aOUgQ==} peerDependencies: - '@sveltejs/kit': ^1.0.0 + '@sveltejs/kit': ^2.0.0 dependencies: - '@sveltejs/kit': 1.27.6(svelte@4.0.1)(vite@4.4.2) - import-meta-resolve: 2.2.2 + '@sveltejs/kit': 2.0.3(@sveltejs/vite-plugin-svelte@3.0.1)(svelte@4.2.8)(vite@5.0.10) + import-meta-resolve: 4.0.0 dev: true - /@sveltejs/adapter-vercel@2.4.1(@sveltejs/kit@1.27.6): - resolution: {integrity: sha512-7YOHBq8onxqD5ZshQhveuSzJg9ZOicKoNZQtOnAj++0MJmPElxQ5Mjqp6aQfIhHAHl8tn5UbacCpvR39mPejgw==} + /@sveltejs/adapter-static@3.0.0(@sveltejs/kit@2.0.3): + resolution: {integrity: sha512-nNsm8XChhJgQdeVegdXU+EnpznSUlsIjlLJa9SNmvSVN3rcPtB2BAnGuS/EWCtgPLkVcy9V2kW5knronqmF+KQ==} peerDependencies: - '@sveltejs/kit': ^1.5.0 + '@sveltejs/kit': ^2.0.0 dependencies: - '@sveltejs/kit': 1.27.6(svelte@4.0.1)(vite@4.4.2) - '@vercel/nft': 0.22.6 - esbuild: 0.16.17 + '@sveltejs/kit': 2.0.3(@sveltejs/vite-plugin-svelte@3.0.1)(svelte@4.2.8)(vite@5.0.10) + dev: false + + /@sveltejs/adapter-vercel@4.0.2(@sveltejs/kit@2.0.3): + resolution: {integrity: sha512-DrNXWIRz5f6I4TZPLfSb7q5vDJRf7sKUxPbe10X4pOHdCBTFbb2JDi2UTnV3ULP5YSqFvIsSIPdnuMoSFsn2mQ==} + peerDependencies: + '@sveltejs/kit': ^2.0.0 + dependencies: + '@sveltejs/kit': 2.0.3(@sveltejs/vite-plugin-svelte@3.0.1)(svelte@4.2.8)(vite@5.0.10) + '@vercel/nft': 0.26.0 + esbuild: 0.19.9 transitivePeerDependencies: - encoding - supports-color dev: true - /@sveltejs/kit@1.27.6(svelte@4.0.1)(vite@4.4.2): - resolution: {integrity: sha512-GsjTkMbKzXdbeRg0tk8S7HNShQ4879ftRr0ZHaZfjbig1xQwG57Bvcm9U9/mpLJtCapLbLWUnygKrgcLISLC8A==} - engines: {node: ^16.14 || >=18} + /@sveltejs/kit@2.0.3(@sveltejs/vite-plugin-svelte@3.0.1)(svelte@4.2.8)(vite@5.0.10): + resolution: {integrity: sha512-TjqRBC7I3qnGeRfmxAkkwbQVnto9x+DsSDTtHC4qC+MgHPImIVzSgUiw//tZ3/uB5/MXhGNLhi5mztWZVM0sjw==} + engines: {node: '>=18.13'} hasBin: true requiresBuild: true peerDependencies: - svelte: ^3.54.0 || ^4.0.0-next.0 || ^5.0.0-next.0 - vite: ^4.0.0 + '@sveltejs/vite-plugin-svelte': ^3.0.0 + svelte: ^4.0.0 || ^5.0.0-next.0 + vite: ^5.0.3 dependencies: - '@sveltejs/vite-plugin-svelte': 2.5.2(svelte@4.0.1)(vite@4.4.2) - '@types/cookie': 0.5.1 - cookie: 0.5.0 + '@sveltejs/vite-plugin-svelte': 3.0.1(svelte@4.2.8)(vite@5.0.10) + '@types/cookie': 0.6.0 + cookie: 0.6.0 devalue: 4.3.2 esm-env: 1.0.0 kleur: 4.1.5 - magic-string: 0.30.0 + magic-string: 0.30.5 mrmime: 1.0.1 sade: 1.8.1 set-cookie-parser: 2.6.0 - sirv: 2.0.2 - svelte: 4.0.1 + sirv: 2.0.3 + svelte: 4.2.8 tiny-glob: 0.2.9 - undici: 5.26.5 - vite: 4.4.2 - transitivePeerDependencies: - - supports-color + vite: 5.0.10 - /@sveltejs/vite-plugin-svelte-inspector@1.0.4(@sveltejs/vite-plugin-svelte@2.5.2)(svelte@4.0.1)(vite@4.4.2): - resolution: {integrity: sha512-zjiuZ3yydBtwpF3bj0kQNV0YXe+iKE545QGZVTaylW3eAzFr+pJ/cwK8lZEaRp4JtaJXhD5DyWAV4AxLh6DgaQ==} - engines: {node: ^14.18.0 || >= 16} + /@sveltejs/vite-plugin-svelte-inspector@2.0.0(@sveltejs/vite-plugin-svelte@3.0.1)(svelte@4.2.8)(vite@5.0.10): + resolution: {integrity: sha512-gjr9ZFg1BSlIpfZ4PRewigrvYmHWbDrq2uvvPB1AmTWKuM+dI1JXQSUu2pIrYLb/QncyiIGkFDFKTwJ0XqQZZg==} + engines: {node: ^18.0.0 || >=20} peerDependencies: - '@sveltejs/vite-plugin-svelte': ^2.2.0 - svelte: ^3.54.0 || ^4.0.0 - vite: ^4.0.0 + '@sveltejs/vite-plugin-svelte': ^3.0.0 + svelte: ^4.0.0 || ^5.0.0-next.0 + vite: ^5.0.0 dependencies: - '@sveltejs/vite-plugin-svelte': 2.5.2(svelte@4.0.1)(vite@4.4.2) + '@sveltejs/vite-plugin-svelte': 3.0.1(svelte@4.2.8)(vite@5.0.10) debug: 4.3.4 - svelte: 4.0.1 - vite: 4.4.2 + svelte: 4.2.8 + vite: 5.0.10 transitivePeerDependencies: - supports-color - /@sveltejs/vite-plugin-svelte@2.5.2(svelte@4.0.1)(vite@4.4.2): - resolution: {integrity: sha512-Dfy0Rbl+IctOVfJvWGxrX/3m6vxPLH8o0x+8FA5QEyMUQMo4kGOVIojjryU7YomBAexOTAuYf1RT7809yDziaA==} - engines: {node: ^14.18.0 || >= 16} + /@sveltejs/vite-plugin-svelte@3.0.1(svelte@4.2.8)(vite@5.0.10): + resolution: {integrity: sha512-CGURX6Ps+TkOovK6xV+Y2rn8JKa8ZPUHPZ/NKgCxAmgBrXReavzFl8aOSCj3kQ1xqT7yGJj53hjcV/gqwDAaWA==} + engines: {node: ^18.0.0 || >=20} peerDependencies: - svelte: ^3.54.0 || ^4.0.0 || ^5.0.0-next.0 - vite: ^4.0.0 + svelte: ^4.0.0 || ^5.0.0-next.0 + vite: ^5.0.0 dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 1.0.4(@sveltejs/vite-plugin-svelte@2.5.2)(svelte@4.0.1)(vite@4.4.2) + '@sveltejs/vite-plugin-svelte-inspector': 2.0.0(@sveltejs/vite-plugin-svelte@3.0.1)(svelte@4.2.8)(vite@5.0.10) debug: 4.3.4 deepmerge: 4.3.1 kleur: 4.1.5 magic-string: 0.30.5 - svelte: 4.0.1 - svelte-hmr: 0.15.3(svelte@4.0.1) - vite: 4.4.2 - vitefu: 0.2.4(vite@4.4.2) + svelte: 4.2.8 + svelte-hmr: 0.15.3(svelte@4.2.8) + vite: 5.0.10 + vitefu: 0.2.5(vite@5.0.10) transitivePeerDependencies: - supports-color @@ -2102,6 +2004,10 @@ packages: /@types/cookie@0.5.1: resolution: {integrity: sha512-COUnqfB2+ckwXXSFInsFdOAWQzCCx+a5hq2ruyj+Vjund94RJQd4LG2u9hnvJrTgunKAaax7ancBYlDrNYxA0g==} + dev: true + + /@types/cookie@0.6.0: + resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==} /@types/estree@1.0.5: resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} @@ -2153,7 +2059,7 @@ packages: '@types/webidl-conversions': 7.0.0 dev: false - /@typescript-eslint/eslint-plugin@5.56.0(@typescript-eslint/parser@5.56.0)(eslint@8.36.0)(typescript@5.0.4): + /@typescript-eslint/eslint-plugin@5.56.0(@typescript-eslint/parser@5.56.0)(eslint@8.36.0)(typescript@5.3.3): resolution: {integrity: sha512-ZNW37Ccl3oMZkzxrYDUX4o7cnuPgU+YrcaYXzsRtLB16I1FR5SHMqga3zGsaSliZADCWo2v8qHWqAYIj8nWCCg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -2165,23 +2071,23 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.4.1 - '@typescript-eslint/parser': 5.56.0(eslint@8.36.0)(typescript@5.0.4) + '@typescript-eslint/parser': 5.56.0(eslint@8.36.0)(typescript@5.3.3) '@typescript-eslint/scope-manager': 5.56.0 - '@typescript-eslint/type-utils': 5.56.0(eslint@8.36.0)(typescript@5.0.4) - '@typescript-eslint/utils': 5.56.0(eslint@8.36.0)(typescript@5.0.4) + '@typescript-eslint/type-utils': 5.56.0(eslint@8.36.0)(typescript@5.3.3) + '@typescript-eslint/utils': 5.56.0(eslint@8.36.0)(typescript@5.3.3) debug: 4.3.4 eslint: 8.36.0 grapheme-splitter: 1.0.4 ignore: 5.2.4 natural-compare-lite: 1.4.0 semver: 7.3.8 - tsutils: 3.21.0(typescript@5.0.4) - typescript: 5.0.4 + tsutils: 3.21.0(typescript@5.3.3) + typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser@5.56.0(eslint@8.36.0)(typescript@5.0.4): + /@typescript-eslint/parser@5.56.0(eslint@8.36.0)(typescript@5.3.3): resolution: {integrity: sha512-sn1OZmBxUsgxMmR8a8U5QM/Wl+tyqlH//jTqCg8daTAmhAk26L2PFhcqPLlYBhYUJMZJK276qLXlHN3a83o2cg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -2193,10 +2099,10 @@ packages: dependencies: '@typescript-eslint/scope-manager': 5.56.0 '@typescript-eslint/types': 5.56.0 - '@typescript-eslint/typescript-estree': 5.56.0(typescript@5.0.4) + '@typescript-eslint/typescript-estree': 5.56.0(typescript@5.3.3) debug: 4.3.4 eslint: 8.36.0 - typescript: 5.0.4 + typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true @@ -2209,7 +2115,7 @@ packages: '@typescript-eslint/visitor-keys': 5.56.0 dev: true - /@typescript-eslint/type-utils@5.56.0(eslint@8.36.0)(typescript@5.0.4): + /@typescript-eslint/type-utils@5.56.0(eslint@8.36.0)(typescript@5.3.3): resolution: {integrity: sha512-8WxgOgJjWRy6m4xg9KoSHPzBNZeQbGlQOH7l2QEhQID/+YseaFxg5J/DLwWSsi9Axj4e/cCiKx7PVzOq38tY4A==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -2219,12 +2125,12 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 5.56.0(typescript@5.0.4) - '@typescript-eslint/utils': 5.56.0(eslint@8.36.0)(typescript@5.0.4) + '@typescript-eslint/typescript-estree': 5.56.0(typescript@5.3.3) + '@typescript-eslint/utils': 5.56.0(eslint@8.36.0)(typescript@5.3.3) debug: 4.3.4 eslint: 8.36.0 - tsutils: 3.21.0(typescript@5.0.4) - typescript: 5.0.4 + tsutils: 3.21.0(typescript@5.3.3) + typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true @@ -2234,7 +2140,7 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/typescript-estree@5.56.0(typescript@5.0.4): + /@typescript-eslint/typescript-estree@5.56.0(typescript@5.3.3): resolution: {integrity: sha512-41CH/GncsLXOJi0jb74SnC7jVPWeVJ0pxQj8bOjH1h2O26jXN3YHKDT1ejkVz5YeTEQPeLCCRY0U2r68tfNOcg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -2249,13 +2155,13 @@ packages: globby: 11.1.0 is-glob: 4.0.3 semver: 7.3.8 - tsutils: 3.21.0(typescript@5.0.4) - typescript: 5.0.4 + tsutils: 3.21.0(typescript@5.3.3) + typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils@5.56.0(eslint@8.36.0)(typescript@5.0.4): + /@typescript-eslint/utils@5.56.0(eslint@8.36.0)(typescript@5.3.3): resolution: {integrity: sha512-XhZDVdLnUJNtbzaJeDSCIYaM+Tgr59gZGbFuELgF7m0IY03PlciidS7UQNKLE0+WpUTn1GlycEr6Ivb/afjbhA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -2266,7 +2172,7 @@ packages: '@types/semver': 7.3.13 '@typescript-eslint/scope-manager': 5.56.0 '@typescript-eslint/types': 5.56.0 - '@typescript-eslint/typescript-estree': 5.56.0(typescript@5.0.4) + '@typescript-eslint/typescript-estree': 5.56.0(typescript@5.3.3) eslint: 8.36.0 eslint-scope: 5.1.1 semver: 7.3.8 @@ -2283,14 +2189,15 @@ packages: eslint-visitor-keys: 3.3.0 dev: true - /@vercel/nft@0.22.6: - resolution: {integrity: sha512-gTsFnnT4mGxodr4AUlW3/urY+8JKKB452LwF3m477RFUJTAaDmcz2JqFuInzvdybYIeyIv1sSONEJxsxnbQ5JQ==} - engines: {node: '>=14'} + /@vercel/nft@0.26.0: + resolution: {integrity: sha512-4JoDL1jMPoPb9PpilQx7IQwxDUYCSwnonN8GrR6bP2BVJR390toF/tJe20tcI+wDWPkJKJqNloipfaeQfTeU2w==} + engines: {node: '>=18'} hasBin: true dependencies: '@mapbox/node-pre-gyp': 1.0.10 '@rollup/pluginutils': 4.2.1 - acorn: 8.8.2 + acorn: 8.11.2 + acorn-import-attributes: 1.9.2(acorn@8.11.2) async-sema: 3.1.1 bindings: 1.5.0 estree-walker: 2.0.2 @@ -2308,6 +2215,14 @@ packages: resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} dev: true + /acorn-import-attributes@1.9.2(acorn@8.11.2): + resolution: {integrity: sha512-O+nfJwNolEA771IYJaiLWK1UAwjNsQmZbTRqqwBYxCgVQTmpFEMvBw6LOIQV0Me339L5UMVYFyRohGnGlQDdIQ==} + peerDependencies: + acorn: ^8 + dependencies: + acorn: 8.11.2 + dev: true + /acorn-jsx@5.3.2(acorn@8.8.2): resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: @@ -2578,7 +2493,7 @@ packages: normalize-path: 3.0.0 readdirp: 3.6.0 optionalDependencies: - fsevents: 2.3.2 + fsevents: 2.3.3 /chownr@1.1.4: resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} @@ -2652,6 +2567,11 @@ packages: /cookie@0.5.0: resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} engines: {node: '>= 0.6'} + dev: false + + /cookie@0.6.0: + resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} + engines: {node: '>= 0.6'} /cross-spawn@7.0.3: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} @@ -2773,15 +2693,9 @@ packages: engines: {node: '>=8'} dev: true - /detect-libc@2.0.1: - resolution: {integrity: sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==} - engines: {node: '>=8'} - dev: true - /detect-libc@2.0.2: resolution: {integrity: sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==} engines: {node: '>=8'} - dev: false /devalue@4.3.2: resolution: {integrity: sha512-KqFl6pOgOW+Y6wJgu80rHpo2/3H07vr8ntR9rkkFIRETewbf5GaYYcakYfiKz89K+sLsuPkQIZaXDMjUObZwWg==} @@ -2824,64 +2738,34 @@ packages: resolution: {integrity: sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==} dev: true - /esbuild@0.16.17: - resolution: {integrity: sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg==} + /esbuild@0.19.9: + resolution: {integrity: sha512-U9CHtKSy+EpPsEBa+/A2gMs/h3ylBC0H0KSqIg7tpztHerLi6nrrcoUJAkNCEPumx8yJ+Byic4BVwHgRbN0TBg==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - '@esbuild/android-arm': 0.16.17 - '@esbuild/android-arm64': 0.16.17 - '@esbuild/android-x64': 0.16.17 - '@esbuild/darwin-arm64': 0.16.17 - '@esbuild/darwin-x64': 0.16.17 - '@esbuild/freebsd-arm64': 0.16.17 - '@esbuild/freebsd-x64': 0.16.17 - '@esbuild/linux-arm': 0.16.17 - '@esbuild/linux-arm64': 0.16.17 - '@esbuild/linux-ia32': 0.16.17 - '@esbuild/linux-loong64': 0.16.17 - '@esbuild/linux-mips64el': 0.16.17 - '@esbuild/linux-ppc64': 0.16.17 - '@esbuild/linux-riscv64': 0.16.17 - '@esbuild/linux-s390x': 0.16.17 - '@esbuild/linux-x64': 0.16.17 - '@esbuild/netbsd-x64': 0.16.17 - '@esbuild/openbsd-x64': 0.16.17 - '@esbuild/sunos-x64': 0.16.17 - '@esbuild/win32-arm64': 0.16.17 - '@esbuild/win32-ia32': 0.16.17 - '@esbuild/win32-x64': 0.16.17 - dev: true - - /esbuild@0.18.11: - resolution: {integrity: sha512-i8u6mQF0JKJUlGR3OdFLKldJQMMs8OqM9Cc3UCi9XXziJ9WERM5bfkHaEAy0YAvPRMgqSW55W7xYn84XtEFTtA==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true - optionalDependencies: - '@esbuild/android-arm': 0.18.11 - '@esbuild/android-arm64': 0.18.11 - '@esbuild/android-x64': 0.18.11 - '@esbuild/darwin-arm64': 0.18.11 - '@esbuild/darwin-x64': 0.18.11 - '@esbuild/freebsd-arm64': 0.18.11 - '@esbuild/freebsd-x64': 0.18.11 - '@esbuild/linux-arm': 0.18.11 - '@esbuild/linux-arm64': 0.18.11 - '@esbuild/linux-ia32': 0.18.11 - '@esbuild/linux-loong64': 0.18.11 - '@esbuild/linux-mips64el': 0.18.11 - '@esbuild/linux-ppc64': 0.18.11 - '@esbuild/linux-riscv64': 0.18.11 - '@esbuild/linux-s390x': 0.18.11 - '@esbuild/linux-x64': 0.18.11 - '@esbuild/netbsd-x64': 0.18.11 - '@esbuild/openbsd-x64': 0.18.11 - '@esbuild/sunos-x64': 0.18.11 - '@esbuild/win32-arm64': 0.18.11 - '@esbuild/win32-ia32': 0.18.11 - '@esbuild/win32-x64': 0.18.11 + '@esbuild/android-arm': 0.19.9 + '@esbuild/android-arm64': 0.19.9 + '@esbuild/android-x64': 0.19.9 + '@esbuild/darwin-arm64': 0.19.9 + '@esbuild/darwin-x64': 0.19.9 + '@esbuild/freebsd-arm64': 0.19.9 + '@esbuild/freebsd-x64': 0.19.9 + '@esbuild/linux-arm': 0.19.9 + '@esbuild/linux-arm64': 0.19.9 + '@esbuild/linux-ia32': 0.19.9 + '@esbuild/linux-loong64': 0.19.9 + '@esbuild/linux-mips64el': 0.19.9 + '@esbuild/linux-ppc64': 0.19.9 + '@esbuild/linux-riscv64': 0.19.9 + '@esbuild/linux-s390x': 0.19.9 + '@esbuild/linux-x64': 0.19.9 + '@esbuild/netbsd-x64': 0.19.9 + '@esbuild/openbsd-x64': 0.19.9 + '@esbuild/sunos-x64': 0.19.9 + '@esbuild/win32-arm64': 0.19.9 + '@esbuild/win32-ia32': 0.19.9 + '@esbuild/win32-x64': 0.19.9 /escalade@3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} @@ -2902,14 +2786,14 @@ packages: eslint: 8.36.0 dev: true - /eslint-plugin-svelte3@4.0.0(eslint@8.36.0)(svelte@4.0.1): + /eslint-plugin-svelte3@4.0.0(eslint@8.36.0)(svelte@4.2.8): resolution: {integrity: sha512-OIx9lgaNzD02+MDFNLw0GEUbuovNcglg+wnd/UY0fbZmlQSz7GlQiQ1f+yX0XvC07XPcDOnFcichqI3xCwp71g==} peerDependencies: eslint: '>=8.0.0' svelte: ^3.2.0 dependencies: eslint: 8.36.0 - svelte: 4.0.1 + svelte: 4.2.8 dev: true /eslint-scope@5.1.1: @@ -3169,6 +3053,14 @@ packages: engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] requiresBuild: true + dev: true + optional: true + + /fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true optional: true /function-bind@1.1.1: @@ -3379,8 +3271,8 @@ packages: resolve-from: 4.0.0 dev: true - /import-meta-resolve@2.2.2: - resolution: {integrity: sha512-f8KcQ1D80V7RnqVm+/lirO9zkOxjGxhaTC1IPrBGd3MEfNgmNG67tSUO9gTi2F3Blr2Az6g1vocaxzkVnWl9MA==} + /import-meta-resolve@4.0.0: + resolution: {integrity: sha512-okYUR7ZQPH+efeuMJGlq4f8ubUgO50kByRPyt/Cy1Io4PSRsPjxME+YlVaCOx+NIToW7hCsZNFJyTPFFKepRSA==} dev: true /imurmurhash@0.1.4: @@ -3519,6 +3411,10 @@ packages: resolution: {integrity: sha512-YPM9Q+dmsna4CGWNn5+oHFsuXJdxvKAOVoNjpe2nje3odSoX5Xz4s71rP50vM8uUKJyQtMnEGPmbVCVR+G4W5g==} dev: false + /jose@5.1.3: + resolution: {integrity: sha512-GPExOkcMsCLBTi1YetY2LmkoY559fss0+0KVa6kOfb2YFe84nAM7Nm/XzuZozah4iHgmBGrCOHL5/cy670SBRw==} + dev: false + /js-sdsl@4.4.0: resolution: {integrity: sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==} dev: true @@ -3616,12 +3512,6 @@ packages: '@jridgewell/sourcemap-codec': 1.4.14 dev: true - /magic-string@0.30.0: - resolution: {integrity: sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==} - engines: {node: '>=12'} - dependencies: - '@jridgewell/sourcemap-codec': 1.4.14 - /magic-string@0.30.5: resolution: {integrity: sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==} engines: {node: '>=12'} @@ -3780,6 +3670,11 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + /nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + /napi-build-utils@1.0.2: resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==} dev: false @@ -3854,6 +3749,10 @@ packages: resolution: {integrity: sha512-JGkb5doGrwzVDuHwgrR4nHJayzN4h59VCed6EW8Tql6iHDfZIabCJvg6wtbn5q6pyB2hZruI3b77Nudvq7NmvA==} dev: false + /oauth4webapi@2.4.0: + resolution: {integrity: sha512-ZWl8ov8HeGVyc9Icl1cag76HvIcDAp23eIIT+UVGir+dEu8BMgMlvZeZwqLVd0P8DqaumH4N+QLQXN69G1QjSA==} + dev: false + /object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} @@ -4065,11 +3964,11 @@ packages: picocolors: 1.0.0 source-map-js: 1.0.2 - /postcss@8.4.25: - resolution: {integrity: sha512-7taJ/8t2av0Z+sQEvNzCkpDynl0tX3uJMCODi6nT3PfASC7dYCWV9aQ+uiCf+KBD4SEFcu+GvJdGdwzQ6OSjCw==} + /postcss@8.4.32: + resolution: {integrity: sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==} engines: {node: ^10 || ^12 || >=14} dependencies: - nanoid: 3.3.6 + nanoid: 3.3.7 picocolors: 1.0.0 source-map-js: 1.0.2 @@ -4110,14 +4009,14 @@ packages: engines: {node: '>= 0.8.0'} dev: true - /prettier-plugin-svelte@2.10.0(prettier@2.8.7)(svelte@4.0.1): + /prettier-plugin-svelte@2.10.0(prettier@2.8.7)(svelte@4.2.8): resolution: {integrity: sha512-GXMY6t86thctyCvQq+jqElO+MKdB09BkL3hexyGP3Oi8XLKRFaJP1ud/xlWCZ9ZIa2BxHka32zhHfcuU+XsRQg==} peerDependencies: prettier: ^1.16.4 || ^2.0.0 svelte: ^3.2.0 dependencies: prettier: 2.8.7 - svelte: 4.0.1 + svelte: 4.2.8 dev: true /prettier@2.8.7: @@ -4232,12 +4131,25 @@ packages: glob: 7.2.3 dev: true - /rollup@3.26.0: - resolution: {integrity: sha512-YzJH0eunH2hr3knvF3i6IkLO/jTjAEwU4HoMUbQl4//Tnl3ou0e7P5SjxdDr8HQJdeUJShlbEHXrrnEHy1l7Yg==} - engines: {node: '>=14.18.0', npm: '>=8.0.0'} + /rollup@4.9.1: + resolution: {integrity: sha512-pgPO9DWzLoW/vIhlSoDByCzcpX92bKEorbgXuZrqxByte3JFk2xSW2JEeAcyLc9Ru9pqcNNW+Ob7ntsk2oT/Xw==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true optionalDependencies: - fsevents: 2.3.2 + '@rollup/rollup-android-arm-eabi': 4.9.1 + '@rollup/rollup-android-arm64': 4.9.1 + '@rollup/rollup-darwin-arm64': 4.9.1 + '@rollup/rollup-darwin-x64': 4.9.1 + '@rollup/rollup-linux-arm-gnueabihf': 4.9.1 + '@rollup/rollup-linux-arm64-gnu': 4.9.1 + '@rollup/rollup-linux-arm64-musl': 4.9.1 + '@rollup/rollup-linux-riscv64-gnu': 4.9.1 + '@rollup/rollup-linux-x64-gnu': 4.9.1 + '@rollup/rollup-linux-x64-musl': 4.9.1 + '@rollup/rollup-win32-arm64-msvc': 4.9.1 + '@rollup/rollup-win32-ia32-msvc': 4.9.1 + '@rollup/rollup-win32-x64-msvc': 4.9.1 + fsevents: 2.3.3 /run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} @@ -4304,7 +4216,6 @@ packages: hasBin: true dependencies: lru-cache: 6.0.0 - dev: false /set-blocking@2.0.0: resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} @@ -4372,8 +4283,8 @@ packages: is-arrayish: 0.3.2 dev: false - /sirv@2.0.2: - resolution: {integrity: sha512-4Qog6aE29nIjAOKe/wowFTxOdmbEZKb+3tsLljaBRzJwtqto0BChD2zzH0LhgCSXiI+V7X+Y45v14wBZQ1TK3w==} + /sirv@2.0.3: + resolution: {integrity: sha512-O9jm9BsID1P+0HOi81VpXPoDxYP374pkOLzACAoyUQ/3OUVndNpsz6wMnY2z+yOxzbllCKZrM+9QrWsv4THnyA==} engines: {node: '>= 10'} dependencies: '@polka/url': 1.0.0-next.21 @@ -4512,7 +4423,7 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - /svelte-check@3.4.4(postcss-load-config@4.0.1)(postcss@8.4.21)(svelte@4.0.1): + /svelte-check@3.4.4(postcss-load-config@4.0.1)(postcss@8.4.21)(svelte@4.2.8): resolution: {integrity: sha512-Uys9+R65cj8TmP8f5UpS7B2xKpNLYNxEWJsA5ZoKcWq/uwvABFF7xS6iPQGLoa7hxz0DS6xU60YFpmq06E4JxA==} hasBin: true peerDependencies: @@ -4524,9 +4435,9 @@ packages: import-fresh: 3.3.0 picocolors: 1.0.0 sade: 1.8.1 - svelte: 4.0.1 - svelte-preprocess: 5.0.3(postcss-load-config@4.0.1)(postcss@8.4.21)(svelte@4.0.1)(typescript@5.0.4) - typescript: 5.0.4 + svelte: 4.2.8 + svelte-preprocess: 5.0.3(postcss-load-config@4.0.1)(postcss@8.4.21)(svelte@4.2.8)(typescript@5.3.3) + typescript: 5.3.3 transitivePeerDependencies: - '@babel/core' - coffeescript @@ -4546,29 +4457,29 @@ packages: '@floating-ui/dom': 1.4.2 dev: false - /svelte-hmr@0.15.3(svelte@4.0.1): + /svelte-hmr@0.15.3(svelte@4.2.8): resolution: {integrity: sha512-41snaPswvSf8TJUhlkoJBekRrABDXDMdpNpT2tfHIv4JuhgvHqLMhEPGtaQn0BmbNSTkuz2Ed20DF2eHw0SmBQ==} engines: {node: ^12.20 || ^14.13.1 || >= 16} peerDependencies: svelte: ^3.19.0 || ^4.0.0 dependencies: - svelte: 4.0.1 + svelte: 4.2.8 - /svelte-markdown@0.2.3(svelte@4.0.1): + /svelte-markdown@0.2.3(svelte@4.2.8): resolution: {integrity: sha512-2h680NzTXnAD0CXhxe3GeHl6W+ayG4iKQRl+BIDRw+R0mUE0OiNxP1Vt8Rn+aWevB/LBiBIPCAwvL+0BkG057A==} peerDependencies: svelte: ^3.0.0 dependencies: '@types/marked': 4.3.1 marked: 4.3.0 - svelte: 4.0.1 + svelte: 4.2.8 dev: false /svelte-portal@2.2.0: resolution: {integrity: sha512-jhtZWtD6cUE2nMw46dJ5VXWYiqnER+JH+V/BmNBQ5fNP/YdsJCpJi+DemUy9msklqGb0f+wLhJPBtKHLWQvzjg==} dev: true - /svelte-preprocess@4.10.7(postcss-load-config@4.0.1)(postcss@8.4.21)(svelte@4.0.1)(typescript@5.0.4): + /svelte-preprocess@4.10.7(postcss-load-config@4.0.1)(postcss@8.4.21)(svelte@4.2.8)(typescript@5.3.3): resolution: {integrity: sha512-sNPBnqYD6FnmdBrUmBCaqS00RyCsCpj2BG58A1JBswNF7b0OKviwxqVrOL/CKyJrLSClrSeqQv5BXNg2RUbPOw==} engines: {node: '>= 9.11.2'} requiresBuild: true @@ -4617,11 +4528,11 @@ packages: postcss-load-config: 4.0.1(postcss@8.4.21) sorcery: 0.10.0 strip-indent: 3.0.0 - svelte: 4.0.1 - typescript: 5.0.4 + svelte: 4.2.8 + typescript: 5.3.3 dev: true - /svelte-preprocess@5.0.3(postcss-load-config@4.0.1)(postcss@8.4.21)(svelte@4.0.1)(typescript@5.0.4): + /svelte-preprocess@5.0.3(postcss-load-config@4.0.1)(postcss@8.4.21)(svelte@4.2.8)(typescript@5.3.3): resolution: {integrity: sha512-GrHF1rusdJVbOZOwgPWtpqmaexkydznKzy5qIC2FabgpFyKN57bjMUUUqPRfbBXK5igiEWn1uO/DXsa2vJ5VHA==} engines: {node: '>= 14.10.0'} requiresBuild: true @@ -4666,8 +4577,8 @@ packages: postcss-load-config: 4.0.1(postcss@8.4.21) sorcery: 0.11.0 strip-indent: 3.0.0 - svelte: 4.0.1 - typescript: 5.0.4 + svelte: 4.2.8 + typescript: 5.3.3 dev: true /svelte-select@5.6.1: @@ -4689,8 +4600,8 @@ packages: resolution: {integrity: sha512-vzSyuGr3eEoAtT/A6bmajosJZIUWySzY2CzB3w2pgPvnkUjGqlDnsNnA0PMO+mMAhuyMul6C2uuZzY6ELSkzyA==} engines: {node: '>= 8'} - /svelte@4.0.1: - resolution: {integrity: sha512-7n2u7A5cu8xCY6MBiXh/Mg6Lh3+Mw2qXlTDBYhzvCvmSM4L4gc4MVo540UtGcjqBiA48E1VDW+EUpBr7iuBlPg==} + /svelte@4.2.8: + resolution: {integrity: sha512-hU6dh1MPl8gh6klQZwK/n73GiAHiR95IkFsesLPbMeEZi36ydaXL/ZAb4g9sayT0MXzpxyZjR28yderJHxcmYA==} engines: {node: '>=16'} dependencies: '@ampproject/remapping': 2.2.1 @@ -4716,36 +4627,36 @@ packages: svelte: 3.59.2 dev: true - /sveltekit-flash-message@2.1.3(@sveltejs/kit@1.27.6)(svelte@4.0.1): + /sveltekit-flash-message@2.1.3(@sveltejs/kit@2.0.3)(svelte@4.2.8): resolution: {integrity: sha512-NFhQ3t2101AM9JO5Mgj38r69ykF4BOs1Ap3567DaM1RoAaNtXRXpAuEc/DQV78HZN/Fxzw8dxyTMdIC1HztUvA==} peerDependencies: '@sveltejs/kit': 1.x svelte: 3.x || 4.x dependencies: - '@sveltejs/kit': 1.27.6(svelte@4.0.1)(vite@4.4.2) - svelte: 4.0.1 + '@sveltejs/kit': 2.0.3(@sveltejs/vite-plugin-svelte@3.0.1)(svelte@4.2.8)(vite@5.0.10) + svelte: 4.2.8 dev: false - /sveltekit-search-params@1.0.16(@sveltejs/kit@1.27.6)(svelte@4.0.1): + /sveltekit-search-params@1.0.16(@sveltejs/kit@2.0.3)(svelte@4.2.8): resolution: {integrity: sha512-403qbuXZ7finILAzomln3lyWcRovPuPasrFHL7cZaQaTY6fKxniiweWfwkfuGtXg6RpyZpEp5k2lvxYeEHY/pg==} peerDependencies: '@sveltejs/kit': ^1.0.0 svelte: ^3.55.0 || ^4.0.0 dependencies: - '@sveltejs/kit': 1.27.6(svelte@4.0.1)(vite@4.4.2) - svelte: 4.0.1 + '@sveltejs/kit': 2.0.3(@sveltejs/vite-plugin-svelte@3.0.1)(svelte@4.2.8)(vite@5.0.10) + svelte: 4.2.8 dev: true - /sveltekit-superforms@1.5.1(@sveltejs/kit@1.27.6)(svelte@4.0.1)(zod@3.21.4): + /sveltekit-superforms@1.5.1(@sveltejs/kit@2.0.3)(svelte@4.2.8)(zod@3.22.4): resolution: {integrity: sha512-OqKzxuL1P29CFiK1CD00JRsvEsRPedvrR0qXmB4uqzXAIjOS+DpLjoEaa6Cnkd4H00fRa2161GcZNeEBue/D3A==} peerDependencies: '@sveltejs/kit': 1.x svelte: 3.x || 4.x zod: 3.x dependencies: - '@sveltejs/kit': 1.27.6(svelte@4.0.1)(vite@4.4.2) - svelte: 4.0.1 - zod: 3.21.4 + '@sveltejs/kit': 2.0.3(@sveltejs/vite-plugin-svelte@3.0.1)(svelte@4.2.8)(vite@5.0.10) + svelte: 4.2.8 + zod: 3.22.4 dev: true /tailwindcss@3.3.2: @@ -4878,14 +4789,14 @@ packages: /tslib@2.5.0: resolution: {integrity: sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==} - /tsutils@3.21.0(typescript@5.0.4): + /tsutils@3.21.0(typescript@5.3.3): resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} peerDependencies: typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' dependencies: tslib: 1.14.1 - typescript: 5.0.4 + typescript: 5.3.3 dev: true /tunnel-agent@0.6.0: @@ -4906,18 +4817,12 @@ packages: engines: {node: '>=10'} dev: true - /typescript@5.0.4: - resolution: {integrity: sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==} - engines: {node: '>=12.20'} + /typescript@5.3.3: + resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} + engines: {node: '>=14.17'} hasBin: true dev: true - /undici@5.26.5: - resolution: {integrity: sha512-cSb4bPFd5qgR7qr2jYAi0hlX9n5YKK2ONKkLFkxl+v/9BvC0sOpZjBHDBSXc5lWAf5ty9oZdRXytBIHzgUcerw==} - engines: {node: '>=14.0'} - dependencies: - '@fastify/busboy': 2.1.0 - /unset-value@0.1.2: resolution: {integrity: sha512-yhv5I4TsldLdE3UcVQn0hD2T5sNCPv4+qm/CTUpRKIpwthYRIipsAPdsrNpOI79hPQa0rTTeW22Fq6JWRcTgNg==} engines: {node: '>=0.10.0'} @@ -4977,12 +4882,12 @@ packages: resolution: {integrity: sha512-TlhdSp2oEOLFXvEp4psKaeTjR5zBjTRcM/sHUN8PkV1UWuY8HKC8n7GaVdW5Xqnwdr/F1OmzLik1QwDjI4w/nw==} dev: false - /vite@4.4.2: - resolution: {integrity: sha512-zUcsJN+UvdSyHhYa277UHhiJ3iq4hUBwHavOpsNUGsTgjBeoBlK8eDt+iT09pBq0h9/knhG/SPrZiM7cGmg7NA==} - engines: {node: ^14.18.0 || >=16.0.0} + /vite@5.0.10: + resolution: {integrity: sha512-2P8J7WWgmc355HUMlFrwofacvr98DAjoE52BfdbwQtyLH06XKwaL/FMnmKM2crF0iX4MpmMKoDlNCB1ok7zHCw==} + engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: - '@types/node': '>= 14' + '@types/node': ^18.0.0 || >=20.0.0 less: '*' lightningcss: ^1.21.0 sass: '*' @@ -5005,21 +4910,21 @@ packages: terser: optional: true dependencies: - esbuild: 0.18.11 - postcss: 8.4.25 - rollup: 3.26.0 + esbuild: 0.19.9 + postcss: 8.4.32 + rollup: 4.9.1 optionalDependencies: - fsevents: 2.3.2 + fsevents: 2.3.3 - /vitefu@0.2.4(vite@4.4.2): - resolution: {integrity: sha512-fanAXjSaf9xXtOOeno8wZXIhgia+CZury481LsDaV++lSvcU2R9Ch2bPh3PYFyoHW+w9LqAeYRISVQjUIew14g==} + /vitefu@0.2.5(vite@5.0.10): + resolution: {integrity: sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==} peerDependencies: - vite: ^3.0.0 || ^4.0.0 + vite: ^3.0.0 || ^4.0.0 || ^5.0.0 peerDependenciesMeta: vite: optional: true dependencies: - vite: 4.4.2 + vite: 5.0.10 /webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} @@ -5103,13 +5008,13 @@ packages: engines: {node: '>=10'} dev: true - /zod-to-json-schema@3.21.2(zod@3.21.4): - resolution: {integrity: sha512-02yfKymfmIf2rM/5LYGlyw0daEel/f3MsSGMNJZWWf44ato+Y+diFugOpDtgvEUn3cYM5oDAGWW2NHeSD4mByw==} + /zod-to-json-schema@3.22.3(zod@3.22.4): + resolution: {integrity: sha512-9isG8SqRe07p+Aio2ruBZmLm2Q6Sq4EqmXOiNpDxp+7f0LV6Q/LX65fs5Nn+FV/CzfF3NLBoksXbS2jNYIfpKw==} peerDependencies: - zod: ^3.21.4 + zod: ^3.22.4 dependencies: - zod: 3.21.4 + zod: 3.22.4 dev: false - /zod@3.21.4: - resolution: {integrity: sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==} + /zod@3.22.4: + resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==} diff --git a/src/db/models/dishes/actions.ts b/src/db/models/dishes/actions.ts index a1f5eb2..a0222ad 100644 --- a/src/db/models/dishes/actions.ts +++ b/src/db/models/dishes/actions.ts @@ -44,10 +44,9 @@ export const Dishes: Actions = { // Insert into database const created_path = await dishes.insertOne(insert_data).catch(log_error) - console.log('FORM (create)', form) // Redirect to _id page with a toast message - throw redirect( + redirect( 303, `/authenticated/dishes/${created_path.insertedId}`, { @@ -71,7 +70,7 @@ export const Dishes: Actions = { } if (session?.user?.email !== form.data.created_by_user_email) { - throw redirect( + redirect( 302, `/authenticated/dishes/${form.data._id}`, { @@ -95,54 +94,50 @@ export const Dishes: Actions = { await dishes .findOneAndUpdate({ _id: form.data._id }, { $set: form.data }, { returnDocument: 'after' }) .catch(log_error) - console.log('FORM (update)', form) // Send a toast message along with form data return message(form, getSuccessMessage('dish', 'updated')) }, delete: async function (event) { - // console.log('EVENT', event); + // TODO: We're querying the collection twice in this action. See if we can slim it down to just once. const session = await event.locals.getSession() const form = await superValidate(event, dishes_schema) - // Check if session exists if (!session) { return message(form, AUTH_ERROR_MESSAGE) } - // TODO: Setup a check so users can only delete their own dishes - // console.log('DELETE CHECK - session', session?.user?.email, form.data.created_by_user_email); - // console.log('DELETE CHECK - form', form.data); - // console.log('DELETE CHECK - form', form.data.created_by_user_email); - - // if (session?.user?.email !== form.data.created_by_user_email) { - // throw redirect( - // 302, - // `/authenticated/dishes/${form.data._id}`, - // { - // message: `Cannot delete this dish. Session email doesn't match email created by user.`, - // status: 'error', - // // Add id so the toast gets assigned an id - // id: uniqueId() - // }, - // event - // ); - // } - - if (!form.data._id) return fail(400, { message: DEFAULT_FORM_ERROR }) + if (!form.data._id) { + return fail(400, { message: 'Missing dish ID' }) + } - await dishes.deleteOne({ _id: form.data._id }).catch(log_error) + const dish = await dishes.findOne({ _id: form.data._id }) + if (!dish) { + return message(form, 'Dish not found') + } - console.log('FORM (delete)', form) + if (session?.user?.email !== dish.created_by_user_email) { + return redirect( + 302, + `/authenticated/dishes/${form.data._id}`, + { + message: AUTH_ERROR_MESSAGE, + status: 'error', + id: uniqueId() + }, + event + ) + } + + await dishes.deleteOne({ _id: form.data._id }).catch(log_error) - throw redirect( + return redirect( 303, `/authenticated/dishes`, { message: getSuccessMessage('dish', 'deleted'), status: 'success', - // Generate a unique id for the toast message id: uniqueId() }, event diff --git a/src/db/models/dishes/schema.ts b/src/db/models/dishes/schema.ts index f7adabb..d631948 100644 --- a/src/db/models/dishes/schema.ts +++ b/src/db/models/dishes/schema.ts @@ -3,19 +3,21 @@ import { z } from 'zod' import { zodToJsonSchema } from 'zod-to-json-schema' import { requiredString } from '$utilities/zod_helpers' +const positiveNumberSchema = z.number().min(1, { message: 'Must be greater than 0' }).max(9999) + // Validation schema for dishes export const dishes_fields = { _id: z.string().min(1), name: z.string().min(3).max(50, 'Please use less than 50 characters.'), date_added: requiredString, date_updated: requiredString, - rating: z.string().nonempty().default('5'), - serving_size: z.number().positive().max(9999).nullable().optional(), - prep_time: z.number().positive().max(9999).nullable().optional(), - cook_time: z.number().positive().max(9999).nullable().optional(), + rating: z.string().default('5'), + serving_size: positiveNumberSchema.nullable().optional(), + prep_time: positiveNumberSchema.nullable().optional(), + cook_time: positiveNumberSchema.nullable().optional(), created_by_user_email: z.string().email(), updated_by_user_email: z.string().email().optional(), - calories: z.number().positive().max(9999).nullable().optional(), + calories: positiveNumberSchema.nullable().optional(), ingredients: z .array( z @@ -23,7 +25,8 @@ export const dishes_fields = { .min(2, 'Ingredient must be at least 2 characters long.') .max(200, 'Single ingredient must be 200 or less characters.') ) - .max(100, 'Please use less than 100 ingredients.'), + .max(100, 'Please use less than 100 ingredients.') + .optional(), instructions: z .string() .max(5000, 'Instructions must not exceed 5000 characters.') @@ -39,7 +42,7 @@ export const dishes_fields = { export const dishes_schema = z.object(dishes_fields) export const new_dish_schema = z.object({ name: z.string().min(3).max(50, 'Please use less than 50 characters.'), - rating: z.string().nonempty().default('5'), + rating: z.string().default('5'), cuisine: z .string() .min(1, 'Please enter a cuisine.') diff --git a/src/db/models/restaurants/actions.ts b/src/db/models/restaurants/actions.ts index de51ac0..114999b 100644 --- a/src/db/models/restaurants/actions.ts +++ b/src/db/models/restaurants/actions.ts @@ -47,7 +47,7 @@ export const Restaurants: Actions = { console.log('FORM (create)', form) // Redirect to _id page with a toast message - throw redirect( + redirect( 303, `/authenticated/restaurants/${created_path.insertedId}`, { @@ -71,7 +71,7 @@ export const Restaurants: Actions = { } if (session?.user?.email !== form.data.created_by_user_email) { - throw redirect( + redirect( 302, `/authenticated/restaurants/${form.data._id}`, { @@ -101,31 +101,47 @@ export const Restaurants: Actions = { return message(form, getSuccessMessage('restaurant', 'updated')) }, - delete: async function (event) { - // console.log('EVENT', event); + lete: async function (event) { + // TODO: We're querying the collection twice in this action. See if we can slim it down to just once. const session = await event.locals.getSession() const form = await superValidate(event, restaurants_schema) - // Check if session exists if (!session) { return message(form, AUTH_ERROR_MESSAGE) } - // TODO: Setup a check so users can only delete their own restaurants + if (!form.data._id) { + return fail(400, { message: 'Missing restaurant ID' }) + } - if (!form.data._id) return fail(400, { message: DEFAULT_FORM_ERROR }) + // Retrieve the restaurant to check the owner + const restaurant = await restaurants.findOne({ _id: form.data._id }) + if (!restaurant) { + return message(form, 'Restaurant not found') + } - await restaurants.deleteOne({ _id: form.data._id }).catch(log_error) + // Check if the session user's email matches the restaurant's created_by_user_email + if (session?.user?.email !== restaurant.created_by_user_email) { + return redirect( + 302, + `/authenticated/restaurants/${form.data._id}`, + { + message: AUTH_ERROR_MESSAGE, + status: 'error', + id: uniqueId() + }, + event + ) + } - console.log('FORM (delete)', form) + await restaurants.deleteOne({ _id: form.data._id }).catch(log_error) - throw redirect( + return redirect( 303, `/authenticated/restaurants`, { message: getSuccessMessage('restaurant', 'deleted'), status: 'success', - // Generate a unique id for the toast message id: uniqueId() }, event diff --git a/src/hooks.server.ts b/src/hooks.server.ts index 06356cf..8c9f0cf 100644 --- a/src/hooks.server.ts +++ b/src/hooks.server.ts @@ -1,7 +1,7 @@ import { start_mongo } from '$db/mongo' import { SvelteKitAuth } from '@auth/sveltekit' import GitHub from '@auth/core/providers/github' -import { GITHUB_ID, GITHUB_SECRET } from '$env/static/private' +import { GITHUB_ID, GITHUB_SECRET, AUTH_SECRET } from '$env/static/private' import { redirect, type Handle } from '@sveltejs/kit' import { sequence } from '@sveltejs/kit/hooks' @@ -10,7 +10,7 @@ async function authorization({ event, resolve }) { if (event.url.pathname.startsWith('/authenticated')) { const session = await event.locals.getSession() if (!session) { - throw redirect(303, '/') + redirect(303, '/') } } @@ -49,7 +49,11 @@ const logger: Handle = async ({ event, resolve }) => { // And returning a handle which gets passed to the next function export const handle: Handle = sequence( SvelteKitAuth({ - providers: [GitHub({ clientId: GITHUB_ID, clientSecret: GITHUB_SECRET })] + providers: [GitHub({ clientId: GITHUB_ID, clientSecret: GITHUB_SECRET })], + // TODO - Manually set 'static private' AUTH_SECRET var for now, but for later Authjs versions, check if there is a better way to do this: + // @see https://github.com/nextauthjs/next-auth/issues/9436#issuecomment-1866896827 + trustHost: true, + secret: AUTH_SECRET }), authorization, logger diff --git a/src/lib/forms/superforms.ts b/src/lib/forms/superforms.ts index 7188cc5..8b0b984 100644 --- a/src/lib/forms/superforms.ts +++ b/src/lib/forms/superforms.ts @@ -1,6 +1,6 @@ -import type { FormOptions } from 'sveltekit-superforms/client'; -import { sendToast } from '../stores/toast'; -import * as flashModule from 'sveltekit-flash-message/client'; +import type { FormOptions } from 'sveltekit-superforms/client' +import { sendToast } from '../stores/toast' +import * as flashModule from 'sveltekit-flash-message/client' /** * Super Forms Options @@ -25,11 +25,11 @@ export const defaultSuperOptions: FormOptions = { flashMessage: { module: flashModule, onError: ({ error }) => { - console.error('error', error); - return sendToast(error?.message, 'warning'); + console.error('error', error) + return sendToast(error?.message, 'warning') } } -}; +} // Only enhance options export const onResult = (callback?: (data: any | unknown) => any) => ({ @@ -38,27 +38,27 @@ export const onResult = (callback?: (data: any | unknown) => any) => ({ callback(result) } else { if (result?.type === 'error') { - console.error(result); - return sendToast(result.error.message, 'warning'); + console.error(result) + return sendToast(result.error.message, 'warning') } if (result?.errors || result?.type === 'failure') { - console.error('failure', result); - return sendToast(result.message, 'warning'); + console.error('failure', result) + return sendToast(result.message, 'warning') } if (result?.type === 'success') { - sendToast(result.data.form.message, 'success'); + sendToast(result.data.form.message, 'success') } if (callback && 'data' in result && result?.data) { - callback(result.data.form); + callback(result.data.form) } } } -}); +}) export const getSuperOptions = (callback?: (data: any | unknown) => any) => ({ ...defaultSuperOptions, ...onResult(callback) -}); +}) diff --git a/src/routes/auth/+page.server.ts b/src/routes/auth/+page.server.ts index dd6a336..bf96b5d 100644 --- a/src/routes/auth/+page.server.ts +++ b/src/routes/auth/+page.server.ts @@ -3,6 +3,6 @@ import type { PageServerLoad } from './$types'; export const load: PageServerLoad = async (event) => { const session = await event.locals.getSession(); - if (session?.user) throw redirect(303, '/'); + if (session?.user) redirect(303, '/'); return {}; }; diff --git a/src/routes/authenticated/dishes/+page.server.ts b/src/routes/authenticated/dishes/+page.server.ts index 1a4d4ef..d44a351 100644 --- a/src/routes/authenticated/dishes/+page.server.ts +++ b/src/routes/authenticated/dishes/+page.server.ts @@ -1,30 +1,30 @@ -import type { PageServerLoad } from './$types'; -import { dishes } from '$db/models/dishes/collection'; -import { Dishes } from '$db/models/dishes/actions'; -import { superValidate } from 'sveltekit-superforms/server'; -import { new_dish_schema } from '$db/models/dishes/schema'; +import type { PageServerLoad } from './$types' +import { dishes } from '$db/models/dishes/collection' +import { Dishes } from '$db/models/dishes/actions' +import { superValidate } from 'sveltekit-superforms/server' +import { new_dish_schema } from '$db/models/dishes/schema' export const load = (async (event) => { - const session = await event.locals.getSession(); - const user_email = session?.user?.email; + const session = await event.locals.getSession() + const user_email = session?.user?.email // Query ONLY for dishes made by the user (same email) const all_user_dishes = await dishes .find({ created_by_user_email: user_email }, { sort: { order: 1 } }) - .toArray(); + .toArray() // Server API: // See https://zod.dev/?id=primitives for schema syntax - const form = await superValidate(event, new_dish_schema); + const form = await superValidate(event, new_dish_schema) // Always return { form } in load and form actions. return { form, dishes: all_user_dishes - }; -}) satisfies PageServerLoad; + } +}) satisfies PageServerLoad export const actions = { create: Dishes.create, update: Dishes.update, delete: Dishes.delete -}; +} diff --git a/src/routes/authenticated/dishes/+page.svelte b/src/routes/authenticated/dishes/+page.svelte index 4288c43..8022a7e 100644 --- a/src/routes/authenticated/dishes/+page.svelte +++ b/src/routes/authenticated/dishes/+page.svelte @@ -1,12 +1,12 @@
diff --git a/src/routes/authenticated/dishes/[_id]/+page.server.ts b/src/routes/authenticated/dishes/[_id]/+page.server.ts index be2454a..b991409 100644 --- a/src/routes/authenticated/dishes/[_id]/+page.server.ts +++ b/src/routes/authenticated/dishes/[_id]/+page.server.ts @@ -10,14 +10,14 @@ const schema = dishes_schema; export const load = async function ({ params }) { if (!params._id) { - throw redirect(302, '/dishes'); + redirect(302, '/dishes'); } const dish = await dishes.findOne({ _id: params._id }); - if (!dish) throw error(404, 'Dish not found.'); + if (!dish) error(404, 'Dish not found.'); const form = await superValidate(dish, schema); diff --git a/src/routes/authenticated/dishes/[_id]/+page.svelte b/src/routes/authenticated/dishes/[_id]/+page.svelte index 9012804..e984e98 100644 --- a/src/routes/authenticated/dishes/[_id]/+page.svelte +++ b/src/routes/authenticated/dishes/[_id]/+page.svelte @@ -261,7 +261,7 @@ .flex-container { display: flex; flex-direction: row; - align-items: start; + align-items: flex-start; gap: 1rem; } } diff --git a/src/routes/authenticated/restaurants/[_id]/+page.server.ts b/src/routes/authenticated/restaurants/[_id]/+page.server.ts index 1b6f321..824fb96 100644 --- a/src/routes/authenticated/restaurants/[_id]/+page.server.ts +++ b/src/routes/authenticated/restaurants/[_id]/+page.server.ts @@ -10,14 +10,14 @@ const schema = restaurants_schema export const load = async function ({ params }) { if (!params._id) { - throw redirect(302, '/restaurants') + redirect(302, '/restaurants'); } const restaurant = await restaurants.findOne({ _id: params._id }) - if (!restaurant) throw error(404, 'Restaurant not found.') + if (!restaurant) error(404, 'Restaurant not found.'); const form = await superValidate(restaurant, schema) diff --git a/svelte.config.js b/svelte.config.js index c93e47f..6c92913 100644 --- a/svelte.config.js +++ b/svelte.config.js @@ -1,6 +1,6 @@ -import preprocess from 'svelte-preprocess'; -import adapter from '@sveltejs/adapter-vercel'; -import { vitePreprocess } from '@sveltejs/kit/vite'; +import preprocess from 'svelte-preprocess' +import adapter from '@sveltejs/adapter-vercel' +import { vitePreprocess } from '@sveltejs/vite-plugin-svelte' /** @type {import('@sveltejs/kit').Config} */ const config = { @@ -30,6 +30,6 @@ const config = { $stores: './src/lib/stores' } } -}; +} -export default config; +export default config diff --git a/tsconfig.json b/tsconfig.json index 6ae0c8c..11c20f5 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,15 +1,33 @@ { "extends": "./.svelte-kit/tsconfig.json", "compilerOptions": { - "allowJs": true, - "checkJs": true, - "esModuleInterop": true, - "forceConsistentCasingInFileNames": true, + "importHelpers": true, + "strict": true, + "moduleResolution": "node", + "module": "es2020", + "lib": ["es2020", "DOM", "DOM.Iterable"], + "target": "ES2022", + /** + svelte-preprocess cannot figure out whether you have a value or a type, so tell TypeScript + to enforce using \`import type\` instead of \`import\` for Types. + */ + "isolatedModules": true, "resolveJsonModule": true, - "skipLibCheck": true, + /** + To have warnings/errors of the Svelte compiler at the correct position, + enable source maps by default. + */ "sourceMap": true, - "strict": true - } + "esModuleInterop": true, + "skipLibCheck": true, + "forceConsistentCasingInFileNames": true, + "allowJs": true, + "checkJs": true, + "verbatimModuleSyntax": false, + "ignoreDeprecations": "5.0" + }, + "exclude": [".svelte-kit", "node_modules"], + "include": ["**/*.d.ts", "src/**/*.js", "src/**/*.ts", "src/**/*.svelte"] // Path aliases are handled by https://kit.svelte.dev/docs/configuration#alias // // If you want to overwrite includes/excludes, make sure to copy over the relevant includes/excludes