From 50ca6f6b89899b142b07772d32d499b6891712eb Mon Sep 17 00:00:00 2001 From: Miodec Date: Wed, 13 May 2026 10:08:34 +0200 Subject: [PATCH 1/5] chore: bump oxc --- backend/package.json | 4 +- frontend/package.json | 4 +- package.json | 6 +- packages/contracts/package.json | 4 +- packages/funbox/package.json | 4 +- packages/oxlint-config/rules/disabled.jsonc | 1 + packages/release/package.json | 4 +- packages/release/src/index.js | 14 +- packages/schemas/package.json | 4 +- packages/tsup-config/package.json | 4 +- packages/util/package.json | 4 +- pnpm-lock.yaml | 848 +++++++++++--------- 12 files changed, 496 insertions(+), 405 deletions(-) diff --git a/backend/package.json b/backend/package.json index 2706c897a8c1..5c1245450265 100644 --- a/backend/package.json +++ b/backend/package.json @@ -80,8 +80,8 @@ "@vitest/coverage-v8": "4.1.5", "concurrently": "8.2.2", "openapi3-ts": "2.0.2", - "oxlint": "1.60.0", - "oxlint-tsgolint": "0.21.0", + "oxlint": "1.64.0", + "oxlint-tsgolint": "0.22.1", "readline-sync": "1.4.10", "supertest": "7.1.4", "testcontainers": "11.11.0", diff --git a/frontend/package.json b/frontend/package.json index 59d12ce58300..4becddf31f10 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -109,8 +109,8 @@ "madge": "8.0.0", "magic-string": "0.30.17", "normalize.css": "8.0.1", - "oxlint": "1.60.0", - "oxlint-tsgolint": "0.21.0", + "oxlint": "1.64.0", + "oxlint-tsgolint": "0.22.1", "postcss": "8.5.8", "sass": "1.70.0", "solid-devtools": "0.34.5", diff --git a/package.json b/package.json index 545739b3f052..2d29994e8943 100644 --- a/package.json +++ b/package.json @@ -71,9 +71,9 @@ "knip": "2.19.2", "lint-staged": "13.2.3", "only-allow": "1.2.1", - "oxfmt": "0.45.0", - "oxlint": "1.60.0", - "oxlint-tsgolint": "0.21.0", + "oxfmt": "0.49.0", + "oxlint": "1.64.0", + "oxlint-tsgolint": "0.22.1", "prettier": "3.7.1", "stylelint": "17.6.0", "stylelint-config-standard": "40.0.0", diff --git a/packages/contracts/package.json b/packages/contracts/package.json index 29a1a4bb2543..3ed56f4cafa9 100644 --- a/packages/contracts/package.json +++ b/packages/contracts/package.json @@ -30,8 +30,8 @@ "@monkeytype/typescript-config": "workspace:*", "@types/node": "24.9.1", "madge": "8.0.0", - "oxlint": "1.60.0", - "oxlint-tsgolint": "0.21.0", + "oxlint": "1.64.0", + "oxlint-tsgolint": "0.22.1", "tsup": "8.4.0", "typescript": "6.0.2", "vitest": "4.1.0" diff --git a/packages/funbox/package.json b/packages/funbox/package.json index 797906b70e07..1752e8db3a16 100644 --- a/packages/funbox/package.json +++ b/packages/funbox/package.json @@ -26,8 +26,8 @@ "@monkeytype/typescript-config": "workspace:*", "@types/node": "24.9.1", "madge": "8.0.0", - "oxlint": "1.60.0", - "oxlint-tsgolint": "0.21.0", + "oxlint": "1.64.0", + "oxlint-tsgolint": "0.22.1", "tsup": "8.4.0", "typescript": "6.0.2", "vitest": "4.1.0" diff --git a/packages/oxlint-config/rules/disabled.jsonc b/packages/oxlint-config/rules/disabled.jsonc index 51468821a5c9..3558aff7a7ae 100644 --- a/packages/oxlint-config/rules/disabled.jsonc +++ b/packages/oxlint-config/rules/disabled.jsonc @@ -12,5 +12,6 @@ "no-unassigned-import": "off", "no-array-reverse": "off", // disabled for compatibility "no-map-spread": "off", + "no-underscore-dangle": "off", }, } diff --git a/packages/release/package.json b/packages/release/package.json index 3f6939af681a..e07b0888e5f8 100644 --- a/packages/release/package.json +++ b/packages/release/package.json @@ -20,7 +20,7 @@ }, "devDependencies": { "nodemon": "3.1.14", - "oxlint": "1.60.0", - "oxlint-tsgolint": "0.21.0" + "oxlint": "1.64.0", + "oxlint-tsgolint": "0.22.1" } } diff --git a/packages/release/src/index.js b/packages/release/src/index.js index afc413023e1e..287892b3314c 100755 --- a/packages/release/src/index.js +++ b/packages/release/src/index.js @@ -6,8 +6,8 @@ import readlineSync from "readline-sync"; import path, { dirname } from "path"; import { fileURLToPath } from "url"; -const __filename = fileURLToPath(import.meta.url); -const __dirname = dirname(__filename); +const FILENAME = fileURLToPath(import.meta.url); +const DIRNAME = dirname(FILENAME); dotenv.config(); @@ -20,7 +20,7 @@ const noSyncCheck = args.has("--no-sync-check"); const hotfix = args.has("--hotfix"); const previewFe = args.has("--preview-fe"); -const PROJECT_ROOT = path.resolve(__dirname, "../../../"); +const PROJECT_ROOT = path.resolve(DIRNAME, "../../../"); const runCommand = (command, force) => { if (isDryRun && !force) { @@ -188,7 +188,7 @@ const buildProject = () => { const deployBackend = () => { console.log("Deploying backend..."); - const p = path.resolve(__dirname, "../bin/deployBackend.sh"); + const p = path.resolve(DIRNAME, "../bin/deployBackend.sh"); runCommand(`sh ${p}`); }; @@ -201,14 +201,14 @@ const deployFrontend = () => { const purgeCache = () => { console.log("Purging Cloudflare cache..."); - const p = path.resolve(__dirname, "../bin/purgeCfCache.sh"); + const p = path.resolve(DIRNAME, "../bin/purgeCfCache.sh"); runCommand(`sh ${p}`); }; const generateChangelog = async () => { console.log("Generating changelog..."); - const p = path.resolve(__dirname, "./buildChangelog.js"); + const p = path.resolve(DIRNAME, "./buildChangelog.js"); const changelog = runCommand(`node ${p}`, true); @@ -218,7 +218,7 @@ const generateChangelog = async () => { const generateContributors = () => { console.log("Generating contributors list..."); try { - const p = path.resolve(__dirname, "./buildContributors.js"); + const p = path.resolve(DIRNAME, "./buildContributors.js"); let contributors = runCommand(`node ${p}`, true); diff --git a/packages/schemas/package.json b/packages/schemas/package.json index 0362db05e9ec..df4d9f399de4 100644 --- a/packages/schemas/package.json +++ b/packages/schemas/package.json @@ -27,8 +27,8 @@ "@monkeytype/typescript-config": "workspace:*", "@types/node": "24.9.1", "madge": "8.0.0", - "oxlint": "1.60.0", - "oxlint-tsgolint": "0.21.0", + "oxlint": "1.64.0", + "oxlint-tsgolint": "0.22.1", "tsup": "8.4.0", "typescript": "6.0.2", "vitest": "4.1.0" diff --git a/packages/tsup-config/package.json b/packages/tsup-config/package.json index 783fa60c865b..5dbf7da1ba11 100644 --- a/packages/tsup-config/package.json +++ b/packages/tsup-config/package.json @@ -18,8 +18,8 @@ "devDependencies": { "@monkeytype/typescript-config": "workspace:*", "@types/node": "24.9.1", - "oxlint": "1.60.0", - "oxlint-tsgolint": "0.21.0", + "oxlint": "1.64.0", + "oxlint-tsgolint": "0.22.1", "typescript": "6.0.2" }, "peerDependencies": { diff --git a/packages/util/package.json b/packages/util/package.json index 60b072253c06..a7e34758e8cb 100644 --- a/packages/util/package.json +++ b/packages/util/package.json @@ -21,8 +21,8 @@ "@monkeytype/typescript-config": "workspace:*", "@types/node": "24.9.1", "madge": "8.0.0", - "oxlint": "1.60.0", - "oxlint-tsgolint": "0.21.0", + "oxlint": "1.64.0", + "oxlint-tsgolint": "0.22.1", "tsup": "8.4.0", "typescript": "6.0.2", "vitest": "4.1.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1d50e9ca12b1..a14f78f2320f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -25,7 +25,7 @@ importers: version: 24.9.1 '@vitest/coverage-v8': specifier: 4.1.5 - version: 4.1.5(vitest@4.1.0(@types/node@24.9.1)(happy-dom@20.8.9)(jsdom@27.4.0)(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3))) + version: 4.1.5(vitest@4.1.0(@types/node@24.9.1)(happy-dom@20.8.9)(jsdom@27.4.0)(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3))) caniuse-lite: specifier: 1.0.30001778 version: 1.0.30001778 @@ -45,14 +45,14 @@ importers: specifier: 1.2.1 version: 1.2.1 oxfmt: - specifier: 0.45.0 - version: 0.45.0 + specifier: 0.49.0 + version: 0.49.0 oxlint: - specifier: 1.60.0 - version: 1.60.0(oxlint-tsgolint@0.21.0) + specifier: 1.64.0 + version: 1.64.0(oxlint-tsgolint@0.22.1) oxlint-tsgolint: - specifier: 0.21.0 - version: 0.21.0 + specifier: 0.22.1 + version: 0.22.1 prettier: specifier: 3.7.1 version: 3.7.1 @@ -70,7 +70,7 @@ importers: version: 2.7.5 vitest: specifier: 4.1.0 - version: 4.1.0(@types/node@24.9.1)(happy-dom@20.8.9)(jsdom@27.4.0)(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.0(@types/node@24.9.1)(happy-dom@20.8.9)(jsdom@27.4.0)(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3)) yaml: specifier: 2.8.3 version: 2.8.3 @@ -245,7 +245,7 @@ importers: version: 10.0.0 '@vitest/coverage-v8': specifier: 4.1.5 - version: 4.1.5(vitest@4.1.0(@opentelemetry/api@1.8.0)(@types/node@24.9.1)(happy-dom@20.8.9)(jsdom@27.4.0)(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.2))) + version: 4.1.5(vitest@4.1.0(@opentelemetry/api@1.8.0)(@types/node@24.9.1)(happy-dom@20.8.9)(jsdom@27.4.0)(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2))) concurrently: specifier: 8.2.2 version: 8.2.2 @@ -253,11 +253,11 @@ importers: specifier: 2.0.2 version: 2.0.2 oxlint: - specifier: 1.60.0 - version: 1.60.0(oxlint-tsgolint@0.21.0) + specifier: 1.64.0 + version: 1.64.0(oxlint-tsgolint@0.22.1) oxlint-tsgolint: - specifier: 0.21.0 - version: 0.21.0 + specifier: 0.22.1 + version: 0.22.1 readline-sync: specifier: 1.4.10 version: 1.4.10 @@ -275,7 +275,7 @@ importers: version: 6.0.2 vitest: specifier: 4.1.0 - version: 4.1.0(@opentelemetry/api@1.8.0)(@types/node@24.9.1)(happy-dom@20.8.9)(jsdom@27.4.0)(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.2)) + version: 4.1.0(@opentelemetry/api@1.8.0)(@types/node@24.9.1)(happy-dom@20.8.9)(jsdom@27.4.0)(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2)) yaml: specifier: 2.8.2 version: 2.8.2 @@ -447,7 +447,7 @@ importers: version: 0.8.10(solid-js@1.9.10) '@tailwindcss/vite': specifier: 4.2.1 - version: 4.2.1(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.70.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.2.1(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.70.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3)) '@tanstack/eslint-plugin-query': specifier: 5.100.3 version: 5.100.3(eslint@9.39.1(jiti@2.6.1))(typescript@6.0.2) @@ -486,7 +486,7 @@ importers: version: 5.0.2 '@vitest/coverage-v8': specifier: 4.1.5 - version: 4.1.5(vitest@4.1.0(@types/node@24.9.1)(happy-dom@20.8.9)(jsdom@27.4.0)(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.70.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3))) + version: 4.1.5(vitest@4.1.0(@types/node@24.9.1)(happy-dom@20.8.9)(jsdom@27.4.0)(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.70.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3))) autoprefixer: specifier: 10.4.27 version: 10.4.27(postcss@8.5.8) @@ -527,11 +527,11 @@ importers: specifier: 8.0.1 version: 8.0.1 oxlint: - specifier: 1.60.0 - version: 1.60.0(oxlint-tsgolint@0.21.0) + specifier: 1.64.0 + version: 1.64.0(oxlint-tsgolint@0.22.1) oxlint-tsgolint: - specifier: 0.21.0 - version: 0.21.0 + specifier: 0.22.1 + version: 0.22.1 postcss: specifier: 8.5.8 version: 8.5.8 @@ -540,7 +540,7 @@ importers: version: 1.70.0 solid-devtools: specifier: 0.34.5 - version: 0.34.5(solid-js@1.9.10)(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.70.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3)) + version: 0.34.5(solid-js@1.9.10)(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.70.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3)) solid-js: specifier: 1.9.10 version: 1.9.10 @@ -561,7 +561,7 @@ importers: version: 3.0.0 vite: specifier: 8.0.5 - version: 8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.70.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3) + version: 8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.70.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3) vite-bundle-visualizer: specifier: 1.2.1 version: 1.2.1(rollup@2.80.0) @@ -570,19 +570,19 @@ importers: version: 1.1.2 vite-plugin-inspect: specifier: 11.3.3 - version: 11.3.3(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.70.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3)) + version: 11.3.3(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.70.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3)) vite-plugin-minify: specifier: 2.1.0 - version: 2.1.0(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.70.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3)) + version: 2.1.0(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.70.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3)) vite-plugin-pwa: specifier: 1.1.0 - version: 1.1.0(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.70.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3))(workbox-build@7.1.1(@types/babel__core@7.20.5))(workbox-window@7.1.0) + version: 1.1.0(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.70.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3))(workbox-build@7.1.1(@types/babel__core@7.20.5))(workbox-window@7.1.0) vite-plugin-solid: specifier: 2.11.11 - version: 2.11.11(@testing-library/jest-dom@6.9.1)(solid-js@1.9.10)(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.70.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3)) + version: 2.11.11(@testing-library/jest-dom@6.9.1)(solid-js@1.9.10)(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.70.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3)) vitest: specifier: 4.1.0 - version: 4.1.0(@types/node@24.9.1)(happy-dom@20.8.9)(jsdom@27.4.0)(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.70.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.0(@types/node@24.9.1)(happy-dom@20.8.9)(jsdom@27.4.0)(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.70.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3)) frontend/storybook: dependencies: @@ -598,7 +598,7 @@ importers: version: 10.2.16(storybook@10.2.16(@testing-library/dom@10.4.1)(prettier@3.7.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) '@storybook/addon-docs': specifier: ^10.2.14 - version: 10.2.16(@types/react@19.2.14)(esbuild@0.27.7)(rollup@4.60.1)(storybook@10.2.16(@testing-library/dom@10.4.1)(prettier@3.7.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3)) + version: 10.2.16(@types/react@19.2.14)(esbuild@0.27.7)(rollup@4.60.1)(storybook@10.2.16(@testing-library/dom@10.4.1)(prettier@3.7.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3)) '@storybook/addon-links': specifier: ^10.2.14 version: 10.2.16(react@18.3.1)(storybook@10.2.16(@testing-library/dom@10.4.1)(prettier@3.7.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) @@ -607,22 +607,22 @@ importers: version: 10.2.16(storybook@10.2.16(@testing-library/dom@10.4.1)(prettier@3.7.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) '@storybook/addon-vitest': specifier: ^10.2.14 - version: 10.2.16(@vitest/browser-playwright@4.0.18)(@vitest/browser@4.0.18(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.0))(@vitest/runner@4.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.2.16(@testing-library/dom@10.4.1)(prettier@3.7.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vitest@4.1.0) + version: 10.2.16(@vitest/browser-playwright@4.0.18)(@vitest/browser@4.0.18(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.0))(@vitest/runner@4.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.2.16(@testing-library/dom@10.4.1)(prettier@3.7.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vitest@4.1.0) '@storybook/builder-vite': specifier: ^10.2.14 - version: 10.2.16(esbuild@0.27.7)(rollup@4.60.1)(storybook@10.2.16(@testing-library/dom@10.4.1)(prettier@3.7.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3)) + version: 10.2.16(esbuild@0.27.7)(rollup@4.60.1)(storybook@10.2.16(@testing-library/dom@10.4.1)(prettier@3.7.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3)) '@tailwindcss/vite': specifier: ^4.2.1 - version: 4.2.1(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.2.1(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3)) '@vitest/browser': specifier: ^4.0.18 - version: 4.0.18(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.0) + version: 4.0.18(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.0) '@vitest/browser-playwright': specifier: ^4.0.18 - version: 4.0.18(playwright@1.58.2)(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.0) + version: 4.0.18(playwright@1.58.2)(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.0) '@vitest/coverage-v8': specifier: ^4.1.5 - version: 4.1.5(@vitest/browser@4.0.18(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.0))(vitest@4.1.0) + version: 4.1.5(@vitest/browser@4.0.18(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.0))(vitest@4.1.0) playwright: specifier: ^1.58.2 version: 1.58.2 @@ -634,13 +634,13 @@ importers: version: 10.2.16(@testing-library/dom@10.4.1)(prettier@3.7.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) storybook-solidjs-vite: specifier: ^10.0.9 - version: 10.0.9(@testing-library/jest-dom@6.9.1)(esbuild@0.27.7)(rollup@4.60.1)(solid-js@1.9.11)(storybook@10.2.16(@testing-library/dom@10.4.1)(prettier@3.7.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@6.0.2)(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3)) + version: 10.0.9(@testing-library/jest-dom@6.9.1)(esbuild@0.27.7)(rollup@4.60.1)(solid-js@1.9.11)(storybook@10.2.16(@testing-library/dom@10.4.1)(prettier@3.7.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@6.0.2)(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3)) vite: specifier: ^7.3.2 - version: 7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3) + version: 7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3) vitest: specifier: ^4.1.0 - version: 4.1.0(@types/node@24.9.1)(@vitest/browser-playwright@4.0.18)(happy-dom@20.8.9)(jsdom@27.4.0)(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.0(@types/node@24.9.1)(@vitest/browser-playwright@4.0.18)(happy-dom@20.8.9)(jsdom@27.4.0)(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3)) packages/contracts: dependencies: @@ -667,11 +667,11 @@ importers: specifier: 8.0.0 version: 8.0.0(typescript@6.0.2) oxlint: - specifier: 1.60.0 - version: 1.60.0(oxlint-tsgolint@0.21.0) + specifier: 1.64.0 + version: 1.64.0(oxlint-tsgolint@0.22.1) oxlint-tsgolint: - specifier: 0.21.0 - version: 0.21.0 + specifier: 0.22.1 + version: 0.22.1 tsup: specifier: 8.4.0 version: 8.4.0(jiti@2.6.1)(postcss@8.5.8)(tsx@4.21.0)(typescript@6.0.2)(yaml@2.8.3) @@ -680,7 +680,7 @@ importers: version: 6.0.2 vitest: specifier: 4.1.0 - version: 4.1.0(@types/node@24.9.1)(happy-dom@20.8.9)(jsdom@27.4.0)(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.0(@types/node@24.9.1)(happy-dom@20.8.9)(jsdom@27.4.0)(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.25.0)(jiti@2.6.1)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3)) packages/funbox: dependencies: @@ -704,11 +704,11 @@ importers: specifier: 8.0.0 version: 8.0.0(typescript@6.0.2) oxlint: - specifier: 1.60.0 - version: 1.60.0(oxlint-tsgolint@0.21.0) + specifier: 1.64.0 + version: 1.64.0(oxlint-tsgolint@0.22.1) oxlint-tsgolint: - specifier: 0.21.0 - version: 0.21.0 + specifier: 0.22.1 + version: 0.22.1 tsup: specifier: 8.4.0 version: 8.4.0(jiti@2.6.1)(postcss@8.5.8)(tsx@4.21.0)(typescript@6.0.2)(yaml@2.8.3) @@ -717,7 +717,7 @@ importers: version: 6.0.2 vitest: specifier: 4.1.0 - version: 4.1.0(@types/node@24.9.1)(happy-dom@20.8.9)(jsdom@27.4.0)(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.0(@types/node@24.9.1)(happy-dom@20.8.9)(jsdom@27.4.0)(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3)) packages/oxlint-config: devDependencies: @@ -741,11 +741,11 @@ importers: specifier: 3.1.14 version: 3.1.14 oxlint: - specifier: 1.60.0 - version: 1.60.0(oxlint-tsgolint@0.21.0) + specifier: 1.64.0 + version: 1.64.0(oxlint-tsgolint@0.22.1) oxlint-tsgolint: - specifier: 0.21.0 - version: 0.21.0 + specifier: 0.22.1 + version: 0.22.1 packages/schemas: dependencies: @@ -766,11 +766,11 @@ importers: specifier: 8.0.0 version: 8.0.0(typescript@6.0.2) oxlint: - specifier: 1.60.0 - version: 1.60.0(oxlint-tsgolint@0.21.0) + specifier: 1.64.0 + version: 1.64.0(oxlint-tsgolint@0.22.1) oxlint-tsgolint: - specifier: 0.21.0 - version: 0.21.0 + specifier: 0.22.1 + version: 0.22.1 tsup: specifier: 8.4.0 version: 8.4.0(jiti@2.6.1)(postcss@8.5.8)(tsx@4.21.0)(typescript@6.0.2)(yaml@2.8.3) @@ -779,7 +779,7 @@ importers: version: 6.0.2 vitest: specifier: 4.1.0 - version: 4.1.0(@types/node@24.9.1)(happy-dom@20.8.9)(jsdom@27.4.0)(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.0(@types/node@24.9.1)(happy-dom@20.8.9)(jsdom@27.4.0)(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3)) packages/tsup-config: dependencies: @@ -794,11 +794,11 @@ importers: specifier: 24.9.1 version: 24.9.1 oxlint: - specifier: 1.60.0 - version: 1.60.0(oxlint-tsgolint@0.21.0) + specifier: 1.64.0 + version: 1.64.0(oxlint-tsgolint@0.22.1) oxlint-tsgolint: - specifier: 0.21.0 - version: 0.21.0 + specifier: 0.22.1 + version: 0.22.1 typescript: specifier: 6.0.2 version: 6.0.2 @@ -820,11 +820,11 @@ importers: specifier: 8.0.0 version: 8.0.0(typescript@6.0.2) oxlint: - specifier: 1.60.0 - version: 1.60.0(oxlint-tsgolint@0.21.0) + specifier: 1.64.0 + version: 1.64.0(oxlint-tsgolint@0.22.1) oxlint-tsgolint: - specifier: 0.21.0 - version: 0.21.0 + specifier: 0.22.1 + version: 0.22.1 tsup: specifier: 8.4.0 version: 8.4.0(jiti@2.6.1)(postcss@8.5.8)(tsx@4.21.0)(typescript@6.0.2)(yaml@2.8.3) @@ -833,7 +833,7 @@ importers: version: 6.0.2 vitest: specifier: 4.1.0 - version: 4.1.0(@types/node@24.9.1)(happy-dom@20.8.9)(jsdom@27.4.0)(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.0(@types/node@24.9.1)(happy-dom@20.8.9)(jsdom@27.4.0)(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3)) zod: specifier: 3.23.8 version: 3.23.8 @@ -902,8 +902,8 @@ packages: resolution: {integrity: sha512-2lfu57JtzctfIrcGMz992hyLlByuzgIk58+hhGCxjKZ3rWI82NnVLjXcaTqkI2NvlcvOskZaiZ5kjUALo3Lpxg==} engines: {node: '>=6.9.0'} - '@babel/compat-data@7.29.0': - resolution: {integrity: sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==} + '@babel/compat-data@7.29.3': + resolution: {integrity: sha512-LIVqM46zQWZhj17qA8wb4nW/ixr2y1Nw+r1etiAWgRM6U1IqP+LNhL1yg440jYZR72jCWcWbLWzIosH+uP1fqg==} engines: {node: '>=6.9.0'} '@babel/core@7.28.5': @@ -942,8 +942,8 @@ packages: resolution: {integrity: sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==} engines: {node: '>=6.9.0'} - '@babel/helper-create-class-features-plugin@7.28.6': - resolution: {integrity: sha512-dTOdvsjnG3xNT9Y0AUg1wAl38y+4Rl4sf9caSQZOXdNqVn+H+HbbJ4IyyHaIqNR6SW9oJpA/RuRjsjCw2IdIow==} + '@babel/helper-create-class-features-plugin@7.29.3': + resolution: {integrity: sha512-RpLYy2sb51oNLjuu1iD3bwBqCBWUzjO0ocp+iaCP/lJtb2CPLcnC2Fftw+4sAzaMELGeWTgExSKADbdo0GFVzA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -1076,6 +1076,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0 + '@babel/plugin-bugfix-safari-rest-destructuring-rhs-array@7.29.3': + resolution: {integrity: sha512-SRS46DFR4HqzUzCVgi90/xMoL+zeBDBvWdKYXSEzh79kXswNFEglUpMKxR04//dPqwYXWUBJ3mpUd933ru9Kmg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1': resolution: {integrity: sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw==} engines: {node: '>=6.9.0'} @@ -1274,8 +1280,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-systemjs@7.29.0': - resolution: {integrity: sha512-PrujnVFbOdUpw4UHiVwKvKRLMMic8+eC0CuNlxjsyZUiBjhFdPsewdXCkveh2KqBA9/waD0W1b4hXSOBQJezpQ==} + '@babel/plugin-transform-modules-systemjs@7.29.4': + resolution: {integrity: sha512-N7QmZ0xRZfjHOfZeQLJjwgX2zS9pdGHSVl/cjSGlo4dXMqvurfxXDMKY4RqEKzPozV78VMcd0lxyG13mlbKc4w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1430,8 +1436,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0 - '@babel/preset-env@7.29.2': - resolution: {integrity: sha512-DYD23veRYGvBFhcTY1iUvJnDNpuqNd/BzBwCvzOTKUnJjKg5kpUBh3/u9585Agdkgj+QuygG7jLfOPWMa2KVNw==} + '@babel/preset-env@7.29.5': + resolution: {integrity: sha512-/69t2aEzGKHD76DyLbHysF/QH2LJOB8iFnYO37unDTKBTubzcMRv0f3H5EiN1Q6ajOd/eB7dAInF0qdFVS06kA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -3132,260 +3138,260 @@ packages: '@oxc-project/types@0.122.0': resolution: {integrity: sha512-oLAl5kBpV4w69UtFZ9xqcmTi+GENWOcPF7FCrczTiBbmC0ibXxCwyvZGbO39rCVEuLGAZM84DH0pUIyyv/YJzA==} - '@oxfmt/binding-android-arm-eabi@0.45.0': - resolution: {integrity: sha512-A/UMxFob1fefCuMeGxQBulGfFE38g2Gm23ynr3u6b+b7fY7/ajGbNsa3ikMIkGMLJW/TRoQaMoP1kME7S+815w==} + '@oxfmt/binding-android-arm-eabi@0.49.0': + resolution: {integrity: sha512-HbifJ84prIh9+55CTPAU35JdRQrwg47y16cGerCC+iejSKOuHXYo2WDql6l7cQlzrYVtc3f4UWY+dBj2lRmOeA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [android] - '@oxfmt/binding-android-arm64@0.45.0': - resolution: {integrity: sha512-L63z4uZmHjgvvqvMJD7mwff8aSBkM0+X4uFr6l6U5t6+Qc9DCLVZWIunJ7Gm4fn4zHPdSq6FFQnhu9yqqobxIg==} + '@oxfmt/binding-android-arm64@0.49.0': + resolution: {integrity: sha512-Ef7SKJqAaH2d7E6eXZZa2OffIShbhFMxnGK0zd93p4qiyTJr75B0qf7lrPD+qQOwcf04BrjYJ0JUxq8d5+yZwg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@oxfmt/binding-darwin-arm64@0.45.0': - resolution: {integrity: sha512-UV34dd623FzqT+outIGndsCA/RBB+qgB3XVQhgmmJ9PJwa37NzPC9qzgKeOhPKxVk2HW+JKldQrVL54zs4Noww==} + '@oxfmt/binding-darwin-arm64@0.49.0': + resolution: {integrity: sha512-8x5DN9CsFfb432sHa9NyqX5XisGUdA53LPEGSdv/VniS+v4uEOR8Orv7A9QSB98Xxgp0t6r31DzQA/wpIobGqQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@oxfmt/binding-darwin-x64@0.45.0': - resolution: {integrity: sha512-pMNJv0CMa1pDefVPeNbuQxibh8ITpWDFEhMC/IBB9Zlu76EbgzYwrzI4Cb11mqX2+rIYN70UTrh3z06TM59ptQ==} + '@oxfmt/binding-darwin-x64@0.49.0': + resolution: {integrity: sha512-e0+DSVzk4ewhMVKNYDaRTmP81jNMBWR1X9al0cVKWS+hDM/dElNqD5zjTOCuLOZc4oOdp2Gx2ldrVL+yYo9TZQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@oxfmt/binding-freebsd-x64@0.45.0': - resolution: {integrity: sha512-xTcRoxbbo61sW2+ZRPeH+vp/o9G8gkdhiVumFU+TpneiPm14c79l6GFlxPXlCE9bNWikigbsrvJw46zCVAQFfg==} + '@oxfmt/binding-freebsd-x64@0.49.0': + resolution: {integrity: sha512-W+mjtYtrQvFbXT/uNT+221OBhGRZ8UqNsLxjTWsjZ4GsQnRdvRC/N2NCK86BcamWr7lsTxwpwN3PULnr78sgcQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@oxfmt/binding-linux-arm-gnueabihf@0.45.0': - resolution: {integrity: sha512-hWL8Hdni+3U1mPFx1UtWeGp3tNb6EhBAUHRMbKUxVkOp3WwoJbpVO2bfUVbS4PfpledviXXNHSTl1veTa6FhkQ==} + '@oxfmt/binding-linux-arm-gnueabihf@0.49.0': + resolution: {integrity: sha512-Rtv6UevV7czDlLqil+NZUe4d8gs8jQo/zScSpumwyf7I+fSdLc+hc8AF3MQC7ymxSMMD9+vfiqQlsIf7wOAzXA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxfmt/binding-linux-arm-musleabihf@0.45.0': - resolution: {integrity: sha512-6Blt/0OBT7vvfQpqYuYbpbFLPqSiaYpEJzUUWhinPEuADypDbtV1+LdjM0vYBNGPvnj85ex7lTerEX6JGcPt9w==} + '@oxfmt/binding-linux-arm-musleabihf@0.49.0': + resolution: {integrity: sha512-sBi+8C/Q/MdKa5FL8ibAUCdhFBGFH7HFN/Qoyd5xQbZ/0ky3NMPpKfIBpaH0lhK2dXkGLczVQUoZ+xuNSerCdQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxfmt/binding-linux-arm64-gnu@0.45.0': - resolution: {integrity: sha512-jLjoLfe+hGfjhA8hNBSdw85yCA8ePKq7ME4T+g6P9caQXvmt6IhE2X7iVjnVdkmYUWEzZrxlh4p6RkDmAMJY/A==} + '@oxfmt/binding-linux-arm64-gnu@0.49.0': + resolution: {integrity: sha512-JIfWenFhlzx+O8YygyZhoHFzTsdgDhxhbDRnE2iJLnnM5pWKScFvPECO2vOlA7JqJ/9S1g3uzEKuRCkHFwTjvA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] - '@oxfmt/binding-linux-arm64-musl@0.45.0': - resolution: {integrity: sha512-XQKXZIKYJC3GQJ8FnD3iMntpw69Wd9kDDK/Xt79p6xnFYlGGxSNv2vIBvRTDg5CKByWFWWZLCRDOXoP/m6YN4g==} + '@oxfmt/binding-linux-arm64-musl@0.49.0': + resolution: {integrity: sha512-iNzkMPG18jPkwBOZ4/HEjwqfzAjq4RrUQ0CgId/fC1ENvYD5jLVAaU/gWgpiqP1ys07kxSsSggDd1fp3E7mQHw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] - '@oxfmt/binding-linux-ppc64-gnu@0.45.0': - resolution: {integrity: sha512-+g5RiG+xOkdrCWkKodv407nTvMq4vYM18Uox2MhZBm/YoqFxxJpWKsloskFFG5NU13HGPw1wzYjjOVcyd9moCA==} + '@oxfmt/binding-linux-ppc64-gnu@0.49.0': + resolution: {integrity: sha512-BPHA/NN3LvoIXiid+iz3BHt5V0Rzx0tXAqRUovwE1NsbDaLG9e8mtv7evDGRIkVQacqTDBv0XL25THHsxSJosQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] - '@oxfmt/binding-linux-riscv64-gnu@0.45.0': - resolution: {integrity: sha512-V7dXKoSyEbWAkkSF4JJNtF+NJZDmJoSarSoP30WCsB3X636Rehd3CvxBj49FIJxEBFWhvcUjGSHVeU8Erck1bQ==} + '@oxfmt/binding-linux-riscv64-gnu@0.49.0': + resolution: {integrity: sha512-3Eroshe+s69htC9JIL0+zLGQczLtRKezkMhwqQC21VC5Z/fuLvzLfbAOLgJLUq601H8gDYjy7deYycfOBjCvWg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] - '@oxfmt/binding-linux-riscv64-musl@0.45.0': - resolution: {integrity: sha512-Vdelft1sAEYojVGgcODEFXSWYQYlIvoyIGWebKCuUibd1tvS1TjTx413xG2ZLuHpYj45CkN/ztMLMX6jrgqpgg==} + '@oxfmt/binding-linux-riscv64-musl@0.49.0': + resolution: {integrity: sha512-fnaERGgsxGm0lKAmO72EYR4BA3qBnzBTJBTi6EtUMq1D4R7EexRBMU4voXnx4TXla3SEDl9x4uNp/18SbkPjGg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] - '@oxfmt/binding-linux-s390x-gnu@0.45.0': - resolution: {integrity: sha512-RR7xKgNpqwENnK0aYCGYg0JycY2n93J0reNjHyes+I9Gq52dH95x+CBlnlAQHCPfz6FGnKA9HirgUl14WO6o7w==} + '@oxfmt/binding-linux-s390x-gnu@0.49.0': + resolution: {integrity: sha512-rBwasMl1Uul1MCCeTGEFKnOTL7VUxHf+634jWStrQAbzpBJgd5Yz5m4F7exVCsoI8PHn57dNjssXagXLCLB5yA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] - '@oxfmt/binding-linux-x64-gnu@0.45.0': - resolution: {integrity: sha512-U/QQ0+BQNSHxjuXR/utvXnQ50Vu5kUuqEomZvQ1/3mhgbBiMc2WU9q5kZ5WwLp3gnFIx9ibkveoRSe2EZubkqg==} + '@oxfmt/binding-linux-x64-gnu@0.49.0': + resolution: {integrity: sha512-BoC/F9xHe2y/deuBGA5Aw7bes07OD2gcL2wlpzTrfImR92vPP7S/k3LBTyspQZCNIVNdagkELcqKELwMLGIfAg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] - '@oxfmt/binding-linux-x64-musl@0.45.0': - resolution: {integrity: sha512-o5TLOUCF0RWQjsIS06yVC+kFgp092/yLe6qBGSUvtnmTVw9gxjpdQSXc3VN5Cnive4K11HNstEZF8ROKHfDFSw==} + '@oxfmt/binding-linux-x64-musl@0.49.0': + resolution: {integrity: sha512-umY6jFADAo/oztFKl8D/S6vSrG6oBpEskcentiRuz42kZVU2kfDXMWCYavxyZR2bwPjqkHpcHZ6EZFiH3Qj9ZA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] - '@oxfmt/binding-openharmony-arm64@0.45.0': - resolution: {integrity: sha512-RnGcV3HgPuOjsGx/k9oyRNKmOp+NBLGzZTdPDYbc19r7NGeYPplnUU/BfU35bX2Y/O4ejvHxcfkvW2WoYL/gsg==} + '@oxfmt/binding-openharmony-arm64@0.49.0': + resolution: {integrity: sha512-J85zQMiw2pXiGPK+OusmDvSnJ/dgpgN7VgmB2zOBtgS8F+nsOUfSg9ZEBrwbQscjZ7tkPbm38CG4VF5f53MsiA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] - '@oxfmt/binding-win32-arm64-msvc@0.45.0': - resolution: {integrity: sha512-v3Vj7iKKsUFwt9w5hsqIIoErKVoENC6LoqfDlteOQ5QMDCXihlqLoxpmviUhXnNncg4zV6U9BPwlBbwa+qm4wg==} + '@oxfmt/binding-win32-arm64-msvc@0.49.0': + resolution: {integrity: sha512-38K67XR++CoFFORDd4sMFwUVAnD6msYBdGTei+qvKGrRPO6S2PbrYPNL/eQQ1RgnnxOegNba0YQwg6uRkNcw6A==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@oxfmt/binding-win32-ia32-msvc@0.45.0': - resolution: {integrity: sha512-N8yotPBX6ph0H3toF4AEpdCeVPrdcSetj+8eGiZGsrLsng3bs/Q5HPu4bbSxip5GBPx5hGbGHrZwH4+rcrjhHA==} + '@oxfmt/binding-win32-ia32-msvc@0.49.0': + resolution: {integrity: sha512-rXVe0HICwQF0dBgbQtBCoYf8x/SidPIdhyQl+iPuJlV7suV+qDv7yUEB3wQ4qC3nOeNxz287SwFXKzyr0kWgEg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ia32] os: [win32] - '@oxfmt/binding-win32-x64-msvc@0.45.0': - resolution: {integrity: sha512-w5MMTRCK1dpQeRA+HHqXQXyN33DlG/N2LOYxJmaT4fJjcmZrbNnqw7SmIk7I2/a2493PPLZ+2E/Ar6t2iKVMug==} + '@oxfmt/binding-win32-x64-msvc@0.49.0': + resolution: {integrity: sha512-gwWLwSEmBBfIK/Wh7GGd658161o4RKAvHWRaRQbJm571iQXGKfyr7UKsI1vsWvDlNLc30CxJDc8mMmCvJ/kczQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] - '@oxlint-tsgolint/darwin-arm64@0.21.0': - resolution: {integrity: sha512-P20j3MLqfwIT+94qGU3htC7dWp4pXGZW1p1p7FRUzu1aopq7c9nPCgf0W/WjktqQ57+iuTq9mbSlwWinl6+H1A==} + '@oxlint-tsgolint/darwin-arm64@0.22.1': + resolution: {integrity: sha512-4150Lpgc1YM09GcjA6GSrra1JoPjC7aOpfywLjWEY4vW0Sd1qKzqHF1WRaiw0/qUZ40OATYdv3aRd7ipPkWQbw==} cpu: [arm64] os: [darwin] - '@oxlint-tsgolint/darwin-x64@0.21.0': - resolution: {integrity: sha512-81TmmuBcPedEA0MwRmObuQuXnCprS1UiHQWGe7pseqNAJzUWXeAPrayqKTACX92VpruJI+yvY0XJrFp11PpcTA==} + '@oxlint-tsgolint/darwin-x64@0.22.1': + resolution: {integrity: sha512-vFWcPWYOgZs4HWcgS1EjUZg33NLcNfEYU49KGImmCfZWkflENrmBYV4HN/C0YeAPum6ZZ/goPSvQrB/cOD+NfA==} cpu: [x64] os: [darwin] - '@oxlint-tsgolint/linux-arm64@0.21.0': - resolution: {integrity: sha512-sbjBr6zDduX8rNO0PTjhf7VYLCPWqdijWiMPp8e10qu6Tam1GdaVLaLlX8QrNupTgglO1GvqqgY/jcacWL8a6g==} + '@oxlint-tsgolint/linux-arm64@0.22.1': + resolution: {integrity: sha512-6LiUpP0Zir3+29FvBm7Y28q/dBjSHqTZ5MhG1Ckw4fGhI4cAvbcwXaKvbjx1TP7rRmBNOoq/M5xdpHjTb+GAew==} cpu: [arm64] os: [linux] - '@oxlint-tsgolint/linux-x64@0.21.0': - resolution: {integrity: sha512-jNrOcy53R5TJQfrK444Cm60bW9437xDoxPbm3AdvFSo/fhdFMllawc7uZC2Wzr+EAjTkW13K8R4QHzsUdBG9fQ==} + '@oxlint-tsgolint/linux-x64@0.22.1': + resolution: {integrity: sha512-fuX1hEQfpHauUbXADsfqVhRzrUrGabzGXbj5wsp2vKhV5uk/Rze8Mba9GdjFGECzvXudMGqHqxB4r6jGRdhxVA==} cpu: [x64] os: [linux] - '@oxlint-tsgolint/win32-arm64@0.21.0': - resolution: {integrity: sha512-xWeRxJJILDE4b9UqHEWGBxcBc1TUS6zWHhxcyxTZMwf4q3wdKeu0OHYAcwLGJzoSjEIf6FTjyfPiRNil2oqsdg==} + '@oxlint-tsgolint/win32-arm64@0.22.1': + resolution: {integrity: sha512-8SZidAj+jrbZf9ZjBEYW0tiNZ+KasqB2zgW26qdiPpQSF/DzURnPmXz651IeA9YsmbVdHGIooEHUmev6QJdquA==} cpu: [arm64] os: [win32] - '@oxlint-tsgolint/win32-x64@0.21.0': - resolution: {integrity: sha512-Ob9AA9teI8ckPo1whV1smLr5NrqwgBv/8boDbK0YZG+fKgNGRwr1hBj1ORgFWOQaUBv+5njp5A0RAfJJjQ95QQ==} + '@oxlint-tsgolint/win32-x64@0.22.1': + resolution: {integrity: sha512-QweSk9H5lFh5Y+WUf2Kq/OAN88V6+62ZwGhP38gqdRotI90luXSMkruFTj7Q2rYrzH4ZVNaSqx7NY8JpSfIzqg==} cpu: [x64] os: [win32] - '@oxlint/binding-android-arm-eabi@1.60.0': - resolution: {integrity: sha512-YdeJKaZckDQL1qa62a1aKq/goyq48aX3yOxaaWqWb4sau4Ee4IiLbamftNLU3zbePky6QsDj6thnSSzHRBjDfA==} + '@oxlint/binding-android-arm-eabi@1.64.0': + resolution: {integrity: sha512-2r6Nq3XXGLHEXKkSj8JtmJ6N4gDw431DPFOg0ZoJHlNjnG6HVMm/ksQ10m0HJ8WBvwgMe1L50UHPaYZutCRPCw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [android] - '@oxlint/binding-android-arm64@1.60.0': - resolution: {integrity: sha512-7ANS7PpXCfq84xZQ8E5WPs14gwcuPcl+/8TFNXfpSu0CQBXz3cUo2fDpHT8v8HJN+Ut02eacvMAzTnc9s6X4tw==} + '@oxlint/binding-android-arm64@1.64.0': + resolution: {integrity: sha512-ePJMpePgg7fBv+L/hVx1xXRU5/5gd5m0obLA6hPEfLXF3GjpR8idIDbY1dhQYhyz1ms2wdTccSboo6KEd2Oxtg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@oxlint/binding-darwin-arm64@1.60.0': - resolution: {integrity: sha512-pJsgd9AfplLGBm1fIr25V6V14vMrayhx4uIQvlfH7jWs2SZwSrvi3TfgfJySB8T+hvyEH8K2zXljQiUnkgUnfQ==} + '@oxlint/binding-darwin-arm64@1.64.0': + resolution: {integrity: sha512-U4DMLQd10gJLuoSTLSGbfv3bGjTlUNsScm9Dgb8wwBqmCzidf1pE1pXV4doGNxqwH3KtVng1AGTINA0NvkGLvQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@oxlint/binding-darwin-x64@1.60.0': - resolution: {integrity: sha512-Ue1aXHX49ivwflKqGJc7zcd/LeLgbhaTcDCQStgx5x06AXgjEAZmvrlMuIkWd4AL4FHQe6QJ9f33z04Cg448VQ==} + '@oxlint/binding-darwin-x64@1.64.0': + resolution: {integrity: sha512-GoRIL48QWm4/TAvjN8pB1nAG+1/uqc9EdnWT9zqHeb6wsmjZtywj8VRe5aGW47Fdb64YtLOsdLqVxOvQuz98Wg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@oxlint/binding-freebsd-x64@1.60.0': - resolution: {integrity: sha512-YCyQzsQtusQw+gNRW9rRTifSO+Dt/+dtCl2NHoDMZqJlRTEZ/Oht9YnuporI9yiTx7+cB+eqzX3MtHHVHGIWhg==} + '@oxlint/binding-freebsd-x64@1.64.0': + resolution: {integrity: sha512-5dFkv4tkg7PxJJGS9/OjrJwjhuHczrd3OQOkRE0wHcLM+ncUnULtzEPWjqGOxTXxZnLWcB91bGiIznx89TVXyQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@oxlint/binding-linux-arm-gnueabihf@1.60.0': - resolution: {integrity: sha512-c7dxM2Zksa45Qw16i2iGY3Fti2NirJ38FrsBsKw+qcJ0OtqTsBgKJLF0xV+yLG56UH01Z8WRPgsw31e0MoRoGQ==} + '@oxlint/binding-linux-arm-gnueabihf@1.64.0': + resolution: {integrity: sha512-jsBqMLl/uOL5+Kq/+BtK9FrmiNGUbx8SiyZXv+WlUxA45KuwcLu9BfiSIL3I3DBDgWM3yZizDITnTK9BcqNBQg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxlint/binding-linux-arm-musleabihf@1.60.0': - resolution: {integrity: sha512-ZWALoA42UYqBEP1Tbw9OWURgFGS1nWj2AAvLdY6ZcGx/Gj93qVCBKjcvwXMupZibYwFbi9s/rzqkZseb/6gVtQ==} + '@oxlint/binding-linux-arm-musleabihf@1.64.0': + resolution: {integrity: sha512-1lrj8At/Uuc9GhjrVFBQo0NEjfBrTkzpmtHIGAhNnIXqn1CAyGL+qrztUsXb2GIluJrpl9Q7qRLJOb/NqydacQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxlint/binding-linux-arm64-gnu@1.60.0': - resolution: {integrity: sha512-tpy+1w4p9hN5CicMCxqNy6ymfRtV5ayE573vFNjp1k1TN/qhLFgflveZoE/0++RlkHikBz2vY545NWm/hp7big==} + '@oxlint/binding-linux-arm64-gnu@1.64.0': + resolution: {integrity: sha512-HpSQbubwh03mMhAdy2BYtad/fsY8vDFHDAb6bUwuCYg2VD3xCQgn6ArKcO0oZyLCheacKTv4PrF3Mfu5hgoE2g==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] - '@oxlint/binding-linux-arm64-musl@1.60.0': - resolution: {integrity: sha512-eDYDXZGhQAXyn6GwtwiX/qcLS0HlOLPJ/+iiIY8RYr+3P8oKBmgKxADLlniL6FtWfE7pPk7IGN9/xvDEvDvFeg==} + '@oxlint/binding-linux-arm64-musl@1.64.0': + resolution: {integrity: sha512-00QQ0h0Y7u0G69BgiH3+ky2aaq/QvkDL6DYok8htIuJHxybiux5aQ8jwmg8qIk9wha6UagUP2BAwAzbemcJbpg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] - '@oxlint/binding-linux-ppc64-gnu@1.60.0': - resolution: {integrity: sha512-nxehly5XYBHUWI9VJX1bqCf9j/B43DaK/aS/T1fcxCpX3PA4Rm9BB54nPD1CKayT8xg6REN1ao+01hSRNgy8OA==} + '@oxlint/binding-linux-ppc64-gnu@1.64.0': + resolution: {integrity: sha512-2GaimTV6EMW+s5HS0An3oGbQme3BgHswvfVdGk3EB57Xe9+/gyT+Qd7lNVzb3rtir52vbIPzXfaYArzs5b5zcw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] - '@oxlint/binding-linux-riscv64-gnu@1.60.0': - resolution: {integrity: sha512-j1qf/NaUfOWQutjeoooNG1Q0zsK0XGmSu1uDLq3cctquRF3j7t9Hxqf/76ehCc5GEUAanth2W4Fa+XT1RFg/nw==} + '@oxlint/binding-linux-riscv64-gnu@1.64.0': + resolution: {integrity: sha512-H46AtFb9wypjoVwGdlxrm0DsD809NGmtiK9HiyPKTxkSte2YjhC4S+00rOIrwCaxcyPiGid3Y3OMXp5KMAkGZw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] - '@oxlint/binding-linux-riscv64-musl@1.60.0': - resolution: {integrity: sha512-YELKPRefQ/q/h3RUmeRfPCUhh2wBvgV1RyZ/F9M9u8cDyXsQW2ojv1DeWQTt466yczDITjZnIOg/s05pk7Ve2A==} + '@oxlint/binding-linux-riscv64-musl@1.64.0': + resolution: {integrity: sha512-HEgsidjjvvyzdg82icYkuFCf7REDV7B9JFwbIMbVwrKLBY0MrXX+bku3POn/hduZ2yW91IyVDUMq0Bf02KwXQw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] - '@oxlint/binding-linux-s390x-gnu@1.60.0': - resolution: {integrity: sha512-JkO3C6Gki7Y6h/MiIkFKvHFOz98/YWvQ4WYbK9DLXACMP2rjULzkeGyAzorJE5S1dzLQGFgeqvN779kSFwoV1g==} + '@oxlint/binding-linux-s390x-gnu@1.64.0': + resolution: {integrity: sha512-Axvm8qryotmKN00P5w4JapaSjvP2LOSbdbBJiX+2SuHd3QzhW7TUc8skqgw+ahQZ5DmzEYeHCqauvW8f32Ns6Q==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] - '@oxlint/binding-linux-x64-gnu@1.60.0': - resolution: {integrity: sha512-XjKHdFVCpZZZSWBCKyyqCq65s2AKXykMXkjLoKYODrD+f5toLhlwsMESscu8FbgnJQ4Y/dpR/zdazsahmgBJIA==} + '@oxlint/binding-linux-x64-gnu@1.64.0': + resolution: {integrity: sha512-cR60vSd7+m+KRZ3GQGfDxWwahW5RMXg0qlGvAluZr0fTUYvw0H9N9AXAF/M/PMqgytyqvVNmBAkJG9l7U30Y1g==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] - '@oxlint/binding-linux-x64-musl@1.60.0': - resolution: {integrity: sha512-js29ZWIuPhNWzY8NC7KoffEMEeWG105vbmm+8EOJsC+T/jHBiKIJEUF78+F/IrgEWMMP9N0kRND4Pp75+xAhKg==} + '@oxlint/binding-linux-x64-musl@1.64.0': + resolution: {integrity: sha512-2u/aPZ9pEg7HnvZPDsHxUGNnrpr4qaHi+mCgLgpt+LYRzPrS4Px4wPfkIdRdr2GvKnaYyt+XSlto0Vm5sbStTg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] - '@oxlint/binding-openharmony-arm64@1.60.0': - resolution: {integrity: sha512-H+PUITKHk04stFpWj3x3Kg08Afp/bcXSBi0EhasR5a0Vw7StXHTzdl655PUI0fB4qdh2Wsu6Dsi+3ACxPoyQnA==} + '@oxlint/binding-openharmony-arm64@1.64.0': + resolution: {integrity: sha512-kfhkGfCdoXLSxEkrhDlJrvBYajGmq+ma4EMc53dsOWTq+rIBOlI0vTBmpZNnM5oH2LY/K/w1HAK+UQEgjgpVUg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] - '@oxlint/binding-win32-arm64-msvc@1.60.0': - resolution: {integrity: sha512-WA/yc7f7ZfCefBXVzNHn1Ztulb1EFwNBb4jMZ6pjML0zz6pHujlF3Q3jySluz3XHl/GNeMTntG1seUBWVMlMag==} + '@oxlint/binding-win32-arm64-msvc@1.64.0': + resolution: {integrity: sha512-r/cNKBFieONoVu2bb1KkVouq9W+edDUgHumXJGphCRRj+U0xaD4nanrw8ZOqo0IsutPkEM4vCcGBpak6x5aXMg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@oxlint/binding-win32-ia32-msvc@1.60.0': - resolution: {integrity: sha512-33YxL1sqwYNZXtn3MD/4dno6s0xeedXOJlT1WohkVD565WvohClZUr7vwKdAk954n4xiEWJkewiCr+zLeq7AeA==} + '@oxlint/binding-win32-ia32-msvc@1.64.0': + resolution: {integrity: sha512-tUw0xUUwEFVZbpJoeCblkv8SJA4Xz3CdXCJbAnBsiNLyxDrk2tLcxEAS6M73Q7hHHDg3OtwI8vZVK3t5RJt4Gw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ia32] os: [win32] - '@oxlint/binding-win32-x64-msvc@1.60.0': - resolution: {integrity: sha512-JOro4ZcfBLamJCyfURQmOQByoorgOdx3ZjAkSqnb/CyG/i+lN3KoV5LAgk5ZAW6DPq7/Cx7n23f8DuTWXTWgyQ==} + '@oxlint/binding-win32-x64-msvc@1.64.0': + resolution: {integrity: sha512-9CBR+LO0JVST87fNTzzNxS5I29jIUO5gxT9i9+M3SDHHALElj9sY1Prf12tad3vIRC6OD7Ehtvvh+sn13vSwHw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] @@ -4683,6 +4689,9 @@ packages: '@types/estree@1.0.8': resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} + '@types/estree@1.0.9': + resolution: {integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==} + '@types/express-serve-static-core@4.19.5': resolution: {integrity: sha512-y6W03tvrACO72aijJ5uF02FRq5cgDR9lUxddQ8vyF+GvmjJQqbzDcJngEjURc+ZsG31VI3hODNZJ2URj86pzmg==} @@ -6767,8 +6776,8 @@ packages: fast-safe-stringify@2.1.1: resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} - fast-uri@3.1.0: - resolution: {integrity: sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==} + fast-uri@3.1.2: + resolution: {integrity: sha512-rVjf7ArG3LTk+FS6Yw81V1DLuZl1bRbNrev6Tmd/9RaroeeRRJhAt7jg/6YFxbvAQXUCavSoZhPPj6oOx+5KjQ==} fast-url-parser@1.1.3: resolution: {integrity: sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==} @@ -7573,6 +7582,10 @@ packages: resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} engines: {node: '>= 0.4'} + is-core-module@2.16.2: + resolution: {integrity: sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==} + engines: {node: '>= 0.4'} + is-data-view@1.0.2: resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==} engines: {node: '>= 0.4'} @@ -9097,21 +9110,26 @@ packages: resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} engines: {node: '>= 0.4'} - oxfmt@0.45.0: - resolution: {integrity: sha512-0o/COoN9fY50bjVeM7PQsNgbhndKurBIeTIcspW033OumksjJJmIVDKjAk5HMwU/GHTxSOdGDdhJ6BRzGPmsHg==} + oxfmt@0.49.0: + resolution: {integrity: sha512-IAHFMdlJSWe+oAr65dx22UvjCtV9DBMisAuLnKpDqMQrctzCkGnj3QRwNHm0d+uwSWPalsDF8ZYLz9rh6nH2IQ==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true + peerDependencies: + svelte: ^5.0.0 + peerDependenciesMeta: + svelte: + optional: true - oxlint-tsgolint@0.21.0: - resolution: {integrity: sha512-HiWPhANwRnN1pZJQ2SgNB3WRR+1etLJHmRzQ/MJhyINsEIaOUCjxhlXJKbEaVUwdnyXwRWqo/P9Fx21lz0/mSg==} + oxlint-tsgolint@0.22.1: + resolution: {integrity: sha512-YUSGSLUnoolsu8gxISEDio3q1rtsCozwfOzASUn3DT2mR2EeQ93uEEnen7s+6LpF+lyTQFln1pQfqwBh/fsVEg==} hasBin: true - oxlint@1.60.0: - resolution: {integrity: sha512-tnRzTWiWJ9pg3ftRWnD0+Oqh78L6ZSwcEudvCZaER0PIqiAnNyXj5N1dPwjmNpDalkKS9m/WMLN1CTPUBPmsgw==} + oxlint@1.64.0: + resolution: {integrity: sha512-Star3SNpWPeWFPw7kRXIhXUSn6fdiAl25q15CQzH/9WaOtG6e9CWTc25vNZOCr4PE1yEP1GtKJKIKglhj3OmEQ==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: - oxlint-tsgolint: '>=0.18.0' + oxlint-tsgolint: '>=0.22.1' peerDependenciesMeta: oxlint-tsgolint: optional: true @@ -10669,8 +10687,8 @@ packages: engines: {node: '>=10'} hasBin: true - terser@5.46.2: - resolution: {integrity: sha512-uxfo9fPcSgLDYob/w1FuL0c99MWiJDnv+5qXSQc5+Ki5NjVNsYi66INnMFBjf6uFz6OnX12piJQPF4IpjJTNTw==} + terser@5.47.1: + resolution: {integrity: sha512-tPbLXTI6ohPASb/1YViL428oEHu6/qv1OxqYnfaonVCFHqx4+wCd95pHrQWsL5X4pl90CTyW9piSAsS2L0VoMw==} engines: {node: '>=10'} hasBin: true @@ -11794,7 +11812,7 @@ snapshots: '@babel/compat-data@7.28.6': {} - '@babel/compat-data@7.29.0': {} + '@babel/compat-data@7.29.3': {} '@babel/core@7.28.5': dependencies: @@ -11900,7 +11918,7 @@ snapshots: lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-create-class-features-plugin@7.28.6(@babel/core@7.29.0)': + '@babel/helper-create-class-features-plugin@7.29.3(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 '@babel/helper-annotate-as-pure': 7.27.3 @@ -12075,6 +12093,14 @@ snapshots: '@babel/core': 7.29.0 '@babel/helper-plugin-utils': 7.28.6 + '@babel/plugin-bugfix-safari-rest-destructuring-rhs-array@7.29.3(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + transitivePeerDependencies: + - supports-color + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 @@ -12163,7 +12189,7 @@ snapshots: '@babel/plugin-transform-class-properties@7.28.6(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 - '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.29.0) + '@babel/helper-create-class-features-plugin': 7.29.3(@babel/core@7.29.0) '@babel/helper-plugin-utils': 7.28.6 transitivePeerDependencies: - supports-color @@ -12171,7 +12197,7 @@ snapshots: '@babel/plugin-transform-class-static-block@7.28.6(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 - '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.29.0) + '@babel/helper-create-class-features-plugin': 7.29.3(@babel/core@7.29.0) '@babel/helper-plugin-utils': 7.28.6 transitivePeerDependencies: - supports-color @@ -12295,7 +12321,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-systemjs@7.29.0(@babel/core@7.29.0)': + '@babel/plugin-transform-modules-systemjs@7.29.4(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) @@ -12374,7 +12400,7 @@ snapshots: '@babel/plugin-transform-private-methods@7.28.6(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 - '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.29.0) + '@babel/helper-create-class-features-plugin': 7.29.3(@babel/core@7.29.0) '@babel/helper-plugin-utils': 7.28.6 transitivePeerDependencies: - supports-color @@ -12383,7 +12409,7 @@ snapshots: dependencies: '@babel/core': 7.29.0 '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.29.0) + '@babel/helper-create-class-features-plugin': 7.29.3(@babel/core@7.29.0) '@babel/helper-plugin-utils': 7.28.6 transitivePeerDependencies: - supports-color @@ -12460,9 +12486,9 @@ snapshots: '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) '@babel/helper-plugin-utils': 7.28.6 - '@babel/preset-env@7.29.2(@babel/core@7.29.0)': + '@babel/preset-env@7.29.5(@babel/core@7.29.0)': dependencies: - '@babel/compat-data': 7.29.0 + '@babel/compat-data': 7.29.3 '@babel/core': 7.29.0 '@babel/helper-compilation-targets': 7.28.6 '@babel/helper-plugin-utils': 7.28.6 @@ -12470,6 +12496,7 @@ snapshots: '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.28.5(@babel/core@7.29.0) '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.27.1(@babel/core@7.29.0) '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-bugfix-safari-rest-destructuring-rhs-array': 7.29.3(@babel/core@7.29.0) '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.27.1(@babel/core@7.29.0) '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.28.6(@babel/core@7.29.0) '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.29.0) @@ -12501,7 +12528,7 @@ snapshots: '@babel/plugin-transform-member-expression-literals': 7.27.1(@babel/core@7.29.0) '@babel/plugin-transform-modules-amd': 7.27.1(@babel/core@7.29.0) '@babel/plugin-transform-modules-commonjs': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-modules-systemjs': 7.29.0(@babel/core@7.29.0) + '@babel/plugin-transform-modules-systemjs': 7.29.4(@babel/core@7.29.0) '@babel/plugin-transform-modules-umd': 7.27.1(@babel/core@7.29.0) '@babel/plugin-transform-named-capturing-groups-regex': 7.29.0(@babel/core@7.29.0) '@babel/plugin-transform-new-target': 7.27.1(@babel/core@7.29.0) @@ -13235,7 +13262,7 @@ snapshots: '@eslint/eslintrc@3.3.3': dependencies: - ajv: 6.15.0 + ajv: 6.12.6 debug: 4.4.3 espree: 10.4.0 globals: 14.0.0 @@ -13944,11 +13971,11 @@ snapshots: wrap-ansi: 8.1.0 wrap-ansi-cjs: wrap-ansi@7.0.0 - '@joshwooding/vite-plugin-react-docgen-typescript@0.6.4(typescript@6.0.2)(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3))': + '@joshwooding/vite-plugin-react-docgen-typescript@0.6.4(typescript@6.0.2)(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3))': dependencies: glob: 13.0.6 react-docgen-typescript: 2.4.0(typescript@6.0.2) - vite: 7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3) + vite: 7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3) optionalDependencies: typescript: 6.0.2 @@ -14247,136 +14274,136 @@ snapshots: '@oxc-project/types@0.122.0': {} - '@oxfmt/binding-android-arm-eabi@0.45.0': + '@oxfmt/binding-android-arm-eabi@0.49.0': optional: true - '@oxfmt/binding-android-arm64@0.45.0': + '@oxfmt/binding-android-arm64@0.49.0': optional: true - '@oxfmt/binding-darwin-arm64@0.45.0': + '@oxfmt/binding-darwin-arm64@0.49.0': optional: true - '@oxfmt/binding-darwin-x64@0.45.0': + '@oxfmt/binding-darwin-x64@0.49.0': optional: true - '@oxfmt/binding-freebsd-x64@0.45.0': + '@oxfmt/binding-freebsd-x64@0.49.0': optional: true - '@oxfmt/binding-linux-arm-gnueabihf@0.45.0': + '@oxfmt/binding-linux-arm-gnueabihf@0.49.0': optional: true - '@oxfmt/binding-linux-arm-musleabihf@0.45.0': + '@oxfmt/binding-linux-arm-musleabihf@0.49.0': optional: true - '@oxfmt/binding-linux-arm64-gnu@0.45.0': + '@oxfmt/binding-linux-arm64-gnu@0.49.0': optional: true - '@oxfmt/binding-linux-arm64-musl@0.45.0': + '@oxfmt/binding-linux-arm64-musl@0.49.0': optional: true - '@oxfmt/binding-linux-ppc64-gnu@0.45.0': + '@oxfmt/binding-linux-ppc64-gnu@0.49.0': optional: true - '@oxfmt/binding-linux-riscv64-gnu@0.45.0': + '@oxfmt/binding-linux-riscv64-gnu@0.49.0': optional: true - '@oxfmt/binding-linux-riscv64-musl@0.45.0': + '@oxfmt/binding-linux-riscv64-musl@0.49.0': optional: true - '@oxfmt/binding-linux-s390x-gnu@0.45.0': + '@oxfmt/binding-linux-s390x-gnu@0.49.0': optional: true - '@oxfmt/binding-linux-x64-gnu@0.45.0': + '@oxfmt/binding-linux-x64-gnu@0.49.0': optional: true - '@oxfmt/binding-linux-x64-musl@0.45.0': + '@oxfmt/binding-linux-x64-musl@0.49.0': optional: true - '@oxfmt/binding-openharmony-arm64@0.45.0': + '@oxfmt/binding-openharmony-arm64@0.49.0': optional: true - '@oxfmt/binding-win32-arm64-msvc@0.45.0': + '@oxfmt/binding-win32-arm64-msvc@0.49.0': optional: true - '@oxfmt/binding-win32-ia32-msvc@0.45.0': + '@oxfmt/binding-win32-ia32-msvc@0.49.0': optional: true - '@oxfmt/binding-win32-x64-msvc@0.45.0': + '@oxfmt/binding-win32-x64-msvc@0.49.0': optional: true - '@oxlint-tsgolint/darwin-arm64@0.21.0': + '@oxlint-tsgolint/darwin-arm64@0.22.1': optional: true - '@oxlint-tsgolint/darwin-x64@0.21.0': + '@oxlint-tsgolint/darwin-x64@0.22.1': optional: true - '@oxlint-tsgolint/linux-arm64@0.21.0': + '@oxlint-tsgolint/linux-arm64@0.22.1': optional: true - '@oxlint-tsgolint/linux-x64@0.21.0': + '@oxlint-tsgolint/linux-x64@0.22.1': optional: true - '@oxlint-tsgolint/win32-arm64@0.21.0': + '@oxlint-tsgolint/win32-arm64@0.22.1': optional: true - '@oxlint-tsgolint/win32-x64@0.21.0': + '@oxlint-tsgolint/win32-x64@0.22.1': optional: true - '@oxlint/binding-android-arm-eabi@1.60.0': + '@oxlint/binding-android-arm-eabi@1.64.0': optional: true - '@oxlint/binding-android-arm64@1.60.0': + '@oxlint/binding-android-arm64@1.64.0': optional: true - '@oxlint/binding-darwin-arm64@1.60.0': + '@oxlint/binding-darwin-arm64@1.64.0': optional: true - '@oxlint/binding-darwin-x64@1.60.0': + '@oxlint/binding-darwin-x64@1.64.0': optional: true - '@oxlint/binding-freebsd-x64@1.60.0': + '@oxlint/binding-freebsd-x64@1.64.0': optional: true - '@oxlint/binding-linux-arm-gnueabihf@1.60.0': + '@oxlint/binding-linux-arm-gnueabihf@1.64.0': optional: true - '@oxlint/binding-linux-arm-musleabihf@1.60.0': + '@oxlint/binding-linux-arm-musleabihf@1.64.0': optional: true - '@oxlint/binding-linux-arm64-gnu@1.60.0': + '@oxlint/binding-linux-arm64-gnu@1.64.0': optional: true - '@oxlint/binding-linux-arm64-musl@1.60.0': + '@oxlint/binding-linux-arm64-musl@1.64.0': optional: true - '@oxlint/binding-linux-ppc64-gnu@1.60.0': + '@oxlint/binding-linux-ppc64-gnu@1.64.0': optional: true - '@oxlint/binding-linux-riscv64-gnu@1.60.0': + '@oxlint/binding-linux-riscv64-gnu@1.64.0': optional: true - '@oxlint/binding-linux-riscv64-musl@1.60.0': + '@oxlint/binding-linux-riscv64-musl@1.64.0': optional: true - '@oxlint/binding-linux-s390x-gnu@1.60.0': + '@oxlint/binding-linux-s390x-gnu@1.64.0': optional: true - '@oxlint/binding-linux-x64-gnu@1.60.0': + '@oxlint/binding-linux-x64-gnu@1.64.0': optional: true - '@oxlint/binding-linux-x64-musl@1.60.0': + '@oxlint/binding-linux-x64-musl@1.64.0': optional: true - '@oxlint/binding-openharmony-arm64@1.60.0': + '@oxlint/binding-openharmony-arm64@1.64.0': optional: true - '@oxlint/binding-win32-arm64-msvc@1.60.0': + '@oxlint/binding-win32-arm64-msvc@1.64.0': optional: true - '@oxlint/binding-win32-ia32-msvc@1.60.0': + '@oxlint/binding-win32-ia32-msvc@1.64.0': optional: true - '@oxlint/binding-win32-x64-msvc@1.60.0': + '@oxlint/binding-win32-x64-msvc@1.64.0': optional: true '@oxlint/plugins@1.43.0': {} @@ -14489,7 +14516,7 @@ snapshots: '@redocly/ajv@8.18.0': dependencies: fast-deep-equal: 3.1.3 - fast-uri: 3.1.0 + fast-uri: 3.1.2 json-schema-traverse: 1.0.0 require-from-string: 2.0.2 @@ -14663,7 +14690,7 @@ snapshots: dependencies: serialize-javascript: 6.0.2 smob: 1.6.1 - terser: 5.46.2 + terser: 5.47.1 optionalDependencies: rollup: 2.80.0 @@ -14676,7 +14703,7 @@ snapshots: '@rollup/pluginutils@5.3.0(rollup@2.80.0)': dependencies: - '@types/estree': 1.0.8 + '@types/estree': 1.0.9 estree-walker: 2.0.2 picomatch: 4.0.4 optionalDependencies: @@ -15169,10 +15196,10 @@ snapshots: axe-core: 4.11.1 storybook: 10.2.16(@testing-library/dom@10.4.1)(prettier@3.7.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/addon-docs@10.2.16(@types/react@19.2.14)(esbuild@0.27.7)(rollup@4.60.1)(storybook@10.2.16(@testing-library/dom@10.4.1)(prettier@3.7.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3))': + '@storybook/addon-docs@10.2.16(@types/react@19.2.14)(esbuild@0.27.7)(rollup@4.60.1)(storybook@10.2.16(@testing-library/dom@10.4.1)(prettier@3.7.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3))': dependencies: '@mdx-js/react': 3.1.1(@types/react@19.2.14)(react@18.3.1) - '@storybook/csf-plugin': 10.2.16(esbuild@0.27.7)(rollup@4.60.1)(storybook@10.2.16(@testing-library/dom@10.4.1)(prettier@3.7.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3)) + '@storybook/csf-plugin': 10.2.16(esbuild@0.27.7)(rollup@4.60.1)(storybook@10.2.16(@testing-library/dom@10.4.1)(prettier@3.7.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3)) '@storybook/icons': 2.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/react-dom-shim': 10.2.16(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.2.16(@testing-library/dom@10.4.1)(prettier@3.7.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) react: 18.3.1 @@ -15197,39 +15224,39 @@ snapshots: dependencies: storybook: 10.2.16(@testing-library/dom@10.4.1)(prettier@3.7.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/addon-vitest@10.2.16(@vitest/browser-playwright@4.0.18)(@vitest/browser@4.0.18(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.0))(@vitest/runner@4.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.2.16(@testing-library/dom@10.4.1)(prettier@3.7.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vitest@4.1.0)': + '@storybook/addon-vitest@10.2.16(@vitest/browser-playwright@4.0.18)(@vitest/browser@4.0.18(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.0))(@vitest/runner@4.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.2.16(@testing-library/dom@10.4.1)(prettier@3.7.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vitest@4.1.0)': dependencies: '@storybook/global': 5.0.0 '@storybook/icons': 2.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) storybook: 10.2.16(@testing-library/dom@10.4.1)(prettier@3.7.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) optionalDependencies: - '@vitest/browser': 4.0.18(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.0) - '@vitest/browser-playwright': 4.0.18(playwright@1.58.2)(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.0) + '@vitest/browser': 4.0.18(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.0) + '@vitest/browser-playwright': 4.0.18(playwright@1.58.2)(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.0) '@vitest/runner': 4.1.0 - vitest: 4.1.0(@types/node@24.9.1)(@vitest/browser-playwright@4.0.18)(happy-dom@20.8.9)(jsdom@27.4.0)(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3)) + vitest: 4.1.0(@types/node@24.9.1)(@vitest/browser-playwright@4.0.18)(happy-dom@20.8.9)(jsdom@27.4.0)(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3)) transitivePeerDependencies: - react - react-dom - '@storybook/builder-vite@10.2.16(esbuild@0.27.7)(rollup@4.60.1)(storybook@10.2.16(@testing-library/dom@10.4.1)(prettier@3.7.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3))': + '@storybook/builder-vite@10.2.16(esbuild@0.27.7)(rollup@4.60.1)(storybook@10.2.16(@testing-library/dom@10.4.1)(prettier@3.7.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3))': dependencies: - '@storybook/csf-plugin': 10.2.16(esbuild@0.27.7)(rollup@4.60.1)(storybook@10.2.16(@testing-library/dom@10.4.1)(prettier@3.7.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3)) + '@storybook/csf-plugin': 10.2.16(esbuild@0.27.7)(rollup@4.60.1)(storybook@10.2.16(@testing-library/dom@10.4.1)(prettier@3.7.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3)) storybook: 10.2.16(@testing-library/dom@10.4.1)(prettier@3.7.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) ts-dedent: 2.2.0 - vite: 7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3) + vite: 7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3) transitivePeerDependencies: - esbuild - rollup - webpack - '@storybook/csf-plugin@10.2.16(esbuild@0.27.7)(rollup@4.60.1)(storybook@10.2.16(@testing-library/dom@10.4.1)(prettier@3.7.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3))': + '@storybook/csf-plugin@10.2.16(esbuild@0.27.7)(rollup@4.60.1)(storybook@10.2.16(@testing-library/dom@10.4.1)(prettier@3.7.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3))': dependencies: storybook: 10.2.16(@testing-library/dom@10.4.1)(prettier@3.7.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) unplugin: 2.3.11 optionalDependencies: esbuild: 0.27.7 rollup: 4.60.1 - vite: 7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3) + vite: 7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3) '@storybook/global@5.0.0': {} @@ -15312,19 +15339,19 @@ snapshots: '@tailwindcss/oxide-win32-arm64-msvc': 4.2.1 '@tailwindcss/oxide-win32-x64-msvc': 4.2.1 - '@tailwindcss/vite@4.2.1(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3))': + '@tailwindcss/vite@4.2.1(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3))': dependencies: '@tailwindcss/node': 4.2.1 '@tailwindcss/oxide': 4.2.1 tailwindcss: 4.2.1 - vite: 7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3) + vite: 7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3) - '@tailwindcss/vite@4.2.1(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.70.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3))': + '@tailwindcss/vite@4.2.1(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.70.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3))': dependencies: '@tailwindcss/node': 4.2.1 '@tailwindcss/oxide': 4.2.1 tailwindcss: 4.2.1 - vite: 8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.70.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3) + vite: 8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.70.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3) '@tanstack/db-ivm@0.1.18(typescript@6.0.2)': dependencies: @@ -15665,6 +15692,8 @@ snapshots: '@types/estree@1.0.8': {} + '@types/estree@1.0.9': {} + '@types/express-serve-static-core@4.19.5': dependencies: '@types/node': 24.9.1 @@ -15968,29 +15997,29 @@ snapshots: '@typescript-eslint/types': 8.59.0 eslint-visitor-keys: 5.0.1 - '@vitest/browser-playwright@4.0.18(playwright@1.58.2)(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.0)': + '@vitest/browser-playwright@4.0.18(playwright@1.58.2)(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.0)': dependencies: - '@vitest/browser': 4.0.18(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.0) - '@vitest/mocker': 4.0.18(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3)) + '@vitest/browser': 4.0.18(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.0) + '@vitest/mocker': 4.0.18(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3)) playwright: 1.58.2 tinyrainbow: 3.0.3 - vitest: 4.1.0(@types/node@24.9.1)(@vitest/browser-playwright@4.0.18)(happy-dom@20.8.9)(jsdom@27.4.0)(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3)) + vitest: 4.1.0(@types/node@24.9.1)(@vitest/browser-playwright@4.0.18)(happy-dom@20.8.9)(jsdom@27.4.0)(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3)) transitivePeerDependencies: - bufferutil - msw - utf-8-validate - vite - '@vitest/browser@4.0.18(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.0)': + '@vitest/browser@4.0.18(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.0)': dependencies: - '@vitest/mocker': 4.0.18(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3)) + '@vitest/mocker': 4.0.18(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3)) '@vitest/utils': 4.0.18 magic-string: 0.30.21 pixelmatch: 7.1.0 pngjs: 7.0.0 sirv: 3.0.2 tinyrainbow: 3.0.3 - vitest: 4.1.0(@types/node@24.9.1)(@vitest/browser-playwright@4.0.18)(happy-dom@20.8.9)(jsdom@27.4.0)(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3)) + vitest: 4.1.0(@types/node@24.9.1)(@vitest/browser-playwright@4.0.18)(happy-dom@20.8.9)(jsdom@27.4.0)(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3)) ws: 8.19.0 transitivePeerDependencies: - bufferutil @@ -15998,7 +16027,7 @@ snapshots: - utf-8-validate - vite - '@vitest/coverage-v8@4.1.5(@vitest/browser@4.0.18(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.0))(vitest@4.1.0)': + '@vitest/coverage-v8@4.1.5(@vitest/browser@4.0.18(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.0))(vitest@4.1.0)': dependencies: '@bcoe/v8-coverage': 1.0.2 '@vitest/utils': 4.1.5 @@ -16010,11 +16039,11 @@ snapshots: obug: 2.1.1 std-env: 4.1.0 tinyrainbow: 3.1.0 - vitest: 4.1.0(@types/node@24.9.1)(@vitest/browser-playwright@4.0.18)(happy-dom@20.8.9)(jsdom@27.4.0)(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3)) + vitest: 4.1.0(@types/node@24.9.1)(@vitest/browser-playwright@4.0.18)(happy-dom@20.8.9)(jsdom@27.4.0)(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3)) optionalDependencies: - '@vitest/browser': 4.0.18(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.0) + '@vitest/browser': 4.0.18(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.0) - '@vitest/coverage-v8@4.1.5(vitest@4.1.0(@opentelemetry/api@1.8.0)(@types/node@24.9.1)(happy-dom@20.8.9)(jsdom@27.4.0)(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.2)))': + '@vitest/coverage-v8@4.1.5(vitest@4.1.0(@opentelemetry/api@1.8.0)(@types/node@24.9.1)(happy-dom@20.8.9)(jsdom@27.4.0)(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2)))': dependencies: '@bcoe/v8-coverage': 1.0.2 '@vitest/utils': 4.1.5 @@ -16026,9 +16055,9 @@ snapshots: obug: 2.1.1 std-env: 4.1.0 tinyrainbow: 3.1.0 - vitest: 4.1.0(@opentelemetry/api@1.8.0)(@types/node@24.9.1)(happy-dom@20.8.9)(jsdom@27.4.0)(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.2)) + vitest: 4.1.0(@opentelemetry/api@1.8.0)(@types/node@24.9.1)(happy-dom@20.8.9)(jsdom@27.4.0)(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2)) - '@vitest/coverage-v8@4.1.5(vitest@4.1.0(@types/node@24.9.1)(happy-dom@20.8.9)(jsdom@27.4.0)(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.70.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3)))': + '@vitest/coverage-v8@4.1.5(vitest@4.1.0(@types/node@24.9.1)(happy-dom@20.8.9)(jsdom@27.4.0)(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.70.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3)))': dependencies: '@bcoe/v8-coverage': 1.0.2 '@vitest/utils': 4.1.5 @@ -16040,9 +16069,9 @@ snapshots: obug: 2.1.1 std-env: 4.1.0 tinyrainbow: 3.1.0 - vitest: 4.1.0(@types/node@24.9.1)(happy-dom@20.8.9)(jsdom@27.4.0)(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.70.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3)) + vitest: 4.1.0(@types/node@24.9.1)(happy-dom@20.8.9)(jsdom@27.4.0)(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.70.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3)) - '@vitest/coverage-v8@4.1.5(vitest@4.1.0(@types/node@24.9.1)(happy-dom@20.8.9)(jsdom@27.4.0)(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3)))': + '@vitest/coverage-v8@4.1.5(vitest@4.1.0(@types/node@24.9.1)(happy-dom@20.8.9)(jsdom@27.4.0)(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3)))': dependencies: '@bcoe/v8-coverage': 1.0.2 '@vitest/utils': 4.1.5 @@ -16054,7 +16083,7 @@ snapshots: obug: 2.1.1 std-env: 4.1.0 tinyrainbow: 3.1.0 - vitest: 4.1.0(@types/node@24.9.1)(happy-dom@20.8.9)(jsdom@27.4.0)(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3)) + vitest: 4.1.0(@types/node@24.9.1)(happy-dom@20.8.9)(jsdom@27.4.0)(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3)) '@vitest/expect@3.2.4': dependencies: @@ -16073,45 +16102,53 @@ snapshots: chai: 6.2.2 tinyrainbow: 3.1.0 - '@vitest/mocker@4.0.18(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3))': + '@vitest/mocker@4.0.18(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3))': dependencies: '@vitest/spy': 4.0.18 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3) + vite: 7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3) + + '@vitest/mocker@4.1.0(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3))': + dependencies: + '@vitest/spy': 4.1.0 + estree-walker: 3.0.3 + magic-string: 0.30.21 + optionalDependencies: + vite: 7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3) - '@vitest/mocker@4.1.0(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3))': + '@vitest/mocker@4.1.0(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.25.0)(jiti@2.6.1)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3))': dependencies: '@vitest/spy': 4.1.0 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3) + vite: 8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.25.0)(jiti@2.6.1)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3) - '@vitest/mocker@4.1.0(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.70.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3))': + '@vitest/mocker@4.1.0(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.70.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3))': dependencies: '@vitest/spy': 4.1.0 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.70.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3) + vite: 8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.70.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3) - '@vitest/mocker@4.1.0(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.2))': + '@vitest/mocker@4.1.0(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2))': dependencies: '@vitest/spy': 4.1.0 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.2) + vite: 8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2) - '@vitest/mocker@4.1.0(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3))': + '@vitest/mocker@4.1.0(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3))': dependencies: '@vitest/spy': 4.1.0 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3) + vite: 8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3) '@vitest/pretty-format@3.2.4': dependencies: @@ -16280,7 +16317,7 @@ snapshots: ajv@8.20.0: dependencies: fast-deep-equal: 3.1.3 - fast-uri: 3.1.0 + fast-uri: 3.1.2 json-schema-traverse: 1.0.0 require-from-string: 2.0.2 @@ -16498,7 +16535,7 @@ snapshots: babel-plugin-polyfill-corejs2@0.4.17(@babel/core@7.29.0): dependencies: - '@babel/compat-data': 7.29.0 + '@babel/compat-data': 7.29.3 '@babel/core': 7.29.0 '@babel/helper-define-polyfill-provider': 0.6.8(@babel/core@7.29.0) semver: 6.3.1 @@ -18249,7 +18286,7 @@ snapshots: fast-safe-stringify@2.1.1: {} - fast-uri@3.1.0: {} + fast-uri@3.1.2: {} fast-url-parser@1.1.3: dependencies: @@ -19332,6 +19369,10 @@ snapshots: dependencies: hasown: 2.0.2 + is-core-module@2.16.2: + dependencies: + hasown: 2.0.3 + is-data-view@1.0.2: dependencies: call-bound: 1.0.4 @@ -21002,61 +21043,61 @@ snapshots: object-keys: 1.1.1 safe-push-apply: 1.0.0 - oxfmt@0.45.0: + oxfmt@0.49.0: dependencies: tinypool: 2.1.0 optionalDependencies: - '@oxfmt/binding-android-arm-eabi': 0.45.0 - '@oxfmt/binding-android-arm64': 0.45.0 - '@oxfmt/binding-darwin-arm64': 0.45.0 - '@oxfmt/binding-darwin-x64': 0.45.0 - '@oxfmt/binding-freebsd-x64': 0.45.0 - '@oxfmt/binding-linux-arm-gnueabihf': 0.45.0 - '@oxfmt/binding-linux-arm-musleabihf': 0.45.0 - '@oxfmt/binding-linux-arm64-gnu': 0.45.0 - '@oxfmt/binding-linux-arm64-musl': 0.45.0 - '@oxfmt/binding-linux-ppc64-gnu': 0.45.0 - '@oxfmt/binding-linux-riscv64-gnu': 0.45.0 - '@oxfmt/binding-linux-riscv64-musl': 0.45.0 - '@oxfmt/binding-linux-s390x-gnu': 0.45.0 - '@oxfmt/binding-linux-x64-gnu': 0.45.0 - '@oxfmt/binding-linux-x64-musl': 0.45.0 - '@oxfmt/binding-openharmony-arm64': 0.45.0 - '@oxfmt/binding-win32-arm64-msvc': 0.45.0 - '@oxfmt/binding-win32-ia32-msvc': 0.45.0 - '@oxfmt/binding-win32-x64-msvc': 0.45.0 - - oxlint-tsgolint@0.21.0: + '@oxfmt/binding-android-arm-eabi': 0.49.0 + '@oxfmt/binding-android-arm64': 0.49.0 + '@oxfmt/binding-darwin-arm64': 0.49.0 + '@oxfmt/binding-darwin-x64': 0.49.0 + '@oxfmt/binding-freebsd-x64': 0.49.0 + '@oxfmt/binding-linux-arm-gnueabihf': 0.49.0 + '@oxfmt/binding-linux-arm-musleabihf': 0.49.0 + '@oxfmt/binding-linux-arm64-gnu': 0.49.0 + '@oxfmt/binding-linux-arm64-musl': 0.49.0 + '@oxfmt/binding-linux-ppc64-gnu': 0.49.0 + '@oxfmt/binding-linux-riscv64-gnu': 0.49.0 + '@oxfmt/binding-linux-riscv64-musl': 0.49.0 + '@oxfmt/binding-linux-s390x-gnu': 0.49.0 + '@oxfmt/binding-linux-x64-gnu': 0.49.0 + '@oxfmt/binding-linux-x64-musl': 0.49.0 + '@oxfmt/binding-openharmony-arm64': 0.49.0 + '@oxfmt/binding-win32-arm64-msvc': 0.49.0 + '@oxfmt/binding-win32-ia32-msvc': 0.49.0 + '@oxfmt/binding-win32-x64-msvc': 0.49.0 + + oxlint-tsgolint@0.22.1: optionalDependencies: - '@oxlint-tsgolint/darwin-arm64': 0.21.0 - '@oxlint-tsgolint/darwin-x64': 0.21.0 - '@oxlint-tsgolint/linux-arm64': 0.21.0 - '@oxlint-tsgolint/linux-x64': 0.21.0 - '@oxlint-tsgolint/win32-arm64': 0.21.0 - '@oxlint-tsgolint/win32-x64': 0.21.0 - - oxlint@1.60.0(oxlint-tsgolint@0.21.0): + '@oxlint-tsgolint/darwin-arm64': 0.22.1 + '@oxlint-tsgolint/darwin-x64': 0.22.1 + '@oxlint-tsgolint/linux-arm64': 0.22.1 + '@oxlint-tsgolint/linux-x64': 0.22.1 + '@oxlint-tsgolint/win32-arm64': 0.22.1 + '@oxlint-tsgolint/win32-x64': 0.22.1 + + oxlint@1.64.0(oxlint-tsgolint@0.22.1): optionalDependencies: - '@oxlint/binding-android-arm-eabi': 1.60.0 - '@oxlint/binding-android-arm64': 1.60.0 - '@oxlint/binding-darwin-arm64': 1.60.0 - '@oxlint/binding-darwin-x64': 1.60.0 - '@oxlint/binding-freebsd-x64': 1.60.0 - '@oxlint/binding-linux-arm-gnueabihf': 1.60.0 - '@oxlint/binding-linux-arm-musleabihf': 1.60.0 - '@oxlint/binding-linux-arm64-gnu': 1.60.0 - '@oxlint/binding-linux-arm64-musl': 1.60.0 - '@oxlint/binding-linux-ppc64-gnu': 1.60.0 - '@oxlint/binding-linux-riscv64-gnu': 1.60.0 - '@oxlint/binding-linux-riscv64-musl': 1.60.0 - '@oxlint/binding-linux-s390x-gnu': 1.60.0 - '@oxlint/binding-linux-x64-gnu': 1.60.0 - '@oxlint/binding-linux-x64-musl': 1.60.0 - '@oxlint/binding-openharmony-arm64': 1.60.0 - '@oxlint/binding-win32-arm64-msvc': 1.60.0 - '@oxlint/binding-win32-ia32-msvc': 1.60.0 - '@oxlint/binding-win32-x64-msvc': 1.60.0 - oxlint-tsgolint: 0.21.0 + '@oxlint/binding-android-arm-eabi': 1.64.0 + '@oxlint/binding-android-arm64': 1.64.0 + '@oxlint/binding-darwin-arm64': 1.64.0 + '@oxlint/binding-darwin-x64': 1.64.0 + '@oxlint/binding-freebsd-x64': 1.64.0 + '@oxlint/binding-linux-arm-gnueabihf': 1.64.0 + '@oxlint/binding-linux-arm-musleabihf': 1.64.0 + '@oxlint/binding-linux-arm64-gnu': 1.64.0 + '@oxlint/binding-linux-arm64-musl': 1.64.0 + '@oxlint/binding-linux-ppc64-gnu': 1.64.0 + '@oxlint/binding-linux-riscv64-gnu': 1.64.0 + '@oxlint/binding-linux-riscv64-musl': 1.64.0 + '@oxlint/binding-linux-s390x-gnu': 1.64.0 + '@oxlint/binding-linux-x64-gnu': 1.64.0 + '@oxlint/binding-linux-x64-musl': 1.64.0 + '@oxlint/binding-openharmony-arm64': 1.64.0 + '@oxlint/binding-win32-arm64-msvc': 1.64.0 + '@oxlint/binding-win32-ia32-msvc': 1.64.0 + '@oxlint/binding-win32-x64-msvc': 1.64.0 + oxlint-tsgolint: 0.22.1 p-defer@3.0.0: {} @@ -21773,7 +21814,7 @@ snapshots: resolve@1.22.12: dependencies: es-errors: 1.3.0 - is-core-module: 2.16.1 + is-core-module: 2.16.2 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 @@ -22306,7 +22347,7 @@ snapshots: ip-address: 9.0.5 smart-buffer: 4.2.0 - solid-devtools@0.34.5(solid-js@1.9.10)(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.70.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3)): + solid-devtools@0.34.5(solid-js@1.9.10)(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.70.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3)): dependencies: '@babel/core': 7.28.6 '@babel/plugin-syntax-typescript': 7.28.6(@babel/core@7.28.6) @@ -22315,7 +22356,7 @@ snapshots: '@solid-devtools/shared': 0.20.0(solid-js@1.9.10) solid-js: 1.9.10 optionalDependencies: - vite: 8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.70.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3) + vite: 8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.70.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3) transitivePeerDependencies: - supports-color @@ -22458,15 +22499,15 @@ snapshots: es-errors: 1.3.0 internal-slot: 1.1.0 - storybook-solidjs-vite@10.0.9(@testing-library/jest-dom@6.9.1)(esbuild@0.27.7)(rollup@4.60.1)(solid-js@1.9.11)(storybook@10.2.16(@testing-library/dom@10.4.1)(prettier@3.7.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@6.0.2)(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3)): + storybook-solidjs-vite@10.0.9(@testing-library/jest-dom@6.9.1)(esbuild@0.27.7)(rollup@4.60.1)(solid-js@1.9.11)(storybook@10.2.16(@testing-library/dom@10.4.1)(prettier@3.7.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@6.0.2)(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3)): dependencies: - '@joshwooding/vite-plugin-react-docgen-typescript': 0.6.4(typescript@6.0.2)(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3)) - '@storybook/builder-vite': 10.2.16(esbuild@0.27.7)(rollup@4.60.1)(storybook@10.2.16(@testing-library/dom@10.4.1)(prettier@3.7.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3)) + '@joshwooding/vite-plugin-react-docgen-typescript': 0.6.4(typescript@6.0.2)(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3)) + '@storybook/builder-vite': 10.2.16(esbuild@0.27.7)(rollup@4.60.1)(storybook@10.2.16(@testing-library/dom@10.4.1)(prettier@3.7.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3)) '@storybook/global': 5.0.0 solid-js: 1.9.11 storybook: 10.2.16(@testing-library/dom@10.4.1)(prettier@3.7.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - vite: 7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3) - vite-plugin-solid: 2.11.10(@testing-library/jest-dom@6.9.1)(solid-js@1.9.11)(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3)) + vite: 7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3) + vite-plugin-solid: 2.11.10(@testing-library/jest-dom@6.9.1)(solid-js@1.9.11)(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3)) optionalDependencies: typescript: 6.0.2 transitivePeerDependencies: @@ -22963,7 +23004,7 @@ snapshots: commander: 2.20.3 source-map-support: 0.5.21 - terser@5.46.2: + terser@5.47.1: dependencies: '@jridgewell/source-map': 0.3.11 acorn: 8.16.0 @@ -23453,19 +23494,19 @@ snapshots: - rollup - supports-color - vite-dev-rpc@1.1.0(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.70.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3)): + vite-dev-rpc@1.1.0(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.70.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3)): dependencies: birpc: 2.6.1 - vite: 8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.70.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3) - vite-hot-client: 2.1.0(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.70.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3)) + vite: 8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.70.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3) + vite-hot-client: 2.1.0(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.70.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3)) - vite-hot-client@2.1.0(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.70.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3)): + vite-hot-client@2.1.0(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.70.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3)): dependencies: - vite: 8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.70.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3) + vite: 8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.70.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3) vite-plugin-html-inject@1.1.2: {} - vite-plugin-inspect@11.3.3(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.70.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3)): + vite-plugin-inspect@11.3.3(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.70.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3)): dependencies: ansis: 4.2.0 debug: 4.4.3 @@ -23475,29 +23516,29 @@ snapshots: perfect-debounce: 2.0.0 sirv: 3.0.2 unplugin-utils: 0.3.1 - vite: 8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.70.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3) - vite-dev-rpc: 1.1.0(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.70.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3)) + vite: 8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.70.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3) + vite-dev-rpc: 1.1.0(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.70.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3)) transitivePeerDependencies: - supports-color - vite-plugin-minify@2.1.0(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.70.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3)): + vite-plugin-minify@2.1.0(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.70.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3)): dependencies: '@types/html-minifier-terser': 7.0.2 html-minifier-terser: 7.2.0 - vite: 8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.70.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3) + vite: 8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.70.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3) - vite-plugin-pwa@1.1.0(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.70.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3))(workbox-build@7.1.1(@types/babel__core@7.20.5))(workbox-window@7.1.0): + vite-plugin-pwa@1.1.0(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.70.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3))(workbox-build@7.1.1(@types/babel__core@7.20.5))(workbox-window@7.1.0): dependencies: debug: 4.4.3 pretty-bytes: 6.1.1 tinyglobby: 0.2.15 - vite: 8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.70.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3) + vite: 8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.70.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3) workbox-build: 7.1.1(@types/babel__core@7.20.5) workbox-window: 7.1.0 transitivePeerDependencies: - supports-color - vite-plugin-solid@2.11.10(@testing-library/jest-dom@6.9.1)(solid-js@1.9.11)(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3)): + vite-plugin-solid@2.11.10(@testing-library/jest-dom@6.9.1)(solid-js@1.9.11)(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3)): dependencies: '@babel/core': 7.28.5 '@types/babel__core': 7.20.5 @@ -23505,14 +23546,14 @@ snapshots: merge-anything: 5.1.7 solid-js: 1.9.11 solid-refresh: 0.6.3(solid-js@1.9.11) - vite: 7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3) - vitefu: 1.1.1(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3)) + vite: 7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3) + vitefu: 1.1.1(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3)) optionalDependencies: '@testing-library/jest-dom': 6.9.1 transitivePeerDependencies: - supports-color - vite-plugin-solid@2.11.11(@testing-library/jest-dom@6.9.1)(solid-js@1.9.10)(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.70.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3)): + vite-plugin-solid@2.11.11(@testing-library/jest-dom@6.9.1)(solid-js@1.9.10)(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.70.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3)): dependencies: '@babel/core': 7.28.6 '@types/babel__core': 7.20.5 @@ -23520,14 +23561,14 @@ snapshots: merge-anything: 5.1.7 solid-js: 1.9.10 solid-refresh: 0.6.3(solid-js@1.9.10) - vite: 8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.70.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3) - vitefu: 1.1.1(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.70.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3)) + vite: 8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.70.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3) + vitefu: 1.1.1(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.70.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3)) optionalDependencies: '@testing-library/jest-dom': 6.9.1 transitivePeerDependencies: - supports-color - vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3): + vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3): dependencies: esbuild: 0.27.7 fdir: 6.5.0(picomatch@4.0.4) @@ -23541,11 +23582,31 @@ snapshots: jiti: 2.6.1 lightningcss: 1.32.0 sass: 1.98.0 - terser: 5.46.2 + terser: 5.47.1 tsx: 4.21.0 yaml: 2.8.3 - vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.70.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3): + vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.25.0)(jiti@2.6.1)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3): + dependencies: + lightningcss: 1.32.0 + picomatch: 4.0.4 + postcss: 8.5.8 + rolldown: 1.0.0-rc.12(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0) + tinyglobby: 0.2.15 + optionalDependencies: + '@types/node': 24.9.1 + esbuild: 0.25.0 + fsevents: 2.3.3 + jiti: 2.6.1 + sass: 1.98.0 + terser: 5.47.1 + tsx: 4.21.0 + yaml: 2.8.3 + transitivePeerDependencies: + - '@emnapi/core' + - '@emnapi/runtime' + + vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.70.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3): dependencies: lightningcss: 1.32.0 picomatch: 4.0.4 @@ -23558,14 +23619,14 @@ snapshots: fsevents: 2.3.3 jiti: 2.6.1 sass: 1.70.0 - terser: 5.46.2 + terser: 5.47.1 tsx: 4.21.0 yaml: 2.8.3 transitivePeerDependencies: - '@emnapi/core' - '@emnapi/runtime' - vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.2): + vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2): dependencies: lightningcss: 1.32.0 picomatch: 4.0.4 @@ -23578,14 +23639,14 @@ snapshots: fsevents: 2.3.3 jiti: 2.6.1 sass: 1.98.0 - terser: 5.46.2 + terser: 5.47.1 tsx: 4.21.0 yaml: 2.8.2 transitivePeerDependencies: - '@emnapi/core' - '@emnapi/runtime' - vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3): + vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3): dependencies: lightningcss: 1.32.0 picomatch: 4.0.4 @@ -23598,25 +23659,25 @@ snapshots: fsevents: 2.3.3 jiti: 2.6.1 sass: 1.98.0 - terser: 5.46.2 + terser: 5.47.1 tsx: 4.21.0 yaml: 2.8.3 transitivePeerDependencies: - '@emnapi/core' - '@emnapi/runtime' - vitefu@1.1.1(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3)): + vitefu@1.1.1(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3)): optionalDependencies: - vite: 7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3) + vite: 7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3) - vitefu@1.1.1(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.70.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3)): + vitefu@1.1.1(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.70.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3)): optionalDependencies: - vite: 8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.70.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3) + vite: 8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.70.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3) - vitest@4.1.0(@opentelemetry/api@1.8.0)(@types/node@24.9.1)(happy-dom@20.8.9)(jsdom@27.4.0)(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.2)): + vitest@4.1.0(@opentelemetry/api@1.8.0)(@types/node@24.9.1)(happy-dom@20.8.9)(jsdom@27.4.0)(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2)): dependencies: '@vitest/expect': 4.1.0 - '@vitest/mocker': 4.1.0(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.2)) + '@vitest/mocker': 4.1.0(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2)) '@vitest/pretty-format': 4.1.0 '@vitest/runner': 4.1.0 '@vitest/snapshot': 4.1.0 @@ -23633,7 +23694,7 @@ snapshots: tinyexec: 1.0.2 tinyglobby: 0.2.15 tinyrainbow: 3.0.3 - vite: 8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.2) + vite: 8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2) why-is-node-running: 2.3.0 optionalDependencies: '@opentelemetry/api': 1.8.0 @@ -23643,10 +23704,40 @@ snapshots: transitivePeerDependencies: - msw - vitest@4.1.0(@types/node@24.9.1)(@vitest/browser-playwright@4.0.18)(happy-dom@20.8.9)(jsdom@27.4.0)(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3)): + vitest@4.1.0(@types/node@24.9.1)(@vitest/browser-playwright@4.0.18)(happy-dom@20.8.9)(jsdom@27.4.0)(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3)): + dependencies: + '@vitest/expect': 4.1.0 + '@vitest/mocker': 4.1.0(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3)) + '@vitest/pretty-format': 4.1.0 + '@vitest/runner': 4.1.0 + '@vitest/snapshot': 4.1.0 + '@vitest/spy': 4.1.0 + '@vitest/utils': 4.1.0 + es-module-lexer: 2.0.0 + expect-type: 1.3.0 + magic-string: 0.30.21 + obug: 2.1.1 + pathe: 2.0.3 + picomatch: 4.0.3 + std-env: 4.0.0 + tinybench: 2.9.0 + tinyexec: 1.0.2 + tinyglobby: 0.2.15 + tinyrainbow: 3.0.3 + vite: 7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3) + why-is-node-running: 2.3.0 + optionalDependencies: + '@types/node': 24.9.1 + '@vitest/browser-playwright': 4.0.18(playwright@1.58.2)(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.0) + happy-dom: 20.8.9 + jsdom: 27.4.0 + transitivePeerDependencies: + - msw + + vitest@4.1.0(@types/node@24.9.1)(happy-dom@20.8.9)(jsdom@27.4.0)(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.25.0)(jiti@2.6.1)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3)): dependencies: '@vitest/expect': 4.1.0 - '@vitest/mocker': 4.1.0(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3)) + '@vitest/mocker': 4.1.0(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.25.0)(jiti@2.6.1)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3)) '@vitest/pretty-format': 4.1.0 '@vitest/runner': 4.1.0 '@vitest/snapshot': 4.1.0 @@ -23663,20 +23754,19 @@ snapshots: tinyexec: 1.0.2 tinyglobby: 0.2.15 tinyrainbow: 3.0.3 - vite: 7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3) + vite: 8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.25.0)(jiti@2.6.1)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 24.9.1 - '@vitest/browser-playwright': 4.0.18(playwright@1.58.2)(vite@7.3.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.0) happy-dom: 20.8.9 jsdom: 27.4.0 transitivePeerDependencies: - msw - vitest@4.1.0(@types/node@24.9.1)(happy-dom@20.8.9)(jsdom@27.4.0)(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.70.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3)): + vitest@4.1.0(@types/node@24.9.1)(happy-dom@20.8.9)(jsdom@27.4.0)(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.70.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3)): dependencies: '@vitest/expect': 4.1.0 - '@vitest/mocker': 4.1.0(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.70.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3)) + '@vitest/mocker': 4.1.0(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.70.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3)) '@vitest/pretty-format': 4.1.0 '@vitest/runner': 4.1.0 '@vitest/snapshot': 4.1.0 @@ -23693,7 +23783,7 @@ snapshots: tinyexec: 1.0.2 tinyglobby: 0.2.15 tinyrainbow: 3.0.3 - vite: 8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.70.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3) + vite: 8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.70.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 24.9.1 @@ -23702,10 +23792,10 @@ snapshots: transitivePeerDependencies: - msw - vitest@4.1.0(@types/node@24.9.1)(happy-dom@20.8.9)(jsdom@27.4.0)(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3)): + vitest@4.1.0(@types/node@24.9.1)(happy-dom@20.8.9)(jsdom@27.4.0)(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3)): dependencies: '@vitest/expect': 4.1.0 - '@vitest/mocker': 4.1.0(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3)) + '@vitest/mocker': 4.1.0(vite@8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3)) '@vitest/pretty-format': 4.1.0 '@vitest/runner': 4.1.0 '@vitest/snapshot': 4.1.0 @@ -23722,7 +23812,7 @@ snapshots: tinyexec: 1.0.2 tinyglobby: 0.2.15 tinyrainbow: 3.0.3 - vite: 8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.98.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.3) + vite: 8.0.5(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@24.9.1)(esbuild@0.27.7)(jiti@2.6.1)(sass@1.98.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.3) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 24.9.1 @@ -23916,7 +24006,7 @@ snapshots: dependencies: '@apideck/better-ajv-errors': 0.3.7(ajv@8.20.0) '@babel/core': 7.29.0 - '@babel/preset-env': 7.29.2(@babel/core@7.29.0) + '@babel/preset-env': 7.29.5(@babel/core@7.29.0) '@babel/runtime': 7.29.2 '@rollup/plugin-babel': 5.3.1(@babel/core@7.29.0)(@types/babel__core@7.20.5)(rollup@2.80.0) '@rollup/plugin-node-resolve': 15.3.1(rollup@2.80.0) From d6c934124109387999770c835fbe3a3ae083ae76 Mon Sep 17 00:00:00 2001 From: Christian Fehmer Date: Wed, 13 May 2026 11:12:09 +0200 Subject: [PATCH 2/5] fix(leaderboard): add validation on page number (@fehmer) (#7946) --- .../ts/components/pages/leaderboard/Navigation.tsx | 13 +++++++++++++ frontend/src/ts/states/simple-modal.ts | 9 ++------- packages/contracts/src/leaderboards.ts | 3 ++- packages/schemas/src/util.ts | 7 +++++++ 4 files changed, 24 insertions(+), 8 deletions(-) diff --git a/frontend/src/ts/components/pages/leaderboard/Navigation.tsx b/frontend/src/ts/components/pages/leaderboard/Navigation.tsx index 67b6bca974df..85b0e057fe0f 100644 --- a/frontend/src/ts/components/pages/leaderboard/Navigation.tsx +++ b/frontend/src/ts/components/pages/leaderboard/Navigation.tsx @@ -1,3 +1,4 @@ +import { PageNumberSchema } from "@monkeytype/schemas/util"; import { JSXElement, Setter, Show } from "solid-js"; import { setPage } from "../../../states/leaderboard-selection"; @@ -62,6 +63,18 @@ export function Navigation(props: { { type: "number", placeholder: "Page number", + validation: { + isValid: async (page) => { + const validationResult = PageNumberSchema.safeParse( + Number.parseInt(page), + ); + + if (validationResult.success) return true; + return validationResult.error.errors + .map((err) => err.message) + .join(", "); + }, + }, }, ], buttonText: "Go", diff --git a/frontend/src/ts/states/simple-modal.ts b/frontend/src/ts/states/simple-modal.ts index 911bffbafa38..de950b3bdaac 100644 --- a/frontend/src/ts/states/simple-modal.ts +++ b/frontend/src/ts/states/simple-modal.ts @@ -1,5 +1,4 @@ import { createSignal } from "solid-js"; -import { z } from "zod"; import { showModal, hideModal } from "./modals"; import { @@ -8,7 +7,7 @@ import { showErrorNotification, } from "./notifications"; import { showLoaderBar, hideLoaderBar } from "./loader-bar"; -import { IsValidResponse } from "../types/validation"; +import { Validation } from "../types/validation"; type CommonInput = { type: TType; @@ -20,11 +19,7 @@ type CommonInput = { optional?: boolean; label?: string; oninput?: (event: Event) => void; - validation?: { - schema?: z.Schema; - isValid?: (value: string) => Promise; - debounceDelay?: number; - }; + validation?: Validation; }; export type TextInput = CommonInput<"text", string>; diff --git a/packages/contracts/src/leaderboards.ts b/packages/contracts/src/leaderboards.ts index 767b96375140..73256fbc8565 100644 --- a/packages/contracts/src/leaderboards.ts +++ b/packages/contracts/src/leaderboards.ts @@ -13,6 +13,7 @@ import { import { Mode2Schema, ModeSchema } from "@monkeytype/schemas/shared"; import { initContract } from "@ts-rest/core"; import { LanguageSchema } from "@monkeytype/schemas/languages"; +import { PageNumberSchema } from "@monkeytype/schemas/util"; const LanguageAndModeQuerySchema = z.object({ language: LanguageSchema, @@ -21,7 +22,7 @@ const LanguageAndModeQuerySchema = z.object({ }); const PaginationQuerySchema = z.object({ - page: z.number().int().safe().nonnegative().default(0), + page: PageNumberSchema, pageSize: z.number().int().safe().positive().min(10).max(200).default(50), }); diff --git a/packages/schemas/src/util.ts b/packages/schemas/src/util.ts index 4abbf2c39c47..e5f71357d1d2 100644 --- a/packages/schemas/src/util.ts +++ b/packages/schemas/src/util.ts @@ -64,3 +64,10 @@ export function customEnumErrorHandler(message: string): ZodErrorMap { : (issue.message ?? "Required"), }); } + +export const PageNumberSchema = z + .number() + .int() + .safe() + .nonnegative() + .default(0); From f3f197e954c736dd789419ad9982199c0193b1f2 Mon Sep 17 00:00:00 2001 From: Christian Fehmer Date: Wed, 13 May 2026 11:12:37 +0200 Subject: [PATCH 3/5] ci: don't fail check-assets when running outside github workflow (@fehmer) (#7943) --- frontend/scripts/check-assets.ts | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/frontend/scripts/check-assets.ts b/frontend/scripts/check-assets.ts index a0b267d5ee31..36ff817c3f87 100644 --- a/frontend/scripts/check-assets.ts +++ b/frontend/scripts/check-assets.ts @@ -24,7 +24,8 @@ import { QuoteDataSchema, QuoteData } from "@monkeytype/schemas/quotes"; import { clickSoundConfig } from "../src/ts/constants/sounds"; import * as ghCore from "@actions/core"; -const stepSummary = ghCore.summary; +const stepSummary = + process.env["GITHUB_STEP_SUMMARY"] !== undefined ? ghCore.summary : undefined; class Problems { private type: string; @@ -54,16 +55,16 @@ class Problems { return Object.keys(this.problems).length !== 0; } public toString(): string { - stepSummary.addHeading(`${this.type} Checks`, 2); + stepSummary?.addHeading(`${this.type} Checks`, 2); if (!this.hasError()) { - stepSummary.addRaw("✅ all checks passed").addEOL(); + stepSummary?.addRaw("✅ all checks passed").addEOL(); return `${this.type} are all \u001b[32mvalid\u001b[0m`; } Object.entries(this.problems).forEach(([key, problems]) => { let label: string = this.labels[key as T] ?? `${key}`; stepSummary - .addRaw(`❌ ${label}`) + ?.addRaw(`❌ ${label}`) .addEOL() .addList(problems as string[]) .addEOL(); @@ -531,7 +532,7 @@ async function main(): Promise { [...tasks].map(async (validator) => validator()), ); - await stepSummary.write(); + await stepSummary?.write(); if (results.find((it) => it.status === "rejected") !== undefined) { throw new Error("One or more checks failed."); From 18b750517348113f7178f22666fa31085602c660 Mon Sep 17 00:00:00 2001 From: Miodec Date: Wed, 13 May 2026 10:23:52 +0200 Subject: [PATCH 4/5] chore: update claude.md --- CLAUDE.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CLAUDE.md b/CLAUDE.md index 5d2b5248e2ff..4bb483a53281 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -1,6 +1,8 @@ Be extremely concise. Sacrifice grammar for concision. Frontend is partially migrated from vanilla JS to SolidJS — new components use `.tsx`, legacy code remains vanilla. Single test file: `pnpm vitest run path/to/test.ts` +When running oxc lint, always use `--format agent`. +For typechecking, use `oxc --type-aware --type-check` instead of `tsc`. For styling, use Tailwind CSS, class property, `cn` utility. Do not use classlist. Only colors available are those defined in Tailwind config. In legacy code, use `i` tags with FontAwesome classes. In new code, use `Fa` component. In plan mode, before writing up a plan, ask clarifying questions if needed. At the end of plan mode, give me a list of unresolved questions to answer, if any. Make them concise. \ No newline at end of file From b570bd1b62e1ccd123c00897ba31408a1ea1eb37 Mon Sep 17 00:00:00 2001 From: Miodec Date: Wed, 13 May 2026 11:09:38 +0200 Subject: [PATCH 5/5] chore: enable prefer template --- .../__integration__/dal/blocklist.spec.ts | 26 +++---- .../dal/leaderboards.isolated.spec.ts | 6 +- .../__integration__/dal/user.spec.ts | 18 ++--- backend/__tests__/__testData__/connections.ts | 2 +- backend/__tests__/__testData__/users.ts | 4 +- .../api/controllers/leaderboard.spec.ts | 14 ++-- .../__tests__/api/controllers/public.spec.ts | 4 +- .../__tests__/api/controllers/user.spec.ts | 6 +- backend/private/script.js | 2 +- backend/scripts/openapi.ts | 4 +- backend/src/api/controllers/admin.ts | 2 +- backend/src/api/controllers/dev.ts | 4 +- backend/src/api/controllers/quote.ts | 2 +- backend/src/api/controllers/result.ts | 2 +- backend/src/api/controllers/user.ts | 7 +- backend/src/api/routes/docs.ts | 2 +- backend/src/api/routes/swagger.ts | 2 +- backend/src/dal/logs.ts | 2 +- backend/src/init/email-client.ts | 5 +- backend/src/middlewares/auth.ts | 2 +- backend/src/utils/error.ts | 6 +- .../elements/test-activity-calendar.spec.ts | 2 +- .../__tests__/utils/key-converter.spec.ts | 4 +- frontend/scripts/check-assets.ts | 35 +++++---- frontend/scripts/import-tree.ts | 4 +- frontend/src/ts/auth.tsx | 2 +- frontend/src/ts/collections/inbox.ts | 8 +- frontend/src/ts/collections/presets.ts | 2 +- frontend/src/ts/collections/results.ts | 2 +- frontend/src/ts/collections/utils/misc.ts | 4 +- frontend/src/ts/commandline/commandline.ts | 5 +- frontend/src/ts/commandline/lists.ts | 12 +-- .../ts/commandline/lists/custom-background.ts | 4 +- .../commandline/lists/custom-themes-list.ts | 2 +- .../src/ts/commandline/lists/font-family.ts | 4 +- frontend/src/ts/commandline/lists/funbox.ts | 2 +- .../ts/commandline/lists/load-challenge.ts | 2 +- frontend/src/ts/commandline/lists/presets.ts | 2 +- frontend/src/ts/commandline/lists/tags.ts | 2 +- frontend/src/ts/commandline/lists/themes.ts | 2 +- .../ts/components/common/Advertisement.tsx | 6 +- frontend/src/ts/components/common/Bar.tsx | 4 +- frontend/src/ts/components/core/FavIcon.tsx | 2 +- .../components/layout/header/AccountMenu.tsx | 4 +- .../ts/components/modals/CustomTextModal.tsx | 5 +- .../components/modals/ShareTestSettings.tsx | 2 +- .../ts/components/modals/WordFilterModal.tsx | 2 +- .../pages/account/DailyActivityChart.tsx | 3 +- .../ts/components/pages/account/Filters.tsx | 2 +- .../pages/leaderboard/Navigation.tsx | 2 +- .../pages/leaderboard/NextUpdate.tsx | 16 ++-- .../ts/components/pages/leaderboard/Title.tsx | 2 +- .../components/pages/profile/UserDetails.tsx | 14 ++-- .../ts/components/pages/test/TestConfig.tsx | 2 +- .../ts/controllers/challenge-controller.ts | 4 +- .../src/ts/controllers/chart-controller.ts | 8 +- .../src/ts/controllers/route-controller.ts | 4 +- frontend/src/ts/controllers/url-handler.tsx | 4 +- frontend/src/ts/db.ts | 2 +- frontend/src/ts/elements/input-validation.ts | 15 ++-- frontend/src/ts/elements/keymap.ts | 4 +- frontend/src/ts/elements/modes-notice.ts | 2 +- frontend/src/ts/elements/no-css.ts | 28 +++---- frontend/src/ts/elements/result-batches.ts | 4 +- .../src/ts/elements/result-word-highlight.ts | 25 +++--- .../ts/elements/settings/settings-group.ts | 2 +- frontend/src/ts/elements/simple-modal.ts | 2 +- frontend/src/ts/elements/test-activity.ts | 2 +- frontend/src/ts/firebase.ts | 2 +- frontend/src/ts/input/helpers/validation.ts | 2 +- frontend/src/ts/input/input-element.ts | 2 +- frontend/src/ts/input/listeners/input.ts | 4 +- frontend/src/ts/modals/edit-tag.ts | 8 +- frontend/src/ts/modals/forgot-password.ts | 2 +- .../src/ts/modals/last-signed-out-result.ts | 14 ++-- frontend/src/ts/modals/pb-tables.ts | 9 +-- frontend/src/ts/modals/share-custom-theme.ts | 4 +- frontend/src/ts/modals/simple-modals.ts | 6 +- frontend/src/ts/pages/account-settings.ts | 2 +- frontend/src/ts/pages/friends.ts | 8 +- frontend/src/ts/pages/loading.ts | 2 +- frontend/src/ts/pages/settings.ts | 2 +- frontend/src/ts/queries/leaderboards.ts | 10 ++- frontend/src/ts/queries/public.ts | 7 +- frontend/src/ts/states/notifications.ts | 2 +- .../src/ts/test/funbox/funbox-functions.ts | 2 +- frontend/src/ts/test/funbox/funbox.ts | 4 +- frontend/src/ts/test/live-acc.ts | 4 +- frontend/src/ts/test/monkey.ts | 2 +- frontend/src/ts/test/practise-words.ts | 2 +- frontend/src/ts/test/result.ts | 47 +++++------- frontend/src/ts/test/test-input.ts | 4 +- frontend/src/ts/test/test-logic.ts | 4 +- frontend/src/ts/test/test-ui.ts | 76 +++++++++---------- frontend/src/ts/test/timer-progress.ts | 8 +- frontend/src/ts/test/words-generator.ts | 4 +- frontend/src/ts/ui.ts | 8 +- frontend/src/ts/utils/animated-modal.ts | 2 +- frontend/src/ts/utils/colors.ts | 60 +++++++-------- frontend/src/ts/utils/date-and-time.ts | 8 +- frontend/src/ts/utils/format.ts | 2 +- frontend/src/ts/utils/generate.ts | 2 +- frontend/src/ts/utils/ip-addresses.ts | 10 +-- frontend/src/ts/utils/json-data.ts | 2 +- frontend/src/ts/utils/misc.ts | 11 ++- frontend/src/ts/utils/sanitize.ts | 2 +- frontend/src/ts/utils/tag-builder.ts | 12 ++- frontend/storybook/.storybook/main.ts | 4 +- frontend/vite-plugins/env-config.ts | 2 +- frontend/vite-plugins/font-preview.ts | 11 ++- frontend/vite-plugins/fontawesome-subset.ts | 4 +- frontend/vite-plugins/language-hashes.ts | 4 +- frontend/vite.config.ts | 20 ++--- packages/funbox/src/list.ts | 4 +- packages/oxlint-config/rules/enabled.jsonc | 1 + packages/release/src/buildChangelog.js | 4 +- packages/release/src/buildContributors.js | 2 +- packages/release/src/index.js | 2 +- packages/util/src/json.ts | 2 +- 119 files changed, 393 insertions(+), 423 deletions(-) diff --git a/backend/__tests__/__integration__/dal/blocklist.spec.ts b/backend/__tests__/__integration__/dal/blocklist.spec.ts index 1253d7aa0098..b861d03c8ef8 100644 --- a/backend/__tests__/__integration__/dal/blocklist.spec.ts +++ b/backend/__tests__/__integration__/dal/blocklist.spec.ts @@ -26,7 +26,7 @@ describe("BlocklistDal", () => { const now = 1715082588; vi.setSystemTime(now); - const name = "user" + new ObjectId().toHexString(); + const name = `user${new ObjectId().toHexString()}`; const email = `${name}@example.com`; //WHEN @@ -56,7 +56,7 @@ describe("BlocklistDal", () => { const now = 1715082588; vi.setSystemTime(now); - const name = "user" + new ObjectId().toHexString(); + const name = `user${new ObjectId().toHexString()}`; const email = `${name}@example.com`; const discordId = `${name}DiscordId`; @@ -78,7 +78,7 @@ describe("BlocklistDal", () => { const now = 1715082588; vi.setSystemTime(now); - const name = "user" + new ObjectId().toHexString(); + const name = `user${new ObjectId().toHexString()}`; const email = `${name}@example.com`; const email2 = `${name}@otherdomain.com`; await BlacklistDal.add({ name, email }); @@ -114,9 +114,9 @@ describe("BlocklistDal", () => { const now = 1715082588; vi.setSystemTime(now); - const name = "user" + new ObjectId().toHexString(); + const name = `user${new ObjectId().toHexString()}`; const email = `${name}@example.com`; - const name2 = "user" + new ObjectId().toHexString(); + const name2 = `user${new ObjectId().toHexString()}`; await BlacklistDal.add({ name, email }); //WHEN @@ -136,8 +136,8 @@ describe("BlocklistDal", () => { const now = 1715082588; vi.setSystemTime(now); - const name = "user" + new ObjectId().toHexString(); - const name2 = "user" + new ObjectId().toHexString(); + const name = `user${new ObjectId().toHexString()}`; + const name2 = `user${new ObjectId().toHexString()}`; const email = `${name}@example.com`; const discordId = `${name}DiscordId`; @@ -160,7 +160,7 @@ describe("BlocklistDal", () => { describe("contains", () => { it("contains user", async () => { //GIVEN - const name = "user" + new ObjectId().toHexString(); + const name = `user${new ObjectId().toHexString()}`; const email = `${name}@example.com`; const discordId = `${name}DiscordId`; await BlacklistDal.add({ name, email, discordId }); @@ -229,7 +229,7 @@ describe("BlocklistDal", () => { describe("remove", () => { it("removes existing username", async () => { //GIVEN - const name = "user" + new ObjectId().toHexString(); + const name = `user${new ObjectId().toHexString()}`; const email = `${name}@example.com`; await BlacklistDal.add({ name, email }); await BlacklistDal.add({ name: "test", email: "test@example.com" }); @@ -251,7 +251,7 @@ describe("BlocklistDal", () => { }); it("removes existing email", async () => { //GIVEN - const name = "user" + new ObjectId().toHexString(); + const name = `user${new ObjectId().toHexString()}`; const email = `${name}@example.com`; await BlacklistDal.add({ name, email }); await BlacklistDal.add({ name: "test", email: "test@example.com" }); @@ -273,7 +273,7 @@ describe("BlocklistDal", () => { }); it("removes existing discordId", async () => { //GIVEN - const name = "user" + new ObjectId().toHexString(); + const name = `user${new ObjectId().toHexString()}`; const email = `${name}@example.com`; const discordId = `${name}DiscordId`; await BlacklistDal.add({ name, email, discordId }); @@ -304,7 +304,7 @@ describe("BlocklistDal", () => { }); it("removes existing username,email and discordId", async () => { //GIVEN - const name = "user" + new ObjectId().toHexString(); + const name = `user${new ObjectId().toHexString()}`; const email = `${name}@example.com`; const discordId = `${name}DiscordId`; await BlacklistDal.add({ name, email, discordId }); @@ -336,7 +336,7 @@ describe("BlocklistDal", () => { it("does not remove for empty user", async () => { //GIVEN - const name = "user" + new ObjectId().toHexString(); + const name = `user${new ObjectId().toHexString()}`; const email = `${name}@example.com`; const discordId = `${name}DiscordId`; await BlacklistDal.add({ name, email, discordId }); diff --git a/backend/__tests__/__integration__/dal/leaderboards.isolated.spec.ts b/backend/__tests__/__integration__/dal/leaderboards.isolated.spec.ts index 9baeb166033f..17847fe0b345 100644 --- a/backend/__tests__/__integration__/dal/leaderboards.isolated.spec.ts +++ b/backend/__tests__/__integration__/dal/leaderboards.isolated.spec.ts @@ -496,7 +496,7 @@ async function createUser( userProperties?: Partial, ): Promise { const uid = new ObjectId().toHexString(); - await UserDal.addUser("User " + uid, uid + "@example.com", uid); + await UserDal.addUser(`User ${uid}`, `${uid}@example.com`, uid); await DB.getDb() ?.collection("users") @@ -505,8 +505,8 @@ async function createUser( { $set: { timeTyping: 7200, - discordId: "discord " + uid, - discordAvatar: "avatar " + uid, + discordId: `discord ${uid}`, + discordAvatar: `avatar ${uid}`, ...userProperties, lbPersonalBests, }, diff --git a/backend/__tests__/__integration__/dal/user.spec.ts b/backend/__tests__/__integration__/dal/user.spec.ts index 148e4e90b2db..7330dfe8f532 100644 --- a/backend/__tests__/__integration__/dal/user.spec.ts +++ b/backend/__tests__/__integration__/dal/user.spec.ts @@ -128,8 +128,8 @@ describe("UserDal", () => { it("isNameAvailable should correctly check if a username is available", async () => { // given - const name1 = "user" + new ObjectId().toHexString(); - const name2 = "user" + new ObjectId().toHexString(); + const name1 = `user${new ObjectId().toHexString()}`; + const name2 = `user${new ObjectId().toHexString()}`; const { uid: user1 } = await UserTestData.createUser({ name: name1 }); await UserTestData.createUser({ name: name2 }); @@ -160,8 +160,8 @@ describe("UserDal", () => { it("updatename should not allow unavailable usernames", async () => { // given - const name1 = "user" + new ObjectId().toHexString(); - const name2 = "user" + new ObjectId().toHexString(); + const name1 = `user${new ObjectId().toHexString()}`; + const name2 = `user${new ObjectId().toHexString()}`; const user1 = await UserTestData.createUser({ name: name1 }); const user2 = await UserTestData.createUser({ name: name2 }); const _decoy = await UserTestData.createUser(); @@ -173,8 +173,8 @@ describe("UserDal", () => { }); it("same usernames (different casing) should be available only for the same user", async () => { - const name1 = "user" + new ObjectId().toHexString(); - const name2 = "user" + new ObjectId().toHexString(); + const name1 = `user${new ObjectId().toHexString()}`; + const name2 = `user${new ObjectId().toHexString()}`; const user1 = await UserTestData.createUser({ name: name1 }); const user2 = await UserTestData.createUser({ name: name2 }); @@ -192,8 +192,8 @@ describe("UserDal", () => { it("UserDAL.updateName should change the name of a user", async () => { // given - const name = "user" + new ObjectId().toHexString(); - const renamed = "renamed" + new ObjectId().toHexString(); + const name = `user${new ObjectId().toHexString()}`; + const renamed = `renamed${new ObjectId().toHexString()}`; const testUser = await UserTestData.createUser({ name: name }); // when @@ -1696,7 +1696,7 @@ describe("UserDal", () => { it("increments bananas", async () => { //GIVEN - const name = "user" + new ObjectId().toHexString(); + const name = `user${new ObjectId().toHexString()}`; const { uid } = await UserTestData.createUser({ name, bananas: 1, diff --git a/backend/__tests__/__testData__/connections.ts b/backend/__tests__/__testData__/connections.ts index 70fc8b0dfc33..438dec3c653b 100644 --- a/backend/__tests__/__testData__/connections.ts +++ b/backend/__tests__/__testData__/connections.ts @@ -5,7 +5,7 @@ export async function createConnection( data: Partial, maxPerUser = 25, ): Promise { - const defaultName = "user" + new ObjectId().toHexString(); + const defaultName = `user${new ObjectId().toHexString()}`; const result = await ConnectionsDal.create( { uid: data.initiatorUid ?? new ObjectId().toHexString(), diff --git a/backend/__tests__/__testData__/users.ts b/backend/__tests__/__testData__/users.ts index e7f1f4b66c27..98595d335dae 100644 --- a/backend/__tests__/__testData__/users.ts +++ b/backend/__tests__/__testData__/users.ts @@ -7,7 +7,7 @@ export async function createUser( user?: Partial, ): Promise { const uid = new ObjectId().toHexString(); - await UserDAL.addUser("user" + uid, uid + "@example.com", uid); + await UserDAL.addUser(`user${uid}`, `${uid}@example.com`, uid); await DB.collection("users").updateOne({ uid }, { $set: { ...user } }); return await UserDAL.getUser(uid, "test"); } @@ -16,7 +16,7 @@ export async function createUserWithoutMigration( user?: Partial, ): Promise { const uid = new ObjectId().toHexString(); - await UserDAL.addUser("user" + uid, uid + "@example.com", uid); + await UserDAL.addUser(`user${uid}`, `${uid}@example.com`, uid); await DB.collection("users").updateOne({ uid }, { $set: { ...user } }); await DB.collection("users").updateOne( { uid }, diff --git a/backend/__tests__/api/controllers/leaderboard.spec.ts b/backend/__tests__/api/controllers/leaderboard.spec.ts index 9dc146d5234e..1b48ca1a95ea 100644 --- a/backend/__tests__/api/controllers/leaderboard.spec.ts +++ b/backend/__tests__/api/controllers/leaderboard.spec.ts @@ -395,7 +395,7 @@ describe("Loaderboard Controller", () => { await mockApp .get("/leaderboards/rank") .query({ language: "english", mode: "time", mode2: "60" }) - .set("authorization", "ApeKey " + apeKey) + .set("authorization", `ApeKey ${apeKey}`) .expect(200); }); it("should get for mode", async () => { @@ -405,7 +405,7 @@ describe("Loaderboard Controller", () => { .get("/leaderboards/rank") .set("Authorization", `Bearer ${uid}`) .query({ language: "english", mode, mode2: "custom" }); - expect(response.status, "for mode " + mode).toEqual(200); + expect(response.status, `for mode ${mode}`).toEqual(200); } }); @@ -417,7 +417,7 @@ describe("Loaderboard Controller", () => { .set("Authorization", `Bearer ${uid}`) .query({ language: "english", mode: "words", mode2 }); - expect(response.status, "for mode2 " + mode2).toEqual(200); + expect(response.status, `for mode2 ${mode2}`).toEqual(200); } }); it("fails for missing query", async () => { @@ -750,7 +750,7 @@ describe("Loaderboard Controller", () => { const response = await mockApp .get("/leaderboards/daily") .query({ language: "english", mode, mode2: "custom" }); - expect(response.status, "for mode " + mode).toEqual(200); + expect(response.status, `for mode ${mode}`).toEqual(200); } }); @@ -760,7 +760,7 @@ describe("Loaderboard Controller", () => { .get("/leaderboards/daily") .query({ language: "english", mode: "words", mode2 }); - expect(response.status, "for mode2 " + mode2).toEqual(200); + expect(response.status, `for mode2 ${mode2}`).toEqual(200); } }); @@ -963,7 +963,7 @@ describe("Loaderboard Controller", () => { .get("/leaderboards/daily/rank") .set("Authorization", `Bearer ${uid}`) .query({ language: "english", mode, mode2: "custom" }); - expect(response.status, "for mode " + mode).toEqual(200); + expect(response.status, `for mode ${mode}`).toEqual(200); } }); @@ -974,7 +974,7 @@ describe("Loaderboard Controller", () => { .set("Authorization", `Bearer ${uid}`) .query({ language: "english", mode: "words", mode2 }); - expect(response.status, "for mode2 " + mode2).toEqual(200); + expect(response.status, `for mode2 ${mode2}`).toEqual(200); } }); diff --git a/backend/__tests__/api/controllers/public.spec.ts b/backend/__tests__/api/controllers/public.spec.ts index c3501ec99872..d4dc598d81bf 100644 --- a/backend/__tests__/api/controllers/public.spec.ts +++ b/backend/__tests__/api/controllers/public.spec.ts @@ -40,7 +40,7 @@ describe("PublicController", () => { const response = await mockApp .get("/public/speedHistogram") .query({ language: "english", mode, mode2: "custom" }); - expect(response.status, "for mode " + mode).toEqual(200); + expect(response.status, `for mode ${mode}`).toEqual(200); } }); @@ -61,7 +61,7 @@ describe("PublicController", () => { .get("/public/speedHistogram") .query({ language: "english", mode: "words", mode2 }); - expect(response.status, "for mode2 " + mode2).toEqual(200); + expect(response.status, `for mode2 ${mode2}`).toEqual(200); } }); it("fails for missing query", async () => { diff --git a/backend/__tests__/api/controllers/user.spec.ts b/backend/__tests__/api/controllers/user.spec.ts index d9e0cf7610e5..4e066dbb1560 100644 --- a/backend/__tests__/api/controllers/user.spec.ts +++ b/backend/__tests__/api/controllers/user.spec.ts @@ -3349,9 +3349,9 @@ describe("user controller test", () => { socialProfiles: { twitter: new Array(21).fill("x").join(""), github: new Array(40).fill("x").join(""), - website: - "https://" + - new Array(201 - "https://".length).fill("x").join(""), + website: `https://${new Array(201 - "https://".length) + .fill("x") + .join("")}`, }, }) .expect(422); diff --git a/backend/private/script.js b/backend/private/script.js index 86cf2375b5d0..d10b9ca040af 100644 --- a/backend/private/script.js +++ b/backend/private/script.js @@ -294,7 +294,7 @@ function download(filename, text) { let element = document.createElement("a"); element.setAttribute( "href", - "data:text/plain;charset=utf-8," + encodeURIComponent(text), + `data:text/plain;charset=utf-8,${encodeURIComponent(text)}`, ); element.setAttribute("download", filename); diff --git a/backend/scripts/openapi.ts b/backend/scripts/openapi.ts index 101b350a0cdb..0b9c08905084 100644 --- a/backend/scripts/openapi.ts +++ b/backend/scripts/openapi.ts @@ -259,7 +259,7 @@ function getRateLimitDescription(limit: RateLimiterId | RateLimitIds): string { )} with ApeKeys`; } - return result + ".\n\n"; + return `${result}.\n\n`; } function formatWindow(window: Window): string { @@ -273,7 +273,7 @@ function formatWindow(window: Window): string { return `every ${duration}`; } - return "per " + window; + return `per ${window}`; } function addRequiredConfiguration( diff --git a/backend/src/api/controllers/admin.ts b/backend/src/api/controllers/admin.ts index 2840472de572..85068dc5beb4 100644 --- a/backend/src/api/controllers/admin.ts +++ b/backend/src/api/controllers/admin.ts @@ -132,7 +132,7 @@ export async function handleReports( } else { throw new MonkeyError( 500, - "Error handling reports: " + getErrorMessage(e), + `Error handling reports: ${getErrorMessage(e)}`, ); } } diff --git a/backend/src/api/controllers/dev.ts b/backend/src/api/controllers/dev.ts index 6f3e47166125..f020d0e0f7d0 100644 --- a/backend/src/api/controllers/dev.ts +++ b/backend/src/api/controllers/dev.ts @@ -88,8 +88,8 @@ async function getOrCreateUser( throw new MonkeyError(404, `User ${username} does not exist.`); } - const email = username + "@example.com"; - Logger.success("create user " + username); + const email = `${username}@example.com`; + Logger.success(`create user ${username}`); const { uid } = await FirebaseAdmin().auth().createUser({ displayName: username, password: password, diff --git a/backend/src/api/controllers/quote.ts b/backend/src/api/controllers/quote.ts index 40c64cf0ef8a..1ae0ae4ea19a 100644 --- a/backend/src/api/controllers/quote.ts +++ b/backend/src/api/controllers/quote.ts @@ -50,7 +50,7 @@ export async function isSubmissionEnabled( ): Promise { const { submissionsEnabled } = req.ctx.configuration.quotes; return new MonkeyResponse( - "Quote submission " + (submissionsEnabled ? "enabled" : "disabled"), + `Quote submission ${submissionsEnabled ? "enabled" : "disabled"}`, { isEnabled: submissionsEnabled }, ); } diff --git a/backend/src/api/controllers/result.ts b/backend/src/api/controllers/result.ts index eb9e94875d5b..59396abbd705 100644 --- a/backend/src/api/controllers/result.ts +++ b/backend/src/api/controllers/result.ts @@ -649,7 +649,7 @@ export async function addResult( if (isPb) { void addLog( "user_new_pb", - `${completedEvent.mode + " " + completedEvent.mode2} ${ + `${`${completedEvent.mode} ${completedEvent.mode2}`} ${ completedEvent.wpm } ${completedEvent.acc}% ${completedEvent.rawWpm} ${ completedEvent.consistency diff --git a/backend/src/api/controllers/user.ts b/backend/src/api/controllers/user.ts index 964602852f10..b89a7874515f 100644 --- a/backend/src/api/controllers/user.ts +++ b/backend/src/api/controllers/user.ts @@ -210,8 +210,9 @@ export async function sendVerificationEmail( } else { throw new MonkeyError( 500, - "Firebase failed to generate an email verification link: " + - error.errorInfo.message, + `Firebase failed to generate an email verification link: ${ + error.errorInfo.message + }`, JSON.stringify(error), ); } @@ -231,7 +232,7 @@ export async function sendVerificationEmail( } else { throw new MonkeyError( 500, - "Failed to generate an email verification link: " + message, + `Failed to generate an email verification link: ${message}`, error.stack, ); } diff --git a/backend/src/api/routes/docs.ts b/backend/src/api/routes/docs.ts index bd2befb32744..0c236799a64e 100644 --- a/backend/src/api/routes/docs.ts +++ b/backend/src/api/routes/docs.ts @@ -2,7 +2,7 @@ import { Response, Router } from "express"; const router = Router(); -const root = __dirname + "/../../../dist/static"; +const root = `${__dirname}/../../../dist/static`; router.use("/internal", (req, res) => { setCsp(res); diff --git a/backend/src/api/routes/swagger.ts b/backend/src/api/routes/swagger.ts index cff73fac3c76..9a449391c95c 100644 --- a/backend/src/api/routes/swagger.ts +++ b/backend/src/api/routes/swagger.ts @@ -6,7 +6,7 @@ import Logger from "../../utils/logger"; import { tryCatchSync } from "@monkeytype/util/trycatch"; function addSwaggerMiddlewares(app: Application): void { - const openApiSpec = __dirname + "/../../../dist/static/api/openapi.json"; + const openApiSpec = `${__dirname}/../../../dist/static/api/openapi.json`; const { data: spec, error } = tryCatchSync( () => diff --git a/backend/src/dal/logs.ts b/backend/src/dal/logs.ts index a7fb5641438a..6305d5bd64bc 100644 --- a/backend/src/dal/logs.ts +++ b/backend/src/dal/logs.ts @@ -36,7 +36,7 @@ async function insertIntoDb( Logger.info( `${event}\t${uid}\t${ - stringified.length > 100 ? stringified.slice(0, 100) + "..." : stringified + stringified.length > 100 ? `${stringified.slice(0, 100)}...` : stringified }`, ); diff --git a/backend/src/init/email-client.ts b/backend/src/init/email-client.ts index 39121cba0fcb..4980247112e6 100644 --- a/backend/src/init/email-client.ts +++ b/backend/src/init/email-client.ts @@ -76,8 +76,9 @@ export async function init(): Promise { if (!result) { throw new Error( - `Could not verify email client configuration: ` + - JSON.stringify(result), + `Could not verify email client configuration: ${JSON.stringify( + result, + )}`, ); } diff --git a/backend/src/middlewares/auth.ts b/backend/src/middlewares/auth.ts index a7deffd2c991..3b1530aff37a 100644 --- a/backend/src/middlewares/auth.ts +++ b/backend/src/middlewares/auth.ts @@ -358,7 +358,7 @@ export function authenticateGithubWebhook( } throw new MonkeyError( 500, - "Failed to authenticate Github webhook: " + (error as Error).message, + `Failed to authenticate Github webhook: ${(error as Error).message}`, ); } } diff --git a/backend/src/utils/error.ts b/backend/src/utils/error.ts index 7b0a55fdd77e..a63582ea1ce3 100644 --- a/backend/src/utils/error.ts +++ b/backend/src/utils/error.ts @@ -62,12 +62,12 @@ class MonkeyError extends Error implements MonkeyServerErrorType { if (isDevEnvironment()) { this.message = (stack ?? "") - ? String(message) + "\nStack: " + String(stack) + ? `${String(message)}\nStack: ${String(stack)}` : String(message); } else { if ((this.stack ?? "") && this.status >= 500) { - this.stack = this.message + "\n" + this.stack; - this.message = "Internal Server Error " + this.errorId; + this.stack = `${this.message}\n${this.stack}`; + this.message = `Internal Server Error ${this.errorId}`; } else { this.message = String(message); } diff --git a/frontend/__tests__/elements/test-activity-calendar.spec.ts b/frontend/__tests__/elements/test-activity-calendar.spec.ts index 8caf7afd9ee2..f68e51566f1b 100644 --- a/frontend/__tests__/elements/test-activity-calendar.spec.ts +++ b/frontend/__tests__/elements/test-activity-calendar.spec.ts @@ -1213,7 +1213,7 @@ describe("test-activity-calendar.ts", () => { }); function getDate(date: string): Date { - return new UTCDateMini(Dates.parseISO(date + "T00:00:00Z")); + return new UTCDateMini(Dates.parseISO(`${date}T00:00:00Z`)); } function getData(from: string, to: string): number[] { diff --git a/frontend/__tests__/utils/key-converter.spec.ts b/frontend/__tests__/utils/key-converter.spec.ts index 40be7199bfc3..57a69fde6272 100644 --- a/frontend/__tests__/utils/key-converter.spec.ts +++ b/frontend/__tests__/utils/key-converter.spec.ts @@ -4,13 +4,13 @@ import { layoutKeyToKeycode } from "../../src/ts/utils/key-converter"; const isoDvorak = JSON.parse( readFileSync( - import.meta.dirname + "/../../static/layouts/swedish_dvorak.json", + `${import.meta.dirname}/../../static/layouts/swedish_dvorak.json`, "utf-8", ), ); const dvorak = JSON.parse( readFileSync( - import.meta.dirname + "/../../static/layouts/dvorak.json", + `${import.meta.dirname}/../../static/layouts/dvorak.json`, "utf-8", ), ); diff --git a/frontend/scripts/check-assets.ts b/frontend/scripts/check-assets.ts index 36ff817c3f87..8ba8e7fa9400 100644 --- a/frontend/scripts/check-assets.ts +++ b/frontend/scripts/check-assets.ts @@ -70,18 +70,17 @@ class Problems { .addEOL(); }); - return ( - `${this.type} are \u001b[31minvalid\u001b[0m\n` + - Object.entries(this.problems) - .map(([key, problems]) => { - let label: string = this.labels[key as T] ?? `${key}`; - - return `${label}:\n ${(problems as string[]) - .map((error) => "\t- " + error) - .join("\n")}`; - }) - .join("\n") - ); + return `${this.type} are \u001b[31minvalid\u001b[0m\n${Object.entries( + this.problems, + ) + .map(([key, problems]) => { + let label: string = this.labels[key as T] ?? `${key}`; + + return `${label}:\n ${(problems as string[]) + .map((error) => `\t- ${error}`) + .join("\n")}`; + }) + .join("\n")}`; } } @@ -152,7 +151,7 @@ async function validateLayouts(): Promise { //no files not defined in LayoutsList const additionalLayoutFiles = fs .readdirSync("./static/layouts") - .filter((it) => !LayoutsList.some((layout) => layout + ".json" === it)); + .filter((it) => !LayoutsList.some((layout) => `${layout}.json` === it)); if (additionalLayoutFiles.length !== 0) { additionalLayoutFiles.forEach((it) => problems.add("_additional", it)); } @@ -292,7 +291,7 @@ async function validateLanguages(): Promise { ); if (languageFileData.name !== language) { - problems.add(language, "Name is not " + language); + problems.add(language, `Name is not ${language}`); } const duplicates = findDuplicates(languageFileData.words); const duplicatePercentage = @@ -309,7 +308,7 @@ async function validateLanguages(): Promise { //no files not defined in LanguageList fs.readdirSync("./static/languages") - .filter((it) => !LanguageList.some((language) => language + ".json" === it)) + .filter((it) => !LanguageList.some((language) => `${language}.json` === it)) .forEach((it) => problems.add("_additional", it)); //check groups @@ -406,7 +405,7 @@ async function validateThemes(): Promise { //missing or additional theme files (mismatch in hasCss) ThemesList.filter( - (it) => themeFiles.includes(it.name + ".css") !== (it.hasCss ?? false), + (it) => themeFiles.includes(`${it.name}.css`) !== (it.hasCss ?? false), ).forEach((it) => problems.add( it.name, @@ -416,7 +415,7 @@ async function validateThemes(): Promise { //additional theme files themeFiles - .filter((it) => !ThemesList.some((theme) => theme.name + ".css" === it)) + .filter((it) => !ThemesList.some((theme) => `${theme.name}.css` === it)) .forEach((it) => problems.add("_additional", it)); //validate theme colors are valid hex colors, not covered by typescipt @@ -462,7 +461,7 @@ async function validateSounds(): Promise { .filter((it) => !soundFiles.has(it)) .forEach((file) => problems.add( - "click" + key, + `click${key}`, `missing file frontend/static/sounds/${file}`, ), ); diff --git a/frontend/scripts/import-tree.ts b/frontend/scripts/import-tree.ts index ce1cb6834e76..9ef29535aa72 100644 --- a/frontend/scripts/import-tree.ts +++ b/frontend/scripts/import-tree.ts @@ -217,11 +217,11 @@ function depthColor(depth: number): string { function leavesFolder(filePath: string): boolean { if (boundary === null) return false; if (filePath.startsWith("@monkeytype/")) return true; - return !filePath.startsWith(boundary + "/"); + return !filePath.startsWith(`${boundary}/`); } function displayPath(filePath: string): string { - if (filePath.startsWith(ROOT + "/")) { + if (filePath.startsWith(`${ROOT}/`)) { return path.relative(ROOT, filePath); } return filePath; diff --git a/frontend/src/ts/auth.tsx b/frontend/src/ts/auth.tsx index b0e684ec60bd..f0956823bc59 100644 --- a/frontend/src/ts/auth.tsx +++ b/frontend/src/ts/auth.tsx @@ -97,7 +97,7 @@ async function getDataAndInit(): Promise { ); } - showErrorNotification("Failed to get user data: " + error.message); + showErrorNotification(`Failed to get user data: ${error.message}`); } else { showErrorNotification("Failed to get user data", { error }); } diff --git a/frontend/src/ts/collections/inbox.ts b/frontend/src/ts/collections/inbox.ts index 06bed51c1e01..ea6f9fa6066c 100644 --- a/frontend/src/ts/collections/inbox.ts +++ b/frontend/src/ts/collections/inbox.ts @@ -54,9 +54,9 @@ const inboxCollection = createCollection( const response = await Ape.users.getInbox(); if (response.status !== 200) { showErrorNotification( - "Error fetching user inbox: " + response.body.message, + `Error fetching user inbox: ${response.body.message}`, ); - throw new Error("Error fetching user inbox: " + response.body.message); + throw new Error(`Error fetching user inbox: ${response.body.message}`); } setMaxMailboxSize(response.body.data.maxMail); return response.body.data.inbox.map(addStatus); @@ -157,9 +157,9 @@ async function flushPendingChanges({ if (response.status !== 200) { showErrorNotification( - "Error updating user inbox: " + response.body.message, + `Error updating user inbox: ${response.body.message}`, ); - throw new Error("Error updating user inbox: " + response.body.message); + throw new Error(`Error updating user inbox: ${response.body.message}`); } inboxCollection.utils.writeBatch(() => { diff --git a/frontend/src/ts/collections/presets.ts b/frontend/src/ts/collections/presets.ts index 051497b34340..937fbab9a2ff 100644 --- a/frontend/src/ts/collections/presets.ts +++ b/frontend/src/ts/collections/presets.ts @@ -39,7 +39,7 @@ const presetsCollection = createCollection( const response = await Ape.presets.get(); if (response.status !== 200) { - throw new Error("Error fetching presets:" + response.body.message); + throw new Error(`Error fetching presets:${response.body.message}`); } return response.body.data diff --git a/frontend/src/ts/collections/results.ts b/frontend/src/ts/collections/results.ts index 53133bb829ea..e3841319f411 100644 --- a/frontend/src/ts/collections/results.ts +++ b/frontend/src/ts/collections/results.ts @@ -224,7 +224,7 @@ const resultsCollection = createCollection( }); if (response.status !== 200) { - throw new Error("Error fetching results:" + response.body.message); + throw new Error(`Error fetching results:${response.body.message}`); } const results = response.body.data diff --git a/frontend/src/ts/collections/utils/misc.ts b/frontend/src/ts/collections/utils/misc.ts index bce53db4547a..876dbff7aadc 100644 --- a/frontend/src/ts/collections/utils/misc.ts +++ b/frontend/src/ts/collections/utils/misc.ts @@ -1,7 +1,5 @@ export function tempId(): string { - return ( - "temp_" + Math.random().toString(36).slice(2) + Date.now().toString(36) - ); + return `temp_${Math.random().toString(36).slice(2)}${Date.now().toString(36)}`; } /** diff --git a/frontend/src/ts/commandline/commandline.ts b/frontend/src/ts/commandline/commandline.ts index d542fabbe132..709e21559d62 100644 --- a/frontend/src/ts/commandline/commandline.ts +++ b/frontend/src/ts/commandline/commandline.ts @@ -507,8 +507,9 @@ async function showCommands(): Promise { if (command.configValue !== undefined || command.active !== undefined) { display = display.replace( ``, - `` + - configIconHtml, + `${ + configIconHtml + }`, ); } } diff --git a/frontend/src/ts/commandline/lists.ts b/frontend/src/ts/commandline/lists.ts index 4a095f7b4f86..e7e62a75f307 100644 --- a/frontend/src/ts/commandline/lists.ts +++ b/frontend/src/ts/commandline/lists.ts @@ -488,13 +488,13 @@ function buildSingleListCommands( /\s?\.\.\.$/g, "", ); - const singleListDisplay = - parentCommandDisplay + - '' + - command.display; + const singleListDisplay = `${ + parentCommandDisplay + }${ + command.display + }`; - const singleListDisplayNoIcon = - parentCommandDisplay + " " + command.display; + const singleListDisplayNoIcon = `${parentCommandDisplay} ${command.display}`; let newAlias: string | undefined = undefined; diff --git a/frontend/src/ts/commandline/lists/custom-background.ts b/frontend/src/ts/commandline/lists/custom-background.ts index 795f20929695..e59ba73606de 100644 --- a/frontend/src/ts/commandline/lists/custom-background.ts +++ b/frontend/src/ts/commandline/lists/custom-background.ts @@ -59,7 +59,7 @@ const customBackgroundCommand: Command = { await updateUI(); } catch (e) { showNoticeNotification( - "Error uploading background: " + (e as Error).message, + `Error uploading background: ${(e as Error).message}`, ); } cleanup(); @@ -88,7 +88,7 @@ const customBackgroundCommand: Command = { await updateUI(); } catch (e) { showNoticeNotification( - "Error removing background: " + (e as Error).message, + `Error removing background: ${(e as Error).message}`, ); } }, diff --git a/frontend/src/ts/commandline/lists/custom-themes-list.ts b/frontend/src/ts/commandline/lists/custom-themes-list.ts index f513ba2bb84f..6e29fe9e2e06 100644 --- a/frontend/src/ts/commandline/lists/custom-themes-list.ts +++ b/frontend/src/ts/commandline/lists/custom-themes-list.ts @@ -43,7 +43,7 @@ export function update(): void { } for (const theme of snapshot.customThemes) { subgroup.list.push({ - id: "setCustomThemeId" + theme._id, + id: `setCustomThemeId${theme._id}`, display: theme.name.replace(/_/gi, " "), configValue: theme._id, hover: (): void => { diff --git a/frontend/src/ts/commandline/lists/font-family.ts b/frontend/src/ts/commandline/lists/font-family.ts index 231ddc5f043a..60ca8a34b797 100644 --- a/frontend/src/ts/commandline/lists/font-family.ts +++ b/frontend/src/ts/commandline/lists/font-family.ts @@ -80,7 +80,7 @@ if (fromMeta.subgroup) { await updateUI(); } catch (e) { showNoticeNotification( - "Error uploading font: " + (e as Error).message, + `Error uploading font: ${(e as Error).message}`, ); } cleanup(); @@ -106,7 +106,7 @@ if (fromMeta.subgroup) { await applyFontFamily(); } catch (e) { showNoticeNotification( - "Error removing font: " + (e as Error).message, + `Error removing font: ${(e as Error).message}`, ); } }, diff --git a/frontend/src/ts/commandline/lists/funbox.ts b/frontend/src/ts/commandline/lists/funbox.ts index 12ffbfb86b37..5c6e6c5e4021 100644 --- a/frontend/src/ts/commandline/lists/funbox.ts +++ b/frontend/src/ts/commandline/lists/funbox.ts @@ -21,7 +21,7 @@ const list: Command[] = [ for (const funbox of getAllFunboxes()) { list.push({ - id: "changeFunbox" + funbox.name, + id: `changeFunbox${funbox.name}`, display: funbox.name.replace(/_/g, " "), available: () => { const activeNames = getActiveFunboxNames(); diff --git a/frontend/src/ts/commandline/lists/load-challenge.ts b/frontend/src/ts/commandline/lists/load-challenge.ts index 7a22caca1944..c49f1511a298 100644 --- a/frontend/src/ts/commandline/lists/load-challenge.ts +++ b/frontend/src/ts/commandline/lists/load-challenge.ts @@ -22,7 +22,7 @@ const commands: Command[] = [ function update(challenges: Challenge[]): void { challenges.forEach((challenge) => { subgroup.list.push({ - id: "loadChallenge" + capitalizeFirstLetterOfEachWord(challenge.name), + id: `loadChallenge${capitalizeFirstLetterOfEachWord(challenge.name)}`, display: challenge.display, exec: async (): Promise => { await navigate("/"); diff --git a/frontend/src/ts/commandline/lists/presets.ts b/frontend/src/ts/commandline/lists/presets.ts index 5a6f5c4b870b..5e7b94b37450 100644 --- a/frontend/src/ts/commandline/lists/presets.ts +++ b/frontend/src/ts/commandline/lists/presets.ts @@ -33,7 +33,7 @@ function update(): void { if (presets.length === 0) return; presets.forEach((preset) => { subgroup.list.push({ - id: "applyPreset" + preset._id, + id: `applyPreset${preset._id}`, display: preset.name, exec: async (): Promise => { Settings.setEventDisabled(true); diff --git a/frontend/src/ts/commandline/lists/tags.ts b/frontend/src/ts/commandline/lists/tags.ts index 677e993fc10f..689c6a979818 100644 --- a/frontend/src/ts/commandline/lists/tags.ts +++ b/frontend/src/ts/commandline/lists/tags.ts @@ -55,7 +55,7 @@ function update(): void { for (const tag of tags) { subgroup.list.push({ - id: "toggleTag" + tag._id, + id: `toggleTag${tag._id}`, display: tag.name, sticky: true, active: () => { diff --git a/frontend/src/ts/commandline/lists/themes.ts b/frontend/src/ts/commandline/lists/themes.ts index 394ca2c29821..3144f6edf7e7 100644 --- a/frontend/src/ts/commandline/lists/themes.ts +++ b/frontend/src/ts/commandline/lists/themes.ts @@ -18,7 +18,7 @@ const isFavorite = (theme: ThemeWithName): boolean => */ const createThemeCommand = (theme: ThemeWithName): Command => { return { - id: "changeTheme" + capitalizeFirstLetterOfEachWord(theme.name), + id: `changeTheme${capitalizeFirstLetterOfEachWord(theme.name)}`, display: theme.name.replace(/_/g, " "), configValue: theme.name, // customStyle: `color:${theme.main};background:${theme.bg};`, diff --git a/frontend/src/ts/components/common/Advertisement.tsx b/frontend/src/ts/components/common/Advertisement.tsx index 9a55f2bd68e7..37067af6a21e 100644 --- a/frontend/src/ts/components/common/Advertisement.tsx +++ b/frontend/src/ts/components/common/Advertisement.tsx @@ -14,7 +14,7 @@ export function Advertisement(props: { return (