diff --git a/README.md b/README.md index ede9eec8b..11d4019eb 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ Ultra-fast fetching for TypeScript generated automatically from your OpenAPI sch

Zuplo - +

### 🄈 Silver Sponsors diff --git a/docs/CONTRIBUTING.md b/docs/CONTRIBUTING.md index 15f046185..9f62cea95 100644 --- a/docs/CONTRIBUTING.md +++ b/docs/CONTRIBUTING.md @@ -24,4 +24,4 @@ All of the above are welcome! But if you just opened a PR without discussing the ## Code of Conduct -All docs edits are held accountable to the [Code of Conduct](../../CODE_OF_CONDUCT.md) outlined in this project. Language in the documentation must be inclusive, kind, and respectful. +All docs edits are held accountable to the [Code of Conduct](../CODE_OF_CONDUCT.md) outlined in this project. Language in the documentation must be inclusive, kind, and respectful. diff --git a/docs/openapi-fetch/api.md b/docs/openapi-fetch/api.md index 1a504c5d1..9926adbbd 100644 --- a/docs/openapi-fetch/api.md +++ b/docs/openapi-fetch/api.md @@ -192,6 +192,22 @@ or when instantiating the client. ::: +### URL-encoded body + +To send a body request in `application/x-www-form-urlencoded` format, which is commonly used to transmit key-value pairs in APIs like OAuth 2.0, pass the appropriate header and body as an object. `openapi-fetch` will automatically encode the body to the correct format. + +```ts +const { data, error } = await client.POST("/tokens", { + body: { + clientId: "someClientId", + clientSecret: "someClientSecret", + }, + headers: { + "Content-Type": "application/x-www-form-encoded", + }, +}); +``` + ## Path serialization openapi-fetch supports path serialization as [outlined in the 3.1 spec](https://swagger.io/docs/specification/serialization/#path). This happens automatically, based on the specific format in your OpenAPI schema: diff --git a/package.json b/package.json index e62854a6f..8bddd20cb 100644 --- a/package.json +++ b/package.json @@ -19,22 +19,23 @@ "version": "pnpm run build && changeset version && pnpm i" }, "devDependencies": { + "@arethetypeswrong/cli": "^0.18.1", "@biomejs/biome": "^1.9.4", "@changesets/changelog-github": "^0.5.1", "@changesets/cli": "^2.29.2", "@playwright/test": "^1.52.0", "@size-limit/preset-small-lib": "^11.2.0", "@types/node": "^22.15.3", - "del-cli": "^6.0.0", "prettier": "^3.5.3", "size-limit": "^11.2.0", "turbo": "^2.5.2", "typescript": "^5.8.3", - "vitest": "^2.1.9" + "unbuild": "^3.5.0", + "vitest": "^3.1.3" }, "size-limit": [ { - "path": "packages/openapi-fetch/dist/index.min.js", + "path": "packages/openapi-fetch/dist/index.mjs", "limit": "7 kB", "brotli": false } diff --git a/packages/openapi-fetch/.npmignore b/packages/openapi-fetch/.npmignore index 8b5258f82..a2b1fad14 100644 --- a/packages/openapi-fetch/.npmignore +++ b/packages/openapi-fetch/.npmignore @@ -1,4 +1,5 @@ .turbo +*.config.* examples test test-results diff --git a/packages/openapi-fetch/CHANGELOG.md b/packages/openapi-fetch/CHANGELOG.md index e8742bac3..8a70b8220 100644 --- a/packages/openapi-fetch/CHANGELOG.md +++ b/packages/openapi-fetch/CHANGELOG.md @@ -1,5 +1,19 @@ # openapi-fetch +## 0.14.0 + +### Minor Changes + +- [#2310](https://github.com/openapi-ts/openapi-typescript/pull/2310) [`e66b5ce`](https://github.com/openapi-ts/openapi-typescript/commit/e66b5ce63bfcdc57c6ee942e5ed4e7667e64c290) Thanks [@drwpow](https://github.com/drwpow)! - Build package with unbuild. Also remove the minified version (openapi-fetch is only useful in a TypeScript/bundler environment, so there’s no sense in loading it from a CDN clientside). + +## 0.13.8 + +### Patch Changes + +- [#2096](https://github.com/openapi-ts/openapi-typescript/pull/2096) [`0058128`](https://github.com/openapi-ts/openapi-typescript/commit/0058128afa258180793ae2071022d89a688d8ddc) Thanks [@obulat](https://github.com/obulat)! - Encode the request body if `Content-Type` header is `x-www-form-urlencoded` +- [#2157](https://github.com/openapi-ts/openapi-typescript/pull/2157) [`419d9ac`](https://github.com/openapi-ts/openapi-typescript/commit/419d9ac6851cf780b81060ddc05c231c5225a17b) Thanks [@Rendez](https://github.com/Rendez)! - Fix overriding baseUrl per request without overriding default baseUrl +- [#2308](https://github.com/openapi-ts/openapi-typescript/pull/2308) [`81c031d`](https://github.com/openapi-ts/openapi-typescript/commit/81c031da8584ed49b033ebfc67bbb3e1ca258699) Thanks [@drwpow](https://github.com/drwpow)! - Improve header handling + ## 0.13.7 ### Patch Changes diff --git a/packages/openapi-fetch/build.config.ts b/packages/openapi-fetch/build.config.ts new file mode 100644 index 000000000..ade617ddf --- /dev/null +++ b/packages/openapi-fetch/build.config.ts @@ -0,0 +1,12 @@ +import { defineBuildConfig } from "unbuild"; + +export default defineBuildConfig({ + entries: ["./src/index.js"], + declaration: "compatible", + clean: true, + sourcemap: true, + rollup: { + // Ship CommonJS-compatible bundle + emitCJS: true, + }, +}); diff --git a/packages/openapi-fetch/examples/vue-3/tsconfig.node.json b/packages/openapi-fetch/examples/vue-3/tsconfig.node.json index f09406303..293b39221 100644 --- a/packages/openapi-fetch/examples/vue-3/tsconfig.node.json +++ b/packages/openapi-fetch/examples/vue-3/tsconfig.node.json @@ -11,7 +11,6 @@ "composite": true, "noEmit": true, "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo", - "module": "ESNext", "moduleResolution": "Bundler", "types": ["node"] diff --git a/packages/openapi-fetch/package.json b/packages/openapi-fetch/package.json index e931999b2..b14d21868 100644 --- a/packages/openapi-fetch/package.json +++ b/packages/openapi-fetch/package.json @@ -1,26 +1,19 @@ { "name": "@augwa/openapi-fetch", "description": "Fast, type-safe fetch client for your OpenAPI schema. Only 6 kb (min). Works with React, Vue, Svelte, or vanilla JS.", - "version": "0.13.7", + "version": "0.14.0", "author": { "name": "Drew Powers", "email": "drew@pow.rs" }, "license": "MIT", "type": "module", - "main": "./dist/index.js", - "module": "./dist/index.js", - "types": "./dist/index.d.ts", + "main": "./dist/index.mjs", "exports": { ".": { - "import": { - "types": "./dist/index.d.ts", - "default": "./dist/index.js" - }, - "require": { - "types": "./dist/cjs/index.d.cts", - "default": "./dist/cjs/index.cjs" - } + "import": "./dist/index.mjs", + "require": "./dist/index.cjs", + "default": "./dist/index.mjs" }, "./*": "./*" }, @@ -47,19 +40,18 @@ "svelte" ], "scripts": { - "build": "pnpm run build:clean && pnpm run build:js && pnpm run build:js-min && pnpm run build:cjs", - "build:clean": "del-cli dist", - "build:js": "mkdir -p dist && cp src/* dist", - "build:js-min": "esbuild --bundle src/index.js --format=esm --minify --outfile=dist/index.min.js && cp dist/index.d.ts dist/index.min.d.ts", - "build:cjs": "esbuild --bundle src/index.js --format=cjs --outfile=dist/cjs/index.cjs && cp dist/index.d.ts dist/cjs/index.d.cts", + "build": "unbuild", "format": "biome format . --write", - "lint": "biome check .", + "lint": "pnpm run lint:js && pnpm run lint:ts && pnpm run lint:ts-no-strict", + "lint:js": "biome check .", + "lint:ts": "tsc --noEmit", + "lint:ts-no-strict": "tsc --noEmit -p test/no-strict-null-checks/tsconfig.json", "generate-types": "openapi-typescript -c test/redocly.yaml", + "prepack": "pnpm run build", "pretest": "pnpm run generate-types", - "test": "pnpm run \"/^test:/\"", + "test": "pnpm run test:js && pnpm run test:exports", "test:js": "vitest run", - "test:ts": "tsc --noEmit", - "test:ts-no-strict": "tsc --noEmit -p test/no-strict-null-checks/tsconfig.json", + "test:exports": "pnpm run build && attw --pack .", "test-e2e": "playwright test", "bench:js": "vitest bench", "e2e-vite-build": "vite build test/e2e/app", @@ -71,8 +63,6 @@ }, "devDependencies": { "axios": "^1.9.0", - "del-cli": "^6.0.0", - "esbuild": "^0.25.3", "execa": "^9.5.2", "express": "^5.0.0", "feature-fetch": "^0.0.43", diff --git a/packages/openapi-fetch/src/index.js b/packages/openapi-fetch/src/index.js index 171187254..4b226c870 100644 --- a/packages/openapi-fetch/src/index.js +++ b/packages/openapi-fetch/src/index.js @@ -54,8 +54,9 @@ export default function createClient(clientOptions) { body, ...init } = fetchOptions || {}; + let finalBaseUrl = baseUrl; if (localBaseUrl) { - baseUrl = removeTrailingSlash(localBaseUrl); + finalBaseUrl = removeTrailingSlash(localBaseUrl) ?? baseUrl; } let querySerializer = @@ -72,29 +73,46 @@ export default function createClient(clientOptions) { }); } - const serializedBody = body === undefined ? undefined : bodySerializer(body); - - const defaultHeaders = + const serializedBody = + body === undefined + ? undefined + : bodySerializer( + body, + // Note: we declare mergeHeaders() both here and below because it’s a bit of a chicken-or-egg situation: + // bodySerializer() needs all headers so we aren’t dropping ones set by the user, however, + // the result of this ALSO sets the lowest-priority content-type header. So we re-merge below, + // setting the content-type at the very beginning to be overwritten. + // Lastly, based on the way headers work, it’s not a simpleĀ ā€œpresent-or-notā€ check becauase null intentionally un-sets headers. + mergeHeaders(baseHeaders, headers, params.header), + ); + const finalHeaders = mergeHeaders( // with no body, we should not to set Content-Type serializedBody === undefined || - // if serialized body is FormData; browser will correctly set Content-Type & boundary expression - serializedBody instanceof FormData + // if serialized body is FormData; browser will correctly set Content-Type & boundary expression + serializedBody instanceof FormData ? {} : { "Content-Type": "application/json", - }; + }, + baseHeaders, + headers, + params.header, + ); const requestInit = { redirect: "follow", ...baseOptions, ...init, body: serializedBody, - headers: mergeHeaders(defaultHeaders, baseHeaders, headers, params.header), + headers: finalHeaders, }; let id; let options; - let request = new CustomRequest(createFinalURL(schemaPath, { baseUrl, params, querySerializer }), requestInit); + let request = new CustomRequest( + createFinalURL(schemaPath, { baseUrl: finalBaseUrl, params, querySerializer }), + requestInit, + ); let response; /** Add custom parameters to Request object */ @@ -109,7 +127,7 @@ export default function createClient(clientOptions) { // middleware (request) options = Object.freeze({ - baseUrl, + baseUrl: finalBaseUrl, fetch, parseAs, querySerializer, @@ -574,10 +592,19 @@ export function defaultPathSerializer(pathname, pathParams) { * Serialize body object to string * @type {import("./index.js").defaultBodySerializer} */ -export function defaultBodySerializer(body) { +export function defaultBodySerializer(body, headers) { if (body instanceof FormData) { return body; } + if (headers) { + const contentType = + headers.get instanceof Function + ? (headers.get("Content-Type") ?? headers.get("content-type")) + : (headers["Content-Type"] ?? headers["content-type"]); + if (contentType === "application/x-www-form-urlencoded") { + return new URLSearchParams(body).toString(); + } + } return JSON.stringify(body); } diff --git a/packages/openapi-fetch/test/bench/index.bench.js b/packages/openapi-fetch/test/bench/index.bench.js index 3b03354eb..6055b2b31 100644 --- a/packages/openapi-fetch/test/bench/index.bench.js +++ b/packages/openapi-fetch/test/bench/index.bench.js @@ -3,7 +3,7 @@ import { Fetcher } from "openapi-typescript-fetch"; import { createApiFetchClient } from "feature-fetch"; import superagent from "superagent"; import { afterAll, bench, describe, vi } from "vitest"; -import createClient, { createPathBasedClient } from "../../dist/index.js"; +import createClient, { createPathBasedClient } from "../../dist/index.mjs"; import * as openapiTSCodegen from "./openapi-typescript-codegen.min.js"; const BASE_URL = "https://api.test.local"; diff --git a/packages/openapi-fetch/test/common/create-client.test.ts b/packages/openapi-fetch/test/common/create-client.test.ts index 15c5c9383..a2185c222 100644 --- a/packages/openapi-fetch/test/common/create-client.test.ts +++ b/packages/openapi-fetch/test/common/create-client.test.ts @@ -38,6 +38,25 @@ describe("createClient options", () => { expect(actualURL.href).toBe("https://api.foo.bar/v3/resources"); }); + test("baseUrl per request causes no override on default baseUrl", async () => { + let actualURL = new URL("https://fakeurl.example"); + const client = createObservedClient({ baseUrl: "https://api.foo.bar/v2/" }, async (req) => { + actualURL = new URL(req.url); + return Response.json([]); + }); + + const localBaseUrl = "https://api.foo.bar/v3"; + await client.GET("/resources", { baseUrl: localBaseUrl }); + + // assert baseUrl and path mesh as expected + expect(actualURL.href).toBe("https://api.foo.bar/v3/resources"); + + await client.GET("/resources"); + + // assert baseUrl and path mesh as expected + expect(actualURL.href).toBe("https://api.foo.bar/v2/resources"); + }); + describe("content-type", () => { const BODY_ACCEPTING_METHODS = [["PUT"], ["POST"], ["DELETE"], ["OPTIONS"], ["PATCH"]] as const; const ALL_METHODS = [...BODY_ACCEPTING_METHODS, ["GET"], ["HEAD"]] as const; diff --git a/packages/openapi-fetch/test/common/request.test.ts b/packages/openapi-fetch/test/common/request.test.ts index e4d294ef4..f5fb7c309 100644 --- a/packages/openapi-fetch/test/common/request.test.ts +++ b/packages/openapi-fetch/test/common/request.test.ts @@ -265,6 +265,19 @@ describe("request", () => { expect(bodyUsed).toBe(true); expect(bodyText).toBe("0"); }); + + test("`application/x-www-form-urlencoded` body", async () => { + const { bodyUsed, bodyText } = await fireRequestAndGetBodyInformation({ + method: "POST", + fetchOptions: { + body: { key1: "value1", key2: "value2" }, + headers: { "Content-Type": "application/x-www-form-urlencoded" }, + }, + }); + + expect(bodyUsed).toBe(true); + expect(bodyText).toBe("key1=value1&key2=value2"); + }); }); test("cookie header is preserved", async () => { diff --git a/packages/openapi-fetch/test/examples/schemas/github.d.ts b/packages/openapi-fetch/test/examples/schemas/github.d.ts index 13489f8f8..510f78b83 100644 --- a/packages/openapi-fetch/test/examples/schemas/github.d.ts +++ b/packages/openapi-fetch/test/examples/schemas/github.d.ts @@ -32229,7 +32229,7 @@ export interface components { * @default RIGHT * @enum {string|null} */ - start_side: "LEFT" | "RIGHT"; + start_side: "LEFT" | "RIGHT" | null; /** * @description The line of the blob to which the comment applies. The last line of the range for a multi-line comment * @example 2 @@ -33004,7 +33004,7 @@ export interface components { * @default RIGHT * @enum {string|null} */ - start_side: "LEFT" | "RIGHT"; + start_side: "LEFT" | "RIGHT" | null; /** * @description The line of the blob to which the comment applies. The last line of the range for a multi-line comment * @example 2 @@ -108426,7 +108426,7 @@ export interface operations { /** @description The name of the task for the deployment (e.g., `deploy` or `deploy:migrations`). */ task?: string; /** @description The name of the environment that was deployed to (e.g., `staging` or `production`). */ - environment?: string; + environment?: string | null; /** @description The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." */ per_page?: components["parameters"]["per-page"]; /** @description The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." */ diff --git a/packages/openapi-metadata/.npmignore b/packages/openapi-metadata/.npmignore index 57813066e..959bfa5d5 100644 --- a/packages/openapi-metadata/.npmignore +++ b/packages/openapi-metadata/.npmignore @@ -1,4 +1,5 @@ .turbo +*.config.* test tsconfig*.json vitest.config.ts diff --git a/packages/openapi-metadata/CHANGELOG.md b/packages/openapi-metadata/CHANGELOG.md index 9dc482583..7d96282c0 100644 --- a/packages/openapi-metadata/CHANGELOG.md +++ b/packages/openapi-metadata/CHANGELOG.md @@ -1,5 +1,11 @@ # openapi-metadata +## 0.2.1 + +### Patch Changes + +- [#2125](https://github.com/openapi-ts/openapi-typescript/pull/2125) [`a041c2d`](https://github.com/openapi-ts/openapi-typescript/commit/a041c2d340a4f1573de726d1f960169440901b24) Thanks [@kerwanp](https://github.com/kerwanp)! - [#2123](https://github.com/openapi-ts/openapi-typescript/issues/2123) Fix thunk type detection + ## 0.2.0 ### Minor Changes diff --git a/packages/openapi-metadata/build.config.ts b/packages/openapi-metadata/build.config.ts new file mode 100644 index 000000000..3e8522eb7 --- /dev/null +++ b/packages/openapi-metadata/build.config.ts @@ -0,0 +1,20 @@ +import { defineBuildConfig } from "unbuild"; + +export default defineBuildConfig({ + entries: [ + "./src/index.ts", + "./src/decorators/index.ts", + "./src/metadata/index.ts", + "./src/errors/index.ts", + "./src/ui/index.ts", + ], + declaration: "compatible", + clean: true, + sourcemap: true, + rollup: { + // Ship CommonJS-compatible bundle + emitCJS: true, + // Don’t bundle .js files together to more closely match old exports (can remove in next major) + output: { preserveModules: true }, + }, +}); diff --git a/packages/openapi-metadata/package.json b/packages/openapi-metadata/package.json index 78358c164..777fc3411 100644 --- a/packages/openapi-metadata/package.json +++ b/packages/openapi-metadata/package.json @@ -1,7 +1,7 @@ { "name": "@augwa/openapi-metadata", "description": "Auto-Generate OpenAPI specifications from Typescript decorators", - "version": "0.2.0", + "version": "0.2.1", "author": { "name": "Martin PAUCOT", "email": "contact@martin-paucot.Fr" @@ -68,10 +68,9 @@ }, "devDependencies": { "@types/node": "^22.15.3", - "@vitest/coverage-v8": "^2.1.9", + "@vitest/coverage-v8": "^3.1.3", "reflect-metadata": "^0.2.2", "typescript": "^5.8.3", - "unbuild": "^3.5.0", "unplugin-swc": "^1.5.2" }, "publishConfig": { diff --git a/packages/openapi-metadata/src/utils/metadata.ts b/packages/openapi-metadata/src/utils/metadata.ts index 13f19a224..110c1737a 100644 --- a/packages/openapi-metadata/src/utils/metadata.ts +++ b/packages/openapi-metadata/src/utils/metadata.ts @@ -35,7 +35,7 @@ export function findType({ metadataKey, prototype, propertyKey }: FindTypeOption return reflectedType; } -const IS_THUNK_REG = /.+=>[\w\d\s\t\n\r]*/; +const IS_THUNK_REG = /^.+=>[\w\d\s\t\n\r]*/; /** * Asserts that a value is a thunk value. diff --git a/packages/openapi-metadata/test/utils/metadata.test.ts b/packages/openapi-metadata/test/utils/metadata.test.ts index 9bd238511..68059edb5 100644 --- a/packages/openapi-metadata/test/utils/metadata.test.ts +++ b/packages/openapi-metadata/test/utils/metadata.test.ts @@ -12,6 +12,14 @@ test("isThunk", () => { expect(isThunk(User)).toBe(false); expect(isThunk(() => User)).toBe(true); + class InsideThunk { + test() { + return [].map(() => {}); + } + } + expect(isThunk(InsideThunk)).toBe(false); + expect(isThunk(() => InsideThunk)).toBe(true); + expect( isThunk(() => { return "TESTEST"; diff --git a/packages/openapi-metadata/tsconfig.build.json b/packages/openapi-metadata/tsconfig.build.json deleted file mode 100644 index b90fc83e0..000000000 --- a/packages/openapi-metadata/tsconfig.build.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "extends": "./tsconfig.json", - "include": ["src"] -} diff --git a/packages/openapi-react-query/.npmignore b/packages/openapi-react-query/.npmignore index 20c0b3b59..d3d855adb 100644 --- a/packages/openapi-react-query/.npmignore +++ b/packages/openapi-react-query/.npmignore @@ -1,4 +1,5 @@ .turbo +*.config.* test vitest.config.ts tsconfig*.json diff --git a/packages/openapi-react-query/CHANGELOG.md b/packages/openapi-react-query/CHANGELOG.md index 39642209c..94dcff655 100644 --- a/packages/openapi-react-query/CHANGELOG.md +++ b/packages/openapi-react-query/CHANGELOG.md @@ -1,5 +1,24 @@ # openapi-react-query +## 0.5.0 + +### Minor Changes + +- [#2310](https://github.com/openapi-ts/openapi-typescript/pull/2310) [`e66b5ce`](https://github.com/openapi-ts/openapi-typescript/commit/e66b5ce63bfcdc57c6ee942e5ed4e7667e64c290) Thanks [@drwpow](https://github.com/drwpow)! - Build package with unbuild to improve CJS support + +### Patch Changes + +- Updated dependencies [[`e66b5ce`](https://github.com/openapi-ts/openapi-typescript/commit/e66b5ce63bfcdc57c6ee942e5ed4e7667e64c290)]: + - openapi-fetch@0.14.0 + +## 0.4.2 + +### Patch Changes + +- [#2235](https://github.com/openapi-ts/openapi-typescript/pull/2235) [`694522a`](https://github.com/openapi-ts/openapi-typescript/commit/694522a7ccf90767e9de29c786794f8ddcbc08bd) Thanks [@wheelebin](https://github.com/wheelebin)! - React query handle 204 or zero content length +- Updated dependencies [[`81c031d`](https://github.com/openapi-ts/openapi-typescript/commit/81c031da8584ed49b033ebfc67bbb3e1ca258699)]: + - openapi-fetch@0.13.8 + ## 0.4.1 ### Patch Changes diff --git a/packages/openapi-react-query/build.config.ts b/packages/openapi-react-query/build.config.ts new file mode 100644 index 000000000..a92d707a0 --- /dev/null +++ b/packages/openapi-react-query/build.config.ts @@ -0,0 +1,12 @@ +import { defineBuildConfig } from "unbuild"; + +export default defineBuildConfig({ + entries: ["./src/index.ts"], + declaration: "compatible", + clean: true, + sourcemap: true, + rollup: { + // Ship CommonJS-compatible bundle + emitCJS: true, + }, +}); diff --git a/packages/openapi-react-query/package.json b/packages/openapi-react-query/package.json index 90dd53b42..e0b129874 100644 --- a/packages/openapi-react-query/package.json +++ b/packages/openapi-react-query/package.json @@ -1,26 +1,19 @@ { "name": "@augwa/openapi-react-query", "description": "Fast, type-safe @tanstack/react-query client to work with your OpenAPI schema.", - "version": "0.4.1", + "version": "0.5.0", "author": { "name": "Martin Paucot", "email": "contact@martin-paucot.fr" }, "license": "MIT", "type": "module", - "main": "./dist/index.js", - "module": "./dist/index.js", - "types": "./dist/index.d.ts", + "main": "./dist/index.mjs", "exports": { ".": { - "import": { - "types": "./dist/index.d.ts", - "default": "./dist/index.js" - }, - "require": { - "types": "./dist/index.d.ts", - "default": "./dist/index.cjs" - } + "import": "./dist/index.mjs", + "require": "./dist/index.cjs", + "default": "./dist/index.mjs" }, "./*": "./*" }, @@ -47,18 +40,17 @@ "tanstack" ], "scripts": { - "build": "pnpm run build:clean && pnpm run build:esm && pnpm run build:cjs", - "build:clean": "del-cli dist", - "build:esm": "tsc -p tsconfig.build.json", - "build:cjs": "esbuild --bundle --platform=node --target=es2019 --outfile=dist/index.cjs --external:typescript src/index.ts", + "build": "unbuild", "dev": "tsc -p tsconfig.build.json --watch", "format": "biome format . --write", - "lint": "biome check .", + "lint": "pnpm run lint:js && pnpm run lint:ts", + "lint:js": "biome check .", + "lint:ts": "tsc --noEmit", "generate-types": "openapi-typescript test/fixtures/api.yaml -o test/fixtures/api.d.ts", - "pretest": "pnpm run generate-types", - "test": "pnpm run \"/^test:/\"", + "prepack": "pnpm run build", + "test": "pnpm run generate-types && pnpm run test:js && pnpm run test:exports", "test:js": "vitest run", - "test:ts": "tsc --noEmit", + "test:exports": "pnpm run build && attw --pack .", "version": "pnpm run prepare && pnpm run build" }, "dependencies": { @@ -67,10 +59,8 @@ "devDependencies": { "@tanstack/react-query": "^5.75.1", "@testing-library/react": "^16.3.0", - "@types/react": "18.3.20", + "@types/react": "18.3.21", "@vitejs/plugin-react": "^4.4.1", - "del-cli": "^6.0.0", - "esbuild": "^0.25.0", "execa": "^9.0.0", "msw": "^2.7.5", "openapi-fetch": "workspace:^", diff --git a/packages/openapi-react-query/src/index.ts b/packages/openapi-react-query/src/index.ts index 97fd9ce1e..0ca534c34 100644 --- a/packages/openapi-react-query/src/index.ts +++ b/packages/openapi-react-query/src/index.ts @@ -194,10 +194,13 @@ export default function createClient>) => { const mth = method.toUpperCase() as Uppercase; const fn = client[mth] as ClientMethod; - const { data, error } = await fn(path, { signal, ...(init as any) }); // TODO: find a way to avoid as any + const { data, error, response } = await fn(path, { signal, ...(init as any) }); // TODO: find a way to avoid as any if (error) { throw error; } + if (response.status === 204 || response.headers.get("Content-Length") === "0") { + return data ?? null; + } return data; }; diff --git a/packages/openapi-react-query/test/index.test.tsx b/packages/openapi-react-query/test/index.test.tsx index 1062bafd7..4e2801a15 100644 --- a/packages/openapi-react-query/test/index.test.tsx +++ b/packages/openapi-react-query/test/index.test.tsx @@ -315,7 +315,7 @@ describe("client", () => { expect(error).toBeNull(); }); - it("should resolve error properly and have undefined data when queryFn returns undefined", async () => { + it("handles undefined response with non-zero Content-Length (status 200) by setting error and undefined data", async () => { const fetchClient = createFetchClient({ baseUrl }); const client = createClient(fetchClient); @@ -324,6 +324,9 @@ describe("client", () => { method: "get", path: "/string-array", status: 200, + headers: { + "Content-Length": "10", + }, body: undefined, }); @@ -337,6 +340,53 @@ describe("client", () => { expect(data).toBeUndefined(); }); + it("handles undefined response with zero Content-Length by setting data and error to null", async () => { + const fetchClient = createFetchClient({ baseUrl }); + const client = createClient(fetchClient); + + useMockRequestHandler({ + baseUrl, + method: "get", + path: "/string-array", + status: 200, + headers: { + "Content-Length": "0", + }, + body: undefined, + }); + + const { result } = renderHook(() => client.useQuery("get", "/string-array"), { wrapper }); + + await waitFor(() => expect(result.current.isFetching).toBe(false)); + + const { data, error } = result.current; + + expect(error).toBeNull(); + expect(data).toBeNull(); + }); + + it("handles undefined response with 204 No Content status by setting data and error to null", async () => { + const fetchClient = createFetchClient({ baseUrl }); + const client = createClient(fetchClient); + + useMockRequestHandler({ + baseUrl, + method: "get", + path: "/string-array", + status: 204, + body: undefined, + }); + + const { result } = renderHook(() => client.useQuery("get", "/string-array"), { wrapper }); + + await waitFor(() => expect(result.current.isFetching).toBe(false)); + + const { data, error } = result.current; + + expect(error).toBeNull(); + expect(data).toBeNull(); + }); + it("should infer correct data and error type", async () => { const fetchClient = createFetchClient({ baseUrl, fetch: fetchInfinite }); const client = createClient(fetchClient); diff --git a/packages/openapi-react-query/tsconfig.build.json b/packages/openapi-react-query/tsconfig.build.json deleted file mode 100644 index b90fc83e0..000000000 --- a/packages/openapi-react-query/tsconfig.build.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "extends": "./tsconfig.json", - "include": ["src"] -} diff --git a/packages/openapi-typescript-helpers/.npmignore b/packages/openapi-typescript-helpers/.npmignore index 6ee4588fc..f8f90f0a3 100644 --- a/packages/openapi-typescript-helpers/.npmignore +++ b/packages/openapi-typescript-helpers/.npmignore @@ -1,3 +1,5 @@ .turbo +*.config.* biome.json +src tsconfig*.json diff --git a/packages/openapi-typescript-helpers/build.config.ts b/packages/openapi-typescript-helpers/build.config.ts new file mode 100644 index 000000000..fcba5abaa --- /dev/null +++ b/packages/openapi-typescript-helpers/build.config.ts @@ -0,0 +1,14 @@ +import { defineBuildConfig } from "unbuild"; + +export default defineBuildConfig({ + entries: ["./src/index.ts"], + declaration: "compatible", + clean: true, + sourcemap: true, + rollup: { + // Ship CommonJS-compatible bundle + emitCJS: true, + // Don’t bundle .js files together to more closely match old exports (can remove in next major) + output: { preserveModules: true }, + }, +}); diff --git a/packages/openapi-typescript-helpers/index.cjs b/packages/openapi-typescript-helpers/index.cjs deleted file mode 100644 index 2e4eaeca8..000000000 --- a/packages/openapi-typescript-helpers/index.cjs +++ /dev/null @@ -1,4 +0,0 @@ -/** - * Stub file to allow importing from the root of the package. - */ -module.exports = null; diff --git a/packages/openapi-typescript-helpers/index.js b/packages/openapi-typescript-helpers/index.js deleted file mode 100644 index 6e5f33030..000000000 --- a/packages/openapi-typescript-helpers/index.js +++ /dev/null @@ -1,4 +0,0 @@ -/** - * Stub file to allow importing from the root of the package. - */ -export default null; diff --git a/packages/openapi-typescript-helpers/package.json b/packages/openapi-typescript-helpers/package.json index 8fd1e0682..e22f0469f 100644 --- a/packages/openapi-typescript-helpers/package.json +++ b/packages/openapi-typescript-helpers/package.json @@ -8,27 +8,15 @@ }, "license": "MIT", "type": "module", - "main": "./index.js", - "types": "./index.d.ts", + "main": "./dist/index.mjs", "exports": { ".": { - "import": { - "types": "./index.d.ts", - "default": "./index.js" - }, - "require": { - "types": "./index.d.cts", - "default": "./index.cjs" - } + "import": "./dist/index.mjs", + "require": "./dist/index.cjs", + "default": "./dist/index.mjs" }, "./*": "./*" }, - "files": [ - "index.js", - "index.cjs", - "index.d.ts", - "index.d.cts" - ], "homepage": "https://openapi-ts.dev", "repository": { "type": "git", @@ -39,10 +27,11 @@ "url": "https://github.com/openapi-ts/openapi-typescript/issues" }, "scripts": { - "build": "cp index.d.ts index.d.cts", - "format": "biome format . --write", - "lint": "biome check .", - "test": "tsc --noEmit" + "build": "unbuild", + "format": "biome format src --write", + "lint": "pnpm run lint:js && pnpm run lint:ts", + "lint:js": "biome check src", + "lint:ts": "tsc --noEmit" }, "devDependencies": { "typescript": "^5.8.3" diff --git a/packages/openapi-typescript-helpers/index.d.ts b/packages/openapi-typescript-helpers/src/index.ts similarity index 99% rename from packages/openapi-typescript-helpers/index.d.ts rename to packages/openapi-typescript-helpers/src/index.ts index 1715c07cc..3c8a004ce 100644 --- a/packages/openapi-typescript-helpers/index.d.ts +++ b/packages/openapi-typescript-helpers/src/index.ts @@ -122,7 +122,7 @@ export type SuccessResponse< Media extends MediaType = MediaType, > = GetResponseContent; -type GetResponseContent< +export type GetResponseContent< T extends Record, Media extends MediaType = MediaType, ResponseCode extends keyof T = keyof T, diff --git a/packages/openapi-typescript-helpers/tsconfig.json b/packages/openapi-typescript-helpers/tsconfig.json index ea5a9e7db..48e008b72 100644 --- a/packages/openapi-typescript-helpers/tsconfig.json +++ b/packages/openapi-typescript-helpers/tsconfig.json @@ -1,8 +1,7 @@ { "extends": "../../tsconfig.json", "compilerOptions": { - "rootDir": ".", "skipLibCheck": false }, - "include": ["."] + "include": ["src"] } diff --git a/packages/openapi-typescript/.npmignore b/packages/openapi-typescript/.npmignore index 0616f3a9c..c66b9f355 100644 --- a/packages/openapi-typescript/.npmignore +++ b/packages/openapi-typescript/.npmignore @@ -1,4 +1,5 @@ .turbo +*.config.* examples/ scripts/ test/ diff --git a/packages/openapi-typescript/CHANGELOG.md b/packages/openapi-typescript/CHANGELOG.md index b14988c97..382af127d 100644 --- a/packages/openapi-typescript/CHANGELOG.md +++ b/packages/openapi-typescript/CHANGELOG.md @@ -1,5 +1,23 @@ # openapi-typescript +## 7.8.0 + +### Minor Changes + +- [#2310](https://github.com/openapi-ts/openapi-typescript/pull/2310) [`e66b5ce`](https://github.com/openapi-ts/openapi-typescript/commit/e66b5ce63bfcdc57c6ee942e5ed4e7667e64c290) Thanks [@drwpow](https://github.com/drwpow)! - Build package with unbuild to improve CJS support + +## 7.7.3 + +### Patch Changes + +- [#2185](https://github.com/openapi-ts/openapi-typescript/pull/2185) [`67889ba`](https://github.com/openapi-ts/openapi-typescript/commit/67889baf7832188f6589e0fb2e3d31a2e6ede257) Thanks [@duncanbeevers](https://github.com/duncanbeevers)! - Fix invalid $ref index into path + +## 7.7.2 + +### Patch Changes + +- [#2145](https://github.com/openapi-ts/openapi-typescript/pull/2145) [`d79efae`](https://github.com/openapi-ts/openapi-typescript/commit/d79efaea3385d2421d3d295f69d7036cddb106b5) Thanks [@luhn](https://github.com/luhn)! - Don't remove `null` type if a default is present. + ## 7.7.1 ### Patch Changes diff --git a/packages/openapi-typescript/bin/cli.js b/packages/openapi-typescript/bin/cli.js index d40bd6606..fea433124 100755 --- a/packages/openapi-typescript/bin/cli.js +++ b/packages/openapi-typescript/bin/cli.js @@ -5,7 +5,7 @@ import fs from "node:fs"; import path from "node:path"; import { performance } from "node:perf_hooks"; import parser from "yargs-parser"; -import openapiTS, { COMMENT_HEADER, astToString, c, error, formatTime, warn } from "../dist/index.js"; +import openapiTS, { COMMENT_HEADER, astToString, c, error, formatTime, warn } from "../dist/index.mjs"; const HELP = `Usage $ openapi-typescript [input] [options] diff --git a/packages/openapi-typescript/build.config.ts b/packages/openapi-typescript/build.config.ts new file mode 100644 index 000000000..fcba5abaa --- /dev/null +++ b/packages/openapi-typescript/build.config.ts @@ -0,0 +1,14 @@ +import { defineBuildConfig } from "unbuild"; + +export default defineBuildConfig({ + entries: ["./src/index.ts"], + declaration: "compatible", + clean: true, + sourcemap: true, + rollup: { + // Ship CommonJS-compatible bundle + emitCJS: true, + // Don’t bundle .js files together to more closely match old exports (can remove in next major) + output: { preserveModules: true }, + }, +}); diff --git a/packages/openapi-typescript/examples/digital-ocean-api.ts b/packages/openapi-typescript/examples/digital-ocean-api.ts index 79f858b20..1b42592f9 100644 --- a/packages/openapi-typescript/examples/digital-ocean-api.ts +++ b/packages/openapi-typescript/examples/digital-ocean-api.ts @@ -12326,7 +12326,7 @@ export interface components { * "web" * ] */ - tags: string[]; + tags: string[] | null; /** * @description A string containing 'user data' which may be used to configure the Droplet on first boot, often a 'cloud-config' file or Bash script. It must be plain text and may not exceed 64 KiB in size. * @example #cloud-config diff --git a/packages/openapi-typescript/examples/github-api-export-type-immutable.ts b/packages/openapi-typescript/examples/github-api-export-type-immutable.ts index 699297eb3..483598b53 100644 --- a/packages/openapi-typescript/examples/github-api-export-type-immutable.ts +++ b/packages/openapi-typescript/examples/github-api-export-type-immutable.ts @@ -32229,7 +32229,7 @@ export type components = { * @default RIGHT * @enum {string|null} */ - readonly start_side: "LEFT" | "RIGHT"; + readonly start_side: "LEFT" | "RIGHT" | null; /** * @description The line of the blob to which the comment applies. The last line of the range for a multi-line comment * @example 2 @@ -33004,7 +33004,7 @@ export type components = { * @default RIGHT * @enum {string|null} */ - readonly start_side: "LEFT" | "RIGHT"; + readonly start_side: "LEFT" | "RIGHT" | null; /** * @description The line of the blob to which the comment applies. The last line of the range for a multi-line comment * @example 2 @@ -108426,7 +108426,7 @@ export interface operations { /** @description The name of the task for the deployment (e.g., `deploy` or `deploy:migrations`). */ readonly task?: string; /** @description The name of the environment that was deployed to (e.g., `staging` or `production`). */ - readonly environment?: string; + readonly environment?: string | null; /** @description The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." */ readonly per_page?: components["parameters"]["per-page"]; /** @description The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." */ diff --git a/packages/openapi-typescript/examples/github-api-immutable.ts b/packages/openapi-typescript/examples/github-api-immutable.ts index 25a97d3f9..323ea9428 100644 --- a/packages/openapi-typescript/examples/github-api-immutable.ts +++ b/packages/openapi-typescript/examples/github-api-immutable.ts @@ -32229,7 +32229,7 @@ export interface components { * @default RIGHT * @enum {string|null} */ - readonly start_side: "LEFT" | "RIGHT"; + readonly start_side: "LEFT" | "RIGHT" | null; /** * @description The line of the blob to which the comment applies. The last line of the range for a multi-line comment * @example 2 @@ -33004,7 +33004,7 @@ export interface components { * @default RIGHT * @enum {string|null} */ - readonly start_side: "LEFT" | "RIGHT"; + readonly start_side: "LEFT" | "RIGHT" | null; /** * @description The line of the blob to which the comment applies. The last line of the range for a multi-line comment * @example 2 @@ -108426,7 +108426,7 @@ export interface operations { /** @description The name of the task for the deployment (e.g., `deploy` or `deploy:migrations`). */ readonly task?: string; /** @description The name of the environment that was deployed to (e.g., `staging` or `production`). */ - readonly environment?: string; + readonly environment?: string | null; /** @description The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." */ readonly per_page?: components["parameters"]["per-page"]; /** @description The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." */ diff --git a/packages/openapi-typescript/examples/github-api-next.ts b/packages/openapi-typescript/examples/github-api-next.ts index 3e54966f1..454391ea9 100644 --- a/packages/openapi-typescript/examples/github-api-next.ts +++ b/packages/openapi-typescript/examples/github-api-next.ts @@ -108750,7 +108750,7 @@ export interface operations { /** @description The name of the task for the deployment (e.g., `deploy` or `deploy:migrations`). */ task?: string; /** @description The name of the environment that was deployed to (e.g., `staging` or `production`). */ - environment?: string; + environment?: string | null; /** @description The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." */ per_page?: components["parameters"]["per-page"]; /** @description The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." */ diff --git a/packages/openapi-typescript/examples/github-api-required.ts b/packages/openapi-typescript/examples/github-api-required.ts index ed8280c84..ff4362624 100644 --- a/packages/openapi-typescript/examples/github-api-required.ts +++ b/packages/openapi-typescript/examples/github-api-required.ts @@ -32229,7 +32229,7 @@ export interface components { * @default RIGHT * @enum {string|null} */ - start_side: "LEFT" | "RIGHT"; + start_side: "LEFT" | "RIGHT" | null; /** * @description The line of the blob to which the comment applies. The last line of the range for a multi-line comment * @example 2 @@ -33004,7 +33004,7 @@ export interface components { * @default RIGHT * @enum {string|null} */ - start_side: "LEFT" | "RIGHT"; + start_side: "LEFT" | "RIGHT" | null; /** * @description The line of the blob to which the comment applies. The last line of the range for a multi-line comment * @example 2 @@ -108426,7 +108426,7 @@ export interface operations { /** @description The name of the task for the deployment (e.g., `deploy` or `deploy:migrations`). */ task?: string; /** @description The name of the environment that was deployed to (e.g., `staging` or `production`). */ - environment?: string; + environment?: string | null; /** @description The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." */ per_page?: components["parameters"]["per-page"]; /** @description The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." */ diff --git a/packages/openapi-typescript/examples/github-api-root-types.ts b/packages/openapi-typescript/examples/github-api-root-types.ts index f010442dc..dd0d43544 100644 --- a/packages/openapi-typescript/examples/github-api-root-types.ts +++ b/packages/openapi-typescript/examples/github-api-root-types.ts @@ -32229,7 +32229,7 @@ export interface components { * @default RIGHT * @enum {string|null} */ - start_side: "LEFT" | "RIGHT"; + start_side: "LEFT" | "RIGHT" | null; /** * @description The line of the blob to which the comment applies. The last line of the range for a multi-line comment * @example 2 @@ -33004,7 +33004,7 @@ export interface components { * @default RIGHT * @enum {string|null} */ - start_side: "LEFT" | "RIGHT"; + start_side: "LEFT" | "RIGHT" | null; /** * @description The line of the blob to which the comment applies. The last line of the range for a multi-line comment * @example 2 @@ -109453,7 +109453,7 @@ export interface operations { /** @description The name of the task for the deployment (e.g., `deploy` or `deploy:migrations`). */ task?: string; /** @description The name of the environment that was deployed to (e.g., `staging` or `production`). */ - environment?: string; + environment?: string | null; /** @description The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." */ per_page?: components["parameters"]["per-page"]; /** @description The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." */ diff --git a/packages/openapi-typescript/examples/github-api.ts b/packages/openapi-typescript/examples/github-api.ts index 13489f8f8..510f78b83 100644 --- a/packages/openapi-typescript/examples/github-api.ts +++ b/packages/openapi-typescript/examples/github-api.ts @@ -32229,7 +32229,7 @@ export interface components { * @default RIGHT * @enum {string|null} */ - start_side: "LEFT" | "RIGHT"; + start_side: "LEFT" | "RIGHT" | null; /** * @description The line of the blob to which the comment applies. The last line of the range for a multi-line comment * @example 2 @@ -33004,7 +33004,7 @@ export interface components { * @default RIGHT * @enum {string|null} */ - start_side: "LEFT" | "RIGHT"; + start_side: "LEFT" | "RIGHT" | null; /** * @description The line of the blob to which the comment applies. The last line of the range for a multi-line comment * @example 2 @@ -108426,7 +108426,7 @@ export interface operations { /** @description The name of the task for the deployment (e.g., `deploy` or `deploy:migrations`). */ task?: string; /** @description The name of the environment that was deployed to (e.g., `staging` or `production`). */ - environment?: string; + environment?: string | null; /** @description The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." */ per_page?: components["parameters"]["per-page"]; /** @description The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." */ diff --git a/packages/openapi-typescript/package.json b/packages/openapi-typescript/package.json index 01fab1c20..c0e786aca 100644 --- a/packages/openapi-typescript/package.json +++ b/packages/openapi-typescript/package.json @@ -1,7 +1,7 @@ { "name": "@augwa/openapi-typescript", "description": "Convert OpenAPI 3.0 & 3.1 schemas to TypeScript", - "version": "7.7.1", + "version": "7.8.0", "author": { "name": "Drew Powers", "email": "drew@pow.rs" @@ -11,12 +11,14 @@ "openapi-typescript": "bin/cli.js" }, "type": "module", - "main": "./dist/index.js", + "main": "./dist/index.mjs", "exports": { ".": { - "import": "./dist/index.js", - "require": "./dist/index.cjs" + "import": "./dist/index.mjs", + "require": "./dist/index.cjs", + "default": "./dist/index.mjs" }, + "./*.js": "./*.mjs", "./*": "./*" }, "homepage": "https://openapi-ts.dev", @@ -40,18 +42,18 @@ "url": "https://github.com/openapi-ts/openapi-typescript/issues" }, "scripts": { - "build": "pnpm run build:clean && pnpm run build:esm && pnpm run build:cjs", - "build:clean": "del-cli dist", - "build:esm": "tsc -p tsconfig.build.json", - "build:cjs": "esbuild --bundle --platform=node --target=es2019 --outfile=dist/index.cjs --external:@redocly/ajv --external:@redocly/openapi-core --external:typescript src/index.ts", + "build": "unbuild", "dev": "tsc -p tsconfig.build.json --watch", "download:schemas": "vite-node ./scripts/download-schemas.ts", "format": "biome format . --write", - "lint": "biome check .", - "test": "pnpm run \"/^test:/\"", - "test:examples": "tsc -p tsconfig.examples.json --noEmit", + "lint": "pnpm run lint:js && pnpm run lint:ts", + "lint:js": "biome check .", + "lint:ts": "tsc --noEmit", + "prepack": "pnpm run build", + "test": "pnpm run test:js && pnpm run test:examples && pnpm run test:exports", "test:js": "vitest run", - "test:ts": "tsc --noEmit", + "test:exports": "pnpm run build && attw --pack .", + "test:examples": "tsc -p tsconfig.examples.json --noEmit", "update:examples": "pnpm run build && pnpm run download:schemas && vite-node ./scripts/update-examples.ts", "prepublish": "pnpm run build", "version": "pnpm run build" @@ -60,7 +62,7 @@ "typescript": "^5.x" }, "dependencies": { - "@redocly/openapi-core": "^1.34.2", + "@redocly/openapi-core": "^1.34.3", "ansi-colors": "^4.1.3", "change-case": "^5.4.4", "parse-json": "^8.3.0", @@ -71,12 +73,10 @@ "@types/degit": "^2.8.6", "@types/js-yaml": "^4.0.9", "degit": "^2.8.4", - "del-cli": "^6.0.0", - "esbuild": "^0.25.0", - "execa": "^9.0.0", + "execa": "^9.5.3", "strip-ansi": "^7.1.0", "typescript": "^5.8.3", - "vite-node": "^2.1.9" + "vite-node": "^3.1.3" }, "publishConfig": { "registry": "https://npm.pkg.github.com" diff --git a/packages/openapi-typescript/src/lib/ts.ts b/packages/openapi-typescript/src/lib/ts.ts index 7bd29ce75..eff357acc 100644 --- a/packages/openapi-typescript/src/lib/ts.ts +++ b/packages/openapi-typescript/src/lib/ts.ts @@ -1,5 +1,7 @@ import { parseRef } from "@redocly/openapi-core/lib/ref-utils.js"; +import type { Referenced, OasRef } from "@redocly/openapi-core"; import ts, { type LiteralTypeNode, type TypeLiteralNode } from "typescript"; +import type { ParameterObject } from "../types.js"; export const JS_PROPERTY_INDEX_RE = /^[A-Za-z_$][A-Za-z_$0-9]*$/; export const JS_ENUM_INVALID_CHARS_RE = /[^A-Za-z_$0-9]+(.)?/g; @@ -115,33 +117,77 @@ export function addJSDocComment(schemaObject: AnnotatedSchemaObject, node: ts.Pr } } -/** Convert OpenAPI ref into TS indexed access node (ex: `components["schemas"]["Foo"]`) */ -export function oapiRef(path: string): ts.TypeNode { +function isOasRef(obj: Referenced): obj is OasRef { + return Boolean((obj as OasRef).$ref); +} +type OapiRefResolved = Referenced; + +function isParameterObject(obj: OapiRefResolved | undefined): obj is ParameterObject { + return Boolean(obj && !isOasRef(obj) && obj.in); +} + +function addIndexedAccess(node: ts.TypeReferenceNode | ts.IndexedAccessTypeNode, ...segments: readonly string[]) { + return segments.reduce((acc, segment) => { + return ts.factory.createIndexedAccessTypeNode( + acc, + ts.factory.createLiteralTypeNode( + typeof segment === "number" + ? ts.factory.createNumericLiteral(segment) + : ts.factory.createStringLiteral(segment), + ), + ); + }, node); +} + +/** + * Convert OpenAPI ref into TS indexed access node (ex: `components["schemas"]["Foo"]`) + * `path` is a JSON Pointer to a location within an OpenAPI document. + * Transform it into a TypeScript type reference into the generated types. + * + * In most cases the structures of the openapi-typescript generated types and the + * JSON Pointer paths into the OpenAPI document are the same. However, in some cases + * special transformations are necessary to account for the ways they differ. + * * Object schemas + * $refs into the `properties` of object schemas are valid, but openapi-typescript + * flattens these objects, so we omit so the index into the schema skips ["properties"] + * * Parameters + * $refs into the `parameters` of paths are valid, but openapi-ts represents + * them according to their type; path, query, header, etc… so in these cases we + * must check the parameter definition to determine the how to index into + * the openapi-typescript type. + **/ +export function oapiRef(path: string, resolved?: OapiRefResolved): ts.TypeNode { const { pointer } = parseRef(path); if (pointer.length === 0) { throw new Error(`Error parsing $ref: ${path}. Is this a valid $ref?`); } - let t: ts.TypeReferenceNode | ts.IndexedAccessTypeNode = ts.factory.createTypeReferenceNode( - ts.factory.createIdentifier(String(pointer[0])), + + const parametersObject = isParameterObject(resolved); + + // Initial segments are handled in a fixed , then remaining segments are treated + // according to heuristics based on the initial segments + const initialSegment = pointer[0]; + const leadingSegments = pointer.slice(1, 3); + const restSegments = pointer.slice(3); + + const leadingType = addIndexedAccess( + ts.factory.createTypeReferenceNode(ts.factory.createIdentifier(String(initialSegment))), + ...leadingSegments, ); - if (pointer.length > 1) { - for (let i = 1; i < pointer.length; i++) { - // Skip `properties` items when in the middle of the pointer - // See: https://github.com/openapi-ts/openapi-typescript/issues/1742 - if (i > 2 && i < pointer.length - 1 && pointer[i] === "properties") { - continue; - } - t = ts.factory.createIndexedAccessTypeNode( - t, - ts.factory.createLiteralTypeNode( - typeof pointer[i] === "number" - ? ts.factory.createNumericLiteral(pointer[i]) - : ts.factory.createStringLiteral(pointer[i] as string), - ), - ); + + return restSegments.reduce((acc, segment, index, original) => { + // Skip `properties` items when in the middle of the pointer + // See: https://github.com/openapi-ts/openapi-typescript/issues/1742 + if (segment === "properties") { + return acc; } - } - return t; + + if (parametersObject && index === original.length - 1) { + return addIndexedAccess(acc, resolved.in, resolved.name); + } + + return addIndexedAccess(acc, segment); + }, leadingType); } export interface AstToStringOptions { diff --git a/packages/openapi-typescript/src/transform/parameters-array.ts b/packages/openapi-typescript/src/transform/parameters-array.ts index be995b75a..c28aac0ea 100644 --- a/packages/openapi-typescript/src/transform/parameters-array.ts +++ b/packages/openapi-typescript/src/transform/parameters-array.ts @@ -92,7 +92,7 @@ export function transformParametersArray( } const subType = "$ref" in original - ? oapiRef(original.$ref) + ? oapiRef(original.$ref, resolved) : transformParameterObject(resolved as ParameterObject, { ...options, path: createRef([options.path, "parameters", resolved.in, resolved.name]), diff --git a/packages/openapi-typescript/src/transform/schema-object.ts b/packages/openapi-typescript/src/transform/schema-object.ts index c1cea25dd..f0a582022 100644 --- a/packages/openapi-typescript/src/transform/schema-object.ts +++ b/packages/openapi-typescript/src/transform/schema-object.ts @@ -130,10 +130,7 @@ export function transformSchemaObjectWithComposition( return hasNull ? tsUnion([ref, NULL]) : ref; } const enumType = schemaObject.enum.map(tsLiteral); - if ( - ((Array.isArray(schemaObject.type) && schemaObject.type.includes("null")) || schemaObject.nullable) && - !schemaObject.default - ) { + if ((Array.isArray(schemaObject.type) && schemaObject.type.includes("null")) || schemaObject.nullable) { enumType.push(NULL); } @@ -266,7 +263,7 @@ export function transformSchemaObjectWithComposition( } } - if (finalType !== UNKNOWN && schemaObject.nullable && !schemaObject.default) { + if (finalType !== UNKNOWN && schemaObject.nullable) { finalType = tsNullable([finalType]); } @@ -405,9 +402,7 @@ function transformSchemaObjectCore(schemaObject: SchemaObject, options: Transfor } else { for (const t of schemaObject.type) { if (t === "null" || t === null) { - if (!schemaObject.default) { - uniqueTypes.push(NULL); - } + uniqueTypes.push(NULL); } else { uniqueTypes.push(transformSchemaObject({ ...schemaObject, type: t } as SchemaObject, options)); } diff --git a/packages/openapi-typescript/test/fixtures/parameters-test.yaml b/packages/openapi-typescript/test/fixtures/parameters-test.yaml index 1807eeed6..c16167f07 100644 --- a/packages/openapi-typescript/test/fixtures/parameters-test.yaml +++ b/packages/openapi-typescript/test/fixtures/parameters-test.yaml @@ -35,6 +35,9 @@ paths: type: string - $ref: "#/components/parameters/local_ref_b" - $ref: "./_parameters-test-partial.yaml#/remote_ref_b" + /endpoint2: + parameters: + - $ref: "#/paths/~1endpoint/get/parameters/0" components: parameters: local_ref_a: diff --git a/packages/openapi-typescript/test/index.test.ts b/packages/openapi-typescript/test/index.test.ts index 8bd11b97f..f3fffc6e7 100644 --- a/packages/openapi-typescript/test/index.test.ts +++ b/packages/openapi-typescript/test/index.test.ts @@ -172,6 +172,25 @@ export type operations = Record;`, patch?: never; trace?: never; }; + "/endpoint2": { + parameters: { + query?: never; + header?: never; + path: { + /** @description This overrides parameters */ + local_param_a: paths["/endpoint"]["get"]["parameters"]["path"]["local_param_a"]; + }; + cookie?: never; + }; + get?: never; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; } export type webhooks = Record; export interface components { diff --git a/packages/openapi-typescript/test/lib/ts.test.ts b/packages/openapi-typescript/test/lib/ts.test.ts index e7a1fd992..afeee038c 100644 --- a/packages/openapi-typescript/test/lib/ts.test.ts +++ b/packages/openapi-typescript/test/lib/ts.test.ts @@ -65,15 +65,27 @@ describe("oapiRef", () => { expect(astToString(oapiRef("#/components/schemas/User")).trim()).toBe(`components["schemas"]["User"]`); }); - test("removes inner `properties`", () => { + test("`properties` of component schema `properties`", () => { expect(astToString(oapiRef("#/components/schemas/User/properties/username")).trim()).toBe( `components["schemas"]["User"]["username"]`, ); }); - test("leaves final `properties` intact", () => { + test("component schema named `properties`", () => { expect(astToString(oapiRef("#/components/schemas/properties")).trim()).toBe(`components["schemas"]["properties"]`); }); + + test("reference into paths parameters", () => { + expect( + astToString( + oapiRef("#/paths/~1endpoint/get/parameters/0", { + in: "query", + name: "boop", + required: true, + }), + ).trim(), + ).toBe('paths["/endpoint"]["get"]["parameters"]["query"]["boop"]'); + }); }); describe("tsEnum", () => { diff --git a/packages/openapi-typescript/test/transform/schema-object/string.test.ts b/packages/openapi-typescript/test/transform/schema-object/string.test.ts index 21a58b706..3ff497833 100644 --- a/packages/openapi-typescript/test/transform/schema-object/string.test.ts +++ b/packages/openapi-typescript/test/transform/schema-object/string.test.ts @@ -102,21 +102,21 @@ describe("transformSchemaObject > string", () => { "default + nullable", { given: { type: ["string", "null"], default: "en" }, - want: "string", + want: "string | null", }, ], [ "default + nullable + enum", { given: { type: ["string", "null"], enum: ["en", "es", "fr", "de"], default: "en" }, - want: '"en" | "es" | "fr" | "de"', + want: '"en" | "es" | "fr" | "de" | null', }, ], [ "default + nullable (deprecated syntax)", { given: { type: "string", default: "en", nullable: true }, - want: "string", + want: "string | null", }, ], ]; diff --git a/packages/openapi-typescript/test/transform/webhooks-object.test.ts b/packages/openapi-typescript/test/transform/webhooks-object.test.ts index f310d14e4..8a9c2e725 100644 --- a/packages/openapi-typescript/test/transform/webhooks-object.test.ts +++ b/packages/openapi-typescript/test/transform/webhooks-object.test.ts @@ -105,10 +105,10 @@ describe("transformWebhooksObject", () => { schema: { type: "string" }, required: true, }, - { $ref: "#/components/parameters/query/utm_source" }, - { $ref: "#/components/parameters/query/utm_email" }, - { $ref: "#/components/parameters/query/utm_campaign" }, - { $ref: "#/components/parameters/path/version" }, + { $ref: "#/components/parameters/utm_source" }, + { $ref: "#/components/parameters/utm_email" }, + { $ref: "#/components/parameters/utm_campaign" }, + { $ref: "#/components/parameters/version" }, ], }, }, @@ -117,13 +117,13 @@ describe("transformWebhooksObject", () => { parameters: { query: { signature: string; - utm_source?: components["parameters"]["query"]["utm_source"]; - utm_email?: components["parameters"]["query"]["utm_email"]; - utm_campaign?: components["parameters"]["query"]["utm_campaign"]; + utm_source?: components["parameters"]["utm_source"]; + utm_email?: components["parameters"]["utm_email"]; + utm_campaign?: components["parameters"]["utm_campaign"]; }; header?: never; path: { - utm_campaign: components["parameters"]["path"]["version"]; + utm_campaign: components["parameters"]["version"]; }; cookie?: never; }; @@ -141,28 +141,28 @@ describe("transformWebhooksObject", () => { ...DEFAULT_OPTIONS, resolve($ref) { switch ($ref) { - case "#/components/parameters/query/utm_source": { + case "#/components/parameters/utm_source": { return { in: "query", name: "utm_source", schema: { type: "string" }, }; } - case "#/components/parameters/query/utm_email": { + case "#/components/parameters/utm_email": { return { in: "query", name: "utm_email", schema: { type: "string" }, }; } - case "#/components/parameters/query/utm_campaign": { + case "#/components/parameters/utm_campaign": { return { in: "query", name: "utm_campaign", schema: { type: "string" }, }; } - case "#/components/parameters/path/version": { + case "#/components/parameters/version": { return { in: "path", name: "utm_campaign", diff --git a/packages/openapi-typescript/tsconfig.build.json b/packages/openapi-typescript/tsconfig.build.json deleted file mode 100644 index e0f85712e..000000000 --- a/packages/openapi-typescript/tsconfig.build.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "module": "ES2022", - "moduleResolution": "Node" - }, - "exclude": ["scripts", "test", "*.ts"] -} diff --git a/packages/swr-openapi/.npmignore b/packages/swr-openapi/.npmignore new file mode 100644 index 000000000..17775deea --- /dev/null +++ b/packages/swr-openapi/.npmignore @@ -0,0 +1,4 @@ +.turbo +*.config.* +biome.json +tsconfig*.json diff --git a/packages/swr-openapi/CHANGELOG.md b/packages/swr-openapi/CHANGELOG.md index f22080d8d..7420ceead 100644 --- a/packages/swr-openapi/CHANGELOG.md +++ b/packages/swr-openapi/CHANGELOG.md @@ -1,5 +1,30 @@ # swr-openapi +## 5.3.0 + +### Minor Changes + +- [#2310](https://github.com/openapi-ts/openapi-typescript/pull/2310) [`e66b5ce`](https://github.com/openapi-ts/openapi-typescript/commit/e66b5ce63bfcdc57c6ee942e5ed4e7667e64c290) Thanks [@drwpow](https://github.com/drwpow)! - Build package with unbuild to improve CJS support + +### Patch Changes + +- Updated dependencies [[`e66b5ce`](https://github.com/openapi-ts/openapi-typescript/commit/e66b5ce63bfcdc57c6ee942e5ed4e7667e64c290), [`e66b5ce`](https://github.com/openapi-ts/openapi-typescript/commit/e66b5ce63bfcdc57c6ee942e5ed4e7667e64c290)]: + - openapi-fetch@0.14.0 + - openapi-typescript@7.8.0 + +## 5.2.0 + +### Minor Changes + +- [#2147](https://github.com/openapi-ts/openapi-typescript/pull/2147) [`5848759`](https://github.com/openapi-ts/openapi-typescript/commit/5848759e3b6796331b0e85bf26a01c14af90537f) Thanks [@SSlime-s](https://github.com/SSlime-s)! - Add custom error types to query builder + +## 5.1.7 + +### Patch Changes + +- Updated dependencies [[`81c031d`](https://github.com/openapi-ts/openapi-typescript/commit/81c031da8584ed49b033ebfc67bbb3e1ca258699)]: + - openapi-fetch@0.13.8 + ## 5.1.6 ### Patch Changes diff --git a/packages/swr-openapi/build.config.ts b/packages/swr-openapi/build.config.ts new file mode 100644 index 000000000..a92d707a0 --- /dev/null +++ b/packages/swr-openapi/build.config.ts @@ -0,0 +1,12 @@ +import { defineBuildConfig } from "unbuild"; + +export default defineBuildConfig({ + entries: ["./src/index.ts"], + declaration: "compatible", + clean: true, + sourcemap: true, + rollup: { + // Ship CommonJS-compatible bundle + emitCJS: true, + }, +}); diff --git a/packages/swr-openapi/package.json b/packages/swr-openapi/package.json index 80b9327c4..16339941f 100644 --- a/packages/swr-openapi/package.json +++ b/packages/swr-openapi/package.json @@ -1,17 +1,21 @@ { "name": "@augwa/swr-openapi", "description": "Generate SWR hooks from OpenAPI schemas", - "version": "5.1.6", + "version": "5.3.0", "author": { "name": "Hunter Tunnicliff", "email": "hunter@tunnicliff.co" }, "license": "MIT", "type": "module", - "main": "dist/index.js", + "main": "./dist/index.mjs", "exports": { - "import": "./dist/index.js", - "types": "./dist/index.d.ts" + ".": { + "import": "./dist/index.mjs", + "require": "./dist/index.cjs", + "default": "./dist/index.mjs" + }, + "./package.json": "./package.json" }, "sideEffects": false, "repository": { @@ -42,16 +46,16 @@ "README.md" ], "scripts": { - "build": "pnpm run build:clean && pnpm run build:esm", - "build:clean": "del-cli dist", - "build:esm": "tsc -p tsconfig.build.json", + "build": "unbuild", "dev": "vitest --typecheck", "format": "biome format . --write", - "lint": "biome check .", - "test": "pnpm run --sequential \"/^test:/\"", + "lint": "pnpm run lint:js && pnpm run lint:ts", + "lint:js": "biome check .", + "lint:ts": "tsc --noEmit", + "prepack": "pnpm run build", + "test": "pnpm run test:js && pnpm run test:exports", "test:js": "vitest run --typecheck", - "test:ts": "tsc --noEmit", - "test:exports": "pnpm run build && attw --pack . --ignore-rules=cjs-resolves-to-esm", + "test:exports": "pnpm run build && attw --pack .", "prepublish": "pnpm run build", "version": "pnpm run build" }, @@ -72,12 +76,10 @@ "type-fest": "^4.40.1" }, "devDependencies": { - "@arethetypeswrong/cli": "^0.17.4", "@types/lodash": "^4.17.16", "@types/react": "^18.3.20", - "del-cli": "^6.0.0", "husky": "^9.1.7", - "lint-staged": "15.5.1", + "lint-staged": "15.5.2", "lodash": "^4.17.21", "openapi-fetch": "workspace:^", "openapi-typescript": "workspace:^", diff --git a/packages/swr-openapi/src/__test__/types.test-d.ts b/packages/swr-openapi/src/__test__/types.test-d.ts index 1ea997c36..b3a16420b 100644 --- a/packages/swr-openapi/src/__test__/types.test-d.ts +++ b/packages/swr-openapi/src/__test__/types.test-d.ts @@ -336,6 +336,52 @@ describe("types", () => { }); }); }); + + describe("custom error types", () => { + const uniqueKey = ""; + type Key = typeof uniqueKey; + const useQuery = createQueryHook(client, uniqueKey); + const useImmutable = createImmutableHook(client, uniqueKey); + const useInfinite = createInfiniteHook(client, uniqueKey); + + describe("useQuery", () => { + it("returns correct error", () => { + const { error } = useQuery("/pet/{petId}", { + params: { + path: { + petId: 5, + }, + }, + }); + + expectTypeOf(error).toEqualTypeOf(); + }); + }); + + describe("useImmutable", () => { + it("returns correct error", () => { + const { error } = useImmutable("/pet/{petId}", { + params: { + path: { + petId: 5, + }, + }, + }); + + expectTypeOf(error).toEqualTypeOf(); + }); + }); + + describe("useInfinite", () => { + it("returns correct error", () => { + const { error } = useInfinite("/pet/findByStatus", (_index, _prev) => ({ + params: { query: { status: "available" } }, + })); + + expectTypeOf(error).toEqualTypeOf(); + }); + }); + }); }); describe("TypesForRequest", () => { diff --git a/packages/swr-openapi/src/infinite.ts b/packages/swr-openapi/src/infinite.ts index 4ad7fdb88..c17584c30 100644 --- a/packages/swr-openapi/src/infinite.ts +++ b/packages/swr-openapi/src/infinite.ts @@ -33,16 +33,18 @@ import { useCallback, useDebugValue } from "react"; * }); * ``` */ -export function createInfiniteHook( - client: Client, - prefix: Prefix, -) { +export function createInfiniteHook< + Paths extends {}, + IMediaType extends MediaType, + Prefix extends string, + FetcherError = never, +>(client: Client, prefix: Prefix) { return function useInfinite< Path extends PathsWithMethod, R extends TypesForGetRequest, Init extends R["Init"], Data extends R["Data"], - Error extends R["Error"], + Error extends R["Error"] | FetcherError, Config extends SWRInfiniteConfiguration, >(path: Path, getInit: SWRInfiniteKeyLoader, config?: Config) { type Key = [Prefix, Path, Init | undefined] | null; diff --git a/packages/swr-openapi/src/query-base.ts b/packages/swr-openapi/src/query-base.ts index 234101842..bf6ff3d88 100644 --- a/packages/swr-openapi/src/query-base.ts +++ b/packages/swr-openapi/src/query-base.ts @@ -8,16 +8,18 @@ import { useCallback, useDebugValue, useMemo } from "react"; * @private */ export function configureBaseQueryHook(useHook: SWRHook) { - return function createQueryBaseHook( - client: Client, - prefix: Prefix, - ) { + return function createQueryBaseHook< + Paths extends {}, + IMediaType extends MediaType, + Prefix extends string, + FetcherError = never, + >(client: Client, prefix: Prefix) { return function useQuery< Path extends PathsWithMethod, R extends TypesForGetRequest, Init extends R["Init"], Data extends R["Data"], - Error extends R["Error"], + Error extends R["Error"] | FetcherError, Config extends R["SWRConfig"], >( path: Path, diff --git a/packages/swr-openapi/tsconfig.build.json b/packages/swr-openapi/tsconfig.build.json deleted file mode 100644 index 15247a8f8..000000000 --- a/packages/swr-openapi/tsconfig.build.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "outDir": "dist", - "rootDir": "src", - "noEmit": false - }, - "include": ["src"], - "exclude": ["src/**/*.test.*", "**/__test__/*"] -} diff --git a/packages/swr-openapi/tsconfig.json b/packages/swr-openapi/tsconfig.json index 89eb0630c..ae36afe11 100644 --- a/packages/swr-openapi/tsconfig.json +++ b/packages/swr-openapi/tsconfig.json @@ -20,7 +20,6 @@ "module": "NodeNext", "moduleResolution": "nodenext", // "outDir": "dist", - // "rootDir": "src", "sourceMap": true, /* AND if you're building for a library: */ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 96ea2bdd5..2ac352226 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8,6 +8,9 @@ importers: .: devDependencies: + '@arethetypeswrong/cli': + specifier: ^0.18.1 + version: 0.18.1 '@biomejs/biome': specifier: ^1.9.4 version: 1.9.4 @@ -16,7 +19,7 @@ importers: version: 0.5.1 '@changesets/cli': specifier: ^2.29.2 - version: 2.29.2 + version: 2.29.3 '@playwright/test': specifier: ^1.52.0 version: 1.52.0 @@ -25,10 +28,7 @@ importers: version: 11.2.0(size-limit@11.2.0) '@types/node': specifier: ^22.15.3 - version: 22.15.3 - del-cli: - specifier: ^6.0.0 - version: 6.0.0 + version: 22.15.17 prettier: specifier: ^3.5.3 version: 3.5.3 @@ -37,28 +37,31 @@ importers: version: 11.2.0 turbo: specifier: ^2.5.2 - version: 2.5.2 + version: 2.5.3 typescript: specifier: ^5.8.3 version: 5.8.3 + unbuild: + specifier: ^3.5.0 + version: 3.5.0(typescript@5.8.3)(vue-tsc@2.2.10(typescript@5.8.3))(vue@3.5.13(typescript@5.8.3)) vitest: - specifier: ^2.1.9 - version: 2.1.9(@types/node@22.15.3)(jsdom@20.0.3)(msw@2.7.5(@types/node@22.15.3)(typescript@5.8.3)) + specifier: ^3.1.3 + version: 3.1.3(@types/debug@4.1.12)(@types/node@22.15.17)(jiti@2.4.2)(jsdom@20.0.3)(msw@2.8.2(@types/node@22.15.17)(typescript@5.8.3))(yaml@2.7.1) docs: devDependencies: '@shikijs/vitepress-twoslash': specifier: ^3.3.0 - version: 3.3.0(typescript@5.8.3) + version: 3.4.0(typescript@5.8.3) openapi-metadata: specifier: workspace:* version: link:../packages/openapi-metadata vite: specifier: ^6.3.4 - version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(yaml@2.7.1) + version: 6.3.5(@types/node@22.15.17)(jiti@2.4.2)(yaml@2.7.1) vitepress: specifier: ^1.6.3 - version: 1.6.3(@algolia/client-search@5.24.0)(@types/node@22.15.3)(@types/react@18.3.20)(axios@1.9.0)(change-case@5.4.4)(postcss@8.5.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.13.0)(typescript@5.8.3) + version: 1.6.3(@algolia/client-search@5.24.0)(@types/node@22.15.17)(@types/react@18.3.21)(axios@1.9.0)(change-case@5.4.4)(postcss@8.5.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.13.0)(typescript@5.8.3) packages/openapi-fetch: dependencies: @@ -69,15 +72,9 @@ importers: axios: specifier: ^1.9.0 version: 1.9.0 - del-cli: - specifier: ^6.0.0 - version: 6.0.0 - esbuild: - specifier: ^0.25.3 - version: 0.25.3 execa: specifier: ^9.5.2 - version: 9.5.2 + version: 9.5.3 express: specifier: ^5.0.0 version: 5.1.0 @@ -98,22 +95,22 @@ importers: version: 2.1.0 superagent: specifier: ^10.2.0 - version: 10.2.0 + version: 10.2.1 typescript: specifier: ^5.8.3 version: 5.8.3 undici: specifier: ^7.0.0 - version: 7.8.0 + version: 7.9.0 vite: specifier: ^6.3.4 - version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(yaml@2.7.1) + version: 6.3.5(@types/node@22.15.17)(jiti@2.4.2)(yaml@2.7.1) packages/openapi-fetch/examples/nextjs: dependencies: next: specifier: ^15.3.1 - version: 15.3.1(@playwright/test@1.52.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 15.3.2(@playwright/test@1.52.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) openapi-fetch: specifier: workspace:^ version: link:../.. @@ -126,10 +123,10 @@ importers: devDependencies: '@types/react': specifier: ^18.3.20 - version: 18.3.20 + version: 18.3.21 '@types/react-dom': specifier: ^18.3.7 - version: 18.3.7(@types/react@18.3.20) + version: 18.3.7(@types/react@18.3.21) openapi-typescript: specifier: workspace:^ version: link:../../../openapi-typescript @@ -141,20 +138,20 @@ importers: dependencies: '@sveltejs/vite-plugin-svelte-inspector': specifier: ^4.0.1 - version: 4.0.1(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.28.2)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(yaml@2.7.1)))(svelte@5.28.2)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(yaml@2.7.1)) + version: 4.0.1(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.28.2)(vite@6.3.5(@types/node@22.15.17)(jiti@2.4.2)(yaml@2.7.1)))(svelte@5.28.2)(vite@6.3.5(@types/node@22.15.17)(jiti@2.4.2)(yaml@2.7.1)) openapi-fetch: specifier: workspace:^ version: link:../.. devDependencies: '@sveltejs/adapter-auto': specifier: ^3.3.1 - version: 3.3.1(@sveltejs/kit@2.20.8(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.28.2)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(yaml@2.7.1)))(svelte@5.28.2)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(yaml@2.7.1))) + version: 3.3.1(@sveltejs/kit@2.20.8(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.28.2)(vite@6.3.5(@types/node@22.15.17)(jiti@2.4.2)(yaml@2.7.1)))(svelte@5.28.2)(vite@6.3.5(@types/node@22.15.17)(jiti@2.4.2)(yaml@2.7.1))) '@sveltejs/kit': specifier: ^2.20.8 - version: 2.20.8(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.28.2)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(yaml@2.7.1)))(svelte@5.28.2)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(yaml@2.7.1)) + version: 2.20.8(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.28.2)(vite@6.3.5(@types/node@22.15.17)(jiti@2.4.2)(yaml@2.7.1)))(svelte@5.28.2)(vite@6.3.5(@types/node@22.15.17)(jiti@2.4.2)(yaml@2.7.1)) '@sveltejs/vite-plugin-svelte': specifier: ^5.0.3 - version: 5.0.3(svelte@5.28.2)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(yaml@2.7.1)) + version: 5.0.3(svelte@5.28.2)(vite@6.3.5(@types/node@22.15.17)(jiti@2.4.2)(yaml@2.7.1)) openapi-typescript: specifier: workspace:^ version: link:../../../openapi-typescript @@ -172,7 +169,7 @@ importers: version: 5.8.3 vite: specifier: ^6.3.4 - version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(yaml@2.7.1) + version: 6.3.5(@types/node@22.15.17)(jiti@2.4.2)(yaml@2.7.1) packages/openapi-fetch/examples/vue-3: dependencies: @@ -188,7 +185,7 @@ importers: version: 20.1.5 '@vitejs/plugin-vue': specifier: ^5.2.3 - version: 5.2.3(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(yaml@2.7.1))(vue@3.5.13(typescript@5.8.3)) + version: 5.2.4(vite@6.3.5(@types/node@22.15.17)(jiti@2.4.2)(yaml@2.7.1))(vue@3.5.13(typescript@5.8.3)) '@vue/tsconfig': specifier: ^0.5.1 version: 0.5.1 @@ -200,7 +197,7 @@ importers: version: 5.8.3 vite: specifier: ^6.3.4 - version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(yaml@2.7.1) + version: 6.3.5(@types/node@22.15.17)(jiti@2.4.2)(yaml@2.7.1) vue-tsc: specifier: ^2.2.10 version: 2.2.10(typescript@5.8.3) @@ -215,26 +212,23 @@ importers: version: 12.1.3 type-fest: specifier: ^4.40.1 - version: 4.40.1 + version: 4.41.0 devDependencies: '@types/node': specifier: ^22.15.3 - version: 22.15.3 + version: 22.15.17 '@vitest/coverage-v8': - specifier: ^2.1.9 - version: 2.1.9(vitest@2.1.9(@types/node@22.15.3)(jsdom@20.0.3)(msw@2.7.5(@types/node@22.15.3)(typescript@5.8.3))) + specifier: ^3.1.3 + version: 3.1.3(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.17)(jiti@2.4.2)(jsdom@20.0.3)(msw@2.8.2(@types/node@22.15.17)(typescript@5.8.3))(yaml@2.7.1)) reflect-metadata: specifier: ^0.2.2 version: 0.2.2 typescript: specifier: ^5.8.3 version: 5.8.3 - unbuild: - specifier: ^3.5.0 - version: 3.5.0(typescript@5.8.3)(vue-tsc@2.2.10(typescript@5.8.3))(vue@3.5.13(typescript@5.8.3)) unplugin-swc: specifier: ^1.5.2 - version: 1.5.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(rollup@4.40.1) + version: 1.5.2(@swc/core@1.11.24)(rollup@4.40.1) packages/openapi-react-query: dependencies: @@ -244,28 +238,22 @@ importers: devDependencies: '@tanstack/react-query': specifier: ^5.75.1 - version: 5.75.2(react@18.3.1) + version: 5.75.7(react@18.3.1) '@testing-library/react': specifier: ^16.3.0 - version: 16.3.0(@testing-library/dom@10.1.0)(@types/react-dom@18.3.7(@types/react@18.3.20))(@types/react@18.3.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 16.3.0(@testing-library/dom@10.1.0)(@types/react-dom@18.3.7(@types/react@18.3.21))(@types/react@18.3.21)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@types/react': - specifier: 18.3.20 - version: 18.3.20 + specifier: 18.3.21 + version: 18.3.21 '@vitejs/plugin-react': specifier: ^4.4.1 - version: 4.4.1(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(yaml@2.7.1)) - del-cli: - specifier: ^6.0.0 - version: 6.0.0 - esbuild: - specifier: ^0.25.0 - version: 0.25.3 + version: 4.4.1(vite@6.3.5(@types/node@22.15.17)(jiti@2.4.2)(yaml@2.7.1)) execa: specifier: ^9.0.0 - version: 9.5.2 + version: 9.5.3 msw: specifier: ^2.7.5 - version: 2.7.5(@types/node@22.15.3)(typescript@5.8.3) + version: 2.8.2(@types/node@22.15.17)(typescript@5.8.3) openapi-fetch: specifier: workspace:^ version: link:../openapi-fetch @@ -282,8 +270,8 @@ importers: packages/openapi-typescript: dependencies: '@redocly/openapi-core': - specifier: ^1.34.2 - version: 1.34.2(supports-color@10.0.0) + specifier: ^1.34.3 + version: 1.34.3(supports-color@10.0.0) ansi-colors: specifier: ^4.1.3 version: 4.1.3 @@ -309,15 +297,9 @@ importers: degit: specifier: ^2.8.4 version: 2.8.4 - del-cli: - specifier: ^6.0.0 - version: 6.0.0 - esbuild: - specifier: ^0.25.0 - version: 0.25.3 execa: - specifier: ^9.0.0 - version: 9.5.2 + specifier: ^9.5.3 + version: 9.5.3 strip-ansi: specifier: ^7.1.0 version: 7.1.0 @@ -325,8 +307,8 @@ importers: specifier: ^5.8.3 version: 5.8.3 vite-node: - specifier: ^2.1.9 - version: 2.1.9(@types/node@22.15.3)(supports-color@10.0.0) + specifier: ^3.1.3 + version: 3.1.3(@types/node@22.15.17)(jiti@2.4.2)(supports-color@10.0.0)(yaml@2.7.1) packages/openapi-typescript-helpers: devDependencies: @@ -341,26 +323,20 @@ importers: version: link:../openapi-typescript-helpers type-fest: specifier: ^4.40.1 - version: 4.40.1 + version: 4.41.0 devDependencies: - '@arethetypeswrong/cli': - specifier: ^0.17.4 - version: 0.17.4 '@types/lodash': specifier: ^4.17.16 version: 4.17.16 '@types/react': specifier: ^18.3.20 - version: 18.3.20 - del-cli: - specifier: ^6.0.0 - version: 6.0.0 + version: 18.3.21 husky: specifier: ^9.1.7 version: 9.1.7 lint-staged: - specifier: 15.5.1 - version: 15.5.1 + specifier: 15.5.2 + version: 15.5.2 lodash: specifier: ^4.17.21 version: 4.17.21 @@ -473,14 +449,14 @@ packages: resolution: {integrity: sha512-60vepv88RwcJtSHrD6MjIL6Ta3SOYbgfnkHb+ppAVK+o9mXprRtulx7VlRl3lN3bbvysAfCS7WMVfhUYemB0IQ==} engines: {node: '>= 16'} - '@arethetypeswrong/cli@0.17.4': - resolution: {integrity: sha512-AeiKxtf67XD/NdOqXgBOE5TZWH3EOCt+0GkbUpekOzngc+Q/cRZ5azjWyMxISxxfp0EItgm5NoSld9p7BAA5xQ==} - engines: {node: '>=18'} + '@arethetypeswrong/cli@0.18.1': + resolution: {integrity: sha512-SS1Z5gRSvbP4tl98KlNygSUp3Yfenktt782MQKEbYm6GFPowztnnvdEUhQGm2uVDIH4YkU6av+n8Lm6OEOigqA==} + engines: {node: '>=20'} hasBin: true - '@arethetypeswrong/core@0.17.4': - resolution: {integrity: sha512-Izvir8iIoU+X4SKtDAa5kpb+9cpifclzsbA8x/AZY0k0gIfXYQ1fa1B6Epfe6vNA2YfDX8VtrZFgvnXB6aPEoQ==} - engines: {node: '>=18'} + '@arethetypeswrong/core@0.18.1': + resolution: {integrity: sha512-uUw47cLgB6zYOpAxFp94NG/J9ev0wcOC+UOmTCFEWtbDEn4vpR0ScoPxD7LCGcPczOd7bDJSJL/gMSz3BknYcw==} + engines: {node: '>=20'} '@babel/code-frame@7.27.1': resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} @@ -565,8 +541,9 @@ packages: resolution: {integrity: sha512-+EzkxvLNfiUeKMgy/3luqfsCWFRXLb7U6wNQTk60tovuckwB15B191tJWvpp4HjiQWdJkCxO3Wbvc6jlk3Xb2Q==} engines: {node: '>=6.9.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@1.9.4': resolution: {integrity: sha512-1rkd7G70+o9KkTn5KLmDYXihGoTaIGO9PIIN2ZB7UJxFrWw04CZHPYiMRjYsaDvVV7hP1dYNRLxSANLaBFGpog==} @@ -642,8 +619,8 @@ packages: '@changesets/apply-release-plan@7.0.12': resolution: {integrity: sha512-EaET7As5CeuhTzvXTQCRZeBUcisoYPDDcXvgTE/2jmmypKp0RC7LxKj/yzqeh/1qFTZI7oDGFcL1PHRuQuketQ==} - '@changesets/assemble-release-plan@6.0.6': - resolution: {integrity: sha512-Frkj8hWJ1FRZiY3kzVCKzS0N5mMwWKwmv9vpam7vt8rZjLL1JMthdh6pSDVSPumHPshTTkKZ0VtNbE0cJHZZUg==} + '@changesets/assemble-release-plan@6.0.7': + resolution: {integrity: sha512-vS5J92Rm7ZUcrvtu6WvggGWIdohv8s1/3ypRYQX8FsPO+KPDx6JaNC3YwSfh2umY/faGGfNnq42A7PRT0aZPFw==} '@changesets/changelog-git@0.2.1': resolution: {integrity: sha512-x/xEleCFLH28c3bQeQIyeZf8lFXyDFVn1SgcBiR2Tw/r4IAWlk1fzxCEZ6NxQAjF2Nwtczoen3OA2qR+UawQ8Q==} @@ -651,8 +628,8 @@ packages: '@changesets/changelog-github@0.5.1': resolution: {integrity: sha512-BVuHtF+hrhUScSoHnJwTELB4/INQxVFc+P/Qdt20BLiBFIHFJDDUaGsZw+8fQeJTRP5hJZrzpt3oZWh0G19rAQ==} - '@changesets/cli@2.29.2': - resolution: {integrity: sha512-vwDemKjGYMOc0l6WUUTGqyAWH3AmueeyoJa1KmFRtCYiCoY5K3B68ErYpDB6H48T4lLI4czum4IEjh6ildxUeg==} + '@changesets/cli@2.29.3': + resolution: {integrity: sha512-TNhKr6Loc7I0CSD9LpAyVNSxWBHElXVmmvQYIZQvaMan5jddmL7geo3+08Wi7ImgHFVNB0Nhju/LzXqlrkoOxg==} hasBin: true '@changesets/config@3.1.1': @@ -667,8 +644,8 @@ packages: '@changesets/get-github-info@0.6.0': resolution: {integrity: sha512-v/TSnFVXI8vzX9/w3DU2Ol+UlTZcu3m0kXTjTT4KlAdwSvwutcByYwyYn9hwerPWfPkT2JfpoX0KgvCEi8Q/SA==} - '@changesets/get-release-plan@4.0.10': - resolution: {integrity: sha512-CCJ/f3edYaA3MqoEnWvGGuZm0uMEMzNJ97z9hdUR34AOvajSwySwsIzC/bBu3+kuGDsB+cny4FljG8UBWAa7jg==} + '@changesets/get-release-plan@4.0.11': + resolution: {integrity: sha512-4DZpsewsc/1m5TArVg5h1c0U94am+cJBnu3izAM3yYIZr8+zZwa3AXYdEyCNURzjx0wWr80u/TWoxshbwdZXOA==} '@changesets/get-version-range-type@0.4.0': resolution: {integrity: sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ==} @@ -736,8 +713,8 @@ packages: cpu: [ppc64] os: [aix] - '@esbuild/aix-ppc64@0.25.3': - resolution: {integrity: sha512-W8bFfPA8DowP8l//sxjJLSLkD8iEjMc7cBVyP+u4cEv9sM7mdUCkgsj+t0n/BWPFtv7WWCN5Yzj0N6FJNUUqBQ==} + '@esbuild/aix-ppc64@0.25.4': + resolution: {integrity: sha512-1VCICWypeQKhVbE9oW/sJaAmjLxhVqacdkvPLEjwlttjfwENRSClS8EjBz0KzRyFSCPDIkuXW34Je/vk7zdB7Q==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] @@ -748,8 +725,8 @@ packages: cpu: [arm64] os: [android] - '@esbuild/android-arm64@0.25.3': - resolution: {integrity: sha512-XelR6MzjlZuBM4f5z2IQHK6LkK34Cvv6Rj2EntER3lwCBFdg6h2lKbtRjpTTsdEjD/WSe1q8UyPBXP1x3i/wYQ==} + '@esbuild/android-arm64@0.25.4': + resolution: {integrity: sha512-bBy69pgfhMGtCnwpC/x5QhfxAz/cBgQ9enbtwjf6V9lnPI/hMyT9iWpR1arm0l3kttTr4L0KSLpKmLp/ilKS9A==} engines: {node: '>=18'} cpu: [arm64] os: [android] @@ -760,8 +737,8 @@ packages: cpu: [arm] os: [android] - '@esbuild/android-arm@0.25.3': - resolution: {integrity: sha512-PuwVXbnP87Tcff5I9ngV0lmiSu40xw1At6i3GsU77U7cjDDB4s0X2cyFuBiDa1SBk9DnvWwnGvVaGBqoFWPb7A==} + '@esbuild/android-arm@0.25.4': + resolution: {integrity: sha512-QNdQEps7DfFwE3hXiU4BZeOV68HHzYwGd0Nthhd3uCkkEKK7/R6MTgM0P7H7FAs5pU/DIWsviMmEGxEoxIZ+ZQ==} engines: {node: '>=18'} cpu: [arm] os: [android] @@ -772,8 +749,8 @@ packages: cpu: [x64] os: [android] - '@esbuild/android-x64@0.25.3': - resolution: {integrity: sha512-ogtTpYHT/g1GWS/zKM0cc/tIebFjm1F9Aw1boQ2Y0eUQ+J89d0jFY//s9ei9jVIlkYi8AfOjiixcLJSGNSOAdQ==} + '@esbuild/android-x64@0.25.4': + resolution: {integrity: sha512-TVhdVtQIFuVpIIR282btcGC2oGQoSfZfmBdTip2anCaVYcqWlZXGcdcKIUklfX2wj0JklNYgz39OBqh2cqXvcQ==} engines: {node: '>=18'} cpu: [x64] os: [android] @@ -784,8 +761,8 @@ packages: cpu: [arm64] os: [darwin] - '@esbuild/darwin-arm64@0.25.3': - resolution: {integrity: sha512-eESK5yfPNTqpAmDfFWNsOhmIOaQA59tAcF/EfYvo5/QWQCzXn5iUSOnqt3ra3UdzBv073ykTtmeLJZGt3HhA+w==} + '@esbuild/darwin-arm64@0.25.4': + resolution: {integrity: sha512-Y1giCfM4nlHDWEfSckMzeWNdQS31BQGs9/rouw6Ub91tkK79aIMTH3q9xHvzH8d0wDru5Ci0kWB8b3up/nl16g==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] @@ -796,8 +773,8 @@ packages: cpu: [x64] os: [darwin] - '@esbuild/darwin-x64@0.25.3': - resolution: {integrity: sha512-Kd8glo7sIZtwOLcPbW0yLpKmBNWMANZhrC1r6K++uDR2zyzb6AeOYtI6udbtabmQpFaxJ8uduXMAo1gs5ozz8A==} + '@esbuild/darwin-x64@0.25.4': + resolution: {integrity: sha512-CJsry8ZGM5VFVeyUYB3cdKpd/H69PYez4eJh1W/t38vzutdjEjtP7hB6eLKBoOdxcAlCtEYHzQ/PJ/oU9I4u0A==} engines: {node: '>=18'} cpu: [x64] os: [darwin] @@ -808,8 +785,8 @@ packages: cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-arm64@0.25.3': - resolution: {integrity: sha512-EJiyS70BYybOBpJth3M0KLOus0n+RRMKTYzhYhFeMwp7e/RaajXvP+BWlmEXNk6uk+KAu46j/kaQzr6au+JcIw==} + '@esbuild/freebsd-arm64@0.25.4': + resolution: {integrity: sha512-yYq+39NlTRzU2XmoPW4l5Ifpl9fqSk0nAJYM/V/WUGPEFfek1epLHJIkTQM6bBs1swApjO5nWgvr843g6TjxuQ==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] @@ -820,8 +797,8 @@ packages: cpu: [x64] os: [freebsd] - '@esbuild/freebsd-x64@0.25.3': - resolution: {integrity: sha512-Q+wSjaLpGxYf7zC0kL0nDlhsfuFkoN+EXrx2KSB33RhinWzejOd6AvgmP5JbkgXKmjhmpfgKZq24pneodYqE8Q==} + '@esbuild/freebsd-x64@0.25.4': + resolution: {integrity: sha512-0FgvOJ6UUMflsHSPLzdfDnnBBVoCDtBTVyn/MrWloUNvq/5SFmh13l3dvgRPkDihRxb77Y17MbqbCAa2strMQQ==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] @@ -832,8 +809,8 @@ packages: cpu: [arm64] os: [linux] - '@esbuild/linux-arm64@0.25.3': - resolution: {integrity: sha512-xCUgnNYhRD5bb1C1nqrDV1PfkwgbswTTBRbAd8aH5PhYzikdf/ddtsYyMXFfGSsb/6t6QaPSzxtbfAZr9uox4A==} + '@esbuild/linux-arm64@0.25.4': + resolution: {integrity: sha512-+89UsQTfXdmjIvZS6nUnOOLoXnkUTB9hR5QAeLrQdzOSWZvNSAXAtcRDHWtqAUtAmv7ZM1WPOOeSxDzzzMogiQ==} engines: {node: '>=18'} cpu: [arm64] os: [linux] @@ -844,8 +821,8 @@ packages: cpu: [arm] os: [linux] - '@esbuild/linux-arm@0.25.3': - resolution: {integrity: sha512-dUOVmAUzuHy2ZOKIHIKHCm58HKzFqd+puLaS424h6I85GlSDRZIA5ycBixb3mFgM0Jdh+ZOSB6KptX30DD8YOQ==} + '@esbuild/linux-arm@0.25.4': + resolution: {integrity: sha512-kro4c0P85GMfFYqW4TWOpvmF8rFShbWGnrLqlzp4X1TNWjRY3JMYUfDCtOxPKOIY8B0WC8HN51hGP4I4hz4AaQ==} engines: {node: '>=18'} cpu: [arm] os: [linux] @@ -856,8 +833,8 @@ packages: cpu: [ia32] os: [linux] - '@esbuild/linux-ia32@0.25.3': - resolution: {integrity: sha512-yplPOpczHOO4jTYKmuYuANI3WhvIPSVANGcNUeMlxH4twz/TeXuzEP41tGKNGWJjuMhotpGabeFYGAOU2ummBw==} + '@esbuild/linux-ia32@0.25.4': + resolution: {integrity: sha512-yTEjoapy8UP3rv8dB0ip3AfMpRbyhSN3+hY8mo/i4QXFeDxmiYbEKp3ZRjBKcOP862Ua4b1PDfwlvbuwY7hIGQ==} engines: {node: '>=18'} cpu: [ia32] os: [linux] @@ -868,8 +845,8 @@ packages: cpu: [loong64] os: [linux] - '@esbuild/linux-loong64@0.25.3': - resolution: {integrity: sha512-P4BLP5/fjyihmXCELRGrLd793q/lBtKMQl8ARGpDxgzgIKJDRJ/u4r1A/HgpBpKpKZelGct2PGI4T+axcedf6g==} + '@esbuild/linux-loong64@0.25.4': + resolution: {integrity: sha512-NeqqYkrcGzFwi6CGRGNMOjWGGSYOpqwCjS9fvaUlX5s3zwOtn1qwg1s2iE2svBe4Q/YOG1q6875lcAoQK/F4VA==} engines: {node: '>=18'} cpu: [loong64] os: [linux] @@ -880,8 +857,8 @@ packages: cpu: [mips64el] os: [linux] - '@esbuild/linux-mips64el@0.25.3': - resolution: {integrity: sha512-eRAOV2ODpu6P5divMEMa26RRqb2yUoYsuQQOuFUexUoQndm4MdpXXDBbUoKIc0iPa4aCO7gIhtnYomkn2x+bag==} + '@esbuild/linux-mips64el@0.25.4': + resolution: {integrity: sha512-IcvTlF9dtLrfL/M8WgNI/qJYBENP3ekgsHbYUIzEzq5XJzzVEV/fXY9WFPfEEXmu3ck2qJP8LG/p3Q8f7Zc2Xg==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] @@ -892,8 +869,8 @@ packages: cpu: [ppc64] os: [linux] - '@esbuild/linux-ppc64@0.25.3': - resolution: {integrity: sha512-ZC4jV2p7VbzTlnl8nZKLcBkfzIf4Yad1SJM4ZMKYnJqZFD4rTI+pBG65u8ev4jk3/MPwY9DvGn50wi3uhdaghg==} + '@esbuild/linux-ppc64@0.25.4': + resolution: {integrity: sha512-HOy0aLTJTVtoTeGZh4HSXaO6M95qu4k5lJcH4gxv56iaycfz1S8GO/5Jh6X4Y1YiI0h7cRyLi+HixMR+88swag==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] @@ -904,8 +881,8 @@ packages: cpu: [riscv64] os: [linux] - '@esbuild/linux-riscv64@0.25.3': - resolution: {integrity: sha512-LDDODcFzNtECTrUUbVCs6j9/bDVqy7DDRsuIXJg6so+mFksgwG7ZVnTruYi5V+z3eE5y+BJZw7VvUadkbfg7QA==} + '@esbuild/linux-riscv64@0.25.4': + resolution: {integrity: sha512-i8JUDAufpz9jOzo4yIShCTcXzS07vEgWzyX3NH2G7LEFVgrLEhjwL3ajFE4fZI3I4ZgiM7JH3GQ7ReObROvSUA==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] @@ -916,8 +893,8 @@ packages: cpu: [s390x] os: [linux] - '@esbuild/linux-s390x@0.25.3': - resolution: {integrity: sha512-s+w/NOY2k0yC2p9SLen+ymflgcpRkvwwa02fqmAwhBRI3SC12uiS10edHHXlVWwfAagYSY5UpmT/zISXPMW3tQ==} + '@esbuild/linux-s390x@0.25.4': + resolution: {integrity: sha512-jFnu+6UbLlzIjPQpWCNh5QtrcNfMLjgIavnwPQAfoGx4q17ocOU9MsQ2QVvFxwQoWpZT8DvTLooTvmOQXkO51g==} engines: {node: '>=18'} cpu: [s390x] os: [linux] @@ -928,14 +905,14 @@ packages: cpu: [x64] os: [linux] - '@esbuild/linux-x64@0.25.3': - resolution: {integrity: sha512-nQHDz4pXjSDC6UfOE1Fw9Q8d6GCAd9KdvMZpfVGWSJztYCarRgSDfOVBY5xwhQXseiyxapkiSJi/5/ja8mRFFA==} + '@esbuild/linux-x64@0.25.4': + resolution: {integrity: sha512-6e0cvXwzOnVWJHq+mskP8DNSrKBr1bULBvnFLpc1KY+d+irZSgZ02TGse5FsafKS5jg2e4pbvK6TPXaF/A6+CA==} engines: {node: '>=18'} cpu: [x64] os: [linux] - '@esbuild/netbsd-arm64@0.25.3': - resolution: {integrity: sha512-1QaLtOWq0mzK6tzzp0jRN3eccmN3hezey7mhLnzC6oNlJoUJz4nym5ZD7mDnS/LZQgkrhEbEiTn515lPeLpgWA==} + '@esbuild/netbsd-arm64@0.25.4': + resolution: {integrity: sha512-vUnkBYxZW4hL/ie91hSqaSNjulOnYXE1VSLusnvHg2u3jewJBz3YzB9+oCw8DABeVqZGg94t9tyZFoHma8gWZQ==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] @@ -946,14 +923,14 @@ packages: cpu: [x64] os: [netbsd] - '@esbuild/netbsd-x64@0.25.3': - resolution: {integrity: sha512-i5Hm68HXHdgv8wkrt+10Bc50zM0/eonPb/a/OFVfB6Qvpiirco5gBA5bz7S2SHuU+Y4LWn/zehzNX14Sp4r27g==} + '@esbuild/netbsd-x64@0.25.4': + resolution: {integrity: sha512-XAg8pIQn5CzhOB8odIcAm42QsOfa98SBeKUdo4xa8OvX8LbMZqEtgeWE9P/Wxt7MlG2QqvjGths+nq48TrUiKw==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] - '@esbuild/openbsd-arm64@0.25.3': - resolution: {integrity: sha512-zGAVApJEYTbOC6H/3QBr2mq3upG/LBEXr85/pTtKiv2IXcgKV0RT0QA/hSXZqSvLEpXeIxah7LczB4lkiYhTAQ==} + '@esbuild/openbsd-arm64@0.25.4': + resolution: {integrity: sha512-Ct2WcFEANlFDtp1nVAXSNBPDxyU+j7+tId//iHXU2f/lN5AmO4zLyhDcpR5Cz1r08mVxzt3Jpyt4PmXQ1O6+7A==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] @@ -964,8 +941,8 @@ packages: cpu: [x64] os: [openbsd] - '@esbuild/openbsd-x64@0.25.3': - resolution: {integrity: sha512-fpqctI45NnCIDKBH5AXQBsD0NDPbEFczK98hk/aa6HJxbl+UtLkJV2+Bvy5hLSLk3LHmqt0NTkKNso1A9y1a4w==} + '@esbuild/openbsd-x64@0.25.4': + resolution: {integrity: sha512-xAGGhyOQ9Otm1Xu8NT1ifGLnA6M3sJxZ6ixylb+vIUVzvvd6GOALpwQrYrtlPouMqd/vSbgehz6HaVk4+7Afhw==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] @@ -976,8 +953,8 @@ packages: cpu: [x64] os: [sunos] - '@esbuild/sunos-x64@0.25.3': - resolution: {integrity: sha512-ROJhm7d8bk9dMCUZjkS8fgzsPAZEjtRJqCAmVgB0gMrvG7hfmPmz9k1rwO4jSiblFjYmNvbECL9uhaPzONMfgA==} + '@esbuild/sunos-x64@0.25.4': + resolution: {integrity: sha512-Mw+tzy4pp6wZEK0+Lwr76pWLjrtjmJyUB23tHKqEDP74R3q95luY/bXqXZeYl4NYlvwOqoRKlInQialgCKy67Q==} engines: {node: '>=18'} cpu: [x64] os: [sunos] @@ -988,8 +965,8 @@ packages: cpu: [arm64] os: [win32] - '@esbuild/win32-arm64@0.25.3': - resolution: {integrity: sha512-YWcow8peiHpNBiIXHwaswPnAXLsLVygFwCB3A7Bh5jRkIBFWHGmNQ48AlX4xDvQNoMZlPYzjVOQDYEzWCqufMQ==} + '@esbuild/win32-arm64@0.25.4': + resolution: {integrity: sha512-AVUP428VQTSddguz9dO9ngb+E5aScyg7nOeJDrF1HPYu555gmza3bDGMPhmVXL8svDSoqPCsCPjb265yG/kLKQ==} engines: {node: '>=18'} cpu: [arm64] os: [win32] @@ -1000,8 +977,8 @@ packages: cpu: [ia32] os: [win32] - '@esbuild/win32-ia32@0.25.3': - resolution: {integrity: sha512-qspTZOIGoXVS4DpNqUYUs9UxVb04khS1Degaw/MnfMe7goQ3lTfQ13Vw4qY/Nj0979BGvMRpAYbs/BAxEvU8ew==} + '@esbuild/win32-ia32@0.25.4': + resolution: {integrity: sha512-i1sW+1i+oWvQzSgfRcxxG2k4I9n3O9NRqy8U+uugaT2Dy7kLO9Y7wI72haOahxceMX8hZAzgGou1FhndRldxRg==} engines: {node: '>=18'} cpu: [ia32] os: [win32] @@ -1012,8 +989,8 @@ packages: cpu: [x64] os: [win32] - '@esbuild/win32-x64@0.25.3': - resolution: {integrity: sha512-ICgUR+kPimx0vvRzf+N/7L7tVSQeE3BYY+NhHRHXS1kBuPO7z2+7ea2HbhDyZdTephgvNvKrlDDKUexuCVBVvg==} + '@esbuild/win32-x64@0.25.4': + resolution: {integrity: sha512-nOT2vZNw6hJ+z43oP1SPea/G/6AbN6X+bGNhNuq8NtRHy4wsMhw765IKLNmnjek7GvjWBYQ8Q5VBoYTFg9y1UQ==} engines: {node: '>=18'} cpu: [x64] os: [win32] @@ -1216,53 +1193,53 @@ packages: resolution: {integrity: sha512-wK+5pLK5XFmgtH3aQ2YVvA3HohS3xqV/OxuVOdNx9Wpnz7VE/fnC+e1A7ln6LFYeck7gOJ/dsZV6OLplOtAJ2w==} engines: {node: '>=18'} - '@next/env@15.3.1': - resolution: {integrity: sha512-cwK27QdzrMblHSn9DZRV+DQscHXRuJv6MydlJRpFSqJWZrTYMLzKDeyueJNN9MGd8NNiUKzDQADAf+dMLXX7YQ==} + '@next/env@15.3.2': + resolution: {integrity: sha512-xURk++7P7qR9JG1jJtLzPzf0qEvqCN0A/T3DXf8IPMKo9/6FfjxtEffRJIIew/bIL4T3C2jLLqBor8B/zVlx6g==} - '@next/swc-darwin-arm64@15.3.1': - resolution: {integrity: sha512-hjDw4f4/nla+6wysBL07z52Gs55Gttp5Bsk5/8AncQLJoisvTBP0pRIBK/B16/KqQyH+uN4Ww8KkcAqJODYH3w==} + '@next/swc-darwin-arm64@15.3.2': + resolution: {integrity: sha512-2DR6kY/OGcokbnCsjHpNeQblqCZ85/1j6njYSkzRdpLn5At7OkSdmk7WyAmB9G0k25+VgqVZ/u356OSoQZ3z0g==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@next/swc-darwin-x64@15.3.1': - resolution: {integrity: sha512-q+aw+cJ2ooVYdCEqZVk+T4Ni10jF6Fo5DfpEV51OupMaV5XL6pf3GCzrk6kSSZBsMKZtVC1Zm/xaNBFpA6bJ2g==} + '@next/swc-darwin-x64@15.3.2': + resolution: {integrity: sha512-ro/fdqaZWL6k1S/5CLv1I0DaZfDVJkWNaUU3un8Lg6m0YENWlDulmIWzV96Iou2wEYyEsZq51mwV8+XQXqMp3w==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@next/swc-linux-arm64-gnu@15.3.1': - resolution: {integrity: sha512-wBQ+jGUI3N0QZyWmmvRHjXjTWFy8o+zPFLSOyAyGFI94oJi+kK/LIZFJXeykvgXUk1NLDAEFDZw/NVINhdk9FQ==} + '@next/swc-linux-arm64-gnu@15.3.2': + resolution: {integrity: sha512-covwwtZYhlbRWK2HlYX9835qXum4xYZ3E2Mra1mdQ+0ICGoMiw1+nVAn4d9Bo7R3JqSmK1grMq/va+0cdh7bJA==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@next/swc-linux-arm64-musl@15.3.1': - resolution: {integrity: sha512-IIxXEXRti/AulO9lWRHiCpUUR8AR/ZYLPALgiIg/9ENzMzLn3l0NSxVdva7R/VDcuSEBo0eGVCe3evSIHNz0Hg==} + '@next/swc-linux-arm64-musl@15.3.2': + resolution: {integrity: sha512-KQkMEillvlW5Qk5mtGA/3Yz0/tzpNlSw6/3/ttsV1lNtMuOHcGii3zVeXZyi4EJmmLDKYcTcByV2wVsOhDt/zg==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@next/swc-linux-x64-gnu@15.3.1': - resolution: {integrity: sha512-bfI4AMhySJbyXQIKH5rmLJ5/BP7bPwuxauTvVEiJ/ADoddaA9fgyNNCcsbu9SlqfHDoZmfI6g2EjzLwbsVTr5A==} + '@next/swc-linux-x64-gnu@15.3.2': + resolution: {integrity: sha512-uRBo6THWei0chz+Y5j37qzx+BtoDRFIkDzZjlpCItBRXyMPIg079eIkOCl3aqr2tkxL4HFyJ4GHDes7W8HuAUg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@next/swc-linux-x64-musl@15.3.1': - resolution: {integrity: sha512-FeAbR7FYMWR+Z+M5iSGytVryKHiAsc0x3Nc3J+FD5NVbD5Mqz7fTSy8CYliXinn7T26nDMbpExRUI/4ekTvoiA==} + '@next/swc-linux-x64-musl@15.3.2': + resolution: {integrity: sha512-+uxFlPuCNx/T9PdMClOqeE8USKzj8tVz37KflT3Kdbx/LOlZBRI2yxuIcmx1mPNK8DwSOMNCr4ureSet7eyC0w==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@next/swc-win32-arm64-msvc@15.3.1': - resolution: {integrity: sha512-yP7FueWjphQEPpJQ2oKmshk/ppOt+0/bB8JC8svPUZNy0Pi3KbPx2Llkzv1p8CoQa+D2wknINlJpHf3vtChVBw==} + '@next/swc-win32-arm64-msvc@15.3.2': + resolution: {integrity: sha512-LLTKmaI5cfD8dVzh5Vt7+OMo+AIOClEdIU/TSKbXXT2iScUTSxOGoBhfuv+FU8R9MLmrkIL1e2fBMkEEjYAtPQ==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@next/swc-win32-x64-msvc@15.3.1': - resolution: {integrity: sha512-3PMvF2zRJAifcRNni9uMk/gulWfWS+qVI/pagd+4yLF5bcXPZPPH2xlYRYOsUjmCJOXSTAC2PjRzbhsRzR2fDQ==} + '@next/swc-win32-x64-msvc@15.3.2': + resolution: {integrity: sha512-aW5B8wOPioJ4mBdMDXkt5f3j8pUr9W8AnlX0Df35uRWNT1Y6RIybxjnSUe+PhM+M1bwgyY8PHLmXZC6zT1o5tA==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -1313,8 +1290,8 @@ packages: '@redocly/config@0.22.2': resolution: {integrity: sha512-roRDai8/zr2S9YfmzUfNhKjOF0NdcOIqF7bhf4MVC5UxpjIysDjyudvlAiVbpPHp3eDRWbdzUgtkK1a7YiDNyQ==} - '@redocly/openapi-core@1.34.2': - resolution: {integrity: sha512-glfkQFJizLdq2fBkNvc2FJW0sxDb5exd0wIXhFk+WHaFLMREBC3CxRo2Zq7uJIdfV9U3YTceMbXJklpDfmmwFQ==} + '@redocly/openapi-core@1.34.3': + resolution: {integrity: sha512-3arRdUp1fNx55itnjKiUhO6t4Mf91TsrTIYINDNLAZPS0TPd5YpiXRctwjel0qqWoOOhjA34cZ3m4dksLDFUYg==} engines: {node: '>=18.17.0', npm: '>=9.5.0'} '@rollup/plugin-alias@5.1.1': @@ -1480,29 +1457,32 @@ packages: '@shikijs/core@3.3.0': resolution: {integrity: sha512-CovkFL2WVaHk6PCrwv6ctlmD4SS1qtIfN8yEyDXDYWh4ONvomdM9MaFw20qHuqJOcb8/xrkqoWQRJ//X10phOQ==} + '@shikijs/core@3.4.0': + resolution: {integrity: sha512-0YOzTSRDn/IAfQWtK791gs1u8v87HNGToU6IwcA3K7nPoVOrS2Dh6X6A6YfXgPTSkTwR5y6myk0MnI0htjnwrA==} + '@shikijs/engine-javascript@2.5.0': resolution: {integrity: sha512-VjnOpnQf8WuCEZtNUdjjwGUbtAVKuZkVQ/5cHy/tojVVRIRtlWMYVjyWhxOmIq05AlSOv72z7hRNRGVBgQOl0w==} - '@shikijs/engine-javascript@3.3.0': - resolution: {integrity: sha512-XlhnFGv0glq7pfsoN0KyBCz9FJU678LZdQ2LqlIdAj6JKsg5xpYKay3DkazXWExp3DTJJK9rMOuGzU2911pg7Q==} + '@shikijs/engine-javascript@3.4.0': + resolution: {integrity: sha512-1ywDoe+z/TPQKj9Jw0eU61B003J9DqUFRfH+DVSzdwPUFhR7yOmfyLzUrFz0yw8JxFg/NgzXoQyyykXgO21n5Q==} '@shikijs/engine-oniguruma@2.5.0': resolution: {integrity: sha512-pGd1wRATzbo/uatrCIILlAdFVKdxImWJGQ5rFiB5VZi2ve5xj3Ax9jny8QvkaV93btQEwR/rSz5ERFpC5mKNIw==} - '@shikijs/engine-oniguruma@3.3.0': - resolution: {integrity: sha512-l0vIw+GxeNU7uGnsu6B+Crpeqf+WTQ2Va71cHb5ZYWEVEPdfYwY5kXwYqRJwHrxz9WH+pjSpXQz+TJgAsrkA5A==} + '@shikijs/engine-oniguruma@3.4.0': + resolution: {integrity: sha512-zwcWlZ4OQuJ/+1t32ClTtyTU1AiDkK1lhtviRWoq/hFqPjCNyLj22bIg9rB7BfoZKOEOfrsGz7No33BPCf+WlQ==} '@shikijs/langs@2.5.0': resolution: {integrity: sha512-Qfrrt5OsNH5R+5tJ/3uYBBZv3SuGmnRPejV9IlIbFH3HTGLDlkqgHymAlzklVmKBjAaVmkPkyikAV/sQ1wSL+w==} - '@shikijs/langs@3.3.0': - resolution: {integrity: sha512-zt6Kf/7XpBQKSI9eqku+arLkAcDQ3NHJO6zFjiChI8w0Oz6Jjjay7pToottjQGjSDCFk++R85643WbyINcuL+g==} + '@shikijs/langs@3.4.0': + resolution: {integrity: sha512-bQkR+8LllaM2duU9BBRQU0GqFTx7TuF5kKlw/7uiGKoK140n1xlLAwCgXwSxAjJ7Htk9tXTFwnnsJTCU5nDPXQ==} '@shikijs/themes@2.5.0': resolution: {integrity: sha512-wGrk+R8tJnO0VMzmUExHR+QdSaPUl/NKs+a4cQQRWyoc3YFbUzuLEi/KWK1hj+8BfHRKm2jNhhJck1dfstJpiw==} - '@shikijs/themes@3.3.0': - resolution: {integrity: sha512-tXeCvLXBnqq34B0YZUEaAD1lD4lmN6TOHAhnHacj4Owh7Ptb/rf5XCDeROZt2rEOk5yuka3OOW2zLqClV7/SOg==} + '@shikijs/themes@3.4.0': + resolution: {integrity: sha512-YPP4PKNFcFGLxItpbU0ZW1Osyuk8AyZ24YEFaq04CFsuCbcqydMvMUTi40V2dkc0qs1U2uZFrnU6s5zI6IH+uA==} '@shikijs/transformers@2.5.0': resolution: {integrity: sha512-SI494W5X60CaUwgi8u4q4m4s3YAFSxln3tzNjOSYqq54wlVgz0/NbbXEb3mdLbqMBztcmS7bVTaEd2w0qMmfeg==} @@ -1518,8 +1498,11 @@ packages: '@shikijs/types@3.3.0': resolution: {integrity: sha512-KPCGnHG6k06QG/2pnYGbFtFvpVJmC3uIpXrAiPrawETifujPBv0Se2oUxm5qYgjCvGJS9InKvjytOdN+bGuX+Q==} - '@shikijs/vitepress-twoslash@3.3.0': - resolution: {integrity: sha512-JkR/gugFIMW3pEmgQ5ETfLR5HQs7FsYq0RBxJ3ty0qAJ1qi1WvA8kKD9hj0z4M75sXtpWqP8D0rPrl34w5czYQ==} + '@shikijs/types@3.4.0': + resolution: {integrity: sha512-EUT/0lGiE//7j5N/yTMNMT3eCWNcHJLrRKxT0NDXWIfdfSmFJKfPX7nMmRBrQnWboAzIsUziCThrYMMhjbMS1A==} + + '@shikijs/vitepress-twoslash@3.4.0': + resolution: {integrity: sha512-3WPgEArF9sZamrB9WW6NGDj3r4+pvbWEvTjc+7jHkfoZRWJpIlyL6jqZ6MGScRHssgIq5ATG5WklflJs/nYoMw==} '@shikijs/vscode-textmate@10.0.2': resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} @@ -1528,10 +1511,6 @@ packages: resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} engines: {node: '>=10'} - '@sindresorhus/merge-streams@2.3.0': - resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==} - engines: {node: '>=18'} - '@sindresorhus/merge-streams@4.0.0': resolution: {integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==} engines: {node: '>=18'} @@ -1587,71 +1566,71 @@ packages: svelte: ^5.0.0 vite: ^6.0.0 - '@swc/core-darwin-arm64@1.10.4': - resolution: {integrity: sha512-sV/eurLhkjn/197y48bxKP19oqcLydSel42Qsy2zepBltqUx+/zZ8+/IS0Bi7kaWVFxerbW1IPB09uq8Zuvm3g==} + '@swc/core-darwin-arm64@1.11.24': + resolution: {integrity: sha512-dhtVj0PC1APOF4fl5qT2neGjRLgHAAYfiVP8poJelhzhB/318bO+QCFWAiimcDoyMgpCXOhTp757gnoJJrheWA==} engines: {node: '>=10'} cpu: [arm64] os: [darwin] - '@swc/core-darwin-x64@1.10.4': - resolution: {integrity: sha512-gjYNU6vrAUO4+FuovEo9ofnVosTFXkF0VDuo1MKPItz6e2pxc2ale4FGzLw0Nf7JB1sX4a8h06CN16/pLJ8Q2w==} + '@swc/core-darwin-x64@1.11.24': + resolution: {integrity: sha512-H/3cPs8uxcj2Fe3SoLlofN5JG6Ny5bl8DuZ6Yc2wr7gQFBmyBkbZEz+sPVgsID7IXuz7vTP95kMm1VL74SO5AQ==} engines: {node: '>=10'} cpu: [x64] os: [darwin] - '@swc/core-linux-arm-gnueabihf@1.10.4': - resolution: {integrity: sha512-zd7fXH5w8s+Sfvn2oO464KDWl+ZX1MJiVmE4Pdk46N3PEaNwE0koTfgx2vQRqRG4vBBobzVvzICC3618WcefOA==} + '@swc/core-linux-arm-gnueabihf@1.11.24': + resolution: {integrity: sha512-PHJgWEpCsLo/NGj+A2lXZ2mgGjsr96ULNW3+T3Bj2KTc8XtMUkE8tmY2Da20ItZOvPNC/69KroU7edyo1Flfbw==} engines: {node: '>=10'} cpu: [arm] os: [linux] - '@swc/core-linux-arm64-gnu@1.10.4': - resolution: {integrity: sha512-+UGfoHDxsMZgFD3tABKLeEZHqLNOkxStu+qCG7atGBhS4Slri6h6zijVvf4yI5X3kbXdvc44XV/hrP/Klnui2A==} + '@swc/core-linux-arm64-gnu@1.11.24': + resolution: {integrity: sha512-C2FJb08+n5SD4CYWCTZx1uR88BN41ZieoHvI8A55hfVf2woT8+6ZiBzt74qW2g+ntZ535Jts5VwXAKdu41HpBg==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-arm64-musl@1.10.4': - resolution: {integrity: sha512-cDDj2/uYsOH0pgAnDkovLZvKJpFmBMyXkxEG6Q4yw99HbzO6QzZ5HDGWGWVq/6dLgYKlnnmpjZCPPQIu01mXEg==} + '@swc/core-linux-arm64-musl@1.11.24': + resolution: {integrity: sha512-ypXLIdszRo0re7PNNaXN0+2lD454G8l9LPK/rbfRXnhLWDBPURxzKlLlU/YGd2zP98wPcVooMmegRSNOKfvErw==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-x64-gnu@1.10.4': - resolution: {integrity: sha512-qJXh9D6Kf5xSdGWPINpLGixAbB5JX8JcbEJpRamhlDBoOcQC79dYfOMEIxWPhTS1DGLyFakAx2FX/b2VmQmj0g==} + '@swc/core-linux-x64-gnu@1.11.24': + resolution: {integrity: sha512-IM7d+STVZD48zxcgo69L0yYptfhaaE9cMZ+9OoMxirNafhKKXwoZuufol1+alEFKc+Wbwp+aUPe/DeWC/Lh3dg==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-linux-x64-musl@1.10.4': - resolution: {integrity: sha512-A76lIAeyQnHCVt0RL/pG+0er8Qk9+acGJqSZOZm67Ve3B0oqMd871kPtaHBM0BW3OZAhoILgfHW3Op9Q3mx3Cw==} + '@swc/core-linux-x64-musl@1.11.24': + resolution: {integrity: sha512-DZByJaMVzSfjQKKQn3cqSeqwy6lpMaQDQQ4HPlch9FWtDx/dLcpdIhxssqZXcR2rhaQVIaRQsCqwV6orSDGAGw==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-win32-arm64-msvc@1.10.4': - resolution: {integrity: sha512-e6j5kBu4fIY7fFxFxnZI0MlEovRvp50Lg59Fw+DVbtqHk3C85dckcy5xKP+UoXeuEmFceauQDczUcGs19SRGSQ==} + '@swc/core-win32-arm64-msvc@1.11.24': + resolution: {integrity: sha512-Q64Ytn23y9aVDKN5iryFi8mRgyHw3/kyjTjT4qFCa8AEb5sGUuSj//AUZ6c0J7hQKMHlg9do5Etvoe61V98/JQ==} engines: {node: '>=10'} cpu: [arm64] os: [win32] - '@swc/core-win32-ia32-msvc@1.10.4': - resolution: {integrity: sha512-RSYHfdKgNXV/amY5Tqk1EWVsyQnhlsM//jeqMLw5Fy9rfxP592W9UTumNikNRPdjI8wKKzNMXDb1U29tQjN0dg==} + '@swc/core-win32-ia32-msvc@1.11.24': + resolution: {integrity: sha512-9pKLIisE/Hh2vJhGIPvSoTK4uBSPxNVyXHmOrtdDot4E1FUUI74Vi8tFdlwNbaj8/vusVnb8xPXsxF1uB0VgiQ==} engines: {node: '>=10'} cpu: [ia32] os: [win32] - '@swc/core-win32-x64-msvc@1.10.4': - resolution: {integrity: sha512-1ujYpaqfqNPYdwKBlvJnOqcl+Syn3UrQ4XE0Txz6zMYgyh6cdU6a3pxqLqIUSJ12MtXRA9ZUhEz1ekU3LfLWXw==} + '@swc/core-win32-x64-msvc@1.11.24': + resolution: {integrity: sha512-sybnXtOsdB+XvzVFlBVGgRHLqp3yRpHK7CrmpuDKszhj/QhmsaZzY/GHSeALlMtLup13M0gqbcQvsTNlAHTg3w==} engines: {node: '>=10'} cpu: [x64] os: [win32] - '@swc/core@1.10.4': - resolution: {integrity: sha512-ut3zfiTLORMxhr6y/GBxkHmzcGuVpwJYX4qyXWuBKkpw/0g0S5iO1/wW7RnLnZbAi8wS/n0atRZoaZlXWBkeJg==} + '@swc/core@1.11.24': + resolution: {integrity: sha512-MaQEIpfcEMzx3VWWopbofKJvaraqmL6HbLlw2bFZ7qYqYw3rkhM0cQVEgyzbHtTWwCwPMFZSC2DUbhlZgrMfLg==} engines: {node: '>=10'} peerDependencies: - '@swc/helpers': '*' + '@swc/helpers': '>=0.5.17' peerDependenciesMeta: '@swc/helpers': optional: true @@ -1665,11 +1644,11 @@ packages: '@swc/types@0.1.21': resolution: {integrity: sha512-2YEtj5HJVbKivud9N4bpPBAyZhj4S2Ipe5LkUG94alTpr7in/GU/EARgPAd3BwU+YOmFVJC2+kjqhGRi3r0ZpQ==} - '@tanstack/query-core@5.75.0': - resolution: {integrity: sha512-rk8KQuCdhoRkzjRVF3QxLgAfFUyS0k7+GCQjlGEpEGco+qazJ0eMH6aO1DjDjibH7/ik383nnztua3BG+lOnwg==} + '@tanstack/query-core@5.75.7': + resolution: {integrity: sha512-4BHu0qnxUHOSnTn3ow9fIoBKTelh0GY08yn1IO9cxjBTsGvnxz1ut42CHZqUE3Vl/8FAjcHsj8RNJMoXvjgHEA==} - '@tanstack/react-query@5.75.2': - resolution: {integrity: sha512-8F8VOsWUfSkCFoi62O9HSZT9jDgg28Ln8Z2dYKfRo/O2A0sgvr0uxTuNoon3PPXoDuHofv5V3elBI1M2Gh1MPg==} + '@tanstack/react-query@5.75.7': + resolution: {integrity: sha512-JYcH1g5pNjKXNQcvvnCU/PueaYg05uKBDHlWIyApspv7r5C0BM12n6ysa2QF2T+1tlPnNXOob8vr8o96Nx0GxQ==} peerDependencies: react: ^18 || ^19 @@ -1760,8 +1739,8 @@ packages: '@types/node@12.20.55': resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} - '@types/node@22.15.3': - resolution: {integrity: sha512-lX7HFZeHf4QG/J7tBZqrCAXwz9J5RD56Y6MpP0eJkka8p+K0RY/yBTW7CYFJ4VGCclxqOLKmiGP5juQc6MKgcw==} + '@types/node@22.15.17': + resolution: {integrity: sha512-wIX2aSZL5FE+MR0JlvF87BNVrtFWf6AE6rxSE9X7OwnVvoyCQjpzSRJ+M87se/4QCkCiebQAqrJ0y6fwIyi7nw==} '@types/prop-types@15.7.14': resolution: {integrity: sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==} @@ -1774,8 +1753,8 @@ packages: peerDependencies: '@types/react': ^18.0.0 - '@types/react@18.3.20': - resolution: {integrity: sha512-IPaCZN7PShZK/3t6Q87pfTkRm6oLTd4vztyoj+cbHUF1g3FfVb2tFIL79uCRKEfv16AhqDMBywP2VW3KIZUvcg==} + '@types/react@18.3.21': + resolution: {integrity: sha512-gXLBtmlcRJeT09/sI4PxVwyrku6SaNUj/6cMubjE6T6XdY1fDmBL7r0nX0jbSZPU/Xr0KuwLLZh6aOYY5d91Xw==} '@types/resolve@1.20.2': resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} @@ -1813,43 +1792,50 @@ packages: vite: ^5.0.0 || ^6.0.0 vue: ^3.2.25 - '@vitest/coverage-v8@2.1.9': - resolution: {integrity: sha512-Z2cOr0ksM00MpEfyVE8KXIYPEcBFxdbLSs56L8PO0QQMxt/6bDj45uQfxoc96v05KW3clk7vvgP0qfDit9DmfQ==} + '@vitejs/plugin-vue@5.2.4': + resolution: {integrity: sha512-7Yx/SXSOcQq5HiiV3orevHUFn+pmMB4cgbEkDYgnkUWb0WfeQ/wa2yFv6D5ICiCQOVpjA7vYDXrC7AGO8yjDHA==} + engines: {node: ^18.0.0 || >=20.0.0} + peerDependencies: + vite: ^5.0.0 || ^6.0.0 + vue: ^3.2.25 + + '@vitest/coverage-v8@3.1.3': + resolution: {integrity: sha512-cj76U5gXCl3g88KSnf80kof6+6w+K4BjOflCl7t6yRJPDuCrHtVu0SgNYOUARJOL5TI8RScDbm5x4s1/P9bvpw==} peerDependencies: - '@vitest/browser': 2.1.9 - vitest: 2.1.9 + '@vitest/browser': 3.1.3 + vitest: 3.1.3 peerDependenciesMeta: '@vitest/browser': optional: true - '@vitest/expect@2.1.9': - resolution: {integrity: sha512-UJCIkTBenHeKT1TTlKMJWy1laZewsRIzYighyYiJKZreqtdxSos/S1t+ktRMQWu2CKqaarrkeszJx1cgC5tGZw==} + '@vitest/expect@3.1.3': + resolution: {integrity: sha512-7FTQQuuLKmN1Ig/h+h/GO+44Q1IlglPlR2es4ab7Yvfx+Uk5xsv+Ykk+MEt/M2Yn/xGmzaLKxGw2lgy2bwuYqg==} - '@vitest/mocker@2.1.9': - resolution: {integrity: sha512-tVL6uJgoUdi6icpxmdrn5YNo3g3Dxv+IHJBr0GXHaEdTcw3F+cPKnsXFhli6nO+f/6SDKPHEK1UN+k+TQv0Ehg==} + '@vitest/mocker@3.1.3': + resolution: {integrity: sha512-PJbLjonJK82uCWHjzgBJZuR7zmAOrSvKk1QBxrennDIgtH4uK0TB1PvYmc0XBCigxxtiAVPfWtAdy4lpz8SQGQ==} peerDependencies: msw: ^2.4.9 - vite: ^5.0.0 + vite: ^5.0.0 || ^6.0.0 peerDependenciesMeta: msw: optional: true vite: optional: true - '@vitest/pretty-format@2.1.9': - resolution: {integrity: sha512-KhRIdGV2U9HOUzxfiHmY8IFHTdqtOhIzCpd8WRdJiE7D/HUcZVD0EgQCVjm+Q9gkUXWgBvMmTtZgIG48wq7sOQ==} + '@vitest/pretty-format@3.1.3': + resolution: {integrity: sha512-i6FDiBeJUGLDKADw2Gb01UtUNb12yyXAqC/mmRWuYl+m/U9GS7s8us5ONmGkGpUUo7/iAYzI2ePVfOZTYvUifA==} - '@vitest/runner@2.1.9': - resolution: {integrity: sha512-ZXSSqTFIrzduD63btIfEyOmNcBmQvgOVsPNPe0jYtESiXkhd8u2erDLnMxmGrDCwHCCHE7hxwRDCT3pt0esT4g==} + '@vitest/runner@3.1.3': + resolution: {integrity: sha512-Tae+ogtlNfFei5DggOsSUvkIaSuVywujMj6HzR97AHK6XK8i3BuVyIifWAm/sE3a15lF5RH9yQIrbXYuo0IFyA==} - '@vitest/snapshot@2.1.9': - resolution: {integrity: sha512-oBO82rEjsxLNJincVhLhaxxZdEtV0EFHMK5Kmx5sJ6H9L183dHECjiefOAdnqpIgT5eZwT04PoggUnW88vOBNQ==} + '@vitest/snapshot@3.1.3': + resolution: {integrity: sha512-XVa5OPNTYUsyqG9skuUkFzAeFnEzDp8hQu7kZ0N25B1+6KjGm4hWLtURyBbsIAOekfWQ7Wuz/N/XXzgYO3deWQ==} - '@vitest/spy@2.1.9': - resolution: {integrity: sha512-E1B35FwzXXTs9FHNK6bDszs7mtydNi5MIfUWpceJ8Xbfb1gBMscAnwLbEu+B44ed6W3XjL9/ehLPHR1fkf1KLQ==} + '@vitest/spy@3.1.3': + resolution: {integrity: sha512-x6w+ctOEmEXdWaa6TO4ilb7l9DxPR5bwEb6hILKuxfU1NqWT2mpJD9NJN7t3OTfxmVlOMrvtoFJGdgyzZ605lQ==} - '@vitest/utils@2.1.9': - resolution: {integrity: sha512-v0psaMSkNJ3A2NMrUEHFRzJtDPFn+/VWZ5WxImB21T9fjucJRmS7xCS3ppEnARb9y11OAzaD+P2Ps+b+BGX5iQ==} + '@vitest/utils@3.1.3': + resolution: {integrity: sha512-2Ltrpht4OmHO9+c/nmHtF09HWiyWdworqnHIwjfvDyWjuwKbdkcS9AnhsDn+8E2RM4x++foD1/tNuLPVvWG1Rg==} '@volar/language-core@2.4.13': resolution: {integrity: sha512-MnQJ7eKchJx5Oz+YdbqyFUk8BN6jasdJv31n/7r6/WwlOOv7qzvot6B66887l2ST3bUW4Mewml54euzpJWA6bg==} @@ -2156,8 +2142,8 @@ packages: caniuse-api@3.0.0: resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} - caniuse-lite@1.0.30001716: - resolution: {integrity: sha512-49/c1+x3Kwz7ZIWt+4DvK3aMJy9oYXXG6/97JKsnjdCk/6n9vVyWL8NAwVt95Lwt9eigI10Hl782kDfZUUlRXw==} + caniuse-lite@1.0.30001717: + resolution: {integrity: sha512-auPpttCq6BDEG8ZAuHJIplGw6GODhjw+/11e7IjpnYCxZcW/ONgPs0KVBJ0d1bY3e2+7PRe5RCLyP+PfwVgkYw==} ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} @@ -2345,10 +2331,6 @@ packages: resolution: {integrity: sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==} engines: {node: '>=12.13'} - cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} - engines: {node: '>= 8'} - cross-spawn@7.0.6: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} @@ -2455,15 +2437,6 @@ packages: engines: {node: '>=8.0.0'} hasBin: true - del-cli@6.0.0: - resolution: {integrity: sha512-9nitGV2W6KLFyya4qYt4+9AKQFL+c0Ehj5K7V7IwlxTc6RMCfQUGY9E9pLG6e8TQjtwXpuiWIGGZb3mfVxyZkw==} - engines: {node: '>=18'} - hasBin: true - - del@8.0.0: - resolution: {integrity: sha512-R6ep6JJ+eOBZsBr9esiNN1gxFbZE4Q2cULkUSFumGYecAiS6qodDvcPx/sFuWHMNul7DWmrtoEOpYSm7o6tbSA==} - engines: {node: '>=18'} - delayed-stream@1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} @@ -2597,8 +2570,8 @@ packages: engines: {node: '>=12'} hasBin: true - esbuild@0.25.3: - resolution: {integrity: sha512-qKA6Pvai73+M2FtftpNKRxJ78GIjmFXFxd/1DVBqGo/qNhLSfv+G12n9pNoWdytJC8U00TrViOwpjT0zgqQS8Q==} + esbuild@0.25.4: + resolution: {integrity: sha512-8pgjLUcUjcgDg+2Q4NYXnPbo/vncAY4UmyaCm0jZevERqCHZIaWwdJHkf8XQtu4AxSKCdvrUbT0XUr1IdZzI8Q==} engines: {node: '>=18'} hasBin: true @@ -2654,8 +2627,8 @@ packages: resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} engines: {node: '>=16.17'} - execa@9.5.2: - resolution: {integrity: sha512-EHlpxMCpHWSAh1dgS6bVeoLAXGnJNdR93aabr4QCGbzOM73o5XmRfM/e5FUqsw3aagP8S8XEWUWFAxnRBnAF0Q==} + execa@9.5.3: + resolution: {integrity: sha512-QFNnTvU3UjgWFy8Ef9iDHvIdcgZ344ebkwYx4/KLbR+CKQA4xBaHzv+iRpp86QfMHP8faFQLh8iOc57215y4Rg==} engines: {node: ^18.19.0 || >=20.5.0} expect-type@1.2.1: @@ -2842,10 +2815,6 @@ packages: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} - globby@14.1.0: - resolution: {integrity: sha512-0Ia46fDOaT7k4og1PDW4YbodWWr3scS2vAr2lTbsplOt2WkKp0vQbkI9wKis/T5LV/dqPjO3bpS/z6GTJB82LA==} - engines: {node: '>=18'} - gopd@1.2.0: resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} engines: {node: '>= 0.4'} @@ -2952,10 +2921,6 @@ packages: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} - ignore@7.0.4: - resolution: {integrity: sha512-gJzzk+PQNznz8ysRrC0aOkBNVRBDtE1n53IqyqEf3PXrYwomFs5q4pGMizBMJF+ykh03insJ27hB8gSrD2Hn8A==} - engines: {node: '>= 4'} - import-meta-resolve@4.1.0: resolution: {integrity: sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==} @@ -3015,14 +2980,6 @@ packages: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} - is-path-cwd@3.0.0: - resolution: {integrity: sha512-kyiNFFLU0Ampr6SDZitD/DwUo4Zs1nSdnygUBqsu3LooL00Qvb5j+UnvApUn/TTj1J3OuE6BTdQ5rudKmU2ZaA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - is-path-inside@4.0.0: - resolution: {integrity: sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==} - engines: {node: '>=12'} - is-plain-obj@4.1.0: resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} engines: {node: '>=12'} @@ -3147,8 +3104,8 @@ packages: resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} engines: {node: '>=14'} - lint-staged@15.5.1: - resolution: {integrity: sha512-6m7u8mue4Xn6wK6gZvSCQwBvMBR36xfY24nF5bMTf2MHDYG6S3yhJuOgdYVw99hsjyDt2d4z168b3naI8+NWtQ==} + lint-staged@15.5.2: + resolution: {integrity: sha512-YUSOLq9VeRNAo/CTaVmhGDKG+LBtA8KF1X4K5+ykMSwWST1vDxJRB2kv2COgLb1fvpCo+A/y9A0G0znNVmdx4w==} engines: {node: '>=18.12.0'} hasBin: true @@ -3196,6 +3153,10 @@ packages: lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + lru-cache@11.1.0: + resolution: {integrity: sha512-QIXZUBJUx+2zHUdQujWejBkcD9+cs94tLn0+YL8UrCh+D5sCXZ4c7LaEH48pNwRY3MLDgqUFyhlCyjJPf1WP0A==} + engines: {node: 20 || >=22} + lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} @@ -3280,10 +3241,6 @@ packages: resolution: {integrity: sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==} engines: {node: '>= 0.8'} - meow@13.2.0: - resolution: {integrity: sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==} - engines: {node: '>=18'} - merge-descriptors@2.0.0: resolution: {integrity: sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==} engines: {node: '>=18'} @@ -3462,8 +3419,8 @@ packages: ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - msw@2.7.5: - resolution: {integrity: sha512-00MyTlY3TJutBa5kiU+jWiz2z5pNJDYHn2TgPkGkh92kMmNH43RqvMXd8y/7HxNn8RjzUbvZWYZjcS36fdb6sw==} + msw@2.8.2: + resolution: {integrity: sha512-ugu8RBgUj6//RD0utqDDPdS+QIs36BKYkDAM6u59hcMVtFM4PM0vW4l3G1R+1uCWP2EWFUG8reT/gPXVEtx7/w==} engines: {node: '>=18'} hasBin: true peerDependencies: @@ -3502,8 +3459,8 @@ packages: neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} - next@15.3.1: - resolution: {integrity: sha512-8+dDV0xNLOgHlyBxP1GwHGVaNXsmp+2NhZEYrXr24GWLHtt27YrBPbPuHvzlhi7kZNYjeJNR93IF5zfFu5UL0g==} + next@15.3.2: + resolution: {integrity: sha512-CA3BatMyHkxZ48sgOCLdVHjFU36N7TF1HhqAHLFOkV6buwZnvMI84Cug8xD56B9mCuKrqXnLn94417GrZ/jjCQ==} engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0} hasBin: true peerDependencies: @@ -3634,10 +3591,6 @@ packages: resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} engines: {node: '>=6'} - p-map@7.0.3: - resolution: {integrity: sha512-VkndIv2fIB99swvQoA65bm+fsmt6UNdGeIB0oxBs+WhAhdh08QA04JXpI7rbB9r08/nkbysKoya9rtDERYOYMA==} - engines: {node: '>=18'} - p-try@2.2.0: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} @@ -3709,13 +3662,6 @@ packages: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} - path-type@6.0.0: - resolution: {integrity: sha512-Vj7sf++t5pBD637NSfkxpHSMfWaeig5+DKWLhcqIYx6mWQz5hdJTGDVMQiJcw1ZYkhs7AazKDGpRVji1LJCZUQ==} - engines: {node: '>=18'} - - pathe@1.1.2: - resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} - pathe@2.0.3: resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} @@ -4180,8 +4126,8 @@ packages: shiki@2.5.0: resolution: {integrity: sha512-mI//trrsaiCIPsja5CNfsyNOqgAZUb6VpJA+340toL42UpzQlXpwRV9nch69X6gaUxrr9kaOOa6e3y3uAkGFxQ==} - shiki@3.3.0: - resolution: {integrity: sha512-j0Z1tG5vlOFGW8JVj0Cpuatzvshes7VJy5ncDmmMaYcmnGW0Js1N81TOW98ivTFNZfKRn9uwEg/aIm638o368g==} + shiki@3.4.0: + resolution: {integrity: sha512-Ni80XHcqhOEXv5mmDAvf5p6PAJqbUc/RzFeaOqk+zP5DLvTPS3j0ckvA+MI87qoxTQ5RGJDVTbdl/ENLSyyAnQ==} side-channel-list@1.0.0: resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} @@ -4226,10 +4172,6 @@ packages: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} - slash@5.1.0: - resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} - engines: {node: '>=14.16'} - slice-ansi@5.0.0: resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} engines: {node: '>=12'} @@ -4342,8 +4284,8 @@ packages: peerDependencies: postcss: ^8.4.31 - superagent@10.2.0: - resolution: {integrity: sha512-IKeoGox6oG9zyDeizaezkJ2/aK0wc5la9st7WsAKyrAkfJ56W3whVbVtF68k6wuc87/y9T85NyON5FLz7Mrzzw==} + superagent@10.2.1: + resolution: {integrity: sha512-O+PCv11lgTNJUzy49teNAWLjBZfc+A1enOwTpLlH6/rsvKcTwcdTT8m9azGkVqM7HBl5jpyZ7KTPhHweokBcdg==} engines: {node: '>=14.18.0'} superjson@2.2.2: @@ -4458,8 +4400,8 @@ packages: resolution: {integrity: sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA==} engines: {node: ^18.0.0 || >=20.0.0} - tinyrainbow@1.2.0: - resolution: {integrity: sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==} + tinyrainbow@2.0.0: + resolution: {integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==} engines: {node: '>=14.0.0'} tinyspy@3.0.2: @@ -4499,38 +4441,38 @@ packages: tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} - turbo-darwin-64@2.5.2: - resolution: {integrity: sha512-2aIl0Sx230nLk+Cg2qSVxvPOBWCZpwKNuAMKoROTvWKif6VMpkWWiR9XEPoz7sHeLmCOed4GYGMjL1bqAiIS/g==} + turbo-darwin-64@2.5.3: + resolution: {integrity: sha512-YSItEVBUIvAGPUDpAB9etEmSqZI3T6BHrkBkeSErvICXn3dfqXUfeLx35LfptLDEbrzFUdwYFNmt8QXOwe9yaw==} cpu: [x64] os: [darwin] - turbo-darwin-arm64@2.5.2: - resolution: {integrity: sha512-MrFYhK/jYu8N6QlqZtqSHi3e4QVxlzqU3ANHTKn3/tThuwTLbNHEvzBPWSj5W7nZcM58dCqi6gYrfRz6bJZyAA==} + turbo-darwin-arm64@2.5.3: + resolution: {integrity: sha512-5PefrwHd42UiZX7YA9m1LPW6x9YJBDErXmsegCkVp+GjmWrADfEOxpFrGQNonH3ZMj77WZB2PVE5Aw3gA+IOhg==} cpu: [arm64] os: [darwin] - turbo-linux-64@2.5.2: - resolution: {integrity: sha512-LxNqUE2HmAJQ/8deoLgMUDzKxd5bKxqH0UBogWa+DF+JcXhtze3UTMr6lEr0dEofdsEUYK1zg8FRjglmwlN5YA==} + turbo-linux-64@2.5.3: + resolution: {integrity: sha512-M9xigFgawn5ofTmRzvjjLj3Lqc05O8VHKuOlWNUlnHPUltFquyEeSkpQNkE/vpPdOR14AzxqHbhhxtfS4qvb1w==} cpu: [x64] os: [linux] - turbo-linux-arm64@2.5.2: - resolution: {integrity: sha512-0MI1Ao1q8zhd+UUbIEsrM+yLq1BsrcJQRGZkxIsHFlGp7WQQH1oR3laBgfnUCNdCotCMD6w4moc9pUbXdOR3bg==} + turbo-linux-arm64@2.5.3: + resolution: {integrity: sha512-auJRbYZ8SGJVqvzTikpg1bsRAsiI9Tk0/SDkA5Xgg0GdiHDH/BOzv1ZjDE2mjmlrO/obr19Dw+39OlMhwLffrw==} cpu: [arm64] os: [linux] - turbo-windows-64@2.5.2: - resolution: {integrity: sha512-hOLcbgZzE5ttACHHyc1ajmWYq4zKT42IC3G6XqgiXxMbS+4eyVYTL+7UvCZBd3Kca1u4TLQdLQjeO76zyDJc2A==} + turbo-windows-64@2.5.3: + resolution: {integrity: sha512-arLQYohuHtIEKkmQSCU9vtrKUg+/1TTstWB9VYRSsz+khvg81eX6LYHtXJfH/dK7Ho6ck+JaEh5G+QrE1jEmCQ==} cpu: [x64] os: [win32] - turbo-windows-arm64@2.5.2: - resolution: {integrity: sha512-fMU41ABhSLa18H8V3Z7BMCGynQ8x+wj9WyBMvWm1jeyRKgkvUYJsO2vkIsy8m0vrwnIeVXKOIn6eSe1ddlBVqw==} + turbo-windows-arm64@2.5.3: + resolution: {integrity: sha512-3JPn66HAynJ0gtr6H+hjY4VHpu1RPKcEwGATvGUTmLmYSYBQieVlnGDRMMoYN066YfyPqnNGCfhYbXfH92Cm0g==} cpu: [arm64] os: [win32] - turbo@2.5.2: - resolution: {integrity: sha512-Qo5lfuStr6LQh3sPQl7kIi243bGU4aHGDQJUf6ylAdGwks30jJFloc9NYHP7Y373+gGU9OS0faA4Mb5Sy8X9Xw==} + turbo@2.5.3: + resolution: {integrity: sha512-iHuaNcq5GZZnr3XDZNuu2LSyCzAOPwDuo5Qt+q64DfsTP1i3T2bKfxJhni2ZQxsvAoxRbuUK5QetJki4qc5aYA==} hasBin: true twoslash-protocol@0.3.1: @@ -4550,8 +4492,8 @@ packages: resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} engines: {node: '>=10'} - type-fest@4.40.1: - resolution: {integrity: sha512-9YvLNnORDpI+vghLU/Nf+zSv0kL47KbVJ1o3sKgoTefl6i+zebxbiDQWoe/oWWqPhIgQdRZRT1KA9sCPL810SA==} + type-fest@4.41.0: + resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==} engines: {node: '>=16'} type-is@2.0.1: @@ -4588,8 +4530,8 @@ packages: undici-types@6.21.0: resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} - undici@7.8.0: - resolution: {integrity: sha512-vFv1GA99b7eKO1HG/4RPu2Is3FBTWBrmzqzO0mz+rLxN3yXkE4mqRcb8g8fHxzX4blEysrNZLqg5RbJLqX5buA==} + undici@7.9.0: + resolution: {integrity: sha512-e696y354tf5cFZPXsF26Yg+5M63+5H3oE6Vtkh2oqbvsE2Oe7s2nIbcQh5lmG7Lp/eS29vJtTpw9+p6PX0qNSg==} engines: {node: '>=20.18.1'} unicode-emoji-modifier-base@1.0.0: @@ -4678,9 +4620,9 @@ packages: vfile@6.0.3: resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} - vite-node@2.1.9: - resolution: {integrity: sha512-AM9aQ/IPrW/6ENLQg3AGY4K1N2TGZdR5e4gu/MmmR2xR3Ll1+dib+nook92g4TV3PXVyeyxdWwtaCAiUL0hMxA==} - engines: {node: ^18.0.0 || >=20.0.0} + vite-node@3.1.3: + resolution: {integrity: sha512-uHV4plJ2IxCl4u1up1FQRrqclylKAogbtBfOTwcuJ28xFi+89PZ57BRh+naIRvH70HPwxy5QHYzg1OrEaC7AbA==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true vite@5.4.19: @@ -4714,8 +4656,8 @@ packages: terser: optional: true - vite@6.3.4: - resolution: {integrity: sha512-BiReIiMS2fyFqbqNT/Qqt4CVITDU9M9vE+DKcVAsB+ZV0wvTKd+3hMbkpxz1b+NmEDMegpVbisKiAZOnvO92Sw==} + vite@6.3.5: + resolution: {integrity: sha512-cZn6NDFE7wdTpINgs++ZJ4N49W2vRp8LCKrn3Ob1kYNtOo21vfDoaV5GzBfLU4MovSAB8uNRm4jgzVQZ+mBzPQ==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true peerDependencies: @@ -4774,20 +4716,23 @@ packages: postcss: optional: true - vitest@2.1.9: - resolution: {integrity: sha512-MSmPM9REYqDGBI8439mA4mWhV5sKmDlBKWIYbA3lRb2PTHACE0mgKwA8yQ2xq9vxDTuk4iPrECBAEW2aoFXY0Q==} - engines: {node: ^18.0.0 || >=20.0.0} + vitest@3.1.3: + resolution: {integrity: sha512-188iM4hAHQ0km23TN/adso1q5hhwKqUpv+Sd6p5sOuh6FhQnRNW3IsiIpvxqahtBabsJ2SLZgmGSpcYK4wQYJw==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' - '@types/node': ^18.0.0 || >=20.0.0 - '@vitest/browser': 2.1.9 - '@vitest/ui': 2.1.9 + '@types/debug': ^4.1.12 + '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 + '@vitest/browser': 3.1.3 + '@vitest/ui': 3.1.3 happy-dom: '*' jsdom: '*' peerDependenciesMeta: '@edge-runtime/vm': optional: true + '@types/debug': + optional: true '@types/node': optional: true '@vitest/browser': @@ -5070,9 +5015,9 @@ snapshots: '@types/json-schema': 7.0.15 js-yaml: 4.1.0 - '@arethetypeswrong/cli@0.17.4': + '@arethetypeswrong/cli@0.18.1': dependencies: - '@arethetypeswrong/core': 0.17.4 + '@arethetypeswrong/core': 0.18.1 chalk: 4.1.2 cli-table3: 0.6.5 commander: 10.0.1 @@ -5080,13 +5025,13 @@ snapshots: marked-terminal: 7.3.0(marked@9.1.6) semver: 7.7.1 - '@arethetypeswrong/core@0.17.4': + '@arethetypeswrong/core@0.18.1': dependencies: '@andrewbranch/untar.js': 1.0.3 '@loaderkit/resolve': 1.0.4 cjs-module-lexer: 1.4.3 fflate: 0.8.2 - lru-cache: 10.4.3 + lru-cache: 11.1.0 semver: 7.7.1 typescript: 5.6.1-rc validate-npm-package-name: 5.0.1 @@ -5203,7 +5148,7 @@ snapshots: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.27.1 - '@bcoe/v8-coverage@0.2.3': {} + '@bcoe/v8-coverage@1.0.2': {} '@biomejs/biome@1.9.4': optionalDependencies: @@ -5275,7 +5220,7 @@ snapshots: resolve-from: 5.0.0 semver: 7.7.1 - '@changesets/assemble-release-plan@6.0.6': + '@changesets/assemble-release-plan@6.0.7': dependencies: '@changesets/errors': 0.2.0 '@changesets/get-dependents-graph': 2.1.3 @@ -5296,15 +5241,15 @@ snapshots: transitivePeerDependencies: - encoding - '@changesets/cli@2.29.2': + '@changesets/cli@2.29.3': dependencies: '@changesets/apply-release-plan': 7.0.12 - '@changesets/assemble-release-plan': 6.0.6 + '@changesets/assemble-release-plan': 6.0.7 '@changesets/changelog-git': 0.2.1 '@changesets/config': 3.1.1 '@changesets/errors': 0.2.0 '@changesets/get-dependents-graph': 2.1.3 - '@changesets/get-release-plan': 4.0.10 + '@changesets/get-release-plan': 4.0.11 '@changesets/git': 3.0.4 '@changesets/logger': 0.1.1 '@changesets/pre': 2.0.2 @@ -5355,9 +5300,9 @@ snapshots: transitivePeerDependencies: - encoding - '@changesets/get-release-plan@4.0.10': + '@changesets/get-release-plan@4.0.11': dependencies: - '@changesets/assemble-release-plan': 6.0.6 + '@changesets/assemble-release-plan': 6.0.7 '@changesets/config': 3.1.1 '@changesets/pre': 2.0.2 '@changesets/read': 0.6.5 @@ -5421,9 +5366,9 @@ snapshots: '@docsearch/css@3.8.2': {} - '@docsearch/js@3.8.2(@algolia/client-search@5.24.0)(@types/react@18.3.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.13.0)': + '@docsearch/js@3.8.2(@algolia/client-search@5.24.0)(@types/react@18.3.21)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.13.0)': dependencies: - '@docsearch/react': 3.8.2(@algolia/client-search@5.24.0)(@types/react@18.3.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.13.0) + '@docsearch/react': 3.8.2(@algolia/client-search@5.24.0)(@types/react@18.3.21)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.13.0) preact: 10.26.5 transitivePeerDependencies: - '@algolia/client-search' @@ -5432,14 +5377,14 @@ snapshots: - react-dom - search-insights - '@docsearch/react@3.8.2(@algolia/client-search@5.24.0)(@types/react@18.3.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.13.0)': + '@docsearch/react@3.8.2(@algolia/client-search@5.24.0)(@types/react@18.3.21)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.13.0)': dependencies: '@algolia/autocomplete-core': 1.17.7(@algolia/client-search@5.24.0)(algoliasearch@5.24.0)(search-insights@2.13.0) '@algolia/autocomplete-preset-algolia': 1.17.7(@algolia/client-search@5.24.0)(algoliasearch@5.24.0) '@docsearch/css': 3.8.2 algoliasearch: 5.24.0 optionalDependencies: - '@types/react': 18.3.20 + '@types/react': 18.3.21 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) search-insights: 2.13.0 @@ -5454,145 +5399,145 @@ snapshots: '@esbuild/aix-ppc64@0.21.5': optional: true - '@esbuild/aix-ppc64@0.25.3': + '@esbuild/aix-ppc64@0.25.4': optional: true '@esbuild/android-arm64@0.21.5': optional: true - '@esbuild/android-arm64@0.25.3': + '@esbuild/android-arm64@0.25.4': optional: true '@esbuild/android-arm@0.21.5': optional: true - '@esbuild/android-arm@0.25.3': + '@esbuild/android-arm@0.25.4': optional: true '@esbuild/android-x64@0.21.5': optional: true - '@esbuild/android-x64@0.25.3': + '@esbuild/android-x64@0.25.4': optional: true '@esbuild/darwin-arm64@0.21.5': optional: true - '@esbuild/darwin-arm64@0.25.3': + '@esbuild/darwin-arm64@0.25.4': optional: true '@esbuild/darwin-x64@0.21.5': optional: true - '@esbuild/darwin-x64@0.25.3': + '@esbuild/darwin-x64@0.25.4': optional: true '@esbuild/freebsd-arm64@0.21.5': optional: true - '@esbuild/freebsd-arm64@0.25.3': + '@esbuild/freebsd-arm64@0.25.4': optional: true '@esbuild/freebsd-x64@0.21.5': optional: true - '@esbuild/freebsd-x64@0.25.3': + '@esbuild/freebsd-x64@0.25.4': optional: true '@esbuild/linux-arm64@0.21.5': optional: true - '@esbuild/linux-arm64@0.25.3': + '@esbuild/linux-arm64@0.25.4': optional: true '@esbuild/linux-arm@0.21.5': optional: true - '@esbuild/linux-arm@0.25.3': + '@esbuild/linux-arm@0.25.4': optional: true '@esbuild/linux-ia32@0.21.5': optional: true - '@esbuild/linux-ia32@0.25.3': + '@esbuild/linux-ia32@0.25.4': optional: true '@esbuild/linux-loong64@0.21.5': optional: true - '@esbuild/linux-loong64@0.25.3': + '@esbuild/linux-loong64@0.25.4': optional: true '@esbuild/linux-mips64el@0.21.5': optional: true - '@esbuild/linux-mips64el@0.25.3': + '@esbuild/linux-mips64el@0.25.4': optional: true '@esbuild/linux-ppc64@0.21.5': optional: true - '@esbuild/linux-ppc64@0.25.3': + '@esbuild/linux-ppc64@0.25.4': optional: true '@esbuild/linux-riscv64@0.21.5': optional: true - '@esbuild/linux-riscv64@0.25.3': + '@esbuild/linux-riscv64@0.25.4': optional: true '@esbuild/linux-s390x@0.21.5': optional: true - '@esbuild/linux-s390x@0.25.3': + '@esbuild/linux-s390x@0.25.4': optional: true '@esbuild/linux-x64@0.21.5': optional: true - '@esbuild/linux-x64@0.25.3': + '@esbuild/linux-x64@0.25.4': optional: true - '@esbuild/netbsd-arm64@0.25.3': + '@esbuild/netbsd-arm64@0.25.4': optional: true '@esbuild/netbsd-x64@0.21.5': optional: true - '@esbuild/netbsd-x64@0.25.3': + '@esbuild/netbsd-x64@0.25.4': optional: true - '@esbuild/openbsd-arm64@0.25.3': + '@esbuild/openbsd-arm64@0.25.4': optional: true '@esbuild/openbsd-x64@0.21.5': optional: true - '@esbuild/openbsd-x64@0.25.3': + '@esbuild/openbsd-x64@0.25.4': optional: true '@esbuild/sunos-x64@0.21.5': optional: true - '@esbuild/sunos-x64@0.25.3': + '@esbuild/sunos-x64@0.25.4': optional: true '@esbuild/win32-arm64@0.21.5': optional: true - '@esbuild/win32-arm64@0.25.3': + '@esbuild/win32-arm64@0.25.4': optional: true '@esbuild/win32-ia32@0.21.5': optional: true - '@esbuild/win32-ia32@0.25.3': + '@esbuild/win32-ia32@0.25.4': optional: true '@esbuild/win32-x64@0.21.5': optional: true - '@esbuild/win32-x64@0.25.3': + '@esbuild/win32-x64@0.25.4': optional: true '@floating-ui/core@1.7.0': @@ -5689,17 +5634,17 @@ snapshots: '@img/sharp-win32-x64@0.34.1': optional: true - '@inquirer/confirm@5.1.9(@types/node@22.15.3)': + '@inquirer/confirm@5.1.9(@types/node@22.15.17)': dependencies: - '@inquirer/core': 10.1.10(@types/node@22.15.3) - '@inquirer/type': 3.0.6(@types/node@22.15.3) + '@inquirer/core': 10.1.10(@types/node@22.15.17) + '@inquirer/type': 3.0.6(@types/node@22.15.17) optionalDependencies: - '@types/node': 22.15.3 + '@types/node': 22.15.17 - '@inquirer/core@10.1.10(@types/node@22.15.3)': + '@inquirer/core@10.1.10(@types/node@22.15.17)': dependencies: '@inquirer/figures': 1.0.11 - '@inquirer/type': 3.0.6(@types/node@22.15.3) + '@inquirer/type': 3.0.6(@types/node@22.15.17) ansi-escapes: 4.3.2 cli-width: 4.1.0 mute-stream: 2.0.0 @@ -5707,13 +5652,13 @@ snapshots: wrap-ansi: 6.2.0 yoctocolors-cjs: 2.1.2 optionalDependencies: - '@types/node': 22.15.3 + '@types/node': 22.15.17 '@inquirer/figures@1.0.11': {} - '@inquirer/type@3.0.6(@types/node@22.15.3)': + '@inquirer/type@3.0.6(@types/node@22.15.17)': optionalDependencies: - '@types/node': 22.15.3 + '@types/node': 22.15.17 '@isaacs/cliui@8.0.2': dependencies: @@ -5774,30 +5719,30 @@ snapshots: outvariant: 1.4.3 strict-event-emitter: 0.5.1 - '@next/env@15.3.1': {} + '@next/env@15.3.2': {} - '@next/swc-darwin-arm64@15.3.1': + '@next/swc-darwin-arm64@15.3.2': optional: true - '@next/swc-darwin-x64@15.3.1': + '@next/swc-darwin-x64@15.3.2': optional: true - '@next/swc-linux-arm64-gnu@15.3.1': + '@next/swc-linux-arm64-gnu@15.3.2': optional: true - '@next/swc-linux-arm64-musl@15.3.1': + '@next/swc-linux-arm64-musl@15.3.2': optional: true - '@next/swc-linux-x64-gnu@15.3.1': + '@next/swc-linux-x64-gnu@15.3.2': optional: true - '@next/swc-linux-x64-musl@15.3.1': + '@next/swc-linux-x64-musl@15.3.2': optional: true - '@next/swc-win32-arm64-msvc@15.3.1': + '@next/swc-win32-arm64-msvc@15.3.2': optional: true - '@next/swc-win32-x64-msvc@15.3.1': + '@next/swc-win32-x64-msvc@15.3.2': optional: true '@noble/hashes@1.8.0': {} @@ -5845,7 +5790,7 @@ snapshots: '@redocly/config@0.22.2': {} - '@redocly/openapi-core@1.34.2(supports-color@10.0.0)': + '@redocly/openapi-core@1.34.3(supports-color@10.0.0)': dependencies: '@redocly/ajv': 8.11.2 '@redocly/config': 0.22.2 @@ -5984,15 +5929,22 @@ snapshots: '@types/hast': 3.0.4 hast-util-to-html: 9.0.5 + '@shikijs/core@3.4.0': + dependencies: + '@shikijs/types': 3.4.0 + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + hast-util-to-html: 9.0.5 + '@shikijs/engine-javascript@2.5.0': dependencies: '@shikijs/types': 2.5.0 '@shikijs/vscode-textmate': 10.0.2 oniguruma-to-es: 3.1.1 - '@shikijs/engine-javascript@3.3.0': + '@shikijs/engine-javascript@3.4.0': dependencies: - '@shikijs/types': 3.3.0 + '@shikijs/types': 3.4.0 '@shikijs/vscode-textmate': 10.0.2 oniguruma-to-es: 4.3.3 @@ -6001,26 +5953,26 @@ snapshots: '@shikijs/types': 2.5.0 '@shikijs/vscode-textmate': 10.0.2 - '@shikijs/engine-oniguruma@3.3.0': + '@shikijs/engine-oniguruma@3.4.0': dependencies: - '@shikijs/types': 3.3.0 + '@shikijs/types': 3.4.0 '@shikijs/vscode-textmate': 10.0.2 '@shikijs/langs@2.5.0': dependencies: '@shikijs/types': 2.5.0 - '@shikijs/langs@3.3.0': + '@shikijs/langs@3.4.0': dependencies: - '@shikijs/types': 3.3.0 + '@shikijs/types': 3.4.0 '@shikijs/themes@2.5.0': dependencies: '@shikijs/types': 2.5.0 - '@shikijs/themes@3.3.0': + '@shikijs/themes@3.4.0': dependencies: - '@shikijs/types': 3.3.0 + '@shikijs/types': 3.4.0 '@shikijs/transformers@2.5.0': dependencies: @@ -6046,14 +5998,19 @@ snapshots: '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 - '@shikijs/vitepress-twoslash@3.3.0(typescript@5.8.3)': + '@shikijs/types@3.4.0': + dependencies: + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + + '@shikijs/vitepress-twoslash@3.4.0(typescript@5.8.3)': dependencies: '@shikijs/twoslash': 3.3.0(typescript@5.8.3) floating-vue: 5.2.2(vue@3.5.13(typescript@5.8.3)) mdast-util-from-markdown: 2.0.2 mdast-util-gfm: 3.1.0 mdast-util-to-hast: 13.2.0 - shiki: 3.3.0 + shiki: 3.4.0 twoslash: 0.3.1(typescript@5.8.3) twoslash-vue: 0.3.1(typescript@5.8.3) vue: 3.5.13(typescript@5.8.3) @@ -6066,13 +6023,11 @@ snapshots: '@sindresorhus/is@4.6.0': {} - '@sindresorhus/merge-streams@2.3.0': {} - '@sindresorhus/merge-streams@4.0.0': {} '@size-limit/esbuild@11.2.0(size-limit@11.2.0)': dependencies: - esbuild: 0.25.3 + esbuild: 0.25.4 nanoid: 5.1.5 size-limit: 11.2.0 @@ -6090,14 +6045,14 @@ snapshots: dependencies: acorn: 8.14.1 - '@sveltejs/adapter-auto@3.3.1(@sveltejs/kit@2.20.8(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.28.2)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(yaml@2.7.1)))(svelte@5.28.2)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(yaml@2.7.1)))': + '@sveltejs/adapter-auto@3.3.1(@sveltejs/kit@2.20.8(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.28.2)(vite@6.3.5(@types/node@22.15.17)(jiti@2.4.2)(yaml@2.7.1)))(svelte@5.28.2)(vite@6.3.5(@types/node@22.15.17)(jiti@2.4.2)(yaml@2.7.1)))': dependencies: - '@sveltejs/kit': 2.20.8(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.28.2)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(yaml@2.7.1)))(svelte@5.28.2)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(yaml@2.7.1)) + '@sveltejs/kit': 2.20.8(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.28.2)(vite@6.3.5(@types/node@22.15.17)(jiti@2.4.2)(yaml@2.7.1)))(svelte@5.28.2)(vite@6.3.5(@types/node@22.15.17)(jiti@2.4.2)(yaml@2.7.1)) import-meta-resolve: 4.1.0 - '@sveltejs/kit@2.20.8(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.28.2)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(yaml@2.7.1)))(svelte@5.28.2)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(yaml@2.7.1))': + '@sveltejs/kit@2.20.8(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.28.2)(vite@6.3.5(@types/node@22.15.17)(jiti@2.4.2)(yaml@2.7.1)))(svelte@5.28.2)(vite@6.3.5(@types/node@22.15.17)(jiti@2.4.2)(yaml@2.7.1))': dependencies: - '@sveltejs/vite-plugin-svelte': 5.0.3(svelte@5.28.2)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(yaml@2.7.1)) + '@sveltejs/vite-plugin-svelte': 5.0.3(svelte@5.28.2)(vite@6.3.5(@types/node@22.15.17)(jiti@2.4.2)(yaml@2.7.1)) '@types/cookie': 0.6.0 cookie: 0.6.0 devalue: 5.1.1 @@ -6110,76 +6065,75 @@ snapshots: set-cookie-parser: 2.7.1 sirv: 3.0.1 svelte: 5.28.2 - vite: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(yaml@2.7.1) + vite: 6.3.5(@types/node@22.15.17)(jiti@2.4.2)(yaml@2.7.1) - '@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.28.2)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(yaml@2.7.1)))(svelte@5.28.2)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(yaml@2.7.1))': + '@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.28.2)(vite@6.3.5(@types/node@22.15.17)(jiti@2.4.2)(yaml@2.7.1)))(svelte@5.28.2)(vite@6.3.5(@types/node@22.15.17)(jiti@2.4.2)(yaml@2.7.1))': dependencies: - '@sveltejs/vite-plugin-svelte': 5.0.3(svelte@5.28.2)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(yaml@2.7.1)) + '@sveltejs/vite-plugin-svelte': 5.0.3(svelte@5.28.2)(vite@6.3.5(@types/node@22.15.17)(jiti@2.4.2)(yaml@2.7.1)) debug: 4.4.0(supports-color@10.0.0) svelte: 5.28.2 - vite: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(yaml@2.7.1) + vite: 6.3.5(@types/node@22.15.17)(jiti@2.4.2)(yaml@2.7.1) transitivePeerDependencies: - supports-color - '@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.28.2)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(yaml@2.7.1))': + '@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.28.2)(vite@6.3.5(@types/node@22.15.17)(jiti@2.4.2)(yaml@2.7.1))': dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 4.0.1(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.28.2)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(yaml@2.7.1)))(svelte@5.28.2)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(yaml@2.7.1)) + '@sveltejs/vite-plugin-svelte-inspector': 4.0.1(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.28.2)(vite@6.3.5(@types/node@22.15.17)(jiti@2.4.2)(yaml@2.7.1)))(svelte@5.28.2)(vite@6.3.5(@types/node@22.15.17)(jiti@2.4.2)(yaml@2.7.1)) debug: 4.4.0(supports-color@10.0.0) deepmerge: 4.3.1 kleur: 4.1.5 magic-string: 0.30.17 svelte: 5.28.2 - vite: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(yaml@2.7.1) - vitefu: 1.0.6(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(yaml@2.7.1)) + vite: 6.3.5(@types/node@22.15.17)(jiti@2.4.2)(yaml@2.7.1) + vitefu: 1.0.6(vite@6.3.5(@types/node@22.15.17)(jiti@2.4.2)(yaml@2.7.1)) transitivePeerDependencies: - supports-color - '@swc/core-darwin-arm64@1.10.4': + '@swc/core-darwin-arm64@1.11.24': optional: true - '@swc/core-darwin-x64@1.10.4': + '@swc/core-darwin-x64@1.11.24': optional: true - '@swc/core-linux-arm-gnueabihf@1.10.4': + '@swc/core-linux-arm-gnueabihf@1.11.24': optional: true - '@swc/core-linux-arm64-gnu@1.10.4': + '@swc/core-linux-arm64-gnu@1.11.24': optional: true - '@swc/core-linux-arm64-musl@1.10.4': + '@swc/core-linux-arm64-musl@1.11.24': optional: true - '@swc/core-linux-x64-gnu@1.10.4': + '@swc/core-linux-x64-gnu@1.11.24': optional: true - '@swc/core-linux-x64-musl@1.10.4': + '@swc/core-linux-x64-musl@1.11.24': optional: true - '@swc/core-win32-arm64-msvc@1.10.4': + '@swc/core-win32-arm64-msvc@1.11.24': optional: true - '@swc/core-win32-ia32-msvc@1.10.4': + '@swc/core-win32-ia32-msvc@1.11.24': optional: true - '@swc/core-win32-x64-msvc@1.10.4': + '@swc/core-win32-x64-msvc@1.11.24': optional: true - '@swc/core@1.10.4(@swc/helpers@0.5.15)': + '@swc/core@1.11.24': dependencies: '@swc/counter': 0.1.3 '@swc/types': 0.1.21 optionalDependencies: - '@swc/core-darwin-arm64': 1.10.4 - '@swc/core-darwin-x64': 1.10.4 - '@swc/core-linux-arm-gnueabihf': 1.10.4 - '@swc/core-linux-arm64-gnu': 1.10.4 - '@swc/core-linux-arm64-musl': 1.10.4 - '@swc/core-linux-x64-gnu': 1.10.4 - '@swc/core-linux-x64-musl': 1.10.4 - '@swc/core-win32-arm64-msvc': 1.10.4 - '@swc/core-win32-ia32-msvc': 1.10.4 - '@swc/core-win32-x64-msvc': 1.10.4 - '@swc/helpers': 0.5.15 + '@swc/core-darwin-arm64': 1.11.24 + '@swc/core-darwin-x64': 1.11.24 + '@swc/core-linux-arm-gnueabihf': 1.11.24 + '@swc/core-linux-arm64-gnu': 1.11.24 + '@swc/core-linux-arm64-musl': 1.11.24 + '@swc/core-linux-x64-gnu': 1.11.24 + '@swc/core-linux-x64-musl': 1.11.24 + '@swc/core-win32-arm64-msvc': 1.11.24 + '@swc/core-win32-ia32-msvc': 1.11.24 + '@swc/core-win32-x64-msvc': 1.11.24 '@swc/counter@0.1.3': {} @@ -6191,11 +6145,11 @@ snapshots: dependencies: '@swc/counter': 0.1.3 - '@tanstack/query-core@5.75.0': {} + '@tanstack/query-core@5.75.7': {} - '@tanstack/react-query@5.75.2(react@18.3.1)': + '@tanstack/react-query@5.75.7(react@18.3.1)': dependencies: - '@tanstack/query-core': 5.75.0 + '@tanstack/query-core': 5.75.7 react: 18.3.1 '@testing-library/dom@10.1.0': @@ -6209,15 +6163,15 @@ snapshots: lz-string: 1.5.0 pretty-format: 27.5.1 - '@testing-library/react@16.3.0(@testing-library/dom@10.1.0)(@types/react-dom@18.3.7(@types/react@18.3.20))(@types/react@18.3.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@testing-library/react@16.3.0(@testing-library/dom@10.1.0)(@types/react-dom@18.3.7(@types/react@18.3.21))(@types/react@18.3.21)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.27.1 '@testing-library/dom': 10.1.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.20 - '@types/react-dom': 18.3.7(@types/react@18.3.20) + '@types/react': 18.3.21 + '@types/react-dom': 18.3.7(@types/react@18.3.21) '@tootallnate/once@2.0.0': optional: true @@ -6286,7 +6240,7 @@ snapshots: '@types/node@12.20.55': {} - '@types/node@22.15.3': + '@types/node@22.15.17': dependencies: undici-types: 6.21.0 @@ -6294,11 +6248,11 @@ snapshots: '@types/pug@2.0.10': {} - '@types/react-dom@18.3.7(@types/react@18.3.20)': + '@types/react-dom@18.3.7(@types/react@18.3.21)': dependencies: - '@types/react': 18.3.20 + '@types/react': 18.3.21 - '@types/react@18.3.20': + '@types/react@18.3.21': dependencies: '@types/prop-types': 15.7.14 csstype: 3.1.3 @@ -6322,31 +6276,31 @@ snapshots: '@ungap/structured-clone@1.3.0': {} - '@vitejs/plugin-react@4.4.1(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(yaml@2.7.1))': + '@vitejs/plugin-react@4.4.1(vite@6.3.5(@types/node@22.15.17)(jiti@2.4.2)(yaml@2.7.1))': dependencies: '@babel/core': 7.27.1 '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.27.1) '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.27.1) '@types/babel__core': 7.20.5 react-refresh: 0.17.0 - vite: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(yaml@2.7.1) + vite: 6.3.5(@types/node@22.15.17)(jiti@2.4.2)(yaml@2.7.1) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue@5.2.3(vite@5.4.19(@types/node@22.15.3))(vue@3.5.13(typescript@5.8.3))': + '@vitejs/plugin-vue@5.2.3(vite@5.4.19(@types/node@22.15.17))(vue@3.5.13(typescript@5.8.3))': dependencies: - vite: 5.4.19(@types/node@22.15.3) + vite: 5.4.19(@types/node@22.15.17) vue: 3.5.13(typescript@5.8.3) - '@vitejs/plugin-vue@5.2.3(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(yaml@2.7.1))(vue@3.5.13(typescript@5.8.3))': + '@vitejs/plugin-vue@5.2.4(vite@6.3.5(@types/node@22.15.17)(jiti@2.4.2)(yaml@2.7.1))(vue@3.5.13(typescript@5.8.3))': dependencies: - vite: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(yaml@2.7.1) + vite: 6.3.5(@types/node@22.15.17)(jiti@2.4.2)(yaml@2.7.1) vue: 3.5.13(typescript@5.8.3) - '@vitest/coverage-v8@2.1.9(vitest@2.1.9(@types/node@22.15.3)(jsdom@20.0.3)(msw@2.7.5(@types/node@22.15.3)(typescript@5.8.3)))': + '@vitest/coverage-v8@3.1.3(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.17)(jiti@2.4.2)(jsdom@20.0.3)(msw@2.8.2(@types/node@22.15.17)(typescript@5.8.3))(yaml@2.7.1))': dependencies: '@ampproject/remapping': 2.3.0 - '@bcoe/v8-coverage': 0.2.3 + '@bcoe/v8-coverage': 1.0.2 debug: 4.4.0(supports-color@10.0.0) istanbul-lib-coverage: 3.2.2 istanbul-lib-report: 3.0.1 @@ -6356,51 +6310,51 @@ snapshots: magicast: 0.3.5 std-env: 3.9.0 test-exclude: 7.0.1 - tinyrainbow: 1.2.0 - vitest: 2.1.9(@types/node@22.15.3)(jsdom@20.0.3)(msw@2.7.5(@types/node@22.15.3)(typescript@5.8.3)) + tinyrainbow: 2.0.0 + vitest: 3.1.3(@types/debug@4.1.12)(@types/node@22.15.17)(jiti@2.4.2)(jsdom@20.0.3)(msw@2.8.2(@types/node@22.15.17)(typescript@5.8.3))(yaml@2.7.1) transitivePeerDependencies: - supports-color - '@vitest/expect@2.1.9': + '@vitest/expect@3.1.3': dependencies: - '@vitest/spy': 2.1.9 - '@vitest/utils': 2.1.9 + '@vitest/spy': 3.1.3 + '@vitest/utils': 3.1.3 chai: 5.2.0 - tinyrainbow: 1.2.0 + tinyrainbow: 2.0.0 - '@vitest/mocker@2.1.9(msw@2.7.5(@types/node@22.15.3)(typescript@5.8.3))(vite@5.4.19(@types/node@22.15.3))': + '@vitest/mocker@3.1.3(msw@2.8.2(@types/node@22.15.17)(typescript@5.8.3))(vite@6.3.5(@types/node@22.15.17)(jiti@2.4.2)(yaml@2.7.1))': dependencies: - '@vitest/spy': 2.1.9 + '@vitest/spy': 3.1.3 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - msw: 2.7.5(@types/node@22.15.3)(typescript@5.8.3) - vite: 5.4.19(@types/node@22.15.3) + msw: 2.8.2(@types/node@22.15.17)(typescript@5.8.3) + vite: 6.3.5(@types/node@22.15.17)(jiti@2.4.2)(yaml@2.7.1) - '@vitest/pretty-format@2.1.9': + '@vitest/pretty-format@3.1.3': dependencies: - tinyrainbow: 1.2.0 + tinyrainbow: 2.0.0 - '@vitest/runner@2.1.9': + '@vitest/runner@3.1.3': dependencies: - '@vitest/utils': 2.1.9 - pathe: 1.1.2 + '@vitest/utils': 3.1.3 + pathe: 2.0.3 - '@vitest/snapshot@2.1.9': + '@vitest/snapshot@3.1.3': dependencies: - '@vitest/pretty-format': 2.1.9 + '@vitest/pretty-format': 3.1.3 magic-string: 0.30.17 - pathe: 1.1.2 + pathe: 2.0.3 - '@vitest/spy@2.1.9': + '@vitest/spy@3.1.3': dependencies: tinyspy: 3.0.2 - '@vitest/utils@2.1.9': + '@vitest/utils@3.1.3': dependencies: - '@vitest/pretty-format': 2.1.9 + '@vitest/pretty-format': 3.1.3 loupe: 3.1.3 - tinyrainbow: 1.2.0 + tinyrainbow: 2.0.0 '@volar/language-core@2.4.13': dependencies: @@ -6648,7 +6602,7 @@ snapshots: autoprefixer@10.4.21(postcss@8.5.3): dependencies: browserslist: 4.24.5 - caniuse-lite: 1.0.30001716 + caniuse-lite: 1.0.30001717 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.1.1 @@ -6706,7 +6660,7 @@ snapshots: browserslist@4.24.5: dependencies: - caniuse-lite: 1.0.30001716 + caniuse-lite: 1.0.30001717 electron-to-chromium: 1.5.149 node-releases: 2.0.19 update-browserslist-db: 1.1.3(browserslist@4.24.5) @@ -6738,11 +6692,11 @@ snapshots: caniuse-api@3.0.0: dependencies: browserslist: 4.24.5 - caniuse-lite: 1.0.30001716 + caniuse-lite: 1.0.30001717 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 - caniuse-lite@1.0.30001716: {} + caniuse-lite@1.0.30001717: {} ccount@2.0.1: {} @@ -6911,12 +6865,6 @@ snapshots: dependencies: is-what: 4.1.16 - cross-spawn@7.0.3: - dependencies: - path-key: 3.1.1 - shebang-command: 2.0.0 - which: 2.0.2 - cross-spawn@7.0.6: dependencies: path-key: 3.1.1 @@ -7042,20 +6990,6 @@ snapshots: degit@2.8.4: {} - del-cli@6.0.0: - dependencies: - del: 8.0.0 - meow: 13.2.0 - - del@8.0.0: - dependencies: - globby: 14.1.0 - is-glob: 4.0.3 - is-path-cwd: 3.0.0 - is-path-inside: 4.0.0 - p-map: 7.0.3 - slash: 5.1.0 - delayed-stream@1.0.0: {} depd@2.0.0: {} @@ -7190,33 +7124,33 @@ snapshots: '@esbuild/win32-ia32': 0.21.5 '@esbuild/win32-x64': 0.21.5 - esbuild@0.25.3: + esbuild@0.25.4: optionalDependencies: - '@esbuild/aix-ppc64': 0.25.3 - '@esbuild/android-arm': 0.25.3 - '@esbuild/android-arm64': 0.25.3 - '@esbuild/android-x64': 0.25.3 - '@esbuild/darwin-arm64': 0.25.3 - '@esbuild/darwin-x64': 0.25.3 - '@esbuild/freebsd-arm64': 0.25.3 - '@esbuild/freebsd-x64': 0.25.3 - '@esbuild/linux-arm': 0.25.3 - '@esbuild/linux-arm64': 0.25.3 - '@esbuild/linux-ia32': 0.25.3 - '@esbuild/linux-loong64': 0.25.3 - '@esbuild/linux-mips64el': 0.25.3 - '@esbuild/linux-ppc64': 0.25.3 - '@esbuild/linux-riscv64': 0.25.3 - '@esbuild/linux-s390x': 0.25.3 - '@esbuild/linux-x64': 0.25.3 - '@esbuild/netbsd-arm64': 0.25.3 - '@esbuild/netbsd-x64': 0.25.3 - '@esbuild/openbsd-arm64': 0.25.3 - '@esbuild/openbsd-x64': 0.25.3 - '@esbuild/sunos-x64': 0.25.3 - '@esbuild/win32-arm64': 0.25.3 - '@esbuild/win32-ia32': 0.25.3 - '@esbuild/win32-x64': 0.25.3 + '@esbuild/aix-ppc64': 0.25.4 + '@esbuild/android-arm': 0.25.4 + '@esbuild/android-arm64': 0.25.4 + '@esbuild/android-x64': 0.25.4 + '@esbuild/darwin-arm64': 0.25.4 + '@esbuild/darwin-x64': 0.25.4 + '@esbuild/freebsd-arm64': 0.25.4 + '@esbuild/freebsd-x64': 0.25.4 + '@esbuild/linux-arm': 0.25.4 + '@esbuild/linux-arm64': 0.25.4 + '@esbuild/linux-ia32': 0.25.4 + '@esbuild/linux-loong64': 0.25.4 + '@esbuild/linux-mips64el': 0.25.4 + '@esbuild/linux-ppc64': 0.25.4 + '@esbuild/linux-riscv64': 0.25.4 + '@esbuild/linux-s390x': 0.25.4 + '@esbuild/linux-x64': 0.25.4 + '@esbuild/netbsd-arm64': 0.25.4 + '@esbuild/netbsd-x64': 0.25.4 + '@esbuild/openbsd-arm64': 0.25.4 + '@esbuild/openbsd-x64': 0.25.4 + '@esbuild/sunos-x64': 0.25.4 + '@esbuild/win32-arm64': 0.25.4 + '@esbuild/win32-ia32': 0.25.4 + '@esbuild/win32-x64': 0.25.4 escalade@3.2.0: {} @@ -7259,7 +7193,7 @@ snapshots: execa@8.0.1: dependencies: - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 get-stream: 8.0.1 human-signals: 5.0.0 is-stream: 3.0.0 @@ -7269,7 +7203,7 @@ snapshots: signal-exit: 4.1.0 strip-final-newline: 3.0.0 - execa@9.5.2: + execa@9.5.3: dependencies: '@sindresorhus/merge-streams': 4.0.0 cross-spawn: 7.0.6 @@ -7516,15 +7450,6 @@ snapshots: merge2: 1.4.1 slash: 3.0.0 - globby@14.1.0: - dependencies: - '@sindresorhus/merge-streams': 2.3.0 - fast-glob: 3.3.3 - ignore: 7.0.4 - path-type: 6.0.0 - slash: 5.1.0 - unicorn-magic: 0.3.0 - gopd@1.2.0: {} graceful-fs@4.2.11: {} @@ -7637,8 +7562,6 @@ snapshots: ignore@5.3.2: {} - ignore@7.0.4: {} - import-meta-resolve@4.1.0: {} index-to-position@1.1.0: {} @@ -7683,10 +7606,6 @@ snapshots: is-number@7.0.0: {} - is-path-cwd@3.0.0: {} - - is-path-inside@4.0.0: {} - is-plain-obj@4.1.0: {} is-potential-custom-element-name@1.0.1: @@ -7818,7 +7737,7 @@ snapshots: lilconfig@3.1.3: {} - lint-staged@15.5.1: + lint-staged@15.5.2: dependencies: chalk: 5.4.1 commander: 13.1.0 @@ -7876,6 +7795,8 @@ snapshots: lru-cache@10.4.3: {} + lru-cache@11.1.0: {} + lru-cache@5.1.1: dependencies: yallist: 3.1.1 @@ -8035,8 +7956,6 @@ snapshots: media-typer@1.1.0: {} - meow@13.2.0: {} - merge-descriptors@2.0.0: {} merge-stream@2.0.0: {} @@ -8233,7 +8152,7 @@ snapshots: citty: 0.1.6 cssnano: 7.0.6(postcss@8.5.3) defu: 6.1.4 - esbuild: 0.25.3 + esbuild: 0.25.4 jiti: 1.21.7 mlly: 1.7.4 pathe: 2.0.3 @@ -8260,12 +8179,12 @@ snapshots: ms@2.1.3: {} - msw@2.7.5(@types/node@22.15.3)(typescript@5.8.3): + msw@2.8.2(@types/node@22.15.17)(typescript@5.8.3): dependencies: '@bundled-es-modules/cookie': 2.0.1 '@bundled-es-modules/statuses': 1.0.1 '@bundled-es-modules/tough-cookie': 0.1.6 - '@inquirer/confirm': 5.1.9(@types/node@22.15.3) + '@inquirer/confirm': 5.1.9(@types/node@22.15.17) '@mswjs/interceptors': 0.37.6 '@open-draft/deferred-promise': 2.2.0 '@open-draft/until': 2.1.0 @@ -8278,7 +8197,7 @@ snapshots: path-to-regexp: 6.3.0 picocolors: 1.1.1 strict-event-emitter: 0.5.1 - type-fest: 4.40.1 + type-fest: 4.41.0 yargs: 17.7.2 optionalDependencies: typescript: 5.8.3 @@ -8307,26 +8226,26 @@ snapshots: neo-async@2.6.2: {} - next@15.3.1(@playwright/test@1.52.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + next@15.3.2(@playwright/test@1.52.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@next/env': 15.3.1 + '@next/env': 15.3.2 '@swc/counter': 0.1.3 '@swc/helpers': 0.5.15 busboy: 1.6.0 - caniuse-lite: 1.0.30001716 + caniuse-lite: 1.0.30001717 postcss: 8.4.31 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) styled-jsx: 5.1.6(react@18.3.1) optionalDependencies: - '@next/swc-darwin-arm64': 15.3.1 - '@next/swc-darwin-x64': 15.3.1 - '@next/swc-linux-arm64-gnu': 15.3.1 - '@next/swc-linux-arm64-musl': 15.3.1 - '@next/swc-linux-x64-gnu': 15.3.1 - '@next/swc-linux-x64-musl': 15.3.1 - '@next/swc-win32-arm64-msvc': 15.3.1 - '@next/swc-win32-x64-msvc': 15.3.1 + '@next/swc-darwin-arm64': 15.3.2 + '@next/swc-darwin-x64': 15.3.2 + '@next/swc-linux-arm64-gnu': 15.3.2 + '@next/swc-linux-arm64-musl': 15.3.2 + '@next/swc-linux-x64-gnu': 15.3.2 + '@next/swc-linux-x64-musl': 15.3.2 + '@next/swc-win32-arm64-msvc': 15.3.2 + '@next/swc-win32-x64-msvc': 15.3.2 '@playwright/test': 1.52.0 sharp: 0.34.1 transitivePeerDependencies: @@ -8434,8 +8353,6 @@ snapshots: p-map@2.1.0: {} - p-map@7.0.3: {} - p-try@2.2.0: {} package-json-from-dist@1.0.1: {} @@ -8448,7 +8365,7 @@ snapshots: dependencies: '@babel/code-frame': 7.27.1 index-to-position: 1.1.0 - type-fest: 4.40.1 + type-fest: 4.41.0 parse-ms@4.0.0: {} @@ -8490,10 +8407,6 @@ snapshots: path-type@4.0.0: {} - path-type@6.0.0: {} - - pathe@1.1.2: {} - pathe@2.0.3: {} pathval@2.0.0: {} @@ -8987,14 +8900,14 @@ snapshots: '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 - shiki@3.3.0: + shiki@3.4.0: dependencies: - '@shikijs/core': 3.3.0 - '@shikijs/engine-javascript': 3.3.0 - '@shikijs/engine-oniguruma': 3.3.0 - '@shikijs/langs': 3.3.0 - '@shikijs/themes': 3.3.0 - '@shikijs/types': 3.3.0 + '@shikijs/core': 3.4.0 + '@shikijs/engine-javascript': 3.4.0 + '@shikijs/engine-oniguruma': 3.4.0 + '@shikijs/langs': 3.4.0 + '@shikijs/themes': 3.4.0 + '@shikijs/types': 3.4.0 '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 @@ -9057,8 +8970,6 @@ snapshots: slash@3.0.0: {} - slash@5.1.0: {} - slice-ansi@5.0.0: dependencies: ansi-styles: 6.2.1 @@ -9155,7 +9066,7 @@ snapshots: postcss: 8.5.3 postcss-selector-parser: 6.1.2 - superagent@10.2.0: + superagent@10.2.1: dependencies: component-emitter: 1.3.1 cookiejar: 2.1.4 @@ -9284,7 +9195,7 @@ snapshots: tinypool@1.0.2: {} - tinyrainbow@1.2.0: {} + tinyrainbow@2.0.0: {} tinyspy@3.0.2: {} @@ -9318,32 +9229,32 @@ snapshots: tslib@2.8.1: {} - turbo-darwin-64@2.5.2: + turbo-darwin-64@2.5.3: optional: true - turbo-darwin-arm64@2.5.2: + turbo-darwin-arm64@2.5.3: optional: true - turbo-linux-64@2.5.2: + turbo-linux-64@2.5.3: optional: true - turbo-linux-arm64@2.5.2: + turbo-linux-arm64@2.5.3: optional: true - turbo-windows-64@2.5.2: + turbo-windows-64@2.5.3: optional: true - turbo-windows-arm64@2.5.2: + turbo-windows-arm64@2.5.3: optional: true - turbo@2.5.2: + turbo@2.5.3: optionalDependencies: - turbo-darwin-64: 2.5.2 - turbo-darwin-arm64: 2.5.2 - turbo-linux-64: 2.5.2 - turbo-linux-arm64: 2.5.2 - turbo-windows-64: 2.5.2 - turbo-windows-arm64: 2.5.2 + turbo-darwin-64: 2.5.3 + turbo-darwin-arm64: 2.5.3 + turbo-linux-64: 2.5.3 + turbo-linux-arm64: 2.5.3 + turbo-windows-64: 2.5.3 + turbo-windows-arm64: 2.5.3 twoslash-protocol@0.3.1: {} @@ -9366,7 +9277,7 @@ snapshots: type-fest@0.21.3: {} - type-fest@4.40.1: {} + type-fest@4.41.0: {} type-is@2.0.1: dependencies: @@ -9394,7 +9305,7 @@ snapshots: citty: 0.1.6 consola: 3.4.2 defu: 6.1.4 - esbuild: 0.25.3 + esbuild: 0.25.4 fix-dts-default-cjs-exports: 1.0.1 hookable: 5.5.3 jiti: 2.4.2 @@ -9419,7 +9330,7 @@ snapshots: undici-types@6.21.0: {} - undici@7.8.0: {} + undici@7.9.0: {} unicode-emoji-modifier-base@1.0.0: {} @@ -9456,10 +9367,10 @@ snapshots: unpipe@1.0.0: {} - unplugin-swc@1.5.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(rollup@4.40.1): + unplugin-swc@1.5.2(@swc/core@1.11.24)(rollup@4.40.1): dependencies: '@rollup/pluginutils': 5.1.4(rollup@4.40.1) - '@swc/core': 1.10.4(@swc/helpers@0.5.15) + '@swc/core': 1.11.24 load-tsconfig: 0.2.5 unplugin: 1.16.1 transitivePeerDependencies: @@ -9511,15 +9422,16 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.2 - vite-node@2.1.9(@types/node@22.15.3)(supports-color@10.0.0): + vite-node@3.1.3(@types/node@22.15.17)(jiti@2.4.2)(supports-color@10.0.0)(yaml@2.7.1): dependencies: cac: 6.7.14 debug: 4.4.0(supports-color@10.0.0) es-module-lexer: 1.7.0 - pathe: 1.1.2 - vite: 5.4.19(@types/node@22.15.3) + pathe: 2.0.3 + vite: 6.3.5(@types/node@22.15.17)(jiti@2.4.2)(yaml@2.7.1) transitivePeerDependencies: - '@types/node' + - jiti - less - lightningcss - sass @@ -9528,44 +9440,46 @@ snapshots: - sugarss - supports-color - terser + - tsx + - yaml - vite@5.4.19(@types/node@22.15.3): + vite@5.4.19(@types/node@22.15.17): dependencies: esbuild: 0.21.5 postcss: 8.5.3 rollup: 4.40.1 optionalDependencies: - '@types/node': 22.15.3 + '@types/node': 22.15.17 fsevents: 2.3.3 - vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(yaml@2.7.1): + vite@6.3.5(@types/node@22.15.17)(jiti@2.4.2)(yaml@2.7.1): dependencies: - esbuild: 0.25.3 + esbuild: 0.25.4 fdir: 6.4.4(picomatch@4.0.2) picomatch: 4.0.2 postcss: 8.5.3 rollup: 4.40.1 tinyglobby: 0.2.13 optionalDependencies: - '@types/node': 22.15.3 + '@types/node': 22.15.17 fsevents: 2.3.3 jiti: 2.4.2 yaml: 2.7.1 - vitefu@1.0.6(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(yaml@2.7.1)): + vitefu@1.0.6(vite@6.3.5(@types/node@22.15.17)(jiti@2.4.2)(yaml@2.7.1)): optionalDependencies: - vite: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(yaml@2.7.1) + vite: 6.3.5(@types/node@22.15.17)(jiti@2.4.2)(yaml@2.7.1) - vitepress@1.6.3(@algolia/client-search@5.24.0)(@types/node@22.15.3)(@types/react@18.3.20)(axios@1.9.0)(change-case@5.4.4)(postcss@8.5.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.13.0)(typescript@5.8.3): + vitepress@1.6.3(@algolia/client-search@5.24.0)(@types/node@22.15.17)(@types/react@18.3.21)(axios@1.9.0)(change-case@5.4.4)(postcss@8.5.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.13.0)(typescript@5.8.3): dependencies: '@docsearch/css': 3.8.2 - '@docsearch/js': 3.8.2(@algolia/client-search@5.24.0)(@types/react@18.3.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.13.0) + '@docsearch/js': 3.8.2(@algolia/client-search@5.24.0)(@types/react@18.3.21)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.13.0) '@iconify-json/simple-icons': 1.2.33 '@shikijs/core': 2.5.0 '@shikijs/transformers': 2.5.0 '@shikijs/types': 2.5.0 '@types/markdown-it': 14.1.2 - '@vitejs/plugin-vue': 5.2.3(vite@5.4.19(@types/node@22.15.3))(vue@3.5.13(typescript@5.8.3)) + '@vitejs/plugin-vue': 5.2.3(vite@5.4.19(@types/node@22.15.17))(vue@3.5.13(typescript@5.8.3)) '@vue/devtools-api': 7.7.6 '@vue/shared': 3.5.13 '@vueuse/core': 12.8.2(typescript@5.8.3) @@ -9574,7 +9488,7 @@ snapshots: mark.js: 8.11.1 minisearch: 7.1.2 shiki: 2.5.0 - vite: 5.4.19(@types/node@22.15.3) + vite: 5.4.19(@types/node@22.15.17) vue: 3.5.13(typescript@5.8.3) optionalDependencies: postcss: 8.5.3 @@ -9605,32 +9519,35 @@ snapshots: - typescript - universal-cookie - vitest@2.1.9(@types/node@22.15.3)(jsdom@20.0.3)(msw@2.7.5(@types/node@22.15.3)(typescript@5.8.3)): + vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.17)(jiti@2.4.2)(jsdom@20.0.3)(msw@2.8.2(@types/node@22.15.17)(typescript@5.8.3))(yaml@2.7.1): dependencies: - '@vitest/expect': 2.1.9 - '@vitest/mocker': 2.1.9(msw@2.7.5(@types/node@22.15.3)(typescript@5.8.3))(vite@5.4.19(@types/node@22.15.3)) - '@vitest/pretty-format': 2.1.9 - '@vitest/runner': 2.1.9 - '@vitest/snapshot': 2.1.9 - '@vitest/spy': 2.1.9 - '@vitest/utils': 2.1.9 + '@vitest/expect': 3.1.3 + '@vitest/mocker': 3.1.3(msw@2.8.2(@types/node@22.15.17)(typescript@5.8.3))(vite@6.3.5(@types/node@22.15.17)(jiti@2.4.2)(yaml@2.7.1)) + '@vitest/pretty-format': 3.1.3 + '@vitest/runner': 3.1.3 + '@vitest/snapshot': 3.1.3 + '@vitest/spy': 3.1.3 + '@vitest/utils': 3.1.3 chai: 5.2.0 debug: 4.4.0(supports-color@10.0.0) expect-type: 1.2.1 magic-string: 0.30.17 - pathe: 1.1.2 + pathe: 2.0.3 std-env: 3.9.0 tinybench: 2.9.0 tinyexec: 0.3.2 + tinyglobby: 0.2.13 tinypool: 1.0.2 - tinyrainbow: 1.2.0 - vite: 5.4.19(@types/node@22.15.3) - vite-node: 2.1.9(@types/node@22.15.3)(supports-color@10.0.0) + tinyrainbow: 2.0.0 + vite: 6.3.5(@types/node@22.15.17)(jiti@2.4.2)(yaml@2.7.1) + vite-node: 3.1.3(@types/node@22.15.17)(jiti@2.4.2)(supports-color@10.0.0)(yaml@2.7.1) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 22.15.3 + '@types/debug': 4.1.12 + '@types/node': 22.15.17 jsdom: 20.0.3 transitivePeerDependencies: + - jiti - less - lightningcss - msw @@ -9640,6 +9557,8 @@ snapshots: - sugarss - supports-color - terser + - tsx + - yaml vscode-uri@3.1.0: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 560dd7bc9..d60a57886 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,3 +1,11 @@ packages: - docs - packages/** +ignoredBuiltDependencies: + - '@swc/core' + - esbuild + - msw + - sharp + - svelte-preprocess +onlyBuiltDependencies: + - '@biomejs/biome' diff --git a/tsconfig.json b/tsconfig.json index 3eb9aafc3..405922ab3 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,6 +1,7 @@ { "compilerOptions": { "declaration": true, + "erasableSyntaxOnly": true, "esModuleInterop": true, "forceConsistentCasingInFileNames": true, "lib": ["ESNext"], @@ -10,6 +11,7 @@ "sourceMap": true, "strict": true, "target": "ESNext", - "useDefineForClassFields": true + "useDefineForClassFields": true, + "verbatimModuleSyntax": true } }