diff --git a/AGENTS.md b/AGENTS.md index 0f70f714d..814f23f5b 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -28,7 +28,7 @@ This is a monorepo managed with `pnpm`. It produces a CLI tool for generating hi - **Install**: `pnpm install` - **Build**: `pnpm build` (generates validators, bundles packages, and runs `tsc -b`). - **Lint/Format**: `pnpm lint` (uses Biome). For CI-style checks, use `pnpm ci-lint`. -- **Unit Tests**: `pnpm test` (uses Jest). For coverage, use `pnpm ci-test`. +- **Unit Tests**: `pnpm test` (uses Vitest). For coverage, use `pnpm ci-test`. - **Integration Tests**: - Generate: `pnpm integration:generate` - Validate/Build: `pnpm integration:validate` @@ -40,9 +40,9 @@ This is a monorepo managed with `pnpm`. It produces a CLI tool for generating hi ## Testing Standards - **Unit Testing**: Tests are co-located with source code (`.spec.ts`). -- **Jest Globals**: You MUST explicitly import Jest globals in test files: +- **Vitest Globals**: You MUST explicitly import Vitest globals in test files: ```typescript - import {describe, expect, it} from "@jest/globals" + import {describe, expect, it} from "vitest" ``` - **Regression**: Always ensure `pnpm integration:validate` passes after changes to generation logic. diff --git a/docs/architecture.md b/docs/architecture.md index 0d275d156..4a00613d4 100644 --- a/docs/architecture.md +++ b/docs/architecture.md @@ -68,10 +68,10 @@ graph TD ### Invariants - **No `npx`**: Always use `pnpm run` or `pnpm exec`. - **Read-Only Generation**: Never manually edit files in `src/generated/` directories; they are overwritten during generation. -- **Jest Globals**: Always explicitly import Jest globals (`describe`, `it`, `expect`) from `@jest/globals`. +- **Vitest Globals**: Always explicitly import vitest globals (`describe`, `it`, `expect`) from `vitest`. ### Conventions -- **Co-location**: Unit tests (`*.spec.ts`) are co-located with the source code they test. Use explicit jest imports (`import {describe, it, expect} from "@jest/globals"`). +- **Co-location**: Unit tests (`*.spec.ts`) are co-located with the source code they test. Use explicit vitest imports (`import {describe, it, expect} from "vitest"`). - **Import Extensions**: Use `.ts` extensions in imports (e.g., `import {foo} from "./foo.ts"`) to support ESM. - **Dependency Migration**: Prefer `pnpm` workspace references (e.g., `"@nahkies/typescript-common-runtime": "workspace:*"`). diff --git a/e2e/jest.config.cjs b/e2e/jest.config.cjs deleted file mode 100644 index d47497655..000000000 --- a/e2e/jest.config.cjs +++ /dev/null @@ -1,12 +0,0 @@ -const base = require("../jest.base") -const {name: displayName} = require("./package.json") - -/** - * @type { import('@jest/types').Config.ProjectConfig } - */ -const config = { - ...base, - displayName, -} - -module.exports = config diff --git a/e2e/package.json b/e2e/package.json index dbfa6938d..e06e2a468 100644 --- a/e2e/package.json +++ b/e2e/package.json @@ -10,7 +10,7 @@ "clean": "rm -rf ./dist && rm -rf ./src/generated", "generate": "./scripts/generate.sh", "build": "tsc -p ./tsconfig.json", - "test": "jest", + "test": "vitest run", "start": "node ./dist/index.js" }, "dependencies": { @@ -25,12 +25,11 @@ "zod": "^4.3.6" }, "devDependencies": { - "@jest/globals": "^30.4.1", "@nahkies/openapi-code-generator": "workspace:*", "@types/express": "^5.0.6", "@types/koa": "^3.0.3", "expect": "^30.4.1", - "jest": "^30.4.2", - "typescript": "^6.0.3" + "typescript": "^6.0.3", + "vitest": "^4.0.11" } } diff --git a/e2e/src/index.axios.spec.ts b/e2e/src/index.axios.spec.ts index b81c8a44a..93ed99ab8 100644 --- a/e2e/src/index.axios.spec.ts +++ b/e2e/src/index.axios.spec.ts @@ -1,6 +1,6 @@ import type {Server} from "node:http" -import {afterAll, beforeAll, describe, expect, it} from "@jest/globals" import type {AxiosError} from "axios" +import {afterAll, beforeAll, describe, expect, it} from "vitest" import { ApiClient, E2ETestClientServers, diff --git a/e2e/src/index.fetch.spec.ts b/e2e/src/index.fetch.spec.ts index 1702ddb4e..0ee774b72 100644 --- a/e2e/src/index.fetch.spec.ts +++ b/e2e/src/index.fetch.spec.ts @@ -7,8 +7,9 @@ import { describe, expect, it, - jest, -} from "@jest/globals" + type MockedFunction, + vi, +} from "vitest" import { ApiClient, E2ETestClientServers, @@ -569,10 +570,10 @@ describe.each( }) describe("route matching", () => { - let logSpy: jest.SpiedFunction + let logSpy: MockedFunction beforeEach(() => { - logSpy = jest.spyOn(console, "log").mockImplementation(() => {}) + logSpy = vi.spyOn(console, "log").mockImplementation(() => {}) }) afterEach(() => { diff --git a/e2e/src/jest.d.ts b/e2e/src/jest.d.ts deleted file mode 100644 index c076b5168..000000000 --- a/e2e/src/jest.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -import type {CustomMatcherResult} from "expect" - -declare module "expect" { - interface AsymmetricMatchers { - toEqualBlob(this: R, expected: Blob): Promise - } - interface Matchers { - toEqualBlob(this: R, expected: Blob): Promise - } -} diff --git a/e2e/src/test-utils.ts b/e2e/src/test-utils.ts index b81eaf6d7..b546d4038 100644 --- a/e2e/src/test-utils.ts +++ b/e2e/src/test-utils.ts @@ -1,6 +1,6 @@ import {Blob} from "node:buffer" -import {expect} from "@jest/globals" import {AsymmetricMatcher} from "expect" +import {expect} from "vitest" class NumberInRange extends AsymmetricMatcher { constructor( diff --git a/e2e/src/vitest.d.ts b/e2e/src/vitest.d.ts new file mode 100644 index 000000000..2de9f53a9 --- /dev/null +++ b/e2e/src/vitest.d.ts @@ -0,0 +1,10 @@ +import type {CustomMatcherResult} from "expect" + +declare module "vitest" { + interface Assertion { + toEqualBlob(expected: Blob): Promise + } + interface AsymmetricMatchersContaining { + toEqualBlob(expected: Blob): Promise + } +} diff --git a/e2e/vitest.config.mts b/e2e/vitest.config.mts new file mode 100644 index 000000000..be39929da --- /dev/null +++ b/e2e/vitest.config.mts @@ -0,0 +1,9 @@ +import {defineConfig} from "vitest/config" +import {baseTestConfig} from "../vitest.base" + +export default defineConfig({ + test: { + ...baseTestConfig.test, + name: "e2e", + }, +}) diff --git a/jest.base.js b/jest.base.js deleted file mode 100644 index 7e8eaa868..000000000 --- a/jest.base.js +++ /dev/null @@ -1,15 +0,0 @@ -/** - * @type { import('@jest/types').Config.ProjectConfig } - */ -const config = { - testEnvironment: "node", - transform: { - "^.+\\.(t|j)sx?$": "@swc/jest", - }, - resetMocks: true, - testMatch: ["**/*.spec.ts"], - // Note: prettier is required for inline snapshot indentation to work correctly - prettierPath: require.resolve("prettier"), -} - -module.exports = config diff --git a/jest.config.js b/jest.config.js deleted file mode 100644 index 633b5d889..000000000 --- a/jest.config.js +++ /dev/null @@ -1,12 +0,0 @@ -const inspector = require("node:inspector") - -/** - * @type { import('@jest/types').Config.GlobalConfig } - */ -const config = { - projects: ["packages/*/jest.config.cjs"], - testTimeout: inspector.url() ? 5 * 60 * 1000 : 5 * 1000, - reporters: ["./jest/reporter.js"], -} - -module.exports = config diff --git a/jest/reporter.js b/jest/reporter.js deleted file mode 100644 index 02ec35b42..000000000 --- a/jest/reporter.js +++ /dev/null @@ -1,14 +0,0 @@ -const {DefaultReporter} = require("@jest/reporters") - -class Reporter extends DefaultReporter { - printTestFileHeader(_testPath, _config, result) { - // silence console output from tests that passed - if (result.numFailingTests === 0 && !result.testExecError) { - result.console = [] - } - // biome-ignore lint/complexity/noArguments: we want to pass through - super.printTestFileHeader(...arguments) - } -} - -module.exports = Reporter diff --git a/package.json b/package.json index 0a94d5409..a42769746 100644 --- a/package.json +++ b/package.json @@ -24,13 +24,13 @@ "build": "node ./scripts/generate-ajv-validator.js && pnpm -r --workspace-concurrency=4 run bundle && tsc -b tsconfig.json", "build:docs": "pnpm --filter @nahkies/openapi-code-generator-documentation run build", "build:watch": "tsc -b tsconfig.json -w", - "test": "jest", + "test": "vitest run", "integration:clean": "pnpm --filter @integration/* run clean", "integration:generate": "node ./scripts/generate.mjs", "integration:validate": "pnpm -r --filter @integration/* --workspace-concurrency=2 run validate", "e2e:generate": "pnpm --filter e2e run clean && pnpm --filter e2e run generate", "e2e:validate": "pnpm --filter e2e run build && pnpm --filter e2e run test", - "ci-test": "jest --coverage", + "ci-test": "vitest run --coverage", "ci-lint": "biome ci .", "ci-pipeline": "./scripts/ci-pipeline.sh", "ci-pipeline:fast": "FAST=1 ./scripts/ci-pipeline.sh", @@ -44,18 +44,15 @@ "@biomejs/js-api": "4.0.0", "@biomejs/wasm-nodejs": "2.4.15", "@commander-js/extra-typings": "^14.0.0", - "@jest/reporters": "^30.4.1", - "@swc/core": "^1.15.40", - "@swc/jest": "^0.2.39", "@tsconfig/node24": "^24.0.4", "@tsconfig/strictest": "^2.0.8", "@types/node": "^22.19.17", + "@vitest/coverage-v8": "4.1.7", "ajv": "^8.20.0", "ajv-draft-04": "^1.0.0", "ajv-formats": "^3.0.1", "commander": "^14.0.3", "husky": "^9.1.7", - "jest": "^30.4.2", "json5": "^2.2.3", "lerna": "^9.0.7", "lint-staged": "^17.0.5", @@ -63,7 +60,8 @@ "publint": "^0.3.21", "remark": "^15.0.1", "remark-toc": "^9.0.0", - "typescript": "^6.0.3" + "typescript": "^6.0.3", + "vitest": "^4.0.11" }, "workspaces": [ "packages/*", diff --git a/packages/openapi-code-generator/jest.config.cjs b/packages/openapi-code-generator/jest.config.cjs deleted file mode 100644 index e4604b03a..000000000 --- a/packages/openapi-code-generator/jest.config.cjs +++ /dev/null @@ -1,12 +0,0 @@ -const base = require("../../jest.base") -const {name: displayName} = require("./package.json") - -/** - * @type { import('@jest/types').Config.ProjectConfig } - */ -const config = { - ...base, - displayName, -} - -module.exports = config diff --git a/packages/openapi-code-generator/package.json b/packages/openapi-code-generator/package.json index 53c3051e1..b5cc11df3 100644 --- a/packages/openapi-code-generator/package.json +++ b/packages/openapi-code-generator/package.json @@ -59,14 +59,13 @@ "clean": "rm -rf ./dist && rm -f tsconfig.tsbuildinfo", "build": "tsc -p ./tsconfig.json", "bundle": "tsdown", - "test": "jest" + "test": "vitest run" }, "devDependencies": { "@azure-tools/typespec-autorest": "0.68.0", "@azure-tools/typespec-azure-core": "0.68.0", "@azure-tools/typespec-azure-resource-manager": "0.68.0", "@azure-tools/typespec-client-generator-core": "0.68.0", - "@jest/globals": "^30.4.1", "@nahkies/typescript-common-runtime": "workspace:^", "@types/js-yaml": "^4.0.9", "@types/lodash": "^4.17.24", @@ -82,7 +81,8 @@ "@typespec/xml": "0.82.0", "joi": "^18.2.1", "tsdown": "^0.22.0", - "tsx": "^4.22.3" + "tsx": "^4.22.3", + "vitest": "^4.0.12" }, "dependencies": { "@biomejs/biome": "2.4.15", diff --git a/packages/openapi-code-generator/src/core/cli-utils.spec.ts b/packages/openapi-code-generator/src/core/cli-utils.spec.ts index 3149d9a0e..ec78b22cf 100644 --- a/packages/openapi-code-generator/src/core/cli-utils.spec.ts +++ b/packages/openapi-code-generator/src/core/cli-utils.spec.ts @@ -1,4 +1,4 @@ -import {describe, expect, it} from "@jest/globals" +import {describe, expect, it} from "vitest" import { boolParser, optionalBoolParser, diff --git a/packages/openapi-code-generator/src/core/dependency-graph.spec.ts b/packages/openapi-code-generator/src/core/dependency-graph.spec.ts index 519d7881d..4ac5edc3e 100644 --- a/packages/openapi-code-generator/src/core/dependency-graph.spec.ts +++ b/packages/openapi-code-generator/src/core/dependency-graph.spec.ts @@ -1,4 +1,4 @@ -import {describe, expect, it} from "@jest/globals" +import {describe, expect, it} from "vitest" import { createTestInputFromYamlString, testVersions, diff --git a/packages/openapi-code-generator/src/core/loaders/generic.loader.spec.ts b/packages/openapi-code-generator/src/core/loaders/generic.loader.spec.ts index dc4581fe0..1fe322b8c 100644 --- a/packages/openapi-code-generator/src/core/loaders/generic.loader.spec.ts +++ b/packages/openapi-code-generator/src/core/loaders/generic.loader.spec.ts @@ -1,4 +1,4 @@ -import {describe, expect, it} from "@jest/globals" +import {describe, expect, it} from "vitest" import { type GenericLoaderRequestHeaders, headersForRemoteUri, diff --git a/packages/openapi-code-generator/src/core/loaders/openapi-loader.spec.ts b/packages/openapi-code-generator/src/core/loaders/openapi-loader.spec.ts index bae36530b..33090b682 100644 --- a/packages/openapi-code-generator/src/core/loaders/openapi-loader.spec.ts +++ b/packages/openapi-code-generator/src/core/loaders/openapi-loader.spec.ts @@ -1,4 +1,4 @@ -import {describe, expect, it} from "@jest/globals" +import {describe, expect, it} from "vitest" import {normalizeRef, pathFromRef} from "./openapi-loader.ts" describe("core/openapi-loader", () => { diff --git a/packages/openapi-code-generator/src/core/loaders/package.json.loader.spec.ts b/packages/openapi-code-generator/src/core/loaders/package.json.loader.spec.ts index 390d77798..597be8b46 100644 --- a/packages/openapi-code-generator/src/core/loaders/package.json.loader.spec.ts +++ b/packages/openapi-code-generator/src/core/loaders/package.json.loader.spec.ts @@ -1,5 +1,5 @@ import path from "node:path" -import {describe, expect, it} from "@jest/globals" +import {describe, expect, it} from "vitest" import {NodeFsAdaptor} from "../file-system/node-fs-adaptor.ts" import {loadPackageJson} from "./package.json.loader.ts" diff --git a/packages/openapi-code-generator/src/core/loaders/tsconfig.loader.spec.ts b/packages/openapi-code-generator/src/core/loaders/tsconfig.loader.spec.ts index d849fe914..fbc1fdb17 100644 --- a/packages/openapi-code-generator/src/core/loaders/tsconfig.loader.spec.ts +++ b/packages/openapi-code-generator/src/core/loaders/tsconfig.loader.spec.ts @@ -1,4 +1,4 @@ -import {describe, expect, it, jest} from "@jest/globals" +import {describe, expect, it, vi} from "vitest" import {WebFsAdaptor} from "../file-system/web-fs-adaptor.ts" import {loadTsConfigCompilerOptions} from "./tsconfig.loader.ts" @@ -108,7 +108,7 @@ describe("core/loaders/tsconfig.loader", () => { }), }) - const spy = jest + const spy = vi .spyOn(fs, "readFile") .mockRejectedValue(new Error("EACCES: permission denied")) diff --git a/packages/openapi-code-generator/src/core/logger.spec.ts b/packages/openapi-code-generator/src/core/logger.spec.ts index 34fc5cfda..182e16869 100644 --- a/packages/openapi-code-generator/src/core/logger.spec.ts +++ b/packages/openapi-code-generator/src/core/logger.spec.ts @@ -1,33 +1,49 @@ -import {afterAll, beforeEach, describe, expect, it, jest} from "@jest/globals" +import { + afterAll, + afterEach, + beforeEach, + describe, + expect, + it, + type Mock, + vi, +} from "vitest" import {Logger} from "./logger.ts" describe("Logger", () => { - let sink: {info: jest.Mock; warn: jest.Mock; error: jest.Mock} + let sink: {info: Mock; warn: Mock; error: Mock} beforeEach(() => { sink = { - info: jest.fn(), - warn: jest.fn(), - error: jest.fn(), + info: vi.fn(), + warn: vi.fn(), + error: vi.fn(), } }) + afterEach(() => { + vi.unstubAllEnvs() + }) + afterAll(() => { - jest.restoreAllMocks() + vi.restoreAllMocks() }) it("should include color escape sequences by default (assuming TTY)", () => { + vi.stubEnv("NO_COLOR", undefined) + vi.stubEnv("NODE_DISABLE_COLORS", undefined) + vi.stubEnv("TERM", "xterm") const logger = new Logger(true, undefined, sink) logger.warn("test message") expect(sink.warn).toHaveBeenCalledWith( - expect.stringContaining("\x1b[33m[warn]\x1b[0m test message"), + expect.stringContaining("\x1b[33m[warn]\x1b[0m test message "), ) }) it("should strip color escape sequences when NO_COLOR is set", () => { - jest.replaceProperty(process, "env", {...process.env, NO_COLOR: "1"}) + vi.stubEnv("NO_COLOR", "1") const logger = new Logger(true, undefined, sink) logger.warn("test message") @@ -36,10 +52,7 @@ describe("Logger", () => { }) it("should strip color escape sequences when NODE_DISABLE_COLORS is set", () => { - jest.replaceProperty(process, "env", { - ...process.env, - NODE_DISABLE_COLORS: "1", - }) + vi.stubEnv("NODE_DISABLE_COLORS", "1") const logger = new Logger(true, undefined, sink) logger.warn("test message") @@ -48,7 +61,7 @@ describe("Logger", () => { }) it("should strip color escape sequences when TERM is dumb", () => { - jest.replaceProperty(process, "env", {...process.env, TERM: "dumb"}) + vi.stubEnv("TERM", "dumb") const logger = new Logger(true, undefined, sink) logger.warn("test message") diff --git a/packages/openapi-code-generator/src/core/normalization/parameter-normalizer.spec.ts b/packages/openapi-code-generator/src/core/normalization/parameter-normalizer.spec.ts index a5a2f3552..c7aed5d00 100644 --- a/packages/openapi-code-generator/src/core/normalization/parameter-normalizer.spec.ts +++ b/packages/openapi-code-generator/src/core/normalization/parameter-normalizer.spec.ts @@ -1,4 +1,4 @@ -import {beforeEach, describe, expect, it, jest} from "@jest/globals" +import {beforeEach, describe, expect, it, type Mocked, vi} from "vitest" import {FakeSchemaProvider} from "../../test/fake-schema-provider.ts" import {irFixture as ir} from "../../test/ir-model.fixtures.test-utils.ts" import type {OpenapiLoader} from "../loaders/openapi-loader.ts" @@ -8,17 +8,17 @@ import {ParameterNormalizer} from "./parameter-normalizer.ts" import {SchemaNormalizer} from "./schema-normalizer.ts" describe("ParameterNormalizer", () => { - let loader: jest.Mocked + let loader: Mocked let fakeSchemaProvider: FakeSchemaProvider let schemaNormalizer: SchemaNormalizer let parameterNormalizer: ParameterNormalizer beforeEach(() => { loader = { - parameter: jest.fn(), - schema: jest.fn(), - addVirtualType: jest.fn(), - } as unknown as jest.Mocked + parameter: vi.fn(), + schema: vi.fn(), + addVirtualType: vi.fn(), + } as unknown as Mocked fakeSchemaProvider = new FakeSchemaProvider() diff --git a/packages/openapi-code-generator/src/core/normalization/schema-normalizer.spec.ts b/packages/openapi-code-generator/src/core/normalization/schema-normalizer.spec.ts index 050dcec94..230474461 100644 --- a/packages/openapi-code-generator/src/core/normalization/schema-normalizer.spec.ts +++ b/packages/openapi-code-generator/src/core/normalization/schema-normalizer.spec.ts @@ -1,4 +1,4 @@ -import {beforeEach, describe, expect, it} from "@jest/globals" +import {beforeEach, describe, expect, it} from "vitest" import {FakeSchemaProvider} from "../../test/fake-schema-provider.ts" import {irFixture as ir} from "../../test/ir-model.fixtures.test-utils.ts" import {generationLib} from "../generation-lib.ts" diff --git a/packages/openapi-code-generator/src/core/openapi-utils.spec.ts b/packages/openapi-code-generator/src/core/openapi-utils.spec.ts index 34285b82b..fda766a66 100644 --- a/packages/openapi-code-generator/src/core/openapi-utils.spec.ts +++ b/packages/openapi-code-generator/src/core/openapi-utils.spec.ts @@ -1,4 +1,4 @@ -import {describe, expect, it} from "@jest/globals" +import {describe, expect, it} from "vitest" import { extractPlaceholders, getNameFromRef, diff --git a/packages/openapi-code-generator/src/core/openapi-validator.spec.ts b/packages/openapi-code-generator/src/core/openapi-validator.spec.ts index acba06516..0330ac2d5 100644 --- a/packages/openapi-code-generator/src/core/openapi-validator.spec.ts +++ b/packages/openapi-code-generator/src/core/openapi-validator.spec.ts @@ -1,4 +1,4 @@ -import {describe, expect, it} from "@jest/globals" +import {describe, expect, it} from "vitest" import {OpenapiValidator} from "./openapi-validator.ts" describe("core/openapi-validator", () => { diff --git a/packages/openapi-code-generator/src/core/utils.spec.ts b/packages/openapi-code-generator/src/core/utils.spec.ts index 70b19bf69..216b7ee3e 100644 --- a/packages/openapi-code-generator/src/core/utils.spec.ts +++ b/packages/openapi-code-generator/src/core/utils.spec.ts @@ -1,4 +1,4 @@ -import {describe, expect, it} from "@jest/globals" +import {describe, expect, it} from "vitest" import { camelCase, coalesce, diff --git a/packages/openapi-code-generator/src/test/input.test-utils.ts b/packages/openapi-code-generator/src/test/input.test-utils.ts index 8f7d95837..5efddfb5a 100644 --- a/packages/openapi-code-generator/src/test/input.test-utils.ts +++ b/packages/openapi-code-generator/src/test/input.test-utils.ts @@ -1,6 +1,6 @@ import path from "node:path" -import {jest} from "@jest/globals" import yaml from "js-yaml" +import {vi} from "vitest" import {NodeFsAdaptor} from "../core/file-system/node-fs-adaptor.ts" import {Input, type InputConfig} from "../core/input.ts" import {GenericLoader} from "../core/loaders/generic.loader.ts" @@ -40,7 +40,7 @@ export async function unitTestInput( const validator = await OpenapiValidator.create() if (skipValidation) { - jest.spyOn(validator, "validate").mockResolvedValue() + vi.spyOn(validator, "validate").mockResolvedValue() } const file = fileForVersion(version) @@ -75,7 +75,7 @@ export async function createTestInputFromYamlString( const validator = await OpenapiValidator.create() if (skipValidation) { - jest.spyOn(validator, "validate").mockResolvedValue() + vi.spyOn(validator, "validate").mockResolvedValue() } const loader = await OpenapiLoader.createFromLiteral( diff --git a/packages/openapi-code-generator/src/test/typescript-compiler.test-utils.spec.ts b/packages/openapi-code-generator/src/test/typescript-compiler.test-utils.spec.ts index b47a0b502..413fcc321 100644 --- a/packages/openapi-code-generator/src/test/typescript-compiler.test-utils.spec.ts +++ b/packages/openapi-code-generator/src/test/typescript-compiler.test-utils.spec.ts @@ -1,4 +1,4 @@ -import {describe, expect, it} from "@jest/globals" +import {describe, expect, it} from "vitest" import {TestOutputTypeChecker} from "./typescript-compiler.test-utils.ts" describe("test/typescript-compiler", () => { diff --git a/packages/openapi-code-generator/src/typescript/client/client-servers-builder.spec.ts b/packages/openapi-code-generator/src/typescript/client/client-servers-builder.spec.ts index 3592db939..f703a9e0f 100644 --- a/packages/openapi-code-generator/src/typescript/client/client-servers-builder.spec.ts +++ b/packages/openapi-code-generator/src/typescript/client/client-servers-builder.spec.ts @@ -1,4 +1,4 @@ -import {beforeAll, describe, expect, it} from "@jest/globals" +import {beforeAll, describe, expect, it} from "vitest" import type { IROperation, IRServer, diff --git a/packages/openapi-code-generator/src/typescript/common/import-builder.spec.ts b/packages/openapi-code-generator/src/typescript/common/import-builder.spec.ts index b209302b0..41531297c 100644 --- a/packages/openapi-code-generator/src/typescript/common/import-builder.spec.ts +++ b/packages/openapi-code-generator/src/typescript/common/import-builder.spec.ts @@ -1,4 +1,4 @@ -import {describe, expect, it} from "@jest/globals" +import {describe, expect, it} from "vitest" import {ImportBuilder, naturalCompare} from "./import-builder.ts" describe("typescript/common/import-builder", () => { diff --git a/packages/openapi-code-generator/src/typescript/common/schema-builders/joi-runtime-snippets/joi-intersect.spec.ts b/packages/openapi-code-generator/src/typescript/common/schema-builders/joi-runtime-snippets/joi-intersect.spec.ts index ec86f9f21..66f19cdc8 100644 --- a/packages/openapi-code-generator/src/typescript/common/schema-builders/joi-runtime-snippets/joi-intersect.spec.ts +++ b/packages/openapi-code-generator/src/typescript/common/schema-builders/joi-runtime-snippets/joi-intersect.spec.ts @@ -1,5 +1,5 @@ -import {describe, expect, it} from "@jest/globals" import joi from "joi" +import {describe, expect, it} from "vitest" import {joiIntersect} from "./joi-intersect.ts" describe("typescript/common/schema-builders/joi-runtime-snippets/joi-intersect", () => { diff --git a/packages/openapi-code-generator/src/typescript/common/schema-builders/joi-schema-builder.integration.spec.ts b/packages/openapi-code-generator/src/typescript/common/schema-builders/joi-schema-builder.integration.spec.ts index bfb58e33f..0d05b7648 100644 --- a/packages/openapi-code-generator/src/typescript/common/schema-builders/joi-schema-builder.integration.spec.ts +++ b/packages/openapi-code-generator/src/typescript/common/schema-builders/joi-schema-builder.integration.spec.ts @@ -1,5 +1,5 @@ import vm from "node:vm" -import {beforeAll, describe, expect, it} from "@jest/globals" +import {beforeAll, describe, expect, it} from "vitest" import {testVersions} from "../../../test/input.test-utils.ts" import {TypescriptFormatterBiome} from "../typescript-formatter.biome.ts" import { diff --git a/packages/openapi-code-generator/src/typescript/common/schema-builders/joi-schema-builder.unit.spec.ts b/packages/openapi-code-generator/src/typescript/common/schema-builders/joi-schema-builder.unit.spec.ts index a1861bea4..da1280e95 100644 --- a/packages/openapi-code-generator/src/typescript/common/schema-builders/joi-schema-builder.unit.spec.ts +++ b/packages/openapi-code-generator/src/typescript/common/schema-builders/joi-schema-builder.unit.spec.ts @@ -1,5 +1,5 @@ import * as vm from "node:vm" -import {beforeAll, beforeEach, describe, expect, it} from "@jest/globals" +import {beforeAll, beforeEach, describe, expect, it} from "vitest" import type {CompilerOptions} from "../../../core/loaders/tsconfig.loader.ts" import type {IRModel} from "../../../core/openapi-types-normalized.ts" import {FakeSchemaProvider} from "../../../test/fake-schema-provider.ts" @@ -645,11 +645,8 @@ describe("typescript/common/schema-builders/joi-schema-builder - unit tests", () `"const x = joi.array().items(joi.string()).required()"`, ) - await expect(execute([])).resolves.toStrictEqual([]) - await expect(execute(["foo", "bar"])).resolves.toStrictEqual([ - "foo", - "bar", - ]) + await expect(execute([])).resolves.toEqual([]) + await expect(execute(["foo", "bar"])).resolves.toEqual(["foo", "bar"]) await expect(execute([1, 2])).rejects.toThrow('"[0]" must be a string') }) @@ -665,10 +662,7 @@ describe("typescript/common/schema-builders/joi-schema-builder - unit tests", () `"const x = joi.array().items(joi.string()).unique().required()"`, ) - await expect(execute(["foo", "bar"])).resolves.toStrictEqual([ - "foo", - "bar", - ]) + await expect(execute(["foo", "bar"])).resolves.toEqual(["foo", "bar"]) await expect(execute(["foo", "foo"])).rejects.toThrow( '"[1]" contains a duplicate value', ) @@ -686,10 +680,7 @@ describe("typescript/common/schema-builders/joi-schema-builder - unit tests", () `"const x = joi.array().items(joi.string()).min(2).required()"`, ) - await expect(execute(["foo", "bar"])).resolves.toStrictEqual([ - "foo", - "bar", - ]) + await expect(execute(["foo", "bar"])).resolves.toEqual(["foo", "bar"]) await expect(execute(["foo"])).rejects.toThrow( '"value" must contain at least 2 items', ) @@ -707,10 +698,7 @@ describe("typescript/common/schema-builders/joi-schema-builder - unit tests", () `"const x = joi.array().items(joi.string()).max(2).required()"`, ) - await expect(execute(["foo", "bar"])).resolves.toStrictEqual([ - "foo", - "bar", - ]) + await expect(execute(["foo", "bar"])).resolves.toEqual(["foo", "bar"]) await expect(execute(["foo", "bar", "foobar"])).rejects.toThrow( '"value" must contain less than or equal to 2 items', ) @@ -730,7 +718,7 @@ describe("typescript/common/schema-builders/joi-schema-builder - unit tests", () `"const x = joi.array().items(joi.number()).unique().min(1).max(3).required()"`, ) - await expect(execute([1, 2])).resolves.toStrictEqual([1, 2]) + await expect(execute([1, 2])).resolves.toEqual([1, 2]) await expect(execute([])).rejects.toThrow( '"value" must contain at least 1 items', ) @@ -754,7 +742,7 @@ describe("typescript/common/schema-builders/joi-schema-builder - unit tests", () `"const x = joi.array().items(joi.string()).default(["example"])"`, ) - await expect(execute(undefined)).resolves.toStrictEqual(["example"]) + await expect(execute(undefined)).resolves.toEqual(["example"]) }) it("supports empty array default values", async () => { @@ -769,7 +757,7 @@ describe("typescript/common/schema-builders/joi-schema-builder - unit tests", () `"const x = joi.array().items(joi.string()).default([])"`, ) - await expect(execute(undefined)).resolves.toStrictEqual([]) + await expect(execute(undefined)).resolves.toEqual([]) }) }) @@ -925,9 +913,6 @@ describe("typescript/common/schema-builders/joi-schema-builder - unit tests", () .default({ name: "example", age: 22 })" `) - // HACK: If we do a toStrictEqual, we get 'Received: serializes to the same string' - // presumably due to the use of global that differs inside the VM to outside. - // Passing through `Object` doesn't fix it, so just use toEqual ¯\_(ツ)_/¯ await expect(execute(undefined)).resolves.toEqual({ name: "example", age: 22, diff --git a/packages/openapi-code-generator/src/typescript/common/schema-builders/zod-v3-schema-builder.integration.spec.ts b/packages/openapi-code-generator/src/typescript/common/schema-builders/zod-v3-schema-builder.integration.spec.ts index b92618b1a..a0d8aa34b 100644 --- a/packages/openapi-code-generator/src/typescript/common/schema-builders/zod-v3-schema-builder.integration.spec.ts +++ b/packages/openapi-code-generator/src/typescript/common/schema-builders/zod-v3-schema-builder.integration.spec.ts @@ -1,5 +1,5 @@ import * as vm from "node:vm" -import {beforeAll, describe, expect, it} from "@jest/globals" +import {beforeAll, describe, expect, it} from "vitest" import {testVersions} from "../../../test/input.test-utils.ts" import {TypescriptFormatterBiome} from "../typescript-formatter.biome.ts" import { diff --git a/packages/openapi-code-generator/src/typescript/common/schema-builders/zod-v3-schema-builder.unit.spec.ts b/packages/openapi-code-generator/src/typescript/common/schema-builders/zod-v3-schema-builder.unit.spec.ts index 03dd38b84..e198c5cc8 100644 --- a/packages/openapi-code-generator/src/typescript/common/schema-builders/zod-v3-schema-builder.unit.spec.ts +++ b/packages/openapi-code-generator/src/typescript/common/schema-builders/zod-v3-schema-builder.unit.spec.ts @@ -1,5 +1,5 @@ import * as vm from "node:vm" -import {beforeAll, beforeEach, describe, expect, it} from "@jest/globals" +import {beforeAll, beforeEach, describe, expect, it} from "vitest" import type {CompilerOptions} from "../../../core/loaders/tsconfig.loader.ts" import type {IRModel} from "../../../core/openapi-types-normalized.ts" import {isDefined} from "../../../core/utils.ts" diff --git a/packages/openapi-code-generator/src/typescript/common/schema-builders/zod-v4-schema-builder.integration.spec.ts b/packages/openapi-code-generator/src/typescript/common/schema-builders/zod-v4-schema-builder.integration.spec.ts index f422c6a34..12e448c11 100644 --- a/packages/openapi-code-generator/src/typescript/common/schema-builders/zod-v4-schema-builder.integration.spec.ts +++ b/packages/openapi-code-generator/src/typescript/common/schema-builders/zod-v4-schema-builder.integration.spec.ts @@ -1,5 +1,5 @@ import * as vm from "node:vm" -import {beforeAll, describe, expect, it} from "@jest/globals" +import {beforeAll, describe, expect, it} from "vitest" import {testVersions} from "../../../test/input.test-utils.ts" import {TypescriptFormatterBiome} from "../typescript-formatter.biome.ts" import { diff --git a/packages/openapi-code-generator/src/typescript/common/schema-builders/zod-v4-schema-builder.unit.spec.ts b/packages/openapi-code-generator/src/typescript/common/schema-builders/zod-v4-schema-builder.unit.spec.ts index 9d48de5fb..7c06054c0 100644 --- a/packages/openapi-code-generator/src/typescript/common/schema-builders/zod-v4-schema-builder.unit.spec.ts +++ b/packages/openapi-code-generator/src/typescript/common/schema-builders/zod-v4-schema-builder.unit.spec.ts @@ -1,5 +1,5 @@ import * as vm from "node:vm" -import {beforeAll, beforeEach, describe, expect, it} from "@jest/globals" +import {beforeAll, beforeEach, describe, expect, it} from "vitest" import type {CompilerOptions} from "../../../core/loaders/tsconfig.loader.ts" import type {IRModel} from "../../../core/openapi-types-normalized.ts" import {isDefined} from "../../../core/utils.ts" diff --git a/packages/openapi-code-generator/src/typescript/common/type-builder/type-builder.integration.spec.ts b/packages/openapi-code-generator/src/typescript/common/type-builder/type-builder.integration.spec.ts index 8fc3bed49..2a300feb3 100644 --- a/packages/openapi-code-generator/src/typescript/common/type-builder/type-builder.integration.spec.ts +++ b/packages/openapi-code-generator/src/typescript/common/type-builder/type-builder.integration.spec.ts @@ -1,4 +1,4 @@ -import {beforeAll, describe, expect, it} from "@jest/globals" +import {beforeAll, describe, expect, it} from "vitest" import type {CompilerOptions} from "../../../core/loaders/tsconfig.loader.ts" import {testVersions, unitTestInput} from "../../../test/input.test-utils.ts" import {TypescriptFormatterBiome} from "../typescript-formatter.biome.ts" diff --git a/packages/openapi-code-generator/src/typescript/common/type-builder/type-builder.unit.spec.ts b/packages/openapi-code-generator/src/typescript/common/type-builder/type-builder.unit.spec.ts index da9df29b2..9111cab15 100644 --- a/packages/openapi-code-generator/src/typescript/common/type-builder/type-builder.unit.spec.ts +++ b/packages/openapi-code-generator/src/typescript/common/type-builder/type-builder.unit.spec.ts @@ -1,4 +1,4 @@ -import {beforeAll, beforeEach, describe, expect, it} from "@jest/globals" +import {beforeAll, beforeEach, describe, expect, it} from "vitest" import type {CompilerOptions} from "../../../core/loaders/tsconfig.loader.ts" import type {IRModel} from "../../../core/openapi-types-normalized.ts" import {FakeSchemaProvider} from "../../../test/fake-schema-provider.ts" diff --git a/packages/openapi-code-generator/src/typescript/common/type-utils.spec.ts b/packages/openapi-code-generator/src/typescript/common/type-utils.spec.ts index 76c70d42f..96917a1f2 100644 --- a/packages/openapi-code-generator/src/typescript/common/type-utils.spec.ts +++ b/packages/openapi-code-generator/src/typescript/common/type-utils.spec.ts @@ -1,4 +1,4 @@ -import {describe, expect, it} from "@jest/globals" +import {describe, expect, it} from "vitest" import { constStatement, intersect, diff --git a/packages/openapi-code-generator/src/typescript/server/typescript-koa/typescript-koa-router-builder.spec.ts b/packages/openapi-code-generator/src/typescript/server/typescript-koa/typescript-koa-router-builder.spec.ts index 16af0c0e7..fcd96f6c5 100644 --- a/packages/openapi-code-generator/src/typescript/server/typescript-koa/typescript-koa-router-builder.spec.ts +++ b/packages/openapi-code-generator/src/typescript/server/typescript-koa/typescript-koa-router-builder.spec.ts @@ -1,4 +1,4 @@ -import {describe, expect, it} from "@jest/globals" +import {describe, expect, it} from "vitest" import type {ServerImplementationMethod} from "../../../templates.types.ts" import {unitTestInput} from "../../../test/input.test-utils.ts" import {ImportBuilder} from "../../common/import-builder.ts" diff --git a/packages/openapi-code-generator/vitest.config.mts b/packages/openapi-code-generator/vitest.config.mts new file mode 100644 index 000000000..2420afb2d --- /dev/null +++ b/packages/openapi-code-generator/vitest.config.mts @@ -0,0 +1,10 @@ +import {defineConfig} from "vitest/config" +import {baseTestConfig} from "../../vitest.base" +import pkg from "./package.json" with {type: "json"} + +export default defineConfig({ + test: { + ...baseTestConfig.test, + name: pkg.name, + }, +}) diff --git a/packages/typescript-axios-runtime/jest.config.cjs b/packages/typescript-axios-runtime/jest.config.cjs deleted file mode 100644 index e4604b03a..000000000 --- a/packages/typescript-axios-runtime/jest.config.cjs +++ /dev/null @@ -1,12 +0,0 @@ -const base = require("../../jest.base") -const {name: displayName} = require("./package.json") - -/** - * @type { import('@jest/types').Config.ProjectConfig } - */ -const config = { - ...base, - displayName, -} - -module.exports = config diff --git a/packages/typescript-axios-runtime/package.json b/packages/typescript-axios-runtime/package.json index b50e89757..4763902d7 100644 --- a/packages/typescript-axios-runtime/package.json +++ b/packages/typescript-axios-runtime/package.json @@ -33,7 +33,7 @@ "clean": "rm -rf ./dist && rm -f tsconfig.tsbuildinfo", "build": "tsc -p ./tsconfig.json", "bundle": "tsdown", - "test": "jest" + "test": "vitest run" }, "dependencies": { "tslib": "^2.8.1" @@ -42,12 +42,11 @@ "axios": "^1.15.2" }, "devDependencies": { - "@jest/globals": "^30.4.1", "@nahkies/typescript-common-runtime": "workspace:^", "axios": "^1.15.2", - "jest": "^30.4.2", "tsdown": "^0.22.0", - "typescript": "^6.0.3" + "typescript": "^6.0.3", + "vitest": "^4.0.11" }, "files": [ "src", diff --git a/packages/typescript-axios-runtime/src/main.spec.ts b/packages/typescript-axios-runtime/src/main.spec.ts index 7db000d6f..c06956dce 100644 --- a/packages/typescript-axios-runtime/src/main.spec.ts +++ b/packages/typescript-axios-runtime/src/main.spec.ts @@ -1,9 +1,9 @@ // biome-ignore-all lint/complexity/useLiteralKeys: tests // biome-ignore-all lint/suspicious/noExplicitAny: tests -import {describe, expect, it} from "@jest/globals" import type {Encoding} from "@nahkies/typescript-common-runtime/request-bodies/url-search-params" import type {AxiosRequestConfig, RawAxiosRequestHeaders} from "axios" +import {describe, expect, it} from "vitest" import { AbstractAxiosClient, type AbstractAxiosConfig, diff --git a/packages/typescript-axios-runtime/vitest.config.mts b/packages/typescript-axios-runtime/vitest.config.mts new file mode 100644 index 000000000..2420afb2d --- /dev/null +++ b/packages/typescript-axios-runtime/vitest.config.mts @@ -0,0 +1,10 @@ +import {defineConfig} from "vitest/config" +import {baseTestConfig} from "../../vitest.base" +import pkg from "./package.json" with {type: "json"} + +export default defineConfig({ + test: { + ...baseTestConfig.test, + name: pkg.name, + }, +}) diff --git a/packages/typescript-common-runtime/jest.config.cjs b/packages/typescript-common-runtime/jest.config.cjs deleted file mode 100644 index e4604b03a..000000000 --- a/packages/typescript-common-runtime/jest.config.cjs +++ /dev/null @@ -1,12 +0,0 @@ -const base = require("../../jest.base") -const {name: displayName} = require("./package.json") - -/** - * @type { import('@jest/types').Config.ProjectConfig } - */ -const config = { - ...base, - displayName, -} - -module.exports = config diff --git a/packages/typescript-common-runtime/package.json b/packages/typescript-common-runtime/package.json index c80189f58..747b39f3d 100644 --- a/packages/typescript-common-runtime/package.json +++ b/packages/typescript-common-runtime/package.json @@ -84,16 +84,15 @@ "clean": "rm -rf ./dist && rm -f tsconfig.tsbuildinfo", "build": "tsc -p ./tsconfig.json", "bundle": "tsdown", - "test": "jest" + "test": "vitest run" }, "dependencies": { "raw-body": "^3.0.2", "tslib": "^2.8.1" }, "devDependencies": { - "@jest/globals": "^30.4.1", - "jest": "^30.4.2", "tsdown": "^0.22.0", + "vitest": "^4.0.11", "typescript": "^6.0.3" }, "files": [ diff --git a/packages/typescript-common-runtime/src/query-parser.spec.ts b/packages/typescript-common-runtime/src/query-parser.spec.ts index 5530983ee..6914abe8c 100644 --- a/packages/typescript-common-runtime/src/query-parser.spec.ts +++ b/packages/typescript-common-runtime/src/query-parser.spec.ts @@ -1,4 +1,4 @@ -import {describe, expect, it} from "@jest/globals" +import {describe, expect, it} from "vitest" import { extractArrayNotationKeys, parseCsvPairsToObject, diff --git a/packages/typescript-common-runtime/src/request-bodies/url-search-params.spec.ts b/packages/typescript-common-runtime/src/request-bodies/url-search-params.spec.ts index d77fe4a88..9135d445d 100644 --- a/packages/typescript-common-runtime/src/request-bodies/url-search-params.spec.ts +++ b/packages/typescript-common-runtime/src/request-bodies/url-search-params.spec.ts @@ -1,4 +1,4 @@ -import {describe, expect, it} from "@jest/globals" +import {describe, expect, it} from "vitest" import {requestBodyToUrlSearchParams} from "./url-search-params.ts" describe("typescript-fetch-runtime/request-bodies/requestBodyToUrlSearchParams", () => { diff --git a/packages/typescript-common-runtime/vitest.config.mts b/packages/typescript-common-runtime/vitest.config.mts new file mode 100644 index 000000000..2420afb2d --- /dev/null +++ b/packages/typescript-common-runtime/vitest.config.mts @@ -0,0 +1,10 @@ +import {defineConfig} from "vitest/config" +import {baseTestConfig} from "../../vitest.base" +import pkg from "./package.json" with {type: "json"} + +export default defineConfig({ + test: { + ...baseTestConfig.test, + name: pkg.name, + }, +}) diff --git a/packages/typescript-express-runtime/jest.config.cjs b/packages/typescript-express-runtime/jest.config.cjs deleted file mode 100644 index e4604b03a..000000000 --- a/packages/typescript-express-runtime/jest.config.cjs +++ /dev/null @@ -1,12 +0,0 @@ -const base = require("../../jest.base") -const {name: displayName} = require("./package.json") - -/** - * @type { import('@jest/types').Config.ProjectConfig } - */ -const config = { - ...base, - displayName, -} - -module.exports = config diff --git a/packages/typescript-express-runtime/package.json b/packages/typescript-express-runtime/package.json index fee77809e..351af05b1 100644 --- a/packages/typescript-express-runtime/package.json +++ b/packages/typescript-express-runtime/package.json @@ -74,7 +74,7 @@ "dev": "nodemon --watch ./src -e ts --delay 2 --exec 'pnpm build'", "build": "tsc -p ./tsconfig.json", "bundle": "tsdown", - "test": "jest" + "test": "vitest run" }, "dependencies": { "raw-body": "^3.0.2", @@ -103,10 +103,10 @@ "@types/cors": "^2.8.19", "@types/express": "^5.0.6", "body-parser": "^2.2.2", - "jest": "^30.4.2", "joi": "^18.2.1", "tsdown": "^0.22.0", "typescript": "^6.0.3", + "vitest": "^4.0.11", "zod": "^4.3.6" }, "files": [ diff --git a/packages/typescript-express-runtime/vitest.config.mts b/packages/typescript-express-runtime/vitest.config.mts new file mode 100644 index 000000000..2420afb2d --- /dev/null +++ b/packages/typescript-express-runtime/vitest.config.mts @@ -0,0 +1,10 @@ +import {defineConfig} from "vitest/config" +import {baseTestConfig} from "../../vitest.base" +import pkg from "./package.json" with {type: "json"} + +export default defineConfig({ + test: { + ...baseTestConfig.test, + name: pkg.name, + }, +}) diff --git a/packages/typescript-fetch-runtime/jest.config.cjs b/packages/typescript-fetch-runtime/jest.config.cjs deleted file mode 100644 index e4604b03a..000000000 --- a/packages/typescript-fetch-runtime/jest.config.cjs +++ /dev/null @@ -1,12 +0,0 @@ -const base = require("../../jest.base") -const {name: displayName} = require("./package.json") - -/** - * @type { import('@jest/types').Config.ProjectConfig } - */ -const config = { - ...base, - displayName, -} - -module.exports = config diff --git a/packages/typescript-fetch-runtime/package.json b/packages/typescript-fetch-runtime/package.json index 00c8b6669..bc1225b7d 100644 --- a/packages/typescript-fetch-runtime/package.json +++ b/packages/typescript-fetch-runtime/package.json @@ -63,7 +63,7 @@ "clean": "rm -rf ./dist && rm -f tsconfig.tsbuildinfo", "build": "tsc -p ./tsconfig.json", "bundle": "tsdown", - "test": "jest" + "test": "vitest run" }, "dependencies": { "tslib": "^2.8.1" @@ -81,12 +81,11 @@ } }, "devDependencies": { - "@jest/globals": "^30.4.1", "@nahkies/typescript-common-runtime": "workspace:^", - "jest": "^30.4.2", "joi": "^18.2.1", "tsdown": "^0.22.0", "typescript": "^6.0.3", + "vitest": "^4.0.11", "zod": "^4.3.6" }, "files": [ diff --git a/packages/typescript-fetch-runtime/src/main.spec.ts b/packages/typescript-fetch-runtime/src/main.spec.ts index 769078f7d..29e780510 100644 --- a/packages/typescript-fetch-runtime/src/main.spec.ts +++ b/packages/typescript-fetch-runtime/src/main.spec.ts @@ -1,7 +1,7 @@ // biome-ignore-all lint/suspicious/noExplicitAny: tests -import {describe, expect, it} from "@jest/globals" import type {Encoding} from "@nahkies/typescript-common-runtime/request-bodies/url-search-params" +import {describe, expect, it} from "vitest" import { AbstractFetchClient, type AbstractFetchClientConfig, diff --git a/packages/typescript-fetch-runtime/vitest.config.mts b/packages/typescript-fetch-runtime/vitest.config.mts new file mode 100644 index 000000000..2420afb2d --- /dev/null +++ b/packages/typescript-fetch-runtime/vitest.config.mts @@ -0,0 +1,10 @@ +import {defineConfig} from "vitest/config" +import {baseTestConfig} from "../../vitest.base" +import pkg from "./package.json" with {type: "json"} + +export default defineConfig({ + test: { + ...baseTestConfig.test, + name: pkg.name, + }, +}) diff --git a/packages/typescript-koa-runtime/jest.config.cjs b/packages/typescript-koa-runtime/jest.config.cjs deleted file mode 100644 index e4604b03a..000000000 --- a/packages/typescript-koa-runtime/jest.config.cjs +++ /dev/null @@ -1,12 +0,0 @@ -const base = require("../../jest.base") -const {name: displayName} = require("./package.json") - -/** - * @type { import('@jest/types').Config.ProjectConfig } - */ -const config = { - ...base, - displayName, -} - -module.exports = config diff --git a/packages/typescript-koa-runtime/package.json b/packages/typescript-koa-runtime/package.json index d60024fc0..02e694159 100644 --- a/packages/typescript-koa-runtime/package.json +++ b/packages/typescript-koa-runtime/package.json @@ -73,7 +73,7 @@ "clean": "rm -rf ./dist && rm -f tsconfig.tsbuildinfo", "build": "tsc -p tsconfig.json", "bundle": "tsdown", - "test": "jest" + "test": "vitest run" }, "dependencies": { "raw-body": "^3.0.2", @@ -96,18 +96,17 @@ } }, "devDependencies": { - "@jest/globals": "^30.4.1", "@koa/cors": "^5.0.0", "@koa/router": "^15.5.0", "@nahkies/typescript-common-runtime": "workspace:^", "@types/koa": "^3.0.3", "@types/koa__cors": "^5.0.1", - "jest": "^30.4.2", "joi": "^18.2.1", "koa": "^3.2.1", "koa-body": "^8.0.0", "tsdown": "^0.22.0", "typescript": "^6.0.3", + "vitest": "^4.0.11", "zod": "^4.3.6" }, "files": [ diff --git a/packages/typescript-koa-runtime/vitest.config.mts b/packages/typescript-koa-runtime/vitest.config.mts new file mode 100644 index 000000000..2420afb2d --- /dev/null +++ b/packages/typescript-koa-runtime/vitest.config.mts @@ -0,0 +1,10 @@ +import {defineConfig} from "vitest/config" +import {baseTestConfig} from "../../vitest.base" +import pkg from "./package.json" with {type: "json"} + +export default defineConfig({ + test: { + ...baseTestConfig.test, + name: pkg.name, + }, +}) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1131a2fad..a92f59671 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -37,15 +37,6 @@ importers: '@commander-js/extra-typings': specifier: ^14.0.0 version: 14.0.0(commander@14.0.3) - '@jest/reporters': - specifier: ^30.4.1 - version: 30.4.1 - '@swc/core': - specifier: ^1.15.40 - version: 1.15.40(@swc/helpers@0.5.21) - '@swc/jest': - specifier: ^0.2.39 - version: 0.2.39(@swc/core@1.15.40(@swc/helpers@0.5.21)) '@tsconfig/node24': specifier: ^24.0.4 version: 24.0.4 @@ -55,6 +46,9 @@ importers: '@types/node': specifier: ^22.19.17 version: 22.19.19 + '@vitest/coverage-v8': + specifier: 4.1.7 + version: 4.1.7(vitest@4.1.7) ajv: specifier: ^8.20.0 version: 8.20.0 @@ -70,15 +64,12 @@ importers: husky: specifier: ^9.1.7 version: 9.1.7 - jest: - specifier: ^30.4.2 - version: 30.4.2(@types/node@22.19.19) json5: specifier: ^2.2.3 version: 2.2.3 lerna: specifier: ^9.0.7 - version: 9.0.7(@swc/core@1.15.40(@swc/helpers@0.5.21))(@types/node@22.19.19) + version: 9.0.7(@types/node@22.19.19) lint-staged: specifier: ^17.0.5 version: 17.0.5 @@ -97,6 +88,9 @@ importers: typescript: specifier: ^6.0.3 version: 6.0.3 + vitest: + specifier: ^4.0.11 + version: 4.1.7(@types/node@22.19.19)(@vitest/coverage-v8@4.1.7)(vite@7.3.2(@types/node@22.19.19)(sass@1.97.3)(tsx@4.22.3)(yaml@2.9.0)) e2e: dependencies: @@ -128,9 +122,6 @@ importers: specifier: ^4.3.6 version: 4.4.3 devDependencies: - '@jest/globals': - specifier: ^30.4.1 - version: 30.4.1 '@nahkies/openapi-code-generator': specifier: workspace:* version: link:../packages/openapi-code-generator @@ -143,12 +134,12 @@ importers: expect: specifier: ^30.4.1 version: 30.4.1 - jest: - specifier: ^30.4.2 - version: 30.4.2(@types/node@22.19.19) typescript: specifier: ^6.0.3 version: 6.0.3 + vitest: + specifier: ^4.0.11 + version: 4.1.7(@types/node@22.19.19)(@vitest/coverage-v8@4.1.7)(vite@7.3.2(@types/node@22.19.19)(sass@1.97.3)(tsx@4.22.3)(yaml@2.9.0)) integration-tests/typescript-angular: dependencies: @@ -179,7 +170,7 @@ importers: devDependencies: '@angular/build': specifier: ^21.2.12 - version: 21.2.12(@angular/compiler-cli@21.2.14(@angular/compiler@21.2.14)(typescript@6.0.3))(@angular/compiler@21.2.14)(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2))(@angular/platform-browser@21.2.14(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)))(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@22.19.19)(chokidar@5.0.0)(postcss@8.5.15)(tslib@2.8.1)(tsx@4.22.3)(typescript@6.0.3)(yaml@2.9.0) + version: 21.2.12(@angular/compiler-cli@21.2.14(@angular/compiler@21.2.14)(typescript@6.0.3))(@angular/compiler@21.2.14)(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2))(@angular/platform-browser@21.2.14(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)))(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@22.19.19)(chokidar@5.0.0)(postcss@8.5.15)(tslib@2.8.1)(tsx@4.22.3)(typescript@6.0.3)(vitest@4.1.7)(yaml@2.9.0) '@angular/cli': specifier: ^21.2.12 version: 21.2.12(@types/node@22.19.19)(chokidar@5.0.0) @@ -306,13 +297,13 @@ importers: version: 0.4.6(monaco-editor@0.55.1) next: specifier: ^16.2.6 - version: 16.2.6(@babel/core@7.29.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(sass@1.97.3) + version: 16.2.6(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(sass@1.97.3) nextra: specifier: ^4.6.1 - version: 4.6.1(next@16.2.6(@babel/core@7.29.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(sass@1.97.3))(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@6.0.3) + version: 4.6.1(next@16.2.6(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(sass@1.97.3))(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@6.0.3) nextra-theme-docs: specifier: ^4.6.1 - version: 4.6.1(patch_hash=f71f08a75ddca41c267fa8a927780d3e5b1a94a34d5d86f00e4c36e01eda5021)(@types/react@19.2.15)(next@16.2.6(@babel/core@7.29.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(sass@1.97.3))(nextra@4.6.1(next@16.2.6(@babel/core@7.29.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(sass@1.97.3))(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@6.0.3))(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(use-sync-external-store@1.6.0(react@19.2.6)) + version: 4.6.1(patch_hash=f71f08a75ddca41c267fa8a927780d3e5b1a94a34d5d86f00e4c36e01eda5021)(@types/react@19.2.15)(next@16.2.6(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(sass@1.97.3))(nextra@4.6.1(next@16.2.6(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(sass@1.97.3))(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@6.0.3))(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(use-sync-external-store@1.6.0(react@19.2.6)) react: specifier: 19.2.6 version: 19.2.6 @@ -411,9 +402,6 @@ importers: '@azure-tools/typespec-client-generator-core': specifier: 0.68.0 version: 0.68.0(f9c4f715152c66485da769226d20a436) - '@jest/globals': - specifier: ^30.4.1 - version: 30.4.1 '@nahkies/typescript-common-runtime': specifier: workspace:^ version: link:../typescript-common-runtime @@ -462,6 +450,9 @@ importers: tsx: specifier: ^4.22.3 version: 4.22.3 + vitest: + specifier: ^4.0.12 + version: 4.1.7(@types/node@22.19.19)(@vitest/coverage-v8@4.1.7)(vite@7.3.2(@types/node@22.19.19)(sass@1.97.3)(tsx@4.22.3)(yaml@2.9.0)) packages/typescript-axios-runtime: dependencies: @@ -469,24 +460,21 @@ importers: specifier: ^2.8.1 version: 2.8.1 devDependencies: - '@jest/globals': - specifier: ^30.4.1 - version: 30.4.1 '@nahkies/typescript-common-runtime': specifier: workspace:^ version: link:../typescript-common-runtime axios: specifier: ^1.15.2 version: 1.16.1(supports-color@7.2.0) - jest: - specifier: ^30.4.2 - version: 30.4.2(@types/node@22.19.19) tsdown: specifier: ^0.22.0 version: 0.22.0(@arethetypeswrong/core@0.18.2)(@typescript/native-preview@7.0.0-dev.20260523.1)(publint@0.3.21)(tsx@4.22.3)(typescript@6.0.3) typescript: specifier: ^6.0.3 version: 6.0.3 + vitest: + specifier: ^4.0.11 + version: 4.1.7(@types/node@22.19.19)(@vitest/coverage-v8@4.1.7)(vite@7.3.2(@types/node@22.19.19)(sass@1.97.3)(tsx@4.22.3)(yaml@2.9.0)) packages/typescript-common-runtime: dependencies: @@ -497,18 +485,15 @@ importers: specifier: ^2.8.1 version: 2.8.1 devDependencies: - '@jest/globals': - specifier: ^30.4.1 - version: 30.4.1 - jest: - specifier: ^30.4.2 - version: 30.4.2(@types/node@22.19.19) tsdown: specifier: ^0.22.0 version: 0.22.0(@arethetypeswrong/core@0.18.2)(@typescript/native-preview@7.0.0-dev.20260523.1)(publint@0.3.21)(tsx@4.22.3)(typescript@6.0.3) typescript: specifier: ^6.0.3 version: 6.0.3 + vitest: + specifier: ^4.0.11 + version: 4.1.7(@types/node@22.19.19)(@vitest/coverage-v8@4.1.7)(vite@7.3.2(@types/node@22.19.19)(sass@1.97.3)(tsx@4.22.3)(yaml@2.9.0)) packages/typescript-express-runtime: dependencies: @@ -540,9 +525,6 @@ importers: body-parser: specifier: ^2.2.2 version: 2.2.2 - jest: - specifier: ^30.4.2 - version: 30.4.2(@types/node@22.19.19) joi: specifier: ^18.2.1 version: 18.2.1 @@ -552,6 +534,9 @@ importers: typescript: specifier: ^6.0.3 version: 6.0.3 + vitest: + specifier: ^4.0.11 + version: 4.1.7(@types/node@22.19.19)(@vitest/coverage-v8@4.1.7)(vite@7.3.2(@types/node@22.19.19)(sass@1.97.3)(tsx@4.22.3)(yaml@2.9.0)) zod: specifier: ^4.3.6 version: 4.4.3 @@ -562,15 +547,9 @@ importers: specifier: ^2.8.1 version: 2.8.1 devDependencies: - '@jest/globals': - specifier: ^30.4.1 - version: 30.4.1 '@nahkies/typescript-common-runtime': specifier: workspace:^ version: link:../typescript-common-runtime - jest: - specifier: ^30.4.2 - version: 30.4.2(@types/node@22.19.19) joi: specifier: ^18.2.1 version: 18.2.1 @@ -580,6 +559,9 @@ importers: typescript: specifier: ^6.0.3 version: 6.0.3 + vitest: + specifier: ^4.0.11 + version: 4.1.7(@types/node@22.19.19)(@vitest/coverage-v8@4.1.7)(vite@7.3.2(@types/node@22.19.19)(sass@1.97.3)(tsx@4.22.3)(yaml@2.9.0)) zod: specifier: ^4.3.6 version: 4.4.3 @@ -593,9 +575,6 @@ importers: specifier: ^2.8.1 version: 2.8.1 devDependencies: - '@jest/globals': - specifier: ^30.4.1 - version: 30.4.1 '@koa/cors': specifier: ^5.0.0 version: 5.0.0 @@ -611,9 +590,6 @@ importers: '@types/koa__cors': specifier: ^5.0.1 version: 5.0.1 - jest: - specifier: ^30.4.2 - version: 30.4.2(@types/node@22.19.19) joi: specifier: ^18.2.1 version: 18.2.1 @@ -629,6 +605,9 @@ importers: typescript: specifier: ^6.0.3 version: 6.0.3 + vitest: + specifier: ^4.0.11 + version: 4.1.7(@types/node@22.19.19)(@vitest/coverage-v8@4.1.7)(vite@7.3.2(@types/node@22.19.19)(sass@1.97.3)(tsx@4.22.3)(yaml@2.9.0)) zod: specifier: ^4.3.6 version: 4.4.3 @@ -931,10 +910,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-plugin-utils@7.28.6': - resolution: {integrity: sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==} - engines: {node: '>=6.9.0'} - '@babel/helper-split-export-declaration@7.24.7': resolution: {integrity: sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==} engines: {node: '>=6.9.0'} @@ -978,97 +953,6 @@ packages: engines: {node: ^22.18.0 || >=24.11.0} hasBin: true - '@babel/plugin-syntax-async-generators@7.8.4': - resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-bigint@7.8.3': - resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-class-properties@7.12.13': - resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-class-static-block@7.14.5': - resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-import-attributes@7.28.6': - resolution: {integrity: sha512-jiLC0ma9XkQT3TKJ9uYvlakm66Pamywo+qwL+oL8HJOvc6TWdZXVfhqJr8CCzbSGUAbDOzlGHJC1U+vRfLQDvw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-import-meta@7.10.4': - resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-json-strings@7.8.3': - resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-jsx@7.28.6': - resolution: {integrity: sha512-wgEmr06G6sIpqr8YDwA2dSRTE3bJ+V0IfpzfSY3Lfgd7YWOaAdlykvJi13ZKBt8cZHfgH1IXN+CL656W3uUa4w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-logical-assignment-operators@7.10.4': - resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3': - resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-numeric-separator@7.10.4': - resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-object-rest-spread@7.8.3': - resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-optional-catch-binding@7.8.3': - resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-optional-chaining@7.8.3': - resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-private-property-in-object@7.14.5': - resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-top-level-await@7.14.5': - resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-typescript@7.28.6': - resolution: {integrity: sha512-+nDNmQye7nlnuuHDboPbGm00Vqg3oO8niRRL27/4LYHUsHYh0zJ1xWOz0uRwNFmM1Avzk8wZbc6rdiYhomzv/A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/template@7.28.6': resolution: {integrity: sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==} engines: {node: '>=6.9.0'} @@ -1085,8 +969,9 @@ packages: resolution: {integrity: sha512-JeSVu/m8x/zpp4CLjYHVNXuhEyOkhPXuxM8YOXjh6L4LlvQNKuUNOTo5KdBuKAcTDHw8DquToTaEkhsBqPXOaA==} engines: {node: ^22.18.0 || >=24.11.0} - '@bcoe/v8-coverage@0.2.3': - resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} + '@bcoe/v8-coverage@1.0.2': + resolution: {integrity: sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==} + engines: {node: '>=18'} '@biomejs/biome@2.4.15': resolution: {integrity: sha512-j5VH3a/h/HXTKBM50MDMxRCzkeLv9S2XJcW2WgnZT1+xyisi+0bISrXR82gCX+8S9lvK0skEvHJRN+3Ktr2hlw==} @@ -2018,10 +1903,6 @@ packages: '@internationalized/string@3.2.8': resolution: {integrity: sha512-NdbMQUSfXLYIQol5VyMtinm9pZDciiMfN7RtmSuSB78io1hqwJ0naYfxyW6vgxWBkzWymQa/3uLDlbfmshtCaA==} - '@isaacs/cliui@8.0.2': - resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} - engines: {node: '>=12'} - '@isaacs/cliui@9.0.0': resolution: {integrity: sha512-AokJm4tuBHillT+FpMtxQ60n8ObyXBatq7jD2/JA9dxbDDokKQm8KMht5ibGzLVU9IJDIKK4TPKgMHEYMn3lMg==} engines: {node: '>=18'} @@ -2033,31 +1914,10 @@ packages: '@isaacs/string-locale-compare@1.1.0': resolution: {integrity: sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ==} - '@istanbuljs/load-nyc-config@1.1.0': - resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} - engines: {node: '>=8'} - '@istanbuljs/schema@0.1.6': resolution: {integrity: sha512-+Sg6GCR/wy1oSmQDFq4LQDAhm3ETKnorxN+y5nbLULOR3P0c14f2Wurzj3/xqPXtasLFfHd5iRFQ7AJt4KH2cw==} engines: {node: '>=8'} - '@jest/console@30.4.1': - resolution: {integrity: sha512-v3bhyxUh9Hgmo5p6hAOXe14/R3ZxZDOsvHleh4B07z3m/x4/ngPUXEm9XwK4sF4u+f+P2ORb0Ge+MgpaqRMVDA==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - '@jest/core@30.4.2': - resolution: {integrity: sha512-TZJA6cPJUFxoWhxaLo8t0VX/MZX2wPWr0uIDvLSHIvN4gu9h02vSzqI2kBADG1ExqQlC+cY09xKMSreivvrChQ==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - - '@jest/create-cache-key-function@30.4.1': - resolution: {integrity: sha512-R+xGEtzA95NIsvpXJSROG4t01956dDOt17KpamguY4XOnGvdHNFFXE7Er0C1OAsRjOwiIxpKqOvGlznIGZIQlQ==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/diff-sequences@30.0.1': resolution: {integrity: sha512-n5H8QLDJ47QqbCNn5SuFjCRDrOLEZ0h8vAHCK5RL9Ls7Xa8AQLa/YxAc9UjFqoEDM48muwtBGjtMY5cr0PLDCw==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} @@ -2066,67 +1926,22 @@ packages: resolution: {integrity: sha512-zOpzlfUs45l6u7jm39qr87JCHUDsaeCtvL+kQe/Vn9jSnRB4/5IPXISm0h9I1vZW/o00Kn4UTJ2MOlhnUGwv3g==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/environment@30.4.1': - resolution: {integrity: sha512-AK9yNRqgKxiabqMoe4oW+3/TSSeV8vkdC7BGaxZdU0AFXfOpofTLqdru2GXKZghP3sdgwE9XXpnVwfZ8JnFV4w==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/expect-utils@30.4.1': resolution: {integrity: sha512-ZBn5CglH8fBsQsvs4VWNzD4aWfUYks+IdOOQU3MEK71ol/BcVm+P+rtb1KpiFBpSWSCE27uOahyyf1vfqOVbcQ==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/expect@30.4.1': - resolution: {integrity: sha512-ginrj6TMgh2GshLUGCjO94Ptx9HhdZA/I6A9iUfyeLKFtdAjnKzHDgzgP9HYQgbxM1lbXScQ2eUBz2lGeVDPWA==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - '@jest/fake-timers@30.4.1': - resolution: {integrity: sha512-iW5umdmfPeWzehrVhugFQZqCchSCud5S1l2YT0O9ZhjRR0ExclANDZkiSBwzqtnlOn0J1JXvO+HZ6rkuyOVOgQ==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/get-type@30.1.0': resolution: {integrity: sha512-eMbZE2hUnx1WV0pmURZY9XoXPkUYjpc55mb0CrhtdWLtzMQPFvu/rZkTLZFTsdaVQa+Tr4eWAteqcUzoawq/uA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/globals@30.4.1': - resolution: {integrity: sha512-ZbuY4cmXC8DkxYjfvT2DbcHWL2T6vmsMhXCDcmTB2T0y0gaezBI77ufq5ZAIdcRkYZ7NEQEDg1xFeKbxUJ5v5Q==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/pattern@30.4.0': resolution: {integrity: sha512-RAWn3+f9u8BsHijKJ71uHcFp6vmyEt6VvoWXkl6hKF3qVIuWNmudVjg12DlBPGup/frIl5UcUlH5HfEuvHpEXg==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/reporters@30.4.1': - resolution: {integrity: sha512-/SnkPCzEQpUaBH81kjdEdDdo2WZl5hxw+BmLDGWjRkm8o7XlhjwsU36cqwe5PGBE5WYpBvDzRSdXx9rbGuJtNA==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - '@jest/schemas@30.4.1': resolution: {integrity: sha512-i6b4qw5qnP8c5FEeBJg/uZQ4ddrkN6Ca8qISJh0pr7a5hfn3h3v5x60BEbOC7OYAGZNMs1LfFLwnW2CuK8F57Q==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/snapshot-utils@30.4.1': - resolution: {integrity: sha512-ObY4ljvQ95mt6iwKtVLetR/4yXiAgl3H4nJxhztr0MTjrN97TwDYrnCp/kF60Ec9HdhkWTHSu+Hg05aXfngpOA==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - '@jest/source-map@30.0.1': - resolution: {integrity: sha512-MIRWMUUR3sdbP36oyNyhbThLHyJ2eEDClPCiHVbrYAe5g3CHRArIVpBw7cdSB5fr+ofSfIb2Tnsw8iEHL0PYQg==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - '@jest/test-result@30.4.1': - resolution: {integrity: sha512-/ZG7pgEiOmmWkN9TplKbOu4id2N5lh7FHwRwlkgBVAzGdRH+OkkQ8wX/kIxg4zmd3ZQvAL1RwL2yWsvNYYECTw==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - '@jest/test-sequencer@30.4.1': - resolution: {integrity: sha512-PeYE+4td5rKjoRPxztObrXU+H8hsjZfxKMXOcmrr34JerSyB/ROOxbbicz8B7A5j9R9VayDnVPvBmedqCsFCdw==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - '@jest/transform@30.4.1': - resolution: {integrity: sha512-Wz0LyktlTvRefoymh+n64hQ84KNXsRGcwdoZ8CSa0Ea+fgYcHZlnk+hDP7v2MS7il2bQ5uTEIxf4/NNfhMN4KQ==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/types@30.4.1': resolution: {integrity: sha512-f1x/vJXIfjOlEmejYpbkbgw1gOqpPECwMvMEtBqe47j7H2Hg8h8w3o3ikhSXq3MI15kg+oQ0exWO0uCtTNJLoQ==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} @@ -2857,14 +2672,6 @@ packages: resolution: {integrity: sha512-tmmZ3lQxAe/k/+rNnXQRawJ4NjxO2hqiOLTHvWchtGZULp4RyFeh6aU4XdOYBFe2KE1oShQTv4AblOs2iOrNnQ==} engines: {node: '>= 10.0.0'} - '@pkgjs/parseargs@0.11.0': - resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} - engines: {node: '>=14'} - - '@pkgr/core@0.2.9': - resolution: {integrity: sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==} - engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - '@publint/pack@0.1.4': resolution: {integrity: sha512-HDVTWq3H0uTXiU0eeSQntcVUTPP3GamzeXI41+x7uU9J65JgWQh3qWZHblR1i0npXfFtF+mxBiU2nJH8znxWnQ==} engines: {node: '>=18'} @@ -3298,123 +3105,18 @@ packages: '@sinclair/typebox@0.34.49': resolution: {integrity: sha512-brySQQs7Jtn0joV8Xh9ZV/hZb9Ozb0pmazDIASBkYKCjXrXU3mpcFahmK/z4YDhGkQvP9mWJbVyahdtU5wQA+A==} - '@sinonjs/commons@3.0.1': - resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==} - - '@sinonjs/fake-timers@15.4.0': - resolution: {integrity: sha512-DsG+8/LscQIQg68J6Ef3dv10u6nVyetYn923s3/sus5eaGfTo1of5WMZSLf0UJc9KDuKPilPH0UDJCjvNbDNCA==} - '@standard-schema/spec@1.1.0': resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==} '@standard-schema/utils@0.3.0': resolution: {integrity: sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g==} - '@swc/core-darwin-arm64@1.15.40': - resolution: {integrity: sha512-PaYyclfmQ++77D8ityYvmmVzHv9aG8ROwt2GfG6/ccloy4Hgf80qtOnzb9VYvPsUT7Ty1uhuDRhv3XYpf62qhQ==} - engines: {node: '>=10'} - cpu: [arm64] - os: [darwin] - - '@swc/core-darwin-x64@1.15.40': - resolution: {integrity: sha512-HbbPzvfLBUXjIB1Ezks+//lNUjmLjfyd63XSwprJgrZaXYdm70kohXPJUWdqKZozolFxbPaO+xtBaiUp6BoueA==} - engines: {node: '>=10'} - cpu: [x64] - os: [darwin] - - '@swc/core-linux-arm-gnueabihf@1.15.40': - resolution: {integrity: sha512-SlRZsCjOCPR2LvFs0Ri/Xrx/5o5TCt8vl4gW6mX1hEZOG0a625RxzRHpHdAQNGykmAN/7IeaFAJG+QnNmxlHcA==} - engines: {node: '>=10'} - cpu: [arm] - os: [linux] - - '@swc/core-linux-arm64-gnu@1.15.40': - resolution: {integrity: sha512-Q8byxJt2fh8CR3EUX6snBpy47AoBVm+In/+Z3rjDHMjC38ZvR9/gtUUNCT0tfrn4EdVsO8/QPi59nxrxvqxvBQ==} - engines: {node: '>=10'} - cpu: [arm64] - os: [linux] - libc: [glibc] - - '@swc/core-linux-arm64-musl@1.15.40': - resolution: {integrity: sha512-4z0MgHU+7M0pZDqBN1El7mFXDI1SBwinfcUkAyA4v8QrhOIUOZltySt2aStQLZGrdXVXM4Y4ylfiTC04ED+MoQ==} - engines: {node: '>=10'} - cpu: [arm64] - os: [linux] - libc: [musl] - - '@swc/core-linux-ppc64-gnu@1.15.40': - resolution: {integrity: sha512-fLI4iUgeSZu0eRWUXwe6YzPFx9gHbFiPkl8Rp3mJfP8OpNR3nTQCGPvHdDh9xniW7mVvgMY4ni7A4VzqI1KrpA==} - engines: {node: '>=10'} - cpu: [ppc64] - os: [linux] - libc: [glibc] - - '@swc/core-linux-s390x-gnu@1.15.40': - resolution: {integrity: sha512-YqeKMAb7d4nQSGMJQ454IlaCENpzcDqhvBE9+CPfdnYpnUXxd+BSrB6Xk0YjW8UyoEhUj4p6quATCxbsp6J3jg==} - engines: {node: '>=10'} - cpu: [s390x] - os: [linux] - libc: [glibc] - - '@swc/core-linux-x64-gnu@1.15.40': - resolution: {integrity: sha512-7HOuS1iGcme/j/TuL1TfmmLGiMQrjv/GmjyZeydl00FKPtpGXEldwqfI56xgd1YzrzoB2svWjxbGGyQ0TEASxg==} - engines: {node: '>=10'} - cpu: [x64] - os: [linux] - libc: [glibc] - - '@swc/core-linux-x64-musl@1.15.40': - resolution: {integrity: sha512-h4kZYHc7dpc9P9u4brRJaS8Pl7tPVHAeiLSzw7T5RfIJgAoSdaCMKzI/2Uay9gFhaw8uyCDl0L5q37r0EpAfIA==} - engines: {node: '>=10'} - cpu: [x64] - os: [linux] - libc: [musl] - - '@swc/core-win32-arm64-msvc@1.15.40': - resolution: {integrity: sha512-+mQgKZXSj6mV38Zh05QaxSjUDmGP/R2JWlXZTDLSPkDzHU6p3GxN9eeSf5dfyDVU86946fmCvSzyl/ucImx8+A==} - engines: {node: '>=10'} - cpu: [arm64] - os: [win32] - - '@swc/core-win32-ia32-msvc@1.15.40': - resolution: {integrity: sha512-yvwdPLGd25mcj/mNatjNQ0lZujtQD6psH3v9PNmMb+fSzjbNG8KIDxjFWrcV+fsFVLOkyOmdJsFmX7NAFjVyPw==} - engines: {node: '>=10'} - cpu: [ia32] - os: [win32] - - '@swc/core-win32-x64-msvc@1.15.40': - resolution: {integrity: sha512-OXtKsLU1bVtInzzDEAY2sYiF/rl4tvAnLLLpuMp3HzAOQZ5A+i69AKDhA1YLQTaMAqO3vzyYNVAYVRMPtSYD4w==} - engines: {node: '>=10'} - cpu: [x64] - os: [win32] - - '@swc/core@1.15.40': - resolution: {integrity: sha512-2kwzJikRvgtNAG7MwVZY2vEzZjTxKIq5jXOihuSV/8U+Hej8Va22t65aKnJZs3P+NwojZvR8Mf8kyM7O+V8sQg==} - engines: {node: '>=10'} - peerDependencies: - '@swc/helpers': '>=0.5.17' - peerDependenciesMeta: - '@swc/helpers': - optional: true - - '@swc/counter@0.1.3': - resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} - '@swc/helpers@0.5.15': resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} '@swc/helpers@0.5.21': resolution: {integrity: sha512-jI/VAmtdjB/RnI8GTnokyX7Ug8c+g+ffD6QRLa6XQewtnGyukKkKSk3wLTM3b5cjt1jNh9x0jfVlagdN2gDKQg==} - '@swc/jest@0.2.39': - resolution: {integrity: sha512-eyokjOwYd0Q8RnMHri+8/FS1HIrIUKK/sRrFp8c1dThUOfNeCWbLmBP1P5VsKdvmkd25JaH+OKYwEYiAYg9YAA==} - engines: {npm: '>= 7.0.0'} - peerDependencies: - '@swc/core': '*' - - '@swc/types@0.1.26': - resolution: {integrity: sha512-lyMwd7WGgG79RS7EERZV3T8wMdmPq3xwyg+1nmAM64kIhx5yl+juO2PYIHb7vTiPgPCj8LYjsNV2T5wiQHUEaw==} - '@tanstack/react-virtual@3.13.25': resolution: {integrity: sha512-bmNoqMu6gcAW9JGrKVB0Q1tN1i5RONZF8r1fW0bbE4Oyf3DwEGnzzQJ2OW+Ozg1P4s8PyugkHg2ULZoFQN+cqw==} peerDependencies: @@ -3458,21 +3160,12 @@ packages: '@types/accepts@1.3.7': resolution: {integrity: sha512-Pay9fq2lM2wXPWbteBsRAGiWH2hig4ZE2asK+mm7kUzlxRTfL961rj89I6zV/E3PcIkDqyuBEcMxFT7rccugeQ==} - '@types/babel__core@7.20.5': - resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} - - '@types/babel__generator@7.27.0': - resolution: {integrity: sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==} - - '@types/babel__template@7.4.4': - resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} - - '@types/babel__traverse@7.28.0': - resolution: {integrity: sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==} - '@types/body-parser@1.19.6': resolution: {integrity: sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==} + '@types/chai@5.2.3': + resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==} + '@types/co-body@6.1.3': resolution: {integrity: sha512-UhuhrQ5hclX6UJctv5m4Rfp52AfG9o9+d9/HwjxhVB5NjXxr5t9oKgJxN8xRHgr35oo8meUEHUPFWiKg6y71aA==} @@ -3584,6 +3277,9 @@ packages: '@types/debug@4.1.13': resolution: {integrity: sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw==} + '@types/deep-eql@4.0.2': + resolution: {integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==} + '@types/estree-jsx@1.0.5': resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} @@ -3860,161 +3556,79 @@ packages: '@ungap/structured-clone@1.3.1': resolution: {integrity: sha512-mUFwbeTqrVgDQxFveS+df2yfap6iuP20NAKAsBt5jDEoOTDew+zwLAOilHCeQJOVSvmgCX4ogqIrA0mnyr08yQ==} - '@unrs/resolver-binding-android-arm-eabi@1.12.2': - resolution: {integrity: sha512-g5T90pqg1bo/7mytQx6F4iBNC0Wsh9cu+z9veDbFjc7HjpesJFWD7QMS0NGStXM075+7dJPPVvBbpZlnrdpi/w==} - cpu: [arm] - os: [android] + '@upsetjs/venn.js@2.0.0': + resolution: {integrity: sha512-WbBhLrooyePuQ1VZxrJjtLvTc4NVfpOyKx0sKqioq9bX1C1m7Jgykkn8gLrtwumBioXIqam8DLxp88Adbue6Hw==} - '@unrs/resolver-binding-android-arm64@1.12.2': - resolution: {integrity: sha512-YGCRZv/9GLhwmz6mYDeTsm/92BAyR28l6c2ReweVW5pWgfsitWLY8upvfRlGdoyD8HjeTHSYJWyZGD4KJA/nFQ==} - cpu: [arm64] - os: [android] + '@vitejs/plugin-basic-ssl@2.1.4': + resolution: {integrity: sha512-HXciTXN/sDBYWgeAD4V4s0DN0g72x5mlxQhHxtYu3Tt8BLa6MzcJZUyDVFCdtjNs3bfENVHVzOsmooTVuNgAAw==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + peerDependencies: + vite: ^6.0.0 || ^7.0.0 - '@unrs/resolver-binding-darwin-arm64@1.12.2': - resolution: {integrity: sha512-u9DiNT1auQMO20A9SyTuG3wUgQWB9Z7KjAg0uFuCDR1FsAY8A0CG2S6JpHS1xwm/w1G08bjXZDcyOCjv1WAm2w==} - cpu: [arm64] - os: [darwin] + '@vitest/coverage-v8@4.1.7': + resolution: {integrity: sha512-qsYPeXc5Q9dFLd1i8Ap+Bx8sQgcp+rFVQo4R0dDsWNBzl26ldVF1qOO+RL24K7FDrR6pA+50XedRLSoSG24bVQ==} + peerDependencies: + '@vitest/browser': 4.1.7 + vitest: 4.1.7 + peerDependenciesMeta: + '@vitest/browser': + optional: true - '@unrs/resolver-binding-darwin-x64@1.12.2': - resolution: {integrity: sha512-f7rPLi/T1HVKZu/u6t87lroib16n8vrSzcyxI7lg4BGO9UF26KhQL44sd9eOUgrTYhvRXtWOIZT5PejdPyJfUA==} - cpu: [x64] - os: [darwin] + '@vitest/expect@4.1.7': + resolution: {integrity: sha512-1R+tw0ortHEbZDGMymm+pN7/AFQ/RkFFdtd7EN+VBpynKmLbP8A3rpEXdshBJ7+8hQ9zBJh/i1s0yKNtxAnU7w==} - '@unrs/resolver-binding-freebsd-x64@1.12.2': - resolution: {integrity: sha512-BpcOjWCJub6nRZUS2zA20pmLvjtqAtGejETaIyRLiZiQf++cbrjltLA5NN/xaXfqeOBOSlMFbemIl5/S5tljmg==} - cpu: [x64] - os: [freebsd] + '@vitest/mocker@4.1.7': + resolution: {integrity: sha512-vY7nuamKgfvpA1Koa3oYIw/k7D6kZnpGyNMZW8loow2bsBYla1TFdqTaXncWdRn4pgwNs+90RhnXhJScDwQeJA==} + peerDependencies: + msw: ^2.4.9 + vite: ^6.0.0 || ^7.0.0 || ^8.0.0 + peerDependenciesMeta: + msw: + optional: true + vite: + optional: true - '@unrs/resolver-binding-linux-arm-gnueabihf@1.12.2': - resolution: {integrity: sha512-vZTDvdSISZjJx66OzJqtsOhzifbqRjbmI1Mnu49fQDwog5GtDI4QidRiEAYbZCRj9C8YZEW+3ZjqsyS9GR4k2A==} - cpu: [arm] - os: [linux] + '@vitest/pretty-format@4.1.7': + resolution: {integrity: sha512-umgCarTOYQWIaDMvGDRZij+6b9oVeLIyJzfN+AS88e0ZOU3QTgNNSTtjQOpcvWr3np1N0j4WgZj+sb3oYBDscw==} - '@unrs/resolver-binding-linux-arm-musleabihf@1.12.2': - resolution: {integrity: sha512-BiPI+IrIlwcW4nLLMM21+B1dFPzd55yAVgVGrdgDjNef+ch03GdxrcyaIz8X9SsQirh/kCQ7mviyWlMxdh2D7g==} - cpu: [arm] - os: [linux] + '@vitest/runner@4.1.7': + resolution: {integrity: sha512-BapjmAQ2aI78WdMEfeUWivnfVzB+VPGwWRQcJE0OUq7qEeEcBsCSf+0T5iREBNE5nBb4wA5Ya0W6IA+sghdEFw==} - '@unrs/resolver-binding-linux-arm64-gnu@1.12.2': - resolution: {integrity: sha512-zJc0H99FEPoFfSrNpa91HYfxzfAJCr502oxNK1cfdC9hlaFI43RT+JFCann9JUgZmLzzntChHyn13Sgn9ljHNg==} - cpu: [arm64] - os: [linux] - libc: [glibc] + '@vitest/snapshot@4.1.7': + resolution: {integrity: sha512-ZacLzja+TmJeZ1h14xW2FB/WpeimUD3haBXQPyJqxvo8jQTmfeA8zv58mtjN2C7EHXZDYVcVYdYmAxjkWVvKCw==} - '@unrs/resolver-binding-linux-arm64-musl@1.12.2': - resolution: {integrity: sha512-KQ3Lki6l+Pz1k/eBipN41ES+YUK30beLGb9YqcB1O542cyLCNE6GaxrfcY3T6EezmGGk84wb5XyO9loTM9tkcA==} - cpu: [arm64] - os: [linux] - libc: [musl] + '@vitest/spy@4.1.7': + resolution: {integrity: sha512-kbkI5LMWakyuTIvs6fUJ5qdIVb1XVKsYJAT4OJ938cHMROYMSfmoQdZy0aaAnjbbc8F61vkoTqz/Az+/HiIu5Q==} - '@unrs/resolver-binding-linux-loong64-gnu@1.12.2': - resolution: {integrity: sha512-3SJGEh1DborhG6pyxvhPzCT4bbSIVihsvgJc13P1bHG7KLdNDaF9T3gsTwFc7Jw/5Y5/iWOjkEx7Zy0NvCGX3Q==} - cpu: [loong64] - os: [linux] - libc: [glibc] + '@vitest/utils@4.1.7': + resolution: {integrity: sha512-T532WBu791cBxJlCl6SO+J14l81DQx6uQHm1bQbmCDY7nqlEIgkza/UFnSBNaUtSf41unldDFjdOBYEQC4b5Hw==} - '@unrs/resolver-binding-linux-loong64-musl@1.12.2': - resolution: {integrity: sha512-jiuG/Obbel7uw1PwHNFfrkiKhLAF6mnyZ6aWlOAVN9WqKm8v0OFGnciJIHu8+CMvXLQ8AD51LPzAoUfT21D5Ew==} - cpu: [loong64] - os: [linux] - libc: [musl] + '@xmldom/xmldom@0.9.10': + resolution: {integrity: sha512-A9gOqLdi6cV4ibazAjcQufGj0B1y/vDqYrcuP6d/6x8P27gRS8643Dj9o1dEKtB6O7fwxb2FgBmJS2mX7gpvdw==} + engines: {node: '>=14.6'} - '@unrs/resolver-binding-linux-ppc64-gnu@1.12.2': - resolution: {integrity: sha512-q7xRvVpmcfeL+LlZg8Pbbo6QaTZwDU5BaGZbwfhkEsXJn3Was8xYfE0RBH266xZt0rM6B7i8xAYIvjthuUIWHg==} - cpu: [ppc64] - os: [linux] - libc: [glibc] + '@yarnpkg/lockfile@1.1.0': + resolution: {integrity: sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==} - '@unrs/resolver-binding-linux-riscv64-gnu@1.12.2': - resolution: {integrity: sha512-0CVdx6lcnT3Q9inOH8tsMIOJ6ImndllMjqJHg8RLVdB7Vq4SfkEXl9mCSsVNuNA4MCYycRicCUxPCabVHJRr6A==} - cpu: [riscv64] - os: [linux] - libc: [glibc] + '@zkochan/js-yaml@0.0.7': + resolution: {integrity: sha512-nrUSn7hzt7J6JWgWGz78ZYI8wj+gdIJdk0Ynjpp8l+trkn58Uqsf6RYrYkEK+3X18EX+TNdtJI0WxAtc+L84SQ==} + hasBin: true - '@unrs/resolver-binding-linux-riscv64-musl@1.12.2': - resolution: {integrity: sha512-iOwlRo9vnp6R6ohHQS11n0NnfdXx/omhkocmIfaPRpQhKZ+3BDMkkdRVh53qjkFkpPddf+FETA28NwGN7l5l+w==} - cpu: [riscv64] - os: [linux] - libc: [musl] + JSONStream@1.3.5: + resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} + hasBin: true - '@unrs/resolver-binding-linux-s390x-gnu@1.12.2': - resolution: {integrity: sha512-HYJtLfXq94q8iZNFT1lknx258wlkkWhZeUXJRqzKBBUJ00CvZ+N33zgbCqimLjsyw5Va6uUxhVa12mI+kaveEw==} - cpu: [s390x] - os: [linux] - libc: [glibc] + abbrev@3.0.1: + resolution: {integrity: sha512-AO2ac6pjRB3SJmGJo+v5/aK6Omggp6fsLrs6wN9bd35ulu4cCwaAU9+7ZhXjeqHVkaHThLuzH0nZr0YpCDhygg==} + engines: {node: ^18.17.0 || >=20.5.0} - '@unrs/resolver-binding-linux-x64-gnu@1.12.2': - resolution: {integrity: sha512-mPsUhunKKDih5O96Y6enDQyHc1SqBPlY1E/SfMWDM3EdJ95Z9CArPeCVwCCqbP45ljvivdEk8Fxn+SIb1rDAJQ==} - cpu: [x64] - os: [linux] - libc: [glibc] + abbrev@4.0.0: + resolution: {integrity: sha512-a1wflyaL0tHtJSmLSOVybYhy22vRih4eduhhrkcjgrWGnRfrZtovJ2FRjxuTtkkj47O/baf0R86QU5OuYpz8fA==} + engines: {node: ^20.17.0 || >=22.9.0} - '@unrs/resolver-binding-linux-x64-musl@1.12.2': - resolution: {integrity: sha512-azrt6+5ydLd8Vt210AAFis/lZevSfPw93EJRIJG+xPu4WCJ8K0kppCTpMyLPcKT7H15M4Jnt2tMp5bOvCkRC6A==} - cpu: [x64] - os: [linux] - libc: [musl] - - '@unrs/resolver-binding-openharmony-arm64@1.12.2': - resolution: {integrity: sha512-YZ9hP4O0X9PQb8eO980qmLNGH4zT3I9+SZTdt0Pr0YyuGQhYKoOZkV02VzrzyOZJ5xIJ3UFIenKkUkGg8GjgWQ==} - cpu: [arm64] - os: [openharmony] - - '@unrs/resolver-binding-wasm32-wasi@1.12.2': - resolution: {integrity: sha512-tYFDIkMxSflfEc/h92ZWNsZlHSwgimbNHSO3PL2JWQHfCuC2q316jMyYU9TIWZsFK2bQwyK5VAdYgn8ygPj69A==} - engines: {node: '>=14.0.0'} - cpu: [wasm32] - - '@unrs/resolver-binding-win32-arm64-msvc@1.12.2': - resolution: {integrity: sha512-qzNyg3xL0VPQmCaUh+N5jSitce6k+uCBfMDesWRnlULOZaqUkaJ0ybdT+UqlAWJoQjuqfIU/0Ptx9bteN4D82g==} - cpu: [arm64] - os: [win32] - - '@unrs/resolver-binding-win32-ia32-msvc@1.12.2': - resolution: {integrity: sha512-WD9sY00OfpHVGfsnHZoA8jVT+esS/Bg8z8jzxp5BnDCjjwsuKsPQrzswwpFy4J1AUJbXPRfkpcX0mXrzeXW79g==} - cpu: [ia32] - os: [win32] - - '@unrs/resolver-binding-win32-x64-msvc@1.12.2': - resolution: {integrity: sha512-nAB74NfSNKknqQ1RrYj6uz8FcXEomu/MATJZxh/x+BArzN2U3JbOYC0APYzUIGhVY3m5hRxA8VPNdPBoG8txlA==} - cpu: [x64] - os: [win32] - - '@upsetjs/venn.js@2.0.0': - resolution: {integrity: sha512-WbBhLrooyePuQ1VZxrJjtLvTc4NVfpOyKx0sKqioq9bX1C1m7Jgykkn8gLrtwumBioXIqam8DLxp88Adbue6Hw==} - - '@vitejs/plugin-basic-ssl@2.1.4': - resolution: {integrity: sha512-HXciTXN/sDBYWgeAD4V4s0DN0g72x5mlxQhHxtYu3Tt8BLa6MzcJZUyDVFCdtjNs3bfENVHVzOsmooTVuNgAAw==} - engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} - peerDependencies: - vite: ^6.0.0 || ^7.0.0 - - '@xmldom/xmldom@0.9.10': - resolution: {integrity: sha512-A9gOqLdi6cV4ibazAjcQufGj0B1y/vDqYrcuP6d/6x8P27gRS8643Dj9o1dEKtB6O7fwxb2FgBmJS2mX7gpvdw==} - engines: {node: '>=14.6'} - - '@yarnpkg/lockfile@1.1.0': - resolution: {integrity: sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==} - - '@zkochan/js-yaml@0.0.7': - resolution: {integrity: sha512-nrUSn7hzt7J6JWgWGz78ZYI8wj+gdIJdk0Ynjpp8l+trkn58Uqsf6RYrYkEK+3X18EX+TNdtJI0WxAtc+L84SQ==} - hasBin: true - - JSONStream@1.3.5: - resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} - hasBin: true - - abbrev@3.0.1: - resolution: {integrity: sha512-AO2ac6pjRB3SJmGJo+v5/aK6Omggp6fsLrs6wN9bd35ulu4cCwaAU9+7ZhXjeqHVkaHThLuzH0nZr0YpCDhygg==} - engines: {node: ^18.17.0 || >=20.5.0} - - abbrev@4.0.0: - resolution: {integrity: sha512-a1wflyaL0tHtJSmLSOVybYhy22vRih4eduhhrkcjgrWGnRfrZtovJ2FRjxuTtkkj47O/baf0R86QU5OuYpz8fA==} - engines: {node: ^20.17.0 || >=22.9.0} - - accepts@1.3.8: - resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} - engines: {node: '>= 0.6'} + accepts@1.3.8: + resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} + engines: {node: '>= 0.6'} accepts@2.0.0: resolution: {integrity: sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==} @@ -4075,10 +3689,6 @@ packages: resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} engines: {node: '>=6'} - ansi-escapes@4.3.2: - resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} - engines: {node: '>=8'} - ansi-escapes@7.3.0: resolution: {integrity: sha512-BvU8nYgGQBxcmMuEeUEmNTvrMVjJNSH7RgW24vXexN4Ven6qCvy4TntnvlnwnMLTVlcRQQdbRY8NKnaIoeWDNg==} engines: {node: '>=18'} @@ -4107,19 +3717,12 @@ packages: resolution: {integrity: sha512-44mvgtPvohuU/70DdY5Oz2AIrLJ9k6/5x4KmoSvPwO+5Moijo0+N9D0fKbbYZQWP1hNm5CpOf+E01jhxG/r8xg==} engines: {node: '>=14'} - anymatch@3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} - engines: {node: '>= 8'} - aproba@2.0.0: resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} arg@5.0.2: resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} - argparse@1.0.10: - resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} - argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} @@ -4144,10 +3747,17 @@ packages: asap@2.0.6: resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} + assertion-error@2.0.1: + resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} + engines: {node: '>=12'} + ast-kit@3.0.0-beta.1: resolution: {integrity: sha512-trmleAnZ2PxN/loHWVhhx1qeOHSRXq4TDsBBxq3GqeJitfk3+jTQ+v/C1km/KYq9M7wKqCewMh+/NAvVH7m+bw==} engines: {node: '>=20.19.0'} + ast-v8-to-istanbul@1.0.0: + resolution: {integrity: sha512-1fSfIwuDICFA4LKkCzRPO7F0hzFf0B7+Xqrl27ynQaa+Rh0e1Es0v6kWHPott3lU10AyAr7oKHa65OppjLn3Rg==} + astring@1.9.0: resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==} hasBin: true @@ -4161,31 +3771,6 @@ packages: axios@1.16.1: resolution: {integrity: sha512-caYkukvroVPO8KrzuJEb50Hm07KwfBZPEC3VeFHTsqWHvKTsy54hjJz9BS/cdaypROE2rH6xvm9mHX4fgWkr3A==} - babel-jest@30.4.1: - resolution: {integrity: sha512-fATAbM8piYxkiXQp3RBXmZHxZVNJZAVXXfyeyCN2Tida3+qJ8ea9UxhiJ2y4fLO90ZImKt6k9FlcH2+rLkJGhw==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - peerDependencies: - '@babel/core': ^7.11.0 || ^8.0.0-0 - - babel-plugin-istanbul@7.0.1: - resolution: {integrity: sha512-D8Z6Qm8jCvVXtIRkBnqNHX0zJ37rQcFJ9u8WOS6tkYOsRdHBzypCstaxWiu5ZIlqQtviRYbgnRLSoCEvjqcqbA==} - engines: {node: '>=12'} - - babel-plugin-jest-hoist@30.4.0: - resolution: {integrity: sha512-9EdtWM/sSfXLOGLwSn+GS6pIXyBnL07/8gyJlwFXjWy4DxMOyItqyUT29d4lQiS380EZwYlX7/At4PgBS+m2aA==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - babel-preset-current-node-syntax@1.2.0: - resolution: {integrity: sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==} - peerDependencies: - '@babel/core': ^7.0.0 || ^8.0.0-0 - - babel-preset-jest@30.4.0: - resolution: {integrity: sha512-lBY4jxsNmCnSiu7kquw8ZC9F4+XLMOKypT3RnNHPvU2Kpd4W0xaPuLr5ZkRyOsvLYAY4yaW1ZwTW4xB7NIiZzg==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - peerDependencies: - '@babel/core': ^7.11.0 || ^8.0.0-beta.1 - bail@2.0.2: resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} @@ -4236,9 +3821,6 @@ packages: brace-expansion@1.1.14: resolution: {integrity: sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==} - brace-expansion@2.1.0: - resolution: {integrity: sha512-TN1kCZAgdgweJhWWpgKYrQaMNHcDULHkWwQIspdtjV4Y5aurRdZpjAqn6yX3FPqTA9ngHCc4hJxMAMgGfve85w==} - brace-expansion@5.0.5: resolution: {integrity: sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==} engines: {node: 18 || 20 || >=22} @@ -4252,9 +3834,6 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true - bser@2.1.1: - resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} - buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} @@ -4297,16 +3876,16 @@ packages: resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} engines: {node: '>=6'} - camelcase@6.3.0: - resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} - engines: {node: '>=10'} - caniuse-lite@1.0.30001793: resolution: {integrity: sha512-iwSsYWaCOoh26cV8NwNRViHlrfUvYsHDfRVcbtmw0Kg6PJIZZXwMkj1442FYLBGkeUf1juAsU3DTfxW579mrPA==} ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} + chai@6.2.2: + resolution: {integrity: sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==} + engines: {node: '>=18'} + chalk@4.1.0: resolution: {integrity: sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==} engines: {node: '>=10'} @@ -4322,10 +3901,6 @@ packages: change-case@5.4.4: resolution: {integrity: sha512-HRQyTk2/YPEkt9TnUPbOpr64Uw3KOicFWPVBb+xiHvd6eBx/qPr9xqfBFDT8P2vWsvvz4jbEkfDe71W3VyNu2w==} - char-regex@1.0.2: - resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} - engines: {node: '>=10'} - character-entities-html4@2.1.0: resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} @@ -4368,9 +3943,6 @@ packages: cjs-module-lexer@1.4.3: resolution: {integrity: sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==} - cjs-module-lexer@2.2.0: - resolution: {integrity: sha512-4bHTS2YuzUvtoLjdy+98ykbNB5jS0+07EvFNXerqZQJ89F7DI6ET7OQo/HJuW6K0aVsKA9hj9/RVb2kQVOrPDQ==} - clean-stack@2.2.0: resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} engines: {node: '>=6'} @@ -4437,19 +4009,12 @@ packages: resolution: {integrity: sha512-Kbpv2Yd1NdL1V/V4cwLVxraHDV6K8ayohr2rmH0J87Er8+zJjcTa6dAn9QMPC9CRgU8+aNajKbSf1TzDB1yKPA==} engines: {node: '>=8.0.0'} - co@4.6.0: - resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} - engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} - code-block-writer@13.0.3: resolution: {integrity: sha512-Oofo0pq3IKnsFtuHqSF7TqBfr71aeyZDVJ0HpmqB7FBM2qEigL0iPONSCZSO9pE9dZTAxANe5XHG9Uy0YMv8cg==} collapse-white-space@2.1.0: resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==} - collect-v8-coverage@1.0.3: - resolution: {integrity: sha512-1L5aqIkwPfiodaMgQunkF1zRhNqifHBmtbbbxcr6yVxxBnliw4TDOW6NxpO8DJLgJ16OT+Y4ztZqP6p/FtXnAw==} - color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} @@ -4813,21 +4378,9 @@ packages: babel-plugin-macros: optional: true - dedent@1.7.2: - resolution: {integrity: sha512-WzMx3mW98SN+zn3hgemf4OzdmyNhhhKz5Ay0pUfQiMQ3e1g+xmTJWp/pKdwKVXhdSkAEGIIzqeuWrL3mV/AXbA==} - peerDependencies: - babel-plugin-macros: ^3.1.0 - peerDependenciesMeta: - babel-plugin-macros: - optional: true - deep-equal@1.0.1: resolution: {integrity: sha512-bHtC0iYvWhyaTzvV3CZgPeZQqCOBGyGsVV7v4eevpdkLHfiSrXUdBG+qAuSz4RI70sszvjQ1QSZ98An1yNwpSw==} - deepmerge@4.3.1: - resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} - engines: {node: '>=0.10.0'} - defaults@1.0.4: resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} @@ -4871,10 +4424,6 @@ packages: resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} engines: {node: '>=8'} - detect-newline@3.1.0: - resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} - engines: {node: '>=8'} - devlop@1.1.0: resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} @@ -4933,9 +4482,6 @@ packages: resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} engines: {node: '>= 0.4'} - eastasianwidth@0.2.0: - resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} @@ -4950,19 +4496,12 @@ packages: email-addresses@5.0.0: resolution: {integrity: sha512-4OIPYlA6JXqtVn8zpHpGiI7vE6EQOAg16aGnDMIAlZVinnoZ8208tW1hAbjWydgN/4PLTT9q+O1K6AH/vALJGw==} - emittery@0.13.1: - resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} - engines: {node: '>=12'} - emoji-regex@10.6.0: resolution: {integrity: sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==} emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - emoji-regex@9.2.2: - resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - empathic@2.0.1: resolution: {integrity: sha512-YGRs8knHhKHVShLkFET/rWAU8kmHbOV5LwN938RHI0pljAJ1Gf6SzXsSmRaEzcXTtOOmVqJ5+WtQPL5uigY50Q==} engines: {node: '>=14'} @@ -5028,6 +4567,9 @@ packages: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} + es-module-lexer@2.1.0: + resolution: {integrity: sha512-n27zTYMjYu1aj4MjCWzSP7G9r75utsaoc8m61weK+W8JMBGGQybd43GstCXZ3WNmSFtGT9wi59qQTW6mhTR5LQ==} + es-object-atoms@1.1.1: resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} engines: {node: '>= 0.4'} @@ -5078,11 +4620,6 @@ packages: resolution: {integrity: sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==} engines: {node: '>=6'} - esprima@4.0.1: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} - engines: {node: '>=4'} - hasBin: true - estree-util-attach-comments@3.0.0: resolution: {integrity: sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==} @@ -5129,17 +4666,13 @@ packages: resolution: {integrity: sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ==} engines: {node: '>=10'} - execa@5.1.1: - resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} - engines: {node: '>=10'} - execa@8.0.1: resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} engines: {node: '>=16.17'} - exit-x@0.2.2: - resolution: {integrity: sha512-+I6B/IkJc1o/2tiURyz/ivu/O0nKNEArIUB5O7zBrlDVJr22SCLH3xTeEry428LvFhRzIA1g8izguxJ/gbNcVQ==} - engines: {node: '>= 0.8.0'} + expect-type@1.3.0: + resolution: {integrity: sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==} + engines: {node: '>=12.0.0'} expect@30.4.1: resolution: {integrity: sha512-PMARsyh/JtqC20HoGqlFcIlQAyqUtW4PlI1rup1uhYJtKuwAjbvWi3GQMAn+STdHum/dk8xrKfUM1+5SAwpolA==} @@ -5168,9 +4701,6 @@ packages: resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} engines: {node: '>=8.6.0'} - fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - fast-string-truncated-width@3.0.3: resolution: {integrity: sha512-0jjjIEL6+0jag3l2XWWizO64/aZVtpiGE3t0Zgqxv0DPuxiMjvB3M24fCyhZUO4KomJQPj3LTSUnDP3GpdwC0g==} @@ -5189,9 +4719,6 @@ packages: fault@2.0.1: resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==} - fb-watchman@2.0.2: - resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} - fdir@6.5.0: resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} engines: {node: '>=12.0.0'} @@ -5288,9 +4815,6 @@ packages: resolution: {integrity: sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - fsevents@2.3.3: resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} @@ -5315,10 +4839,6 @@ packages: resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} engines: {node: '>= 0.4'} - get-package-type@0.1.0: - resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} - engines: {node: '>=8.0.0'} - get-pkg-repo@4.2.1: resolution: {integrity: sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA==} engines: {node: '>=6.9.0'} @@ -5332,10 +4852,6 @@ packages: resolution: {integrity: sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg==} engines: {node: '>=10'} - get-stream@6.0.1: - resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} - engines: {node: '>=10'} - get-stream@8.0.1: resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} engines: {node: '>=16'} @@ -5388,11 +4904,6 @@ packages: glob-to-regexp@0.4.1: resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} - glob@10.5.0: - resolution: {integrity: sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==} - deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me - hasBin: true - glob@11.1.0: resolution: {integrity: sha512-vuNwKSaKiqm7g0THUBu2x7ckSs3XJLXE+2ssL7/MfTGPLLcrJQ/4Uq1CjPTtO5cCIiRxqvN6Twy1qOwhL0Xjcw==} engines: {node: 20 || >=22} @@ -5403,10 +4914,6 @@ packages: resolution: {integrity: sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==} engines: {node: 18 || 20 || >=22} - glob@7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} - deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me - globby@11.1.0: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} @@ -5608,11 +5115,6 @@ packages: engines: {node: '>=8'} hasBin: true - import-local@3.2.0: - resolution: {integrity: sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==} - engines: {node: '>=8'} - hasBin: true - import-meta-resolve@4.2.0: resolution: {integrity: sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==} @@ -5632,10 +5134,6 @@ packages: resolution: {integrity: sha512-t54PPJHG1Pp7VQvxyVCJ9mBbjG3Hqryges9bXoOO6GExCPa+//i/d5GSuFtpx3ALLd7lgIAur6zrIlBQyJuMlQ==} engines: {node: '>= 0.8.0'} - inflight@1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} - deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. - inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} @@ -5723,10 +5221,6 @@ packages: resolution: {integrity: sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ==} engines: {node: '>=18'} - is-generator-fn@2.1.0: - resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} - engines: {node: '>=6'} - is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} @@ -5831,78 +5325,18 @@ packages: resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} engines: {node: '>=10'} - istanbul-lib-source-maps@5.0.6: - resolution: {integrity: sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==} - engines: {node: '>=10'} - istanbul-reports@3.2.0: resolution: {integrity: sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==} engines: {node: '>=8'} - jackspeak@3.4.3: - resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} - jackspeak@4.2.3: resolution: {integrity: sha512-ykkVRwrYvFm1nb2AJfKKYPr0emF6IiXDYUaFx4Zn9ZuIH7MrzEZ3sD5RlqGXNRpHtvUHJyOnCEFxOlNDtGo7wg==} engines: {node: 20 || >=22} - jest-changed-files@30.4.1: - resolution: {integrity: sha512-IuctmYrxi21iOSOaIXpJWalHyPAsVv0GeBHKDn8C1CA4W5htHn7INL+wdnL4Bo0+olEndvAFkmb++tIQJG+vvg==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - jest-circus@30.4.2: - resolution: {integrity: sha512-rvHH7VlY6LgbJXJTQ87GW62g1FntOtbhh0zT+v04kC+pgL6aBKyYINXxWukCpj3dcIBMw5/XUbtDS9dU9JTXeQ==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - jest-cli@30.4.2: - resolution: {integrity: sha512-jfA2ocvVHMXS2QijrJ0d31ektP+d/W0T5RpcTX2Pq+3sVqHlsXVCM2+FmwpL+bdY8OfHpIg9xMxLF17Zg0U49Q==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - hasBin: true - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - - jest-config@30.4.2: - resolution: {integrity: sha512-rNHAShJQqQwFNoL0hbf3BphSBOWnpOUAKvidLS/AjNVLPfoj5mSf4jQMfW3cYOs6hXeZC7nF7mDHaBnbxELOzg==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - peerDependencies: - '@types/node': ^22.19.17 - esbuild-register: '>=3.4.0' - ts-node: '>=9.0.0' - peerDependenciesMeta: - '@types/node': - optional: true - esbuild-register: - optional: true - ts-node: - optional: true - jest-diff@30.4.1: resolution: {integrity: sha512-CRpFK0RtLriVDGcPPAnR6HMVI8bSR2jnUIgralhauzYQZIb4RH9AtEInTuQr65LmmGggGcRT6HIASxwqsVsmlA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-docblock@30.4.0: - resolution: {integrity: sha512-ZPMabUZCx5MpbZ2eBYSvZ0J8fvo3dR9oM+eeUpb3aKNQFuS2tu3Duw1TNlMoP8k3WQgKGJuhcMFvwcVuq6T7oA==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - jest-each@30.4.1: - resolution: {integrity: sha512-/8MJbH6fuj48TstjrMf+u/pd06Qezz5xOXvZA6442heNOWr8bdeoGZX2d9fCn028CoMgYmroH9//zky5GfyYmA==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - jest-environment-node@30.4.1: - resolution: {integrity: sha512-4FZYVOk85hz2AyT6BbarKy9u37g6DbrDyCdFhsnDdXqyrueYQvB+0zO4f/kqLCRD0BsPRXPMNJeQwihKZV8naw==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - jest-haste-map@30.4.1: - resolution: {integrity: sha512-rFrcONd8jeFsyw+Z9CrScJgglRf2+NFmNam8dKu7n+SoHqNYT47mn0DdEcVUZJpvh7Iz6/si7f7yUH7GJHVgnw==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - jest-leak-detector@30.4.1: - resolution: {integrity: sha512-IpmyiioeHxiWDhesHnUFmOxcTzwCwKpgACgWajtAP+nYQXiY7DakTxB6Bx9JFiRMljr0AX1PvnQdaU1KFoz6NQ==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-matcher-utils@30.4.1: resolution: {integrity: sha512-zvYfX5CaeEkFrrLS9suWe9rvJrm9J1Iv3ua8kIBv9GEPzcnsfBf0bob37la7s67fs0nlBC3EuvkOLnXQKxtx4A==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} @@ -5915,65 +5349,14 @@ packages: resolution: {integrity: sha512-/i8SVb8/NSB7RfNi8gfqu8gxLV23KaL5EpAttyb9iz8qWRIqXRLflycz/32wXsYkOnaUlx8NAKnJYtpsmXUmfw==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-pnp-resolver@1.2.3: - resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} - engines: {node: '>=6'} - peerDependencies: - jest-resolve: '*' - peerDependenciesMeta: - jest-resolve: - optional: true - jest-regex-util@30.4.0: resolution: {integrity: sha512-mWlvLviKIgIQ8VCuM1xRdD0TWp3zlzionlmDBjuXVBs+VkmXq6FgW9T4Emr7oGz/Rk6feDCGyiugolcQEyp3mg==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-resolve-dependencies@30.4.2: - resolution: {integrity: sha512-gDiVh1I+GxYzz9oXlyw+1wv6VOYX1WYxMOfjsA3iGKePV2oxmbHhwxfkALxNxYy1ciw6APWwkW2zZONwP97aEQ==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - jest-resolve@30.4.1: - resolution: {integrity: sha512-Zry8Yq/yJcNAZ7dJ5F2heic8AheXvbFZ7XI5V+h28nrYZ7Qoyy4dItq8OodjnYD270mvX+ZudmrNV9cysqhW5Q==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - jest-runner@30.4.2: - resolution: {integrity: sha512-2dw0PslVYXxffXGpLo+Ejad+KcI1Qkjn7f4X4619gf21oCUmL+SPfjqIa/losUem3yEOvfNZe/F1HWUcNpODcg==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - jest-runtime@30.4.2: - resolution: {integrity: sha512-3/5e8iPz2k/VLqlr8DgTftYyLUv8Su3FkCAO2/Od81UsUTpSxOrS6O5x5KkoQwyUjmpYyDJKeyAvg2T2nvpNkQ==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - jest-snapshot@30.4.1: - resolution: {integrity: sha512-tEOkkfOMppUyeiHwjZswOQ3lcnoTnws/q5FnGIaeIh/jmoU0ZlgMYRR8sTlTj+nNGCoJ0RDq6SfxGxCsyMTPmw==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-util@30.4.1: resolution: {integrity: sha512-vjQb1sACEiv13DKJMDToJpzVW0joCsIQrmbg0fi7CyOOt+g9jTuQl2A216pWRBYhOVt53XbL/2LbMKg1BECWOw==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-validate@30.4.1: - resolution: {integrity: sha512-PDWi4SOwLnwqNDfHZjOcsEFyZ4fc/2W2gVL3DEoyqnB6jCQMLRtfBong8s6omIw3lI0HWOus12xfnFmQtjW3fw==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - jest-watcher@30.4.1: - resolution: {integrity: sha512-/l9UonmvCwjHH7d2h3iAwIloLc1H0S8mJZ/LNK3i86hqwPAz8otUJjP9MfYtz9Tt77Su5FD2xGjZn8d31IZHlw==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - jest-worker@30.4.1: - resolution: {integrity: sha512-SHynN/q/QD++iNyvMdy+WMmbCGk8jIsNcRxycXbWubSOhvo6T+j2afcfUSl+3hYsiBebOTo0cT7c2H7CXugu1g==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - jest@30.4.2: - resolution: {integrity: sha512-Yi1jqNC/Oq0N4hBgNH/YvBpP1P57QqundgytzYqy3yqAa7NZPNjSoi4SGbRAXDMdBzNE6xBCi5U7RgfrvMEUVQ==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - hasBin: true - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - joi@18.2.1: resolution: {integrity: sha512-2/OKlogiESf2Nh3TFCrRjrr9z1DRHeW0I+KReF67+4J0Ns+8hBtHRmoWAZ2OFU6I5+TWLEe6sVlSdXPjHm5UbQ==} engines: {node: '>= 20'} @@ -5981,13 +5364,12 @@ packages: jose@6.2.3: resolution: {integrity: sha512-YYVDInQKFJfR/xa3ojUTl8c2KoTwiL1R5Wg9YCydwH0x0B9grbzlg5HC7mMjCtUJjbQ/YnGEZIhI5tCgfTb4Hw==} + js-tokens@10.0.0: + resolution: {integrity: sha512-lM/UBzQmfJRo9ABXbPWemivdCW8V2G8FHaHdypQaIy523snUjog0W71ayWXTjiR+ixeMyVHN2XcpnTd/liPg/Q==} + js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - js-yaml@3.14.2: - resolution: {integrity: sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==} - hasBin: true - js-yaml@4.1.1: resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} hasBin: true @@ -6087,10 +5469,6 @@ packages: engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} hasBin: true - leven@3.1.0: - resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} - engines: {node: '>=6'} - leven@4.1.0: resolution: {integrity: sha512-KZ9W9nWDT7rF7Dazg8xyLHGLrmpgq2nVNFUckhqdW3szVP6YhCpp/RAnpmVExA9JvrMynjwSLVrEj3AepHR6ew==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -6184,6 +5562,9 @@ packages: magic-string@0.30.21: resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} + magicast@0.5.3: + resolution: {integrity: sha512-pVKE4UdSQ7DvHzivsCIFx2BJn1mHG6KsyrFcaxFx6tONdneEuThrDx0Cj3AMg58KyN4pzYT+LHOotxDQDjNvkw==} + make-dir@3.1.0: resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} engines: {node: '>=8'} @@ -6200,9 +5581,6 @@ packages: resolution: {integrity: sha512-uCbIa8jWWmQZt4dSnEStkVC6gdakiinAm4PiGsywIkguF0eWMdcjDz0ECYhUolFU3pFLOev9VNPCEygydXnddg==} engines: {node: ^20.17.0 || >=22.9.0} - makeerror@1.0.12: - resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} - map-obj@1.0.1: resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} engines: {node: '>=0.10.0'} @@ -6476,13 +5854,6 @@ packages: minimatch@3.1.4: resolution: {integrity: sha512-twmL+S8+7yIsE9wsqgzU3E8/LumN3M3QELrBZ20OdmQ9jB2JvW5oZtBEmft84k/Gs5CG9mqtWc6Y9vW+JEzGxw==} - minimatch@3.1.5: - resolution: {integrity: sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==} - - minimatch@9.0.9: - resolution: {integrity: sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==} - engines: {node: '>=16 || 14 >=14.17'} - minimist-options@4.1.0: resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} engines: {node: '>= 6'} @@ -6580,14 +5951,6 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - napi-postinstall@0.3.4: - resolution: {integrity: sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==} - engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - hasBin: true - - natural-compare@1.4.0: - resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - negotiator@0.6.3: resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} engines: {node: '>= 0.6'} @@ -6660,9 +6023,6 @@ packages: engines: {node: ^20.17.0 || >=22.9.0} hasBin: true - node-int64@0.4.0: - resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} - node-releases@2.0.46: resolution: {integrity: sha512-GYVXHE2KnrzAfsAjl4uP++evGFCrAU1jta4ubEjIG7YWt/64Gqv66a30yKwWczVjA6j3bM4nBwH7Pk1JmDHaxQ==} engines: {node: '>=18'} @@ -6684,10 +6044,6 @@ packages: resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} engines: {node: '>=10'} - normalize-path@3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} - npm-bundled@4.0.0: resolution: {integrity: sha512-IxaQZDMsqfQ2Lz37VvyyEtKLe8FsRZuysmedy/N06TU1RyVppYKXrO4xIhR0F+7ubIBox6Q7nir6fQI3ej39iA==} engines: {node: ^18.17.0 || >=20.5.0} @@ -6838,10 +6194,6 @@ packages: resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} engines: {node: '>=6'} - p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} - engines: {node: '>=10'} - p-locate@2.0.0: resolution: {integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==} engines: {node: '>=4'} @@ -6972,10 +6324,6 @@ packages: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} - path-is-absolute@1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} - engines: {node: '>=0.10.0'} - path-key@3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} @@ -6987,10 +6335,6 @@ packages: path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - path-scurry@1.11.1: - resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} - engines: {node: '>=16 || 14 >=14.18'} - path-scurry@2.0.2: resolution: {integrity: sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==} engines: {node: 18 || 20 || >=22} @@ -7028,10 +6372,6 @@ packages: resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} engines: {node: '>=4'} - pirates@4.0.7: - resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==} - engines: {node: '>= 6'} - piscina@5.1.4: resolution: {integrity: sha512-7uU4ZnKeQq22t9AsmHGD2w4OYQGonwFnTypDypaWi7Qr2EvQIFVtG8J5D/3bE7W123Wdc9+v4CZDu5hJXVCtBg==} engines: {node: '>=20.x'} @@ -7132,9 +6472,6 @@ packages: engines: {node: '>=18'} hasBin: true - pure-rand@7.0.1: - resolution: {integrity: sha512-oTUZM/NAZS8p7ANR3SHh30kXB+zK2r2BPcEn/awJIbOvq82WoMN4p62AWWp3Hhw50G0xMsw1mhIBLqHw64EcNQ==} - qs@6.15.2: resolution: {integrity: sha512-Rzq0KEyX/w/tEybncDgdkZrJgVUsUMk3xjh3t5bv3S1HTAtg+uOYt72+ZfwiQwKdysThkTBdL/rTi6HDmX9Ddw==} engines: {node: '>=0.6'} @@ -7544,6 +6881,9 @@ packages: resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} engines: {node: '>= 0.4'} + siginfo@2.0.0: + resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} + signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} @@ -7591,9 +6931,6 @@ packages: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} - source-map-support@0.5.13: - resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==} - source-map-support@0.5.21: resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} @@ -7633,9 +6970,6 @@ packages: split@1.0.1: resolution: {integrity: sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==} - sprintf-js@1.0.3: - resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} - ssri@12.0.0: resolution: {integrity: sha512-S7iGNosepx9RadX82oimUkvr0Ct7IjJbEbs4mJcTxst8um95J3sDYU1RBEOvdu6oL1Wek2ODI5i4MAw+dZ6cAQ==} engines: {node: ^18.17.0 || >=20.5.0} @@ -7648,6 +6982,9 @@ packages: resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} engines: {node: '>=10'} + stackback@0.0.2: + resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} + state-local@1.0.7: resolution: {integrity: sha512-HTEHMNieakEnoe33shBYcZ7NX83ACUjCu8c40iOGEZsngj9zRnkqS9j1pqQPXwobB0ZcVTk27REb7COQ0UR59w==} @@ -7659,6 +6996,9 @@ packages: resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==} engines: {node: '>= 0.8'} + std-env@4.1.0: + resolution: {integrity: sha512-Rq7ybcX2RuC55r9oaPVEW7/xu3tj8u4GeBYHBWCychFtzMIr86A7e3PPEBPT37sHStKX3+TiX/Fr/ACmJLVlLQ==} + stdin-discarder@0.3.2: resolution: {integrity: sha512-eCPu1qRxPVkl5605OTWF8Wz40b4Mf45NY5LQmVPQ599knfs5QhASUm9GbJ5BDMDOXgrnh0wyEdvzmL//YMlw0A==} engines: {node: '>=18'} @@ -7667,18 +7007,10 @@ packages: resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} engines: {node: '>=0.6.19'} - string-length@4.0.2: - resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} - engines: {node: '>=10'} - string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} - string-width@5.1.2: - resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} - engines: {node: '>=12'} - string-width@7.2.0: resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} engines: {node: '>=18'} @@ -7724,10 +7056,6 @@ packages: resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} engines: {node: '>=8'} - strip-json-comments@3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} - strip-outer@1.0.1: resolution: {integrity: sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==} engines: {node: '>=0.10.0'} @@ -7758,18 +7086,10 @@ packages: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} - supports-color@8.1.1: - resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} - engines: {node: '>=10'} - supports-preserve-symlinks-flag@1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - synckit@0.11.12: - resolution: {integrity: sha512-Bh7QjT8/SuKUIfObSXNHNSK6WHo6J1tHCqJsuaFDP7gP0fkzSfTxI8y85JrppZ0h8l0maIgc2tfuZQ6/t3GtnQ==} - engines: {node: ^14.18.0 || >=16.0.0} - system-architecture@0.1.0: resolution: {integrity: sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA==} engines: {node: '>=18'} @@ -7795,10 +7115,6 @@ packages: temporal-spec@0.3.1: resolution: {integrity: sha512-B4TUhezh9knfSIMwt7RVggApDRJZo73uZdj8AacL2mZ8RP5KtLianh2MXxL06GN9ESYiIsiuoLQhgVfwe55Yhw==} - test-exclude@6.0.0: - resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} - engines: {node: '>=8'} - text-extensions@1.9.0: resolution: {integrity: sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==} engines: {node: '>=0.10'} @@ -7809,6 +7125,9 @@ packages: through@2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + tinybench@2.9.0: + resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} + tinyexec@1.1.2: resolution: {integrity: sha512-dAqSqE/RabpBKI8+h26GfLq6Vb3JVXs30XYQjdMjaj/c2tS8IYYMbIzP599KtRj7c57/wYApb3QjgRgXmrCukA==} engines: {node: '>=18'} @@ -7825,6 +7144,10 @@ packages: resolution: {integrity: sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==} engines: {node: '>=12.0.0'} + tinyrainbow@3.1.0: + resolution: {integrity: sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw==} + engines: {node: '>=14.0.0'} + title@4.0.1: resolution: {integrity: sha512-xRnPkJx9nvE5MF6LkB5e8QJjE2FW8269wTu/LQdf7zZqBgPly0QJPf/CWAo7srj5so4yXfoLEdCFgurlpi47zg==} hasBin: true @@ -7833,9 +7156,6 @@ packages: resolution: {integrity: sha512-UdiSoX6ypifLmrfQ/XfiawN6hkjSBpCjhKxxZcWlUUmoXLaCKQU0bx4HF/tdDK2uzRuchf1txGvrWBzYREssoQ==} engines: {node: '>=14.14'} - tmpl@1.0.5: - resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} - to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} @@ -7935,18 +7255,10 @@ packages: peerDependencies: typescript: ^5.5.0 || ^6.0.0 - type-detect@4.0.8: - resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} - engines: {node: '>=4'} - type-fest@0.18.1: resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==} engines: {node: '>=10'} - type-fest@0.21.3: - resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} - engines: {node: '>=10'} - type-fest@0.6.0: resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} engines: {node: '>=8'} @@ -8051,9 +7363,6 @@ packages: resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} engines: {node: '>= 0.8'} - unrs-resolver@1.12.2: - resolution: {integrity: sha512-dmlRxBJJayXjqTwC+JtF1HhJmgf3ftQ3YejFcZrf4+KKtJv0qDsK1pjqaaVjG7wJ5NJ6UVP1OqRMQ71Z4C3rxQ==} - upath@2.0.1: resolution: {integrity: sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==} engines: {node: '>=4'} @@ -8076,10 +7385,6 @@ packages: resolution: {integrity: sha512-Qo+uWgilfSmAhXCMav1uYFynlQO7fMFiMVZsQqZRMIXp0O7rR7qjkj+cPvBHLgBqi960QCoo/PH2/6ZtVqKvrg==} hasBin: true - v8-to-istanbul@9.3.0: - resolution: {integrity: sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==} - engines: {node: '>=10.12.0'} - validate-npm-package-license@3.0.4: resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} @@ -8148,6 +7453,47 @@ packages: yaml: optional: true + vitest@4.1.7: + resolution: {integrity: sha512-flYyaFd2CgoCoU+0UKt3pxksgC+S02iTDN0n3LtqaMeXsI9SBcdNujc2k0DeFLzUn/0k538yNjOSdwgCqcrwJA==} + engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@opentelemetry/api': ^1.9.0 + '@types/node': ^22.19.17 + '@vitest/browser-playwright': 4.1.7 + '@vitest/browser-preview': 4.1.7 + '@vitest/browser-webdriverio': 4.1.7 + '@vitest/coverage-istanbul': 4.1.7 + '@vitest/coverage-v8': 4.1.7 + '@vitest/ui': 4.1.7 + happy-dom: '*' + jsdom: '*' + vite: ^6.0.0 || ^7.0.0 || ^8.0.0 + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@opentelemetry/api': + optional: true + '@types/node': + optional: true + '@vitest/browser-playwright': + optional: true + '@vitest/browser-preview': + optional: true + '@vitest/browser-webdriverio': + optional: true + '@vitest/coverage-istanbul': + optional: true + '@vitest/coverage-v8': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + vscode-jsonrpc@8.2.0: resolution: {integrity: sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==} engines: {node: '>=14.0.0'} @@ -8169,9 +7515,6 @@ packages: resolution: {integrity: sha512-3hu+tD8YzSLGuFYtPRb48vdhKMi0KQV5sn+uWr8+7dMEq/2G/dtLrdDinkLjqq5TIbIBjYJ4Ax/n3YiaW7QM8A==} engines: {node: 20 || >=22} - walker@1.0.8: - resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} - watchpack@2.5.1: resolution: {integrity: sha512-Zn5uXdcFNIA1+1Ei5McRd+iRzfhENPCe7LeABkJtNulSxjma+l7ltNx55BWZkRlwRnpOgHqxnjyaDgJnNXnqzg==} engines: {node: '>=10.13.0'} @@ -8200,6 +7543,11 @@ packages: engines: {node: ^20.17.0 || >=22.9.0} hasBin: true + why-is-node-running@2.3.0: + resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} + engines: {node: '>=8'} + hasBin: true + wicked-good-xpath@1.3.0: resolution: {integrity: sha512-Gd9+TUn5nXdwj/hFsPVx5cuHHiF5Bwuc30jZ4+ronF1qHK5O7HD0sgmXWSEgwKquT3ClLoKPVbO6qGwVwLzvAw==} @@ -8221,10 +7569,6 @@ packages: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} - wrap-ansi@8.1.0: - resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} - engines: {node: '>=12'} - wrap-ansi@9.0.2: resolution: {integrity: sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==} engines: {node: '>=18'} @@ -8292,10 +7636,6 @@ packages: resolution: {integrity: sha512-4UEqdc2RYGHZc7Doyqkrqiln3p9X2DZVxaGbwhn2pi7MrRagKaOcIKe8L3OxYcbhXLgLFUS3zAYuQjKBQgmuNg==} engines: {node: ^20.19.0 || ^22.12.0 || >=23} - yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} - yoctocolors-cjs@2.1.3: resolution: {integrity: sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==} engines: {node: '>=18'} @@ -8454,7 +7794,7 @@ snapshots: transitivePeerDependencies: - chokidar - '@angular/build@21.2.12(@angular/compiler-cli@21.2.14(@angular/compiler@21.2.14)(typescript@6.0.3))(@angular/compiler@21.2.14)(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2))(@angular/platform-browser@21.2.14(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)))(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@22.19.19)(chokidar@5.0.0)(postcss@8.5.15)(tslib@2.8.1)(tsx@4.22.3)(typescript@6.0.3)(yaml@2.9.0)': + '@angular/build@21.2.12(@angular/compiler-cli@21.2.14(@angular/compiler@21.2.14)(typescript@6.0.3))(@angular/compiler@21.2.14)(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2))(@angular/platform-browser@21.2.14(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)))(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@22.19.19)(chokidar@5.0.0)(postcss@8.5.15)(tslib@2.8.1)(tsx@4.22.3)(typescript@6.0.3)(vitest@4.1.7)(yaml@2.9.0)': dependencies: '@ampproject/remapping': 2.3.0 '@angular-devkit/architect': 0.2102.12(chokidar@5.0.0) @@ -8492,6 +7832,7 @@ snapshots: '@angular/platform-browser': 21.2.14(@angular/common@21.2.14(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)) lmdb: 3.5.1 postcss: 8.5.15 + vitest: 4.1.7(@types/node@22.19.19)(@vitest/coverage-v8@4.1.7)(vite@7.3.2(@types/node@22.19.19)(sass@1.97.3)(tsx@4.22.3)(yaml@2.9.0)) transitivePeerDependencies: - '@emnapi/core' - '@emnapi/runtime' @@ -8726,8 +8067,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-plugin-utils@7.28.6': {} - '@babel/helper-split-export-declaration@7.24.7': dependencies: '@babel/types': 7.29.0 @@ -8759,91 +8098,6 @@ snapshots: dependencies: '@babel/types': 8.0.0-rc.5 - '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-syntax-import-attributes@7.28.6(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-syntax-jsx@7.28.6(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-syntax-typescript@7.28.6(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/template@7.28.6': dependencies: '@babel/code-frame': 7.29.0 @@ -8872,7 +8126,7 @@ snapshots: '@babel/helper-string-parser': 8.0.0-rc.5 '@babel/helper-validator-identifier': 8.0.0-rc.5 - '@bcoe/v8-coverage@0.2.3': {} + '@bcoe/v8-coverage@1.0.2': {} '@biomejs/biome@2.4.15': optionalDependencies: @@ -8929,6 +8183,7 @@ snapshots: dependencies: '@emnapi/wasi-threads': 1.2.1 tslib: 2.8.1 + optional: true '@emnapi/core@1.4.5': dependencies: @@ -8938,6 +8193,7 @@ snapshots: '@emnapi/runtime@1.10.0': dependencies: tslib: 2.8.1 + optional: true '@emnapi/runtime@1.4.5': dependencies: @@ -8950,6 +8206,7 @@ snapshots: '@emnapi/wasi-threads@1.2.1': dependencies: tslib: 2.8.1 + optional: true '@esbuild/aix-ppc64@0.27.3': optional: true @@ -9541,15 +8798,6 @@ snapshots: dependencies: '@swc/helpers': 0.5.21 - '@isaacs/cliui@8.0.2': - dependencies: - string-width: 5.1.2 - string-width-cjs: string-width@4.2.3 - strip-ansi: 7.2.0 - strip-ansi-cjs: strip-ansi@6.0.1 - wrap-ansi: 8.1.0 - wrap-ansi-cjs: wrap-ansi@7.0.0 - '@isaacs/cliui@9.0.0': {} '@isaacs/fs-minipass@4.0.1': @@ -9558,190 +8806,27 @@ snapshots: '@isaacs/string-locale-compare@1.1.0': {} - '@istanbuljs/load-nyc-config@1.1.0': - dependencies: - camelcase: 5.3.1 - find-up: 4.1.0 - get-package-type: 0.1.0 - js-yaml: 3.14.2 - resolve-from: 5.0.0 - '@istanbuljs/schema@0.1.6': {} - '@jest/console@30.4.1': - dependencies: - '@jest/types': 30.4.1 - '@types/node': 22.19.19 - chalk: 4.1.2 - jest-message-util: 30.4.1 - jest-util: 30.4.1 - slash: 3.0.0 - - '@jest/core@30.4.2': - dependencies: - '@jest/console': 30.4.1 - '@jest/pattern': 30.4.0 - '@jest/reporters': 30.4.1 - '@jest/test-result': 30.4.1 - '@jest/transform': 30.4.1 - '@jest/types': 30.4.1 - '@types/node': 22.19.19 - ansi-escapes: 4.3.2 - chalk: 4.1.2 - ci-info: 4.4.0 - exit-x: 0.2.2 - fast-json-stable-stringify: 2.1.0 - graceful-fs: 4.2.11 - jest-changed-files: 30.4.1 - jest-config: 30.4.2(@types/node@22.19.19) - jest-haste-map: 30.4.1 - jest-message-util: 30.4.1 - jest-regex-util: 30.4.0 - jest-resolve: 30.4.1 - jest-resolve-dependencies: 30.4.2 - jest-runner: 30.4.2 - jest-runtime: 30.4.2 - jest-snapshot: 30.4.1 - jest-util: 30.4.1 - jest-validate: 30.4.1 - jest-watcher: 30.4.1 - pretty-format: 30.4.1 - slash: 3.0.0 - transitivePeerDependencies: - - babel-plugin-macros - - esbuild-register - - supports-color - - ts-node - - '@jest/create-cache-key-function@30.4.1': - dependencies: - '@jest/types': 30.4.1 - '@jest/diff-sequences@30.0.1': {} '@jest/diff-sequences@30.4.0': {} - '@jest/environment@30.4.1': - dependencies: - '@jest/fake-timers': 30.4.1 - '@jest/types': 30.4.1 - '@types/node': 22.19.19 - jest-mock: 30.4.1 - '@jest/expect-utils@30.4.1': dependencies: '@jest/get-type': 30.1.0 - '@jest/expect@30.4.1': - dependencies: - expect: 30.4.1 - jest-snapshot: 30.4.1 - transitivePeerDependencies: - - supports-color - - '@jest/fake-timers@30.4.1': - dependencies: - '@jest/types': 30.4.1 - '@sinonjs/fake-timers': 15.4.0 - '@types/node': 22.19.19 - jest-message-util: 30.4.1 - jest-mock: 30.4.1 - jest-util: 30.4.1 - '@jest/get-type@30.1.0': {} - '@jest/globals@30.4.1': - dependencies: - '@jest/environment': 30.4.1 - '@jest/expect': 30.4.1 - '@jest/types': 30.4.1 - jest-mock: 30.4.1 - transitivePeerDependencies: - - supports-color - '@jest/pattern@30.4.0': dependencies: '@types/node': 22.19.19 jest-regex-util: 30.4.0 - '@jest/reporters@30.4.1': - dependencies: - '@bcoe/v8-coverage': 0.2.3 - '@jest/console': 30.4.1 - '@jest/test-result': 30.4.1 - '@jest/transform': 30.4.1 - '@jest/types': 30.4.1 - '@jridgewell/trace-mapping': 0.3.31 - '@types/node': 22.19.19 - chalk: 4.1.2 - collect-v8-coverage: 1.0.3 - exit-x: 0.2.2 - glob: 10.5.0 - graceful-fs: 4.2.11 - istanbul-lib-coverage: 3.2.2 - istanbul-lib-instrument: 6.0.3 - istanbul-lib-report: 3.0.1 - istanbul-lib-source-maps: 5.0.6 - istanbul-reports: 3.2.0 - jest-message-util: 30.4.1 - jest-util: 30.4.1 - jest-worker: 30.4.1 - slash: 3.0.0 - string-length: 4.0.2 - v8-to-istanbul: 9.3.0 - transitivePeerDependencies: - - supports-color - '@jest/schemas@30.4.1': dependencies: '@sinclair/typebox': 0.34.49 - '@jest/snapshot-utils@30.4.1': - dependencies: - '@jest/types': 30.4.1 - chalk: 4.1.2 - graceful-fs: 4.2.11 - natural-compare: 1.4.0 - - '@jest/source-map@30.0.1': - dependencies: - '@jridgewell/trace-mapping': 0.3.31 - callsites: 3.1.0 - graceful-fs: 4.2.11 - - '@jest/test-result@30.4.1': - dependencies: - '@jest/console': 30.4.1 - '@jest/types': 30.4.1 - '@types/istanbul-lib-coverage': 2.0.6 - collect-v8-coverage: 1.0.3 - - '@jest/test-sequencer@30.4.1': - dependencies: - '@jest/test-result': 30.4.1 - graceful-fs: 4.2.11 - jest-haste-map: 30.4.1 - slash: 3.0.0 - - '@jest/transform@30.4.1': - dependencies: - '@babel/core': 7.29.0 - '@jest/types': 30.4.1 - '@jridgewell/trace-mapping': 0.3.31 - babel-plugin-istanbul: 7.0.1 - chalk: 4.1.2 - convert-source-map: 2.0.0 - fast-json-stable-stringify: 2.1.0 - graceful-fs: 4.2.11 - jest-haste-map: 30.4.1 - jest-regex-util: 30.4.0 - jest-util: 30.4.1 - pirates: 4.0.7 - slash: 3.0.0 - write-file-atomic: 5.0.1 - transitivePeerDependencies: - - supports-color - '@jest/types@30.4.1': dependencies: '@jest/pattern': 30.4.0 @@ -10040,8 +9125,8 @@ snapshots: '@napi-rs/wasm-runtime@0.2.4': dependencies: - '@emnapi/core': 1.10.0 - '@emnapi/runtime': 1.10.0 + '@emnapi/core': 1.4.5 + '@emnapi/runtime': 1.4.5 '@tybys/wasm-util': 0.9.0 '@napi-rs/wasm-runtime@1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)': @@ -10110,10 +9195,10 @@ snapshots: '@npmcli/metavuln-calculator': 9.0.3 '@npmcli/name-from-folder': 3.0.0 '@npmcli/node-gyp': 4.0.0 - '@npmcli/package-json': 7.0.5 + '@npmcli/package-json': 7.0.2 '@npmcli/query': 4.0.1 '@npmcli/redact': 3.2.2 - '@npmcli/run-script': 10.0.4 + '@npmcli/run-script': 10.0.3 bin-links: 5.0.0 cacache: 20.0.4 common-ancestor-path: 1.0.1 @@ -10123,16 +9208,16 @@ snapshots: minimatch: 10.2.5 nopt: 8.1.0 npm-install-checks: 7.1.2 - npm-package-arg: 13.0.2 + npm-package-arg: 13.0.1 npm-pick-manifest: 11.0.3 - npm-registry-fetch: 19.1.1 + npm-registry-fetch: 19.1.0 pacote: 21.5.0 parse-conflict-json: 4.0.0 proc-log: 5.0.0 proggy: 3.0.0 promise-all-reject-late: 1.0.1 promise-call-limit: 3.0.2 - semver: 7.8.1 + semver: 7.7.2 ssri: 12.0.0 treeverse: 3.0.0 walk-up-path: 4.0.0 @@ -10141,11 +9226,11 @@ snapshots: '@npmcli/fs@4.0.0': dependencies: - semver: 7.8.1 + semver: 7.7.2 '@npmcli/fs@5.0.0': dependencies: - semver: 7.8.1 + semver: 7.7.4 '@npmcli/git@6.0.3': dependencies: @@ -10155,7 +9240,7 @@ snapshots: npm-pick-manifest: 10.0.0 proc-log: 5.0.0 promise-retry: 2.0.1 - semver: 7.8.1 + semver: 7.7.2 which: 5.0.0 '@npmcli/git@7.0.2': @@ -10166,7 +9251,7 @@ snapshots: lru-cache: 11.5.0 npm-pick-manifest: 11.0.3 proc-log: 6.1.0 - semver: 7.8.1 + semver: 7.7.4 which: 6.0.1 '@npmcli/installed-package-contents@3.0.0': @@ -10182,7 +9267,7 @@ snapshots: '@npmcli/map-workspaces@5.0.3': dependencies: '@npmcli/name-from-folder': 4.0.0 - '@npmcli/package-json': 7.0.5 + '@npmcli/package-json': 7.0.2 glob: 13.0.6 minimatch: 10.2.5 @@ -10192,7 +9277,7 @@ snapshots: json-parse-even-better-errors: 5.0.0 pacote: 21.5.0 proc-log: 6.1.0 - semver: 7.8.1 + semver: 7.7.2 transitivePeerDependencies: - supports-color @@ -10211,7 +9296,7 @@ snapshots: hosted-git-info: 9.0.3 json-parse-even-better-errors: 5.0.0 proc-log: 6.1.0 - semver: 7.8.1 + semver: 7.7.2 validate-npm-package-license: 3.0.4 '@npmcli/package-json@7.0.5': @@ -10221,7 +9306,7 @@ snapshots: hosted-git-info: 9.0.3 json-parse-even-better-errors: 5.0.0 proc-log: 6.1.0 - semver: 7.8.1 + semver: 7.7.4 spdx-expression-parse: 4.0.0 '@npmcli/promise-spawn@8.0.3': @@ -10243,7 +9328,7 @@ snapshots: '@npmcli/run-script@10.0.3': dependencies: '@npmcli/node-gyp': 5.0.0 - '@npmcli/package-json': 7.0.5 + '@npmcli/package-json': 7.0.2 '@npmcli/promise-spawn': 9.0.1 node-gyp: 12.3.0 proc-log: 6.1.0 @@ -10257,14 +9342,14 @@ snapshots: node-gyp: 12.3.0 proc-log: 6.1.0 - '@nx/devkit@22.7.3(nx@22.7.3(@swc/core@1.15.40(@swc/helpers@0.5.21)))': + '@nx/devkit@22.7.3(nx@22.7.3)': dependencies: '@zkochan/js-yaml': 0.0.7 ejs: 5.0.1 enquirer: 2.3.6 minimatch: 10.2.5 - nx: 22.7.3(@swc/core@1.15.40(@swc/helpers@0.5.21)) - semver: 7.8.1 + nx: 22.7.3 + semver: 7.7.2 tslib: 2.8.1 yargs-parser: 21.1.1 @@ -10432,11 +9517,6 @@ snapshots: '@parcel/watcher-win32-x64': 2.5.6 optional: true - '@pkgjs/parseargs@0.11.0': - optional: true - - '@pkgr/core@0.2.9': {} - '@publint/pack@0.1.4': {} '@quansync/fs@1.0.0': @@ -10755,75 +9835,10 @@ snapshots: '@sinclair/typebox@0.34.49': {} - '@sinonjs/commons@3.0.1': - dependencies: - type-detect: 4.0.8 - - '@sinonjs/fake-timers@15.4.0': - dependencies: - '@sinonjs/commons': 3.0.1 - '@standard-schema/spec@1.1.0': {} '@standard-schema/utils@0.3.0': {} - '@swc/core-darwin-arm64@1.15.40': - optional: true - - '@swc/core-darwin-x64@1.15.40': - optional: true - - '@swc/core-linux-arm-gnueabihf@1.15.40': - optional: true - - '@swc/core-linux-arm64-gnu@1.15.40': - optional: true - - '@swc/core-linux-arm64-musl@1.15.40': - optional: true - - '@swc/core-linux-ppc64-gnu@1.15.40': - optional: true - - '@swc/core-linux-s390x-gnu@1.15.40': - optional: true - - '@swc/core-linux-x64-gnu@1.15.40': - optional: true - - '@swc/core-linux-x64-musl@1.15.40': - optional: true - - '@swc/core-win32-arm64-msvc@1.15.40': - optional: true - - '@swc/core-win32-ia32-msvc@1.15.40': - optional: true - - '@swc/core-win32-x64-msvc@1.15.40': - optional: true - - '@swc/core@1.15.40(@swc/helpers@0.5.21)': - dependencies: - '@swc/counter': 0.1.3 - '@swc/types': 0.1.26 - optionalDependencies: - '@swc/core-darwin-arm64': 1.15.40 - '@swc/core-darwin-x64': 1.15.40 - '@swc/core-linux-arm-gnueabihf': 1.15.40 - '@swc/core-linux-arm64-gnu': 1.15.40 - '@swc/core-linux-arm64-musl': 1.15.40 - '@swc/core-linux-ppc64-gnu': 1.15.40 - '@swc/core-linux-s390x-gnu': 1.15.40 - '@swc/core-linux-x64-gnu': 1.15.40 - '@swc/core-linux-x64-musl': 1.15.40 - '@swc/core-win32-arm64-msvc': 1.15.40 - '@swc/core-win32-ia32-msvc': 1.15.40 - '@swc/core-win32-x64-msvc': 1.15.40 - '@swc/helpers': 0.5.21 - - '@swc/counter@0.1.3': {} - '@swc/helpers@0.5.15': dependencies: tslib: 2.8.1 @@ -10832,17 +9847,6 @@ snapshots: dependencies: tslib: 2.8.1 - '@swc/jest@0.2.39(@swc/core@1.15.40(@swc/helpers@0.5.21))': - dependencies: - '@jest/create-cache-key-function': 30.4.1 - '@swc/core': 1.15.40(@swc/helpers@0.5.21) - '@swc/counter': 0.1.3 - jsonc-parser: 3.3.1 - - '@swc/types@0.1.26': - dependencies: - '@swc/counter': 0.1.3 - '@tanstack/react-virtual@3.13.25(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: '@tanstack/virtual-core': 3.15.0 @@ -10892,32 +9896,16 @@ snapshots: dependencies: '@types/node': 22.19.19 - '@types/babel__core@7.20.5': - dependencies: - '@babel/parser': 7.29.3 - '@babel/types': 7.29.0 - '@types/babel__generator': 7.27.0 - '@types/babel__template': 7.4.4 - '@types/babel__traverse': 7.28.0 - - '@types/babel__generator@7.27.0': - dependencies: - '@babel/types': 7.29.0 - - '@types/babel__template@7.4.4': - dependencies: - '@babel/parser': 7.29.3 - '@babel/types': 7.29.0 - - '@types/babel__traverse@7.28.0': - dependencies: - '@babel/types': 7.29.0 - '@types/body-parser@1.19.6': dependencies: '@types/connect': 3.4.38 '@types/node': 22.19.19 + '@types/chai@5.2.3': + dependencies: + '@types/deep-eql': 4.0.2 + assertion-error: 2.0.1 + '@types/co-body@6.1.3': dependencies: '@types/node': 22.19.19 @@ -11061,6 +10049,8 @@ snapshots: dependencies: '@types/ms': 2.1.0 + '@types/deep-eql@4.0.2': {} + '@types/estree-jsx@1.0.5': dependencies: '@types/estree': 1.0.9 @@ -11314,84 +10304,69 @@ snapshots: '@ungap/structured-clone@1.3.1': {} - '@unrs/resolver-binding-android-arm-eabi@1.12.2': - optional: true - - '@unrs/resolver-binding-android-arm64@1.12.2': - optional: true - - '@unrs/resolver-binding-darwin-arm64@1.12.2': - optional: true - - '@unrs/resolver-binding-darwin-x64@1.12.2': - optional: true - - '@unrs/resolver-binding-freebsd-x64@1.12.2': - optional: true - - '@unrs/resolver-binding-linux-arm-gnueabihf@1.12.2': - optional: true - - '@unrs/resolver-binding-linux-arm-musleabihf@1.12.2': - optional: true - - '@unrs/resolver-binding-linux-arm64-gnu@1.12.2': - optional: true - - '@unrs/resolver-binding-linux-arm64-musl@1.12.2': - optional: true - - '@unrs/resolver-binding-linux-loong64-gnu@1.12.2': - optional: true - - '@unrs/resolver-binding-linux-loong64-musl@1.12.2': - optional: true - - '@unrs/resolver-binding-linux-ppc64-gnu@1.12.2': - optional: true - - '@unrs/resolver-binding-linux-riscv64-gnu@1.12.2': - optional: true - - '@unrs/resolver-binding-linux-riscv64-musl@1.12.2': - optional: true - - '@unrs/resolver-binding-linux-s390x-gnu@1.12.2': - optional: true + '@upsetjs/venn.js@2.0.0': + optionalDependencies: + d3-selection: 3.0.0 + d3-transition: 3.0.1(d3-selection@3.0.0) - '@unrs/resolver-binding-linux-x64-gnu@1.12.2': - optional: true + '@vitejs/plugin-basic-ssl@2.1.4(vite@7.3.2(@types/node@22.19.19)(sass@1.97.3)(tsx@4.22.3)(yaml@2.9.0))': + dependencies: + vite: 7.3.2(@types/node@22.19.19)(sass@1.97.3)(tsx@4.22.3)(yaml@2.9.0) - '@unrs/resolver-binding-linux-x64-musl@1.12.2': - optional: true + '@vitest/coverage-v8@4.1.7(vitest@4.1.7)': + dependencies: + '@bcoe/v8-coverage': 1.0.2 + '@vitest/utils': 4.1.7 + ast-v8-to-istanbul: 1.0.0 + istanbul-lib-coverage: 3.2.2 + istanbul-lib-report: 3.0.1 + istanbul-reports: 3.2.0 + magicast: 0.5.3 + obug: 2.1.1 + std-env: 4.1.0 + tinyrainbow: 3.1.0 + vitest: 4.1.7(@types/node@22.19.19)(@vitest/coverage-v8@4.1.7)(vite@7.3.2(@types/node@22.19.19)(sass@1.97.3)(tsx@4.22.3)(yaml@2.9.0)) - '@unrs/resolver-binding-openharmony-arm64@1.12.2': - optional: true + '@vitest/expect@4.1.7': + dependencies: + '@standard-schema/spec': 1.1.0 + '@types/chai': 5.2.3 + '@vitest/spy': 4.1.7 + '@vitest/utils': 4.1.7 + chai: 6.2.2 + tinyrainbow: 3.1.0 - '@unrs/resolver-binding-wasm32-wasi@1.12.2': + '@vitest/mocker@4.1.7(vite@7.3.2(@types/node@22.19.19)(sass@1.97.3)(tsx@4.22.3)(yaml@2.9.0))': dependencies: - '@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 + '@vitest/spy': 4.1.7 + estree-walker: 3.0.3 + magic-string: 0.30.21 + optionalDependencies: + vite: 7.3.2(@types/node@22.19.19)(sass@1.97.3)(tsx@4.22.3)(yaml@2.9.0) - '@unrs/resolver-binding-win32-arm64-msvc@1.12.2': - optional: true + '@vitest/pretty-format@4.1.7': + dependencies: + tinyrainbow: 3.1.0 - '@unrs/resolver-binding-win32-ia32-msvc@1.12.2': - optional: true + '@vitest/runner@4.1.7': + dependencies: + '@vitest/utils': 4.1.7 + pathe: 2.0.3 - '@unrs/resolver-binding-win32-x64-msvc@1.12.2': - optional: true + '@vitest/snapshot@4.1.7': + dependencies: + '@vitest/pretty-format': 4.1.7 + '@vitest/utils': 4.1.7 + magic-string: 0.30.21 + pathe: 2.0.3 - '@upsetjs/venn.js@2.0.0': - optionalDependencies: - d3-selection: 3.0.0 - d3-transition: 3.0.1(d3-selection@3.0.0) + '@vitest/spy@4.1.7': {} - '@vitejs/plugin-basic-ssl@2.1.4(vite@7.3.2(@types/node@22.19.19)(sass@1.97.3)(tsx@4.22.3)(yaml@2.9.0))': + '@vitest/utils@4.1.7': dependencies: - vite: 7.3.2(@types/node@22.19.19)(sass@1.97.3)(tsx@4.22.3)(yaml@2.9.0) + '@vitest/pretty-format': 4.1.7 + convert-source-map: 2.0.0 + tinyrainbow: 3.1.0 '@xmldom/xmldom@0.9.10': {} @@ -11486,10 +10461,6 @@ snapshots: ansi-colors@4.1.3: {} - ansi-escapes@4.3.2: - dependencies: - type-fest: 0.21.3 - ansi-escapes@7.3.0: dependencies: environment: 1.1.0 @@ -11508,19 +10479,10 @@ snapshots: ansis@4.3.0: {} - anymatch@3.1.3: - dependencies: - normalize-path: 3.0.0 - picomatch: 2.3.2 - aproba@2.0.0: {} arg@5.0.2: {} - argparse@1.0.10: - dependencies: - sprintf-js: 1.0.3 - argparse@2.0.1: {} aria-hidden@1.2.6: @@ -11537,12 +10499,20 @@ snapshots: asap@2.0.6: {} + assertion-error@2.0.1: {} + ast-kit@3.0.0-beta.1: dependencies: - '@babel/parser': 8.0.0-rc.5 + '@babel/parser': 8.0.0-rc.4 estree-walker: 3.0.3 pathe: 2.0.3 + ast-v8-to-istanbul@1.0.0: + dependencies: + '@jridgewell/trace-mapping': 0.3.31 + estree-walker: 3.0.3 + js-tokens: 10.0.0 + astring@1.9.0: {} async@3.2.6: {} @@ -11559,58 +10529,6 @@ snapshots: - debug - supports-color - babel-jest@30.4.1(@babel/core@7.29.0): - dependencies: - '@babel/core': 7.29.0 - '@jest/transform': 30.4.1 - '@types/babel__core': 7.20.5 - babel-plugin-istanbul: 7.0.1 - babel-preset-jest: 30.4.0(@babel/core@7.29.0) - chalk: 4.1.2 - graceful-fs: 4.2.11 - slash: 3.0.0 - transitivePeerDependencies: - - supports-color - - babel-plugin-istanbul@7.0.1: - dependencies: - '@babel/helper-plugin-utils': 7.28.6 - '@istanbuljs/load-nyc-config': 1.1.0 - '@istanbuljs/schema': 0.1.6 - istanbul-lib-instrument: 6.0.3 - test-exclude: 6.0.0 - transitivePeerDependencies: - - supports-color - - babel-plugin-jest-hoist@30.4.0: - dependencies: - '@types/babel__core': 7.20.5 - - babel-preset-current-node-syntax@1.2.0(@babel/core@7.29.0): - dependencies: - '@babel/core': 7.29.0 - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.29.0) - '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.29.0) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.29.0) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.29.0) - '@babel/plugin-syntax-import-attributes': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.29.0) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.29.0) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.29.0) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.29.0) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.29.0) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.29.0) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.29.0) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.29.0) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.29.0) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.29.0) - - babel-preset-jest@30.4.0(@babel/core@7.29.0): - dependencies: - '@babel/core': 7.29.0 - babel-plugin-jest-hoist: 30.4.0 - babel-preset-current-node-syntax: 1.2.0(@babel/core@7.29.0) - bail@2.0.2: {} balanced-match@1.0.2: {} @@ -11677,10 +10595,6 @@ snapshots: balanced-match: 1.0.2 concat-map: 0.0.1 - brace-expansion@2.1.0: - dependencies: - balanced-match: 1.0.2 - brace-expansion@5.0.5: dependencies: balanced-match: 4.0.3 @@ -11697,10 +10611,6 @@ snapshots: node-releases: 2.0.46 update-browserslist-db: 1.2.3(browserslist@4.28.2) - bser@2.1.1: - dependencies: - node-int64: 0.4.0 - buffer-from@1.1.2: {} buffer@5.7.1: @@ -11747,12 +10657,12 @@ snapshots: camelcase@5.3.1: {} - camelcase@6.3.0: {} - caniuse-lite@1.0.30001793: {} ccount@2.0.1: {} + chai@6.2.2: {} + chalk@4.1.0: dependencies: ansi-styles: 4.3.0 @@ -11767,8 +10677,6 @@ snapshots: change-case@5.4.4: {} - char-regex@1.0.2: {} - character-entities-html4@2.1.0: {} character-entities-legacy@3.0.0: {} @@ -11797,8 +10705,6 @@ snapshots: cjs-module-lexer@1.4.3: {} - cjs-module-lexer@2.2.0: {} - clean-stack@2.2.0: {} cli-cursor@3.1.0: @@ -11862,14 +10768,10 @@ snapshots: raw-body: 2.5.3 type-is: 1.6.18 - co@4.6.0: {} - code-block-writer@13.0.3: {} collapse-white-space@2.1.0: {} - collect-v8-coverage@1.0.3: {} - color-convert@2.0.1: dependencies: color-name: 1.1.4 @@ -11956,7 +10858,7 @@ snapshots: handlebars: 4.7.9 json-stringify-safe: 5.0.1 meow: 8.1.2 - semver: 7.8.1 + semver: 7.7.2 split: 1.0.1 conventional-commits-filter@3.0.0: @@ -12247,12 +11149,8 @@ snapshots: dedent@1.5.3: {} - dedent@1.7.2: {} - deep-equal@1.0.1: {} - deepmerge@4.3.1: {} - defaults@1.0.4: dependencies: clone: 1.0.4 @@ -12282,8 +11180,6 @@ snapshots: detect-libc@2.1.2: optional: true - detect-newline@3.1.0: {} - devlop@1.1.0: dependencies: dequal: 2.0.3 @@ -12343,8 +11239,6 @@ snapshots: es-errors: 1.3.0 gopd: 1.2.0 - eastasianwidth@0.2.0: {} - ee-first@1.1.1: {} ejs@5.0.1: {} @@ -12353,14 +11247,10 @@ snapshots: email-addresses@5.0.0: {} - emittery@0.13.1: {} - emoji-regex@10.6.0: {} emoji-regex@8.0.0: {} - emoji-regex@9.2.2: {} - empathic@2.0.1: {} encodeurl@2.0.0: {} @@ -12406,6 +11296,8 @@ snapshots: es-errors@1.3.0: {} + es-module-lexer@2.1.0: {} + es-object-atoms@1.1.1: dependencies: es-errors: 1.3.0 @@ -12503,8 +11395,6 @@ snapshots: esm@3.2.25: {} - esprima@4.0.1: {} - estree-util-attach-comments@3.0.0: dependencies: '@types/estree': 1.0.9 @@ -12557,19 +11447,7 @@ snapshots: execa@5.0.0: dependencies: cross-spawn: 7.0.6 - get-stream: 6.0.1 - human-signals: 2.1.0 - is-stream: 2.0.1 - merge-stream: 2.0.0 - npm-run-path: 4.0.1 - onetime: 5.1.2 - signal-exit: 3.0.7 - strip-final-newline: 2.0.0 - - execa@5.1.1: - dependencies: - cross-spawn: 7.0.6 - get-stream: 6.0.1 + get-stream: 6.0.0 human-signals: 2.1.0 is-stream: 2.0.1 merge-stream: 2.0.0 @@ -12590,7 +11468,7 @@ snapshots: signal-exit: 4.1.0 strip-final-newline: 3.0.0 - exit-x@0.2.2: {} + expect-type@1.3.0: {} expect@30.4.1: dependencies: @@ -12653,8 +11531,6 @@ snapshots: merge2: 1.4.1 micromatch: 4.0.8 - fast-json-stable-stringify@2.1.0: {} - fast-string-truncated-width@3.0.3: {} fast-string-width@3.0.2: @@ -12675,10 +11551,6 @@ snapshots: dependencies: format: 0.2.2 - fb-watchman@2.0.2: - dependencies: - bser: 2.1.1 - fdir@6.5.0(picomatch@4.0.4): optionalDependencies: picomatch: 4.0.4 @@ -12770,8 +11642,6 @@ snapshots: dependencies: minipass: 7.1.3 - fs.realpath@1.0.0: {} - fsevents@2.3.3: optional: true @@ -12793,11 +11663,9 @@ snapshots: get-proto: 1.0.1 gopd: 1.2.0 has-symbols: 1.1.0 - hasown: 2.0.3 + hasown: 2.0.2 math-intrinsics: 1.1.0 - get-package-type@0.1.0: {} - get-pkg-repo@4.2.1: dependencies: '@hutson/parse-repository-url': 3.0.2 @@ -12812,8 +11680,6 @@ snapshots: get-stream@6.0.0: {} - get-stream@6.0.1: {} - get-stream@8.0.1: {} get-tsconfig@5.0.0-beta.5: @@ -12844,7 +11710,7 @@ snapshots: git-semver-tags@5.0.1: dependencies: meow: 8.1.2 - semver: 7.8.1 + semver: 7.7.2 git-up@7.0.0: dependencies: @@ -12871,15 +11737,6 @@ snapshots: glob-to-regexp@0.4.1: {} - glob@10.5.0: - dependencies: - foreground-child: 3.3.1 - jackspeak: 3.4.3 - minimatch: 9.0.9 - minipass: 7.1.3 - package-json-from-dist: 1.0.1 - path-scurry: 1.11.1 - glob@11.1.0: dependencies: foreground-child: 3.3.1 @@ -12895,15 +11752,6 @@ snapshots: minipass: 7.1.3 path-scurry: 2.0.2 - glob@7.2.3: - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.5 - once: 1.4.0 - path-is-absolute: 1.0.1 - globby@11.1.0: dependencies: array-union: 2.1.0 @@ -13206,11 +12054,6 @@ snapshots: pkg-dir: 4.2.0 resolve-cwd: 3.0.0 - import-local@3.2.0: - dependencies: - pkg-dir: 4.2.0 - resolve-cwd: 3.0.0 - import-meta-resolve@4.2.0: {} import-without-cache@0.4.0: {} @@ -13221,11 +12064,6 @@ snapshots: inflation@2.1.0: {} - inflight@1.0.6: - dependencies: - once: 1.4.0 - wrappy: 1.0.2 - inherits@2.0.4: {} ini@1.3.8: {} @@ -13236,11 +12074,11 @@ snapshots: init-package-json@8.2.2: dependencies: - '@npmcli/package-json': 7.0.5 - npm-package-arg: 13.0.2 + '@npmcli/package-json': 7.0.2 + npm-package-arg: 13.0.1 promzard: 2.0.0 read: 4.1.0 - semver: 7.8.1 + semver: 7.7.2 validate-npm-package-license: 3.0.4 validate-npm-package-name: 6.0.2 @@ -13297,8 +12135,6 @@ snapshots: dependencies: get-east-asian-width: 1.6.0 - is-generator-fn@2.1.0: {} - is-glob@4.0.3: dependencies: is-extglob: 2.1.1 @@ -13369,168 +12205,30 @@ snapshots: '@babel/parser': 7.29.3 '@istanbuljs/schema': 0.1.6 istanbul-lib-coverage: 3.2.2 - semver: 7.8.1 - transitivePeerDependencies: - - supports-color - - istanbul-lib-report@3.0.1: - dependencies: - istanbul-lib-coverage: 3.2.2 - make-dir: 4.0.0 - supports-color: 7.2.0 - - istanbul-lib-source-maps@5.0.6: - dependencies: - '@jridgewell/trace-mapping': 0.3.31 - debug: 4.4.3(supports-color@7.2.0) - istanbul-lib-coverage: 3.2.2 - transitivePeerDependencies: - - supports-color - - istanbul-reports@3.2.0: - dependencies: - html-escaper: 2.0.2 - istanbul-lib-report: 3.0.1 - - jackspeak@3.4.3: - dependencies: - '@isaacs/cliui': 8.0.2 - optionalDependencies: - '@pkgjs/parseargs': 0.11.0 - - jackspeak@4.2.3: - dependencies: - '@isaacs/cliui': 9.0.0 - - jest-changed-files@30.4.1: - dependencies: - execa: 5.1.1 - jest-util: 30.4.1 - p-limit: 3.1.0 - - jest-circus@30.4.2: - dependencies: - '@jest/environment': 30.4.1 - '@jest/expect': 30.4.1 - '@jest/test-result': 30.4.1 - '@jest/types': 30.4.1 - '@types/node': 22.19.19 - chalk: 4.1.2 - co: 4.6.0 - dedent: 1.7.2 - is-generator-fn: 2.1.0 - jest-each: 30.4.1 - jest-matcher-utils: 30.4.1 - jest-message-util: 30.4.1 - jest-runtime: 30.4.2 - jest-snapshot: 30.4.1 - jest-util: 30.4.1 - p-limit: 3.1.0 - pretty-format: 30.4.1 - pure-rand: 7.0.1 - slash: 3.0.0 - stack-utils: 2.0.6 - transitivePeerDependencies: - - babel-plugin-macros - - supports-color - - jest-cli@30.4.2(@types/node@22.19.19): - dependencies: - '@jest/core': 30.4.2 - '@jest/test-result': 30.4.1 - '@jest/types': 30.4.1 - chalk: 4.1.2 - exit-x: 0.2.2 - import-local: 3.2.0 - jest-config: 30.4.2(@types/node@22.19.19) - jest-util: 30.4.1 - jest-validate: 30.4.1 - yargs: 17.7.2 - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - esbuild-register - - supports-color - - ts-node - - jest-config@30.4.2(@types/node@22.19.19): - dependencies: - '@babel/core': 7.29.0 - '@jest/get-type': 30.1.0 - '@jest/pattern': 30.4.0 - '@jest/test-sequencer': 30.4.1 - '@jest/types': 30.4.1 - babel-jest: 30.4.1(@babel/core@7.29.0) - chalk: 4.1.2 - ci-info: 4.4.0 - deepmerge: 4.3.1 - glob: 10.5.0 - graceful-fs: 4.2.11 - jest-circus: 30.4.2 - jest-docblock: 30.4.0 - jest-environment-node: 30.4.1 - jest-regex-util: 30.4.0 - jest-resolve: 30.4.1 - jest-runner: 30.4.2 - jest-util: 30.4.1 - jest-validate: 30.4.1 - parse-json: 5.2.0 - pretty-format: 30.4.1 - slash: 3.0.0 - strip-json-comments: 3.1.1 - optionalDependencies: - '@types/node': 22.19.19 + semver: 7.7.4 transitivePeerDependencies: - - babel-plugin-macros - - supports-color - - jest-diff@30.4.1: - dependencies: - '@jest/diff-sequences': 30.4.0 - '@jest/get-type': 30.1.0 - chalk: 4.1.2 - pretty-format: 30.4.1 - - jest-docblock@30.4.0: - dependencies: - detect-newline: 3.1.0 + - supports-color - jest-each@30.4.1: + istanbul-lib-report@3.0.1: dependencies: - '@jest/get-type': 30.1.0 - '@jest/types': 30.4.1 - chalk: 4.1.2 - jest-util: 30.4.1 - pretty-format: 30.4.1 + istanbul-lib-coverage: 3.2.2 + make-dir: 4.0.0 + supports-color: 7.2.0 - jest-environment-node@30.4.1: + istanbul-reports@3.2.0: dependencies: - '@jest/environment': 30.4.1 - '@jest/fake-timers': 30.4.1 - '@jest/types': 30.4.1 - '@types/node': 22.19.19 - jest-mock: 30.4.1 - jest-util: 30.4.1 - jest-validate: 30.4.1 + html-escaper: 2.0.2 + istanbul-lib-report: 3.0.1 - jest-haste-map@30.4.1: + jackspeak@4.2.3: dependencies: - '@jest/types': 30.4.1 - '@types/node': 22.19.19 - anymatch: 3.1.3 - fb-watchman: 2.0.2 - graceful-fs: 4.2.11 - jest-regex-util: 30.4.0 - jest-util: 30.4.1 - jest-worker: 30.4.1 - picomatch: 4.0.4 - walker: 1.0.8 - optionalDependencies: - fsevents: 2.3.3 + '@isaacs/cliui': 9.0.0 - jest-leak-detector@30.4.1: + jest-diff@30.4.1: dependencies: + '@jest/diff-sequences': 30.4.0 '@jest/get-type': 30.1.0 + chalk: 4.1.2 pretty-format: 30.4.1 jest-matcher-utils@30.4.1: @@ -13559,110 +12257,8 @@ snapshots: '@types/node': 22.19.19 jest-util: 30.4.1 - jest-pnp-resolver@1.2.3(jest-resolve@30.4.1): - optionalDependencies: - jest-resolve: 30.4.1 - jest-regex-util@30.4.0: {} - jest-resolve-dependencies@30.4.2: - dependencies: - jest-regex-util: 30.4.0 - jest-snapshot: 30.4.1 - transitivePeerDependencies: - - supports-color - - jest-resolve@30.4.1: - dependencies: - chalk: 4.1.2 - graceful-fs: 4.2.11 - jest-haste-map: 30.4.1 - jest-pnp-resolver: 1.2.3(jest-resolve@30.4.1) - jest-util: 30.4.1 - jest-validate: 30.4.1 - slash: 3.0.0 - unrs-resolver: 1.12.2 - - jest-runner@30.4.2: - dependencies: - '@jest/console': 30.4.1 - '@jest/environment': 30.4.1 - '@jest/test-result': 30.4.1 - '@jest/transform': 30.4.1 - '@jest/types': 30.4.1 - '@types/node': 22.19.19 - chalk: 4.1.2 - emittery: 0.13.1 - exit-x: 0.2.2 - graceful-fs: 4.2.11 - jest-docblock: 30.4.0 - jest-environment-node: 30.4.1 - jest-haste-map: 30.4.1 - jest-leak-detector: 30.4.1 - jest-message-util: 30.4.1 - jest-resolve: 30.4.1 - jest-runtime: 30.4.2 - jest-util: 30.4.1 - jest-watcher: 30.4.1 - jest-worker: 30.4.1 - p-limit: 3.1.0 - source-map-support: 0.5.13 - transitivePeerDependencies: - - supports-color - - jest-runtime@30.4.2: - dependencies: - '@jest/environment': 30.4.1 - '@jest/fake-timers': 30.4.1 - '@jest/globals': 30.4.1 - '@jest/source-map': 30.0.1 - '@jest/test-result': 30.4.1 - '@jest/transform': 30.4.1 - '@jest/types': 30.4.1 - '@types/node': 22.19.19 - chalk: 4.1.2 - cjs-module-lexer: 2.2.0 - collect-v8-coverage: 1.0.3 - glob: 10.5.0 - graceful-fs: 4.2.11 - jest-haste-map: 30.4.1 - jest-message-util: 30.4.1 - jest-mock: 30.4.1 - jest-regex-util: 30.4.0 - jest-resolve: 30.4.1 - jest-snapshot: 30.4.1 - jest-util: 30.4.1 - slash: 3.0.0 - strip-bom: 4.0.0 - transitivePeerDependencies: - - supports-color - - jest-snapshot@30.4.1: - dependencies: - '@babel/core': 7.29.0 - '@babel/generator': 7.29.1 - '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-syntax-typescript': 7.28.6(@babel/core@7.29.0) - '@babel/types': 7.29.0 - '@jest/expect-utils': 30.4.1 - '@jest/get-type': 30.1.0 - '@jest/snapshot-utils': 30.4.1 - '@jest/transform': 30.4.1 - '@jest/types': 30.4.1 - babel-preset-current-node-syntax: 1.2.0(@babel/core@7.29.0) - chalk: 4.1.2 - expect: 30.4.1 - graceful-fs: 4.2.11 - jest-diff: 30.4.1 - jest-matcher-utils: 30.4.1 - jest-message-util: 30.4.1 - jest-util: 30.4.1 - pretty-format: 30.4.1 - semver: 7.8.1 - synckit: 0.11.12 - transitivePeerDependencies: - - supports-color - jest-util@30.4.1: dependencies: '@jest/types': 30.4.1 @@ -13672,47 +12268,6 @@ snapshots: graceful-fs: 4.2.11 picomatch: 4.0.4 - jest-validate@30.4.1: - dependencies: - '@jest/get-type': 30.1.0 - '@jest/types': 30.4.1 - camelcase: 6.3.0 - chalk: 4.1.2 - leven: 3.1.0 - pretty-format: 30.4.1 - - jest-watcher@30.4.1: - dependencies: - '@jest/test-result': 30.4.1 - '@jest/types': 30.4.1 - '@types/node': 22.19.19 - ansi-escapes: 4.3.2 - chalk: 4.1.2 - emittery: 0.13.1 - jest-util: 30.4.1 - string-length: 4.0.2 - - jest-worker@30.4.1: - dependencies: - '@types/node': 22.19.19 - '@ungap/structured-clone': 1.3.1 - jest-util: 30.4.1 - merge-stream: 2.0.0 - supports-color: 8.1.1 - - jest@30.4.2(@types/node@22.19.19): - dependencies: - '@jest/core': 30.4.2 - '@jest/types': 30.4.1 - import-local: 3.2.0 - jest-cli: 30.4.2(@types/node@22.19.19) - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - esbuild-register - - supports-color - - ts-node - joi@18.2.1: dependencies: '@hapi/address': 5.1.1 @@ -13725,12 +12280,9 @@ snapshots: jose@6.2.3: {} - js-tokens@4.0.0: {} + js-tokens@10.0.0: {} - js-yaml@3.14.2: - dependencies: - argparse: 1.0.10 - esprima: 4.0.1 + js-tokens@4.0.0: {} js-yaml@4.1.1: dependencies: @@ -13823,12 +12375,12 @@ snapshots: layout-base@2.0.1: {} - lerna@9.0.7(@swc/core@1.15.40(@swc/helpers@0.5.21))(@types/node@22.19.19): + lerna@9.0.7(@types/node@22.19.19): dependencies: '@npmcli/arborist': 9.1.6 '@npmcli/package-json': 7.0.2 '@npmcli/run-script': 10.0.3 - '@nx/devkit': 22.7.3(nx@22.7.3(@swc/core@1.15.40(@swc/helpers@0.5.21))) + '@nx/devkit': 22.7.3(nx@22.7.3) '@octokit/plugin-enterprise-rest': 6.0.1 '@octokit/rest': 20.1.2 aproba: 2.0.0 @@ -13866,7 +12418,7 @@ snapshots: npm-package-arg: 13.0.1 npm-packlist: 10.0.3 npm-registry-fetch: 19.1.0 - nx: 22.7.3(@swc/core@1.15.40(@swc/helpers@0.5.21)) + nx: 22.7.3 p-map: 4.0.0 p-map-series: 2.1.0 p-pipe: 3.1.0 @@ -13899,25 +12451,23 @@ snapshots: - debug - supports-color - leven@3.1.0: {} - leven@4.1.0: {} libnpmaccess@10.0.3: dependencies: - npm-package-arg: 13.0.2 - npm-registry-fetch: 19.1.1 + npm-package-arg: 13.0.1 + npm-registry-fetch: 19.1.0 transitivePeerDependencies: - supports-color libnpmpublish@11.1.2: dependencies: - '@npmcli/package-json': 7.0.5 - ci-info: 4.4.0 - npm-package-arg: 13.0.2 - npm-registry-fetch: 19.1.1 + '@npmcli/package-json': 7.0.2 + ci-info: 4.3.1 + npm-package-arg: 13.0.1 + npm-registry-fetch: 19.1.0 proc-log: 5.0.0 - semver: 7.8.1 + semver: 7.7.2 sigstore: 4.1.1 ssri: 12.0.0 transitivePeerDependencies: @@ -14036,6 +12586,12 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.5.5 + magicast@0.5.3: + dependencies: + '@babel/parser': 7.29.3 + '@babel/types': 7.29.0 + source-map-js: 1.2.1 + make-dir@3.1.0: dependencies: semver: 6.3.1 @@ -14077,10 +12633,6 @@ snapshots: transitivePeerDependencies: - supports-color - makeerror@1.0.12: - dependencies: - tmpl: 1.0.5 - map-obj@1.0.1: {} map-obj@4.3.0: {} @@ -14662,14 +13214,6 @@ snapshots: dependencies: brace-expansion: 1.1.14 - minimatch@3.1.5: - dependencies: - brace-expansion: 1.1.14 - - minimatch@9.0.9: - dependencies: - brace-expansion: 2.1.0 - minimist-options@4.1.0: dependencies: arrify: 1.0.1 @@ -14768,10 +13312,6 @@ snapshots: nanoid@3.3.12: {} - napi-postinstall@0.3.4: {} - - natural-compare@1.4.0: {} - negotiator@0.6.3: {} negotiator@1.0.0: {} @@ -14783,7 +13323,7 @@ snapshots: react: 19.2.6 react-dom: 19.2.6(react@19.2.6) - next@16.2.6(@babel/core@7.29.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(sass@1.97.3): + next@16.2.6(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(sass@1.97.3): dependencies: '@next/env': 16.2.6 '@swc/helpers': 0.5.15 @@ -14792,7 +13332,7 @@ snapshots: postcss: 8.4.31 react: 19.2.6 react-dom: 19.2.6(react@19.2.6) - styled-jsx: 5.1.6(@babel/core@7.29.0)(react@19.2.6) + styled-jsx: 5.1.6(react@19.2.6) optionalDependencies: '@next/swc-darwin-arm64': 16.2.6 '@next/swc-darwin-x64': 16.2.6 @@ -14808,13 +13348,13 @@ snapshots: - '@babel/core' - babel-plugin-macros - nextra-theme-docs@4.6.1(patch_hash=f71f08a75ddca41c267fa8a927780d3e5b1a94a34d5d86f00e4c36e01eda5021)(@types/react@19.2.15)(next@16.2.6(@babel/core@7.29.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(sass@1.97.3))(nextra@4.6.1(next@16.2.6(@babel/core@7.29.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(sass@1.97.3))(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@6.0.3))(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(use-sync-external-store@1.6.0(react@19.2.6)): + nextra-theme-docs@4.6.1(patch_hash=f71f08a75ddca41c267fa8a927780d3e5b1a94a34d5d86f00e4c36e01eda5021)(@types/react@19.2.15)(next@16.2.6(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(sass@1.97.3))(nextra@4.6.1(next@16.2.6(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(sass@1.97.3))(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@6.0.3))(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(use-sync-external-store@1.6.0(react@19.2.6)): dependencies: '@headlessui/react': 2.2.10(react-dom@19.2.6(react@19.2.6))(react@19.2.6) clsx: 2.1.1 - next: 16.2.6(@babel/core@7.29.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(sass@1.97.3) + next: 16.2.6(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(sass@1.97.3) next-themes: 0.4.6(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - nextra: 4.6.1(next@16.2.6(@babel/core@7.29.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(sass@1.97.3))(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@6.0.3) + nextra: 4.6.1(next@16.2.6(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(sass@1.97.3))(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@6.0.3) react: 19.2.6 react-compiler-runtime: 19.1.0-rc.3(react@19.2.6) react-dom: 19.2.6(react@19.2.6) @@ -14826,7 +13366,7 @@ snapshots: - immer - use-sync-external-store - nextra@4.6.1(next@16.2.6(@babel/core@7.29.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(sass@1.97.3))(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@6.0.3): + nextra@4.6.1(next@16.2.6(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(sass@1.97.3))(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@6.0.3): dependencies: '@formatjs/intl-localematcher': 0.6.2 '@headlessui/react': 2.2.10(react-dom@19.2.6(react@19.2.6))(react@19.2.6) @@ -14847,7 +13387,7 @@ snapshots: mdast-util-gfm: 3.1.0 mdast-util-to-hast: 13.2.1 negotiator: 1.0.0 - next: 16.2.6(@babel/core@7.29.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(sass@1.97.3) + next: 16.2.6(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(sass@1.97.3) react: 19.2.6 react-compiler-runtime: 19.1.0-rc.3(react@19.2.6) react-dom: 19.2.6(react@19.2.6) @@ -14896,14 +13436,12 @@ snapshots: graceful-fs: 4.2.11 nopt: 9.0.0 proc-log: 6.1.0 - semver: 7.8.1 + semver: 7.7.2 tar: 7.5.15 - tinyglobby: 0.2.16 + tinyglobby: 0.2.12 undici: 6.25.0 which: 6.0.1 - node-int64@0.4.0: {} - node-releases@2.0.46: {} nopt@8.1.0: @@ -14925,11 +13463,9 @@ snapshots: dependencies: hosted-git-info: 4.1.0 is-core-module: 2.16.2 - semver: 7.8.1 + semver: 7.7.2 validate-npm-package-license: 3.0.4 - normalize-path@3.0.0: {} - npm-bundled@4.0.0: dependencies: npm-normalize-package-bin: 4.0.0 @@ -14940,11 +13476,11 @@ snapshots: npm-install-checks@7.1.2: dependencies: - semver: 7.8.1 + semver: 7.7.2 npm-install-checks@8.0.0: dependencies: - semver: 7.8.1 + semver: 7.7.4 npm-normalize-package-bin@4.0.0: {} @@ -14961,14 +13497,14 @@ snapshots: dependencies: hosted-git-info: 9.0.3 proc-log: 5.0.0 - semver: 7.8.1 + semver: 7.7.2 validate-npm-package-name: 6.0.2 npm-package-arg@13.0.2: dependencies: hosted-git-info: 9.0.3 proc-log: 6.1.0 - semver: 7.8.1 + semver: 7.7.4 validate-npm-package-name: 7.0.2 npm-packlist@10.0.3: @@ -14986,24 +13522,24 @@ snapshots: npm-install-checks: 7.1.2 npm-normalize-package-bin: 4.0.0 npm-package-arg: 12.0.2 - semver: 7.8.1 + semver: 7.7.2 npm-pick-manifest@11.0.3: dependencies: npm-install-checks: 8.0.0 npm-normalize-package-bin: 5.0.0 npm-package-arg: 13.0.2 - semver: 7.8.1 + semver: 7.7.4 npm-registry-fetch@19.1.0: dependencies: '@npmcli/redact': 3.2.2 jsonparse: 1.3.1 - make-fetch-happen: 15.0.5 + make-fetch-happen: 15.0.2 minipass: 7.1.3 minipass-fetch: 4.0.1 minizlib: 3.1.0 - npm-package-arg: 13.0.2 + npm-package-arg: 13.0.1 proc-log: 5.0.0 transitivePeerDependencies: - supports-color @@ -15035,7 +13571,7 @@ snapshots: dependencies: boolbase: 1.0.0 - nx@22.7.3(@swc/core@1.15.40(@swc/helpers@0.5.21)): + nx@22.7.3: dependencies: '@emnapi/core': 1.4.5 '@emnapi/runtime': 1.4.5 @@ -15158,7 +13694,6 @@ snapshots: '@nx/nx-linux-x64-musl': 22.7.3 '@nx/nx-win32-arm64-msvc': 22.7.3 '@nx/nx-win32-x64-msvc': 22.7.3 - '@swc/core': 1.15.40(@swc/helpers@0.5.21) transitivePeerDependencies: - debug @@ -15237,10 +13772,6 @@ snapshots: dependencies: p-try: 2.2.0 - p-limit@3.1.0: - dependencies: - yocto-queue: 0.1.0 - p-locate@2.0.0: dependencies: p-limit: 1.3.0 @@ -15286,16 +13817,16 @@ snapshots: dependencies: '@npmcli/git': 6.0.3 '@npmcli/installed-package-contents': 3.0.0 - '@npmcli/package-json': 7.0.5 + '@npmcli/package-json': 7.0.2 '@npmcli/promise-spawn': 8.0.3 - '@npmcli/run-script': 10.0.4 + '@npmcli/run-script': 10.0.3 cacache: 20.0.4 fs-minipass: 3.0.3 minipass: 7.1.3 - npm-package-arg: 13.0.2 - npm-packlist: 10.0.4 + npm-package-arg: 13.0.1 + npm-packlist: 10.0.3 npm-pick-manifest: 10.0.0 - npm-registry-fetch: 19.1.1 + npm-registry-fetch: 19.1.0 proc-log: 5.0.0 promise-retry: 2.0.1 sigstore: 4.1.1 @@ -15331,16 +13862,16 @@ snapshots: '@gar/promise-retry': 1.0.3 '@npmcli/git': 7.0.2 '@npmcli/installed-package-contents': 4.0.0 - '@npmcli/package-json': 7.0.5 + '@npmcli/package-json': 7.0.2 '@npmcli/promise-spawn': 9.0.1 - '@npmcli/run-script': 10.0.4 + '@npmcli/run-script': 10.0.3 cacache: 20.0.4 fs-minipass: 3.0.3 minipass: 7.1.3 - npm-package-arg: 13.0.2 - npm-packlist: 10.0.4 + npm-package-arg: 13.0.1 + npm-packlist: 10.0.3 npm-pick-manifest: 11.0.3 - npm-registry-fetch: 19.1.1 + npm-registry-fetch: 19.1.0 proc-log: 6.1.0 sigstore: 4.1.1 ssri: 13.0.1 @@ -15427,19 +13958,12 @@ snapshots: path-exists@4.0.0: {} - path-is-absolute@1.0.1: {} - path-key@3.1.1: {} path-key@4.0.0: {} path-parse@1.0.7: {} - path-scurry@1.11.1: - dependencies: - lru-cache: 10.4.3 - minipass: 7.1.3 - path-scurry@2.0.2: dependencies: lru-cache: 11.5.0 @@ -15465,8 +13989,6 @@ snapshots: pify@3.0.0: {} - pirates@4.0.7: {} - piscina@5.1.4: optionalDependencies: '@napi-rs/nice': 1.1.1 @@ -15557,8 +14079,6 @@ snapshots: picocolors: 1.1.1 sade: 1.8.1 - pure-rand@7.0.1: {} - qs@6.15.2: dependencies: side-channel: 1.1.0 @@ -16186,6 +14706,8 @@ snapshots: side-channel-map: 1.0.1 side-channel-weakmap: 1.0.2 + siginfo@2.0.0: {} + signal-exit@3.0.7: {} signal-exit@4.1.0: {} @@ -16234,11 +14756,6 @@ snapshots: source-map-js@1.2.1: {} - source-map-support@0.5.13: - dependencies: - buffer-from: 1.1.2 - source-map: 0.6.1 - source-map-support@0.5.21: dependencies: buffer-from: 1.1.2 @@ -16283,8 +14800,6 @@ snapshots: dependencies: through: 2.3.8 - sprintf-js@1.0.3: {} - ssri@12.0.0: dependencies: minipass: 7.1.3 @@ -16297,33 +14812,26 @@ snapshots: dependencies: escape-string-regexp: 2.0.0 + stackback@0.0.2: {} + state-local@1.0.7: {} statuses@1.5.0: {} statuses@2.0.2: {} + std-env@4.1.0: {} + stdin-discarder@0.3.2: {} string-argv@0.3.2: {} - string-length@4.0.2: - dependencies: - char-regex: 1.0.2 - strip-ansi: 6.0.1 - string-width@4.2.3: dependencies: emoji-regex: 8.0.0 is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 - string-width@5.1.2: - dependencies: - eastasianwidth: 0.2.0 - emoji-regex: 9.2.2 - strip-ansi: 7.2.0 - string-width@7.2.0: dependencies: emoji-regex: 10.6.0 @@ -16368,8 +14876,6 @@ snapshots: dependencies: min-indent: 1.0.1 - strip-json-comments@3.1.1: {} - strip-outer@1.0.1: dependencies: escape-string-regexp: 1.0.5 @@ -16382,12 +14888,10 @@ snapshots: dependencies: inline-style-parser: 0.2.7 - styled-jsx@5.1.6(@babel/core@7.29.0)(react@19.2.6): + styled-jsx@5.1.6(react@19.2.6): dependencies: client-only: 0.0.1 react: 19.2.6 - optionalDependencies: - '@babel/core': 7.29.0 stylis@4.4.0: {} @@ -16395,16 +14899,8 @@ snapshots: dependencies: has-flag: 4.0.0 - supports-color@8.1.1: - dependencies: - has-flag: 4.0.0 - supports-preserve-symlinks-flag@1.0.0: {} - synckit@0.11.12: - dependencies: - '@pkgr/core': 0.2.9 - system-architecture@0.1.0: {} tabbable@6.4.0: {} @@ -16433,12 +14929,6 @@ snapshots: temporal-spec@0.3.1: {} - test-exclude@6.0.0: - dependencies: - '@istanbuljs/schema': 0.1.6 - glob: 7.2.3 - minimatch: 3.1.5 - text-extensions@1.9.0: {} through2@2.0.5: @@ -16448,6 +14938,8 @@ snapshots: through@2.3.8: {} + tinybench@2.9.0: {} + tinyexec@1.1.2: {} tinyglobby@0.2.12: @@ -16465,6 +14957,8 @@ snapshots: fdir: 6.5.0(picomatch@4.0.4) picomatch: 4.0.4 + tinyrainbow@3.1.0: {} + title@4.0.1: dependencies: arg: 5.0.2 @@ -16473,8 +14967,6 @@ snapshots: tmp@0.2.4: {} - tmpl@1.0.5: {} - to-regex-range@5.0.1: dependencies: is-number: 7.0.0 @@ -16564,12 +15056,8 @@ snapshots: transitivePeerDependencies: - supports-color - type-detect@4.0.8: {} - type-fest@0.18.1: {} - type-fest@0.21.3: {} - type-fest@0.6.0: {} type-fest@0.8.1: {} @@ -16679,33 +15167,6 @@ snapshots: unpipe@1.0.0: {} - unrs-resolver@1.12.2: - dependencies: - napi-postinstall: 0.3.4 - optionalDependencies: - '@unrs/resolver-binding-android-arm-eabi': 1.12.2 - '@unrs/resolver-binding-android-arm64': 1.12.2 - '@unrs/resolver-binding-darwin-arm64': 1.12.2 - '@unrs/resolver-binding-darwin-x64': 1.12.2 - '@unrs/resolver-binding-freebsd-x64': 1.12.2 - '@unrs/resolver-binding-linux-arm-gnueabihf': 1.12.2 - '@unrs/resolver-binding-linux-arm-musleabihf': 1.12.2 - '@unrs/resolver-binding-linux-arm64-gnu': 1.12.2 - '@unrs/resolver-binding-linux-arm64-musl': 1.12.2 - '@unrs/resolver-binding-linux-loong64-gnu': 1.12.2 - '@unrs/resolver-binding-linux-loong64-musl': 1.12.2 - '@unrs/resolver-binding-linux-ppc64-gnu': 1.12.2 - '@unrs/resolver-binding-linux-riscv64-gnu': 1.12.2 - '@unrs/resolver-binding-linux-riscv64-musl': 1.12.2 - '@unrs/resolver-binding-linux-s390x-gnu': 1.12.2 - '@unrs/resolver-binding-linux-x64-gnu': 1.12.2 - '@unrs/resolver-binding-linux-x64-musl': 1.12.2 - '@unrs/resolver-binding-openharmony-arm64': 1.12.2 - '@unrs/resolver-binding-wasm32-wasi': 1.12.2 - '@unrs/resolver-binding-win32-arm64-msvc': 1.12.2 - '@unrs/resolver-binding-win32-ia32-msvc': 1.12.2 - '@unrs/resolver-binding-win32-x64-msvc': 1.12.2 - upath@2.0.1: {} update-browserslist-db@1.2.3(browserslist@4.28.2): @@ -16722,12 +15183,6 @@ snapshots: uuid@14.0.0: {} - v8-to-istanbul@9.3.0: - dependencies: - '@jridgewell/trace-mapping': 0.3.31 - '@types/istanbul-lib-coverage': 2.0.6 - convert-source-map: 2.0.0 - validate-npm-package-license@3.0.4: dependencies: spdx-correct: 3.2.0 @@ -16763,7 +15218,7 @@ snapshots: picomatch: 4.0.4 postcss: 8.5.15 rollup: 4.60.4 - tinyglobby: 0.2.16 + tinyglobby: 0.2.15 optionalDependencies: '@types/node': 22.19.19 fsevents: 2.3.3 @@ -16771,6 +15226,34 @@ snapshots: tsx: 4.22.3 yaml: 2.9.0 + vitest@4.1.7(@types/node@22.19.19)(@vitest/coverage-v8@4.1.7)(vite@7.3.2(@types/node@22.19.19)(sass@1.97.3)(tsx@4.22.3)(yaml@2.9.0)): + dependencies: + '@vitest/expect': 4.1.7 + '@vitest/mocker': 4.1.7(vite@7.3.2(@types/node@22.19.19)(sass@1.97.3)(tsx@4.22.3)(yaml@2.9.0)) + '@vitest/pretty-format': 4.1.7 + '@vitest/runner': 4.1.7 + '@vitest/snapshot': 4.1.7 + '@vitest/spy': 4.1.7 + '@vitest/utils': 4.1.7 + es-module-lexer: 2.1.0 + expect-type: 1.3.0 + magic-string: 0.30.21 + obug: 2.1.1 + pathe: 2.0.3 + picomatch: 4.0.4 + std-env: 4.1.0 + tinybench: 2.9.0 + tinyexec: 1.1.2 + tinyglobby: 0.2.16 + tinyrainbow: 3.1.0 + vite: 7.3.2(@types/node@22.19.19)(sass@1.97.3)(tsx@4.22.3)(yaml@2.9.0) + why-is-node-running: 2.3.0 + optionalDependencies: + '@types/node': 22.19.19 + '@vitest/coverage-v8': 4.1.7(vitest@4.1.7) + transitivePeerDependencies: + - msw + vscode-jsonrpc@8.2.0: {} vscode-languageserver-protocol@3.17.5: @@ -16788,10 +15271,6 @@ snapshots: walk-up-path@4.0.0: {} - walker@1.0.8: - dependencies: - makeerror: 1.0.12 - watchpack@2.5.1: dependencies: glob-to-regexp: 0.4.1 @@ -16818,6 +15297,11 @@ snapshots: dependencies: isexe: 4.0.0 + why-is-node-running@2.3.0: + dependencies: + siginfo: 2.0.0 + stackback: 0.0.2 + wicked-good-xpath@1.3.0: {} wide-align@1.1.5: @@ -16844,12 +15328,6 @@ snapshots: string-width: 4.2.3 strip-ansi: 6.0.1 - wrap-ansi@8.1.0: - dependencies: - ansi-styles: 6.2.3 - string-width: 5.1.2 - strip-ansi: 7.2.0 - wrap-ansi@9.0.2: dependencies: ansi-styles: 6.2.3 @@ -16917,8 +15395,6 @@ snapshots: y18n: 5.0.8 yargs-parser: 22.0.0 - yocto-queue@0.1.0: {} - yoctocolors-cjs@2.1.3: {} yoctocolors@2.1.2: {} diff --git a/vitest.base.ts b/vitest.base.ts new file mode 100644 index 000000000..e0f223143 --- /dev/null +++ b/vitest.base.ts @@ -0,0 +1,12 @@ +import * as inspector from "node:inspector" +import {defineProject} from "vitest/config" + +export const baseTestConfig = defineProject({ + test: { + environment: "node", + include: ["**/*.spec.ts", "**/*.integration.ts"], + globals: false, + mockReset: true, + testTimeout: inspector.url() ? 5 * 60 * 1000 : 5 * 1000, + }, +}) diff --git a/vitest.config.ts b/vitest.config.ts new file mode 100644 index 000000000..70ac9f8de --- /dev/null +++ b/vitest.config.ts @@ -0,0 +1,23 @@ +import {defineConfig, defineProject} from "vitest/config" +import {baseTestConfig} from "./vitest.base" + +const packageFactory = (name: string) => + defineProject({ + root: `./packages/${name}`, + test: { + ...baseTestConfig.test, + name: `@nahkies/${name}`, + }, + }) + +export default defineConfig({ + test: { + projects: [ + packageFactory("openapi-code-generator"), + packageFactory("typescript-axios-runtime"), + packageFactory("typescript-express-runtime"), + packageFactory("typescript-fetch-runtime"), + packageFactory("typescript-koa-runtime"), + ], + }, +})