From b077b5e159b7180e42113e1aa32e1274fa6ed8ab Mon Sep 17 00:00:00 2001 From: Eric Anderson Date: Mon, 12 Aug 2024 11:54:18 -0400 Subject: [PATCH] Upgrade to vitest2 (#530) * Upgrade to vitest2 * Migrate foundry-sdk-generators e2e tests * Restore __dirname for cjs * fix generate --- .changeset/lovely-kangaroos-think.md | 2 + .gitignore | 1 + .monorepolint.config.mjs | 14 +- package.json | 2 +- packages/client/src/object/Cache.test.ts | 28 +- packages/client/src/object/Cache.ts | 15 +- .../ObjectSetListenerWebsocket.test.ts | 2 +- .../generateMockOntology.js} | 82 +++- .../package.json | 11 +- .../src}/GeneratePackageCommand.test.ts | 7 +- .../src/legacy-client}/actions.test.ts | 0 .../src/legacy-client}/aggregations.test.ts | 0 .../src/legacy-client}/attachements.test.ts | 0 .../src/legacy-client}/consola.ts | 0 .../src/legacy-client}/loadObjects.test.ts | 15 +- .../src/legacy-client}/module.d.ts | 0 .../src/legacy-client}/objectSet.test.ts | 0 .../src/legacy-client}/paginationHelpers.ts | 0 .../src/legacy-client}/queries.test.ts | 0 .../src/legacy-client}/resultUtils.ts | 0 .../src/legacy-client}/search.test.ts | 11 +- .../tsconfig.cjs.json | 3 + .../tsconfig.json | 3 + .../tsup.config.js | 4 +- .../e2e.test.foundry-sdk-generator/turbo.json | 12 +- .../vitest.config.mts | 33 ++ .../generate/betaClient/generatePackage.ts | 7 +- .../src/generate/generateBundles.ts | 2 + packages/foundry-sdk-generator/src/index.ts | 1 + .../metadataResolver.test.ts.snap | 0 .../metadataResolver.test.ts | 5 +- .../foundry-sdk-generator/tsconfig.cjs.json | 1 - packages/foundry-sdk-generator/tsconfig.json | 1 - .../foundry-sdk-generator/vitest.config.mts | 8 +- packages/generator-converters/package.json | 2 +- packages/generator/package.json | 2 +- .../src/util/test/createMockMinimalFiles.ts | 9 +- packages/maker/package.json | 2 +- packages/monorepo.cspell/cspell.config.js | 3 +- packages/monorepo.tsup/tsup.mjs | 1 + packages/tool.release/package.json | 2 +- pnpm-lock.yaml | 419 ++++++++---------- 42 files changed, 394 insertions(+), 316 deletions(-) create mode 100644 .changeset/lovely-kangaroos-think.md rename packages/{foundry-sdk-generator/src/__e2e_tests__/testSetup.ts => e2e.test.foundry-sdk-generator/generateMockOntology.js} (61%) mode change 100755 => 100644 rename packages/{foundry-sdk-generator/src/generate => e2e.test.foundry-sdk-generator/src}/GeneratePackageCommand.test.ts (92%) rename packages/{foundry-sdk-generator/src/__e2e_tests__ => e2e.test.foundry-sdk-generator/src/legacy-client}/actions.test.ts (100%) rename packages/{foundry-sdk-generator/src/__e2e_tests__ => e2e.test.foundry-sdk-generator/src/legacy-client}/aggregations.test.ts (100%) rename packages/{foundry-sdk-generator/src/__e2e_tests__ => e2e.test.foundry-sdk-generator/src/legacy-client}/attachements.test.ts (100%) rename packages/{foundry-sdk-generator/src/__e2e_tests__ => e2e.test.foundry-sdk-generator/src/legacy-client}/consola.ts (100%) rename packages/{foundry-sdk-generator/src/__e2e_tests__ => e2e.test.foundry-sdk-generator/src/legacy-client}/loadObjects.test.ts (98%) rename packages/{foundry-sdk-generator/src/__e2e_tests__ => e2e.test.foundry-sdk-generator/src/legacy-client}/module.d.ts (100%) rename packages/{foundry-sdk-generator/src/__e2e_tests__ => e2e.test.foundry-sdk-generator/src/legacy-client}/objectSet.test.ts (100%) rename packages/{foundry-sdk-generator/src/__e2e_tests__ => e2e.test.foundry-sdk-generator/src/legacy-client}/paginationHelpers.ts (100%) rename packages/{foundry-sdk-generator/src/__e2e_tests__ => e2e.test.foundry-sdk-generator/src/legacy-client}/queries.test.ts (100%) rename packages/{foundry-sdk-generator/src/__e2e_tests__ => e2e.test.foundry-sdk-generator/src/legacy-client}/resultUtils.ts (100%) rename packages/{foundry-sdk-generator/src/__e2e_tests__ => e2e.test.foundry-sdk-generator/src/legacy-client}/search.test.ts (98%) create mode 100644 packages/e2e.test.foundry-sdk-generator/vitest.config.mts rename packages/foundry-sdk-generator/src/{__e2e_tests__ => ontologyMetadata}/__snapshots__/metadataResolver.test.ts.snap (100%) rename packages/foundry-sdk-generator/src/{__e2e_tests__ => ontologyMetadata}/metadataResolver.test.ts (98%) diff --git a/.changeset/lovely-kangaroos-think.md b/.changeset/lovely-kangaroos-think.md new file mode 100644 index 000000000..a845151cc --- /dev/null +++ b/.changeset/lovely-kangaroos-think.md @@ -0,0 +1,2 @@ +--- +--- diff --git a/.gitignore b/.gitignore index 1b89f1029..3ebdfcece 100644 --- a/.gitignore +++ b/.gitignore @@ -28,6 +28,7 @@ packages/client/src/generatedNoCheck packages/client.test.ontology/src/generatedNoCheck packages/legacy-client/src/generatedNoCheck packages/create-app.template.*/src/generatedNoCheck +packages/e2e.test.foundry-sdk-generator/src/generatedNoCheck .log pnpm-publish-summary.json diff --git a/.monorepolint.config.mjs b/.monorepolint.config.mjs index 1113ae435..4684ac475 100644 --- a/.monorepolint.config.mjs +++ b/.monorepolint.config.mjs @@ -51,6 +51,7 @@ const nonStandardPackages = [ "@osdk/e2e.sandbox.todoapp", "@osdk/examples.*", "@osdk/foundry-sdk-generator", + "@osdk/e2e.test.foundry-sdk-generator", "@osdk/monorepo.*", // internal monorepo packages "@osdk/shared.client", // hand written package that only exposes a symbol "@osdk/tests.*", @@ -241,7 +242,7 @@ function getTsconfigOptions(baseTsconfigPath, opts) { * legacy: boolean, * esmOnly?: boolean, * customTsconfigExcludes?: string[], - * tsVersion?: "^5.5.2"|"^4.9.5", + * tsVersion?: typeof LATEST_TYPESCRIPT_DEP | "^4.9.5", * skipTsconfigReferences?: boolean * singlePackageName?: string * }} options @@ -491,7 +492,16 @@ NOTE: DO NOT EDIT THIS README BY HAND. It is generated by monorepolint. legacy: false, tsVersion: LATEST_TYPESCRIPT_DEP, customTsconfigExcludes: [ - "./src/__e2e_tests__/**/**.test.ts", + "./src/generatedNoCheck/**/*", + ], + }), + ...standardPackageRules({ + includePackages: ["@osdk/e2e.test.foundry-sdk-generator"], + }, { + legacy: false, + esmOnly: true, + tsVersion: LATEST_TYPESCRIPT_DEP, + customTsconfigExcludes: [ "./src/generatedNoCheck/**/*", ], }), diff --git a/package.json b/package.json index 4bbab1b7a..c4014916f 100644 --- a/package.json +++ b/package.json @@ -53,7 +53,7 @@ "turbo": "^2.0.9", "typescript": "^5.5.3", "typescript-eslint": "^7.17.0", - "vitest": "^1.6.0" + "vitest": "^2.0.4" }, "pnpm": { "overrides": { diff --git a/packages/client/src/object/Cache.test.ts b/packages/client/src/object/Cache.test.ts index c6245b685..9371e3cc6 100644 --- a/packages/client/src/object/Cache.test.ts +++ b/packages/client/src/object/Cache.test.ts @@ -23,7 +23,7 @@ import { promiseStateAsync as pStateAsync } from "p-state"; import type { Mock, MockInstance } from "vitest"; import { beforeAll, beforeEach, describe, expect, it, vi } from "vitest"; import type { MinimalClient } from "../MinimalClientContext.js"; -import type { AsyncClientCache } from "./Cache.js"; +import type { AsyncClientCache, AsyncFactory } from "./Cache.js"; import { createAsyncClientCache, createClientCache } from "./Cache.js"; declare module "vitest" { @@ -89,20 +89,14 @@ describe("AsyncCache", () => { }); describe("race checks", () => { - let factoryFn: Mock<[MinimalClient, string], Promise>; + let factoryFn: Mock>; let cache: ReturnType; let inProgress: ReturnType; let asyncCache: AsyncClientCache; let asyncCacheSpies: { - [K in keyof typeof asyncCache]: MockInstance< - Parameters, - ReturnType - >; + [K in keyof typeof asyncCache]: MockInstance; }; - let asyncSetSpy: MockInstance< - [client: MinimalClient, key: string, value: string | Promise], - Promise - >; + let asyncSetSpy: MockInstance; let factoryDefers: DeferredPromise[]; let getPromises: Promise[]; @@ -114,7 +108,7 @@ describe("AsyncCache", () => { let expectedPending: Record = {}; beforeEach(async () => { - factoryFn = vi.fn>(); + factoryFn = vi.fn(); factoryFn.mockImplementation(() => { const defer = pDefer(); factoryDefers.push(defer); @@ -274,10 +268,10 @@ describe("AsyncCache", () => { i++ ) { if (asyncCacheSpies.get.mock.calls[i][1] === key) { - expect(asyncCacheSpies.get.mock.results[i].type).toBe( - "throw", + expect(asyncCacheSpies.get.mock.settledResults[i].type).toBe( + "rejected", ); - expect(asyncCacheSpies.get.mock.results[i].value) + expect(asyncCacheSpies.get.mock.settledResults[i].value) .toMatchInlineSnapshot(`[Error: aError]`); } } @@ -352,7 +346,7 @@ describe("AsyncCache", () => { function itReturnsForAsyncGet(results: any[]) { it("returns for async get", () => { - expect(asyncCacheSpies.get.mock.results.map(a => a.value)) + expect(asyncCacheSpies.get.mock.settledResults.map(a => a.value)) .toEqual(results); }); } @@ -396,8 +390,8 @@ describe("AsyncCache", () => { ]); itReturnsForAsyncGet([ - expect.any(Promise), - expect.any(Promise), + undefined, + undefined, "bResult", ]); }); diff --git a/packages/client/src/object/Cache.ts b/packages/client/src/object/Cache.ts index c415631db..b6c9ed6b9 100644 --- a/packages/client/src/object/Cache.ts +++ b/packages/client/src/object/Cache.ts @@ -26,6 +26,7 @@ interface ClientCache { } /** + * @internal * A simple async cache that can be used to store values for a given client. */ export interface AsyncClientCache { @@ -46,9 +47,11 @@ export interface AsyncClientCache { ) => Promise; } -type Factory = (client: MinimalClient, key: K) => V; +/** @internal */ +export type Factory = (client: MinimalClient, key: K) => V; /** + * @internal * Create a new cache without a factory function. */ export function createClientCache(): ClientCache< @@ -56,6 +59,7 @@ export function createClientCache(): ClientCache< V | undefined >; /** + * @internal * Create a new cache with a factory function. * @param fn A factory function that will be used to create the value if it does not exist in the cache. */ @@ -101,13 +105,20 @@ export function createClientCache( return { get, set, remove } as ClientCache; } +/** @internal */ +export type AsyncFactory = ( + client: MinimalClient, + key: K, +) => Promise; + /** + * @internal * Create a new cache with an async factory function. * @param fn A factory function that will be used to create the value if it does not exist in the cache. * @returns */ export function createAsyncClientCache( - fn: (client: MinimalClient, key: K) => Promise, + fn: AsyncFactory, createCacheLocal: typeof createClientCache = createClientCache, ): AsyncClientCache { const cache = createCacheLocal(); diff --git a/packages/client/src/objectSet/ObjectSetListenerWebsocket.test.ts b/packages/client/src/objectSet/ObjectSetListenerWebsocket.test.ts index 37961ea76..c37e373b9 100644 --- a/packages/client/src/objectSet/ObjectSetListenerWebsocket.test.ts +++ b/packages/client/src/objectSet/ObjectSetListenerWebsocket.test.ts @@ -419,7 +419,7 @@ function createMockWebSocketConstructor( eventEmitter.removeEventListener.bind(eventEmitter), ) as any, - send: vi.fn((a, _b) => { + send: vi.fn((a, _b: any) => { logger.debug( { message: JSON.parse(a.toString()), webSocketInst }, "send() called", diff --git a/packages/foundry-sdk-generator/src/__e2e_tests__/testSetup.ts b/packages/e2e.test.foundry-sdk-generator/generateMockOntology.js old mode 100755 new mode 100644 similarity index 61% rename from packages/foundry-sdk-generator/src/__e2e_tests__/testSetup.ts rename to packages/e2e.test.foundry-sdk-generator/generateMockOntology.js index f81a88c16..762028b38 --- a/packages/foundry-sdk-generator/src/__e2e_tests__/testSetup.ts +++ b/packages/e2e.test.foundry-sdk-generator/generateMockOntology.js @@ -1,5 +1,5 @@ /* - * Copyright 2023 Palantir Technologies, Inc. All rights reserved. + * Copyright 2024 Palantir Technologies, Inc. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,21 +14,31 @@ * limitations under the License. */ +// @ts-check +import { __testSeamOnly_NotSemverStable__GeneratePackageCommand as GeneratePackageCommand } from "@osdk/foundry-sdk-generator"; import { apiServer } from "@osdk/shared.test"; -import { rm } from "fs/promises"; -import { join } from "path"; -import { GeneratePackageCommand } from "../generate/index.js"; +import * as fs from "node:fs/promises"; +import * as path from "node:path"; +import { fileURLToPath } from "node:url"; -const dir = `${__dirname}/../generatedNoCheck/`; -export async function setup() { +const dir = path.join( + path.dirname(fileURLToPath(import.meta.url)), + "src", + "generatedNoCheck", +); +async function setup() { apiServer.listen(); - try { - await rm(join(dir, "@test-app"), { recursive: true }); - await rm(join(dir, "@test-app2"), { recursive: true }); - } catch (e) { - // Only needed for regenerations - } + const testAppDir = path.join(dir, "@test-app"); + const testApp2Dir = path.join(dir, "@test-app2"); + + await rmRf(testAppDir); + await rmRf(testApp2Dir); + + await safeStat(testAppDir, "should not exist"); + await safeStat(testApp2Dir, "should not exist"); + + await fs.mkdir(dir, { recursive: true }); const generatePackageCommand = new GeneratePackageCommand(); await generatePackageCommand.handler({ @@ -69,6 +79,8 @@ export async function setup() { $0: "", }); + await safeStat(testAppDir, "should exist"); + await generatePackageCommand.handler({ packageName: "@test-app2/osdk", packageVersion: "0.0.1", @@ -107,10 +119,54 @@ export async function setup() { _: [], $0: "", }); + + await safeStat(testApp2Dir, "should exist"); } export async function teardown() { // eslint-disable-next-line no-console - console.log("Test teardown: stopping API server"); + console.log("teardown: stopping API server"); apiServer.close(); } + +await setup(); +await teardown(); + +/** + * @param {string} testAppDir + */ +async function rmRf(testAppDir) { + try { + await fs.rm(testAppDir, { recursive: true }); + } catch (e) { + // eslint-disable-next-line no-console + console.debug("rm error", e); + // Only needed for regenerations + } +} + +/** + * @param {string} filePath + * @param {"should exist" | "should not exist"} type + * @returns + */ +async function safeStat(filePath, type) { + try { + const ret = await fs.stat(filePath); + if (type !== "should exist") { + throw new Error(`Expected ${filePath} to not exist`); + } + + // eslint-disable-next-line no-console + console.log(`safeStat: ${filePath} exists`); + return ret; + } catch (e) { + if (type === "should exist") { + throw new Error(`Expected ${filePath} to exist`); + } + + // eslint-disable-next-line no-console + console.log(`safeStat: ${filePath} does not exist`); + return undefined; + } +} diff --git a/packages/e2e.test.foundry-sdk-generator/package.json b/packages/e2e.test.foundry-sdk-generator/package.json index e8e8aba55..21e38193d 100644 --- a/packages/e2e.test.foundry-sdk-generator/package.json +++ b/packages/e2e.test.foundry-sdk-generator/package.json @@ -9,34 +9,35 @@ }, "exports": { ".": { - "require": "./build/cjs/index.cjs", "browser": "./build/browser/index.js", "import": "./build/esm/index.js" }, "./*": { - "require": "./build/cjs/public/*.cjs", "browser": "./build/browser/public/*.js", "import": "./build/esm/public/*.js" } }, "scripts": { - "check-attw": "monorepo.tool.attw both", + "check-attw": "monorepo.tool.attw esm", "check-spelling": "cspell --quiet .", "clean": "rm -rf lib dist types build tsconfig.tsbuildinfo", + "codegen": "node ./generateMockOntology.js", "fix-lint": "eslint . --fix && dprint fmt --config $(find-up dprint.json)", "lint": "eslint . && dprint check --config $(find-up dprint.json)", "test": "vitest run --pool=forks", "transpile": "monorepo.tool.transpile", - "typecheck": "monorepo.tool.typecheck both" + "typecheck": "monorepo.tool.typecheck esm" }, "dependencies": { "@osdk/foundry-sdk-generator": "workspace:~", "execa": "^9.3.0" }, "devDependencies": { + "@osdk/legacy-client": "workspace:~", "@osdk/monorepo.api-extractor": "workspace:~", "@osdk/monorepo.tsconfig": "workspace:~", "@osdk/monorepo.tsup": "workspace:~", + "@osdk/shared.test": "workspace:~", "typescript": "^5.5.4" }, "publishConfig": { @@ -53,6 +54,6 @@ ], "main": "./build/cjs/index.cjs", "module": "./build/esm/index.js", - "types": "./build/cjs/index.d.cts", + "types": "./build/esm/index.d.ts", "type": "module" } diff --git a/packages/foundry-sdk-generator/src/generate/GeneratePackageCommand.test.ts b/packages/e2e.test.foundry-sdk-generator/src/GeneratePackageCommand.test.ts similarity index 92% rename from packages/foundry-sdk-generator/src/generate/GeneratePackageCommand.test.ts rename to packages/e2e.test.foundry-sdk-generator/src/GeneratePackageCommand.test.ts index 5bb26dfb4..dac5b9310 100644 --- a/packages/foundry-sdk-generator/src/generate/GeneratePackageCommand.test.ts +++ b/packages/e2e.test.foundry-sdk-generator/src/GeneratePackageCommand.test.ts @@ -17,15 +17,14 @@ import { existsSync } from "node:fs"; import * as fs from "node:fs/promises"; import * as path from "node:path"; +import { fileURLToPath } from "node:url"; import { describe, expect, it } from "vitest"; -import { GeneratePackageCommand } from "./GeneratePackageCommand.js"; -describe(GeneratePackageCommand, () => { +describe("Generate Package Command", () => { // ensure that we do not break backcompat by retaining our scripts export that links to the bundled types and esm output it("has a public scripts export", async () => { const generatedPath = path.join( - __dirname, - "..", + path.dirname(fileURLToPath(import.meta.url)), "generatedNoCheck", "@test-app", "osdk", diff --git a/packages/foundry-sdk-generator/src/__e2e_tests__/actions.test.ts b/packages/e2e.test.foundry-sdk-generator/src/legacy-client/actions.test.ts similarity index 100% rename from packages/foundry-sdk-generator/src/__e2e_tests__/actions.test.ts rename to packages/e2e.test.foundry-sdk-generator/src/legacy-client/actions.test.ts diff --git a/packages/foundry-sdk-generator/src/__e2e_tests__/aggregations.test.ts b/packages/e2e.test.foundry-sdk-generator/src/legacy-client/aggregations.test.ts similarity index 100% rename from packages/foundry-sdk-generator/src/__e2e_tests__/aggregations.test.ts rename to packages/e2e.test.foundry-sdk-generator/src/legacy-client/aggregations.test.ts diff --git a/packages/foundry-sdk-generator/src/__e2e_tests__/attachements.test.ts b/packages/e2e.test.foundry-sdk-generator/src/legacy-client/attachements.test.ts similarity index 100% rename from packages/foundry-sdk-generator/src/__e2e_tests__/attachements.test.ts rename to packages/e2e.test.foundry-sdk-generator/src/legacy-client/attachements.test.ts diff --git a/packages/foundry-sdk-generator/src/__e2e_tests__/consola.ts b/packages/e2e.test.foundry-sdk-generator/src/legacy-client/consola.ts similarity index 100% rename from packages/foundry-sdk-generator/src/__e2e_tests__/consola.ts rename to packages/e2e.test.foundry-sdk-generator/src/legacy-client/consola.ts diff --git a/packages/foundry-sdk-generator/src/__e2e_tests__/loadObjects.test.ts b/packages/e2e.test.foundry-sdk-generator/src/legacy-client/loadObjects.test.ts similarity index 98% rename from packages/foundry-sdk-generator/src/__e2e_tests__/loadObjects.test.ts rename to packages/e2e.test.foundry-sdk-generator/src/legacy-client/loadObjects.test.ts index 693ba82ae..4a623321f 100644 --- a/packages/foundry-sdk-generator/src/__e2e_tests__/loadObjects.test.ts +++ b/packages/e2e.test.foundry-sdk-generator/src/legacy-client/loadObjects.test.ts @@ -14,6 +14,7 @@ * limitations under the License. */ +import { apiServer, loadAll, stubData } from "@osdk/shared.test"; import { afterAll, beforeAll, @@ -39,8 +40,6 @@ import type { Page, Result, } from "../generatedNoCheck/@test-app/osdk/index.js"; - -import { apiServer, loadAll, stubData } from "@osdk/shared.test"; import type { Employee, Office, @@ -123,7 +122,7 @@ describe("LoadObjects", () => { const emp = assertOkOrThrow(result); - expectTypeOf(emp).toEqualTypeOf<{ + expectTypeOf(emp).branded.toEqualTypeOf<{ readonly fullName: string | undefined; readonly __primaryKey: number; readonly __apiName: "Employee"; @@ -141,7 +140,7 @@ describe("LoadObjects", () => { const emp = assertOkOrThrow(result); - expectTypeOf(emp).toEqualTypeOf<{ + expectTypeOf(emp).branded.toEqualTypeOf<{ readonly fullName: string | undefined; readonly __primaryKey: number; readonly __apiName: "Employee"; @@ -157,7 +156,7 @@ describe("LoadObjects", () => { const emp = await client.ontology.objects.Employee.select(["fullName"]) .fetchOne(stubData.employee1.__primaryKey); - expectTypeOf(emp).toEqualTypeOf<{ + expectTypeOf(emp).branded.toEqualTypeOf<{ readonly fullName: string | undefined; readonly __primaryKey: number; readonly __apiName: "Employee"; @@ -500,7 +499,7 @@ describe("LoadObjects", () => { .all(); const employees = assertOkOrThrow(result); expect(employees.length).toEqual(3); - expectTypeOf(employees[0]).toEqualTypeOf<{ + expectTypeOf(employees[0]).branded.toEqualTypeOf<{ readonly fullName: string | undefined; readonly __primaryKey: number; readonly __apiName: "Employee"; @@ -515,7 +514,7 @@ describe("LoadObjects", () => { .asyncIter(), ); expect(employees.length).toEqual(3); - expectTypeOf(employees[0]).toEqualTypeOf<{ + expectTypeOf(employees[0]).branded.toEqualTypeOf<{ readonly fullName: string | undefined; readonly __primaryKey: number; readonly __apiName: "Employee"; @@ -529,7 +528,7 @@ describe("LoadObjects", () => { .fetchPageWithErrors({ pageSize: 2 }); const employees = assertOkOrThrow(result); expect(employees.data.length).toEqual(2); - expectTypeOf(employees.data[0]).toEqualTypeOf<{ + expectTypeOf(employees.data[0]).branded.toEqualTypeOf<{ readonly fullName: string | undefined; readonly __primaryKey: number; readonly __apiName: "Employee"; diff --git a/packages/foundry-sdk-generator/src/__e2e_tests__/module.d.ts b/packages/e2e.test.foundry-sdk-generator/src/legacy-client/module.d.ts similarity index 100% rename from packages/foundry-sdk-generator/src/__e2e_tests__/module.d.ts rename to packages/e2e.test.foundry-sdk-generator/src/legacy-client/module.d.ts diff --git a/packages/foundry-sdk-generator/src/__e2e_tests__/objectSet.test.ts b/packages/e2e.test.foundry-sdk-generator/src/legacy-client/objectSet.test.ts similarity index 100% rename from packages/foundry-sdk-generator/src/__e2e_tests__/objectSet.test.ts rename to packages/e2e.test.foundry-sdk-generator/src/legacy-client/objectSet.test.ts diff --git a/packages/foundry-sdk-generator/src/__e2e_tests__/paginationHelpers.ts b/packages/e2e.test.foundry-sdk-generator/src/legacy-client/paginationHelpers.ts similarity index 100% rename from packages/foundry-sdk-generator/src/__e2e_tests__/paginationHelpers.ts rename to packages/e2e.test.foundry-sdk-generator/src/legacy-client/paginationHelpers.ts diff --git a/packages/foundry-sdk-generator/src/__e2e_tests__/queries.test.ts b/packages/e2e.test.foundry-sdk-generator/src/legacy-client/queries.test.ts similarity index 100% rename from packages/foundry-sdk-generator/src/__e2e_tests__/queries.test.ts rename to packages/e2e.test.foundry-sdk-generator/src/legacy-client/queries.test.ts diff --git a/packages/foundry-sdk-generator/src/__e2e_tests__/resultUtils.ts b/packages/e2e.test.foundry-sdk-generator/src/legacy-client/resultUtils.ts similarity index 100% rename from packages/foundry-sdk-generator/src/__e2e_tests__/resultUtils.ts rename to packages/e2e.test.foundry-sdk-generator/src/legacy-client/resultUtils.ts diff --git a/packages/foundry-sdk-generator/src/__e2e_tests__/search.test.ts b/packages/e2e.test.foundry-sdk-generator/src/legacy-client/search.test.ts similarity index 98% rename from packages/foundry-sdk-generator/src/__e2e_tests__/search.test.ts rename to packages/e2e.test.foundry-sdk-generator/src/legacy-client/search.test.ts index 16e5e39ea..4ec195f35 100644 --- a/packages/foundry-sdk-generator/src/__e2e_tests__/search.test.ts +++ b/packages/e2e.test.foundry-sdk-generator/src/legacy-client/search.test.ts @@ -14,6 +14,7 @@ * limitations under the License. */ +import { apiServer, loadAll } from "@osdk/shared.test"; import { afterAll, beforeAll, @@ -35,8 +36,6 @@ import type { Result, SearchObjectsError, } from "../generatedNoCheck/@test-app/osdk/index.js"; - -import { apiServer, loadAll } from "@osdk/shared.test"; import type { Employee, Office, @@ -428,10 +427,12 @@ describe("SearchObjects", () => { const employees = assertOkOrThrow(result); expect(employees.data.length).toEqual(1); expect(employees.data[0].fullName).toEqual("John Doe"); - expectTypeOf(employees.data[0]).toEqualTypeOf<{ + expectTypeOf(employees.data[0]).branded.toEqualTypeOf<{ readonly fullName: string | undefined; readonly __primaryKey: number; readonly __apiName: "Employee"; + readonly $primaryKey: number; + readonly $apiName: "Employee"; }>(); }); @@ -446,10 +447,12 @@ describe("SearchObjects", () => { const employees = assertOkOrThrow(result); expect(employees.data.length).toEqual(1); expect(employees.data[0].fullName).toEqual("John Doe"); - expectTypeOf(employees.data[0]).toEqualTypeOf<{ + expectTypeOf(employees.data[0]).branded.toEqualTypeOf<{ readonly fullName: string | undefined; readonly __primaryKey: number; readonly __apiName: "Employee"; + readonly $primaryKey: number; + readonly $apiName: "Employee"; }>(); }); diff --git a/packages/e2e.test.foundry-sdk-generator/tsconfig.cjs.json b/packages/e2e.test.foundry-sdk-generator/tsconfig.cjs.json index 3e2ecf7d1..ac1b8bdfb 100644 --- a/packages/e2e.test.foundry-sdk-generator/tsconfig.cjs.json +++ b/packages/e2e.test.foundry-sdk-generator/tsconfig.cjs.json @@ -10,5 +10,8 @@ "include": [ "./src/**/*" ], + "exclude": [ + "./src/generatedNoCheck/**/*" + ], "references": [] } diff --git a/packages/e2e.test.foundry-sdk-generator/tsconfig.json b/packages/e2e.test.foundry-sdk-generator/tsconfig.json index 6c1ec6f17..27fae9420 100644 --- a/packages/e2e.test.foundry-sdk-generator/tsconfig.json +++ b/packages/e2e.test.foundry-sdk-generator/tsconfig.json @@ -7,5 +7,8 @@ "include": [ "./src/**/*" ], + "exclude": [ + "./src/generatedNoCheck/**/*" + ], "references": [] } diff --git a/packages/e2e.test.foundry-sdk-generator/tsup.config.js b/packages/e2e.test.foundry-sdk-generator/tsup.config.js index 7a77e08bc..cfc2b707b 100644 --- a/packages/e2e.test.foundry-sdk-generator/tsup.config.js +++ b/packages/e2e.test.foundry-sdk-generator/tsup.config.js @@ -17,5 +17,7 @@ import { defineConfig } from "tsup"; export default defineConfig(async (options) => - (await import("@osdk/monorepo.tsup")).default(options, {}) + (await import("@osdk/monorepo.tsup")).default(options, { + esmOnly: true, + }) ); diff --git a/packages/e2e.test.foundry-sdk-generator/turbo.json b/packages/e2e.test.foundry-sdk-generator/turbo.json index e5c117d27..4966d8326 100644 --- a/packages/e2e.test.foundry-sdk-generator/turbo.json +++ b/packages/e2e.test.foundry-sdk-generator/turbo.json @@ -2,7 +2,17 @@ "extends": ["//"], "tasks": { "test": { - "dependsOn": ["@osdk/foundry-sdk-generator#transpile"] + "dependsOn": ["@osdk/foundry-sdk-generator#transpile", "codegen"] + }, + "codegen": { + "inputs": ["generateMockOntology.js"], + "outputs": ["src/generatedNoCheck/**/*"], + "dependsOn": [ + "@osdk/foundry-sdk-generator#transpile", + "@osdk/foundry-sdk-generator#typecheck", + "@osdk/shared.test#transpile", + "@osdk/shared.test#typecheck" + ] } } } diff --git a/packages/e2e.test.foundry-sdk-generator/vitest.config.mts b/packages/e2e.test.foundry-sdk-generator/vitest.config.mts new file mode 100644 index 000000000..21fdca144 --- /dev/null +++ b/packages/e2e.test.foundry-sdk-generator/vitest.config.mts @@ -0,0 +1,33 @@ +/* + * Copyright 2024 Palantir Technologies, Inc. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { dirname, join } from "path"; +import { fileURLToPath } from "url"; +import { defineConfig } from "vitest/config"; + +export default defineConfig({ + test: { + alias: { + "consola": join( + dirname(fileURLToPath(import.meta.url)), + "src", + "legacy-client", + "consola.ts", + ), + }, + pool: "forks", + }, +}); diff --git a/packages/foundry-sdk-generator/src/generate/betaClient/generatePackage.ts b/packages/foundry-sdk-generator/src/generate/betaClient/generatePackage.ts index e7ca20735..31877e005 100644 --- a/packages/foundry-sdk-generator/src/generate/betaClient/generatePackage.ts +++ b/packages/foundry-sdk-generator/src/generate/betaClient/generatePackage.ts @@ -20,7 +20,8 @@ import { generateClientSdkVersionTwoPointZero, } from "@osdk/generator"; import { mkdir, readdir, readFile, writeFile } from "fs/promises"; -import { isAbsolute, join, normalize } from "path"; +import { fileURLToPath } from "node:url"; +import { dirname, isAbsolute, join, normalize } from "path"; import { USER_AGENT } from "../../utils/UserAgent.js"; import { generateBundles } from "../generateBundles.js"; import { bundleDependencies } from "./bundleDependencies.js"; @@ -172,7 +173,9 @@ async function getDependencyVersion(dependency: string): Promise { return dependencies[dependency]!; } const { findUp } = await import("find-up"); - const result = await findUp("package.json", { cwd: __dirname }); + const result = await findUp("package.json", { + cwd: __dirname, + }); const packageJson = await readFile(result!, { encoding: "utf-8", }); diff --git a/packages/foundry-sdk-generator/src/generate/generateBundles.ts b/packages/foundry-sdk-generator/src/generate/generateBundles.ts index 738b1caee..c8c1df53f 100644 --- a/packages/foundry-sdk-generator/src/generate/generateBundles.ts +++ b/packages/foundry-sdk-generator/src/generate/generateBundles.ts @@ -16,6 +16,8 @@ import commonjs from "@rollup/plugin-commonjs"; import { nodeResolve } from "@rollup/plugin-node-resolve"; +import { dirname } from "node:path"; +import { fileURLToPath } from "node:url"; import type { ModuleFormat, RollupBuild } from "rollup"; import { rollup } from "rollup"; import nodePolyfill from "rollup-plugin-polyfill-node"; diff --git a/packages/foundry-sdk-generator/src/index.ts b/packages/foundry-sdk-generator/src/index.ts index fe5e8ab5e..fa05f6cfb 100644 --- a/packages/foundry-sdk-generator/src/index.ts +++ b/packages/foundry-sdk-generator/src/index.ts @@ -15,3 +15,4 @@ */ export { cli } from "./cli/foundrySdkGeneratorCli.js"; +export { GeneratePackageCommand as __testSeamOnly_NotSemverStable__GeneratePackageCommand } from "./generate/index.js"; diff --git a/packages/foundry-sdk-generator/src/__e2e_tests__/__snapshots__/metadataResolver.test.ts.snap b/packages/foundry-sdk-generator/src/ontologyMetadata/__snapshots__/metadataResolver.test.ts.snap similarity index 100% rename from packages/foundry-sdk-generator/src/__e2e_tests__/__snapshots__/metadataResolver.test.ts.snap rename to packages/foundry-sdk-generator/src/ontologyMetadata/__snapshots__/metadataResolver.test.ts.snap diff --git a/packages/foundry-sdk-generator/src/__e2e_tests__/metadataResolver.test.ts b/packages/foundry-sdk-generator/src/ontologyMetadata/metadataResolver.test.ts similarity index 98% rename from packages/foundry-sdk-generator/src/__e2e_tests__/metadataResolver.test.ts rename to packages/foundry-sdk-generator/src/ontologyMetadata/metadataResolver.test.ts index 6b81022e9..2339acf4c 100644 --- a/packages/foundry-sdk-generator/src/__e2e_tests__/metadataResolver.test.ts +++ b/packages/foundry-sdk-generator/src/ontologyMetadata/metadataResolver.test.ts @@ -14,10 +14,9 @@ * limitations under the License. */ -import { afterAll, beforeAll, describe, expect, it } from "vitest"; -import { OntologyMetadataResolver } from "../ontologyMetadata/ontologyMetadataResolver.js"; - import { apiServer, handlers } from "@osdk/shared.test"; +import { afterAll, beforeAll, describe, expect, it } from "vitest"; +import { OntologyMetadataResolver } from "./ontologyMetadataResolver.js"; describe("Load Ontologies Metadata", () => { beforeAll(() => { diff --git a/packages/foundry-sdk-generator/tsconfig.cjs.json b/packages/foundry-sdk-generator/tsconfig.cjs.json index 7d4281f50..ac1b8bdfb 100644 --- a/packages/foundry-sdk-generator/tsconfig.cjs.json +++ b/packages/foundry-sdk-generator/tsconfig.cjs.json @@ -11,7 +11,6 @@ "./src/**/*" ], "exclude": [ - "./src/__e2e_tests__/**/**.test.ts", "./src/generatedNoCheck/**/*" ], "references": [] diff --git a/packages/foundry-sdk-generator/tsconfig.json b/packages/foundry-sdk-generator/tsconfig.json index 677669b3b..27fae9420 100644 --- a/packages/foundry-sdk-generator/tsconfig.json +++ b/packages/foundry-sdk-generator/tsconfig.json @@ -8,7 +8,6 @@ "./src/**/*" ], "exclude": [ - "./src/__e2e_tests__/**/**.test.ts", "./src/generatedNoCheck/**/*" ], "references": [] diff --git a/packages/foundry-sdk-generator/vitest.config.mts b/packages/foundry-sdk-generator/vitest.config.mts index efbef9e5a..6310c21f7 100644 --- a/packages/foundry-sdk-generator/vitest.config.mts +++ b/packages/foundry-sdk-generator/vitest.config.mts @@ -18,13 +18,13 @@ import { dirname, join } from "path"; import { fileURLToPath } from "url"; import { defineConfig } from "vitest/config"; -const __dirname = dirname(fileURLToPath(import.meta.url)); - export default defineConfig({ test: { - globalSetup: [join(__dirname, "./src/__e2e_tests__/testSetup.ts")], alias: { - "consola": join(__dirname, "./src/__e2e_tests__/consola.ts"), + "consola": join( + dirname(fileURLToPath(import.meta.url)), + "./src/__e2e_tests__/consola.ts", + ), }, pool: "forks", }, diff --git a/packages/generator-converters/package.json b/packages/generator-converters/package.json index f3faf3da4..326f0b72b 100644 --- a/packages/generator-converters/package.json +++ b/packages/generator-converters/package.json @@ -42,7 +42,7 @@ "@osdk/monorepo.tsup": "workspace:~", "ts-expect": "^1.3.0", "typescript": "^5.5.4", - "vitest": "^1.6.0" + "vitest": "^2.0.4" }, "publishConfig": { "access": "public" diff --git a/packages/generator/package.json b/packages/generator/package.json index 818c0eae7..697b00a22 100644 --- a/packages/generator/package.json +++ b/packages/generator/package.json @@ -49,7 +49,7 @@ "@types/node": "^18.0.0", "ts-expect": "^1.3.0", "typescript": "^5.5.4", - "vitest": "^1.6.0" + "vitest": "^2.0.4" }, "publishConfig": { "access": "public" diff --git a/packages/generator/src/util/test/createMockMinimalFiles.ts b/packages/generator/src/util/test/createMockMinimalFiles.ts index b468ba2f3..8cf1d033d 100644 --- a/packages/generator/src/util/test/createMockMinimalFiles.ts +++ b/packages/generator/src/util/test/createMockMinimalFiles.ts @@ -18,15 +18,14 @@ import { vi } from "vitest"; import type { ReaddirFn, WriteFileFn } from "../../MinimalFs.js"; export function createMockMinimalFiles() { - const writeFile = vi.fn, ReturnType>( + const writeFile = vi.fn( () => Promise.resolve(), ); const getFiles = () => Object.fromEntries(writeFile.mock.calls); - const readdir = vi.fn< - Parameters, - ReturnType - >(() => Promise.resolve([])); + const readdir = vi.fn( + () => Promise.resolve([]), + ); return { minimalFiles: { diff --git a/packages/maker/package.json b/packages/maker/package.json index 34d3acc2c..97e4a1078 100644 --- a/packages/maker/package.json +++ b/packages/maker/package.json @@ -41,7 +41,7 @@ "@osdk/monorepo.tsup": "workspace:~", "@types/yargs": "^17.0.32", "typescript": "^5.5.4", - "vitest": "^1.6.0" + "vitest": "^2.0.4" }, "publishConfig": { "access": "public" diff --git a/packages/monorepo.cspell/cspell.config.js b/packages/monorepo.cspell/cspell.config.js index fedc8bb0a..4435af984 100644 --- a/packages/monorepo.cspell/cspell.config.js +++ b/packages/monorepo.cspell/cspell.config.js @@ -53,6 +53,7 @@ const cspell = { "node_modules/**", ".git/**", ".gitignore", + "**/.turbo/**/*", // Ignore these files for now "_gitignore", @@ -83,7 +84,7 @@ const cspell = { // this is the conjure generated code that we won't keep forever "packages/client.unstable/src/generated/**", - "packages/foundry-sdk-generator/src/generatedNoCheck/**/*", + "packages/e2e.test.foundry-sdk-generator/src/generatedNoCheck/**/*", ], dictionaryDefinitions: [ ...getDictionaryDefinitions(), diff --git a/packages/monorepo.tsup/tsup.mjs b/packages/monorepo.tsup/tsup.mjs index 1c4892d42..b475f46b6 100644 --- a/packages/monorepo.tsup/tsup.mjs +++ b/packages/monorepo.tsup/tsup.mjs @@ -44,6 +44,7 @@ export default async (options, ourOptions) => { silent: true, sourcemap: true, splitting: true, + shims: true, // so we can use __dirname in both esm and cjs minify: false, // !options.watch, onSuccess: async () => { console.log("👍"); diff --git a/packages/tool.release/package.json b/packages/tool.release/package.json index 77cf2023b..931f73dc7 100644 --- a/packages/tool.release/package.json +++ b/packages/tool.release/package.json @@ -63,7 +63,7 @@ "@types/semver": "^7.5.8", "@types/yargs": "^17.0.32", "typescript": "^5.5.4", - "vitest": "^1.6.0" + "vitest": "^2.0.4" }, "publishConfig": { "access": "public" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3cc972d82..7b067cf71 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -120,8 +120,8 @@ importers: specifier: ^7.17.0 version: 7.17.0(eslint@9.7.0)(typescript@5.5.3) vitest: - specifier: ^1.6.0 - version: 1.6.0(@types/node@20.14.10) + specifier: ^2.0.4 + version: 2.0.4(@types/node@20.14.10) examples-extra/docs_example: dependencies: @@ -1410,6 +1410,9 @@ importers: specifier: ^9.3.0 version: 9.3.0 devDependencies: + '@osdk/legacy-client': + specifier: workspace:~ + version: link:../legacy-client '@osdk/monorepo.api-extractor': specifier: workspace:~ version: link:../monorepo.api-extractor @@ -1419,6 +1422,9 @@ importers: '@osdk/monorepo.tsup': specifier: workspace:~ version: link:../monorepo.tsup + '@osdk/shared.test': + specifier: workspace:~ + version: link:../shared.test typescript: specifier: ^5.5.4 version: 5.5.4 @@ -1772,8 +1778,8 @@ importers: specifier: ^5.5.4 version: 5.5.4 vitest: - specifier: ^1.6.0 - version: 1.6.0(@types/node@18.17.15) + specifier: ^2.0.4 + version: 2.0.4(@types/node@18.17.15) packages/generator-converters: dependencies: @@ -1800,8 +1806,8 @@ importers: specifier: ^5.5.4 version: 5.5.4 vitest: - specifier: ^1.6.0 - version: 1.6.0(@types/node@20.14.10) + specifier: ^2.0.4 + version: 2.0.4(@types/node@20.14.10) packages/internal.foundry: dependencies: @@ -2096,8 +2102,8 @@ importers: specifier: ^5.5.4 version: 5.5.4 vitest: - specifier: ^1.6.0 - version: 1.6.0(@types/node@20.14.10) + specifier: ^2.0.4 + version: 2.0.4(@types/node@20.14.10) packages/monorepo.api-extractor: {} @@ -2469,8 +2475,8 @@ importers: specifier: ^5.5.4 version: 5.5.4 vitest: - specifier: ^1.6.0 - version: 1.6.0(@types/node@20.12.12) + specifier: ^2.0.4 + version: 2.0.4(@types/node@20.12.12) packages/version-updater: devDependencies: @@ -2534,6 +2540,10 @@ packages: resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} engines: {node: '>=6.0.0'} + '@ampproject/remapping@2.3.0': + resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} + engines: {node: '>=6.0.0'} + '@andrewbranch/untar.js@1.0.3': resolution: {integrity: sha512-Jh15/qVmrLGhkKJBdXlK1+9tY4lZruYjsgkDFj08ZmDiWVBLJcqkok7Z0/R0In+i1rScBpJlSvrTS2Lm41Pbnw==} @@ -4320,20 +4330,23 @@ packages: vite: ^4.0.0 || ^5.0.0 vue: ^3.2.25 - '@vitest/expect@1.6.0': - resolution: {integrity: sha512-ixEvFVQjycy/oNgHjqsL6AZCDduC+tflRluaHIzKIsdbzkLn2U/iBnVeJwB6HsIjQBdfMR8Z0tRxKUsvFJEeWQ==} + '@vitest/expect@2.0.4': + resolution: {integrity: sha512-39jr5EguIoanChvBqe34I8m1hJFI4+jxvdOpD7gslZrVQBKhh8H9eD7J/LJX4zakrw23W+dITQTDqdt43xVcJw==} + + '@vitest/pretty-format@2.0.4': + resolution: {integrity: sha512-RYZl31STbNGqf4l2eQM1nvKPXE0NhC6Eq0suTTePc4mtMQ1Fn8qZmjV4emZdEdG2NOWGKSCrHZjmTqDCDoeFBw==} - '@vitest/runner@1.6.0': - resolution: {integrity: sha512-P4xgwPjwesuBiHisAVz/LSSZtDjOTPYZVmNAnpHHSR6ONrf8eCJOFRvUwdHn30F5M1fxhqtl7QZQUk2dprIXAg==} + '@vitest/runner@2.0.4': + resolution: {integrity: sha512-Gk+9Su/2H2zNfNdeJR124gZckd5st4YoSuhF1Rebi37qTXKnqYyFCd9KP4vl2cQHbtuVKjfEKrNJxHHCW8thbQ==} - '@vitest/snapshot@1.6.0': - resolution: {integrity: sha512-+Hx43f8Chus+DCmygqqfetcAZrDJwvTj0ymqjQq4CvmpKFSTVteEOBzCusu1x2tt4OJcvBflyHUE0DZSLgEMtQ==} + '@vitest/snapshot@2.0.4': + resolution: {integrity: sha512-or6Mzoz/pD7xTvuJMFYEtso1vJo1S5u6zBTinfl+7smGUhqybn6VjzCDMhmTyVOFWwkCMuNjmNNxnyXPgKDoPw==} - '@vitest/spy@1.6.0': - resolution: {integrity: sha512-leUTap6B/cqi/bQkXUu6bQV5TZPx7pmMBKBQiI0rJA8c3pB56ZsaTbREnF7CJfmvAS4V2cXIBAh/3rVwrrCYgw==} + '@vitest/spy@2.0.4': + resolution: {integrity: sha512-uTXU56TNoYrTohb+6CseP8IqNwlNdtPwEO0AWl+5j7NelS6x0xZZtP0bDWaLvOfUbaYwhhWp1guzXUxkC7mW7Q==} - '@vitest/utils@1.6.0': - resolution: {integrity: sha512-21cPiuGMoMZwiOHa2i4LXkMkMkCGzA+MVFV70jRwHo95dL4x/ts5GZhML1QWuy7yfp3WzK3lRvZi3JnXTYqrBw==} + '@vitest/utils@2.0.4': + resolution: {integrity: sha512-Zc75QuuoJhOBnlo99ZVUkJIuq4Oj0zAkrQ2VzCqNCx6wAwViHEh5Fnp4fiJTE9rA+sAoXRf00Z9xGgfEzV6fzQ==} '@volar/language-core@2.4.0-alpha.16': resolution: {integrity: sha512-oOTnIZlx0P/idFwVw+W0NbzKDtZAQMzXSdIFfTePCKcXlb4Ys12GaGkx8NF9dsvPYV3nbv3ZsSxnkZWBmNKd7A==} @@ -4546,8 +4559,9 @@ packages: resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} engines: {node: '>= 0.4'} - assertion-error@1.1.0: - resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} + assertion-error@2.0.1: + resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} + engines: {node: '>=12'} ast-types-flow@0.0.8: resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} @@ -4685,9 +4699,9 @@ packages: ccount@1.1.0: resolution: {integrity: sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg==} - chai@4.3.10: - resolution: {integrity: sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==} - engines: {node: '>=4'} + chai@5.1.1: + resolution: {integrity: sha512-pT1ZgP8rPNqUgieVaEY+ryQr6Q4HXNg8Ei9UnLUrjN4IA7dvQC5JB+/kxVcPNDHyBcc/26CXPkbNzq3qwrOEKA==} + engines: {node: '>=12'} chalk-template@1.1.0: resolution: {integrity: sha512-T2VJbcDuZQ0Tb2EWwSotMPJjgpy1/tGee1BTpUNsGZ/qgNjV2t7Mvu+d4600U564nbLesN1x2dPL+xii174Ekg==} @@ -4724,8 +4738,9 @@ packages: chardet@0.7.0: resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} - check-error@1.0.3: - resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} + check-error@2.1.1: + resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==} + engines: {node: '>= 16'} chokidar@3.5.3: resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} @@ -4962,8 +4977,8 @@ packages: supports-color: optional: true - deep-eql@4.1.3: - resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} + deep-eql@5.0.2: + resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} engines: {node: '>=6'} deep-extend@0.6.0: @@ -5993,9 +6008,6 @@ packages: js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - js-tokens@8.0.3: - resolution: {integrity: sha512-UfJMcSJc+SEXEl9lH/VLHSZbThQyLpw1vLO1Lb+j4RWDvG3N2f7yj3PVQA3cmkTBNldJ9eFnM+xEXxHIXrYiJw==} - js-yaml@3.13.1: resolution: {integrity: sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==} hasBin: true @@ -6041,9 +6053,6 @@ packages: engines: {node: '>=6'} hasBin: true - jsonc-parser@3.2.0: - resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} - jsonfile@4.0.0: resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} @@ -6108,10 +6117,6 @@ packages: resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==} engines: {node: '>=6'} - local-pkg@0.5.0: - resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} - engines: {node: '>=14'} - locate-path@5.0.0: resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} engines: {node: '>=8'} @@ -6147,8 +6152,8 @@ packages: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true - loupe@2.3.7: - resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} + loupe@3.1.1: + resolution: {integrity: sha512-edNu/8D5MKVfGVFRhFf8aAxiTM6Wumfz5XsaatSxlD3w4R1d/WEKUTydCdPGbl9K7QG/Ca3GnDV2sIKIpXRQcw==} lru-cache@10.2.2: resolution: {integrity: sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==} @@ -6254,9 +6259,6 @@ packages: engines: {node: '>=10'} hasBin: true - mlly@1.4.2: - resolution: {integrity: sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==} - mri@1.2.0: resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} engines: {node: '>=4'} @@ -6454,10 +6456,6 @@ packages: resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - p-limit@5.0.0: - resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==} - engines: {node: '>=18'} - p-locate@4.1.0: resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} engines: {node: '>=8'} @@ -6562,11 +6560,12 @@ packages: resolution: {integrity: sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==} engines: {node: '>=12'} - pathe@1.1.1: - resolution: {integrity: sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==} + pathe@1.1.2: + resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} - pathval@1.1.1: - resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} + pathval@2.0.0: + resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==} + engines: {node: '>= 14.16'} picocolors@1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} @@ -6613,9 +6612,6 @@ packages: resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} engines: {node: '>=8'} - pkg-types@1.0.3: - resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} - pkg-versions@4.0.0: resolution: {integrity: sha512-OXvLTyO2Nv1fENNaTfQ6f+5wbAwsNg6z8cEuFdtuRw15Eo8Dd4I4F+7knlp+V2hj6Ow3Wl7HTIg/SaznkydLJw==} engines: {node: '>=18'} @@ -7205,9 +7201,6 @@ packages: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} - strip-literal@2.0.0: - resolution: {integrity: sha512-f9vHgsCWBq2ugHAkGMiiYY+AYG0D/cbloKKg0nhaaaSNsujdGIpVXCNsrJpCKr5M0f4aI31mr13UjY6GAuXCKA==} - styled-jsx@5.1.1: resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==} engines: {node: '>= 12.0.0'} @@ -7288,15 +7281,19 @@ packages: tiny-invariant@1.3.3: resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} - tinybench@2.5.1: - resolution: {integrity: sha512-65NKvSuAVDP/n4CqH+a9w2kTlLReS9vhsAP06MWx+/89nMinJyB2icyl58RIcqCmIggpojIGeuJGhjU1aGMBSg==} + tinybench@2.8.0: + resolution: {integrity: sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==} - tinypool@0.8.4: - resolution: {integrity: sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==} + tinypool@1.0.0: + resolution: {integrity: sha512-KIKExllK7jp3uvrNtvRBYBWBOAXSX8ZvoaD8T+7KB/QHIuoJW3Pmr60zucywjAlMb5TeXUkcs/MWeWLu0qvuAQ==} + engines: {node: ^18.0.0 || >=20.0.0} + + tinyrainbow@1.2.0: + resolution: {integrity: sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==} engines: {node: '>=14.0.0'} - tinyspy@2.2.1: - resolution: {integrity: sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==} + tinyspy@3.0.0: + resolution: {integrity: sha512-q5nmENpTHgiPVd1cJDDc9cVoYN5x4vCvwT3FMilvKPKneCBZAxn2YWQjDF0UMcE9k0Cay1gBiDfTMU0g+mPMQA==} engines: {node: '>=14.0.0'} tmp@0.0.33: @@ -7437,10 +7434,6 @@ packages: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} - type-detect@4.0.8: - resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} - engines: {node: '>=4'} - type-fest@0.20.2: resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} engines: {node: '>=10'} @@ -7519,9 +7512,6 @@ packages: engines: {node: '>=14.17'} hasBin: true - ufo@1.3.1: - resolution: {integrity: sha512-uY/99gMLIOlJPwATcMVYfqDSxUR9//AUcgZMzwfSTJPDKzA1S8mX4VLqa+fiAtveraQUBCz4FFcwVZBGbwBXIw==} - uglify-js@3.18.0: resolution: {integrity: sha512-SyVVbcNBCk0dzr9XL/R/ySrmYf0s372K6/hFklzgcp2lBFyXtw4I7BOdDjlLhE1aVqaI/SHWXWmYdlZxuyF38A==} engines: {node: '>=0.8.0'} @@ -7618,8 +7608,8 @@ packages: vfile@4.2.1: resolution: {integrity: sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==} - vite-node@1.6.0: - resolution: {integrity: sha512-de6HJgzC+TFzOu0NTC4RAIsyf/DY/ibWDYQUcuEA84EMHhcefTUGkjFHKKEJhQN4A+6I0u++kr3l36ZF2d7XRw==} + vite-node@2.0.4: + resolution: {integrity: sha512-ZpJVkxcakYtig5iakNeL7N3trufe3M6vGuzYAr4GsbCTwobDeyPJpE4cjDhhPluv8OvQCFzu2LWp6GkoKRITXA==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true @@ -7651,15 +7641,15 @@ packages: terser: optional: true - vitest@1.6.0: - resolution: {integrity: sha512-H5r/dN06swuFnzNFhq/dnz37bPXnq8xB2xB5JOVk8K09rUtoeNN+LHWkoQ0A/i3hvbUKKcCei9KpbxqHMLhLLA==} + vitest@2.0.4: + resolution: {integrity: sha512-luNLDpfsnxw5QSW4bISPe6tkxVvv5wn2BBs/PuDRkhXZ319doZyLOBr1sjfB5yCEpTiU7xCAdViM8TNVGPwoog==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' '@types/node': ^18.0.0 || >=20.0.0 - '@vitest/browser': 1.6.0 - '@vitest/ui': 1.6.0 + '@vitest/browser': 2.0.4 + '@vitest/ui': 2.0.4 happy-dom: '*' jsdom: '*' peerDependenciesMeta: @@ -7738,8 +7728,8 @@ packages: engines: {node: '>= 8'} hasBin: true - why-is-node-running@2.2.2: - resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==} + why-is-node-running@2.3.0: + resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} engines: {node: '>=8'} hasBin: true @@ -7867,6 +7857,11 @@ snapshots: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 + '@ampproject/remapping@2.3.0': + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + '@andrewbranch/untar.js@1.0.3': {} '@arethetypeswrong/cli@0.15.3': @@ -9967,34 +9962,38 @@ snapshots: vite: 5.3.4(@types/node@20.14.10) vue: 3.4.27(typescript@5.5.4) - '@vitest/expect@1.6.0': + '@vitest/expect@2.0.4': dependencies: - '@vitest/spy': 1.6.0 - '@vitest/utils': 1.6.0 - chai: 4.3.10 + '@vitest/spy': 2.0.4 + '@vitest/utils': 2.0.4 + chai: 5.1.1 + tinyrainbow: 1.2.0 - '@vitest/runner@1.6.0': + '@vitest/pretty-format@2.0.4': dependencies: - '@vitest/utils': 1.6.0 - p-limit: 5.0.0 - pathe: 1.1.1 + tinyrainbow: 1.2.0 - '@vitest/snapshot@1.6.0': + '@vitest/runner@2.0.4': dependencies: + '@vitest/utils': 2.0.4 + pathe: 1.1.2 + + '@vitest/snapshot@2.0.4': + dependencies: + '@vitest/pretty-format': 2.0.4 magic-string: 0.30.10 - pathe: 1.1.1 - pretty-format: 29.7.0 + pathe: 1.1.2 - '@vitest/spy@1.6.0': + '@vitest/spy@2.0.4': dependencies: - tinyspy: 2.2.1 + tinyspy: 3.0.0 - '@vitest/utils@1.6.0': + '@vitest/utils@2.0.4': dependencies: - diff-sequences: 29.6.3 + '@vitest/pretty-format': 2.0.4 estree-walker: 3.0.3 - loupe: 2.3.7 - pretty-format: 29.7.0 + loupe: 3.1.1 + tinyrainbow: 1.2.0 '@volar/language-core@2.4.0-alpha.16': dependencies: @@ -10273,7 +10272,7 @@ snapshots: is-array-buffer: 3.0.4 is-shared-array-buffer: 1.0.3 - assertion-error@1.1.0: {} + assertion-error@2.0.1: {} ast-types-flow@0.0.8: {} @@ -10401,15 +10400,13 @@ snapshots: ccount@1.1.0: {} - chai@4.3.10: + chai@5.1.1: dependencies: - assertion-error: 1.1.0 - check-error: 1.0.3 - deep-eql: 4.1.3 - get-func-name: 2.0.2 - loupe: 2.3.7 - pathval: 1.1.1 - type-detect: 4.0.8 + assertion-error: 2.0.1 + check-error: 2.1.1 + deep-eql: 5.0.2 + loupe: 3.1.1 + pathval: 2.0.0 chalk-template@1.1.0: dependencies: @@ -10440,9 +10437,7 @@ snapshots: chardet@0.7.0: {} - check-error@1.0.3: - dependencies: - get-func-name: 2.0.2 + check-error@2.1.1: {} chokidar@3.5.3: dependencies: @@ -10719,9 +10714,7 @@ snapshots: dependencies: ms: 2.1.2 - deep-eql@4.1.3: - dependencies: - type-detect: 4.0.8 + deep-eql@5.0.2: {} deep-extend@0.6.0: {} @@ -10996,8 +10989,8 @@ snapshots: '@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.5.4) eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.16.0(eslint@9.7.0)(typescript@5.5.3))(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.16.0(eslint@9.7.0)(typescript@5.5.3))(eslint-plugin-import@2.29.1)(eslint@9.7.0))(eslint@8.57.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.16.0(eslint@9.7.0)(typescript@5.5.3))(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.16.0(eslint@9.7.0)(typescript@5.5.3))(eslint-plugin-import@2.29.1)(eslint@9.7.0))(eslint@8.57.0))(eslint@8.57.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) eslint-plugin-jsx-a11y: 6.8.0(eslint@8.57.0) eslint-plugin-react: 7.34.1(eslint@8.57.0) eslint-plugin-react-hooks: 4.6.2(eslint@8.57.0) @@ -11015,13 +11008,13 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0): + eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.16.0(eslint@9.7.0)(typescript@5.5.3))(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.16.0(eslint@9.7.0)(typescript@5.5.3))(eslint-plugin-import@2.29.1)(eslint@9.7.0))(eslint@8.57.0))(eslint@8.57.0): dependencies: debug: 4.3.4 enhanced-resolve: 5.16.1 eslint: 8.57.0 - eslint-module-utils: 2.8.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint@8.57.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.16.0(eslint@9.7.0)(typescript@5.5.3))(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.16.0(eslint@9.7.0)(typescript@5.5.3))(eslint-plugin-import@2.29.1)(eslint@9.7.0))(eslint@8.57.0) + eslint-module-utils: 2.8.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.16.0(eslint@9.7.0)(typescript@5.5.3))(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.16.0(eslint@9.7.0)(typescript@5.5.3))(eslint-plugin-import@2.29.1)(eslint@9.7.0))(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) fast-glob: 3.3.2 get-tsconfig: 4.7.5 is-core-module: 2.13.1 @@ -11049,25 +11042,14 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-module-utils@2.8.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint@8.57.0): + eslint-module-utils@2.8.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.16.0(eslint@9.7.0)(typescript@5.5.3))(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.16.0(eslint@9.7.0)(typescript@5.5.3))(eslint-plugin-import@2.29.1)(eslint@9.7.0))(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0): dependencies: debug: 3.2.7 optionalDependencies: '@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.5.4) eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0) - transitivePeerDependencies: - - supports-color - - eslint-module-utils@2.8.1(@typescript-eslint/parser@7.16.0(eslint@9.7.0)(typescript@5.5.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.16.0(eslint@9.7.0)(typescript@5.5.3))(eslint-plugin-import@2.29.1)(eslint@9.7.0))(eslint@8.57.0): - dependencies: - debug: 3.2.7 - optionalDependencies: - '@typescript-eslint/parser': 7.16.0(eslint@9.7.0)(typescript@5.5.3) - eslint: 8.57.0 - eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.16.0(eslint@9.7.0)(typescript@5.5.3))(eslint-plugin-import@2.29.1)(eslint@9.7.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.16.0(eslint@9.7.0)(typescript@5.5.3))(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.16.0(eslint@9.7.0)(typescript@5.5.3))(eslint-plugin-import@2.29.1)(eslint@9.7.0))(eslint@8.57.0))(eslint@8.57.0) transitivePeerDependencies: - supports-color @@ -11096,7 +11078,7 @@ snapshots: dependencies: eslint: 9.7.0 - eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.16.0(eslint@9.7.0)(typescript@5.5.3))(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.16.0(eslint@9.7.0)(typescript@5.5.3))(eslint-plugin-import@2.29.1)(eslint@9.7.0))(eslint@8.57.0): + eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0): dependencies: array-includes: 3.1.8 array.prototype.findlastindex: 1.2.5 @@ -11106,7 +11088,7 @@ snapshots: doctrine: 2.1.0 eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.16.0(eslint@9.7.0)(typescript@5.5.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.16.0(eslint@9.7.0)(typescript@5.5.3))(eslint-plugin-import@2.29.1)(eslint@9.7.0))(eslint@8.57.0) + eslint-module-utils: 2.8.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.16.0(eslint@9.7.0)(typescript@5.5.3))(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.16.0(eslint@9.7.0)(typescript@5.5.3))(eslint-plugin-import@2.29.1)(eslint@9.7.0))(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0) hasown: 2.0.2 is-core-module: 2.13.1 is-glob: 4.0.3 @@ -11117,7 +11099,7 @@ snapshots: semver: 6.3.1 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 7.16.0(eslint@9.7.0)(typescript@5.5.3) + '@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.5.4) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack @@ -11996,8 +11978,6 @@ snapshots: js-tokens@4.0.0: {} - js-tokens@8.0.3: {} - js-yaml@3.13.1: dependencies: argparse: 1.0.10 @@ -12037,8 +12017,6 @@ snapshots: json5@2.2.3: {} - jsonc-parser@3.2.0: {} - jsonfile@4.0.0: optionalDependencies: graceful-fs: 4.2.11 @@ -12116,11 +12094,6 @@ snapshots: pify: 4.0.1 strip-bom: 3.0.0 - local-pkg@0.5.0: - dependencies: - mlly: 1.4.2 - pkg-types: 1.0.3 - locate-path@5.0.0: dependencies: p-locate: 4.1.0 @@ -12155,7 +12128,7 @@ snapshots: dependencies: js-tokens: 4.0.0 - loupe@2.3.7: + loupe@3.1.1: dependencies: get-func-name: 2.0.2 @@ -12249,13 +12222,6 @@ snapshots: mkdirp@2.1.6: {} - mlly@1.4.2: - dependencies: - acorn: 8.11.3 - pathe: 1.1.1 - pkg-types: 1.0.3 - ufo: 1.3.1 - mri@1.2.0: {} ms@2.1.2: {} @@ -12477,10 +12443,6 @@ snapshots: dependencies: yocto-queue: 1.0.0 - p-limit@5.0.0: - dependencies: - yocto-queue: 1.0.0 - p-locate@4.1.0: dependencies: p-limit: 2.3.0 @@ -12567,9 +12529,9 @@ snapshots: path-type@5.0.0: {} - pathe@1.1.1: {} + pathe@1.1.2: {} - pathval@1.1.1: {} + pathval@2.0.0: {} picocolors@1.0.0: {} @@ -12627,12 +12589,6 @@ snapshots: dependencies: find-up: 4.1.0 - pkg-types@1.0.3: - dependencies: - jsonc-parser: 3.2.0 - mlly: 1.4.2 - pathe: 1.1.1 - pkg-versions@4.0.0: dependencies: package-json: 10.0.0 @@ -13263,10 +13219,6 @@ snapshots: strip-json-comments@3.1.1: {} - strip-literal@2.0.0: - dependencies: - js-tokens: 8.0.3 - styled-jsx@5.1.1(@babel/core@7.24.9)(react@18.3.1): dependencies: client-only: 0.0.1 @@ -13399,11 +13351,13 @@ snapshots: tiny-invariant@1.3.3: {} - tinybench@2.5.1: {} + tinybench@2.8.0: {} - tinypool@0.8.4: {} + tinypool@1.0.0: {} - tinyspy@2.2.1: {} + tinyrainbow@1.2.0: {} + + tinyspy@3.0.0: {} tmp@0.0.33: dependencies: @@ -13616,8 +13570,6 @@ snapshots: dependencies: prelude-ls: 1.2.1 - type-detect@4.0.8: {} - type-fest@0.20.2: {} type-fest@0.21.3: {} @@ -13687,8 +13639,6 @@ snapshots: typescript@5.5.4: {} - ufo@1.3.1: {} - uglify-js@3.18.0: optional: true @@ -13792,12 +13742,12 @@ snapshots: unist-util-stringify-position: 2.0.3 vfile-message: 2.0.4 - vite-node@1.6.0(@types/node@18.17.15): + vite-node@2.0.4(@types/node@18.17.15): dependencies: cac: 6.7.14 - debug: 4.3.4 - pathe: 1.1.1 - picocolors: 1.0.1 + debug: 4.3.5 + pathe: 1.1.2 + tinyrainbow: 1.2.0 vite: 5.3.4(@types/node@18.17.15) transitivePeerDependencies: - '@types/node' @@ -13809,12 +13759,12 @@ snapshots: - supports-color - terser - vite-node@1.6.0(@types/node@20.12.12): + vite-node@2.0.4(@types/node@20.12.12): dependencies: cac: 6.7.14 - debug: 4.3.4 - pathe: 1.1.1 - picocolors: 1.0.1 + debug: 4.3.5 + pathe: 1.1.2 + tinyrainbow: 1.2.0 vite: 5.3.4(@types/node@20.12.12) transitivePeerDependencies: - '@types/node' @@ -13826,12 +13776,12 @@ snapshots: - supports-color - terser - vite-node@1.6.0(@types/node@20.14.10): + vite-node@2.0.4(@types/node@20.14.10): dependencies: cac: 6.7.14 - debug: 4.3.4 - pathe: 1.1.1 - picocolors: 1.0.1 + debug: 4.3.5 + pathe: 1.1.2 + tinyrainbow: 1.2.0 vite: 5.3.4(@types/node@20.14.10) transitivePeerDependencies: - '@types/node' @@ -13870,28 +13820,27 @@ snapshots: '@types/node': 20.14.10 fsevents: 2.3.3 - vitest@1.6.0(@types/node@18.17.15): + vitest@2.0.4(@types/node@18.17.15): dependencies: - '@vitest/expect': 1.6.0 - '@vitest/runner': 1.6.0 - '@vitest/snapshot': 1.6.0 - '@vitest/spy': 1.6.0 - '@vitest/utils': 1.6.0 - acorn-walk: 8.3.2 - chai: 4.3.10 - debug: 4.3.4 + '@ampproject/remapping': 2.3.0 + '@vitest/expect': 2.0.4 + '@vitest/pretty-format': 2.0.4 + '@vitest/runner': 2.0.4 + '@vitest/snapshot': 2.0.4 + '@vitest/spy': 2.0.4 + '@vitest/utils': 2.0.4 + chai: 5.1.1 + debug: 4.3.5 execa: 8.0.1 - local-pkg: 0.5.0 magic-string: 0.30.10 - pathe: 1.1.1 - picocolors: 1.0.0 + pathe: 1.1.2 std-env: 3.7.0 - strip-literal: 2.0.0 - tinybench: 2.5.1 - tinypool: 0.8.4 + tinybench: 2.8.0 + tinypool: 1.0.0 + tinyrainbow: 1.2.0 vite: 5.3.4(@types/node@18.17.15) - vite-node: 1.6.0(@types/node@18.17.15) - why-is-node-running: 2.2.2 + vite-node: 2.0.4(@types/node@18.17.15) + why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 18.17.15 transitivePeerDependencies: @@ -13903,28 +13852,27 @@ snapshots: - supports-color - terser - vitest@1.6.0(@types/node@20.12.12): + vitest@2.0.4(@types/node@20.12.12): dependencies: - '@vitest/expect': 1.6.0 - '@vitest/runner': 1.6.0 - '@vitest/snapshot': 1.6.0 - '@vitest/spy': 1.6.0 - '@vitest/utils': 1.6.0 - acorn-walk: 8.3.2 - chai: 4.3.10 - debug: 4.3.4 + '@ampproject/remapping': 2.3.0 + '@vitest/expect': 2.0.4 + '@vitest/pretty-format': 2.0.4 + '@vitest/runner': 2.0.4 + '@vitest/snapshot': 2.0.4 + '@vitest/spy': 2.0.4 + '@vitest/utils': 2.0.4 + chai: 5.1.1 + debug: 4.3.5 execa: 8.0.1 - local-pkg: 0.5.0 magic-string: 0.30.10 - pathe: 1.1.1 - picocolors: 1.0.0 + pathe: 1.1.2 std-env: 3.7.0 - strip-literal: 2.0.0 - tinybench: 2.5.1 - tinypool: 0.8.4 + tinybench: 2.8.0 + tinypool: 1.0.0 + tinyrainbow: 1.2.0 vite: 5.3.4(@types/node@20.12.12) - vite-node: 1.6.0(@types/node@20.12.12) - why-is-node-running: 2.2.2 + vite-node: 2.0.4(@types/node@20.12.12) + why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 20.12.12 transitivePeerDependencies: @@ -13936,28 +13884,27 @@ snapshots: - supports-color - terser - vitest@1.6.0(@types/node@20.14.10): + vitest@2.0.4(@types/node@20.14.10): dependencies: - '@vitest/expect': 1.6.0 - '@vitest/runner': 1.6.0 - '@vitest/snapshot': 1.6.0 - '@vitest/spy': 1.6.0 - '@vitest/utils': 1.6.0 - acorn-walk: 8.3.2 - chai: 4.3.10 - debug: 4.3.4 + '@ampproject/remapping': 2.3.0 + '@vitest/expect': 2.0.4 + '@vitest/pretty-format': 2.0.4 + '@vitest/runner': 2.0.4 + '@vitest/snapshot': 2.0.4 + '@vitest/spy': 2.0.4 + '@vitest/utils': 2.0.4 + chai: 5.1.1 + debug: 4.3.5 execa: 8.0.1 - local-pkg: 0.5.0 magic-string: 0.30.10 - pathe: 1.1.1 - picocolors: 1.0.0 + pathe: 1.1.2 std-env: 3.7.0 - strip-literal: 2.0.0 - tinybench: 2.5.1 - tinypool: 0.8.4 + tinybench: 2.8.0 + tinypool: 1.0.0 + tinyrainbow: 1.2.0 vite: 5.3.4(@types/node@20.14.10) - vite-node: 1.6.0(@types/node@20.14.10) - why-is-node-running: 2.2.2 + vite-node: 2.0.4(@types/node@20.14.10) + why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 20.14.10 transitivePeerDependencies: @@ -14059,7 +14006,7 @@ snapshots: dependencies: isexe: 2.0.0 - why-is-node-running@2.2.2: + why-is-node-running@2.3.0: dependencies: siginfo: 2.0.0 stackback: 0.0.2