From 3e2f15a72c1173746af0bc02244e256220893ed8 Mon Sep 17 00:00:00 2001 From: jacob-8 Date: Thu, 29 Aug 2024 11:43:14 +0800 Subject: [PATCH 01/44] update lint, use kitbook lz-string --- .vscode/settings.json | 8 +- package.json | 14 +- packages/scripts/migrate-to-supabase/notes.md | 7 +- packages/scripts/package.json | 4 +- packages/site/package.json | 7 +- .../src/lib/components/SeoMetaTags.svelte | 4 +- .../src/lib/components/entry/EditField.svelte | 154 +- packages/site/src/routes/og/+server.ts | 19 +- .../site/src/routes/og/LoadOgImage.svelte | 35 +- pnpm-lock.yaml | 2175 ++++++++++------- 10 files changed, 1419 insertions(+), 1008 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index cfcb791c5..a46d384e9 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -33,9 +33,9 @@ }, // Silence stylistic rules in IDE, but still auto fix them "eslint.rules.customizations": [ - { "rule": "@stylistic/*", "severity": "off" }, - { "rule": "style*", "severity": "off" }, - { "rule": "*indent", "severity": "off" }, + { "rule": "style/*", "severity": "off" }, + { "rule": "format/*", "severity": "off" }, + { "rule": "*-indent", "severity": "off" }, { "rule": "*-spacing", "severity": "off" }, { "rule": "*-spaces", "severity": "off" }, { "rule": "*-order", "severity": "off" }, @@ -47,6 +47,7 @@ { "rule": "import/order", "severity": "off" }, { "rule": "sort-imports", "severity": "off" }, { "rule": "ts/no-empty-function", "severity": "off" }, + { "rule": "svelte/indent", "severity": "off" }, ], "eslint.validate": [ "javascript", @@ -59,7 +60,6 @@ "yaml", "toml", ], - "eslint.experimental.useFlatConfig": true, "unocss.root": "packages/site", diff --git a/package.json b/package.json index 44f50437e..ae28ffa44 100644 --- a/package.json +++ b/package.json @@ -23,14 +23,14 @@ "check-packages": "pnpm update --interactive --recursive --latest" }, "devDependencies": { - "@antfu/eslint-config": "^2.12.1", - "@typescript-eslint/eslint-plugin": "6.21.0", - "eslint": "^8.56.0", - "eslint-plugin-svelte": "^2.33.2", + "@antfu/eslint-config": "^2.27.3", + "@typescript-eslint/eslint-plugin": "8.3.0", + "eslint": "^9.9.1", + "eslint-plugin-svelte": "^2.43.0", "eslint-plugin-svelte-stylistic": "^0.0.4", - "lint-staged": "^13.2.2", - "simple-git-hooks": "^2.11.0", - "start-server-and-test": "^2.0.3", + "lint-staged": "^15.2.9", + "simple-git-hooks": "^2.11.1", + "start-server-and-test": "^2.0.5", "supabase": "^1.145.4", "svelte": "^4.2.12", "typescript": "~5.1.6", diff --git a/packages/scripts/migrate-to-supabase/notes.md b/packages/scripts/migrate-to-supabase/notes.md index 0547b9839..d2e77e269 100644 --- a/packages/scripts/migrate-to-supabase/notes.md +++ b/packages/scripts/migrate-to-supabase/notes.md @@ -10,18 +10,19 @@ - figure out how different user ids (creater of speaker) between Firestore and Firebase will be handled and document - run tests on migration - visual inspection of the results locally - should work similar to current prod - - update saving functions + - update saving functions << is a little big - make all types of edits - Run migration process below +- Handle clean-up below ## Migration Process - post notice on logged-in users a week ahead of time - send email notice a week ahead of time - Lock down Firestore dictionary words and speakers using security rules (tell admins not to edit anything) -- Make Supabase backup +- Make Supabase backup (manually trigger) - Migrate data - Test viewing -- Merge new saving methods code (this will be a natural unblock) +- Merge new saving methods code (this will be a natural unblock) and hide Algolia search results - Test editing entries - Remove notice - Email letting everyone know editing is available again diff --git a/packages/scripts/package.json b/packages/scripts/package.json index d63d83fd1..b778f53ce 100644 --- a/packages/scripts/package.json +++ b/packages/scripts/package.json @@ -35,7 +35,7 @@ "@living-dictionaries/types": "^1.0.0", "@supabase/supabase-js": "^2.38.4", "@types/node": "^18.11.18", - "@types/pg": "^8.10.9", + "@types/pg": "^8.11.8", "@types/stream-chain": "^2.1.0", "@types/stream-json": "^1.7.7", "algoliasearch": "^4.11.0", @@ -50,7 +50,7 @@ "pg": "^8.11.3", "stream-chain": "^2.2.5", "stream-json": "^1.8.0", - "tsx": "^4.7.1", + "tsx": "^4.19.0", "typescript": "~5.1.6", "vitest": "^1.4.0" } diff --git a/packages/site/package.json b/packages/site/package.json index 239fd22be..5f47aebf7 100644 --- a/packages/site/package.json +++ b/packages/site/package.json @@ -24,10 +24,10 @@ "local-sveltefirets": "link:../../../sveltefirets" }, "devDependencies": { - "@iconify/json": "^2.2.192", + "@iconify/json": "^2.2.242", "@julr/unocss-preset-forms": "^0.0.5", "@living-dictionaries/types": "workspace:^1.0.0", - "@orama/orama": "^2.0.11", + "@orama/orama": "^2.0.23", "@playwright/test": "1.41.2", "@resvg/resvg-js": "^2.2.0", "@sentry/browser": "^6.18.2", @@ -45,7 +45,7 @@ "@types/geojson": "^7946.0.10", "@types/mapbox-gl": "^2.7.6", "@types/mapbox__mapbox-gl-geocoder": "^4.7.3", - "@types/pg": "^8.10.9", + "@types/pg": "^8.11.8", "@types/recordrtc": "^5.6.10", "@unocss/preset-icons": "^0.58.5", "@unocss/svelte-scoped": "^0.58.5", @@ -63,7 +63,6 @@ "jszip": "^3.7.1", "kitbook": "1.0.0-beta.31", "logrocket": "^2.1.2", - "lz-string": "^1.4.4", "pg": "^8.11.3", "recordrtc": "^5.6.2", "satori": "^0.0.44", diff --git a/packages/site/src/lib/components/SeoMetaTags.svelte b/packages/site/src/lib/components/SeoMetaTags.svelte index cc841fc10..9f5065146 100644 --- a/packages/site/src/lib/components/SeoMetaTags.svelte +++ b/packages/site/src/lib/components/SeoMetaTags.svelte @@ -1,10 +1,8 @@ @@ -175,7 +175,7 @@ size="sm" form="simple" onclick={() => (value = italicizeSelection(inputEl))}>Italicize selection - {#if value.indexOf('') > -1} + {#if value.includes('')}
{@html sanitize(value)}
diff --git a/packages/site/src/routes/og/+server.ts b/packages/site/src/routes/og/+server.ts index 9f1f5f108..180ad2652 100644 --- a/packages/site/src/routes/og/+server.ts +++ b/packages/site/src/routes/og/+server.ts @@ -1,13 +1,12 @@ -import type { RequestHandler } from './$types'; -import { component_to_png } from './component-to-png'; -import OpenGraphImage from './OpenGraphImage.svelte'; -import LZString from 'lz-string'; -const { decompressFromEncodedURIComponent: decode } = LZString; +import { decompressFromEncodedURIComponent as decode } from 'kitbook' +import type { RequestHandler } from './$types' +import { component_to_png } from './component-to-png' +import OpenGraphImage from './OpenGraphImage.svelte' -const HEIGHT = 630; -const WIDTH = 1200; +const HEIGHT = 630 +const WIDTH = 1200 export const GET: RequestHandler = ({ url }) => { - const props = JSON.parse(decode(url.searchParams.get('props'))); - return component_to_png(OpenGraphImage, props, props.height || HEIGHT, props.width || WIDTH); -}; + const props = JSON.parse(decode(url.searchParams.get('props'))) + return component_to_png(OpenGraphImage, props, props.height || HEIGHT, props.width || WIDTH) +} diff --git a/packages/site/src/routes/og/LoadOgImage.svelte b/packages/site/src/routes/og/LoadOgImage.svelte index e0c34dc99..c9014bdf0 100644 --- a/packages/site/src/routes/og/LoadOgImage.svelte +++ b/packages/site/src/routes/og/LoadOgImage.svelte @@ -1,30 +1,29 @@ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7a26afba2..6392234e1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,29 +9,29 @@ importers: .: devDependencies: '@antfu/eslint-config': - specifier: ^2.12.1 - version: 2.12.1(@vue/compiler-sfc@3.4.21)(eslint-plugin-svelte@2.33.2(eslint@8.56.0)(svelte@4.2.12))(eslint@8.56.0)(svelte@4.2.12)(typescript@5.1.6)(vitest@1.4.0(@types/node@20.11.0)(@vitest/ui@1.4.0)) + specifier: ^2.27.3 + version: 2.27.3(@typescript-eslint/utils@8.3.0(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6))(@vue/compiler-sfc@3.4.21)(eslint-plugin-svelte@2.43.0(eslint@9.9.1(jiti@1.21.0))(svelte@4.2.12))(eslint@9.9.1(jiti@1.21.0))(svelte-eslint-parser@0.41.0(svelte@4.2.12))(svelte@4.2.12)(typescript@5.1.6)(vitest@1.4.0(@types/node@20.11.0)(@vitest/ui@1.4.0)) '@typescript-eslint/eslint-plugin': - specifier: 6.21.0 - version: 6.21.0(@typescript-eslint/parser@7.5.0(eslint@8.56.0)(typescript@5.1.6))(eslint@8.56.0)(typescript@5.1.6) + specifier: 8.3.0 + version: 8.3.0(@typescript-eslint/parser@8.3.0(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6))(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6) eslint: - specifier: ^8.56.0 - version: 8.56.0 + specifier: ^9.9.1 + version: 9.9.1(jiti@1.21.0) eslint-plugin-svelte: - specifier: ^2.33.2 - version: 2.33.2(eslint@8.56.0)(svelte@4.2.12) + specifier: ^2.43.0 + version: 2.43.0(eslint@9.9.1(jiti@1.21.0))(svelte@4.2.12) eslint-plugin-svelte-stylistic: specifier: ^0.0.4 - version: 0.0.4(eslint@8.56.0)(typescript@5.1.6) + version: 0.0.4(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6) lint-staged: - specifier: ^13.2.2 - version: 13.2.2 + specifier: ^15.2.9 + version: 15.2.9 simple-git-hooks: - specifier: ^2.11.0 - version: 2.11.0 + specifier: ^2.11.1 + version: 2.11.1 start-server-and-test: - specifier: ^2.0.3 - version: 2.0.3 + specifier: ^2.0.5 + version: 2.0.5 supabase: specifier: ^1.145.4 version: 1.145.4 @@ -94,8 +94,8 @@ importers: specifier: ^18.11.18 version: 18.11.18 '@types/pg': - specifier: ^8.10.9 - version: 8.10.9 + specifier: ^8.11.8 + version: 8.11.8 '@types/stream-chain': specifier: ^2.1.0 version: 2.1.0 @@ -139,8 +139,8 @@ importers: specifier: ^1.8.0 version: 1.8.0 tsx: - specifier: ^4.7.1 - version: 4.7.1 + specifier: ^4.19.0 + version: 4.19.0 typescript: specifier: ~5.1.6 version: 5.1.6 @@ -151,17 +151,17 @@ importers: packages/site: devDependencies: '@iconify/json': - specifier: ^2.2.192 - version: 2.2.192 + specifier: ^2.2.242 + version: 2.2.242 '@julr/unocss-preset-forms': specifier: ^0.0.5 - version: 0.0.5(unocss@0.58.5(postcss@8.4.37)(rollup@4.13.0)(vite@5.1.4(@types/node@20.11.0))) + version: 0.0.5(unocss@0.58.5(postcss@8.4.41)(rollup@4.13.0)(vite@5.1.4(@types/node@20.11.0))) '@living-dictionaries/types': specifier: workspace:^1.0.0 version: link:../types '@orama/orama': - specifier: ^2.0.11 - version: 2.0.11 + specifier: ^2.0.23 + version: 2.0.23 '@playwright/test': specifier: 1.41.2 version: 1.41.2 @@ -214,8 +214,8 @@ importers: specifier: ^4.7.3 version: 4.7.3 '@types/pg': - specifier: ^8.10.9 - version: 8.10.9 + specifier: ^8.11.8 + version: 8.11.8 '@types/recordrtc': specifier: ^5.6.10 version: 5.6.10 @@ -267,9 +267,6 @@ importers: logrocket: specifier: ^2.1.2 version: 2.2.1 - lz-string: - specifier: ^1.4.4 - version: 1.4.4 pg: specifier: ^8.11.3 version: 8.11.3 @@ -287,7 +284,7 @@ importers: version: 4.2.12 svelte-check: specifier: ^3.6.8 - version: 3.6.8(@babel/core@7.23.9)(postcss-load-config@3.1.4(postcss@8.4.37))(postcss@8.4.37)(svelte@4.2.12) + version: 3.6.8(@babel/core@7.23.9)(postcss-load-config@3.1.4(postcss@8.4.41))(postcss@8.4.41)(svelte@4.2.12) svelte-pieces: specifier: 2.0.0-next.14 version: 2.0.0-next.14(svelte@4.2.12) @@ -308,7 +305,7 @@ importers: version: 5.1.6 unocss: specifier: ^0.58.5 - version: 0.58.5(postcss@8.4.37)(rollup@4.13.0)(vite@5.1.4(@types/node@20.11.0)) + version: 0.58.5(postcss@8.4.41)(rollup@4.13.0)(vite@5.1.4(@types/node@20.11.0)) vite: specifier: ^5.1.4 version: 5.1.4(@types/node@20.11.0) @@ -389,23 +386,29 @@ packages: resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} engines: {node: '>=6.0.0'} - '@antfu/eslint-config@2.12.1': - resolution: {integrity: sha512-o0tTokP/qk7Hwsv14N+sr1DsF3bylZrJH9yWdY73A0wSHlomqy7W+v9lXjN23q3cwjLftNzujd6SXmWBgcpCLg==} + '@antfu/eslint-config@2.27.3': + resolution: {integrity: sha512-Y2Vh/LvPAaYoyLwCiZHJ7p76LEIGg6debeUA4Qs+KOrlGuXLQWRmdZlC6SB33UDNzXqkFeaXAlEcYUqvYoiMKA==} hasBin: true peerDependencies: + '@eslint-react/eslint-plugin': ^1.5.8 + '@prettier/plugin-xml': ^3.4.1 '@unocss/eslint-plugin': '>=0.50.0' - astro-eslint-parser: ^0.16.3 + astro-eslint-parser: ^1.0.2 eslint: '>=8.40.0' - eslint-plugin-astro: ^0.31.4 + eslint-plugin-astro: ^1.2.0 eslint-plugin-format: '>=0.1.0' - eslint-plugin-react: ^7.33.2 eslint-plugin-react-hooks: ^4.6.0 eslint-plugin-react-refresh: ^0.4.4 - eslint-plugin-svelte: ^2.35.1 + eslint-plugin-solid: ^0.13.2 + eslint-plugin-svelte: '>=2.35.1' prettier-plugin-astro: ^0.13.0 prettier-plugin-slidev: ^1.0.5 - svelte-eslint-parser: ^0.33.1 + svelte-eslint-parser: '>=0.37.0' peerDependenciesMeta: + '@eslint-react/eslint-plugin': + optional: true + '@prettier/plugin-xml': + optional: true '@unocss/eslint-plugin': optional: true astro-eslint-parser: @@ -414,12 +417,12 @@ packages: optional: true eslint-plugin-format: optional: true - eslint-plugin-react: - optional: true eslint-plugin-react-hooks: optional: true eslint-plugin-react-refresh: optional: true + eslint-plugin-solid: + optional: true eslint-plugin-svelte: optional: true prettier-plugin-astro: @@ -432,8 +435,11 @@ packages: '@antfu/install-pkg@0.1.1': resolution: {integrity: sha512-LyB/8+bSfa0DFGC06zpCEfs89/XoWZwws5ygEa5D+Xsm3OfI+aXQ86VgVG7Acyef+rSZ5HE7J8rrxzrQeM3PjQ==} - '@antfu/install-pkg@0.3.2': - resolution: {integrity: sha512-FFYqME8+UHlPnRlX/vn+8cTD4Wo/nG/lzRxpABs3XANBmdJdNImVz3QvjNAE/W3PSCNbG387FOz8o5WelnWOlg==} + '@antfu/install-pkg@0.4.1': + resolution: {integrity: sha512-T7yB5QNG29afhWVkVq7XeIMBa5U/vs9mX69YqayXypPRmYzUmzwnYltplHmPtZ4HPCn+sQKeXW8I47wCbuBOjw==} + + '@antfu/utils@0.7.10': + resolution: {integrity: sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww==} '@antfu/utils@0.7.7': resolution: {integrity: sha512-gFPqTG7otEJ8uP6wrhDv6mqwGWYZKNvAcCq6u9hOj0c+IKCEsY4L1oC9trPq2SaWIzAfHvqfBDxF591JkMf+kg==} @@ -531,6 +537,10 @@ packages: resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@7.24.7': + resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} + engines: {node: '>=6.9.0'} + '@babel/helper-validator-option@7.23.5': resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} engines: {node: '>=6.9.0'} @@ -806,8 +816,12 @@ packages: '@dabh/diagnostics@2.0.3': resolution: {integrity: sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==} - '@es-joy/jsdoccomment@0.42.0': - resolution: {integrity: sha512-R1w57YlVA6+YE01wch3GPYn6bCsrOV3YW/5oGGE2tmX6JcL9Nr+b5IikrjMPF+v9CV3ay+obImEdsDhovhJrzw==} + '@es-joy/jsdoccomment@0.43.1': + resolution: {integrity: sha512-I238eDtOolvCuvtxrnqtlBaw0BwdQuYqK7eA6XIonicMdOOOb75mqdIzkGDUbS04+1Di007rgm9snFRNeVrOog==} + engines: {node: '>=16'} + + '@es-joy/jsdoccomment@0.48.0': + resolution: {integrity: sha512-G6QUWIcC+KvSwXNsJyDTHvqUdNoAVJPPgkc3+Uk4WBKqZvoXhlvazOgm9aL0HwihJLQf0l+tOE2UFzXBqCqgDw==} engines: {node: '>=16'} '@esbuild/aix-ppc64@0.19.12': @@ -816,138 +830,288 @@ packages: cpu: [ppc64] os: [aix] + '@esbuild/aix-ppc64@0.23.1': + resolution: {integrity: sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + '@esbuild/android-arm64@0.19.12': resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} engines: {node: '>=12'} cpu: [arm64] os: [android] + '@esbuild/android-arm64@0.23.1': + resolution: {integrity: sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + '@esbuild/android-arm@0.19.12': resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} engines: {node: '>=12'} cpu: [arm] os: [android] + '@esbuild/android-arm@0.23.1': + resolution: {integrity: sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + '@esbuild/android-x64@0.19.12': resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} engines: {node: '>=12'} cpu: [x64] os: [android] + '@esbuild/android-x64@0.23.1': + resolution: {integrity: sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + '@esbuild/darwin-arm64@0.19.12': resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] + '@esbuild/darwin-arm64@0.23.1': + resolution: {integrity: sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + '@esbuild/darwin-x64@0.19.12': resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} engines: {node: '>=12'} cpu: [x64] os: [darwin] + '@esbuild/darwin-x64@0.23.1': + resolution: {integrity: sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + '@esbuild/freebsd-arm64@0.19.12': resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] + '@esbuild/freebsd-arm64@0.23.1': + resolution: {integrity: sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + '@esbuild/freebsd-x64@0.19.12': resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] + '@esbuild/freebsd-x64@0.23.1': + resolution: {integrity: sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + '@esbuild/linux-arm64@0.19.12': resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} engines: {node: '>=12'} cpu: [arm64] os: [linux] + '@esbuild/linux-arm64@0.23.1': + resolution: {integrity: sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + '@esbuild/linux-arm@0.19.12': resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} engines: {node: '>=12'} cpu: [arm] os: [linux] + '@esbuild/linux-arm@0.23.1': + resolution: {integrity: sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + '@esbuild/linux-ia32@0.19.12': resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} engines: {node: '>=12'} cpu: [ia32] os: [linux] + '@esbuild/linux-ia32@0.23.1': + resolution: {integrity: sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + '@esbuild/linux-loong64@0.19.12': resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} engines: {node: '>=12'} cpu: [loong64] os: [linux] + '@esbuild/linux-loong64@0.23.1': + resolution: {integrity: sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + '@esbuild/linux-mips64el@0.19.12': resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] + '@esbuild/linux-mips64el@0.23.1': + resolution: {integrity: sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + '@esbuild/linux-ppc64@0.19.12': resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] + '@esbuild/linux-ppc64@0.23.1': + resolution: {integrity: sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + '@esbuild/linux-riscv64@0.19.12': resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] + '@esbuild/linux-riscv64@0.23.1': + resolution: {integrity: sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + '@esbuild/linux-s390x@0.19.12': resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} engines: {node: '>=12'} cpu: [s390x] os: [linux] + '@esbuild/linux-s390x@0.23.1': + resolution: {integrity: sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + '@esbuild/linux-x64@0.19.12': resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} engines: {node: '>=12'} cpu: [x64] os: [linux] + '@esbuild/linux-x64@0.23.1': + resolution: {integrity: sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + '@esbuild/netbsd-x64@0.19.12': resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] + '@esbuild/netbsd-x64@0.23.1': + resolution: {integrity: sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-arm64@0.23.1': + resolution: {integrity: sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + '@esbuild/openbsd-x64@0.19.12': resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] + '@esbuild/openbsd-x64@0.23.1': + resolution: {integrity: sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + '@esbuild/sunos-x64@0.19.12': resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} engines: {node: '>=12'} cpu: [x64] os: [sunos] + '@esbuild/sunos-x64@0.23.1': + resolution: {integrity: sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + '@esbuild/win32-arm64@0.19.12': resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} engines: {node: '>=12'} cpu: [arm64] os: [win32] + '@esbuild/win32-arm64@0.23.1': + resolution: {integrity: sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + '@esbuild/win32-ia32@0.19.12': resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} engines: {node: '>=12'} cpu: [ia32] os: [win32] + '@esbuild/win32-ia32@0.23.1': + resolution: {integrity: sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + '@esbuild/win32-x64@0.19.12': resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} engines: {node: '>=12'} cpu: [x64] os: [win32] + '@esbuild/win32-x64@0.23.1': + resolution: {integrity: sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + + '@eslint-community/eslint-plugin-eslint-comments@4.4.0': + resolution: {integrity: sha512-yljsWl5Qv3IkIRmJ38h3NrHXFCm4EUl55M8doGTF6hvzvFF8kRpextgSrg2dwHev9lzBZyafCr9RelGIyQm6fw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 + '@eslint-community/eslint-utils@4.4.0': resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -958,13 +1122,25 @@ packages: resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} 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-community/regexpp@4.11.0': + resolution: {integrity: sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint/js@8.56.0': - resolution: {integrity: sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@eslint/config-array@0.18.0': + resolution: {integrity: sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/eslintrc@3.1.0': + resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/js@9.9.1': + resolution: {integrity: sha512-xIDQRsfg5hNBqHz04H1R3scSVwmI+KUbqjsQKHKQ1DAUSaUjYPReZZmS/5PNiKu1fUvzDd6H7DEDKACSEhu+TQ==} + 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} '@fastify/busboy@1.2.1': resolution: {integrity: sha512-7PQA7EH43S0CxcOa9OeAnaeA0oQ+e/DHNPZwSQM9CQHW76jle5+OvLdibRp/Aafs9KXbLhxyjOTkRjWUbQEd3Q==} @@ -1235,19 +1411,16 @@ packages: '@hapi/topo@5.1.0': resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==} - '@humanwhocodes/config-array@0.11.14': - resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} - engines: {node: '>=10.10.0'} - '@humanwhocodes/module-importer@1.0.1': resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} engines: {node: '>=12.22'} - '@humanwhocodes/object-schema@2.0.2': - resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==} + '@humanwhocodes/retry@0.3.0': + resolution: {integrity: sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew==} + engines: {node: '>=18.18'} - '@iconify/json@2.2.192': - resolution: {integrity: sha512-q03tWoVKoMRaTEUDOPWc8geSsKkMe+3D/kK4UZ7F7P3NYwr4h+GN/yT3+5Z68lnD0ajDmTuswfMKOi1DbVnEnw==} + '@iconify/json@2.2.242': + resolution: {integrity: sha512-cS6eYdx1C1GhqaZm25ztH5yoghCaTXGJBeseUkS259GxxX9obtGLLk0yy+twxpNCD5/F9gjbgxh46BjNWsHtwg==} '@iconify/types@2.0.0': resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} @@ -1346,14 +1519,18 @@ packages: resolution: {integrity: sha512-wU5J8rUoo32oSef/rFpOT1HIjLjAv3qIDHkw1QIhODV3OpAVHi5oVzlouozg9obUmZKtbZ0qUe/m7FP0y0yBzA==} engines: {node: '>=8.12.0'} - '@orama/orama@2.0.11': - resolution: {integrity: sha512-CUoXg7lHehzquU+oJR5NoQiFN5ZvaRVz7SSuWnCAsn8if889XumQQ4SJRu083d16X1M2p9YSAfxaxdl6+7e2LQ==} + '@orama/orama@2.0.23': + resolution: {integrity: sha512-hb99eZAKW0KBaTyf8f7iV1yFIniQtkcs3sV5pooQ7mh33DCjTyeB39qUW8IHyBDFSs2rjLoePjW0CROvhb3rkw==} engines: {node: '>= 16.0.0'} '@pkgjs/parseargs@0.11.0': resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} + '@pkgr/core@0.1.1': + resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + '@playwright/test@1.41.2': resolution: {integrity: sha512-qQB9h7KbibJzrDpkXkYvsmiDJK14FULCCZgEcoe2AvFAS64oCirWTwzTlAYEbKaRxWs5TFesE1Na6izMv3HfGg==} engines: {node: '>=16'} @@ -1663,32 +1840,32 @@ packages: '@socket.io/component-emitter@3.1.0': resolution: {integrity: sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==} - '@stylistic/eslint-plugin-js@1.7.0': - resolution: {integrity: sha512-PN6On/+or63FGnhhMKSQfYcWutRlzOiYlVdLM6yN7lquoBTqUJHYnl4TA4MHwiAt46X5gRxDr1+xPZ1lOLcL+Q==} - engines: {node: ^16.0.0 || >=18.0.0} + '@stylistic/eslint-plugin-js@2.6.4': + resolution: {integrity: sha512-kx1hS3xTvzxZLdr/DCU/dLBE++vcP97sHeEFX2QXhk1Ipa4K1rzPOLw1HCbf4mU3s+7kHP5eYpDe+QteEOFLug==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: '>=8.40.0' - '@stylistic/eslint-plugin-jsx@1.7.0': - resolution: {integrity: sha512-BACdBwXakQvjYIST5N2WWhRbvhRsIxa/F59BiZol+0IH4FSmDXhie7v/yaxDIIA9CbfElzOmIA5nWNYTVXcnwQ==} - engines: {node: ^16.0.0 || >=18.0.0} + '@stylistic/eslint-plugin-jsx@2.6.4': + resolution: {integrity: sha512-bIvVhdtjmyu3S10V7QRIuawtCZSq9gRmzAX23ucjCOdSFzEwlq+di0IM0riBAvvQerrJL4SM6G3xgyPs8BSXIA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: '>=8.40.0' - '@stylistic/eslint-plugin-plus@1.7.0': - resolution: {integrity: sha512-AabDw8sXsc70Ydx3qnbeTlRHZnIwY6UKEenBPURPhY3bfYWX+/pDpZH40HkOu94v8D0DUrocPkeeEUxl4e0JDg==} + '@stylistic/eslint-plugin-plus@2.6.4': + resolution: {integrity: sha512-EuRvtxhf7Hv8OoMIePulP/6rBJIgPTu1l5GAm1780WcF1Cl8bOZXIn84Pdac5pNv6lVlzCOFm8MD3VE+2YROuA==} peerDependencies: eslint: '*' - '@stylistic/eslint-plugin-ts@1.7.0': - resolution: {integrity: sha512-QsHv98mmW1xaucVYQTyLDgEpybPJ/6jPPxVBrIchntWWwj74xCWKUiw79hu+TpYj/Pbhd9rkqJYLNq3pQGYuyA==} - engines: {node: ^16.0.0 || >=18.0.0} + '@stylistic/eslint-plugin-ts@2.6.4': + resolution: {integrity: sha512-yxL8Hj6WkObw1jfiLpBzKy5yfxY6vwlwO4miq34ySErUjUecPV5jxfVbOe4q1QDPKemQGPq93v7sAQS5PzM8lA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: '>=8.40.0' - '@stylistic/eslint-plugin@1.7.0': - resolution: {integrity: sha512-ThMUjGIi/jeWYNvOdjZkoLw1EOVs0tEuKXDgWvTn8uWaEz55HuPlajKxjKLpv19C+qRDbKczJfzUODfCdME53A==} - engines: {node: ^16.0.0 || >=18.0.0} + '@stylistic/eslint-plugin@2.6.4': + resolution: {integrity: sha512-euUGnjzH8EOqEYTGk9dB2OBINp0FX1nuO7/k4fO82zNRBIKZgJoDwTLM4Ce+Om6W1Qmh1PrZjCr4jh4tMEXGPQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: '>=8.40.0' @@ -2244,6 +2421,9 @@ packages: '@types/eslint@8.56.7': resolution: {integrity: sha512-SjDvI/x3zsZnOkYZ3lCt9lOZWZLB2jIlNKz+LBgCtDurK0JZcwucxYHn1w2BJkD34dgX9Tjnak0txtq4WTggEA==} + '@types/eslint@9.6.1': + resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} + '@types/estree@1.0.5': resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} @@ -2349,8 +2529,8 @@ packages: '@types/parse5@6.0.3': resolution: {integrity: sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==} - '@types/pg@8.10.9': - resolution: {integrity: sha512-UksbANNE/f8w0wOMxVKKIrLCbEMV+oM1uKejmwXr39olg4xqcfBDbXxObJAt6XxHbDa4XTKOlUEcEltXDX+XLQ==} + '@types/pg@8.11.8': + resolution: {integrity: sha512-IqpCf8/569txXN/HoP5i1LjXfKZWL76Yr2R77xgeIICUbAYHeoaEZFhYHo2uDftecLWrTJUq63JvQu8q3lnDyA==} '@types/phoenix@1.6.4': resolution: {integrity: sha512-B34A7uot1Cv0XtaHRYDATltAdKx0BvVKNgYNqE4WjtPUa4VQJM7kxeXcVKaH+KS+kCmZ+6w+QaUdcljiheiBJA==} @@ -2382,9 +2562,6 @@ packages: '@types/semver@7.5.3': resolution: {integrity: sha512-OxepLK9EuNEIPxWNME+C6WwbRAOOI2o2BaQEGzz5Lu2e4Z5eDnEo+/aVEDMIXywoJitJ7xWd641wrGLZdtwRyw==} - '@types/semver@7.5.7': - resolution: {integrity: sha512-/wdoPq1QqkSj9/QOeKkFquEuPzQbHTWAMPH/PaUMB+JuR31lXhlWXRZ52IpfDYVlDOUBvX09uBrPwxGT1hjNBg==} - '@types/send@0.17.4': resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} @@ -2412,74 +2589,44 @@ packages: '@types/yoga-layout@1.9.2': resolution: {integrity: sha512-S9q47ByT2pPvD65IvrWp7qppVMpk9WGMbVq9wbWZOHg6tnXSD4vyhao6nOSBwwfDdV2p3Kx9evA9vI+XWTfDvw==} - '@typescript-eslint/eslint-plugin@6.21.0': - resolution: {integrity: sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha - eslint: ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/eslint-plugin@7.5.0': - resolution: {integrity: sha512-HpqNTH8Du34nLxbKgVMGljZMG0rJd2O9ecvr2QLYp+7512ty1j42KnsFwspPXg1Vh8an9YImf6CokUBltisZFQ==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/eslint-plugin@8.3.0': + resolution: {integrity: sha512-FLAIn63G5KH+adZosDYiutqkOkYEx0nvcwNNfJAf+c7Ae/H35qWwTYvPZUKFj5AS+WfHG/WJJfWnDnyNUlp8UA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^7.0.0 - eslint: ^8.56.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@7.5.0': - resolution: {integrity: sha512-cj+XGhNujfD2/wzR1tabNsidnYRaFfEkcULdcIyVBYcXjBvBKOes+mpMBP7hMpOyk+gBcfXsrg4NBGAStQyxjQ==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/parser@8.3.0': + resolution: {integrity: sha512-h53RhVyLu6AtpUzVCYLPhZGL5jzTD9fZL+SYf/+hYOx2bDkyQXztXSc4tbvKYHzfMXExMLiL9CWqJmVz6+78IQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.56.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@6.7.3': resolution: {integrity: sha512-wOlo0QnEou9cHO2TdkJmzF7DFGvAKEnB82PuPNHpT8ZKKaZu6Bm63ugOTn9fXNJtvuDPanBc78lGUGGytJoVzQ==} engines: {node: ^16.0.0 || >=18.0.0} - '@typescript-eslint/scope-manager@7.5.0': - resolution: {integrity: sha512-Z1r7uJY0MDeUlql9XJ6kRVgk/sP11sr3HKXn268HZyqL7i4cEfrdFuSSY/0tUqT37l5zT0tJOsuDP16kio85iA==} - engines: {node: ^18.18.0 || >=20.0.0} - - '@typescript-eslint/type-utils@6.21.0': - resolution: {integrity: sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + '@typescript-eslint/scope-manager@8.3.0': + resolution: {integrity: sha512-mz2X8WcN2nVu5Hodku+IR8GgCOl4C0G/Z1ruaWN4dgec64kDBabuXyPAr+/RgJtumv8EEkqIzf3X2U5DUKB2eg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@7.5.0': - resolution: {integrity: sha512-A021Rj33+G8mx2Dqh0nMO9GyjjIBK3MqgVgZ2qlKf6CJy51wY/lkkFqq3TqqnH34XyAHUkq27IjlUkWlQRpLHw==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/type-utils@8.3.0': + resolution: {integrity: sha512-wrV6qh//nLbfXZQoj32EXKmwHf4b7L+xXLrP3FZ0GOUU72gSvLjeWUl5J5Ue5IwRxIV1TfF73j/eaBapxx99Lg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.56.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@6.7.3': resolution: {integrity: sha512-4g+de6roB2NFcfkZb439tigpAMnvEIg3rIjWQ+EM7IBaYt/CdJt6em9BJ4h4UpdgaBWdmx2iWsafHTrqmgIPNw==} engines: {node: ^16.0.0 || >=18.0.0} @@ -2488,14 +2635,9 @@ packages: resolution: {integrity: sha512-tv5B4IHeAdhR7uS4+bf8Ov3k793VEVHd45viRRkehIUZxm0WF82VPiLgHzA/Xl4TGPg1ZD49vfxBKFPecD5/mg==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/typescript-estree@6.21.0': - resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + '@typescript-eslint/types@8.3.0': + resolution: {integrity: sha512-y6sSEeK+facMaAyixM36dQ5NVXTnKWunfD1Ft4xraYqxP0lC0POJmIaL/mw72CUMqjY9qfyVfXafMeaUj0noWw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript-eslint/typescript-estree@6.7.3': resolution: {integrity: sha512-YLQ3tJoS4VxLFYHTw21oe1/vIZPRqAO91z6Uv0Ss2BKm/Ag7/RVQBcXTGcXhgJMdA4U+HrKuY5gWlJlvoaKZ5g==} @@ -2506,44 +2648,34 @@ packages: typescript: optional: true - '@typescript-eslint/typescript-estree@7.5.0': - resolution: {integrity: sha512-YklQQfe0Rv2PZEueLTUffiQGKQneiIEKKnfIqPIOxgM9lKSZFCjT5Ad4VqRKj/U4+kQE3fa8YQpskViL7WjdPQ==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/typescript-estree@8.3.0': + resolution: {integrity: sha512-Mq7FTHl0R36EmWlCJWojIC1qn/ZWo2YiWYc1XVtasJ7FIgjo0MVv9rZWXEE7IK2CGrtwe1dVOxWwqXUdNgfRCA==} + 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} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - '@typescript-eslint/utils@6.7.3': resolution: {integrity: sha512-vzLkVder21GpWRrmSR9JxGZ5+ibIUSudXlW52qeKpzUEQhRSmyZiVDDj3crAth7+5tmN1ulvgKaCU2f/bPRCzg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 - '@typescript-eslint/utils@7.5.0': - resolution: {integrity: sha512-3vZl9u0R+/FLQcpy2EHyRGNqAS/ofJ3Ji8aebilfJe+fobK8+LbIFmrHciLVDxjDoONmufDcnVSF38KwMEOjzw==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/utils@8.3.0': + resolution: {integrity: sha512-F77WwqxIi/qGkIGOGXNBLV7nykwfjLsdauRB/DOFPdv6LTF3BHHkBpq81/b5iMPSF055oO2BiivDJV4ChvNtXA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.56.0 - - '@typescript-eslint/visitor-keys@6.21.0': - resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==} - engines: {node: ^16.0.0 || >=18.0.0} + eslint: ^8.57.0 || ^9.0.0 '@typescript-eslint/visitor-keys@6.7.3': resolution: {integrity: sha512-HEVXkU9IB+nk9o63CeICMHxFWbHWr3E1mpilIQBe9+7L/lH97rleFLVtYsfnWB+JVMaiFnEaxvknvmIzX+CqVg==} engines: {node: ^16.0.0 || >=18.0.0} - '@typescript-eslint/visitor-keys@7.5.0': - resolution: {integrity: sha512-mcuHM/QircmA6O7fy6nn2w/3ditQkj+SgtOc8DW3uQ10Yfj42amm2i+6F2K4YAOPNNTmE6iM1ynM6lrSwdendA==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/visitor-keys@8.3.0': + resolution: {integrity: sha512-RmZwrTbQ9QveF15m/Cl28n0LXD6ea2CjkhH5rQ55ewz3H24w+AMCJHPVYaZ8/0HoG8Z3cLLFFycRXxeO2tz9FA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript/twoslash@3.1.0': resolution: {integrity: sha512-kTwMUQ8xtAZaC4wb2XuLkPqFVBj2dNBueMQ89NWEuw87k2nLBbuafeG5cob/QEr6YduxIdTVUjix0MtC7mPlmg==} @@ -2557,9 +2689,6 @@ packages: '@typescript/vfs@1.5.0': resolution: {integrity: sha512-AJS307bPgbsZZ9ggCT3wwpg3VbTKMFNHfaY/uF0ahSkYYrPF2dSSKDNIDIQAHm9qJqbLvCsSJH7yN4Vs/CsMMg==} - '@ungap/structured-clone@1.2.0': - resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - '@unocss/astro@0.58.5': resolution: {integrity: sha512-LtuVnj8oFAK9663OVhQO8KpdJFiOyyPsYfnOZlDCOFK3gHb/2WMrzdBwr1w8LoQF3bDedkFMKirVF7gWjyZiaw==} peerDependencies: @@ -2649,6 +2778,21 @@ packages: peerDependencies: vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 + '@vitest/eslint-plugin@1.1.0': + resolution: {integrity: sha512-Ur80Y27Wbw8gFHJ3cv6vypcjXmrx6QHfw+q435h6Q2L+tf+h4Xf5pJTCL4YU/Jps9EVeggQxS85OcUZU7sdXRw==} + peerDependencies: + '@typescript-eslint/utils': '>= 8.0' + eslint: '>= 8.57.0' + typescript: '>= 5.0.0' + vitest: '*' + peerDependenciesMeta: + '@typescript-eslint/utils': + optional: true + typescript: + optional: true + vitest: + optional: true + '@vitest/expect@1.4.0': resolution: {integrity: sha512-Jths0sWCJZ8BxjKe+p+eKsoqev1/T8lYcrjavEaz8auEJ4jAVY0GwW3JKmdVU4mmNPLPHixh4GNXP7GFtAiDHA==} @@ -2718,6 +2862,11 @@ packages: engines: {node: '>=0.4.0'} hasBin: true + acorn@8.12.1: + resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} + engines: {node: '>=0.4.0'} + hasBin: true + address@1.2.2: resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==} engines: {node: '>= 10.0.0'} @@ -2768,6 +2917,10 @@ packages: resolution: {integrity: sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw==} engines: {node: '>=14.16'} + ansi-escapes@7.0.0: + resolution: {integrity: sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==} + engines: {node: '>=18'} + ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} @@ -2854,10 +3007,6 @@ packages: resolution: {integrity: sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==} engines: {node: '>=4'} - astral-regex@2.0.0: - resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} - engines: {node: '>=8'} - async-lock@1.3.2: resolution: {integrity: sha512-phnXdS3RP7PPcmP6NWWzWMU0sLTeyvtZCxBPpZdkYE3seGLKSQZs9FrmVO/qwypq98FUtWWUEYxziLkdGk5nnA==} @@ -2942,11 +3091,20 @@ packages: resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} engines: {node: '>=8'} + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + browserslist@4.23.0: resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true + browserslist@4.23.3: + resolution: {integrity: sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + buffer-crc32@0.2.13: resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} @@ -2964,9 +3122,6 @@ packages: resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} engines: {node: '>=6'} - builtins@5.0.1: - resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==} - bytes@3.0.0: resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} engines: {node: '>= 0.8'} @@ -3003,6 +3158,9 @@ packages: caniuse-lite@1.0.30001589: resolution: {integrity: sha512-vNQWS6kI+q6sBlHbh71IIeC+sRwK2N3EDySc/updIGhIee2x5z00J4c1242/5/d6EpEMdOnk/m+6tuk4/tcsqg==} + caniuse-lite@1.0.30001653: + resolution: {integrity: sha512-XGWQVB8wFQ2+9NZwZ10GxTYC5hk0Fa+q8cSkr0tgvMhYhMHP/QC+WTgrePMDBWiWc/pV+1ik82Al20XOK25Gcw==} + cardinal@2.1.1: resolution: {integrity: sha512-JSr5eOgoEymtYHBjNWyjrMqet9Am2miJhlfKNdqLp6zoeAh0KN5dRAcxlecj5mAJrmQomgiOBj35xHLrFjqBpw==} hasBin: true @@ -3033,6 +3191,10 @@ packages: resolution: {integrity: sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + chalk@5.3.0: + resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + character-entities-html4@2.1.0: resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} @@ -3115,6 +3277,10 @@ packages: resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} engines: {node: '>=8'} + cli-cursor@5.0.0: + resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==} + engines: {node: '>=18'} + cli-spinners@2.6.1: resolution: {integrity: sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==} engines: {node: '>=6'} @@ -3127,13 +3293,9 @@ packages: resolution: {integrity: sha512-IqLQi4lO0nIB4tcdTpN4LCB9FI3uqrJZK7RC515EnhZ6qBaglkIgICb1wjeAqpdoOabm1+SuQtkXIPdYC93jhQ==} engines: {node: '>= 0.2.0'} - cli-truncate@2.1.0: - resolution: {integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==} - engines: {node: '>=8'} - - cli-truncate@3.1.0: - resolution: {integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + cli-truncate@4.0.0: + resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==} + engines: {node: '>=18'} cli-width@3.0.0: resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} @@ -3206,6 +3368,10 @@ packages: resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} engines: {node: '>=14'} + commander@12.1.0: + resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} + engines: {node: '>=18'} + commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} @@ -3280,8 +3446,8 @@ packages: resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} engines: {node: '>= 0.6'} - core-js-compat@3.36.1: - resolution: {integrity: sha512-Dk997v9ZCt3X/npqzyGdTlq6t7lDBhZwGvV94PKzDArjp7BTRm7WlDAXYd/OWdeFHO8OChQYRJNJvUCqCbrtKA==} + core-js-compat@3.38.1: + resolution: {integrity: sha512-JRH6gfXxGmrzF3tZ57lFx97YARxCXPaMzPo6jELZhv88pBH5VXpQ+y0znKGlFnzuaihqhLbefxSJxWJMPtfDzw==} core-util-is@1.0.2: resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==} @@ -3431,6 +3597,15 @@ packages: supports-color: optional: true + debug@4.3.6: + resolution: {integrity: sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + decode-named-character-reference@1.0.2: resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} @@ -3557,9 +3732,15 @@ packages: electron-to-chromium@1.4.681: resolution: {integrity: sha512-1PpuqJUFWoXZ1E54m8bsLPVYwIVCRzvaL+n5cjigGga4z854abDnFRc+cTa2th4S79kyGqya/1xoR7h+Y5G5lg==} + electron-to-chromium@1.5.13: + resolution: {integrity: sha512-lbBcvtIJ4J6sS4tb5TLp1b4LyfCdMkwStzXPyAgVgTRAsep4bvrAGaBOP7ZJtQMNJpSQ9SqG4brWOroNaQtm7Q==} + emoji-regex@10.2.1: resolution: {integrity: sha512-97g6QgOk8zlDRdgq1WxwgTMgEWGVAQvB5Fdpgc1MkNy56la5SKP9GsMXKDOdqwn90/41a8yPwIGk1Y6WVbeMQA==} + emoji-regex@10.4.0: + resolution: {integrity: sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==} + emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -3586,6 +3767,10 @@ packages: resolution: {integrity: sha512-P+jDFbvK6lE3n1OL+q9KuzdOFWkkZ/cMV9gol/SbVfpyqfvrfrFTOFJ6fQm2VC3PZHlU3QPhVwmbsCnauHF2MQ==} engines: {node: '>=10.0.0'} + enhanced-resolve@5.17.1: + resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==} + engines: {node: '>=10.13.0'} + ent@2.2.0: resolution: {integrity: sha512-GHrMyVZQWvTIdDtpiEXdHZnFQKzeO09apj8Cbl4pKWy4i0Oprcq17usfDt5aO63swf0JOeMWjWQE/LzgSRuWpA==} @@ -3600,12 +3785,19 @@ packages: resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} engines: {node: '>=6'} + environment@1.1.0: + resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==} + engines: {node: '>=18'} + err-code@2.0.3: resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} 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==} + es6-promise@3.3.1: resolution: {integrity: sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==} @@ -3614,9 +3806,10 @@ packages: engines: {node: '>=12'} hasBin: true - escalade@3.1.1: - resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} - engines: {node: '>=6'} + esbuild@0.23.1: + resolution: {integrity: sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==} + engines: {node: '>=18'} + hasBin: true escalade@3.1.2: resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} @@ -3656,11 +3849,17 @@ packages: peerDependencies: eslint: '>=6.0.0' - eslint-config-flat-gitignore@0.1.5: - resolution: {integrity: sha512-hEZLwuZjDBGDERA49c2q7vxc8sCGv8EdBp6PQYzGOMcHIgrfG9YOM6s/4jx24zhD+wnK9AI8mgN5RxSss5nClQ==} + eslint-compat-utils@0.5.1: + resolution: {integrity: sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==} + engines: {node: '>=12'} + peerDependencies: + eslint: '>=6.0.0' + + eslint-config-flat-gitignore@0.1.8: + resolution: {integrity: sha512-OEUbS2wzzYtUfshjOqzFo4Bl4lHykXUdM08TCnYNl7ki+niW4Q1R0j0FDFDr0vjVsI5ZFOz5LvluxOP+Ew+dYw==} - eslint-flat-config-utils@0.2.0: - resolution: {integrity: sha512-8jLkFKKBAzWPBEjygdH/P9Y/c+K9AcuMAig9u/4/x7mtsDRHj8EdgEJHX1IEvOTAbZiWXEUoZqiKZUIx/1FWKg==} + eslint-flat-config-utils@0.3.1: + resolution: {integrity: sha512-eFT3EaoJN1hlN97xw4FIEX//h0TiFUobgl2l5uLkIwhVN9ahGq95Pbs+i1/B5UACA78LO3rco3JzuvxLdTUOPA==} eslint-import-resolver-node@0.3.9: resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} @@ -3670,8 +3869,13 @@ packages: peerDependencies: eslint: '*' - eslint-plugin-antfu@2.1.2: - resolution: {integrity: sha512-s7ZTOM3uq0iqpp6gF0UEotnvup7f2PHBUftCytLZX0+6C9j9KadKZQh6bVVngAyFgsmeD9+gcBopOYLClb2oDg==} + eslint-plugin-antfu@2.3.6: + resolution: {integrity: sha512-31VwbU1Yd4BFNUUPQEazKyP79f3c+ohJtq5iZIuw38JjkRQdQAcF/31Kjr0DOKZXVDkeeNPrttKidrr3xhnhOA==} + peerDependencies: + eslint: '*' + + eslint-plugin-command@0.2.3: + resolution: {integrity: sha512-1bBYNfjZg60N2ZpLV5ATYSYyueIJ+zl5yKrTs0UFDdnyu07dNSZ7Xplnc+Wb6SXTdc1sIaoIrnuyhvztcltX6A==} peerDependencies: eslint: '*' @@ -3681,53 +3885,48 @@ packages: peerDependencies: eslint: '>=8' - eslint-plugin-eslint-comments@3.2.0: - resolution: {integrity: sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==} - engines: {node: '>=6.5.0'} - peerDependencies: - eslint: '>=4.19.1' - - eslint-plugin-import-x@0.5.0: - resolution: {integrity: sha512-C7R8Z4IzxmsoOPMtSzwuOBW5FH6iRlxHR6iTks+MzVlrk3r3TUxokkWTx3ypdj9nGOEP+CG/5e6ebZzHbxgbbQ==} - engines: {node: '>=16'} + eslint-plugin-import-x@4.1.0: + resolution: {integrity: sha512-1BYJU0C5NBJLY4qukmwDbFrf2w8fLGEU9zZV3viWa7gNnbn4o4meQy5O4LVXn56eFh9Y4fQxu3udhIqQuVITvw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.56.0 || ^9.0.0-0 + eslint: ^8.57.0 || ^9.0.0 - eslint-plugin-jsdoc@48.2.2: - resolution: {integrity: sha512-S0Gk+rpT5w/ephKCncUY7kUsix9uE4B9XI8D/fS1/26d8okE+vZsuG1IvIt4B6sJUdQqsnzi+YXfmh+HJG11CA==} + eslint-plugin-jsdoc@50.2.2: + resolution: {integrity: sha512-i0ZMWA199DG7sjxlzXn5AeYZxpRfMJjDPUl7lL9eJJX8TPRoIaxJU4ys/joP5faM5AXE1eqW/dslCj3uj4Nqpg==} engines: {node: '>=18'} peerDependencies: eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 - eslint-plugin-jsonc@2.15.0: - resolution: {integrity: sha512-wAphMVgTQPAKAYV8d/QEkEYDg8uer9nMQ85N17IUiJcAWLxJs83/Exe59dEH9yKUpvpLf46H+wR7/U7lZ3/NpQ==} + eslint-plugin-jsonc@2.16.0: + resolution: {integrity: sha512-Af/ZL5mgfb8FFNleH6KlO4/VdmDuTqmM+SPnWcdoWywTetv7kq+vQe99UyQb9XO3b0OWLVuTH7H0d/PXYCMdSg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '>=6.0.0' - eslint-plugin-markdown@4.0.1: - resolution: {integrity: sha512-5/MnGvYU0i8MbHH5cg8S+Vl3DL+bqRNYshk1xUO86DilNBaxtTkhH+5FD0/yO03AmlI6+lfNFdk2yOw72EPzpA==} + eslint-plugin-markdown@5.1.0: + resolution: {integrity: sha512-SJeyKko1K6GwI0AN6xeCDToXDkfKZfXcexA6B+O2Wr2btUS9GrC+YgwSyVli5DJnctUHjFXcQ2cqTaAmVoLi2A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: '>=8' - eslint-plugin-n@16.6.2: - resolution: {integrity: sha512-6TyDmZ1HXoFQXnhCTUjVFULReoBPOAjpuiKELMkeP40yffI/1ZRO+d9ug/VC6fqISo2WkuIBk3cvuRPALaWlOQ==} - engines: {node: '>=16.0.0'} + eslint-plugin-n@17.10.2: + resolution: {integrity: sha512-e+s4eAf5NtJaxPhTNu3qMO0Iz40WANS93w9LQgYcvuljgvDmWi/a3rh+OrNyMHeng6aOWGJO0rCg5lH4zi8yTw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: '>=7.0.0' + eslint: '>=8.23.0' - eslint-plugin-no-only-tests@3.1.0: - resolution: {integrity: sha512-Lf4YW/bL6Un1R6A76pRZyE1dl1vr31G/ev8UzIc/geCgFWyrKil8hVjYqWVKGB/UIGmb6Slzs9T0wNezdSVegw==} + eslint-plugin-no-only-tests@3.3.0: + resolution: {integrity: sha512-brcKcxGnISN2CcVhXJ/kEQlNa0MEfGRtwKtWA16SkqXHKitaKIMrfemJKLKX1YqDU5C/5JY3PvZXd5jEW04e0Q==} engines: {node: '>=5.0.0'} - eslint-plugin-perfectionist@2.7.0: - resolution: {integrity: sha512-RpSMc0T0DT9DlOj4APzwlAjCqQMxFdsIYlupe73eDkKLn1mMK7fVw2z3nj2y822szKOpvHA7bDa56ySOlr4GXw==} + eslint-plugin-perfectionist@3.3.0: + resolution: {integrity: sha512-sGgShkEqDBqIZ3WlenGHwLe1cl3vHKTfeh9b1XXAamaxSC7AY4Os0jdNCXnGJW4l0TlpismT5t2r7CXY7sfKlw==} + engines: {node: ^18.0.0 || >=20.0.0} peerDependencies: - astro-eslint-parser: ^0.16.0 + astro-eslint-parser: ^1.0.2 eslint: '>=8.0.0' svelte: '>=3.0.0' - svelte-eslint-parser: ^0.33.0 + svelte-eslint-parser: ^0.41.0 vue-eslint-parser: '>=9.0.0' peerDependenciesMeta: astro-eslint-parser: @@ -3739,59 +3938,51 @@ packages: vue-eslint-parser: optional: true + eslint-plugin-regexp@2.6.0: + resolution: {integrity: sha512-FCL851+kislsTEQEMioAlpDuK5+E5vs0hi1bF8cFlPlHcEjeRhuAzEsGikXRreE+0j4WhW2uO54MqTjXtYOi3A==} + engines: {node: ^18 || >=20} + peerDependencies: + eslint: '>=8.44.0' + eslint-plugin-svelte-stylistic@0.0.4: resolution: {integrity: sha512-4QxTiUQBR6dRt/bBx5NXRpHvt1Sw3r1ED4Iyvi/f3/RqUVUTG/Ke02JFGbWt1QS1Fw1JD75jbyp67yBWkFcI0g==} - eslint-plugin-svelte@2.33.2: - resolution: {integrity: sha512-knWmauax+E/jvQ9CmuX5dAhQKP9P4eGQZxWa5RMutEJVCcy0wFmiUvOeDND2jR4vUkbDlX4khKjaceY7QzbkYw==} + eslint-plugin-svelte@2.43.0: + resolution: {integrity: sha512-REkxQWvg2pp7QVLxQNa+dJ97xUqRe7Y2JJbSWkHSuszu0VcblZtXkPBPckkivk99y5CdLw4slqfPylL2d/X4jQ==} engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: - eslint: ^7.0.0 || ^8.0.0-0 - svelte: ^3.37.0 || ^4.0.0 + eslint: ^7.0.0 || ^8.0.0-0 || ^9.0.0-0 + svelte: ^3.37.0 || ^4.0.0 || ^5.0.0-next.191 peerDependenciesMeta: svelte: optional: true - eslint-plugin-toml@0.11.0: - resolution: {integrity: sha512-sau+YvPU4fWTjB+qtBt3n8WS87aoDCs+BVbSUAemGaIsRNbvR9uEk+Tt892iLHTGvp/DPWYoCX4/8DoyAbB+sQ==} + eslint-plugin-toml@0.11.1: + resolution: {integrity: sha512-Y1WuMSzfZpeMIrmlP1nUh3kT8p96mThIq4NnHrYUhg10IKQgGfBZjAWnrg9fBqguiX4iFps/x/3Hb5TxBisfdw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '>=6.0.0' - eslint-plugin-unicorn@51.0.1: - resolution: {integrity: sha512-MuR/+9VuB0fydoI0nIn2RDA5WISRn4AsJyNSaNKLVwie9/ONvQhxOBbkfSICBPnzKrB77Fh6CZZXjgTt/4Latw==} - engines: {node: '>=16'} + eslint-plugin-unicorn@55.0.0: + resolution: {integrity: sha512-n3AKiVpY2/uDcGrS3+QsYDkjPfaOrNrsfQxU9nt5nitd9KuvVXrfAvgCO9DYPSfap+Gqjw9EOrXIsBp5tlHZjA==} + engines: {node: '>=18.18'} peerDependencies: eslint: '>=8.56.0' - eslint-plugin-unused-imports@3.1.0: - resolution: {integrity: sha512-9l1YFCzXKkw1qtAru1RWUtG2EVDZY0a0eChKXcL+EZ5jitG7qxdctu4RnvhOJHv4xfmUf7h+JJPINlVpGhZMrw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - '@typescript-eslint/eslint-plugin': 6 - 7 - eslint: '8' - peerDependenciesMeta: - '@typescript-eslint/eslint-plugin': - optional: true - - eslint-plugin-vitest@0.4.1: - resolution: {integrity: sha512-+PnZ2u/BS+f5FiuHXz4zKsHPcMKHie+K+1Uvu/x91ovkCMEOJqEI8E9Tw1Wzx2QRz4MHOBHYf1ypO8N1K0aNAA==} - engines: {node: ^18.0.0 || >= 20.0.0} + eslint-plugin-unused-imports@4.1.3: + resolution: {integrity: sha512-lqrNZIZjFMUr7P06eoKtQLwyVRibvG7N+LtfKtObYGizAAGrcqLkc3tDx+iAik2z7q0j/XI3ihjupIqxhFabFA==} peerDependencies: - '@typescript-eslint/eslint-plugin': '*' - eslint: '>=8.0.0' - vitest: '*' + '@typescript-eslint/eslint-plugin': ^8.0.0-0 || ^7.0.0 || ^6.0.0 || ^5.0.0 + eslint: ^9.0.0 || ^8.0.0 peerDependenciesMeta: '@typescript-eslint/eslint-plugin': optional: true - vitest: - optional: true - eslint-plugin-vue@9.24.0: - resolution: {integrity: sha512-9SkJMvF8NGMT9aQCwFc5rj8Wo1XWSMSHk36i7ZwdI614BU7sIOR28ZjuFPKp8YGymZN12BSEbiSwa7qikp+PBw==} + eslint-plugin-vue@9.27.0: + resolution: {integrity: sha512-5Dw3yxEyuBSXTzT5/Ge1X5kIkRTQ3nvBn/VwPwInNiZBSJOO/timWMUaflONnFBzU6NhB68lxnCda7ULV5N7LA==} engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: - eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 + eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 eslint-plugin-yml@1.14.0: resolution: {integrity: sha512-ESUpgYPOcAYQO9czugcX5OqRvn/ydDVwGCPXY4YjPqc09rHaUVUA6IE6HLQys4rXk/S+qx3EwTd1wHCwam/OWQ==} @@ -3799,32 +3990,45 @@ packages: peerDependencies: eslint: '>=6.0.0' - eslint-processor-vue-blocks@0.1.1: - resolution: {integrity: sha512-9+dU5lU881log570oBwpelaJmOfOzSniben7IWEDRYQPPWwlvaV7NhOtsTuUWDqpYT+dtKKWPsgz4OkOi+aZnA==} + eslint-processor-vue-blocks@0.1.2: + resolution: {integrity: sha512-PfpJ4uKHnqeL/fXUnzYkOax3aIenlwewXRX8jFinA1a2yCFnLgMuiH3xvCgvHHUlV2xJWQHbCTdiJWGwb3NqpQ==} peerDependencies: '@vue/compiler-sfc': ^3.3.0 - eslint: ^8.50.0 - - eslint-rule-composer@0.3.0: - resolution: {integrity: sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==} - engines: {node: '>=4.0.0'} + eslint: ^8.50.0 || ^9.0.0 eslint-scope@7.2.2: resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + eslint-scope@8.0.2: + resolution: {integrity: sha512-6E4xmrTw5wtxnLA5wYL3WDfhZ/1bUBGOXV0zQvVRDOtrR8D0p6W7fs3JweNYhwRYeGvd/1CKX2se0/2s7Q/nJA==} + 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.56.0: - resolution: {integrity: sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + eslint-visitor-keys@4.0.0: + resolution: {integrity: sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint@9.9.1: + resolution: {integrity: sha512-dHvhrbfr4xFQ9/dq+jcVneZMyRYLjggWjk6RVsIiHsP8Rz6yZ8LvZ//iU4TrZF+SXWG+JkNF2OyiZRvzgRDqMg==} + 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.1.0: + resolution: {integrity: sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA==} + 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} @@ -3838,6 +4042,10 @@ packages: resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} engines: {node: '>=0.10'} + esquery@1.6.0: + resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} + engines: {node: '>=0.10'} + esrecurse@4.3.0: resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} engines: {node: '>=4.0'} @@ -3871,6 +4079,9 @@ packages: resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} engines: {node: '>=6'} + eventemitter3@5.0.1: + resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + events-listener@1.1.0: resolution: {integrity: sha512-Kd3EgYfODHueq6GzVfs/VUolh2EgJsS8hkO3KpnDrxVjU3eq63eXM2ujXkhPP+OkeUOhL8CxdfZbQXzryb5C4g==} @@ -3878,10 +4089,6 @@ packages: resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} engines: {node: '>=10'} - execa@7.1.1: - resolution: {integrity: sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==} - engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} - execa@8.0.1: resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} engines: {node: '>=16.17'} @@ -3978,9 +4185,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'} file-saver@2.0.5: resolution: {integrity: sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==} @@ -3997,6 +4204,10 @@ packages: resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} engines: {node: '>=8'} + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + finalhandler@1.1.2: resolution: {integrity: sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==} engines: {node: '>= 0.8'} @@ -4005,6 +4216,10 @@ packages: resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} engines: {node: '>= 0.8'} + find-up-simple@1.0.0: + resolution: {integrity: sha512-q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw==} + engines: {node: '>=18'} + find-up@4.1.0: resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} engines: {node: '>=8'} @@ -4013,10 +4228,6 @@ packages: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} - find-up@7.0.0: - resolution: {integrity: sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g==} - engines: {node: '>=18'} - firebase-admin@12.0.0: resolution: {integrity: sha512-wBrrSSsKV++/+O8E7O/C7/wL0nbG/x4Xv4yatz/+sohaZ+LsnWtYUcrd3gZutO86hLpDex7xgyrkKbgulmtVyQ==} engines: {node: '>=14'} @@ -4036,12 +4247,9 @@ packages: firebase@10.9.0: resolution: {integrity: sha512-R8rDU3mg2dq0uPOoZ5Nc3BeZTbXxBPJS8HcZLtnV0f5/YrmpNsHngzmMHRVB+91T+ViJGVL/42dV23gS9w9ccw==} - flat-cache@3.2.0: - resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} - engines: {node: ^10.12.0 || >=12.0.0} - - flatted@3.2.9: - resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} + flat-cache@4.0.1: + resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} + engines: {node: '>=16'} flatted@3.3.1: resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} @@ -4175,6 +4383,10 @@ packages: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} + get-east-asian-width@1.2.0: + resolution: {integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==} + engines: {node: '>=18'} + get-func-name@2.0.2: resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} @@ -4189,12 +4401,12 @@ packages: resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} engines: {node: '>=16'} - get-tsconfig@4.7.2: - resolution: {integrity: sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==} - get-tsconfig@4.7.3: resolution: {integrity: sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg==} + get-tsconfig@4.7.6: + resolution: {integrity: sha512-ZAqrLlu18NbDdRaHq+AKXzAmqIUPswPWKUchfytdAjiRFnCe5ojG2bstg6mRiZabkKfCoL/e98pbBELIV/YCeA==} + get-uri@3.0.2: resolution: {integrity: sha512-+5s0SJbGoyiJTZZ2JTpFPLMPSch72KEqGOTvQsBqg0RBWvwhWUSYZFAtz3TPW0GXJuLBJPts1E241iHg+VRfhg==} engines: {node: '>= 6'} @@ -4241,16 +4453,16 @@ packages: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} - globals@13.20.0: - resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==} - engines: {node: '>=8'} - globals@13.24.0: resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} engines: {node: '>=8'} - globals@15.0.0: - resolution: {integrity: sha512-m/C/yR4mjO6pXDTm9/R/SpYTAIyaUB4EOzcaaMEl7mds7Mshct9GfejiJNQGjHHbdMPey13Kpu4TMbYi9ex1pw==} + globals@14.0.0: + resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} + engines: {node: '>=18'} + + globals@15.9.0: + resolution: {integrity: sha512-SmSKyLLKFbSr6rptvP8izbyxJL4ILwqO9Jg23UA0sDlGlu58V59D1//I3vlc0KJphVdUR7vMjHIplYnzBxorQA==} engines: {node: '>=18'} globalyzer@0.1.0: @@ -4475,10 +4687,6 @@ packages: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} - human-signals@4.3.1: - resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==} - engines: {node: '>=14.18.0'} - human-signals@5.0.0: resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} engines: {node: '>=16.17.0'} @@ -4497,10 +4705,6 @@ packages: ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - ignore@5.2.4: - resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} - engines: {node: '>= 4'} - ignore@5.3.1: resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} engines: {node: '>= 4'} @@ -4626,6 +4830,10 @@ packages: resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} engines: {node: '>=12'} + is-fullwidth-code-point@5.0.0: + resolution: {integrity: sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==} + engines: {node: '>=18'} + is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} @@ -4769,6 +4977,10 @@ packages: resolution: {integrity: sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==} engines: {node: '>=12.0.0'} + jsdoc-type-pratt-parser@4.1.0: + resolution: {integrity: sha512-Hicd6JK5Njt2QB6XYFS7ok9e37O8AYk3jTcppG4YVQnYjOemymvTcmc7OWsmq/Qqj5TdRFO5/x/tIPmBeRtGHg==} + engines: {node: '>=12.0.0'} + jsdoc@4.0.2: resolution: {integrity: sha512-e8cIg2z62InH7azBBi3EsSEqrKx+nUtAS5bBcYTSpZFA+vhNPyhv8PTFZ0WsjOPDj04/dOLlm08EDcQJDqaGQg==} engines: {node: '>=12.0.0'} @@ -4888,8 +5100,8 @@ packages: resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} engines: {node: '>=6'} - known-css-properties@0.28.0: - resolution: {integrity: sha512-9pSL5XB4J+ifHP0e0jmmC98OGC1nL8/JjS+fi6mnTlIf//yt/MfVLtKg7S6nCtj/8KTcWX7nRlY0XywoYY1ISQ==} + known-css-properties@0.34.0: + resolution: {integrity: sha512-tBECoUqNFbyAY4RrbqsBQqDFpGXAEbdD5QKr8kACx3+rnArmuuR22nKQWKazvp07N9yjTyDZaw/20UIH8tL9DQ==} kolorist@1.8.0: resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} @@ -4930,6 +5142,10 @@ packages: resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} engines: {node: '>=10'} + lilconfig@3.1.2: + resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==} + engines: {node: '>=14'} + limiter@1.1.5: resolution: {integrity: sha512-FWWMIEOxz3GwUI4Ts/IvgVy6LPvoMPgjMdQ185nN6psJyBJ4yOpzqm695/h5umdLJg2vW3GR5iG11MAkR2AzJA==} @@ -4939,19 +5155,14 @@ packages: linkify-it@3.0.3: resolution: {integrity: sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==} - lint-staged@13.2.2: - resolution: {integrity: sha512-71gSwXKy649VrSU09s10uAT0rWCcY3aewhMaHyl2N84oBk4Xs9HgxvUp3AYu+bNsK4NrOYYxvSgg7FyGJ+jGcA==} - engines: {node: ^14.13.1 || >=16.0.0} + lint-staged@15.2.9: + resolution: {integrity: sha512-BZAt8Lk3sEnxw7tfxM7jeZlPRuT4M68O0/CwZhhaw6eeWu0Lz5eERE3m386InivXB64fp/mDID452h48tvKlRQ==} + engines: {node: '>=18.12.0'} hasBin: true - listr2@5.0.8: - resolution: {integrity: sha512-mC73LitKHj9w6v30nLNGPetZIlfpUniNSsxxrbaPcWOjDb92SHPzJPi/t+v1YC/lxKz/AJ9egOjww0qUuFxBpA==} - engines: {node: ^14.13.1 || >=16.0.0} - peerDependencies: - enquirer: '>= 2.3.0 < 3' - peerDependenciesMeta: - enquirer: - optional: true + listr2@8.2.4: + resolution: {integrity: sha512-opevsywziHd3zHCVQGAj8zu+Z3yHNkkoYhWIGnq54RrCVwLz0MozotJEDnKsIBLvkfLGN6BLOyAeRrYI0pKA4g==} + engines: {node: '>=18.0.0'} local-pkg@0.5.0: resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} @@ -4968,10 +5179,6 @@ packages: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} engines: {node: '>=10'} - locate-path@7.2.0: - resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - lodash-es@4.17.21: resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} @@ -5033,9 +5240,9 @@ packages: resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} engines: {node: '>=10'} - log-update@4.0.0: - resolution: {integrity: sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==} - engines: {node: '>=10'} + log-update@6.1.0: + resolution: {integrity: sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==} + engines: {node: '>=18'} logform@2.4.0: resolution: {integrity: sha512-CPSJw4ftjf517EhXZGGvTHHkYobo7ZCc0kvwUoOYcjfR2UVrI66RHj8MCrfAdEitdmFqbu2BYdYs8FHHZSb6iw==} @@ -5290,6 +5497,10 @@ packages: resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} engines: {node: '>=8.6'} + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} + mime-db@1.52.0: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} @@ -5321,6 +5532,10 @@ packages: resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} engines: {node: '>=12'} + mimic-function@5.0.1: + resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==} + engines: {node: '>=18'} + min-indent@1.0.1: resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} engines: {node: '>=4'} @@ -5329,6 +5544,10 @@ packages: resolution: {integrity: sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==} hasBin: true + minimatch@10.0.1: + resolution: {integrity: sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==} + engines: {node: 20 || >=22} + minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} @@ -5344,6 +5563,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'} + minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} @@ -5429,11 +5652,6 @@ packages: nan@2.18.0: resolution: {integrity: sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w==} - nanoid@3.3.6: - resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - nanoid@3.3.7: resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -5525,6 +5743,9 @@ packages: node-releases@2.0.14: resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} + node-releases@2.0.18: + resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} + nopt@1.0.10: resolution: {integrity: sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==} hasBin: true @@ -5549,10 +5770,6 @@ packages: resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} engines: {node: '>=8'} - npm-run-path@5.1.0: - resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - npm-run-path@5.3.0: resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -5614,6 +5831,10 @@ packages: resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} engines: {node: '>=12'} + onetime@7.0.0: + resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==} + engines: {node: '>=18'} + open@6.4.0: resolution: {integrity: sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==} engines: {node: '>=8'} @@ -5649,10 +5870,6 @@ packages: resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} engines: {node: '>=10'} - p-limit@4.0.0: - resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - p-limit@5.0.0: resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==} engines: {node: '>=18'} @@ -5665,10 +5882,6 @@ packages: resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} engines: {node: '>=10'} - p-locate@6.0.0: - resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - p-map@4.0.0: resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} engines: {node: '>=10'} @@ -5685,6 +5898,9 @@ packages: resolution: {integrity: sha512-H+/A6KitiHNNW+bxBKREk2MCGSxljfqRX76NjummWEYIat7ldVXRU3dhRIE3iXZ0nvGBk6smv3nntxKkzRL8NA==} engines: {node: '>= 8'} + package-manager-detector@0.2.0: + resolution: {integrity: sha512-E385OSk9qDcXhcM9LNSe4sdhx8a9mAPrZ4sMLW+tmxl5ZuGtPUcdFu+MPP2jbgiWAZ6Pfe5soGFMd+0Db5Vrog==} + packet-reader@1.0.0: resolution: {integrity: sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==} @@ -5702,6 +5918,10 @@ packages: resolution: {integrity: sha512-RmVuCHWsfu0QPNW+mraxh/xjQVw/lhUCUru8Zni3Ctq3AoMhpDTq0OVdKS6iesd6Kqb7viCV3isAL43dciOSog==} engines: {node: '>=14'} + parse-imports@2.1.1: + resolution: {integrity: sha512-TDT4HqzUiTMO1wJRwg/t/hYk8Wdp3iF/ToMIlAoVQfL1Xs/sTxq1dKWSMjMbQmIarfWKymOyly40+zmPHXMqCA==} + engines: {node: '>= 18'} + parse-json@5.2.0: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} @@ -5720,10 +5940,6 @@ packages: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} - path-exists@5.0.0: - resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - path-is-absolute@1.0.1: resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} engines: {node: '>=0.10.0'} @@ -5820,6 +6036,9 @@ packages: picocolors@1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + picocolors@1.0.1: + resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} + picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} @@ -5881,27 +6100,23 @@ packages: peerDependencies: postcss: ^8.3.3 - postcss-scss@4.0.8: - resolution: {integrity: sha512-Cr0X8Eu7xMhE96PJck6ses/uVVXDtE5ghUTKNUYgm8ozgP2TkgV3LWs3WgLV1xaSSLq8ZFiXaUrj0LVgG1fGEA==} + postcss-scss@4.0.9: + resolution: {integrity: sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==} engines: {node: '>=12.0'} peerDependencies: postcss: ^8.4.29 - postcss-selector-parser@6.0.13: - resolution: {integrity: sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==} - engines: {node: '>=4'} - postcss-selector-parser@6.0.16: 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==} - postcss@8.4.30: - resolution: {integrity: sha512-7ZEao1g4kd68l97aWG/etQKPKq07us0ieSZ2TnFDk11i0ZfDW2AwKHYU8qv4MZKqN2fdBfg+7q0ES06UA73C1g==} - engines: {node: ^10 || ^12 || >=14} - postcss@8.4.35: resolution: {integrity: sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==} engines: {node: ^10 || ^12 || >=14} @@ -5914,6 +6129,10 @@ packages: resolution: {integrity: sha512-7iB/v/r7Woof0glKLH8b1SPHrsX7uhdO+Geb41QpF/+mWZHU3uxxSlN+UXGVit1PawOYDToO+AbZzhBzWRDwbQ==} engines: {node: ^10 || ^12 || >=14} + postcss@8.4.41: + resolution: {integrity: sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==} + engines: {node: ^10 || ^12 || >=14} + postgres-array@2.0.0: resolution: {integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==} engines: {node: '>=4'} @@ -6143,9 +6362,17 @@ packages: redeyed@2.1.1: resolution: {integrity: sha512-FNpGGo1DycYAdnrKFxCMmKYgo/mILAqtRYbkdQD8Ep/Hk2PQ5+aEAEx+IU713RTDmuBaH0c8P5ZozurNu5ObRQ==} + refa@0.12.1: + resolution: {integrity: sha512-J8rn6v4DBb2nnFqkqwy6/NnTYMcgLA+sLr0iIO41qpv0n+ngb7ksag2tMRl0inb1bbO/esUwzW1vbJi7K0sI0g==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + regenerator-runtime@0.13.11: resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} + regexp-ast-analysis@0.7.1: + resolution: {integrity: sha512-sZuz1dYW/ZsfG17WSAG7eS85r5a0dDsvg+7BiiYR5o6lKCAtUrEwdmRmaGF6rwVj3LcmAeYkOWKEPlbPzN3Y3A==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + regexp-tree@0.1.27: resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==} hasBin: true @@ -6230,6 +6457,10 @@ packages: resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} engines: {node: '>=8'} + restore-cursor@5.1.0: + resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==} + engines: {node: '>=18'} + retry-request@5.0.2: resolution: {integrity: sha512-wfI3pk7EE80lCIXprqh7ym48IHYdwmAAzESdbU8Q9l7pnRCk9LEhpbOTNKjz6FARLm/Bl5m+4F0ABxOkYUujSQ==} engines: {node: '>=12'} @@ -6250,8 +6481,8 @@ packages: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - rfdc@1.3.0: - resolution: {integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==} + rfdc@1.4.1: + resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} rimraf@2.7.1: resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} @@ -6320,6 +6551,10 @@ packages: resolution: {integrity: sha512-WKUxXC2qeyno6J3ucwwLozPL6j1HXOZiN5wIUf7iqAhlx1RUC/6ePIKHi7iPc3Cy6DYuZcJriZXxXkSdo2FQHg==} engines: {node: '>=16'} + scslre@0.3.0: + resolution: {integrity: sha512-3A6sD0WYP7+QrjbfNA2FN3FsOaGGFoekCVgTyypy53gPxhbkCIjtO6YWgdrfM+n/8sI8JeXZOIxsHjMTNxQ4nQ==} + engines: {node: ^14.0.0 || >=16.0.0} + search-insights@2.2.1: resolution: {integrity: sha512-JDfVGZbKqTtiKVZjAVbkNw9C9f0ib80yx6Ea17M3z4RvPmuD0GYWXuFwA9++dpbreBEMH4TC3lQ29Zq7O4b5oA==} engines: {node: '>=8.16.0'} @@ -6350,6 +6585,11 @@ packages: engines: {node: '>=10'} hasBin: true + semver@7.6.3: + resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} + engines: {node: '>=10'} + hasBin: true + send@0.18.0: resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} engines: {node: '>= 0.8.0'} @@ -6405,8 +6645,8 @@ packages: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} - simple-git-hooks@2.11.0: - resolution: {integrity: sha512-Wab2uzjGJEL8Kx+2UY8waUSfkiolt2RbaAJWvPCjaAEXrrKoS7JqPk4STiIVl/yt3asZRUzFoK2ryhwvgh5rYw==} + simple-git-hooks@2.11.1: + resolution: {integrity: sha512-tgqwPUMDcNDhuf1Xf6KTUsyeqGdgKMhzaH4PAZZuzguOgTl5uuyeYe/8mWgAr6IBxB5V06uqEf6Dy37gIWDtDg==} hasBin: true simple-swizzle@0.2.2: @@ -6426,18 +6666,17 @@ packages: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} - slice-ansi@3.0.0: - resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==} - engines: {node: '>=8'} - - slice-ansi@4.0.0: - resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} - engines: {node: '>=10'} + slashes@3.0.12: + resolution: {integrity: sha512-Q9VME8WyGkc7pJf6QEkj3wE+2CnvZMI+XJhwdTPR8Z/kWQRXi7boAWLDibRPyHRTUTPx5FaU7MsyrjI3yLB4HA==} slice-ansi@5.0.0: resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} engines: {node: '>=12'} + slice-ansi@7.1.0: + resolution: {integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==} + engines: {node: '>=18'} + smart-buffer@4.2.0: resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} @@ -6522,14 +6761,17 @@ packages: resolution: {integrity: sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + stable-hash@0.0.4: + resolution: {integrity: sha512-LjdcbuBeLcdETCrPn9i8AYAZ1eCtu4ECAWtP7UleOiZ9LzVxRzzUZEoZ8zB24nhkQnDWyET0I+3sWokSDS3E7g==} + stack-trace@0.0.10: resolution: {integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==} stackback@0.0.2: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} - start-server-and-test@2.0.3: - resolution: {integrity: sha512-QsVObjfjFZKJE6CS6bSKNwWZCKBG6975/jKRPPGFfFh+yOQglSeGXiNWjzgQNXdphcBI9nXbyso9tPfX4YAUhg==} + start-server-and-test@2.0.5: + resolution: {integrity: sha512-2CV4pz69NJVJKQmJeSr+O+SPtOreu0yxvhPmSXclzmAKkPREuMabyMh+Txpzemjx0RDzXOcG2XkhiUuxjztSQw==} engines: {node: '>=16'} hasBin: true @@ -6580,6 +6822,10 @@ packages: resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} engines: {node: '>=12'} + string-width@7.2.0: + resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} + engines: {node: '>=18'} + string.prototype.codepointat@0.2.1: resolution: {integrity: sha512-2cBVCj6I4IOvEnjgO/hWqXjqBGsY+zwPmHl12Srk9IXSZ56Jwwmy+66XO5Iut/oQVR7t5ihYdLB0GMa4alEUcg==} @@ -6671,11 +6917,11 @@ packages: peerDependencies: svelte: ^3.55.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0 - svelte-eslint-parser@0.33.0: - resolution: {integrity: sha512-5awZ6Bs+Tb/zQwa41PSdcLynAVQTwW0HGyCBjtbAQ59taLZqDgQSMzRlDmapjZdDtzERm0oXDZNE0E+PKJ6ryg==} + svelte-eslint-parser@0.41.0: + resolution: {integrity: sha512-L6f4hOL+AbgfBIB52Z310pg1d2QjRqm7wy3kI1W6hhdhX5bvu7+f0R6w4ykp5HoDdzq+vGhIJmsisaiJDGmVfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: - svelte: ^3.37.0 || ^4.0.0 + svelte: ^3.37.0 || ^4.0.0 || ^5.0.0-next.191 peerDependenciesMeta: svelte: optional: true @@ -6756,6 +7002,14 @@ packages: resolution: {integrity: sha512-Vhf+bUa//YSTYKseDiiEuQmhGCoIF3CVBhunm3r/DQnYiGT4JssmnKQc44BIyOZRK2pKjXXAgbhfmbeoC9CJpA==} engines: {node: '>=12.20'} + synckit@0.9.1: + resolution: {integrity: sha512-7gr8p9TQP6RAHusBOSLs46F4564ZrjV8xFmw5zCmgmhGUcw2hxsShhJ6CEiHQMgPDwAQ1fWHPM0ypc4RMAig4A==} + engines: {node: ^14.18.0 || >=16.0.0} + + tapable@2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + engines: {node: '>=6'} + tar-stream@2.2.0: resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} engines: {node: '>=6'} @@ -6793,6 +7047,9 @@ packages: tinybench@2.6.0: resolution: {integrity: sha512-N8hW3PG/3aOoZAN5V/NSAEDz0ZixDSSt5b/a05iqtpgfLWMSVuCo7w0k2vVvEjdrIoeGqZzweX2WlyioNIHchA==} + tinyexec@0.3.0: + resolution: {integrity: sha512-tVGE0mVJPGb0chKhqmsoosjsS+qUnJVGJpZgsHYQcGoPlG3B51R3PouqTgEGH2Dc9jjFyOqOpix6ZHNMXp1FZg==} + tinypool@0.8.2: resolution: {integrity: sha512-SUszKYe5wgsxnNOVlBYO6IC+8VGWdVGZWAqUxp3UErNBtptZvWbwyUOyzNL59zigz2rCA92QiL3wvG+JDSdJdQ==} engines: {node: '>=14.0.0'} @@ -6824,8 +7081,8 @@ packages: resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} engines: {node: '>=0.6'} - toml-eslint-parser@0.9.3: - resolution: {integrity: sha512-moYoCvkNUAPCxSW9jmHmRElhm4tVJpHL8ItC/+uYD0EpPSFXbck7yREz9tNdJVTSpHVod8+HoipcpbQ0oE6gsw==} + toml-eslint-parser@0.10.0: + resolution: {integrity: sha512-khrZo4buq4qVmsGzS5yQjKe/WsFvV8fGfOjDQN0q4iy9FjRfPWRgTFrU8u1R2iu/SfWLhY9WnCi4Jhdrcbtg+g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} topojson-client@3.1.0: @@ -6859,14 +7116,14 @@ packages: trough@2.2.0: resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} - ts-api-utils@1.0.3: - resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==} - engines: {node: '>=16.13.0'} + ts-api-utils@1.2.1: + resolution: {integrity: sha512-RIYA36cJn2WiH9Hy77hdF9r7oEwxAtB/TS9/S4Qd90Ap4z5FSiin5zEiTL44OII1Y3IIlEvxwxFUVgrHSZ/UpA==} + engines: {node: '>=16'} peerDependencies: typescript: '>=4.2.0' - ts-api-utils@1.2.1: - resolution: {integrity: sha512-RIYA36cJn2WiH9Hy77hdF9r7oEwxAtB/TS9/S4Qd90Ap4z5FSiin5zEiTL44OII1Y3IIlEvxwxFUVgrHSZ/UpA==} + ts-api-utils@1.3.0: + resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} engines: {node: '>=16'} peerDependencies: typescript: '>=4.2.0' @@ -6880,8 +7137,11 @@ packages: tslib@2.6.2: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} - tsx@4.7.1: - resolution: {integrity: sha512-8d6VuibXHtlN5E3zFkgY8u4DX7Y3Z27zvvPKVmLon/D4AjuKzarkUBTLDBgj9iTQ0hg5xM7c/mYiRVM+HETf0g==} + tslib@2.7.0: + resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==} + + tsx@4.19.0: + resolution: {integrity: sha512-bV30kM7bsLZKZIOCHeMNVMJ32/LuJzLVajkQI/qf92J2Qr08ueLQvW00PUZGiuLPP760UINwupgUj8qrSCPUKg==} engines: {node: '>=18.0.0'} hasBin: true @@ -6966,10 +7226,6 @@ packages: resolution: {integrity: sha512-3ItfzbrhDlINjaP0duwnNsKpDQk3acHI3gVJ1z4fmwMK31k5G9OVIAMLSIaP6w4FaGkaAkN6zaQO9LUvZ1t7VA==} engines: {node: '>=14.0'} - unicorn-magic@0.1.0: - resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} - engines: {node: '>=18'} - unified@10.1.2: resolution: {integrity: sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==} @@ -7049,6 +7305,12 @@ packages: peerDependencies: browserslist: '>= 4.21.0' + update-browserslist-db@1.1.0: + resolution: {integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + update-notifier-cjs@5.1.6: resolution: {integrity: sha512-wgxdSBWv3x/YpMzsWz5G4p4ec7JWD0HCl8W6bmNB6E5Gwo+1ym5oN4hiXpLf0mPySVEJEIsYlkshnplkg2OP9A==} engines: {node: '>=14'} @@ -7222,8 +7484,8 @@ packages: vscode-textmate@5.2.0: resolution: {integrity: sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ==} - vue-eslint-parser@9.4.2: - resolution: {integrity: sha512-Ry9oiGmCAK91HrKMtCrKFWmSFWvYkpGglCeFAIqDdr9zdXmMMpJOmUJS7WWsW7fX81h6mwHmUZCQQ1E0PkSwYQ==} + vue-eslint-parser@9.4.3: + resolution: {integrity: sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg==} engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: eslint: '>=6.0.0' @@ -7304,10 +7566,6 @@ packages: resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} engines: {node: '>=0.10.0'} - wrap-ansi@6.2.0: - resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} - engines: {node: '>=8'} - wrap-ansi@7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} @@ -7316,6 +7574,10 @@ packages: resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} engines: {node: '>=12'} + wrap-ansi@9.0.0: + resolution: {integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==} + engines: {node: '>=18'} + wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} @@ -7402,8 +7664,8 @@ packages: yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - yaml-eslint-parser@1.2.2: - resolution: {integrity: sha512-pEwzfsKbTrB8G3xc/sN7aw1v6A6c/pKxLAkjclnAyo5g5qOh6eL9WGu0o3cSDQZKrTNk4KL4lQSwZW+nBkANEg==} + yaml-eslint-parser@1.2.3: + resolution: {integrity: sha512-4wZWvE398hCP7O8n3nXKu/vdq1HcH01ixYlCREaJL5NUMwQ0g3MaGFUBNSlmBtKmhbtVG/Cm6lyYmSVTEVil8A==} engines: {node: ^14.17.0 || >=16.0.0} yaml@1.10.2: @@ -7414,6 +7676,11 @@ packages: resolution: {integrity: sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==} engines: {node: '>= 14'} + yaml@2.5.0: + resolution: {integrity: sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw==} + engines: {node: '>= 14'} + hasBin: true + yargs-parser@21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} @@ -7514,45 +7781,49 @@ snapshots: '@jridgewell/gen-mapping': 0.3.4 '@jridgewell/trace-mapping': 0.3.23 - '@antfu/eslint-config@2.12.1(@vue/compiler-sfc@3.4.21)(eslint-plugin-svelte@2.33.2(eslint@8.56.0)(svelte@4.2.12))(eslint@8.56.0)(svelte@4.2.12)(typescript@5.1.6)(vitest@1.4.0(@types/node@20.11.0)(@vitest/ui@1.4.0))': + '@antfu/eslint-config@2.27.3(@typescript-eslint/utils@8.3.0(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6))(@vue/compiler-sfc@3.4.21)(eslint-plugin-svelte@2.43.0(eslint@9.9.1(jiti@1.21.0))(svelte@4.2.12))(eslint@9.9.1(jiti@1.21.0))(svelte-eslint-parser@0.41.0(svelte@4.2.12))(svelte@4.2.12)(typescript@5.1.6)(vitest@1.4.0(@types/node@20.11.0)(@vitest/ui@1.4.0))': dependencies: - '@antfu/install-pkg': 0.3.2 + '@antfu/install-pkg': 0.4.1 '@clack/prompts': 0.7.0 - '@stylistic/eslint-plugin': 1.7.0(eslint@8.56.0)(typescript@5.1.6) - '@typescript-eslint/eslint-plugin': 7.5.0(@typescript-eslint/parser@7.5.0(eslint@8.56.0)(typescript@5.1.6))(eslint@8.56.0)(typescript@5.1.6) - '@typescript-eslint/parser': 7.5.0(eslint@8.56.0)(typescript@5.1.6) - eslint: 8.56.0 - eslint-config-flat-gitignore: 0.1.5 - eslint-flat-config-utils: 0.2.0 - eslint-merge-processors: 0.1.0(eslint@8.56.0) - eslint-plugin-antfu: 2.1.2(eslint@8.56.0) - eslint-plugin-eslint-comments: 3.2.0(eslint@8.56.0) - eslint-plugin-import-x: 0.5.0(eslint@8.56.0)(typescript@5.1.6) - eslint-plugin-jsdoc: 48.2.2(eslint@8.56.0) - eslint-plugin-jsonc: 2.15.0(eslint@8.56.0) - eslint-plugin-markdown: 4.0.1(eslint@8.56.0) - eslint-plugin-n: 16.6.2(eslint@8.56.0) - eslint-plugin-no-only-tests: 3.1.0 - eslint-plugin-perfectionist: 2.7.0(eslint@8.56.0)(svelte@4.2.12)(typescript@5.1.6)(vue-eslint-parser@9.4.2(eslint@8.56.0)) - eslint-plugin-toml: 0.11.0(eslint@8.56.0) - eslint-plugin-unicorn: 51.0.1(eslint@8.56.0) - eslint-plugin-unused-imports: 3.1.0(@typescript-eslint/eslint-plugin@7.5.0(@typescript-eslint/parser@7.5.0(eslint@8.56.0)(typescript@5.1.6))(eslint@8.56.0)(typescript@5.1.6))(eslint@8.56.0) - eslint-plugin-vitest: 0.4.1(@typescript-eslint/eslint-plugin@7.5.0(@typescript-eslint/parser@7.5.0(eslint@8.56.0)(typescript@5.1.6))(eslint@8.56.0)(typescript@5.1.6))(eslint@8.56.0)(typescript@5.1.6)(vitest@1.4.0(@types/node@20.11.0)(@vitest/ui@1.4.0)) - eslint-plugin-vue: 9.24.0(eslint@8.56.0) - eslint-plugin-yml: 1.14.0(eslint@8.56.0) - eslint-processor-vue-blocks: 0.1.1(@vue/compiler-sfc@3.4.21)(eslint@8.56.0) - globals: 15.0.0 + '@eslint-community/eslint-plugin-eslint-comments': 4.4.0(eslint@9.9.1(jiti@1.21.0)) + '@stylistic/eslint-plugin': 2.6.4(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6) + '@typescript-eslint/eslint-plugin': 8.3.0(@typescript-eslint/parser@8.3.0(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6))(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6) + '@typescript-eslint/parser': 8.3.0(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6) + '@vitest/eslint-plugin': 1.1.0(@typescript-eslint/utils@8.3.0(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6))(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6)(vitest@1.4.0(@types/node@20.11.0)(@vitest/ui@1.4.0)) + eslint: 9.9.1(jiti@1.21.0) + eslint-config-flat-gitignore: 0.1.8 + eslint-flat-config-utils: 0.3.1 + eslint-merge-processors: 0.1.0(eslint@9.9.1(jiti@1.21.0)) + eslint-plugin-antfu: 2.3.6(eslint@9.9.1(jiti@1.21.0)) + eslint-plugin-command: 0.2.3(eslint@9.9.1(jiti@1.21.0)) + eslint-plugin-import-x: 4.1.0(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6) + eslint-plugin-jsdoc: 50.2.2(eslint@9.9.1(jiti@1.21.0)) + eslint-plugin-jsonc: 2.16.0(eslint@9.9.1(jiti@1.21.0)) + eslint-plugin-markdown: 5.1.0(eslint@9.9.1(jiti@1.21.0)) + eslint-plugin-n: 17.10.2(eslint@9.9.1(jiti@1.21.0)) + eslint-plugin-no-only-tests: 3.3.0 + eslint-plugin-perfectionist: 3.3.0(eslint@9.9.1(jiti@1.21.0))(svelte-eslint-parser@0.41.0(svelte@4.2.12))(svelte@4.2.12)(typescript@5.1.6)(vue-eslint-parser@9.4.3(eslint@9.9.1(jiti@1.21.0))) + eslint-plugin-regexp: 2.6.0(eslint@9.9.1(jiti@1.21.0)) + eslint-plugin-toml: 0.11.1(eslint@9.9.1(jiti@1.21.0)) + eslint-plugin-unicorn: 55.0.0(eslint@9.9.1(jiti@1.21.0)) + eslint-plugin-unused-imports: 4.1.3(@typescript-eslint/eslint-plugin@8.3.0(@typescript-eslint/parser@8.3.0(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6))(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6))(eslint@9.9.1(jiti@1.21.0)) + eslint-plugin-vue: 9.27.0(eslint@9.9.1(jiti@1.21.0)) + eslint-plugin-yml: 1.14.0(eslint@9.9.1(jiti@1.21.0)) + eslint-processor-vue-blocks: 0.1.2(@vue/compiler-sfc@3.4.21)(eslint@9.9.1(jiti@1.21.0)) + globals: 15.9.0 jsonc-eslint-parser: 2.4.0 local-pkg: 0.5.0 parse-gitignore: 2.0.0 - picocolors: 1.0.0 - toml-eslint-parser: 0.9.3 - vue-eslint-parser: 9.4.2(eslint@8.56.0) - yaml-eslint-parser: 1.2.2 + picocolors: 1.0.1 + toml-eslint-parser: 0.10.0 + vue-eslint-parser: 9.4.3(eslint@9.9.1(jiti@1.21.0)) + yaml-eslint-parser: 1.2.3 yargs: 17.7.2 optionalDependencies: - eslint-plugin-svelte: 2.33.2(eslint@8.56.0)(svelte@4.2.12) + eslint-plugin-svelte: 2.43.0(eslint@9.9.1(jiti@1.21.0))(svelte@4.2.12) + svelte-eslint-parser: 0.41.0(svelte@4.2.12) transitivePeerDependencies: + - '@typescript-eslint/utils' - '@vue/compiler-sfc' - supports-color - svelte @@ -7564,9 +7835,12 @@ snapshots: execa: 5.1.1 find-up: 5.0.0 - '@antfu/install-pkg@0.3.2': + '@antfu/install-pkg@0.4.1': dependencies: - execa: 8.0.1 + package-manager-detector: 0.2.0 + tinyexec: 0.3.0 + + '@antfu/utils@0.7.10': {} '@antfu/utils@0.7.7': {} @@ -7693,6 +7967,8 @@ snapshots: '@babel/helper-validator-identifier@7.22.20': {} + '@babel/helper-validator-identifier@7.24.7': {} + '@babel/helper-validator-option@7.23.5': {} '@babel/helpers@7.23.9': @@ -8017,13 +8293,13 @@ snapshots: '@clack/core@0.3.4': dependencies: - picocolors: 1.0.0 + picocolors: 1.0.1 sisteransi: 1.0.5 '@clack/prompts@0.7.0': dependencies: '@clack/core': 0.3.4 - picocolors: 1.0.0 + picocolors: 1.0.1 sisteransi: 1.0.5 '@codemirror/autocomplete@6.16.0(@codemirror/language@6.10.1)(@codemirror/state@6.4.1)(@codemirror/view@6.26.3)(@lezer/common@1.2.1)': @@ -8087,94 +8363,191 @@ snapshots: enabled: 2.0.0 kuler: 2.0.0 - '@es-joy/jsdoccomment@0.42.0': + '@es-joy/jsdoccomment@0.43.1': dependencies: + '@types/eslint': 8.56.7 + '@types/estree': 1.0.5 + '@typescript-eslint/types': 7.5.0 comment-parser: 1.4.1 esquery: 1.5.0 jsdoc-type-pratt-parser: 4.0.0 + '@es-joy/jsdoccomment@0.48.0': + dependencies: + comment-parser: 1.4.1 + esquery: 1.6.0 + jsdoc-type-pratt-parser: 4.1.0 + '@esbuild/aix-ppc64@0.19.12': optional: true + '@esbuild/aix-ppc64@0.23.1': + optional: true + '@esbuild/android-arm64@0.19.12': optional: true + '@esbuild/android-arm64@0.23.1': + optional: true + '@esbuild/android-arm@0.19.12': optional: true + '@esbuild/android-arm@0.23.1': + optional: true + '@esbuild/android-x64@0.19.12': optional: true + '@esbuild/android-x64@0.23.1': + optional: true + '@esbuild/darwin-arm64@0.19.12': optional: true + '@esbuild/darwin-arm64@0.23.1': + optional: true + '@esbuild/darwin-x64@0.19.12': optional: true + '@esbuild/darwin-x64@0.23.1': + optional: true + '@esbuild/freebsd-arm64@0.19.12': optional: true + '@esbuild/freebsd-arm64@0.23.1': + optional: true + '@esbuild/freebsd-x64@0.19.12': optional: true + '@esbuild/freebsd-x64@0.23.1': + optional: true + '@esbuild/linux-arm64@0.19.12': optional: true + '@esbuild/linux-arm64@0.23.1': + optional: true + '@esbuild/linux-arm@0.19.12': optional: true + '@esbuild/linux-arm@0.23.1': + optional: true + '@esbuild/linux-ia32@0.19.12': optional: true + '@esbuild/linux-ia32@0.23.1': + optional: true + '@esbuild/linux-loong64@0.19.12': optional: true + '@esbuild/linux-loong64@0.23.1': + optional: true + '@esbuild/linux-mips64el@0.19.12': optional: true + '@esbuild/linux-mips64el@0.23.1': + optional: true + '@esbuild/linux-ppc64@0.19.12': optional: true + '@esbuild/linux-ppc64@0.23.1': + optional: true + '@esbuild/linux-riscv64@0.19.12': optional: true + '@esbuild/linux-riscv64@0.23.1': + optional: true + '@esbuild/linux-s390x@0.19.12': optional: true + '@esbuild/linux-s390x@0.23.1': + optional: true + '@esbuild/linux-x64@0.19.12': optional: true + '@esbuild/linux-x64@0.23.1': + optional: true + '@esbuild/netbsd-x64@0.19.12': optional: true + '@esbuild/netbsd-x64@0.23.1': + optional: true + + '@esbuild/openbsd-arm64@0.23.1': + optional: true + '@esbuild/openbsd-x64@0.19.12': optional: true + '@esbuild/openbsd-x64@0.23.1': + optional: true + '@esbuild/sunos-x64@0.19.12': optional: true + '@esbuild/sunos-x64@0.23.1': + optional: true + '@esbuild/win32-arm64@0.19.12': optional: true + '@esbuild/win32-arm64@0.23.1': + optional: true + '@esbuild/win32-ia32@0.19.12': optional: true + '@esbuild/win32-ia32@0.23.1': + optional: true + '@esbuild/win32-x64@0.19.12': optional: true - '@eslint-community/eslint-utils@4.4.0(eslint@8.56.0)': + '@esbuild/win32-x64@0.23.1': + optional: true + + '@eslint-community/eslint-plugin-eslint-comments@4.4.0(eslint@9.9.1(jiti@1.21.0))': + dependencies: + escape-string-regexp: 4.0.0 + eslint: 9.9.1(jiti@1.21.0) + ignore: 5.3.1 + + '@eslint-community/eslint-utils@4.4.0(eslint@9.9.1(jiti@1.21.0))': dependencies: - eslint: 8.56.0 + eslint: 9.9.1(jiti@1.21.0) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.10.0': {} - '@eslint/eslintrc@2.1.4': + '@eslint-community/regexpp@4.11.0': {} + + '@eslint/config-array@0.18.0': + dependencies: + '@eslint/object-schema': 2.1.4 + debug: 4.3.4 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + '@eslint/eslintrc@3.1.0': dependencies: ajv: 6.12.6 debug: 4.3.4 - espree: 9.6.1 - globals: 13.20.0 + espree: 10.1.0 + globals: 14.0.0 ignore: 5.3.1 import-fresh: 3.3.0 js-yaml: 4.1.0 @@ -8183,7 +8556,9 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@8.56.0': {} + '@eslint/js@9.9.1': {} + + '@eslint/object-schema@2.1.4': {} '@fastify/busboy@1.2.1': dependencies: @@ -8638,19 +9013,11 @@ snapshots: dependencies: '@hapi/hoek': 9.3.0 - '@humanwhocodes/config-array@0.11.14': - dependencies: - '@humanwhocodes/object-schema': 2.0.2 - debug: 4.3.4 - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color - '@humanwhocodes/module-importer@1.0.1': {} - '@humanwhocodes/object-schema@2.0.2': {} + '@humanwhocodes/retry@0.3.0': {} - '@iconify/json@2.2.192': + '@iconify/json@2.2.242': dependencies: '@iconify/types': 2.0.0 pathe: 1.1.2 @@ -8711,10 +9078,10 @@ snapshots: dependencies: lodash: 4.17.21 - '@julr/unocss-preset-forms@0.0.5(unocss@0.58.5(postcss@8.4.37)(rollup@4.13.0)(vite@5.1.4(@types/node@20.11.0)))': + '@julr/unocss-preset-forms@0.0.5(unocss@0.58.5(postcss@8.4.41)(rollup@4.13.0)(vite@5.1.4(@types/node@20.11.0)))': dependencies: mini-svg-data-uri: 1.4.4 - unocss: 0.58.5(postcss@8.4.37)(rollup@4.13.0)(vite@5.1.4(@types/node@20.11.0)) + unocss: 0.58.5(postcss@8.4.41)(rollup@4.13.0)(vite@5.1.4(@types/node@20.11.0)) '@kitbook/mdsvex-shiki-twoslash@1.0.0-beta.31(svelte@4.2.12)(typescript@5.1.6)': dependencies: @@ -8775,18 +9142,20 @@ snapshots: '@npmcli/fs@3.1.0': dependencies: - semver: 7.5.4 + semver: 7.6.0 optional: true '@opentelemetry/api@1.1.0': {} '@opentelemetry/semantic-conventions@1.3.1': {} - '@orama/orama@2.0.11': {} + '@orama/orama@2.0.23': {} '@pkgjs/parseargs@0.11.0': optional: true + '@pkgr/core@0.1.1': {} + '@playwright/test@1.41.2': dependencies: playwright: 1.41.2 @@ -9016,50 +9385,47 @@ snapshots: '@socket.io/component-emitter@3.1.0': {} - '@stylistic/eslint-plugin-js@1.7.0(eslint@8.56.0)': + '@stylistic/eslint-plugin-js@2.6.4(eslint@9.9.1(jiti@1.21.0))': dependencies: - '@types/eslint': 8.56.7 - acorn: 8.11.3 - escape-string-regexp: 4.0.0 - eslint: 8.56.0 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 + '@types/eslint': 9.6.1 + acorn: 8.12.1 + eslint: 9.9.1(jiti@1.21.0) + eslint-visitor-keys: 4.0.0 + espree: 10.1.0 - '@stylistic/eslint-plugin-jsx@1.7.0(eslint@8.56.0)': + '@stylistic/eslint-plugin-jsx@2.6.4(eslint@9.9.1(jiti@1.21.0))': dependencies: - '@stylistic/eslint-plugin-js': 1.7.0(eslint@8.56.0) - '@types/eslint': 8.56.7 - eslint: 8.56.0 + '@stylistic/eslint-plugin-js': 2.6.4(eslint@9.9.1(jiti@1.21.0)) + '@types/eslint': 9.6.1 + eslint: 9.9.1(jiti@1.21.0) + eslint-visitor-keys: 4.0.0 + espree: 10.1.0 estraverse: 5.3.0 picomatch: 4.0.2 - '@stylistic/eslint-plugin-plus@1.7.0(eslint@8.56.0)(typescript@5.1.6)': + '@stylistic/eslint-plugin-plus@2.6.4(eslint@9.9.1(jiti@1.21.0))': dependencies: - '@types/eslint': 8.56.7 - '@typescript-eslint/utils': 6.21.0(eslint@8.56.0)(typescript@5.1.6) - eslint: 8.56.0 - transitivePeerDependencies: - - supports-color - - typescript + '@types/eslint': 9.6.1 + eslint: 9.9.1(jiti@1.21.0) - '@stylistic/eslint-plugin-ts@1.7.0(eslint@8.56.0)(typescript@5.1.6)': + '@stylistic/eslint-plugin-ts@2.6.4(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6)': dependencies: - '@stylistic/eslint-plugin-js': 1.7.0(eslint@8.56.0) - '@types/eslint': 8.56.7 - '@typescript-eslint/utils': 6.21.0(eslint@8.56.0)(typescript@5.1.6) - eslint: 8.56.0 + '@stylistic/eslint-plugin-js': 2.6.4(eslint@9.9.1(jiti@1.21.0)) + '@types/eslint': 9.6.1 + '@typescript-eslint/utils': 8.3.0(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6) + eslint: 9.9.1(jiti@1.21.0) transitivePeerDependencies: - supports-color - typescript - '@stylistic/eslint-plugin@1.7.0(eslint@8.56.0)(typescript@5.1.6)': + '@stylistic/eslint-plugin@2.6.4(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6)': dependencies: - '@stylistic/eslint-plugin-js': 1.7.0(eslint@8.56.0) - '@stylistic/eslint-plugin-jsx': 1.7.0(eslint@8.56.0) - '@stylistic/eslint-plugin-plus': 1.7.0(eslint@8.56.0)(typescript@5.1.6) - '@stylistic/eslint-plugin-ts': 1.7.0(eslint@8.56.0)(typescript@5.1.6) - '@types/eslint': 8.56.7 - eslint: 8.56.0 + '@stylistic/eslint-plugin-js': 2.6.4(eslint@9.9.1(jiti@1.21.0)) + '@stylistic/eslint-plugin-jsx': 2.6.4(eslint@9.9.1(jiti@1.21.0)) + '@stylistic/eslint-plugin-plus': 2.6.4(eslint@9.9.1(jiti@1.21.0)) + '@stylistic/eslint-plugin-ts': 2.6.4(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6) + '@types/eslint': 9.6.1 + eslint: 9.9.1(jiti@1.21.0) transitivePeerDependencies: - supports-color - typescript @@ -10274,6 +10640,11 @@ snapshots: '@types/estree': 1.0.5 '@types/json-schema': 7.0.15 + '@types/eslint@9.6.1': + dependencies: + '@types/estree': 1.0.5 + '@types/json-schema': 7.0.15 + '@types/estree@1.0.5': {} '@types/express-serve-static-core@4.17.33': @@ -10381,7 +10752,7 @@ snapshots: '@types/parse5@6.0.3': {} - '@types/pg@8.10.9': + '@types/pg@8.11.8': dependencies: '@types/node': 18.18.0 pg-protocol: 1.6.0 @@ -10416,8 +10787,6 @@ snapshots: '@types/semver@7.5.3': {} - '@types/semver@7.5.7': {} - '@types/send@0.17.4': dependencies: '@types/mime': 1.3.5 @@ -10454,118 +10823,64 @@ snapshots: '@types/yoga-layout@1.9.2': {} - '@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@7.5.0(eslint@8.56.0)(typescript@5.1.6))(eslint@8.56.0)(typescript@5.1.6)': - dependencies: - '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 7.5.0(eslint@8.56.0)(typescript@5.1.6) - '@typescript-eslint/scope-manager': 6.21.0 - '@typescript-eslint/type-utils': 6.21.0(eslint@8.56.0)(typescript@5.1.6) - '@typescript-eslint/utils': 6.21.0(eslint@8.56.0)(typescript@5.1.6) - '@typescript-eslint/visitor-keys': 6.21.0 - debug: 4.3.4 - eslint: 8.56.0 - graphemer: 1.4.0 - ignore: 5.3.1 - natural-compare: 1.4.0 - semver: 7.6.0 - ts-api-utils: 1.2.1(typescript@5.1.6) - optionalDependencies: - typescript: 5.1.6 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/eslint-plugin@7.5.0(@typescript-eslint/parser@7.5.0(eslint@8.56.0)(typescript@5.1.6))(eslint@8.56.0)(typescript@5.1.6)': + '@typescript-eslint/eslint-plugin@8.3.0(@typescript-eslint/parser@8.3.0(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6))(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6)': dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 7.5.0(eslint@8.56.0)(typescript@5.1.6) - '@typescript-eslint/scope-manager': 7.5.0 - '@typescript-eslint/type-utils': 7.5.0(eslint@8.56.0)(typescript@5.1.6) - '@typescript-eslint/utils': 7.5.0(eslint@8.56.0)(typescript@5.1.6) - '@typescript-eslint/visitor-keys': 7.5.0 - debug: 4.3.4 - eslint: 8.56.0 + '@typescript-eslint/parser': 8.3.0(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6) + '@typescript-eslint/scope-manager': 8.3.0 + '@typescript-eslint/type-utils': 8.3.0(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6) + '@typescript-eslint/utils': 8.3.0(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6) + '@typescript-eslint/visitor-keys': 8.3.0 + eslint: 9.9.1(jiti@1.21.0) graphemer: 1.4.0 ignore: 5.3.1 natural-compare: 1.4.0 - semver: 7.6.0 - ts-api-utils: 1.2.1(typescript@5.1.6) + ts-api-utils: 1.3.0(typescript@5.1.6) optionalDependencies: typescript: 5.1.6 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@7.5.0(eslint@8.56.0)(typescript@5.1.6)': + '@typescript-eslint/parser@8.3.0(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6)': dependencies: - '@typescript-eslint/scope-manager': 7.5.0 - '@typescript-eslint/types': 7.5.0 - '@typescript-eslint/typescript-estree': 7.5.0(typescript@5.1.6) - '@typescript-eslint/visitor-keys': 7.5.0 + '@typescript-eslint/scope-manager': 8.3.0 + '@typescript-eslint/types': 8.3.0 + '@typescript-eslint/typescript-estree': 8.3.0(typescript@5.1.6) + '@typescript-eslint/visitor-keys': 8.3.0 debug: 4.3.4 - eslint: 8.56.0 + eslint: 9.9.1(jiti@1.21.0) optionalDependencies: typescript: 5.1.6 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@6.21.0': - dependencies: - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/visitor-keys': 6.21.0 - '@typescript-eslint/scope-manager@6.7.3': dependencies: '@typescript-eslint/types': 6.7.3 '@typescript-eslint/visitor-keys': 6.7.3 - '@typescript-eslint/scope-manager@7.5.0': - dependencies: - '@typescript-eslint/types': 7.5.0 - '@typescript-eslint/visitor-keys': 7.5.0 - - '@typescript-eslint/type-utils@6.21.0(eslint@8.56.0)(typescript@5.1.6)': + '@typescript-eslint/scope-manager@8.3.0': dependencies: - '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.1.6) - '@typescript-eslint/utils': 6.21.0(eslint@8.56.0)(typescript@5.1.6) - debug: 4.3.4 - eslint: 8.56.0 - ts-api-utils: 1.2.1(typescript@5.1.6) - optionalDependencies: - typescript: 5.1.6 - transitivePeerDependencies: - - supports-color + '@typescript-eslint/types': 8.3.0 + '@typescript-eslint/visitor-keys': 8.3.0 - '@typescript-eslint/type-utils@7.5.0(eslint@8.56.0)(typescript@5.1.6)': + '@typescript-eslint/type-utils@8.3.0(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6)': dependencies: - '@typescript-eslint/typescript-estree': 7.5.0(typescript@5.1.6) - '@typescript-eslint/utils': 7.5.0(eslint@8.56.0)(typescript@5.1.6) + '@typescript-eslint/typescript-estree': 8.3.0(typescript@5.1.6) + '@typescript-eslint/utils': 8.3.0(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6) debug: 4.3.4 - eslint: 8.56.0 - ts-api-utils: 1.2.1(typescript@5.1.6) + ts-api-utils: 1.3.0(typescript@5.1.6) optionalDependencies: typescript: 5.1.6 transitivePeerDependencies: + - eslint - supports-color - '@typescript-eslint/types@6.21.0': {} - '@typescript-eslint/types@6.7.3': {} '@typescript-eslint/types@7.5.0': {} - '@typescript-eslint/typescript-estree@6.21.0(typescript@5.1.6)': - dependencies: - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/visitor-keys': 6.21.0 - debug: 4.3.4 - globby: 11.1.0 - is-glob: 4.0.3 - minimatch: 9.0.3 - semver: 7.6.0 - ts-api-utils: 1.2.1(typescript@5.1.6) - optionalDependencies: - typescript: 5.1.6 - transitivePeerDependencies: - - supports-color + '@typescript-eslint/types@8.3.0': {} '@typescript-eslint/typescript-estree@6.7.3(typescript@5.1.6)': dependencies: @@ -10575,82 +10890,60 @@ snapshots: globby: 11.1.0 is-glob: 4.0.3 semver: 7.5.4 - ts-api-utils: 1.0.3(typescript@5.1.6) + ts-api-utils: 1.2.1(typescript@5.1.6) optionalDependencies: typescript: 5.1.6 transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@7.5.0(typescript@5.1.6)': + '@typescript-eslint/typescript-estree@8.3.0(typescript@5.1.6)': dependencies: - '@typescript-eslint/types': 7.5.0 - '@typescript-eslint/visitor-keys': 7.5.0 + '@typescript-eslint/types': 8.3.0 + '@typescript-eslint/visitor-keys': 8.3.0 debug: 4.3.4 - 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.0 - ts-api-utils: 1.2.1(typescript@5.1.6) + ts-api-utils: 1.3.0(typescript@5.1.6) optionalDependencies: typescript: 5.1.6 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@6.21.0(eslint@8.56.0)(typescript@5.1.6)': - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) - '@types/json-schema': 7.0.15 - '@types/semver': 7.5.7 - '@typescript-eslint/scope-manager': 6.21.0 - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.1.6) - eslint: 8.56.0 - semver: 7.6.0 - transitivePeerDependencies: - - supports-color - - typescript - - '@typescript-eslint/utils@6.7.3(eslint@8.56.0)(typescript@5.1.6)': + '@typescript-eslint/utils@6.7.3(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.1(jiti@1.21.0)) '@types/json-schema': 7.0.13 '@types/semver': 7.5.3 '@typescript-eslint/scope-manager': 6.7.3 '@typescript-eslint/types': 6.7.3 '@typescript-eslint/typescript-estree': 6.7.3(typescript@5.1.6) - eslint: 8.56.0 + eslint: 9.9.1(jiti@1.21.0) semver: 7.5.4 transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/utils@7.5.0(eslint@8.56.0)(typescript@5.1.6)': + '@typescript-eslint/utils@8.3.0(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) - '@types/json-schema': 7.0.15 - '@types/semver': 7.5.7 - '@typescript-eslint/scope-manager': 7.5.0 - '@typescript-eslint/types': 7.5.0 - '@typescript-eslint/typescript-estree': 7.5.0(typescript@5.1.6) - eslint: 8.56.0 - semver: 7.6.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.1(jiti@1.21.0)) + '@typescript-eslint/scope-manager': 8.3.0 + '@typescript-eslint/types': 8.3.0 + '@typescript-eslint/typescript-estree': 8.3.0(typescript@5.1.6) + eslint: 9.9.1(jiti@1.21.0) transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/visitor-keys@6.21.0': - dependencies: - '@typescript-eslint/types': 6.21.0 - eslint-visitor-keys: 3.4.3 - '@typescript-eslint/visitor-keys@6.7.3': dependencies: '@typescript-eslint/types': 6.7.3 eslint-visitor-keys: 3.4.3 - '@typescript-eslint/visitor-keys@7.5.0': + '@typescript-eslint/visitor-keys@8.3.0': dependencies: - '@typescript-eslint/types': 7.5.0 + '@typescript-eslint/types': 8.3.0 eslint-visitor-keys: 3.4.3 '@typescript/twoslash@3.1.0': @@ -10679,8 +10972,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@ungap/structured-clone@1.2.0': {} - '@unocss/astro@0.58.5(rollup@4.13.0)(vite@5.1.4(@types/node@20.11.0))': dependencies: '@unocss/core': 0.58.5 @@ -10727,7 +11018,7 @@ snapshots: gzip-size: 6.0.0 sirv: 2.0.4 - '@unocss/postcss@0.58.5(postcss@8.4.37)': + '@unocss/postcss@0.58.5(postcss@8.4.41)': dependencies: '@unocss/config': 0.58.5 '@unocss/core': 0.58.5 @@ -10735,7 +11026,7 @@ snapshots: css-tree: 2.3.1 fast-glob: 3.3.2 magic-string: 0.30.7 - postcss: 8.4.37 + postcss: 8.4.41 '@unocss/preset-attributify@0.58.5': dependencies: @@ -10841,6 +11132,14 @@ snapshots: transitivePeerDependencies: - rollup + '@vitest/eslint-plugin@1.1.0(@typescript-eslint/utils@8.3.0(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6))(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6)(vitest@1.4.0(@types/node@20.11.0)(@vitest/ui@1.4.0))': + dependencies: + eslint: 9.9.1(jiti@1.21.0) + optionalDependencies: + '@typescript-eslint/utils': 8.3.0(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6) + typescript: 5.1.6 + vitest: 1.4.0(@types/node@20.11.0)(@vitest/ui@1.4.0) + '@vitest/expect@1.4.0': dependencies: '@vitest/spy': 1.4.0 @@ -10927,9 +11226,13 @@ snapshots: mime-types: 2.1.35 negotiator: 0.6.3 - acorn-jsx@5.3.2(acorn@8.10.0): + acorn-jsx@5.3.2(acorn@8.11.3): dependencies: - acorn: 8.10.0 + acorn: 8.11.3 + + acorn-jsx@5.3.2(acorn@8.12.1): + dependencies: + acorn: 8.12.1 acorn-walk@8.3.2: {} @@ -10937,6 +11240,8 @@ snapshots: acorn@8.11.3: {} + acorn@8.12.1: {} + address@1.2.2: {} agent-base@6.0.2: @@ -10955,6 +11260,7 @@ snapshots: dependencies: clean-stack: 2.2.0 indent-string: 4.0.0 + optional: true ajv-formats@2.1.1(ajv@8.11.0): optionalDependencies: @@ -11008,6 +11314,10 @@ snapshots: dependencies: type-fest: 3.13.1 + ansi-escapes@7.0.0: + dependencies: + environment: 1.1.0 + ansi-regex@5.0.1: {} ansi-regex@6.0.1: {} @@ -11090,8 +11400,6 @@ snapshots: dependencies: tslib: 2.6.2 - astral-regex@2.0.0: {} - async-lock@1.3.2: {} async-retry@1.3.3: @@ -11111,9 +11419,9 @@ snapshots: aws4@1.11.0: {} - axios@1.6.7(debug@4.3.4): + axios@1.6.7(debug@4.3.6): dependencies: - follow-redirects: 1.15.6(debug@4.3.4) + follow-redirects: 1.15.6(debug@4.3.6) form-data: 4.0.0 proxy-from-env: 1.1.0 transitivePeerDependencies: @@ -11201,6 +11509,10 @@ snapshots: dependencies: fill-range: 7.0.1 + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + browserslist@4.23.0: dependencies: caniuse-lite: 1.0.30001589 @@ -11208,6 +11520,13 @@ snapshots: node-releases: 2.0.14 update-browserslist-db: 1.0.13(browserslist@4.23.0) + browserslist@4.23.3: + dependencies: + caniuse-lite: 1.0.30001653 + electron-to-chromium: 1.5.13 + node-releases: 2.0.18 + update-browserslist-db: 1.1.0(browserslist@4.23.3) + buffer-crc32@0.2.13: {} buffer-equal-constant-time@1.0.1: {} @@ -11221,10 +11540,6 @@ snapshots: builtin-modules@3.3.0: {} - builtins@5.0.1: - dependencies: - semver: 7.6.0 - bytes@3.0.0: {} bytes@3.1.2: {} @@ -11262,6 +11577,8 @@ snapshots: caniuse-lite@1.0.30001589: {} + caniuse-lite@1.0.30001653: {} + cardinal@2.1.1: dependencies: ansicolors: 0.3.2 @@ -11298,6 +11615,8 @@ snapshots: chalk@5.2.0: {} + chalk@5.3.0: {} + character-entities-html4@2.1.0: {} character-entities-legacy@1.1.4: {} @@ -11380,7 +11699,8 @@ snapshots: dependencies: escape-string-regexp: 1.0.5 - clean-stack@2.2.0: {} + clean-stack@2.2.0: + optional: true cli-boxes@2.2.1: {} @@ -11388,6 +11708,10 @@ snapshots: dependencies: restore-cursor: 3.1.0 + cli-cursor@5.0.0: + dependencies: + restore-cursor: 5.1.0 + cli-spinners@2.6.1: {} cli-table3@0.6.3: @@ -11400,15 +11724,10 @@ snapshots: dependencies: colors: 1.0.3 - cli-truncate@2.1.0: - dependencies: - slice-ansi: 3.0.0 - string-width: 4.2.3 - - cli-truncate@3.1.0: + cli-truncate@4.0.0: dependencies: slice-ansi: 5.0.0 - string-width: 5.1.2 + string-width: 7.2.0 cli-width@3.0.0: {} @@ -11489,6 +11808,8 @@ snapshots: commander@10.0.1: {} + commander@12.1.0: {} + commander@2.20.3: {} commander@4.1.1: {} @@ -11570,9 +11891,9 @@ snapshots: cookie@0.6.0: {} - core-js-compat@3.36.1: + core-js-compat@3.38.1: dependencies: - browserslist: 4.23.0 + browserslist: 4.23.3 core-util-is@1.0.2: {} @@ -11693,6 +12014,10 @@ snapshots: dependencies: ms: 2.1.2 + debug@4.3.6: + dependencies: + ms: 2.1.2 + decode-named-character-reference@1.0.2: dependencies: character-entities: 2.0.2 @@ -11798,7 +12123,8 @@ snapshots: earcut@2.2.4: {} - eastasianwidth@0.2.0: {} + eastasianwidth@0.2.0: + optional: true ecc-jsbn@0.1.2: dependencies: @@ -11813,11 +12139,16 @@ snapshots: electron-to-chromium@1.4.681: {} + electron-to-chromium@1.5.13: {} + emoji-regex@10.2.1: {} + emoji-regex@10.4.0: {} + emoji-regex@8.0.0: {} - emoji-regex@9.2.2: {} + emoji-regex@9.2.2: + optional: true enabled@2.0.0: {} @@ -11846,6 +12177,11 @@ snapshots: engine.io-parser@5.0.7: {} + enhanced-resolve@5.17.1: + dependencies: + graceful-fs: 4.2.11 + tapable: 2.2.1 + ent@2.2.0: optional: true @@ -11856,6 +12192,8 @@ snapshots: env-paths@2.2.1: optional: true + environment@1.1.0: {} + err-code@2.0.3: optional: true @@ -11863,6 +12201,8 @@ snapshots: dependencies: is-arrayish: 0.2.1 + es-module-lexer@1.5.4: {} + es6-promise@3.3.1: {} esbuild@0.19.12: @@ -11891,7 +12231,32 @@ snapshots: '@esbuild/win32-ia32': 0.19.12 '@esbuild/win32-x64': 0.19.12 - escalade@3.1.1: {} + esbuild@0.23.1: + optionalDependencies: + '@esbuild/aix-ppc64': 0.23.1 + '@esbuild/android-arm': 0.23.1 + '@esbuild/android-arm64': 0.23.1 + '@esbuild/android-x64': 0.23.1 + '@esbuild/darwin-arm64': 0.23.1 + '@esbuild/darwin-x64': 0.23.1 + '@esbuild/freebsd-arm64': 0.23.1 + '@esbuild/freebsd-x64': 0.23.1 + '@esbuild/linux-arm': 0.23.1 + '@esbuild/linux-arm64': 0.23.1 + '@esbuild/linux-ia32': 0.23.1 + '@esbuild/linux-loong64': 0.23.1 + '@esbuild/linux-mips64el': 0.23.1 + '@esbuild/linux-ppc64': 0.23.1 + '@esbuild/linux-riscv64': 0.23.1 + '@esbuild/linux-s390x': 0.23.1 + '@esbuild/linux-x64': 0.23.1 + '@esbuild/netbsd-x64': 0.23.1 + '@esbuild/openbsd-arm64': 0.23.1 + '@esbuild/openbsd-x64': 0.23.1 + '@esbuild/sunos-x64': 0.23.1 + '@esbuild/win32-arm64': 0.23.1 + '@esbuild/win32-ia32': 0.23.1 + '@esbuild/win32-x64': 0.23.1 escalade@3.1.2: {} @@ -11916,19 +12281,24 @@ snapshots: optionalDependencies: source-map: 0.6.1 - eslint-compat-utils@0.5.0(eslint@8.56.0): + eslint-compat-utils@0.5.0(eslint@9.9.1(jiti@1.21.0)): dependencies: - eslint: 8.56.0 + eslint: 9.9.1(jiti@1.21.0) semver: 7.6.0 - eslint-config-flat-gitignore@0.1.5: + eslint-compat-utils@0.5.1(eslint@9.9.1(jiti@1.21.0)): + dependencies: + eslint: 9.9.1(jiti@1.21.0) + semver: 7.6.3 + + eslint-config-flat-gitignore@0.1.8: dependencies: - find-up: 7.0.0 + find-up-simple: 1.0.0 parse-gitignore: 2.0.0 - eslint-flat-config-utils@0.2.0: + eslint-flat-config-utils@0.3.1: dependencies: - '@types/eslint': 8.56.7 + '@types/eslint': 9.6.1 pathe: 1.1.2 eslint-import-resolver-node@0.3.9: @@ -11939,153 +12309,167 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-merge-processors@0.1.0(eslint@8.56.0): + eslint-merge-processors@0.1.0(eslint@9.9.1(jiti@1.21.0)): dependencies: - eslint: 8.56.0 + eslint: 9.9.1(jiti@1.21.0) - eslint-plugin-antfu@2.1.2(eslint@8.56.0): + eslint-plugin-antfu@2.3.6(eslint@9.9.1(jiti@1.21.0)): dependencies: - eslint: 8.56.0 + '@antfu/utils': 0.7.10 + eslint: 9.9.1(jiti@1.21.0) - eslint-plugin-es-x@7.6.0(eslint@8.56.0): + eslint-plugin-command@0.2.3(eslint@9.9.1(jiti@1.21.0)): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) - '@eslint-community/regexpp': 4.10.0 - eslint: 8.56.0 - eslint-compat-utils: 0.5.0(eslint@8.56.0) + '@es-joy/jsdoccomment': 0.43.1 + eslint: 9.9.1(jiti@1.21.0) - eslint-plugin-eslint-comments@3.2.0(eslint@8.56.0): + eslint-plugin-es-x@7.6.0(eslint@9.9.1(jiti@1.21.0)): dependencies: - escape-string-regexp: 1.0.5 - eslint: 8.56.0 - ignore: 5.3.1 + '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.1(jiti@1.21.0)) + '@eslint-community/regexpp': 4.10.0 + eslint: 9.9.1(jiti@1.21.0) + eslint-compat-utils: 0.5.0(eslint@9.9.1(jiti@1.21.0)) - eslint-plugin-import-x@0.5.0(eslint@8.56.0)(typescript@5.1.6): + eslint-plugin-import-x@4.1.0(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6): dependencies: - '@typescript-eslint/utils': 7.5.0(eslint@8.56.0)(typescript@5.1.6) + '@typescript-eslint/typescript-estree': 8.3.0(typescript@5.1.6) + '@typescript-eslint/utils': 8.3.0(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6) debug: 4.3.4 doctrine: 3.0.0 - eslint: 8.56.0 + eslint: 9.9.1(jiti@1.21.0) eslint-import-resolver-node: 0.3.9 get-tsconfig: 4.7.3 is-glob: 4.0.3 minimatch: 9.0.3 - semver: 7.6.0 + semver: 7.6.3 + stable-hash: 0.0.4 + tslib: 2.7.0 transitivePeerDependencies: - supports-color - typescript - eslint-plugin-jsdoc@48.2.2(eslint@8.56.0): + eslint-plugin-jsdoc@50.2.2(eslint@9.9.1(jiti@1.21.0)): dependencies: - '@es-joy/jsdoccomment': 0.42.0 + '@es-joy/jsdoccomment': 0.48.0 are-docs-informative: 0.0.2 comment-parser: 1.4.1 - debug: 4.3.4 + debug: 4.3.6 escape-string-regexp: 4.0.0 - eslint: 8.56.0 - esquery: 1.5.0 - is-builtin-module: 3.2.1 - semver: 7.6.0 + eslint: 9.9.1(jiti@1.21.0) + espree: 10.1.0 + esquery: 1.6.0 + parse-imports: 2.1.1 + semver: 7.6.3 spdx-expression-parse: 4.0.0 + synckit: 0.9.1 transitivePeerDependencies: - supports-color - eslint-plugin-jsonc@2.15.0(eslint@8.56.0): + eslint-plugin-jsonc@2.16.0(eslint@9.9.1(jiti@1.21.0)): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) - eslint: 8.56.0 - eslint-compat-utils: 0.5.0(eslint@8.56.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.1(jiti@1.21.0)) + eslint: 9.9.1(jiti@1.21.0) + eslint-compat-utils: 0.5.0(eslint@9.9.1(jiti@1.21.0)) espree: 9.6.1 graphemer: 1.4.0 jsonc-eslint-parser: 2.4.0 natural-compare: 1.4.0 synckit: 0.6.2 - eslint-plugin-markdown@4.0.1(eslint@8.56.0): + eslint-plugin-markdown@5.1.0(eslint@9.9.1(jiti@1.21.0)): dependencies: - eslint: 8.56.0 + eslint: 9.9.1(jiti@1.21.0) mdast-util-from-markdown: 0.8.5 transitivePeerDependencies: - supports-color - eslint-plugin-n@16.6.2(eslint@8.56.0): + eslint-plugin-n@17.10.2(eslint@9.9.1(jiti@1.21.0)): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) - builtins: 5.0.1 - eslint: 8.56.0 - eslint-plugin-es-x: 7.6.0(eslint@8.56.0) - get-tsconfig: 4.7.2 - globals: 13.24.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.1(jiti@1.21.0)) + enhanced-resolve: 5.17.1 + eslint: 9.9.1(jiti@1.21.0) + eslint-plugin-es-x: 7.6.0(eslint@9.9.1(jiti@1.21.0)) + get-tsconfig: 4.7.3 + globals: 15.9.0 ignore: 5.3.1 - is-builtin-module: 3.2.1 - is-core-module: 2.13.1 - minimatch: 3.1.2 - resolve: 1.22.8 + minimatch: 9.0.5 semver: 7.6.0 - eslint-plugin-no-only-tests@3.1.0: {} + eslint-plugin-no-only-tests@3.3.0: {} - eslint-plugin-perfectionist@2.7.0(eslint@8.56.0)(svelte@4.2.12)(typescript@5.1.6)(vue-eslint-parser@9.4.2(eslint@8.56.0)): + eslint-plugin-perfectionist@3.3.0(eslint@9.9.1(jiti@1.21.0))(svelte-eslint-parser@0.41.0(svelte@4.2.12))(svelte@4.2.12)(typescript@5.1.6)(vue-eslint-parser@9.4.3(eslint@9.9.1(jiti@1.21.0))): dependencies: - '@typescript-eslint/utils': 6.21.0(eslint@8.56.0)(typescript@5.1.6) - eslint: 8.56.0 - minimatch: 9.0.3 + '@typescript-eslint/types': 8.3.0 + '@typescript-eslint/utils': 8.3.0(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6) + eslint: 9.9.1(jiti@1.21.0) + minimatch: 10.0.1 natural-compare-lite: 1.4.0 optionalDependencies: svelte: 4.2.12 - vue-eslint-parser: 9.4.2(eslint@8.56.0) + svelte-eslint-parser: 0.41.0(svelte@4.2.12) + vue-eslint-parser: 9.4.3(eslint@9.9.1(jiti@1.21.0)) transitivePeerDependencies: - supports-color - typescript - eslint-plugin-svelte-stylistic@0.0.4(eslint@8.56.0)(typescript@5.1.6): + eslint-plugin-regexp@2.6.0(eslint@9.9.1(jiti@1.21.0)): + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.1(jiti@1.21.0)) + '@eslint-community/regexpp': 4.10.0 + comment-parser: 1.4.1 + eslint: 9.9.1(jiti@1.21.0) + jsdoc-type-pratt-parser: 4.0.0 + refa: 0.12.1 + regexp-ast-analysis: 0.7.1 + scslre: 0.3.0 + + eslint-plugin-svelte-stylistic@0.0.4(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6): dependencies: - '@typescript-eslint/utils': 6.7.3(eslint@8.56.0)(typescript@5.1.6) + '@typescript-eslint/utils': 6.7.3(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6) transitivePeerDependencies: - eslint - supports-color - typescript - eslint-plugin-svelte@2.33.2(eslint@8.56.0)(svelte@4.2.12): + eslint-plugin-svelte@2.43.0(eslint@9.9.1(jiti@1.21.0))(svelte@4.2.12): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.1(jiti@1.21.0)) '@jridgewell/sourcemap-codec': 1.4.15 - debug: 4.3.4 - eslint: 8.56.0 + eslint: 9.9.1(jiti@1.21.0) + eslint-compat-utils: 0.5.1(eslint@9.9.1(jiti@1.21.0)) esutils: 2.0.3 - known-css-properties: 0.28.0 - postcss: 8.4.30 - postcss-load-config: 3.1.4(postcss@8.4.30) - postcss-safe-parser: 6.0.0(postcss@8.4.30) - postcss-selector-parser: 6.0.13 - semver: 7.5.4 - svelte-eslint-parser: 0.33.0(svelte@4.2.12) + known-css-properties: 0.34.0 + postcss: 8.4.41 + postcss-load-config: 3.1.4(postcss@8.4.41) + postcss-safe-parser: 6.0.0(postcss@8.4.41) + postcss-selector-parser: 6.1.2 + semver: 7.6.3 + svelte-eslint-parser: 0.41.0(svelte@4.2.12) optionalDependencies: svelte: 4.2.12 transitivePeerDependencies: - - supports-color - ts-node - eslint-plugin-toml@0.11.0(eslint@8.56.0): + eslint-plugin-toml@0.11.1(eslint@9.9.1(jiti@1.21.0)): dependencies: debug: 4.3.4 - eslint: 8.56.0 - eslint-compat-utils: 0.5.0(eslint@8.56.0) + eslint: 9.9.1(jiti@1.21.0) + eslint-compat-utils: 0.5.0(eslint@9.9.1(jiti@1.21.0)) lodash: 4.17.21 - toml-eslint-parser: 0.9.3 + toml-eslint-parser: 0.10.0 transitivePeerDependencies: - supports-color - eslint-plugin-unicorn@51.0.1(eslint@8.56.0): + eslint-plugin-unicorn@55.0.0(eslint@9.9.1(jiti@1.21.0)): dependencies: - '@babel/helper-validator-identifier': 7.22.20 - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) - '@eslint/eslintrc': 2.1.4 + '@babel/helper-validator-identifier': 7.24.7 + '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.1(jiti@1.21.0)) ci-info: 4.0.0 clean-regexp: 1.0.0 - core-js-compat: 3.36.1 - eslint: 8.56.0 + core-js-compat: 3.38.1 + eslint: 9.9.1(jiti@1.21.0) esquery: 1.5.0 + globals: 15.9.0 indent-string: 4.0.0 is-builtin-module: 3.2.1 jsesc: 3.0.2 @@ -12093,100 +12477,87 @@ snapshots: read-pkg-up: 7.0.1 regexp-tree: 0.1.27 regjsparser: 0.10.0 - semver: 7.6.0 + semver: 7.6.3 strip-indent: 3.0.0 - transitivePeerDependencies: - - supports-color - - eslint-plugin-unused-imports@3.1.0(@typescript-eslint/eslint-plugin@7.5.0(@typescript-eslint/parser@7.5.0(eslint@8.56.0)(typescript@5.1.6))(eslint@8.56.0)(typescript@5.1.6))(eslint@8.56.0): - dependencies: - eslint: 8.56.0 - eslint-rule-composer: 0.3.0 - optionalDependencies: - '@typescript-eslint/eslint-plugin': 7.5.0(@typescript-eslint/parser@7.5.0(eslint@8.56.0)(typescript@5.1.6))(eslint@8.56.0)(typescript@5.1.6) - eslint-plugin-vitest@0.4.1(@typescript-eslint/eslint-plugin@7.5.0(@typescript-eslint/parser@7.5.0(eslint@8.56.0)(typescript@5.1.6))(eslint@8.56.0)(typescript@5.1.6))(eslint@8.56.0)(typescript@5.1.6)(vitest@1.4.0(@types/node@20.11.0)(@vitest/ui@1.4.0)): + eslint-plugin-unused-imports@4.1.3(@typescript-eslint/eslint-plugin@8.3.0(@typescript-eslint/parser@8.3.0(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6))(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6))(eslint@9.9.1(jiti@1.21.0)): dependencies: - '@typescript-eslint/utils': 7.5.0(eslint@8.56.0)(typescript@5.1.6) - eslint: 8.56.0 + eslint: 9.9.1(jiti@1.21.0) optionalDependencies: - '@typescript-eslint/eslint-plugin': 7.5.0(@typescript-eslint/parser@7.5.0(eslint@8.56.0)(typescript@5.1.6))(eslint@8.56.0)(typescript@5.1.6) - vitest: 1.4.0(@types/node@20.11.0)(@vitest/ui@1.4.0) - transitivePeerDependencies: - - supports-color - - typescript + '@typescript-eslint/eslint-plugin': 8.3.0(@typescript-eslint/parser@8.3.0(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6))(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6) - eslint-plugin-vue@9.24.0(eslint@8.56.0): + eslint-plugin-vue@9.27.0(eslint@9.9.1(jiti@1.21.0)): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) - eslint: 8.56.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.1(jiti@1.21.0)) + eslint: 9.9.1(jiti@1.21.0) globals: 13.24.0 natural-compare: 1.4.0 nth-check: 2.1.1 postcss-selector-parser: 6.0.16 semver: 7.6.0 - vue-eslint-parser: 9.4.2(eslint@8.56.0) + vue-eslint-parser: 9.4.3(eslint@9.9.1(jiti@1.21.0)) xml-name-validator: 4.0.0 transitivePeerDependencies: - supports-color - eslint-plugin-yml@1.14.0(eslint@8.56.0): + eslint-plugin-yml@1.14.0(eslint@9.9.1(jiti@1.21.0)): dependencies: debug: 4.3.4 - eslint: 8.56.0 - eslint-compat-utils: 0.5.0(eslint@8.56.0) + eslint: 9.9.1(jiti@1.21.0) + eslint-compat-utils: 0.5.0(eslint@9.9.1(jiti@1.21.0)) lodash: 4.17.21 natural-compare: 1.4.0 - yaml-eslint-parser: 1.2.2 + yaml-eslint-parser: 1.2.3 transitivePeerDependencies: - supports-color - eslint-processor-vue-blocks@0.1.1(@vue/compiler-sfc@3.4.21)(eslint@8.56.0): + eslint-processor-vue-blocks@0.1.2(@vue/compiler-sfc@3.4.21)(eslint@9.9.1(jiti@1.21.0)): dependencies: '@vue/compiler-sfc': 3.4.21 - eslint: 8.56.0 - - eslint-rule-composer@0.3.0: {} + eslint: 9.9.1(jiti@1.21.0) eslint-scope@7.2.2: dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 + eslint-scope@8.0.2: + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + eslint-visitor-keys@3.4.3: {} - eslint@8.56.0: + eslint-visitor-keys@4.0.0: {} + + eslint@9.9.1(jiti@1.21.0): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) - '@eslint-community/regexpp': 4.10.0 - '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.56.0 - '@humanwhocodes/config-array': 0.11.14 + '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.1(jiti@1.21.0)) + '@eslint-community/regexpp': 4.11.0 + '@eslint/config-array': 0.18.0 + '@eslint/eslintrc': 3.1.0 + '@eslint/js': 9.9.1 '@humanwhocodes/module-importer': 1.0.1 + '@humanwhocodes/retry': 0.3.0 '@nodelib/fs.walk': 1.2.8 - '@ungap/structured-clone': 1.2.0 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 debug: 4.3.4 - 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.0.2 + eslint-visitor-keys: 4.0.0 + espree: 10.1.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.20.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 @@ -12195,15 +12566,23 @@ snapshots: 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.1.0: + dependencies: + acorn: 8.12.1 + acorn-jsx: 5.3.2(acorn@8.12.1) + eslint-visitor-keys: 4.0.0 + espree@9.6.1: dependencies: - acorn: 8.10.0 - acorn-jsx: 5.3.2(acorn@8.10.0) + acorn: 8.11.3 + acorn-jsx: 5.3.2(acorn@8.11.3) eslint-visitor-keys: 3.4.3 esprima@4.0.1: {} @@ -12212,6 +12591,10 @@ snapshots: dependencies: estraverse: 5.3.0 + esquery@1.6.0: + dependencies: + estraverse: 5.3.0 + esrecurse@4.3.0: dependencies: estraverse: 5.3.0 @@ -12242,6 +12625,8 @@ snapshots: event-target-shim@5.0.1: {} + eventemitter3@5.0.1: {} + events-listener@1.1.0: {} execa@5.1.1: @@ -12256,18 +12641,6 @@ snapshots: signal-exit: 3.0.7 strip-final-newline: 2.0.0 - execa@7.1.1: - dependencies: - cross-spawn: 7.0.3 - get-stream: 6.0.1 - human-signals: 4.3.1 - is-stream: 3.0.0 - merge-stream: 2.0.0 - npm-run-path: 5.1.0 - onetime: 6.0.0 - signal-exit: 3.0.7 - strip-final-newline: 3.0.0 - execa@8.0.1: dependencies: cross-spawn: 7.0.3 @@ -12426,9 +12799,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 file-saver@2.0.5: {} @@ -12440,6 +12813,10 @@ snapshots: dependencies: to-regex-range: 5.0.1 + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + finalhandler@1.1.2: dependencies: debug: 2.6.9 @@ -12464,6 +12841,8 @@ snapshots: transitivePeerDependencies: - supports-color + find-up-simple@1.0.0: {} + find-up@4.1.0: dependencies: locate-path: 5.0.0 @@ -12474,12 +12853,6 @@ snapshots: locate-path: 6.0.0 path-exists: 4.0.0 - find-up@7.0.0: - dependencies: - locate-path: 7.2.0 - path-exists: 5.0.0 - unicorn-magic: 0.1.0 - firebase-admin@12.0.0(encoding@0.1.13): dependencies: '@fastify/busboy': 1.2.1 @@ -12609,21 +12982,18 @@ snapshots: transitivePeerDependencies: - '@react-native-async-storage/async-storage' - flat-cache@3.2.0: + flat-cache@4.0.1: dependencies: - flatted: 3.2.9 + flatted: 3.3.1 keyv: 4.5.4 - rimraf: 3.0.2 - - flatted@3.2.9: {} flatted@3.3.1: {} fn.name@1.1.0: {} - follow-redirects@1.15.6(debug@4.3.4): + follow-redirects@1.15.6(debug@4.3.6): optionalDependencies: - debug: 4.3.4 + debug: 4.3.6 foreground-child@3.1.1: dependencies: @@ -12772,6 +13142,8 @@ snapshots: get-caller-file@2.0.5: {} + get-east-asian-width@1.2.0: {} + get-func-name@2.0.2: {} get-intrinsic@1.2.1: @@ -12785,11 +13157,11 @@ snapshots: get-stream@8.0.1: {} - get-tsconfig@4.7.2: + get-tsconfig@4.7.3: dependencies: resolve-pkg-maps: 1.0.0 - get-tsconfig@4.7.3: + get-tsconfig@4.7.6: dependencies: resolve-pkg-maps: 1.0.0 @@ -12858,15 +13230,13 @@ snapshots: globals@11.12.0: {} - globals@13.20.0: - dependencies: - type-fest: 0.20.2 - globals@13.24.0: dependencies: type-fest: 0.20.2 - globals@15.0.0: {} + globals@14.0.0: {} + + globals@15.9.0: {} globalyzer@0.1.0: {} @@ -12875,7 +13245,7 @@ snapshots: array-union: 2.1.0 dir-glob: 3.0.1 fast-glob: 3.3.1 - ignore: 5.2.4 + ignore: 5.3.1 merge2: 1.4.1 slash: 3.0.0 @@ -13234,8 +13604,6 @@ snapshots: human-signals@2.1.0: {} - human-signals@4.3.1: {} - human-signals@5.0.0: {} iconv-lite@0.4.24: @@ -13250,8 +13618,6 @@ snapshots: ieee754@1.2.1: {} - ignore@5.2.4: {} - ignore@5.3.1: {} immediate@3.0.6: {} @@ -13371,6 +13737,10 @@ snapshots: is-fullwidth-code-point@4.0.0: {} + is-fullwidth-code-point@5.0.0: + dependencies: + get-east-asian-width: 1.2.0 + is-glob@4.0.3: dependencies: is-extglob: 2.1.1 @@ -13496,6 +13866,8 @@ snapshots: jsdoc-type-pratt-parser@4.0.0: {} + jsdoc-type-pratt-parser@4.1.0: {} + jsdoc@4.0.2: dependencies: '@babel/parser': 7.23.6 @@ -13678,7 +14050,7 @@ snapshots: kleur@4.1.5: {} - known-css-properties@0.28.0: {} + known-css-properties@0.34.0: {} kolorist@1.8.0: {} @@ -13714,6 +14086,8 @@ snapshots: lilconfig@2.1.0: {} + lilconfig@3.1.2: {} + limiter@1.1.5: {} lines-and-columns@1.2.4: {} @@ -13722,35 +14096,29 @@ snapshots: dependencies: uc.micro: 1.0.6 - lint-staged@13.2.2: + lint-staged@15.2.9: dependencies: - chalk: 5.2.0 - cli-truncate: 3.1.0 - commander: 10.0.1 - debug: 4.3.4 - execa: 7.1.1 - lilconfig: 2.1.0 - listr2: 5.0.8 - micromatch: 4.0.5 - normalize-path: 3.0.0 - object-inspect: 1.12.3 + chalk: 5.3.0 + commander: 12.1.0 + debug: 4.3.6 + execa: 8.0.1 + lilconfig: 3.1.2 + listr2: 8.2.4 + micromatch: 4.0.8 pidtree: 0.6.0 string-argv: 0.3.2 - yaml: 2.3.1 + yaml: 2.5.0 transitivePeerDependencies: - - enquirer - supports-color - listr2@5.0.8: + listr2@8.2.4: dependencies: - cli-truncate: 2.1.0 + cli-truncate: 4.0.0 colorette: 2.0.20 - log-update: 4.0.0 - p-map: 4.0.0 - rfdc: 1.3.0 - rxjs: 7.8.1 - through: 2.3.8 - wrap-ansi: 7.0.0 + eventemitter3: 5.0.1 + log-update: 6.1.0 + rfdc: 1.4.1 + wrap-ansi: 9.0.0 local-pkg@0.5.0: dependencies: @@ -13767,10 +14135,6 @@ snapshots: dependencies: p-locate: 5.0.0 - locate-path@7.2.0: - dependencies: - p-locate: 6.0.0 - lodash-es@4.17.21: {} lodash._objecttypes@2.4.1: {} @@ -13816,12 +14180,13 @@ snapshots: chalk: 4.1.2 is-unicode-supported: 0.1.0 - log-update@4.0.0: + log-update@6.1.0: dependencies: - ansi-escapes: 4.3.2 - cli-cursor: 3.1.0 - slice-ansi: 4.0.0 - wrap-ansi: 6.2.0 + ansi-escapes: 7.0.0 + cli-cursor: 5.0.0 + slice-ansi: 7.1.0 + strip-ansi: 7.1.0 + wrap-ansi: 9.0.0 logform@2.4.0: dependencies: @@ -14280,6 +14645,11 @@ snapshots: braces: 3.0.2 picomatch: 2.3.1 + micromatch@4.0.8: + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 + mime-db@1.52.0: {} mime-types@2.1.35: @@ -14297,10 +14667,16 @@ snapshots: mimic-fn@4.0.0: {} + mimic-function@5.0.1: {} + min-indent@1.0.1: {} mini-svg-data-uri@1.4.4: {} + minimatch@10.0.1: + dependencies: + brace-expansion: 2.0.1 + minimatch@3.1.2: dependencies: brace-expansion: 1.1.11 @@ -14317,6 +14693,10 @@ snapshots: dependencies: brace-expansion: 2.0.1 + minimatch@9.0.5: + dependencies: + brace-expansion: 2.0.1 + minimist@1.2.8: {} minipass-collect@2.0.1: @@ -14409,8 +14789,6 @@ snapshots: nan@2.18.0: optional: true - nanoid@3.3.6: {} - nanoid@3.3.7: {} natural-compare-lite@1.4.0: {} @@ -14484,7 +14862,7 @@ snapshots: make-fetch-happen: 13.0.0 nopt: 7.2.0 proc-log: 3.0.0 - semver: 7.5.4 + semver: 7.6.0 tar: 6.1.11 which: 4.0.0 transitivePeerDependencies: @@ -14493,6 +14871,8 @@ snapshots: node-releases@2.0.14: {} + node-releases@2.0.18: {} + nopt@1.0.10: dependencies: abbrev: 1.1.1 @@ -14517,10 +14897,6 @@ snapshots: dependencies: path-key: 3.1.1 - npm-run-path@5.1.0: - dependencies: - path-key: 4.0.0 - npm-run-path@5.3.0: dependencies: path-key: 4.0.0 @@ -14578,6 +14954,10 @@ snapshots: dependencies: mimic-fn: 4.0.0 + onetime@7.0.0: + dependencies: + mimic-function: 5.0.1 + open@6.4.0: dependencies: is-wsl: 1.1.0 @@ -14628,10 +15008,6 @@ snapshots: dependencies: yocto-queue: 0.1.0 - p-limit@4.0.0: - dependencies: - yocto-queue: 1.0.0 - p-limit@5.0.0: dependencies: yocto-queue: 1.0.0 @@ -14644,13 +15020,10 @@ snapshots: dependencies: p-limit: 3.1.0 - p-locate@6.0.0: - dependencies: - p-limit: 4.0.0 - p-map@4.0.0: dependencies: aggregate-error: 3.1.0 + optional: true p-try@2.2.0: {} @@ -14674,6 +15047,8 @@ snapshots: ip: 1.1.5 netmask: 2.0.2 + package-manager-detector@0.2.0: {} + packet-reader@1.0.0: {} pako@1.0.11: {} @@ -14693,6 +15068,11 @@ snapshots: parse-gitignore@2.0.0: {} + parse-imports@2.1.1: + dependencies: + es-module-lexer: 1.5.4 + slashes: 3.0.12 + parse-json@5.2.0: dependencies: '@babel/code-frame': 7.23.5 @@ -14711,8 +15091,6 @@ snapshots: path-exists@4.0.0: {} - path-exists@5.0.0: {} - path-is-absolute@1.0.1: {} path-key@2.0.1: {} @@ -14806,6 +15184,8 @@ snapshots: picocolors@1.0.0: {} + picocolors@1.0.1: {} + picomatch@2.3.1: {} picomatch@4.0.2: {} @@ -14844,47 +15224,33 @@ snapshots: transitivePeerDependencies: - supports-color - postcss-load-config@3.1.4(postcss@8.4.30): - dependencies: - lilconfig: 2.1.0 - yaml: 1.10.2 - optionalDependencies: - postcss: 8.4.30 - - postcss-load-config@3.1.4(postcss@8.4.37): + postcss-load-config@3.1.4(postcss@8.4.41): dependencies: lilconfig: 2.1.0 yaml: 1.10.2 optionalDependencies: - postcss: 8.4.37 - optional: true + postcss: 8.4.41 - postcss-safe-parser@6.0.0(postcss@8.4.30): + postcss-safe-parser@6.0.0(postcss@8.4.41): dependencies: - postcss: 8.4.30 + postcss: 8.4.41 - postcss-scss@4.0.8(postcss@8.4.30): + postcss-scss@4.0.9(postcss@8.4.41): dependencies: - postcss: 8.4.30 + postcss: 8.4.41 - postcss-selector-parser@6.0.13: + postcss-selector-parser@6.0.16: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 - postcss-selector-parser@6.0.16: + 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.30: - dependencies: - nanoid: 3.3.6 - picocolors: 1.0.0 - source-map-js: 1.0.2 - postcss@8.4.35: dependencies: nanoid: 3.3.7 @@ -14903,6 +15269,12 @@ snapshots: picocolors: 1.0.0 source-map-js: 1.2.0 + postcss@8.4.41: + dependencies: + nanoid: 3.3.7 + picocolors: 1.0.1 + source-map-js: 1.2.0 + postgres-array@2.0.0: {} postgres-array@3.0.2: {} @@ -15174,8 +15546,17 @@ snapshots: dependencies: esprima: 4.0.1 + refa@0.12.1: + dependencies: + '@eslint-community/regexpp': 4.10.0 + regenerator-runtime@0.13.11: {} + regexp-ast-analysis@0.7.1: + dependencies: + '@eslint-community/regexpp': 4.10.0 + refa: 0.12.1 + regexp-tree@0.1.27: {} regexp.prototype.flags@1.4.3: @@ -15327,6 +15708,11 @@ snapshots: onetime: 5.1.2 signal-exit: 3.0.7 + restore-cursor@5.1.0: + dependencies: + onetime: 7.0.0 + signal-exit: 4.1.0 + retry-request@5.0.2: dependencies: debug: 4.3.4 @@ -15352,7 +15738,7 @@ snapshots: reusify@1.0.4: {} - rfdc@1.3.0: {} + rfdc@1.4.1: {} rimraf@2.7.1: dependencies: @@ -15459,6 +15845,12 @@ snapshots: postcss-value-parser: 4.2.0 yoga-layout-prebuilt: 1.10.0 + scslre@0.3.0: + dependencies: + '@eslint-community/regexpp': 4.10.0 + refa: 0.12.1 + regexp-ast-analysis: 0.7.1 + search-insights@2.2.1: {} semver-diff@3.1.1: @@ -15479,6 +15871,8 @@ snapshots: dependencies: lru-cache: 6.0.0 + semver@7.6.3: {} + send@0.18.0: dependencies: debug: 2.6.9 @@ -15552,7 +15946,7 @@ snapshots: signal-exit@4.1.0: {} - simple-git-hooks@2.11.0: {} + simple-git-hooks@2.11.1: {} simple-swizzle@0.2.2: dependencies: @@ -15570,23 +15964,18 @@ snapshots: slash@3.0.0: {} - slice-ansi@3.0.0: - dependencies: - ansi-styles: 4.3.0 - astral-regex: 2.0.0 - is-fullwidth-code-point: 3.0.0 - - slice-ansi@4.0.0: - dependencies: - ansi-styles: 4.3.0 - astral-regex: 2.0.0 - is-fullwidth-code-point: 3.0.0 + slashes@3.0.12: {} slice-ansi@5.0.0: dependencies: ansi-styles: 6.2.1 is-fullwidth-code-point: 4.0.0 + slice-ansi@7.1.0: + dependencies: + ansi-styles: 6.2.1 + is-fullwidth-code-point: 5.0.0 + smart-buffer@4.2.0: {} socket.io-client@4.6.1: @@ -15693,20 +16082,22 @@ snapshots: minipass: 7.0.4 optional: true + stable-hash@0.0.4: {} + stack-trace@0.0.10: {} stackback@0.0.2: {} - start-server-and-test@2.0.3: + start-server-and-test@2.0.5: dependencies: arg: 5.0.2 bluebird: 3.7.2 check-more-types: 2.24.0 - debug: 4.3.4 + debug: 4.3.6 execa: 5.1.1 lazy-ass: 1.6.0 ps-tree: 1.2.0 - wait-on: 7.2.0(debug@4.3.4) + wait-on: 7.2.0(debug@4.3.6) transitivePeerDependencies: - supports-color @@ -15757,6 +16148,13 @@ snapshots: eastasianwidth: 0.2.0 emoji-regex: 9.2.2 strip-ansi: 7.1.0 + optional: true + + string-width@7.2.0: + dependencies: + emoji-regex: 10.4.0 + get-east-asian-width: 1.2.0 + strip-ansi: 7.1.0 string.prototype.codepointat@0.2.1: {} @@ -15860,7 +16258,7 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - svelte-check@3.6.8(@babel/core@7.23.9)(postcss-load-config@3.1.4(postcss@8.4.37))(postcss@8.4.37)(svelte@4.2.12): + svelte-check@3.6.8(@babel/core@7.23.9)(postcss-load-config@3.1.4(postcss@8.4.41))(postcss@8.4.41)(svelte@4.2.12): dependencies: '@jridgewell/trace-mapping': 0.3.25 chokidar: 3.6.0 @@ -15869,7 +16267,7 @@ snapshots: picocolors: 1.0.0 sade: 1.8.1 svelte: 4.2.12 - svelte-preprocess: 5.1.3(@babel/core@7.23.9)(postcss-load-config@3.1.4(postcss@8.4.37))(postcss@8.4.37)(svelte@4.2.12)(typescript@5.1.6) + svelte-preprocess: 5.1.3(@babel/core@7.23.9)(postcss-load-config@3.1.4(postcss@8.4.41))(postcss@8.4.41)(svelte@4.2.12)(typescript@5.1.6) typescript: 5.1.6 transitivePeerDependencies: - '@babel/core' @@ -15882,13 +16280,13 @@ snapshots: - stylus - sugarss - svelte-eslint-parser@0.33.0(svelte@4.2.12): + svelte-eslint-parser@0.41.0(svelte@4.2.12): dependencies: eslint-scope: 7.2.2 eslint-visitor-keys: 3.4.3 espree: 9.6.1 - postcss: 8.4.30 - postcss-scss: 4.0.8(postcss@8.4.30) + postcss: 8.4.41 + postcss-scss: 4.0.9(postcss@8.4.41) optionalDependencies: svelte: 4.2.12 @@ -15906,7 +16304,7 @@ snapshots: he: 1.2.0 svelte: 4.2.12 - svelte-preprocess@5.1.3(@babel/core@7.23.9)(postcss-load-config@3.1.4(postcss@8.4.37))(postcss@8.4.37)(svelte@4.2.12)(typescript@5.1.6): + svelte-preprocess@5.1.3(@babel/core@7.23.9)(postcss-load-config@3.1.4(postcss@8.4.41))(postcss@8.4.41)(svelte@4.2.12)(typescript@5.1.6): dependencies: '@types/pug': 2.0.10 detect-indent: 6.1.0 @@ -15916,8 +16314,8 @@ snapshots: svelte: 4.2.12 optionalDependencies: '@babel/core': 7.23.9 - postcss: 8.4.37 - postcss-load-config: 3.1.4(postcss@8.4.37) + postcss: 8.4.41 + postcss-load-config: 3.1.4(postcss@8.4.41) typescript: 5.1.6 svelte2tsx@0.6.27(svelte@4.2.12)(typescript@5.1.6): @@ -15957,6 +16355,13 @@ snapshots: dependencies: tslib: 2.6.2 + synckit@0.9.1: + dependencies: + '@pkgr/core': 0.1.1 + tslib: 2.6.2 + + tapable@2.2.1: {} + tar-stream@2.2.0: dependencies: bl: 4.1.0 @@ -16017,6 +16422,8 @@ snapshots: tinybench@2.6.0: {} + tinyexec@0.3.0: {} + tinypool@0.8.2: {} tinyqueue@2.0.3: {} @@ -16039,7 +16446,7 @@ snapshots: toidentifier@1.0.1: {} - toml-eslint-parser@0.9.3: + toml-eslint-parser@0.10.0: dependencies: eslint-visitor-keys: 3.4.3 @@ -16070,11 +16477,11 @@ snapshots: trough@2.2.0: {} - ts-api-utils@1.0.3(typescript@5.1.6): + ts-api-utils@1.2.1(typescript@5.1.6): dependencies: typescript: 5.1.6 - ts-api-utils@1.2.1(typescript@5.1.6): + ts-api-utils@1.3.0(typescript@5.1.6): dependencies: typescript: 5.1.6 @@ -16084,10 +16491,12 @@ snapshots: tslib@2.6.2: {} - tsx@4.7.1: + tslib@2.7.0: {} + + tsx@4.19.0: dependencies: - esbuild: 0.19.12 - get-tsconfig: 4.7.2 + esbuild: 0.23.1 + get-tsconfig: 4.7.6 optionalDependencies: fsevents: 2.3.3 @@ -16153,8 +16562,6 @@ snapshots: dependencies: '@fastify/busboy': 2.1.0 - unicorn-magic@0.1.0: {} - unified@10.1.2: dependencies: '@types/unist': 2.0.10 @@ -16229,13 +16636,13 @@ snapshots: universalify@2.0.0: {} - unocss@0.58.5(postcss@8.4.37)(rollup@4.13.0)(vite@5.1.4(@types/node@20.11.0)): + unocss@0.58.5(postcss@8.4.41)(rollup@4.13.0)(vite@5.1.4(@types/node@20.11.0)): dependencies: '@unocss/astro': 0.58.5(rollup@4.13.0)(vite@5.1.4(@types/node@20.11.0)) '@unocss/cli': 0.58.5(rollup@4.13.0) '@unocss/core': 0.58.5 '@unocss/extractor-arbitrary-variants': 0.58.5 - '@unocss/postcss': 0.58.5(postcss@8.4.37) + '@unocss/postcss': 0.58.5(postcss@8.4.41) '@unocss/preset-attributify': 0.58.5 '@unocss/preset-icons': 0.58.5 '@unocss/preset-mini': 0.58.5 @@ -16266,6 +16673,12 @@ snapshots: escalade: 3.1.2 picocolors: 1.0.0 + update-browserslist-db@1.1.0(browserslist@4.23.3): + dependencies: + browserslist: 4.23.3 + escalade: 3.1.2 + picocolors: 1.0.1 + update-notifier-cjs@5.1.6(encoding@0.1.13): dependencies: boxen: 5.1.2 @@ -16505,10 +16918,10 @@ snapshots: vscode-textmate@5.2.0: {} - vue-eslint-parser@9.4.2(eslint@8.56.0): + vue-eslint-parser@9.4.3(eslint@9.9.1(jiti@1.21.0)): dependencies: debug: 4.3.4 - eslint: 8.56.0 + eslint: 9.9.1(jiti@1.21.0) eslint-scope: 7.2.2 eslint-visitor-keys: 3.4.3 espree: 9.6.1 @@ -16520,9 +16933,9 @@ snapshots: w3c-keyname@2.2.8: {} - wait-on@7.2.0(debug@4.3.4): + wait-on@7.2.0(debug@4.3.6): dependencies: - axios: 1.6.7(debug@4.3.4) + axios: 1.6.7(debug@4.3.6) joi: 17.12.2 lodash: 4.17.21 minimist: 1.2.8 @@ -16602,12 +17015,6 @@ snapshots: word-wrap@1.2.3: {} - wrap-ansi@6.2.0: - dependencies: - ansi-styles: 4.3.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi@7.0.0: dependencies: ansi-styles: 4.3.0 @@ -16621,6 +17028,12 @@ snapshots: strip-ansi: 7.1.0 optional: true + wrap-ansi@9.0.0: + dependencies: + ansi-styles: 6.2.1 + string-width: 7.2.0 + strip-ansi: 7.1.0 + wrappy@1.0.2: {} write-file-atomic@3.0.3: @@ -16666,7 +17079,7 @@ snapshots: yallist@4.0.0: {} - yaml-eslint-parser@1.2.2: + yaml-eslint-parser@1.2.3: dependencies: eslint-visitor-keys: 3.4.3 lodash: 4.17.21 @@ -16676,12 +17089,14 @@ snapshots: yaml@2.3.1: {} + yaml@2.5.0: {} + yargs-parser@21.1.1: {} yargs@17.7.2: dependencies: cliui: 8.0.1 - escalade: 3.1.1 + escalade: 3.1.2 get-caller-file: 2.0.5 require-directory: 2.1.1 string-width: 4.2.3 From e4b26d1cc06924c46d160e55169675438dc8c5a2 Mon Sep 17 00:00:00 2001 From: jacob-8 Date: Thu, 29 Aug 2024 11:45:02 +0800 Subject: [PATCH 02/44] update optimizedDeps --- packages/functions/package.json | 2 +- packages/site/vite.config.ts | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/packages/functions/package.json b/packages/functions/package.json index 69ceb42c0..1cc22153f 100644 --- a/packages/functions/package.json +++ b/packages/functions/package.json @@ -5,7 +5,7 @@ "private": true, "main": "lib/index.js", "engines": { - "node": "18" + "node": "20" }, "scripts": { "build": "tsc", diff --git a/packages/site/vite.config.ts b/packages/site/vite.config.ts index f05da902d..682ee5375 100644 --- a/packages/site/vite.config.ts +++ b/packages/site/vite.config.ts @@ -24,8 +24,8 @@ export default defineConfig({ define: getReplacements(), optimizeDeps: { include: [ // if the dependency is large with many internal modules or is CommonJS then include it + 'xss', // 'firebase/functions', - // 'xss', // 'kitbook', // 'kitbook/viewer/load-viewer', // 'firebase/firestore', @@ -39,6 +39,11 @@ export default defineConfig({ // 'instantsearch.js', ], exclude: [ // if the dependency is small, ESM, no CJS imports, then exclude and let the browser load directly - https://vitejs.dev/guide/dep-pre-bundling.html + 'comlink', + '@orama/orama', + '@turf/helpers', + '@turf/center', + '@turf/turf', 'sveltefirets', 'svelte-pieces', '@sentry/browser', From 70df9c919f58f1bc11a7c51e059fccb45ab86e92 Mon Sep 17 00:00:00 2001 From: jacob-8 Date: Thu, 29 Aug 2024 11:56:02 +0800 Subject: [PATCH 03/44] update vite and vitest packages --- package.json | 3 +- packages/functions/package.json | 2 +- packages/scripts/package.json | 2 +- packages/site/package.json | 6 +- packages/site/vite.config.ts | 10 +- pnpm-lock.yaml | 1498 ++++++++++++++----------------- 6 files changed, 703 insertions(+), 818 deletions(-) diff --git a/package.json b/package.json index ae28ffa44..c563c9aac 100644 --- a/package.json +++ b/package.json @@ -3,6 +3,7 @@ "type": "module", "scripts": { "dev": "pnpm --filter=site dev", + "prod": "pnpm --filter=site prod", "dev:open": "pnpm --filter=site dev --open", "build": "pnpm --filter=site build", "preview": "pnpm --filter=site preview", @@ -34,7 +35,7 @@ "supabase": "^1.145.4", "svelte": "^4.2.12", "typescript": "~5.1.6", - "vitest": "^1.4.0" + "vitest": "^2.0.5" }, "simple-git-hooks": { "pre-commit": "pnpm lint-staged" diff --git a/packages/functions/package.json b/packages/functions/package.json index 1cc22153f..86131acad 100644 --- a/packages/functions/package.json +++ b/packages/functions/package.json @@ -30,6 +30,6 @@ "@types/node": "^18.11.18", "node-fetch": "^2.6.7", "typescript": "^5.1.6", - "vitest": "^1.4.0" + "vitest": "^2.0.5" } } diff --git a/packages/scripts/package.json b/packages/scripts/package.json index b778f53ce..85f11f220 100644 --- a/packages/scripts/package.json +++ b/packages/scripts/package.json @@ -52,6 +52,6 @@ "stream-json": "^1.8.0", "tsx": "^4.19.0", "typescript": "~5.1.6", - "vitest": "^1.4.0" + "vitest": "^2.0.5" } } diff --git a/packages/site/package.json b/packages/site/package.json index 5f47aebf7..c68b87f1d 100644 --- a/packages/site/package.json +++ b/packages/site/package.json @@ -49,7 +49,7 @@ "@types/recordrtc": "^5.6.10", "@unocss/preset-icons": "^0.58.5", "@unocss/svelte-scoped": "^0.58.5", - "@vitest/ui": "^1.4.0", + "@vitest/ui": "^2.0.5", "algoliasearch": "^4.11.0", "ckeditor5-build-classic-with-alignment-underline-smallcaps": "^1.0.0", "comlink": "^4.4.1", @@ -76,8 +76,8 @@ "type-fest": "^4.13.0", "typescript": "^5.1.6", "unocss": "^0.58.5", - "vite": "^5.1.4", - "vitest": "^1.4.0", + "vite": "^5.4.2", + "vitest": "^2.0.5", "wavesurfer.js": "^5.2.0", "web-vitals": "^2.1.2", "xss": "^1.0.14" diff --git a/packages/site/vite.config.ts b/packages/site/vite.config.ts index 682ee5375..63c35dc4e 100644 --- a/packages/site/vite.config.ts +++ b/packages/site/vite.config.ts @@ -25,18 +25,10 @@ export default defineConfig({ optimizeDeps: { include: [ // if the dependency is large with many internal modules or is CommonJS then include it 'xss', - // 'firebase/functions', + 'typescript', // bc kitbook uses it // 'kitbook', // 'kitbook/viewer/load-viewer', - // 'firebase/firestore', - // 'firebase/app', - // 'firebase/firestore/lite', - // 'firebase/auth', - // 'firebase/performance', // '@turf/turf', - // 'instantsearch.js/es/widgets/index.js', 'instantsearch.js/es/connectors', - // 'algoliasearch', - // 'instantsearch.js', ], exclude: [ // if the dependency is small, ESM, no CJS imports, then exclude and let the browser load directly - https://vitejs.dev/guide/dep-pre-bundling.html 'comlink', diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6392234e1..9e5f62fdf 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,19 +10,19 @@ importers: devDependencies: '@antfu/eslint-config': specifier: ^2.27.3 - version: 2.27.3(@typescript-eslint/utils@8.3.0(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6))(@vue/compiler-sfc@3.4.21)(eslint-plugin-svelte@2.43.0(eslint@9.9.1(jiti@1.21.0))(svelte@4.2.12))(eslint@9.9.1(jiti@1.21.0))(svelte-eslint-parser@0.41.0(svelte@4.2.12))(svelte@4.2.12)(typescript@5.1.6)(vitest@1.4.0(@types/node@20.11.0)(@vitest/ui@1.4.0)) + version: 2.27.3(@typescript-eslint/utils@8.3.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.1.6))(@vue/compiler-sfc@3.4.38)(eslint-plugin-svelte@2.43.0(eslint@9.9.1(jiti@1.21.6))(svelte@4.2.12))(eslint@9.9.1(jiti@1.21.6))(svelte-eslint-parser@0.41.0(svelte@4.2.12))(svelte@4.2.12)(typescript@5.1.6)(vitest@2.0.5(@types/node@22.5.1)(@vitest/ui@2.0.5)) '@typescript-eslint/eslint-plugin': specifier: 8.3.0 - version: 8.3.0(@typescript-eslint/parser@8.3.0(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6))(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6) + version: 8.3.0(@typescript-eslint/parser@8.3.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.1.6))(eslint@9.9.1(jiti@1.21.6))(typescript@5.1.6) eslint: specifier: ^9.9.1 - version: 9.9.1(jiti@1.21.0) + version: 9.9.1(jiti@1.21.6) eslint-plugin-svelte: specifier: ^2.43.0 - version: 2.43.0(eslint@9.9.1(jiti@1.21.0))(svelte@4.2.12) + version: 2.43.0(eslint@9.9.1(jiti@1.21.6))(svelte@4.2.12) eslint-plugin-svelte-stylistic: specifier: ^0.0.4 - version: 0.0.4(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6) + version: 0.0.4(eslint@9.9.1(jiti@1.21.6))(typescript@5.1.6) lint-staged: specifier: ^15.2.9 version: 15.2.9 @@ -42,8 +42,8 @@ importers: specifier: ~5.1.6 version: 5.1.6 vitest: - specifier: ^1.4.0 - version: 1.4.0(@types/node@20.11.0)(@vitest/ui@1.4.0) + specifier: ^2.0.5 + version: 2.0.5(@types/node@22.5.1)(@vitest/ui@2.0.5) packages/functions: dependencies: @@ -73,8 +73,8 @@ importers: specifier: ^5.1.6 version: 5.1.6 vitest: - specifier: ^1.4.0 - version: 1.4.0(@types/node@18.11.18)(@vitest/ui@1.4.0) + specifier: ^2.0.5 + version: 2.0.5(@types/node@18.11.18)(@vitest/ui@2.0.5) packages/scripts: devDependencies: @@ -145,8 +145,8 @@ importers: specifier: ~5.1.6 version: 5.1.6 vitest: - specifier: ^1.4.0 - version: 1.4.0(@types/node@18.11.18)(@vitest/ui@1.4.0) + specifier: ^2.0.5 + version: 2.0.5(@types/node@18.11.18)(@vitest/ui@2.0.5) packages/site: devDependencies: @@ -155,7 +155,7 @@ importers: version: 2.2.242 '@julr/unocss-preset-forms': specifier: ^0.0.5 - version: 0.0.5(unocss@0.58.5(postcss@8.4.41)(rollup@4.13.0)(vite@5.1.4(@types/node@20.11.0))) + version: 0.0.5(unocss@0.58.5(postcss@8.4.41)(rollup@4.21.1)(vite@5.4.2(@types/node@22.5.1))) '@living-dictionaries/types': specifier: workspace:^1.0.0 version: link:../types @@ -176,13 +176,13 @@ importers: version: 2.39.7 '@sveltejs/adapter-auto': specifier: ^3.0.0 - version: 3.1.1(@sveltejs/kit@2.5.4(@sveltejs/vite-plugin-svelte@3.0.2(svelte@4.2.12)(vite@5.1.4(@types/node@20.11.0)))(svelte@4.2.12)(vite@5.1.4(@types/node@20.11.0))) + version: 3.1.1(@sveltejs/kit@2.5.4(@sveltejs/vite-plugin-svelte@3.0.2(svelte@4.2.12)(vite@5.4.2(@types/node@22.5.1)))(svelte@4.2.12)(vite@5.4.2(@types/node@22.5.1))) '@sveltejs/kit': specifier: ^2.5.4 - version: 2.5.4(@sveltejs/vite-plugin-svelte@3.0.2(svelte@4.2.12)(vite@5.1.4(@types/node@20.11.0)))(svelte@4.2.12)(vite@5.1.4(@types/node@20.11.0)) + version: 2.5.4(@sveltejs/vite-plugin-svelte@3.0.2(svelte@4.2.12)(vite@5.4.2(@types/node@22.5.1)))(svelte@4.2.12)(vite@5.4.2(@types/node@22.5.1)) '@sveltejs/vite-plugin-svelte': specifier: ^3.0.0 - version: 3.0.2(svelte@4.2.12)(vite@5.1.4(@types/node@20.11.0)) + version: 3.0.2(svelte@4.2.12)(vite@5.4.2(@types/node@22.5.1)) '@turf/center': specifier: ^6.5.0 version: 6.5.0 @@ -226,8 +226,8 @@ importers: specifier: ^0.58.5 version: 0.58.5 '@vitest/ui': - specifier: ^1.4.0 - version: 1.4.0(vitest@1.4.0) + specifier: ^2.0.5 + version: 2.0.5(vitest@2.0.5) algoliasearch: specifier: ^4.11.0 version: 4.13.0 @@ -263,7 +263,7 @@ importers: version: 3.8.0 kitbook: specifier: 1.0.0-beta.31 - version: 1.0.0-beta.31(@lezer/common@1.2.1)(@sveltejs/kit@2.5.4(@sveltejs/vite-plugin-svelte@3.0.2(svelte@4.2.12)(vite@5.1.4(@types/node@20.11.0)))(svelte@4.2.12)(vite@5.1.4(@types/node@20.11.0)))(svelte@4.2.12)(typescript@5.1.6) + version: 1.0.0-beta.31(@lezer/common@1.2.1)(@sveltejs/kit@2.5.4(@sveltejs/vite-plugin-svelte@3.0.2(svelte@4.2.12)(vite@5.4.2(@types/node@22.5.1)))(svelte@4.2.12)(vite@5.4.2(@types/node@22.5.1)))(svelte@4.2.12)(typescript@5.1.6) logrocket: specifier: ^2.1.2 version: 2.2.1 @@ -284,7 +284,7 @@ importers: version: 4.2.12 svelte-check: specifier: ^3.6.8 - version: 3.6.8(@babel/core@7.23.9)(postcss-load-config@3.1.4(postcss@8.4.41))(postcss@8.4.41)(svelte@4.2.12) + version: 3.6.8(@babel/core@7.23.9)(postcss-load-config@6.0.1(jiti@1.21.6)(postcss@8.4.41))(postcss@8.4.41)(svelte@4.2.12) svelte-pieces: specifier: 2.0.0-next.14 version: 2.0.0-next.14(svelte@4.2.12) @@ -305,13 +305,13 @@ importers: version: 5.1.6 unocss: specifier: ^0.58.5 - version: 0.58.5(postcss@8.4.41)(rollup@4.13.0)(vite@5.1.4(@types/node@20.11.0)) + version: 0.58.5(postcss@8.4.41)(rollup@4.21.1)(vite@5.4.2(@types/node@22.5.1)) vite: - specifier: ^5.1.4 - version: 5.1.4(@types/node@20.11.0) + specifier: ^5.4.2 + version: 5.4.2(@types/node@22.5.1) vitest: - specifier: ^1.4.0 - version: 1.4.0(@types/node@20.11.0)(@vitest/ui@1.4.0) + specifier: ^2.0.5 + version: 2.0.5(@types/node@22.5.1)(@vitest/ui@2.0.5) wavesurfer.js: specifier: ^5.2.0 version: 5.2.0 @@ -329,7 +329,7 @@ importers: version: 10.9.0 sveltefirets: specifier: 0.0.42 - version: 0.0.42(firebase@10.9.0)(svelte@4.2.12) + version: 0.0.42(firebase@10.9.0)(svelte@4.2.19) packages: @@ -386,6 +386,10 @@ packages: resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} engines: {node: '>=6.0.0'} + '@ampproject/remapping@2.3.0': + resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} + engines: {node: '>=6.0.0'} + '@antfu/eslint-config@2.27.3': resolution: {integrity: sha512-Y2Vh/LvPAaYoyLwCiZHJ7p76LEIGg6debeUA4Qs+KOrlGuXLQWRmdZlC6SB33UDNzXqkFeaXAlEcYUqvYoiMKA==} hasBin: true @@ -533,6 +537,10 @@ packages: resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==} engines: {node: '>=6.9.0'} + '@babel/helper-string-parser@7.24.8': + resolution: {integrity: sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==} + engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@7.22.20': resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} engines: {node: '>=6.9.0'} @@ -563,6 +571,11 @@ packages: engines: {node: '>=6.0.0'} hasBin: true + '@babel/parser@7.25.4': + resolution: {integrity: sha512-nq+eWrOgdtu3jG5Os4TQP3x3cLA8hR8TvJNjD8vnPa20WGycimcparWnLK4jJhElTK6SDyuJo1weMKO/5LpmLA==} + engines: {node: '>=6.0.0'} + hasBin: true + '@babel/plugin-syntax-jsx@7.23.3': resolution: {integrity: sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==} engines: {node: '>=6.9.0'} @@ -613,6 +626,10 @@ packages: resolution: {integrity: sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==} engines: {node: '>=6.9.0'} + '@babel/types@7.25.4': + resolution: {integrity: sha512-zQ1ijeeCXVEh+aNL0RlmkPkG8HUiDcU2pzQQFjtbntgAczRASFzj4H+6+bV+dy1ntKR14I/DypeuRG1uma98iQ==} + engines: {node: '>=6.9.0'} + '@ckeditor/ckeditor-cloud-services-collaboration@50.0.0': resolution: {integrity: sha512-C99HTskj3+Y3O14iZb08YeeWNJ3vl70T+2+YP+pvgw1+CYbxUtwSQxTgVImlNHtHDfZIP8BDKoUdOWp0vY88mg==} @@ -824,8 +841,8 @@ packages: resolution: {integrity: sha512-G6QUWIcC+KvSwXNsJyDTHvqUdNoAVJPPgkc3+Uk4WBKqZvoXhlvazOgm9aL0HwihJLQf0l+tOE2UFzXBqCqgDw==} engines: {node: '>=16'} - '@esbuild/aix-ppc64@0.19.12': - resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==} + '@esbuild/aix-ppc64@0.21.5': + resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} engines: {node: '>=12'} cpu: [ppc64] os: [aix] @@ -836,8 +853,8 @@ packages: cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.19.12': - resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} + '@esbuild/android-arm64@0.21.5': + resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} engines: {node: '>=12'} cpu: [arm64] os: [android] @@ -848,8 +865,8 @@ packages: cpu: [arm64] os: [android] - '@esbuild/android-arm@0.19.12': - resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} + '@esbuild/android-arm@0.21.5': + resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} engines: {node: '>=12'} cpu: [arm] os: [android] @@ -860,8 +877,8 @@ packages: cpu: [arm] os: [android] - '@esbuild/android-x64@0.19.12': - resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} + '@esbuild/android-x64@0.21.5': + resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} engines: {node: '>=12'} cpu: [x64] os: [android] @@ -872,8 +889,8 @@ packages: cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.19.12': - resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} + '@esbuild/darwin-arm64@0.21.5': + resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] @@ -884,8 +901,8 @@ packages: cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.19.12': - resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} + '@esbuild/darwin-x64@0.21.5': + resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} engines: {node: '>=12'} cpu: [x64] os: [darwin] @@ -896,8 +913,8 @@ packages: cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.19.12': - resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} + '@esbuild/freebsd-arm64@0.21.5': + resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] @@ -908,8 +925,8 @@ packages: cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.19.12': - resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} + '@esbuild/freebsd-x64@0.21.5': + resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] @@ -920,8 +937,8 @@ packages: cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.19.12': - resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} + '@esbuild/linux-arm64@0.21.5': + resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} engines: {node: '>=12'} cpu: [arm64] os: [linux] @@ -932,8 +949,8 @@ packages: cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.19.12': - resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} + '@esbuild/linux-arm@0.21.5': + resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} engines: {node: '>=12'} cpu: [arm] os: [linux] @@ -944,8 +961,8 @@ packages: cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.19.12': - resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} + '@esbuild/linux-ia32@0.21.5': + resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} engines: {node: '>=12'} cpu: [ia32] os: [linux] @@ -956,8 +973,8 @@ packages: cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.19.12': - resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} + '@esbuild/linux-loong64@0.21.5': + resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} engines: {node: '>=12'} cpu: [loong64] os: [linux] @@ -968,8 +985,8 @@ packages: cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.19.12': - resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} + '@esbuild/linux-mips64el@0.21.5': + resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] @@ -980,8 +997,8 @@ packages: cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.19.12': - resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} + '@esbuild/linux-ppc64@0.21.5': + resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] @@ -992,8 +1009,8 @@ packages: cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.19.12': - resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} + '@esbuild/linux-riscv64@0.21.5': + resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] @@ -1004,8 +1021,8 @@ packages: cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.19.12': - resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} + '@esbuild/linux-s390x@0.21.5': + resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} engines: {node: '>=12'} cpu: [s390x] os: [linux] @@ -1016,8 +1033,8 @@ packages: cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.19.12': - resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} + '@esbuild/linux-x64@0.21.5': + resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} engines: {node: '>=12'} cpu: [x64] os: [linux] @@ -1028,8 +1045,8 @@ packages: cpu: [x64] os: [linux] - '@esbuild/netbsd-x64@0.19.12': - resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} + '@esbuild/netbsd-x64@0.21.5': + resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] @@ -1046,8 +1063,8 @@ packages: cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-x64@0.19.12': - resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} + '@esbuild/openbsd-x64@0.21.5': + resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] @@ -1058,8 +1075,8 @@ packages: cpu: [x64] os: [openbsd] - '@esbuild/sunos-x64@0.19.12': - resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} + '@esbuild/sunos-x64@0.21.5': + resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} engines: {node: '>=12'} cpu: [x64] os: [sunos] @@ -1070,8 +1087,8 @@ packages: cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.19.12': - resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} + '@esbuild/win32-arm64@0.21.5': + resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} engines: {node: '>=12'} cpu: [arm64] os: [win32] @@ -1082,8 +1099,8 @@ packages: cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.19.12': - resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} + '@esbuild/win32-ia32@0.21.5': + resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} engines: {node: '>=12'} cpu: [ia32] os: [win32] @@ -1094,8 +1111,8 @@ packages: cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.19.12': - resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} + '@esbuild/win32-x64@0.21.5': + resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} engines: {node: '>=12'} cpu: [x64] os: [win32] @@ -1432,14 +1449,14 @@ packages: resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} - '@jest/schemas@29.6.3': - resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - '@jridgewell/gen-mapping@0.3.4': resolution: {integrity: sha512-Oud2QPM5dHviZNn4y/WhhYKSXksv+1xLEIsNrAbGcFzUN3ubqWRFT5gwPchNc5NuzILOU4tPBDTZ4VwhL8Y7cw==} engines: {node: '>=6.0.0'} + '@jridgewell/gen-mapping@0.3.5': + resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} + engines: {node: '>=6.0.0'} + '@jridgewell/resolve-uri@3.1.2': resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} @@ -1448,9 +1465,16 @@ packages: resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} engines: {node: '>=6.0.0'} + '@jridgewell/set-array@1.2.1': + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + engines: {node: '>=6.0.0'} + '@jridgewell/sourcemap-codec@1.4.15': resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + '@jridgewell/sourcemap-codec@1.5.0': + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + '@jridgewell/trace-mapping@0.3.23': resolution: {integrity: sha512-9/4foRoUKp8s96tSkh8DlAAc5A0Ty8vLXld+l9gjKKY6ckwI8G15f0hskGmuLZu78ZlGa1vtsfOa+lnB4vG6Jg==} @@ -1666,133 +1690,83 @@ packages: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.12.0': - resolution: {integrity: sha512-+ac02NL/2TCKRrJu2wffk1kZ+RyqxVUlbjSagNgPm94frxtr+XDL12E5Ll1enWskLrtrZ2r8L3wED1orIibV/w==} + '@rollup/rollup-android-arm-eabi@4.21.1': + resolution: {integrity: sha512-2thheikVEuU7ZxFXubPDOtspKn1x0yqaYQwvALVtEcvFhMifPADBrgRPyHV0TF3b+9BgvgjgagVyvA/UqPZHmg==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm-eabi@4.13.0': - resolution: {integrity: sha512-5ZYPOuaAqEH/W3gYsRkxQATBW3Ii1MfaT4EQstTnLKViLi2gLSQmlmtTpGucNP3sXEpOiI5tdGhjdE111ekyEg==} - cpu: [arm] - os: [android] - - '@rollup/rollup-android-arm64@4.12.0': - resolution: {integrity: sha512-OBqcX2BMe6nvjQ0Nyp7cC90cnumt8PXmO7Dp3gfAju/6YwG0Tj74z1vKrfRz7qAv23nBcYM8BCbhrsWqO7PzQQ==} - cpu: [arm64] - os: [android] - - '@rollup/rollup-android-arm64@4.13.0': - resolution: {integrity: sha512-BSbaCmn8ZadK3UAQdlauSvtaJjhlDEjS5hEVVIN3A4bbl3X+otyf/kOJV08bYiRxfejP3DXFzO2jz3G20107+Q==} + '@rollup/rollup-android-arm64@4.21.1': + resolution: {integrity: sha512-t1lLYn4V9WgnIFHXy1d2Di/7gyzBWS8G5pQSXdZqfrdCGTwi1VasRMSS81DTYb+avDs/Zz4A6dzERki5oRYz1g==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.12.0': - resolution: {integrity: sha512-X64tZd8dRE/QTrBIEs63kaOBG0b5GVEd3ccoLtyf6IdXtHdh8h+I56C2yC3PtC9Ucnv0CpNFJLqKFVgCYe0lOQ==} - cpu: [arm64] - os: [darwin] - - '@rollup/rollup-darwin-arm64@4.13.0': - resolution: {integrity: sha512-Ovf2evVaP6sW5Ut0GHyUSOqA6tVKfrTHddtmxGQc1CTQa1Cw3/KMCDEEICZBbyppcwnhMwcDce9ZRxdWRpVd6g==} + '@rollup/rollup-darwin-arm64@4.21.1': + resolution: {integrity: sha512-AH/wNWSEEHvs6t4iJ3RANxW5ZCK3fUnmf0gyMxWCesY1AlUj8jY7GC+rQE4wd3gwmZ9XDOpL0kcFnCjtN7FXlA==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.12.0': - resolution: {integrity: sha512-cc71KUZoVbUJmGP2cOuiZ9HSOP14AzBAThn3OU+9LcA1+IUqswJyR1cAJj3Mg55HbjZP6OLAIscbQsQLrpgTOg==} + '@rollup/rollup-darwin-x64@4.21.1': + resolution: {integrity: sha512-dO0BIz/+5ZdkLZrVgQrDdW7m2RkrLwYTh2YMFG9IpBtlC1x1NPNSXkfczhZieOlOLEqgXOFH3wYHB7PmBtf+Bg==} cpu: [x64] os: [darwin] - '@rollup/rollup-darwin-x64@4.13.0': - resolution: {integrity: sha512-U+Jcxm89UTK592vZ2J9st9ajRv/hrwHdnvyuJpa5A2ngGSVHypigidkQJP+YiGL6JODiUeMzkqQzbCG3At81Gg==} - cpu: [x64] - os: [darwin] - - '@rollup/rollup-linux-arm-gnueabihf@4.12.0': - resolution: {integrity: sha512-a6w/Y3hyyO6GlpKL2xJ4IOh/7d+APaqLYdMf86xnczU3nurFTaVN9s9jOXQg97BE4nYm/7Ga51rjec5nfRdrvA==} + '@rollup/rollup-linux-arm-gnueabihf@4.21.1': + resolution: {integrity: sha512-sWWgdQ1fq+XKrlda8PsMCfut8caFwZBmhYeoehJ05FdI0YZXk6ZyUjWLrIgbR/VgiGycrFKMMgp7eJ69HOF2pQ==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-gnueabihf@4.13.0': - resolution: {integrity: sha512-8wZidaUJUTIR5T4vRS22VkSMOVooG0F4N+JSwQXWSRiC6yfEsFMLTYRFHvby5mFFuExHa/yAp9juSphQQJAijQ==} + '@rollup/rollup-linux-arm-musleabihf@4.21.1': + resolution: {integrity: sha512-9OIiSuj5EsYQlmwhmFRA0LRO0dRRjdCVZA3hnmZe1rEwRk11Jy3ECGGq3a7RrVEZ0/pCsYWx8jG3IvcrJ6RCew==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.12.0': - resolution: {integrity: sha512-0fZBq27b+D7Ar5CQMofVN8sggOVhEtzFUwOwPppQt0k+VR+7UHMZZY4y+64WJ06XOhBTKXtQB/Sv0NwQMXyNAA==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-arm64-gnu@4.13.0': - resolution: {integrity: sha512-Iu0Kno1vrD7zHQDxOmvweqLkAzjxEVqNhUIXBsZ8hu8Oak7/5VTPrxOEZXYC1nmrBVJp0ZcL2E7lSuuOVaE3+w==} + '@rollup/rollup-linux-arm64-gnu@4.21.1': + resolution: {integrity: sha512-0kuAkRK4MeIUbzQYu63NrJmfoUVicajoRAL1bpwdYIYRcs57iyIV9NLcuyDyDXE2GiZCL4uhKSYAnyWpjZkWow==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.12.0': - resolution: {integrity: sha512-eTvzUS3hhhlgeAv6bfigekzWZjaEX9xP9HhxB0Dvrdbkk5w/b+1Sxct2ZuDxNJKzsRStSq1EaEkVSEe7A7ipgQ==} + '@rollup/rollup-linux-arm64-musl@4.21.1': + resolution: {integrity: sha512-/6dYC9fZtfEY0vozpc5bx1RP4VrtEOhNQGb0HwvYNwXD1BBbwQ5cKIbUVVU7G2d5WRE90NfB922elN8ASXAJEA==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.13.0': - resolution: {integrity: sha512-C31QrW47llgVyrRjIwiOwsHFcaIwmkKi3PCroQY5aVq4H0A5v/vVVAtFsI1nfBngtoRpeREvZOkIhmRwUKkAdw==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-riscv64-gnu@4.12.0': - resolution: {integrity: sha512-ix+qAB9qmrCRiaO71VFfY8rkiAZJL8zQRXveS27HS+pKdjwUfEhqo2+YF2oI+H/22Xsiski+qqwIBxVewLK7sw==} - cpu: [riscv64] + '@rollup/rollup-linux-powerpc64le-gnu@4.21.1': + resolution: {integrity: sha512-ltUWy+sHeAh3YZ91NUsV4Xg3uBXAlscQe8ZOXRCVAKLsivGuJsrkawYPUEyCV3DYa9urgJugMLn8Z3Z/6CeyRQ==} + cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.13.0': - resolution: {integrity: sha512-Oq90dtMHvthFOPMl7pt7KmxzX7E71AfyIhh+cPhLY9oko97Zf2C9tt/XJD4RgxhaGeAraAXDtqxvKE1y/j35lA==} + '@rollup/rollup-linux-riscv64-gnu@4.21.1': + resolution: {integrity: sha512-BggMndzI7Tlv4/abrgLwa/dxNEMn2gC61DCLrTzw8LkpSKel4o+O+gtjbnkevZ18SKkeN3ihRGPuBxjaetWzWg==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.12.0': - resolution: {integrity: sha512-TenQhZVOtw/3qKOPa7d+QgkeM6xY0LtwzR8OplmyL5LrgTWIXpTQg2Q2ycBf8jm+SFW2Wt/DTn1gf7nFp3ssVA==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-linux-x64-gnu@4.13.0': - resolution: {integrity: sha512-yUD/8wMffnTKuiIsl6xU+4IA8UNhQ/f1sAnQebmE/lyQ8abjsVyDkyRkWop0kdMhKMprpNIhPmYlCxgHrPoXoA==} - cpu: [x64] + '@rollup/rollup-linux-s390x-gnu@4.21.1': + resolution: {integrity: sha512-z/9rtlGd/OMv+gb1mNSjElasMf9yXusAxnRDrBaYB+eS1shFm6/4/xDH1SAISO5729fFKUkJ88TkGPRUh8WSAA==} + cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-musl@4.12.0': - resolution: {integrity: sha512-LfFdRhNnW0zdMvdCb5FNuWlls2WbbSridJvxOvYWgSBOYZtgBfW9UGNJG//rwMqTX1xQE9BAodvMH9tAusKDUw==} + '@rollup/rollup-linux-x64-gnu@4.21.1': + resolution: {integrity: sha512-kXQVcWqDcDKw0S2E0TmhlTLlUgAmMVqPrJZR+KpH/1ZaZhLSl23GZpQVmawBQGVhyP5WXIsIQ/zqbDBBYmxm5w==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.13.0': - resolution: {integrity: sha512-9RyNqoFNdF0vu/qqX63fKotBh43fJQeYC98hCaf89DYQpv+xu0D8QFSOS0biA7cGuqJFOc1bJ+m2rhhsKcw1hw==} + '@rollup/rollup-linux-x64-musl@4.21.1': + resolution: {integrity: sha512-CbFv/WMQsSdl+bpX6rVbzR4kAjSSBuDgCqb1l4J68UYsQNalz5wOqLGYj4ZI0thGpyX5kc+LLZ9CL+kpqDovZA==} cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.12.0': - resolution: {integrity: sha512-JPDxovheWNp6d7AHCgsUlkuCKvtu3RB55iNEkaQcf0ttsDU/JZF+iQnYcQJSk/7PtT4mjjVG8N1kpwnI9SLYaw==} + '@rollup/rollup-win32-arm64-msvc@4.21.1': + resolution: {integrity: sha512-3Q3brDgA86gHXWHklrwdREKIrIbxC0ZgU8lwpj0eEKGBQH+31uPqr0P2v11pn0tSIxHvcdOWxa4j+YvLNx1i6g==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-arm64-msvc@4.13.0': - resolution: {integrity: sha512-46ue8ymtm/5PUU6pCvjlic0z82qWkxv54GTJZgHrQUuZnVH+tvvSP0LsozIDsCBFO4VjJ13N68wqrKSeScUKdA==} - cpu: [arm64] - os: [win32] - - '@rollup/rollup-win32-ia32-msvc@4.12.0': - resolution: {integrity: sha512-fjtuvMWRGJn1oZacG8IPnzIV6GF2/XG+h71FKn76OYFqySXInJtseAqdprVTDTyqPxQOG9Exak5/E9Z3+EJ8ZA==} - cpu: [ia32] - os: [win32] - - '@rollup/rollup-win32-ia32-msvc@4.13.0': - resolution: {integrity: sha512-P5/MqLdLSlqxbeuJ3YDeX37srC8mCflSyTrUsgbU1c/U9j6l2g2GiIdYaGD9QjdMQPMSgYm7hgg0551wHyIluw==} + '@rollup/rollup-win32-ia32-msvc@4.21.1': + resolution: {integrity: sha512-tNg+jJcKR3Uwe4L0/wY3Ro0H+u3nrb04+tcq1GSYzBEmKLeOQF2emk1whxlzNqb6MMrQ2JOcQEpuuiPLyRcSIw==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.12.0': - resolution: {integrity: sha512-ZYmr5mS2wd4Dew/JjT0Fqi2NPB/ZhZ2VvPp7SmvPZb4Y1CG/LRcS6tcRo2cYU7zLK5A7cdbhWnnWmUjoI4qapg==} - cpu: [x64] - os: [win32] - - '@rollup/rollup-win32-x64-msvc@4.13.0': - resolution: {integrity: sha512-UKXUQNbO3DOhzLRwHSpa0HnhhCgNODvfoPWv2FCXme8N/ANFfhIPMGuOT+QuKd16+B5yxZ0HdpNlqPvTMS1qfw==} + '@rollup/rollup-win32-x64-msvc@4.21.1': + resolution: {integrity: sha512-xGiIH95H1zU7naUyTKEyOA/I0aexNMUdO9qRv0bLKN3qu25bBdrxZHqA3PTJ24YNN/GdMzG4xkDcd/GvjuhfLg==} cpu: [x64] os: [win32] @@ -1834,9 +1808,6 @@ packages: '@sideway/pinpoint@2.0.0': resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==} - '@sinclair/typebox@0.27.8': - resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} - '@socket.io/component-emitter@3.1.0': resolution: {integrity: sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==} @@ -2523,6 +2494,9 @@ packages: '@types/node@20.11.0': resolution: {integrity: sha512-o9bjXmDNcF7GbM4CNQpmi+TutCgap/K3w1JyKgxAjqx41zp9qlIAVFi0IhCNsJcXolEqLWhbFbEeL0PvYm4pcQ==} + '@types/node@22.5.1': + resolution: {integrity: sha512-KkHsxej0j9IW1KKOOAA/XBA0z08UFSrRQHErzEfA3Vgq57eXIMYboIlHJuYIfd+lwCQjtKqUu3UnmKbtUc9yRw==} + '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -2793,40 +2767,43 @@ packages: vitest: optional: true - '@vitest/expect@1.4.0': - resolution: {integrity: sha512-Jths0sWCJZ8BxjKe+p+eKsoqev1/T8lYcrjavEaz8auEJ4jAVY0GwW3JKmdVU4mmNPLPHixh4GNXP7GFtAiDHA==} + '@vitest/expect@2.0.5': + resolution: {integrity: sha512-yHZtwuP7JZivj65Gxoi8upUN2OzHTi3zVfjwdpu2WrvCZPLwsJ2Ey5ILIPccoW23dd/zQBlJ4/dhi7DWNyXCpA==} + + '@vitest/pretty-format@2.0.5': + resolution: {integrity: sha512-h8k+1oWHfwTkyTkb9egzwNMfJAEx4veaPSnMeKbVSjp4euqGSbQlm5+6VHwTr7u4FJslVVsUG5nopCaAYdOmSQ==} - '@vitest/runner@1.4.0': - resolution: {integrity: sha512-EDYVSmesqlQ4RD2VvWo3hQgTJ7ZrFQ2VSJdfiJiArkCerDAGeyF1i6dHkmySqk573jLp6d/cfqCN+7wUB5tLgg==} + '@vitest/runner@2.0.5': + resolution: {integrity: sha512-TfRfZa6Bkk9ky4tW0z20WKXFEwwvWhRY+84CnSEtq4+3ZvDlJyY32oNTJtM7AW9ihW90tX/1Q78cb6FjoAs+ig==} - '@vitest/snapshot@1.4.0': - resolution: {integrity: sha512-saAFnt5pPIA5qDGxOHxJ/XxhMFKkUSBJmVt5VgDsAqPTX6JP326r5C/c9UuCMPoXNzuudTPsYDZCoJ5ilpqG2A==} + '@vitest/snapshot@2.0.5': + resolution: {integrity: sha512-SgCPUeDFLaM0mIUHfaArq8fD2WbaXG/zVXjRupthYfYGzc8ztbFbu6dUNOblBG7XLMR1kEhS/DNnfCZ2IhdDew==} - '@vitest/spy@1.4.0': - resolution: {integrity: sha512-Ywau/Qs1DzM/8Uc+yA77CwSegizMlcgTJuYGAi0jujOteJOUf1ujunHThYo243KG9nAyWT3L9ifPYZ5+As/+6Q==} + '@vitest/spy@2.0.5': + resolution: {integrity: sha512-c/jdthAhvJdpfVuaexSrnawxZz6pywlTPe84LUB2m/4t3rl2fTo9NFGBG4oWgaD+FTgDDV8hJ/nibT7IfH3JfA==} - '@vitest/ui@1.4.0': - resolution: {integrity: sha512-XC6CMhN1gzYcGbpn6/Oanj4Au2EXwQEX6vpcOeLlZv8dy7g11Ukx8zwtYQbwxs9duK2s9j2o5rbQiCP5DPAcmw==} + '@vitest/ui@2.0.5': + resolution: {integrity: sha512-m+ZpVt/PVi/nbeRKEjdiYeoh0aOfI9zr3Ria9LO7V2PlMETtAXJS3uETEZkc8Be2oOl8mhd7Ew+5SRBXRYncNw==} peerDependencies: - vitest: 1.4.0 + vitest: 2.0.5 - '@vitest/utils@1.4.0': - resolution: {integrity: sha512-mx3Yd1/6e2Vt/PUC98DcqTirtfxUyAZ32uK82r8rZzbtBeBo+nqgnjx/LvqQdWsrvNtm14VmurNgcf4nqY5gJg==} + '@vitest/utils@2.0.5': + resolution: {integrity: sha512-d8HKbqIcya+GR67mkZbrzhS5kKhtp8dQLcmRZLGTscGVg7yImT82cIrhtn2L8+VujWcy6KZweApgNmPsTAO/UQ==} - '@vue/compiler-core@3.4.21': - resolution: {integrity: sha512-MjXawxZf2SbZszLPYxaFCjxfibYrzr3eYbKxwpLR9EQN+oaziSu3qKVbwBERj1IFIB8OLUewxB5m/BFzi613og==} + '@vue/compiler-core@3.4.38': + resolution: {integrity: sha512-8IQOTCWnLFqfHzOGm9+P8OPSEDukgg3Huc92qSG49if/xI2SAwLHQO2qaPQbjCWPBcQoO1WYfXfTACUrWV3c5A==} - '@vue/compiler-dom@3.4.21': - resolution: {integrity: sha512-IZC6FKowtT1sl0CR5DpXSiEB5ayw75oT2bma1BEhV7RRR1+cfwLrxc2Z8Zq/RGFzJ8w5r9QtCOvTjQgdn0IKmA==} + '@vue/compiler-dom@3.4.38': + resolution: {integrity: sha512-Osc/c7ABsHXTsETLgykcOwIxFktHfGSUDkb05V61rocEfsFDcjDLH/IHJSNJP+/Sv9KeN2Lx1V6McZzlSb9EhQ==} - '@vue/compiler-sfc@3.4.21': - resolution: {integrity: sha512-me7epoTxYlY+2CUM7hy9PCDdpMPfIwrOvAXud2Upk10g4YLv9UBW7kL798TvMeDhPthkZ0CONNrK2GoeI1ODiQ==} + '@vue/compiler-sfc@3.4.38': + resolution: {integrity: sha512-s5QfZ+9PzPh3T5H4hsQDJtI8x7zdJaew/dCGgqZ2630XdzaZ3AD8xGZfBqpT8oaD/p2eedd+pL8tD5vvt5ZYJQ==} - '@vue/compiler-ssr@3.4.21': - resolution: {integrity: sha512-M5+9nI2lPpAsgXOGQobnIueVqc9sisBFexh5yMIMRAPYLa7+5wEJs8iqOZc1WAa9WQbx9GR2twgznU8LTIiZ4Q==} + '@vue/compiler-ssr@3.4.38': + resolution: {integrity: sha512-YXznKFQ8dxYpAz9zLuVvfcXhc31FSPFDcqr0kyujbOwNhlmaNvL2QfIy+RZeJgSn5Fk54CWoEUeW+NVBAogGaw==} - '@vue/shared@3.4.21': - resolution: {integrity: sha512-PuJe7vDIi6VYSinuEbUIQgMIRZGgM8e4R+G+/dQTk0X1NEdvgvvgv7m+rfmDH1gZzyA1OjjoWskvHlfRNfQf3g==} + '@vue/shared@3.4.38': + resolution: {integrity: sha512-q0xCiLkuWWQLzVrecPb0RMsNWyxICOjPrcrwxTUEHb1fsnvni4dcuyG7RT/Ie7VPTvnjzIaWzRMUBsrqNj/hhw==} abbrev@1.1.1: resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} @@ -2937,10 +2914,6 @@ packages: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} - ansi-styles@5.2.0: - resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} - engines: {node: '>=10'} - ansi-styles@6.2.1: resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} engines: {node: '>=12'} @@ -3000,8 +2973,9 @@ packages: resolution: {integrity: sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==} engines: {node: '>=0.8'} - assertion-error@1.1.0: - resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} + assertion-error@2.0.1: + resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} + engines: {node: '>=12'} ast-types@0.13.4: resolution: {integrity: sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==} @@ -3034,6 +3008,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'} + bail@2.0.2: resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} @@ -3175,9 +3153,9 @@ packages: ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} - chai@4.4.1: - resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==} - engines: {node: '>=4'} + chai@5.1.1: + resolution: {integrity: sha512-pT1ZgP8rPNqUgieVaEY+ryQr6Q4HXNg8Ei9UnLUrjN4IA7dvQC5JB+/kxVcPNDHyBcc/26CXPkbNzq3qwrOEKA==} + engines: {node: '>=12'} chalk@2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} @@ -3216,8 +3194,9 @@ packages: chardet@0.7.0: resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} - check-error@1.0.3: - resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} + check-error@2.1.1: + resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==} + engines: {node: '>= 16'} check-more-types@2.24.0: resolution: {integrity: sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA==} @@ -3612,8 +3591,8 @@ packages: dedent-js@1.0.1: resolution: {integrity: sha512-OUepMozQULMLUmhxS95Vudo0jb0UchLimi3+pQ2plj61Fcy8axbP9hbiD4Sz6DPqn6XG3kfmziVfQ1rSys5AJQ==} - deep-eql@4.1.3: - resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} + deep-eql@5.0.2: + resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} engines: {node: '>=6'} deep-equal@1.1.1: @@ -3681,10 +3660,6 @@ packages: devalue@4.3.2: resolution: {integrity: sha512-KqFl6pOgOW+Y6wJgu80rHpo2/3H07vr8ntR9rkkFIRETewbf5GaYYcakYfiKz89K+sLsuPkQIZaXDMjUObZwWg==} - diff-sequences@29.6.3: - resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - diff@5.2.0: resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} engines: {node: '>=0.3.1'} @@ -3801,8 +3776,8 @@ packages: es6-promise@3.3.1: resolution: {integrity: sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==} - esbuild@0.19.12: - resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} + esbuild@0.21.5: + resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} engines: {node: '>=12'} hasBin: true @@ -4941,6 +4916,10 @@ packages: resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} hasBin: true + jiti@1.21.6: + resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} + hasBin: true + jju@1.4.0: resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} @@ -4956,9 +4935,6 @@ packages: js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - js-tokens@8.0.3: - resolution: {integrity: sha512-UfJMcSJc+SEXEl9lH/VLHSZbThQyLpw1vLO1Lb+j4RWDvG3N2f7yj3PVQA3cmkTBNldJ9eFnM+xEXxHIXrYiJw==} - js-yaml@3.14.1: resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} hasBin: true @@ -5259,8 +5235,8 @@ packages: longest-streak@3.1.0: resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} - loupe@2.3.7: - resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} + loupe@3.1.1: + resolution: {integrity: sha512-edNu/8D5MKVfGVFRhFf8aAxiTM6Wumfz5XsaatSxlD3w4R1d/WEKUTydCdPGbl9K7QG/Ca3GnDV2sIKIpXRQcw==} lower-case@2.0.2: resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} @@ -5286,6 +5262,9 @@ packages: resolution: {integrity: sha512-0ckx7ZHRPqb0oUm8zNr+90mtf9DQB60H1wMCjBtfi62Kl3a7JbHob6gA2bC+xRvZoOL+1hzUK8jeuEIQE8svEQ==} hasBin: true + magic-string@0.30.11: + resolution: {integrity: sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==} + magic-string@0.30.7: resolution: {integrity: sha512-8vBuFF/I/+OSLRmdf2wwFCJCz+nSn0m6DPvGH1fS/KiQoSaR+sETbov0eIk9KhEKy8CYqIkIAnbohxT/4H0kuA==} engines: {node: '>=12'} @@ -5493,10 +5472,6 @@ packages: micromark@3.2.0: resolution: {integrity: sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==} - micromatch@4.0.5: - resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} - engines: {node: '>=8.6'} - micromatch@4.0.8: resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} engines: {node: '>=8.6'} @@ -5870,10 +5845,6 @@ packages: resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} engines: {node: '>=10'} - p-limit@5.0.0: - resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==} - engines: {node: '>=18'} - p-locate@4.1.0: resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} engines: {node: '>=8'} @@ -5976,8 +5947,9 @@ packages: pathe@1.1.2: resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} - pathval@1.1.1: - resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} + pathval@2.0.0: + resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==} + engines: {node: '>= 14.16'} pause-stream@0.0.11: resolution: {integrity: sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==} @@ -6094,6 +6066,24 @@ packages: ts-node: optional: true + postcss-load-config@6.0.1: + resolution: {integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==} + engines: {node: '>= 18'} + peerDependencies: + jiti: '>=1.21.0' + postcss: '>=8.0.9' + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + jiti: + optional: true + postcss: + optional: true + tsx: + optional: true + yaml: + optional: true + postcss-safe-parser@6.0.0: resolution: {integrity: sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==} engines: {node: '>=12.0'} @@ -6117,18 +6107,6 @@ packages: postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - postcss@8.4.35: - resolution: {integrity: sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==} - engines: {node: ^10 || ^12 || >=14} - - postcss@8.4.36: - resolution: {integrity: sha512-/n7eumA6ZjFHAsbX30yhHup/IMkOmlmvtEi7P+6RMYf+bGJSUHc3geH4a0NSZxAz/RJfiS9tooCTs9LAVYUZKw==} - engines: {node: ^10 || ^12 || >=14} - - postcss@8.4.37: - resolution: {integrity: sha512-7iB/v/r7Woof0glKLH8b1SPHrsX7uhdO+Geb41QpF/+mWZHU3uxxSlN+UXGVit1PawOYDToO+AbZzhBzWRDwbQ==} - engines: {node: ^10 || ^12 || >=14} - postcss@8.4.41: resolution: {integrity: sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==} engines: {node: ^10 || ^12 || >=14} @@ -6179,10 +6157,6 @@ packages: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} - pretty-format@29.7.0: - resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - prism-svelte@0.4.7: resolution: {integrity: sha512-yABh19CYbM24V7aS7TuPYRNMqthxwbvx6FF/Rw920YbyBWO3tnyPIqRMgHuSVsLmuHkkBS1Akyof463FVdkeDQ==} @@ -6320,9 +6294,6 @@ packages: re2@1.20.10: resolution: {integrity: sha512-/5JjSPXobSDaKFL6rD5Gb4qD4CVBITQb7NAxfQ/NA7o0HER3SJAPV3lPO2kvzw0/PN1pVJNVATEUk4y9j7oIIA==} - react-is@18.2.0: - resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} - read-cmd-shim@4.0.0: resolution: {integrity: sha512-yILWifhaSEEytfXI76kB9xEEiG1AiozaCJZ83A87ytjRiN+jVibXjedjCRNjoZviinhG+4UkalO3mWTd8u5O0Q==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -6497,13 +6468,8 @@ packages: robust-predicates@2.0.4: resolution: {integrity: sha512-l4NwboJM74Ilm4VKfbAtFeGq7aEjWL+5kVFcmgFA2MrdnQWx9iE/tUGvxY5HyMI7o/WpSIUFLbC5fbeaHgSCYg==} - rollup@4.12.0: - resolution: {integrity: sha512-wz66wn4t1OHIJw3+XU7mJJQV/2NAfw5OAk6G6Hoo3zcvz/XOfQ52Vgi+AN4Uxoxi0KBBwk2g8zPrTDA4btSB/Q==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true - - rollup@4.13.0: - resolution: {integrity: sha512-3YegKemjoQnYKmsBlOHfMLVPPA5xLkQ8MHLLSw/fBrFaVkEayL51DilPpNNLq1exr98F2B1TzrV0FUlN3gWRPg==} + rollup@4.21.1: + resolution: {integrity: sha512-ZnYyKvscThhgd3M5+Qt3pmhO4jIRR5RGzaSovB6Q7rGNrK5cUncrtLmcTTJVSdcKXyZjW8X8MB0JMSuH9bcAJg==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -6709,10 +6675,6 @@ packages: resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} engines: {node: '>=0.10.0'} - source-map-js@1.1.0: - resolution: {integrity: sha512-9vC2SfsJzlej6MAaMPLu8HiBSHGdRAJ9hVFYN1ibZoNkeanmDmLUcIrj6G9DGL7XMJ54AKg/G75akXl1/izTOw==} - engines: {node: '>=0.10.0'} - source-map-js@1.2.0: resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} engines: {node: '>=0.10.0'} @@ -6873,9 +6835,6 @@ packages: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} - strip-literal@2.0.0: - resolution: {integrity: sha512-f9vHgsCWBq2ugHAkGMiiYY+AYG0D/cbloKKg0nhaaaSNsujdGIpVXCNsrJpCKr5M0f4aI31mr13UjY6GAuXCKA==} - strnum@1.0.5: resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} @@ -6989,6 +6948,10 @@ packages: resolution: {integrity: sha512-d8+wsh5TfPwqVzbm4/HCXC783/KPHV60NvwitJnyTA5lWn1elhXMNWhXGCJ7PwPa8qFUnyJNIyuIRt2mT0WMug==} engines: {node: '>=16'} + svelte@4.2.19: + resolution: {integrity: sha512-IY1rnGr6izd10B0A8LqsBfmlT5OILVuZ7XsI0vdGPEvuonFV7NYEUK4dAkm9Zg2q0Um92kYjTpS1CAP3Nh/KWw==} + engines: {node: '>=16'} + sveltefirets@0.0.42: resolution: {integrity: sha512-xmyOCYFa8x+CaeM/8YvZHRPv+M82fYHmXKZG9BGdwje/2bGUSho+RHepbJL+eZLj5IgXhMhaC3BoRRMqREEZiw==} peerDependencies: @@ -7044,21 +7007,25 @@ packages: tiny-glob@0.2.9: resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==} - tinybench@2.6.0: - resolution: {integrity: sha512-N8hW3PG/3aOoZAN5V/NSAEDz0ZixDSSt5b/a05iqtpgfLWMSVuCo7w0k2vVvEjdrIoeGqZzweX2WlyioNIHchA==} + tinybench@2.9.0: + resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} tinyexec@0.3.0: resolution: {integrity: sha512-tVGE0mVJPGb0chKhqmsoosjsS+qUnJVGJpZgsHYQcGoPlG3B51R3PouqTgEGH2Dc9jjFyOqOpix6ZHNMXp1FZg==} - tinypool@0.8.2: - resolution: {integrity: sha512-SUszKYe5wgsxnNOVlBYO6IC+8VGWdVGZWAqUxp3UErNBtptZvWbwyUOyzNL59zigz2rCA92QiL3wvG+JDSdJdQ==} - engines: {node: '>=14.0.0'} + tinypool@1.0.1: + resolution: {integrity: sha512-URZYihUbRPcGv95En+sz6MfghfIc2OJ1sv/RmhWZLouPY0/8Vo80viwPvg3dlaS9fuq7fQMEfgRRK7BBZThBEA==} + engines: {node: ^18.0.0 || >=20.0.0} tinyqueue@2.0.3: resolution: {integrity: sha512-ppJZNDuKGgxzkHihX8v9v9G5f+18gzaTfrukGrq6ueg0lmH4nqVnA2IPG0AEH3jKEk2GRJCUhDoqpoiw3PHLBA==} - tinyspy@2.2.1: - resolution: {integrity: sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==} + tinyrainbow@1.2.0: + resolution: {integrity: sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==} + engines: {node: '>=14.0.0'} + + tinyspy@3.0.0: + resolution: {integrity: sha512-q5nmENpTHgiPVd1cJDDc9cVoYN5x4vCvwT3FMilvKPKneCBZAxn2YWQjDF0UMcE9k0Cay1gBiDfTMU0g+mPMQA==} engines: {node: '>=14.0.0'} tmp@0.0.33: @@ -7159,10 +7126,6 @@ packages: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} - type-detect@4.0.8: - resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} - engines: {node: '>=4'} - type-fest@0.20.2: resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} engines: {node: '>=10'} @@ -7222,6 +7185,9 @@ packages: undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + undici-types@6.19.8: + resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} + undici@5.28.3: resolution: {integrity: sha512-3ItfzbrhDlINjaP0duwnNsKpDQk3acHI3gVJ1z4fmwMK31k5G9OVIAMLSIaP6w4FaGkaAkN6zaQO9LUvZ1t7VA==} engines: {node: '>=14.0'} @@ -7378,13 +7344,13 @@ packages: vfile@5.3.7: resolution: {integrity: sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==} - vite-node@1.4.0: - resolution: {integrity: sha512-VZDAseqjrHgNd4Kh8icYHWzTKSCZMhia7GyHfhtzLW33fZlG9SwsB6CEhgyVOWkJfJ2pFLrp/Gj1FSfAiqH9Lw==} + vite-node@2.0.5: + resolution: {integrity: sha512-LdsW4pxj0Ot69FAoXZ1yTnA9bjGohr2yNBU7QKRxpz8ITSkhuDl6h3zS/tvgz4qrNjeRnvrWeXQ8ZF7Um4W00Q==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true - vite@5.1.4: - resolution: {integrity: sha512-n+MPqzq+d9nMVTKyewqw6kSt+R3CkvF9QAKY8obiQn8g1fwTscKxyfaYnC632HtBXAQGc1Yjomphwn1dtwGAHg==} + vite@5.4.2: + resolution: {integrity: sha512-dDrQTRHp5C1fTFzcSaMxjk6vdpKvT+2/mIdE07Gw2ykehT49O0z/VHS3zZ8iV/Gh8BJJKHWOe5RjaNrW5xf/GA==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -7392,6 +7358,7 @@ packages: less: '*' lightningcss: ^1.21.0 sass: '*' + sass-embedded: '*' stylus: '*' sugarss: '*' terser: ^5.4.0 @@ -7404,33 +7371,7 @@ packages: optional: true sass: optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - - vite@5.1.6: - resolution: {integrity: sha512-yYIAZs9nVfRJ/AiOLCA91zzhjsHUgMjB+EigzFb6W2XTLO8JixBCKCjvhKZaye+NKYHCrkv3Oh50dH9EdLU2RA==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@types/node': ^18.0.0 || >=20.0.0 - less: '*' - lightningcss: ^1.21.0 - sass: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - lightningcss: - optional: true - sass: + sass-embedded: optional: true stylus: optional: true @@ -7447,15 +7388,15 @@ packages: vite: optional: true - vitest@1.4.0: - resolution: {integrity: sha512-gujzn0g7fmwf83/WzrDTnncZt2UiXP41mHuFYFrdwaLRVQ6JYQEiME2IfEjU3vcFL3VKa75XhI3lFgn+hfVsQw==} + vitest@2.0.5: + resolution: {integrity: sha512-8GUxONfauuIdeSl5f9GTgVEpg5BTOlplET4WEDaeY2QBiN8wSm68vxN/tb5z405OwppfoCavnwXafiaYBC/xOA==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' '@types/node': ^18.0.0 || >=20.0.0 - '@vitest/browser': 1.4.0 - '@vitest/ui': 1.4.0 + '@vitest/browser': 2.0.5 + '@vitest/ui': 2.0.5 happy-dom: '*' jsdom: '*' peerDependenciesMeta: @@ -7545,8 +7486,8 @@ packages: engines: {node: ^16.13.0 || >=18.0.0} hasBin: true - why-is-node-running@2.2.2: - resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==} + why-is-node-running@2.3.0: + resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} engines: {node: '>=8'} hasBin: true @@ -7693,10 +7634,6 @@ packages: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} - yocto-queue@1.0.0: - resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} - engines: {node: '>=12.20'} - yoga-layout-prebuilt@1.10.0: resolution: {integrity: sha512-YnOmtSbv4MTf7RGJMK0FvZ+KD8OEe/J5BNnR0GHhD8J/XcG/Qvxgszm0Un6FTHWW4uHlTgP0IztiXQnGyIR45g==} engines: {node: '>=8'} @@ -7781,46 +7718,51 @@ snapshots: '@jridgewell/gen-mapping': 0.3.4 '@jridgewell/trace-mapping': 0.3.23 - '@antfu/eslint-config@2.27.3(@typescript-eslint/utils@8.3.0(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6))(@vue/compiler-sfc@3.4.21)(eslint-plugin-svelte@2.43.0(eslint@9.9.1(jiti@1.21.0))(svelte@4.2.12))(eslint@9.9.1(jiti@1.21.0))(svelte-eslint-parser@0.41.0(svelte@4.2.12))(svelte@4.2.12)(typescript@5.1.6)(vitest@1.4.0(@types/node@20.11.0)(@vitest/ui@1.4.0))': + '@ampproject/remapping@2.3.0': + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + + '@antfu/eslint-config@2.27.3(@typescript-eslint/utils@8.3.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.1.6))(@vue/compiler-sfc@3.4.38)(eslint-plugin-svelte@2.43.0(eslint@9.9.1(jiti@1.21.6))(svelte@4.2.12))(eslint@9.9.1(jiti@1.21.6))(svelte-eslint-parser@0.41.0(svelte@4.2.12))(svelte@4.2.12)(typescript@5.1.6)(vitest@2.0.5(@types/node@22.5.1)(@vitest/ui@2.0.5))': dependencies: '@antfu/install-pkg': 0.4.1 '@clack/prompts': 0.7.0 - '@eslint-community/eslint-plugin-eslint-comments': 4.4.0(eslint@9.9.1(jiti@1.21.0)) - '@stylistic/eslint-plugin': 2.6.4(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6) - '@typescript-eslint/eslint-plugin': 8.3.0(@typescript-eslint/parser@8.3.0(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6))(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6) - '@typescript-eslint/parser': 8.3.0(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6) - '@vitest/eslint-plugin': 1.1.0(@typescript-eslint/utils@8.3.0(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6))(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6)(vitest@1.4.0(@types/node@20.11.0)(@vitest/ui@1.4.0)) - eslint: 9.9.1(jiti@1.21.0) + '@eslint-community/eslint-plugin-eslint-comments': 4.4.0(eslint@9.9.1(jiti@1.21.6)) + '@stylistic/eslint-plugin': 2.6.4(eslint@9.9.1(jiti@1.21.6))(typescript@5.1.6) + '@typescript-eslint/eslint-plugin': 8.3.0(@typescript-eslint/parser@8.3.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.1.6))(eslint@9.9.1(jiti@1.21.6))(typescript@5.1.6) + '@typescript-eslint/parser': 8.3.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.1.6) + '@vitest/eslint-plugin': 1.1.0(@typescript-eslint/utils@8.3.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.1.6))(eslint@9.9.1(jiti@1.21.6))(typescript@5.1.6)(vitest@2.0.5(@types/node@22.5.1)(@vitest/ui@2.0.5)) + eslint: 9.9.1(jiti@1.21.6) eslint-config-flat-gitignore: 0.1.8 eslint-flat-config-utils: 0.3.1 - eslint-merge-processors: 0.1.0(eslint@9.9.1(jiti@1.21.0)) - eslint-plugin-antfu: 2.3.6(eslint@9.9.1(jiti@1.21.0)) - eslint-plugin-command: 0.2.3(eslint@9.9.1(jiti@1.21.0)) - eslint-plugin-import-x: 4.1.0(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6) - eslint-plugin-jsdoc: 50.2.2(eslint@9.9.1(jiti@1.21.0)) - eslint-plugin-jsonc: 2.16.0(eslint@9.9.1(jiti@1.21.0)) - eslint-plugin-markdown: 5.1.0(eslint@9.9.1(jiti@1.21.0)) - eslint-plugin-n: 17.10.2(eslint@9.9.1(jiti@1.21.0)) + eslint-merge-processors: 0.1.0(eslint@9.9.1(jiti@1.21.6)) + eslint-plugin-antfu: 2.3.6(eslint@9.9.1(jiti@1.21.6)) + eslint-plugin-command: 0.2.3(eslint@9.9.1(jiti@1.21.6)) + eslint-plugin-import-x: 4.1.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.1.6) + eslint-plugin-jsdoc: 50.2.2(eslint@9.9.1(jiti@1.21.6)) + eslint-plugin-jsonc: 2.16.0(eslint@9.9.1(jiti@1.21.6)) + eslint-plugin-markdown: 5.1.0(eslint@9.9.1(jiti@1.21.6)) + eslint-plugin-n: 17.10.2(eslint@9.9.1(jiti@1.21.6)) eslint-plugin-no-only-tests: 3.3.0 - eslint-plugin-perfectionist: 3.3.0(eslint@9.9.1(jiti@1.21.0))(svelte-eslint-parser@0.41.0(svelte@4.2.12))(svelte@4.2.12)(typescript@5.1.6)(vue-eslint-parser@9.4.3(eslint@9.9.1(jiti@1.21.0))) - eslint-plugin-regexp: 2.6.0(eslint@9.9.1(jiti@1.21.0)) - eslint-plugin-toml: 0.11.1(eslint@9.9.1(jiti@1.21.0)) - eslint-plugin-unicorn: 55.0.0(eslint@9.9.1(jiti@1.21.0)) - eslint-plugin-unused-imports: 4.1.3(@typescript-eslint/eslint-plugin@8.3.0(@typescript-eslint/parser@8.3.0(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6))(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6))(eslint@9.9.1(jiti@1.21.0)) - eslint-plugin-vue: 9.27.0(eslint@9.9.1(jiti@1.21.0)) - eslint-plugin-yml: 1.14.0(eslint@9.9.1(jiti@1.21.0)) - eslint-processor-vue-blocks: 0.1.2(@vue/compiler-sfc@3.4.21)(eslint@9.9.1(jiti@1.21.0)) + eslint-plugin-perfectionist: 3.3.0(eslint@9.9.1(jiti@1.21.6))(svelte-eslint-parser@0.41.0(svelte@4.2.12))(svelte@4.2.12)(typescript@5.1.6)(vue-eslint-parser@9.4.3(eslint@9.9.1(jiti@1.21.6))) + eslint-plugin-regexp: 2.6.0(eslint@9.9.1(jiti@1.21.6)) + eslint-plugin-toml: 0.11.1(eslint@9.9.1(jiti@1.21.6)) + eslint-plugin-unicorn: 55.0.0(eslint@9.9.1(jiti@1.21.6)) + eslint-plugin-unused-imports: 4.1.3(@typescript-eslint/eslint-plugin@8.3.0(@typescript-eslint/parser@8.3.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.1.6))(eslint@9.9.1(jiti@1.21.6))(typescript@5.1.6))(eslint@9.9.1(jiti@1.21.6)) + eslint-plugin-vue: 9.27.0(eslint@9.9.1(jiti@1.21.6)) + eslint-plugin-yml: 1.14.0(eslint@9.9.1(jiti@1.21.6)) + eslint-processor-vue-blocks: 0.1.2(@vue/compiler-sfc@3.4.38)(eslint@9.9.1(jiti@1.21.6)) globals: 15.9.0 jsonc-eslint-parser: 2.4.0 local-pkg: 0.5.0 parse-gitignore: 2.0.0 picocolors: 1.0.1 toml-eslint-parser: 0.10.0 - vue-eslint-parser: 9.4.3(eslint@9.9.1(jiti@1.21.0)) + vue-eslint-parser: 9.4.3(eslint@9.9.1(jiti@1.21.6)) yaml-eslint-parser: 1.2.3 yargs: 17.7.2 optionalDependencies: - eslint-plugin-svelte: 2.43.0(eslint@9.9.1(jiti@1.21.0))(svelte@4.2.12) + eslint-plugin-svelte: 2.43.0(eslint@9.9.1(jiti@1.21.6))(svelte@4.2.12) svelte-eslint-parser: 0.41.0(svelte@4.2.12) transitivePeerDependencies: - '@typescript-eslint/utils' @@ -7965,6 +7907,8 @@ snapshots: '@babel/helper-string-parser@7.23.4': {} + '@babel/helper-string-parser@7.24.8': {} + '@babel/helper-validator-identifier@7.22.20': {} '@babel/helper-validator-identifier@7.24.7': {} @@ -7993,6 +7937,10 @@ snapshots: dependencies: '@babel/types': 7.23.9 + '@babel/parser@7.25.4': + dependencies: + '@babel/types': 7.25.4 + '@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.23.9)': dependencies: '@babel/core': 7.23.9 @@ -8064,6 +8012,12 @@ snapshots: '@babel/helper-validator-identifier': 7.22.20 to-fast-properties: 2.0.0 + '@babel/types@7.25.4': + dependencies: + '@babel/helper-string-parser': 7.24.8 + '@babel/helper-validator-identifier': 7.24.7 + to-fast-properties: 2.0.0 + '@ckeditor/ckeditor-cloud-services-collaboration@50.0.0': dependencies: ckeditor5: 38.1.1 @@ -8378,109 +8332,109 @@ snapshots: esquery: 1.6.0 jsdoc-type-pratt-parser: 4.1.0 - '@esbuild/aix-ppc64@0.19.12': + '@esbuild/aix-ppc64@0.21.5': optional: true '@esbuild/aix-ppc64@0.23.1': optional: true - '@esbuild/android-arm64@0.19.12': + '@esbuild/android-arm64@0.21.5': optional: true '@esbuild/android-arm64@0.23.1': optional: true - '@esbuild/android-arm@0.19.12': + '@esbuild/android-arm@0.21.5': optional: true '@esbuild/android-arm@0.23.1': optional: true - '@esbuild/android-x64@0.19.12': + '@esbuild/android-x64@0.21.5': optional: true '@esbuild/android-x64@0.23.1': optional: true - '@esbuild/darwin-arm64@0.19.12': + '@esbuild/darwin-arm64@0.21.5': optional: true '@esbuild/darwin-arm64@0.23.1': optional: true - '@esbuild/darwin-x64@0.19.12': + '@esbuild/darwin-x64@0.21.5': optional: true '@esbuild/darwin-x64@0.23.1': optional: true - '@esbuild/freebsd-arm64@0.19.12': + '@esbuild/freebsd-arm64@0.21.5': optional: true '@esbuild/freebsd-arm64@0.23.1': optional: true - '@esbuild/freebsd-x64@0.19.12': + '@esbuild/freebsd-x64@0.21.5': optional: true '@esbuild/freebsd-x64@0.23.1': optional: true - '@esbuild/linux-arm64@0.19.12': + '@esbuild/linux-arm64@0.21.5': optional: true '@esbuild/linux-arm64@0.23.1': optional: true - '@esbuild/linux-arm@0.19.12': + '@esbuild/linux-arm@0.21.5': optional: true '@esbuild/linux-arm@0.23.1': optional: true - '@esbuild/linux-ia32@0.19.12': + '@esbuild/linux-ia32@0.21.5': optional: true '@esbuild/linux-ia32@0.23.1': optional: true - '@esbuild/linux-loong64@0.19.12': + '@esbuild/linux-loong64@0.21.5': optional: true '@esbuild/linux-loong64@0.23.1': optional: true - '@esbuild/linux-mips64el@0.19.12': + '@esbuild/linux-mips64el@0.21.5': optional: true '@esbuild/linux-mips64el@0.23.1': optional: true - '@esbuild/linux-ppc64@0.19.12': + '@esbuild/linux-ppc64@0.21.5': optional: true '@esbuild/linux-ppc64@0.23.1': optional: true - '@esbuild/linux-riscv64@0.19.12': + '@esbuild/linux-riscv64@0.21.5': optional: true '@esbuild/linux-riscv64@0.23.1': optional: true - '@esbuild/linux-s390x@0.19.12': + '@esbuild/linux-s390x@0.21.5': optional: true '@esbuild/linux-s390x@0.23.1': optional: true - '@esbuild/linux-x64@0.19.12': + '@esbuild/linux-x64@0.21.5': optional: true '@esbuild/linux-x64@0.23.1': optional: true - '@esbuild/netbsd-x64@0.19.12': + '@esbuild/netbsd-x64@0.21.5': optional: true '@esbuild/netbsd-x64@0.23.1': @@ -8489,45 +8443,45 @@ snapshots: '@esbuild/openbsd-arm64@0.23.1': optional: true - '@esbuild/openbsd-x64@0.19.12': + '@esbuild/openbsd-x64@0.21.5': optional: true '@esbuild/openbsd-x64@0.23.1': optional: true - '@esbuild/sunos-x64@0.19.12': + '@esbuild/sunos-x64@0.21.5': optional: true '@esbuild/sunos-x64@0.23.1': optional: true - '@esbuild/win32-arm64@0.19.12': + '@esbuild/win32-arm64@0.21.5': optional: true '@esbuild/win32-arm64@0.23.1': optional: true - '@esbuild/win32-ia32@0.19.12': + '@esbuild/win32-ia32@0.21.5': optional: true '@esbuild/win32-ia32@0.23.1': optional: true - '@esbuild/win32-x64@0.19.12': + '@esbuild/win32-x64@0.21.5': optional: true '@esbuild/win32-x64@0.23.1': optional: true - '@eslint-community/eslint-plugin-eslint-comments@4.4.0(eslint@9.9.1(jiti@1.21.0))': + '@eslint-community/eslint-plugin-eslint-comments@4.4.0(eslint@9.9.1(jiti@1.21.6))': dependencies: escape-string-regexp: 4.0.0 - eslint: 9.9.1(jiti@1.21.0) + eslint: 9.9.1(jiti@1.21.6) ignore: 5.3.1 - '@eslint-community/eslint-utils@4.4.0(eslint@9.9.1(jiti@1.21.0))': + '@eslint-community/eslint-utils@4.4.0(eslint@9.9.1(jiti@1.21.6))': dependencies: - eslint: 9.9.1(jiti@1.21.0) + eslint: 9.9.1(jiti@1.21.6) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.10.0': {} @@ -9046,22 +9000,28 @@ snapshots: wrap-ansi-cjs: wrap-ansi@7.0.0 optional: true - '@jest/schemas@29.6.3': - dependencies: - '@sinclair/typebox': 0.27.8 - '@jridgewell/gen-mapping@0.3.4': dependencies: '@jridgewell/set-array': 1.1.2 '@jridgewell/sourcemap-codec': 1.4.15 '@jridgewell/trace-mapping': 0.3.23 + '@jridgewell/gen-mapping@0.3.5': + dependencies: + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/resolve-uri@3.1.2': {} '@jridgewell/set-array@1.1.2': {} + '@jridgewell/set-array@1.2.1': {} + '@jridgewell/sourcemap-codec@1.4.15': {} + '@jridgewell/sourcemap-codec@1.5.0': {} + '@jridgewell/trace-mapping@0.3.23': dependencies: '@jridgewell/resolve-uri': 3.1.2 @@ -9078,10 +9038,10 @@ snapshots: dependencies: lodash: 4.17.21 - '@julr/unocss-preset-forms@0.0.5(unocss@0.58.5(postcss@8.4.41)(rollup@4.13.0)(vite@5.1.4(@types/node@20.11.0)))': + '@julr/unocss-preset-forms@0.0.5(unocss@0.58.5(postcss@8.4.41)(rollup@4.21.1)(vite@5.4.2(@types/node@22.5.1)))': dependencies: mini-svg-data-uri: 1.4.4 - unocss: 0.58.5(postcss@8.4.41)(rollup@4.13.0)(vite@5.1.4(@types/node@20.11.0)) + unocss: 0.58.5(postcss@8.4.41)(rollup@4.21.1)(vite@5.4.2(@types/node@22.5.1)) '@kitbook/mdsvex-shiki-twoslash@1.0.0-beta.31(svelte@4.2.12)(typescript@5.1.6)': dependencies: @@ -9248,90 +9208,60 @@ snapshots: '@resvg/resvg-js-win32-ia32-msvc': 2.2.0 '@resvg/resvg-js-win32-x64-msvc': 2.2.0 - '@rollup/pluginutils@5.1.0(rollup@4.13.0)': + '@rollup/pluginutils@5.1.0(rollup@4.21.1)': dependencies: '@types/estree': 1.0.5 estree-walker: 2.0.2 picomatch: 2.3.1 optionalDependencies: - rollup: 4.13.0 - - '@rollup/rollup-android-arm-eabi@4.12.0': - optional: true - - '@rollup/rollup-android-arm-eabi@4.13.0': - optional: true + rollup: 4.21.1 - '@rollup/rollup-android-arm64@4.12.0': + '@rollup/rollup-android-arm-eabi@4.21.1': optional: true - '@rollup/rollup-android-arm64@4.13.0': + '@rollup/rollup-android-arm64@4.21.1': optional: true - '@rollup/rollup-darwin-arm64@4.12.0': + '@rollup/rollup-darwin-arm64@4.21.1': optional: true - '@rollup/rollup-darwin-arm64@4.13.0': + '@rollup/rollup-darwin-x64@4.21.1': optional: true - '@rollup/rollup-darwin-x64@4.12.0': + '@rollup/rollup-linux-arm-gnueabihf@4.21.1': optional: true - '@rollup/rollup-darwin-x64@4.13.0': + '@rollup/rollup-linux-arm-musleabihf@4.21.1': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.12.0': + '@rollup/rollup-linux-arm64-gnu@4.21.1': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.13.0': + '@rollup/rollup-linux-arm64-musl@4.21.1': optional: true - '@rollup/rollup-linux-arm64-gnu@4.12.0': + '@rollup/rollup-linux-powerpc64le-gnu@4.21.1': optional: true - '@rollup/rollup-linux-arm64-gnu@4.13.0': + '@rollup/rollup-linux-riscv64-gnu@4.21.1': optional: true - '@rollup/rollup-linux-arm64-musl@4.12.0': + '@rollup/rollup-linux-s390x-gnu@4.21.1': optional: true - '@rollup/rollup-linux-arm64-musl@4.13.0': + '@rollup/rollup-linux-x64-gnu@4.21.1': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.12.0': + '@rollup/rollup-linux-x64-musl@4.21.1': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.13.0': + '@rollup/rollup-win32-arm64-msvc@4.21.1': optional: true - '@rollup/rollup-linux-x64-gnu@4.12.0': + '@rollup/rollup-win32-ia32-msvc@4.21.1': optional: true - '@rollup/rollup-linux-x64-gnu@4.13.0': - optional: true - - '@rollup/rollup-linux-x64-musl@4.12.0': - optional: true - - '@rollup/rollup-linux-x64-musl@4.13.0': - optional: true - - '@rollup/rollup-win32-arm64-msvc@4.12.0': - optional: true - - '@rollup/rollup-win32-arm64-msvc@4.13.0': - optional: true - - '@rollup/rollup-win32-ia32-msvc@4.12.0': - optional: true - - '@rollup/rollup-win32-ia32-msvc@4.13.0': - optional: true - - '@rollup/rollup-win32-x64-msvc@4.12.0': - optional: true - - '@rollup/rollup-win32-x64-msvc@4.13.0': + '@rollup/rollup-win32-x64-msvc@4.21.1': optional: true '@sentry/browser@6.19.3': @@ -9381,51 +9311,49 @@ snapshots: '@sideway/pinpoint@2.0.0': {} - '@sinclair/typebox@0.27.8': {} - '@socket.io/component-emitter@3.1.0': {} - '@stylistic/eslint-plugin-js@2.6.4(eslint@9.9.1(jiti@1.21.0))': + '@stylistic/eslint-plugin-js@2.6.4(eslint@9.9.1(jiti@1.21.6))': dependencies: '@types/eslint': 9.6.1 acorn: 8.12.1 - eslint: 9.9.1(jiti@1.21.0) + eslint: 9.9.1(jiti@1.21.6) eslint-visitor-keys: 4.0.0 espree: 10.1.0 - '@stylistic/eslint-plugin-jsx@2.6.4(eslint@9.9.1(jiti@1.21.0))': + '@stylistic/eslint-plugin-jsx@2.6.4(eslint@9.9.1(jiti@1.21.6))': dependencies: - '@stylistic/eslint-plugin-js': 2.6.4(eslint@9.9.1(jiti@1.21.0)) + '@stylistic/eslint-plugin-js': 2.6.4(eslint@9.9.1(jiti@1.21.6)) '@types/eslint': 9.6.1 - eslint: 9.9.1(jiti@1.21.0) + eslint: 9.9.1(jiti@1.21.6) eslint-visitor-keys: 4.0.0 espree: 10.1.0 estraverse: 5.3.0 picomatch: 4.0.2 - '@stylistic/eslint-plugin-plus@2.6.4(eslint@9.9.1(jiti@1.21.0))': + '@stylistic/eslint-plugin-plus@2.6.4(eslint@9.9.1(jiti@1.21.6))': dependencies: '@types/eslint': 9.6.1 - eslint: 9.9.1(jiti@1.21.0) + eslint: 9.9.1(jiti@1.21.6) - '@stylistic/eslint-plugin-ts@2.6.4(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6)': + '@stylistic/eslint-plugin-ts@2.6.4(eslint@9.9.1(jiti@1.21.6))(typescript@5.1.6)': dependencies: - '@stylistic/eslint-plugin-js': 2.6.4(eslint@9.9.1(jiti@1.21.0)) + '@stylistic/eslint-plugin-js': 2.6.4(eslint@9.9.1(jiti@1.21.6)) '@types/eslint': 9.6.1 - '@typescript-eslint/utils': 8.3.0(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6) - eslint: 9.9.1(jiti@1.21.0) + '@typescript-eslint/utils': 8.3.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.1.6) + eslint: 9.9.1(jiti@1.21.6) transitivePeerDependencies: - supports-color - typescript - '@stylistic/eslint-plugin@2.6.4(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6)': + '@stylistic/eslint-plugin@2.6.4(eslint@9.9.1(jiti@1.21.6))(typescript@5.1.6)': dependencies: - '@stylistic/eslint-plugin-js': 2.6.4(eslint@9.9.1(jiti@1.21.0)) - '@stylistic/eslint-plugin-jsx': 2.6.4(eslint@9.9.1(jiti@1.21.0)) - '@stylistic/eslint-plugin-plus': 2.6.4(eslint@9.9.1(jiti@1.21.0)) - '@stylistic/eslint-plugin-ts': 2.6.4(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6) + '@stylistic/eslint-plugin-js': 2.6.4(eslint@9.9.1(jiti@1.21.6)) + '@stylistic/eslint-plugin-jsx': 2.6.4(eslint@9.9.1(jiti@1.21.6)) + '@stylistic/eslint-plugin-plus': 2.6.4(eslint@9.9.1(jiti@1.21.6)) + '@stylistic/eslint-plugin-ts': 2.6.4(eslint@9.9.1(jiti@1.21.6))(typescript@5.1.6) '@types/eslint': 9.6.1 - eslint: 9.9.1(jiti@1.21.0) + eslint: 9.9.1(jiti@1.21.6) transitivePeerDependencies: - supports-color - typescript @@ -9472,14 +9400,14 @@ snapshots: - bufferutil - utf-8-validate - '@sveltejs/adapter-auto@3.1.1(@sveltejs/kit@2.5.4(@sveltejs/vite-plugin-svelte@3.0.2(svelte@4.2.12)(vite@5.1.4(@types/node@20.11.0)))(svelte@4.2.12)(vite@5.1.4(@types/node@20.11.0)))': + '@sveltejs/adapter-auto@3.1.1(@sveltejs/kit@2.5.4(@sveltejs/vite-plugin-svelte@3.0.2(svelte@4.2.12)(vite@5.4.2(@types/node@22.5.1)))(svelte@4.2.12)(vite@5.4.2(@types/node@22.5.1)))': dependencies: - '@sveltejs/kit': 2.5.4(@sveltejs/vite-plugin-svelte@3.0.2(svelte@4.2.12)(vite@5.1.4(@types/node@20.11.0)))(svelte@4.2.12)(vite@5.1.4(@types/node@20.11.0)) + '@sveltejs/kit': 2.5.4(@sveltejs/vite-plugin-svelte@3.0.2(svelte@4.2.12)(vite@5.4.2(@types/node@22.5.1)))(svelte@4.2.12)(vite@5.4.2(@types/node@22.5.1)) import-meta-resolve: 4.0.0 - '@sveltejs/kit@2.5.4(@sveltejs/vite-plugin-svelte@3.0.2(svelte@4.2.12)(vite@5.1.4(@types/node@20.11.0)))(svelte@4.2.12)(vite@5.1.4(@types/node@20.11.0))': + '@sveltejs/kit@2.5.4(@sveltejs/vite-plugin-svelte@3.0.2(svelte@4.2.12)(vite@5.4.2(@types/node@22.5.1)))(svelte@4.2.12)(vite@5.4.2(@types/node@22.5.1))': dependencies: - '@sveltejs/vite-plugin-svelte': 3.0.2(svelte@4.2.12)(vite@5.1.4(@types/node@20.11.0)) + '@sveltejs/vite-plugin-svelte': 3.0.2(svelte@4.2.12)(vite@5.4.2(@types/node@22.5.1)) '@types/cookie': 0.6.0 cookie: 0.6.0 devalue: 4.3.2 @@ -9493,28 +9421,28 @@ snapshots: sirv: 2.0.4 svelte: 4.2.12 tiny-glob: 0.2.9 - vite: 5.1.4(@types/node@20.11.0) + vite: 5.4.2(@types/node@22.5.1) - '@sveltejs/vite-plugin-svelte-inspector@2.0.0(@sveltejs/vite-plugin-svelte@3.0.2(svelte@4.2.12)(vite@5.1.4(@types/node@20.11.0)))(svelte@4.2.12)(vite@5.1.4(@types/node@20.11.0))': + '@sveltejs/vite-plugin-svelte-inspector@2.0.0(@sveltejs/vite-plugin-svelte@3.0.2(svelte@4.2.12)(vite@5.4.2(@types/node@22.5.1)))(svelte@4.2.12)(vite@5.4.2(@types/node@22.5.1))': dependencies: - '@sveltejs/vite-plugin-svelte': 3.0.2(svelte@4.2.12)(vite@5.1.4(@types/node@20.11.0)) + '@sveltejs/vite-plugin-svelte': 3.0.2(svelte@4.2.12)(vite@5.4.2(@types/node@22.5.1)) debug: 4.3.4 svelte: 4.2.12 - vite: 5.1.4(@types/node@20.11.0) + vite: 5.4.2(@types/node@22.5.1) transitivePeerDependencies: - supports-color - '@sveltejs/vite-plugin-svelte@3.0.2(svelte@4.2.12)(vite@5.1.4(@types/node@20.11.0))': + '@sveltejs/vite-plugin-svelte@3.0.2(svelte@4.2.12)(vite@5.4.2(@types/node@22.5.1))': dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 2.0.0(@sveltejs/vite-plugin-svelte@3.0.2(svelte@4.2.12)(vite@5.1.4(@types/node@20.11.0)))(svelte@4.2.12)(vite@5.1.4(@types/node@20.11.0)) + '@sveltejs/vite-plugin-svelte-inspector': 2.0.0(@sveltejs/vite-plugin-svelte@3.0.2(svelte@4.2.12)(vite@5.4.2(@types/node@22.5.1)))(svelte@4.2.12)(vite@5.4.2(@types/node@22.5.1)) debug: 4.3.4 deepmerge: 4.3.1 kleur: 4.1.5 magic-string: 0.30.7 svelte: 4.2.12 svelte-hmr: 0.15.3(svelte@4.2.12) - vite: 5.1.4(@types/node@20.11.0) - vitefu: 0.2.5(vite@5.1.4(@types/node@20.11.0)) + vite: 5.4.2(@types/node@22.5.1) + vitefu: 0.2.5(vite@5.4.2(@types/node@22.5.1)) transitivePeerDependencies: - supports-color @@ -10748,6 +10676,11 @@ snapshots: dependencies: undici-types: 5.26.5 + '@types/node@22.5.1': + dependencies: + undici-types: 6.19.8 + optional: true + '@types/normalize-package-data@2.4.4': {} '@types/parse5@6.0.3': {} @@ -10823,15 +10756,15 @@ snapshots: '@types/yoga-layout@1.9.2': {} - '@typescript-eslint/eslint-plugin@8.3.0(@typescript-eslint/parser@8.3.0(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6))(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6)': + '@typescript-eslint/eslint-plugin@8.3.0(@typescript-eslint/parser@8.3.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.1.6))(eslint@9.9.1(jiti@1.21.6))(typescript@5.1.6)': dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 8.3.0(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6) + '@typescript-eslint/parser': 8.3.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.1.6) '@typescript-eslint/scope-manager': 8.3.0 - '@typescript-eslint/type-utils': 8.3.0(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6) - '@typescript-eslint/utils': 8.3.0(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6) + '@typescript-eslint/type-utils': 8.3.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.1.6) + '@typescript-eslint/utils': 8.3.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.1.6) '@typescript-eslint/visitor-keys': 8.3.0 - eslint: 9.9.1(jiti@1.21.0) + eslint: 9.9.1(jiti@1.21.6) graphemer: 1.4.0 ignore: 5.3.1 natural-compare: 1.4.0 @@ -10841,14 +10774,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.3.0(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6)': + '@typescript-eslint/parser@8.3.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.1.6)': dependencies: '@typescript-eslint/scope-manager': 8.3.0 '@typescript-eslint/types': 8.3.0 '@typescript-eslint/typescript-estree': 8.3.0(typescript@5.1.6) '@typescript-eslint/visitor-keys': 8.3.0 debug: 4.3.4 - eslint: 9.9.1(jiti@1.21.0) + eslint: 9.9.1(jiti@1.21.6) optionalDependencies: typescript: 5.1.6 transitivePeerDependencies: @@ -10864,10 +10797,10 @@ snapshots: '@typescript-eslint/types': 8.3.0 '@typescript-eslint/visitor-keys': 8.3.0 - '@typescript-eslint/type-utils@8.3.0(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6)': + '@typescript-eslint/type-utils@8.3.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.1.6)': dependencies: '@typescript-eslint/typescript-estree': 8.3.0(typescript@5.1.6) - '@typescript-eslint/utils': 8.3.0(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6) + '@typescript-eslint/utils': 8.3.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.1.6) debug: 4.3.4 ts-api-utils: 1.3.0(typescript@5.1.6) optionalDependencies: @@ -10911,27 +10844,27 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@6.7.3(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6)': + '@typescript-eslint/utils@6.7.3(eslint@9.9.1(jiti@1.21.6))(typescript@5.1.6)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.1(jiti@1.21.0)) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.1(jiti@1.21.6)) '@types/json-schema': 7.0.13 '@types/semver': 7.5.3 '@typescript-eslint/scope-manager': 6.7.3 '@typescript-eslint/types': 6.7.3 '@typescript-eslint/typescript-estree': 6.7.3(typescript@5.1.6) - eslint: 9.9.1(jiti@1.21.0) + eslint: 9.9.1(jiti@1.21.6) semver: 7.5.4 transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/utils@8.3.0(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6)': + '@typescript-eslint/utils@8.3.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.1.6)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.1(jiti@1.21.0)) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.1(jiti@1.21.6)) '@typescript-eslint/scope-manager': 8.3.0 '@typescript-eslint/types': 8.3.0 '@typescript-eslint/typescript-estree': 8.3.0(typescript@5.1.6) - eslint: 9.9.1(jiti@1.21.0) + eslint: 9.9.1(jiti@1.21.6) transitivePeerDependencies: - supports-color - typescript @@ -10949,20 +10882,20 @@ snapshots: '@typescript/twoslash@3.1.0': dependencies: '@typescript/vfs': 1.3.5 - debug: 4.3.4 + debug: 4.3.6 lz-string: 1.4.4 transitivePeerDependencies: - supports-color '@typescript/vfs@1.3.4': dependencies: - debug: 4.3.4 + debug: 4.3.6 transitivePeerDependencies: - supports-color '@typescript/vfs@1.3.5': dependencies: - debug: 4.3.4 + debug: 4.3.6 transitivePeerDependencies: - supports-color @@ -10972,20 +10905,20 @@ snapshots: transitivePeerDependencies: - supports-color - '@unocss/astro@0.58.5(rollup@4.13.0)(vite@5.1.4(@types/node@20.11.0))': + '@unocss/astro@0.58.5(rollup@4.21.1)(vite@5.4.2(@types/node@22.5.1))': dependencies: '@unocss/core': 0.58.5 '@unocss/reset': 0.58.5 - '@unocss/vite': 0.58.5(rollup@4.13.0)(vite@5.1.4(@types/node@20.11.0)) + '@unocss/vite': 0.58.5(rollup@4.21.1)(vite@5.4.2(@types/node@22.5.1)) optionalDependencies: - vite: 5.1.4(@types/node@20.11.0) + vite: 5.4.2(@types/node@22.5.1) transitivePeerDependencies: - rollup - '@unocss/cli@0.58.5(rollup@4.13.0)': + '@unocss/cli@0.58.5(rollup@4.21.1)': dependencies: '@ampproject/remapping': 2.2.1 - '@rollup/pluginutils': 5.1.0(rollup@4.13.0) + '@rollup/pluginutils': 5.1.0(rollup@4.21.1) '@unocss/config': 0.58.5 '@unocss/core': 0.58.5 '@unocss/preset-uno': 0.58.5 @@ -11116,10 +11049,10 @@ snapshots: dependencies: '@unocss/core': 0.58.5 - '@unocss/vite@0.58.5(rollup@4.13.0)(vite@5.1.4(@types/node@20.11.0))': + '@unocss/vite@0.58.5(rollup@4.21.1)(vite@5.4.2(@types/node@22.5.1))': dependencies: '@ampproject/remapping': 2.2.1 - '@rollup/pluginutils': 5.1.0(rollup@4.13.0) + '@rollup/pluginutils': 5.1.0(rollup@4.21.1) '@unocss/config': 0.58.5 '@unocss/core': 0.58.5 '@unocss/inspector': 0.58.5 @@ -11128,89 +11061,93 @@ snapshots: chokidar: 3.6.0 fast-glob: 3.3.2 magic-string: 0.30.7 - vite: 5.1.4(@types/node@20.11.0) + vite: 5.4.2(@types/node@22.5.1) transitivePeerDependencies: - rollup - '@vitest/eslint-plugin@1.1.0(@typescript-eslint/utils@8.3.0(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6))(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6)(vitest@1.4.0(@types/node@20.11.0)(@vitest/ui@1.4.0))': + '@vitest/eslint-plugin@1.1.0(@typescript-eslint/utils@8.3.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.1.6))(eslint@9.9.1(jiti@1.21.6))(typescript@5.1.6)(vitest@2.0.5(@types/node@22.5.1)(@vitest/ui@2.0.5))': dependencies: - eslint: 9.9.1(jiti@1.21.0) + eslint: 9.9.1(jiti@1.21.6) optionalDependencies: - '@typescript-eslint/utils': 8.3.0(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6) + '@typescript-eslint/utils': 8.3.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.1.6) typescript: 5.1.6 - vitest: 1.4.0(@types/node@20.11.0)(@vitest/ui@1.4.0) + vitest: 2.0.5(@types/node@22.5.1)(@vitest/ui@2.0.5) + + '@vitest/expect@2.0.5': + dependencies: + '@vitest/spy': 2.0.5 + '@vitest/utils': 2.0.5 + chai: 5.1.1 + tinyrainbow: 1.2.0 - '@vitest/expect@1.4.0': + '@vitest/pretty-format@2.0.5': dependencies: - '@vitest/spy': 1.4.0 - '@vitest/utils': 1.4.0 - chai: 4.4.1 + tinyrainbow: 1.2.0 - '@vitest/runner@1.4.0': + '@vitest/runner@2.0.5': dependencies: - '@vitest/utils': 1.4.0 - p-limit: 5.0.0 + '@vitest/utils': 2.0.5 pathe: 1.1.2 - '@vitest/snapshot@1.4.0': + '@vitest/snapshot@2.0.5': dependencies: - magic-string: 0.30.8 + '@vitest/pretty-format': 2.0.5 + magic-string: 0.30.11 pathe: 1.1.2 - pretty-format: 29.7.0 - '@vitest/spy@1.4.0': + '@vitest/spy@2.0.5': dependencies: - tinyspy: 2.2.1 + tinyspy: 3.0.0 - '@vitest/ui@1.4.0(vitest@1.4.0)': + '@vitest/ui@2.0.5(vitest@2.0.5)': dependencies: - '@vitest/utils': 1.4.0 + '@vitest/utils': 2.0.5 fast-glob: 3.3.2 fflate: 0.8.2 flatted: 3.3.1 pathe: 1.1.2 - picocolors: 1.0.0 sirv: 2.0.4 - vitest: 1.4.0(@types/node@18.11.18)(@vitest/ui@1.4.0) + tinyrainbow: 1.2.0 + vitest: 2.0.5(@types/node@18.11.18)(@vitest/ui@2.0.5) - '@vitest/utils@1.4.0': + '@vitest/utils@2.0.5': dependencies: - diff-sequences: 29.6.3 + '@vitest/pretty-format': 2.0.5 estree-walker: 3.0.3 - loupe: 2.3.7 - pretty-format: 29.7.0 + loupe: 3.1.1 + tinyrainbow: 1.2.0 - '@vue/compiler-core@3.4.21': + '@vue/compiler-core@3.4.38': dependencies: - '@babel/parser': 7.23.9 - '@vue/shared': 3.4.21 + '@babel/parser': 7.25.4 + '@vue/shared': 3.4.38 entities: 4.5.0 estree-walker: 2.0.2 source-map-js: 1.2.0 - '@vue/compiler-dom@3.4.21': + '@vue/compiler-dom@3.4.38': dependencies: - '@vue/compiler-core': 3.4.21 - '@vue/shared': 3.4.21 + '@vue/compiler-core': 3.4.38 + '@vue/shared': 3.4.38 - '@vue/compiler-sfc@3.4.21': + '@vue/compiler-sfc@3.4.38': dependencies: - '@babel/parser': 7.23.9 - '@vue/compiler-core': 3.4.21 - '@vue/compiler-dom': 3.4.21 - '@vue/compiler-ssr': 3.4.21 - '@vue/shared': 3.4.21 + '@babel/parser': 7.25.4 + '@vue/compiler-core': 3.4.38 + '@vue/compiler-dom': 3.4.38 + '@vue/compiler-ssr': 3.4.38 + '@vue/shared': 3.4.38 estree-walker: 2.0.2 - magic-string: 0.30.8 - postcss: 8.4.37 + magic-string: 0.30.11 + postcss: 8.4.41 source-map-js: 1.2.0 - '@vue/compiler-ssr@3.4.21': + '@vue/compiler-ssr@3.4.38': dependencies: - '@vue/compiler-dom': 3.4.21 - '@vue/shared': 3.4.21 + '@vue/compiler-dom': 3.4.38 + '@vue/shared': 3.4.38 - '@vue/shared@3.4.21': {} + '@vue/shared@3.4.38': {} abbrev@1.1.1: {} @@ -11330,8 +11267,6 @@ snapshots: dependencies: color-convert: 2.0.1 - ansi-styles@5.2.0: {} - ansi-styles@6.2.1: {} ansicolors@0.3.2: {} @@ -11394,7 +11329,7 @@ snapshots: assert-plus@1.0.0: {} - assertion-error@1.1.0: {} + assertion-error@2.0.1: {} ast-types@0.13.4: dependencies: @@ -11431,6 +11366,8 @@ snapshots: dependencies: dequal: 2.0.3 + axobject-query@4.1.0: {} + bail@2.0.2: {} balanced-match@1.0.2: {} @@ -11592,15 +11529,13 @@ snapshots: ccount@2.0.1: {} - chai@4.4.1: + chai@5.1.1: dependencies: - assertion-error: 1.1.0 - check-error: 1.0.3 - deep-eql: 4.1.3 - get-func-name: 2.0.2 - loupe: 2.3.7 - pathval: 1.1.1 - type-detect: 4.0.8 + assertion-error: 2.0.1 + check-error: 2.1.1 + deep-eql: 5.0.2 + loupe: 3.1.1 + pathval: 2.0.0 chalk@2.4.2: dependencies: @@ -11631,9 +11566,7 @@ snapshots: chardet@0.7.0: {} - check-error@1.0.3: - dependencies: - get-func-name: 2.0.2 + check-error@2.1.1: {} check-more-types@2.24.0: {} @@ -12024,9 +11957,7 @@ snapshots: dedent-js@1.0.1: {} - deep-eql@4.1.3: - dependencies: - type-detect: 4.0.8 + deep-eql@5.0.2: {} deep-equal@1.1.1: dependencies: @@ -12086,8 +12017,6 @@ snapshots: devalue@4.3.2: {} - diff-sequences@29.6.3: {} - diff@5.2.0: {} dir-glob@3.0.1: @@ -12166,7 +12095,7 @@ snapshots: engine.io-client@6.4.0: dependencies: '@socket.io/component-emitter': 3.1.0 - debug: 4.3.4 + debug: 4.3.6 engine.io-parser: 5.0.7 ws: 8.11.0 xmlhttprequest-ssl: 2.0.0 @@ -12205,31 +12134,31 @@ snapshots: es6-promise@3.3.1: {} - esbuild@0.19.12: + esbuild@0.21.5: optionalDependencies: - '@esbuild/aix-ppc64': 0.19.12 - '@esbuild/android-arm': 0.19.12 - '@esbuild/android-arm64': 0.19.12 - '@esbuild/android-x64': 0.19.12 - '@esbuild/darwin-arm64': 0.19.12 - '@esbuild/darwin-x64': 0.19.12 - '@esbuild/freebsd-arm64': 0.19.12 - '@esbuild/freebsd-x64': 0.19.12 - '@esbuild/linux-arm': 0.19.12 - '@esbuild/linux-arm64': 0.19.12 - '@esbuild/linux-ia32': 0.19.12 - '@esbuild/linux-loong64': 0.19.12 - '@esbuild/linux-mips64el': 0.19.12 - '@esbuild/linux-ppc64': 0.19.12 - '@esbuild/linux-riscv64': 0.19.12 - '@esbuild/linux-s390x': 0.19.12 - '@esbuild/linux-x64': 0.19.12 - '@esbuild/netbsd-x64': 0.19.12 - '@esbuild/openbsd-x64': 0.19.12 - '@esbuild/sunos-x64': 0.19.12 - '@esbuild/win32-arm64': 0.19.12 - '@esbuild/win32-ia32': 0.19.12 - '@esbuild/win32-x64': 0.19.12 + '@esbuild/aix-ppc64': 0.21.5 + '@esbuild/android-arm': 0.21.5 + '@esbuild/android-arm64': 0.21.5 + '@esbuild/android-x64': 0.21.5 + '@esbuild/darwin-arm64': 0.21.5 + '@esbuild/darwin-x64': 0.21.5 + '@esbuild/freebsd-arm64': 0.21.5 + '@esbuild/freebsd-x64': 0.21.5 + '@esbuild/linux-arm': 0.21.5 + '@esbuild/linux-arm64': 0.21.5 + '@esbuild/linux-ia32': 0.21.5 + '@esbuild/linux-loong64': 0.21.5 + '@esbuild/linux-mips64el': 0.21.5 + '@esbuild/linux-ppc64': 0.21.5 + '@esbuild/linux-riscv64': 0.21.5 + '@esbuild/linux-s390x': 0.21.5 + '@esbuild/linux-x64': 0.21.5 + '@esbuild/netbsd-x64': 0.21.5 + '@esbuild/openbsd-x64': 0.21.5 + '@esbuild/sunos-x64': 0.21.5 + '@esbuild/win32-arm64': 0.21.5 + '@esbuild/win32-ia32': 0.21.5 + '@esbuild/win32-x64': 0.21.5 esbuild@0.23.1: optionalDependencies: @@ -12281,14 +12210,14 @@ snapshots: optionalDependencies: source-map: 0.6.1 - eslint-compat-utils@0.5.0(eslint@9.9.1(jiti@1.21.0)): + eslint-compat-utils@0.5.0(eslint@9.9.1(jiti@1.21.6)): dependencies: - eslint: 9.9.1(jiti@1.21.0) + eslint: 9.9.1(jiti@1.21.6) semver: 7.6.0 - eslint-compat-utils@0.5.1(eslint@9.9.1(jiti@1.21.0)): + eslint-compat-utils@0.5.1(eslint@9.9.1(jiti@1.21.6)): dependencies: - eslint: 9.9.1(jiti@1.21.0) + eslint: 9.9.1(jiti@1.21.6) semver: 7.6.3 eslint-config-flat-gitignore@0.1.8: @@ -12309,34 +12238,34 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-merge-processors@0.1.0(eslint@9.9.1(jiti@1.21.0)): + eslint-merge-processors@0.1.0(eslint@9.9.1(jiti@1.21.6)): dependencies: - eslint: 9.9.1(jiti@1.21.0) + eslint: 9.9.1(jiti@1.21.6) - eslint-plugin-antfu@2.3.6(eslint@9.9.1(jiti@1.21.0)): + eslint-plugin-antfu@2.3.6(eslint@9.9.1(jiti@1.21.6)): dependencies: '@antfu/utils': 0.7.10 - eslint: 9.9.1(jiti@1.21.0) + eslint: 9.9.1(jiti@1.21.6) - eslint-plugin-command@0.2.3(eslint@9.9.1(jiti@1.21.0)): + eslint-plugin-command@0.2.3(eslint@9.9.1(jiti@1.21.6)): dependencies: '@es-joy/jsdoccomment': 0.43.1 - eslint: 9.9.1(jiti@1.21.0) + eslint: 9.9.1(jiti@1.21.6) - eslint-plugin-es-x@7.6.0(eslint@9.9.1(jiti@1.21.0)): + eslint-plugin-es-x@7.6.0(eslint@9.9.1(jiti@1.21.6)): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.1(jiti@1.21.0)) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.1(jiti@1.21.6)) '@eslint-community/regexpp': 4.10.0 - eslint: 9.9.1(jiti@1.21.0) - eslint-compat-utils: 0.5.0(eslint@9.9.1(jiti@1.21.0)) + eslint: 9.9.1(jiti@1.21.6) + eslint-compat-utils: 0.5.0(eslint@9.9.1(jiti@1.21.6)) - eslint-plugin-import-x@4.1.0(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6): + eslint-plugin-import-x@4.1.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.1.6): dependencies: '@typescript-eslint/typescript-estree': 8.3.0(typescript@5.1.6) - '@typescript-eslint/utils': 8.3.0(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6) + '@typescript-eslint/utils': 8.3.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.1.6) debug: 4.3.4 doctrine: 3.0.0 - eslint: 9.9.1(jiti@1.21.0) + eslint: 9.9.1(jiti@1.21.6) eslint-import-resolver-node: 0.3.9 get-tsconfig: 4.7.3 is-glob: 4.0.3 @@ -12348,14 +12277,14 @@ snapshots: - supports-color - typescript - eslint-plugin-jsdoc@50.2.2(eslint@9.9.1(jiti@1.21.0)): + eslint-plugin-jsdoc@50.2.2(eslint@9.9.1(jiti@1.21.6)): dependencies: '@es-joy/jsdoccomment': 0.48.0 are-docs-informative: 0.0.2 comment-parser: 1.4.1 debug: 4.3.6 escape-string-regexp: 4.0.0 - eslint: 9.9.1(jiti@1.21.0) + eslint: 9.9.1(jiti@1.21.6) espree: 10.1.0 esquery: 1.6.0 parse-imports: 2.1.1 @@ -12365,30 +12294,30 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-jsonc@2.16.0(eslint@9.9.1(jiti@1.21.0)): + eslint-plugin-jsonc@2.16.0(eslint@9.9.1(jiti@1.21.6)): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.1(jiti@1.21.0)) - eslint: 9.9.1(jiti@1.21.0) - eslint-compat-utils: 0.5.0(eslint@9.9.1(jiti@1.21.0)) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.1(jiti@1.21.6)) + eslint: 9.9.1(jiti@1.21.6) + eslint-compat-utils: 0.5.0(eslint@9.9.1(jiti@1.21.6)) espree: 9.6.1 graphemer: 1.4.0 jsonc-eslint-parser: 2.4.0 natural-compare: 1.4.0 synckit: 0.6.2 - eslint-plugin-markdown@5.1.0(eslint@9.9.1(jiti@1.21.0)): + eslint-plugin-markdown@5.1.0(eslint@9.9.1(jiti@1.21.6)): dependencies: - eslint: 9.9.1(jiti@1.21.0) + eslint: 9.9.1(jiti@1.21.6) mdast-util-from-markdown: 0.8.5 transitivePeerDependencies: - supports-color - eslint-plugin-n@17.10.2(eslint@9.9.1(jiti@1.21.0)): + eslint-plugin-n@17.10.2(eslint@9.9.1(jiti@1.21.6)): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.1(jiti@1.21.0)) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.1(jiti@1.21.6)) enhanced-resolve: 5.17.1 - eslint: 9.9.1(jiti@1.21.0) - eslint-plugin-es-x: 7.6.0(eslint@9.9.1(jiti@1.21.0)) + eslint: 9.9.1(jiti@1.21.6) + eslint-plugin-es-x: 7.6.0(eslint@9.9.1(jiti@1.21.6)) get-tsconfig: 4.7.3 globals: 15.9.0 ignore: 5.3.1 @@ -12397,46 +12326,46 @@ snapshots: eslint-plugin-no-only-tests@3.3.0: {} - eslint-plugin-perfectionist@3.3.0(eslint@9.9.1(jiti@1.21.0))(svelte-eslint-parser@0.41.0(svelte@4.2.12))(svelte@4.2.12)(typescript@5.1.6)(vue-eslint-parser@9.4.3(eslint@9.9.1(jiti@1.21.0))): + eslint-plugin-perfectionist@3.3.0(eslint@9.9.1(jiti@1.21.6))(svelte-eslint-parser@0.41.0(svelte@4.2.12))(svelte@4.2.12)(typescript@5.1.6)(vue-eslint-parser@9.4.3(eslint@9.9.1(jiti@1.21.6))): dependencies: '@typescript-eslint/types': 8.3.0 - '@typescript-eslint/utils': 8.3.0(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6) - eslint: 9.9.1(jiti@1.21.0) + '@typescript-eslint/utils': 8.3.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.1.6) + eslint: 9.9.1(jiti@1.21.6) minimatch: 10.0.1 natural-compare-lite: 1.4.0 optionalDependencies: svelte: 4.2.12 svelte-eslint-parser: 0.41.0(svelte@4.2.12) - vue-eslint-parser: 9.4.3(eslint@9.9.1(jiti@1.21.0)) + vue-eslint-parser: 9.4.3(eslint@9.9.1(jiti@1.21.6)) transitivePeerDependencies: - supports-color - typescript - eslint-plugin-regexp@2.6.0(eslint@9.9.1(jiti@1.21.0)): + eslint-plugin-regexp@2.6.0(eslint@9.9.1(jiti@1.21.6)): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.1(jiti@1.21.0)) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.1(jiti@1.21.6)) '@eslint-community/regexpp': 4.10.0 comment-parser: 1.4.1 - eslint: 9.9.1(jiti@1.21.0) + eslint: 9.9.1(jiti@1.21.6) jsdoc-type-pratt-parser: 4.0.0 refa: 0.12.1 regexp-ast-analysis: 0.7.1 scslre: 0.3.0 - eslint-plugin-svelte-stylistic@0.0.4(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6): + eslint-plugin-svelte-stylistic@0.0.4(eslint@9.9.1(jiti@1.21.6))(typescript@5.1.6): dependencies: - '@typescript-eslint/utils': 6.7.3(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6) + '@typescript-eslint/utils': 6.7.3(eslint@9.9.1(jiti@1.21.6))(typescript@5.1.6) transitivePeerDependencies: - eslint - supports-color - typescript - eslint-plugin-svelte@2.43.0(eslint@9.9.1(jiti@1.21.0))(svelte@4.2.12): + eslint-plugin-svelte@2.43.0(eslint@9.9.1(jiti@1.21.6))(svelte@4.2.12): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.1(jiti@1.21.0)) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.1(jiti@1.21.6)) '@jridgewell/sourcemap-codec': 1.4.15 - eslint: 9.9.1(jiti@1.21.0) - eslint-compat-utils: 0.5.1(eslint@9.9.1(jiti@1.21.0)) + eslint: 9.9.1(jiti@1.21.6) + eslint-compat-utils: 0.5.1(eslint@9.9.1(jiti@1.21.6)) esutils: 2.0.3 known-css-properties: 0.34.0 postcss: 8.4.41 @@ -12450,24 +12379,24 @@ snapshots: transitivePeerDependencies: - ts-node - eslint-plugin-toml@0.11.1(eslint@9.9.1(jiti@1.21.0)): + eslint-plugin-toml@0.11.1(eslint@9.9.1(jiti@1.21.6)): dependencies: debug: 4.3.4 - eslint: 9.9.1(jiti@1.21.0) - eslint-compat-utils: 0.5.0(eslint@9.9.1(jiti@1.21.0)) + eslint: 9.9.1(jiti@1.21.6) + eslint-compat-utils: 0.5.0(eslint@9.9.1(jiti@1.21.6)) lodash: 4.17.21 toml-eslint-parser: 0.10.0 transitivePeerDependencies: - supports-color - eslint-plugin-unicorn@55.0.0(eslint@9.9.1(jiti@1.21.0)): + eslint-plugin-unicorn@55.0.0(eslint@9.9.1(jiti@1.21.6)): dependencies: '@babel/helper-validator-identifier': 7.24.7 - '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.1(jiti@1.21.0)) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.1(jiti@1.21.6)) ci-info: 4.0.0 clean-regexp: 1.0.0 core-js-compat: 3.38.1 - eslint: 9.9.1(jiti@1.21.0) + eslint: 9.9.1(jiti@1.21.6) esquery: 1.5.0 globals: 15.9.0 indent-string: 4.0.0 @@ -12480,41 +12409,41 @@ snapshots: semver: 7.6.3 strip-indent: 3.0.0 - eslint-plugin-unused-imports@4.1.3(@typescript-eslint/eslint-plugin@8.3.0(@typescript-eslint/parser@8.3.0(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6))(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6))(eslint@9.9.1(jiti@1.21.0)): + eslint-plugin-unused-imports@4.1.3(@typescript-eslint/eslint-plugin@8.3.0(@typescript-eslint/parser@8.3.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.1.6))(eslint@9.9.1(jiti@1.21.6))(typescript@5.1.6))(eslint@9.9.1(jiti@1.21.6)): dependencies: - eslint: 9.9.1(jiti@1.21.0) + eslint: 9.9.1(jiti@1.21.6) optionalDependencies: - '@typescript-eslint/eslint-plugin': 8.3.0(@typescript-eslint/parser@8.3.0(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6))(eslint@9.9.1(jiti@1.21.0))(typescript@5.1.6) + '@typescript-eslint/eslint-plugin': 8.3.0(@typescript-eslint/parser@8.3.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.1.6))(eslint@9.9.1(jiti@1.21.6))(typescript@5.1.6) - eslint-plugin-vue@9.27.0(eslint@9.9.1(jiti@1.21.0)): + eslint-plugin-vue@9.27.0(eslint@9.9.1(jiti@1.21.6)): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.1(jiti@1.21.0)) - eslint: 9.9.1(jiti@1.21.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.1(jiti@1.21.6)) + eslint: 9.9.1(jiti@1.21.6) globals: 13.24.0 natural-compare: 1.4.0 nth-check: 2.1.1 postcss-selector-parser: 6.0.16 semver: 7.6.0 - vue-eslint-parser: 9.4.3(eslint@9.9.1(jiti@1.21.0)) + vue-eslint-parser: 9.4.3(eslint@9.9.1(jiti@1.21.6)) xml-name-validator: 4.0.0 transitivePeerDependencies: - supports-color - eslint-plugin-yml@1.14.0(eslint@9.9.1(jiti@1.21.0)): + eslint-plugin-yml@1.14.0(eslint@9.9.1(jiti@1.21.6)): dependencies: debug: 4.3.4 - eslint: 9.9.1(jiti@1.21.0) - eslint-compat-utils: 0.5.0(eslint@9.9.1(jiti@1.21.0)) + eslint: 9.9.1(jiti@1.21.6) + eslint-compat-utils: 0.5.0(eslint@9.9.1(jiti@1.21.6)) lodash: 4.17.21 natural-compare: 1.4.0 yaml-eslint-parser: 1.2.3 transitivePeerDependencies: - supports-color - eslint-processor-vue-blocks@0.1.2(@vue/compiler-sfc@3.4.21)(eslint@9.9.1(jiti@1.21.0)): + eslint-processor-vue-blocks@0.1.2(@vue/compiler-sfc@3.4.38)(eslint@9.9.1(jiti@1.21.6)): dependencies: - '@vue/compiler-sfc': 3.4.21 - eslint: 9.9.1(jiti@1.21.0) + '@vue/compiler-sfc': 3.4.38 + eslint: 9.9.1(jiti@1.21.6) eslint-scope@7.2.2: dependencies: @@ -12530,9 +12459,9 @@ snapshots: eslint-visitor-keys@4.0.0: {} - eslint@9.9.1(jiti@1.21.0): + eslint@9.9.1(jiti@1.21.6): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.1(jiti@1.21.0)) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.1(jiti@1.21.6)) '@eslint-community/regexpp': 4.11.0 '@eslint/config-array': 0.18.0 '@eslint/eslintrc': 3.1.0 @@ -12567,7 +12496,7 @@ snapshots: strip-ansi: 6.0.1 text-table: 0.2.0 optionalDependencies: - jiti: 1.21.0 + jiti: 1.21.6 transitivePeerDependencies: - supports-color @@ -12738,7 +12667,7 @@ snapshots: '@nodelib/fs.walk': 1.2.8 glob-parent: 5.1.2 merge2: 1.4.1 - micromatch: 4.0.5 + micromatch: 4.0.8 fast-glob@3.3.2: dependencies: @@ -12746,7 +12675,7 @@ snapshots: '@nodelib/fs.walk': 1.2.8 glob-parent: 5.1.2 merge2: 1.4.1 - micromatch: 4.0.5 + micromatch: 4.0.8 fast-json-stable-stringify@2.1.0: {} @@ -13577,7 +13506,7 @@ snapshots: http-proxy-agent@7.0.0: dependencies: agent-base: 7.1.0 - debug: 4.3.4 + debug: 4.3.6 transitivePeerDependencies: - supports-color optional: true @@ -13827,6 +13756,9 @@ snapshots: jiti@1.21.0: {} + jiti@1.21.6: + optional: true + jju@1.4.0: {} joi@17.12.2: @@ -13847,8 +13779,6 @@ snapshots: js-tokens@4.0.0: {} - js-tokens@8.0.3: {} - js-yaml@3.14.1: dependencies: argparse: 1.0.10 @@ -14010,7 +13940,7 @@ snapshots: dependencies: json-buffer: 3.0.1 - kitbook@1.0.0-beta.31(@lezer/common@1.2.1)(@sveltejs/kit@2.5.4(@sveltejs/vite-plugin-svelte@3.0.2(svelte@4.2.12)(vite@5.1.4(@types/node@20.11.0)))(svelte@4.2.12)(vite@5.1.4(@types/node@20.11.0)))(svelte@4.2.12)(typescript@5.1.6): + kitbook@1.0.0-beta.31(@lezer/common@1.2.1)(@sveltejs/kit@2.5.4(@sveltejs/vite-plugin-svelte@3.0.2(svelte@4.2.12)(vite@5.4.2(@types/node@22.5.1)))(svelte@4.2.12)(vite@5.4.2(@types/node@22.5.1)))(svelte@4.2.12)(typescript@5.1.6): dependencies: '@codemirror/autocomplete': 6.16.0(@codemirror/language@6.10.1)(@codemirror/state@6.4.1)(@codemirror/view@6.26.3)(@lezer/common@1.2.1) '@codemirror/commands': 6.5.0 @@ -14022,7 +13952,7 @@ snapshots: '@kitbook/mdsvex-shiki-twoslash': 1.0.0-beta.31(svelte@4.2.12)(typescript@5.1.6) '@kitbook/rehype-display-link-titles': 1.0.0-beta.31 '@lezer/highlight': 1.2.0 - '@sveltejs/kit': 2.5.4(@sveltejs/vite-plugin-svelte@3.0.2(svelte@4.2.12)(vite@5.1.4(@types/node@20.11.0)))(svelte@4.2.12)(vite@5.1.4(@types/node@20.11.0)) + '@sveltejs/kit': 2.5.4(@sveltejs/vite-plugin-svelte@3.0.2(svelte@4.2.12)(vite@5.4.2(@types/node@22.5.1)))(svelte@4.2.12)(vite@5.4.2(@types/node@22.5.1)) '@typescript/vfs': 1.5.0 codemirror: 6.0.1(@lezer/common@1.2.1) rehype-autolink-headings: 6.1.1 @@ -14204,7 +14134,7 @@ snapshots: longest-streak@3.1.0: {} - loupe@2.3.7: + loupe@3.1.1: dependencies: get-func-name: 2.0.2 @@ -14235,6 +14165,10 @@ snapshots: lz-string@1.4.4: {} + magic-string@0.30.11: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.0 + magic-string@0.30.7: dependencies: '@jridgewell/sourcemap-codec': 1.4.15 @@ -14613,7 +14547,7 @@ snapshots: micromark@2.11.4: dependencies: - debug: 4.3.4 + debug: 4.3.6 parse-entities: 2.0.0 transitivePeerDependencies: - supports-color @@ -14621,7 +14555,7 @@ snapshots: micromark@3.2.0: dependencies: '@types/debug': 4.1.12 - debug: 4.3.4 + debug: 4.3.6 decode-named-character-reference: 1.0.2 micromark-core-commonmark: 1.1.0 micromark-factory-space: 1.1.0 @@ -14640,11 +14574,6 @@ snapshots: transitivePeerDependencies: - supports-color - micromatch@4.0.5: - dependencies: - braces: 3.0.2 - picomatch: 2.3.1 - micromatch@4.0.8: dependencies: braces: 3.0.3 @@ -15008,10 +14937,6 @@ snapshots: dependencies: yocto-queue: 0.1.0 - p-limit@5.0.0: - dependencies: - yocto-queue: 1.0.0 - p-locate@4.1.0: dependencies: p-limit: 2.3.0 @@ -15117,7 +15042,7 @@ snapshots: pathe@1.1.2: {} - pathval@1.1.1: {} + pathval@2.0.0: {} pause-stream@0.0.11: dependencies: @@ -15231,6 +15156,14 @@ snapshots: optionalDependencies: postcss: 8.4.41 + postcss-load-config@6.0.1(jiti@1.21.6)(postcss@8.4.41): + dependencies: + lilconfig: 3.1.2 + optionalDependencies: + jiti: 1.21.6 + postcss: 8.4.41 + optional: true + postcss-safe-parser@6.0.0(postcss@8.4.41): dependencies: postcss: 8.4.41 @@ -15251,24 +15184,6 @@ snapshots: postcss-value-parser@4.2.0: {} - postcss@8.4.35: - dependencies: - nanoid: 3.3.7 - picocolors: 1.0.0 - source-map-js: 1.0.2 - - postcss@8.4.36: - dependencies: - nanoid: 3.3.7 - picocolors: 1.0.0 - source-map-js: 1.1.0 - - postcss@8.4.37: - dependencies: - nanoid: 3.3.7 - picocolors: 1.0.0 - source-map-js: 1.2.0 - postcss@8.4.41: dependencies: nanoid: 3.3.7 @@ -15303,12 +15218,6 @@ snapshots: prelude-ls@1.2.1: {} - pretty-format@29.7.0: - dependencies: - '@jest/schemas': 29.6.3 - ansi-styles: 5.2.0 - react-is: 18.2.0 - prism-svelte@0.4.7: {} prismjs@1.29.0: {} @@ -15486,8 +15395,6 @@ snapshots: - supports-color optional: true - react-is@18.2.0: {} - read-cmd-shim@4.0.0: {} read-pkg-up@7.0.1: @@ -15715,7 +15622,7 @@ snapshots: retry-request@5.0.2: dependencies: - debug: 4.3.4 + debug: 4.3.6 extend: 3.0.2 transitivePeerDependencies: - supports-color @@ -15750,42 +15657,26 @@ snapshots: robust-predicates@2.0.4: {} - rollup@4.12.0: - dependencies: - '@types/estree': 1.0.5 - optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.12.0 - '@rollup/rollup-android-arm64': 4.12.0 - '@rollup/rollup-darwin-arm64': 4.12.0 - '@rollup/rollup-darwin-x64': 4.12.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.12.0 - '@rollup/rollup-linux-arm64-gnu': 4.12.0 - '@rollup/rollup-linux-arm64-musl': 4.12.0 - '@rollup/rollup-linux-riscv64-gnu': 4.12.0 - '@rollup/rollup-linux-x64-gnu': 4.12.0 - '@rollup/rollup-linux-x64-musl': 4.12.0 - '@rollup/rollup-win32-arm64-msvc': 4.12.0 - '@rollup/rollup-win32-ia32-msvc': 4.12.0 - '@rollup/rollup-win32-x64-msvc': 4.12.0 - fsevents: 2.3.3 - - rollup@4.13.0: + rollup@4.21.1: dependencies: '@types/estree': 1.0.5 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.13.0 - '@rollup/rollup-android-arm64': 4.13.0 - '@rollup/rollup-darwin-arm64': 4.13.0 - '@rollup/rollup-darwin-x64': 4.13.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.13.0 - '@rollup/rollup-linux-arm64-gnu': 4.13.0 - '@rollup/rollup-linux-arm64-musl': 4.13.0 - '@rollup/rollup-linux-riscv64-gnu': 4.13.0 - '@rollup/rollup-linux-x64-gnu': 4.13.0 - '@rollup/rollup-linux-x64-musl': 4.13.0 - '@rollup/rollup-win32-arm64-msvc': 4.13.0 - '@rollup/rollup-win32-ia32-msvc': 4.13.0 - '@rollup/rollup-win32-x64-msvc': 4.13.0 + '@rollup/rollup-android-arm-eabi': 4.21.1 + '@rollup/rollup-android-arm64': 4.21.1 + '@rollup/rollup-darwin-arm64': 4.21.1 + '@rollup/rollup-darwin-x64': 4.21.1 + '@rollup/rollup-linux-arm-gnueabihf': 4.21.1 + '@rollup/rollup-linux-arm-musleabihf': 4.21.1 + '@rollup/rollup-linux-arm64-gnu': 4.21.1 + '@rollup/rollup-linux-arm64-musl': 4.21.1 + '@rollup/rollup-linux-powerpc64le-gnu': 4.21.1 + '@rollup/rollup-linux-riscv64-gnu': 4.21.1 + '@rollup/rollup-linux-s390x-gnu': 4.21.1 + '@rollup/rollup-linux-x64-gnu': 4.21.1 + '@rollup/rollup-linux-x64-musl': 4.21.1 + '@rollup/rollup-win32-arm64-msvc': 4.21.1 + '@rollup/rollup-win32-ia32-msvc': 4.21.1 + '@rollup/rollup-win32-x64-msvc': 4.21.1 fsevents: 2.3.3 router@1.3.7: @@ -15981,7 +15872,7 @@ snapshots: socket.io-client@4.6.1: dependencies: '@socket.io/component-emitter': 3.1.0 - debug: 4.3.4 + debug: 4.3.6 engine.io-client: 6.4.0 socket.io-parser: 4.2.3 transitivePeerDependencies: @@ -15992,7 +15883,7 @@ snapshots: socket.io-parser@4.2.3: dependencies: '@socket.io/component-emitter': 3.1.0 - debug: 4.3.4 + debug: 4.3.6 transitivePeerDependencies: - supports-color @@ -16007,7 +15898,7 @@ snapshots: socks-proxy-agent@8.0.2: dependencies: agent-base: 7.1.0 - debug: 4.3.4 + debug: 4.3.6 socks: 2.7.1 transitivePeerDependencies: - supports-color @@ -16027,8 +15918,6 @@ snapshots: source-map-js@1.0.2: {} - source-map-js@1.1.0: {} - source-map-js@1.2.0: {} source-map@0.6.1: @@ -16197,10 +16086,6 @@ snapshots: strip-json-comments@3.1.1: {} - strip-literal@2.0.0: - dependencies: - js-tokens: 8.0.3 - strnum@1.0.5: {} stubs@3.0.0: @@ -16258,7 +16143,7 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - svelte-check@3.6.8(@babel/core@7.23.9)(postcss-load-config@3.1.4(postcss@8.4.41))(postcss@8.4.41)(svelte@4.2.12): + svelte-check@3.6.8(@babel/core@7.23.9)(postcss-load-config@6.0.1(jiti@1.21.6)(postcss@8.4.41))(postcss@8.4.41)(svelte@4.2.12): dependencies: '@jridgewell/trace-mapping': 0.3.25 chokidar: 3.6.0 @@ -16267,7 +16152,7 @@ snapshots: picocolors: 1.0.0 sade: 1.8.1 svelte: 4.2.12 - svelte-preprocess: 5.1.3(@babel/core@7.23.9)(postcss-load-config@3.1.4(postcss@8.4.41))(postcss@8.4.41)(svelte@4.2.12)(typescript@5.1.6) + svelte-preprocess: 5.1.3(@babel/core@7.23.9)(postcss-load-config@6.0.1(jiti@1.21.6)(postcss@8.4.41))(postcss@8.4.41)(svelte@4.2.12)(typescript@5.1.6) typescript: 5.1.6 transitivePeerDependencies: - '@babel/core' @@ -16304,7 +16189,7 @@ snapshots: he: 1.2.0 svelte: 4.2.12 - svelte-preprocess@5.1.3(@babel/core@7.23.9)(postcss-load-config@3.1.4(postcss@8.4.41))(postcss@8.4.41)(svelte@4.2.12)(typescript@5.1.6): + svelte-preprocess@5.1.3(@babel/core@7.23.9)(postcss-load-config@6.0.1(jiti@1.21.6)(postcss@8.4.41))(postcss@8.4.41)(svelte@4.2.12)(typescript@5.1.6): dependencies: '@types/pug': 2.0.10 detect-indent: 6.1.0 @@ -16315,7 +16200,7 @@ snapshots: optionalDependencies: '@babel/core': 7.23.9 postcss: 8.4.41 - postcss-load-config: 3.1.4(postcss@8.4.41) + postcss-load-config: 6.0.1(jiti@1.21.6)(postcss@8.4.41) typescript: 5.1.6 svelte2tsx@0.6.27(svelte@4.2.12)(typescript@5.1.6): @@ -16342,11 +16227,33 @@ snapshots: magic-string: 0.30.7 periscopic: 3.1.0 + svelte@4.2.19: + dependencies: + '@ampproject/remapping': 2.3.0 + '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping': 0.3.25 + '@types/estree': 1.0.5 + acorn: 8.12.1 + aria-query: 5.3.0 + axobject-query: 4.1.0 + code-red: 1.0.4 + css-tree: 2.3.1 + estree-walker: 3.0.3 + is-reference: 3.0.2 + locate-character: 3.0.0 + magic-string: 0.30.11 + periscopic: 3.1.0 + sveltefirets@0.0.42(firebase@10.9.0)(svelte@4.2.12): dependencies: firebase: 10.9.0 svelte: 4.2.12 + sveltefirets@0.0.42(firebase@10.9.0)(svelte@4.2.19): + dependencies: + firebase: 10.9.0 + svelte: 4.2.19 + sweepline-intersections@1.5.0: dependencies: tinyqueue: 2.0.3 @@ -16420,15 +16327,17 @@ snapshots: globalyzer: 0.1.0 globrex: 0.1.2 - tinybench@2.6.0: {} + tinybench@2.9.0: {} tinyexec@0.3.0: {} - tinypool@0.8.2: {} + tinypool@1.0.1: {} tinyqueue@2.0.3: {} - tinyspy@2.2.1: {} + tinyrainbow@1.2.0: {} + + tinyspy@3.0.0: {} tmp@0.0.33: dependencies: @@ -16514,8 +16423,6 @@ snapshots: dependencies: prelude-ls: 1.2.1 - type-detect@4.0.8: {} - type-fest@0.20.2: {} type-fest@0.21.3: {} @@ -16558,6 +16465,9 @@ snapshots: undici-types@5.26.5: {} + undici-types@6.19.8: + optional: true + undici@5.28.3: dependencies: '@fastify/busboy': 2.1.0 @@ -16636,10 +16546,10 @@ snapshots: universalify@2.0.0: {} - unocss@0.58.5(postcss@8.4.41)(rollup@4.13.0)(vite@5.1.4(@types/node@20.11.0)): + unocss@0.58.5(postcss@8.4.41)(rollup@4.21.1)(vite@5.4.2(@types/node@22.5.1)): dependencies: - '@unocss/astro': 0.58.5(rollup@4.13.0)(vite@5.1.4(@types/node@20.11.0)) - '@unocss/cli': 0.58.5(rollup@4.13.0) + '@unocss/astro': 0.58.5(rollup@4.21.1)(vite@5.4.2(@types/node@22.5.1)) + '@unocss/cli': 0.58.5(rollup@4.21.1) '@unocss/core': 0.58.5 '@unocss/extractor-arbitrary-variants': 0.58.5 '@unocss/postcss': 0.58.5(postcss@8.4.41) @@ -16657,9 +16567,9 @@ snapshots: '@unocss/transformer-compile-class': 0.58.5 '@unocss/transformer-directives': 0.58.5 '@unocss/transformer-variant-group': 0.58.5 - '@unocss/vite': 0.58.5(rollup@4.13.0)(vite@5.1.4(@types/node@20.11.0)) + '@unocss/vite': 0.58.5(rollup@4.21.1)(vite@5.4.2(@types/node@22.5.1)) optionalDependencies: - vite: 5.1.4(@types/node@20.11.0) + vite: 5.4.2(@types/node@22.5.1) transitivePeerDependencies: - postcss - rollup @@ -16767,143 +16677,127 @@ snapshots: unist-util-stringify-position: 3.0.3 vfile-message: 3.1.4 - vite-node@1.4.0(@types/node@18.11.18): + vite-node@2.0.5(@types/node@18.11.18): dependencies: cac: 6.7.14 - debug: 4.3.4 + debug: 4.3.6 pathe: 1.1.2 - picocolors: 1.0.0 - vite: 5.1.4(@types/node@18.11.18) + tinyrainbow: 1.2.0 + vite: 5.4.2(@types/node@18.11.18) transitivePeerDependencies: - '@types/node' - less - lightningcss - sass + - sass-embedded - stylus - sugarss - supports-color - terser - vite-node@1.4.0(@types/node@20.11.0): + vite-node@2.0.5(@types/node@22.5.1): dependencies: cac: 6.7.14 - debug: 4.3.4 + debug: 4.3.6 pathe: 1.1.2 - picocolors: 1.0.0 - vite: 5.1.4(@types/node@20.11.0) + tinyrainbow: 1.2.0 + vite: 5.4.2(@types/node@22.5.1) transitivePeerDependencies: - '@types/node' - less - lightningcss - sass + - sass-embedded - stylus - sugarss - supports-color - terser - vite@5.1.4(@types/node@18.11.18): - dependencies: - esbuild: 0.19.12 - postcss: 8.4.35 - rollup: 4.12.0 - optionalDependencies: - '@types/node': 18.11.18 - fsevents: 2.3.3 - - vite@5.1.4(@types/node@20.11.0): - dependencies: - esbuild: 0.19.12 - postcss: 8.4.35 - rollup: 4.12.0 - optionalDependencies: - '@types/node': 20.11.0 - fsevents: 2.3.3 - - vite@5.1.6(@types/node@18.11.18): + vite@5.4.2(@types/node@18.11.18): dependencies: - esbuild: 0.19.12 - postcss: 8.4.36 - rollup: 4.13.0 + esbuild: 0.21.5 + postcss: 8.4.41 + rollup: 4.21.1 optionalDependencies: '@types/node': 18.11.18 fsevents: 2.3.3 - vite@5.1.6(@types/node@20.11.0): + vite@5.4.2(@types/node@22.5.1): dependencies: - esbuild: 0.19.12 - postcss: 8.4.36 - rollup: 4.13.0 + esbuild: 0.21.5 + postcss: 8.4.41 + rollup: 4.21.1 optionalDependencies: - '@types/node': 20.11.0 + '@types/node': 22.5.1 fsevents: 2.3.3 - vitefu@0.2.5(vite@5.1.4(@types/node@20.11.0)): + vitefu@0.2.5(vite@5.4.2(@types/node@22.5.1)): optionalDependencies: - vite: 5.1.4(@types/node@20.11.0) - - vitest@1.4.0(@types/node@18.11.18)(@vitest/ui@1.4.0): - dependencies: - '@vitest/expect': 1.4.0 - '@vitest/runner': 1.4.0 - '@vitest/snapshot': 1.4.0 - '@vitest/spy': 1.4.0 - '@vitest/utils': 1.4.0 - acorn-walk: 8.3.2 - chai: 4.4.1 - debug: 4.3.4 + vite: 5.4.2(@types/node@22.5.1) + + vitest@2.0.5(@types/node@18.11.18)(@vitest/ui@2.0.5): + dependencies: + '@ampproject/remapping': 2.3.0 + '@vitest/expect': 2.0.5 + '@vitest/pretty-format': 2.0.5 + '@vitest/runner': 2.0.5 + '@vitest/snapshot': 2.0.5 + '@vitest/spy': 2.0.5 + '@vitest/utils': 2.0.5 + chai: 5.1.1 + debug: 4.3.6 execa: 8.0.1 - local-pkg: 0.5.0 - magic-string: 0.30.8 + magic-string: 0.30.11 pathe: 1.1.2 - picocolors: 1.0.0 std-env: 3.7.0 - strip-literal: 2.0.0 - tinybench: 2.6.0 - tinypool: 0.8.2 - vite: 5.1.6(@types/node@18.11.18) - vite-node: 1.4.0(@types/node@18.11.18) - why-is-node-running: 2.2.2 + tinybench: 2.9.0 + tinypool: 1.0.1 + tinyrainbow: 1.2.0 + vite: 5.4.2(@types/node@18.11.18) + vite-node: 2.0.5(@types/node@18.11.18) + why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 18.11.18 - '@vitest/ui': 1.4.0(vitest@1.4.0) + '@vitest/ui': 2.0.5(vitest@2.0.5) transitivePeerDependencies: - less - lightningcss - sass + - sass-embedded - stylus - sugarss - supports-color - terser - vitest@1.4.0(@types/node@20.11.0)(@vitest/ui@1.4.0): + vitest@2.0.5(@types/node@22.5.1)(@vitest/ui@2.0.5): dependencies: - '@vitest/expect': 1.4.0 - '@vitest/runner': 1.4.0 - '@vitest/snapshot': 1.4.0 - '@vitest/spy': 1.4.0 - '@vitest/utils': 1.4.0 - acorn-walk: 8.3.2 - chai: 4.4.1 - debug: 4.3.4 + '@ampproject/remapping': 2.3.0 + '@vitest/expect': 2.0.5 + '@vitest/pretty-format': 2.0.5 + '@vitest/runner': 2.0.5 + '@vitest/snapshot': 2.0.5 + '@vitest/spy': 2.0.5 + '@vitest/utils': 2.0.5 + chai: 5.1.1 + debug: 4.3.6 execa: 8.0.1 - local-pkg: 0.5.0 - magic-string: 0.30.8 + magic-string: 0.30.11 pathe: 1.1.2 - picocolors: 1.0.0 std-env: 3.7.0 - strip-literal: 2.0.0 - tinybench: 2.6.0 - tinypool: 0.8.2 - vite: 5.1.6(@types/node@20.11.0) - vite-node: 1.4.0(@types/node@20.11.0) - why-is-node-running: 2.2.2 + tinybench: 2.9.0 + tinypool: 1.0.1 + tinyrainbow: 1.2.0 + vite: 5.4.2(@types/node@22.5.1) + vite-node: 2.0.5(@types/node@22.5.1) + why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 20.11.0 - '@vitest/ui': 1.4.0(vitest@1.4.0) + '@types/node': 22.5.1 + '@vitest/ui': 2.0.5(vitest@2.0.5) transitivePeerDependencies: - less - lightningcss - sass + - sass-embedded - stylus - sugarss - supports-color @@ -16918,10 +16812,10 @@ snapshots: vscode-textmate@5.2.0: {} - vue-eslint-parser@9.4.3(eslint@9.9.1(jiti@1.21.0)): + vue-eslint-parser@9.4.3(eslint@9.9.1(jiti@1.21.6)): dependencies: debug: 4.3.4 - eslint: 9.9.1(jiti@1.21.0) + eslint: 9.9.1(jiti@1.21.6) eslint-scope: 7.2.2 eslint-visitor-keys: 3.4.3 espree: 9.6.1 @@ -16985,7 +16879,7 @@ snapshots: isexe: 3.1.1 optional: true - why-is-node-running@2.2.2: + why-is-node-running@2.3.0: dependencies: siginfo: 2.0.0 stackback: 0.0.2 @@ -17105,8 +16999,6 @@ snapshots: yocto-queue@0.1.0: {} - yocto-queue@1.0.0: {} - yoga-layout-prebuilt@1.10.0: dependencies: '@types/yoga-layout': 1.9.2 From 1c62b6f826bac6fd7d6105adddbec9e4cab72b1a Mon Sep 17 00:00:00 2001 From: jacob-8 Date: Thu, 29 Aug 2024 13:59:31 +0800 Subject: [PATCH 04/44] switch orama to main route --- .github/workflows/lighthouse-audit.yml | 2 +- packages/scripts/migrate-to-supabase/notes.md | 2 + packages/site/src/docs/misc/entry-fields.md | 6 +- packages/site/src/lib/mocks/layout.ts | 1 - .../lib/search/augment-entry-for-search.ts | 93 +- .../src/routes/[dictionaryId]/+layout.svelte | 4 +- .../site/src/routes/[dictionaryId]/+layout.ts | 17 +- .../site/src/routes/[dictionaryId]/+page.ts | 11 +- .../src/routes/[dictionaryId]/SideMenu.svelte | 31 +- .../+layout.svelte | 28 +- .../{entries => entries-algolia}/Audio.svelte | 0 .../Audio.variants.ts | 0 .../entries-algolia/EntryFilters.svelte | 134 ++ .../{entries => entries-algolia}/Video.svelte | 0 .../entries-algolia/[redirectId]/+page.ts | 7 + .../gallery/+page.svelte | 54 +- .../gallery/GalleryEntry.svelte | 0 .../gallery/GalleryEntry.variants.ts | 0 .../list/+page.svelte | 42 +- .../list/List.svelte | 10 +- .../list/List.variants.ts | 0 .../list/ListEntry.svelte | 0 .../list/ListEntry.variants.ts | 0 .../print/+page.svelte | 0 .../print/PrintEntry.svelte | 0 .../print/PrintEntry.variants.ts | 0 .../print/PrintFieldCheckboxes.svelte | 46 +- .../print/QrCode.svelte | 37 +- .../print/_page.svx | 0 .../print/mock-data.ts | 20 +- .../print/printFields.ts | 4 +- .../print/qrcodegen.ts | 1101 +++++++++++------ .../print/truncateAuthors.test.ts | 0 .../print/truncateAuthors.ts | 0 .../table/+page.svelte | 36 +- .../table/Cell.svelte | 2 +- .../table/ColumnAdjustSlideover.svelte | 44 +- .../table/ColumnTitle.svelte | 0 .../table/EntriesTable.svelte | 0 .../table/EntriesTable.variants.ts | 0 .../table/cells/CheckboxCell.svelte | 24 + .../table/cells/PhotoCell.svelte | 11 +- .../table/cells/SelectSpeakerCell.svelte | 0 .../table/cells/SelectSpeakerCell.variants.ts | 0 .../table/cells/Textbox.svelte | 22 +- .../table/setUpColumns.ts | 50 +- .../entries-local/EntryFilters.svelte | 172 --- .../{entries-local => entries}/+page.svelte | 0 .../{entries-local => entries}/+page.ts | 0 .../ClearFilters.svelte | 10 +- .../EntriesGallery.svelte | 8 +- .../EntriesPrint.svelte | 8 +- .../entries/EntryFilters.svelte | 280 +++-- .../FilterList.svelte | 0 .../FilterList.variants.ts | 0 .../Pagination.svelte | 8 +- .../SearchInput.svelte | 10 +- .../SwitchView.svelte | 4 +- .../ToggleFacet.svelte | 0 .../{entries-local => entries}/View.svelte | 4 +- .../entries/[redirectId]/+page.ts | 7 - .../entries/table/cells/CheckboxCell.svelte | 34 - .../entry/[entryId]/EntryMedia.svelte | 4 +- .../invite/[inviteId]/+page.svelte | 6 +- .../src/routes/[dictionaryId]/load-entries.ts | 5 +- .../src/routes/create-dictionary/+page.ts | 9 +- 66 files changed, 1347 insertions(+), 1061 deletions(-) rename packages/site/src/routes/[dictionaryId]/{entries => entries-algolia}/+layout.svelte (83%) rename packages/site/src/routes/[dictionaryId]/{entries => entries-algolia}/Audio.svelte (100%) rename packages/site/src/routes/[dictionaryId]/{entries => entries-algolia}/Audio.variants.ts (100%) create mode 100644 packages/site/src/routes/[dictionaryId]/entries-algolia/EntryFilters.svelte rename packages/site/src/routes/[dictionaryId]/{entries => entries-algolia}/Video.svelte (100%) create mode 100644 packages/site/src/routes/[dictionaryId]/entries-algolia/[redirectId]/+page.ts rename packages/site/src/routes/[dictionaryId]/{entries => entries-algolia}/gallery/+page.svelte (71%) rename packages/site/src/routes/[dictionaryId]/{entries => entries-algolia}/gallery/GalleryEntry.svelte (100%) rename packages/site/src/routes/[dictionaryId]/{entries => entries-algolia}/gallery/GalleryEntry.variants.ts (100%) rename packages/site/src/routes/[dictionaryId]/{entries => entries-algolia}/list/+page.svelte (67%) rename packages/site/src/routes/[dictionaryId]/{entries => entries-algolia}/list/List.svelte (71%) rename packages/site/src/routes/[dictionaryId]/{entries => entries-algolia}/list/List.variants.ts (100%) rename packages/site/src/routes/[dictionaryId]/{entries => entries-algolia}/list/ListEntry.svelte (100%) rename packages/site/src/routes/[dictionaryId]/{entries => entries-algolia}/list/ListEntry.variants.ts (100%) rename packages/site/src/routes/[dictionaryId]/{entries => entries-algolia}/print/+page.svelte (100%) rename packages/site/src/routes/[dictionaryId]/{entries => entries-algolia}/print/PrintEntry.svelte (100%) rename packages/site/src/routes/[dictionaryId]/{entries => entries-algolia}/print/PrintEntry.variants.ts (100%) rename packages/site/src/routes/[dictionaryId]/{entries => entries-algolia}/print/PrintFieldCheckboxes.svelte (70%) rename packages/site/src/routes/[dictionaryId]/{entries => entries-algolia}/print/QrCode.svelte (58%) rename packages/site/src/routes/[dictionaryId]/{entries => entries-algolia}/print/_page.svx (100%) rename packages/site/src/routes/[dictionaryId]/{entries => entries-algolia}/print/mock-data.ts (99%) rename packages/site/src/routes/[dictionaryId]/{entries => entries-algolia}/print/printFields.ts (85%) rename packages/site/src/routes/[dictionaryId]/{entries => entries-algolia}/print/qrcodegen.ts (59%) rename packages/site/src/routes/[dictionaryId]/{entries => entries-algolia}/print/truncateAuthors.test.ts (100%) rename packages/site/src/routes/[dictionaryId]/{entries => entries-algolia}/print/truncateAuthors.ts (100%) rename packages/site/src/routes/[dictionaryId]/{entries => entries-algolia}/table/+page.svelte (72%) rename packages/site/src/routes/[dictionaryId]/{entries => entries-algolia}/table/Cell.svelte (98%) rename packages/site/src/routes/[dictionaryId]/{entries => entries-algolia}/table/ColumnAdjustSlideover.svelte (84%) rename packages/site/src/routes/[dictionaryId]/{entries => entries-algolia}/table/ColumnTitle.svelte (100%) rename packages/site/src/routes/[dictionaryId]/{entries => entries-algolia}/table/EntriesTable.svelte (100%) rename packages/site/src/routes/[dictionaryId]/{entries => entries-algolia}/table/EntriesTable.variants.ts (100%) create mode 100644 packages/site/src/routes/[dictionaryId]/entries-algolia/table/cells/CheckboxCell.svelte rename packages/site/src/routes/[dictionaryId]/{entries => entries-algolia}/table/cells/PhotoCell.svelte (65%) rename packages/site/src/routes/[dictionaryId]/{entries => entries-algolia}/table/cells/SelectSpeakerCell.svelte (100%) rename packages/site/src/routes/[dictionaryId]/{entries => entries-algolia}/table/cells/SelectSpeakerCell.variants.ts (100%) rename packages/site/src/routes/[dictionaryId]/{entries => entries-algolia}/table/cells/Textbox.svelte (62%) rename packages/site/src/routes/[dictionaryId]/{entries => entries-algolia}/table/setUpColumns.ts (64%) delete mode 100644 packages/site/src/routes/[dictionaryId]/entries-local/EntryFilters.svelte rename packages/site/src/routes/[dictionaryId]/{entries-local => entries}/+page.svelte (100%) rename packages/site/src/routes/[dictionaryId]/{entries-local => entries}/+page.ts (100%) rename packages/site/src/routes/[dictionaryId]/{entries-local => entries}/ClearFilters.svelte (59%) rename packages/site/src/routes/[dictionaryId]/{entries-local => entries}/EntriesGallery.svelte (73%) rename packages/site/src/routes/[dictionaryId]/{entries-local => entries}/EntriesPrint.svelte (94%) rename packages/site/src/routes/[dictionaryId]/{entries-local => entries}/FilterList.svelte (100%) rename packages/site/src/routes/[dictionaryId]/{entries-local => entries}/FilterList.variants.ts (100%) rename packages/site/src/routes/[dictionaryId]/{entries-local => entries}/Pagination.svelte (87%) rename packages/site/src/routes/[dictionaryId]/{entries-local => entries}/SearchInput.svelte (83%) rename packages/site/src/routes/[dictionaryId]/{entries-local => entries}/SwitchView.svelte (94%) rename packages/site/src/routes/[dictionaryId]/{entries-local => entries}/ToggleFacet.svelte (100%) rename packages/site/src/routes/[dictionaryId]/{entries-local => entries}/View.svelte (95%) delete mode 100644 packages/site/src/routes/[dictionaryId]/entries/[redirectId]/+page.ts delete mode 100644 packages/site/src/routes/[dictionaryId]/entries/table/cells/CheckboxCell.svelte diff --git a/.github/workflows/lighthouse-audit.yml b/.github/workflows/lighthouse-audit.yml index fa9ba6b82..30a1fdb6c 100644 --- a/.github/workflows/lighthouse-audit.yml +++ b/.github/workflows/lighthouse-audit.yml @@ -21,7 +21,7 @@ jobs: with: urls: | ${{ github.event.deployment_status.target_url }} - ${{ github.event.deployment_status.target_url }}/achi/entries/list + ${{ github.event.deployment_status.target_url }}/achi/entries ${{ github.event.deployment_status.target_url }}/jaRhn6MAZim4Blvr1iEv/entry/yt9ja7ymh9xgba5i # configPath: './.github/lighthouserc.json' # https://github.com/GoogleChrome/lighthouse-ci/blob/main/docs/getting-started.md https://github.com/GoogleChrome/lighthouse-ci/blob/main/docs/configuration.md#assert uploadArtifacts: true diff --git a/packages/scripts/migrate-to-supabase/notes.md b/packages/scripts/migrate-to-supabase/notes.md index d2e77e269..d31ef2a92 100644 --- a/packages/scripts/migrate-to-supabase/notes.md +++ b/packages/scripts/migrate-to-supabase/notes.md @@ -4,12 +4,14 @@ - Move off Algolia fully onto local Orama + using Orama Cloud for (100K max*3 indexes) for large, public dictionaries + Onondaga - solve bugs - flip usage to using the new search but make Algolia still available as a second option + - Handle goto(`/${dictionary_id}/entries/list${algoliaQueryParams}`) in media.ts with a proper url - On a new migration branch - Make sure all items from "clean-up" below are being actively logged again as they are run into - update migration script to migrate speakers across as they are needed, when one is found, save into speakers table, then create a map of firestore speaker id to supabase speaker id, in future times when this Firestore speaker id comes up, check the map first to see if speaker already exists - figure out how different user ids (creater of speaker) between Firestore and Firebase will be handled and document - run tests on migration - visual inspection of the results locally - should work similar to current prod + - migrate auth - update saving functions << is a little big - make all types of edits - Run migration process below diff --git a/packages/site/src/docs/misc/entry-fields.md b/packages/site/src/docs/misc/entry-fields.md index db599192c..fd0b888a2 100644 --- a/packages/site/src/docs/misc/entry-fields.md +++ b/packages/site/src/docs/misc/entry-fields.md @@ -4,12 +4,12 @@ ### Glosses containing scientific names -In these cases, when scientific names are italicized by convention we need to create a specific field for scientific names, such as many entries in [Birhor's Plants domain](https://livingdictionaries.app/birhor/entries/list?entries_prod%5BrefinementList%5D%5Bsdn%5D%5B0%5D=1.4) +In these cases, when scientific names are italicized by convention we need to create a specific field for scientific names, such as many entries in [Birhor's Plants domain](https://livingdictionaries.app/birhor/entries) ## Interlinearization - Consider researching more about [Leipzig glossing](https://ctan.org/pkg/leipzig?lang=en) - Need to be able to support small-caps, used and [Unicode Lookup](https://unicode.emnudge.dev/) to find characters. -- Can be done via rich-text as in `3sg.pres` or via specific small capitals unicode letters like done in [Toggle SmallCaps](https://svelte.dev/repl/231af5758d6b484dbbee7827b0b95540?version=3.46.4) to come up with "3sg.ᴘʀᴇꜱ" these can actually be typed/pasted into this text box that text doesn't support smallCaps in the rich-text sort of manner. The benefit of doing this via unicode is that we can export dictionaries with the smallCaps intact, as well as people can copy paste into and out of the site and keep the small caps intact. This is a topic to research more on as small caps q is not contained in common fonts and may need a font added. https://en.wikipedia.org/wiki/Small_caps and https://yaytext.com/small-caps/#preview_small-caps are good resources. See also https://developer.mozilla.org/en-US/docs/Web/CSS/font-variant-caps +- Can be done via rich-text as in `3sg.pres` or via specific small capitals unicode letters like done in [Toggle SmallCaps](https://svelte.dev/repl/231af5758d6b484dbbee7827b0b95540?version=3.46.4) to come up with "3sg.ᴘʀᴇꜱ" these can actually be typed/pasted into this text box that text doesn't support smallCaps in the rich-text sort of manner. The benefit of doing this via unicode is that we can export dictionaries with the smallCaps intact, as well as people can copy paste into and out of the site and keep the small caps intact. This is a topic to research more on as small caps q is not contained in common fonts and may need a font added. https://en.wikipedia.org/wiki/Small_caps and https://yaytext.com/small-caps/#preview_small-caps are good resources. See also https://developer.mozilla.org/en-US/docs/Web/CSS/font-variant-caps ?? What about other rich-text features? @@ -24,4 +24,4 @@ Is there a need for rich-text and which ones? If so use [QuillJs](https://quillj ### Scientific Name -- for Latin names that are normally italicized - do we need to support italics as optional here using *italics* or not - if so we can do them using something like https://svelte.dev/examples/textarea-inputs \ No newline at end of file +- for Latin names that are normally italicized - do we need to support italics as optional here using *italics* or not - if so we can do them using something like https://svelte.dev/examples/textarea-inputs diff --git a/packages/site/src/lib/mocks/layout.ts b/packages/site/src/lib/mocks/layout.ts index 31dd0f0eb..742ce4cce 100644 --- a/packages/site/src/lib/mocks/layout.ts +++ b/packages/site/src/lib/mocks/layout.ts @@ -36,7 +36,6 @@ export const justMockDictionaryLayoutData = { search_entries: null, default_entries_per_page: null, dbOperations: logDbOperations, - show_local_search: false, load_citation: null, load_partners: null, } satisfies Partial diff --git a/packages/site/src/lib/search/augment-entry-for-search.ts b/packages/site/src/lib/search/augment-entry-for-search.ts index 12196622b..87df48831 100644 --- a/packages/site/src/lib/search/augment-entry-for-search.ts +++ b/packages/site/src/lib/search/augment-entry-for-search.ts @@ -1,15 +1,16 @@ -import type { ExpandedEntry } from '@living-dictionaries/types'; +import type { ExpandedEntry } from '@living-dictionaries/types' export function augment_entry_for_search(entry: ExpandedEntry) { const _dialects = entry.dialects || [] const _parts_of_speech = entry.senses?.map(sense => sense.translated_parts_of_speech || []).flat() || [] const _semantic_domains = entry.senses?.map(sense => [...(sense.translated_ld_semantic_domains || []), ...(sense.write_in_semantic_domains || [])]).flat() || [] - const _speakers = entry.sound_files?.map(audio => { + const _speakers = entry.sound_files?.map((audio) => { if (audio.speaker_ids) return audio.speaker_ids if (audio.speakerName) return [audio.speakerName] - return []}).flat() || [] + return [] + }).flat() || [] const _lexeme_other = [ entry.local_orthography_1, @@ -18,12 +19,12 @@ export function augment_entry_for_search(entry: ExpandedEntry) { entry.local_orthography_4, entry.local_orthography_5, simplify_lexeme_for_search(entry.lexeme), - ].filter(Boolean); + ].filter(Boolean) - const _glosses = entry.senses?.flatMap(sense => Object.values(sense.glosses || {}).filter(Boolean)) || []; + const _glosses = entry.senses?.flatMap(sense => Object.values(sense.glosses || {}).filter(Boolean)) || [] const _sentences = entry.senses?.flatMap(sense => - sense.example_sentences?.flatMap(sentence => Object.values(sentence).filter(Boolean)) || [] - ) || []; + sense.example_sentences?.flatMap(sentence => Object.values(sentence).filter(Boolean)) || [], + ) || [] return { ...entry, @@ -55,49 +56,49 @@ export function restore_spaces_from_underscores(string: string) { } const ipa_to_common_keyboard = { - 'ɛ': 'e', - 'ɘ': 'e', - 'ǝ': 'e', - 'ɪ': 'i', - 'ɔ': 'o', - 'ø': 'o', - 'ɑ': 'a', - 'æ': 'a', - 'ʊ': 'u', - 'ʃ': 's', - 'ʒ': 'z', - 'ʐ': 'z', - 'ɡ': 'g', - 'ɢ': 'g', - 'ɣ': 'g', - 'χ': 'x', - 'ʡ': '?', - 'ʔ': '?', - 'ʕ': '?', - 'ʁ': 'r', - 'ɹ': 'r', - 'ɚ': 'r', - 'ð': 'd', - 'ɖ': 'd', - 'θ': 't', - 'ʈ': 't', - 'ʌ': 'v', - 'ɱ': 'm', - 'ŋ': 'n', - 'ɲ': 'n', - 'ɳ': 'n', - 'ɴ': 'n', - 'ʰ': 'h', + ɛ: 'e', + ɘ: 'e', + ǝ: 'e', + ɪ: 'i', + ɔ: 'o', + ø: 'o', + ɑ: 'a', + æ: 'a', + ʊ: 'u', + ʃ: 's', + ʒ: 'z', + ʐ: 'z', + ɡ: 'g', + ɢ: 'g', + ɣ: 'g', + χ: 'x', + ʡ: '?', + ʔ: '?', + ʕ: '?', + ʁ: 'r', + ɹ: 'r', + ɚ: 'r', + ð: 'd', + ɖ: 'd', + θ: 't', + ʈ: 't', + ʌ: 'v', + ɱ: 'm', + ŋ: 'n', + ɲ: 'n', + ɳ: 'n', + ɴ: 'n', + ʰ: 'h', } export function simplify_lexeme_for_search(lexeme: string) { - if (!lexeme) return; - const simplified = lexeme?.normalize('NFD').replace(/[\u0300-\u036f]/g, ''); // removes diacritics + if (!lexeme) return + const simplified = lexeme?.normalize('NFD').replace(/[\u0300-\u036F]/g, '') // removes diacritics - let result = ''; + let result = '' for (const char of simplified) - result += ipa_to_common_keyboard[char] || char; + result += ipa_to_common_keyboard[char] || char - if (result === lexeme) return; - return result; + if (result === lexeme) return + return result } diff --git a/packages/site/src/routes/[dictionaryId]/+layout.svelte b/packages/site/src/routes/[dictionaryId]/+layout.svelte index d67473602..85df16342 100644 --- a/packages/site/src/routes/[dictionaryId]/+layout.svelte +++ b/packages/site/src/routes/[dictionaryId]/+layout.svelte @@ -7,7 +7,7 @@ import './custom-fonts.css' export let data - $: ({ dictionary, is_manager, status, show_local_search } = data) + $: ({ dictionary, is_manager } = data) @@ -41,7 +41,7 @@ open={show}>
- set(false)} /> + set(false)} />
+ +
+ + + + +
+ + + {#if show_negatives} + {#if !$page.url.pathname.includes('gallery')} + + {/if} + + + + + + + {:else} + {#if !$page.url.pathname.includes('gallery')} + + {/if} + + + + + + + {/if} + + {#if $is_manager} + + {/if} + +
+
+ Search by Algolia + + + diff --git a/packages/site/src/routes/[dictionaryId]/entries/Video.svelte b/packages/site/src/routes/[dictionaryId]/entries-algolia/Video.svelte similarity index 100% rename from packages/site/src/routes/[dictionaryId]/entries/Video.svelte rename to packages/site/src/routes/[dictionaryId]/entries-algolia/Video.svelte diff --git a/packages/site/src/routes/[dictionaryId]/entries-algolia/[redirectId]/+page.ts b/packages/site/src/routes/[dictionaryId]/entries-algolia/[redirectId]/+page.ts new file mode 100644 index 000000000..40b61ee0f --- /dev/null +++ b/packages/site/src/routes/[dictionaryId]/entries-algolia/[redirectId]/+page.ts @@ -0,0 +1,7 @@ +import { redirect } from '@sveltejs/kit' +import type { PageLoad } from './$types' +import { ResponseCodes } from '$lib/constants' + +export const load: PageLoad = ({ params }) => { + redirect(ResponseCodes.MOVED_PERMANENTLY_PRESERVE_REQUEST, `/${params.dictionaryId}/entry/${params.redirectId}`) +} diff --git a/packages/site/src/routes/[dictionaryId]/entries/gallery/+page.svelte b/packages/site/src/routes/[dictionaryId]/entries-algolia/gallery/+page.svelte similarity index 71% rename from packages/site/src/routes/[dictionaryId]/entries/gallery/+page.svelte rename to packages/site/src/routes/[dictionaryId]/entries-algolia/gallery/+page.svelte index 73b1c5fe1..c3f559669 100644 --- a/packages/site/src/routes/[dictionaryId]/entries/gallery/+page.svelte +++ b/packages/site/src/routes/[dictionaryId]/entries-algolia/gallery/+page.svelte @@ -1,30 +1,30 @@ diff --git a/packages/site/src/routes/[dictionaryId]/entries/gallery/GalleryEntry.svelte b/packages/site/src/routes/[dictionaryId]/entries-algolia/gallery/GalleryEntry.svelte similarity index 100% rename from packages/site/src/routes/[dictionaryId]/entries/gallery/GalleryEntry.svelte rename to packages/site/src/routes/[dictionaryId]/entries-algolia/gallery/GalleryEntry.svelte diff --git a/packages/site/src/routes/[dictionaryId]/entries/gallery/GalleryEntry.variants.ts b/packages/site/src/routes/[dictionaryId]/entries-algolia/gallery/GalleryEntry.variants.ts similarity index 100% rename from packages/site/src/routes/[dictionaryId]/entries/gallery/GalleryEntry.variants.ts rename to packages/site/src/routes/[dictionaryId]/entries-algolia/gallery/GalleryEntry.variants.ts diff --git a/packages/site/src/routes/[dictionaryId]/entries/list/+page.svelte b/packages/site/src/routes/[dictionaryId]/entries-algolia/list/+page.svelte similarity index 67% rename from packages/site/src/routes/[dictionaryId]/entries/list/+page.svelte rename to packages/site/src/routes/[dictionaryId]/entries-algolia/list/+page.svelte index 1ab169940..028d57a64 100644 --- a/packages/site/src/routes/[dictionaryId]/entries/list/+page.svelte +++ b/packages/site/src/routes/[dictionaryId]/entries-algolia/list/+page.svelte @@ -1,23 +1,23 @@ diff --git a/packages/site/src/routes/[dictionaryId]/entries/list/List.svelte b/packages/site/src/routes/[dictionaryId]/entries-algolia/list/List.svelte similarity index 71% rename from packages/site/src/routes/[dictionaryId]/entries/list/List.svelte rename to packages/site/src/routes/[dictionaryId]/entries-algolia/list/List.svelte index 52fcacc5b..cbc0478e5 100644 --- a/packages/site/src/routes/[dictionaryId]/entries/list/List.svelte +++ b/packages/site/src/routes/[dictionaryId]/entries-algolia/list/List.svelte @@ -1,9 +1,9 @@ {#each fieldsThatExist as field} diff --git a/packages/site/src/routes/[dictionaryId]/entries/print/QrCode.svelte b/packages/site/src/routes/[dictionaryId]/entries-algolia/print/QrCode.svelte similarity index 58% rename from packages/site/src/routes/[dictionaryId]/entries/print/QrCode.svelte rename to packages/site/src/routes/[dictionaryId]/entries-algolia/print/QrCode.svelte index c18dd95f7..e5e90d4cc 100644 --- a/packages/site/src/routes/[dictionaryId]/entries/print/QrCode.svelte +++ b/packages/site/src/routes/[dictionaryId]/entries-algolia/print/QrCode.svelte @@ -1,28 +1,29 @@ diff --git a/packages/site/src/routes/[dictionaryId]/entries/print/_page.svx b/packages/site/src/routes/[dictionaryId]/entries-algolia/print/_page.svx similarity index 100% rename from packages/site/src/routes/[dictionaryId]/entries/print/_page.svx rename to packages/site/src/routes/[dictionaryId]/entries-algolia/print/_page.svx diff --git a/packages/site/src/routes/[dictionaryId]/entries/print/mock-data.ts b/packages/site/src/routes/[dictionaryId]/entries-algolia/print/mock-data.ts similarity index 99% rename from packages/site/src/routes/[dictionaryId]/entries/print/mock-data.ts rename to packages/site/src/routes/[dictionaryId]/entries-algolia/print/mock-data.ts index 39e1b35e6..f25dc2748 100644 --- a/packages/site/src/routes/[dictionaryId]/entries/print/mock-data.ts +++ b/packages/site/src/routes/[dictionaryId]/entries-algolia/print/mock-data.ts @@ -1,6 +1,6 @@ -import type { ActualDatabaseEntry, ISpeaker } from '@living-dictionaries/types'; +import type { ActualDatabaseEntry, ISpeaker } from '@living-dictionaries/types' -const gender: 'm' | 'f' | 'o' = 'f'; +const gender: 'm' | 'f' | 'o' = 'f' export const speakers: ISpeaker[] = [ { @@ -11,7 +11,7 @@ export const speakers: ISpeaker[] = [ gender, uid: 'uwNgSHCEeRaJAUPsmZok1uMRXzO2', }, -]; +] export const entries: ActualDatabaseEntry[] = [ { @@ -224,7 +224,7 @@ export const entries: ActualDatabaseEntry[] = [ }, id: 'cY1McfcmkJyv6EqHeynb', }, -]; +] export const entriesWithSemanticDomains: ActualDatabaseEntry[] = [ { @@ -271,7 +271,7 @@ export const entriesWithSemanticDomains: ActualDatabaseEntry[] = [ gl: null, sdn: [], }, -]; +] export const entriesWithAlternateOrthographies: ActualDatabaseEntry[] = [ { @@ -292,7 +292,7 @@ export const entriesWithAlternateOrthographies: ActualDatabaseEntry[] = [ lo2: '안녕', lo3: 'αντίο', }, -]; +] export const entriesWithPhonetics: ActualDatabaseEntry[] = [ { @@ -306,7 +306,7 @@ export const entriesWithPhonetics: ActualDatabaseEntry[] = [ lx: 'Quiet', gl: null, }, -]; +] export const entriesWithPartsOfSpeech: ActualDatabaseEntry[] = [ { @@ -321,7 +321,7 @@ export const entriesWithPartsOfSpeech: ActualDatabaseEntry[] = [ gl: null, ps: 'pref', }, -]; +] export const entriesWithGlosses: ActualDatabaseEntry[] = [ { @@ -345,7 +345,7 @@ export const entriesWithGlosses: ActualDatabaseEntry[] = [ lx: 'Happy', gl: { fi: 'Onnellinen' }, }, -]; +] export const entriesWithExampleSentences: ActualDatabaseEntry[] = [ { @@ -381,4 +381,4 @@ export const entriesWithExampleSentences: ActualDatabaseEntry[] = [ vn: 'to witness that even when mind and strength had gone, gratitude and a mutual tenderness still lived on in the heart of men.', }, }, -]; +] diff --git a/packages/site/src/routes/[dictionaryId]/entries/print/printFields.ts b/packages/site/src/routes/[dictionaryId]/entries-algolia/print/printFields.ts similarity index 85% rename from packages/site/src/routes/[dictionaryId]/entries/print/printFields.ts rename to packages/site/src/routes/[dictionaryId]/entries-algolia/print/printFields.ts index 62b23e0e5..0a5fbf41f 100644 --- a/packages/site/src/routes/[dictionaryId]/entries/print/printFields.ts +++ b/packages/site/src/routes/[dictionaryId]/entries-algolia/print/printFields.ts @@ -1,4 +1,4 @@ -import type { IPrintFields } from '@living-dictionaries/types'; +import type { IPrintFields } from '@living-dictionaries/types' export const defaultPrintFields: IPrintFields = { gloss: true, @@ -17,4 +17,4 @@ export const defaultPrintFields: IPrintFields = { photo: false, speaker: false, sources: false, -}; +} diff --git a/packages/site/src/routes/[dictionaryId]/entries/print/qrcodegen.ts b/packages/site/src/routes/[dictionaryId]/entries-algolia/print/qrcodegen.ts similarity index 59% rename from packages/site/src/routes/[dictionaryId]/entries/print/qrcodegen.ts rename to packages/site/src/routes/[dictionaryId]/entries-algolia/print/qrcodegen.ts index d7fb7a086..6993e3afe 100644 --- a/packages/site/src/routes/[dictionaryId]/entries/print/qrcodegen.ts +++ b/packages/site/src/routes/[dictionaryId]/entries-algolia/print/qrcodegen.ts @@ -21,11 +21,11 @@ * Software. */ -type bit = number; -type byte = number; -type int = number; +type bit = number +type byte = number +type int = number -/*---- QR Code symbol class ----*/ +/* ---- QR Code symbol class ---- */ /* * A QR Code symbol, which is a type of two-dimension barcode. @@ -44,7 +44,7 @@ type int = number; * (Note that all ways require supplying the desired error correction level.) */ export class QrCode { - /*-- Static factory functions (high level) --*/ + /* -- Static factory functions (high level) -- */ // Returns a QR Code representing the given Unicode text string at the given error correction level. // As a conservative upper bound, this function is guaranteed to succeed for strings that have 738 or fewer @@ -52,20 +52,20 @@ export class QrCode { // QR Code version is automatically chosen for the output. The ECC level of the result may be higher than the // ecl argument if it can be done without increasing the version. public static encodeText(text: string, ecl: QrCodeEcc): QrCode { - const segs: QrSegment[] = QrSegment.makeSegments(text); - return QrCode.encodeSegments(segs, ecl); + const segs: QrSegment[] = QrSegment.makeSegments(text) + return QrCode.encodeSegments(segs, ecl) } // Returns a QR Code representing the given binary data at the given error correction level. // This function always encodes using the binary segment mode, not any text mode. The maximum number of // bytes allowed is 2953. The smallest possible QR Code version is automatically chosen for the output. // The ECC level of the result may be higher than the ecl argument if it can be done without increasing the version. - public static encodeBinary(data: Readonly, ecl: QrCodeEcc): QrCode { - const seg: QrSegment = QrSegment.makeBytes(data); - return QrCode.encodeSegments([seg], ecl); + public static encodeBinary(data: readonly byte[], ecl: QrCodeEcc): QrCode { + const seg: QrSegment = QrSegment.makeBytes(data) + return QrCode.encodeSegments([seg], ecl) } - /*-- Static factory functions (mid level) --*/ + /* -- Static factory functions (mid level) -- */ // Returns a QR Code representing the given segments with the given encoding parameters. // The smallest possible QR Code version within the given range is automatically @@ -77,93 +77,94 @@ export class QrCode { // between modes (such as alphanumeric and byte) to encode text in less space. // This is a mid-level API; the high-level API is encodeText() and encodeBinary(). public static encodeSegments( - segs: Readonly, + segs: readonly QrSegment[], ecl: QrCodeEcc, minVersion: int = 1, maxVersion: int = 40, mask: int = -1, - boostEcl = true + boostEcl = true, ): QrCode { if ( !( - QrCode.MIN_VERSION <= minVersion && - minVersion <= maxVersion && - maxVersion <= QrCode.MAX_VERSION - ) || - mask < -1 || - mask > 7 - ) - throw new RangeError('Invalid value'); + QrCode.MIN_VERSION <= minVersion + && minVersion <= maxVersion + && maxVersion <= QrCode.MAX_VERSION + ) + || mask < -1 + || mask > 7 + ) { + throw new RangeError('Invalid value') + } // Find the minimal version number to use - let version: int; - let dataUsedBits: int; + let version: int + let dataUsedBits: int for (version = minVersion; ; version++) { - const dataCapacityBits: int = QrCode.getNumDataCodewords(version, ecl) * 8; // Number of data bits available - const usedBits: number = QrSegment.getTotalBits(segs, version); + const dataCapacityBits: int = QrCode.getNumDataCodewords(version, ecl) * 8 // Number of data bits available + const usedBits: number = QrSegment.getTotalBits(segs, version) if (usedBits <= dataCapacityBits) { - dataUsedBits = usedBits; - break; // This version number is found to be suitable + dataUsedBits = usedBits + break // This version number is found to be suitable } if (version >= maxVersion) // All versions in the range could not fit the given data - throw new RangeError('Data too long'); + throw new RangeError('Data too long') } // Increase the error correction level while the data still fits in the current version number for (const newEcl of [QrCodeEcc.MEDIUM, QrCodeEcc.QUARTILE, QrCodeEcc.HIGH]) { // From low to high - if (boostEcl && dataUsedBits <= QrCode.getNumDataCodewords(version, newEcl) * 8) ecl = newEcl; + if (boostEcl && dataUsedBits <= QrCode.getNumDataCodewords(version, newEcl) * 8) ecl = newEcl } // Concatenate all segments to create the data bit string - const bb: bit[] = []; + const bb: bit[] = [] for (const seg of segs) { - appendBits(seg.mode.modeBits, 4, bb); - appendBits(seg.numChars, seg.mode.numCharCountBits(version), bb); - for (const b of seg.getData()) bb.push(b); + appendBits(seg.mode.modeBits, 4, bb) + appendBits(seg.numChars, seg.mode.numCharCountBits(version), bb) + for (const b of seg.getData()) bb.push(b) } - assert(bb.length == dataUsedBits); + assert(bb.length == dataUsedBits) // Add terminator and pad up to a byte if applicable - const dataCapacityBits: int = QrCode.getNumDataCodewords(version, ecl) * 8; - assert(bb.length <= dataCapacityBits); - appendBits(0, Math.min(4, dataCapacityBits - bb.length), bb); - appendBits(0, (8 - (bb.length % 8)) % 8, bb); - assert(bb.length % 8 == 0); + const dataCapacityBits: int = QrCode.getNumDataCodewords(version, ecl) * 8 + assert(bb.length <= dataCapacityBits) + appendBits(0, Math.min(4, dataCapacityBits - bb.length), bb) + appendBits(0, (8 - (bb.length % 8)) % 8, bb) + assert(bb.length % 8 == 0) // Pad with alternating bytes until data capacity is reached - for (let padByte = 0xec; bb.length < dataCapacityBits; padByte ^= 0xec ^ 0x11) - appendBits(padByte, 8, bb); + for (let padByte = 0xEC; bb.length < dataCapacityBits; padByte ^= 0xEC ^ 0x11) + appendBits(padByte, 8, bb) // Pack bits into bytes in big endian - const dataCodewords: byte[] = []; - while (dataCodewords.length * 8 < bb.length) dataCodewords.push(0); - bb.forEach((b: bit, i: int) => (dataCodewords[i >>> 3] |= b << (7 - (i & 7)))); + const dataCodewords: byte[] = [] + while (dataCodewords.length * 8 < bb.length) dataCodewords.push(0) + bb.forEach((b: bit, i: int) => (dataCodewords[i >>> 3] |= b << (7 - (i & 7)))) // Create the QR Code object - return new QrCode(version, ecl, dataCodewords, mask); + return new QrCode(version, ecl, dataCodewords, mask) } - /*-- Fields --*/ + /* -- Fields -- */ // The width and height of this QR Code, measured in modules, between // 21 and 177 (inclusive). This is equal to version * 4 + 17. - public readonly size: int; + public readonly size: int // The index of the mask pattern used in this QR Code, which is between 0 and 7 (inclusive). // Even if a QR Code is created with automatic masking requested (mask = -1), // the resulting object still has a mask value between 0 and 7. - public readonly mask: int; + public readonly mask: int // The modules of this QR Code (false = light, true = dark). // Immutable after constructor finishes. Accessed through getModule(). - private readonly modules: boolean[][] = []; + private readonly modules: boolean[][] = [] // Indicates function modules that are not subjected to masking. Discarded when constructor finishes. - private readonly isFunction: boolean[][] = []; + private readonly isFunction: boolean[][] = [] - /*-- Constructor (low level) and fields --*/ + /* -- Constructor (low level) and fields -- */ // Creates a new QR Code with the given version number, // error correction level, data codeword bytes, and mask number. @@ -177,133 +178,133 @@ export class QrCode { // The error correction level used in this QR Code. public readonly errorCorrectionLevel: QrCodeEcc, - dataCodewords: Readonly, + dataCodewords: readonly byte[], - msk: int + msk: int, ) { // Check scalar arguments if (version < QrCode.MIN_VERSION || version > QrCode.MAX_VERSION) - throw new RangeError('Version value out of range'); - if (msk < -1 || msk > 7) throw new RangeError('Mask value out of range'); - this.size = version * 4 + 17; + throw new RangeError('Version value out of range') + if (msk < -1 || msk > 7) throw new RangeError('Mask value out of range') + this.size = version * 4 + 17 // Initialize both grids to be size*size arrays of Boolean false - const row: boolean[] = []; - for (let i = 0; i < this.size; i++) row.push(false); + const row: boolean[] = [] + for (let i = 0; i < this.size; i++) row.push(false) for (let i = 0; i < this.size; i++) { - this.modules.push(row.slice()); // Initially all light - this.isFunction.push(row.slice()); + this.modules.push(row.slice()) // Initially all light + this.isFunction.push(row.slice()) } // Compute ECC, draw modules - this.drawFunctionPatterns(); - const allCodewords: byte[] = this.addEccAndInterleave(dataCodewords); - this.drawCodewords(allCodewords); + this.drawFunctionPatterns() + const allCodewords: byte[] = this.addEccAndInterleave(dataCodewords) + this.drawCodewords(allCodewords) // Do masking if (msk == -1) { // Automatically choose best mask - let minPenalty: int = 1000000000; + let minPenalty: int = 1000000000 for (let i = 0; i < 8; i++) { - this.applyMask(i); - this.drawFormatBits(i); - const penalty: int = this.getPenaltyScore(); + this.applyMask(i) + this.drawFormatBits(i) + const penalty: int = this.getPenaltyScore() if (penalty < minPenalty) { - msk = i; - minPenalty = penalty; + msk = i + minPenalty = penalty } - this.applyMask(i); // Undoes the mask due to XOR + this.applyMask(i) // Undoes the mask due to XOR } } - assert(0 <= msk && msk <= 7); - this.mask = msk; - this.applyMask(msk); // Apply the final choice of mask - this.drawFormatBits(msk); // Overwrite old format bits + assert(msk >= 0 && msk <= 7) + this.mask = msk + this.applyMask(msk) // Apply the final choice of mask + this.drawFormatBits(msk) // Overwrite old format bits - this.isFunction = []; + this.isFunction = [] } - /*-- Accessor methods --*/ + /* -- Accessor methods -- */ // Returns the color of the module (pixel) at the given coordinates, which is false // for light or true for dark. The top left corner has the coordinates (x=0, y=0). // If the given coordinates are out of bounds, then false (light) is returned. public getModule(x: int, y: int): boolean { - return 0 <= x && x < this.size && 0 <= y && y < this.size && this.modules[y][x]; + return x >= 0 && x < this.size && y >= 0 && y < this.size && this.modules[y][x] } - /*-- Private helper methods for constructor: Drawing function modules --*/ + /* -- Private helper methods for constructor: Drawing function modules -- */ // Reads this object's version field, and draws and marks all function modules. private drawFunctionPatterns(): void { // Draw horizontal and vertical timing patterns for (let i = 0; i < this.size; i++) { - this.setFunctionModule(6, i, i % 2 == 0); - this.setFunctionModule(i, 6, i % 2 == 0); + this.setFunctionModule(6, i, i % 2 == 0) + this.setFunctionModule(i, 6, i % 2 == 0) } // Draw 3 finder patterns (all corners except bottom right; overwrites some timing modules) - this.drawFinderPattern(3, 3); - this.drawFinderPattern(this.size - 4, 3); - this.drawFinderPattern(3, this.size - 4); + this.drawFinderPattern(3, 3) + this.drawFinderPattern(this.size - 4, 3) + this.drawFinderPattern(3, this.size - 4) // Draw numerous alignment patterns - const alignPatPos: int[] = this.getAlignmentPatternPositions(); - const numAlign: int = alignPatPos.length; + const alignPatPos: int[] = this.getAlignmentPatternPositions() + const numAlign: int = alignPatPos.length for (let i = 0; i < numAlign; i++) { for (let j = 0; j < numAlign; j++) { // Don't draw on the three finder corners if (!((i == 0 && j == 0) || (i == 0 && j == numAlign - 1) || (i == numAlign - 1 && j == 0))) - this.drawAlignmentPattern(alignPatPos[i], alignPatPos[j]); + this.drawAlignmentPattern(alignPatPos[i], alignPatPos[j]) } } // Draw configuration data - this.drawFormatBits(0); // Dummy mask value; overwritten later in the constructor - this.drawVersion(); + this.drawFormatBits(0) // Dummy mask value; overwritten later in the constructor + this.drawVersion() } // Draws two copies of the format bits (with its own error correction code) // based on the given mask and this object's error correction level field. private drawFormatBits(mask: int): void { // Calculate error correction code and pack bits - const data: int = (this.errorCorrectionLevel.formatBits << 3) | mask; // errCorrLvl is uint2, mask is uint3 - let rem: int = data; - for (let i = 0; i < 10; i++) rem = (rem << 1) ^ ((rem >>> 9) * 0x537); - const bits = ((data << 10) | rem) ^ 0x5412; // uint15 - assert(bits >>> 15 == 0); + const data: int = (this.errorCorrectionLevel.formatBits << 3) | mask // errCorrLvl is uint2, mask is uint3 + let rem: int = data + for (let i = 0; i < 10; i++) rem = (rem << 1) ^ ((rem >>> 9) * 0x537) + const bits = ((data << 10) | rem) ^ 0x5412 // uint15 + assert(bits >>> 15 == 0) // Draw first copy - for (let i = 0; i <= 5; i++) this.setFunctionModule(8, i, getBit(bits, i)); - this.setFunctionModule(8, 7, getBit(bits, 6)); - this.setFunctionModule(8, 8, getBit(bits, 7)); - this.setFunctionModule(7, 8, getBit(bits, 8)); - for (let i = 9; i < 15; i++) this.setFunctionModule(14 - i, 8, getBit(bits, i)); + for (let i = 0; i <= 5; i++) this.setFunctionModule(8, i, getBit(bits, i)) + this.setFunctionModule(8, 7, getBit(bits, 6)) + this.setFunctionModule(8, 8, getBit(bits, 7)) + this.setFunctionModule(7, 8, getBit(bits, 8)) + for (let i = 9; i < 15; i++) this.setFunctionModule(14 - i, 8, getBit(bits, i)) // Draw second copy - for (let i = 0; i < 8; i++) this.setFunctionModule(this.size - 1 - i, 8, getBit(bits, i)); - for (let i = 8; i < 15; i++) this.setFunctionModule(8, this.size - 15 + i, getBit(bits, i)); - this.setFunctionModule(8, this.size - 8, true); // Always dark + for (let i = 0; i < 8; i++) this.setFunctionModule(this.size - 1 - i, 8, getBit(bits, i)) + for (let i = 8; i < 15; i++) this.setFunctionModule(8, this.size - 15 + i, getBit(bits, i)) + this.setFunctionModule(8, this.size - 8, true) // Always dark } // Draws two copies of the version bits (with its own error correction code), // based on this object's version field, iff 7 <= version <= 40. private drawVersion(): void { - if (this.version < 7) return; + if (this.version < 7) return // Calculate error correction code and pack bits - let rem: int = this.version; // version is uint6, in the range [7, 40] - for (let i = 0; i < 12; i++) rem = (rem << 1) ^ ((rem >>> 11) * 0x1f25); - const bits: int = (this.version << 12) | rem; // uint18 - assert(bits >>> 18 == 0); + let rem: int = this.version // version is uint6, in the range [7, 40] + for (let i = 0; i < 12; i++) rem = (rem << 1) ^ ((rem >>> 11) * 0x1F25) + const bits: int = (this.version << 12) | rem // uint18 + assert(bits >>> 18 == 0) // Draw two copies for (let i = 0; i < 18; i++) { - const color: boolean = getBit(bits, i); - const a: int = this.size - 11 + (i % 3); - const b: int = Math.floor(i / 3); - this.setFunctionModule(a, b, color); - this.setFunctionModule(b, a, color); + const color: boolean = getBit(bits, i) + const a: int = this.size - 11 + (i % 3) + const b: int = Math.floor(i / 3) + this.setFunctionModule(a, b, color) + this.setFunctionModule(b, a, color) } } @@ -312,11 +313,11 @@ export class QrCode { private drawFinderPattern(x: int, y: int): void { for (let dy = -4; dy <= 4; dy++) { for (let dx = -4; dx <= 4; dx++) { - const dist: int = Math.max(Math.abs(dx), Math.abs(dy)); // Chebyshev/infinity norm - const xx: int = x + dx; - const yy: int = y + dy; - if (0 <= xx && xx < this.size && 0 <= yy && yy < this.size) - this.setFunctionModule(xx, yy, dist != 2 && dist != 4); + const dist: int = Math.max(Math.abs(dx), Math.abs(dy)) // Chebyshev/infinity norm + const xx: int = x + dx + const yy: int = y + dy + if (xx >= 0 && xx < this.size && yy >= 0 && yy < this.size) + this.setFunctionModule(xx, yy, dist != 2 && dist != 4) } } } @@ -326,86 +327,86 @@ export class QrCode { private drawAlignmentPattern(x: int, y: int): void { for (let dy = -2; dy <= 2; dy++) { for (let dx = -2; dx <= 2; dx++) - this.setFunctionModule(x + dx, y + dy, Math.max(Math.abs(dx), Math.abs(dy)) != 1); + this.setFunctionModule(x + dx, y + dy, Math.max(Math.abs(dx), Math.abs(dy)) != 1) } } // Sets the color of a module and marks it as a function module. // Only used by the constructor. Coordinates must be in bounds. private setFunctionModule(x: int, y: int, isDark: boolean): void { - this.modules[y][x] = isDark; - this.isFunction[y][x] = true; + this.modules[y][x] = isDark + this.isFunction[y][x] = true } - /*-- Private helper methods for constructor: Codewords and masking --*/ + /* -- Private helper methods for constructor: Codewords and masking -- */ // Returns a new byte string representing the given data with the appropriate error correction // codewords appended to it, based on this object's version and error correction level. - private addEccAndInterleave(data: Readonly): byte[] { - const ver: int = this.version; - const ecl: QrCodeEcc = this.errorCorrectionLevel; + private addEccAndInterleave(data: readonly byte[]): byte[] { + const ver: int = this.version + const ecl: QrCodeEcc = this.errorCorrectionLevel if (data.length != QrCode.getNumDataCodewords(ver, ecl)) - throw new RangeError('Invalid argument'); + throw new RangeError('Invalid argument') // Calculate parameter numbers - const numBlocks: int = QrCode.NUM_ERROR_CORRECTION_BLOCKS[ecl.ordinal][ver]; - const blockEccLen: int = QrCode.ECC_CODEWORDS_PER_BLOCK[ecl.ordinal][ver]; - const rawCodewords: int = Math.floor(QrCode.getNumRawDataModules(ver) / 8); - const numShortBlocks: int = numBlocks - (rawCodewords % numBlocks); - const shortBlockLen: int = Math.floor(rawCodewords / numBlocks); + const numBlocks: int = QrCode.NUM_ERROR_CORRECTION_BLOCKS[ecl.ordinal][ver] + const blockEccLen: int = QrCode.ECC_CODEWORDS_PER_BLOCK[ecl.ordinal][ver] + const rawCodewords: int = Math.floor(QrCode.getNumRawDataModules(ver) / 8) + const numShortBlocks: int = numBlocks - (rawCodewords % numBlocks) + const shortBlockLen: int = Math.floor(rawCodewords / numBlocks) // Split data into blocks and append ECC to each block - const blocks: byte[][] = []; - const rsDiv: byte[] = QrCode.reedSolomonComputeDivisor(blockEccLen); + const blocks: byte[][] = [] + const rsDiv: byte[] = QrCode.reedSolomonComputeDivisor(blockEccLen) for (let i = 0, k = 0; i < numBlocks; i++) { const dat: byte[] = data.slice( k, - k + shortBlockLen - blockEccLen + (i < numShortBlocks ? 0 : 1) - ); - k += dat.length; - const ecc: byte[] = QrCode.reedSolomonComputeRemainder(dat, rsDiv); - if (i < numShortBlocks) dat.push(0); - blocks.push(dat.concat(ecc)); + k + shortBlockLen - blockEccLen + (i < numShortBlocks ? 0 : 1), + ) + k += dat.length + const ecc: byte[] = QrCode.reedSolomonComputeRemainder(dat, rsDiv) + if (i < numShortBlocks) dat.push(0) + blocks.push(dat.concat(ecc)) } // Interleave (not concatenate) the bytes from every block into a single sequence - const result: byte[] = []; + const result: byte[] = [] for (let i = 0; i < blocks[0].length; i++) { blocks.forEach((block, j) => { // Skip the padding byte in short blocks - if (i != shortBlockLen - blockEccLen || j >= numShortBlocks) result.push(block[i]); - }); + if (i != shortBlockLen - blockEccLen || j >= numShortBlocks) result.push(block[i]) + }) } - assert(result.length == rawCodewords); - return result; + assert(result.length == rawCodewords) + return result } // Draws the given sequence of 8-bit codewords (data and error correction) onto the entire // data area of this QR Code. Function modules need to be marked off before this is called. - private drawCodewords(data: Readonly): void { + private drawCodewords(data: readonly byte[]): void { if (data.length != Math.floor(QrCode.getNumRawDataModules(this.version) / 8)) - throw new RangeError('Invalid argument'); - let i: int = 0; // Bit index into the data + throw new RangeError('Invalid argument') + let i: int = 0 // Bit index into the data // Do the funny zigzag scan for (let right = this.size - 1; right >= 1; right -= 2) { // Index of right column in each column pair - if (right == 6) right = 5; + if (right == 6) right = 5 for (let vert = 0; vert < this.size; vert++) { // Vertical counter for (let j = 0; j < 2; j++) { - const x: int = right - j; // Actual x coordinate - const upward: boolean = ((right + 1) & 2) == 0; - const y: int = upward ? this.size - 1 - vert : vert; // Actual y coordinate + const x: int = right - j // Actual x coordinate + const upward: boolean = ((right + 1) & 2) == 0 + const y: int = upward ? this.size - 1 - vert : vert // Actual y coordinate if (!this.isFunction[y][x] && i < data.length * 8) { - this.modules[y][x] = getBit(data[i >>> 3], 7 - (i & 7)); - i++; + this.modules[y][x] = getBit(data[i >>> 3], 7 - (i & 7)) + i++ } // If this QR Code has any remainder bits (0 to 7), they were assigned as // 0/false/light by the constructor and are left unchanged by this method } } } - assert(i == data.length * 8); + assert(i == data.length * 8) } // XORs the codeword modules in this QR Code with the given mask pattern. @@ -414,39 +415,39 @@ export class QrCode { // the same mask value a second time will undo the mask. A final well-formed // QR Code needs exactly one (not zero, two, etc.) mask applied. private applyMask(mask: int): void { - if (mask < 0 || mask > 7) throw new RangeError('Mask value out of range'); + if (mask < 0 || mask > 7) throw new RangeError('Mask value out of range') for (let y = 0; y < this.size; y++) { for (let x = 0; x < this.size; x++) { - let invert: boolean; + let invert: boolean switch (mask) { - case 0: - invert = (x + y) % 2 == 0; - break; - case 1: - invert = y % 2 == 0; - break; - case 2: - invert = x % 3 == 0; - break; - case 3: - invert = (x + y) % 3 == 0; - break; - case 4: - invert = (Math.floor(x / 3) + Math.floor(y / 2)) % 2 == 0; - break; - case 5: - invert = ((x * y) % 2) + ((x * y) % 3) == 0; - break; - case 6: - invert = (((x * y) % 2) + ((x * y) % 3)) % 2 == 0; - break; - case 7: - invert = (((x + y) % 2) + ((x * y) % 3)) % 2 == 0; - break; - default: - throw new Error('Unreachable'); + case 0: + invert = (x + y) % 2 == 0 + break + case 1: + invert = y % 2 == 0 + break + case 2: + invert = x % 3 == 0 + break + case 3: + invert = (x + y) % 3 == 0 + break + case 4: + invert = (Math.floor(x / 3) + Math.floor(y / 2)) % 2 == 0 + break + case 5: + invert = ((x * y) % 2) + ((x * y) % 3) == 0 + break + case 6: + invert = (((x * y) % 2) + ((x * y) % 3)) % 2 == 0 + break + case 7: + invert = (((x + y) % 2) + ((x * y) % 3)) % 2 == 0 + break + default: + throw new Error('Unreachable') } - if (!this.isFunction[y][x] && invert) this.modules[y][x] = !this.modules[y][x]; + if (!this.isFunction[y][x] && invert) this.modules[y][x] = !this.modules[y][x] } } } @@ -454,87 +455,87 @@ export class QrCode { // Calculates and returns the penalty score based on state of this QR Code's current modules. // This is used by the automatic mask choice algorithm to find the mask pattern that yields the lowest score. private getPenaltyScore(): int { - let result: int = 0; + let result: int = 0 // Adjacent modules in row having same color, and finder-like patterns for (let y = 0; y < this.size; y++) { - let runColor = false; - let runX = 0; - const runHistory = [0, 0, 0, 0, 0, 0, 0]; + let runColor = false + let runX = 0 + const runHistory = [0, 0, 0, 0, 0, 0, 0] for (let x = 0; x < this.size; x++) { if (this.modules[y][x] == runColor) { - runX++; - if (runX == 5) result += QrCode.PENALTY_N1; - else if (runX > 5) result++; + runX++ + if (runX == 5) result += QrCode.PENALTY_N1 + else if (runX > 5) result++ } else { - this.finderPenaltyAddHistory(runX, runHistory); - if (!runColor) result += this.finderPenaltyCountPatterns(runHistory) * QrCode.PENALTY_N3; - runColor = this.modules[y][x]; - runX = 1; + this.finderPenaltyAddHistory(runX, runHistory) + if (!runColor) result += this.finderPenaltyCountPatterns(runHistory) * QrCode.PENALTY_N3 + runColor = this.modules[y][x] + runX = 1 } } - result += this.finderPenaltyTerminateAndCount(runColor, runX, runHistory) * QrCode.PENALTY_N3; + result += this.finderPenaltyTerminateAndCount(runColor, runX, runHistory) * QrCode.PENALTY_N3 } // Adjacent modules in column having same color, and finder-like patterns for (let x = 0; x < this.size; x++) { - let runColor = false; - let runY = 0; - const runHistory = [0, 0, 0, 0, 0, 0, 0]; + let runColor = false + let runY = 0 + const runHistory = [0, 0, 0, 0, 0, 0, 0] for (let y = 0; y < this.size; y++) { if (this.modules[y][x] == runColor) { - runY++; - if (runY == 5) result += QrCode.PENALTY_N1; - else if (runY > 5) result++; + runY++ + if (runY == 5) result += QrCode.PENALTY_N1 + else if (runY > 5) result++ } else { - this.finderPenaltyAddHistory(runY, runHistory); - if (!runColor) result += this.finderPenaltyCountPatterns(runHistory) * QrCode.PENALTY_N3; - runColor = this.modules[y][x]; - runY = 1; + this.finderPenaltyAddHistory(runY, runHistory) + if (!runColor) result += this.finderPenaltyCountPatterns(runHistory) * QrCode.PENALTY_N3 + runColor = this.modules[y][x] + runY = 1 } } - result += this.finderPenaltyTerminateAndCount(runColor, runY, runHistory) * QrCode.PENALTY_N3; + result += this.finderPenaltyTerminateAndCount(runColor, runY, runHistory) * QrCode.PENALTY_N3 } // 2*2 blocks of modules having same color for (let y = 0; y < this.size - 1; y++) { for (let x = 0; x < this.size - 1; x++) { - const color: boolean = this.modules[y][x]; + const color: boolean = this.modules[y][x] if ( - color == this.modules[y][x + 1] && - color == this.modules[y + 1][x] && - color == this.modules[y + 1][x + 1] - ) - result += QrCode.PENALTY_N2; + color == this.modules[y][x + 1] + && color == this.modules[y + 1][x] + && color == this.modules[y + 1][x + 1] + ) { + result += QrCode.PENALTY_N2 + } } } // Balance of dark and light modules - let dark: int = 0; - for (const row of this.modules) dark = row.reduce((sum, color) => sum + (color ? 1 : 0), dark); - const total: int = this.size * this.size; // Note that size is odd, so dark/total != 1/2 + let dark: int = 0 + for (const row of this.modules) dark = row.reduce((sum, color) => sum + (color ? 1 : 0), dark) + const total: int = this.size * this.size // Note that size is odd, so dark/total != 1/2 // Compute the smallest integer k >= 0 such that (45-5k)% <= dark/total <= (55+5k)% - const k: int = Math.ceil(Math.abs(dark * 20 - total * 10) / total) - 1; - assert(0 <= k && k <= 9); - result += k * QrCode.PENALTY_N4; - assert(0 <= result && result <= 2568888); // Non-tight upper bound based on default values of PENALTY_N1, ..., N4 - return result; + const k: int = Math.ceil(Math.abs(dark * 20 - total * 10) / total) - 1 + assert(k >= 0 && k <= 9) + result += k * QrCode.PENALTY_N4 + assert(result >= 0 && result <= 2568888) // Non-tight upper bound based on default values of PENALTY_N1, ..., N4 + return result } - /*-- Private helper functions --*/ + /* -- Private helper functions -- */ // Returns an ascending list of positions of alignment patterns for this version number. // Each position is in the range [0,177), and are used on both the x and y axes. // This could be implemented as lookup table of 40 variable-length lists of integers. private getAlignmentPatternPositions(): int[] { - if (this.version == 1) return []; - - const numAlign: int = Math.floor(this.version / 7) + 2; - const step: int = - this.version == 32 ? 26 : Math.ceil((this.version * 4 + 4) / (numAlign * 2 - 2)) * 2; - const result: int[] = [6]; - for (let pos = this.size - 7; result.length < numAlign; pos -= step) result.splice(1, 0, pos); - return result; - + if (this.version == 1) return [] + + const numAlign: int = Math.floor(this.version / 7) + 2 + const step: int + = this.version == 32 ? 26 : Math.ceil((this.version * 4 + 4) / (numAlign * 2 - 2)) * 2 + const result: int[] = [6] + for (let pos = this.size - 7; result.length < numAlign; pos -= step) result.splice(1, 0, pos) + return result } // Returns the number of data bits that can be stored in a QR Code of the given version number, after @@ -542,15 +543,15 @@ export class QrCode { // The result is in the range [208, 29648]. This could be implemented as a 40-entry lookup table. private static getNumRawDataModules(ver: int): int { if (ver < QrCode.MIN_VERSION || ver > QrCode.MAX_VERSION) - throw new RangeError('Version number out of range'); - let result: int = (16 * ver + 128) * ver + 64; + throw new RangeError('Version number out of range') + let result: int = (16 * ver + 128) * ver + 64 if (ver >= 2) { - const numAlign: int = Math.floor(ver / 7) + 2; - result -= (25 * numAlign - 10) * numAlign - 55; - if (ver >= 7) result -= 36; + const numAlign: int = Math.floor(ver / 7) + 2 + result -= (25 * numAlign - 10) * numAlign - 55 + if (ver >= 7) result -= 36 } - assert(208 <= result && result <= 29648); - return result; + assert(result >= 208 && result <= 29648) + return result } // Returns the number of 8-bit data (i.e. not error correction) codewords contained in any @@ -558,185 +559,498 @@ export class QrCode { // This stateless pure function could be implemented as a (40*4)-cell lookup table. private static getNumDataCodewords(ver: int, ecl: QrCodeEcc): int { return ( - Math.floor(QrCode.getNumRawDataModules(ver) / 8) - - QrCode.ECC_CODEWORDS_PER_BLOCK[ecl.ordinal][ver] * - QrCode.NUM_ERROR_CORRECTION_BLOCKS[ecl.ordinal][ver] - ); + Math.floor(QrCode.getNumRawDataModules(ver) / 8) + - QrCode.ECC_CODEWORDS_PER_BLOCK[ecl.ordinal][ver] + * QrCode.NUM_ERROR_CORRECTION_BLOCKS[ecl.ordinal][ver] + ) } // Returns a Reed-Solomon ECC generator polynomial for the given degree. This could be // implemented as a lookup table over all possible parameter values, instead of as an algorithm. private static reedSolomonComputeDivisor(degree: int): byte[] { - if (degree < 1 || degree > 255) throw new RangeError('Degree out of range'); + if (degree < 1 || degree > 255) throw new RangeError('Degree out of range') // Polynomial coefficients are stored from highest to lowest power, excluding the leading term which is always 1. // For example the polynomial x^3 + 255x^2 + 8x + 93 is stored as the uint8 array [255, 8, 93]. - const result: byte[] = []; - for (let i = 0; i < degree - 1; i++) result.push(0); - result.push(1); // Start off with the monomial x^0 + const result: byte[] = [] + for (let i = 0; i < degree - 1; i++) result.push(0) + result.push(1) // Start off with the monomial x^0 // Compute the product polynomial (x - r^0) * (x - r^1) * (x - r^2) * ... * (x - r^{degree-1}), // and drop the highest monomial term which is always 1x^degree. // Note that r = 0x02, which is a generator element of this field GF(2^8/0x11D). - let root = 1; + let root = 1 for (let i = 0; i < degree; i++) { // Multiply the current product by (x - r^i) for (let j = 0; j < result.length; j++) { - result[j] = QrCode.reedSolomonMultiply(result[j], root); - if (j + 1 < result.length) result[j] ^= result[j + 1]; + result[j] = QrCode.reedSolomonMultiply(result[j], root) + if (j + 1 < result.length) result[j] ^= result[j + 1] } - root = QrCode.reedSolomonMultiply(root, 0x02); + root = QrCode.reedSolomonMultiply(root, 0x02) } - return result; + return result } // Returns the Reed-Solomon error correction codeword for the given data and divisor polynomials. private static reedSolomonComputeRemainder( - data: Readonly, - divisor: Readonly + data: readonly byte[], + divisor: readonly byte[], ): byte[] { - const result: byte[] = divisor.map((_) => 0); + const result: byte[] = divisor.map(_ => 0) for (const b of data) { // Polynomial division - const factor: byte = b ^ (result.shift() as byte); - result.push(0); - divisor.forEach((coef, i) => (result[i] ^= QrCode.reedSolomonMultiply(coef, factor))); + const factor: byte = b ^ (result.shift() as byte) + result.push(0) + divisor.forEach((coef, i) => (result[i] ^= QrCode.reedSolomonMultiply(coef, factor))) } - return result; + return result } // Returns the product of the two given field elements modulo GF(2^8/0x11D). The arguments and result // are unsigned 8-bit integers. This could be implemented as a lookup table of 256*256 entries of uint8. private static reedSolomonMultiply(x: byte, y: byte): byte { - if (x >>> 8 != 0 || y >>> 8 != 0) throw new RangeError('Byte out of range'); + if (x >>> 8 != 0 || y >>> 8 != 0) throw new RangeError('Byte out of range') // Russian peasant multiplication - let z: int = 0; + let z: int = 0 for (let i = 7; i >= 0; i--) { - z = (z << 1) ^ ((z >>> 7) * 0x11d); - z ^= ((y >>> i) & 1) * x; + z = (z << 1) ^ ((z >>> 7) * 0x11D) + z ^= ((y >>> i) & 1) * x } - assert(z >>> 8 == 0); - return z as byte; + assert(z >>> 8 == 0) + return z as byte } // Can only be called immediately after a light run is added, and // returns either 0, 1, or 2. A helper function for getPenaltyScore(). - private finderPenaltyCountPatterns(runHistory: Readonly): int { - const n: int = runHistory[1]; - assert(n <= this.size * 3); - const core: boolean = - n > 0 && - runHistory[2] == n && - runHistory[3] == n * 3 && - runHistory[4] == n && - runHistory[5] == n; + private finderPenaltyCountPatterns(runHistory: readonly int[]): int { + // eslint-disable-next-line prefer-destructuring + const n: int = runHistory[1] + assert(n <= this.size * 3) + const core: boolean + = n > 0 + && runHistory[2] == n + && runHistory[3] == n * 3 + && runHistory[4] == n + && runHistory[5] == n return ( - (core && runHistory[0] >= n * 4 && runHistory[6] >= n ? 1 : 0) + - (core && runHistory[6] >= n * 4 && runHistory[0] >= n ? 1 : 0) - ); + (core && runHistory[0] >= n * 4 && runHistory[6] >= n ? 1 : 0) + + (core && runHistory[6] >= n * 4 && runHistory[0] >= n ? 1 : 0) + ) } // Must be called at the end of a line (row or column) of modules. A helper function for getPenaltyScore(). private finderPenaltyTerminateAndCount( currentRunColor: boolean, currentRunLength: int, - runHistory: int[] + runHistory: int[], ): int { if (currentRunColor) { // Terminate dark run - this.finderPenaltyAddHistory(currentRunLength, runHistory); - currentRunLength = 0; + this.finderPenaltyAddHistory(currentRunLength, runHistory) + currentRunLength = 0 } - currentRunLength += this.size; // Add light border to final run - this.finderPenaltyAddHistory(currentRunLength, runHistory); - return this.finderPenaltyCountPatterns(runHistory); + currentRunLength += this.size // Add light border to final run + this.finderPenaltyAddHistory(currentRunLength, runHistory) + return this.finderPenaltyCountPatterns(runHistory) } // Pushes the given value to the front and drops the last value. A helper function for getPenaltyScore(). private finderPenaltyAddHistory(currentRunLength: int, runHistory: int[]): void { - if (runHistory[0] == 0) currentRunLength += this.size; // Add light border to initial run - runHistory.pop(); - runHistory.unshift(currentRunLength); + if (runHistory[0] == 0) currentRunLength += this.size // Add light border to initial run + runHistory.pop() + runHistory.unshift(currentRunLength) } - /*-- Constants and tables --*/ + /* -- Constants and tables -- */ // The minimum version number supported in the QR Code Model 2 standard. - public static readonly MIN_VERSION: int = 1; + public static readonly MIN_VERSION: int = 1 // The maximum version number supported in the QR Code Model 2 standard. - public static readonly MAX_VERSION: int = 40; + public static readonly MAX_VERSION: int = 40 // For use in getPenaltyScore(), when evaluating which mask is best. - private static readonly PENALTY_N1: int = 3; - private static readonly PENALTY_N2: int = 3; - private static readonly PENALTY_N3: int = 40; - private static readonly PENALTY_N4: int = 10; + private static readonly PENALTY_N1: int = 3 + private static readonly PENALTY_N2: int = 3 + private static readonly PENALTY_N3: int = 40 + private static readonly PENALTY_N4: int = 10 private static readonly ECC_CODEWORDS_PER_BLOCK: int[][] = [ // Version: (note that index 0 is for padding, and is set to an illegal value) - //0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40 Error correction level + // 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40 Error correction level [ - -1, 7, 10, 15, 20, 26, 18, 20, 24, 30, 18, 20, 24, 26, 30, 22, 24, 28, 30, 28, 28, 28, 28, 30, - 30, 26, 28, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, + -1, + 7, + 10, + 15, + 20, + 26, + 18, + 20, + 24, + 30, + 18, + 20, + 24, + 26, + 30, + 22, + 24, + 28, + 30, + 28, + 28, + 28, + 28, + 30, + 30, + 26, + 28, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, ], // Low [ - -1, 10, 16, 26, 18, 24, 16, 18, 22, 22, 26, 30, 22, 22, 24, 24, 28, 28, 26, 26, 26, 26, 28, - 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, + -1, + 10, + 16, + 26, + 18, + 24, + 16, + 18, + 22, + 22, + 26, + 30, + 22, + 22, + 24, + 24, + 28, + 28, + 26, + 26, + 26, + 26, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, ], // Medium [ - -1, 13, 22, 18, 26, 18, 24, 18, 22, 20, 24, 28, 26, 24, 20, 30, 24, 28, 28, 26, 30, 28, 30, - 30, 30, 30, 28, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, + -1, + 13, + 22, + 18, + 26, + 18, + 24, + 18, + 22, + 20, + 24, + 28, + 26, + 24, + 20, + 30, + 24, + 28, + 28, + 26, + 30, + 28, + 30, + 30, + 30, + 30, + 28, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, ], // Quartile [ - -1, 17, 28, 22, 16, 22, 28, 26, 26, 24, 28, 24, 28, 22, 24, 24, 30, 28, 28, 26, 28, 30, 24, - 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, + -1, + 17, + 28, + 22, + 16, + 22, + 28, + 26, + 26, + 24, + 28, + 24, + 28, + 22, + 24, + 24, + 30, + 28, + 28, + 26, + 28, + 30, + 24, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, ], // High - ]; + ] private static readonly NUM_ERROR_CORRECTION_BLOCKS: int[][] = [ // Version: (note that index 0 is for padding, and is set to an illegal value) - //0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40 Error correction level + // 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40 Error correction level [ - -1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 4, 4, 4, 4, 4, 6, 6, 6, 6, 7, 8, 8, 9, 9, 10, 12, 12, 12, 13, - 14, 15, 16, 17, 18, 19, 19, 20, 21, 22, 24, 25, + -1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 4, + 4, + 4, + 4, + 4, + 6, + 6, + 6, + 6, + 7, + 8, + 8, + 9, + 9, + 10, + 12, + 12, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 19, + 20, + 21, + 22, + 24, + 25, ], // Low [ - -1, 1, 1, 1, 2, 2, 4, 4, 4, 5, 5, 5, 8, 9, 9, 10, 10, 11, 13, 14, 16, 17, 17, 18, 20, 21, 23, - 25, 26, 28, 29, 31, 33, 35, 37, 38, 40, 43, 45, 47, 49, + -1, + 1, + 1, + 1, + 2, + 2, + 4, + 4, + 4, + 5, + 5, + 5, + 8, + 9, + 9, + 10, + 10, + 11, + 13, + 14, + 16, + 17, + 17, + 18, + 20, + 21, + 23, + 25, + 26, + 28, + 29, + 31, + 33, + 35, + 37, + 38, + 40, + 43, + 45, + 47, + 49, ], // Medium [ - -1, 1, 1, 2, 2, 4, 4, 6, 6, 8, 8, 8, 10, 12, 16, 12, 17, 16, 18, 21, 20, 23, 23, 25, 27, 29, - 34, 34, 35, 38, 40, 43, 45, 48, 51, 53, 56, 59, 62, 65, 68, + -1, + 1, + 1, + 2, + 2, + 4, + 4, + 6, + 6, + 8, + 8, + 8, + 10, + 12, + 16, + 12, + 17, + 16, + 18, + 21, + 20, + 23, + 23, + 25, + 27, + 29, + 34, + 34, + 35, + 38, + 40, + 43, + 45, + 48, + 51, + 53, + 56, + 59, + 62, + 65, + 68, ], // Quartile [ - -1, 1, 1, 2, 4, 4, 4, 5, 6, 8, 8, 11, 11, 16, 16, 18, 16, 19, 21, 25, 25, 25, 34, 30, 32, 35, - 37, 40, 42, 45, 48, 51, 54, 57, 60, 63, 66, 70, 74, 77, 81, + -1, + 1, + 1, + 2, + 4, + 4, + 4, + 5, + 6, + 8, + 8, + 11, + 11, + 16, + 16, + 18, + 16, + 19, + 21, + 25, + 25, + 25, + 34, + 30, + 32, + 35, + 37, + 40, + 42, + 45, + 48, + 51, + 54, + 57, + 60, + 63, + 66, + 70, + 74, + 77, + 81, ], // High - ]; + ] } // Appends the given number of low-order bits of the given value // to the given buffer. Requires 0 <= len <= 31 and 0 <= val < 2^len. function appendBits(val: int, len: int, bb: bit[]): void { - if (len < 0 || len > 31 || val >>> len != 0) throw new RangeError('Value out of range'); + if (len < 0 || len > 31 || val >>> len != 0) throw new RangeError('Value out of range') for ( let i = len - 1; i >= 0; i-- // Append bit by bit ) - bb.push((val >>> i) & 1); + bb.push((val >>> i) & 1) } // Returns true iff the i'th bit of x is set to 1. function getBit(x: int, i: int): boolean { - return ((x >>> i) & 1) != 0; + return ((x >>> i) & 1) != 0 } // Throws an exception if the given condition is false. function assert(cond: boolean): void { - if (!cond) throw new Error('Assertion error'); + if (!cond) throw new Error('Assertion error') } -/*---- Data segment class ----*/ +/* ---- Data segment class ---- */ /* * A segment of character/binary/control data in a QR Code symbol. @@ -750,29 +1064,29 @@ function assert(cond: boolean): void { * Any segment longer than this is meaningless for the purpose of generating QR Codes. */ export class QrSegment { - /*-- Static factory functions (mid level) --*/ + /* -- Static factory functions (mid level) -- */ // Returns a segment representing the given binary data encoded in // byte mode. All input byte arrays are acceptable. Any text string // can be converted to UTF-8 bytes and encoded as a byte mode segment. - public static makeBytes(data: Readonly): QrSegment { - const bb: bit[] = []; - for (const b of data) appendBits(b, 8, bb); - return new QrSegment(QrSegmentMode.BYTE, data.length, bb); + public static makeBytes(data: readonly byte[]): QrSegment { + const bb: bit[] = [] + for (const b of data) appendBits(b, 8, bb) + return new QrSegment(QrSegmentMode.BYTE, data.length, bb) } // Returns a segment representing the given string of decimal digits encoded in numeric mode. public static makeNumeric(digits: string): QrSegment { if (!QrSegment.isNumeric(digits)) - throw new RangeError('String contains non-numeric characters'); - const bb: bit[] = []; - for (let i = 0; i < digits.length; ) { + throw new RangeError('String contains non-numeric characters') + const bb: bit[] = [] + for (let i = 0; i < digits.length;) { // Consume up to 3 digits per iteration - const n: int = Math.min(digits.length - i, 3); - appendBits(parseInt(digits.substr(i, n), 10), n * 3 + 1, bb); - i += n; + const n: int = Math.min(digits.length - i, 3) + appendBits(Number.parseInt(digits.substr(i, n), 10), n * 3 + 1, bb) + i += n } - return new QrSegment(QrSegmentMode.NUMERIC, digits.length, bb); + return new QrSegment(QrSegmentMode.NUMERIC, digits.length, bb) } // Returns a segment representing the given text string encoded in alphanumeric mode. @@ -780,61 +1094,63 @@ export class QrSegment { // dollar, percent, asterisk, plus, hyphen, period, slash, colon. public static makeAlphanumeric(text: string): QrSegment { if (!QrSegment.isAlphanumeric(text)) - throw new RangeError('String contains unencodable characters in alphanumeric mode'); - const bb: bit[] = []; - let i: int; + throw new RangeError('String contains unencodable characters in alphanumeric mode') + const bb: bit[] = [] + let i: int for (i = 0; i + 2 <= text.length; i += 2) { // Process groups of 2 - let temp: int = QrSegment.ALPHANUMERIC_CHARSET.indexOf(text.charAt(i)) * 45; - temp += QrSegment.ALPHANUMERIC_CHARSET.indexOf(text.charAt(i + 1)); - appendBits(temp, 11, bb); + let temp: int = QrSegment.ALPHANUMERIC_CHARSET.indexOf(text.charAt(i)) * 45 + temp += QrSegment.ALPHANUMERIC_CHARSET.indexOf(text.charAt(i + 1)) + appendBits(temp, 11, bb) } if (i < text.length) // 1 character remaining - appendBits(QrSegment.ALPHANUMERIC_CHARSET.indexOf(text.charAt(i)), 6, bb); - return new QrSegment(QrSegmentMode.ALPHANUMERIC, text.length, bb); + appendBits(QrSegment.ALPHANUMERIC_CHARSET.indexOf(text.charAt(i)), 6, bb) + return new QrSegment(QrSegmentMode.ALPHANUMERIC, text.length, bb) } // Returns a new mutable list of zero or more segments to represent the given Unicode text string. // The result may use various segment modes and switch modes to optimize the length of the bit stream. public static makeSegments(text: string): QrSegment[] { // Select the most efficient segment encoding automatically - if (text == '') return []; - else if (QrSegment.isNumeric(text)) return [QrSegment.makeNumeric(text)]; - else if (QrSegment.isAlphanumeric(text)) return [QrSegment.makeAlphanumeric(text)]; - return [QrSegment.makeBytes(QrSegment.toUtf8ByteArray(text))]; + if (text == '') return [] + else if (QrSegment.isNumeric(text)) return [QrSegment.makeNumeric(text)] + else if (QrSegment.isAlphanumeric(text)) return [QrSegment.makeAlphanumeric(text)] + return [QrSegment.makeBytes(QrSegment.toUtf8ByteArray(text))] } // Returns a segment representing an Extended Channel Interpretation // (ECI) designator with the given assignment value. public static makeEci(assignVal: int): QrSegment { - const bb: bit[] = []; - if (assignVal < 0) {throw new RangeError('ECI assignment value out of range');} - else if (assignVal < 1 << 7) {appendBits(assignVal, 8, bb);} - else if (assignVal < 1 << 14) { - appendBits(0b10, 2, bb); - appendBits(assignVal, 14, bb); + const bb: bit[] = [] + if (assignVal < 0) { + throw new RangeError('ECI assignment value out of range') + } else if (assignVal < 1 << 7) { + appendBits(assignVal, 8, bb) + } else if (assignVal < 1 << 14) { + appendBits(0b10, 2, bb) + appendBits(assignVal, 14, bb) } else if (assignVal < 1000000) { - appendBits(0b110, 3, bb); - appendBits(assignVal, 21, bb); - } else {throw new RangeError('ECI assignment value out of range');} - return new QrSegment(QrSegmentMode.ECI, 0, bb); + appendBits(0b110, 3, bb) + appendBits(assignVal, 21, bb) + } else { throw new RangeError('ECI assignment value out of range') } + return new QrSegment(QrSegmentMode.ECI, 0, bb) } // Tests whether the given string can be encoded as a segment in numeric mode. // A string is encodable iff each character is in the range 0 to 9. public static isNumeric(text: string): boolean { - return QrSegment.NUMERIC_REGEX.test(text); + return QrSegment.NUMERIC_REGEX.test(text) } // Tests whether the given string can be encoded as a segment in alphanumeric mode. // A string is encodable iff each character is in the following set: 0 to 9, A to Z // (uppercase only), space, dollar, percent, asterisk, plus, hyphen, period, slash, colon. public static isAlphanumeric(text: string): boolean { - return QrSegment.ALPHANUMERIC_REGEX.test(text); + return QrSegment.ALPHANUMERIC_REGEX.test(text) } - /*-- Constructor (low level) and fields --*/ + /* -- Constructor (low level) and fields -- */ // Creates a new QR Code segment with the given attributes and data. // The character count (numChars) must agree with the mode and the bit buffer length, @@ -849,79 +1165,80 @@ export class QrSegment { public readonly numChars: int, // The data bits of this segment. Accessed through getData(). - private readonly bitData: bit[] + private readonly bitData: bit[], ) { - if (numChars < 0) throw new RangeError('Invalid argument'); - this.bitData = bitData.slice(); // Make defensive copy + if (numChars < 0) throw new RangeError('Invalid argument') + this.bitData = bitData.slice() // Make defensive copy } - /*-- Methods --*/ + /* -- Methods -- */ // Returns a new copy of the data bits of this segment. public getData(): bit[] { - return this.bitData.slice(); // Make defensive copy + return this.bitData.slice() // Make defensive copy } // (Package-private) Calculates and returns the number of bits needed to encode the given segments at // the given version. The result is infinity if a segment has too many characters to fit its length field. - public static getTotalBits(segs: Readonly, version: int): number { - let result = 0; + public static getTotalBits(segs: readonly QrSegment[], version: int): number { + let result = 0 for (const seg of segs) { - const ccbits: int = seg.mode.numCharCountBits(version); - if (seg.numChars >= 1 << ccbits) return Infinity; // The segment's length doesn't fit the field's bit width - result += 4 + ccbits + seg.bitData.length; + const ccbits: int = seg.mode.numCharCountBits(version) + if (seg.numChars >= 1 << ccbits) return Infinity // The segment's length doesn't fit the field's bit width + result += 4 + ccbits + seg.bitData.length } - return result; + return result } // Returns a new array of bytes representing the given string encoded in UTF-8. private static toUtf8ByteArray(str: string): byte[] { - str = encodeURI(str); - const result: byte[] = []; + str = encodeURI(str) + const result: byte[] = [] for (let i = 0; i < str.length; i++) { - if (str.charAt(i) != '%') {result.push(str.charCodeAt(i));} - else { - result.push(parseInt(str.substr(i + 1, 2), 16)); - i += 2; + if (str.charAt(i) != '%') { + result.push(str.charCodeAt(i)) + } else { + result.push(Number.parseInt(str.substr(i + 1, 2), 16)) + i += 2 } } - return result; + return result } - /*-- Constants --*/ + /* -- Constants -- */ // Describes precisely all strings that are encodable in numeric mode. - private static readonly NUMERIC_REGEX: RegExp = /^[0-9]*$/; + private static readonly NUMERIC_REGEX: RegExp = /^\d*$/ // Describes precisely all strings that are encodable in alphanumeric mode. - private static readonly ALPHANUMERIC_REGEX: RegExp = /^[A-Z0-9 $%*+./:-]*$/; + private static readonly ALPHANUMERIC_REGEX: RegExp = /^[A-Z0-9 $%*+./:-]*$/ // The set of all legal characters in alphanumeric mode, // where each character value maps to the index in the string. - private static readonly ALPHANUMERIC_CHARSET: string = - '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:'; + private static readonly ALPHANUMERIC_CHARSET: string + = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:' } -/*---- Public helper enumeration ----*/ +/* ---- Public helper enumeration ---- */ /* * The error correction level in a QR Code symbol. Immutable. */ export class QrCodeEcc { - /*-- Constants --*/ + /* -- Constants -- */ - public static readonly LOW = new QrCodeEcc(0, 1); // The QR Code can tolerate about 7% erroneous codewords - public static readonly MEDIUM = new QrCodeEcc(1, 0); // The QR Code can tolerate about 15% erroneous codewords - public static readonly QUARTILE = new QrCodeEcc(2, 3); // The QR Code can tolerate about 25% erroneous codewords - public static readonly HIGH = new QrCodeEcc(3, 2); // The QR Code can tolerate about 30% erroneous codewords + public static readonly LOW = new QrCodeEcc(0, 1) // The QR Code can tolerate about 7% erroneous codewords + public static readonly MEDIUM = new QrCodeEcc(1, 0) // The QR Code can tolerate about 15% erroneous codewords + public static readonly QUARTILE = new QrCodeEcc(2, 3) // The QR Code can tolerate about 25% erroneous codewords + public static readonly HIGH = new QrCodeEcc(3, 2) // The QR Code can tolerate about 30% erroneous codewords - /*-- Constructor and fields --*/ + /* -- Constructor and fields -- */ private constructor( // In the range 0 to 3 (unsigned 2-bit integer). public readonly ordinal: int, // (Package-private) In the range 0 to 3 (unsigned 2-bit integer). - public readonly formatBits: int + public readonly formatBits: int, ) {} } @@ -929,28 +1246,28 @@ export class QrCodeEcc { * Describes how a segment's data bits are interpreted. Immutable. */ export class QrSegmentMode { - /*-- Constants --*/ + /* -- Constants -- */ - public static readonly NUMERIC = new QrSegmentMode(0x1, [10, 12, 14]); - public static readonly ALPHANUMERIC = new QrSegmentMode(0x2, [9, 11, 13]); - public static readonly BYTE = new QrSegmentMode(0x4, [8, 16, 16]); - public static readonly KANJI = new QrSegmentMode(0x8, [8, 10, 12]); - public static readonly ECI = new QrSegmentMode(0x7, [0, 0, 0]); + public static readonly NUMERIC = new QrSegmentMode(0x1, [10, 12, 14]) + public static readonly ALPHANUMERIC = new QrSegmentMode(0x2, [9, 11, 13]) + public static readonly BYTE = new QrSegmentMode(0x4, [8, 16, 16]) + public static readonly KANJI = new QrSegmentMode(0x8, [8, 10, 12]) + public static readonly ECI = new QrSegmentMode(0x7, [0, 0, 0]) - /*-- Constructor and fields --*/ + /* -- Constructor and fields -- */ private constructor( // The mode indicator bits, which is a uint4 value (range 0 to 15). public readonly modeBits: int, // Number of character count bits for three different version ranges. - private readonly numBitsCharCount: [int, int, int] + private readonly numBitsCharCount: [int, int, int], ) {} - /*-- Method --*/ + /* -- Method -- */ // (Package-private) Returns the bit width of the character count field for a segment in // this mode in a QR Code at the given version number. The result is in the range [0, 16]. public numCharCountBits(ver: int): int { - return this.numBitsCharCount[Math.floor((ver + 7) / 17)]; + return this.numBitsCharCount[Math.floor((ver + 7) / 17)] } } diff --git a/packages/site/src/routes/[dictionaryId]/entries/print/truncateAuthors.test.ts b/packages/site/src/routes/[dictionaryId]/entries-algolia/print/truncateAuthors.test.ts similarity index 100% rename from packages/site/src/routes/[dictionaryId]/entries/print/truncateAuthors.test.ts rename to packages/site/src/routes/[dictionaryId]/entries-algolia/print/truncateAuthors.test.ts diff --git a/packages/site/src/routes/[dictionaryId]/entries/print/truncateAuthors.ts b/packages/site/src/routes/[dictionaryId]/entries-algolia/print/truncateAuthors.ts similarity index 100% rename from packages/site/src/routes/[dictionaryId]/entries/print/truncateAuthors.ts rename to packages/site/src/routes/[dictionaryId]/entries-algolia/print/truncateAuthors.ts diff --git a/packages/site/src/routes/[dictionaryId]/entries/table/+page.svelte b/packages/site/src/routes/[dictionaryId]/entries-algolia/table/+page.svelte similarity index 72% rename from packages/site/src/routes/[dictionaryId]/entries/table/+page.svelte rename to packages/site/src/routes/[dictionaryId]/entries-algolia/table/+page.svelte index ed52a602f..c241aa32e 100644 --- a/packages/site/src/routes/[dictionaryId]/entries/table/+page.svelte +++ b/packages/site/src/routes/[dictionaryId]/entries-algolia/table/+page.svelte @@ -1,21 +1,21 @@ @@ -47,8 +47,8 @@ path="dictionaries/{$dictionary.id}/words/{algoliaEntry.id}" startWith={algoliaEntry} on:data={({ detail: { data: entry } }) => { - const index = $entries.findIndex(({id}) => id === entry.id); - if (index > -1) $entries[index] = entry; + const index = $entries.findIndex(({ id }) => id === entry.id) + if (index > -1) $entries[index] = entry }} /> {/each} {/if} diff --git a/packages/site/src/routes/[dictionaryId]/entries/table/Cell.svelte b/packages/site/src/routes/[dictionaryId]/entries-algolia/table/Cell.svelte similarity index 98% rename from packages/site/src/routes/[dictionaryId]/entries/table/Cell.svelte rename to packages/site/src/routes/[dictionaryId]/entries-algolia/table/Cell.svelte index b09addc2d..e8eecb35e 100644 --- a/packages/site/src/routes/[dictionaryId]/entries/table/Cell.svelte +++ b/packages/site/src/routes/[dictionaryId]/entries-algolia/table/Cell.svelte @@ -1,6 +1,6 @@

- {$page.data.t('entry.filters')} -

- - - -
- {#if result_facets._parts_of_speech.count} - - {/if} - {#if result_facets._semantic_domains.count} - - {/if} - {#if result_facets._dialects.count} - - {/if} - {#if result_facets._speakers.count} - { - acc[speaker.id] = speaker.displayName - return acc - }, {})} - label={$page.data.t('entry_field.speaker')} /> - {/if} -
- - {#if $search_params.view !== 'gallery'} - {#if result_facets.has_image?.values.true} - - {/if} - {#if result_facets.has_image?.values.false} - - {/if} - {/if} - {#if result_facets.has_audio?.values.true} - - {/if} - {#if result_facets.has_audio?.values.false} - - {/if} - {#if result_facets.has_video?.values.true} - - {/if} - - - {#if result_facets.has_speaker?.values.true} - - {/if} - {#if result_facets.has_speaker?.values.false} - - {/if} - {#if result_facets.has_noun_class?.values.true} - - {/if} - {#if result_facets.has_noun_class?.values.false} - - {/if} - {#if result_facets.has_plural_form?.values.true} - - {/if} - {#if result_facets.has_plural_form?.values.false} - - {/if} - {#if result_facets.has_part_of_speech?.values.true} - - {/if} - {#if result_facets.has_part_of_speech?.values.false} - - {/if} - {#if result_facets.has_semantic_domain?.values.true} - - {/if} - {#if result_facets.has_semantic_domain?.values.false} - - {/if} -
- {/if} - - diff --git a/packages/site/src/routes/[dictionaryId]/entries-local/+page.svelte b/packages/site/src/routes/[dictionaryId]/entries/+page.svelte similarity index 100% rename from packages/site/src/routes/[dictionaryId]/entries-local/+page.svelte rename to packages/site/src/routes/[dictionaryId]/entries/+page.svelte diff --git a/packages/site/src/routes/[dictionaryId]/entries-local/+page.ts b/packages/site/src/routes/[dictionaryId]/entries/+page.ts similarity index 100% rename from packages/site/src/routes/[dictionaryId]/entries-local/+page.ts rename to packages/site/src/routes/[dictionaryId]/entries/+page.ts diff --git a/packages/site/src/routes/[dictionaryId]/entries-local/ClearFilters.svelte b/packages/site/src/routes/[dictionaryId]/entries/ClearFilters.svelte similarity index 59% rename from packages/site/src/routes/[dictionaryId]/entries-local/ClearFilters.svelte rename to packages/site/src/routes/[dictionaryId]/entries/ClearFilters.svelte index 1dfe8441a..6f8b8c345 100644 --- a/packages/site/src/routes/[dictionaryId]/entries-local/ClearFilters.svelte +++ b/packages/site/src/routes/[dictionaryId]/entries/ClearFilters.svelte @@ -1,12 +1,12 @@ diff --git a/packages/site/src/routes/[dictionaryId]/entries-local/EntriesGallery.svelte b/packages/site/src/routes/[dictionaryId]/entries/EntriesGallery.svelte similarity index 73% rename from packages/site/src/routes/[dictionaryId]/entries-local/EntriesGallery.svelte rename to packages/site/src/routes/[dictionaryId]/entries/EntriesGallery.svelte index 51d499e6d..e795c3291 100644 --- a/packages/site/src/routes/[dictionaryId]/entries-local/EntriesGallery.svelte +++ b/packages/site/src/routes/[dictionaryId]/entries/EntriesGallery.svelte @@ -1,9 +1,9 @@ + showWidth="md" + open={show_mobile_filters} + {on_close}>
-
-

- {$page.data.t('entry.filters')} -

- - -
-
- - - - -
+ class="md:w-52 md:sticky md:top-24 h-100vh h-100dvh! md:max-h-[calc(100vh-107px)] print:hidden p-4 pl-3 md:p-0 flex flex-col"> + {#if result_facets} +
+

+ {$page.data.t('entry.filters')} +

+ + +
+
+ {#if result_facets._parts_of_speech.count} + + {/if} + {#if result_facets._semantic_domains.count} + + {/if} + {#if result_facets._dialects.count} + + {/if} + {#if result_facets._speakers.count} + { + acc[speaker.id] = speaker.displayName + return acc + }, {})} + label={$page.data.t('entry_field.speaker')} /> + {/if} +
- - {#if show_negatives} - {#if !$page.url.pathname.includes('gallery')} - + {#if $search_params.view !== 'gallery'} + {#if result_facets.has_image?.values.true} + {/if} - - - - - - - {:else} - {#if !$page.url.pathname.includes('gallery')} - + {#if result_facets.has_image?.values.false} + {/if} - - - - - - {/if} - - {#if $is_manager} - - {/if} - -
- - Search by Algolia - + {#if result_facets.has_audio?.values.true} + + {/if} + {#if result_facets.has_audio?.values.false} + + {/if} + {#if result_facets.has_video?.values.true} + + {/if} + + + {#if result_facets.has_speaker?.values.true} + + {/if} + {#if result_facets.has_speaker?.values.false} + + {/if} + {#if result_facets.has_noun_class?.values.true} + + {/if} + {#if result_facets.has_noun_class?.values.false} + + {/if} + {#if result_facets.has_plural_form?.values.true} + + {/if} + {#if result_facets.has_plural_form?.values.false} + + {/if} + {#if result_facets.has_part_of_speech?.values.true} + + {/if} + {#if result_facets.has_part_of_speech?.values.false} + + {/if} + {#if result_facets.has_semantic_domain?.values.true} + + {/if} + {#if result_facets.has_semantic_domain?.values.false} + + {/if} +
+ {/if}
diff --git a/packages/site/src/routes/[dictionaryId]/entries-local/FilterList.svelte b/packages/site/src/routes/[dictionaryId]/entries/FilterList.svelte similarity index 100% rename from packages/site/src/routes/[dictionaryId]/entries-local/FilterList.svelte rename to packages/site/src/routes/[dictionaryId]/entries/FilterList.svelte diff --git a/packages/site/src/routes/[dictionaryId]/entries-local/FilterList.variants.ts b/packages/site/src/routes/[dictionaryId]/entries/FilterList.variants.ts similarity index 100% rename from packages/site/src/routes/[dictionaryId]/entries-local/FilterList.variants.ts rename to packages/site/src/routes/[dictionaryId]/entries/FilterList.variants.ts diff --git a/packages/site/src/routes/[dictionaryId]/entries-local/Pagination.svelte b/packages/site/src/routes/[dictionaryId]/entries/Pagination.svelte similarity index 87% rename from packages/site/src/routes/[dictionaryId]/entries-local/Pagination.svelte rename to packages/site/src/routes/[dictionaryId]/entries/Pagination.svelte index 277c67a61..ce833bb9d 100644 --- a/packages/site/src/routes/[dictionaryId]/entries-local/Pagination.svelte +++ b/packages/site/src/routes/[dictionaryId]/entries/Pagination.svelte @@ -1,6 +1,6 @@ diff --git a/packages/site/src/routes/[dictionaryId]/entries-local/SwitchView.svelte b/packages/site/src/routes/[dictionaryId]/entries/SwitchView.svelte similarity index 94% rename from packages/site/src/routes/[dictionaryId]/entries-local/SwitchView.svelte rename to packages/site/src/routes/[dictionaryId]/entries/SwitchView.svelte index 5ee8ecc4d..93a8bf4d9 100644 --- a/packages/site/src/routes/[dictionaryId]/entries-local/SwitchView.svelte +++ b/packages/site/src/routes/[dictionaryId]/entries/SwitchView.svelte @@ -1,6 +1,6 @@ - -
- -
- - diff --git a/packages/site/src/routes/[dictionaryId]/entry/[entryId]/EntryMedia.svelte b/packages/site/src/routes/[dictionaryId]/entry/[entryId]/EntryMedia.svelte index 39a3ff350..5690c0103 100644 --- a/packages/site/src/routes/[dictionaryId]/entry/[entryId]/EntryMedia.svelte +++ b/packages/site/src/routes/[dictionaryId]/entry/[entryId]/EntryMedia.svelte @@ -1,7 +1,7 @@ - + {display} diff --git a/packages/site/src/lib/components/search/PaginationButtons.svelte b/packages/site/src/lib/components/search/PaginationButtons.svelte index 4c212b62f..e83990dcf 100644 --- a/packages/site/src/lib/components/search/PaginationButtons.svelte +++ b/packages/site/src/lib/components/search/PaginationButtons.svelte @@ -70,11 +70,15 @@ { - if (event.key === 'j' && (isMac ? event.metaKey : event.ctrlKey)) { + const ctrl = isMac ? event.metaKey : event.ctrlKey + if (event.key === 'j' && ctrl) { event.preventDefault() const page = prompt('Go to page:') if (page) go_to_page(+page) } + // Requires way to keep keystrokes from spilling out of modal before using + // if (event.key === 'ArrowLeft' && event.altKey && current_page > 1) go_to_page(current_page - 1) + // if (event.key === 'ArrowRight' && event.altKey && current_page < pages) go_to_page(current_page + 1) }} /> diff --git a/packages/site/src/routes/[dictionaryId]/entries-algolia/list/+page.svelte b/packages/site/src/routes/[dictionaryId]/entries-algolia/list/+page.svelte deleted file mode 100644 index 028d57a64..000000000 --- a/packages/site/src/routes/[dictionaryId]/entries-algolia/list/+page.svelte +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - {#if $can_edit} - {#each entries as algoliaEntry (algoliaEntry.id)} - - 0} - can_edit={$can_edit} - {dbOperations} /> - - {/each} - {:else} - - {/if} - - - - diff --git a/packages/site/src/routes/[dictionaryId]/entries-algolia/print/+page.svelte b/packages/site/src/routes/[dictionaryId]/entries-algolia/print/+page.svelte deleted file mode 100644 index 5ef91aec2..000000000 --- a/packages/site/src/routes/[dictionaryId]/entries-algolia/print/+page.svelte +++ /dev/null @@ -1,156 +0,0 @@ - - -{#if $dictionary.printAccess || $can_edit} - -
-
- - -
- - - -
-
- - -
-
- - -
-
- - -
-
- - % -
- convert_and_expand_entry(entry, $page.data.t))} {preferredPrintFields} {showLabels} {showQrCode} /> -
-
- - - -
- - {#await Promise.all([load_partners(), load_citation()]) then [partners, citation]} -
- {build_citation({ t: $page.data.t, dictionary: $dictionary, custom_citation: truncateAuthors(citation?.citation), partners })} -
- {/await} -
-
- -{:else} -

Print view is only available to dictionary managers and contributors

-{/if} - - - diff --git a/packages/site/src/routes/[dictionaryId]/entries-algolia/table/+page.svelte b/packages/site/src/routes/[dictionaryId]/entries-algolia/table/+page.svelte deleted file mode 100644 index c241aa32e..000000000 --- a/packages/site/src/routes/[dictionaryId]/entries-algolia/table/+page.svelte +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - convert_and_expand_entry(entry, $page.data.t))} - preferred_table_columns={$preferred_table_columns} - dictionary={$dictionary} - can_edit={$can_edit} - {dbOperations} /> - - {#if $can_edit} - {#each algoliaEntries as algoliaEntry (algoliaEntry.id)} - { - const index = $entries.findIndex(({ id }) => id === entry.id) - if (index > -1) $entries[index] = entry - }} /> - {/each} - {/if} - - - - diff --git a/packages/site/src/routes/[dictionaryId]/entries/+page.svelte b/packages/site/src/routes/[dictionaryId]/entries/+page.svelte index 5a8895e66..db3bb7c2b 100644 --- a/packages/site/src/routes/[dictionaryId]/entries/+page.svelte +++ b/packages/site/src/routes/[dictionaryId]/entries/+page.svelte @@ -11,9 +11,10 @@ import type { QueryParams } from '$lib/search/types' import { page } from '$app/stores' import { convert_and_expand_entry } from '$lib/transformers/convert_and_expand_entry' + import SeoMetaTags from '$lib/components/SeoMetaTags.svelte' export let data - $: ({ entries, status, search_entries, default_entries_per_page, search_params, speakers, dictionary, can_edit, edited_entries, dbOperations } = data) + $: ({ entries, admin, status, search_entries, default_entries_per_page, search_params, speakers, dictionary, can_edit, edited_entries, dbOperations } = data) const page_entries = writable(null) @@ -105,3 +106,13 @@
+ + 0} + title="Entries" + dictionaryName={$dictionary.name} + gcsPath={$dictionary.featuredImage?.specifiable_image_url} + lng={$dictionary.coordinates?.longitude} + lat={$dictionary.coordinates?.latitude} + description="The entries in this Living Dictionary are displayed in a comprehensive list that visitors can easily browse by using the page tabs at the bottom of the screen, or search by using the powerful search bar located at the top of the page." + keywords="Endangered Languages, Language Documentation, Language Revitalization, Build a Dictionary, Online Dictionary, Digital Dictionary, Dictionary Software, Free Software, Online Dictionary Builder, Living Dictionaries, Living Dictionary, Edit a dictionary, Search a dictionary, Browse a dictionary, Explore a Dictionary" /> diff --git a/packages/site/src/lib/components/search/AddEntry.svelte b/packages/site/src/routes/[dictionaryId]/entries/AddEntry.svelte similarity index 79% rename from packages/site/src/lib/components/search/AddEntry.svelte rename to packages/site/src/routes/[dictionaryId]/entries/AddEntry.svelte index d5d37009c..250329f32 100644 --- a/packages/site/src/lib/components/search/AddEntry.svelte +++ b/packages/site/src/routes/[dictionaryId]/entries/AddEntry.svelte @@ -1,11 +1,11 @@ diff --git a/packages/site/src/routes/[dictionaryId]/entries/Pagination.svelte b/packages/site/src/routes/[dictionaryId]/entries/Pagination.svelte index d3861e881..52b44f6af 100644 --- a/packages/site/src/routes/[dictionaryId]/entries/Pagination.svelte +++ b/packages/site/src/routes/[dictionaryId]/entries/Pagination.svelte @@ -1,5 +1,5 @@ {#if can_edit} - {#await import('$lib/components/search/AddEntry.svelte') then { default: AddEntry }} + {#await import('./AddEntry.svelte') then { default: AddEntry }} {/await} {/if} @@ -26,7 +26,7 @@ {#if can_edit}
- {#await import('$lib/components/search/AddEntry.svelte') then { default: AddEntry }} + {#await import('./AddEntry.svelte') then { default: AddEntry }}