From db9dab50b8d46ae00feef4708160a9b2e2935849 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 May 2026 11:12:34 +0000 Subject: [PATCH 1/2] chore(dev-deps): bump the dev-minor-patch group across 1 directory with 15 updates Bumps the dev-minor-patch group with 15 updates in the / directory: | Package | From | To | | --- | --- | --- | | [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) | `8.58.2` | `8.59.1` | | [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) | `8.58.2` | `8.59.1` | | [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8) | `4.1.4` | `4.1.5` | | [@vitest/ui](https://github.com/vitest-dev/vitest/tree/HEAD/packages/ui) | `4.1.4` | `4.1.5` | | [eslint](https://github.com/eslint/eslint) | `10.2.0` | `10.2.1` | | [eslint-plugin-react-hooks](https://github.com/facebook/react/tree/HEAD/packages/eslint-plugin-react-hooks) | `7.1.0` | `7.1.1` | | [nock](https://github.com/nock/nock) | `14.0.12` | `14.0.14` | | [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) | `4.1.4` | `4.1.5` | | [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) | `8.0.8` | `8.0.10` | | [@tailwindcss/postcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss) | `4.2.2` | `4.2.4` | | [@tailwindcss/vite](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite) | `4.2.2` | `4.2.4` | | [@vercel/node](https://github.com/vercel/vercel/tree/HEAD/packages/node) | `5.7.10` | `5.7.15` | | [postcss](https://github.com/postcss/postcss) | `8.5.10` | `8.5.13` | | [tailwindcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss) | `4.2.2` | `4.2.4` | | [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) | `8.58.2` | `8.59.1` | Updates `@typescript-eslint/eslint-plugin` from 8.58.2 to 8.59.1 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.59.1/packages/eslint-plugin) Updates `@typescript-eslint/parser` from 8.58.2 to 8.59.1 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.59.1/packages/parser) Updates `@vitest/coverage-v8` from 4.1.4 to 4.1.5 - [Release notes](https://github.com/vitest-dev/vitest/releases) - [Commits](https://github.com/vitest-dev/vitest/commits/v4.1.5/packages/coverage-v8) Updates `@vitest/ui` from 4.1.4 to 4.1.5 - [Release notes](https://github.com/vitest-dev/vitest/releases) - [Commits](https://github.com/vitest-dev/vitest/commits/v4.1.5/packages/ui) Updates `eslint` from 10.2.0 to 10.2.1 - [Release notes](https://github.com/eslint/eslint/releases) - [Commits](https://github.com/eslint/eslint/compare/v10.2.0...v10.2.1) Updates `eslint-plugin-react-hooks` from 7.1.0 to 7.1.1 - [Release notes](https://github.com/facebook/react/releases) - [Changelog](https://github.com/facebook/react/blob/main/packages/eslint-plugin-react-hooks/CHANGELOG.md) - [Commits](https://github.com/facebook/react/commits/eslint-plugin-react-hooks@7.1.1/packages/eslint-plugin-react-hooks) Updates `nock` from 14.0.12 to 14.0.14 - [Release notes](https://github.com/nock/nock/releases) - [Changelog](https://github.com/nock/nock/blob/main/CHANGELOG.md) - [Commits](https://github.com/nock/nock/compare/v14.0.12...v14.0.14) Updates `vitest` from 4.1.4 to 4.1.5 - [Release notes](https://github.com/vitest-dev/vitest/releases) - [Commits](https://github.com/vitest-dev/vitest/commits/v4.1.5/packages/vitest) Updates `vite` from 8.0.8 to 8.0.10 - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v8.0.10/packages/vite) Updates `@tailwindcss/postcss` from 4.2.2 to 4.2.4 - [Release notes](https://github.com/tailwindlabs/tailwindcss/releases) - [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md) - [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.2.4/packages/@tailwindcss-postcss) Updates `@tailwindcss/vite` from 4.2.2 to 4.2.4 - [Release notes](https://github.com/tailwindlabs/tailwindcss/releases) - [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md) - [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.2.4/packages/@tailwindcss-vite) Updates `@vercel/node` from 5.7.10 to 5.7.15 - [Release notes](https://github.com/vercel/vercel/releases) - [Changelog](https://github.com/vercel/vercel/blob/main/packages/node/CHANGELOG.md) - [Commits](https://github.com/vercel/vercel/commits/@vercel/node@5.7.15/packages/node) Updates `postcss` from 8.5.10 to 8.5.13 - [Release notes](https://github.com/postcss/postcss/releases) - [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md) - [Commits](https://github.com/postcss/postcss/compare/8.5.10...8.5.13) Updates `tailwindcss` from 4.2.2 to 4.2.4 - [Release notes](https://github.com/tailwindlabs/tailwindcss/releases) - [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md) - [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.2.4/packages/tailwindcss) Updates `typescript-eslint` from 8.58.2 to 8.59.1 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.59.1/packages/typescript-eslint) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-version: 8.59.1 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-minor-patch - dependency-name: "@typescript-eslint/parser" dependency-version: 8.59.1 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-minor-patch - dependency-name: "@vitest/coverage-v8" dependency-version: 4.1.5 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-minor-patch - dependency-name: "@vitest/ui" dependency-version: 4.1.5 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-minor-patch - dependency-name: eslint dependency-version: 10.2.1 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-minor-patch - dependency-name: eslint-plugin-react-hooks dependency-version: 7.1.1 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-minor-patch - dependency-name: nock dependency-version: 14.0.14 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-minor-patch - dependency-name: vitest dependency-version: 4.1.5 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-minor-patch - dependency-name: vite dependency-version: 8.0.10 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-minor-patch - dependency-name: "@tailwindcss/postcss" dependency-version: 4.2.4 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-minor-patch - dependency-name: "@tailwindcss/vite" dependency-version: 4.2.4 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-minor-patch - dependency-name: "@vercel/node" dependency-version: 5.7.15 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-minor-patch - dependency-name: postcss dependency-version: 8.5.13 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-minor-patch - dependency-name: tailwindcss dependency-version: 4.2.4 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-minor-patch - dependency-name: typescript-eslint dependency-version: 8.59.1 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-minor-patch ... Signed-off-by: dependabot[bot] --- examples/web-cli/package.json | 18 +- package.json | 16 +- packages/react-web-cli/package.json | 6 +- pnpm-lock.yaml | 1077 +++++++++++++++------------ 4 files changed, 626 insertions(+), 491 deletions(-) diff --git a/examples/web-cli/package.json b/examples/web-cli/package.json index 8707ee95..08ce5d59 100644 --- a/examples/web-cli/package.json +++ b/examples/web-cli/package.json @@ -19,22 +19,22 @@ }, "devDependencies": { "@eslint/js": "^10.0.1", - "@tailwindcss/postcss": "^4.2.2", - "@tailwindcss/vite": "^4.2.2", + "@tailwindcss/postcss": "^4.2.4", + "@tailwindcss/vite": "^4.2.4", "@types/react": "^19.2.14", "@types/react-dom": "^19.2.3", - "@vercel/node": "^5.7.10", + "@vercel/node": "^5.7.15", "@vitejs/plugin-react": "^6.0.1", "autoprefixer": "^10.5.0", - "eslint": "^10.2.0", - "eslint-plugin-react-hooks": "^7.1.0", + "eslint": "^10.2.1", + "eslint-plugin-react-hooks": "^7.1.1", "eslint-plugin-react-refresh": "^0.5.2", "globals": "^17.4.0", - "postcss": "^8.5.10", - "tailwindcss": "^4.2.2", + "postcss": "^8.5.13", + "tailwindcss": "^4.2.4", "typescript": "~5.9.3", - "typescript-eslint": "^8.58.2", - "vite": "^8.0.8", + "typescript-eslint": "^8.59.1", + "vite": "^8.0.10", "vite-tsconfig-paths": "^6.1.1" } } diff --git a/package.json b/package.json index a7b0fea3..adc116d5 100644 --- a/package.json +++ b/package.json @@ -150,24 +150,24 @@ "@types/react": "^19.2.14", "@types/react-dom": "^19.2.3", "@types/ws": "^8.5.11", - "@typescript-eslint/eslint-plugin": "^8.58.2", - "@typescript-eslint/parser": "^8.58.2", - "@vitest/coverage-v8": "^4.1.4", + "@typescript-eslint/eslint-plugin": "^8.59.1", + "@typescript-eslint/parser": "^8.59.1", + "@vitest/coverage-v8": "^4.1.5", "@vitest/eslint-plugin": "^1.6.16", - "@vitest/ui": "^4.1.4", + "@vitest/ui": "^4.1.5", "dotenv": "^17.4.2", - "eslint": "^10.2.0", + "eslint": "^10.2.1", "eslint-config-prettier": "^10.1.8", "eslint-plugin-n": "^17.24.0", "eslint-plugin-prettier": "^5.5.5", - "eslint-plugin-react-hooks": "^7.1.0", + "eslint-plugin-react-hooks": "^7.1.1", "eslint-plugin-unicorn": "^64.0.0", "execa": "^9.6.1", "fs-extra": "^11.3.4", "get-port": "^7.2.0", "globals": "^17.5.0", "http-server": "^14.1.1", - "nock": "^14.0.12", + "nock": "^14.0.14", "node-pty": "^1.1.0", "oclif": "^4.22.98", "playwright": "^1.59.1", @@ -177,7 +177,7 @@ "strip-ansi": "^7.2.0", "ts-node": "11.0.0-beta.1", "typescript": "^5.9.3", - "vitest": "^4.1.4" + "vitest": "^4.1.5" }, "engines": { "node": ">=22.0.0" diff --git a/packages/react-web-cli/package.json b/packages/react-web-cli/package.json index 379fbe19..d5d19309 100644 --- a/packages/react-web-cli/package.json +++ b/packages/react-web-cli/package.json @@ -54,15 +54,15 @@ "@types/react": "^19.2.14", "@types/react-dom": "^19.2.3", "@vitejs/plugin-react": "^6.0.1", - "@vitest/ui": "^4.1.4", + "@vitest/ui": "^4.1.5", "eslint-plugin-react": "^7.37.5", "lucide-react": "^1.8.0", "react": "^19.2.5", "react-dom": "^19.2.5", "tsup": "^8.5.1", "typescript": "^5.9.3", - "vite": "8.0.8", - "vitest": "^4.1.4" + "vite": "8.0.10", + "vitest": "^4.1.5" }, "publishConfig": { "access": "public" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c522e165..9dc6ee00 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -111,10 +111,10 @@ importers: devDependencies: '@eslint/compat': specifier: ^2.0.5 - version: 2.0.5(eslint@10.2.0(jiti@2.6.1)) + version: 2.0.5(eslint@10.2.1(jiti@2.6.1)) '@eslint/js': specifier: ^10.0.1 - version: 10.0.1(eslint@10.2.0(jiti@2.6.1)) + version: 10.0.1(eslint@10.2.1(jiti@2.6.1)) '@oclif/test': specifier: ^4.1.18 version: 4.1.18(@oclif/core@4.10.5) @@ -146,41 +146,41 @@ importers: specifier: ^8.5.11 version: 8.18.1 '@typescript-eslint/eslint-plugin': - specifier: ^8.58.2 - version: 8.58.2(@typescript-eslint/parser@8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3) + specifier: ^8.59.1 + version: 8.59.1(@typescript-eslint/parser@8.59.1(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3))(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^8.58.2 - version: 8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3) + specifier: ^8.59.1 + version: 8.59.1(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3) '@vitest/coverage-v8': - specifier: ^4.1.4 - version: 4.1.4(vitest@4.1.4) + specifier: ^4.1.5 + version: 4.1.5(vitest@4.1.5) '@vitest/eslint-plugin': specifier: ^1.6.16 - version: 1.6.16(@typescript-eslint/eslint-plugin@8.58.2(@typescript-eslint/parser@8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3)(vitest@4.1.4) + version: 1.6.16(@typescript-eslint/eslint-plugin@8.59.1(@typescript-eslint/parser@8.59.1(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3))(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3))(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3)(vitest@4.1.5) '@vitest/ui': - specifier: ^4.1.4 - version: 4.1.4(vitest@4.1.4) + specifier: ^4.1.5 + version: 4.1.5(vitest@4.1.5) dotenv: specifier: ^17.4.2 version: 17.4.2 eslint: - specifier: ^10.2.0 - version: 10.2.0(jiti@2.6.1) + specifier: ^10.2.1 + version: 10.2.1(jiti@2.6.1) eslint-config-prettier: specifier: ^10.1.8 - version: 10.1.8(eslint@10.2.0(jiti@2.6.1)) + version: 10.1.8(eslint@10.2.1(jiti@2.6.1)) eslint-plugin-n: specifier: ^17.24.0 - version: 17.24.0(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3) + version: 17.24.0(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3) eslint-plugin-prettier: specifier: ^5.5.5 - version: 5.5.5(eslint-config-prettier@10.1.8(eslint@10.2.0(jiti@2.6.1)))(eslint@10.2.0(jiti@2.6.1))(prettier@3.8.3) + version: 5.5.5(eslint-config-prettier@10.1.8(eslint@10.2.1(jiti@2.6.1)))(eslint@10.2.1(jiti@2.6.1))(prettier@3.8.3) eslint-plugin-react-hooks: - specifier: ^7.1.0 - version: 7.1.0(eslint@10.2.0(jiti@2.6.1)) + specifier: ^7.1.1 + version: 7.1.1(eslint@10.2.1(jiti@2.6.1)) eslint-plugin-unicorn: specifier: ^64.0.0 - version: 64.0.0(eslint@10.2.0(jiti@2.6.1)) + version: 64.0.0(eslint@10.2.1(jiti@2.6.1)) execa: specifier: ^9.6.1 version: 9.6.1 @@ -197,8 +197,8 @@ importers: specifier: ^14.1.1 version: 14.1.1 nock: - specifier: ^14.0.12 - version: 14.0.12 + specifier: ^14.0.14 + version: 14.0.14 node-pty: specifier: ^1.1.0 version: 1.1.0 @@ -227,8 +227,8 @@ importers: specifier: ^5.9.3 version: 5.9.3 vitest: - specifier: ^4.1.4 - version: 4.1.4(@edge-runtime/vm@3.2.0)(@types/node@25.6.0)(@vitest/coverage-v8@4.1.4)(@vitest/ui@4.1.4)(jsdom@26.1.0)(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)) + specifier: ^4.1.5 + version: 4.1.5(@edge-runtime/vm@3.2.0)(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5)(@vitest/ui@4.1.5)(jsdom@26.1.0)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)) examples/web-cli: dependencies: @@ -253,13 +253,13 @@ importers: devDependencies: '@eslint/js': specifier: ^10.0.1 - version: 10.0.1(eslint@10.2.0(jiti@2.6.1)) + version: 10.0.1(eslint@10.3.0(jiti@2.6.1)) '@tailwindcss/postcss': - specifier: ^4.2.2 - version: 4.2.2 + specifier: ^4.2.4 + version: 4.2.4 '@tailwindcss/vite': - specifier: ^4.2.2 - version: 4.2.2(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)) + specifier: ^4.2.4 + version: 4.2.4(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)) '@types/react': specifier: ^19.2.14 version: 19.2.14 @@ -267,44 +267,44 @@ importers: specifier: ^19.2.3 version: 19.2.3(@types/react@19.2.14) '@vercel/node': - specifier: ^5.7.10 - version: 5.7.10(rollup@4.59.0) + specifier: ^5.7.15 + version: 5.7.15(rollup@4.59.0) '@vitejs/plugin-react': specifier: ^6.0.1 - version: 6.0.1(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)) + version: 6.0.1(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)) autoprefixer: specifier: ^10.5.0 - version: 10.5.0(postcss@8.5.10) + version: 10.5.0(postcss@8.5.13) eslint: - specifier: ^10.2.0 - version: 10.2.0(jiti@2.6.1) + specifier: ^10.2.1 + version: 10.3.0(jiti@2.6.1) eslint-plugin-react-hooks: - specifier: ^7.1.0 - version: 7.1.0(eslint@10.2.0(jiti@2.6.1)) + specifier: ^7.1.1 + version: 7.1.1(eslint@10.3.0(jiti@2.6.1)) eslint-plugin-react-refresh: specifier: ^0.5.2 - version: 0.5.2(eslint@10.2.0(jiti@2.6.1)) + version: 0.5.2(eslint@10.3.0(jiti@2.6.1)) globals: specifier: ^17.4.0 version: 17.5.0 postcss: - specifier: ^8.5.10 - version: 8.5.10 + specifier: ^8.5.13 + version: 8.5.13 tailwindcss: - specifier: ^4.2.2 - version: 4.2.2 + specifier: ^4.2.4 + version: 4.2.4 typescript: specifier: ~5.9.3 version: 5.9.3 typescript-eslint: - specifier: ^8.58.2 - version: 8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3) + specifier: ^8.59.1 + version: 8.59.1(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3) vite: - specifier: ^8.0.8 - version: 8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0) + specifier: ^8.0.10 + version: 8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0) vite-tsconfig-paths: specifier: ^6.1.1 - version: 6.1.1(typescript@5.9.3)(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)) + version: 6.1.1(typescript@5.9.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)) packages/react-web-cli: dependencies: @@ -341,13 +341,13 @@ importers: version: 19.2.3(@types/react@19.2.14) '@vitejs/plugin-react': specifier: ^6.0.1 - version: 6.0.1(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)) + version: 6.0.1(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)) '@vitest/ui': - specifier: ^4.1.4 - version: 4.1.4(vitest@4.1.4) + specifier: ^4.1.5 + version: 4.1.5(vitest@4.1.5) eslint-plugin-react: specifier: ^7.37.5 - version: 7.37.5(eslint@10.2.1(jiti@2.6.1)) + version: 7.37.5(eslint@10.3.0(jiti@2.6.1)) lucide-react: specifier: ^1.8.0 version: 1.8.0(react@19.2.5) @@ -359,16 +359,16 @@ importers: version: 19.2.5(react@19.2.5) tsup: specifier: ^8.5.1 - version: 8.5.1(jiti@2.6.1)(postcss@8.5.10)(tsx@4.21.0)(typescript@5.9.3) + version: 8.5.1(jiti@2.6.1)(postcss@8.5.13)(tsx@4.21.0)(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 vite: - specifier: 8.0.8 - version: 8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0) + specifier: 8.0.10 + version: 8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0) vitest: - specifier: ^4.1.4 - version: 4.1.4(@edge-runtime/vm@3.2.0)(@types/node@25.6.0)(@vitest/coverage-v8@4.1.4)(@vitest/ui@4.1.4)(jsdom@26.1.0)(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)) + specifier: ^4.1.5 + version: 4.1.5(@edge-runtime/vm@3.2.0)(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5)(@vitest/ui@4.1.5)(jsdom@26.1.0)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)) packages: @@ -577,8 +577,8 @@ packages: resolution: {integrity: sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==} 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.29.0': @@ -623,8 +623,8 @@ packages: resolution: {integrity: sha512-HoGuUs4sCZNezVEKdVcwqmZN8GoHirLUcLaYVNBK2J0DadGtdcqgr3BCbvH8+XUo4NGjNl3VOtSjEKNzqfFgKw==} engines: {node: '>=6.9.0'} - '@babel/parser@7.29.2': - resolution: {integrity: sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA==} + '@babel/parser@7.29.3': + resolution: {integrity: sha512-b3ctpQwp+PROvU/cttc4OYl4MzfJUWy6FZg+PMXfzmt/+39iHVF0sDfqay8TQM3JA2EUOyKcFZt75jWriQijsA==} engines: {node: '>=6.0.0'} hasBin: true @@ -707,11 +707,11 @@ packages: resolution: {integrity: sha512-0dEVyRLM/lG4gp1R/Ik5bfPl/1wX00xFwd5KcNH602tzBa09oF7pbTKETEhR1GjZ75K6OJnYFu8II2dyMhONMw==} engines: {node: '>=16'} - '@emnapi/core@1.9.2': - resolution: {integrity: sha512-UC+ZhH3XtczQYfOlu3lNEkdW/p4dsJ1r/bP7H8+rhao3TTTMO1ATq/4DdIi23XuGoFY+Cz0JmCbdVl0hz9jZcA==} + '@emnapi/core@1.10.0': + resolution: {integrity: sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==} - '@emnapi/runtime@1.9.2': - resolution: {integrity: sha512-3U4+MIWHImeyu1wnmVygh5WlgfYDtyf0k8AbLhMFxOipihf6nrWC4syIm/SwEeec0mNSafiiNnMJwbza/Is6Lw==} + '@emnapi/runtime@1.10.0': + resolution: {integrity: sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==} '@emnapi/wasi-threads@1.2.1': resolution: {integrity: sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==} @@ -1076,18 +1076,10 @@ packages: resolution: {integrity: sha512-rZAP3aVgB9ds9KOeUSL+zZ21hPmo8dh6fnIFwRQj5EAZl9gzR7wxYbYXYysAM8CTqGmUGyp2S4kUdV17MnGuWQ==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@humanfs/core@0.19.1': - resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} - engines: {node: '>=18.18.0'} - '@humanfs/core@0.19.2': resolution: {integrity: sha512-UhXNm+CFMWcbChXywFwkmhqjs3PRCmcSa/hfBgLIb7oQ5HNb1wS0icWsGtSAUNgefHeI+eBrA8I1fxmbHsGdvA==} engines: {node: '>=18.18.0'} - '@humanfs/node@0.16.7': - resolution: {integrity: sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==} - engines: {node: '>=18.18.0'} - '@humanfs/node@0.16.8': resolution: {integrity: sha512-gE1eQNZ3R++kTzFUpdGlpmy8kDZD/MLyHqDwqjkVQI0JMdI1D51sy1H958PNXYkM2rAac7e5/CnIKZrHtPh3BQ==} engines: {node: '>=18.18.0'} @@ -1338,12 +1330,12 @@ packages: engines: {node: '>=18'} hasBin: true - '@mswjs/interceptors@0.41.3': - resolution: {integrity: sha512-cXu86tF4VQVfwz8W1SPbhoRyHJkti6mjH/XJIxp40jhO4j2k1m4KYrEykxqWPkFF3vrK4rgQppBh//AwyGSXPA==} + '@mswjs/interceptors@0.41.8': + resolution: {integrity: sha512-pRLMNKTSGRoLq+KnEB/7OY5vijw1XmcheAAOiv6pj7W1FG32kAGqj1C/RK/cqxRGr1Fh+zBi8sDur8kj3EQv6A==} engines: {node: '>=18'} - '@napi-rs/wasm-runtime@1.1.3': - resolution: {integrity: sha512-xK9sGVbJWYb08+mTJt3/YV24WxvxpXcXtP6B172paPZ+Ts69Re9dAr7lKwJoeIx8OoeuimEiRZ7umkiUVClmmQ==} + '@napi-rs/wasm-runtime@1.1.4': + resolution: {integrity: sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow==} peerDependencies: '@emnapi/core': ^1.7.1 '@emnapi/runtime': ^1.7.1 @@ -1399,8 +1391,8 @@ packages: '@open-draft/until@2.1.0': resolution: {integrity: sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg==} - '@oxc-project/types@0.124.0': - resolution: {integrity: sha512-VBFWMTBvHxS11Z5Lvlr3IWgrwhMTXV+Md+EQF0Xf60+wAdsGFTBx7X7K/hP4pi8N7dcm1RvcHwDxZ16Qx8keUg==} + '@oxc-project/types@0.127.0': + resolution: {integrity: sha512-aIYXQBo4lCbO4z0R3FHeucQHpF46l2LbMdxRvqvuRuW2OxdnSkcng5B8+K12spgLDj93rtN3+J2Vac/TIO+ciQ==} '@pkgjs/parseargs@0.11.0': resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} @@ -1429,103 +1421,97 @@ packages: resolution: {integrity: sha512-2FK1hF93Fuf1laSdfiEmJvSJPVIDHEUTz68D3Fi9s0IZrrpaEcj6pTFBTbYvsgC5du4ogrtf5re7yMMvrKNgkw==} engines: {node: ^20.9.0 || ^22.11.0 || ^24, pnpm: ^10.0.0} - '@rolldown/binding-android-arm64@1.0.0-rc.15': - resolution: {integrity: sha512-YYe6aWruPZDtHNpwu7+qAHEMbQ/yRl6atqb/AhznLTnD3UY99Q1jE7ihLSahNWkF4EqRPVC4SiR4O0UkLK02tA==} + '@rolldown/binding-android-arm64@1.0.0-rc.17': + resolution: {integrity: sha512-s70pVGhw4zqGeFnXWvAzJDlvxhlRollagdCCKRgOsgUOH3N1l0LIxf83AtGzmb5SiVM4Hjl5HyarMRfdfj3DaQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@rolldown/binding-darwin-arm64@1.0.0-rc.15': - resolution: {integrity: sha512-oArR/ig8wNTPYsXL+Mzhs0oxhxfuHRfG7Ikw7jXsw8mYOtk71W0OkF2VEVh699pdmzjPQsTjlD1JIOoHkLP1Fg==} + '@rolldown/binding-darwin-arm64@1.0.0-rc.17': + resolution: {integrity: sha512-4ksWc9n0mhlZpZ9PMZgTGjeOPRu8MB1Z3Tz0Mo02eWfWCHMW1zN82Qz/pL/rC+yQa+8ZnutMF0JjJe7PjwasYw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@rolldown/binding-darwin-x64@1.0.0-rc.15': - resolution: {integrity: sha512-YzeVqOqjPYvUbJSWJ4EDL8ahbmsIXQpgL3JVipmN+MX0XnXMeWomLN3Fb+nwCmP/jfyqte5I3XRSm7OfQrbyxw==} + '@rolldown/binding-darwin-x64@1.0.0-rc.17': + resolution: {integrity: sha512-SUSDOI6WwUVNcWxd02QEBjLdY1VPHvlEkw6T/8nYG322iYWCTxRb1vzk4E+mWWYehTp7ERibq54LSJGjmouOsw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@rolldown/binding-freebsd-x64@1.0.0-rc.15': - resolution: {integrity: sha512-9Erhx956jeQ0nNTyif1+QWAXDRD38ZNjr//bSHrt6wDwB+QkAfl2q6Mn1k6OBPerznjRmbM10lgRb1Pli4xZPw==} + '@rolldown/binding-freebsd-x64@1.0.0-rc.17': + resolution: {integrity: sha512-hwnz3nw9dbJ05EDO/PvcjaaewqqDy7Y1rn1UO81l8iIK1GjenME75dl16ajbvSSMfv66WXSRCYKIqfgq2KCfxw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.15': - resolution: {integrity: sha512-cVwk0w8QbZJGTnP/AHQBs5yNwmpgGYStL88t4UIaqcvYJWBfS0s3oqVLZPwsPU6M0zlW4GqjP0Zq5MnAGwFeGA==} + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.17': + resolution: {integrity: sha512-IS+W7epTcwANmFSQFrS1SivEXHtl1JtuQA9wlxrZTcNi6mx+FDOYrakGevvvTwgj2JvWiK8B29/qD9BELZPyXQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.15': - resolution: {integrity: sha512-eBZ/u8iAK9SoHGanqe/jrPnY0JvBN6iXbVOsbO38mbz+ZJsaobExAm1Iu+rxa4S1l2FjG0qEZn4Rc6X8n+9M+w==} + '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.17': + resolution: {integrity: sha512-e6usGaHKW5BMNZOymS1UcEYGowQMWcgZ71Z17Sl/h2+ZziNJ1a9n3Zvcz6LdRyIW5572wBCTH/Z+bKuZouGk9Q==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] - libc: [glibc] - '@rolldown/binding-linux-arm64-musl@1.0.0-rc.15': - resolution: {integrity: sha512-ZvRYMGrAklV9PEkgt4LQM6MjQX2P58HPAuecwYObY2DhS2t35R0I810bKi0wmaYORt6m/2Sm+Z+nFgb0WhXNcQ==} + '@rolldown/binding-linux-arm64-musl@1.0.0-rc.17': + resolution: {integrity: sha512-b/CgbwAJpmrRLp02RPfhbudf5tZnN9nsPWK82znefso832etkem8H7FSZwxrOI9djcdTP7U6YfNhbRnh7djErg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] - libc: [musl] - '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.15': - resolution: {integrity: sha512-VDpgGBzgfg5hLg+uBpCLoFG5kVvEyafmfxGUV0UHLcL5irxAK7PKNeC2MwClgk6ZAiNhmo9FLhRYgvMmedLtnQ==} + '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.17': + resolution: {integrity: sha512-4EII1iNGRUN5WwGbF/kOh/EIkoDN9HsupgLQoXfY+D1oyJm7/F4t5PYU5n8SWZgG0FEwakyM8pGgwcBYruGTlA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] - libc: [glibc] - '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.15': - resolution: {integrity: sha512-y1uXY3qQWCzcPgRJATPSOUP4tCemh4uBdY7e3EZbVwCJTY3gLJWnQABgeUetvED+bt1FQ01OeZwvhLS2bpNrAQ==} + '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.17': + resolution: {integrity: sha512-AH8oq3XqQo4IibpVXvPeLDI5pzkpYn0WiZAfT05kFzoJ6tQNzwRdDYQ45M8I/gslbodRZwW8uxLhbSBbkv96rA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] - libc: [glibc] - '@rolldown/binding-linux-x64-gnu@1.0.0-rc.15': - resolution: {integrity: sha512-023bTPBod7J3Y/4fzAN6QtpkSABR0rigtrwaP+qSEabUh5zf6ELr9Nc7GujaROuPY3uwdSIXWrvhn1KxOvurWA==} + '@rolldown/binding-linux-x64-gnu@1.0.0-rc.17': + resolution: {integrity: sha512-cLnjV3xfo7KslbU41Z7z8BH/E1y5mzUYzAqih1d1MDaIGZRCMqTijqLv76/P7fyHuvUcfGsIpqCdddbxLLK9rA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] - libc: [glibc] - '@rolldown/binding-linux-x64-musl@1.0.0-rc.15': - resolution: {integrity: sha512-witB2O0/hU4CgfOOKUoeFgQ4GktPi1eEbAhaLAIpgD6+ZnhcPkUtPsoKKHRzmOoWPZue46IThdSgdo4XneOLYw==} + '@rolldown/binding-linux-x64-musl@1.0.0-rc.17': + resolution: {integrity: sha512-0phclDw1spsL7dUB37sIARuis2tAgomCJXAHZlpt8PXZ4Ba0dRP1e+66lsRqrfhISeN9bEGNjQs+T/Fbd7oYGw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] - libc: [musl] - '@rolldown/binding-openharmony-arm64@1.0.0-rc.15': - resolution: {integrity: sha512-UCL68NJ0Ud5zRipXZE9dF5PmirzJE4E4BCIOOssEnM7wLDsxjc6Qb0sGDxTNRTP53I6MZpygyCpY8Aa8sPfKPg==} + '@rolldown/binding-openharmony-arm64@1.0.0-rc.17': + resolution: {integrity: sha512-0ag/hEgXOwgw4t8QyQvUCxvEg+V0KBcA6YuOx9g0r02MprutRF5dyljgm3EmR02O292UX7UeS6HzWHAl6KgyhA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] - '@rolldown/binding-wasm32-wasi@1.0.0-rc.15': - resolution: {integrity: sha512-ApLruZq/ig+nhaE7OJm4lDjayUnOHVUa77zGeqnqZ9pn0ovdVbbNPerVibLXDmWeUZXjIYIT8V3xkT58Rm9u5Q==} - engines: {node: '>=14.0.0'} + '@rolldown/binding-wasm32-wasi@1.0.0-rc.17': + resolution: {integrity: sha512-LEXei6vo0E5wTGwpkJ4KoT3OZJRnglwldt5ziLzOlc6qqb55z4tWNq2A+PFqCJuvWWdP53CVhG1Z9NtToDPJrA==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [wasm32] - '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.15': - resolution: {integrity: sha512-KmoUoU7HnN+Si5YWJigfTws1jz1bKBYDQKdbLspz0UaqjjFkddHsqorgiW1mxcAj88lYUE6NC/zJNwT+SloqtA==} + '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.17': + resolution: {integrity: sha512-gUmyzBl3SPMa6hrqFUth9sVfcLBlYsbMzBx5PlexMroZStgzGqlZ26pYG89rBb45Mnia+oil6YAIFeEWGWhoZA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@rolldown/binding-win32-x64-msvc@1.0.0-rc.15': - resolution: {integrity: sha512-3P2A8L+x75qavWLe/Dll3EYBJLQmtkJN8rfh+U/eR3MqMgL/h98PhYI+JFfXuDPgPeCB7iZAKiqii5vqOvnA0g==} + '@rolldown/binding-win32-x64-msvc@1.0.0-rc.17': + resolution: {integrity: sha512-3hkiolcUAvPB9FLb3UZdfjVVNWherN1f/skkGWJP/fgSQhYUZpSIRr0/I8ZK9TkF3F7kxvJAk0+IcKvPHk9qQg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] - '@rolldown/pluginutils@1.0.0-rc.15': - resolution: {integrity: sha512-UromN0peaE53IaBRe9W7CjrZgXl90fqGpK+mIZbA3qSTeYqg3pqpROBdIPvOG3F5ereDHNwoHBI2e50n1BDr1g==} + '@rolldown/pluginutils@1.0.0-rc.17': + resolution: {integrity: sha512-n8iosDOt6Ig1UhJ2AYqoIhHWh/isz0xpicHTzpKBeotdVsTEcxsSA/i3EVM7gQAj0rU27OLAxCjzlj15IWY7bg==} '@rolldown/pluginutils@1.0.0-rc.7': resolution: {integrity: sha512-qujRfC8sFVInYSPPMLQByRh7zhwkGFS4+tyMQ83srV1qrxL4g8E2tyxVVyxd0+8QeBM1mIk9KbWxkegRr76XzA==} @@ -1633,7 +1619,6 @@ packages: resolution: {integrity: sha512-lG7Xa+BmBNwpjmVUbmyKxdQJ3Q6whHjMjzQplOs5Z+Gj7mxPtWakGHqzMqNER68G67kmCX9qX57aRsW5V0VOng==} cpu: [x64] os: [linux] - libc: [glibc] '@rollup/rollup-linux-x64-gnu@4.59.0': resolution: {integrity: sha512-3AHmtQq/ppNuUspKAlvA8HtLybkDflkMuLK4DPo77DfthRb71V84/c4MlWJXixZz4uruIH4uaa07IqoAkG64fg==} @@ -1917,65 +1902,65 @@ packages: resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==} engines: {node: '>=14.16'} - '@tailwindcss/node@4.2.2': - resolution: {integrity: sha512-pXS+wJ2gZpVXqFaUEjojq7jzMpTGf8rU6ipJz5ovJV6PUGmlJ+jvIwGrzdHdQ80Sg+wmQxUFuoW1UAAwHNEdFA==} + '@tailwindcss/node@4.2.4': + resolution: {integrity: sha512-Ai7+yQPxz3ddrDQzFfBKdHEVBg0w3Zl83jnjuwxnZOsnH9pGn93QHQtpU0p/8rYWxvbFZHneni6p1BSLK4DkGA==} - '@tailwindcss/oxide-android-arm64@4.2.2': - resolution: {integrity: sha512-dXGR1n+P3B6748jZO/SvHZq7qBOqqzQ+yFrXpoOWWALWndF9MoSKAT3Q0fYgAzYzGhxNYOoysRvYlpixRBBoDg==} + '@tailwindcss/oxide-android-arm64@4.2.4': + resolution: {integrity: sha512-e7MOr1SAn9U8KlZzPi1ZXGZHeC5anY36qjNwmZv9pOJ8E4Q6jmD1vyEHkQFmNOIN7twGPEMXRHmitN4zCMN03g==} engines: {node: '>= 20'} cpu: [arm64] os: [android] - '@tailwindcss/oxide-darwin-arm64@4.2.2': - resolution: {integrity: sha512-iq9Qjr6knfMpZHj55/37ouZeykwbDqF21gPFtfnhCCKGDcPI/21FKC9XdMO/XyBM7qKORx6UIhGgg6jLl7BZlg==} + '@tailwindcss/oxide-darwin-arm64@4.2.4': + resolution: {integrity: sha512-tSC/Kbqpz/5/o/C2sG7QvOxAKqyd10bq+ypZNf+9Fi2TvbVbv1zNpcEptcsU7DPROaSbVgUXmrzKhurFvo5eDg==} engines: {node: '>= 20'} cpu: [arm64] os: [darwin] - '@tailwindcss/oxide-darwin-x64@4.2.2': - resolution: {integrity: sha512-BlR+2c3nzc8f2G639LpL89YY4bdcIdUmiOOkv2GQv4/4M0vJlpXEa0JXNHhCHU7VWOKWT/CjqHdTP8aUuDJkuw==} + '@tailwindcss/oxide-darwin-x64@4.2.4': + resolution: {integrity: sha512-yPyUXn3yO/ufR6+Kzv0t4fCg2qNr90jxXc5QqBpjlPNd0NqyDXcmQb/6weunH/MEDXW5dhyEi+agTDiqa3WsGg==} engines: {node: '>= 20'} cpu: [x64] os: [darwin] - '@tailwindcss/oxide-freebsd-x64@4.2.2': - resolution: {integrity: sha512-YUqUgrGMSu2CDO82hzlQ5qSb5xmx3RUrke/QgnoEx7KvmRJHQuZHZmZTLSuuHwFf0DJPybFMXMYf+WJdxHy/nQ==} + '@tailwindcss/oxide-freebsd-x64@4.2.4': + resolution: {integrity: sha512-BoMIB4vMQtZsXdGLVc2z+P9DbETkiopogfWZKbWwM8b/1Vinbs4YcUwo+kM/KeLkX3Ygrf4/PsRndKaYhS8Eiw==} engines: {node: '>= 20'} cpu: [x64] os: [freebsd] - '@tailwindcss/oxide-linux-arm-gnueabihf@4.2.2': - resolution: {integrity: sha512-FPdhvsW6g06T9BWT0qTwiVZYE2WIFo2dY5aCSpjG/S/u1tby+wXoslXS0kl3/KXnULlLr1E3NPRRw0g7t2kgaQ==} + '@tailwindcss/oxide-linux-arm-gnueabihf@4.2.4': + resolution: {integrity: sha512-7pIHBLTHYRAlS7V22JNuTh33yLH4VElwKtB3bwchK/UaKUPpQ0lPQiOWcbm4V3WP2I6fNIJ23vABIvoy2izdwA==} engines: {node: '>= 20'} cpu: [arm] os: [linux] - '@tailwindcss/oxide-linux-arm64-gnu@4.2.2': - resolution: {integrity: sha512-4og1V+ftEPXGttOO7eCmW7VICmzzJWgMx+QXAJRAhjrSjumCwWqMfkDrNu1LXEQzNAwz28NCUpucgQPrR4S2yw==} + '@tailwindcss/oxide-linux-arm64-gnu@4.2.4': + resolution: {integrity: sha512-+E4wxJ0ZGOzSH325reXTWB48l42i93kQqMvDyz5gqfRzRZ7faNhnmvlV4EPGJU3QJM/3Ab5jhJ5pCRUsKn6OQw==} engines: {node: '>= 20'} cpu: [arm64] os: [linux] - '@tailwindcss/oxide-linux-arm64-musl@4.2.2': - resolution: {integrity: sha512-oCfG/mS+/+XRlwNjnsNLVwnMWYH7tn/kYPsNPh+JSOMlnt93mYNCKHYzylRhI51X+TbR+ufNhhKKzm6QkqX8ag==} + '@tailwindcss/oxide-linux-arm64-musl@4.2.4': + resolution: {integrity: sha512-bBADEGAbo4ASnppIziaQJelekCxdMaxisrk+fB7Thit72IBnALp9K6ffA2G4ruj90G9XRS2VQ6q2bCKbfFV82g==} engines: {node: '>= 20'} cpu: [arm64] os: [linux] - '@tailwindcss/oxide-linux-x64-gnu@4.2.2': - resolution: {integrity: sha512-rTAGAkDgqbXHNp/xW0iugLVmX62wOp2PoE39BTCGKjv3Iocf6AFbRP/wZT/kuCxC9QBh9Pu8XPkv/zCZB2mcMg==} + '@tailwindcss/oxide-linux-x64-gnu@4.2.4': + resolution: {integrity: sha512-7Mx25E4WTfnht0TVRTyC00j3i0M+EeFe7wguMDTlX4mRxafznw0CA8WJkFjWYH5BlgELd1kSjuU2JiPnNZbJDA==} engines: {node: '>= 20'} cpu: [x64] os: [linux] - '@tailwindcss/oxide-linux-x64-musl@4.2.2': - resolution: {integrity: sha512-XW3t3qwbIwiSyRCggeO2zxe3KWaEbM0/kW9e8+0XpBgyKU4ATYzcVSMKteZJ1iukJ3HgHBjbg9P5YPRCVUxlnQ==} + '@tailwindcss/oxide-linux-x64-musl@4.2.4': + resolution: {integrity: sha512-2wwJRF7nyhOR0hhHoChc04xngV3iS+akccHTGtz965FwF0up4b2lOdo6kI1EbDaEXKgvcrFBYcYQQ/rrnWFVfA==} engines: {node: '>= 20'} cpu: [x64] os: [linux] - '@tailwindcss/oxide-wasm32-wasi@4.2.2': - resolution: {integrity: sha512-eKSztKsmEsn1O5lJ4ZAfyn41NfG7vzCg496YiGtMDV86jz1q/irhms5O0VrY6ZwTUkFy/EKG3RfWgxSI3VbZ8Q==} + '@tailwindcss/oxide-wasm32-wasi@4.2.4': + resolution: {integrity: sha512-FQsqApeor8Fo6gUEklzmaa9994orJZZDBAlQpK2Mq+DslRKFJeD6AjHpBQ0kZFQohVr8o85PPh8eOy86VlSCmw==} engines: {node: '>=14.0.0'} cpu: [wasm32] bundledDependencies: @@ -1986,27 +1971,27 @@ packages: - '@emnapi/wasi-threads' - tslib - '@tailwindcss/oxide-win32-arm64-msvc@4.2.2': - resolution: {integrity: sha512-qPmaQM4iKu5mxpsrWZMOZRgZv1tOZpUm+zdhhQP0VhJfyGGO3aUKdbh3gDZc/dPLQwW4eSqWGrrcWNBZWUWaXQ==} + '@tailwindcss/oxide-win32-arm64-msvc@4.2.4': + resolution: {integrity: sha512-L9BXqxC4ToVgwMFqj3pmZRqyHEztulpUJzCxUtLjobMCzTPsGt1Fa9enKbOpY2iIyVtaHNeNvAK8ERP/64sqGQ==} engines: {node: '>= 20'} cpu: [arm64] os: [win32] - '@tailwindcss/oxide-win32-x64-msvc@4.2.2': - resolution: {integrity: sha512-1T/37VvI7WyH66b+vqHj/cLwnCxt7Qt3WFu5Q8hk65aOvlwAhs7rAp1VkulBJw/N4tMirXjVnylTR72uI0HGcA==} + '@tailwindcss/oxide-win32-x64-msvc@4.2.4': + resolution: {integrity: sha512-ESlKG0EpVJQwRjXDDa9rLvhEAh0mhP1sF7sap9dNZT0yyl9SAG6T7gdP09EH0vIv0UNTlo6jPWyujD6559fZvw==} engines: {node: '>= 20'} cpu: [x64] os: [win32] - '@tailwindcss/oxide@4.2.2': - resolution: {integrity: sha512-qEUA07+E5kehxYp9BVMpq9E8vnJuBHfJEC0vPC5e7iL/hw7HR61aDKoVoKzrG+QKp56vhNZe4qwkRmMC0zDLvg==} + '@tailwindcss/oxide@4.2.4': + resolution: {integrity: sha512-9El/iI069DKDSXwTvB9J4BwdO5JhRrOweGaK25taBAvBXyXqJAX+Jqdvs8r8gKpsI/1m0LeJLyQYTf/WLrBT1Q==} engines: {node: '>= 20'} - '@tailwindcss/postcss@4.2.2': - resolution: {integrity: sha512-n4goKQbW8RVXIbNKRB/45LzyUqN451deQK0nzIeauVEqjlI49slUlgKYJM2QyUzap/PcpnS7kzSUmPb1sCRvYQ==} + '@tailwindcss/postcss@4.2.4': + resolution: {integrity: sha512-wgAVj6nUWAolAu8YFvzT2cTBIElWHkjZwFYovF+xsqKsW2ADxM/X2opxj5NsF/qVccAOjRNe8X2IdPzMsWyHTg==} - '@tailwindcss/vite@4.2.2': - resolution: {integrity: sha512-mEiF5HO1QqCLXoNEfXVA1Tzo+cYsrqV7w9Juj2wdUFyW07JRenqMG225MvPwr3ZD9N1bFQj46X7r33iHxLUW0w==} + '@tailwindcss/vite@4.2.4': + resolution: {integrity: sha512-pCvohwOCspk3ZFn6eJzrrX3g4n2JY73H6MmYC87XfGPyTty4YsCjYTMArRZm/zOI8dIt3+EcrLHAFPe5A4bgtw==} peerDependencies: vite: ^5.2.0 || ^6 || ^7 || ^8 @@ -2048,8 +2033,8 @@ packages: '@tsconfig/node20@20.1.5': resolution: {integrity: sha512-Vm8e3WxDTqMGPU4GATF9keQAIy1Drd7bPwlgzKJnZtoOsTm1tduUTbDjg0W5qERvGuxPI2h9RbMufH0YdfBylA==} - '@tybys/wasm-util@0.10.1': - resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==} + '@tybys/wasm-util@0.10.2': + resolution: {integrity: sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg==} '@types/aria-query@5.0.4': resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==} @@ -2131,16 +2116,16 @@ packages: '@types/ws@8.18.1': resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==} - '@typescript-eslint/eslint-plugin@8.58.2': - resolution: {integrity: sha512-aC2qc5thQahutKjP+cl8cgN9DWe3ZUqVko30CMSZHnFEHyhOYoZSzkGtAI2mcwZ38xeImDucI4dnqsHiOYuuCw==} + '@typescript-eslint/eslint-plugin@8.59.1': + resolution: {integrity: sha512-BOziFIfE+6osHO9FoJG4zjoHUcvI7fTNBSpdAwrNH0/TLvzjsk2oo8XSSOT2HhqUyhZPfHv4UOffoJ9oEEQ7Ag==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.58.2 + '@typescript-eslint/parser': ^8.59.1 eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/parser@8.58.2': - resolution: {integrity: sha512-/Zb/xaIDfxeJnvishjGdcR4jmr7S+bda8PKNhRGdljDM+elXhlvN0FyPSsMnLmJUrVG9aPO6dof80wjMawsASg==} + '@typescript-eslint/parser@8.59.1': + resolution: {integrity: sha512-HDQH9O/47Dxi1ceDhBXdaldtf/WV9yRYMjbjCuNk3qnaTD564qwv61Y7+gTxwxRKzSrgO5uhtw584igXVuuZkA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 @@ -2152,18 +2137,34 @@ packages: peerDependencies: typescript: '>=4.8.4 <6.1.0' + '@typescript-eslint/project-service@8.59.1': + resolution: {integrity: sha512-+MuHQlHiEr00Of/IQbE/MmEoi44znZHbR/Pz7Opq4HryUOlRi+/44dro9Ycy8Fyo+/024IWtw8m4JUMCGTYxDg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.1.0' + '@typescript-eslint/scope-manager@8.58.2': resolution: {integrity: sha512-SgmyvDPexWETQek+qzZnrG6844IaO02UVyOLhI4wpo82dpZJY9+6YZCKAMFzXb7qhx37mFK1QcPQ18tud+vo6Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/scope-manager@8.59.1': + resolution: {integrity: sha512-LwuHQI4pDOYVKvmH2dkaJo6YZCSgouVgnS/z7yBPKBMvgtBvyLqiLy9Z6b7+m/TRcX1NFYUqZetI5Y+aT4GEfg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/tsconfig-utils@8.58.2': resolution: {integrity: sha512-3SR+RukipDvkkKp/d0jP0dyzuls3DbGmwDpVEc5wqk5f38KFThakqAAO0XMirWAE+kT00oTauTbzMFGPoAzB0A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/type-utils@8.58.2': - resolution: {integrity: sha512-Z7EloNR/B389FvabdGeTo2XMs4W9TjtPiO9DAsmT0yom0bwlPyRjkJ1uCdW1DvrrrYP50AJZ9Xc3sByZA9+dcg==} + '@typescript-eslint/tsconfig-utils@8.59.1': + resolution: {integrity: sha512-/0nEyPbX7gRsk0Uwfe4ALwwgxuA66d/l2mhRDNlAvaj4U3juhUtJNq0DsY8M2AYwwb9rEq2hrC3IcIcEt++iJA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.1.0' + + '@typescript-eslint/type-utils@8.59.1': + resolution: {integrity: sha512-klWPBR2ciQHS3f++ug/mVnWKPjBUo7icEL3FAO1lhAR1Z1i5NQYZ1EannMSRYcq5qCv5wNALlXr6fksRHyYl7w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 @@ -2173,12 +2174,22 @@ packages: resolution: {integrity: sha512-9TukXyATBQf/Jq9AMQXfvurk+G5R2MwfqQGDR2GzGz28HvY/lXNKGhkY+6IOubwcquikWk5cjlgPvD2uAA7htQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/types@8.59.1': + resolution: {integrity: sha512-ZDCjgccSdYPw5Bxh+my4Z0lJU96ZDN7jbBzvmEn0FZx3RtU1C7VWl6NbDx94bwY3V5YsgwRzJPOgeY2Q/nLG8A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/typescript-estree@8.58.2': resolution: {integrity: sha512-ELGuoofuhhoCvNbQjFFiobFcGgcDCEm0ThWdmO4Z0UzLqPXS3KFvnEZ+SHewwOYHjM09tkzOWXNTv9u6Gqtyuw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.1.0' + '@typescript-eslint/typescript-estree@8.59.1': + resolution: {integrity: sha512-OUd+vJS05sSkOip+BkZ/2NS8RMxrAAJemsC6vU3kmfLyeaJT0TftHkV9mcx2107MmsBVXXexhVu4F0TZXyMl4g==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.1.0' + '@typescript-eslint/utils@8.58.2': resolution: {integrity: sha512-QZfjHNEzPY8+l0+fIXMvuQ2sJlplB4zgDZvA+NmvZsZv3EQwOcc1DuIU1VJUTWZ/RKouBMhDyNaBMx4sWvrzRA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -2186,29 +2197,40 @@ packages: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' + '@typescript-eslint/utils@8.59.1': + resolution: {integrity: sha512-3pIeoXhCeYH9FSCBI8P3iNwJlGuzPlYKkTlen2O9T1DSeeg8UG8jstq6BLk+Mda0qup7mgk4z4XL4OzRaxZ8LA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' + '@typescript-eslint/visitor-keys@8.58.2': resolution: {integrity: sha512-f1WO2Lx8a9t8DARmcWAUPJbu0G20bJlj8L4z72K00TMeJAoyLr/tHhI/pzYBLrR4dXWkcxO1cWYZEOX8DKHTqA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@vercel/build-utils@13.18.0': - resolution: {integrity: sha512-rLgAzGLBArQhs+W6nFx70WeyClzWUpgnzLNyi9ZWv0hZT0F+769TEhEZX0jo6WDtIMeFAtamQyWWJheonyuurQ==} + '@typescript-eslint/visitor-keys@8.59.1': + resolution: {integrity: sha512-LdDNl6C5iJExcM0Yh0PwAIBb9PrSiCsWamF/JyEZawm3kFDnRoaq3LGE4bpyRao/fWeGKKyw7icx0YxrLFC5Cg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@vercel/build-utils@13.21.0': + resolution: {integrity: sha512-A1vtlzFYbjvxRxhnt94LUxrn9JVX2EuXALi/NFyxNA1M51eGQwI5LZaroNlgIRXdx7LCJxBQEUMKc1fi0aqU/g==} - '@vercel/error-utils@2.0.3': - resolution: {integrity: sha512-CqC01WZxbLUxoiVdh9B/poPbNpY9U+tO1N9oWHwTl5YAZxcqXmmWJ8KNMFItJCUUWdY3J3xv8LvAuQv2KZ5YdQ==} + '@vercel/error-utils@2.1.0': + resolution: {integrity: sha512-DiJcXBOB9N6QM4d7hYPM9Ck/AUjzBl58XNQPxS74o7CuvIanjzrGgygP/70VsyEASeIJMazk1LrhwcNTR/eZGQ==} '@vercel/nft@1.5.0': resolution: {integrity: sha512-IWTDeIoWhQ7ZtRO/JRKH+jhmeQvZYhtGPmzw/QGDY+wDCQqfm25P9yIdoAFagu4fWsK4IwZXDFIjrmp5rRm/sA==} engines: {node: '>=20'} hasBin: true - '@vercel/node@5.7.10': - resolution: {integrity: sha512-sekJP0WiyPlu64+2mzk/cR/pU5V6oBw1h52paisk3HrHqkY+iGxpvuUjAaMHdPOzq2+58aw0ubOMwvZukRv73w==} + '@vercel/node@5.7.15': + resolution: {integrity: sha512-o8YtafKgaYsY7/4SRKlrvTx/cEB5o3vQG3/eq5Qo66n4WaFeZV8R8GG+BzSU3SYozasQlQxkbPxedUNF4sZJ8A==} - '@vercel/python-analysis@0.11.0': - resolution: {integrity: sha512-gsoj+nscmNm0xDh+tRhECRhit2VlAVaD7jc9h93sN6rDEBDxPo7eLEgIJFzVDaAItxERZ9Od2IK/04fB9vFy+g==} + '@vercel/python-analysis@0.11.1': + resolution: {integrity: sha512-EPPLuXJQhIDUx08H9nG76AR2HSgBquwe3OAX5s2w20M923iaWeGGVkhX/4yZ89CJfXEZgE1Aj/mX7lVHOVIcYA==} - '@vercel/static-config@3.2.0': - resolution: {integrity: sha512-UpOEIgWxWx0M+mDe1IMdHS6JuWM/L5nNIJ4ixX8v9JgBAejymo88OkgnmfLCNMem0Wd+b5vcQPWLdZybCndlsA==} + '@vercel/static-config@3.3.0': + resolution: {integrity: sha512-GpS3tPwUeDJCkrKbMNtS2XLRFgfxTlN7YNUL+Bo23+fGolrDw6Oq79R3yvxTYgqRaJMGSEqC7iMw6mj6I5loxg==} '@vitejs/plugin-react@6.0.1': resolution: {integrity: sha512-l9X/E3cDb+xY3SWzlG1MOGt2usfEHGMNIaegaUGFsLkb3RCn/k8/TOXBcab+OndDI4TBtktT8/9BwwW8Vi9KUQ==} @@ -2223,11 +2245,11 @@ packages: babel-plugin-react-compiler: optional: true - '@vitest/coverage-v8@4.1.4': - resolution: {integrity: sha512-x7FptB5oDruxNPDNY2+S8tCh0pcq7ymCe1gTHcsp733jYjrJl8V1gMUlVysuCD9Kz46Xz9t1akkv08dPcYDs1w==} + '@vitest/coverage-v8@4.1.5': + resolution: {integrity: sha512-38C0/Ddb7HcRG0Z4/DUem8x57d2p9jYgp18mkaYswEOQBGsI1CG4f/hjm0ZCeaJfWhSZ4k7jgs29V1Zom7Ki9A==} peerDependencies: - '@vitest/browser': 4.1.4 - vitest: 4.1.4 + '@vitest/browser': 4.1.5 + vitest: 4.1.5 peerDependenciesMeta: '@vitest/browser': optional: true @@ -2248,11 +2270,11 @@ packages: vitest: optional: true - '@vitest/expect@4.1.4': - resolution: {integrity: sha512-iPBpra+VDuXmBFI3FMKHSFXp3Gx5HfmSCE8X67Dn+bwephCnQCaB7qWK2ldHa+8ncN8hJU8VTMcxjPpyMkUjww==} + '@vitest/expect@4.1.5': + resolution: {integrity: sha512-PWBaRY5JoKuRnHlUHfpV/KohFylaDZTupcXN1H9vYryNLOnitSw60Mw9IAE2r67NbwwzBw/Cc/8q9BK3kIX8Kw==} - '@vitest/mocker@4.1.4': - resolution: {integrity: sha512-R9HTZBhW6yCSGbGQnDnH3QHfJxokKN4KB+Yvk9Q1le7eQNYwiCyKxmLmurSpFy6BzJanSLuEUDrD+j97Q+ZLPg==} + '@vitest/mocker@4.1.5': + resolution: {integrity: sha512-/x2EmFC4mT4NNzqvC3fmesuV97w5FC903KPmey4gsnJiMQ3Be1IlDKVaDaG8iqaLFHqJ2FVEkxZk5VmeLjIItw==} peerDependencies: msw: ^2.4.9 vite: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -2262,25 +2284,25 @@ packages: vite: optional: true - '@vitest/pretty-format@4.1.4': - resolution: {integrity: sha512-ddmDHU0gjEUyEVLxtZa7xamrpIefdEETu3nZjWtHeZX4QxqJ7tRxSteHVXJOcr8jhiLoGAhkK4WJ3WqBpjx42A==} + '@vitest/pretty-format@4.1.5': + resolution: {integrity: sha512-7I3q6l5qr03dVfMX2wCo9FxwSJbPdwKjy2uu/YPpU3wfHvIL4QHwVRp57OfGrDFeUJ8/8QdfBKIV12FTtLn00g==} - '@vitest/runner@4.1.4': - resolution: {integrity: sha512-xTp7VZ5aXP5ZJrn15UtJUWlx6qXLnGtF6jNxHepdPHpMfz/aVPx+htHtgcAL2mDXJgKhpoo2e9/hVJsIeFbytQ==} + '@vitest/runner@4.1.5': + resolution: {integrity: sha512-2D+o7Pr82IEO46YPpoA/YU0neeyr6FTerQb5Ro7BUnBuv6NQtT/kmVnczngiMEBhzgqz2UZYl5gArejsyERDSQ==} - '@vitest/snapshot@4.1.4': - resolution: {integrity: sha512-MCjCFgaS8aZz+m5nTcEcgk/xhWv0rEH4Yl53PPlMXOZ1/Ka2VcZU6CJ+MgYCZbcJvzGhQRjVrGQNZqkGPttIKw==} + '@vitest/snapshot@4.1.5': + resolution: {integrity: sha512-zypXEt4KH/XgKGPUz4eC2AvErYx0My5hfL8oDb1HzGFpEk1P62bxSohdyOmvz+d9UJwanI68MKwr2EquOaOgMQ==} - '@vitest/spy@4.1.4': - resolution: {integrity: sha512-XxNdAsKW7C+FLydqFJLb5KhJtl3PGCMmYwFRfhvIgxJvLSXhhVI1zM8f1qD3Zg7RCjTSzDVyct6sghs9UEgBEQ==} + '@vitest/spy@4.1.5': + resolution: {integrity: sha512-2lNOsh6+R2Idnf1TCZqSwYlKN2E/iDlD8sgU59kYVl+OMDmvldO1VDk39smRfpUNwYpNRVn3w4YfuC7KfbBnkQ==} - '@vitest/ui@4.1.4': - resolution: {integrity: sha512-EgFR7nlj5iTDYZYCvavjFokNYwr3c3ry0sFiCg+N7B233Nwp+NNx7eoF/XvMWDCKY71xXAG3kFkt97ZHBJVL8A==} + '@vitest/ui@4.1.5': + resolution: {integrity: sha512-3Z9HNFiV0IF1fk0JPiK+7kE1GcaIPefQQIBYur6PM5yFIq6agys3uqP/0t966e1wXfmjbRCHDe7qW236Xjwnag==} peerDependencies: - vitest: 4.1.4 + vitest: 4.1.5 - '@vitest/utils@4.1.4': - resolution: {integrity: sha512-13QMT+eysM5uVGa1rG4kegGYNp6cnQcsTc67ELFbhNLQO+vgsygtYJx2khvdt4gVQqSSpC/KT5FZZxUpP3Oatw==} + '@vitest/utils@4.1.5': + resolution: {integrity: sha512-76wdkrmfXfqGjueGgnb45ITPyUi1ycZ4IHgC2bhPDUfWHklY/q3MdLOAB+TF1e6xfl8NxNY0ZYaPCFNWSsw3Ug==} '@xterm/addon-fit@0.11.0': resolution: {integrity: sha512-jYcgT6xtVYhnhgxh3QgYDnnNMYTcf8ElbxxFzX0IZo+vabQqSPAjC3c1wJrKB5E19VwQei89QCiZZP86DCPF7g==} @@ -2347,8 +2369,8 @@ packages: resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} engines: {node: '>= 14'} - ajv@6.14.0: - resolution: {integrity: sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==} + ajv@6.15.0: + resolution: {integrity: sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==} ajv@8.18.0: resolution: {integrity: sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==} @@ -2949,8 +2971,8 @@ packages: resolution: {integrity: sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==} engines: {node: '>=10.13.0'} - enhanced-resolve@5.20.1: - resolution: {integrity: sha512-Qohcme7V1inbAfvjItgw0EaxVX5q2rdVEZHRBrEQdRZTssLDGsL8Lwrznl8oQ/6kuTJONLaDcGjkNP247XEhcA==} + enhanced-resolve@5.21.0: + resolution: {integrity: sha512-otxSQPw4lkOZWkHpB3zaEQs6gWYEsmX4xQF68ElXC/TWvGxGMSGOvoNbaLXm6/cS/fSfHtsEdw90y20PCd+sCA==} engines: {node: '>=10.13.0'} entities@6.0.1: @@ -2982,8 +3004,8 @@ packages: es-module-lexer@1.5.0: resolution: {integrity: sha512-pqrTKmwEIgafsYZAGw9kszYzmagcE/n4dbgwGWLEXg7J4QFJVQRBld8j3Q3GNez79jzxZshq0bcT962QHOghjw==} - es-module-lexer@2.0.0: - resolution: {integrity: sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw==} + es-module-lexer@2.1.0: + resolution: {integrity: sha512-n27zTYMjYu1aj4MjCWzSP7G9r75utsaoc8m61weK+W8JMBGGQybd43GstCXZ3WNmSFtGT9wi59qQTW6mhTR5LQ==} es-object-atoms@1.1.1: resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} @@ -3061,8 +3083,8 @@ packages: eslint-config-prettier: optional: true - eslint-plugin-react-hooks@7.1.0: - resolution: {integrity: sha512-LDicyhrRFrIaheDYryeM2W8gWyZXnAs4zIr2WVPiOSeTmIu2RjR4x/9N0xLaRWZ+9hssBDGo3AadcohuzAvSvg==} + eslint-plugin-react-hooks@7.1.1: + resolution: {integrity: sha512-f2I7Gw6JbvCexzIInuSbZpfdQ44D7iqdWX01FKLvrPgqxoE7oMj8clOfto8U6vYiz4yd5oKu39rRSVOe1zRu0g==} engines: {node: '>=18'} peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 || ^10.0.0 @@ -3096,8 +3118,8 @@ packages: resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - eslint@10.2.0: - resolution: {integrity: sha512-+L0vBFYGIpSNIt/KWTpFonPrqYvgKw1eUI5Vn7mEogrQcWtWYtNQ7dNqC+px/J0idT3BAkiWrhfS7k+Tum8TUA==} + eslint@10.2.1: + resolution: {integrity: sha512-wiyGaKsDgqXvF40P8mDwiUp/KQjE1FdrIEJsM8PZ3XCiniTMXS3OHWWUe5FI5agoCnr8x4xPrTDZuxsBlNHl+Q==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} hasBin: true peerDependencies: @@ -3106,8 +3128,8 @@ packages: jiti: optional: true - eslint@10.2.1: - resolution: {integrity: sha512-wiyGaKsDgqXvF40P8mDwiUp/KQjE1FdrIEJsM8PZ3XCiniTMXS3OHWWUe5FI5agoCnr8x4xPrTDZuxsBlNHl+Q==} + eslint@10.3.0: + resolution: {integrity: sha512-XbEXaRva5cF0ZQB8w6MluHA0kZZfV2DuCMJ3ozyEOHLwDpZX2Lmm/7Pp0xdJmI0GL1W05VH5VwIFHEm1Vcw2gw==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} hasBin: true peerDependencies: @@ -3918,28 +3940,24 @@ packages: engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] - libc: [glibc] lightningcss-linux-arm64-musl@1.32.0: resolution: {integrity: sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] - libc: [musl] lightningcss-linux-x64-gnu@1.32.0: resolution: {integrity: sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] - libc: [glibc] lightningcss-linux-x64-musl@1.32.0: resolution: {integrity: sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] - libc: [musl] lightningcss-win32-arm64-msvc@1.32.0: resolution: {integrity: sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==} @@ -4189,6 +4207,11 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + nanoid@3.3.12: + resolution: {integrity: sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} @@ -4202,8 +4225,8 @@ packages: no-case@3.0.4: resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} - nock@14.0.12: - resolution: {integrity: sha512-kZM3bHV0KzhHH6E2eRszHyML/w87AUzLBwupNTHohtYWP9fZYgUPmCbSKq6ITfEEmHqN4/p0MscvUipT4P5Qsg==} + nock@14.0.14: + resolution: {integrity: sha512-PKk7tex0O3RRXUZC5XDKJ9yM3rYRPS13myduT85VIIYDBnib42Fpxoe6KxRSzqB4iL2NDxkcJ2yiskZ18hGLEQ==} engines: {node: '>=18.20.0 <20 || >=20.12.1'} node-addon-api@7.1.1: @@ -4507,8 +4530,8 @@ packages: postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - postcss@8.5.10: - resolution: {integrity: sha512-pMMHxBOZKFU6HgAZ4eyGnwXF/EvPGGqUr0MnZ5+99485wwW41kW91A4LOGxSHhgugZmSChL5AlElNdwlNgcnLQ==} + postcss@8.5.13: + resolution: {integrity: sha512-qif0+jGGZoLWdHey3UFHHWP0H7Gbmsk8T5VEqyYFbWqPr1XqvLGBbk/sl8V5exGmcYJklJOhOQq1pV9IcsiFag==} engines: {node: ^10 || ^12 || >=14} powershell-utils@0.1.0: @@ -4683,8 +4706,8 @@ packages: resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - rolldown@1.0.0-rc.15: - resolution: {integrity: sha512-Ff31guA5zT6WjnGp0SXw76X6hzGRk/OQq2hE+1lcDe+lJdHSgnSX6nK3erbONHyCbpSj9a9E+uX/OvytZoWp2g==} + rolldown@1.0.0-rc.17: + resolution: {integrity: sha512-ZrT53oAKrtA4+YtBWPQbtPOxIbVDbxT0orcYERKd63VJTF13zPcgXTvD4843L8pcsI7M6MErt8QtON6lrB9tyA==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true @@ -4989,15 +5012,15 @@ packages: tailwind-merge@3.5.0: resolution: {integrity: sha512-I8K9wewnVDkL1NTGoqWmVEIlUcB9gFriAEkXkfCjX5ib8ezGxtR3xD7iZIxrfArjEsH7F1CHD4RFUtxefdqV/A==} - tailwindcss@4.2.2: - resolution: {integrity: sha512-KWBIxs1Xb6NoLdMVqhbhgwZf2PGBpPEiwOqgI4pFIYbNTfBXiKYyWoTsXgBQ9WFg/OlhnvHaY+AEpW7wSmFo2Q==} + tailwindcss@4.2.4: + resolution: {integrity: sha512-HhKppgO81FQof5m6TEnuBWCZGgfRAWbaeOaGT00KOy/Pf/j6oUihdvBpA7ltCeAvZpFhW3j0PTclkxsd4IXYDA==} tapable@2.2.1: resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} engines: {node: '>=6'} - tapable@2.3.2: - resolution: {integrity: sha512-1MOpMXuhGzGL5TTCZFItxCc0AARf1EZFQkGqMm7ERKj8+Hgr5oLvJOVFcC+lRmR8hCe2S3jC4T5D7Vg/d7/fhA==} + tapable@2.3.3: + resolution: {integrity: sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==} engines: {node: '>=6'} tar@7.5.11: @@ -5024,8 +5047,8 @@ packages: tinyexec@0.3.2: resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} - tinyexec@1.1.1: - resolution: {integrity: sha512-VKS/ZaQhhkKFMANmAOhhXVoIfBXblQxGX1myCQ2faQrfmobMftXeJPcZGp0gS07ocvGJWDLZGyOZDadDBqYIJg==} + tinyexec@1.1.2: + resolution: {integrity: sha512-dAqSqE/RabpBKI8+h26GfLq6Vb3JVXs30XYQjdMjaj/c2tS8IYYMbIzP599KtRj7c57/wYApb3QjgRgXmrCukA==} engines: {node: '>=18'} tinyglobby@0.2.15: @@ -5179,8 +5202,8 @@ packages: resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} engines: {node: '>= 0.4'} - typescript-eslint@8.58.2: - resolution: {integrity: sha512-V8iSng9mRbdZjl54VJ9NKr6ZB+dW0J3TzRXRGcSbLIej9jV86ZRtlYeTKDR/QLxXykocJ5icNzbsl2+5TzIvcQ==} + typescript-eslint@8.59.1: + resolution: {integrity: sha512-xqDcFVBmlrltH64lklOVp1wYxgJr6LVdg3NamBgH2OOQDLFdTKfIZXF5PfghrnXQKXZGTQs8tr1vL7fJvq8CTQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 @@ -5274,8 +5297,8 @@ packages: peerDependencies: vite: '*' - vite@8.0.8: - resolution: {integrity: sha512-dbU7/iLVa8KZALJyLOBOQ88nOXtNG8vxKuOT4I2mD+Ya70KPceF4IAmDsmU0h1Qsn5bPrvsY9HJstCRh3hG6Uw==} + vite@8.0.10: + resolution: {integrity: sha512-rZuUu9j6J5uotLDs+cAA4O5H4K1SfPliUlQwqa6YEwSrWDZzP4rhm00oJR5snMewjxF5V/K3D4kctsUTsIU9Mw==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: @@ -5317,20 +5340,20 @@ packages: yaml: optional: true - vitest@4.1.4: - resolution: {integrity: sha512-tFuJqTxKb8AvfyqMfnavXdzfy3h3sWZRWwfluGbkeR7n0HUev+FmNgZ8SDrRBTVrVCjgH5cA21qGbCffMNtWvg==} + vitest@4.1.5: + resolution: {integrity: sha512-9Xx1v3/ih3m9hN+SbfkUyy0JAs72ap3r7joc87XL6jwF0jGg6mFBvQ1SrwaX+h8BlkX6Hz9shdd1uo6AF+ZGpg==} engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' '@opentelemetry/api': ^1.9.0 '@types/node': ^20.0.0 || ^22.0.0 || >=24.0.0 - '@vitest/browser-playwright': 4.1.4 - '@vitest/browser-preview': 4.1.4 - '@vitest/browser-webdriverio': 4.1.4 - '@vitest/coverage-istanbul': 4.1.4 - '@vitest/coverage-v8': 4.1.4 - '@vitest/ui': 4.1.4 + '@vitest/browser-playwright': 4.1.5 + '@vitest/browser-preview': 4.1.5 + '@vitest/browser-webdriverio': 4.1.5 + '@vitest/coverage-istanbul': 4.1.5 + '@vitest/coverage-v8': 4.1.5 + '@vitest/ui': 4.1.5 happy-dom: '*' jsdom: '*' vite: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -6050,7 +6073,7 @@ snapshots: js-tokens: 4.0.0 picocolors: 1.1.1 - '@babel/compat-data@7.29.0': {} + '@babel/compat-data@7.29.3': {} '@babel/core@7.29.0': dependencies: @@ -6059,7 +6082,7 @@ snapshots: '@babel/helper-compilation-targets': 7.28.6 '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) '@babel/helpers': 7.29.2 - '@babel/parser': 7.29.2 + '@babel/parser': 7.29.3 '@babel/template': 7.28.6 '@babel/traverse': 7.29.0 '@babel/types': 7.29.0 @@ -6074,7 +6097,7 @@ snapshots: '@babel/generator@7.29.1': dependencies: - '@babel/parser': 7.29.2 + '@babel/parser': 7.29.3 '@babel/types': 7.29.0 '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 @@ -6082,7 +6105,7 @@ snapshots: '@babel/helper-compilation-targets@7.28.6': dependencies: - '@babel/compat-data': 7.29.0 + '@babel/compat-data': 7.29.3 '@babel/helper-validator-option': 7.27.1 browserslist: 4.28.2 lru-cache: 5.1.1 @@ -6117,7 +6140,7 @@ snapshots: '@babel/template': 7.28.6 '@babel/types': 7.29.0 - '@babel/parser@7.29.2': + '@babel/parser@7.29.3': dependencies: '@babel/types': 7.29.0 @@ -6126,7 +6149,7 @@ snapshots: '@babel/template@7.28.6': dependencies: '@babel/code-frame': 7.29.0 - '@babel/parser': 7.29.2 + '@babel/parser': 7.29.3 '@babel/types': 7.29.0 '@babel/traverse@7.29.0': @@ -6134,7 +6157,7 @@ snapshots: '@babel/code-frame': 7.29.0 '@babel/generator': 7.29.1 '@babel/helper-globals': 7.28.0 - '@babel/parser': 7.29.2 + '@babel/parser': 7.29.3 '@babel/template': 7.28.6 '@babel/types': 7.29.0 debug: 4.4.3(supports-color@8.1.1) @@ -6194,13 +6217,13 @@ snapshots: dependencies: '@edge-runtime/primitives': 4.1.0 - '@emnapi/core@1.9.2': + '@emnapi/core@1.10.0': dependencies: '@emnapi/wasi-threads': 1.2.1 tslib: 2.8.1 optional: true - '@emnapi/runtime@1.9.2': + '@emnapi/runtime@1.10.0': dependencies: tslib: 2.8.1 optional: true @@ -6366,23 +6389,23 @@ snapshots: '@esbuild/win32-x64@0.27.7': optional: true - '@eslint-community/eslint-utils@4.9.1(eslint@10.2.0(jiti@2.6.1))': + '@eslint-community/eslint-utils@4.9.1(eslint@10.2.1(jiti@2.6.1))': dependencies: - eslint: 10.2.0(jiti@2.6.1) + eslint: 10.2.1(jiti@2.6.1) eslint-visitor-keys: 3.4.3 - '@eslint-community/eslint-utils@4.9.1(eslint@10.2.1(jiti@2.6.1))': + '@eslint-community/eslint-utils@4.9.1(eslint@10.3.0(jiti@2.6.1))': dependencies: - eslint: 10.2.1(jiti@2.6.1) + eslint: 10.3.0(jiti@2.6.1) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.2': {} - '@eslint/compat@2.0.5(eslint@10.2.0(jiti@2.6.1))': + '@eslint/compat@2.0.5(eslint@10.2.1(jiti@2.6.1))': dependencies: '@eslint/core': 1.2.1 optionalDependencies: - eslint: 10.2.0(jiti@2.6.1) + eslint: 10.2.1(jiti@2.6.1) '@eslint/config-array@0.23.5': dependencies: @@ -6400,9 +6423,13 @@ snapshots: dependencies: '@types/json-schema': 7.0.15 - '@eslint/js@10.0.1(eslint@10.2.0(jiti@2.6.1))': + '@eslint/js@10.0.1(eslint@10.2.1(jiti@2.6.1))': + optionalDependencies: + eslint: 10.2.1(jiti@2.6.1) + + '@eslint/js@10.0.1(eslint@10.3.0(jiti@2.6.1))': optionalDependencies: - eslint: 10.2.0(jiti@2.6.1) + eslint: 10.3.0(jiti@2.6.1) '@eslint/object-schema@3.0.5': {} @@ -6411,17 +6438,10 @@ snapshots: '@eslint/core': 1.2.1 levn: 0.4.1 - '@humanfs/core@0.19.1': {} - '@humanfs/core@0.19.2': dependencies: '@humanfs/types': 0.15.0 - '@humanfs/node@0.16.7': - dependencies: - '@humanfs/core': 0.19.1 - '@humanwhocodes/retry': 0.4.3 - '@humanfs/node@0.16.8': dependencies: '@humanfs/core': 0.19.2 @@ -6717,7 +6737,7 @@ snapshots: - encoding - supports-color - '@mswjs/interceptors@0.41.3': + '@mswjs/interceptors@0.41.8': dependencies: '@open-draft/deferred-promise': 2.2.0 '@open-draft/logger': 0.3.0 @@ -6726,11 +6746,11 @@ snapshots: outvariant: 1.4.3 strict-event-emitter: 0.5.1 - '@napi-rs/wasm-runtime@1.1.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)': + '@napi-rs/wasm-runtime@1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)': dependencies: - '@emnapi/core': 1.9.2 - '@emnapi/runtime': 1.9.2 - '@tybys/wasm-util': 0.10.1 + '@emnapi/core': 1.10.0 + '@emnapi/runtime': 1.10.0 + '@tybys/wasm-util': 0.10.2 optional: true '@nodelib/fs.scandir@2.1.5': @@ -6837,7 +6857,7 @@ snapshots: '@open-draft/until@2.1.0': {} - '@oxc-project/types@0.124.0': {} + '@oxc-project/types@0.127.0': {} '@pkgjs/parseargs@0.11.0': optional: true @@ -6860,56 +6880,56 @@ snapshots: '@renovatebot/pep440@4.2.1': {} - '@rolldown/binding-android-arm64@1.0.0-rc.15': + '@rolldown/binding-android-arm64@1.0.0-rc.17': optional: true - '@rolldown/binding-darwin-arm64@1.0.0-rc.15': + '@rolldown/binding-darwin-arm64@1.0.0-rc.17': optional: true - '@rolldown/binding-darwin-x64@1.0.0-rc.15': + '@rolldown/binding-darwin-x64@1.0.0-rc.17': optional: true - '@rolldown/binding-freebsd-x64@1.0.0-rc.15': + '@rolldown/binding-freebsd-x64@1.0.0-rc.17': optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.15': + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.17': optional: true - '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.15': + '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.17': optional: true - '@rolldown/binding-linux-arm64-musl@1.0.0-rc.15': + '@rolldown/binding-linux-arm64-musl@1.0.0-rc.17': optional: true - '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.15': + '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.17': optional: true - '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.15': + '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.17': optional: true - '@rolldown/binding-linux-x64-gnu@1.0.0-rc.15': + '@rolldown/binding-linux-x64-gnu@1.0.0-rc.17': optional: true - '@rolldown/binding-linux-x64-musl@1.0.0-rc.15': + '@rolldown/binding-linux-x64-musl@1.0.0-rc.17': optional: true - '@rolldown/binding-openharmony-arm64@1.0.0-rc.15': + '@rolldown/binding-openharmony-arm64@1.0.0-rc.17': optional: true - '@rolldown/binding-wasm32-wasi@1.0.0-rc.15': + '@rolldown/binding-wasm32-wasi@1.0.0-rc.17': dependencies: - '@emnapi/core': 1.9.2 - '@emnapi/runtime': 1.9.2 - '@napi-rs/wasm-runtime': 1.1.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) + '@emnapi/core': 1.10.0 + '@emnapi/runtime': 1.10.0 + '@napi-rs/wasm-runtime': 1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) optional: true - '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.15': + '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.17': optional: true - '@rolldown/binding-win32-x64-msvc@1.0.0-rc.15': + '@rolldown/binding-win32-x64-msvc@1.0.0-rc.17': optional: true - '@rolldown/pluginutils@1.0.0-rc.15': {} + '@rolldown/pluginutils@1.0.0-rc.17': {} '@rolldown/pluginutils@1.0.0-rc.7': {} @@ -7359,81 +7379,81 @@ snapshots: dependencies: defer-to-connect: 2.0.1 - '@tailwindcss/node@4.2.2': + '@tailwindcss/node@4.2.4': dependencies: '@jridgewell/remapping': 2.3.5 - enhanced-resolve: 5.20.1 + enhanced-resolve: 5.21.0 jiti: 2.6.1 lightningcss: 1.32.0 magic-string: 0.30.21 source-map-js: 1.2.1 - tailwindcss: 4.2.2 + tailwindcss: 4.2.4 - '@tailwindcss/oxide-android-arm64@4.2.2': + '@tailwindcss/oxide-android-arm64@4.2.4': optional: true - '@tailwindcss/oxide-darwin-arm64@4.2.2': + '@tailwindcss/oxide-darwin-arm64@4.2.4': optional: true - '@tailwindcss/oxide-darwin-x64@4.2.2': + '@tailwindcss/oxide-darwin-x64@4.2.4': optional: true - '@tailwindcss/oxide-freebsd-x64@4.2.2': + '@tailwindcss/oxide-freebsd-x64@4.2.4': optional: true - '@tailwindcss/oxide-linux-arm-gnueabihf@4.2.2': + '@tailwindcss/oxide-linux-arm-gnueabihf@4.2.4': optional: true - '@tailwindcss/oxide-linux-arm64-gnu@4.2.2': + '@tailwindcss/oxide-linux-arm64-gnu@4.2.4': optional: true - '@tailwindcss/oxide-linux-arm64-musl@4.2.2': + '@tailwindcss/oxide-linux-arm64-musl@4.2.4': optional: true - '@tailwindcss/oxide-linux-x64-gnu@4.2.2': + '@tailwindcss/oxide-linux-x64-gnu@4.2.4': optional: true - '@tailwindcss/oxide-linux-x64-musl@4.2.2': + '@tailwindcss/oxide-linux-x64-musl@4.2.4': optional: true - '@tailwindcss/oxide-wasm32-wasi@4.2.2': + '@tailwindcss/oxide-wasm32-wasi@4.2.4': optional: true - '@tailwindcss/oxide-win32-arm64-msvc@4.2.2': + '@tailwindcss/oxide-win32-arm64-msvc@4.2.4': optional: true - '@tailwindcss/oxide-win32-x64-msvc@4.2.2': + '@tailwindcss/oxide-win32-x64-msvc@4.2.4': optional: true - '@tailwindcss/oxide@4.2.2': + '@tailwindcss/oxide@4.2.4': optionalDependencies: - '@tailwindcss/oxide-android-arm64': 4.2.2 - '@tailwindcss/oxide-darwin-arm64': 4.2.2 - '@tailwindcss/oxide-darwin-x64': 4.2.2 - '@tailwindcss/oxide-freebsd-x64': 4.2.2 - '@tailwindcss/oxide-linux-arm-gnueabihf': 4.2.2 - '@tailwindcss/oxide-linux-arm64-gnu': 4.2.2 - '@tailwindcss/oxide-linux-arm64-musl': 4.2.2 - '@tailwindcss/oxide-linux-x64-gnu': 4.2.2 - '@tailwindcss/oxide-linux-x64-musl': 4.2.2 - '@tailwindcss/oxide-wasm32-wasi': 4.2.2 - '@tailwindcss/oxide-win32-arm64-msvc': 4.2.2 - '@tailwindcss/oxide-win32-x64-msvc': 4.2.2 - - '@tailwindcss/postcss@4.2.2': + '@tailwindcss/oxide-android-arm64': 4.2.4 + '@tailwindcss/oxide-darwin-arm64': 4.2.4 + '@tailwindcss/oxide-darwin-x64': 4.2.4 + '@tailwindcss/oxide-freebsd-x64': 4.2.4 + '@tailwindcss/oxide-linux-arm-gnueabihf': 4.2.4 + '@tailwindcss/oxide-linux-arm64-gnu': 4.2.4 + '@tailwindcss/oxide-linux-arm64-musl': 4.2.4 + '@tailwindcss/oxide-linux-x64-gnu': 4.2.4 + '@tailwindcss/oxide-linux-x64-musl': 4.2.4 + '@tailwindcss/oxide-wasm32-wasi': 4.2.4 + '@tailwindcss/oxide-win32-arm64-msvc': 4.2.4 + '@tailwindcss/oxide-win32-x64-msvc': 4.2.4 + + '@tailwindcss/postcss@4.2.4': dependencies: '@alloc/quick-lru': 5.2.0 - '@tailwindcss/node': 4.2.2 - '@tailwindcss/oxide': 4.2.2 - postcss: 8.5.10 - tailwindcss: 4.2.2 + '@tailwindcss/node': 4.2.4 + '@tailwindcss/oxide': 4.2.4 + postcss: 8.5.13 + tailwindcss: 4.2.4 - '@tailwindcss/vite@4.2.2(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0))': + '@tailwindcss/vite@4.2.4(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0))': dependencies: - '@tailwindcss/node': 4.2.2 - '@tailwindcss/oxide': 4.2.2 - tailwindcss: 4.2.2 - vite: 8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0) + '@tailwindcss/node': 4.2.4 + '@tailwindcss/oxide': 4.2.4 + tailwindcss: 4.2.4 + vite: 8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0) '@testing-library/dom@10.4.0': dependencies: @@ -7480,7 +7500,7 @@ snapshots: '@tsconfig/node20@20.1.5': {} - '@tybys/wasm-util@0.10.1': + '@tybys/wasm-util@0.10.2': dependencies: tslib: 2.8.1 optional: true @@ -7579,15 +7599,15 @@ snapshots: dependencies: '@types/node': 25.6.0 - '@typescript-eslint/eslint-plugin@8.58.2(@typescript-eslint/parser@8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/eslint-plugin@8.59.1(@typescript-eslint/parser@8.59.1(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3))(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.58.2 - '@typescript-eslint/type-utils': 8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/utils': 8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.58.2 - eslint: 10.2.0(jiti@2.6.1) + '@typescript-eslint/parser': 8.59.1(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.59.1 + '@typescript-eslint/type-utils': 8.59.1(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/utils': 8.59.1(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.59.1 + eslint: 10.2.1(jiti@2.6.1) ignore: 7.0.5 natural-compare: 1.4.0 ts-api-utils: 2.5.0(typescript@5.9.3) @@ -7595,22 +7615,59 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/eslint-plugin@8.59.1(@typescript-eslint/parser@8.59.1(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@typescript-eslint/scope-manager': 8.58.2 - '@typescript-eslint/types': 8.58.2 - '@typescript-eslint/typescript-estree': 8.58.2(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.58.2 + '@eslint-community/regexpp': 4.12.2 + '@typescript-eslint/parser': 8.59.1(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.59.1 + '@typescript-eslint/type-utils': 8.59.1(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/utils': 8.59.1(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.59.1 + eslint: 10.3.0(jiti@2.6.1) + ignore: 7.0.5 + natural-compare: 1.4.0 + ts-api-utils: 2.5.0(typescript@5.9.3) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/parser@8.59.1(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3)': + dependencies: + '@typescript-eslint/scope-manager': 8.59.1 + '@typescript-eslint/types': 8.59.1 + '@typescript-eslint/typescript-estree': 8.59.1(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.59.1 + debug: 4.4.3(supports-color@8.1.1) + eslint: 10.2.1(jiti@2.6.1) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/parser@8.59.1(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3)': + dependencies: + '@typescript-eslint/scope-manager': 8.59.1 + '@typescript-eslint/types': 8.59.1 + '@typescript-eslint/typescript-estree': 8.59.1(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.59.1 debug: 4.4.3(supports-color@8.1.1) - eslint: 10.2.0(jiti@2.6.1) + eslint: 10.3.0(jiti@2.6.1) typescript: 5.9.3 transitivePeerDependencies: - supports-color '@typescript-eslint/project-service@8.58.2(typescript@5.9.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.58.2(typescript@5.9.3) - '@typescript-eslint/types': 8.58.2 + '@typescript-eslint/tsconfig-utils': 8.59.1(typescript@5.9.3) + '@typescript-eslint/types': 8.59.1 + debug: 4.4.3(supports-color@8.1.1) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/project-service@8.59.1(typescript@5.9.3)': + dependencies: + '@typescript-eslint/tsconfig-utils': 8.59.1(typescript@5.9.3) + '@typescript-eslint/types': 8.59.1 debug: 4.4.3(supports-color@8.1.1) typescript: 5.9.3 transitivePeerDependencies: @@ -7621,17 +7678,38 @@ snapshots: '@typescript-eslint/types': 8.58.2 '@typescript-eslint/visitor-keys': 8.58.2 + '@typescript-eslint/scope-manager@8.59.1': + dependencies: + '@typescript-eslint/types': 8.59.1 + '@typescript-eslint/visitor-keys': 8.59.1 + '@typescript-eslint/tsconfig-utils@8.58.2(typescript@5.9.3)': dependencies: typescript: 5.9.3 - '@typescript-eslint/type-utils@8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/tsconfig-utils@8.59.1(typescript@5.9.3)': dependencies: - '@typescript-eslint/types': 8.58.2 - '@typescript-eslint/typescript-estree': 8.58.2(typescript@5.9.3) - '@typescript-eslint/utils': 8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3) + typescript: 5.9.3 + + '@typescript-eslint/type-utils@8.59.1(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3)': + dependencies: + '@typescript-eslint/types': 8.59.1 + '@typescript-eslint/typescript-estree': 8.59.1(typescript@5.9.3) + '@typescript-eslint/utils': 8.59.1(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3) + debug: 4.4.3(supports-color@8.1.1) + eslint: 10.2.1(jiti@2.6.1) + ts-api-utils: 2.5.0(typescript@5.9.3) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/type-utils@8.59.1(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3)': + dependencies: + '@typescript-eslint/types': 8.59.1 + '@typescript-eslint/typescript-estree': 8.59.1(typescript@5.9.3) + '@typescript-eslint/utils': 8.59.1(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3) debug: 4.4.3(supports-color@8.1.1) - eslint: 10.2.0(jiti@2.6.1) + eslint: 10.3.0(jiti@2.6.1) ts-api-utils: 2.5.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: @@ -7639,6 +7717,8 @@ snapshots: '@typescript-eslint/types@8.58.2': {} + '@typescript-eslint/types@8.59.1': {} + '@typescript-eslint/typescript-estree@8.58.2(typescript@5.9.3)': dependencies: '@typescript-eslint/project-service': 8.58.2(typescript@5.9.3) @@ -7654,13 +7734,50 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/typescript-estree@8.59.1(typescript@5.9.3)': dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.0(jiti@2.6.1)) + '@typescript-eslint/project-service': 8.59.1(typescript@5.9.3) + '@typescript-eslint/tsconfig-utils': 8.59.1(typescript@5.9.3) + '@typescript-eslint/types': 8.59.1 + '@typescript-eslint/visitor-keys': 8.59.1 + debug: 4.4.3(supports-color@8.1.1) + minimatch: 10.2.3 + semver: 7.7.4 + tinyglobby: 0.2.16 + ts-api-utils: 2.5.0(typescript@5.9.3) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3)': + dependencies: + '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.1(jiti@2.6.1)) '@typescript-eslint/scope-manager': 8.58.2 '@typescript-eslint/types': 8.58.2 '@typescript-eslint/typescript-estree': 8.58.2(typescript@5.9.3) - eslint: 10.2.0(jiti@2.6.1) + eslint: 10.2.1(jiti@2.6.1) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@8.59.1(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3)': + dependencies: + '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.1(jiti@2.6.1)) + '@typescript-eslint/scope-manager': 8.59.1 + '@typescript-eslint/types': 8.59.1 + '@typescript-eslint/typescript-estree': 8.59.1(typescript@5.9.3) + eslint: 10.2.1(jiti@2.6.1) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@8.59.1(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3)': + dependencies: + '@eslint-community/eslint-utils': 4.9.1(eslint@10.3.0(jiti@2.6.1)) + '@typescript-eslint/scope-manager': 8.59.1 + '@typescript-eslint/types': 8.59.1 + '@typescript-eslint/typescript-estree': 8.59.1(typescript@5.9.3) + eslint: 10.3.0(jiti@2.6.1) typescript: 5.9.3 transitivePeerDependencies: - supports-color @@ -7670,13 +7787,18 @@ snapshots: '@typescript-eslint/types': 8.58.2 eslint-visitor-keys: 5.0.1 - '@vercel/build-utils@13.18.0': + '@typescript-eslint/visitor-keys@8.59.1': dependencies: - '@vercel/python-analysis': 0.11.0 + '@typescript-eslint/types': 8.59.1 + eslint-visitor-keys: 5.0.1 + + '@vercel/build-utils@13.21.0': + dependencies: + '@vercel/python-analysis': 0.11.1 cjs-module-lexer: 1.2.3 es-module-lexer: 1.5.0 - '@vercel/error-utils@2.0.3': {} + '@vercel/error-utils@2.1.0': {} '@vercel/nft@1.5.0(rollup@4.59.0)': dependencies: @@ -7697,16 +7819,16 @@ snapshots: - rollup - supports-color - '@vercel/node@5.7.10(rollup@4.59.0)': + '@vercel/node@5.7.15(rollup@4.59.0)': dependencies: '@edge-runtime/node-utils': 2.3.0 '@edge-runtime/primitives': 4.1.0 '@edge-runtime/vm': 3.2.0 '@types/node': 20.11.0 - '@vercel/build-utils': 13.18.0 - '@vercel/error-utils': 2.0.3 + '@vercel/build-utils': 13.21.0 + '@vercel/error-utils': 2.1.0 '@vercel/nft': 1.5.0(rollup@4.59.0) - '@vercel/static-config': 3.2.0 + '@vercel/static-config': 3.3.0 async-listen: 3.0.0 cjs-module-lexer: 1.2.3 edge-runtime: 2.5.9 @@ -7726,7 +7848,7 @@ snapshots: - rollup - supports-color - '@vercel/python-analysis@0.11.0': + '@vercel/python-analysis@0.11.1': dependencies: '@bytecodealliance/preview2-shim': 0.17.6 '@renovatebot/pep440': 4.2.1 @@ -7736,21 +7858,21 @@ snapshots: smol-toml: 1.6.1 zod: 3.22.4 - '@vercel/static-config@3.2.0': + '@vercel/static-config@3.3.0': dependencies: ajv: 8.18.0 json-schema-to-ts: 1.6.4 ts-morph: 12.0.0 - '@vitejs/plugin-react@6.0.1(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0))': + '@vitejs/plugin-react@6.0.1(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0))': dependencies: '@rolldown/pluginutils': 1.0.0-rc.7 - vite: 8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0) + vite: 8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0) - '@vitest/coverage-v8@4.1.4(vitest@4.1.4)': + '@vitest/coverage-v8@4.1.5(vitest@4.1.5)': dependencies: '@bcoe/v8-coverage': 1.0.2 - '@vitest/utils': 4.1.4 + '@vitest/utils': 4.1.5 ast-v8-to-istanbul: 1.0.0 istanbul-lib-coverage: 3.2.2 istanbul-lib-report: 3.0.1 @@ -7759,69 +7881,69 @@ snapshots: obug: 2.1.1 std-env: 4.1.0 tinyrainbow: 3.1.0 - vitest: 4.1.4(@edge-runtime/vm@3.2.0)(@types/node@25.6.0)(@vitest/coverage-v8@4.1.4)(@vitest/ui@4.1.4)(jsdom@26.1.0)(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)) + vitest: 4.1.5(@edge-runtime/vm@3.2.0)(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5)(@vitest/ui@4.1.5)(jsdom@26.1.0)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)) - '@vitest/eslint-plugin@1.6.16(@typescript-eslint/eslint-plugin@8.58.2(@typescript-eslint/parser@8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3)(vitest@4.1.4)': + '@vitest/eslint-plugin@1.6.16(@typescript-eslint/eslint-plugin@8.59.1(@typescript-eslint/parser@8.59.1(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3))(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3))(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3)(vitest@4.1.5)': dependencies: '@typescript-eslint/scope-manager': 8.58.2 - '@typescript-eslint/utils': 8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3) - eslint: 10.2.0(jiti@2.6.1) + '@typescript-eslint/utils': 8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3) + eslint: 10.2.1(jiti@2.6.1) optionalDependencies: - '@typescript-eslint/eslint-plugin': 8.58.2(@typescript-eslint/parser@8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/eslint-plugin': 8.59.1(@typescript-eslint/parser@8.59.1(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3))(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3) typescript: 5.9.3 - vitest: 4.1.4(@edge-runtime/vm@3.2.0)(@types/node@25.6.0)(@vitest/coverage-v8@4.1.4)(@vitest/ui@4.1.4)(jsdom@26.1.0)(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)) + vitest: 4.1.5(@edge-runtime/vm@3.2.0)(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5)(@vitest/ui@4.1.5)(jsdom@26.1.0)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)) transitivePeerDependencies: - supports-color - '@vitest/expect@4.1.4': + '@vitest/expect@4.1.5': dependencies: '@standard-schema/spec': 1.1.0 '@types/chai': 5.2.3 - '@vitest/spy': 4.1.4 - '@vitest/utils': 4.1.4 + '@vitest/spy': 4.1.5 + '@vitest/utils': 4.1.5 chai: 6.2.2 tinyrainbow: 3.1.0 - '@vitest/mocker@4.1.4(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0))': + '@vitest/mocker@4.1.5(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0))': dependencies: - '@vitest/spy': 4.1.4 + '@vitest/spy': 4.1.5 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0) + vite: 8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0) - '@vitest/pretty-format@4.1.4': + '@vitest/pretty-format@4.1.5': dependencies: tinyrainbow: 3.1.0 - '@vitest/runner@4.1.4': + '@vitest/runner@4.1.5': dependencies: - '@vitest/utils': 4.1.4 + '@vitest/utils': 4.1.5 pathe: 2.0.3 - '@vitest/snapshot@4.1.4': + '@vitest/snapshot@4.1.5': dependencies: - '@vitest/pretty-format': 4.1.4 - '@vitest/utils': 4.1.4 + '@vitest/pretty-format': 4.1.5 + '@vitest/utils': 4.1.5 magic-string: 0.30.21 pathe: 2.0.3 - '@vitest/spy@4.1.4': {} + '@vitest/spy@4.1.5': {} - '@vitest/ui@4.1.4(vitest@4.1.4)': + '@vitest/ui@4.1.5(vitest@4.1.5)': dependencies: - '@vitest/utils': 4.1.4 + '@vitest/utils': 4.1.5 fflate: 0.8.2 flatted: 3.4.2 pathe: 2.0.3 sirv: 3.0.2 tinyglobby: 0.2.16 tinyrainbow: 3.1.0 - vitest: 4.1.4(@edge-runtime/vm@3.2.0)(@types/node@25.6.0)(@vitest/coverage-v8@4.1.4)(@vitest/ui@4.1.4)(jsdom@26.1.0)(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)) + vitest: 4.1.5(@edge-runtime/vm@3.2.0)(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5)(@vitest/ui@4.1.5)(jsdom@26.1.0)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)) - '@vitest/utils@4.1.4': + '@vitest/utils@4.1.5': dependencies: - '@vitest/pretty-format': 4.1.4 + '@vitest/pretty-format': 4.1.5 convert-source-map: 2.0.0 tinyrainbow: 3.1.0 @@ -7874,7 +7996,7 @@ snapshots: agent-base@7.1.4: {} - ajv@6.14.0: + ajv@6.15.0: dependencies: fast-deep-equal: 3.1.3 fast-json-stable-stringify: 2.1.0 @@ -8009,13 +8131,13 @@ snapshots: asynckit@0.4.0: {} - autoprefixer@10.5.0(postcss@8.5.10): + autoprefixer@10.5.0(postcss@8.5.13): dependencies: browserslist: 4.28.2 caniuse-lite: 1.0.30001787 fraction.js: 5.3.4 picocolors: 1.1.1 - postcss: 8.5.10 + postcss: 8.5.13 postcss-value-parser: 4.2.0 available-typed-arrays@1.0.7: @@ -8490,10 +8612,10 @@ snapshots: graceful-fs: 4.2.11 tapable: 2.2.1 - enhanced-resolve@5.20.1: + enhanced-resolve@5.21.0: dependencies: graceful-fs: 4.2.11 - tapable: 2.3.2 + tapable: 2.3.3 entities@6.0.1: optional: true @@ -8583,7 +8705,7 @@ snapshots: es-module-lexer@1.5.0: {} - es-module-lexer@2.0.0: {} + es-module-lexer@2.1.0: {} es-object-atoms@1.1.1: dependencies: @@ -8670,28 +8792,28 @@ snapshots: escape-string-regexp@4.0.0: {} - eslint-compat-utils@0.5.1(eslint@10.2.0(jiti@2.6.1)): + eslint-compat-utils@0.5.1(eslint@10.2.1(jiti@2.6.1)): dependencies: - eslint: 10.2.0(jiti@2.6.1) + eslint: 10.2.1(jiti@2.6.1) semver: 7.7.4 - eslint-config-prettier@10.1.8(eslint@10.2.0(jiti@2.6.1)): + eslint-config-prettier@10.1.8(eslint@10.2.1(jiti@2.6.1)): dependencies: - eslint: 10.2.0(jiti@2.6.1) + eslint: 10.2.1(jiti@2.6.1) - eslint-plugin-es-x@7.8.0(eslint@10.2.0(jiti@2.6.1)): + eslint-plugin-es-x@7.8.0(eslint@10.2.1(jiti@2.6.1)): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.0(jiti@2.6.1)) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.1(jiti@2.6.1)) '@eslint-community/regexpp': 4.12.2 - eslint: 10.2.0(jiti@2.6.1) - eslint-compat-utils: 0.5.1(eslint@10.2.0(jiti@2.6.1)) + eslint: 10.2.1(jiti@2.6.1) + eslint-compat-utils: 0.5.1(eslint@10.2.1(jiti@2.6.1)) - eslint-plugin-n@17.24.0(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3): + eslint-plugin-n@17.24.0(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.0(jiti@2.6.1)) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.1(jiti@2.6.1)) enhanced-resolve: 5.18.1 - eslint: 10.2.0(jiti@2.6.1) - eslint-plugin-es-x: 7.8.0(eslint@10.2.0(jiti@2.6.1)) + eslint: 10.2.1(jiti@2.6.1) + eslint-plugin-es-x: 7.8.0(eslint@10.2.1(jiti@2.6.1)) get-tsconfig: 4.13.7 globals: 15.15.0 globrex: 0.1.2 @@ -8701,31 +8823,42 @@ snapshots: transitivePeerDependencies: - typescript - eslint-plugin-prettier@5.5.5(eslint-config-prettier@10.1.8(eslint@10.2.0(jiti@2.6.1)))(eslint@10.2.0(jiti@2.6.1))(prettier@3.8.3): + eslint-plugin-prettier@5.5.5(eslint-config-prettier@10.1.8(eslint@10.2.1(jiti@2.6.1)))(eslint@10.2.1(jiti@2.6.1))(prettier@3.8.3): dependencies: - eslint: 10.2.0(jiti@2.6.1) + eslint: 10.2.1(jiti@2.6.1) prettier: 3.8.3 prettier-linter-helpers: 1.0.1 synckit: 0.11.12 optionalDependencies: - eslint-config-prettier: 10.1.8(eslint@10.2.0(jiti@2.6.1)) + eslint-config-prettier: 10.1.8(eslint@10.2.1(jiti@2.6.1)) - eslint-plugin-react-hooks@7.1.0(eslint@10.2.0(jiti@2.6.1)): + eslint-plugin-react-hooks@7.1.1(eslint@10.2.1(jiti@2.6.1)): dependencies: '@babel/core': 7.29.0 - '@babel/parser': 7.29.2 - eslint: 10.2.0(jiti@2.6.1) + '@babel/parser': 7.29.3 + eslint: 10.2.1(jiti@2.6.1) hermes-parser: 0.25.1 zod: 3.25.76 zod-validation-error: 4.0.2(zod@3.25.76) transitivePeerDependencies: - supports-color - eslint-plugin-react-refresh@0.5.2(eslint@10.2.0(jiti@2.6.1)): + eslint-plugin-react-hooks@7.1.1(eslint@10.3.0(jiti@2.6.1)): dependencies: - eslint: 10.2.0(jiti@2.6.1) + '@babel/core': 7.29.0 + '@babel/parser': 7.29.3 + eslint: 10.3.0(jiti@2.6.1) + hermes-parser: 0.25.1 + zod: 3.25.76 + zod-validation-error: 4.0.2(zod@3.25.76) + transitivePeerDependencies: + - supports-color - eslint-plugin-react@7.37.5(eslint@10.2.1(jiti@2.6.1)): + eslint-plugin-react-refresh@0.5.2(eslint@10.3.0(jiti@2.6.1)): + dependencies: + eslint: 10.3.0(jiti@2.6.1) + + eslint-plugin-react@7.37.5(eslint@10.3.0(jiti@2.6.1)): dependencies: array-includes: 3.1.8 array.prototype.findlast: 1.2.5 @@ -8733,7 +8866,7 @@ snapshots: array.prototype.tosorted: 1.1.4 doctrine: 2.1.0 es-iterator-helpers: 1.2.1 - eslint: 10.2.1(jiti@2.6.1) + eslint: 10.3.0(jiti@2.6.1) estraverse: 5.3.0 hasown: 2.0.2 jsx-ast-utils: 3.3.5 @@ -8747,15 +8880,15 @@ snapshots: string.prototype.matchall: 4.0.12 string.prototype.repeat: 1.0.0 - eslint-plugin-unicorn@64.0.0(eslint@10.2.0(jiti@2.6.1)): + eslint-plugin-unicorn@64.0.0(eslint@10.2.1(jiti@2.6.1)): dependencies: '@babel/helper-validator-identifier': 7.28.5 - '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.0(jiti@2.6.1)) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.1(jiti@2.6.1)) change-case: 5.4.4 ci-info: 4.4.0 clean-regexp: 1.0.0 core-js-compat: 3.49.0 - eslint: 10.2.0(jiti@2.6.1) + eslint: 10.2.1(jiti@2.6.1) find-up-simple: 1.0.1 globals: 17.5.0 indent-string: 5.0.0 @@ -8778,19 +8911,19 @@ snapshots: eslint-visitor-keys@5.0.1: {} - eslint@10.2.0(jiti@2.6.1): + eslint@10.2.1(jiti@2.6.1): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.0(jiti@2.6.1)) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.1(jiti@2.6.1)) '@eslint-community/regexpp': 4.12.2 '@eslint/config-array': 0.23.5 '@eslint/config-helpers': 0.5.5 '@eslint/core': 1.2.1 '@eslint/plugin-kit': 0.7.1 - '@humanfs/node': 0.16.7 + '@humanfs/node': 0.16.8 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.4.3 '@types/estree': 1.0.8 - ajv: 6.14.0 + ajv: 6.15.0 cross-spawn: 7.0.6 debug: 4.4.3(supports-color@8.1.1) escape-string-regexp: 4.0.0 @@ -8815,9 +8948,9 @@ snapshots: transitivePeerDependencies: - supports-color - eslint@10.2.1(jiti@2.6.1): + eslint@10.3.0(jiti@2.6.1): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.1(jiti@2.6.1)) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.3.0(jiti@2.6.1)) '@eslint-community/regexpp': 4.12.2 '@eslint/config-array': 0.23.5 '@eslint/config-helpers': 0.5.5 @@ -8827,7 +8960,7 @@ snapshots: '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.4.3 '@types/estree': 1.0.8 - ajv: 6.14.0 + ajv: 6.15.0 cross-spawn: 7.0.6 debug: 4.4.3(supports-color@8.1.1) escape-string-regexp: 4.0.0 @@ -9814,7 +9947,7 @@ snapshots: magicast@0.5.2: dependencies: - '@babel/parser': 7.29.2 + '@babel/parser': 7.29.3 '@babel/types': 7.29.0 source-map-js: 1.2.1 @@ -9924,6 +10057,8 @@ snapshots: nanoid@3.3.11: {} + nanoid@3.3.12: {} + natural-compare@1.4.0: {} negotiator@0.6.4: {} @@ -9935,9 +10070,9 @@ snapshots: lower-case: 2.0.2 tslib: 2.8.1 - nock@14.0.12: + nock@14.0.14: dependencies: - '@mswjs/interceptors': 0.41.3 + '@mswjs/interceptors': 0.41.8 json-stringify-safe: 5.0.1 propagate: 2.0.1 @@ -10241,19 +10376,19 @@ snapshots: possible-typed-array-names@1.1.0: {} - postcss-load-config@6.0.1(jiti@2.6.1)(postcss@8.5.10)(tsx@4.21.0): + postcss-load-config@6.0.1(jiti@2.6.1)(postcss@8.5.13)(tsx@4.21.0): dependencies: lilconfig: 3.1.3 optionalDependencies: jiti: 2.6.1 - postcss: 8.5.10 + postcss: 8.5.13 tsx: 4.21.0 postcss-value-parser@4.2.0: {} - postcss@8.5.10: + postcss@8.5.13: dependencies: - nanoid: 3.3.11 + nanoid: 3.3.12 picocolors: 1.1.1 source-map-js: 1.2.1 @@ -10426,26 +10561,26 @@ snapshots: reusify@1.1.0: {} - rolldown@1.0.0-rc.15: + rolldown@1.0.0-rc.17: dependencies: - '@oxc-project/types': 0.124.0 - '@rolldown/pluginutils': 1.0.0-rc.15 + '@oxc-project/types': 0.127.0 + '@rolldown/pluginutils': 1.0.0-rc.17 optionalDependencies: - '@rolldown/binding-android-arm64': 1.0.0-rc.15 - '@rolldown/binding-darwin-arm64': 1.0.0-rc.15 - '@rolldown/binding-darwin-x64': 1.0.0-rc.15 - '@rolldown/binding-freebsd-x64': 1.0.0-rc.15 - '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-rc.15 - '@rolldown/binding-linux-arm64-gnu': 1.0.0-rc.15 - '@rolldown/binding-linux-arm64-musl': 1.0.0-rc.15 - '@rolldown/binding-linux-ppc64-gnu': 1.0.0-rc.15 - '@rolldown/binding-linux-s390x-gnu': 1.0.0-rc.15 - '@rolldown/binding-linux-x64-gnu': 1.0.0-rc.15 - '@rolldown/binding-linux-x64-musl': 1.0.0-rc.15 - '@rolldown/binding-openharmony-arm64': 1.0.0-rc.15 - '@rolldown/binding-wasm32-wasi': 1.0.0-rc.15 - '@rolldown/binding-win32-arm64-msvc': 1.0.0-rc.15 - '@rolldown/binding-win32-x64-msvc': 1.0.0-rc.15 + '@rolldown/binding-android-arm64': 1.0.0-rc.17 + '@rolldown/binding-darwin-arm64': 1.0.0-rc.17 + '@rolldown/binding-darwin-x64': 1.0.0-rc.17 + '@rolldown/binding-freebsd-x64': 1.0.0-rc.17 + '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-rc.17 + '@rolldown/binding-linux-arm64-gnu': 1.0.0-rc.17 + '@rolldown/binding-linux-arm64-musl': 1.0.0-rc.17 + '@rolldown/binding-linux-ppc64-gnu': 1.0.0-rc.17 + '@rolldown/binding-linux-s390x-gnu': 1.0.0-rc.17 + '@rolldown/binding-linux-x64-gnu': 1.0.0-rc.17 + '@rolldown/binding-linux-x64-musl': 1.0.0-rc.17 + '@rolldown/binding-openharmony-arm64': 1.0.0-rc.17 + '@rolldown/binding-wasm32-wasi': 1.0.0-rc.17 + '@rolldown/binding-win32-arm64-msvc': 1.0.0-rc.17 + '@rolldown/binding-win32-x64-msvc': 1.0.0-rc.17 rollup@4.59.0: dependencies: @@ -10821,11 +10956,11 @@ snapshots: tailwind-merge@3.5.0: {} - tailwindcss@4.2.2: {} + tailwindcss@4.2.4: {} tapable@2.2.1: {} - tapable@2.3.2: {} + tapable@2.3.3: {} tar@7.5.11: dependencies: @@ -10853,7 +10988,7 @@ snapshots: tinyexec@0.3.2: {} - tinyexec@1.1.1: {} + tinyexec@1.1.2: {} tinyglobby@0.2.15: dependencies: @@ -10939,7 +11074,7 @@ snapshots: tslib@2.8.1: {} - tsup@8.5.1(jiti@2.6.1)(postcss@8.5.10)(tsx@4.21.0)(typescript@5.9.3): + tsup@8.5.1(jiti@2.6.1)(postcss@8.5.13)(tsx@4.21.0)(typescript@5.9.3): dependencies: bundle-require: 5.1.0(esbuild@0.27.7) cac: 6.7.14 @@ -10950,7 +11085,7 @@ snapshots: fix-dts-default-cjs-exports: 1.0.1 joycon: 3.1.1 picocolors: 1.1.1 - postcss-load-config: 6.0.1(jiti@2.6.1)(postcss@8.5.10)(tsx@4.21.0) + postcss-load-config: 6.0.1(jiti@2.6.1)(postcss@8.5.13)(tsx@4.21.0) resolve-from: 5.0.0 rollup: 4.59.0 source-map: 0.7.6 @@ -10959,7 +11094,7 @@ snapshots: tinyglobby: 0.2.15 tree-kill: 1.2.2 optionalDependencies: - postcss: 8.5.10 + postcss: 8.5.13 typescript: 5.9.3 transitivePeerDependencies: - jiti @@ -11019,13 +11154,13 @@ snapshots: possible-typed-array-names: 1.1.0 reflect.getprototypeof: 1.0.10 - typescript-eslint@8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3): + typescript-eslint@8.59.1(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.58.2(@typescript-eslint/parser@8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/parser': 8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/typescript-estree': 8.58.2(typescript@5.9.3) - '@typescript-eslint/utils': 8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3) - eslint: 10.2.0(jiti@2.6.1) + '@typescript-eslint/eslint-plugin': 8.59.1(@typescript-eslint/parser@8.59.1(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/parser': 8.59.1(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/typescript-estree': 8.59.1(typescript@5.9.3) + '@typescript-eslint/utils': 8.59.1(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3) + eslint: 10.3.0(jiti@2.6.1) typescript: 5.9.3 transitivePeerDependencies: - supports-color @@ -11099,22 +11234,22 @@ snapshots: vary@1.1.2: {} - vite-tsconfig-paths@6.1.1(typescript@5.9.3)(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)): + vite-tsconfig-paths@6.1.1(typescript@5.9.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)): dependencies: debug: 4.4.3(supports-color@8.1.1) globrex: 0.1.2 tsconfck: 3.1.6(typescript@5.9.3) - vite: 8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0) + vite: 8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0) transitivePeerDependencies: - supports-color - typescript - vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0): + vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0): dependencies: lightningcss: 1.32.0 picomatch: 4.0.4 - postcss: 8.5.10 - rolldown: 1.0.0-rc.15 + postcss: 8.5.13 + rolldown: 1.0.0-rc.17 tinyglobby: 0.2.16 optionalDependencies: '@types/node': 25.6.0 @@ -11123,16 +11258,16 @@ snapshots: jiti: 2.6.1 tsx: 4.21.0 - vitest@4.1.4(@edge-runtime/vm@3.2.0)(@types/node@25.6.0)(@vitest/coverage-v8@4.1.4)(@vitest/ui@4.1.4)(jsdom@26.1.0)(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)): + vitest@4.1.5(@edge-runtime/vm@3.2.0)(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5)(@vitest/ui@4.1.5)(jsdom@26.1.0)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)): dependencies: - '@vitest/expect': 4.1.4 - '@vitest/mocker': 4.1.4(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)) - '@vitest/pretty-format': 4.1.4 - '@vitest/runner': 4.1.4 - '@vitest/snapshot': 4.1.4 - '@vitest/spy': 4.1.4 - '@vitest/utils': 4.1.4 - es-module-lexer: 2.0.0 + '@vitest/expect': 4.1.5 + '@vitest/mocker': 4.1.5(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)) + '@vitest/pretty-format': 4.1.5 + '@vitest/runner': 4.1.5 + '@vitest/snapshot': 4.1.5 + '@vitest/spy': 4.1.5 + '@vitest/utils': 4.1.5 + es-module-lexer: 2.1.0 expect-type: 1.3.0 magic-string: 0.30.21 obug: 2.1.1 @@ -11140,16 +11275,16 @@ snapshots: picomatch: 4.0.4 std-env: 4.1.0 tinybench: 2.9.0 - tinyexec: 1.1.1 + tinyexec: 1.1.2 tinyglobby: 0.2.16 tinyrainbow: 3.1.0 - vite: 8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0) + vite: 8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0) why-is-node-running: 2.3.0 optionalDependencies: '@edge-runtime/vm': 3.2.0 '@types/node': 25.6.0 - '@vitest/coverage-v8': 4.1.4(vitest@4.1.4) - '@vitest/ui': 4.1.4(vitest@4.1.4) + '@vitest/coverage-v8': 4.1.5(vitest@4.1.5) + '@vitest/ui': 4.1.5(vitest@4.1.5) jsdom: 26.1.0 transitivePeerDependencies: - msw From 8eea0fb6431e106efcb92da2f8659cfc24d4b649 Mon Sep 17 00:00:00 2001 From: "claude[bot]" <41898282+claude[bot]@users.noreply.github.com> Date: Mon, 4 May 2026 11:37:27 +0000 Subject: [PATCH 2/2] fix: update code for @typescript-eslint 8.59.1 stricter type assertion rules The `no-unnecessary-type-assertion` rule in @typescript-eslint 8.59.1 now catches more cases where type assertions are redundant. This caused 113 lint errors across the codebase. Changes: - Remove `as BaseFlags` casts that are now flagged as unnecessary (flags typed as Record is already compatible with method signatures) - Remove resulting unused `BaseFlags` imports and `BatchContent` interface - Fix `no-base-to-string` in json-formatter.ts by using explicitly typed intermediate variables before calling String() on unknown-narrowed values - Fix `no-base-to-string` in push/batch-publish.ts by using typeof narrowing instead of String() on unknown error.code - Add `app?: string` to AblyConfig.current type to properly model the legacy config field that the migration code reads, removing the need for an assertion that 8.59.1 now rejects Co-Authored-By: Claude Sonnet 4.6 --- .../src/AblyCliTerminal.test.tsx | 2 +- .../react-web-cli/src/AblyCliTerminal.tsx | 4 +- src/base-command.ts | 6 +- src/chat-base-command.ts | 6 +- src/commands/bench/subscriber.ts | 4 +- src/commands/channels/batch-publish.ts | 8 +-- src/commands/channels/delete.ts | 5 +- src/commands/channels/publish.ts | 11 ++-- src/commands/env.ts | 7 +-- src/commands/interactive.ts | 16 +---- src/commands/push/batch-publish.ts | 50 ++++++--------- src/commands/push/channels/list-channels.ts | 5 +- src/commands/push/channels/list.ts | 5 +- src/commands/push/channels/remove-where.ts | 5 +- src/commands/push/channels/remove.ts | 7 +-- src/commands/push/channels/save.ts | 7 +-- src/commands/push/devices/get.ts | 5 +- src/commands/push/devices/list.ts | 5 +- src/commands/push/devices/remove-where.ts | 7 +-- src/commands/push/devices/remove.ts | 5 +- src/commands/push/devices/save.ts | 37 +++++------ src/commands/push/publish.ts | 61 +++++-------------- src/commands/queues/create.ts | 5 +- src/commands/status.ts | 7 +-- src/hooks/init/version-flag.ts | 2 +- src/services/config-manager.ts | 5 +- src/utils/json-formatter.ts | 19 ++++-- src/utils/message.ts | 4 +- src/utils/readline-helper.ts | 2 +- src/utils/spaces-output.ts | 10 +-- test/e2e/control-api.test.ts | 6 +- test/e2e/web-cli/reconnection.test.ts | 4 +- test/e2e/web-cli/wait-helpers.ts | 10 +-- .../command_not_found/did-you-mean.test.ts | 8 +-- test/tty/tty-test-helper.ts | 2 +- test/unit/commands/interactive.test.ts | 4 +- test/unit/help/web-cli-help.test.ts | 2 +- test/unit/services/stats-display.test.ts | 2 +- 38 files changed, 133 insertions(+), 227 deletions(-) diff --git a/packages/react-web-cli/src/AblyCliTerminal.test.tsx b/packages/react-web-cli/src/AblyCliTerminal.test.tsx index e0669148..0702eda3 100644 --- a/packages/react-web-cli/src/AblyCliTerminal.test.tsx +++ b/packages/react-web-cli/src/AblyCliTerminal.test.tsx @@ -812,7 +812,7 @@ describe("AblyCliTerminal - Connection Status and Animation", () => { // Provide countdown callback and verify it's hooked const callback = vi.mocked(GlobalReconnect.setCountdownCallback).mock - .calls[0][0] as (remaining: number) => void; + .calls[0][0]; act(() => { callback(2000); }); diff --git a/packages/react-web-cli/src/AblyCliTerminal.tsx b/packages/react-web-cli/src/AblyCliTerminal.tsx index 2fa58e2a..5b1c379f 100644 --- a/packages/react-web-cli/src/AblyCliTerminal.tsx +++ b/packages/react-web-cli/src/AblyCliTerminal.tsx @@ -3053,9 +3053,7 @@ const AblyCliTerminalInner = ( secondaryTerm.current.writeln( `\r\n--- ${message.payload === "error" ? "Error" : "Session Ended (from server)"}: ${reason} ---`, ); - updateSecondaryConnectionStatus( - message.payload as ConnectionStatus, - ); + updateSecondaryConnectionStatus(message.payload); if ( secondaryTerm.current && diff --git a/src/base-command.ts b/src/base-command.ts index 2186fc3e..53a8dba1 100644 --- a/src/base-command.ts +++ b/src/base-command.ts @@ -436,7 +436,7 @@ export abstract class AblyBaseCommand extends InteractiveBaseCommand { if (mock) { // Return mock as appropriate type - return mock as unknown as Ably.Rest | Ably.Realtime; + return mock; } this.fail( @@ -881,8 +881,8 @@ export abstract class AblyBaseCommand extends InteractiveBaseCommand { this.argv.includes("--json") || this.argv.includes("--pretty-json"); if (isJsonMode) { const flags: BaseFlags = this.argv.includes("--pretty-json") - ? ({ "pretty-json": true } as BaseFlags) - : ({ json: true } as BaseFlags); + ? { "pretty-json": true } + : { json: true }; const exitCode = err ? 1 : 0; this.log( this.formatJsonRecord( diff --git a/src/chat-base-command.ts b/src/chat-base-command.ts index eda40b9b..7e416616 100644 --- a/src/chat-base-command.ts +++ b/src/chat-base-command.ts @@ -130,15 +130,15 @@ export abstract class ChatBaseCommand extends AblyBaseCommand { switch (statusChange.current) { case RoomStatus.Attached: { if (options.successMessage) { - this.logSuccessMessage(options.successMessage, flags as BaseFlags); + this.logSuccessMessage(options.successMessage, flags); } if (options.listeningMessage) { - this.logListening(options.listeningMessage, flags as BaseFlags); + this.logListening(options.listeningMessage, flags); } break; } case RoomStatus.Detached: { - this.logWarning("Disconnected from Ably", flags as BaseFlags); + this.logWarning("Disconnected from Ably", flags); break; } case RoomStatus.Failed: { diff --git a/src/commands/bench/subscriber.ts b/src/commands/bench/subscriber.ts index ee88bf03..ff98b09e 100644 --- a/src/commands/bench/subscriber.ts +++ b/src/commands/bench/subscriber.ts @@ -3,7 +3,7 @@ import * as Ably from "ably"; import chalk from "chalk"; import Table from "cli-table3"; -import { AblyBaseCommand, type BaseFlags } from "../../base-command.js"; +import { AblyBaseCommand } from "../../base-command.js"; import { clientIdFlag, durationFlag, productApiFlags } from "../../flags.js"; import { formatHeading, formatResource } from "../../utils/output.js"; import type { BenchMessageData, BenchPresenceData } from "../../types/bench.js"; @@ -790,7 +790,7 @@ export default class BenchSubscriber extends AblyBaseCommand { ): Promise { // Wait until the user interrupts or the optional duration elapses const exitReason = await this.waitAndTrackCleanup( - flags as BaseFlags, + flags, "benchSubscriber", flags.duration as number | undefined, ); diff --git a/src/commands/channels/batch-publish.ts b/src/commands/channels/batch-publish.ts index 0b3b6cea..63e2e01b 100644 --- a/src/commands/channels/batch-publish.ts +++ b/src/commands/channels/batch-publish.ts @@ -14,12 +14,6 @@ interface BatchMessage { [key: string]: unknown; } -interface BatchContent { - channels: string | string[]; - messages: BatchMessage; - [key: string]: unknown; -} - interface BatchResponseItem { channel: string; messageId?: string; @@ -195,7 +189,7 @@ export default class ChannelsBatchPublish extends AblyBaseCommand { batchContent = { channels, messages: message, - } as BatchContent; + }; } if (!this.shouldSuppressOutput(flags)) { diff --git a/src/commands/channels/delete.ts b/src/commands/channels/delete.ts index 8f170800..4f9f95d0 100644 --- a/src/commands/channels/delete.ts +++ b/src/commands/channels/delete.ts @@ -55,10 +55,7 @@ export default class ChannelsDelete extends AblyBaseCommand { ? { description: flags.description } : undefined; - const result = await channel.deleteMessage( - message as Ably.Message, - operation, - ); + const result = await channel.deleteMessage(message, operation); const versionSerial = result.versionSerial; diff --git a/src/commands/channels/publish.ts b/src/commands/channels/publish.ts index ae865fbc..3eea3b98 100644 --- a/src/commands/channels/publish.ts +++ b/src/commands/channels/publish.ts @@ -4,7 +4,6 @@ import chalk from "chalk"; import { AblyBaseCommand } from "../../base-command.js"; import { clientIdFlag, productApiFlags } from "../../flags.js"; -import { BaseFlags } from "../../types/cli.js"; import { errorMessage, extractErrorInfo } from "../../utils/errors.js"; import { prepareMessageFromInput } from "../../utils/message.js"; import { formatResource } from "../../utils/output.js"; @@ -289,11 +288,11 @@ export default class ChannelsPublish extends AblyBaseCommand { flags: Record, ): Promise { try { - this.realtime = await this.createAblyRealtimeClient(flags as BaseFlags); + this.realtime = await this.createAblyRealtimeClient(flags); if (!this.realtime) { this.fail( "Failed to create Ably client. Please check your API key and try again.", - flags as BaseFlags, + flags, "channelPublish", ); } @@ -332,7 +331,7 @@ export default class ChannelsPublish extends AblyBaseCommand { return channel.publish(msg); }); } catch (error) { - this.fail(error, flags as BaseFlags, "channelPublish"); + this.fail(error, flags, "channelPublish"); } // Client cleanup is handled by command finally() method } @@ -343,7 +342,7 @@ export default class ChannelsPublish extends AblyBaseCommand { ): Promise { try { // Create REST client - const rest = await this.createAblyRestClient(flags as BaseFlags); + const rest = await this.createAblyRestClient(flags); if (!rest) { return; } @@ -360,7 +359,7 @@ export default class ChannelsPublish extends AblyBaseCommand { return channel.publish(msg); }); } catch (error) { - this.fail(error, flags as BaseFlags, "channelPublish"); + this.fail(error, flags, "channelPublish"); } // No finally block needed here as REST client doesn't maintain a connection } diff --git a/src/commands/env.ts b/src/commands/env.ts index b100083b..28631e84 100644 --- a/src/commands/env.ts +++ b/src/commands/env.ts @@ -4,7 +4,6 @@ import pkg from "fast-levenshtein"; import { AblyBaseCommand } from "../base-command.js"; import { ENV_VARS_DATA } from "../data/env-vars.js"; import { coreGlobalFlags } from "../flags.js"; -import { BaseFlags } from "../types/cli.js"; import { getEnvVarSummaries, renderMinimalReference, @@ -59,13 +58,13 @@ export default class EnvCommand extends AblyBaseCommand { : "Run `ably env` to see all supported variables."; this.fail( `Unknown environment variable: ${args.envVarName}. ${hint}`, - flags as BaseFlags, + flags, "env", ); } if (this.shouldOutputJson(flags)) { - this.logJsonResult({ envVar: match }, flags as BaseFlags); + this.logJsonResult({ envVar: match }, flags); return; } @@ -80,7 +79,7 @@ export default class EnvCommand extends AblyBaseCommand { crossCutting: ENV_VARS_DATA.crossCutting, relatedLinks: ENV_VARS_DATA.relatedLinks, }, - flags as BaseFlags, + flags, ); return; } diff --git a/src/commands/interactive.ts b/src/commands/interactive.ts index ff79830c..4d1b89a9 100644 --- a/src/commands/interactive.ts +++ b/src/commands/interactive.ts @@ -911,13 +911,7 @@ export default class Interactive extends Command { const manifestCommand = this._manifestCache.commands[commandId]; if (manifestCommand?.flags) { for (const [name, flag] of Object.entries(manifestCommand.flags)) { - const flagDef = flag as { - name: string; - char?: string; - description?: string; - type?: string; - hidden?: boolean; - }; + const flagDef = flag; // Skip hidden flags unless in dev mode if (flagDef.hidden && process.env.ABLY_SHOW_DEV_FLAGS !== "true") { continue; @@ -995,13 +989,7 @@ export default class Interactive extends Command { if (manifestCommand?.flags) { // Find flag by name or char for (const [name, flag] of Object.entries(manifestCommand.flags)) { - const flagDef = flag as { - name: string; - char?: string; - description?: string; - type?: string; - hidden?: boolean; - }; + const flagDef = flag; if ( name === flagName || (flagDef.char && flagDef.char === flagName) diff --git a/src/commands/push/batch-publish.ts b/src/commands/push/batch-publish.ts index 5d9fe7d7..5fd60f18 100644 --- a/src/commands/push/batch-publish.ts +++ b/src/commands/push/batch-publish.ts @@ -6,7 +6,6 @@ import { AblyBaseCommand } from "../../base-command.js"; import { CommandError } from "../../errors/command-error.js"; import { forceFlag, productApiFlags } from "../../flags.js"; import { promptForConfirmation } from "../../utils/prompt-confirmation.js"; -import { BaseFlags } from "../../types/cli.js"; import { prepareMessageFromInput } from "../../utils/message.js"; import { formatCountLabel, formatResource } from "../../utils/output.js"; @@ -92,7 +91,7 @@ export default class PushBatchPublish extends AblyBaseCommand { const { args, flags } = await this.parse(PushBatchPublish); try { - const rest = await this.createAblyRestClient(flags as BaseFlags); + const rest = await this.createAblyRestClient(flags); if (!rest) return; let jsonString: string; @@ -102,7 +101,7 @@ export default class PushBatchPublish extends AblyBaseCommand { if (process.stdin.isTTY) { this.fail( 'Missing PAYLOAD. Provide a JSON array, a file path, or "-" to read from stdin.', - flags as BaseFlags, + flags, "pushBatchPublish", ); } @@ -112,11 +111,7 @@ export default class PushBatchPublish extends AblyBaseCommand { } else if (payloadArg.startsWith("@")) { const filePath = path.resolve(payloadArg.slice(1)); if (!fs.existsSync(filePath)) { - this.fail( - `File not found: ${filePath}`, - flags as BaseFlags, - "pushBatchPublish", - ); + this.fail(`File not found: ${filePath}`, flags, "pushBatchPublish"); } jsonString = fs.readFileSync(filePath, "utf8"); } else if ( @@ -126,11 +121,7 @@ export default class PushBatchPublish extends AblyBaseCommand { ) { const filePath = path.resolve(payloadArg); if (!fs.existsSync(filePath)) { - this.fail( - `File not found: ${filePath}`, - flags as BaseFlags, - "pushBatchPublish", - ); + this.fail(`File not found: ${filePath}`, flags, "pushBatchPublish"); } jsonString = fs.readFileSync(filePath, "utf8"); } else if (fs.existsSync(path.resolve(payloadArg))) { @@ -145,23 +136,19 @@ export default class PushBatchPublish extends AblyBaseCommand { } catch { this.fail( "Payload must be a valid JSON array", - flags as BaseFlags, + flags, "pushBatchPublish", ); } if (!Array.isArray(batchPayload)) { - this.fail( - "Payload must be a JSON array", - flags as BaseFlags, - "pushBatchPublish", - ); + this.fail("Payload must be a JSON array", flags, "pushBatchPublish"); } if (batchPayload.length > 10000) { this.fail( "Batch payload cannot exceed 10,000 items", - flags as BaseFlags, + flags, "pushBatchPublish", ); } @@ -185,7 +172,7 @@ export default class PushBatchPublish extends AblyBaseCommand { if (!itemPayload?.notification && !itemPayload?.data) { this.fail( `Item at index ${index} must have a "payload.notification" or "payload.data" field`, - flags as BaseFlags, + flags, "pushBatchPublish", ); } @@ -204,14 +191,14 @@ export default class PushBatchPublish extends AblyBaseCommand { } else { this.fail( `Item at index ${index} has an invalid "channels" field; expected a non-empty string or array of non-empty strings`, - flags as BaseFlags, + flags, "pushBatchPublish", ); } } else { this.fail( `Item at index ${index} must have a "recipient" or "channels" field`, - flags as BaseFlags, + flags, "pushBatchPublish", ); } @@ -256,7 +243,7 @@ export default class PushBatchPublish extends AblyBaseCommand { if (entry.message !== undefined) { this.logWarning( `Item at index ${originalIndex}: "message" is not applicable for recipient-based push and will be ignored`, - flags as BaseFlags, + flags, ); const sanitized = { ...entry }; delete sanitized.message; @@ -272,7 +259,7 @@ export default class PushBatchPublish extends AblyBaseCommand { response, "Batch push publish failed", ), - flags as BaseFlags, + flags, "pushBatchPublish", ); } @@ -299,9 +286,10 @@ export default class PushBatchPublish extends AblyBaseCommand { typeof error?.message === "string" ? error.message : "Unknown error"; - const code = error?.code - ? ` (code: ${String(error.code as string | number)})` - : ""; + const code = + typeof error?.code === "string" || typeof error?.code === "number" + ? ` (code: ${error.code})` + : ""; failedDetails.push(` Failed: ${message}${code}`); failedItems.push({ ...item, originalIndex }); } @@ -329,7 +317,7 @@ export default class PushBatchPublish extends AblyBaseCommand { ) { this.fail( `Item at index ${originalIndex}: message must not include extras.push; use the payload field to specify push content`, - flags as BaseFlags, + flags, "pushBatchPublish", ); } @@ -395,7 +383,7 @@ export default class PushBatchPublish extends AblyBaseCommand { response, "Batch channel publish failed", ), - flags as BaseFlags, + flags, "pushBatchPublish", ); } @@ -456,7 +444,7 @@ export default class PushBatchPublish extends AblyBaseCommand { ); } } catch (error) { - this.fail(error, flags as BaseFlags, "pushBatchPublish"); + this.fail(error, flags, "pushBatchPublish"); } } diff --git a/src/commands/push/channels/list-channels.ts b/src/commands/push/channels/list-channels.ts index b9ddbf83..faa93f95 100644 --- a/src/commands/push/channels/list-channels.ts +++ b/src/commands/push/channels/list-channels.ts @@ -2,7 +2,6 @@ import { Flags } from "@oclif/core"; import { AblyBaseCommand } from "../../../base-command.js"; import { productApiFlags } from "../../../flags.js"; -import { BaseFlags } from "../../../types/cli.js"; import { formatCountLabel, formatLimitWarning, @@ -36,7 +35,7 @@ export default class PushChannelsListChannels extends AblyBaseCommand { const { flags } = await this.parse(PushChannelsListChannels); try { - const rest = await this.createAblyRestClient(flags as BaseFlags); + const rest = await this.createAblyRestClient(flags); if (!rest) return; this.logProgress("Fetching channels with push subscriptions", flags); @@ -89,7 +88,7 @@ export default class PushChannelsListChannels extends AblyBaseCommand { if (limitWarning) this.logToStderr(limitWarning); } } catch (error) { - this.fail(error, flags as BaseFlags, "pushChannelListChannels"); + this.fail(error, flags, "pushChannelListChannels"); } } } diff --git a/src/commands/push/channels/list.ts b/src/commands/push/channels/list.ts index a3e875da..9cbdafb3 100644 --- a/src/commands/push/channels/list.ts +++ b/src/commands/push/channels/list.ts @@ -2,7 +2,6 @@ import { Args, Flags } from "@oclif/core"; import { AblyBaseCommand } from "../../../base-command.js"; import { productApiFlags } from "../../../flags.js"; -import { BaseFlags } from "../../../types/cli.js"; import { formatClientId, formatCountLabel, @@ -52,7 +51,7 @@ export default class PushChannelsList extends AblyBaseCommand { const { args, flags } = await this.parse(PushChannelsList); try { - const rest = await this.createAblyRestClient(flags as BaseFlags); + const rest = await this.createAblyRestClient(flags); if (!rest) return; this.logProgress( @@ -125,7 +124,7 @@ export default class PushChannelsList extends AblyBaseCommand { if (limitWarning) this.logToStderr(limitWarning); } } catch (error) { - this.fail(error, flags as BaseFlags, "pushChannelList"); + this.fail(error, flags, "pushChannelList"); } } } diff --git a/src/commands/push/channels/remove-where.ts b/src/commands/push/channels/remove-where.ts index 842b177a..170110cc 100644 --- a/src/commands/push/channels/remove-where.ts +++ b/src/commands/push/channels/remove-where.ts @@ -2,7 +2,6 @@ import { Args, Flags } from "@oclif/core"; import { AblyBaseCommand } from "../../../base-command.js"; import { forceFlag, productApiFlags } from "../../../flags.js"; -import { BaseFlags } from "../../../types/cli.js"; import { formatResource } from "../../../utils/output.js"; import { promptForConfirmation } from "../../../utils/prompt-confirmation.js"; @@ -38,7 +37,7 @@ export default class PushChannelsRemoveWhere extends AblyBaseCommand { const { args, flags } = await this.parse(PushChannelsRemoveWhere); try { - const rest = await this.createAblyRestClient(flags as BaseFlags); + const rest = await this.createAblyRestClient(flags); if (!rest) return; const params: Record = { @@ -87,7 +86,7 @@ export default class PushChannelsRemoveWhere extends AblyBaseCommand { this.logSuccessMessage("Matching subscriptions removed.", flags); } } catch (error) { - this.fail(error, flags as BaseFlags, "pushChannelRemoveWhere"); + this.fail(error, flags, "pushChannelRemoveWhere"); } } } diff --git a/src/commands/push/channels/remove.ts b/src/commands/push/channels/remove.ts index 1c87133b..fcdf3493 100644 --- a/src/commands/push/channels/remove.ts +++ b/src/commands/push/channels/remove.ts @@ -2,7 +2,6 @@ import { Args, Flags } from "@oclif/core"; import { AblyBaseCommand } from "../../../base-command.js"; import { forceFlag, productApiFlags } from "../../../flags.js"; -import { BaseFlags } from "../../../types/cli.js"; import { formatResource } from "../../../utils/output.js"; import { promptForConfirmation } from "../../../utils/prompt-confirmation.js"; @@ -41,13 +40,13 @@ export default class PushChannelsRemove extends AblyBaseCommand { if (!flags["device-id"] && !flags["client-id"]) { this.fail( "Either --device-id or --client-id must be provided", - flags as BaseFlags, + flags, "pushChannelRemove", ); } try { - const rest = await this.createAblyRestClient(flags as BaseFlags); + const rest = await this.createAblyRestClient(flags); if (!rest) return; const target = flags["device-id"] @@ -105,7 +104,7 @@ export default class PushChannelsRemove extends AblyBaseCommand { ); } } catch (error) { - this.fail(error, flags as BaseFlags, "pushChannelRemove"); + this.fail(error, flags, "pushChannelRemove"); } } } diff --git a/src/commands/push/channels/save.ts b/src/commands/push/channels/save.ts index 039086a5..94c10540 100644 --- a/src/commands/push/channels/save.ts +++ b/src/commands/push/channels/save.ts @@ -2,7 +2,6 @@ import { Args, Flags } from "@oclif/core"; import { AblyBaseCommand } from "../../../base-command.js"; import { productApiFlags } from "../../../flags.js"; -import { BaseFlags } from "../../../types/cli.js"; import { formatResource } from "../../../utils/output.js"; export default class PushChannelsSave extends AblyBaseCommand { @@ -40,13 +39,13 @@ export default class PushChannelsSave extends AblyBaseCommand { if (!flags["device-id"] && !flags["client-id"]) { this.fail( "Either --device-id or --client-id must be provided", - flags as BaseFlags, + flags, "pushChannelSave", ); } try { - const rest = await this.createAblyRestClient(flags as BaseFlags); + const rest = await this.createAblyRestClient(flags); if (!rest) return; this.logProgress( @@ -75,7 +74,7 @@ export default class PushChannelsSave extends AblyBaseCommand { ); } } catch (error) { - this.fail(error, flags as BaseFlags, "pushChannelSave"); + this.fail(error, flags, "pushChannelSave"); } } } diff --git a/src/commands/push/devices/get.ts b/src/commands/push/devices/get.ts index 57825391..3c8b72df 100644 --- a/src/commands/push/devices/get.ts +++ b/src/commands/push/devices/get.ts @@ -2,7 +2,6 @@ import { Args } from "@oclif/core"; import { AblyBaseCommand } from "../../../base-command.js"; import { productApiFlags } from "../../../flags.js"; -import { BaseFlags } from "../../../types/cli.js"; import { formatDeviceState, formatLabel, @@ -33,7 +32,7 @@ export default class PushDevicesGet extends AblyBaseCommand { const deviceId = args.deviceId; try { - const rest = await this.createAblyRestClient(flags as BaseFlags); + const rest = await this.createAblyRestClient(flags); if (!rest) return; this.logProgress(`Fetching device ${formatResource(deviceId)}`, flags); @@ -86,7 +85,7 @@ export default class PushDevicesGet extends AblyBaseCommand { ); } } catch (error) { - this.fail(error, flags as BaseFlags, "pushDeviceGet"); + this.fail(error, flags, "pushDeviceGet"); } } } diff --git a/src/commands/push/devices/list.ts b/src/commands/push/devices/list.ts index 853191a2..fba46e16 100644 --- a/src/commands/push/devices/list.ts +++ b/src/commands/push/devices/list.ts @@ -2,7 +2,6 @@ import { Flags } from "@oclif/core"; import { AblyBaseCommand } from "../../../base-command.js"; import { productApiFlags } from "../../../flags.js"; -import { BaseFlags } from "../../../types/cli.js"; import { formatDeviceState, formatHeading, @@ -49,7 +48,7 @@ export default class PushDevicesList extends AblyBaseCommand { const { flags } = await this.parse(PushDevicesList); try { - const rest = await this.createAblyRestClient(flags as BaseFlags); + const rest = await this.createAblyRestClient(flags); if (!rest) return; this.logProgress("Fetching device registrations", flags); @@ -128,7 +127,7 @@ export default class PushDevicesList extends AblyBaseCommand { if (limitWarning) this.logToStderr(limitWarning); } } catch (error) { - this.fail(error, flags as BaseFlags, "pushDeviceList"); + this.fail(error, flags, "pushDeviceList"); } } } diff --git a/src/commands/push/devices/remove-where.ts b/src/commands/push/devices/remove-where.ts index 12880e95..1947a08a 100644 --- a/src/commands/push/devices/remove-where.ts +++ b/src/commands/push/devices/remove-where.ts @@ -2,7 +2,6 @@ import { Flags } from "@oclif/core"; import { AblyBaseCommand } from "../../../base-command.js"; import { forceFlag, productApiFlags } from "../../../flags.js"; -import { BaseFlags } from "../../../types/cli.js"; import { promptForConfirmation } from "../../../utils/prompt-confirmation.js"; export default class PushDevicesRemoveWhere extends AblyBaseCommand { @@ -32,13 +31,13 @@ export default class PushDevicesRemoveWhere extends AblyBaseCommand { if (!flags["device-id"] && !flags["client-id"]) { this.fail( "At least one filter is required: --device-id or --client-id", - flags as BaseFlags, + flags, "pushDeviceRemoveWhere", ); } try { - const rest = await this.createAblyRestClient(flags as BaseFlags); + const rest = await this.createAblyRestClient(flags); if (!rest) return; const params: Record = {}; @@ -82,7 +81,7 @@ export default class PushDevicesRemoveWhere extends AblyBaseCommand { this.logSuccessMessage("Matching device registrations removed.", flags); } } catch (error) { - this.fail(error, flags as BaseFlags, "pushDeviceRemoveWhere"); + this.fail(error, flags, "pushDeviceRemoveWhere"); } } } diff --git a/src/commands/push/devices/remove.ts b/src/commands/push/devices/remove.ts index 7354cc66..fcd6da86 100644 --- a/src/commands/push/devices/remove.ts +++ b/src/commands/push/devices/remove.ts @@ -2,7 +2,6 @@ import { Args } from "@oclif/core"; import { AblyBaseCommand } from "../../../base-command.js"; import { forceFlag, productApiFlags } from "../../../flags.js"; -import { BaseFlags } from "../../../types/cli.js"; import { formatResource } from "../../../utils/output.js"; import { promptForConfirmation } from "../../../utils/prompt-confirmation.js"; @@ -32,7 +31,7 @@ export default class PushDevicesRemove extends AblyBaseCommand { const deviceId = args.deviceId; try { - const rest = await this.createAblyRestClient(flags as BaseFlags); + const rest = await this.createAblyRestClient(flags); if (!rest) return; // In JSON mode, require --force to prevent accidental destructive actions @@ -68,7 +67,7 @@ export default class PushDevicesRemove extends AblyBaseCommand { ); } } catch (error) { - this.fail(error, flags as BaseFlags, "pushDeviceRemove"); + this.fail(error, flags, "pushDeviceRemove"); } } } diff --git a/src/commands/push/devices/save.ts b/src/commands/push/devices/save.ts index c735da94..2b8519cc 100644 --- a/src/commands/push/devices/save.ts +++ b/src/commands/push/devices/save.ts @@ -4,7 +4,6 @@ import * as path from "node:path"; import { AblyBaseCommand } from "../../../base-command.js"; import { productApiFlags } from "../../../flags.js"; -import { BaseFlags } from "../../../types/cli.js"; import { formatResource } from "../../../utils/output.js"; export default class PushDevicesSave extends AblyBaseCommand { @@ -71,7 +70,7 @@ export default class PushDevicesSave extends AblyBaseCommand { const { flags } = await this.parse(PushDevicesSave); try { - const rest = await this.createAblyRestClient(flags as BaseFlags); + const rest = await this.createAblyRestClient(flags); if (!rest) return; let deviceData: Record; @@ -82,28 +81,28 @@ export default class PushDevicesSave extends AblyBaseCommand { if (!flags.id) { this.fail( "--id is required when not using --data", - flags as BaseFlags, + flags, "pushDeviceSave", ); } if (!flags.platform) { this.fail( "--platform is required when not using --data", - flags as BaseFlags, + flags, "pushDeviceSave", ); } if (!flags["form-factor"]) { this.fail( "--form-factor is required when not using --data", - flags as BaseFlags, + flags, "pushDeviceSave", ); } if (!flags["transport-type"]) { this.fail( "--transport-type is required when not using --data", - flags as BaseFlags, + flags, "pushDeviceSave", ); } @@ -115,21 +114,21 @@ export default class PushDevicesSave extends AblyBaseCommand { if (!flags["target-url"]) { this.fail( "--target-url is required for web transport", - flags as BaseFlags, + flags, "pushDeviceSave", ); } if (!flags["p256dh-key"]) { this.fail( "--p256dh-key is required for web transport", - flags as BaseFlags, + flags, "pushDeviceSave", ); } if (!flags["auth-secret"]) { this.fail( "--auth-secret is required for web transport", - flags as BaseFlags, + flags, "pushDeviceSave", ); } @@ -145,7 +144,7 @@ export default class PushDevicesSave extends AblyBaseCommand { if (!flags["device-token"]) { this.fail( "--device-token is required for apns/fcm transport", - flags as BaseFlags, + flags, "pushDeviceSave", ); } @@ -172,7 +171,7 @@ export default class PushDevicesSave extends AblyBaseCommand { deviceData.metadata = this.parseJsonObjectFlag( flags.metadata, "--metadata", - flags as BaseFlags, + flags, ); } } @@ -195,7 +194,7 @@ export default class PushDevicesSave extends AblyBaseCommand { ); } } catch (error) { - this.fail(error, flags as BaseFlags, "pushDeviceSave"); + this.fail(error, flags, "pushDeviceSave"); } } @@ -208,11 +207,7 @@ export default class PushDevicesSave extends AblyBaseCommand { if (data.startsWith("@")) { const filePath = path.resolve(data.slice(1)); if (!fs.existsSync(filePath)) { - this.fail( - `File not found: ${filePath}`, - flags as BaseFlags, - "pushDeviceSave", - ); + this.fail(`File not found: ${filePath}`, flags, "pushDeviceSave"); } jsonString = fs.readFileSync(filePath, "utf8"); } @@ -223,17 +218,13 @@ export default class PushDevicesSave extends AblyBaseCommand { } catch { this.fail( "--data must be valid JSON or a path to a JSON file (prefixed with @)", - flags as BaseFlags, + flags, "pushDeviceSave", ); } if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) { - this.fail( - "--data must be a JSON object", - flags as BaseFlags, - "pushDeviceSave", - ); + this.fail("--data must be a JSON object", flags, "pushDeviceSave"); } return parsed as Record; diff --git a/src/commands/push/publish.ts b/src/commands/push/publish.ts index 3fe5453c..fbef467e 100644 --- a/src/commands/push/publish.ts +++ b/src/commands/push/publish.ts @@ -4,7 +4,6 @@ import * as path from "node:path"; import { AblyBaseCommand } from "../../base-command.js"; import { forceFlag, productApiFlags } from "../../flags.js"; -import { BaseFlags } from "../../types/cli.js"; import { prepareMessageFromInput } from "../../utils/message.js"; import { formatResource } from "../../utils/output.js"; import { promptForConfirmation } from "../../utils/prompt-confirmation.js"; @@ -102,7 +101,7 @@ export default class PushPublish extends AblyBaseCommand { if (flags.message && !flags.channel) { this.fail( "--message can only be used with --channel (realtime message data is not applicable when publishing directly to a device or client)", - flags as BaseFlags, + flags, "pushPublish", ); } @@ -110,7 +109,7 @@ export default class PushPublish extends AblyBaseCommand { if (!hasDirectRecipient && !flags.channel) { this.fail( "A target is required: --device-id, --client-id, --recipient, or --channel", - flags as BaseFlags, + flags, "pushPublish", ); } @@ -118,18 +117,18 @@ export default class PushPublish extends AblyBaseCommand { if (hasDirectRecipient && flags.channel) { this.logWarning( "--channel is ignored when --device-id, --client-id, or --recipient is provided.", - flags as BaseFlags, + flags, ); if (flags.message) { this.logWarning( "--message is ignored when --device-id, --client-id, or --recipient is provided.", - flags as BaseFlags, + flags, ); } } try { - const rest = await this.createAblyRestClient(flags as BaseFlags); + const rest = await this.createAblyRestClient(flags); if (!rest) return; // Build recipient @@ -142,7 +141,7 @@ export default class PushPublish extends AblyBaseCommand { recipient = this.parseJsonObjectFlag( flags.recipient, "--recipient", - flags as BaseFlags, + flags, ); } @@ -153,11 +152,7 @@ export default class PushPublish extends AblyBaseCommand { if (flags.payload.startsWith("@")) { const filePath = path.resolve(flags.payload.slice(1)); if (!fs.existsSync(filePath)) { - this.fail( - `File not found: ${filePath}`, - flags as BaseFlags, - "pushPublish", - ); + this.fail(`File not found: ${filePath}`, flags, "pushPublish"); } jsonString = fs.readFileSync(filePath, "utf8"); } else if ( @@ -167,11 +162,7 @@ export default class PushPublish extends AblyBaseCommand { ) { const filePath = path.resolve(flags.payload); if (!fs.existsSync(filePath)) { - this.fail( - `File not found: ${filePath}`, - flags as BaseFlags, - "pushPublish", - ); + this.fail(`File not found: ${filePath}`, flags, "pushPublish"); } jsonString = fs.readFileSync(filePath, "utf8"); } else if (fs.existsSync(path.resolve(flags.payload))) { @@ -179,11 +170,7 @@ export default class PushPublish extends AblyBaseCommand { } else { jsonString = flags.payload; } - payload = this.parseJsonObjectFlag( - jsonString, - "--payload", - flags as BaseFlags, - ); + payload = this.parseJsonObjectFlag(jsonString, "--payload", flags); } else { const notification: Record = {}; if (flags.title) notification.title = flags.title; @@ -201,11 +188,7 @@ export default class PushPublish extends AblyBaseCommand { } if (flags.data) { - payload.data = this.parseJsonObjectFlag( - flags.data, - "--data", - flags as BaseFlags, - ); + payload.data = this.parseJsonObjectFlag(flags.data, "--data", flags); } } @@ -217,32 +200,20 @@ export default class PushPublish extends AblyBaseCommand { ) { this.fail( "No push payload provided. Use --payload, --title/--body, or --data to specify notification content", - flags as BaseFlags, + flags, "pushPublish", ); } // Add platform-specific overrides if (flags.apns) { - payload.apns = this.parseJsonObjectFlag( - flags.apns, - "--apns", - flags as BaseFlags, - ); + payload.apns = this.parseJsonObjectFlag(flags.apns, "--apns", flags); } if (flags.fcm) { - payload.fcm = this.parseJsonObjectFlag( - flags.fcm, - "--fcm", - flags as BaseFlags, - ); + payload.fcm = this.parseJsonObjectFlag(flags.fcm, "--fcm", flags); } if (flags.web) { - payload.web = this.parseJsonObjectFlag( - flags.web, - "--web", - flags as BaseFlags, - ); + payload.web = this.parseJsonObjectFlag(flags.web, "--web", flags); } this.logProgress("Publishing push notification", flags); @@ -290,7 +261,7 @@ export default class PushPublish extends AblyBaseCommand { ) { this.fail( "--message must not include extras.push; use the push flags (--title/--body/--payload/etc.) to specify push content", - flags as BaseFlags, + flags, "pushPublish", ); } @@ -331,7 +302,7 @@ export default class PushPublish extends AblyBaseCommand { ); } } catch (error) { - this.fail(error, flags as BaseFlags, "pushPublish"); + this.fail(error, flags, "pushPublish"); } } } diff --git a/src/commands/queues/create.ts b/src/commands/queues/create.ts index 539fe830..2d68dcf9 100644 --- a/src/commands/queues/create.ts +++ b/src/commands/queues/create.ts @@ -73,10 +73,7 @@ export default class QueuesCreateCommand extends ControlBaseCommand { if (this.shouldOutputJson(flags)) { this.logJsonResult( { - queue: structuredClone(createdQueue) as unknown as Record< - string, - unknown - >, + queue: structuredClone(createdQueue), }, flags, ); diff --git a/src/commands/status.ts b/src/commands/status.ts index 6c3cdcc6..27479c63 100644 --- a/src/commands/status.ts +++ b/src/commands/status.ts @@ -5,7 +5,6 @@ import ora from "ora"; import { AblyBaseCommand } from "../base-command.js"; import { coreGlobalFlags } from "../flags.js"; -import { BaseFlags } from "../types/cli.js"; import openUrl from "../utils/open-url.js"; import { getAgentName, getCliVersion } from "../utils/version.js"; @@ -55,7 +54,7 @@ export default class StatusCommand extends AblyBaseCommand { if (data.status === undefined) { this.fail( "Invalid response from status endpoint: status attribute is missing", - flags as BaseFlags, + flags, "status", ); } @@ -68,7 +67,7 @@ export default class StatusCommand extends AblyBaseCommand { statusUrl: "https://status.ably.com", }, }, - flags as BaseFlags, + flags, ); } else if (data.status) { this.log("No incidents currently reported"); @@ -97,7 +96,7 @@ export default class StatusCommand extends AblyBaseCommand { spinner.fail("Failed to check Ably service status"); } - this.fail(error, flags as BaseFlags, "status"); + this.fail(error, flags, "status"); } } } diff --git a/src/hooks/init/version-flag.ts b/src/hooks/init/version-flag.ts index 6ec59ddc..e26d04c7 100644 --- a/src/hooks/init/version-flag.ts +++ b/src/hooks/init/version-flag.ts @@ -53,7 +53,7 @@ const hook: Hook<"init"> = async function (opts) { const jsonOutput = formatJsonString(record, { json: !hasPrettyJsonFlag, prettyJson: hasPrettyJsonFlag, - } as Record); + }); console.log(jsonOutput); handleVersionExit(); } else { diff --git a/src/services/config-manager.ts b/src/services/config-manager.ts index 11d30100..b5ec8acf 100644 --- a/src/services/config-manager.ts +++ b/src/services/config-manager.ts @@ -49,6 +49,7 @@ export interface AblyConfig { accounts: Record; current?: { account?: string; + app?: string; // legacy field migrated to account.currentAppId on load }; helpContext?: { conversation: { @@ -772,9 +773,7 @@ export class TomlConfigManager implements ConfigManager { }; // Migrate old config format if needed - move app from current to account.currentAppId - const legacyCurrent = this.config.current as - | (typeof this.config.current & { app?: string }) - | undefined; + const legacyCurrent = this.config.current; if (legacyCurrent?.app) { const currentAccountAlias = this.config.current?.account; if ( diff --git a/src/utils/json-formatter.ts b/src/utils/json-formatter.ts index f895ab9f..820c059d 100644 --- a/src/utils/json-formatter.ts +++ b/src/utils/json-formatter.ts @@ -21,7 +21,13 @@ export function formatJson(data: unknown): string { } catch { // If JSON serialization fails (e.g. circular reference), return a safe string representation if (typeof data !== "object") { - return String(data as string | number | boolean | bigint | symbol); + const prim: string | number | boolean | bigint | symbol = data as + | string + | number + | boolean + | bigint + | symbol; + return String(prim); } try { @@ -86,9 +92,14 @@ function colorValue(value: unknown): string { } default: { - return typeof value === "object" - ? JSON.stringify(value) - : String(value as string | number | boolean | bigint | symbol); + if (typeof value === "object") return JSON.stringify(value); + const prim: string | number | boolean | bigint | symbol = value as + | string + | number + | boolean + | bigint + | symbol; + return String(prim); } } } diff --git a/src/utils/message.ts b/src/utils/message.ts index 642f428b..385fe5a8 100644 --- a/src/utils/message.ts +++ b/src/utils/message.ts @@ -50,7 +50,7 @@ export function prepareMessageFromInput( if ( messageData.extras && typeof messageData.extras === "object" && - Object.keys(messageData.extras as Record).length > 0 + Object.keys(messageData.extras).length > 0 ) { message.extras = messageData.extras as Record; delete messageData.extras; @@ -66,5 +66,5 @@ export function prepareMessageFromInput( message.encoding = flags.encoding as string; } - return message as Ably.Message; + return message; } diff --git a/src/utils/readline-helper.ts b/src/utils/readline-helper.ts index ed176d87..3c404d25 100644 --- a/src/utils/readline-helper.ts +++ b/src/utils/readline-helper.ts @@ -42,7 +42,7 @@ export async function runInquirerWithReadlineRestore( // Restore line listeners lineListeners.forEach((listener) => { - interactiveReadline.on("line", listener as (line: string) => void); + interactiveReadline.on("line", listener); }); // Resume readline with a small delay to ensure terminal is ready diff --git a/src/utils/spaces-output.ts b/src/utils/spaces-output.ts index 127e0a97..d9bae45c 100644 --- a/src/utils/spaces-output.ts +++ b/src/utils/spaces-output.ts @@ -166,10 +166,7 @@ export function formatCursorBlock( `${indent}${formatLabel("Position Y")} ${cursor.position.y}`, ]; - if ( - cursor.data && - Object.keys(cursor.data as Record).length > 0 - ) { + if (cursor.data && Object.keys(cursor.data).length > 0) { lines.push( `${indent}${formatLabel("Data")} ${JSON.stringify(cursor.data)}`, ); @@ -195,10 +192,7 @@ export function formatLockBlock( formatMemberBlock(lock.member, { indent: memberIndent }), ]; - if ( - lock.attributes && - Object.keys(lock.attributes as Record).length > 0 - ) { + if (lock.attributes && Object.keys(lock.attributes).length > 0) { lines.push( `${indent}${formatLabel("Attributes")} ${JSON.stringify(lock.attributes)}`, ); diff --git a/test/e2e/control-api.test.ts b/test/e2e/control-api.test.ts index 86c729ce..9198de94 100644 --- a/test/e2e/control-api.test.ts +++ b/test/e2e/control-api.test.ts @@ -449,11 +449,7 @@ describe.skipIf(!process.env.E2E_ABLY_ACCESS_TOKEN)( }); it("should handle malformed requests", async () => { - await expect( - controlApi.createApp({ name: "" } as unknown as Parameters< - typeof controlApi.createApp - >[0]), - ).rejects.toThrow(); + await expect(controlApi.createApp({ name: "" })).rejects.toThrow(); }); }); diff --git a/test/e2e/web-cli/reconnection.test.ts b/test/e2e/web-cli/reconnection.test.ts index 4aa572f3..36433b39 100644 --- a/test/e2e/web-cli/reconnection.test.ts +++ b/test/e2e/web-cli/reconnection.test.ts @@ -531,7 +531,7 @@ test.describe("Web CLI Reconnection E2E Tests", () => { } } - window.WebSocket = InterceptWS as unknown as typeof WebSocket; + window.WebSocket = InterceptWS; }); const apiKey = process.env.E2E_ABLY_API_KEY || process.env.ABLY_API_KEY; @@ -672,7 +672,7 @@ test.describe("Web CLI Reconnection E2E Tests", () => { } } - window.WebSocket = InterceptWS as unknown as typeof WebSocket; + window.WebSocket = InterceptWS; }); // Use maxReconnectAttempts=3 for faster testing diff --git a/test/e2e/web-cli/wait-helpers.ts b/test/e2e/web-cli/wait-helpers.ts index c203d3a8..d62ff930 100644 --- a/test/e2e/web-cli/wait-helpers.ts +++ b/test/e2e/web-cli/wait-helpers.ts @@ -64,17 +64,11 @@ export async function waitForTerminalReady( // Handle different states while (Date.now() - startTime < effectiveTimeout) { - currentState = (await page.evaluate(() => { + currentState = await page.evaluate(() => { return ( window as Window & { getAblyCliTerminalReactState?: () => unknown } ).getAblyCliTerminalReactState?.(); - })) as - | { - componentConnectionStatus?: string; - isSessionActive?: boolean; - showManualReconnectPrompt?: boolean; - } - | undefined; + }); if ( currentState?.componentConnectionStatus === "connected" && diff --git a/test/hooks/command_not_found/did-you-mean.test.ts b/test/hooks/command_not_found/did-you-mean.test.ts index 79942470..1eb1f26b 100644 --- a/test/hooks/command_not_found/did-you-mean.test.ts +++ b/test/hooks/command_not_found/did-you-mean.test.ts @@ -64,7 +64,7 @@ async function createTestConfig(): Promise { hidden: false, hiddenAliases: [], load: async () => ({ async run() {} }) as unknown as Command.Class, - } as Command.Loadable, + }, { id: "channels:list", // Add minimum required properties for Command.Loadable type @@ -74,7 +74,7 @@ async function createTestConfig(): Promise { hiddenAliases: [], args: {}, load: async () => ({ async run() {} }) as unknown as Command.Class, - } as Command.Loadable, + }, { id: "help", // Add minimum required properties for Command.Loadable type @@ -84,7 +84,7 @@ async function createTestConfig(): Promise { hiddenAliases: [], args: {}, load: async () => ({ async run() {} }) as unknown as Command.Class, - } as Command.Loadable, + }, ); config.commandIDs.push( "channels:subscribe", @@ -95,7 +95,7 @@ async function createTestConfig(): Promise { config.topics.push({ description: "Channel commands", name: "channels", - } as unknown as (typeof config.topics)[number]); + }); return config; } diff --git a/test/tty/tty-test-helper.ts b/test/tty/tty-test-helper.ts index 01d7c5c5..af9ef396 100644 --- a/test/tty/tty-test-helper.ts +++ b/test/tty/tty-test-helper.ts @@ -52,7 +52,7 @@ export function spawnTty( name: "xterm-256color", cols: 120, rows: 30, - env: childEnv as Record, + env: childEnv, }); let resolveExit: (value: { code: number }) => void; diff --git a/test/unit/commands/interactive.test.ts b/test/unit/commands/interactive.test.ts index 4316c074..73a3f27f 100644 --- a/test/unit/commands/interactive.test.ts +++ b/test/unit/commands/interactive.test.ts @@ -53,9 +53,9 @@ describe("Interactive Command", () => { .mockImplementation(() => {}); const processExitSpy = vi .spyOn(process, "exit") - .mockImplementation((() => { + .mockImplementation(() => { throw new Error("Process exit called"); - }) as never); + }); try { await cmd.run(); diff --git a/test/unit/help/web-cli-help.test.ts b/test/unit/help/web-cli-help.test.ts index 0138a38d..48d07a96 100644 --- a/test/unit/help/web-cli-help.test.ts +++ b/test/unit/help/web-cli-help.test.ts @@ -70,7 +70,7 @@ describe("CLI Help", function () { // Stub ConfigManager configManagerStub = { getAccessToken: vi.fn(), - } as Partial; + }; // Enable Web CLI mode process.env.ABLY_WEB_CLI_MODE = "true"; diff --git a/test/unit/services/stats-display.test.ts b/test/unit/services/stats-display.test.ts index e723f9ec..4640ffa0 100644 --- a/test/unit/services/stats-display.test.ts +++ b/test/unit/services/stats-display.test.ts @@ -31,7 +31,7 @@ describe("StatsDisplay", () => { it("produces no output for null stats", () => { const display = new StatsDisplay(); - display.display(null as unknown as Parameters[0]); + display.display(null); expect(consoleSpy).not.toHaveBeenCalled(); });