From 3329162fc4fc86533032a869da333d8d59ec2e7b Mon Sep 17 00:00:00 2001 From: Robin Munn Date: Tue, 26 Nov 2024 13:23:17 +0700 Subject: [PATCH 01/17] Update NPM packages to Svelte 5 --- frontend/package.json | 14 +- frontend/pnpm-lock.yaml | 1359 ++++++++++++++++++---------------- frontend/pnpm-workspace.yaml | 14 +- frontend/viewer/package.json | 6 +- 4 files changed, 733 insertions(+), 660 deletions(-) diff --git a/frontend/package.json b/frontend/package.json index 302d078e0..a44ede266 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -38,23 +38,23 @@ "@graphql-typed-document-node/core": "^3.2.0", "@iconify-json/mdi": "^1.1.66", "@playwright/test": "^1.44.0", - "@sveltejs/adapter-node": "^4.0.1", - "@sveltejs/kit": "^2.5.10", - "@sveltejs/vite-plugin-svelte": "^3.1.1", + "@sveltejs/adapter-node": "^5.2.9", + "@sveltejs/kit": "^2.8.4", + "@sveltejs/vite-plugin-svelte": "^4.0.2", "@tailwindcss/typography": "^0.5.13", "@types/mjml": "^4.7.4", "@types/node": "^20.12.12", "@types/zxcvbn": "^4.4.4", "@typescript-eslint/eslint-plugin": "^6.21.0", "@typescript-eslint/parser": "catalog:", - "@urql/core": "^5.0.4", + "@urql/core": "^5.0.8", "@urql/devtools": "^2.0.3", "@urql/exchange-graphcache": "^7.1.2", - "@urql/svelte": "^4.2.1", + "@urql/svelte": "^4.2.2", "autoprefixer": "^10.4.19", "daisyui": "^4.11.1", "eslint": "catalog:", - "eslint-plugin-svelte": "^2.39.0", + "eslint-plugin-svelte": "^2.45.1", "globals": "^13.24.0", "graphql": "^16.8.1", "json5": "^2.2.3", @@ -63,7 +63,7 @@ "rimraf": "^5.0.7", "svelte": "catalog:", "svelte-check": "catalog:", - "svelte-eslint-parser": "^0.33.1", + "svelte-eslint-parser": "^0.43.0", "svelte-preprocess": "catalog:", "svelte-turnstile": "^0.5.0", "sveltekit-superforms": "^1.13.4", diff --git a/frontend/pnpm-lock.yaml b/frontend/pnpm-lock.yaml index b5631569c..b25eae111 100644 --- a/frontend/pnpm-lock.yaml +++ b/frontend/pnpm-lock.yaml @@ -10,20 +10,20 @@ catalogs: specifier: ^6.21.0 version: 6.21.0 '@vitest/ui': - specifier: ^2.1.4 - version: 2.1.4 + specifier: ^2.1.5 + version: 2.1.5 eslint: - specifier: ^8.57.0 - version: 8.57.1 + specifier: ^9.15.0 + version: 9.15.0 postcss: - specifier: ^8.4.47 - version: 8.4.47 + specifier: ^8.4.49 + version: 8.4.49 svelte: - specifier: ^4.2.19 - version: 4.2.19 + specifier: ^5.2.8 + version: 5.2.8 svelte-check: - specifier: ^4.0.5 - version: 4.0.5 + specifier: ^4.1.0 + version: 4.1.0 svelte-preprocess: specifier: ^6.0.3 version: 6.0.3 @@ -37,11 +37,11 @@ catalogs: specifier: ^5.3.3 version: 5.3.3 vite: - specifier: ^5.4.9 - version: 5.4.9 + specifier: ^5.4.11 + version: 5.4.11 vitest: - specifier: ^2.1.4 - version: 2.1.4 + specifier: ^2.1.5 + version: 2.1.5 importers: @@ -91,7 +91,7 @@ importers: version: 2.4.7 '@vitejs/plugin-basic-ssl': specifier: ^1.1.0 - version: 1.1.0(vite@5.4.9(@types/node@20.12.12)) + version: 1.1.0(vite@5.4.11(@types/node@20.12.12)) css-tree: specifier: ^2.3.1 version: 2.3.1 @@ -112,13 +112,13 @@ importers: version: 2.6.0 svelte-exmarkdown: specifier: ^3.0.5 - version: 3.0.5(svelte@4.2.19) + version: 3.0.5(svelte@5.2.8) svelte-intl-precompile: specifier: ^0.12.3 - version: 0.12.3(@babel/core@7.24.4)(svelte@4.2.19) + version: 0.12.3(@babel/core@7.24.4)(svelte@5.2.8) sveltekit-search-params: specifier: ^2.1.2 - version: 2.1.2(@sveltejs/kit@2.5.10(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.19)(vite@5.4.9(@types/node@20.12.12)))(svelte@4.2.19)(vite@5.4.9(@types/node@20.12.12)))(svelte@4.2.19)(vite@5.4.9(@types/node@20.12.12)) + version: 2.1.2(@sveltejs/kit@2.8.4(@sveltejs/vite-plugin-svelte@4.0.2(svelte@5.2.8)(vite@5.4.11(@types/node@20.12.12)))(svelte@5.2.8)(vite@5.4.11(@types/node@20.12.12)))(svelte@5.2.8)(vite@5.4.11(@types/node@20.12.12)) tus-js-client: specifier: ^4.1.0 version: 4.1.0 @@ -157,14 +157,14 @@ importers: specifier: ^1.44.0 version: 1.44.0 '@sveltejs/adapter-node': - specifier: ^4.0.1 - version: 4.0.1(@sveltejs/kit@2.5.10(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.19)(vite@5.4.9(@types/node@20.12.12)))(svelte@4.2.19)(vite@5.4.9(@types/node@20.12.12))) + specifier: ^5.2.9 + version: 5.2.9(@sveltejs/kit@2.8.4(@sveltejs/vite-plugin-svelte@4.0.2(svelte@5.2.8)(vite@5.4.11(@types/node@20.12.12)))(svelte@5.2.8)(vite@5.4.11(@types/node@20.12.12))) '@sveltejs/kit': - specifier: ^2.5.10 - version: 2.5.10(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.19)(vite@5.4.9(@types/node@20.12.12)))(svelte@4.2.19)(vite@5.4.9(@types/node@20.12.12)) + specifier: ^2.8.4 + version: 2.8.4(@sveltejs/vite-plugin-svelte@4.0.2(svelte@5.2.8)(vite@5.4.11(@types/node@20.12.12)))(svelte@5.2.8)(vite@5.4.11(@types/node@20.12.12)) '@sveltejs/vite-plugin-svelte': - specifier: ^3.1.1 - version: 3.1.1(svelte@4.2.19)(vite@5.4.9(@types/node@20.12.12)) + specifier: ^4.0.2 + version: 4.0.2(svelte@5.2.8)(vite@5.4.11(@types/node@20.12.12)) '@tailwindcss/typography': specifier: ^0.5.13 version: 0.5.13(tailwindcss@3.4.3) @@ -179,34 +179,34 @@ importers: version: 4.4.4 '@typescript-eslint/eslint-plugin': specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.3.3))(eslint@8.57.1)(typescript@5.3.3) + version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@9.15.0(jiti@1.21.0))(typescript@5.3.3))(eslint@9.15.0(jiti@1.21.0))(typescript@5.3.3) '@typescript-eslint/parser': specifier: 'catalog:' - version: 6.21.0(eslint@8.57.1)(typescript@5.3.3) + version: 6.21.0(eslint@9.15.0(jiti@1.21.0))(typescript@5.3.3) '@urql/core': - specifier: ^5.0.4 - version: 5.0.4(graphql@16.8.1) + specifier: ^5.0.8 + version: 5.0.8(graphql@16.8.1) '@urql/devtools': specifier: ^2.0.3 - version: 2.0.3(@urql/core@5.0.4(graphql@16.8.1))(graphql@16.8.1) + version: 2.0.3(@urql/core@5.0.8(graphql@16.8.1))(graphql@16.8.1) '@urql/exchange-graphcache': specifier: ^7.1.2 - version: 7.1.2(@urql/core@5.0.4(graphql@16.8.1))(graphql@16.8.1) + version: 7.1.2(@urql/core@5.0.8(graphql@16.8.1))(graphql@16.8.1) '@urql/svelte': - specifier: ^4.2.1 - version: 4.2.1(@urql/core@5.0.4(graphql@16.8.1))(svelte@4.2.19) + specifier: ^4.2.2 + version: 4.2.2(@urql/core@5.0.8(graphql@16.8.1))(svelte@5.2.8) autoprefixer: specifier: ^10.4.19 - version: 10.4.19(postcss@8.4.47) + version: 10.4.19(postcss@8.4.49) daisyui: specifier: ^4.11.1 - version: 4.11.1(postcss@8.4.47) + version: 4.11.1(postcss@8.4.49) eslint: specifier: 'catalog:' - version: 8.57.1 + version: 9.15.0(jiti@1.21.0) eslint-plugin-svelte: - specifier: ^2.39.0 - version: 2.39.0(eslint@8.57.1)(svelte@4.2.19) + specifier: ^2.45.1 + version: 2.46.0(eslint@9.15.0(jiti@1.21.0))(svelte@5.2.8) globals: specifier: ^13.24.0 version: 13.24.0 @@ -221,28 +221,28 @@ importers: version: 4.0.0 postcss: specifier: 'catalog:' - version: 8.4.47 + version: 8.4.49 rimraf: specifier: ^5.0.7 version: 5.0.7 svelte: specifier: 'catalog:' - version: 4.2.19 + version: 5.2.8 svelte-check: specifier: 'catalog:' - version: 4.0.5(picomatch@4.0.2)(svelte@4.2.19)(typescript@5.3.3) + version: 4.1.0(picomatch@4.0.2)(svelte@5.2.8)(typescript@5.3.3) svelte-eslint-parser: - specifier: ^0.33.1 - version: 0.33.1(svelte@4.2.19) + specifier: ^0.43.0 + version: 0.43.0(svelte@5.2.8) svelte-preprocess: specifier: 'catalog:' - version: 6.0.3(@babel/core@7.24.4)(postcss-load-config@6.0.1(jiti@1.21.0)(postcss@8.4.47))(postcss@8.4.47)(svelte@4.2.19)(typescript@5.3.3) + version: 6.0.3(@babel/core@7.24.4)(postcss-load-config@6.0.1(jiti@1.21.0)(postcss@8.4.49))(postcss@8.4.49)(svelte@5.2.8)(typescript@5.3.3) svelte-turnstile: specifier: ^0.5.0 - version: 0.5.0(svelte@4.2.19) + version: 0.5.0(svelte@5.2.8) sveltekit-superforms: specifier: ^1.13.4 - version: 1.13.4(@sveltejs/kit@2.5.10(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.19)(vite@5.4.9(@types/node@20.12.12)))(svelte@4.2.19)(vite@5.4.9(@types/node@20.12.12)))(svelte@4.2.19)(zod@3.23.8) + version: 1.13.4(@sveltejs/kit@2.8.4(@sveltejs/vite-plugin-svelte@4.0.2(svelte@5.2.8)(vite@5.4.11(@types/node@20.12.12)))(svelte@5.2.8)(vite@5.4.11(@types/node@20.12.12)))(svelte@5.2.8)(zod@3.23.8) tailwindcss: specifier: 'catalog:' version: 3.4.3 @@ -257,13 +257,13 @@ importers: version: 5.3.3 vite: specifier: 'catalog:' - version: 5.4.9(@types/node@20.12.12) + version: 5.4.11(@types/node@20.12.12) vite-plugin-graphql-codegen: specifier: ^3.3.6 - version: 3.3.6(@graphql-codegen/cli@5.0.2(@types/node@20.12.12)(graphql@16.8.1)(typescript@5.3.3))(graphql@16.8.1)(vite@5.4.9(@types/node@20.12.12)) + version: 3.3.6(@graphql-codegen/cli@5.0.2(@types/node@20.12.12)(graphql@16.8.1)(typescript@5.3.3))(graphql@16.8.1)(vite@5.4.11(@types/node@20.12.12)) vitest: specifier: 'catalog:' - version: 2.1.4(@types/node@20.12.12)(@vitest/ui@2.1.4)(happy-dom@15.7.4) + version: 2.1.5(@types/node@20.12.12)(@vitest/ui@2.1.5)(happy-dom@15.7.4) zod: specifier: ^3.23.8 version: 3.23.8 @@ -275,13 +275,13 @@ importers: devDependencies: '@vitejs/plugin-basic-ssl': specifier: ^1.1.0 - version: 1.1.0(vite@5.4.9(@types/node@22.7.3)) + version: 1.1.0(vite@5.4.11(@types/node@22.7.3)) typescript: specifier: 'catalog:' version: 5.3.3 vite: specifier: 'catalog:' - version: 5.4.9(@types/node@22.7.3) + version: 5.4.11(@types/node@22.7.3) viewer: dependencies: @@ -293,7 +293,7 @@ importers: version: 8.0.0 autoprefixer: specifier: ^10.4.19 - version: 10.4.19(postcss@8.4.47) + version: 10.4.19(postcss@8.4.49) fast-json-patch: specifier: ^3.1.1 version: 3.1.1 @@ -302,19 +302,19 @@ importers: version: 4.2.0 postcss: specifier: 'catalog:' - version: 8.4.47 + version: 8.4.49 svelte-exmarkdown: - specifier: ^3.0.5 - version: 3.0.5(svelte@4.2.19) + specifier: ^4.0.1 + version: 4.0.1(svelte@5.2.8) svelte-preprocess: specifier: 'catalog:' - version: 6.0.3(@babel/core@7.24.7)(postcss-load-config@6.0.1(jiti@1.21.0)(postcss@8.4.47))(postcss@8.4.47)(svelte@4.2.19)(typescript@5.3.3) + version: 6.0.3(@babel/core@7.24.7)(postcss-load-config@6.0.1(jiti@1.21.0)(postcss@8.4.49))(postcss@8.4.49)(svelte@5.2.8)(typescript@5.3.3) svelte-routing: specifier: ^2.12.0 version: 2.13.0 svelte-ux: specifier: ^0.75.1 - version: 0.75.1(@babel/core@7.24.7)(postcss-load-config@6.0.1(jiti@1.21.0)(postcss@8.4.47))(postcss@8.4.47)(svelte@4.2.19) + version: 0.75.1(@babel/core@7.24.7)(postcss-load-config@6.0.1(jiti@1.21.0)(postcss@8.4.49))(postcss@8.4.49)(svelte@5.2.8) type-fest: specifier: ^4.18.2 version: 4.18.2 @@ -329,8 +329,8 @@ importers: specifier: ^7.4.47 version: 7.4.47 '@sveltejs/vite-plugin-svelte': - specifier: ^3.1.1 - version: 3.1.1(svelte@4.2.19)(vite@5.4.9(@types/node@22.7.3)) + specifier: ^4.0.2 + version: 4.0.2(svelte@5.2.8)(vite@5.4.11(@types/node@22.7.3)) '@tailwindcss/typography': specifier: ^0.5.13 version: 0.5.13(tailwindcss@3.4.3) @@ -338,8 +338,8 @@ importers: specifier: ^6.6.2 version: 6.6.2 '@testing-library/svelte': - specifier: ^5.2.3 - version: 5.2.3(svelte@4.2.19)(vite@5.4.9(@types/node@22.7.3))(vitest@2.1.4(@types/node@22.7.3)(@vitest/ui@2.1.4)(happy-dom@15.7.4)) + specifier: ^5.2.6 + version: 5.2.6(svelte@5.2.8)(vite@5.4.11(@types/node@22.7.3))(vitest@2.1.5) '@testing-library/user-event': specifier: ^14.5.2 version: 14.5.2(@testing-library/dom@10.4.0) @@ -348,22 +348,22 @@ importers: version: 5.0.4 '@typescript-eslint/parser': specifier: 'catalog:' - version: 6.21.0(eslint@8.57.1)(typescript@5.3.3) + version: 6.21.0(eslint@9.15.0(jiti@1.21.0))(typescript@5.3.3) '@vitest/ui': specifier: 'catalog:' - version: 2.1.4(vitest@2.1.4) + version: 2.1.5(vitest@2.1.5) eslint: specifier: 'catalog:' - version: 8.57.1 + version: 9.15.0(jiti@1.21.0) happy-dom: specifier: ^15.7.4 version: 15.7.4 svelte: specifier: 'catalog:' - version: 4.2.19 + version: 5.2.8 svelte-check: specifier: 'catalog:' - version: 4.0.5(picomatch@4.0.2)(svelte@4.2.19)(typescript@5.3.3) + version: 4.1.0(picomatch@4.0.2)(svelte@5.2.8)(typescript@5.3.3) tailwindcss: specifier: 'catalog:' version: 3.4.3 @@ -378,10 +378,10 @@ importers: version: 5.3.3 vite: specifier: 'catalog:' - version: 5.4.9(@types/node@22.7.3) + version: 5.4.11(@types/node@22.7.3) vitest: specifier: 'catalog:' - version: 2.1.4(@types/node@22.7.3)(@vitest/ui@2.1.4)(happy-dom@15.7.4) + version: 2.1.5(@types/node@22.7.3)(@vitest/ui@2.1.5)(happy-dom@15.7.4) packages: @@ -944,21 +944,37 @@ packages: resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint-community/regexpp@4.11.1': - resolution: {integrity: sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==} + '@eslint-community/regexpp@4.12.1': + resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint/eslintrc@2.1.4': - resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@eslint/config-array@0.19.0': + resolution: {integrity: sha512-zdHg2FPIFNKPdcHWtiNT+jEFCHYVplAXRDlQDyqy0zGx/q2parwh7brGJSiTxRk/TSMkbM//zt/f5CHgyTyaSQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/core@0.9.0': + resolution: {integrity: sha512-7ATR9F0e4W85D/0w7cU0SNj7qkAexMG+bAHEZOjo9akvGuhHE2m7umzWzfnpa0XAg5Kxc1BWmtPMV67jJ+9VUg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/eslintrc@3.2.0': + resolution: {integrity: sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/js@8.57.0': resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@eslint/js@8.57.1': - resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@eslint/js@9.15.0': + resolution: {integrity: sha512-tMTqrY+EzbXmKJR5ToI8lxu7jaN5EdmrBFJpQk5JmSlyLsx6o4t27r883K5xsLuCYCpfKBCGswMSWXsM+jB7lg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/object-schema@2.1.4': + resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/plugin-kit@0.2.3': + resolution: {integrity: sha512-2b/g5hRmpbb1o4GnTZax9N9m0FXzz9OV42ZzI4rDDMDuHUqigAiQCEWChBWCY4ztAGVRjoWT19v0yMmc5/L5kA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@fastify/busboy@2.1.1': resolution: {integrity: sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==} @@ -1221,18 +1237,25 @@ packages: engines: {node: '>=6'} hasBin: true - '@humanwhocodes/config-array@0.13.0': - resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==} - engines: {node: '>=10.10.0'} - deprecated: Use @eslint/config-array instead + '@humanfs/core@0.19.1': + resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} + engines: {node: '>=18.18.0'} + + '@humanfs/node@0.16.6': + resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==} + engines: {node: '>=18.18.0'} '@humanwhocodes/module-importer@1.0.1': resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} engines: {node: '>=12.22'} - '@humanwhocodes/object-schema@2.0.3': - resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} - deprecated: Use @eslint/object-schema instead + '@humanwhocodes/retry@0.3.1': + resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} + engines: {node: '>=18.18'} + + '@humanwhocodes/retry@0.4.1': + resolution: {integrity: sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==} + engines: {node: '>=18.18'} '@iconify-json/mdi@1.1.66': resolution: {integrity: sha512-7KPF2RVUUWav/hXCM8Ti/smqu3cmgePJpiX9CSkldiL+80+eBRBeKlc4vPOc9jhAItlqIU1vKsbKoPP0JIfgbg==} @@ -1947,9 +1970,9 @@ packages: '@repeaterjs/repeater@3.0.5': resolution: {integrity: sha512-l3YHBLAol6d/IKnB9LhpD0cEZWAoe3eFKUyTYWmFmCO2Q/WOckxLQAUyMZWwZV2M/m3+4vgRoaolFqaII82/TA==} - '@rollup/plugin-commonjs@25.0.7': - resolution: {integrity: sha512-nEvcR+LRjEjsaSsc4x3XZfCCvZIaSMenZu/OiwOKGN2UhQpAYI7ru7czFvyWbErlpoGjnSX3D5Ch5FcMA3kRWQ==} - engines: {node: '>=14.0.0'} + '@rollup/plugin-commonjs@28.0.1': + resolution: {integrity: sha512-+tNWdlWKbpB3WgBN7ijjYkq9X5uhjmcvyjEght4NmH5fAU++zfQzAJ6wumLS+dNcvwEZhKx2Z+skY8m7v0wGSA==} + engines: {node: '>=16.0.0 || 14 >= 14.17'} peerDependencies: rollup: ^2.68.0||^3.0.0||^4.0.0 peerDependenciesMeta: @@ -1971,8 +1994,8 @@ packages: peerDependencies: rollup: ^2.42.0 - '@rollup/plugin-node-resolve@15.2.3': - resolution: {integrity: sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==} + '@rollup/plugin-node-resolve@15.3.0': + resolution: {integrity: sha512-9eO5McEICxMzJpDW9OnMYSv4Sta3hmt7VtBFz5zR9273suNOydOyq/FrGeGy+KsTRFm8w0SLVhzig2ILFT63Ag==} engines: {node: '>=14.0.0'} peerDependencies: rollup: ^2.78.0||^3.0.0||^4.0.0 @@ -2004,51 +2027,26 @@ packages: cpu: [arm] os: [android] - '@rollup/rollup-android-arm-eabi@4.9.6': - resolution: {integrity: sha512-MVNXSSYN6QXOulbHpLMKYi60ppyO13W9my1qogeiAqtjb2yR4LSmfU2+POvDkLzhjYLXz9Rf9+9a3zFHW1Lecg==} - cpu: [arm] - os: [android] - '@rollup/rollup-android-arm64@4.24.0': resolution: {integrity: sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA==} cpu: [arm64] os: [android] - '@rollup/rollup-android-arm64@4.9.6': - resolution: {integrity: sha512-T14aNLpqJ5wzKNf5jEDpv5zgyIqcpn1MlwCrUXLrwoADr2RkWA0vOWP4XxbO9aiO3dvMCQICZdKeDrFl7UMClw==} - cpu: [arm64] - os: [android] - '@rollup/rollup-darwin-arm64@4.24.0': resolution: {integrity: sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-arm64@4.9.6': - resolution: {integrity: sha512-CqNNAyhRkTbo8VVZ5R85X73H3R5NX9ONnKbXuHisGWC0qRbTTxnF1U4V9NafzJbgGM0sHZpdO83pLPzq8uOZFw==} - cpu: [arm64] - os: [darwin] - '@rollup/rollup-darwin-x64@4.24.0': resolution: {integrity: sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ==} cpu: [x64] os: [darwin] - '@rollup/rollup-darwin-x64@4.9.6': - resolution: {integrity: sha512-zRDtdJuRvA1dc9Mp6BWYqAsU5oeLixdfUvkTHuiYOHwqYuQ4YgSmi6+/lPvSsqc/I0Omw3DdICx4Tfacdzmhog==} - cpu: [x64] - os: [darwin] - '@rollup/rollup-linux-arm-gnueabihf@4.24.0': resolution: {integrity: sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-gnueabihf@4.9.6': - resolution: {integrity: sha512-oNk8YXDDnNyG4qlNb6is1ojTOGL/tRhbbKeE/YuccItzerEZT68Z9gHrY3ROh7axDc974+zYAPxK5SH0j/G+QQ==} - cpu: [arm] - os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.24.0': resolution: {integrity: sha512-it2BW6kKFVh8xk/BnHfakEeoLPv8STIISekpoF+nBgWM4d55CZKc7T4Dx1pEbTnYm/xEKMgy1MNtYuoA8RFIWw==} cpu: [arm] @@ -2059,21 +2057,11 @@ packages: cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.9.6': - resolution: {integrity: sha512-Z3O60yxPtuCYobrtzjo0wlmvDdx2qZfeAWTyfOjEDqd08kthDKexLpV97KfAeUXPosENKd8uyJMRDfFMxcYkDQ==} - cpu: [arm64] - os: [linux] - '@rollup/rollup-linux-arm64-musl@4.24.0': resolution: {integrity: sha512-9E6MKUJhDuDh604Qco5yP/3qn3y7SLXYuiC0Rpr89aMScS2UAmK1wHP2b7KAa1nSjWJc/f/Lc0Wl1L47qjiyQw==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.9.6': - resolution: {integrity: sha512-gpiG0qQJNdYEVad+1iAsGAbgAnZ8j07FapmnIAQgODKcOTjLEWM9sRb+MbQyVsYCnA0Im6M6QIq6ax7liws6eQ==} - cpu: [arm64] - os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.24.0': resolution: {integrity: sha512-2XFFPJ2XMEiF5Zi2EBf4h73oR1V/lycirxZxHZNc93SqDN/IWhYYSYj8I9381ikUFXZrz2v7r2tOVk2NBwxrWw==} cpu: [ppc64] @@ -2084,11 +2072,6 @@ packages: cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.9.6': - resolution: {integrity: sha512-+uCOcvVmFUYvVDr27aiyun9WgZk0tXe7ThuzoUTAukZJOwS5MrGbmSlNOhx1j80GdpqbOty05XqSl5w4dQvcOA==} - cpu: [riscv64] - os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.24.0': resolution: {integrity: sha512-mjBaoo4ocxJppTorZVKWFpy1bfFj9FeCMJqzlMQGjpNPY9JwQi7OuS1axzNIk0nMX6jSgy6ZURDZ2w0QW6D56g==} cpu: [s390x] @@ -2099,65 +2082,40 @@ packages: cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.9.6': - resolution: {integrity: sha512-HUNqM32dGzfBKuaDUBqFB7tP6VMN74eLZ33Q9Y1TBqRDn+qDonkAUyKWwF9BR9unV7QUzffLnz9GrnKvMqC/fw==} - cpu: [x64] - os: [linux] - '@rollup/rollup-linux-x64-musl@4.24.0': resolution: {integrity: sha512-w1i+L7kAXZNdYl+vFvzSZy8Y1arS7vMgIy8wusXJzRrPyof5LAb02KGr1PD2EkRcl73kHulIID0M501lN+vobQ==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.9.6': - resolution: {integrity: sha512-ch7M+9Tr5R4FK40FHQk8VnML0Szi2KRujUgHXd/HjuH9ifH72GUmw6lStZBo3c3GB82vHa0ZoUfjfcM7JiiMrQ==} - cpu: [x64] - os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.24.0': resolution: {integrity: sha512-VXBrnPWgBpVDCVY6XF3LEW0pOU51KbaHhccHw6AS6vBWIC60eqsH19DAeeObl+g8nKAz04QFdl/Cefta0xQtUQ==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-arm64-msvc@4.9.6': - resolution: {integrity: sha512-VD6qnR99dhmTQ1mJhIzXsRcTBvTjbfbGGwKAHcu+52cVl15AC/kplkhxzW/uT0Xl62Y/meBKDZvoJSJN+vTeGA==} - cpu: [arm64] - os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.24.0': resolution: {integrity: sha512-xrNcGDU0OxVcPTH/8n/ShH4UevZxKIO6HJFK0e15XItZP2UcaiLFd5kiX7hJnqCbSztUF8Qot+JWBC/QXRPYWQ==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.9.6': - resolution: {integrity: sha512-J9AFDq/xiRI58eR2NIDfyVmTYGyIZmRcvcAoJ48oDld/NTR8wyiPUu2X/v1navJ+N/FGg68LEbX3Ejd6l8B7MQ==} - cpu: [ia32] - os: [win32] - '@rollup/rollup-win32-x64-msvc@4.24.0': resolution: {integrity: sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70APJ8RN/4vMJw==} cpu: [x64] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.9.6': - resolution: {integrity: sha512-jqzNLhNDvIZOrt69Ce4UjGRpXJBzhUBzawMwnaDAwyHriki3XollsewxWzOzz+4yOFDkuJHtTsZFwMxhYJWmLQ==} - cpu: [x64] - os: [win32] - '@selderee/plugin-htmlparser2@0.11.0': resolution: {integrity: sha512-P33hHGdldxGabLFjPPpaTxVolMrzrcegejx+0GxjrIb9Zv48D8yAIA/QTDR2dFl7Uz7urX8aX6+5bCZslr+gWQ==} - '@sveltejs/adapter-node@4.0.1': - resolution: {integrity: sha512-IviiTtKCDp+0QoTmmMlGGZBA1EoUNsjecU6XGV9k62S3f01SNsVhpqi2e4nbI62BLGKh/YKKfFii+Vz/b9XIxg==} + '@sveltejs/adapter-node@5.2.9': + resolution: {integrity: sha512-51euNrx0AcaTu8//wDfVh7xmqQSVgU52rfinE/MwvGkJa4nHPJMHmzv6+OIpmxg7gZaF6+5NVlxnieCzxLD59g==} peerDependencies: '@sveltejs/kit': ^2.4.0 - '@sveltejs/kit@2.5.10': - resolution: {integrity: sha512-OqoyTmFG2cYmCFAdBfW+Qxbg8m23H4dv6KqwEt7ofr/ROcfcIl3Z/VT56L22H9f0uNZyr+9Bs1eh2gedOCK9kA==} + '@sveltejs/kit@2.8.4': + resolution: {integrity: sha512-oDSBHPokbP2iaQlHiEWAkVLsIugsXve8YtABtlyHBUljA63Wgx0UtV8MSOQOGpRft1M+Cd5rzer+0SFlppQwOg==} engines: {node: '>=18.13'} hasBin: true peerDependencies: - '@sveltejs/vite-plugin-svelte': ^3.0.0 + '@sveltejs/vite-plugin-svelte': ^3.0.0 || ^4.0.0-next.1 svelte: ^4.0.0 || ^5.0.0-next.0 vite: ^5.0.3 @@ -2169,6 +2127,14 @@ packages: svelte: ^4.0.0 || ^5.0.0-next.0 vite: ^5.0.0 + '@sveltejs/vite-plugin-svelte-inspector@3.0.1': + resolution: {integrity: sha512-2CKypmj1sM4GE7HjllT7UKmo4Q6L5xFRd7VMGEWhYnZ+wc6AUVU01IBd7yUi6WnFndEwWoMNOd6e8UjoN0nbvQ==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22} + peerDependencies: + '@sveltejs/vite-plugin-svelte': ^4.0.0-next.0||^4.0.0 + svelte: ^5.0.0-next.96 || ^5.0.0 + vite: ^5.0.0 + '@sveltejs/vite-plugin-svelte@3.1.1': resolution: {integrity: sha512-rimpFEAboBBHIlzISibg94iP09k/KYdHgVhJlcsTfn7KMBhc70jFX/GRWkRdFCc2fdnk+4+Bdfej23cMDnJS6A==} engines: {node: ^18.0.0 || >=20} @@ -2176,6 +2142,13 @@ packages: svelte: ^4.0.0 || ^5.0.0-next.0 vite: ^5.0.0 + '@sveltejs/vite-plugin-svelte@4.0.2': + resolution: {integrity: sha512-Y9r/fWy539XlAC7+5wfNJ4zH6TygUYoQ0Eegzp0zDDqhJ54+92gOyOX1l4MO1cJSx0O+Gp13YePT5XEa3+kX0w==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22} + peerDependencies: + svelte: ^5.0.0-next.96 || ^5.0.0 + vite: ^5.0.0 + '@tailwindcss/container-queries@0.1.1': resolution: {integrity: sha512-p18dswChx6WnTSaJCSGx6lTmrGzNNvm2FtXmiO6AuA1V4U5REyoqwmT6kgAsIMdjo07QdAfYXHJ4hnMtfHzWgA==} peerDependencies: @@ -2194,8 +2167,8 @@ packages: resolution: {integrity: sha512-P6GJD4yqc9jZLbe98j/EkyQDTPgqftohZF5FBkHY5BUERZmcf4HeO2k0XaefEg329ux2p21i1A1DmyQ1kKw2Jw==} engines: {node: '>=14', npm: '>=6', yarn: '>=1'} - '@testing-library/svelte@5.2.3': - resolution: {integrity: sha512-y5eaD2Vp3hb729dAv3dOYNoZ9uNM0bQ0rd5AfXDWPvI+HiGmjl8ZMOuKzBopveyAkci1Kplb6kS53uZhPGEK+w==} + '@testing-library/svelte@5.2.6': + resolution: {integrity: sha512-1Y8cEg/BtV4J6g9irkY0ksz+ueDFYLiikjTLiqvQPkOUeDzR4gg2zECBf8yrOrCy3e2TAOYMcaysFa0bQMyk1w==} engines: {node: '>= 10'} peerDependencies: svelte: ^3 || ^4 || ^5 || ^5.0.0-next.0 @@ -2252,9 +2225,6 @@ packages: '@types/estree@0.0.39': resolution: {integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==} - '@types/estree@1.0.5': - resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} - '@types/estree@1.0.6': resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} @@ -2442,8 +2412,8 @@ packages: '@ungap/structured-clone@1.2.0': resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - '@urql/core@5.0.4': - resolution: {integrity: sha512-gl86J6B6gWXvvkx5omZ+CaGiPQ0chCUGM0jBsm0zTtkDQPRqufv0NSUN6sp2JhGGtTOB0NR6Pd+w7XAVGGyUOA==} + '@urql/core@5.0.8': + resolution: {integrity: sha512-1GOnUw7/a9bzkcM0+U8U5MmxW2A7FE5YquuEmcJzTtW5tIs2EoS4F2ITpuKBjRBbyRjZgO860nWFPo1m4JImGA==} '@urql/devtools@2.0.3': resolution: {integrity: sha512-TktPLiBS9LcBPHD6qcnb8wqOVcg3Bx0iCtvQ80uPpfofwwBGJmqnQTjUdEFU6kwaLOFZULQ9+Uo4831G823mQw==} @@ -2456,8 +2426,8 @@ packages: peerDependencies: '@urql/core': ^5.0.0 - '@urql/svelte@4.2.1': - resolution: {integrity: sha512-tzjt5qElu6EF4ns+AWLUFvvGFH+bDGEgLStHQTBu76puQcMCW374MrjxWM9lKA6lfA7iUyu1KXkIRhxNy09l4Q==} + '@urql/svelte@4.2.2': + resolution: {integrity: sha512-6ntLGsWcnNtaMZVmFpePfFTSpYxYpznCAqnuvLDjt7Oa7YqHcFiyPnz7IIsiPD9VE6hZSi0+RwmRk5BMba/teQ==} peerDependencies: '@urql/core': ^5.0.0 svelte: ^3.0.0 || ^4.0.0 || ^5.0.0 @@ -2468,11 +2438,11 @@ packages: peerDependencies: vite: ^3.0.0 || ^4.0.0 || ^5.0.0 - '@vitest/expect@2.1.4': - resolution: {integrity: sha512-DOETT0Oh1avie/D/o2sgMHGrzYUFFo3zqESB2Hn70z6QB1HrS2IQ9z5DfyTqU8sg4Bpu13zZe9V4+UTNQlUeQA==} + '@vitest/expect@2.1.5': + resolution: {integrity: sha512-nZSBTW1XIdpZvEJyoP/Sy8fUg0b8od7ZpGDkTUcfJ7wz/VoZAFzFfLyxVxGFhUjJzhYqSbIpfMtl/+k/dpWa3Q==} - '@vitest/mocker@2.1.4': - resolution: {integrity: sha512-Ky/O1Lc0QBbutJdW0rqLeFNbuLEyS+mIPiNdlVlp2/yhJ0SbyYqObS5IHdhferJud8MbbwMnexg4jordE5cCoQ==} + '@vitest/mocker@2.1.5': + resolution: {integrity: sha512-XYW6l3UuBmitWqSUXTNXcVBUCRytDogBsWuNXQijc00dtnU/9OqpXWp4OJroVrad/gLIomAq9aW8yWDBtMthhQ==} peerDependencies: msw: ^2.4.9 vite: ^5.0.0 @@ -2482,25 +2452,25 @@ packages: vite: optional: true - '@vitest/pretty-format@2.1.4': - resolution: {integrity: sha512-L95zIAkEuTDbUX1IsjRl+vyBSLh3PwLLgKpghl37aCK9Jvw0iP+wKwIFhfjdUtA2myLgjrG6VU6JCFLv8q/3Ww==} + '@vitest/pretty-format@2.1.5': + resolution: {integrity: sha512-4ZOwtk2bqG5Y6xRGHcveZVr+6txkH7M2e+nPFd6guSoN638v/1XQ0K06eOpi0ptVU/2tW/pIU4IoPotY/GZ9fw==} - '@vitest/runner@2.1.4': - resolution: {integrity: sha512-sKRautINI9XICAMl2bjxQM8VfCMTB0EbsBc/EDFA57V6UQevEKY/TOPOF5nzcvCALltiLfXWbq4MaAwWx/YxIA==} + '@vitest/runner@2.1.5': + resolution: {integrity: sha512-pKHKy3uaUdh7X6p1pxOkgkVAFW7r2I818vHDthYLvUyjRfkKOU6P45PztOch4DZarWQne+VOaIMwA/erSSpB9g==} - '@vitest/snapshot@2.1.4': - resolution: {integrity: sha512-3Kab14fn/5QZRog5BPj6Rs8dc4B+mim27XaKWFWHWA87R56AKjHTGcBFKpvZKDzC4u5Wd0w/qKsUIio3KzWW4Q==} + '@vitest/snapshot@2.1.5': + resolution: {integrity: sha512-zmYw47mhfdfnYbuhkQvkkzYroXUumrwWDGlMjpdUr4jBd3HZiV2w7CQHj+z7AAS4VOtWxI4Zt4bWt4/sKcoIjg==} - '@vitest/spy@2.1.4': - resolution: {integrity: sha512-4JOxa+UAizJgpZfaCPKK2smq9d8mmjZVPMt2kOsg/R8QkoRzydHH1qHxIYNvr1zlEaFj4SXiaaJWxq/LPLKaLg==} + '@vitest/spy@2.1.5': + resolution: {integrity: sha512-aWZF3P0r3w6DiYTVskOYuhBc7EMc3jvn1TkBg8ttylFFRqNN2XGD7V5a4aQdk6QiUzZQ4klNBSpCLJgWNdIiNw==} - '@vitest/ui@2.1.4': - resolution: {integrity: sha512-Zd9e5oU063c+j9N9XzGJagCLNvG71x/2tOme3Js4JEZKX55zsgxhJwUgLI8hkN6NjMLpdJO8d7nVUUuPGAA58Q==} + '@vitest/ui@2.1.5': + resolution: {integrity: sha512-ERgKkDMTfngrZip6VG5h8L9B5D0AH/4+bga4yR1UzGH7c2cxv3LWogw2Dvuwr9cP3/iKDHYys7kIFLDKpxORTg==} peerDependencies: - vitest: 2.1.4 + vitest: 2.1.5 - '@vitest/utils@2.1.4': - resolution: {integrity: sha512-MXDnZn0Awl2S86PSNIim5PWXgIAx8CIkzu35mBdSApUip6RFOGXBCf3YFyeEu8n1IHk4bWD46DeYFu9mQlFIRg==} + '@vitest/utils@2.1.5': + resolution: {integrity: sha512-yfj6Yrp0Vesw2cwJbP+cl04OC+IHFsuQsrsJBL9pyGeQXE56v1UAOQco+SR55Vf1nQzfV0QJg1Qum7AaWUwwYg==} '@whatwg-node/events@0.0.3': resolution: {integrity: sha512-IqnKIDWfXBJkvy/k6tzskWTc2NK3LcqHlb+KHGCrjOCH4jfQckRX0NAiIcC/vIqQkzLYw2r2CTSwAxcrtcD6lA==} @@ -2541,6 +2511,11 @@ packages: peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + acorn-typescript@1.4.13: + resolution: {integrity: sha512-xsc9Xv0xlVfwp2o7sQ+GCQ1PgbkdcpWdTzrwXxO3xDMTAywVS3oXVOcOHuRjAPkS4P9b+yc/qNF15460v+jp4Q==} + peerDependencies: + acorn: '>=8.9.0' + acorn@8.11.3: resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} engines: {node: '>=0.4.0'} @@ -2551,6 +2526,11 @@ packages: engines: {node: '>=0.4.0'} hasBin: true + acorn@8.14.0: + resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} + engines: {node: '>=0.4.0'} + hasBin: true + agent-base@7.1.0: resolution: {integrity: sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==} engines: {node: '>= 14'} @@ -2624,6 +2604,10 @@ packages: aria-query@5.3.0: resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} + aria-query@5.3.2: + resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} + engines: {node: '>= 0.4'} + array-union@2.1.0: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} @@ -2670,6 +2654,10 @@ packages: axobject-query@4.0.0: resolution: {integrity: sha512-+60uv1hiVFhHZeO+Lz0RYzsVHy5Wr1ayX0mwda9KPDVLNJgZ1T9Ny7VmFbLDzxsH0D87I86vgj3gFrjTJUYznw==} + axobject-query@4.1.0: + resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} + engines: {node: '>= 0.4'} + babel-plugin-precompile-intl@0.5.2: resolution: {integrity: sha512-sTXC+8+krOCP72euH47HqUZ0RAc/mcNA7UoX5joPb5J+dladwOwVcDQMWdv8MflGuWW0PkvAwXdQQWF+/L3Qxg==} peerDependencies: @@ -2992,6 +2980,10 @@ packages: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} + cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} + engines: {node: '>= 8'} + css-select@5.1.0: resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} @@ -3142,8 +3134,8 @@ packages: devalue@4.3.2: resolution: {integrity: sha512-KqFl6pOgOW+Y6wJgu80rHpo2/3H07vr8ntR9rkkFIRETewbf5GaYYcakYfiKz89K+sLsuPkQIZaXDMjUObZwWg==} - devalue@5.0.0: - resolution: {integrity: sha512-gO+/OMXF7488D+u3ue+G7Y4AA3ZmUnB3eHJXmBTgNHvr4ZNzl36A0ZtG+XCRNYCkYx/bFmw4qtkoFLa+wSrwAA==} + devalue@5.1.1: + resolution: {integrity: sha512-maua5KUiapvEwiEAe+XnlZ3Rh0GD+qI1J/nb9vrJc3muPXvcF/8gXYTWF76+5DAqHyDUtOIImEuo0YKE9mshVw==} devlop@1.1.0: resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} @@ -3162,10 +3154,6 @@ packages: dlv@1.1.3: resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} - doctrine@3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} - engines: {node: '>=6.0.0'} - dom-accessibility-api@0.5.16: resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} @@ -3269,6 +3257,9 @@ packages: error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + es-module-lexer@1.5.4: + resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==} + esbuild@0.21.5: resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} engines: {node: '>=12'} @@ -3302,18 +3293,18 @@ packages: resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} engines: {node: '>=12'} - eslint-compat-utils@0.5.0: - resolution: {integrity: sha512-dc6Y8tzEcSYZMHa+CMPLi/hyo1FzNeonbhJL7Ol0ccuKQkwopJcJBA9YL/xmMTLU1eKigXo9vj9nALElWYSowg==} + eslint-compat-utils@0.5.1: + resolution: {integrity: sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==} engines: {node: '>=12'} peerDependencies: eslint: '>=6.0.0' - eslint-plugin-svelte@2.39.0: - resolution: {integrity: sha512-FXktBLXsrxbA+6ZvJK2z/sQOrUKyzSg3fNWK5h0reSCjr2fjAsc9ai/s/JvSl4Hgvz3nYVtTIMwarZH5RcB7BA==} + eslint-plugin-svelte@2.46.0: + resolution: {integrity: sha512-1A7iEMkzmCZ9/Iz+EAfOGYL8IoIG6zeKEq1SmpxGeM5SXmoQq+ZNnCpXFVJpsxPWYx8jIVGMerQMzX20cqUl0g==} engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0-0 || ^9.0.0-0 - svelte: ^3.37.0 || ^4.0.0 || ^5.0.0-next.112 + svelte: ^3.37.0 || ^4.0.0 || ^5.0.0 peerDependenciesMeta: svelte: optional: true @@ -3322,19 +3313,35 @@ packages: resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + eslint-scope@8.2.0: + resolution: {integrity: sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + eslint-visitor-keys@3.4.3: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - eslint@8.57.1: - resolution: {integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. + eslint-visitor-keys@4.2.0: + resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint@9.15.0: + resolution: {integrity: sha512-7CrWySmIibCgT1Os28lUU6upBshZ+GxybLOrmRzi08kS8MBuO8QA7pXEgYgY5W8vK3e74xv0lpjo9DbaGU9Rkw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true + peerDependencies: + jiti: '*' + peerDependenciesMeta: + jiti: + optional: true esm-env@1.0.0: resolution: {integrity: sha512-Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA==} + espree@10.3.0: + resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + espree@9.6.1: resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -3343,6 +3350,9 @@ packages: resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} engines: {node: '>=0.10'} + esrap@1.2.2: + resolution: {integrity: sha512-F2pSJklxx1BlQIQgooczXCPHmcWpn6EsP5oo73LQfonG9fIlIENQ8vMmfGXeojP9MrkzUNAfyU5vdFlR9shHAw==} + esrecurse@4.3.0: resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} engines: {node: '>=4.0'} @@ -3439,6 +3449,14 @@ packages: picomatch: optional: true + fdir@6.4.2: + resolution: {integrity: sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ==} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + fecha@4.2.3: resolution: {integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==} @@ -3452,9 +3470,9 @@ packages: resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} engines: {node: '>=8'} - file-entry-cache@6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} - engines: {node: ^10.12.0 || >=12.0.0} + file-entry-cache@8.0.0: + resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} + engines: {node: '>=16.0.0'} fill-range@7.0.1: resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} @@ -3472,9 +3490,9 @@ packages: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} - flat-cache@3.2.0: - resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} - engines: {node: ^10.12.0 || >=12.0.0} + flat-cache@4.0.1: + resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} + engines: {node: '>=16'} flat@5.0.2: resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} @@ -3562,11 +3580,6 @@ packages: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Glob versions prior to v9 are no longer supported - glob@8.1.0: - resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} - engines: {node: '>=12'} - deprecated: Glob versions prior to v9 are no longer supported - globals@11.12.0: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} @@ -3575,6 +3588,10 @@ packages: resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} engines: {node: '>=8'} + globals@14.0.0: + resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} + engines: {node: '>=18'} + globalyzer@0.1.0: resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==} @@ -3813,10 +3830,6 @@ packages: resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} engines: {node: '>=8'} - is-path-inside@3.0.3: - resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} - engines: {node: '>=8'} - is-plain-obj@4.1.0: resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} engines: {node: '>=12'} @@ -3827,6 +3840,9 @@ packages: is-reference@3.0.2: resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==} + is-reference@3.0.3: + resolution: {integrity: sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==} + is-relative@1.0.0: resolution: {integrity: sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==} engines: {node: '>=0.10.0'} @@ -3975,8 +3991,8 @@ packages: resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==} engines: {node: '>= 8'} - known-css-properties@0.31.0: - resolution: {integrity: sha512-sBPIUGTNF0czz0mwGGUoKKJC8Q7On1GPbCSFPfyEsfHb2DyBG0Y4QtV+EVWpINSaiGKZblDNuF5AezxSgOhesQ==} + known-css-properties@0.35.0: + resolution: {integrity: sha512-a/RAk2BfKk+WFGhhOCAYqSiFLc34k8Mt/6NWRI4joER0EYUzXIcFivjjnoD3+XU1DggLn/tZc3DOAgke7l8a4A==} kolorist@1.8.0: resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} @@ -4152,9 +4168,6 @@ packages: resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} hasBin: true - magic-string@0.30.10: - resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==} - magic-string@0.30.12: resolution: {integrity: sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==} @@ -4349,10 +4362,6 @@ packages: resolution: {integrity: sha512-lIUdtK5hdofgCTu3aT0sOaHsYR37viUuIc0rwnnDXImbwFRcumyLMeZaM0t0I/fgxS6s6JMfu0rLD1Wz9pv1ng==} engines: {node: '>=10'} - minimatch@5.1.6: - resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} - engines: {node: '>=10'} - minimatch@9.0.1: resolution: {integrity: sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==} engines: {node: '>=16 || 14 >=14.17'} @@ -4732,6 +4741,9 @@ packages: picocolors@1.1.0: resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==} + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} @@ -4848,6 +4860,10 @@ packages: resolution: {integrity: sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==} engines: {node: '>=4'} + postcss-selector-parser@6.1.2: + resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} + engines: {node: '>=4'} + postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} @@ -4855,6 +4871,10 @@ packages: resolution: {integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==} engines: {node: ^10 || ^12 || >=14} + postcss@8.4.49: + resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==} + engines: {node: ^10 || ^12 || >=14} + postgres-array@2.0.0: resolution: {integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==} engines: {node: '>=4'} @@ -4987,6 +5007,9 @@ packages: remark-rehype@11.1.0: resolution: {integrity: sha512-z3tJrAs2kIs1AqIIy6pzHmAHlF1hWQ+OdY4/hv+Wxe35EhyLKcajL33iUEn3ScxtFox9nUvRufR/Zre8Q08H/g==} + remark-rehype@11.1.1: + resolution: {integrity: sha512-g/osARvjkBXb6Wo0XvAeXQohVta8i84ACbenPpoSsxTOQH/Ae0/RGP4WZgnMH5pMLpsj4FG7OHmcIcXxpza8eQ==} + remark-stringify@11.0.0: resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} @@ -5048,11 +5071,6 @@ packages: rfdc@1.3.1: resolution: {integrity: sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==} - rimraf@3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} - deprecated: Rimraf versions prior to v4 are no longer supported - hasBin: true - rimraf@5.0.7: resolution: {integrity: sha512-nV6YcJo5wbLW77m+8KjH8aB/7/rxQy9SZ0HY5shnwULfS+9nmTtVXAJET5NdZmCzA4fPI/Hm1wo/Po/4mopOdg==} engines: {node: '>=14.18'} @@ -5075,11 +5093,6 @@ packages: engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true - rollup@4.9.6: - resolution: {integrity: sha512-05lzkCS2uASX0CiLFybYfVkwNbKZG5NFQ6Go0VWyogFTXXbR039UVsegViTntkk4OglHBdF54ccApXRRuXRbsg==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true - run-async@2.4.1: resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} engines: {node: '>=0.12.0'} @@ -5174,10 +5187,6 @@ packages: simple-swizzle@0.2.2: resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} - sirv@2.0.4: - resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} - engines: {node: '>= 10'} - sirv@3.0.0: resolution: {integrity: sha512-BPwJGUeDaDCHihkORDchNyyTvWFhcusy1XMmhEVTQTwGeybFbp8YEmB+njbPnth1FibULBSBVwCQni25XlCUDg==} engines: {node: '>=18'} @@ -5221,8 +5230,8 @@ packages: stackback@0.0.2: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} - std-env@3.7.0: - resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} + std-env@3.8.0: + resolution: {integrity: sha512-Bc3YwwCB+OzldMxOXJIIvC6cPRWr/LxOp48CdQTOkPyk/t4JWWJbrilwBd7RJzKV8QW7tJkcgAmeuLLJugl5/w==} streamsearch@1.1.0: resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} @@ -5287,28 +5296,19 @@ packages: resolution: {integrity: sha512-pd/RZ4TR7oaX6XphE8uhwAjKIVw1lg19aysYM5lYpD97AthlAJD8kSEgtEXHXw6xFYXsfnhrj0XxGHnbKFsnlA==} hasBin: true - svelte-check@4.0.5: - resolution: {integrity: sha512-icBTBZ3ibBaywbXUat3cK6hB5Du+Kq9Z8CRuyLmm64XIe2/r+lQcbuBx/IQgsbrC+kT2jQ0weVpZSSRIPwB6jQ==} + svelte-check@4.1.0: + resolution: {integrity: sha512-AflEZYqI578KuDZcpcorPSf597LStxlkN7XqXi38u09zlHODVKd7c+7OuubGzbhgGRUqNTdQCZ+Ga96iRXEf2g==} engines: {node: '>= 18.0.0'} hasBin: true peerDependencies: svelte: ^4.0.0 || ^5.0.0-next.0 typescript: '>=5.0.0' - svelte-eslint-parser@0.33.1: - resolution: {integrity: sha512-vo7xPGTlKBGdLH8T5L64FipvTrqv3OQRx9d2z5X05KKZDlF4rQk8KViZO4flKERY+5BiVdOh7zZ7JGJWo5P0uA==} + svelte-eslint-parser@0.43.0: + resolution: {integrity: sha512-GpU52uPKKcVnh8tKN5P4UZpJ/fUDndmq7wfsvoVXsyP+aY0anol7Yqo01fyrlaWGMFfm4av5DyrjlaXdLRJvGA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: - svelte: ^3.37.0 || ^4.0.0 - peerDependenciesMeta: - svelte: - optional: true - - svelte-eslint-parser@0.36.0: - resolution: {integrity: sha512-/6YmUSr0FAVxW8dXNdIMydBnddPMHzaHirAZ7RrT21XYdgGGZMh0LQG6CZsvAFS4r2Y4ItUuCQc8TQ3urB30mQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - svelte: ^3.37.0 || ^4.0.0 || ^5.0.0-next.115 + svelte: ^3.37.0 || ^4.0.0 || ^5.0.0 peerDependenciesMeta: svelte: optional: true @@ -5318,6 +5318,11 @@ packages: peerDependencies: svelte: ^3.47.0 || ^4.0.0 || >=5.0.0-next.115 + svelte-exmarkdown@4.0.1: + resolution: {integrity: sha512-Rbyp1qyYtGbseEwJ09cmdCeUYDwfXKv7MLTDeacb+/OCPYaTBdMy/3kvn8wF8w7v4JggyOboxhvJxoXEkmDxMQ==} + peerDependencies: + svelte: ^5.1.3 + svelte-hmr@0.16.0: resolution: {integrity: sha512-Gyc7cOS3VJzLlfj7wKS0ZnzDVdv3Pn2IuVeJPk9m2skfhcu5bq3wtIZyQGggr7/Iim5rH5cncyQft/kRLupcnA==} engines: {node: ^12.20 || ^14.13.1 || >= 16} @@ -5381,6 +5386,10 @@ packages: resolution: {integrity: sha512-IY1rnGr6izd10B0A8LqsBfmlT5OILVuZ7XsI0vdGPEvuonFV7NYEUK4dAkm9Zg2q0Um92kYjTpS1CAP3Nh/KWw==} engines: {node: '>=16'} + svelte@5.2.8: + resolution: {integrity: sha512-VU7a01XwnFi6wXVkH5QY3FYXRZWrhsWZhaE8AYU6UeYZdslE3TFgQq6+HLrbMjOLkVhdKt74NGHYbhFeErQQ6g==} + engines: {node: '>=18'} + sveltekit-search-params@2.1.2: resolution: {integrity: sha512-wh5WSo46wz48MdWvpchVGrOjoDmbmsNJ7dUToSZ4L1SQ2LOasmTjAAlFhfG/EFvEhR34phRzLF7BjE0ZHzx1Uw==} peerDependencies: @@ -5408,9 +5417,6 @@ packages: text-hex@1.0.0: resolution: {integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==} - text-table@0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} - thenify-all@1.6.0: resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} engines: {node: '>=0.8'} @@ -5430,6 +5436,10 @@ packages: tinyexec@0.3.1: resolution: {integrity: sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==} + tinyglobby@0.2.10: + resolution: {integrity: sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew==} + engines: {node: '>=12.0.0'} + tinyglobby@0.2.9: resolution: {integrity: sha512-8or1+BGEdk1Zkkw2ii16qSS7uVrQJPre5A9o/XkWPATkk23FZh/15BKFxPnlTy6vkljZxLqYCzzBMj30ZrSvjw==} engines: {node: '>=12.0.0'} @@ -5582,6 +5592,9 @@ packages: unified@11.0.4: resolution: {integrity: sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==} + unified@11.0.5: + resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} + unist-util-is@6.0.0: resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} @@ -5661,8 +5674,8 @@ packages: vfile@6.0.1: resolution: {integrity: sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==} - vite-node@2.1.4: - resolution: {integrity: sha512-kqa9v+oi4HwkG6g8ufRnb5AeplcRw8jUF6/7/Qz1qRQOXHImG8YnLbB+LLszENwFnoBl9xIf9nVdCFzNd7GQEg==} + vite-node@2.1.5: + resolution: {integrity: sha512-rd0QIgx74q4S1Rd56XIiL2cYEdyWn13cunYBIuqh9mpmQr7gGS0IxXoP8R6OaZtNQQLyXSWbd4rXKYUbhFpK5w==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true @@ -5673,8 +5686,8 @@ packages: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 vite: ^2.7.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 - vite@5.4.9: - resolution: {integrity: sha512-20OVpJHh0PAM0oSOELa5GaZNWeDjcAvQjGXy2Uyr+Tp+/D2/Hdz6NLgpJLsarPTA2QJ6v8mX2P1ZfbsSKvdMkg==} + vite@5.4.11: + resolution: {integrity: sha512-c7jFQRklXua0mTzneGW9QVyxFjUgwcihC4bXEtujIo2ouWCe1Ajt/amn2PCxYnhYfd5k09JX3SB7OYWFKYqj8Q==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -5712,15 +5725,23 @@ packages: vite: optional: true - vitest@2.1.4: - resolution: {integrity: sha512-eDjxbVAJw1UJJCHr5xr/xM86Zx+YxIEXGAR+bmnEID7z9qWfoxpHw0zdobz+TQAFOLT+nEXz3+gx6nUJ7RgmlQ==} + vitefu@1.0.3: + resolution: {integrity: sha512-iKKfOMBHob2WxEJbqbJjHAkmYgvFDPhuqrO82om83S8RLk+17FtyMBfcyeH8GqD0ihShtkMW/zzJgiA51hCNCQ==} + peerDependencies: + vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0-beta.0 + peerDependenciesMeta: + vite: + optional: true + + vitest@2.1.5: + resolution: {integrity: sha512-P4ljsdpuzRTPI/kbND2sDZ4VmieerR2c9szEZpjc+98Z9ebvnXmM5+0tHEKqYZumXqlvnmfWsjeFOjXVriDG7A==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' '@types/node': ^18.0.0 || >=20.0.0 - '@vitest/browser': 2.1.4 - '@vitest/ui': 2.1.4 + '@vitest/browser': 2.1.5 + '@vitest/ui': 2.1.5 happy-dom: '*' jsdom: '*' peerDependenciesMeta: @@ -5884,6 +5905,9 @@ packages: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} + zimmerframe@1.1.2: + resolution: {integrity: sha512-rAbqEGa8ovJy4pyBxZM70hg4pE6gDgaQ0Sl9M3enG3I0d6H4XSAM3GeNGLKnsBpuijUow064sf7ww1nutC5/3w==} + zod@3.23.8: resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} @@ -6511,21 +6535,31 @@ snapshots: '@esbuild/win32-x64@0.21.5': optional: true - '@eslint-community/eslint-utils@4.4.0(eslint@8.57.1)': + '@eslint-community/eslint-utils@4.4.0(eslint@9.15.0(jiti@1.21.0))': dependencies: - eslint: 8.57.1 + eslint: 9.15.0(jiti@1.21.0) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.10.0': {} - '@eslint-community/regexpp@4.11.1': {} + '@eslint-community/regexpp@4.12.1': {} - '@eslint/eslintrc@2.1.4': + '@eslint/config-array@0.19.0': + dependencies: + '@eslint/object-schema': 2.1.4 + debug: 4.3.7 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + '@eslint/core@0.9.0': {} + + '@eslint/eslintrc@3.2.0': dependencies: ajv: 6.12.6 debug: 4.3.7 - espree: 9.6.1 - globals: 13.24.0 + espree: 10.3.0 + globals: 14.0.0 ignore: 5.3.1 import-fresh: 3.3.0 js-yaml: 4.1.0 @@ -6536,7 +6570,13 @@ snapshots: '@eslint/js@8.57.0': {} - '@eslint/js@8.57.1': {} + '@eslint/js@9.15.0': {} + + '@eslint/object-schema@2.1.4': {} + + '@eslint/plugin-kit@0.2.3': + dependencies: + levn: 0.4.1 '@fastify/busboy@2.1.1': {} @@ -7034,17 +7074,18 @@ snapshots: protobufjs: 7.2.6 yargs: 17.7.2 - '@humanwhocodes/config-array@0.13.0': + '@humanfs/core@0.19.1': {} + + '@humanfs/node@0.16.6': dependencies: - '@humanwhocodes/object-schema': 2.0.3 - debug: 4.3.7 - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color + '@humanfs/core': 0.19.1 + '@humanwhocodes/retry': 0.3.1 '@humanwhocodes/module-importer@1.0.1': {} - '@humanwhocodes/object-schema@2.0.3': {} + '@humanwhocodes/retry@0.3.1': {} + + '@humanwhocodes/retry@0.4.1': {} '@iconify-json/mdi@1.1.66': dependencies: @@ -8030,22 +8071,23 @@ snapshots: '@repeaterjs/repeater@3.0.5': {} - '@rollup/plugin-commonjs@25.0.7(rollup@4.9.6)': + '@rollup/plugin-commonjs@28.0.1(rollup@4.24.0)': dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.9.6) + '@rollup/pluginutils': 5.1.0(rollup@4.24.0) commondir: 1.0.1 estree-walker: 2.0.2 - glob: 8.1.0 + fdir: 6.4.0(picomatch@4.0.2) is-reference: 1.2.1 - magic-string: 0.30.10 + magic-string: 0.30.12 + picomatch: 4.0.2 optionalDependencies: - rollup: 4.9.6 + rollup: 4.24.0 - '@rollup/plugin-json@6.1.0(rollup@4.9.6)': + '@rollup/plugin-json@6.1.0(rollup@4.24.0)': dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.9.6) + '@rollup/pluginutils': 5.1.0(rollup@4.24.0) optionalDependencies: - rollup: 4.9.6 + rollup: 4.24.0 '@rollup/plugin-node-resolve@13.3.0(rollup@2.79.2)': dependencies: @@ -8057,16 +8099,15 @@ snapshots: resolve: 1.22.8 rollup: 2.79.2 - '@rollup/plugin-node-resolve@15.2.3(rollup@4.9.6)': + '@rollup/plugin-node-resolve@15.3.0(rollup@4.24.0)': dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.9.6) + '@rollup/pluginutils': 5.1.0(rollup@4.24.0) '@types/resolve': 1.20.2 deepmerge: 4.3.1 - is-builtin-module: 3.2.1 is-module: 1.0.0 resolve: 1.22.8 optionalDependencies: - rollup: 4.9.6 + rollup: 4.24.0 '@rollup/pluginutils@3.1.0(rollup@2.79.2)': dependencies: @@ -8080,175 +8121,157 @@ snapshots: estree-walker: 2.0.2 picomatch: 2.3.1 - '@rollup/pluginutils@5.1.0(rollup@4.9.6)': + '@rollup/pluginutils@5.1.0(rollup@4.24.0)': dependencies: '@types/estree': 1.0.6 estree-walker: 2.0.2 picomatch: 2.3.1 optionalDependencies: - rollup: 4.9.6 + rollup: 4.24.0 '@rollup/rollup-android-arm-eabi@4.24.0': optional: true - '@rollup/rollup-android-arm-eabi@4.9.6': - optional: true - '@rollup/rollup-android-arm64@4.24.0': optional: true - '@rollup/rollup-android-arm64@4.9.6': - optional: true - '@rollup/rollup-darwin-arm64@4.24.0': optional: true - '@rollup/rollup-darwin-arm64@4.9.6': - optional: true - '@rollup/rollup-darwin-x64@4.24.0': optional: true - '@rollup/rollup-darwin-x64@4.9.6': - optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.24.0': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.9.6': - optional: true - '@rollup/rollup-linux-arm-musleabihf@4.24.0': optional: true '@rollup/rollup-linux-arm64-gnu@4.24.0': optional: true - '@rollup/rollup-linux-arm64-gnu@4.9.6': - optional: true - '@rollup/rollup-linux-arm64-musl@4.24.0': optional: true - '@rollup/rollup-linux-arm64-musl@4.9.6': - optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.24.0': optional: true '@rollup/rollup-linux-riscv64-gnu@4.24.0': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.9.6': - optional: true - '@rollup/rollup-linux-s390x-gnu@4.24.0': optional: true '@rollup/rollup-linux-x64-gnu@4.24.0': optional: true - '@rollup/rollup-linux-x64-gnu@4.9.6': - optional: true - '@rollup/rollup-linux-x64-musl@4.24.0': optional: true - '@rollup/rollup-linux-x64-musl@4.9.6': - optional: true - '@rollup/rollup-win32-arm64-msvc@4.24.0': optional: true - '@rollup/rollup-win32-arm64-msvc@4.9.6': - optional: true - '@rollup/rollup-win32-ia32-msvc@4.24.0': optional: true - '@rollup/rollup-win32-ia32-msvc@4.9.6': - optional: true - '@rollup/rollup-win32-x64-msvc@4.24.0': optional: true - '@rollup/rollup-win32-x64-msvc@4.9.6': - optional: true - '@selderee/plugin-htmlparser2@0.11.0': dependencies: domhandler: 5.0.3 selderee: 0.11.0 - '@sveltejs/adapter-node@4.0.1(@sveltejs/kit@2.5.10(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.19)(vite@5.4.9(@types/node@20.12.12)))(svelte@4.2.19)(vite@5.4.9(@types/node@20.12.12)))': + '@sveltejs/adapter-node@5.2.9(@sveltejs/kit@2.8.4(@sveltejs/vite-plugin-svelte@4.0.2(svelte@5.2.8)(vite@5.4.11(@types/node@20.12.12)))(svelte@5.2.8)(vite@5.4.11(@types/node@20.12.12)))': dependencies: - '@rollup/plugin-commonjs': 25.0.7(rollup@4.9.6) - '@rollup/plugin-json': 6.1.0(rollup@4.9.6) - '@rollup/plugin-node-resolve': 15.2.3(rollup@4.9.6) - '@sveltejs/kit': 2.5.10(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.19)(vite@5.4.9(@types/node@20.12.12)))(svelte@4.2.19)(vite@5.4.9(@types/node@20.12.12)) - rollup: 4.9.6 + '@rollup/plugin-commonjs': 28.0.1(rollup@4.24.0) + '@rollup/plugin-json': 6.1.0(rollup@4.24.0) + '@rollup/plugin-node-resolve': 15.3.0(rollup@4.24.0) + '@sveltejs/kit': 2.8.4(@sveltejs/vite-plugin-svelte@4.0.2(svelte@5.2.8)(vite@5.4.11(@types/node@20.12.12)))(svelte@5.2.8)(vite@5.4.11(@types/node@20.12.12)) + rollup: 4.24.0 - '@sveltejs/kit@2.5.10(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.19)(vite@5.4.9(@types/node@20.12.12)))(svelte@4.2.19)(vite@5.4.9(@types/node@20.12.12))': + '@sveltejs/kit@2.8.4(@sveltejs/vite-plugin-svelte@4.0.2(svelte@5.2.8)(vite@5.4.11(@types/node@20.12.12)))(svelte@5.2.8)(vite@5.4.11(@types/node@20.12.12))': dependencies: - '@sveltejs/vite-plugin-svelte': 3.1.1(svelte@4.2.19)(vite@5.4.9(@types/node@20.12.12)) + '@sveltejs/vite-plugin-svelte': 4.0.2(svelte@5.2.8)(vite@5.4.11(@types/node@20.12.12)) '@types/cookie': 0.6.0 cookie: 0.6.0 - devalue: 5.0.0 + devalue: 5.1.1 esm-env: 1.0.0 import-meta-resolve: 4.1.0 kleur: 4.1.5 - magic-string: 0.30.10 + magic-string: 0.30.12 mrmime: 2.0.0 sade: 1.8.1 set-cookie-parser: 2.6.0 - sirv: 2.0.4 - svelte: 4.2.19 + sirv: 3.0.0 + svelte: 5.2.8 tiny-glob: 0.2.9 - vite: 5.4.9(@types/node@20.12.12) + vite: 5.4.11(@types/node@20.12.12) - '@sveltejs/vite-plugin-svelte-inspector@2.1.0(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.19)(vite@5.4.9(@types/node@20.12.12)))(svelte@4.2.19)(vite@5.4.9(@types/node@20.12.12))': + '@sveltejs/vite-plugin-svelte-inspector@2.1.0(@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.2.8)(vite@5.4.11(@types/node@20.12.12)))(svelte@5.2.8)(vite@5.4.11(@types/node@20.12.12))': dependencies: - '@sveltejs/vite-plugin-svelte': 3.1.1(svelte@4.2.19)(vite@5.4.9(@types/node@20.12.12)) - debug: 4.3.4 - svelte: 4.2.19 - vite: 5.4.9(@types/node@20.12.12) + '@sveltejs/vite-plugin-svelte': 3.1.1(svelte@5.2.8)(vite@5.4.11(@types/node@20.12.12)) + debug: 4.3.7 + svelte: 5.2.8 + vite: 5.4.11(@types/node@20.12.12) transitivePeerDependencies: - supports-color - '@sveltejs/vite-plugin-svelte-inspector@2.1.0(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.19)(vite@5.4.9(@types/node@22.7.3)))(svelte@4.2.19)(vite@5.4.9(@types/node@22.7.3))': + '@sveltejs/vite-plugin-svelte-inspector@3.0.1(@sveltejs/vite-plugin-svelte@4.0.2(svelte@5.2.8)(vite@5.4.11(@types/node@20.12.12)))(svelte@5.2.8)(vite@5.4.11(@types/node@20.12.12))': dependencies: - '@sveltejs/vite-plugin-svelte': 3.1.1(svelte@4.2.19)(vite@5.4.9(@types/node@22.7.3)) - debug: 4.3.4 - svelte: 4.2.19 - vite: 5.4.9(@types/node@22.7.3) + '@sveltejs/vite-plugin-svelte': 4.0.2(svelte@5.2.8)(vite@5.4.11(@types/node@20.12.12)) + debug: 4.3.7 + svelte: 5.2.8 + vite: 5.4.11(@types/node@20.12.12) transitivePeerDependencies: - supports-color - '@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.19)(vite@5.4.9(@types/node@20.12.12))': + '@sveltejs/vite-plugin-svelte-inspector@3.0.1(@sveltejs/vite-plugin-svelte@4.0.2(svelte@5.2.8)(vite@5.4.11(@types/node@22.7.3)))(svelte@5.2.8)(vite@5.4.11(@types/node@22.7.3))': dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 2.1.0(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.19)(vite@5.4.9(@types/node@20.12.12)))(svelte@4.2.19)(vite@5.4.9(@types/node@20.12.12)) - debug: 4.3.4 + '@sveltejs/vite-plugin-svelte': 4.0.2(svelte@5.2.8)(vite@5.4.11(@types/node@22.7.3)) + debug: 4.3.7 + svelte: 5.2.8 + vite: 5.4.11(@types/node@22.7.3) + transitivePeerDependencies: + - supports-color + + '@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.2.8)(vite@5.4.11(@types/node@20.12.12))': + dependencies: + '@sveltejs/vite-plugin-svelte-inspector': 2.1.0(@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.2.8)(vite@5.4.11(@types/node@20.12.12)))(svelte@5.2.8)(vite@5.4.11(@types/node@20.12.12)) + debug: 4.3.7 deepmerge: 4.3.1 kleur: 4.1.5 - magic-string: 0.30.10 - svelte: 4.2.19 - svelte-hmr: 0.16.0(svelte@4.2.19) - vite: 5.4.9(@types/node@20.12.12) - vitefu: 0.2.5(vite@5.4.9(@types/node@20.12.12)) + magic-string: 0.30.12 + svelte: 5.2.8 + svelte-hmr: 0.16.0(svelte@5.2.8) + vite: 5.4.11(@types/node@20.12.12) + vitefu: 0.2.5(vite@5.4.11(@types/node@20.12.12)) transitivePeerDependencies: - supports-color - '@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.19)(vite@5.4.9(@types/node@22.7.3))': + '@sveltejs/vite-plugin-svelte@4.0.2(svelte@5.2.8)(vite@5.4.11(@types/node@20.12.12))': dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 2.1.0(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.19)(vite@5.4.9(@types/node@22.7.3)))(svelte@4.2.19)(vite@5.4.9(@types/node@22.7.3)) - debug: 4.3.4 + '@sveltejs/vite-plugin-svelte-inspector': 3.0.1(@sveltejs/vite-plugin-svelte@4.0.2(svelte@5.2.8)(vite@5.4.11(@types/node@20.12.12)))(svelte@5.2.8)(vite@5.4.11(@types/node@20.12.12)) + debug: 4.3.7 deepmerge: 4.3.1 kleur: 4.1.5 - magic-string: 0.30.10 - svelte: 4.2.19 - svelte-hmr: 0.16.0(svelte@4.2.19) - vite: 5.4.9(@types/node@22.7.3) - vitefu: 0.2.5(vite@5.4.9(@types/node@22.7.3)) + magic-string: 0.30.12 + svelte: 5.2.8 + vite: 5.4.11(@types/node@20.12.12) + vitefu: 1.0.3(vite@5.4.11(@types/node@20.12.12)) + transitivePeerDependencies: + - supports-color + + '@sveltejs/vite-plugin-svelte@4.0.2(svelte@5.2.8)(vite@5.4.11(@types/node@22.7.3))': + dependencies: + '@sveltejs/vite-plugin-svelte-inspector': 3.0.1(@sveltejs/vite-plugin-svelte@4.0.2(svelte@5.2.8)(vite@5.4.11(@types/node@22.7.3)))(svelte@5.2.8)(vite@5.4.11(@types/node@22.7.3)) + debug: 4.3.7 + deepmerge: 4.3.1 + kleur: 4.1.5 + magic-string: 0.30.12 + svelte: 5.2.8 + vite: 5.4.11(@types/node@22.7.3) + vitefu: 1.0.3(vite@5.4.11(@types/node@22.7.3)) transitivePeerDependencies: - supports-color @@ -8285,13 +8308,13 @@ snapshots: lodash: 4.17.21 redent: 3.0.0 - '@testing-library/svelte@5.2.3(svelte@4.2.19)(vite@5.4.9(@types/node@22.7.3))(vitest@2.1.4(@types/node@22.7.3)(@vitest/ui@2.1.4)(happy-dom@15.7.4))': + '@testing-library/svelte@5.2.6(svelte@5.2.8)(vite@5.4.11(@types/node@22.7.3))(vitest@2.1.5)': dependencies: '@testing-library/dom': 10.4.0 - svelte: 4.2.19 + svelte: 5.2.8 optionalDependencies: - vite: 5.4.9(@types/node@22.7.3) - vitest: 2.1.4(@types/node@22.7.3)(@vitest/ui@2.1.4)(happy-dom@15.7.4) + vite: 5.4.11(@types/node@22.7.3) + vitest: 2.1.5(@types/node@22.7.3)(@vitest/ui@2.1.5)(happy-dom@15.7.4) '@testing-library/user-event@14.5.2(@testing-library/dom@10.4.0)': dependencies: @@ -8341,8 +8364,6 @@ snapshots: '@types/estree@0.0.39': {} - '@types/estree@1.0.5': {} - '@types/estree@1.0.6': {} '@types/express-serve-static-core@4.17.42': @@ -8488,16 +8509,16 @@ snapshots: '@types/zxcvbn@4.4.4': {} - '@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.3.3))(eslint@8.57.1)(typescript@5.3.3)': + '@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@9.15.0(jiti@1.21.0))(typescript@5.3.3))(eslint@9.15.0(jiti@1.21.0))(typescript@5.3.3)': dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 6.21.0(eslint@8.57.1)(typescript@5.3.3) + '@typescript-eslint/parser': 6.21.0(eslint@9.15.0(jiti@1.21.0))(typescript@5.3.3) '@typescript-eslint/scope-manager': 6.21.0 - '@typescript-eslint/type-utils': 6.21.0(eslint@8.57.1)(typescript@5.3.3) - '@typescript-eslint/utils': 6.21.0(eslint@8.57.1)(typescript@5.3.3) + '@typescript-eslint/type-utils': 6.21.0(eslint@9.15.0(jiti@1.21.0))(typescript@5.3.3) + '@typescript-eslint/utils': 6.21.0(eslint@9.15.0(jiti@1.21.0))(typescript@5.3.3) '@typescript-eslint/visitor-keys': 6.21.0 debug: 4.3.4 - eslint: 8.57.1 + eslint: 9.15.0(jiti@1.21.0) graphemer: 1.4.0 ignore: 5.3.1 natural-compare: 1.4.0 @@ -8508,14 +8529,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.3.3)': + '@typescript-eslint/parser@6.21.0(eslint@9.15.0(jiti@1.21.0))(typescript@5.3.3)': dependencies: '@typescript-eslint/scope-manager': 6.21.0 '@typescript-eslint/types': 6.21.0 '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.3.3) '@typescript-eslint/visitor-keys': 6.21.0 debug: 4.3.7 - eslint: 8.57.1 + eslint: 9.15.0(jiti@1.21.0) optionalDependencies: typescript: 5.3.3 transitivePeerDependencies: @@ -8526,12 +8547,12 @@ snapshots: '@typescript-eslint/types': 6.21.0 '@typescript-eslint/visitor-keys': 6.21.0 - '@typescript-eslint/type-utils@6.21.0(eslint@8.57.1)(typescript@5.3.3)': + '@typescript-eslint/type-utils@6.21.0(eslint@9.15.0(jiti@1.21.0))(typescript@5.3.3)': dependencies: '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.3.3) - '@typescript-eslint/utils': 6.21.0(eslint@8.57.1)(typescript@5.3.3) + '@typescript-eslint/utils': 6.21.0(eslint@9.15.0(jiti@1.21.0))(typescript@5.3.3) debug: 4.3.4 - eslint: 8.57.1 + eslint: 9.15.0(jiti@1.21.0) ts-api-utils: 1.0.3(typescript@5.3.3) optionalDependencies: typescript: 5.3.3 @@ -8555,15 +8576,15 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@6.21.0(eslint@8.57.1)(typescript@5.3.3)': + '@typescript-eslint/utils@6.21.0(eslint@9.15.0(jiti@1.21.0))(typescript@5.3.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.1) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.15.0(jiti@1.21.0)) '@types/json-schema': 7.0.15 '@types/semver': 7.5.6 '@typescript-eslint/scope-manager': 6.21.0 '@typescript-eslint/types': 6.21.0 '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.3.3) - eslint: 8.57.1 + eslint: 9.15.0(jiti@1.21.0) semver: 7.5.4 transitivePeerDependencies: - supports-color @@ -8576,97 +8597,97 @@ snapshots: '@ungap/structured-clone@1.2.0': {} - '@urql/core@5.0.4(graphql@16.8.1)': + '@urql/core@5.0.8(graphql@16.8.1)': dependencies: '@0no-co/graphql.web': 1.0.7(graphql@16.8.1) wonka: 6.3.4 transitivePeerDependencies: - graphql - '@urql/devtools@2.0.3(@urql/core@5.0.4(graphql@16.8.1))(graphql@16.8.1)': + '@urql/devtools@2.0.3(@urql/core@5.0.8(graphql@16.8.1))(graphql@16.8.1)': dependencies: - '@urql/core': 5.0.4(graphql@16.8.1) + '@urql/core': 5.0.8(graphql@16.8.1) graphql: 16.8.1 wonka: 6.3.4 - '@urql/exchange-graphcache@7.1.2(@urql/core@5.0.4(graphql@16.8.1))(graphql@16.8.1)': + '@urql/exchange-graphcache@7.1.2(@urql/core@5.0.8(graphql@16.8.1))(graphql@16.8.1)': dependencies: '@0no-co/graphql.web': 1.0.7(graphql@16.8.1) - '@urql/core': 5.0.4(graphql@16.8.1) + '@urql/core': 5.0.8(graphql@16.8.1) wonka: 6.3.4 transitivePeerDependencies: - graphql - '@urql/svelte@4.2.1(@urql/core@5.0.4(graphql@16.8.1))(svelte@4.2.19)': + '@urql/svelte@4.2.2(@urql/core@5.0.8(graphql@16.8.1))(svelte@5.2.8)': dependencies: - '@urql/core': 5.0.4(graphql@16.8.1) - svelte: 4.2.19 + '@urql/core': 5.0.8(graphql@16.8.1) + svelte: 5.2.8 wonka: 6.3.4 - '@vitejs/plugin-basic-ssl@1.1.0(vite@5.4.9(@types/node@20.12.12))': + '@vitejs/plugin-basic-ssl@1.1.0(vite@5.4.11(@types/node@20.12.12))': dependencies: - vite: 5.4.9(@types/node@20.12.12) + vite: 5.4.11(@types/node@20.12.12) - '@vitejs/plugin-basic-ssl@1.1.0(vite@5.4.9(@types/node@22.7.3))': + '@vitejs/plugin-basic-ssl@1.1.0(vite@5.4.11(@types/node@22.7.3))': dependencies: - vite: 5.4.9(@types/node@22.7.3) + vite: 5.4.11(@types/node@22.7.3) - '@vitest/expect@2.1.4': + '@vitest/expect@2.1.5': dependencies: - '@vitest/spy': 2.1.4 - '@vitest/utils': 2.1.4 + '@vitest/spy': 2.1.5 + '@vitest/utils': 2.1.5 chai: 5.1.2 tinyrainbow: 1.2.0 - '@vitest/mocker@2.1.4(vite@5.4.9(@types/node@20.12.12))': + '@vitest/mocker@2.1.5(vite@5.4.11(@types/node@20.12.12))': dependencies: - '@vitest/spy': 2.1.4 + '@vitest/spy': 2.1.5 estree-walker: 3.0.3 magic-string: 0.30.12 optionalDependencies: - vite: 5.4.9(@types/node@20.12.12) + vite: 5.4.11(@types/node@20.12.12) - '@vitest/mocker@2.1.4(vite@5.4.9(@types/node@22.7.3))': + '@vitest/mocker@2.1.5(vite@5.4.11(@types/node@22.7.3))': dependencies: - '@vitest/spy': 2.1.4 + '@vitest/spy': 2.1.5 estree-walker: 3.0.3 magic-string: 0.30.12 optionalDependencies: - vite: 5.4.9(@types/node@22.7.3) + vite: 5.4.11(@types/node@22.7.3) - '@vitest/pretty-format@2.1.4': + '@vitest/pretty-format@2.1.5': dependencies: tinyrainbow: 1.2.0 - '@vitest/runner@2.1.4': + '@vitest/runner@2.1.5': dependencies: - '@vitest/utils': 2.1.4 + '@vitest/utils': 2.1.5 pathe: 1.1.2 - '@vitest/snapshot@2.1.4': + '@vitest/snapshot@2.1.5': dependencies: - '@vitest/pretty-format': 2.1.4 + '@vitest/pretty-format': 2.1.5 magic-string: 0.30.12 pathe: 1.1.2 - '@vitest/spy@2.1.4': + '@vitest/spy@2.1.5': dependencies: tinyspy: 3.0.2 - '@vitest/ui@2.1.4(vitest@2.1.4)': + '@vitest/ui@2.1.5(vitest@2.1.5)': dependencies: - '@vitest/utils': 2.1.4 + '@vitest/utils': 2.1.5 fflate: 0.8.2 flatted: 3.3.1 pathe: 1.1.2 sirv: 3.0.0 - tinyglobby: 0.2.9 + tinyglobby: 0.2.10 tinyrainbow: 1.2.0 - vitest: 2.1.4(@types/node@22.7.3)(@vitest/ui@2.1.4)(happy-dom@15.7.4) + vitest: 2.1.5(@types/node@20.12.12)(@vitest/ui@2.1.5)(happy-dom@15.7.4) - '@vitest/utils@2.1.4': + '@vitest/utils@2.1.5': dependencies: - '@vitest/pretty-format': 2.1.4 + '@vitest/pretty-format': 2.1.5 loupe: 3.1.2 tinyrainbow: 1.2.0 @@ -8717,14 +8738,24 @@ snapshots: dependencies: acorn: 8.13.0 - acorn-jsx@5.3.2(acorn@8.11.3): + acorn-jsx@5.3.2(acorn@8.13.0): dependencies: - acorn: 8.11.3 + acorn: 8.13.0 + + acorn-jsx@5.3.2(acorn@8.14.0): + dependencies: + acorn: 8.14.0 + + acorn-typescript@1.4.13(acorn@8.13.0): + dependencies: + acorn: 8.13.0 acorn@8.11.3: {} acorn@8.13.0: {} + acorn@8.14.0: {} + agent-base@7.1.0: dependencies: debug: 4.3.7 @@ -8793,6 +8824,8 @@ snapshots: dependencies: dequal: 2.0.3 + aria-query@5.3.2: {} + array-union@2.1.0: {} asap@2.0.6: {} @@ -8815,14 +8848,14 @@ snapshots: auto-bind@4.0.0: {} - autoprefixer@10.4.19(postcss@8.4.47): + autoprefixer@10.4.19(postcss@8.4.49): dependencies: browserslist: 4.23.0 caniuse-lite: 1.0.30001620 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.0.0 - postcss: 8.4.47 + postcss: 8.4.49 postcss-value-parser: 4.2.0 axios@1.7.4: @@ -8837,6 +8870,8 @@ snapshots: dependencies: dequal: 2.0.3 + axobject-query@4.1.0: {} + babel-plugin-precompile-intl@0.5.2(@babel/core@7.24.4): dependencies: '@babel/core': 7.24.4 @@ -9119,9 +9154,9 @@ snapshots: code-red@1.0.4: dependencies: - '@jridgewell/sourcemap-codec': 1.4.15 - '@types/estree': 1.0.5 - acorn: 8.11.3 + '@jridgewell/sourcemap-codec': 1.5.0 + '@types/estree': 1.0.6 + acorn: 8.13.0 estree-walker: 3.0.3 periscopic: 3.1.0 @@ -9241,6 +9276,12 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 + cross-spawn@7.0.6: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + css-select@5.1.0: dependencies: boolbase: 1.0.0 @@ -9301,12 +9342,12 @@ snapshots: dependencies: d3-array: 3.2.4 - daisyui@4.11.1(postcss@8.4.47): + daisyui@4.11.1(postcss@8.4.49): dependencies: css-selector-tokenizer: 0.8.0 culori: 3.3.0 picocolors: 1.0.0 - postcss-js: 4.0.1(postcss@8.4.47) + postcss-js: 4.0.1(postcss@8.4.49) transitivePeerDependencies: - postcss @@ -9364,7 +9405,7 @@ snapshots: devalue@4.3.2: {} - devalue@5.0.0: {} + devalue@5.1.1: {} devlop@1.1.0: dependencies: @@ -9380,10 +9421,6 @@ snapshots: dlv@1.1.3: {} - doctrine@3.0.0: - dependencies: - esutils: 2.0.3 - dom-accessibility-api@0.5.16: {} dom-accessibility-api@0.6.3: {} @@ -9486,6 +9523,8 @@ snapshots: dependencies: is-arrayish: 0.2.1 + es-module-lexer@1.5.4: {} + esbuild@0.21.5: optionalDependencies: '@esbuild/aix-ppc64': 0.21.5 @@ -9527,30 +9566,28 @@ snapshots: escape-string-regexp@5.0.0: {} - eslint-compat-utils@0.5.0(eslint@8.57.1): + eslint-compat-utils@0.5.1(eslint@9.15.0(jiti@1.21.0)): dependencies: - eslint: 8.57.1 + eslint: 9.15.0(jiti@1.21.0) semver: 7.6.2 - eslint-plugin-svelte@2.39.0(eslint@8.57.1)(svelte@4.2.19): + eslint-plugin-svelte@2.46.0(eslint@9.15.0(jiti@1.21.0))(svelte@5.2.8): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.1) - '@jridgewell/sourcemap-codec': 1.4.15 - debug: 4.3.4 - eslint: 8.57.1 - eslint-compat-utils: 0.5.0(eslint@8.57.1) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.15.0(jiti@1.21.0)) + '@jridgewell/sourcemap-codec': 1.5.0 + eslint: 9.15.0(jiti@1.21.0) + eslint-compat-utils: 0.5.1(eslint@9.15.0(jiti@1.21.0)) esutils: 2.0.3 - known-css-properties: 0.31.0 - postcss: 8.4.47 - postcss-load-config: 3.1.4(postcss@8.4.47) - postcss-safe-parser: 6.0.0(postcss@8.4.47) - postcss-selector-parser: 6.0.16 + known-css-properties: 0.35.0 + postcss: 8.4.49 + postcss-load-config: 3.1.4(postcss@8.4.49) + postcss-safe-parser: 6.0.0(postcss@8.4.49) + postcss-selector-parser: 6.1.2 semver: 7.6.2 - svelte-eslint-parser: 0.36.0(svelte@4.2.19) + svelte-eslint-parser: 0.43.0(svelte@5.2.8) optionalDependencies: - svelte: 4.2.19 + svelte: 5.2.8 transitivePeerDependencies: - - supports-color - ts-node eslint-scope@7.2.2: @@ -9558,63 +9595,79 @@ snapshots: esrecurse: 4.3.0 estraverse: 5.3.0 + eslint-scope@8.2.0: + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + eslint-visitor-keys@3.4.3: {} - eslint@8.57.1: + eslint-visitor-keys@4.2.0: {} + + eslint@9.15.0(jiti@1.21.0): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.1) - '@eslint-community/regexpp': 4.11.1 - '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.57.1 - '@humanwhocodes/config-array': 0.13.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@9.15.0(jiti@1.21.0)) + '@eslint-community/regexpp': 4.12.1 + '@eslint/config-array': 0.19.0 + '@eslint/core': 0.9.0 + '@eslint/eslintrc': 3.2.0 + '@eslint/js': 9.15.0 + '@eslint/plugin-kit': 0.2.3 + '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 - '@nodelib/fs.walk': 1.2.8 - '@ungap/structured-clone': 1.2.0 + '@humanwhocodes/retry': 0.4.1 + '@types/estree': 1.0.6 + '@types/json-schema': 7.0.15 ajv: 6.12.6 chalk: 4.1.2 - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 debug: 4.3.7 - doctrine: 3.0.0 escape-string-regexp: 4.0.0 - eslint-scope: 7.2.2 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 + eslint-scope: 8.2.0 + eslint-visitor-keys: 4.2.0 + espree: 10.3.0 esquery: 1.5.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 + file-entry-cache: 8.0.0 find-up: 5.0.0 glob-parent: 6.0.2 - globals: 13.24.0 - graphemer: 1.4.0 ignore: 5.3.1 imurmurhash: 0.1.4 is-glob: 4.0.3 - is-path-inside: 3.0.3 - js-yaml: 4.1.0 json-stable-stringify-without-jsonify: 1.0.1 - levn: 0.4.1 lodash.merge: 4.6.2 minimatch: 3.1.2 natural-compare: 1.4.0 optionator: 0.9.3 - strip-ansi: 6.0.1 - text-table: 0.2.0 + optionalDependencies: + jiti: 1.21.0 transitivePeerDependencies: - supports-color esm-env@1.0.0: {} + espree@10.3.0: + dependencies: + acorn: 8.14.0 + acorn-jsx: 5.3.2(acorn@8.14.0) + eslint-visitor-keys: 4.2.0 + espree@9.6.1: dependencies: - acorn: 8.11.3 - acorn-jsx: 5.3.2(acorn@8.11.3) + acorn: 8.13.0 + acorn-jsx: 5.3.2(acorn@8.13.0) eslint-visitor-keys: 3.4.3 esquery@1.5.0: dependencies: estraverse: 5.3.0 + esrap@1.2.2: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.0 + '@types/estree': 1.0.6 + esrecurse@4.3.0: dependencies: estraverse: 5.3.0 @@ -9627,7 +9680,7 @@ snapshots: estree-walker@3.0.3: dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 esutils@2.0.3: {} @@ -9713,6 +9766,10 @@ snapshots: optionalDependencies: picomatch: 4.0.2 + fdir@6.4.2(picomatch@4.0.2): + optionalDependencies: + picomatch: 4.0.2 + fecha@4.2.3: {} fetch-cookie@2.2.0: @@ -9726,9 +9783,9 @@ snapshots: dependencies: escape-string-regexp: 1.0.5 - file-entry-cache@6.0.1: + file-entry-cache@8.0.0: dependencies: - flat-cache: 3.2.0 + flat-cache: 4.0.1 fill-range@7.0.1: dependencies: @@ -9748,11 +9805,10 @@ snapshots: locate-path: 6.0.0 path-exists: 4.0.0 - flat-cache@3.2.0: + flat-cache@4.0.1: dependencies: flatted: 3.3.1 keyv: 4.5.4 - rimraf: 3.0.2 flat@5.0.2: {} @@ -9841,20 +9897,14 @@ snapshots: once: 1.4.0 path-is-absolute: 1.0.1 - glob@8.1.0: - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 5.1.6 - once: 1.4.0 - globals@11.12.0: {} globals@13.24.0: dependencies: type-fest: 0.20.2 + globals@14.0.0: {} + globalyzer@0.1.0: {} globby@11.1.0: @@ -10119,8 +10169,6 @@ snapshots: is-obj@2.0.0: {} - is-path-inside@3.0.3: {} - is-plain-obj@4.1.0: {} is-reference@1.2.1: @@ -10129,7 +10177,11 @@ snapshots: is-reference@3.0.2: dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 + + is-reference@3.0.3: + dependencies: + '@types/estree': 1.0.6 is-relative@1.0.0: dependencies: @@ -10253,7 +10305,7 @@ snapshots: klona@2.0.6: {} - known-css-properties@0.31.0: {} + known-css-properties@0.35.0: {} kolorist@1.8.0: {} @@ -10427,10 +10479,6 @@ snapshots: lz-string@1.5.0: {} - magic-string@0.30.10: - dependencies: - '@jridgewell/sourcemap-codec': 1.4.15 - magic-string@0.30.12: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 @@ -10801,10 +10849,6 @@ snapshots: dependencies: brace-expansion: 1.1.11 - minimatch@5.1.6: - dependencies: - brace-expansion: 2.0.1 - minimatch@9.0.1: dependencies: brace-expansion: 2.0.1 @@ -11352,7 +11396,7 @@ snapshots: periscopic@3.1.0: dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 estree-walker: 3.0.3 is-reference: 3.0.2 @@ -11372,6 +11416,8 @@ snapshots: picocolors@1.1.0: {} + picocolors@1.1.1: {} + picomatch@2.3.1: {} picomatch@4.0.2: {} @@ -11404,52 +11450,52 @@ snapshots: optionalDependencies: fsevents: 2.3.2 - postcss-import@15.1.0(postcss@8.4.47): + postcss-import@15.1.0(postcss@8.4.49): dependencies: - postcss: 8.4.47 + postcss: 8.4.49 postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.8 - postcss-js@4.0.1(postcss@8.4.47): + postcss-js@4.0.1(postcss@8.4.49): dependencies: camelcase-css: 2.0.1 - postcss: 8.4.47 + postcss: 8.4.49 - postcss-load-config@3.1.4(postcss@8.4.47): + postcss-load-config@3.1.4(postcss@8.4.49): dependencies: lilconfig: 2.1.0 yaml: 1.10.2 optionalDependencies: - postcss: 8.4.47 + postcss: 8.4.49 - postcss-load-config@4.0.2(postcss@8.4.47): + postcss-load-config@4.0.2(postcss@8.4.49): dependencies: lilconfig: 3.0.0 yaml: 2.3.4 optionalDependencies: - postcss: 8.4.47 + postcss: 8.4.49 - postcss-load-config@6.0.1(jiti@1.21.0)(postcss@8.4.47): + postcss-load-config@6.0.1(jiti@1.21.0)(postcss@8.4.49): dependencies: lilconfig: 3.1.2 optionalDependencies: jiti: 1.21.0 - postcss: 8.4.47 + postcss: 8.4.49 optional: true - postcss-nested@6.0.1(postcss@8.4.47): + postcss-nested@6.0.1(postcss@8.4.49): dependencies: - postcss: 8.4.47 + postcss: 8.4.49 postcss-selector-parser: 6.0.16 - postcss-safe-parser@6.0.0(postcss@8.4.47): + postcss-safe-parser@6.0.0(postcss@8.4.49): dependencies: - postcss: 8.4.47 + postcss: 8.4.49 - postcss-scss@4.0.9(postcss@8.4.47): + postcss-scss@4.0.9(postcss@8.4.49): dependencies: - postcss: 8.4.47 + postcss: 8.4.49 postcss-selector-parser@6.0.10: dependencies: @@ -11461,6 +11507,11 @@ snapshots: cssesc: 3.0.0 util-deprecate: 1.0.2 + postcss-selector-parser@6.1.2: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + postcss-value-parser@4.2.0: {} postcss@8.4.47: @@ -11469,6 +11520,12 @@ snapshots: picocolors: 1.1.0 source-map-js: 1.2.1 + postcss@8.4.49: + dependencies: + nanoid: 3.3.7 + picocolors: 1.1.1 + source-map-js: 1.2.1 + postgres-array@2.0.0: {} postgres-bytea@1.0.0: {} @@ -11479,9 +11536,9 @@ snapshots: dependencies: xtend: 4.0.2 - precompile-intl-runtime@0.8.5(svelte@4.2.19): + precompile-intl-runtime@0.8.5(svelte@5.2.8): dependencies: - svelte: 4.2.19 + svelte: 5.2.8 prelude-ls@1.2.1: {} @@ -11624,6 +11681,14 @@ snapshots: unified: 11.0.4 vfile: 6.0.1 + remark-rehype@11.1.1: + dependencies: + '@types/hast': 3.0.4 + '@types/mdast': 4.0.3 + mdast-util-to-hast: 13.1.0 + unified: 11.0.5 + vfile: 6.0.1 + remark-stringify@11.0.0: dependencies: '@types/mdast': 4.0.3 @@ -11675,10 +11740,6 @@ snapshots: rfdc@1.3.1: {} - rimraf@3.0.2: - dependencies: - glob: 7.2.3 - rimraf@5.0.7: dependencies: glob: 10.3.10 @@ -11716,25 +11777,6 @@ snapshots: '@rollup/rollup-win32-x64-msvc': 4.24.0 fsevents: 2.3.3 - rollup@4.9.6: - dependencies: - '@types/estree': 1.0.5 - optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.9.6 - '@rollup/rollup-android-arm64': 4.9.6 - '@rollup/rollup-darwin-arm64': 4.9.6 - '@rollup/rollup-darwin-x64': 4.9.6 - '@rollup/rollup-linux-arm-gnueabihf': 4.9.6 - '@rollup/rollup-linux-arm64-gnu': 4.9.6 - '@rollup/rollup-linux-arm64-musl': 4.9.6 - '@rollup/rollup-linux-riscv64-gnu': 4.9.6 - '@rollup/rollup-linux-x64-gnu': 4.9.6 - '@rollup/rollup-linux-x64-musl': 4.9.6 - '@rollup/rollup-win32-arm64-msvc': 4.9.6 - '@rollup/rollup-win32-ia32-msvc': 4.9.6 - '@rollup/rollup-win32-x64-msvc': 4.9.6 - fsevents: 2.3.3 - run-async@2.4.1: {} run-async@3.0.0: {} @@ -11813,12 +11855,6 @@ snapshots: dependencies: is-arrayish: 0.3.2 - sirv@2.0.4: - dependencies: - '@polka/url': 1.0.0-next.24 - mrmime: 2.0.0 - totalist: 3.0.1 - sirv@3.0.0: dependencies: '@polka/url': 1.0.0-next.24 @@ -11860,7 +11896,7 @@ snapshots: stackback@0.0.2: {} - std-env@3.7.0: {} + std-env@3.8.0: {} streamsearch@1.1.0: {} @@ -11920,7 +11956,7 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - sveld@0.20.2(@babel/core@7.24.7)(postcss-load-config@6.0.1(jiti@1.21.0)(postcss@8.4.47))(postcss@8.4.47): + sveld@0.20.2(@babel/core@7.24.7)(postcss-load-config@6.0.1(jiti@1.21.0)(postcss@8.4.49))(postcss@8.4.49): dependencies: '@rollup/plugin-node-resolve': 13.3.0(rollup@2.79.2) acorn: 8.13.0 @@ -11929,7 +11965,7 @@ snapshots: rollup: 2.79.2 rollup-plugin-svelte: 7.2.2(rollup@2.79.2)(svelte@4.2.19) svelte: 4.2.19 - svelte-preprocess: 6.0.3(@babel/core@7.24.7)(postcss-load-config@6.0.1(jiti@1.21.0)(postcss@8.4.47))(postcss@8.4.47)(svelte@4.2.19)(typescript@5.6.2) + svelte-preprocess: 6.0.3(@babel/core@7.24.7)(postcss-load-config@6.0.1(jiti@1.21.0)(postcss@8.4.49))(postcss@8.4.49)(svelte@4.2.19)(typescript@5.6.2) tinyglobby: 0.2.9 typescript: 5.6.2 transitivePeerDependencies: @@ -11943,99 +11979,99 @@ snapshots: - stylus - sugarss - svelte-check@4.0.5(picomatch@4.0.2)(svelte@4.2.19)(typescript@5.3.3): + svelte-check@4.1.0(picomatch@4.0.2)(svelte@5.2.8)(typescript@5.3.3): dependencies: '@jridgewell/trace-mapping': 0.3.25 chokidar: 4.0.1 fdir: 6.4.0(picomatch@4.0.2) picocolors: 1.1.0 sade: 1.8.1 - svelte: 4.2.19 + svelte: 5.2.8 typescript: 5.3.3 transitivePeerDependencies: - picomatch - svelte-eslint-parser@0.33.1(svelte@4.2.19): - dependencies: - eslint-scope: 7.2.2 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 - postcss: 8.4.47 - postcss-scss: 4.0.9(postcss@8.4.47) - optionalDependencies: - svelte: 4.2.19 - - svelte-eslint-parser@0.36.0(svelte@4.2.19): + svelte-eslint-parser@0.43.0(svelte@5.2.8): dependencies: eslint-scope: 7.2.2 eslint-visitor-keys: 3.4.3 espree: 9.6.1 - postcss: 8.4.47 - postcss-scss: 4.0.9(postcss@8.4.47) + postcss: 8.4.49 + postcss-scss: 4.0.9(postcss@8.4.49) optionalDependencies: - svelte: 4.2.19 + svelte: 5.2.8 - svelte-exmarkdown@3.0.5(svelte@4.2.19): + svelte-exmarkdown@3.0.5(svelte@5.2.8): dependencies: remark-gfm: 4.0.0 remark-parse: 11.0.0 remark-rehype: 11.1.0 - svelte: 4.2.19 + svelte: 5.2.8 unified: 11.0.4 transitivePeerDependencies: - supports-color - svelte-hmr@0.16.0(svelte@4.2.19): + svelte-exmarkdown@4.0.1(svelte@5.2.8): dependencies: - svelte: 4.2.19 + remark-gfm: 4.0.0 + remark-parse: 11.0.0 + remark-rehype: 11.1.1 + svelte: 5.2.8 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color - svelte-intl-precompile@0.12.3(@babel/core@7.24.4)(svelte@4.2.19): + svelte-hmr@0.16.0(svelte@5.2.8): + dependencies: + svelte: 5.2.8 + + svelte-intl-precompile@0.12.3(@babel/core@7.24.4)(svelte@5.2.8): dependencies: babel-plugin-precompile-intl: 0.5.2(@babel/core@7.24.4) js-yaml: 4.1.0 json5: 2.2.3 path-starts-with: 2.0.1 - precompile-intl-runtime: 0.8.5(svelte@4.2.19) + precompile-intl-runtime: 0.8.5(svelte@5.2.8) strip-bom: 5.0.0 transitivePeerDependencies: - '@babel/core' - svelte - svelte-preprocess@6.0.3(@babel/core@7.24.4)(postcss-load-config@6.0.1(jiti@1.21.0)(postcss@8.4.47))(postcss@8.4.47)(svelte@4.2.19)(typescript@5.3.3): + svelte-preprocess@6.0.3(@babel/core@7.24.4)(postcss-load-config@6.0.1(jiti@1.21.0)(postcss@8.4.49))(postcss@8.4.49)(svelte@5.2.8)(typescript@5.3.3): dependencies: - svelte: 4.2.19 + svelte: 5.2.8 optionalDependencies: '@babel/core': 7.24.4 - postcss: 8.4.47 - postcss-load-config: 6.0.1(jiti@1.21.0)(postcss@8.4.47) + postcss: 8.4.49 + postcss-load-config: 6.0.1(jiti@1.21.0)(postcss@8.4.49) typescript: 5.3.3 - svelte-preprocess@6.0.3(@babel/core@7.24.7)(postcss-load-config@6.0.1(jiti@1.21.0)(postcss@8.4.47))(postcss@8.4.47)(svelte@4.2.19)(typescript@5.3.3): + svelte-preprocess@6.0.3(@babel/core@7.24.7)(postcss-load-config@6.0.1(jiti@1.21.0)(postcss@8.4.49))(postcss@8.4.49)(svelte@4.2.19)(typescript@5.6.2): dependencies: svelte: 4.2.19 optionalDependencies: '@babel/core': 7.24.7 - postcss: 8.4.47 - postcss-load-config: 6.0.1(jiti@1.21.0)(postcss@8.4.47) - typescript: 5.3.3 + postcss: 8.4.49 + postcss-load-config: 6.0.1(jiti@1.21.0)(postcss@8.4.49) + typescript: 5.6.2 - svelte-preprocess@6.0.3(@babel/core@7.24.7)(postcss-load-config@6.0.1(jiti@1.21.0)(postcss@8.4.47))(postcss@8.4.47)(svelte@4.2.19)(typescript@5.6.2): + svelte-preprocess@6.0.3(@babel/core@7.24.7)(postcss-load-config@6.0.1(jiti@1.21.0)(postcss@8.4.49))(postcss@8.4.49)(svelte@5.2.8)(typescript@5.3.3): dependencies: - svelte: 4.2.19 + svelte: 5.2.8 optionalDependencies: '@babel/core': 7.24.7 - postcss: 8.4.47 - postcss-load-config: 6.0.1(jiti@1.21.0)(postcss@8.4.47) - typescript: 5.6.2 + postcss: 8.4.49 + postcss-load-config: 6.0.1(jiti@1.21.0)(postcss@8.4.49) + typescript: 5.3.3 svelte-routing@2.13.0: {} - svelte-turnstile@0.5.0(svelte@4.2.19): + svelte-turnstile@0.5.0(svelte@5.2.8): dependencies: - svelte: 4.2.19 + svelte: 5.2.8 turnstile-types: 1.2.0 - svelte-ux@0.75.1(@babel/core@7.24.7)(postcss-load-config@6.0.1(jiti@1.21.0)(postcss@8.4.47))(postcss@8.4.47)(svelte@4.2.19): + svelte-ux@0.75.1(@babel/core@7.24.7)(postcss-load-config@6.0.1(jiti@1.21.0)(postcss@8.4.49))(postcss@8.4.49)(svelte@5.2.8): dependencies: '@floating-ui/dom': 1.6.11 '@fortawesome/fontawesome-common-types': 6.6.0 @@ -12050,8 +12086,8 @@ snapshots: prism-svelte: 0.5.0 prism-themes: 1.9.0 prismjs: 1.29.0 - sveld: 0.20.2(@babel/core@7.24.7)(postcss-load-config@6.0.1(jiti@1.21.0)(postcss@8.4.47))(postcss@8.4.47) - svelte: 4.2.19 + sveld: 0.20.2(@babel/core@7.24.7)(postcss-load-config@6.0.1(jiti@1.21.0)(postcss@8.4.49))(postcss@8.4.49) + svelte: 5.2.8 tailwind-merge: 2.5.2 zod: 3.23.8 transitivePeerDependencies: @@ -12070,7 +12106,7 @@ snapshots: '@ampproject/remapping': 2.3.0 '@jridgewell/sourcemap-codec': 1.4.15 '@jridgewell/trace-mapping': 0.3.25 - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 acorn: 8.11.3 aria-query: 5.3.0 axobject-query: 4.0.0 @@ -12079,24 +12115,40 @@ snapshots: estree-walker: 3.0.3 is-reference: 3.0.2 locate-character: 3.0.0 - magic-string: 0.30.10 + magic-string: 0.30.12 periscopic: 3.1.0 - sveltekit-search-params@2.1.2(@sveltejs/kit@2.5.10(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.19)(vite@5.4.9(@types/node@20.12.12)))(svelte@4.2.19)(vite@5.4.9(@types/node@20.12.12)))(svelte@4.2.19)(vite@5.4.9(@types/node@20.12.12)): + svelte@5.2.8: dependencies: - '@sveltejs/kit': 2.5.10(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.19)(vite@5.4.9(@types/node@20.12.12)))(svelte@4.2.19)(vite@5.4.9(@types/node@20.12.12)) - '@sveltejs/vite-plugin-svelte': 3.1.1(svelte@4.2.19)(vite@5.4.9(@types/node@20.12.12)) - svelte: 4.2.19 + '@ampproject/remapping': 2.3.0 + '@jridgewell/sourcemap-codec': 1.5.0 + '@types/estree': 1.0.6 + acorn: 8.13.0 + acorn-typescript: 1.4.13(acorn@8.13.0) + aria-query: 5.3.2 + axobject-query: 4.1.0 + esm-env: 1.0.0 + esrap: 1.2.2 + is-reference: 3.0.3 + locate-character: 3.0.0 + magic-string: 0.30.12 + zimmerframe: 1.1.2 + + sveltekit-search-params@2.1.2(@sveltejs/kit@2.8.4(@sveltejs/vite-plugin-svelte@4.0.2(svelte@5.2.8)(vite@5.4.11(@types/node@20.12.12)))(svelte@5.2.8)(vite@5.4.11(@types/node@20.12.12)))(svelte@5.2.8)(vite@5.4.11(@types/node@20.12.12)): + dependencies: + '@sveltejs/kit': 2.8.4(@sveltejs/vite-plugin-svelte@4.0.2(svelte@5.2.8)(vite@5.4.11(@types/node@20.12.12)))(svelte@5.2.8)(vite@5.4.11(@types/node@20.12.12)) + '@sveltejs/vite-plugin-svelte': 3.1.1(svelte@5.2.8)(vite@5.4.11(@types/node@20.12.12)) + svelte: 5.2.8 transitivePeerDependencies: - supports-color - vite - sveltekit-superforms@1.13.4(@sveltejs/kit@2.5.10(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.19)(vite@5.4.9(@types/node@20.12.12)))(svelte@4.2.19)(vite@5.4.9(@types/node@20.12.12)))(svelte@4.2.19)(zod@3.23.8): + sveltekit-superforms@1.13.4(@sveltejs/kit@2.8.4(@sveltejs/vite-plugin-svelte@4.0.2(svelte@5.2.8)(vite@5.4.11(@types/node@20.12.12)))(svelte@5.2.8)(vite@5.4.11(@types/node@20.12.12)))(svelte@5.2.8)(zod@3.23.8): dependencies: - '@sveltejs/kit': 2.5.10(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.19)(vite@5.4.9(@types/node@20.12.12)))(svelte@4.2.19)(vite@5.4.9(@types/node@20.12.12)) + '@sveltejs/kit': 2.8.4(@sveltejs/vite-plugin-svelte@4.0.2(svelte@5.2.8)(vite@5.4.11(@types/node@20.12.12)))(svelte@5.2.8)(vite@5.4.11(@types/node@20.12.12)) devalue: 4.3.2 klona: 2.0.6 - svelte: 4.2.19 + svelte: 5.2.8 zod: 3.23.8 swap-case@2.0.2: @@ -12121,11 +12173,11 @@ snapshots: normalize-path: 3.0.0 object-hash: 3.0.0 picocolors: 1.1.0 - postcss: 8.4.47 - postcss-import: 15.1.0(postcss@8.4.47) - postcss-js: 4.0.1(postcss@8.4.47) - postcss-load-config: 4.0.2(postcss@8.4.47) - postcss-nested: 6.0.1(postcss@8.4.47) + postcss: 8.4.49 + postcss-import: 15.1.0(postcss@8.4.49) + postcss-js: 4.0.1(postcss@8.4.49) + postcss-load-config: 4.0.2(postcss@8.4.49) + postcss-nested: 6.0.1(postcss@8.4.49) postcss-selector-parser: 6.0.16 resolve: 1.22.8 sucrase: 3.35.0 @@ -12134,8 +12186,6 @@ snapshots: text-hex@1.0.0: {} - text-table@0.2.0: {} - thenify-all@1.6.0: dependencies: thenify: 3.3.1 @@ -12155,6 +12205,11 @@ snapshots: tinyexec@0.3.1: {} + tinyglobby@0.2.10: + dependencies: + fdir: 6.4.2(picomatch@4.0.2) + picomatch: 4.0.2 + tinyglobby@0.2.9: dependencies: fdir: 6.4.0(picomatch@4.0.2) @@ -12279,6 +12334,16 @@ snapshots: trough: 2.1.0 vfile: 6.0.1 + unified@11.0.5: + dependencies: + '@types/unist': 3.0.2 + bail: 2.0.2 + devlop: 1.1.0 + extend: 3.0.2 + is-plain-obj: 4.1.0 + trough: 2.1.0 + vfile: 6.0.1 + unist-util-is@6.0.0: dependencies: '@types/unist': 3.0.2 @@ -12324,7 +12389,7 @@ snapshots: dependencies: browserslist: 4.24.0 escalade: 3.2.0 - picocolors: 1.1.0 + picocolors: 1.1.1 optional: true upper-case-first@2.0.2: @@ -12367,12 +12432,13 @@ snapshots: unist-util-stringify-position: 4.0.0 vfile-message: 4.0.2 - vite-node@2.1.4(@types/node@20.12.12): + vite-node@2.1.5(@types/node@20.12.12): dependencies: cac: 6.7.14 debug: 4.3.7 + es-module-lexer: 1.5.4 pathe: 1.1.2 - vite: 5.4.9(@types/node@20.12.12) + vite: 5.4.11(@types/node@20.12.12) transitivePeerDependencies: - '@types/node' - less @@ -12384,12 +12450,13 @@ snapshots: - supports-color - terser - vite-node@2.1.4(@types/node@22.7.3): + vite-node@2.1.5(@types/node@22.7.3): dependencies: cac: 6.7.14 debug: 4.3.7 + es-module-lexer: 1.5.4 pathe: 1.1.2 - vite: 5.4.9(@types/node@22.7.3) + vite: 5.4.11(@types/node@22.7.3) transitivePeerDependencies: - '@types/node' - less @@ -12401,14 +12468,14 @@ snapshots: - supports-color - terser - vite-plugin-graphql-codegen@3.3.6(@graphql-codegen/cli@5.0.2(@types/node@20.12.12)(graphql@16.8.1)(typescript@5.3.3))(graphql@16.8.1)(vite@5.4.9(@types/node@20.12.12)): + vite-plugin-graphql-codegen@3.3.6(@graphql-codegen/cli@5.0.2(@types/node@20.12.12)(graphql@16.8.1)(typescript@5.3.3))(graphql@16.8.1)(vite@5.4.11(@types/node@20.12.12)): dependencies: '@graphql-codegen/cli': 5.0.2(@types/node@20.12.12)(graphql@16.8.1)(typescript@5.3.3) '@graphql-codegen/plugin-helpers': 5.0.1(graphql@16.8.1) graphql: 16.8.1 - vite: 5.4.9(@types/node@20.12.12) + vite: 5.4.11(@types/node@20.12.12) - vite@5.4.9(@types/node@20.12.12): + vite@5.4.11(@types/node@20.12.12): dependencies: esbuild: 0.21.5 postcss: 8.4.47 @@ -12417,7 +12484,7 @@ snapshots: '@types/node': 20.12.12 fsevents: 2.3.3 - vite@5.4.9(@types/node@22.7.3): + vite@5.4.11(@types/node@22.7.3): dependencies: esbuild: 0.21.5 postcss: 8.4.47 @@ -12426,39 +12493,43 @@ snapshots: '@types/node': 22.7.3 fsevents: 2.3.3 - vitefu@0.2.5(vite@5.4.9(@types/node@20.12.12)): + vitefu@0.2.5(vite@5.4.11(@types/node@20.12.12)): optionalDependencies: - vite: 5.4.9(@types/node@20.12.12) + vite: 5.4.11(@types/node@20.12.12) - vitefu@0.2.5(vite@5.4.9(@types/node@22.7.3)): + vitefu@1.0.3(vite@5.4.11(@types/node@20.12.12)): optionalDependencies: - vite: 5.4.9(@types/node@22.7.3) + vite: 5.4.11(@types/node@20.12.12) - vitest@2.1.4(@types/node@20.12.12)(@vitest/ui@2.1.4)(happy-dom@15.7.4): + vitefu@1.0.3(vite@5.4.11(@types/node@22.7.3)): + optionalDependencies: + vite: 5.4.11(@types/node@22.7.3) + + vitest@2.1.5(@types/node@20.12.12)(@vitest/ui@2.1.5)(happy-dom@15.7.4): dependencies: - '@vitest/expect': 2.1.4 - '@vitest/mocker': 2.1.4(vite@5.4.9(@types/node@20.12.12)) - '@vitest/pretty-format': 2.1.4 - '@vitest/runner': 2.1.4 - '@vitest/snapshot': 2.1.4 - '@vitest/spy': 2.1.4 - '@vitest/utils': 2.1.4 + '@vitest/expect': 2.1.5 + '@vitest/mocker': 2.1.5(vite@5.4.11(@types/node@20.12.12)) + '@vitest/pretty-format': 2.1.5 + '@vitest/runner': 2.1.5 + '@vitest/snapshot': 2.1.5 + '@vitest/spy': 2.1.5 + '@vitest/utils': 2.1.5 chai: 5.1.2 debug: 4.3.7 expect-type: 1.1.0 magic-string: 0.30.12 pathe: 1.1.2 - std-env: 3.7.0 + std-env: 3.8.0 tinybench: 2.9.0 tinyexec: 0.3.1 tinypool: 1.0.1 tinyrainbow: 1.2.0 - vite: 5.4.9(@types/node@20.12.12) - vite-node: 2.1.4(@types/node@20.12.12) + vite: 5.4.11(@types/node@20.12.12) + vite-node: 2.1.5(@types/node@20.12.12) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 20.12.12 - '@vitest/ui': 2.1.4(vitest@2.1.4) + '@vitest/ui': 2.1.5(vitest@2.1.5) happy-dom: 15.7.4 transitivePeerDependencies: - less @@ -12471,31 +12542,31 @@ snapshots: - supports-color - terser - vitest@2.1.4(@types/node@22.7.3)(@vitest/ui@2.1.4)(happy-dom@15.7.4): + vitest@2.1.5(@types/node@22.7.3)(@vitest/ui@2.1.5)(happy-dom@15.7.4): dependencies: - '@vitest/expect': 2.1.4 - '@vitest/mocker': 2.1.4(vite@5.4.9(@types/node@22.7.3)) - '@vitest/pretty-format': 2.1.4 - '@vitest/runner': 2.1.4 - '@vitest/snapshot': 2.1.4 - '@vitest/spy': 2.1.4 - '@vitest/utils': 2.1.4 + '@vitest/expect': 2.1.5 + '@vitest/mocker': 2.1.5(vite@5.4.11(@types/node@22.7.3)) + '@vitest/pretty-format': 2.1.5 + '@vitest/runner': 2.1.5 + '@vitest/snapshot': 2.1.5 + '@vitest/spy': 2.1.5 + '@vitest/utils': 2.1.5 chai: 5.1.2 debug: 4.3.7 expect-type: 1.1.0 magic-string: 0.30.12 pathe: 1.1.2 - std-env: 3.7.0 + std-env: 3.8.0 tinybench: 2.9.0 tinyexec: 0.3.1 tinypool: 1.0.1 tinyrainbow: 1.2.0 - vite: 5.4.9(@types/node@22.7.3) - vite-node: 2.1.4(@types/node@22.7.3) + vite: 5.4.11(@types/node@22.7.3) + vite-node: 2.1.5(@types/node@22.7.3) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 22.7.3 - '@vitest/ui': 2.1.4(vitest@2.1.4) + '@vitest/ui': 2.1.5(vitest@2.1.5) happy-dom: 15.7.4 transitivePeerDependencies: - less @@ -12658,6 +12729,8 @@ snapshots: yocto-queue@0.1.0: {} + zimmerframe@1.1.2: {} + zod@3.23.8: {} zone.js@0.11.8: diff --git a/frontend/pnpm-workspace.yaml b/frontend/pnpm-workspace.yaml index 3f163708f..460f38549 100644 --- a/frontend/pnpm-workspace.yaml +++ b/frontend/pnpm-workspace.yaml @@ -3,15 +3,15 @@ - 'viewer' catalog: - vite: ^5.4.9 - svelte: ^4.2.19 - svelte-check: ^4.0.5 + vite: ^5.4.11 + svelte: ^5.2.8 + svelte-check: ^4.1.0 svelte-preprocess: ^6.0.3 - postcss: ^8.4.47 + postcss: ^8.4.49 typescript: ^5.3.3 tslib: ^2.6.2 tailwindcss: ^3.4.3 - eslint: ^8.57.0 - vitest: ^2.1.4 - "@vitest/ui": ^2.1.4 + eslint: ^9.15.0 + vitest: ^2.1.5 + "@vitest/ui": ^2.1.5 "@typescript-eslint/parser": ^6.21.0 diff --git a/frontend/viewer/package.json b/frontend/viewer/package.json index f25291346..b0dbbfdea 100644 --- a/frontend/viewer/package.json +++ b/frontend/viewer/package.json @@ -31,10 +31,10 @@ "@egoist/tailwindcss-icons": "^1.8.0", "@iconify-json/mdi": "^1.1.66", "@mdi/js": "^7.4.47", - "@sveltejs/vite-plugin-svelte": "^3.1.1", + "@sveltejs/vite-plugin-svelte": "^4.0.2", "@tailwindcss/typography": "^0.5.13", "@testing-library/jest-dom": "^6.6.2", - "@testing-library/svelte": "^5.2.3", + "@testing-library/svelte": "^5.2.6", "@testing-library/user-event": "^14.5.2", "@tsconfig/svelte": "^5.0.4", "@typescript-eslint/parser": "catalog:", @@ -57,7 +57,7 @@ "fast-json-patch": "^3.1.1", "just-throttle": "^4.2.0", "postcss": "catalog:", - "svelte-exmarkdown": "^3.0.5", + "svelte-exmarkdown": "^4.0.1", "svelte-preprocess": "catalog:", "svelte-routing": "^2.12.0", "svelte-ux": "^0.75.1", From 11bc58c164652f71ef95415cd8232b46a5f7d73a Mon Sep 17 00:00:00 2001 From: Robin Munn Date: Tue, 26 Nov 2024 13:47:03 +0700 Subject: [PATCH 02/17] Stop Svelte warning about self-closing HTML tags We'll fix the self-closing tags when we migrate to Svelte 5; in the meantime, we don't want these warnings to flood the compilation results and end up hiding other, more important, warnings. --- frontend/svelte.config.js | 1 + frontend/viewer/svelte.config.js | 1 + 2 files changed, 2 insertions(+) diff --git a/frontend/svelte.config.js b/frontend/svelte.config.js index 469f541e5..214f94b1a 100644 --- a/frontend/svelte.config.js +++ b/frontend/svelte.config.js @@ -4,6 +4,7 @@ import { vitePreprocess } from '@sveltejs/vite-plugin-svelte'; /** @type {import('@sveltejs/kit').Config} */ const config = { compilerOptions: { + warningFilter: (warning) => warning.code != 'element_invalid_self_closing_tag', enableSourcemap: true }, kit: { diff --git a/frontend/viewer/svelte.config.js b/frontend/viewer/svelte.config.js index 733b37377..09194e5a6 100644 --- a/frontend/viewer/svelte.config.js +++ b/frontend/viewer/svelte.config.js @@ -8,6 +8,7 @@ const postcssConfig = path.join(__dirname, 'postcss.config.cjs'); export default { compilerOptions: { + warningFilter: (warning) => warning.code != 'element_invalid_self_closing_tag', customElement: true, }, // Consult https://svelte.dev/docs#compile-time-svelte-preprocess From 6abf1e68d9077be4d366264b68f24aa9174d0295 Mon Sep 17 00:00:00 2001 From: Robin Munn Date: Tue, 26 Nov 2024 14:37:30 +0700 Subject: [PATCH 03/17] Enable preprocessing script tags in vitePreprocess This fixes the error about TypeScript enums not being natively supported --- frontend/svelte.config.js | 1 + 1 file changed, 1 insertion(+) diff --git a/frontend/svelte.config.js b/frontend/svelte.config.js index 214f94b1a..db1b6ab2c 100644 --- a/frontend/svelte.config.js +++ b/frontend/svelte.config.js @@ -17,6 +17,7 @@ const config = { }, preprocess: [ vitePreprocess({ + script: true, postcss: true }) ], From 52a1c10d887698bed9a39c524a1324626bab0ba0 Mon Sep 17 00:00:00 2001 From: Robin Munn Date: Tue, 26 Nov 2024 14:53:55 +0700 Subject: [PATCH 04/17] Avoid ".svelte-kit/tsconfig.json not found" error By making the .svelte-kit directory (produced by svelte-kit sync) part of the docker image in dev mode, we can avoid having the viewer build fail the first time, which causes the container to restart unnecessarily. --- frontend/dev.Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/frontend/dev.Dockerfile b/frontend/dev.Dockerfile index 87037b512..dd022bbf9 100644 --- a/frontend/dev.Dockerfile +++ b/frontend/dev.Dockerfile @@ -14,4 +14,5 @@ COPY . /app/ COPY src /app/src COPY static /app/static ENV DockerDev=true +RUN pnpm svelte-kit sync CMD [ "pnpm", "run", "-r", "--include-workspace-root", "lexbox-dev" ] From da8fdd574cf21c1ed5a9142cae84ac49262fc5a4 Mon Sep 17 00:00:00 2001 From: Robin Munn Date: Thu, 28 Nov 2024 12:52:18 +0700 Subject: [PATCH 05/17] Fix up Typescript errors * MaybePromise = T | Promise no longer exported from svelte-kit * svelte/store no longer exports Invalidator type (now () => void) * svelte-exmarkdown v4 needed for correct Svelte 5 component types * svelte-exmarkdown renderer prop needs casting as Component so that Typescript won't complain about incompatible prop types * Components no longer have a .render method, instead you import the render function from Svelte and call it * svelte/compiler no longer exports walk, we're supposed to use estree-walker instead * estree-walker doesn't think nodes should have 'Element' type, as its types are designed for JS syntax trees, not Svelte component trees * Could not get Typescript to accept our componentMap in emails.ts, as each component had incompatible props. Punted by declaring its type as Record. --- frontend/package.json | 3 +- frontend/pnpm-lock.yaml | 33 +++---------------- .../ProjectConfidentialityCombobox.svelte | 3 +- .../components/Users/CreateUserModal.svelte | 5 +-- .../src/lib/email/emailRenderer.server.ts | 24 ++++++++------ frontend/src/lib/forms/Checkbox.svelte | 3 +- frontend/src/lib/forms/FormError.svelte | 3 +- frontend/src/lib/forms/FormField.svelte | 3 +- .../src/lib/forms/RadioButtonGroup.svelte | 3 +- frontend/src/lib/i18n/index.ts | 3 +- frontend/src/lib/otel/otel.server.ts | 4 +-- .../[project_code]/OpenInFlexModal.svelte | 3 +- .../project/create/+page.svelte | 4 +-- frontend/src/routes/email/+server.ts | 11 ++++--- frontend/src/routes/email/emails.ts | 3 +- 15 files changed, 49 insertions(+), 59 deletions(-) diff --git a/frontend/package.json b/frontend/package.json index a44ede266..c34fc4303 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -96,11 +96,12 @@ "@vitejs/plugin-basic-ssl": "^1.1.0", "css-tree": "^2.3.1", "e2e-mailbox": "1.1.5", + "estree-walker": "^3.0.3", "js-cookie": "^3.0.5", "just-order-by": "^1.0.0", "mjml": "^4.15.3", "set-cookie-parser": "^2.6.0", - "svelte-exmarkdown": "^3.0.5", + "svelte-exmarkdown": "^4.0.1", "svelte-intl-precompile": "^0.12.3", "sveltekit-search-params": "^2.1.2", "tus-js-client": "^4.1.0", diff --git a/frontend/pnpm-lock.yaml b/frontend/pnpm-lock.yaml index b25eae111..24955ea91 100644 --- a/frontend/pnpm-lock.yaml +++ b/frontend/pnpm-lock.yaml @@ -98,6 +98,9 @@ importers: e2e-mailbox: specifier: 1.1.5 version: 1.1.5 + estree-walker: + specifier: ^3.0.3 + version: 3.0.3 js-cookie: specifier: ^3.0.5 version: 3.0.5 @@ -111,8 +114,8 @@ importers: specifier: ^2.6.0 version: 2.6.0 svelte-exmarkdown: - specifier: ^3.0.5 - version: 3.0.5(svelte@5.2.8) + specifier: ^4.0.1 + version: 4.0.1(svelte@5.2.8) svelte-intl-precompile: specifier: ^0.12.3 version: 0.12.3(@babel/core@7.24.4)(svelte@5.2.8) @@ -5004,9 +5007,6 @@ packages: remark-parse@11.0.0: resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} - remark-rehype@11.1.0: - resolution: {integrity: sha512-z3tJrAs2kIs1AqIIy6pzHmAHlF1hWQ+OdY4/hv+Wxe35EhyLKcajL33iUEn3ScxtFox9nUvRufR/Zre8Q08H/g==} - remark-rehype@11.1.1: resolution: {integrity: sha512-g/osARvjkBXb6Wo0XvAeXQohVta8i84ACbenPpoSsxTOQH/Ae0/RGP4WZgnMH5pMLpsj4FG7OHmcIcXxpza8eQ==} @@ -5313,11 +5313,6 @@ packages: svelte: optional: true - svelte-exmarkdown@3.0.5: - resolution: {integrity: sha512-x0ELw7oTziBaJLFsdGZaoursycGK9HPzxRTRZ/rBi2KmseFG29ryyborJxFmeE0X6ORrEW1pRjoi8q41xpIeRQ==} - peerDependencies: - svelte: ^3.47.0 || ^4.0.0 || >=5.0.0-next.115 - svelte-exmarkdown@4.0.1: resolution: {integrity: sha512-Rbyp1qyYtGbseEwJ09cmdCeUYDwfXKv7MLTDeacb+/OCPYaTBdMy/3kvn8wF8w7v4JggyOboxhvJxoXEkmDxMQ==} peerDependencies: @@ -11673,14 +11668,6 @@ snapshots: transitivePeerDependencies: - supports-color - remark-rehype@11.1.0: - dependencies: - '@types/hast': 3.0.4 - '@types/mdast': 4.0.3 - mdast-util-to-hast: 13.1.0 - unified: 11.0.4 - vfile: 6.0.1 - remark-rehype@11.1.1: dependencies: '@types/hast': 3.0.4 @@ -12001,16 +11988,6 @@ snapshots: optionalDependencies: svelte: 5.2.8 - svelte-exmarkdown@3.0.5(svelte@5.2.8): - dependencies: - remark-gfm: 4.0.0 - remark-parse: 11.0.0 - remark-rehype: 11.1.0 - svelte: 5.2.8 - unified: 11.0.4 - transitivePeerDependencies: - - supports-color - svelte-exmarkdown@4.0.1(svelte@5.2.8): dependencies: remark-gfm: 4.0.0 diff --git a/frontend/src/lib/components/Projects/ProjectConfidentialityCombobox.svelte b/frontend/src/lib/components/Projects/ProjectConfidentialityCombobox.svelte index c761d02e8..f1c3ffe5e 100644 --- a/frontend/src/lib/components/Projects/ProjectConfidentialityCombobox.svelte +++ b/frontend/src/lib/components/Projects/ProjectConfidentialityCombobox.svelte @@ -5,6 +5,7 @@ import { Icon } from '$lib/icons'; import Markdown from 'svelte-exmarkdown'; import { NewTabLinkRenderer } from '$lib/components/Markdown'; + import type {Component} from 'svelte'; export let value: boolean; @@ -21,6 +22,6 @@ {#if value}
- + } }]} />
{/if} diff --git a/frontend/src/lib/components/Users/CreateUserModal.svelte b/frontend/src/lib/components/Users/CreateUserModal.svelte index ac75bdddf..95c82c9cb 100644 --- a/frontend/src/lib/components/Users/CreateUserModal.svelte +++ b/frontend/src/lib/components/Users/CreateUserModal.svelte @@ -6,6 +6,7 @@ import CreateUser from '$lib/components/Users/CreateUser.svelte'; import Markdown from 'svelte-exmarkdown'; import { NewTabLinkRenderer } from '$lib/components/Markdown'; + import type {Component} from 'svelte'; import Icon from '$lib/icons/Icon.svelte'; import { createEventDispatcher } from 'svelte'; @@ -31,11 +32,11 @@
} }]} /> } }]} />
diff --git a/frontend/src/lib/email/emailRenderer.server.ts b/frontend/src/lib/email/emailRenderer.server.ts index 6d96e0e3f..780b3aaf3 100644 --- a/frontend/src/lib/email/emailRenderer.server.ts +++ b/frontend/src/lib/email/emailRenderer.server.ts @@ -1,36 +1,40 @@ -import { parse, walk } from 'svelte/compiler'; +import { parse } from 'svelte/compiler'; +import { render as svelte5Render } from 'svelte/server'; +import { walk } from 'estree-walker'; -import type { ComponentType } from 'svelte'; -import type {EmailTemplateProps} from '../../routes/email/emails'; +import type { Component } from 'svelte'; +import {EmailTemplate, type EmailTemplateProps} from '../../routes/email/emails'; import { LOCALE_CONTEXT_KEY } from '$lib/i18n'; -import type { TemplateNode } from 'svelte/types/compiler/interfaces'; import mjml2html from 'mjml'; import { readable } from 'svelte/store'; -type RenderResult = { head: string, html: string, css: string }; +type RenderResult = { head: string, html: string }; export type RenderEmailResult = { subject: string, html: string }; function getSubject(head: string): string { // using the Subject.svelte component a title should have been placed in the head. // we need to parse the head and find the title and extract the text - const {html} = parse(head, { filename: 'file.html' }); + const {html} = parse(head, { filename: 'file.html', modern: false }); + // CAUTION: modern: true will become default in Svelte 6, at which point the node.type below will change to RegularElement let subject: string | undefined; // eslint-disable-next-line @typescript-eslint/no-unsafe-argument walk(html as Parameters[0], { - enter(node: TemplateNode, ..._) { - if (node.type === 'Element' && node.name === 'title') { + enter(node, ..._) { + if (node.type as string === 'Element' && 'name' in node && node.name === 'title') { + if ('children' in node && Array.isArray(node.children)) subject = node.children?.[0].data as string; } } } as Parameters[1]); if (!subject) throw new Error('subject not found'); + console.log(`Subject: ${subject}`); return subject; } -export function render(emailComponent: ComponentType, props: Omit, userLocale: string): RenderEmailResult { +export function render(emailComponent: Component, props: EmailTemplateProps, userLocale: string): RenderEmailResult { const context = new Map([[LOCALE_CONTEXT_KEY, readable(userLocale)]]); // eslint-disable-next-line - const result: RenderResult = (emailComponent as any).render(props, { context }) as RenderResult; + const result: RenderResult = svelte5Render((emailComponent as any), { props, context }); const mjmlResult = mjml2html(result.html, { validationLevel: 'soft' }); if (mjmlResult.errors) { console.error(mjmlResult.errors); diff --git a/frontend/src/lib/forms/Checkbox.svelte b/frontend/src/lib/forms/Checkbox.svelte index ba81955fa..76a15f01b 100644 --- a/frontend/src/lib/forms/Checkbox.svelte +++ b/frontend/src/lib/forms/Checkbox.svelte @@ -3,6 +3,7 @@ import FormFieldError from './FormFieldError.svelte'; import { randomFormId } from './utils'; import { NewTabLinkRenderer } from '$lib/components/Markdown'; + import type {Component} from 'svelte'; export let label: string; export let value: boolean; @@ -23,7 +24,7 @@ {#if description} {/if} diff --git a/frontend/src/lib/forms/FormError.svelte b/frontend/src/lib/forms/FormError.svelte index f025ec02f..09cc9d308 100644 --- a/frontend/src/lib/forms/FormError.svelte +++ b/frontend/src/lib/forms/FormError.svelte @@ -2,6 +2,7 @@ import Markdown from 'svelte-exmarkdown'; import type { ErrorMessage } from './types'; import { NewTabLinkRenderer } from '$lib/components/Markdown'; + import type {Component} from 'svelte'; export let error: ErrorMessage = undefined; export let markdown = false; @@ -11,7 +12,7 @@ {#if error} {#if markdown} - + } }]} /> {:else} {error} {/if} diff --git a/frontend/src/lib/forms/FormField.svelte b/frontend/src/lib/forms/FormField.svelte index 2f3819ea0..de252c72a 100644 --- a/frontend/src/lib/forms/FormField.svelte +++ b/frontend/src/lib/forms/FormField.svelte @@ -4,6 +4,7 @@ import { randomFormId } from './utils'; import Markdown from 'svelte-exmarkdown'; import { NewTabLinkRenderer } from '$lib/components/Markdown'; + import type {Component} from 'svelte'; import type { HelpLink } from '$lib/components/help'; import SupHelp from '$lib/components/help/SupHelp.svelte'; @@ -40,7 +41,7 @@ {#if description} {/if} diff --git a/frontend/src/lib/forms/RadioButtonGroup.svelte b/frontend/src/lib/forms/RadioButtonGroup.svelte index 7821febb8..33974da89 100644 --- a/frontend/src/lib/forms/RadioButtonGroup.svelte +++ b/frontend/src/lib/forms/RadioButtonGroup.svelte @@ -10,6 +10,7 @@ import FormFieldError from './FormFieldError.svelte'; import { randomFormId } from './utils'; import { NewTabLinkRenderer } from '$lib/components/Markdown'; + import type {Component} from 'svelte'; export let buttons: SingleRadioButton[]; export let label: string; // This is for the group as a whole @@ -44,7 +45,7 @@ {#if description} {/if} diff --git a/frontend/src/lib/i18n/index.ts b/frontend/src/lib/i18n/index.ts index e897c02e9..1963006b7 100644 --- a/frontend/src/lib/i18n/index.ts +++ b/frontend/src/lib/i18n/index.ts @@ -10,7 +10,6 @@ import { type Writable, type Unsubscriber, type Subscriber, - type Invalidator } from 'svelte/store'; import { availableLocales, registerAll } from '$locales'; import type { Get } from 'type-fest'; @@ -107,7 +106,7 @@ export function initI18n(locale: string): { t: I18n, locale: Writable } } export const locale: Readable = { - subscribe(run: Subscriber, invalidate?: Invalidator): Unsubscriber { + subscribe(run: Subscriber, invalidate?: () => void): Unsubscriber { return useLocale().subscribe(run, invalidate); } }; diff --git a/frontend/src/lib/otel/otel.server.ts b/frontend/src/lib/otel/otel.server.ts index e6e6c1330..3dd01437c 100644 --- a/frontend/src/lib/otel/otel.server.ts +++ b/frontend/src/lib/otel/otel.server.ts @@ -14,7 +14,7 @@ import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http'; import { Resource } from '@opentelemetry/resources'; import { NodeSDK } from '@opentelemetry/sdk-node'; import { SemanticAttributes, SemanticResourceAttributes } from '@opentelemetry/semantic-conventions'; -import type { MaybePromise, RequestEvent, NavigationEvent } from '@sveltejs/kit'; +import type { RequestEvent, NavigationEvent } from '@sveltejs/kit'; import { traceFetch as _traceFetch, traceEventAttributes, @@ -62,7 +62,7 @@ export function getRootTraceparent(): string | undefined { export async function traceRequest( event: RequestEvent, - responseBuilder: (requestSpan: Span) => MaybePromise, + responseBuilder: (requestSpan: Span) => Response | Promise, ): Promise { const tracparentContext = buildContextWithTraceparentBaggage(event); return context.with(tracparentContext, () => { diff --git a/frontend/src/routes/(authenticated)/project/[project_code]/OpenInFlexModal.svelte b/frontend/src/routes/(authenticated)/project/[project_code]/OpenInFlexModal.svelte index 097bf12b0..192556245 100644 --- a/frontend/src/routes/(authenticated)/project/[project_code]/OpenInFlexModal.svelte +++ b/frontend/src/routes/(authenticated)/project/[project_code]/OpenInFlexModal.svelte @@ -6,6 +6,7 @@ import OpenInFlexButton from './OpenInFlexButton.svelte'; import SendReceiveUrlField from './SendReceiveUrlField.svelte'; import { NewTabLinkRenderer } from '$lib/components/Markdown'; + import type {Component} from 'svelte'; export let project: Project; let modal: Modal; @@ -20,7 +21,7 @@

{$t('project_page.open_with_flex.button')}

- + } }]} />
diff --git a/frontend/src/routes/(authenticated)/project/create/+page.svelte b/frontend/src/routes/(authenticated)/project/create/+page.svelte index a5cb73764..8931ffea5 100644 --- a/frontend/src/routes/(authenticated)/project/create/+page.svelte +++ b/frontend/src/routes/(authenticated)/project/create/+page.svelte @@ -10,7 +10,7 @@ import { useNotifications } from '$lib/notify'; import { Duration, deriveAsync, deriveAsyncIfDefined } from '$lib/util/time'; import { getSearchParamValues } from '$lib/util/query-params'; - import { onMount } from 'svelte'; + import { onMount, type Component } from 'svelte'; import MemberBadge from '$lib/components/Badges/MemberBadge.svelte'; import { derived, writable, type Readable } from 'svelte/store'; import { concatAll } from '$lib/util/array'; @@ -287,7 +287,7 @@ {/each}
diff --git a/frontend/src/routes/email/+server.ts b/frontend/src/routes/email/+server.ts index 6b45c6755..2017ed3ed 100644 --- a/frontend/src/routes/email/+server.ts +++ b/frontend/src/routes/email/+server.ts @@ -2,12 +2,13 @@ import { render } from '$lib/email/emailRenderer.server'; import { json } from '@sveltejs/kit'; import type { RequestEvent } from './$types'; import { componentMap, EmailTemplate, type EmailTemplateProps } from './emails'; +import type {Component} from 'svelte'; export async function POST(event: RequestEvent): Promise { const request = await event.request.json() as EmailTemplateProps; - const {template, ...props} = request; - const component = componentMap[template]; - if (!component) throw new Error(`Invalid email template ${template}.}`); + const {...props} = request; + const component = componentMap[props.template] as unknown as Component; + if (!component) throw new Error(`Invalid email template ${props.template}.}`); return json(render(component, props, event.locals.activeLocale)); } @@ -17,7 +18,9 @@ export function GET(event: RequestEvent): Response { const {type, ...props} = { type: EmailTemplate.ForgotPassword, name: 'John Doe', + lifetime: '3 days', + template: EmailTemplate.ForgotPassword, resetUrl: 'https://example.com/reset' }; - return json(render(componentMap[type], props, event.locals.activeLocale)); + return json(render(componentMap[type] as unknown as any, props, event.locals.activeLocale)); } diff --git a/frontend/src/routes/email/emails.ts b/frontend/src/routes/email/emails.ts index 94b36ae51..451a1a4b4 100644 --- a/frontend/src/routes/email/emails.ts +++ b/frontend/src/routes/email/emails.ts @@ -1,6 +1,5 @@ import ForgotPassword from '$lib/email/ForgotPassword.svelte'; import NewAdmin from '$lib/email/NewAdmin.svelte'; -import type {ComponentType} from 'svelte'; import VerifyEmailAddress from '$lib/email/VerifyEmailAddress.svelte'; import PasswordChanged from '$lib/email/PasswordChanged.svelte'; import JoinProjectRequest from '$lib/email/JoinProjectRequest.svelte'; @@ -36,7 +35,7 @@ export const componentMap = { [EmailTemplate.CreateProjectRequest]: CreateProjectRequest, [EmailTemplate.ApproveProjectRequest]: ApproveProjectRequest, [EmailTemplate.UserAdded]: UserAdded, -} satisfies Record; +} satisfies Record; interface EmailTemplatePropsBase { template: T; From c1302610279520aac9e03eb6cac0de5f72aaa457 Mon Sep 17 00:00:00 2001 From: Robin Munn Date: Thu, 28 Nov 2024 16:33:29 +0700 Subject: [PATCH 06/17] Fix up Typescript errors in viewer --- frontend/viewer/src/lib/about/AboutDialog.svelte | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/viewer/src/lib/about/AboutDialog.svelte b/frontend/viewer/src/lib/about/AboutDialog.svelte index 24c651676..2ed39ca26 100644 --- a/frontend/viewer/src/lib/about/AboutDialog.svelte +++ b/frontend/viewer/src/lib/about/AboutDialog.svelte @@ -4,7 +4,7 @@ import type { Readable } from 'svelte/store'; import Markdown from 'svelte-exmarkdown'; import NewTabLinkRenderer from './NewTabLinkRenderer.svelte'; - import { onMount } from 'svelte'; + import { onMount, type Component } from 'svelte'; export let text: Readable; @@ -26,7 +26,7 @@
- + } }]} />
From 37bf1d7b817e131f5c53d5c1a27313dbbc236766 Mon Sep 17 00:00:00 2001 From: Tim Haasdyk Date: Thu, 28 Nov 2024 16:50:38 +0100 Subject: [PATCH 07/17] Update eslint related packages and minor edits --- frontend/eslint.config.js | 8 +- frontend/package.json | 7 +- frontend/pnpm-lock.yaml | 475 ++++++++++-------- frontend/pnpm-workspace.yaml | 6 +- .../src/lib/email/emailRenderer.server.ts | 20 +- frontend/src/routes/email/+server.ts | 10 +- frontend/src/routes/email/emails.ts | 3 +- frontend/viewer/eslint.config.js | 8 +- frontend/viewer/package.json | 4 + 9 files changed, 290 insertions(+), 251 deletions(-) diff --git a/frontend/eslint.config.js b/frontend/eslint.config.js index 7e57c479e..c1b71ecc7 100644 --- a/frontend/eslint.config.js +++ b/frontend/eslint.config.js @@ -1,5 +1,5 @@ -import { FlatCompat } from '@eslint/eslintrc'; -import { fileURLToPath } from 'url'; +import {FlatCompat} from '@eslint/eslintrc'; +import {fileURLToPath} from 'url'; import globals from 'globals'; import js from '@eslint/js'; import path from 'path'; @@ -29,7 +29,7 @@ export default [ // TypeScript and Svelte plugins don't seem to support the new config format yet // So, using backwards compatibility util: https://eslint.org/blog/2022/08/new-config-system-part-2/#backwards-compatibility-utility ...compat.config({ - plugins: ['@typescript-eslint'], + plugins: ['@typescript-eslint', '@stylistic'], extends: ['plugin:@typescript-eslint/recommended', 'plugin:@typescript-eslint/recommended-requiring-type-checking'], overrides: [ { @@ -83,7 +83,7 @@ export default [ 'format': ['camelCase', 'PascalCase'], } ], - '@typescript-eslint/quotes': ['error', 'single', { 'allowTemplateLiterals': true }], + '@stylistic/quotes': ['error', 'single', { 'allowTemplateLiterals': true }], '@typescript-eslint/no-unused-vars': [ 'error', { diff --git a/frontend/package.json b/frontend/package.json index c34fc4303..060990704 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -45,7 +45,8 @@ "@types/mjml": "^4.7.4", "@types/node": "^20.12.12", "@types/zxcvbn": "^4.4.4", - "@typescript-eslint/eslint-plugin": "^6.21.0", + "@typescript-eslint/eslint-plugin": "catalog:", + "@stylistic/eslint-plugin": "catalog:", "@typescript-eslint/parser": "catalog:", "@urql/core": "^5.0.8", "@urql/devtools": "^2.0.3", @@ -54,7 +55,7 @@ "autoprefixer": "^10.4.19", "daisyui": "^4.11.1", "eslint": "catalog:", - "eslint-plugin-svelte": "^2.45.1", + "eslint-plugin-svelte": "catalog:", "globals": "^13.24.0", "graphql": "^16.8.1", "json5": "^2.2.3", @@ -63,7 +64,7 @@ "rimraf": "^5.0.7", "svelte": "catalog:", "svelte-check": "catalog:", - "svelte-eslint-parser": "^0.43.0", + "svelte-eslint-parser": "catalog:", "svelte-preprocess": "catalog:", "svelte-turnstile": "^0.5.0", "sveltekit-superforms": "^1.13.4", diff --git a/frontend/pnpm-lock.yaml b/frontend/pnpm-lock.yaml index 24955ea91..d5a9b9354 100644 --- a/frontend/pnpm-lock.yaml +++ b/frontend/pnpm-lock.yaml @@ -6,15 +6,24 @@ settings: catalogs: default: + '@stylistic/eslint-plugin': + specifier: ^2.11.0 + version: 2.11.0 + '@typescript-eslint/eslint-plugin': + specifier: ^8.16.0 + version: 8.16.0 '@typescript-eslint/parser': - specifier: ^6.21.0 - version: 6.21.0 + specifier: ^8.16.0 + version: 8.16.0 '@vitest/ui': specifier: ^2.1.5 version: 2.1.5 eslint: specifier: ^9.15.0 version: 9.15.0 + eslint-plugin-svelte: + specifier: ^3.0.0-next.0 + version: 3.0.0-next.0 postcss: specifier: ^8.4.49 version: 8.4.49 @@ -24,6 +33,9 @@ catalogs: svelte-check: specifier: ^4.1.0 version: 4.1.0 + svelte-eslint-parser: + specifier: ^1.0.0-next.0 + version: 1.0.0-next.0 svelte-preprocess: specifier: ^6.0.3 version: 6.0.3 @@ -159,6 +171,9 @@ importers: '@playwright/test': specifier: ^1.44.0 version: 1.44.0 + '@stylistic/eslint-plugin': + specifier: 'catalog:' + version: 2.11.0(eslint@9.15.0(jiti@1.21.0))(typescript@5.3.3) '@sveltejs/adapter-node': specifier: ^5.2.9 version: 5.2.9(@sveltejs/kit@2.8.4(@sveltejs/vite-plugin-svelte@4.0.2(svelte@5.2.8)(vite@5.4.11(@types/node@20.12.12)))(svelte@5.2.8)(vite@5.4.11(@types/node@20.12.12))) @@ -181,11 +196,11 @@ importers: specifier: ^4.4.4 version: 4.4.4 '@typescript-eslint/eslint-plugin': - specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@9.15.0(jiti@1.21.0))(typescript@5.3.3))(eslint@9.15.0(jiti@1.21.0))(typescript@5.3.3) + specifier: 'catalog:' + version: 8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.15.0(jiti@1.21.0))(typescript@5.3.3))(eslint@9.15.0(jiti@1.21.0))(typescript@5.3.3) '@typescript-eslint/parser': specifier: 'catalog:' - version: 6.21.0(eslint@9.15.0(jiti@1.21.0))(typescript@5.3.3) + version: 8.16.0(eslint@9.15.0(jiti@1.21.0))(typescript@5.3.3) '@urql/core': specifier: ^5.0.8 version: 5.0.8(graphql@16.8.1) @@ -208,8 +223,8 @@ importers: specifier: 'catalog:' version: 9.15.0(jiti@1.21.0) eslint-plugin-svelte: - specifier: ^2.45.1 - version: 2.46.0(eslint@9.15.0(jiti@1.21.0))(svelte@5.2.8) + specifier: 'catalog:' + version: 3.0.0-next.0(eslint@9.15.0(jiti@1.21.0))(svelte@5.2.8) globals: specifier: ^13.24.0 version: 13.24.0 @@ -235,8 +250,8 @@ importers: specifier: 'catalog:' version: 4.1.0(picomatch@4.0.2)(svelte@5.2.8)(typescript@5.3.3) svelte-eslint-parser: - specifier: ^0.43.0 - version: 0.43.0(svelte@5.2.8) + specifier: 'catalog:' + version: 1.0.0-next.0(svelte@5.2.8) svelte-preprocess: specifier: 'catalog:' version: 6.0.3(@babel/core@7.24.4)(postcss-load-config@6.0.1(jiti@1.21.0)(postcss@8.4.49))(postcss@8.4.49)(svelte@5.2.8)(typescript@5.3.3) @@ -331,6 +346,9 @@ importers: '@mdi/js': specifier: ^7.4.47 version: 7.4.47 + '@stylistic/eslint-plugin': + specifier: 'catalog:' + version: 2.11.0(eslint@9.15.0(jiti@1.21.0))(typescript@5.3.3) '@sveltejs/vite-plugin-svelte': specifier: ^4.0.2 version: 4.0.2(svelte@5.2.8)(vite@5.4.11(@types/node@22.7.3)) @@ -342,22 +360,28 @@ importers: version: 6.6.2 '@testing-library/svelte': specifier: ^5.2.6 - version: 5.2.6(svelte@5.2.8)(vite@5.4.11(@types/node@22.7.3))(vitest@2.1.5) + version: 5.2.6(svelte@5.2.8)(vite@5.4.11(@types/node@22.7.3))(vitest@2.1.5(@types/node@22.7.3)(@vitest/ui@2.1.5)(happy-dom@15.7.4)) '@testing-library/user-event': specifier: ^14.5.2 version: 14.5.2(@testing-library/dom@10.4.0) '@tsconfig/svelte': specifier: ^5.0.4 version: 5.0.4 + '@typescript-eslint/eslint-plugin': + specifier: 'catalog:' + version: 8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.15.0(jiti@1.21.0))(typescript@5.3.3))(eslint@9.15.0(jiti@1.21.0))(typescript@5.3.3) '@typescript-eslint/parser': specifier: 'catalog:' - version: 6.21.0(eslint@9.15.0(jiti@1.21.0))(typescript@5.3.3) + version: 8.16.0(eslint@9.15.0(jiti@1.21.0))(typescript@5.3.3) '@vitest/ui': specifier: 'catalog:' version: 2.1.5(vitest@2.1.5) eslint: specifier: 'catalog:' version: 9.15.0(jiti@1.21.0) + eslint-plugin-svelte: + specifier: 'catalog:' + version: 3.0.0-next.0(eslint@9.15.0(jiti@1.21.0))(svelte@5.2.8) happy-dom: specifier: ^15.7.4 version: 15.7.4 @@ -367,6 +391,9 @@ importers: svelte-check: specifier: 'catalog:' version: 4.1.0(picomatch@4.0.2)(svelte@5.2.8)(typescript@5.3.3) + svelte-eslint-parser: + specifier: 'catalog:' + version: 1.0.0-next.0(svelte@5.2.8) tailwindcss: specifier: 'catalog:' version: 3.4.3 @@ -435,12 +462,16 @@ packages: resolution: {integrity: sha512-0xZJFNE5XMpENsgfHYTw8FbX4kv53mFLn2i3XPoq69LyhYSCBJtitaHx9QnsVTrsogI4Z3+HtEfZ2/GFPOtf5g==} engines: {node: '>=6.9.0'} + '@babel/code-frame@7.26.2': + resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} + engines: {node: '>=6.9.0'} + '@babel/compat-data@7.23.5': resolution: {integrity: sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==} engines: {node: '>=6.9.0'} - '@babel/compat-data@7.25.8': - resolution: {integrity: sha512-ZsysZyXY4Tlx+Q53XdnOFmqwfB9QDTHYxaZYajWRoBLuLEAwI2UIbtxOjWh/cFaa9IKUlcB+DDuoskLuKu56JA==} + '@babel/compat-data@7.26.2': + resolution: {integrity: sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==} engines: {node: '>=6.9.0'} '@babel/core@7.24.4': @@ -455,8 +486,8 @@ packages: resolution: {integrity: sha512-Xd6+v6SnjWVx/nus+y0l1sxMOTOMBkyL4+BIdbALyatQnAe/SRVjANeDPSCYaX+i1iJmuGSKf3Z+E+V/va1Hvw==} engines: {node: '>=6.9.0'} - '@babel/generator@7.25.7': - resolution: {integrity: sha512-5Dqpl5fyV9pIAD62yK9P7fcA768uVPUyrQmqpqstHWgMma4feF1x/oFysBCVZLY5wJ2GkMUCdsNDnGZrPoR6rA==} + '@babel/generator@7.26.2': + resolution: {integrity: sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==} engines: {node: '>=6.9.0'} '@babel/helper-annotate-as-pure@7.22.5': @@ -467,8 +498,8 @@ packages: resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==} engines: {node: '>=6.9.0'} - '@babel/helper-compilation-targets@7.25.7': - resolution: {integrity: sha512-DniTEax0sv6isaw6qSQSfV4gVRNtw2rte8HHM45t9ZR0xILaufBRNkpMifCRiAPyvL4ACD6v0gfCwCmtOQaV4A==} + '@babel/helper-compilation-targets@7.25.9': + resolution: {integrity: sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==} engines: {node: '>=6.9.0'} '@babel/helper-create-class-features-plugin@7.23.10': @@ -497,8 +528,8 @@ packages: resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} engines: {node: '>=6.9.0'} - '@babel/helper-module-imports@7.25.7': - resolution: {integrity: sha512-o0xCgpNmRohmnoWKQ0Ij8IdddjyBFE4T2kagL/x6M3+4zUgc+4qTOUBoNe4XxDskt1HPKO007ZPiMgLDq2s7Kw==} + '@babel/helper-module-imports@7.25.9': + resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==} engines: {node: '>=6.9.0'} '@babel/helper-module-transforms@7.23.3': @@ -507,8 +538,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-module-transforms@7.25.7': - resolution: {integrity: sha512-k/6f8dKG3yDz/qCwSM+RKovjMix563SLxQFo0UhRNo239SP6n9u5/eLtKD6EAjwta2JHJ49CsD8pms2HdNiMMQ==} + '@babel/helper-module-transforms@7.26.0': + resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -531,10 +562,6 @@ packages: resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} engines: {node: '>=6.9.0'} - '@babel/helper-simple-access@7.25.7': - resolution: {integrity: sha512-FPGAkJmyoChQeM+ruBGIDyrT2tKfZJO8NcxdC+CWNJi7N8/rZpSxK7yvBJ5O/nF1gfu5KzN7VKG3YVSLFfRSxQ==} - engines: {node: '>=6.9.0'} - '@babel/helper-skip-transparent-expression-wrappers@7.22.5': resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} engines: {node: '>=6.9.0'} @@ -547,8 +574,8 @@ packages: resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==} engines: {node: '>=6.9.0'} - '@babel/helper-string-parser@7.25.7': - resolution: {integrity: sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g==} + '@babel/helper-string-parser@7.25.9': + resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} engines: {node: '>=6.9.0'} '@babel/helper-validator-identifier@7.22.20': @@ -559,20 +586,24 @@ packages: resolution: {integrity: sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==} engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@7.25.9': + resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} + engines: {node: '>=6.9.0'} + '@babel/helper-validator-option@7.23.5': resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-option@7.25.7': - resolution: {integrity: sha512-ytbPLsm+GjArDYXJ8Ydr1c/KJuutjF2besPNbIZnZ6MKUxi/uTA22t2ymmA4WFjZFpjiAMO0xuuJPqK2nvDVfQ==} + '@babel/helper-validator-option@7.25.9': + resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==} engines: {node: '>=6.9.0'} '@babel/helpers@7.24.4': resolution: {integrity: sha512-FewdlZbSiwaVGlgT1DPANDuCHaDMiOo+D/IDYRFYjHOuv66xMSJ7fQwwODwRNAPkADIO/z1EoF/l2BCWlWABDw==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.25.7': - resolution: {integrity: sha512-Sv6pASx7Esm38KQpF/U/OXLwPPrdGHNKoeblRxgZRLXnAtnkEe4ptJPDtAZM7fBLadbc1Q07kQpSiGQ0Jg6tRA==} + '@babel/helpers@7.26.0': + resolution: {integrity: sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==} engines: {node: '>=6.9.0'} '@babel/highlight@7.24.2': @@ -588,8 +619,8 @@ packages: engines: {node: '>=6.0.0'} hasBin: true - '@babel/parser@7.25.8': - resolution: {integrity: sha512-HcttkxzdPucv3nNFmfOOMfFf64KgdJVqm1KaCm25dPGMLElo9nsLvXeJECQg8UzPuBGLyTSA0ZzqCtDSzKTEoQ==} + '@babel/parser@7.26.2': + resolution: {integrity: sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==} engines: {node: '>=6.0.0'} hasBin: true @@ -763,24 +794,24 @@ packages: resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==} engines: {node: '>=6.9.0'} - '@babel/template@7.25.7': - resolution: {integrity: sha512-wRwtAgI3bAS+JGU2upWNL9lSlDcRCqD05BZ1n3X2ONLH1WilFP6O1otQjeMK/1g0pvYcXC7b/qVUB1keofjtZA==} + '@babel/template@7.25.9': + resolution: {integrity: sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==} engines: {node: '>=6.9.0'} '@babel/traverse@7.24.1': resolution: {integrity: sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.25.7': - resolution: {integrity: sha512-jatJPT1Zjqvh/1FyJs6qAHL+Dzb7sTb+xr7Q+gM1b+1oBsMsQQ4FkVKb6dFlJvLlVssqkRzV05Jzervt9yhnzg==} + '@babel/traverse@7.25.9': + resolution: {integrity: sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==} engines: {node: '>=6.9.0'} '@babel/types@7.24.0': resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==} engines: {node: '>=6.9.0'} - '@babel/types@7.25.8': - resolution: {integrity: sha512-JWtuCu8VQsMladxVz/P4HzHUGCAwpuqacmowgXFs5XjxIgKuNjnLokQzuVjlTvIzODaDmpjT3oxcC48vyk9EWg==} + '@babel/types@7.26.0': + resolution: {integrity: sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==} engines: {node: '>=6.9.0'} '@colors/colors@1.6.0': @@ -943,10 +974,6 @@ packages: peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - '@eslint-community/regexpp@4.10.0': - resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint-community/regexpp@4.12.1': resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} @@ -2108,6 +2135,12 @@ packages: '@selderee/plugin-htmlparser2@0.11.0': resolution: {integrity: sha512-P33hHGdldxGabLFjPPpaTxVolMrzrcegejx+0GxjrIb9Zv48D8yAIA/QTDR2dFl7Uz7urX8aX6+5bCZslr+gWQ==} + '@stylistic/eslint-plugin@2.11.0': + resolution: {integrity: sha512-PNRHbydNG5EH8NK4c+izdJlxajIR6GxcUhzsYNRsn6Myep4dsZt0qFCz3rCPnkvgO5FYibDcMqgNHUT+zvjYZw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: '>=8.40.0' + '@sveltejs/adapter-node@5.2.9': resolution: {integrity: sha512-51euNrx0AcaTu8//wDfVh7xmqQSVgU52rfinE/MwvGkJa4nHPJMHmzv6+OIpmxg7gZaF6+5NVlxnieCzxLD59g==} peerDependencies: @@ -2321,9 +2354,6 @@ packages: '@types/resolve@1.20.2': resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} - '@types/semver@7.5.6': - resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==} - '@types/send@0.17.4': resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} @@ -2354,63 +2384,67 @@ packages: '@types/zxcvbn@4.4.4': resolution: {integrity: sha512-Tuk4q7q0DnpzyJDI4aMeghGuFu2iS1QAdKpabn8JfbtfGmVDUgvZv1I7mEjP61Bvnp3ljKCC8BE6YYSTNxmvRQ==} - '@typescript-eslint/eslint-plugin@6.21.0': - resolution: {integrity: sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==} - engines: {node: ^16.0.0 || >=18.0.0} + '@typescript-eslint/eslint-plugin@8.16.0': + resolution: {integrity: sha512-5YTHKV8MYlyMI6BaEG7crQ9BhSc8RxzshOReKwZwRWN0+XvvTOm+L/UYLCYxFpfwYuAAqhxiq4yae0CMFwbL7Q==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha - eslint: ^7.0.0 || ^8.0.0 + '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 + eslint: ^8.57.0 || ^9.0.0 typescript: '*' peerDependenciesMeta: typescript: optional: true - '@typescript-eslint/parser@6.21.0': - resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==} - engines: {node: ^16.0.0 || >=18.0.0} + '@typescript-eslint/parser@8.16.0': + resolution: {integrity: sha512-D7DbgGFtsqIPIFMPJwCad9Gfi/hC0PWErRRHFnaCWoEDYi5tQUDiJCTmGUbBiLzjqAck4KcXt9Ayj0CNlIrF+w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^7.0.0 || ^8.0.0 + eslint: ^8.57.0 || ^9.0.0 typescript: '*' peerDependenciesMeta: typescript: optional: true - '@typescript-eslint/scope-manager@6.21.0': - resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==} - engines: {node: ^16.0.0 || >=18.0.0} + '@typescript-eslint/scope-manager@8.16.0': + resolution: {integrity: sha512-mwsZWubQvBki2t5565uxF0EYvG+FwdFb8bMtDuGQLdCCnGPrDEDvm1gtfynuKlnpzeBRqdFCkMf9jg1fnAK8sg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@6.21.0': - resolution: {integrity: sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==} - engines: {node: ^16.0.0 || >=18.0.0} + '@typescript-eslint/type-utils@8.16.0': + resolution: {integrity: sha512-IqZHGG+g1XCWX9NyqnI/0CX5LL8/18awQqmkZSl2ynn8F76j579dByc0jhfVSnSnhf7zv76mKBQv9HQFKvDCgg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^7.0.0 || ^8.0.0 + eslint: ^8.57.0 || ^9.0.0 typescript: '*' peerDependenciesMeta: typescript: optional: true - '@typescript-eslint/types@6.21.0': - resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==} - engines: {node: ^16.0.0 || >=18.0.0} + '@typescript-eslint/types@8.16.0': + resolution: {integrity: sha512-NzrHj6thBAOSE4d9bsuRNMvk+BvaQvmY4dDglgkgGC0EW/tB3Kelnp3tAKH87GEwzoxgeQn9fNGRyFJM/xd+GQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@6.21.0': - resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} - engines: {node: ^16.0.0 || >=18.0.0} + '@typescript-eslint/typescript-estree@8.16.0': + resolution: {integrity: sha512-E2+9IzzXMc1iaBy9zmo+UYvluE3TW7bCGWSF41hVWUE01o8nzr1rvOQYSxelxr6StUvRcTMe633eY8mXASMaNw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' peerDependenciesMeta: typescript: optional: true - '@typescript-eslint/utils@6.21.0': - resolution: {integrity: sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==} - engines: {node: ^16.0.0 || >=18.0.0} + '@typescript-eslint/utils@8.16.0': + resolution: {integrity: sha512-C1zRy/mOL8Pj157GiX4kaw7iyRLKfJXBR3L82hk5kS/GyHcOFmy4YUq/zfZti72I9wnuQtA/+xzft4wCC8PJdA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^7.0.0 || ^8.0.0 + eslint: ^8.57.0 || ^9.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true - '@typescript-eslint/visitor-keys@6.21.0': - resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==} - engines: {node: ^16.0.0 || >=18.0.0} + '@typescript-eslint/visitor-keys@8.16.0': + resolution: {integrity: sha512-pq19gbaMOmFE3CbL0ZB8J8BFCo2ckfHBfaIsaOZgBIF4EoISJIdLX5xRhd0FGB0LlHReNRuzoJoMGpTjq8F2CQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@ungap/structured-clone@1.2.0': resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} @@ -2716,8 +2750,8 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true - browserslist@4.24.0: - resolution: {integrity: sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==} + browserslist@4.24.2: + resolution: {integrity: sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -2769,8 +2803,8 @@ packages: caniuse-lite@1.0.30001633: resolution: {integrity: sha512-6sT0yf/z5jqf8tISAgpJDrmwOpLsrpnyCdD/lOZKvKkkJK4Dn0X5i7KF7THEZhOq+30bmhwBlNEaqPUiHiKtZg==} - caniuse-lite@1.0.30001668: - resolution: {integrity: sha512-nWLrdxqCdblixUO+27JtGJJE/txpJlyUy5YN1u53wLZkP0emYCo5zgS6QYft7VUYR42LGgi/S5hdLZTrnyIddw==} + caniuse-lite@1.0.30001684: + resolution: {integrity: sha512-G1LRwLIQjBQoyq0ZJGqGIJUXzJ8irpbjHLpVRXDvBEScFJ9b17sgK6vlx0GAJFE21okD7zXl08rRRUfq6HdoEQ==} capital-case@1.0.4: resolution: {integrity: sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==} @@ -3226,8 +3260,8 @@ packages: electron-to-chromium@1.4.801: resolution: {integrity: sha512-PnlUz15ii38MZMD2/CEsAzyee8tv9vFntX5nhtd2/4tv4HqY7C5q2faUAjmkXS/UFpVooJ/5H6kayRKYWoGMXQ==} - electron-to-chromium@1.5.38: - resolution: {integrity: sha512-VbeVexmZ1IFh+5EfrYz1I0HTzHVIlJa112UEWhciPyeOcKJGeTv6N8WnG4wsQB81DGCaVEGhpSb6o6a8WYFXXg==} + electron-to-chromium@1.5.66: + resolution: {integrity: sha512-pI2QF6+i+zjPbqRzJwkMvtvkdI7MjVbSh2g8dlMguDJIXEPw+kwasS1Jl+YGPEBfGVxsVgGUratAKymPdPo2vQ==} emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -3296,15 +3330,15 @@ packages: resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} engines: {node: '>=12'} - eslint-compat-utils@0.5.1: - resolution: {integrity: sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==} + eslint-compat-utils@0.6.4: + resolution: {integrity: sha512-/u+GQt8NMfXO8w17QendT4gvO5acfxQsAKirAt0LVxDnr2N8YLCVbregaNc/Yhp7NM128DwCaRvr8PLDfeNkQw==} engines: {node: '>=12'} peerDependencies: eslint: '>=6.0.0' - eslint-plugin-svelte@2.46.0: - resolution: {integrity: sha512-1A7iEMkzmCZ9/Iz+EAfOGYL8IoIG6zeKEq1SmpxGeM5SXmoQq+ZNnCpXFVJpsxPWYx8jIVGMerQMzX20cqUl0g==} - engines: {node: ^14.17.0 || >=16.0.0} + eslint-plugin-svelte@3.0.0-next.0: + resolution: {integrity: sha512-qEVkyGEpYy5QyN3jEC8hI7indPBcSQu/mnk6iWqk3hJBIwAra29WcC4+m2ukmADuoyHuM8DSqH+7y9J5nGx6Kg==} + engines: {node: ^18.20.4 || ^20.18.0 || >=22.10.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0-0 || ^9.0.0-0 svelte: ^3.37.0 || ^4.0.0 || ^5.0.0 @@ -4373,6 +4407,10 @@ packages: resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} engines: {node: '>=16 || 14 >=14.17'} + minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + engines: {node: '>=16 || 14 >=14.17'} + minipass@7.0.4: resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} engines: {node: '>=16 || 14 >=14.17'} @@ -4863,8 +4901,8 @@ packages: resolution: {integrity: sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==} engines: {node: '>=4'} - postcss-selector-parser@6.1.2: - resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} + postcss-selector-parser@7.0.0: + resolution: {integrity: sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==} engines: {node: '>=4'} postcss-value-parser@4.2.0: @@ -5304,9 +5342,9 @@ packages: svelte: ^4.0.0 || ^5.0.0-next.0 typescript: '>=5.0.0' - svelte-eslint-parser@0.43.0: - resolution: {integrity: sha512-GpU52uPKKcVnh8tKN5P4UZpJ/fUDndmq7wfsvoVXsyP+aY0anol7Yqo01fyrlaWGMFfm4av5DyrjlaXdLRJvGA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + svelte-eslint-parser@1.0.0-next.0: + resolution: {integrity: sha512-GiMS3nW97oTIFlErVRbEDv/gfHtnBfBbd4Imu+RuBLdZP7cSLm6uIgMf2TSXvM4kmYHrv/sBqVCKQngYdZfeNQ==} + engines: {node: ^18.20.4 || ^20.18.0 || >=22.10.0} peerDependencies: svelte: ^3.37.0 || ^4.0.0 || ^5.0.0 peerDependenciesMeta: @@ -5491,12 +5529,6 @@ packages: trough@2.1.0: resolution: {integrity: sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==} - ts-api-utils@1.0.3: - resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==} - engines: {node: '>=16.13.0'} - peerDependencies: - typescript: '>=4.2.0' - ts-api-utils@1.3.0: resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} engines: {node: '>=16'} @@ -5979,9 +6011,16 @@ snapshots: '@babel/highlight': 7.25.7 picocolors: 1.1.0 + '@babel/code-frame@7.26.2': + dependencies: + '@babel/helper-validator-identifier': 7.25.9 + js-tokens: 4.0.0 + picocolors: 1.1.1 + optional: true + '@babel/compat-data@7.23.5': {} - '@babel/compat-data@7.25.8': + '@babel/compat-data@7.26.2': optional: true '@babel/core@7.24.4': @@ -6007,15 +6046,15 @@ snapshots: '@babel/core@7.24.7': dependencies: '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.25.7 - '@babel/generator': 7.25.7 - '@babel/helper-compilation-targets': 7.25.7 - '@babel/helper-module-transforms': 7.25.7(@babel/core@7.24.7) - '@babel/helpers': 7.25.7 - '@babel/parser': 7.25.8 - '@babel/template': 7.25.7 - '@babel/traverse': 7.25.7 - '@babel/types': 7.25.8 + '@babel/code-frame': 7.26.2 + '@babel/generator': 7.26.2 + '@babel/helper-compilation-targets': 7.25.9 + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.24.7) + '@babel/helpers': 7.26.0 + '@babel/parser': 7.26.2 + '@babel/template': 7.25.9 + '@babel/traverse': 7.25.9 + '@babel/types': 7.26.0 convert-source-map: 2.0.0 debug: 4.3.7 gensync: 1.0.0-beta.2 @@ -6032,9 +6071,10 @@ snapshots: '@jridgewell/trace-mapping': 0.3.25 jsesc: 2.5.2 - '@babel/generator@7.25.7': + '@babel/generator@7.26.2': dependencies: - '@babel/types': 7.25.8 + '@babel/parser': 7.26.2 + '@babel/types': 7.26.0 '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 jsesc: 3.0.2 @@ -6052,11 +6092,11 @@ snapshots: lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-compilation-targets@7.25.7': + '@babel/helper-compilation-targets@7.25.9': dependencies: - '@babel/compat-data': 7.25.8 - '@babel/helper-validator-option': 7.25.7 - browserslist: 4.24.0 + '@babel/compat-data': 7.26.2 + '@babel/helper-validator-option': 7.25.9 + browserslist: 4.24.2 lru-cache: 5.1.1 semver: 6.3.1 optional: true @@ -6093,10 +6133,10 @@ snapshots: dependencies: '@babel/types': 7.24.0 - '@babel/helper-module-imports@7.25.7': + '@babel/helper-module-imports@7.25.9': dependencies: - '@babel/traverse': 7.25.7 - '@babel/types': 7.25.8 + '@babel/traverse': 7.25.9 + '@babel/types': 7.26.0 transitivePeerDependencies: - supports-color optional: true @@ -6110,13 +6150,12 @@ snapshots: '@babel/helper-split-export-declaration': 7.22.6 '@babel/helper-validator-identifier': 7.22.20 - '@babel/helper-module-transforms@7.25.7(@babel/core@7.24.7)': + '@babel/helper-module-transforms@7.26.0(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 - '@babel/helper-module-imports': 7.25.7 - '@babel/helper-simple-access': 7.25.7 - '@babel/helper-validator-identifier': 7.25.7 - '@babel/traverse': 7.25.7 + '@babel/helper-module-imports': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 + '@babel/traverse': 7.25.9 transitivePeerDependencies: - supports-color optional: true @@ -6138,14 +6177,6 @@ snapshots: dependencies: '@babel/types': 7.24.0 - '@babel/helper-simple-access@7.25.7': - dependencies: - '@babel/traverse': 7.25.7 - '@babel/types': 7.25.8 - transitivePeerDependencies: - - supports-color - optional: true - '@babel/helper-skip-transparent-expression-wrappers@7.22.5': dependencies: '@babel/types': 7.24.0 @@ -6156,16 +6187,19 @@ snapshots: '@babel/helper-string-parser@7.24.1': {} - '@babel/helper-string-parser@7.25.7': + '@babel/helper-string-parser@7.25.9': optional: true '@babel/helper-validator-identifier@7.22.20': {} '@babel/helper-validator-identifier@7.25.7': {} + '@babel/helper-validator-identifier@7.25.9': + optional: true + '@babel/helper-validator-option@7.23.5': {} - '@babel/helper-validator-option@7.25.7': + '@babel/helper-validator-option@7.25.9': optional: true '@babel/helpers@7.24.4': @@ -6176,10 +6210,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helpers@7.25.7': + '@babel/helpers@7.26.0': dependencies: - '@babel/template': 7.25.7 - '@babel/types': 7.25.8 + '@babel/template': 7.25.9 + '@babel/types': 7.26.0 optional: true '@babel/highlight@7.24.2': @@ -6200,9 +6234,9 @@ snapshots: dependencies: '@babel/types': 7.24.0 - '@babel/parser@7.25.8': + '@babel/parser@7.26.2': dependencies: - '@babel/types': 7.25.8 + '@babel/types': 7.26.0 optional: true '@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.24.4)': @@ -6375,11 +6409,11 @@ snapshots: '@babel/parser': 7.24.4 '@babel/types': 7.24.0 - '@babel/template@7.25.7': + '@babel/template@7.25.9': dependencies: - '@babel/code-frame': 7.25.7 - '@babel/parser': 7.25.8 - '@babel/types': 7.25.8 + '@babel/code-frame': 7.26.2 + '@babel/parser': 7.26.2 + '@babel/types': 7.26.0 optional: true '@babel/traverse@7.24.1': @@ -6397,13 +6431,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/traverse@7.25.7': + '@babel/traverse@7.25.9': dependencies: - '@babel/code-frame': 7.25.7 - '@babel/generator': 7.25.7 - '@babel/parser': 7.25.8 - '@babel/template': 7.25.7 - '@babel/types': 7.25.8 + '@babel/code-frame': 7.26.2 + '@babel/generator': 7.26.2 + '@babel/parser': 7.26.2 + '@babel/template': 7.25.9 + '@babel/types': 7.26.0 debug: 4.3.7 globals: 11.12.0 transitivePeerDependencies: @@ -6416,11 +6450,10 @@ snapshots: '@babel/helper-validator-identifier': 7.22.20 to-fast-properties: 2.0.0 - '@babel/types@7.25.8': + '@babel/types@7.26.0': dependencies: - '@babel/helper-string-parser': 7.25.7 - '@babel/helper-validator-identifier': 7.25.7 - to-fast-properties: 2.0.0 + '@babel/helper-string-parser': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 optional: true '@colors/colors@1.6.0': {} @@ -6535,8 +6568,6 @@ snapshots: eslint: 9.15.0(jiti@1.21.0) eslint-visitor-keys: 3.4.3 - '@eslint-community/regexpp@4.10.0': {} - '@eslint-community/regexpp@4.12.1': {} '@eslint/config-array@0.19.0': @@ -8177,6 +8208,18 @@ snapshots: domhandler: 5.0.3 selderee: 0.11.0 + '@stylistic/eslint-plugin@2.11.0(eslint@9.15.0(jiti@1.21.0))(typescript@5.3.3)': + dependencies: + '@typescript-eslint/utils': 8.16.0(eslint@9.15.0(jiti@1.21.0))(typescript@5.3.3) + eslint: 9.15.0(jiti@1.21.0) + eslint-visitor-keys: 4.2.0 + espree: 10.3.0 + estraverse: 5.3.0 + picomatch: 4.0.2 + transitivePeerDependencies: + - supports-color + - typescript + '@sveltejs/adapter-node@5.2.9(@sveltejs/kit@2.8.4(@sveltejs/vite-plugin-svelte@4.0.2(svelte@5.2.8)(vite@5.4.11(@types/node@20.12.12)))(svelte@5.2.8)(vite@5.4.11(@types/node@20.12.12)))': dependencies: '@rollup/plugin-commonjs': 28.0.1(rollup@4.24.0) @@ -8303,7 +8346,7 @@ snapshots: lodash: 4.17.21 redent: 3.0.0 - '@testing-library/svelte@5.2.6(svelte@5.2.8)(vite@5.4.11(@types/node@22.7.3))(vitest@2.1.5)': + '@testing-library/svelte@5.2.6(svelte@5.2.8)(vite@5.4.11(@types/node@22.7.3))(vitest@2.1.5(@types/node@22.7.3)(@vitest/ui@2.1.5)(happy-dom@15.7.4))': dependencies: '@testing-library/dom': 10.4.0 svelte: 5.2.8 @@ -8469,8 +8512,6 @@ snapshots: '@types/resolve@1.20.2': {} - '@types/semver@7.5.6': {} - '@types/send@0.17.4': dependencies: '@types/mime': 1.3.5 @@ -8504,32 +8545,30 @@ snapshots: '@types/zxcvbn@4.4.4': {} - '@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@9.15.0(jiti@1.21.0))(typescript@5.3.3))(eslint@9.15.0(jiti@1.21.0))(typescript@5.3.3)': + '@typescript-eslint/eslint-plugin@8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.15.0(jiti@1.21.0))(typescript@5.3.3))(eslint@9.15.0(jiti@1.21.0))(typescript@5.3.3)': dependencies: - '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 6.21.0(eslint@9.15.0(jiti@1.21.0))(typescript@5.3.3) - '@typescript-eslint/scope-manager': 6.21.0 - '@typescript-eslint/type-utils': 6.21.0(eslint@9.15.0(jiti@1.21.0))(typescript@5.3.3) - '@typescript-eslint/utils': 6.21.0(eslint@9.15.0(jiti@1.21.0))(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.21.0 - debug: 4.3.4 + '@eslint-community/regexpp': 4.12.1 + '@typescript-eslint/parser': 8.16.0(eslint@9.15.0(jiti@1.21.0))(typescript@5.3.3) + '@typescript-eslint/scope-manager': 8.16.0 + '@typescript-eslint/type-utils': 8.16.0(eslint@9.15.0(jiti@1.21.0))(typescript@5.3.3) + '@typescript-eslint/utils': 8.16.0(eslint@9.15.0(jiti@1.21.0))(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 8.16.0 eslint: 9.15.0(jiti@1.21.0) graphemer: 1.4.0 ignore: 5.3.1 natural-compare: 1.4.0 - semver: 7.5.4 - ts-api-utils: 1.0.3(typescript@5.3.3) + ts-api-utils: 1.3.0(typescript@5.3.3) optionalDependencies: typescript: 5.3.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@6.21.0(eslint@9.15.0(jiti@1.21.0))(typescript@5.3.3)': + '@typescript-eslint/parser@8.16.0(eslint@9.15.0(jiti@1.21.0))(typescript@5.3.3)': dependencies: - '@typescript-eslint/scope-manager': 6.21.0 - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.21.0 + '@typescript-eslint/scope-manager': 8.16.0 + '@typescript-eslint/types': 8.16.0 + '@typescript-eslint/typescript-estree': 8.16.0(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 8.16.0 debug: 4.3.7 eslint: 9.15.0(jiti@1.21.0) optionalDependencies: @@ -8537,33 +8576,33 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@6.21.0': + '@typescript-eslint/scope-manager@8.16.0': dependencies: - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/visitor-keys': 6.21.0 + '@typescript-eslint/types': 8.16.0 + '@typescript-eslint/visitor-keys': 8.16.0 - '@typescript-eslint/type-utils@6.21.0(eslint@9.15.0(jiti@1.21.0))(typescript@5.3.3)': + '@typescript-eslint/type-utils@8.16.0(eslint@9.15.0(jiti@1.21.0))(typescript@5.3.3)': dependencies: - '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.3.3) - '@typescript-eslint/utils': 6.21.0(eslint@9.15.0(jiti@1.21.0))(typescript@5.3.3) - debug: 4.3.4 + '@typescript-eslint/typescript-estree': 8.16.0(typescript@5.3.3) + '@typescript-eslint/utils': 8.16.0(eslint@9.15.0(jiti@1.21.0))(typescript@5.3.3) + debug: 4.3.7 eslint: 9.15.0(jiti@1.21.0) - ts-api-utils: 1.0.3(typescript@5.3.3) + ts-api-utils: 1.3.0(typescript@5.3.3) optionalDependencies: typescript: 5.3.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/types@6.21.0': {} + '@typescript-eslint/types@8.16.0': {} - '@typescript-eslint/typescript-estree@6.21.0(typescript@5.3.3)': + '@typescript-eslint/typescript-estree@8.16.0(typescript@5.3.3)': dependencies: - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/visitor-keys': 6.21.0 + '@typescript-eslint/types': 8.16.0 + '@typescript-eslint/visitor-keys': 8.16.0 debug: 4.3.7 - globby: 11.1.0 + fast-glob: 3.3.2 is-glob: 4.0.3 - minimatch: 9.0.3 + minimatch: 9.0.5 semver: 7.6.2 ts-api-utils: 1.3.0(typescript@5.3.3) optionalDependencies: @@ -8571,24 +8610,22 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@6.21.0(eslint@9.15.0(jiti@1.21.0))(typescript@5.3.3)': + '@typescript-eslint/utils@8.16.0(eslint@9.15.0(jiti@1.21.0))(typescript@5.3.3)': dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@9.15.0(jiti@1.21.0)) - '@types/json-schema': 7.0.15 - '@types/semver': 7.5.6 - '@typescript-eslint/scope-manager': 6.21.0 - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.3.3) + '@typescript-eslint/scope-manager': 8.16.0 + '@typescript-eslint/types': 8.16.0 + '@typescript-eslint/typescript-estree': 8.16.0(typescript@5.3.3) eslint: 9.15.0(jiti@1.21.0) - semver: 7.5.4 + optionalDependencies: + typescript: 5.3.3 transitivePeerDependencies: - supports-color - - typescript - '@typescript-eslint/visitor-keys@6.21.0': + '@typescript-eslint/visitor-keys@8.16.0': dependencies: - '@typescript-eslint/types': 6.21.0 - eslint-visitor-keys: 3.4.3 + '@typescript-eslint/types': 8.16.0 + eslint-visitor-keys: 4.2.0 '@ungap/structured-clone@1.2.0': {} @@ -8733,10 +8770,6 @@ snapshots: dependencies: acorn: 8.13.0 - acorn-jsx@5.3.2(acorn@8.13.0): - dependencies: - acorn: 8.13.0 - acorn-jsx@5.3.2(acorn@8.14.0): dependencies: acorn: 8.14.0 @@ -8951,12 +8984,12 @@ snapshots: node-releases: 2.0.14 update-browserslist-db: 1.0.16(browserslist@4.23.1) - browserslist@4.24.0: + browserslist@4.24.2: dependencies: - caniuse-lite: 1.0.30001668 - electron-to-chromium: 1.5.38 + caniuse-lite: 1.0.30001684 + electron-to-chromium: 1.5.66 node-releases: 2.0.18 - update-browserslist-db: 1.1.1(browserslist@4.24.0) + update-browserslist-db: 1.1.1(browserslist@4.24.2) optional: true bser@2.1.1: @@ -9004,7 +9037,7 @@ snapshots: caniuse-lite@1.0.30001633: {} - caniuse-lite@1.0.30001668: + caniuse-lite@1.0.30001684: optional: true capital-case@1.0.4: @@ -9495,7 +9528,7 @@ snapshots: electron-to-chromium@1.4.801: {} - electron-to-chromium@1.5.38: + electron-to-chromium@1.5.66: optional: true emoji-regex@8.0.0: {} @@ -9561,25 +9594,25 @@ snapshots: escape-string-regexp@5.0.0: {} - eslint-compat-utils@0.5.1(eslint@9.15.0(jiti@1.21.0)): + eslint-compat-utils@0.6.4(eslint@9.15.0(jiti@1.21.0)): dependencies: eslint: 9.15.0(jiti@1.21.0) semver: 7.6.2 - eslint-plugin-svelte@2.46.0(eslint@9.15.0(jiti@1.21.0))(svelte@5.2.8): + eslint-plugin-svelte@3.0.0-next.0(eslint@9.15.0(jiti@1.21.0))(svelte@5.2.8): dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@9.15.0(jiti@1.21.0)) '@jridgewell/sourcemap-codec': 1.5.0 eslint: 9.15.0(jiti@1.21.0) - eslint-compat-utils: 0.5.1(eslint@9.15.0(jiti@1.21.0)) + eslint-compat-utils: 0.6.4(eslint@9.15.0(jiti@1.21.0)) esutils: 2.0.3 known-css-properties: 0.35.0 postcss: 8.4.49 postcss-load-config: 3.1.4(postcss@8.4.49) postcss-safe-parser: 6.0.0(postcss@8.4.49) - postcss-selector-parser: 6.1.2 + postcss-selector-parser: 7.0.0 semver: 7.6.2 - svelte-eslint-parser: 0.43.0(svelte@5.2.8) + svelte-eslint-parser: 1.0.0-next.0(svelte@5.2.8) optionalDependencies: svelte: 5.2.8 transitivePeerDependencies: @@ -9650,8 +9683,8 @@ snapshots: espree@9.6.1: dependencies: - acorn: 8.13.0 - acorn-jsx: 5.3.2(acorn@8.13.0) + acorn: 8.14.0 + acorn-jsx: 5.3.2(acorn@8.14.0) eslint-visitor-keys: 3.4.3 esquery@1.5.0: @@ -10852,6 +10885,10 @@ snapshots: dependencies: brace-expansion: 2.0.1 + minimatch@9.0.5: + dependencies: + brace-expansion: 2.0.1 + minipass@7.0.4: {} mjml-accordion@4.15.3: @@ -11502,7 +11539,7 @@ snapshots: cssesc: 3.0.0 util-deprecate: 1.0.2 - postcss-selector-parser@6.1.2: + postcss-selector-parser@7.0.0: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 @@ -11978,7 +12015,7 @@ snapshots: transitivePeerDependencies: - picomatch - svelte-eslint-parser@0.43.0(svelte@5.2.8): + svelte-eslint-parser@1.0.0-next.0(svelte@5.2.8): dependencies: eslint-scope: 7.2.2 eslint-visitor-keys: 3.4.3 @@ -12081,7 +12118,7 @@ snapshots: svelte@4.2.19: dependencies: '@ampproject/remapping': 2.3.0 - '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/sourcemap-codec': 1.5.0 '@jridgewell/trace-mapping': 0.3.25 '@types/estree': 1.0.6 acorn: 8.11.3 @@ -12231,10 +12268,6 @@ snapshots: trough@2.1.0: {} - ts-api-utils@1.0.3(typescript@5.3.3): - dependencies: - typescript: 5.3.3 - ts-api-utils@1.3.0(typescript@5.3.3): dependencies: typescript: 5.3.3 @@ -12362,9 +12395,9 @@ snapshots: escalade: 3.1.2 picocolors: 1.1.0 - update-browserslist-db@1.1.1(browserslist@4.24.0): + update-browserslist-db@1.1.1(browserslist@4.24.2): dependencies: - browserslist: 4.24.0 + browserslist: 4.24.2 escalade: 3.2.0 picocolors: 1.1.1 optional: true diff --git a/frontend/pnpm-workspace.yaml b/frontend/pnpm-workspace.yaml index 460f38549..68da8023c 100644 --- a/frontend/pnpm-workspace.yaml +++ b/frontend/pnpm-workspace.yaml @@ -14,4 +14,8 @@ catalog: eslint: ^9.15.0 vitest: ^2.1.5 "@vitest/ui": ^2.1.5 - "@typescript-eslint/parser": ^6.21.0 + "@typescript-eslint/eslint-plugin": "^8.16.0" + "@typescript-eslint/parser": ^8.16.0 + "eslint-plugin-svelte": "^3.0.0-next.0" + "svelte-eslint-parser": "^1.0.0-next.0" + "@stylistic/eslint-plugin": "^2.11.0" diff --git a/frontend/src/lib/email/emailRenderer.server.ts b/frontend/src/lib/email/emailRenderer.server.ts index 780b3aaf3..e3c8d1933 100644 --- a/frontend/src/lib/email/emailRenderer.server.ts +++ b/frontend/src/lib/email/emailRenderer.server.ts @@ -1,12 +1,11 @@ -import { parse } from 'svelte/compiler'; -import { render as svelte5Render } from 'svelte/server'; -import { walk } from 'estree-walker'; - -import type { Component } from 'svelte'; -import {EmailTemplate, type EmailTemplateProps} from '../../routes/email/emails'; -import { LOCALE_CONTEXT_KEY } from '$lib/i18n'; +import type {Component} from 'svelte'; +import type {EmailTemplateProps} from '../../routes/email/emails'; +import {LOCALE_CONTEXT_KEY} from '$lib/i18n'; import mjml2html from 'mjml'; -import { readable } from 'svelte/store'; +import {parse} from 'svelte/compiler'; +import {readable} from 'svelte/store'; +import {render as svelte5Render} from 'svelte/server'; +import {walk} from 'estree-walker'; type RenderResult = { head: string, html: string }; export type RenderEmailResult = { subject: string, html: string }; @@ -17,11 +16,11 @@ function getSubject(head: string): string { const {html} = parse(head, { filename: 'file.html', modern: false }); // CAUTION: modern: true will become default in Svelte 6, at which point the node.type below will change to RegularElement let subject: string | undefined; - // eslint-disable-next-line @typescript-eslint/no-unsafe-argument walk(html as Parameters[0], { enter(node, ..._) { if (node.type as string === 'Element' && 'name' in node && node.name === 'title') { if ('children' in node && Array.isArray(node.children)) + // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access subject = node.children?.[0].data as string; } } @@ -33,8 +32,7 @@ function getSubject(head: string): string { export function render(emailComponent: Component, props: EmailTemplateProps, userLocale: string): RenderEmailResult { const context = new Map([[LOCALE_CONTEXT_KEY, readable(userLocale)]]); - // eslint-disable-next-line - const result: RenderResult = svelte5Render((emailComponent as any), { props, context }); + const result: RenderResult = svelte5Render(emailComponent, { props, context }); const mjmlResult = mjml2html(result.html, { validationLevel: 'soft' }); if (mjmlResult.errors) { console.error(mjmlResult.errors); diff --git a/frontend/src/routes/email/+server.ts b/frontend/src/routes/email/+server.ts index 2017ed3ed..9875a7111 100644 --- a/frontend/src/routes/email/+server.ts +++ b/frontend/src/routes/email/+server.ts @@ -1,7 +1,7 @@ -import { render } from '$lib/email/emailRenderer.server'; -import { json } from '@sveltejs/kit'; -import type { RequestEvent } from './$types'; -import { componentMap, EmailTemplate, type EmailTemplateProps } from './emails'; +import {render} from '$lib/email/emailRenderer.server'; +import {json} from '@sveltejs/kit'; +import type {RequestEvent} from './$types'; +import {componentMap, EmailTemplate, type EmailTemplateProps} from './emails'; import type {Component} from 'svelte'; export async function POST(event: RequestEvent): Promise { @@ -22,5 +22,5 @@ export function GET(event: RequestEvent): Response { template: EmailTemplate.ForgotPassword, resetUrl: 'https://example.com/reset' }; - return json(render(componentMap[type] as unknown as any, props, event.locals.activeLocale)); + return json(render(componentMap[type] as unknown as Component, props, event.locals.activeLocale)); } diff --git a/frontend/src/routes/email/emails.ts b/frontend/src/routes/email/emails.ts index 451a1a4b4..0e1986e35 100644 --- a/frontend/src/routes/email/emails.ts +++ b/frontend/src/routes/email/emails.ts @@ -10,7 +10,6 @@ import UserAdded from '$lib/email/UserAdded.svelte'; import CreateAccountRequestOrg from '$lib/email/CreateAccountRequestOrg.svelte'; import CreateAccountRequestProject from '$lib/email/CreateAccountRequestProject.svelte'; - export const enum EmailTemplate { NewAdmin = 'NEW_ADMIN', ForgotPassword = 'FORGOT_PASSWORD', @@ -35,7 +34,7 @@ export const componentMap = { [EmailTemplate.CreateProjectRequest]: CreateProjectRequest, [EmailTemplate.ApproveProjectRequest]: ApproveProjectRequest, [EmailTemplate.UserAdded]: UserAdded, -} satisfies Record; +} as const; interface EmailTemplatePropsBase { template: T; diff --git a/frontend/viewer/eslint.config.js b/frontend/viewer/eslint.config.js index f6ce47c37..aa2274c28 100644 --- a/frontend/viewer/eslint.config.js +++ b/frontend/viewer/eslint.config.js @@ -1,5 +1,5 @@ -import { FlatCompat } from '@eslint/eslintrc'; -import { fileURLToPath } from 'url'; +import {FlatCompat} from '@eslint/eslintrc'; +import {fileURLToPath} from 'url'; import globals from 'globals'; import js from '@eslint/js'; import path from 'path'; @@ -25,7 +25,7 @@ export default [ // TypeScript and Svelte plugins don't seem to support the new config format yet // So, using backwards compatibility util: https://eslint.org/blog/2022/08/new-config-system-part-2/#backwards-compatibility-utility ...compat.config({ - plugins: ['@typescript-eslint'], + plugins: ['@typescript-eslint', '@stylistic'], extends: ['plugin:@typescript-eslint/recommended', 'plugin:@typescript-eslint/recommended-requiring-type-checking'], overrides: [ { @@ -79,7 +79,7 @@ export default [ 'format': ['camelCase', 'PascalCase'], } ], - '@typescript-eslint/quotes': ['error', 'single', { 'allowTemplateLiterals': true }], + '@stylistic/quotes': ['error', 'single', { 'allowTemplateLiterals': true }], '@typescript-eslint/no-unused-vars': [ 'error', { diff --git a/frontend/viewer/package.json b/frontend/viewer/package.json index b0dbbfdea..f73145928 100644 --- a/frontend/viewer/package.json +++ b/frontend/viewer/package.json @@ -37,12 +37,16 @@ "@testing-library/svelte": "^5.2.6", "@testing-library/user-event": "^14.5.2", "@tsconfig/svelte": "^5.0.4", + "@typescript-eslint/eslint-plugin": "catalog:", + "@stylistic/eslint-plugin": "catalog:", "@typescript-eslint/parser": "catalog:", "@vitest/ui": "catalog:", "eslint": "catalog:", + "eslint-plugin-svelte": "catalog:", "happy-dom": "^15.7.4", "svelte": "catalog:", "svelte-check": "catalog:", + "svelte-eslint-parser": "catalog:", "tailwindcss": "catalog:", "tslib": "catalog:", "tw-colors": "^3.3.1", From 7cae3a750e928785abe8c2400569c165fdf86bec Mon Sep 17 00:00:00 2001 From: Kevin Hahn Date: Mon, 2 Dec 2024 16:50:34 +0700 Subject: [PATCH 08/17] include pnpm-workspace as an install source for taskfile when running pnpm install --- frontend/Taskfile.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/frontend/Taskfile.yml b/frontend/Taskfile.yml index ead41d753..97a832f42 100644 --- a/frontend/Taskfile.yml +++ b/frontend/Taskfile.yml @@ -17,6 +17,7 @@ tasks: sources: - package.json - pnpm-lock.yaml + - pnpm-workspace.yaml cmds: - corepack enable || true - pnpm install From 24e515ac48655cb4539e6fa3488b27675753e989 Mon Sep 17 00:00:00 2001 From: Robin Munn Date: Tue, 3 Dec 2024 10:30:54 +0700 Subject: [PATCH 09/17] Better type for EmailTemplate component map --- frontend/src/routes/email/emails.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/frontend/src/routes/email/emails.ts b/frontend/src/routes/email/emails.ts index 0e1986e35..0e846ecfb 100644 --- a/frontend/src/routes/email/emails.ts +++ b/frontend/src/routes/email/emails.ts @@ -9,6 +9,7 @@ import ApproveProjectRequest from '$lib/email/ApproveProjectRequest.svelte'; import UserAdded from '$lib/email/UserAdded.svelte'; import CreateAccountRequestOrg from '$lib/email/CreateAccountRequestOrg.svelte'; import CreateAccountRequestProject from '$lib/email/CreateAccountRequestProject.svelte'; +import type {Component} from 'svelte'; export const enum EmailTemplate { NewAdmin = 'NEW_ADMIN', @@ -34,7 +35,8 @@ export const componentMap = { [EmailTemplate.CreateProjectRequest]: CreateProjectRequest, [EmailTemplate.ApproveProjectRequest]: ApproveProjectRequest, [EmailTemplate.UserAdded]: UserAdded, -} as const; +} satisfies Record>; +// Note: Foo means "Foo but I don't care what T is" and is apparently preferred over Foo in modern Typescript interface EmailTemplatePropsBase { template: T; From 1bd7706fae6122fd55973e641eb04678aaf653c2 Mon Sep 17 00:00:00 2001 From: Robin Munn Date: Tue, 3 Dec 2024 10:56:20 +0700 Subject: [PATCH 10/17] Make svelte-eslint-parser relax about self-closing tags --- frontend/eslint.config.js | 3 +++ frontend/svelte.config.js | 5 +++++ 2 files changed, 8 insertions(+) diff --git a/frontend/eslint.config.js b/frontend/eslint.config.js index c1b71ecc7..dffae623f 100644 --- a/frontend/eslint.config.js +++ b/frontend/eslint.config.js @@ -5,6 +5,7 @@ import js from '@eslint/js'; import path from 'path'; import svelteParser from 'svelte-eslint-parser'; import tsParser from '@typescript-eslint/parser'; +import svelteConfig from './svelte.config.js'; // mimic CommonJS variables const __filename = fileURLToPath(import.meta.url); @@ -108,6 +109,7 @@ export default [ 'svelte/no-store-async': 'error', 'svelte/require-store-reactive-access': 'error', 'svelte/mustache-spacing': 'error', + 'svelte/valid-compile' : 'warn', 'func-style': ['warn', 'declaration'], "no-restricted-imports": ["error", { "patterns": [{ @@ -124,6 +126,7 @@ export default [ project: true, tsconfigRootDir: __dirname, extraFileExtensions: ['.svelte'], // Yes, TS-Parser, relax when you're fed svelte files + svelteConfig: svelteConfig, }, globals: { ...globals.browser, diff --git a/frontend/svelte.config.js b/frontend/svelte.config.js index db1b6ab2c..63ec5cb7a 100644 --- a/frontend/svelte.config.js +++ b/frontend/svelte.config.js @@ -7,6 +7,11 @@ const config = { warningFilter: (warning) => warning.code != 'element_invalid_self_closing_tag', enableSourcemap: true }, + onwarn: (warning, handler) => { + // eslint-plugin-svelte needs its own warning filter, duplicating the one from compilerOptions + if (warning.code == 'element_invalid_self_closing_tag') return; + handler(warning); + }, kit: { version: { pollInterval: 0, From 5f372111694df7be8ef65789629d93d7c94f96df Mon Sep 17 00:00:00 2001 From: Robin Munn Date: Tue, 3 Dec 2024 11:19:13 +0700 Subject: [PATCH 11/17] Add component to encapsulate new-tab Markdown logic This allows us to do the renderer plugin typecast just once rather than everywhere the Markdown component is used. --- .../lib/components/Markdown/NewTabLinkMarkdown.svelte | 10 ++++++++++ frontend/src/lib/components/Markdown/index.ts | 1 + .../Projects/ProjectConfidentialityCombobox.svelte | 6 ++---- .../src/lib/components/Users/CreateUserModal.svelte | 10 +++------- frontend/src/lib/forms/Checkbox.svelte | 6 ++---- frontend/src/lib/forms/FormError.svelte | 6 ++---- frontend/src/lib/forms/FormField.svelte | 6 ++---- frontend/src/lib/forms/RadioButtonGroup.svelte | 6 ++---- .../project/[project_code]/OpenInFlexModal.svelte | 5 ++--- .../routes/(authenticated)/project/create/+page.svelte | 7 +++---- 10 files changed, 29 insertions(+), 34 deletions(-) create mode 100644 frontend/src/lib/components/Markdown/NewTabLinkMarkdown.svelte diff --git a/frontend/src/lib/components/Markdown/NewTabLinkMarkdown.svelte b/frontend/src/lib/components/Markdown/NewTabLinkMarkdown.svelte new file mode 100644 index 000000000..a8167cc33 --- /dev/null +++ b/frontend/src/lib/components/Markdown/NewTabLinkMarkdown.svelte @@ -0,0 +1,10 @@ + + + diff --git a/frontend/src/lib/components/Markdown/index.ts b/frontend/src/lib/components/Markdown/index.ts index 717ae5c56..9ece5f0ad 100644 --- a/frontend/src/lib/components/Markdown/index.ts +++ b/frontend/src/lib/components/Markdown/index.ts @@ -1 +1,2 @@ export { default as NewTabLinkRenderer } from './NewTabLinkRenderer.svelte'; +export { default as NewTabLinkMarkdown } from './NewTabLinkMarkdown.svelte'; diff --git a/frontend/src/lib/components/Projects/ProjectConfidentialityCombobox.svelte b/frontend/src/lib/components/Projects/ProjectConfidentialityCombobox.svelte index f1c3ffe5e..c76512e79 100644 --- a/frontend/src/lib/components/Projects/ProjectConfidentialityCombobox.svelte +++ b/frontend/src/lib/components/Projects/ProjectConfidentialityCombobox.svelte @@ -3,9 +3,7 @@ import Checkbox from '../../forms/Checkbox.svelte'; import { slide } from 'svelte/transition'; import { Icon } from '$lib/icons'; - import Markdown from 'svelte-exmarkdown'; - import { NewTabLinkRenderer } from '$lib/components/Markdown'; - import type {Component} from 'svelte'; + import {NewTabLinkMarkdown} from '$lib/components/Markdown'; export let value: boolean; @@ -22,6 +20,6 @@ {#if value}
- } }]} /> +
{/if} diff --git a/frontend/src/lib/components/Users/CreateUserModal.svelte b/frontend/src/lib/components/Users/CreateUserModal.svelte index 95c82c9cb..df5940bde 100644 --- a/frontend/src/lib/components/Users/CreateUserModal.svelte +++ b/frontend/src/lib/components/Users/CreateUserModal.svelte @@ -4,9 +4,7 @@ import { helpLinks } from '$lib/components/help'; import { type LexAuthUser, type RegisterResponse } from '$lib/user'; import CreateUser from '$lib/components/Users/CreateUser.svelte'; - import Markdown from 'svelte-exmarkdown'; - import { NewTabLinkRenderer } from '$lib/components/Markdown'; - import type {Component} from 'svelte'; + import {NewTabLinkMarkdown} from '$lib/components/Markdown'; import Icon from '$lib/icons/Icon.svelte'; import { createEventDispatcher } from 'svelte'; @@ -30,13 +28,11 @@

{$t('common.did_you_know')}

- } }]} /> - } }]} />
diff --git a/frontend/src/lib/forms/Checkbox.svelte b/frontend/src/lib/forms/Checkbox.svelte index 76a15f01b..507cb4f40 100644 --- a/frontend/src/lib/forms/Checkbox.svelte +++ b/frontend/src/lib/forms/Checkbox.svelte @@ -1,9 +1,7 @@ diff --git a/frontend/src/lib/i18n/index.ts b/frontend/src/lib/i18n/index.ts index 1963006b7..5979ed375 100644 --- a/frontend/src/lib/i18n/index.ts +++ b/frontend/src/lib/i18n/index.ts @@ -146,6 +146,7 @@ export function tScoped(scope: Scope): Readable<(key: D export function tTypeScoped(scope: I18nShapeKey): Readable<(key: DeepPathsToString, values?: InterpolationValues) => string> { return derived(t, tFunc => (key: DeepPathsToString, values?: InterpolationValues) => + // eslint-disable-next-line @typescript-eslint/no-base-to-string tFunc(`${String(scope)}.${String(key)}` as I18nKey, values)); } diff --git a/frontend/src/lib/layout/DevContent.svelte b/frontend/src/lib/layout/DevContent.svelte index e2de904f1..0c02949f8 100644 --- a/frontend/src/lib/layout/DevContent.svelte +++ b/frontend/src/lib/layout/DevContent.svelte @@ -9,6 +9,7 @@ if (browser) { globalThis.enableDevMode = (enable = true) => { isDev.set(enable); + // eslint-disable-next-line @typescript-eslint/no-unused-expressions enable ? localStorage.setItem('devMode', 'true') : localStorage.removeItem('devMode'); }; isDev.set(localStorage.getItem('devMode') === 'true'); diff --git a/frontend/src/lib/user.ts b/frontend/src/lib/user.ts index eb7ae5e8c..1616086ed 100644 --- a/frontend/src/lib/user.ts +++ b/frontend/src/lib/user.ts @@ -229,6 +229,7 @@ function stringToUuid(str: string): string { } export function logout(cookies?: Cookies): void { + // eslint-disable-next-line @typescript-eslint/no-unused-expressions cookies && deleteCookie(AUTH_COOKIE_NAME, cookies); if (browser && window.location.pathname !== '/login') { redirect(307, '/login'); diff --git a/frontend/src/routes/(authenticated)/project/[project_code]/+page.ts b/frontend/src/routes/(authenticated)/project/[project_code]/+page.ts index 01f535418..ff48501d2 100644 --- a/frontend/src/routes/(authenticated)/project/[project_code]/+page.ts +++ b/frontend/src/routes/(authenticated)/project/[project_code]/+page.ts @@ -609,6 +609,7 @@ export async function _refreshProjectRepoInfo(projectCode: string): Promise Date: Tue, 3 Dec 2024 12:35:12 +0700 Subject: [PATCH 13/17] Fix all but one lint error in viewer The remaining error is something we can't fix until we migrate our code to runes mode, so we'll turn it into a warning in a separate commit. --- frontend/viewer/src/FwDataWebComponent.svelte | 2 +- frontend/viewer/src/HomeView.svelte | 4 ++-- frontend/viewer/src/ProjectView.svelte | 6 +++++- frontend/viewer/src/WebComponent.svelte | 2 +- frontend/viewer/src/lib/SyncConfig.svelte | 1 - frontend/viewer/src/lib/about/AboutDialog.svelte | 2 +- frontend/viewer/src/lib/about/NewTabLinkRenderer.svelte | 2 +- frontend/viewer/src/lib/config-data.ts | 1 + .../src/lib/entry-editor/EntityListItemActions.svelte | 2 ++ .../viewer/src/lib/entry-editor/EntryOrSensePicker.svelte | 1 + .../entry-editor/field-editors/MultiOptionEditor.test.ts | 1 + .../viewer/src/lib/entry-editor/inputs/CrdtField.svelte | 1 + .../src/lib/entry-editor/inputs/CrdtMultiOptionField.svelte | 2 +- .../src/lib/entry-editor/inputs/CrdtOptionField.svelte | 2 +- .../viewer/src/lib/entry-editor/inputs/CrdtTextField.svelte | 2 +- frontend/viewer/src/lib/layout/DevContent.svelte | 1 + frontend/viewer/src/lib/layout/ViewOptionsDrawer.svelte | 4 ---- frontend/viewer/src/lib/utils/test-utils.ts | 2 +- 18 files changed, 22 insertions(+), 16 deletions(-) diff --git a/frontend/viewer/src/FwDataWebComponent.svelte b/frontend/viewer/src/FwDataWebComponent.svelte index 606efc44f..4b16fa2a8 100644 --- a/frontend/viewer/src/FwDataWebComponent.svelte +++ b/frontend/viewer/src/FwDataWebComponent.svelte @@ -39,7 +39,7 @@ - + {css} diff --git a/frontend/viewer/src/HomeView.svelte b/frontend/viewer/src/HomeView.svelte index 59d9c6b06..23b9315dc 100644 --- a/frontend/viewer/src/HomeView.svelte +++ b/frontend/viewer/src/HomeView.svelte @@ -12,7 +12,7 @@ import {links} from 'svelte-routing'; import {Button, Card, type ColumnDef, Table, TextField, tableCell, Icon, ProgressCircle} from 'svelte-ux'; import flexLogo from './lib/assets/flex-logo.png'; - import DevContent, {isDev} from './lib/layout/DevContent.svelte'; + import DevContent from './lib/layout/DevContent.svelte'; import {useProjectsService, type Project, type ServerStatus} from './lib/services/projects-service'; import {onMount} from 'svelte'; @@ -218,7 +218,7 @@ {/if}
{#each servers as server} -
+

{server.displayName}

diff --git a/frontend/viewer/src/ProjectView.svelte b/frontend/viewer/src/ProjectView.svelte index af535ba5e..952b88853 100644 --- a/frontend/viewer/src/ProjectView.svelte +++ b/frontend/viewer/src/ProjectView.svelte @@ -15,7 +15,7 @@ import type {IEntry} from './lib/mini-lcm'; import {onDestroy, onMount, setContext} from 'svelte'; import {derived, writable, type Readable} from 'svelte/store'; - import {deriveAsync, makeDebouncer} from './lib/utils/time'; + import {deriveAsync} from './lib/utils/time'; import { type LexboxPermissions, type LexboxFeatures} from './lib/config-types'; import ViewOptionsDrawer from './lib/layout/ViewOptionsDrawer.svelte'; import EntryList from './lib/layout/EntryList.svelte'; @@ -90,6 +90,7 @@ const location = useLocation(); $: { + // eslint-disable-next-line @typescript-eslint/no-unused-expressions $location; const searchParams = getSearchParams(); $search = searchParams.get(ViewerSearchParam.Search) ?? ''; @@ -150,12 +151,14 @@ // For some reason reactive syntax doesn't pick up every change, so we need to manually subscribe // and we need the extra call to updateEntryIdSearchParam in refreshSelection const unsubSelectedEntry = selectedEntry.subscribe(updateEntryIdSearchParam); + // eslint-disable-next-line @typescript-eslint/no-unused-expressions $: { pickedEntry; updateEntryIdSearchParam(); } function updateEntryIdSearchParam() { updateSearchParam(ViewerSearchParam.EntryId, navigateToEntryId ?? (pickedEntry ? $selectedEntry?.id : undefined), true); } $: { + // eslint-disable-next-line @typescript-eslint/no-unused-expressions $entries; refreshSelection(); } @@ -236,6 +239,7 @@ spaceForEditorStyle = `--space-for-editor: ${availableHeight}px`; }, 20, { leading: false, trailing: true }); + // eslint-disable-next-line @typescript-eslint/no-unused-expressions $: editorElem && updateSpaceForEditor(); onMount(() => { const abortController = new AbortController(); diff --git a/frontend/viewer/src/WebComponent.svelte b/frontend/viewer/src/WebComponent.svelte index 82fa73ada..5978e2341 100644 --- a/frontend/viewer/src/WebComponent.svelte +++ b/frontend/viewer/src/WebComponent.svelte @@ -38,7 +38,7 @@ - + {css} diff --git a/frontend/viewer/src/lib/SyncConfig.svelte b/frontend/viewer/src/lib/SyncConfig.svelte index b92793273..a48b5b77c 100644 --- a/frontend/viewer/src/lib/SyncConfig.svelte +++ b/frontend/viewer/src/lib/SyncConfig.svelte @@ -5,7 +5,6 @@ import {writable} from 'svelte/store'; import {type ServerStatus, useProjectsService} from './services/projects-service'; import {getContext} from 'svelte'; - import {AppNotification} from './notifications/notifications'; const projectsService = useProjectsService(); let projectName = getContext('project-name'); diff --git a/frontend/viewer/src/lib/about/AboutDialog.svelte b/frontend/viewer/src/lib/about/AboutDialog.svelte index 2ed39ca26..eff08038f 100644 --- a/frontend/viewer/src/lib/about/AboutDialog.svelte +++ b/frontend/viewer/src/lib/about/AboutDialog.svelte @@ -26,7 +26,7 @@
- } }]} /> +
diff --git a/frontend/viewer/src/lib/about/NewTabLinkRenderer.svelte b/frontend/viewer/src/lib/about/NewTabLinkRenderer.svelte index e1b72a91d..f3ff054b5 100644 --- a/frontend/viewer/src/lib/about/NewTabLinkRenderer.svelte +++ b/frontend/viewer/src/lib/about/NewTabLinkRenderer.svelte @@ -5,7 +5,7 @@ -   +