From 50ba7f4464a237dd336f9ce39549d77b39fa3f78 Mon Sep 17 00:00:00 2001 From: unnoq Date: Sat, 5 Jul 2025 10:18:21 +0700 Subject: [PATCH 01/20] init --- packages/json-schema/.gitignore | 26 ++++++++++ packages/json-schema/README.md | 76 ++++++++++++++++++++++++++++++ packages/json-schema/package.json | 39 +++++++++++++++ packages/json-schema/src/index.ts | 0 packages/json-schema/tsconfig.json | 11 +++++ pnpm-lock.yaml | 6 +++ 6 files changed, 158 insertions(+) create mode 100644 packages/json-schema/.gitignore create mode 100644 packages/json-schema/README.md create mode 100644 packages/json-schema/package.json create mode 100644 packages/json-schema/src/index.ts create mode 100644 packages/json-schema/tsconfig.json diff --git a/packages/json-schema/.gitignore b/packages/json-schema/.gitignore new file mode 100644 index 000000000..f3620b55e --- /dev/null +++ b/packages/json-schema/.gitignore @@ -0,0 +1,26 @@ +# Hidden folders and files +.* +!.gitignore +!.*.example + +# Common generated folders +logs/ +node_modules/ +out/ +dist/ +dist-ssr/ +build/ +coverage/ +temp/ + +# Common generated files +*.log +*.log.* +*.tsbuildinfo +*.vitest-temp.json +vite.config.ts.timestamp-* +vitest.config.ts.timestamp-* + +# Common manual ignore files +*.local +*.pem \ No newline at end of file diff --git a/packages/json-schema/README.md b/packages/json-schema/README.md new file mode 100644 index 000000000..594cd64bb --- /dev/null +++ b/packages/json-schema/README.md @@ -0,0 +1,76 @@ +
+ oRPC logo +
+ +

+ +
+ + codecov + + + weekly downloads + + + MIT License + + + Discord + +
+ +

Typesafe APIs Made Simple 🪄

+ +**oRPC is a powerful combination of RPC and OpenAPI**, makes it easy to build APIs that are end-to-end type-safe and adhere to OpenAPI standards + +--- + +## Highlights + +- **🔗 End-to-End Type Safety**: Ensure type-safe inputs, outputs, and errors from client to server. +- **📘 First-Class OpenAPI**: Built-in support that fully adheres to the OpenAPI standard. +- **📝 Contract-First Development**: Optionally define your API contract before implementation. +- **⚙️ Framework Integrations**: Seamlessly integrate with TanStack Query (React, Vue, Solid, Svelte, Angular), Pinia Colada, and more. +- **🚀 Server Actions**: Fully compatible with React Server Actions on Next.js, TanStack Start, and other platforms. +- **🔠 Standard Schema Support**: Works out of the box with Zod, Valibot, ArkType, and other schema validators. +- **🗃️ Native Types**: Supports native types like Date, File, Blob, BigInt, URL, and more. +- **⏱️ Lazy Router**: Enhance cold start times with our lazy routing feature. +- **📡 SSE & Streaming**: Enjoy full type-safe support for SSE and streaming. +- **🌍 Multi-Runtime Support**: Fast and lightweight on Cloudflare, Deno, Bun, Node.js, and beyond. +- **🔌 Extendability**: Easily extend functionality with plugins, middleware, and interceptors. +- **🛡️ Reliability**: Well-tested, TypeScript-based, production-ready, and MIT licensed. + +## Documentation + +You can find the full documentation [here](https://orpc.unnoq.com). + +## Packages + +- [@orpc/contract](https://www.npmjs.com/package/@orpc/contract): Build your API contract. +- [@orpc/server](https://www.npmjs.com/package/@orpc/server): Build your API or implement API contract. +- [@orpc/client](https://www.npmjs.com/package/@orpc/client): Consume your API on the client with type-safety. +- [@orpc/openapi](https://www.npmjs.com/package/@orpc/openapi): Generate OpenAPI specs and handle OpenAPI requests. +- [@orpc/nest](https://www.npmjs.com/package/@orpc/nest): Deeply integrate oRPC with [NestJS](https://nestjs.com/). +- [@orpc/react](https://www.npmjs.com/package/@orpc/react): Utilities for integrating oRPC with React and React Server Actions. +- [@orpc/tanstack-query](https://www.npmjs.com/package/@orpc/tanstack-query): [TanStack Query](https://tanstack.com/query/latest) integration. +- [@orpc/vue-colada](https://www.npmjs.com/package/@orpc/vue-colada): Integration with [Pinia Colada](https://pinia-colada.esm.dev/). +- [@orpc/hey-api](https://www.npmjs.com/package/@orpc/hey-api): [Hey API](https://heyapi.dev/) integration. +- [@orpc/zod](https://www.npmjs.com/package/@orpc/zod): More schemas that [Zod](https://zod.dev/) doesn't support yet. +- [@orpc/valibot](https://www.npmjs.com/package/@orpc/valibot): OpenAPI spec generation from [Valibot](https://valibot.dev/). +- [@orpc/arktype](https://www.npmjs.com/package/@orpc/arktype): OpenAPI spec generation from [ArkType](https://arktype.io/). + +## `@orpc/json-schema` + +Json Schema related utilities for oRPC. + +## Sponsors + +

+ + + +

+ +## License + +Distributed under the MIT License. See [LICENSE](https://github.com/unnoq/orpc/blob/main/LICENSE) for more information. diff --git a/packages/json-schema/package.json b/packages/json-schema/package.json new file mode 100644 index 000000000..0c3d277bd --- /dev/null +++ b/packages/json-schema/package.json @@ -0,0 +1,39 @@ +{ + "name": "@orpc/json-schema", + "type": "module", + "version": "0.0.0", + "license": "MIT", + "homepage": "https://orpc.unnoq.com", + "repository": { + "type": "git", + "url": "git+https://github.com/unnoq/orpc.git", + "directory": "packages/json-schema" + }, + "keywords": [ + "unnoq", + "orpc" + ], + "publishConfig": { + "exports": { + ".": { + "types": "./dist/index.d.mts", + "import": "./dist/index.mjs", + "default": "./dist/index.mjs" + } + } + }, + "exports": { + ".": "./src/index.ts" + }, + "files": [ + "dist" + ], + "scripts": { + "build": "unbuild", + "build:watch": "pnpm run build --watch", + "type:check": "tsc -b" + }, + "dependencies": { + "json-schema-typed": "^8.0.1" + } +} diff --git a/packages/json-schema/src/index.ts b/packages/json-schema/src/index.ts new file mode 100644 index 000000000..e69de29bb diff --git a/packages/json-schema/tsconfig.json b/packages/json-schema/tsconfig.json new file mode 100644 index 000000000..df850ef68 --- /dev/null +++ b/packages/json-schema/tsconfig.json @@ -0,0 +1,11 @@ +{ + "extends": "../../tsconfig.lib.json", + "include": ["src"], + "exclude": [ + "**/*.test.*", + "**/*.test-d.ts", + "**/__tests__/**", + "**/__mocks__/**", + "**/__snapshots__/**" + ] +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b8962d52f..541171f30 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -283,6 +283,12 @@ importers: specifier: ^0.77.0 version: 0.77.0(magicast@0.3.5)(typescript@5.8.3) + packages/json-schema: + dependencies: + json-schema-typed: + specifier: ^8.0.1 + version: 8.0.1 + packages/nest: dependencies: '@orpc/client': From 6c475c96e8633dee0e099b6bb745cb9810684045 Mon Sep 17 00:00:00 2001 From: unnoq Date: Sat, 5 Jul 2025 16:18:33 +0700 Subject: [PATCH 02/20] wip --- packages/json-schema/package.json | 1 + packages/json-schema/src/coercer.ts | 258 ++++++++++++++++++++++++++++ packages/json-schema/src/index.ts | 2 + packages/json-schema/src/types.ts | 9 + packages/json-schema/tsconfig.json | 3 + pnpm-lock.yaml | 3 + 6 files changed, 276 insertions(+) create mode 100644 packages/json-schema/src/coercer.ts create mode 100644 packages/json-schema/src/types.ts diff --git a/packages/json-schema/package.json b/packages/json-schema/package.json index 0c3d277bd..c919e557d 100644 --- a/packages/json-schema/package.json +++ b/packages/json-schema/package.json @@ -34,6 +34,7 @@ "type:check": "tsc -b" }, "dependencies": { + "@orpc/shared": "workspace:*", "json-schema-typed": "^8.0.1" } } diff --git a/packages/json-schema/src/coercer.ts b/packages/json-schema/src/coercer.ts new file mode 100644 index 000000000..93fa8296f --- /dev/null +++ b/packages/json-schema/src/coercer.ts @@ -0,0 +1,258 @@ +import type { JsonSchema } from './types' +import { isObject, toArray } from '@orpc/shared' + +export class experimental_JsonSchemaCoercer { + coerce(schema: JsonSchema, value: unknown): unknown { + const [, coerced] = this.#coerce(schema, value) + return coerced + } + + #coerce(schema: JsonSchema, value: unknown): [satisfied: boolean, coerced: unknown] { + if (typeof schema === 'boolean') { + return [schema, value] + } + + if (Array.isArray(schema.type)) { + return this.#coerce({ + anyOf: schema.type.map(type => ({ ...schema, type })), + }, value) + } + + let coerced = value + let satisfied = true + + const enumValues = schema.enum ?? (schema.const !== undefined ? [schema.const] : undefined) + + if (enumValues !== undefined && !enumValues.includes(coerced)) { + if (typeof coerced === 'string') { + const numberValue = this.#stringToNumber(coerced) + + if (enumValues.includes(numberValue)) { + coerced = numberValue + } + else { + const booleanValue = this.#stringToBoolean(coerced) + + if (enumValues.includes(booleanValue)) { + coerced = booleanValue + } + else { + satisfied = false + } + } + } + else if (typeof coerced === 'undefined' && enumValues.includes(null)) { + coerced = null + } + else { + satisfied = false + } + } + + if (typeof schema.type === 'string') { + switch (schema.type) { + case 'number': + case 'integer': { + if (typeof value === 'string') { + coerced = this.#stringToNumber(value) + } + + if (typeof coerced !== 'number') { + satisfied = false + } + + break + } + case 'boolean': { + if (typeof coerced === 'string') { + coerced = this.#stringToBoolean(coerced) + } + + if (typeof coerced !== 'boolean') { + satisfied = false + } + + break + } + case 'null': { + if (typeof coerced === 'undefined') { + coerced = null + } + + if (coerced !== null) { + satisfied = false + } + + break + } + case 'array': { + if (typeof coerced === 'undefined') { + coerced = [] + } + + if (Array.isArray(coerced)) { + const coercedItems: unknown[] = [] + let shouldUseCoercedItems = false + + const prefixItemSchemas: readonly JsonSchema[] = 'prefixItems' in schema + ? toArray(schema.prefixItems) + : Array.isArray(schema.items) + ? schema.items + : [] + + const itemSchema: JsonSchema | undefined = Array.isArray(schema.items) + ? schema.additionalItems + : schema.items as JsonSchema | undefined + + const arrLength = Math.max( + coerced.length, + prefixItemSchemas.length, + ) + + for (let i = 0; i < arrLength; i++) { + const value = coerced[i] + const subSchema = prefixItemSchemas[i] ?? itemSchema + + if (subSchema === undefined) { + coercedItems.push(value) + } + else { + const [subSatisfied, subCoerced] = this.#coerce(subSchema, value) + coercedItems.push(subCoerced) + + if (!subSatisfied) { + satisfied = subSatisfied + } + + if (subCoerced !== value) { + shouldUseCoercedItems = true + } + } + } + + if (shouldUseCoercedItems) { + coerced = coercedItems + } + } + else { + satisfied = false + } + break + } + case 'object': { + if (typeof coerced === 'undefined') { + coerced = {} + } + + if (Array.isArray(coerced)) { + coerced = { ...coerced } + } + + if (isObject(coerced)) { + const keys = new Set([ + ...Object.keys(coerced), + ...Object.keys(schema.properties ?? {}), + ]) + + let shouldUseCoercedItems = false + const coercedItems: Record = {} + + for (const key of keys) { + const value = coerced[key] + const subSchema = schema.properties?.[key] ?? schema.additionalProperties + + if (subSchema === undefined || (value === undefined && !schema.required?.includes(key))) { + coercedItems[key] = value + } + else { + const [subSatisfied, subCoerced] = this.#coerce(subSchema, value) + coercedItems[key] = subCoerced + + if (!subSatisfied) { + satisfied = subSatisfied + } + + if (subCoerced !== value) { + shouldUseCoercedItems = true + } + } + } + + if (shouldUseCoercedItems) { + coerced = coercedItems + } + } + else { + satisfied = false + } + + break + } + } + } + + if (schema.not !== undefined) { + const [notSatisfied] = this.#coerce(schema.not, coerced) + + if (notSatisfied) { + satisfied = false + } + } + + if (schema.allOf) { + for (const subSchema of schema.allOf) { + const [subSatisfied, subCoerced] = this.#coerce(subSchema, coerced) + + coerced = subCoerced + + if (!subSatisfied) { + satisfied = false + } + } + } + + for (const key of ['anyOf', 'oneOf'] as const) { + if (schema[key]) { + let bestOptions: { coerced: unknown, satisfied: boolean } | undefined + + for (const subSchema of schema[key]) { + const [subSatisfied, subCoerced] = this.#coerce(subSchema, coerced) + + if (subSatisfied) { + if (!bestOptions) { + bestOptions = { coerced: subCoerced, satisfied: subSatisfied } + } + + if (subCoerced === coerced) { + break + } + } + } + + coerced = bestOptions ? bestOptions.coerced : coerced + satisfied = bestOptions ? bestOptions.satisfied : false + } + } + + return [satisfied, coerced] + } + + #stringToNumber(value: string): number | string { + const num = Number(value) + return Number.isNaN(num) || num.toString() !== value ? value : num + } + + #stringToBoolean(value: string): boolean | string { + const lower = value.toLowerCase() + + if (lower === 'false' || lower === 'off' || lower === 'f') { + return false + } + + if (lower === 'true' || lower === 'on' || lower === 't') { + return true + } + + return value + } +} diff --git a/packages/json-schema/src/index.ts b/packages/json-schema/src/index.ts index e69de29bb..9d8a4c7b0 100644 --- a/packages/json-schema/src/index.ts +++ b/packages/json-schema/src/index.ts @@ -0,0 +1,2 @@ +export * from './coercer' +export * from './types' diff --git a/packages/json-schema/src/types.ts b/packages/json-schema/src/types.ts new file mode 100644 index 000000000..4c30b68d8 --- /dev/null +++ b/packages/json-schema/src/types.ts @@ -0,0 +1,9 @@ +/* eslint-disable no-restricted-imports */ +import type * as Draft07 from 'json-schema-typed/draft-07' +import type * as Draft2019 from 'json-schema-typed/draft-2019-09' +import type * as Draft2020 from 'json-schema-typed/draft-2020-12' + +export type JsonSchema + = | Draft2020.JSONSchema + | Draft2019.JSONSchema + | Draft07.JSONSchema diff --git a/packages/json-schema/tsconfig.json b/packages/json-schema/tsconfig.json index df850ef68..b08ef0a53 100644 --- a/packages/json-schema/tsconfig.json +++ b/packages/json-schema/tsconfig.json @@ -1,5 +1,8 @@ { "extends": "../../tsconfig.lib.json", + "references": [ + { "path": "../shared" } + ], "include": ["src"], "exclude": [ "**/*.test.*", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 541171f30..6eed6d74f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -285,6 +285,9 @@ importers: packages/json-schema: dependencies: + '@orpc/shared': + specifier: workspace:* + version: link:../shared json-schema-typed: specifier: ^8.0.1 version: 8.0.1 From a02b7e23409aa50584ccdcc63e969d1cfc3d9224 Mon Sep 17 00:00:00 2001 From: unnoq Date: Wed, 9 Jul 2025 10:43:29 +0700 Subject: [PATCH 03/20] wip --- packages/json-schema/src/coercer.ts | 143 ++++++++++++++++++++++------ 1 file changed, 114 insertions(+), 29 deletions(-) diff --git a/packages/json-schema/src/coercer.ts b/packages/json-schema/src/coercer.ts index 93fa8296f..d121fed08 100644 --- a/packages/json-schema/src/coercer.ts +++ b/packages/json-schema/src/coercer.ts @@ -1,5 +1,5 @@ import type { JsonSchema } from './types' -import { isObject, toArray } from '@orpc/shared' +import { guard, isObject, toArray } from '@orpc/shared' export class experimental_JsonSchemaCoercer { coerce(schema: JsonSchema, value: unknown): unknown { @@ -91,9 +91,6 @@ export class experimental_JsonSchemaCoercer { } if (Array.isArray(coerced)) { - const coercedItems: unknown[] = [] - let shouldUseCoercedItems = false - const prefixItemSchemas: readonly JsonSchema[] = 'prefixItems' in schema ? toArray(schema.prefixItems) : Array.isArray(schema.items) @@ -104,31 +101,26 @@ export class experimental_JsonSchemaCoercer { ? schema.additionalItems : schema.items as JsonSchema | undefined - const arrLength = Math.max( - coerced.length, - prefixItemSchemas.length, - ) + let shouldUseCoercedItems = false - for (let i = 0; i < arrLength; i++) { - const value = coerced[i] + const coercedItems = coerced.map((item, i) => { const subSchema = prefixItemSchemas[i] ?? itemSchema - if (subSchema === undefined) { - coercedItems.push(value) + return item } - else { - const [subSatisfied, subCoerced] = this.#coerce(subSchema, value) - coercedItems.push(subCoerced) - if (!subSatisfied) { - satisfied = subSatisfied - } + const [subSatisfied, subCoerced] = this.#coerce(subSchema, item) - if (subCoerced !== value) { - shouldUseCoercedItems = true - } + if (!subSatisfied) { + satisfied = subSatisfied + } + + if (subCoerced !== item) { + shouldUseCoercedItems = true } - } + + return subCoerced + }) if (shouldUseCoercedItems) { coerced = coercedItems @@ -191,11 +183,74 @@ export class experimental_JsonSchemaCoercer { } } - if (schema.not !== undefined) { - const [notSatisfied] = this.#coerce(schema.not, coerced) + if ('x-native-type' in schema && typeof schema['x-native-type'] === 'string') { + switch (schema['x-native-type']) { + case 'date': { + if (typeof coerced === 'string') { + coerced = this.#stringToDate(coerced) + } - if (notSatisfied) { - satisfied = false + if (!(coerced instanceof Date)) { + satisfied = false + } + + break + } + case 'bigint': { + if (typeof coerced === 'string') { + coerced = this.#stringToBigInt(coerced) + } + + if (typeof coerced !== 'bigint') { + satisfied = false + } + + break + } + case 'regexp': { + if (typeof coerced === 'string') { + coerced = this.#stringToRegExp(coerced) + } + + if (!(coerced instanceof RegExp)) { + satisfied = false + } + + break + } + case 'url': { + if (typeof coerced === 'string') { + coerced = this.#stringToURL(coerced) + } + + if (!(coerced instanceof URL)) { + satisfied = false + } + + break + } + case 'set': { + if (Array.isArray(coerced)) { + coerced = this.#arrayToSet(coerced) + } + + if (!(coerced instanceof Set)) { + satisfied = false + } + + break + } + case 'map': { + if (Array.isArray(coerced)) { + coerced = this.#arrayToMap(coerced) + } + + if (!(coerced instanceof Map)) { + satisfied = false + } + + break + } } } @@ -219,7 +274,7 @@ export class experimental_JsonSchemaCoercer { const [subSatisfied, subCoerced] = this.#coerce(subSchema, coerced) if (subSatisfied) { - if (!bestOptions) { + if (!bestOptions || subCoerced === coerced) { bestOptions = { coerced: subCoerced, satisfied: subSatisfied } } @@ -238,8 +293,7 @@ export class experimental_JsonSchemaCoercer { } #stringToNumber(value: string): number | string { - const num = Number(value) - return Number.isNaN(num) || num.toString() !== value ? value : num + return guard(() => Number(value)) ?? value } #stringToBoolean(value: string): boolean | string { @@ -255,4 +309,35 @@ export class experimental_JsonSchemaCoercer { return value } + + #stringToBigInt(value: string): bigint | string { + return guard(() => BigInt(value)) ?? value + } + + #stringToDate(value: string): Date | string { + return guard(() => new Date(value)) ?? value + } + + #stringToRegExp(value: string): RegExp | string { + const match = value.match(/^\/(.*)\/([a-z]*)$/) + + if (match) { + const [, pattern, flags] = match + return guard(() => new RegExp(pattern!, flags)) ?? value + } + + return value + } + + #stringToURL(value: string): URL | string { + return guard(() => new URL(value)) ?? value + } + + #arrayToSet(value: unknown[]): Set | unknown[] { + return guard(() => new Set(value)) ?? value + } + + #arrayToMap(value: unknown[]): Map | unknown[] { + return guard(() => new Map(value as [unknown, unknown][])) ?? value + } } From 71c3a8b0b60860d6f2f959c93978a4383b7a40f9 Mon Sep 17 00:00:00 2001 From: unnoq Date: Wed, 9 Jul 2025 15:11:52 +0700 Subject: [PATCH 04/20] wip --- .../json-schema/src/coercer.native.test.ts | 150 ++++++++++++++++++ packages/json-schema/src/coercer.ts | 38 +---- packages/json-schema/tests/shared.ts | 17 ++ 3 files changed, 175 insertions(+), 30 deletions(-) create mode 100644 packages/json-schema/src/coercer.native.test.ts create mode 100644 packages/json-schema/tests/shared.ts diff --git a/packages/json-schema/src/coercer.native.test.ts b/packages/json-schema/src/coercer.native.test.ts new file mode 100644 index 000000000..7ea9edecd --- /dev/null +++ b/packages/json-schema/src/coercer.native.test.ts @@ -0,0 +1,150 @@ +import { testJsonSchemaCoercer } from '../tests/shared' + +testJsonSchemaCoercer([ + { + name: 'number - 12345', + schema: { type: 'number' }, + input: '12345', + expected: 12345, + }, + { + name: 'number - -12345', + schema: { type: 'number' }, + input: '-12345', + expected: -12345, + }, + { + name: 'number - 12345n', + schema: { type: 'number' }, + input: '12345n', + expected: Number.NaN, + }, + { + name: 'bigint - 12345', + schema: { 'type': 'string', 'x-native-type': 'bigint' }, + input: '12345', + expected: 12345n, + }, + { + name: 'bigint - -12345', + schema: { 'type': 'string', 'x-native-type': 'bigint' }, + input: '-12345', + expected: -12345n, + }, + { + name: 'bigint - 12345n', + schema: { 'type': 'string', 'x-native-type': 'bigint' }, + input: '12345n', + }, + { + name: 'bigint - true', + schema: { 'type': 'string', 'x-native-type': 'bigint' }, + input: true, + }, + { + name: 'boolean - t', + schema: { type: 'boolean' }, + input: 't', + expected: true, + }, + { + name: 'boolean - true', + schema: { type: 'boolean' }, + input: 'true', + expected: true, + }, + { + name: 'boolean - on', + schema: { type: 'boolean' }, + input: 'on', + expected: true, + }, + { + name: 'boolean - ON', + schema: { type: 'boolean' }, + input: 'ON', + expected: true, + }, + { + name: 'boolean - f', + schema: { type: 'boolean' }, + input: 'f', + expected: false, + }, + { + name: 'boolean - false', + schema: { type: 'boolean' }, + input: 'false', + expected: false, + }, + { + name: 'boolean - off', + schema: { type: 'boolean' }, + input: 'off', + expected: false, + }, + { + name: 'boolean - OFF', + schema: { type: 'boolean' }, + input: 'OFF', + expected: false, + }, + { + name: 'boolean - hi', + schema: { type: 'boolean' }, + input: 'hi', + expected: 'hi', + }, + { + name: 'date - iso string', + schema: { 'type': 'string', 'format': 'date-time', 'x-native-type': 'date' }, + input: new Date('2023-01-01').toISOString(), + expected: new Date('2023-01-01'), + }, + { + name: 'date - 2023-01-01', + schema: { 'type': 'string', 'format': 'date-time', 'x-native-type': 'date' }, + input: '2023-01-01', + expected: new Date('2023-01-01'), + }, + { + name: 'date - 2023-01-01I', + schema: { 'type': 'string', 'format': 'date-time', 'x-native-type': 'date' }, + input: '2023-01-01I', + expected: new Date('Invalid Date'), + }, + { + name: 'date - array', + schema: { 'type': 'string', 'format': 'date-time', 'x-native-type': 'date' }, + input: [], + expected: [], + }, + { + name: 'literal - 199', + schema: { enum: ['199', 199, 200, null] }, + input: '199', + }, + { + name: 'literal - 200', + schema: { enum: ['199', 199, 200, null] }, + input: '200', + expected: 200, + }, + { + name: 'literal - null', + schema: { enum: ['199', 199, 200, null] }, + input: null, + }, + { + name: 'const - 123', + schema: { const: 123 }, + input: '123', + expected: 123, + }, + { + name: 'const - 123', + schema: { const: 123 }, + input: '456', + expected: '456', + }, +]) diff --git a/packages/json-schema/src/coercer.ts b/packages/json-schema/src/coercer.ts index d121fed08..5da24ae0b 100644 --- a/packages/json-schema/src/coercer.ts +++ b/packages/json-schema/src/coercer.ts @@ -41,9 +41,6 @@ export class experimental_JsonSchemaCoercer { } } } - else if (typeof coerced === 'undefined' && enumValues.includes(null)) { - coerced = null - } else { satisfied = false } @@ -74,22 +71,7 @@ export class experimental_JsonSchemaCoercer { break } - case 'null': { - if (typeof coerced === 'undefined') { - coerced = null - } - - if (coerced !== null) { - satisfied = false - } - - break - } case 'array': { - if (typeof coerced === 'undefined') { - coerced = [] - } - if (Array.isArray(coerced)) { const prefixItemSchemas: readonly JsonSchema[] = 'prefixItems' in schema ? toArray(schema.prefixItems) @@ -132,26 +114,22 @@ export class experimental_JsonSchemaCoercer { break } case 'object': { - if (typeof coerced === 'undefined') { - coerced = {} - } - if (Array.isArray(coerced)) { coerced = { ...coerced } } if (isObject(coerced)) { - const keys = new Set([ - ...Object.keys(coerced), - ...Object.keys(schema.properties ?? {}), - ]) - let shouldUseCoercedItems = false const coercedItems: Record = {} - for (const key of keys) { + const patternProperties = Object.entries(schema.patternProperties ?? {}) + .map(([key, value]) => [new RegExp(key), value] as const) + + for (const key in coerced) { const value = coerced[key] - const subSchema = schema.properties?.[key] ?? schema.additionalProperties + const subSchema = schema.properties?.[key] + ?? patternProperties.find(([pattern]) => pattern.test(key))?.[1] + ?? schema.additionalProperties if (subSchema === undefined || (value === undefined && !schema.required?.includes(key))) { coercedItems[key] = value @@ -261,7 +239,7 @@ export class experimental_JsonSchemaCoercer { coerced = subCoerced if (!subSatisfied) { - satisfied = false + satisfied = subSatisfied } } } diff --git a/packages/json-schema/tests/shared.ts b/packages/json-schema/tests/shared.ts new file mode 100644 index 000000000..900ca79f4 --- /dev/null +++ b/packages/json-schema/tests/shared.ts @@ -0,0 +1,17 @@ +import type { JsonSchema } from '../src' +import { experimental_JsonSchemaCoercer as JsonSchemaCoercer } from '../src' + +export interface JsonSchemaCoercerTestCase { + name: string + schema: JsonSchema & Record + input: unknown + expected?: unknown +} + +export function testJsonSchemaCoercer(cases: JsonSchemaCoercerTestCase[]) { + const coercer = new JsonSchemaCoercer() + + it.each(cases)('$name', ({ schema, input, expected = input }) => { + expect(coercer.coerce(schema, input)).toEqual(expected) + }) +} From 960a881fe74a6b183f2af890a1a347ac8ba221bb Mon Sep 17 00:00:00 2001 From: unnoq Date: Wed, 9 Jul 2025 16:43:09 +0700 Subject: [PATCH 05/20] wip --- .../json-schema/src/coercer.native.test.ts | 150 --------------- packages/json-schema/src/coercer.test.ts | 181 ++++++++++++++++++ packages/json-schema/src/coercer.ts | 48 +++-- packages/json-schema/tests/shared.ts | 17 -- 4 files changed, 212 insertions(+), 184 deletions(-) delete mode 100644 packages/json-schema/src/coercer.native.test.ts create mode 100644 packages/json-schema/src/coercer.test.ts delete mode 100644 packages/json-schema/tests/shared.ts diff --git a/packages/json-schema/src/coercer.native.test.ts b/packages/json-schema/src/coercer.native.test.ts deleted file mode 100644 index 7ea9edecd..000000000 --- a/packages/json-schema/src/coercer.native.test.ts +++ /dev/null @@ -1,150 +0,0 @@ -import { testJsonSchemaCoercer } from '../tests/shared' - -testJsonSchemaCoercer([ - { - name: 'number - 12345', - schema: { type: 'number' }, - input: '12345', - expected: 12345, - }, - { - name: 'number - -12345', - schema: { type: 'number' }, - input: '-12345', - expected: -12345, - }, - { - name: 'number - 12345n', - schema: { type: 'number' }, - input: '12345n', - expected: Number.NaN, - }, - { - name: 'bigint - 12345', - schema: { 'type': 'string', 'x-native-type': 'bigint' }, - input: '12345', - expected: 12345n, - }, - { - name: 'bigint - -12345', - schema: { 'type': 'string', 'x-native-type': 'bigint' }, - input: '-12345', - expected: -12345n, - }, - { - name: 'bigint - 12345n', - schema: { 'type': 'string', 'x-native-type': 'bigint' }, - input: '12345n', - }, - { - name: 'bigint - true', - schema: { 'type': 'string', 'x-native-type': 'bigint' }, - input: true, - }, - { - name: 'boolean - t', - schema: { type: 'boolean' }, - input: 't', - expected: true, - }, - { - name: 'boolean - true', - schema: { type: 'boolean' }, - input: 'true', - expected: true, - }, - { - name: 'boolean - on', - schema: { type: 'boolean' }, - input: 'on', - expected: true, - }, - { - name: 'boolean - ON', - schema: { type: 'boolean' }, - input: 'ON', - expected: true, - }, - { - name: 'boolean - f', - schema: { type: 'boolean' }, - input: 'f', - expected: false, - }, - { - name: 'boolean - false', - schema: { type: 'boolean' }, - input: 'false', - expected: false, - }, - { - name: 'boolean - off', - schema: { type: 'boolean' }, - input: 'off', - expected: false, - }, - { - name: 'boolean - OFF', - schema: { type: 'boolean' }, - input: 'OFF', - expected: false, - }, - { - name: 'boolean - hi', - schema: { type: 'boolean' }, - input: 'hi', - expected: 'hi', - }, - { - name: 'date - iso string', - schema: { 'type': 'string', 'format': 'date-time', 'x-native-type': 'date' }, - input: new Date('2023-01-01').toISOString(), - expected: new Date('2023-01-01'), - }, - { - name: 'date - 2023-01-01', - schema: { 'type': 'string', 'format': 'date-time', 'x-native-type': 'date' }, - input: '2023-01-01', - expected: new Date('2023-01-01'), - }, - { - name: 'date - 2023-01-01I', - schema: { 'type': 'string', 'format': 'date-time', 'x-native-type': 'date' }, - input: '2023-01-01I', - expected: new Date('Invalid Date'), - }, - { - name: 'date - array', - schema: { 'type': 'string', 'format': 'date-time', 'x-native-type': 'date' }, - input: [], - expected: [], - }, - { - name: 'literal - 199', - schema: { enum: ['199', 199, 200, null] }, - input: '199', - }, - { - name: 'literal - 200', - schema: { enum: ['199', 199, 200, null] }, - input: '200', - expected: 200, - }, - { - name: 'literal - null', - schema: { enum: ['199', 199, 200, null] }, - input: null, - }, - { - name: 'const - 123', - schema: { const: 123 }, - input: '123', - expected: 123, - }, - { - name: 'const - 123', - schema: { const: 123 }, - input: '456', - expected: '456', - }, -]) diff --git a/packages/json-schema/src/coercer.test.ts b/packages/json-schema/src/coercer.test.ts new file mode 100644 index 000000000..4795489ba --- /dev/null +++ b/packages/json-schema/src/coercer.test.ts @@ -0,0 +1,181 @@ +/* eslint-disable prefer-regex-literals */ +import { experimental_JsonSchemaCoercer as JsonSchemaCoercer } from './coercer' + +describe('jsonSchemaCoercer', () => { + const coercer = new JsonSchemaCoercer() + + it('can coerce primitive types', () => { + expect(coercer.coerce({ type: 'boolean' }, 'true')).toEqual(true) + expect(coercer.coerce({ type: 'boolean' }, 'false')).toEqual(false) + expect(coercer.coerce({ type: 'boolean' }, 'invalid')).toEqual('invalid') + + expect(coercer.coerce({ type: 'number' }, '123')).toEqual(123) + expect(coercer.coerce({ type: 'number' }, 'invalid')).toEqual(Number.NaN) + + // -- no coercion + expect(coercer.coerce({ type: 'null' }, null)).toEqual(null) + expect(coercer.coerce({ type: 'number' }, undefined)).toEqual(undefined) + expect(coercer.coerce({ type: 'boolean' }, undefined)).toEqual(undefined) + }) + + it('can coerce multiple types', () => { + // TODO + // expect(coercer.coerce({ type: ['boolean', 'null'] }, 'true')).toEqual(true) + expect(coercer.coerce({ type: ['number', 'boolean'] }, '123')).toEqual(123) + }) + + it('can coerce native types', () => { + const date = new Date() + expect(coercer.coerce({ 'type': 'string', 'x-native-type': 'date' } as any, date.toISOString())).toEqual(date) + expect(coercer.coerce({ 'type': 'string', 'x-native-type': 'date' } as any, '1972-01-01')).toEqual(new Date('1972-01-01')) + expect(coercer.coerce({ 'type': 'string', 'x-native-type': 'date' } as any, 'Invalid Date')).toEqual(new Date('Invalid Date')) + + expect(coercer.coerce({ 'type': 'string', 'x-native-type': 'bigint' } as any, '123')).toEqual(123n) + expect(coercer.coerce({ 'type': 'string', 'x-native-type': 'bigint' } as any, 'invalid')).toEqual('invalid') + + expect(coercer.coerce({ 'type': 'string', 'x-native-type': 'url' } as any, 'https://example.com')).toEqual(new URL('https://example.com')) + expect(coercer.coerce({ 'type': 'string', 'x-native-type': 'url' } as any, 'invalid')).toEqual('invalid') + + expect(coercer.coerce({ 'type': 'string', 'x-native-type': 'regexp' } as any, '/abc/i')).toEqual(new RegExp('abc', 'i')) + expect(coercer.coerce({ 'type': 'string', 'x-native-type': 'regexp' } as any, '/abc/invalid')).toEqual('/abc/invalid') + expect(coercer.coerce({ 'type': 'string', 'x-native-type': 'regexp' } as any, 'invalid')).toEqual('invalid') + + expect(coercer.coerce( + { 'type': 'array', 'items': { type: 'number' }, 'x-native-type': 'set' } as any, + ['1', '2', '3', '4'], + )).toEqual(new Set([1, 2, 3, 4])) + + expect(coercer.coerce( + { 'type': 'array', 'items': { type: 'array', prefixItems: [{ type: 'number' }, { type: 'boolean' }] }, 'x-native-type': 'map' } as any, + [['1', 'true'], ['2', 'false'], ['invalid', 'invalid']], + )).toEqual(new Map([[1, true], [2, false], [Number.NaN, 'invalid']] as any)) + + expect(coercer.coerce( + { 'type': 'array', 'items': { type: 'array', prefixItems: [{ type: 'number' }, { type: 'boolean' }] }, 'x-native-type': 'map' } as any, + ['1'], + )).toEqual(['1']) + }) + + it('can coerce complex structures', () => { + const schema = { + type: 'object', + properties: { + a: { type: 'boolean' }, + b: { type: 'number' }, + c: { + type: 'array', + items: { 'type': 'string', 'x-native-type': 'date' }, + }, + d: { + type: 'object', + properties: { + e: { + 'type': 'array', + 'items': { 'type': 'string', 'x-native-type': 'url' }, + 'x-native-type': 'set', + }, + }, + }, + }, + required: ['a'], + } + + expect(coercer.coerce(schema, { + a: 'true', + b: '123', + c: ['2020-01-01', '2020-01-02'], + d: { + e: ['https://example.com', 'https://example.org'], + }, + })).toEqual({ + a: true, + b: 123, + c: [new Date('2020-01-01'), new Date('2020-01-02')], + d: { + e: new Set([new URL('https://example.com'), new URL('https://example.org')]), + }, + }) + }) + + it('can handle union types', () => { + const schema = { + anyOf: [ + { type: 'number' }, + { type: 'boolean' }, + { type: 'object', properties: { a: { type: 'number' } } }, + { type: 'object', properties: { a: { type: 'number' }, b: { type: 'number' } } }, + ], + } as any + + expect(coercer.coerce(schema, '123')).toEqual(123) + // TODO + // expect(coercer.coerce(schema, 'true')).toEqual(true) + expect(coercer.coerce(schema, { a: '123' })).toEqual({ a: 123 }) + // TODO + // expect(coercer.coerce(schema, { a: '123', b: '456' })).toEqual({ a: 123, b: 456 }) + }) + + it('can handle discriminated union types', () => { + const schema = { + anyOf: [ + { type: 'object', properties: { t: { const: 1 }, v: { type: 'number' } } }, + { type: 'object', properties: { t: { const: 2 }, v: { 'type': 'string', 'x-native-type': 'bigint' } } }, + ], + } as any + + expect(coercer.coerce(schema, { t: '1', v: '123' })).toEqual({ t: 1, v: 123 }) + expect(coercer.coerce(schema, { t: '2', v: '123' })).toEqual({ t: 2, v: 123n }) + }) + + it('can coerce intersection types', () => { + const schema = { + allOf: [ + { type: 'object', properties: { a: { type: 'number' } } }, + { type: 'object', properties: { b: { type: 'number' } } }, + ], + } as any + + expect(coercer.coerce(schema, { a: '123', b: '456', c: '789' })).toEqual({ a: 123, b: 456, c: '789' }) + expect(coercer.coerce(schema, { a: '123' })).toEqual({ a: 123 }) + expect(coercer.coerce(schema, { b: '456' })).toEqual({ b: 456 }) + }) + + it('can coerce recursive types', () => { + const schema = { + type: 'object', + properties: { + a: { type: 'boolean' }, + b: { + anyOf: [ + { 'type': 'string', 'x-native-type': 'url' }, + { $ref: '#/components/schema/Test' }, + ], + }, + }, + } as any + + expect(coercer.coerce(schema, { + a: 'true', + b: { + a: 'off', + b: { + a: 'invalid', + b: 'https://example.com', + }, + }, + }, { + components: { + '#/components/schema/Test': schema, + }, + })).toEqual({ + a: true, + b: { + a: false, + b: { + a: 'invalid', + b: new URL('https://example.com'), + }, + }, + }) + }) +}) diff --git a/packages/json-schema/src/coercer.ts b/packages/json-schema/src/coercer.ts index 5da24ae0b..5313adc40 100644 --- a/packages/json-schema/src/coercer.ts +++ b/packages/json-schema/src/coercer.ts @@ -1,28 +1,42 @@ import type { JsonSchema } from './types' import { guard, isObject, toArray } from '@orpc/shared' +export interface JsonSchemaCoerceOptions { + components?: Record +} + export class experimental_JsonSchemaCoercer { - coerce(schema: JsonSchema, value: unknown): unknown { - const [, coerced] = this.#coerce(schema, value) + coerce(schema: JsonSchema, value: unknown, options: JsonSchemaCoerceOptions = {}): unknown { + const [, coerced] = this.#coerce(schema, value, options) return coerced } - #coerce(schema: JsonSchema, value: unknown): [satisfied: boolean, coerced: unknown] { + #coerce(schema: JsonSchema, originalValue: unknown, options: JsonSchemaCoerceOptions): [satisfied: boolean, coerced: unknown] { if (typeof schema === 'boolean') { - return [schema, value] + return [schema, originalValue] } if (Array.isArray(schema.type)) { return this.#coerce({ anyOf: schema.type.map(type => ({ ...schema, type })), - }, value) + }, originalValue, options) } - let coerced = value + let coerced = originalValue let satisfied = true - const enumValues = schema.enum ?? (schema.const !== undefined ? [schema.const] : undefined) + if (typeof schema.$ref === 'string') { + const refSchema = options.components?.[schema.$ref] + + if (refSchema) { + const [subSatisfied, subCoerced] = this.#coerce(refSchema, coerced, options) + + coerced = subCoerced + satisfied = subSatisfied + } + } + const enumValues = schema.enum ?? (schema.const !== undefined ? [schema.const] : undefined) if (enumValues !== undefined && !enumValues.includes(coerced)) { if (typeof coerced === 'string') { const numberValue = this.#stringToNumber(coerced) @@ -50,8 +64,8 @@ export class experimental_JsonSchemaCoercer { switch (schema.type) { case 'number': case 'integer': { - if (typeof value === 'string') { - coerced = this.#stringToNumber(value) + if (typeof coerced === 'string') { + coerced = this.#stringToNumber(coerced) } if (typeof coerced !== 'number') { @@ -91,7 +105,7 @@ export class experimental_JsonSchemaCoercer { return item } - const [subSatisfied, subCoerced] = this.#coerce(subSchema, item) + const [subSatisfied, subCoerced] = this.#coerce(subSchema, item, options) if (!subSatisfied) { satisfied = subSatisfied @@ -135,7 +149,7 @@ export class experimental_JsonSchemaCoercer { coercedItems[key] = value } else { - const [subSatisfied, subCoerced] = this.#coerce(subSchema, value) + const [subSatisfied, subCoerced] = this.#coerce(subSchema, value, options) coercedItems[key] = subCoerced if (!subSatisfied) { @@ -234,7 +248,7 @@ export class experimental_JsonSchemaCoercer { if (schema.allOf) { for (const subSchema of schema.allOf) { - const [subSatisfied, subCoerced] = this.#coerce(subSchema, coerced) + const [subSatisfied, subCoerced] = this.#coerce(subSchema, coerced, options) coerced = subCoerced @@ -249,7 +263,7 @@ export class experimental_JsonSchemaCoercer { let bestOptions: { coerced: unknown, satisfied: boolean } | undefined for (const subSchema of schema[key]) { - const [subSatisfied, subCoerced] = this.#coerce(subSchema, coerced) + const [subSatisfied, subCoerced] = this.#coerce(subSchema, coerced, options) if (subSatisfied) { if (!bestOptions || subCoerced === coerced) { @@ -277,11 +291,11 @@ export class experimental_JsonSchemaCoercer { #stringToBoolean(value: string): boolean | string { const lower = value.toLowerCase() - if (lower === 'false' || lower === 'off' || lower === 'f') { + if (lower === 'false' || lower === 'off') { return false } - if (lower === 'true' || lower === 'on' || lower === 't') { + if (lower === 'true' || lower === 'on') { return true } @@ -293,7 +307,7 @@ export class experimental_JsonSchemaCoercer { } #stringToDate(value: string): Date | string { - return guard(() => new Date(value)) ?? value + return new Date(value) } #stringToRegExp(value: string): RegExp | string { @@ -312,7 +326,7 @@ export class experimental_JsonSchemaCoercer { } #arrayToSet(value: unknown[]): Set | unknown[] { - return guard(() => new Set(value)) ?? value + return new Set(value) } #arrayToMap(value: unknown[]): Map | unknown[] { diff --git a/packages/json-schema/tests/shared.ts b/packages/json-schema/tests/shared.ts deleted file mode 100644 index 900ca79f4..000000000 --- a/packages/json-schema/tests/shared.ts +++ /dev/null @@ -1,17 +0,0 @@ -import type { JsonSchema } from '../src' -import { experimental_JsonSchemaCoercer as JsonSchemaCoercer } from '../src' - -export interface JsonSchemaCoercerTestCase { - name: string - schema: JsonSchema & Record - input: unknown - expected?: unknown -} - -export function testJsonSchemaCoercer(cases: JsonSchemaCoercerTestCase[]) { - const coercer = new JsonSchemaCoercer() - - it.each(cases)('$name', ({ schema, input, expected = input }) => { - expect(coercer.coerce(schema, input)).toEqual(expected) - }) -} From df3d49ef7adbf34f060a8d80c750bf316a2fec08 Mon Sep 17 00:00:00 2001 From: unnoq Date: Wed, 9 Jul 2025 16:54:52 +0700 Subject: [PATCH 06/20] wip --- packages/json-schema/src/coercer.test.ts | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/packages/json-schema/src/coercer.test.ts b/packages/json-schema/src/coercer.test.ts index 4795489ba..57541de30 100644 --- a/packages/json-schema/src/coercer.test.ts +++ b/packages/json-schema/src/coercer.test.ts @@ -145,13 +145,9 @@ describe('jsonSchemaCoercer', () => { type: 'object', properties: { a: { type: 'boolean' }, - b: { - anyOf: [ - { 'type': 'string', 'x-native-type': 'url' }, - { $ref: '#/components/schema/Test' }, - ], - }, + b: { $ref: '#/components/schema/Test' }, }, + required: ['a'], } as any expect(coercer.coerce(schema, { @@ -160,7 +156,7 @@ describe('jsonSchemaCoercer', () => { a: 'off', b: { a: 'invalid', - b: 'https://example.com', + b: 'invalid', }, }, }, { @@ -173,7 +169,7 @@ describe('jsonSchemaCoercer', () => { a: false, b: { a: 'invalid', - b: new URL('https://example.com'), + b: 'invalid', }, }, }) From e630020f4b21479085b81516ec8cb2e437c2976e Mon Sep 17 00:00:00 2001 From: unnoq Date: Wed, 9 Jul 2025 17:01:55 +0700 Subject: [PATCH 07/20] tests --- packages/json-schema/src/coercer.test.ts | 21 +++++++++++++++++++++ packages/json-schema/src/coercer.ts | 2 +- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/packages/json-schema/src/coercer.test.ts b/packages/json-schema/src/coercer.test.ts index 57541de30..c977b3356 100644 --- a/packages/json-schema/src/coercer.test.ts +++ b/packages/json-schema/src/coercer.test.ts @@ -4,6 +4,13 @@ import { experimental_JsonSchemaCoercer as JsonSchemaCoercer } from './coercer' describe('jsonSchemaCoercer', () => { const coercer = new JsonSchemaCoercer() + it('do no thing with boolean/any schema', () => { + expect(coercer.coerce(true, '123')).toEqual('123') + expect(coercer.coerce(false, '123')).toEqual('123') + expect(coercer.coerce({}, '123')).toEqual('123') + expect(coercer.coerce({ not: {} }, '123')).toEqual('123') + }) + it('can coerce primitive types', () => { expect(coercer.coerce({ type: 'boolean' }, 'true')).toEqual(true) expect(coercer.coerce({ type: 'boolean' }, 'false')).toEqual(false) @@ -56,6 +63,19 @@ describe('jsonSchemaCoercer', () => { )).toEqual(['1']) }) + it('can coerce enum/const values', () => { + expect(coercer.coerce({ enum: [123, '234', true] }, 123)).toEqual(123) + expect(coercer.coerce({ enum: [123, '234', true] }, '234')).toEqual('234') + expect(coercer.coerce({ enum: [123, '234', true] }, '123')).toEqual(123) + expect(coercer.coerce({ enum: [123, '234', true] }, 'off')).toEqual('off') + expect(coercer.coerce({ enum: [123, '234', true] }, 'on')).toEqual(true) + expect(coercer.coerce({ enum: [123, '234', true] }, ['on'])).toEqual(['on']) + + expect(coercer.coerce({ const: true }, 'off')).toEqual('off') + expect(coercer.coerce({ const: true }, 'on')).toEqual(true) + expect(coercer.coerce({ const: true }, ['on'])).toEqual(['on']) + }) + it('can coerce complex structures', () => { const schema = { type: 'object', @@ -138,6 +158,7 @@ describe('jsonSchemaCoercer', () => { expect(coercer.coerce(schema, { a: '123', b: '456', c: '789' })).toEqual({ a: 123, b: 456, c: '789' }) expect(coercer.coerce(schema, { a: '123' })).toEqual({ a: 123 }) expect(coercer.coerce(schema, { b: '456' })).toEqual({ b: 456 }) + expect(coercer.coerce(schema, 'invalid')).toEqual('invalid') }) it('can coerce recursive types', () => { diff --git a/packages/json-schema/src/coercer.ts b/packages/json-schema/src/coercer.ts index 5313adc40..529cb0360 100644 --- a/packages/json-schema/src/coercer.ts +++ b/packages/json-schema/src/coercer.ts @@ -285,7 +285,7 @@ export class experimental_JsonSchemaCoercer { } #stringToNumber(value: string): number | string { - return guard(() => Number(value)) ?? value + return Number(value) } #stringToBoolean(value: string): boolean | string { From cd8fc064fffec4fa9be430863edcfbd51b5aa20e Mon Sep 17 00:00:00 2001 From: unnoq Date: Thu, 10 Jul 2025 16:43:27 +0700 Subject: [PATCH 08/20] wip --- packages/json-schema/src/coercer.test.ts | 168 +++++++++++++++++------ packages/json-schema/src/coercer.ts | 101 ++++++++++++-- 2 files changed, 213 insertions(+), 56 deletions(-) diff --git a/packages/json-schema/src/coercer.test.ts b/packages/json-schema/src/coercer.test.ts index c977b3356..c90cced77 100644 --- a/packages/json-schema/src/coercer.test.ts +++ b/packages/json-schema/src/coercer.test.ts @@ -16,11 +16,16 @@ describe('jsonSchemaCoercer', () => { expect(coercer.coerce({ type: 'boolean' }, 'false')).toEqual(false) expect(coercer.coerce({ type: 'boolean' }, 'invalid')).toEqual('invalid') - expect(coercer.coerce({ type: 'number' }, '123')).toEqual(123) - expect(coercer.coerce({ type: 'number' }, 'invalid')).toEqual(Number.NaN) + expect(coercer.coerce({ type: 'number' }, '123.4')).toEqual(123.4) + expect(coercer.coerce({ type: 'number' }, 'invalid')).toEqual('invalid') + + expect(coercer.coerce({ type: 'integer' }, '123')).toEqual(123) + expect(coercer.coerce({ type: 'integer' }, '123.4')).toEqual('123.4') + expect(coercer.coerce({ type: 'integer' }, 'invalid')).toEqual('invalid') // -- no coercion expect(coercer.coerce({ type: 'null' }, null)).toEqual(null) + expect(coercer.coerce({ type: 'null' }, undefined)).toEqual(undefined) expect(coercer.coerce({ type: 'number' }, undefined)).toEqual(undefined) expect(coercer.coerce({ type: 'boolean' }, undefined)).toEqual(undefined) }) @@ -35,9 +40,10 @@ describe('jsonSchemaCoercer', () => { const date = new Date() expect(coercer.coerce({ 'type': 'string', 'x-native-type': 'date' } as any, date.toISOString())).toEqual(date) expect(coercer.coerce({ 'type': 'string', 'x-native-type': 'date' } as any, '1972-01-01')).toEqual(new Date('1972-01-01')) - expect(coercer.coerce({ 'type': 'string', 'x-native-type': 'date' } as any, 'Invalid Date')).toEqual(new Date('Invalid Date')) + expect(coercer.coerce({ 'type': 'string', 'x-native-type': 'date' } as any, 'Invalid Date')).toEqual('Invalid Date') expect(coercer.coerce({ 'type': 'string', 'x-native-type': 'bigint' } as any, '123')).toEqual(123n) + expect(coercer.coerce({ 'type': 'string', 'x-native-type': 'bigint' } as any, 123)).toEqual(123n) expect(coercer.coerce({ 'type': 'string', 'x-native-type': 'bigint' } as any, 'invalid')).toEqual('invalid') expect(coercer.coerce({ 'type': 'string', 'x-native-type': 'url' } as any, 'https://example.com')).toEqual(new URL('https://example.com')) @@ -52,10 +58,15 @@ describe('jsonSchemaCoercer', () => { ['1', '2', '3', '4'], )).toEqual(new Set([1, 2, 3, 4])) + expect(coercer.coerce( + { 'type': 'array', 'items': { type: 'number' }, 'x-native-type': 'set' } as any, + ['1', '2', '3', '4', '4'], + )).toEqual([1, 2, 3, 4, 4]) + expect(coercer.coerce( { 'type': 'array', 'items': { type: 'array', prefixItems: [{ type: 'number' }, { type: 'boolean' }] }, 'x-native-type': 'map' } as any, [['1', 'true'], ['2', 'false'], ['invalid', 'invalid']], - )).toEqual(new Map([[1, true], [2, false], [Number.NaN, 'invalid']] as any)) + )).toEqual(new Map([[1, true], [2, false], ['invalid', 'invalid']] as any)) expect(coercer.coerce( { 'type': 'array', 'items': { type: 'array', prefixItems: [{ type: 'number' }, { type: 'boolean' }] }, 'x-native-type': 'map' } as any, @@ -76,45 +87,71 @@ describe('jsonSchemaCoercer', () => { expect(coercer.coerce({ const: true }, ['on'])).toEqual(['on']) }) - it('can coerce complex structures', () => { - const schema = { - type: 'object', - properties: { - a: { type: 'boolean' }, - b: { type: 'number' }, - c: { - type: 'array', - items: { 'type': 'string', 'x-native-type': 'date' }, - }, - d: { + it('can coerce arrays/tuples', () => { + expect( + coercer.coerce({ type: 'array', items: { type: 'number' } }, ['1', '2', '3']), + ).toEqual([1, 2, 3]) + expect( + coercer.coerce({ type: 'array', items: { type: 'string' } }, ['1', '2', '3']), + ).toEqual(['1', '2', '3']) + + // draft-07 + expect( + coercer.coerce( + { type: 'array', items: [{ type: 'number' }, { type: 'boolean' }], additionalItems: { type: 'number' } }, + ['1', 'true', '2', 'false'], + ), + ).toEqual([1, true, 2, 'false']) + + // draft-2020 + expect( + coercer.coerce( + { type: 'array', prefixItems: [{ type: 'number' }, { type: 'boolean' }], items: { type: 'number' } }, + ['1', 'true', '2', 'false'], + ), + ).toEqual([1, true, 2, 'false']) + + expect( + coercer.coerce( + { type: 'array', prefixItems: [{ type: 'number' }, { type: 'boolean' }] }, + ['1', 'true', '2', 'false'], + ), + ).toEqual([1, true, '2', 'false']) + }) + + it('can coerce objects', () => { + expect( + coercer.coerce( + { type: 'object', properties: { a: { type: 'number' }, b: { type: 'boolean' } } }, + { a: '123', b: 'true' }, + ), + ).toEqual({ a: 123, b: true }) + + expect( + coercer.coerce( + { type: 'object', properties: { a: { type: 'number' }, b: { type: 'boolean' } }, required: ['a'] }, + { a: undefined, b: 'true' }, + ), + ).toEqual({ a: undefined, b: true }) + + expect( + coercer.coerce( + { type: 'object', - properties: { - e: { - 'type': 'array', - 'items': { 'type': 'string', 'x-native-type': 'url' }, - 'x-native-type': 'set', - }, - }, + properties: { a: { type: 'number' } }, + patternProperties: { '^b': { 'type': 'string', 'x-native-type': 'bigint' } as any }, + additionalProperties: { type: 'boolean' }, }, - }, - required: ['a'], - } + { a: '123', b: '123', b1: '123', c: 'false' }, + ), + ).toEqual({ a: 123, b: 123n, b1: 123n, c: false }) - expect(coercer.coerce(schema, { - a: 'true', - b: '123', - c: ['2020-01-01', '2020-01-02'], - d: { - e: ['https://example.com', 'https://example.org'], - }, - })).toEqual({ - a: true, - b: 123, - c: [new Date('2020-01-01'), new Date('2020-01-02')], - d: { - e: new Set([new URL('https://example.com'), new URL('https://example.org')]), - }, - }) + expect( + coercer.coerce( + { type: 'object', properties: { 0: { type: 'number' }, 1: { type: 'boolean' } } }, + ['123', 'true'], + ), + ).toEqual({ 0: 123, 1: true }) }) it('can handle union types', () => { @@ -127,12 +164,14 @@ describe('jsonSchemaCoercer', () => { ], } as any + expect(coercer.coerce(schema, 123)).toEqual(123) expect(coercer.coerce(schema, '123')).toEqual(123) - // TODO - // expect(coercer.coerce(schema, 'true')).toEqual(true) + expect(coercer.coerce(schema, true)).toEqual(true) + expect(coercer.coerce(schema, 'true')).toEqual(true) expect(coercer.coerce(schema, { a: '123' })).toEqual({ a: 123 }) - // TODO - // expect(coercer.coerce(schema, { a: '123', b: '456' })).toEqual({ a: 123, b: 456 }) + expect(coercer.coerce(schema, { a: '123', b: undefined })).toEqual({ a: 123, b: undefined }) + expect(coercer.coerce(schema, { a: '123', b: '456' })).toEqual({ a: 123, b: 456 }) + expect(coercer.coerce(schema, 'invalid')).toEqual('invalid') }) it('can handle discriminated union types', () => { @@ -195,4 +234,45 @@ describe('jsonSchemaCoercer', () => { }, }) }) + + it('can coerce complex structures', () => { + const schema = { + type: 'object', + properties: { + a: { type: 'boolean' }, + b: { type: 'number' }, + c: { + type: 'array', + items: { 'type': 'string', 'x-native-type': 'date' }, + }, + d: { + type: 'object', + properties: { + e: { + 'type': 'array', + 'items': { 'type': 'string', 'x-native-type': 'url' }, + 'x-native-type': 'set', + }, + }, + }, + }, + required: ['a'], + } + + expect(coercer.coerce(schema, { + a: 'true', + b: '123', + c: ['2020-01-01', '2020-01-02'], + d: { + e: ['https://example.com', 'https://example.org'], + }, + })).toEqual({ + a: true, + b: 123, + c: [new Date('2020-01-01'), new Date('2020-01-02')], + d: { + e: new Set([new URL('https://example.com'), new URL('https://example.org')]), + }, + }) + }) }) diff --git a/packages/json-schema/src/coercer.ts b/packages/json-schema/src/coercer.ts index 529cb0360..655c8aeb9 100644 --- a/packages/json-schema/src/coercer.ts +++ b/packages/json-schema/src/coercer.ts @@ -62,8 +62,21 @@ export class experimental_JsonSchemaCoercer { if (typeof schema.type === 'string') { switch (schema.type) { - case 'number': - case 'integer': { + case 'null': { + if (coerced !== null) { + satisfied = false + } + + break + } + case 'string': { + if (typeof coerced !== 'string') { + satisfied = false + } + + break + } + case 'number': { if (typeof coerced === 'string') { coerced = this.#stringToNumber(coerced) } @@ -74,6 +87,17 @@ export class experimental_JsonSchemaCoercer { break } + case 'integer': { + if (typeof coerced === 'string') { + coerced = this.#stringToInteger(coerced) + } + + if (typeof coerced !== 'number' || !Number.isInteger(coerced)) { + satisfied = false + } + + break + } case 'boolean': { if (typeof coerced === 'string') { coerced = this.#stringToBoolean(coerced) @@ -108,7 +132,7 @@ export class experimental_JsonSchemaCoercer { const [subSatisfied, subCoerced] = this.#coerce(subSchema, item, options) if (!subSatisfied) { - satisfied = subSatisfied + satisfied = false } if (subCoerced !== item) { @@ -145,15 +169,19 @@ export class experimental_JsonSchemaCoercer { ?? patternProperties.find(([pattern]) => pattern.test(key))?.[1] ?? schema.additionalProperties - if (subSchema === undefined || (value === undefined && !schema.required?.includes(key))) { + if (value === undefined && !schema.required?.includes(key)) { + coercedItems[key] = value + } + else if (subSchema === undefined) { coercedItems[key] = value + satisfied = false } else { const [subSatisfied, subCoerced] = this.#coerce(subSchema, value, options) coercedItems[key] = subCoerced if (!subSatisfied) { - satisfied = subSatisfied + satisfied = false } if (subCoerced !== value) { @@ -189,8 +217,13 @@ export class experimental_JsonSchemaCoercer { break } case 'bigint': { - if (typeof coerced === 'string') { - coerced = this.#stringToBigInt(coerced) + switch (typeof coerced) { + case 'string': + coerced = this.#stringToBigInt(coerced) + break + case 'number': + coerced = this.#numberToBigInt(coerced) + break } if (typeof coerced !== 'bigint') { @@ -253,7 +286,7 @@ export class experimental_JsonSchemaCoercer { coerced = subCoerced if (!subSatisfied) { - satisfied = subSatisfied + satisfied = false } } } @@ -281,11 +314,35 @@ export class experimental_JsonSchemaCoercer { } } + if (typeof schema.not !== 'undefined') { + const [notSatisfied] = this.#coerce(schema.not, coerced, options) + + if (notSatisfied) { + satisfied = false + } + } + return [satisfied, coerced] } #stringToNumber(value: string): number | string { - return Number(value) + const num = Number.parseFloat(value) + + if (Number.isNaN(num) || num.toString() !== value) { + return value + } + + return num + } + + #stringToInteger(value: string): number | string { + const num = Number.parseInt(value) + + if (Number.isNaN(num) || num.toString() !== value) { + return value + } + + return num } #stringToBoolean(value: string): boolean | string { @@ -307,7 +364,13 @@ export class experimental_JsonSchemaCoercer { } #stringToDate(value: string): Date | string { - return new Date(value) + const date = new Date(value) + + if (Number.isNaN(date.getTime()) || !value.startsWith(date.toISOString().slice(0, 10))) { + return value + } + + return date } #stringToRegExp(value: string): RegExp | string { @@ -325,11 +388,25 @@ export class experimental_JsonSchemaCoercer { return guard(() => new URL(value)) ?? value } + #numberToBigInt(value: number): bigint | number { + return BigInt(value) + } + #arrayToSet(value: unknown[]): Set | unknown[] { - return new Set(value) + const set = new Set(value) + + if (set.size !== value.length) { + return value + } + + return set } #arrayToMap(value: unknown[]): Map | unknown[] { - return guard(() => new Map(value as [unknown, unknown][])) ?? value + if (value.some(item => !Array.isArray(item) || item.length !== 2)) { + return value + } + + return new Map(value as [unknown, unknown][]) } } From e0af29b920322f662557d940a8c9328668a7ef9b Mon Sep 17 00:00:00 2001 From: unnoq Date: Thu, 10 Jul 2025 17:37:58 +0700 Subject: [PATCH 09/20] wip --- packages/json-schema/package.json | 6 ++ packages/json-schema/src/coercer.ts | 30 ++++++---- .../src/smart-coercion-plugin.test.ts | 37 +++++++++++++ .../json-schema/src/smart-coercion-plugin.ts | 55 +++++++++++++++++++ packages/json-schema/tsconfig.json | 5 +- packages/openapi/src/schema-converter.ts | 4 +- pnpm-lock.yaml | 13 +++++ 7 files changed, 135 insertions(+), 15 deletions(-) create mode 100644 packages/json-schema/src/smart-coercion-plugin.test.ts create mode 100644 packages/json-schema/src/smart-coercion-plugin.ts diff --git a/packages/json-schema/package.json b/packages/json-schema/package.json index c919e557d..373033577 100644 --- a/packages/json-schema/package.json +++ b/packages/json-schema/package.json @@ -34,7 +34,13 @@ "type:check": "tsc -b" }, "dependencies": { + "@orpc/contract": "workspace:*", + "@orpc/openapi": "workspace:*", + "@orpc/server": "workspace:*", "@orpc/shared": "workspace:*", "json-schema-typed": "^8.0.1" + }, + "devDependencies": { + "zod": "^3.25.74" } } diff --git a/packages/json-schema/src/coercer.ts b/packages/json-schema/src/coercer.ts index 655c8aeb9..34b822a97 100644 --- a/packages/json-schema/src/coercer.ts +++ b/packages/json-schema/src/coercer.ts @@ -1,17 +1,23 @@ import type { JsonSchema } from './types' import { guard, isObject, toArray } from '@orpc/shared' -export interface JsonSchemaCoerceOptions { +export interface experimental_JsonSchemaCoercerOptions { components?: Record } export class experimental_JsonSchemaCoercer { - coerce(schema: JsonSchema, value: unknown, options: JsonSchemaCoerceOptions = {}): unknown { - const [, coerced] = this.#coerce(schema, value, options) + private readonly components: Exclude + + constructor(readonly options: experimental_JsonSchemaCoercerOptions = {}) { + this.components = options.components ?? {} + } + + coerce(schema: JsonSchema, value: unknown): unknown { + const [, coerced] = this.#coerce(schema, value) return coerced } - #coerce(schema: JsonSchema, originalValue: unknown, options: JsonSchemaCoerceOptions): [satisfied: boolean, coerced: unknown] { + #coerce(schema: JsonSchema, originalValue: unknown): [satisfied: boolean, coerced: unknown] { if (typeof schema === 'boolean') { return [schema, originalValue] } @@ -19,17 +25,17 @@ export class experimental_JsonSchemaCoercer { if (Array.isArray(schema.type)) { return this.#coerce({ anyOf: schema.type.map(type => ({ ...schema, type })), - }, originalValue, options) + }, originalValue) } let coerced = originalValue let satisfied = true if (typeof schema.$ref === 'string') { - const refSchema = options.components?.[schema.$ref] + const refSchema = this.components?.[schema.$ref] if (refSchema) { - const [subSatisfied, subCoerced] = this.#coerce(refSchema, coerced, options) + const [subSatisfied, subCoerced] = this.#coerce(refSchema, coerced) coerced = subCoerced satisfied = subSatisfied @@ -129,7 +135,7 @@ export class experimental_JsonSchemaCoercer { return item } - const [subSatisfied, subCoerced] = this.#coerce(subSchema, item, options) + const [subSatisfied, subCoerced] = this.#coerce(subSchema, item) if (!subSatisfied) { satisfied = false @@ -177,7 +183,7 @@ export class experimental_JsonSchemaCoercer { satisfied = false } else { - const [subSatisfied, subCoerced] = this.#coerce(subSchema, value, options) + const [subSatisfied, subCoerced] = this.#coerce(subSchema, value) coercedItems[key] = subCoerced if (!subSatisfied) { @@ -281,7 +287,7 @@ export class experimental_JsonSchemaCoercer { if (schema.allOf) { for (const subSchema of schema.allOf) { - const [subSatisfied, subCoerced] = this.#coerce(subSchema, coerced, options) + const [subSatisfied, subCoerced] = this.#coerce(subSchema, coerced) coerced = subCoerced @@ -296,7 +302,7 @@ export class experimental_JsonSchemaCoercer { let bestOptions: { coerced: unknown, satisfied: boolean } | undefined for (const subSchema of schema[key]) { - const [subSatisfied, subCoerced] = this.#coerce(subSchema, coerced, options) + const [subSatisfied, subCoerced] = this.#coerce(subSchema, coerced) if (subSatisfied) { if (!bestOptions || subCoerced === coerced) { @@ -315,7 +321,7 @@ export class experimental_JsonSchemaCoercer { } if (typeof schema.not !== 'undefined') { - const [notSatisfied] = this.#coerce(schema.not, coerced, options) + const [notSatisfied] = this.#coerce(schema.not, coerced) if (notSatisfied) { satisfied = false diff --git a/packages/json-schema/src/smart-coercion-plugin.test.ts b/packages/json-schema/src/smart-coercion-plugin.test.ts new file mode 100644 index 000000000..f0a480681 --- /dev/null +++ b/packages/json-schema/src/smart-coercion-plugin.test.ts @@ -0,0 +1,37 @@ +import { z } from 'zod' +import { ZodToJsonSchemaConverter } from '../../zod/src' +import { experimental_SmartCoercionPlugin as SmartCoercionPlugin } from './smart-coercion-plugin' + +describe('smartCoercionPlugin', () => { + it('should coerce input based on schema', async () => { + const plugin = new SmartCoercionPlugin({ + schemaConverters: [ + new ZodToJsonSchemaConverter(), + ], + }) + const options = {} as any + plugin.init(options) + + const coerce = async (schema: any, originalInput: unknown) => { + let coerced: unknown + + await options.clientInterceptors[0]({ + procedure: { + '~orpc': { + inputSchema: schema, + }, + }, + input: originalInput, + next: ({ input } = { input: originalInput }) => { + coerced = input + }, + }) + + return coerced + } + + expect(await coerce(undefined, { a: '123' })).toEqual({ a: '123' }) + expect(await coerce(z.object({ a: z.number() }), { a: '123' })).toEqual({ a: 123 }) + expect(await coerce(z.object({ a: z.boolean() }), { a: 'on' })).toEqual({ a: true }) + }) +}) diff --git a/packages/json-schema/src/smart-coercion-plugin.ts b/packages/json-schema/src/smart-coercion-plugin.ts new file mode 100644 index 000000000..73254d21d --- /dev/null +++ b/packages/json-schema/src/smart-coercion-plugin.ts @@ -0,0 +1,55 @@ +import type { AnySchema } from '@orpc/contract' +import type { ConditionalSchemaConverter, SchemaConverter } from '@orpc/openapi' +import type { Context } from '@orpc/server' +import type { StandardHandlerOptions, StandardHandlerPlugin } from '@orpc/server/standard' +import type { + experimental_JsonSchemaCoercerOptions as JsonSchemaCoercerOptions, +} from './coercer' +import type { JsonSchema } from './types' +import { CompositeSchemaConverter } from '@orpc/openapi' +import { toArray } from '@orpc/shared' +import { + experimental_JsonSchemaCoercer as JsonSchemaCoercer, +} from './coercer' + +export interface experimental_SmartCoercionPluginOptions extends JsonSchemaCoercerOptions { + schemaConverters?: readonly ConditionalSchemaConverter[] +} + +export class experimental_SmartCoercionPlugin implements StandardHandlerPlugin { + private readonly converter: SchemaConverter + private readonly coercer: JsonSchemaCoercer + private readonly cache: WeakMap = new WeakMap() + + constructor(options: experimental_SmartCoercionPluginOptions = {}) { + this.converter = new CompositeSchemaConverter(toArray(options.schemaConverters)) + this.coercer = new JsonSchemaCoercer(options) + } + + init(options: StandardHandlerOptions): void { + options.clientInterceptors ??= [] + + options.clientInterceptors.unshift(async (options) => { + const inputSchema = options.procedure['~orpc'].inputSchema + + if (!inputSchema) { + return options.next() + } + + const coercedInput = await this.#coerce(inputSchema, options.input) + + return options.next({ ...options, input: coercedInput }) + }) + } + + async #coerce(schema: AnySchema, value: unknown): Promise { + let jsonSchema = this.cache.get(schema) + + if (!jsonSchema) { + jsonSchema = (await this.converter.convert(schema, { strategy: 'input' }))[1] + this.cache.set(schema, jsonSchema) + } + + return this.coercer.coerce(jsonSchema, value) + } +} diff --git a/packages/json-schema/tsconfig.json b/packages/json-schema/tsconfig.json index b08ef0a53..79cd37600 100644 --- a/packages/json-schema/tsconfig.json +++ b/packages/json-schema/tsconfig.json @@ -1,7 +1,10 @@ { "extends": "../../tsconfig.lib.json", "references": [ - { "path": "../shared" } + { "path": "../shared" }, + { "path": "../server" }, + { "path": "../openapi" }, + { "path": "../contract" } ], "include": ["src"], "exclude": [ diff --git a/packages/openapi/src/schema-converter.ts b/packages/openapi/src/schema-converter.ts index 2d9ccb29a..1081709d5 100644 --- a/packages/openapi/src/schema-converter.ts +++ b/packages/openapi/src/schema-converter.ts @@ -36,9 +36,9 @@ export interface ConditionalSchemaConverter extends SchemaConverter { } export class CompositeSchemaConverter implements SchemaConverter { - private readonly converters: ConditionalSchemaConverter[] + private readonly converters: readonly ConditionalSchemaConverter[] - constructor(converters: ConditionalSchemaConverter[]) { + constructor(converters: readonly ConditionalSchemaConverter[]) { this.converters = converters } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6eed6d74f..dd111a87a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -285,12 +285,25 @@ importers: packages/json-schema: dependencies: + '@orpc/contract': + specifier: workspace:* + version: link:../contract + '@orpc/openapi': + specifier: workspace:* + version: link:../openapi + '@orpc/server': + specifier: workspace:* + version: link:../server '@orpc/shared': specifier: workspace:* version: link:../shared json-schema-typed: specifier: ^8.0.1 version: 8.0.1 + devDependencies: + zod: + specifier: ^3.25.74 + version: 3.25.74 packages/nest: dependencies: From 613f4d44b710448d53891a83339d4587a58ef5b6 Mon Sep 17 00:00:00 2001 From: unnoq Date: Thu, 10 Jul 2025 20:01:28 +0700 Subject: [PATCH 10/20] wip --- packages/json-schema/src/coercer.ts | 30 ++++++++----------- .../json-schema/src/smart-coercion-plugin.ts | 7 ++--- 2 files changed, 14 insertions(+), 23 deletions(-) diff --git a/packages/json-schema/src/coercer.ts b/packages/json-schema/src/coercer.ts index 34b822a97..c9064072c 100644 --- a/packages/json-schema/src/coercer.ts +++ b/packages/json-schema/src/coercer.ts @@ -1,23 +1,17 @@ import type { JsonSchema } from './types' import { guard, isObject, toArray } from '@orpc/shared' -export interface experimental_JsonSchemaCoercerOptions { +export interface experimental_JsonSchemaCoerceOptions { components?: Record } export class experimental_JsonSchemaCoercer { - private readonly components: Exclude - - constructor(readonly options: experimental_JsonSchemaCoercerOptions = {}) { - this.components = options.components ?? {} - } - - coerce(schema: JsonSchema, value: unknown): unknown { - const [, coerced] = this.#coerce(schema, value) + coerce(schema: JsonSchema, value: unknown, options: experimental_JsonSchemaCoerceOptions = {}): unknown { + const [, coerced] = this.#coerce(schema, value, options) return coerced } - #coerce(schema: JsonSchema, originalValue: unknown): [satisfied: boolean, coerced: unknown] { + #coerce(schema: JsonSchema, originalValue: unknown, options: experimental_JsonSchemaCoerceOptions): [satisfied: boolean, coerced: unknown] { if (typeof schema === 'boolean') { return [schema, originalValue] } @@ -25,17 +19,17 @@ export class experimental_JsonSchemaCoercer { if (Array.isArray(schema.type)) { return this.#coerce({ anyOf: schema.type.map(type => ({ ...schema, type })), - }, originalValue) + }, originalValue, options) } let coerced = originalValue let satisfied = true if (typeof schema.$ref === 'string') { - const refSchema = this.components?.[schema.$ref] + const refSchema = options?.components?.[schema.$ref] if (refSchema) { - const [subSatisfied, subCoerced] = this.#coerce(refSchema, coerced) + const [subSatisfied, subCoerced] = this.#coerce(refSchema, coerced, options) coerced = subCoerced satisfied = subSatisfied @@ -135,7 +129,7 @@ export class experimental_JsonSchemaCoercer { return item } - const [subSatisfied, subCoerced] = this.#coerce(subSchema, item) + const [subSatisfied, subCoerced] = this.#coerce(subSchema, item, options) if (!subSatisfied) { satisfied = false @@ -183,7 +177,7 @@ export class experimental_JsonSchemaCoercer { satisfied = false } else { - const [subSatisfied, subCoerced] = this.#coerce(subSchema, value) + const [subSatisfied, subCoerced] = this.#coerce(subSchema, value, options) coercedItems[key] = subCoerced if (!subSatisfied) { @@ -287,7 +281,7 @@ export class experimental_JsonSchemaCoercer { if (schema.allOf) { for (const subSchema of schema.allOf) { - const [subSatisfied, subCoerced] = this.#coerce(subSchema, coerced) + const [subSatisfied, subCoerced] = this.#coerce(subSchema, coerced, options) coerced = subCoerced @@ -302,7 +296,7 @@ export class experimental_JsonSchemaCoercer { let bestOptions: { coerced: unknown, satisfied: boolean } | undefined for (const subSchema of schema[key]) { - const [subSatisfied, subCoerced] = this.#coerce(subSchema, coerced) + const [subSatisfied, subCoerced] = this.#coerce(subSchema, coerced, options) if (subSatisfied) { if (!bestOptions || subCoerced === coerced) { @@ -321,7 +315,7 @@ export class experimental_JsonSchemaCoercer { } if (typeof schema.not !== 'undefined') { - const [notSatisfied] = this.#coerce(schema.not, coerced) + const [notSatisfied] = this.#coerce(schema.not, coerced, options) if (notSatisfied) { satisfied = false diff --git a/packages/json-schema/src/smart-coercion-plugin.ts b/packages/json-schema/src/smart-coercion-plugin.ts index 73254d21d..9e954f557 100644 --- a/packages/json-schema/src/smart-coercion-plugin.ts +++ b/packages/json-schema/src/smart-coercion-plugin.ts @@ -2,9 +2,6 @@ import type { AnySchema } from '@orpc/contract' import type { ConditionalSchemaConverter, SchemaConverter } from '@orpc/openapi' import type { Context } from '@orpc/server' import type { StandardHandlerOptions, StandardHandlerPlugin } from '@orpc/server/standard' -import type { - experimental_JsonSchemaCoercerOptions as JsonSchemaCoercerOptions, -} from './coercer' import type { JsonSchema } from './types' import { CompositeSchemaConverter } from '@orpc/openapi' import { toArray } from '@orpc/shared' @@ -12,7 +9,7 @@ import { experimental_JsonSchemaCoercer as JsonSchemaCoercer, } from './coercer' -export interface experimental_SmartCoercionPluginOptions extends JsonSchemaCoercerOptions { +export interface experimental_SmartCoercionPluginOptions { schemaConverters?: readonly ConditionalSchemaConverter[] } @@ -23,7 +20,7 @@ export class experimental_SmartCoercionPlugin implements Stan constructor(options: experimental_SmartCoercionPluginOptions = {}) { this.converter = new CompositeSchemaConverter(toArray(options.schemaConverters)) - this.coercer = new JsonSchemaCoercer(options) + this.coercer = new JsonSchemaCoercer() } init(options: StandardHandlerOptions): void { From 9b54413e17b8aa8ac5ad82d3fb2007c64b51ff83 Mon Sep 17 00:00:00 2001 From: unnoq Date: Thu, 10 Jul 2025 20:11:50 +0700 Subject: [PATCH 11/20] improve --- packages/json-schema/src/coercer.test.ts | 20 ++++++++++++++++++++ packages/json-schema/src/coercer.ts | 9 +++++++++ 2 files changed, 29 insertions(+) diff --git a/packages/json-schema/src/coercer.test.ts b/packages/json-schema/src/coercer.test.ts index c90cced77..1a0b10cc9 100644 --- a/packages/json-schema/src/coercer.test.ts +++ b/packages/json-schema/src/coercer.test.ts @@ -172,6 +172,26 @@ describe('jsonSchemaCoercer', () => { expect(coercer.coerce(schema, { a: '123', b: undefined })).toEqual({ a: 123, b: undefined }) expect(coercer.coerce(schema, { a: '123', b: '456' })).toEqual({ a: 123, b: 456 }) expect(coercer.coerce(schema, 'invalid')).toEqual('invalid') + + const schema2 = { + anyOf: [ + { type: 'object', properties: { a: { type: 'boolean' }, b: { type: 'number' } }, required: ['a', 'b'] }, + { type: 'object', properties: { a: { type: 'number' }, b: { type: 'number' } } }, + ], + } as any + + expect(coercer.coerce(schema2, { a: 'true', b: '123' })).toEqual({ a: true, b: 123 }) + expect(coercer.coerce(schema2, { a: '123' })).toEqual({ a: 123 }) + + const schema3 = { + anyOf: [ + { type: 'array', prefixItems: [{ type: 'number' }, { type: 'boolean' }, { type: 'boolean' }], items: { type: 'number' } }, + { type: 'array', prefixItems: [{ type: 'number' }], items: { type: 'number' } }, + ], + } as any + + expect(coercer.coerce(schema3, ['1', 'true', 'true', '2'])).toEqual([1, true, true, 2]) + expect(coercer.coerce(schema3, ['1', '2'])).toEqual([1, 2]) }) it('can handle discriminated union types', () => { diff --git a/packages/json-schema/src/coercer.ts b/packages/json-schema/src/coercer.ts index c9064072c..b66436dea 100644 --- a/packages/json-schema/src/coercer.ts +++ b/packages/json-schema/src/coercer.ts @@ -126,6 +126,7 @@ export class experimental_JsonSchemaCoercer { const coercedItems = coerced.map((item, i) => { const subSchema = prefixItemSchemas[i] ?? itemSchema if (subSchema === undefined) { + satisfied = false return item } @@ -142,6 +143,10 @@ export class experimental_JsonSchemaCoercer { return subCoerced }) + if (coercedItems.length < prefixItemSchemas.length) { + satisfied = false + } + if (shouldUseCoercedItems) { coerced = coercedItems } @@ -190,6 +195,10 @@ export class experimental_JsonSchemaCoercer { } } + if (schema.required?.some(key => !Object.hasOwn(coercedItems, key))) { + satisfied = false + } + if (shouldUseCoercedItems) { coerced = coercedItems } From 91539eb6cc62a6549a5fb8e76e4348b1656c1bed Mon Sep 17 00:00:00 2001 From: unnoq Date: Thu, 10 Jul 2025 21:28:41 +0700 Subject: [PATCH 12/20] docs --- apps/content/.vitepress/config.ts | 1 + .../docs/openapi/plugins/smart-coercion.md | 155 ++++++++++++++++++ packages/json-schema/src/index.ts | 1 + playgrounds/contract-first/package.json | 1 + playgrounds/contract-first/src/main.ts | 9 +- pnpm-lock.yaml | 3 + 6 files changed, 168 insertions(+), 2 deletions(-) create mode 100644 apps/content/docs/openapi/plugins/smart-coercion.md diff --git a/apps/content/.vitepress/config.ts b/apps/content/.vitepress/config.ts index 679499124..11640b7ae 100644 --- a/apps/content/.vitepress/config.ts +++ b/apps/content/.vitepress/config.ts @@ -208,6 +208,7 @@ export default withMermaid(defineConfig({ collapsed: true, items: [ { text: 'OpenAPI Reference (Swagger)', link: '/docs/openapi/plugins/openapi-reference' }, + { text: 'Smart Coercion', link: '/docs/openapi/plugins/smart-coercion' }, { text: 'Zod Smart Coercion', link: '/docs/openapi/plugins/zod-smart-coercion' }, ], }, diff --git a/apps/content/docs/openapi/plugins/smart-coercion.md b/apps/content/docs/openapi/plugins/smart-coercion.md new file mode 100644 index 000000000..f072ca407 --- /dev/null +++ b/apps/content/docs/openapi/plugins/smart-coercion.md @@ -0,0 +1,155 @@ +--- +title: Smart Coercion Plugin +description: Automatically converts input values to match schema types without manually defining coercion logic. +--- + +# Smart Coercion Plugin + +Automatically converts input values to match schema types without manually defining coercion logic. + +::: warning +This plugin improves developer experience but impacts performance. For high-performance applications or complex schemas, manually defining coercion in your schema validation is more efficient. +::: + +## Installation + +::: code-group + +```sh [npm] +npm install @orpc/json-schema@latest +``` + +```sh [yarn] +yarn add @orpc/json-schema@latest +``` + +```sh [pnpm] +pnpm add @orpc/json-schema@latest +``` + +```sh [bun] +bun add @orpc/json-schema@latest +``` + +```sh [deno] +deno install npm:@orpc/json-schema@latest +``` + +::: + +## Setup + +Configure the plugin with [JSON Schema Converters](/docs/openapi/openapi-specification#generating-specifications) for your validation libraries. + +```ts +import { OpenAPIHandler } from '@orpc/openapi/fetch' +import { + experimental_SmartCoercionPlugin as SmartCoercionPlugin +} from '@orpc/json-schema' + +const handler = new OpenAPIHandler(router, { + plugins: [ + new SmartCoercionPlugin({ + schemaConverters: [ + new ZodToJsonSchemaConverter(), + // Add other schema converters as needed + ], + }) + ] +}) +``` + +## How It Works + +The plugin converts values **safely** using these rules: + +1. **Schema-guided:** Only converts when the schema says what type to use +2. **Safe only:** Only converts values that make sense (like `'123'` to `123`) +3. **Keep original:** If conversion is unsafe, keeps the original value +4. **Smart unions:** Picks the best conversion for union types +5. **Deep conversion:** Works inside nested objects and arrays + +::: info +JavaScript native types such as BigInt, Date, RegExp, URL, Set, and Map are not natively supported by JSON Schema. To enable correct coercion, oRPC relies on the `x-native-type` metadata in your schema: + +- `x-native-type: 'bigint'` for BigInt +- `x-native-type: 'date'` for Date +- `x-native-type: 'regexp'` for RegExp +- `x-native-type: 'url'` for URL +- `x-native-type: 'set'` for Set +- `x-native-type: 'map'` for Map + +The built-in [JSON Schema Converters](/docs/openapi/openapi-specification#generating-specifications) handle these cases (with the exception of some experimental converters). Since this approach is not part of the official JSON Schema specification, if you use a custom converter, you may need to add the appropriate `x-native-type` metadata to your schemas to ensure proper coercion. +::: + +## Conversion Rules + +### String → Boolean + +Support specific string values (case-insensitive): + +- `'true'`, `'on'` → `true` +- `'false'`, `'off'` → `false` + +::: info +HTML `` elements submit `'on'` or `'off'` as values, so this conversion is especially useful for handling checkbox input in forms. +::: + +### String → Number + +Support valid numeric strings: + +- `'123'` → `123` +- `'3.14'` → `3.14` +- `'123.0'` → `123` + +### String/Number → BigInt + +Support valid numeric strings or numbers: + +- `'12345678901234567890'` → `12345678901234567890n` +- `12345678901234567890` → `12345678901234567890n` + +### String → Date + +Support ISO date/datetime strings: + +- `'2023-10-01'` → `new Date('2023-10-01')` +- `'2020-01-01T06:15Z'` → `new Date('2020-01-01T06:15Z')` +- `'2020-01-01T06:15:00Z'` → `new Date('2020-01-01T06:15:00Z')` +- `'2020-01-01T06:15:00.123Z'` → `new Date('2020-01-01T06:15:00.123Z')` + +### String → RegExp + +Support valid regular expression strings: + +- `'/^\\d+$/i'` → `new RegExp('^\\d+$', 'i')` +- `'/abc/'` → `new RegExp('abc')` + +### String → URL + +Support valid URL strings: + +- `'https://example.com'` → `new URL('https://example.com')` + +### Array → Set + +Support arrays of **unique values**: + +- `['apple', 'banana']` → `new Set(['apple', 'banana'])` + +### Array → Object + +Converts arrays to objects with numeric keys: + +- `['apple', 'banana']` → `{ 0: 'apple', 1: 'banana' }` + +::: info +This is particularly useful for [Bracket Notation](/docs/openapi/bracket-notation) when you need objects with numeric keys. +::: + +### Array → Map + +Support arrays of key-value pairs: + +- `[['key1', 'value1'], ['key2', 'value2']]` → `new Map([['key1', 'value1'], ['key2', 'value2']])` diff --git a/packages/json-schema/src/index.ts b/packages/json-schema/src/index.ts index 9d8a4c7b0..2444d2c65 100644 --- a/packages/json-schema/src/index.ts +++ b/packages/json-schema/src/index.ts @@ -1,2 +1,3 @@ export * from './coercer' +export * from './smart-coercion-plugin' export * from './types' diff --git a/playgrounds/contract-first/package.json b/playgrounds/contract-first/package.json index fda54df78..e428de7ac 100644 --- a/playgrounds/contract-first/package.json +++ b/playgrounds/contract-first/package.json @@ -11,6 +11,7 @@ "devDependencies": { "@orpc/client": "next", "@orpc/contract": "next", + "@orpc/json-schema": "next", "@orpc/openapi": "next", "@orpc/server": "next", "@orpc/tanstack-query": "next", diff --git a/playgrounds/contract-first/src/main.ts b/playgrounds/contract-first/src/main.ts index f175b7137..1e03ff6be 100644 --- a/playgrounds/contract-first/src/main.ts +++ b/playgrounds/contract-first/src/main.ts @@ -2,7 +2,8 @@ import { createServer } from 'node:http' import { OpenAPIHandler } from '@orpc/openapi/node' import { onError } from '@orpc/server' import { RPCHandler } from '@orpc/server/node' -import { ZodSmartCoercionPlugin, ZodToJsonSchemaConverter } from '@orpc/zod' +import { ZodToJsonSchemaConverter } from '@orpc/zod' +import { experimental_SmartCoercionPlugin as SmartCoercionPlugin } from '@orpc/json-schema' import { router } from './router' import { OpenAPIReferencePlugin } from '@orpc/openapi/plugins' import './polyfill' @@ -17,7 +18,11 @@ const openAPIHandler = new OpenAPIHandler(router, { }), ], plugins: [ - new ZodSmartCoercionPlugin(), + new SmartCoercionPlugin({ + schemaConverters: [ + new ZodToJsonSchemaConverter(), + ], + }), new OpenAPIReferencePlugin({ schemaConverters: [ new ZodToJsonSchemaConverter(), diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index dd111a87a..cf75517f1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -937,6 +937,9 @@ importers: '@orpc/contract': specifier: next version: link:../../packages/contract + '@orpc/json-schema': + specifier: next + version: link:../../packages/json-schema '@orpc/openapi': specifier: next version: link:../../packages/openapi From 096847968e08e5f8ad500ec91407c224619d8c0c Mon Sep 17 00:00:00 2001 From: unnoq Date: Thu, 10 Jul 2025 21:39:46 +0700 Subject: [PATCH 13/20] playgrounds --- playgrounds/astro/package.json | 1 + playgrounds/astro/src/pages/api/[...rest].ts | 9 +++++++-- playgrounds/next/package.json | 1 + playgrounds/next/src/app/api/[[...rest]]/route.ts | 9 +++++++-- playgrounds/nuxt/package.json | 1 + playgrounds/nuxt/server/routes/api/[...].ts | 9 +++++++-- playgrounds/solid-start/package.json | 1 + playgrounds/solid-start/src/routes/api/[...rest].ts | 9 +++++++-- playgrounds/svelte-kit/package.json | 1 + .../svelte-kit/src/routes/api/[...rest]/+server.ts | 9 +++++++-- playgrounds/tanstack-start/package.json | 1 + playgrounds/tanstack-start/src/routes/api/$.ts | 9 +++++++-- 12 files changed, 48 insertions(+), 12 deletions(-) diff --git a/playgrounds/astro/package.json b/playgrounds/astro/package.json index e7b4e880c..d14bdeabe 100644 --- a/playgrounds/astro/package.json +++ b/playgrounds/astro/package.json @@ -13,6 +13,7 @@ "@astrojs/check": "^0.9.4", "@astrojs/react": "^4.2.7", "@orpc/client": "next", + "@orpc/json-schema": "next", "@orpc/openapi": "next", "@orpc/react": "next", "@orpc/server": "next", diff --git a/playgrounds/astro/src/pages/api/[...rest].ts b/playgrounds/astro/src/pages/api/[...rest].ts index cccfd0d6f..a82207cb5 100644 --- a/playgrounds/astro/src/pages/api/[...rest].ts +++ b/playgrounds/astro/src/pages/api/[...rest].ts @@ -1,7 +1,8 @@ import '../../polyfill' import { OpenAPIHandler } from '@orpc/openapi/fetch' import { onError } from '@orpc/server' -import { ZodSmartCoercionPlugin, ZodToJsonSchemaConverter } from '@orpc/zod' +import { ZodToJsonSchemaConverter } from '@orpc/zod' +import { experimental_SmartCoercionPlugin as SmartCoercionPlugin } from '@orpc/json-schema' import { OpenAPIReferencePlugin } from '@orpc/openapi/plugins' import { router } from '../../router' import type { APIRoute } from 'astro' @@ -16,7 +17,11 @@ const handler = new OpenAPIHandler(router, { }), ], plugins: [ - new ZodSmartCoercionPlugin(), + new SmartCoercionPlugin({ + schemaConverters: [ + new ZodToJsonSchemaConverter(), + ], + }), new OpenAPIReferencePlugin({ schemaConverters: [ new ZodToJsonSchemaConverter(), diff --git a/playgrounds/next/package.json b/playgrounds/next/package.json index 25238bd4d..53b400cc0 100644 --- a/playgrounds/next/package.json +++ b/playgrounds/next/package.json @@ -11,6 +11,7 @@ }, "devDependencies": { "@orpc/client": "next", + "@orpc/json-schema": "next", "@orpc/openapi": "next", "@orpc/react": "next", "@orpc/server": "next", diff --git a/playgrounds/next/src/app/api/[[...rest]]/route.ts b/playgrounds/next/src/app/api/[[...rest]]/route.ts index 1a2ea4f8a..b803ef9b1 100644 --- a/playgrounds/next/src/app/api/[[...rest]]/route.ts +++ b/playgrounds/next/src/app/api/[[...rest]]/route.ts @@ -1,7 +1,8 @@ import { router } from '@/router' import { OpenAPIHandler } from '@orpc/openapi/fetch' import { onError } from '@orpc/server' -import { ZodSmartCoercionPlugin, ZodToJsonSchemaConverter } from '@orpc/zod' +import { ZodToJsonSchemaConverter } from '@orpc/zod' +import { experimental_SmartCoercionPlugin as SmartCoercionPlugin } from '@orpc/json-schema' import { OpenAPIReferencePlugin } from '@orpc/openapi/plugins' import '../../../polyfill' import { NewUserSchema, UserSchema } from '@/schemas/user' @@ -15,7 +16,11 @@ const openAPIHandler = new OpenAPIHandler(router, { }), ], plugins: [ - new ZodSmartCoercionPlugin(), + new SmartCoercionPlugin({ + schemaConverters: [ + new ZodToJsonSchemaConverter(), + ], + }), new OpenAPIReferencePlugin({ schemaConverters: [ new ZodToJsonSchemaConverter(), diff --git a/playgrounds/nuxt/package.json b/playgrounds/nuxt/package.json index c3f102d50..2acff6214 100644 --- a/playgrounds/nuxt/package.json +++ b/playgrounds/nuxt/package.json @@ -11,6 +11,7 @@ }, "devDependencies": { "@orpc/client": "next", + "@orpc/json-schema": "next", "@orpc/openapi": "next", "@orpc/server": "next", "@orpc/tanstack-query": "next", diff --git a/playgrounds/nuxt/server/routes/api/[...].ts b/playgrounds/nuxt/server/routes/api/[...].ts index 1b1ba230d..35ac7fde4 100644 --- a/playgrounds/nuxt/server/routes/api/[...].ts +++ b/playgrounds/nuxt/server/routes/api/[...].ts @@ -1,6 +1,7 @@ import { OpenAPIHandler } from '@orpc/openapi/node' import { onError } from '@orpc/server' -import { ZodSmartCoercionPlugin, ZodToJsonSchemaConverter } from '@orpc/zod' +import { ZodToJsonSchemaConverter } from '@orpc/zod' +import { experimental_SmartCoercionPlugin as SmartCoercionPlugin } from '@orpc/json-schema' import { router } from '~/server/router' import { OpenAPIReferencePlugin } from '@orpc/openapi/plugins' import { NewUserSchema, UserSchema } from '~/server/schemas/user' @@ -14,7 +15,11 @@ const openAPIHandler = new OpenAPIHandler(router, { }), ], plugins: [ - new ZodSmartCoercionPlugin(), + new SmartCoercionPlugin({ + schemaConverters: [ + new ZodToJsonSchemaConverter(), + ], + }), new OpenAPIReferencePlugin({ schemaConverters: [ new ZodToJsonSchemaConverter(), diff --git a/playgrounds/solid-start/package.json b/playgrounds/solid-start/package.json index 1242d4245..d41605408 100644 --- a/playgrounds/solid-start/package.json +++ b/playgrounds/solid-start/package.json @@ -9,6 +9,7 @@ }, "devDependencies": { "@orpc/client": "next", + "@orpc/json-schema": "next", "@orpc/openapi": "next", "@orpc/server": "next", "@orpc/tanstack-query": "next", diff --git a/playgrounds/solid-start/src/routes/api/[...rest].ts b/playgrounds/solid-start/src/routes/api/[...rest].ts index f94c87680..fc944ccfc 100644 --- a/playgrounds/solid-start/src/routes/api/[...rest].ts +++ b/playgrounds/solid-start/src/routes/api/[...rest].ts @@ -1,7 +1,8 @@ import type { APIEvent } from '@solidjs/start/server' import { OpenAPIHandler } from '@orpc/openapi/fetch' import { router } from '~/router' -import { ZodSmartCoercionPlugin, ZodToJsonSchemaConverter } from '@orpc/zod' +import { ZodToJsonSchemaConverter } from '@orpc/zod' +import { experimental_SmartCoercionPlugin as SmartCoercionPlugin } from '@orpc/json-schema' import { onError } from '@orpc/server' import { OpenAPIReferencePlugin } from '@orpc/openapi/plugins' import '~/polyfill' @@ -16,7 +17,11 @@ const handler = new OpenAPIHandler(router, { }), ], plugins: [ - new ZodSmartCoercionPlugin(), + new SmartCoercionPlugin({ + schemaConverters: [ + new ZodToJsonSchemaConverter(), + ], + }), new OpenAPIReferencePlugin({ schemaConverters: [ new ZodToJsonSchemaConverter(), diff --git a/playgrounds/svelte-kit/package.json b/playgrounds/svelte-kit/package.json index 4ffa636ad..c8fbb0dae 100644 --- a/playgrounds/svelte-kit/package.json +++ b/playgrounds/svelte-kit/package.json @@ -13,6 +13,7 @@ }, "devDependencies": { "@orpc/client": "next", + "@orpc/json-schema": "next", "@orpc/openapi": "next", "@orpc/server": "next", "@orpc/tanstack-query": "next", diff --git a/playgrounds/svelte-kit/src/routes/api/[...rest]/+server.ts b/playgrounds/svelte-kit/src/routes/api/[...rest]/+server.ts index 49b52c2a1..20d223a89 100644 --- a/playgrounds/svelte-kit/src/routes/api/[...rest]/+server.ts +++ b/playgrounds/svelte-kit/src/routes/api/[...rest]/+server.ts @@ -2,7 +2,8 @@ import { OpenAPIHandler } from '@orpc/openapi/fetch' import { router } from '../../../router' import { onError } from '@orpc/server' import type { RequestHandler } from '@sveltejs/kit' -import { ZodSmartCoercionPlugin, ZodToJsonSchemaConverter } from '@orpc/zod' +import { ZodToJsonSchemaConverter } from '@orpc/zod' +import { experimental_SmartCoercionPlugin as SmartCoercionPlugin } from '@orpc/json-schema' import { OpenAPIReferencePlugin } from '@orpc/openapi/plugins' import '../../../polyfill' import { NewUserSchema, UserSchema } from '../../../schemas/user' @@ -16,7 +17,11 @@ const handler = new OpenAPIHandler(router, { }), ], plugins: [ - new ZodSmartCoercionPlugin(), + new SmartCoercionPlugin({ + schemaConverters: [ + new ZodToJsonSchemaConverter(), + ], + }), new OpenAPIReferencePlugin({ schemaConverters: [ new ZodToJsonSchemaConverter(), diff --git a/playgrounds/tanstack-start/package.json b/playgrounds/tanstack-start/package.json index 085a9a472..5d92c0a67 100644 --- a/playgrounds/tanstack-start/package.json +++ b/playgrounds/tanstack-start/package.json @@ -11,6 +11,7 @@ }, "devDependencies": { "@orpc/client": "next", + "@orpc/json-schema": "next", "@orpc/openapi": "next", "@orpc/react": "next", "@orpc/server": "next", diff --git a/playgrounds/tanstack-start/src/routes/api/$.ts b/playgrounds/tanstack-start/src/routes/api/$.ts index 4791f57eb..881457ab4 100644 --- a/playgrounds/tanstack-start/src/routes/api/$.ts +++ b/playgrounds/tanstack-start/src/routes/api/$.ts @@ -1,7 +1,8 @@ import '~/polyfill' import { OpenAPIHandler } from '@orpc/openapi/fetch' -import { ZodSmartCoercionPlugin, ZodToJsonSchemaConverter } from '@orpc/zod' +import { ZodToJsonSchemaConverter } from '@orpc/zod' +import { experimental_SmartCoercionPlugin as SmartCoercionPlugin } from '@orpc/json-schema' import { createServerFileRoute } from '@tanstack/react-start/server' import { router } from '~/router/index' import { onError } from '@orpc/server' @@ -17,7 +18,11 @@ const handler = new OpenAPIHandler(router, { }), ], plugins: [ - new ZodSmartCoercionPlugin(), + new SmartCoercionPlugin({ + schemaConverters: [ + new ZodToJsonSchemaConverter(), + ], + }), new OpenAPIReferencePlugin({ schemaConverters: [ new ZodToJsonSchemaConverter(), From 1f6f932ed7e0fdebcfb7ab1dad2d44940267d6f8 Mon Sep 17 00:00:00 2001 From: unnoq Date: Fri, 11 Jul 2025 06:57:40 +0700 Subject: [PATCH 14/20] wip --- packages/json-schema/src/coercer.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/json-schema/src/coercer.ts b/packages/json-schema/src/coercer.ts index b66436dea..3c021079c 100644 --- a/packages/json-schema/src/coercer.ts +++ b/packages/json-schema/src/coercer.ts @@ -28,7 +28,7 @@ export class experimental_JsonSchemaCoercer { if (typeof schema.$ref === 'string') { const refSchema = options?.components?.[schema.$ref] - if (refSchema) { + if (refSchema !== undefined) { const [subSatisfied, subCoerced] = this.#coerce(refSchema, coerced, options) coerced = subCoerced @@ -36,7 +36,7 @@ export class experimental_JsonSchemaCoercer { } } - const enumValues = schema.enum ?? (schema.const !== undefined ? [schema.const] : undefined) + const enumValues = schema.const !== undefined ? [schema.const] : schema.enum if (enumValues !== undefined && !enumValues.includes(coerced)) { if (typeof coerced === 'string') { const numberValue = this.#stringToNumber(coerced) From b68f5cf22722ab66fa16001d7fea2e90cdcaea5c Mon Sep 17 00:00:00 2001 From: unnoq Date: Fri, 11 Jul 2025 08:13:58 +0700 Subject: [PATCH 15/20] wip --- packages/json-schema/src/coercer.ts | 13 +++--- packages/json-schema/src/types.ts | 9 ++++ packages/zod/package.json | 1 + packages/zod/src/converter.test.ts | 33 ++++++++------ packages/zod/src/converter.ts | 43 ++++++++++++++----- packages/zod/src/zod4/coercer.ts | 3 ++ .../zod/src/zod4/converter.native.test.ts | 2 +- .../zod/src/zod4/converter.number.test.ts | 2 +- .../zod/src/zod4/converter.structure.test.ts | 12 +++--- packages/zod/src/zod4/converter.ts | 25 ++++++++--- packages/zod/tests/shared.ts | 4 +- packages/zod/tsconfig.json | 1 + pnpm-lock.yaml | 21 +++++++++ 13 files changed, 121 insertions(+), 48 deletions(-) diff --git a/packages/json-schema/src/coercer.ts b/packages/json-schema/src/coercer.ts index 3c021079c..7878bc231 100644 --- a/packages/json-schema/src/coercer.ts +++ b/packages/json-schema/src/coercer.ts @@ -1,5 +1,6 @@ import type { JsonSchema } from './types' import { guard, isObject, toArray } from '@orpc/shared' +import { JsonSchemaXNativeType } from './types' export interface experimental_JsonSchemaCoerceOptions { components?: Record @@ -214,7 +215,7 @@ export class experimental_JsonSchemaCoercer { if ('x-native-type' in schema && typeof schema['x-native-type'] === 'string') { switch (schema['x-native-type']) { - case 'date': { + case JsonSchemaXNativeType.Date: { if (typeof coerced === 'string') { coerced = this.#stringToDate(coerced) } @@ -225,7 +226,7 @@ export class experimental_JsonSchemaCoercer { break } - case 'bigint': { + case JsonSchemaXNativeType.BigInt: { switch (typeof coerced) { case 'string': coerced = this.#stringToBigInt(coerced) @@ -241,7 +242,7 @@ export class experimental_JsonSchemaCoercer { break } - case 'regexp': { + case JsonSchemaXNativeType.RegExp: { if (typeof coerced === 'string') { coerced = this.#stringToRegExp(coerced) } @@ -252,7 +253,7 @@ export class experimental_JsonSchemaCoercer { break } - case 'url': { + case JsonSchemaXNativeType.Url: { if (typeof coerced === 'string') { coerced = this.#stringToURL(coerced) } @@ -263,7 +264,7 @@ export class experimental_JsonSchemaCoercer { break } - case 'set': { + case JsonSchemaXNativeType.Set: { if (Array.isArray(coerced)) { coerced = this.#arrayToSet(coerced) } @@ -274,7 +275,7 @@ export class experimental_JsonSchemaCoercer { break } - case 'map': { + case JsonSchemaXNativeType.Map: { if (Array.isArray(coerced)) { coerced = this.#arrayToMap(coerced) } diff --git a/packages/json-schema/src/types.ts b/packages/json-schema/src/types.ts index 4c30b68d8..2cf5ee745 100644 --- a/packages/json-schema/src/types.ts +++ b/packages/json-schema/src/types.ts @@ -7,3 +7,12 @@ export type JsonSchema = | Draft2020.JSONSchema | Draft2019.JSONSchema | Draft07.JSONSchema + +export enum JsonSchemaXNativeType { + BigInt = 'bigint', + RegExp = 'regexp', + Date = 'date', + Url = 'url', + Set = 'set', + Map = 'map', +} diff --git a/packages/zod/package.json b/packages/zod/package.json index 2eaf2a025..29fc092fd 100644 --- a/packages/zod/package.json +++ b/packages/zod/package.json @@ -45,6 +45,7 @@ "zod": ">=3.24.2" }, "dependencies": { + "@orpc/json-schema": "workspace:*", "@orpc/openapi": "workspace:*", "@orpc/shared": "workspace:*", "escape-string-regexp": "^5.0.0", diff --git a/packages/zod/src/converter.test.ts b/packages/zod/src/converter.test.ts index 4b07c451b..ea8ad306d 100644 --- a/packages/zod/src/converter.test.ts +++ b/packages/zod/src/converter.test.ts @@ -11,8 +11,8 @@ import { url } from './schemas/url' type SchemaTestCase = { schema: ZodTypeAny - input: [boolean, JSONSchema] - output?: [boolean, JSONSchema] + input: [boolean, JSONSchema & Record] + output?: [boolean, JSONSchema & Record] ignoreZodToJsonSchema?: boolean } @@ -143,7 +143,7 @@ const numberCases: SchemaTestCase[] = [ }, { schema: z.bigint(), - input: [true, { type: 'string', pattern: '^-?[0-9]+$' }], + input: [true, { 'type': 'string', 'pattern': '^-?[0-9]+$', 'x-native-type': 'bigint' }], ignoreZodToJsonSchema: true, }, { @@ -166,7 +166,8 @@ const nativeCases: SchemaTestCase[] = [ }, { schema: z.date(), - input: [true, { type: 'string', format: 'date-time' }], + input: [true, { 'type': 'string', 'format': 'date-time', 'x-native-type': 'date' }], + ignoreZodToJsonSchema: true, }, { schema: z.null(), @@ -342,12 +343,12 @@ const extendSchemaCases: SchemaTestCase[] = [ }, { schema: regexp(), - input: [true, { type: 'string', pattern: '^\\/(.*)\\/([a-z]*)$' }], + input: [true, { 'type': 'string', 'pattern': '^\\/(.*)\\/([a-z]*)$', 'x-native-type': 'regexp' }], ignoreZodToJsonSchema: true, }, { schema: url(), - input: [true, { type: 'string', format: 'uri' }], + input: [true, { 'type': 'string', 'format': 'uri', 'x-native-type': 'url' }], ignoreZodToJsonSchema: true, }, { @@ -536,9 +537,10 @@ describe.each([ expect(required).toEqual(true) expect(json).toEqual({ - type: 'array', - uniqueItems: true, - items: arrayItemJsonSchema, + 'type': 'array', + 'uniqueItems': true, + 'items': arrayItemJsonSchema, + 'x-native-type': 'set', }) if (!ignoreZodToJsonSchema) { @@ -548,7 +550,8 @@ describe.each([ items: expectedRequired ? expectedJson : { anyOf: [{ not: {} }, expectedJson] }, }).toEqual({ ...zodToJsonSchema(testSchema, { target: 'jsonSchema2019-09', pipeStrategy: strategy, $refStrategy: 'none' }), - $schema: undefined, + '$schema': undefined, + 'x-native-type': undefined, }) } }) @@ -559,8 +562,8 @@ describe.each([ expect(required).toEqual(true) expect(json).toEqual({ - type: 'array', - items: { + 'type': 'array', + 'items': { type: 'array', maxItems: 2, minItems: 2, @@ -569,6 +572,7 @@ describe.each([ { anyOf: [expectedJson, strategy === 'input' ? { not: {} } : { type: 'null' }] }, ], }, + 'x-native-type': 'map', }) if (!ignoreZodToJsonSchema) { @@ -585,8 +589,9 @@ describe.each([ }, }).toEqual({ ...zodToJsonSchema(testSchema, { target: 'jsonSchema2019-09', pipeStrategy: strategy, $refStrategy: 'none' }), - $schema: undefined, - maxItems: undefined, + '$schema': undefined, + 'maxItems': undefined, + 'x-native-type': undefined, }) } }) diff --git a/packages/zod/src/converter.ts b/packages/zod/src/converter.ts index dd40599b5..04d14a2a3 100644 --- a/packages/zod/src/converter.ts +++ b/packages/zod/src/converter.ts @@ -32,6 +32,7 @@ import type { ZodUnion, ZodUnionOptions, } from 'zod' +import { JsonSchemaXNativeType } from '@orpc/json-schema' import { JSONSchemaFormat } from '@orpc/openapi' import { toArray } from '@orpc/shared' import escapeStringRegexp from 'escape-string-regexp' @@ -282,7 +283,11 @@ export class ZodToJsonSchemaConverter implements ConditionalSchemaConverter { } case ZodFirstPartyTypeKind.ZodBigInt: { - const json: JSONSchema = { type: 'string', pattern: '^-?[0-9]+$' } + const json: JSONSchema & { 'x-native-type': JsonSchemaXNativeType.BigInt } = { + 'type': 'string', + 'pattern': '^-?[0-9]+$', + 'x-native-type': JsonSchemaXNativeType.BigInt, + } // WARN: ignore checks @@ -300,7 +305,11 @@ export class ZodToJsonSchemaConverter implements ConditionalSchemaConverter { } case ZodFirstPartyTypeKind.ZodDate: { - const schema: JSONSchema = { type: 'string', format: JSONSchemaFormat.DateTime } + const schema: JSONSchema & { 'x-native-type': JsonSchemaXNativeType.Date } = { + 'type': 'string', + 'format': JSONSchemaFormat.DateTime, + 'x-native-type': JsonSchemaXNativeType.Date, + } // WARN: ignore checks @@ -458,7 +467,11 @@ export class ZodToJsonSchemaConverter implements ConditionalSchemaConverter { case ZodFirstPartyTypeKind.ZodSet: { const schema_ = schema as ZodSet - const json: JSONSchema = { type: 'array', uniqueItems: true } + const json: JSONSchema & { 'x-native-type': JsonSchemaXNativeType.Set } = { + 'type': 'array', + 'uniqueItems': true, + 'x-native-type': JsonSchemaXNativeType.Set, + } const [itemRequired, itemJson] = this.convert(schema_._def.valueType, options, lazyDepth, false, false, structureDepth + 1) @@ -473,9 +486,9 @@ export class ZodToJsonSchemaConverter implements ConditionalSchemaConverter { const [keyRequired, keyJson] = this.convert(schema_._def.keyType, options, lazyDepth, false, false, structureDepth + 1) const [valueRequired, valueJson] = this.convert(schema_._def.valueType, options, lazyDepth, false, false, structureDepth + 1) - return [true, { - type: 'array', - items: { + const json: JSONSchema & { 'x-native-type': JsonSchemaXNativeType.Map } = { + 'type': 'array', + 'items': { type: 'array', prefixItems: [ this.#toArrayItemJsonSchema(keyRequired, keyJson, options.strategy), @@ -484,7 +497,10 @@ export class ZodToJsonSchemaConverter implements ConditionalSchemaConverter { maxItems: 2, minItems: 2, }, - }] + 'x-native-type': JsonSchemaXNativeType.Map, + } + + return [true, json] } case ZodFirstPartyTypeKind.ZodUnion: @@ -624,7 +640,7 @@ export class ZodToJsonSchemaConverter implements ConditionalSchemaConverter { return [true, this.unsupportedJsonSchema] } - #handleCustomZodDef(def: ZodTypeDef): Exclude | undefined { + #handleCustomZodDef(def: ZodTypeDef): Exclude, boolean> | undefined { const customZodDef = getCustomZodDef(def) if (!customZodDef) { @@ -642,13 +658,18 @@ export class ZodToJsonSchemaConverter implements ConditionalSchemaConverter { case 'regexp': { return { - type: 'string', - pattern: '^\\/(.*)\\/([a-z]*)$', + 'type': 'string', + 'pattern': '^\\/(.*)\\/([a-z]*)$', + 'x-native-type': JsonSchemaXNativeType.RegExp, } } case 'url': { - return { type: 'string', format: JSONSchemaFormat.URI } + return { + 'type': 'string', + 'format': JSONSchemaFormat.URI, + 'x-native-type': JsonSchemaXNativeType.Url, + } } /* v8 ignore next 3 */ diff --git a/packages/zod/src/zod4/coercer.ts b/packages/zod/src/zod4/coercer.ts index 00d0417b5..f2a57253f 100644 --- a/packages/zod/src/zod4/coercer.ts +++ b/packages/zod/src/zod4/coercer.ts @@ -24,6 +24,9 @@ import type { } from 'zod/v4/core' import { guard, isObject } from '@orpc/shared' +/** + * @deprecated Use [Smart Coercion Plugin](https://orpc.unnoq.com/docs/openapi/plugins/smart-coercion) instead. + */ export class experimental_ZodSmartCoercionPlugin implements StandardHandlerPlugin { init(options: StandardHandlerOptions): void { options.clientInterceptors ??= [] diff --git a/packages/zod/src/zod4/converter.native.test.ts b/packages/zod/src/zod4/converter.native.test.ts index e501c7397..1133692fd 100644 --- a/packages/zod/src/zod4/converter.native.test.ts +++ b/packages/zod/src/zod4/converter.native.test.ts @@ -20,7 +20,7 @@ testSchemaConverter([ { name: 'date', schema: z.date(), - input: [true, { type: 'string', format: 'date-time' }], + input: [true, { 'type': 'string', 'format': 'date-time', 'x-native-type': 'date' }], }, { name: 'null', diff --git a/packages/zod/src/zod4/converter.number.test.ts b/packages/zod/src/zod4/converter.number.test.ts index e6ac8ddf0..ee8df4a6f 100644 --- a/packages/zod/src/zod4/converter.number.test.ts +++ b/packages/zod/src/zod4/converter.number.test.ts @@ -35,7 +35,7 @@ testSchemaConverter([ { name: 'bigint', schema: z.bigint(), - input: [true, { type: 'string', pattern: '^-?[0-9]+$' }], + input: [true, { 'type': 'string', 'pattern': '^-?[0-9]+$', 'x-native-type': 'bigint' }], }, { name: 'nan', diff --git a/packages/zod/src/zod4/converter.structure.test.ts b/packages/zod/src/zod4/converter.structure.test.ts index 5f48af803..334d55610 100644 --- a/packages/zod/src/zod4/converter.structure.test.ts +++ b/packages/zod/src/zod4/converter.structure.test.ts @@ -58,13 +58,13 @@ testSchemaConverter([ { name: 'set(z.string())', schema: z.set(z.string()), - input: [true, { type: 'array', uniqueItems: true, items: { type: 'string' } }], + input: [true, { 'type': 'array', 'uniqueItems': true, 'items': { type: 'string' }, 'x-native-type': 'set' }], }, { name: 'set(z.string().optional())', schema: z.set(z.string().optional()), - input: [true, { type: 'array', uniqueItems: true, items: { type: 'string' } }], - output: [true, { type: 'array', uniqueItems: true, items: { anyOf: [{ type: 'string' }, { type: 'null' }] } }], + input: [true, { 'type': 'array', 'uniqueItems': true, 'items': { type: 'string' }, 'x-native-type': 'set' }], + output: [true, { 'type': 'array', 'uniqueItems': true, 'items': { anyOf: [{ type: 'string' }, { type: 'null' }] }, 'x-native-type': 'set' }], }, { name: 'object({ value: z.string() })', @@ -109,12 +109,12 @@ testSchemaConverter([ { name: 'map(z.string(), z.number())', schema: z.map(z.string(), z.number()), - input: [true, { type: 'array', items: { type: 'array', prefixItems: [{ type: 'string' }, { type: 'number' }], maxItems: 2, minItems: 2 } }], + input: [true, { 'type': 'array', 'items': { type: 'array', prefixItems: [{ type: 'string' }, { type: 'number' }], maxItems: 2, minItems: 2 }, 'x-native-type': 'map' }], }, { name: 'map(z.string().optional(), z.number().optional())', schema: z.map(z.string().optional(), z.number().optional()), - input: [true, { type: 'array', items: { type: 'array', prefixItems: [{ type: 'string' }, { type: 'number' }], maxItems: 2, minItems: 2 } }], - output: [true, { type: 'array', items: { type: 'array', prefixItems: [{ anyOf: [{ type: 'string' }, { type: 'null' }] }, { anyOf: [{ type: 'number' }, { type: 'null' }] }], maxItems: 2, minItems: 2 } }], + input: [true, { 'type': 'array', 'items': { type: 'array', prefixItems: [{ type: 'string' }, { type: 'number' }], maxItems: 2, minItems: 2 }, 'x-native-type': 'map' }], + output: [true, { 'type': 'array', 'items': { type: 'array', prefixItems: [{ anyOf: [{ type: 'string' }, { type: 'null' }] }, { anyOf: [{ type: 'number' }, { type: 'null' }] }], maxItems: 2, minItems: 2 }, 'x-native-type': 'map' }], }, ]) diff --git a/packages/zod/src/zod4/converter.ts b/packages/zod/src/zod4/converter.ts index a0bdbce56..e71f705be 100644 --- a/packages/zod/src/zod4/converter.ts +++ b/packages/zod/src/zod4/converter.ts @@ -27,6 +27,7 @@ import type { $ZodType, $ZodUnion, } from 'zod/v4/core' +import { JsonSchemaXNativeType } from '@orpc/json-schema' import { JSONSchemaContentEncoding, JSONSchemaFormat } from '@orpc/openapi' import { intercept, toArray } from '@orpc/shared' import { @@ -233,11 +234,19 @@ export class experimental_ZodToJsonSchemaConverter implements ConditionalSchemaC } case 'bigint': { - return [true, { type: 'string', pattern: '^-?[0-9]+$' }] + return [true, { + 'type': 'string', + 'pattern': '^-?[0-9]+$', + 'x-native-type': JsonSchemaXNativeType.BigInt, + }] } case 'date': { - return [true, { type: 'string', format: JSONSchemaFormat.DateTime }] + return [true, { + 'type': 'string', + 'format': JSONSchemaFormat.DateTime, + 'x-native-type': JsonSchemaXNativeType.Date, + }] } case 'null': { @@ -395,8 +404,8 @@ export class experimental_ZodToJsonSchemaConverter implements ConditionalSchemaC const map = schema as $ZodMap return [true, { - type: 'array', - items: { + 'type': 'array', + 'items': { type: 'array', prefixItems: [ this.#handleArrayItemJsonSchema(this.#convert(map._zod.def.keyType, options, lazyDepth, structureDepth + 1), options), @@ -405,15 +414,17 @@ export class experimental_ZodToJsonSchemaConverter implements ConditionalSchemaC maxItems: 2, minItems: 2, }, + 'x-native-type': JsonSchemaXNativeType.Map, }] } case 'set': { const set = schema as $ZodSet return [true, { - type: 'array', - uniqueItems: true, - items: this.#handleArrayItemJsonSchema(this.#convert(set._zod.def.valueType, options, lazyDepth, structureDepth + 1), options), + 'type': 'array', + 'uniqueItems': true, + 'items': this.#handleArrayItemJsonSchema(this.#convert(set._zod.def.valueType, options, lazyDepth, structureDepth + 1), options), + 'x-native-type': JsonSchemaXNativeType.Set, }] } diff --git a/packages/zod/tests/shared.ts b/packages/zod/tests/shared.ts index a3aef83b4..6faa84218 100644 --- a/packages/zod/tests/shared.ts +++ b/packages/zod/tests/shared.ts @@ -8,8 +8,8 @@ import { export interface SchemaConverterTestCase { name: string schema: AnySchema - input: [boolean, JSONSchema] - output?: [boolean, JSONSchema] + input: [boolean, JSONSchema & Record] + output?: [boolean, JSONSchema & Record] } export function testSchemaConverter(cases: SchemaConverterTestCase[]) { diff --git a/packages/zod/tsconfig.json b/packages/zod/tsconfig.json index dfac7b7ee..d22698b72 100644 --- a/packages/zod/tsconfig.json +++ b/packages/zod/tsconfig.json @@ -2,6 +2,7 @@ "extends": "../../tsconfig.lib.json", "references": [ { "path": "../openapi" }, + { "path": "../json-schema" }, { "path": "../contract" }, { "path": "../server" }, { "path": "../shared" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cf75517f1..b6d133a5e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -765,6 +765,9 @@ importers: '@orpc/contract': specifier: workspace:* version: link:../contract + '@orpc/json-schema': + specifier: workspace:* + version: link:../json-schema '@orpc/openapi': specifier: workspace:* version: link:../openapi @@ -799,6 +802,9 @@ importers: '@orpc/client': specifier: next version: link:../../packages/client + '@orpc/json-schema': + specifier: next + version: link:../../packages/json-schema '@orpc/openapi': specifier: next version: link:../../packages/openapi @@ -1120,6 +1126,9 @@ importers: '@orpc/client': specifier: next version: link:../../packages/client + '@orpc/json-schema': + specifier: next + version: link:../../packages/json-schema '@orpc/openapi': specifier: next version: link:../../packages/openapi @@ -1168,6 +1177,9 @@ importers: '@orpc/client': specifier: next version: link:../../packages/client + '@orpc/json-schema': + specifier: next + version: link:../../packages/json-schema '@orpc/openapi': specifier: next version: link:../../packages/openapi @@ -1201,6 +1213,9 @@ importers: '@orpc/client': specifier: next version: link:../../packages/client + '@orpc/json-schema': + specifier: next + version: link:../../packages/json-schema '@orpc/openapi': specifier: next version: link:../../packages/openapi @@ -1240,6 +1255,9 @@ importers: '@orpc/client': specifier: next version: link:../../packages/client + '@orpc/json-schema': + specifier: next + version: link:../../packages/json-schema '@orpc/openapi': specifier: next version: link:../../packages/openapi @@ -1285,6 +1303,9 @@ importers: '@orpc/client': specifier: next version: link:../../packages/client + '@orpc/json-schema': + specifier: next + version: link:../../packages/json-schema '@orpc/openapi': specifier: next version: link:../../packages/openapi From 51b6ebb3b6363c847448d82a16c2acfc3b30a4f3 Mon Sep 17 00:00:00 2001 From: unnoq Date: Fri, 11 Jul 2025 08:26:16 +0700 Subject: [PATCH 16/20] improve --- apps/content/.vitepress/config.ts | 2 +- pnpm-lock.yaml | 4871 ++++++++++++----------------- 2 files changed, 2035 insertions(+), 2838 deletions(-) diff --git a/apps/content/.vitepress/config.ts b/apps/content/.vitepress/config.ts index 11640b7ae..e5a2c26a7 100644 --- a/apps/content/.vitepress/config.ts +++ b/apps/content/.vitepress/config.ts @@ -209,7 +209,7 @@ export default withMermaid(defineConfig({ items: [ { text: 'OpenAPI Reference (Swagger)', link: '/docs/openapi/plugins/openapi-reference' }, { text: 'Smart Coercion', link: '/docs/openapi/plugins/smart-coercion' }, - { text: 'Zod Smart Coercion', link: '/docs/openapi/plugins/zod-smart-coercion' }, + { text: 'Zod Smart Coercion (old)', link: '/docs/openapi/plugins/zod-smart-coercion' }, ], }, { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b6d133a5e..c5fea0bd0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -16,7 +16,7 @@ importers: version: 0.8.10(@solidjs/router@0.15.3(solid-js@1.9.7))(solid-js@1.9.7) '@sveltejs/vite-plugin-svelte': specifier: ^5.1.0 - version: 5.1.0(svelte@5.35.2)(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) + version: 5.1.0(svelte@5.35.6)(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) '@testing-library/jest-dom': specifier: ^6.6.3 version: 6.6.3 @@ -25,7 +25,7 @@ importers: version: 16.3.0(@testing-library/dom@10.4.0)(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@testing-library/svelte': specifier: ^5.2.7 - version: 5.2.8(svelte@5.35.2)(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))(vitest@3.2.4) + version: 5.2.8(svelte@5.35.6)(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))(vitest@3.2.4) '@testing-library/user-event': specifier: ^14.6.1 version: 14.6.1(@testing-library/dom@10.4.0) @@ -34,7 +34,7 @@ importers: version: 7.6.13 '@types/node': specifier: ^22.15.18 - version: 22.15.30 + version: 22.16.3 '@vitest/coverage-v8': specifier: ^3.2.4 version: 3.2.4(vitest@3.2.4) @@ -64,7 +64,7 @@ importers: version: 16.1.2 msw: specifier: ^2.10.3 - version: 2.10.3(@types/node@22.15.30)(typescript@5.8.3) + version: 2.10.3(@types/node@22.16.3)(typescript@5.8.3) simple-git-hooks: specifier: ^2.11.1 version: 2.13.0 @@ -76,10 +76,10 @@ importers: version: 3.5.0(typescript@5.8.3)(vue@3.5.17(typescript@5.8.3)) vite-plugin-solid: specifier: ^2.11.7 - version: 2.11.7(@testing-library/jest-dom@6.6.3)(solid-js@1.9.7)(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) + version: 2.11.7(@testing-library/jest-dom@6.6.3)(solid-js@1.9.7)(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) vitest: specifier: ^3.2.4 - version: 3.2.4(@types/debug@4.1.12)(@types/node@22.15.30)(@vitest/ui@3.2.4)(jiti@2.4.2)(jsdom@26.1.0)(msw@2.10.3(@types/node@22.15.30)(typescript@5.8.3))(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) + version: 3.2.4(@types/debug@4.1.12)(@types/node@22.16.3)(@vitest/ui@3.2.4)(jiti@2.4.2)(jsdom@26.1.0)(msw@2.10.3(@types/node@22.16.3)(typescript@5.8.3))(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) apps/content: devDependencies: @@ -130,25 +130,25 @@ importers: version: 3.7.0(@nuxt/kit@3.17.6(magicast@0.3.5))(typescript@5.8.3) '@tanstack/react-query': specifier: ^5.81.5 - version: 5.81.5(react@19.1.0) + version: 5.82.0(react@19.1.0) '@tanstack/solid-query': specifier: ^5.81.5 - version: 5.81.5(solid-js@1.9.7) + version: 5.82.0(solid-js@1.9.7) '@tanstack/svelte-query': specifier: ^5.81.5 - version: 5.81.5(svelte@5.35.2) + version: 5.82.0(svelte@5.35.6) '@tanstack/vue-query': specifier: ^5.81.5 - version: 5.81.5(vue@3.5.17(typescript@5.8.3)) + version: 5.82.0(vue@3.5.17(typescript@5.8.3)) '@types/node': specifier: ^22.15.18 - version: 22.15.30 + version: 22.16.3 mermaid: specifier: ^11.8.0 - version: 11.8.0 + version: 11.8.1 openai: specifier: ^5.8.2 - version: 5.8.2(ws@8.18.3)(zod@3.25.74) + version: 5.9.0(ws@8.18.3)(zod@3.25.76) pinia: specifier: ^3.0.2 version: 3.0.3(typescript@5.8.3)(vue@3.5.17(typescript@5.8.3)) @@ -157,22 +157,22 @@ importers: version: 2.2.2 svelte: specifier: ^5.35.2 - version: 5.35.2 + version: 5.35.6 vitepress: specifier: 1.6.3 - version: 1.6.3(@algolia/client-search@5.23.3)(@types/node@22.15.30)(@types/react@19.1.8)(fuse.js@7.1.0)(jwt-decode@4.0.0)(postcss@8.5.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(search-insights@2.17.3)(terser@5.43.1)(typescript@5.8.3) + version: 1.6.3(@algolia/client-search@5.32.0)(@types/node@22.16.3)(@types/react@19.1.8)(fuse.js@7.1.0)(jwt-decode@4.0.0)(postcss@8.5.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(search-insights@2.17.3)(terser@5.43.1)(typescript@5.8.3) vitepress-plugin-group-icons: specifier: ^1.6.1 - version: 1.6.1(markdown-it@14.1.0)(vite@5.4.18(@types/node@22.15.30)(terser@5.43.1)) + version: 1.6.1(markdown-it@14.1.0)(vite@5.4.19(@types/node@22.16.3)(terser@5.43.1)) vitepress-plugin-llms: specifier: ^1.6.0 - version: 1.6.0 + version: 1.7.0 vitepress-plugin-mermaid: specifier: ^2.0.17 - version: 2.0.17(mermaid@11.8.0)(vitepress@1.6.3(@algolia/client-search@5.23.3)(@types/node@22.15.30)(@types/react@19.1.8)(fuse.js@7.1.0)(jwt-decode@4.0.0)(postcss@8.5.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(search-insights@2.17.3)(terser@5.43.1)(typescript@5.8.3)) + version: 2.0.17(mermaid@11.8.1)(vitepress@1.6.3(@algolia/client-search@5.32.0)(@types/node@22.16.3)(@types/react@19.1.8)(fuse.js@7.1.0)(jwt-decode@4.0.0)(postcss@8.5.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(search-insights@2.17.3)(terser@5.43.1)(typescript@5.8.3)) vitepress-plugin-shiki-twoslash: specifier: ^0.0.6 - version: 0.0.6(typescript@5.8.3)(vitepress@1.6.3(@algolia/client-search@5.23.3)(@types/node@22.15.30)(@types/react@19.1.8)(fuse.js@7.1.0)(jwt-decode@4.0.0)(postcss@8.5.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(search-insights@2.17.3)(terser@5.43.1)(typescript@5.8.3)) + version: 0.0.6(typescript@5.8.3)(vitepress@1.6.3(@algolia/client-search@5.32.0)(@types/node@22.16.3)(@types/react@19.1.8)(fuse.js@7.1.0)(jwt-decode@4.0.0)(postcss@8.5.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(search-insights@2.17.3)(terser@5.43.1)(typescript@5.8.3)) vue: specifier: ^3.5.17 version: 3.5.17(typescript@5.8.3) @@ -209,7 +209,7 @@ importers: devDependencies: zod: specifier: ^3.25.74 - version: 3.25.74 + version: 3.25.76 packages/contract: dependencies: @@ -234,7 +234,7 @@ importers: version: 1.1.0(typescript@5.8.3) zod: specifier: ^3.25.74 - version: 3.25.74 + version: 3.25.76 packages/durable-event-iterator: dependencies: @@ -262,13 +262,13 @@ importers: devDependencies: '@cloudflare/workers-types': specifier: ^4.20250705.0 - version: 4.20250705.0 + version: 4.20250711.0 '@orpc/standard-server-peer': specifier: workspace:* version: link:../standard-server-peer '@types/node': specifier: ^22.15.30 - version: 22.15.30 + version: 22.16.3 packages/hey-api: dependencies: @@ -303,7 +303,7 @@ importers: devDependencies: zod: specifier: ^3.25.74 - version: 3.25.74 + version: 3.25.76 packages/nest: dependencies: @@ -349,7 +349,7 @@ importers: version: 11.1.3(@nestjs/common@11.1.3(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.3)(@nestjs/platform-express@11.1.3) '@ts-rest/core': specifier: ^3.52.1 - version: 3.52.1(@types/node@24.0.10)(zod@3.25.74) + version: 3.52.1(@types/node@22.16.3)(zod@3.25.76) '@types/express': specifier: ^5.0.3 version: 5.0.3 @@ -364,10 +364,10 @@ importers: version: 7.8.2 supertest: specifier: ^7.1.0 - version: 7.1.1 + version: 7.1.3 zod: specifier: ^3.25.74 - version: 3.25.74 + version: 3.25.76 packages/openapi: dependencies: @@ -398,7 +398,7 @@ importers: devDependencies: zod: specifier: ^3.25.74 - version: 3.25.74 + version: 3.25.76 packages/openapi-client: dependencies: @@ -442,7 +442,7 @@ importers: version: 19.1.0 zod: specifier: ^3.25.74 - version: 3.25.74 + version: 3.25.76 packages/react-query: dependencies: @@ -458,13 +458,13 @@ importers: devDependencies: '@tanstack/react-query': specifier: ^5.81.5 - version: 5.81.5(react@19.1.0) + version: 5.82.0(react@19.1.0) react: specifier: ^19.1.0 version: 19.1.0 zod: specifier: ^3.25.74 - version: 3.25.74 + version: 3.25.76 packages/server: dependencies: @@ -501,10 +501,10 @@ importers: version: 0.4.1 next: specifier: ^15.3.5 - version: 15.3.5(@babel/core@7.27.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 15.3.5(@babel/core@7.28.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) supertest: specifier: ^7.1.0 - version: 7.1.1 + version: 7.1.3 ws: specifier: ^8.18.3 version: 8.18.3 @@ -526,7 +526,7 @@ importers: version: 1.1.0(typescript@5.8.3) zod: specifier: ^3.25.74 - version: 3.25.74 + version: 3.25.76 packages/solid-query: dependencies: @@ -545,10 +545,10 @@ importers: devDependencies: '@tanstack/solid-query': specifier: ^5.81.5 - version: 5.81.5(solid-js@1.9.7) + version: 5.82.0(solid-js@1.9.7) zod: specifier: ^3.25.74 - version: 3.25.74 + version: 3.25.76 packages/standard-server: dependencies: @@ -576,7 +576,7 @@ importers: version: 8.10.150 '@types/node': specifier: ^22.15.18 - version: 22.15.30 + version: 22.16.3 packages/standard-server-fetch: dependencies: @@ -589,7 +589,7 @@ importers: devDependencies: '@hono/node-server': specifier: ^1.15.0 - version: 1.15.0(hono@4.7.6) + version: 1.15.0(hono@4.8.4) packages/standard-server-node: dependencies: @@ -605,13 +605,13 @@ importers: devDependencies: '@types/node': specifier: ^22.15.18 - version: 22.15.30 + version: 22.16.3 '@types/supertest': specifier: ^6.0.3 version: 6.0.3 supertest: specifier: ^7.1.0 - version: 7.1.1 + version: 7.1.3 packages/standard-server-peer: dependencies: @@ -635,14 +635,14 @@ importers: version: link:../tanstack-query svelte: specifier: '>=4.2.0' - version: 5.35.2 + version: 5.35.6 devDependencies: '@tanstack/svelte-query': specifier: ^5.81.5 - version: 5.81.5(svelte@5.35.2) + version: 5.82.0(svelte@5.35.6) zod: specifier: ^3.25.74 - version: 3.25.74 + version: 3.25.76 packages/tanstack-query: dependencies: @@ -655,34 +655,34 @@ importers: devDependencies: '@angular/core': specifier: ^20.0.6 - version: 20.0.6(rxjs@7.8.2)(zone.js@0.15.1) + version: 20.1.0(rxjs@7.8.2) '@tanstack/angular-query-experimental': specifier: ^5.81.5 - version: 5.81.5(@angular/common@19.2.14(@angular/core@20.0.6(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.0.6(rxjs@7.8.2)(zone.js@0.15.1)) + version: 5.82.0(@angular/common@20.1.0(@angular/core@20.1.0(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@20.1.0(rxjs@7.8.2)) '@tanstack/query-core': specifier: ^5.81.5 - version: 5.81.5 + version: 5.82.0 '@tanstack/react-query': specifier: ^5.81.5 - version: 5.81.5(react@19.1.0) + version: 5.82.0(react@19.1.0) '@tanstack/solid-query': specifier: ^5.81.5 - version: 5.81.5(solid-js@1.9.7) + version: 5.82.0(solid-js@1.9.7) '@tanstack/svelte-query': specifier: ^5.81.5 - version: 5.81.5(svelte@5.35.2) + version: 5.82.0(svelte@5.35.6) '@tanstack/vue-query': specifier: ^5.81.5 - version: 5.81.5(vue@3.5.17(typescript@5.8.3)) + version: 5.82.0(vue@3.5.17(typescript@5.8.3)) svelte: specifier: ^5.35.2 - version: 5.35.2 + version: 5.35.6 vue: specifier: ^3.5.17 version: 3.5.17(typescript@5.8.3) zod: specifier: ^3.25.74 - version: 3.25.74 + version: 3.25.76 packages/trpc: dependencies: @@ -701,7 +701,7 @@ importers: version: 11.4.3(typescript@5.8.3) zod: specifier: ^3.25.74 - version: 3.25.74 + version: 3.25.76 packages/valibot: dependencies: @@ -758,7 +758,7 @@ importers: devDependencies: '@tanstack/vue-query': specifier: ^5.81.5 - version: 5.81.5(vue@3.5.17(typescript@5.8.3)) + version: 5.82.0(vue@3.5.17(typescript@5.8.3)) packages/zod: dependencies: @@ -786,10 +786,10 @@ importers: devDependencies: zod: specifier: ^3.25.74 - version: 3.25.74 + version: 3.25.76 zod-to-json-schema: specifier: ^3.24.6 - version: 3.24.6(zod@3.25.74) + version: 3.24.6(zod@3.25.76) playgrounds/astro: devDependencies: @@ -798,7 +798,7 @@ importers: version: 0.9.4(prettier@3.6.2)(typescript@5.8.3) '@astrojs/react': specifier: ^4.2.7 - version: 4.3.0(@types/node@24.0.10)(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(jiti@2.4.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) + version: 4.3.0(@types/node@22.16.3)(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(jiti@2.4.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) '@orpc/client': specifier: next version: link:../../packages/client @@ -822,7 +822,7 @@ importers: version: link:../../packages/zod '@tanstack/react-query': specifier: ^5.81.5 - version: 5.81.5(react@19.1.0) + version: 5.82.0(react@19.1.0) '@types/react': specifier: ^19.1.8 version: 19.1.8 @@ -831,7 +831,7 @@ importers: version: 19.1.6(@types/react@19.1.8) astro: specifier: ^5.11.0 - version: 5.11.0(@types/node@24.0.10)(db0@0.3.2(better-sqlite3@12.2.0))(encoding@0.1.13)(ioredis@5.6.1)(jiti@2.4.2)(rollup@4.44.1)(terser@5.43.1)(tsx@4.20.3)(typescript@5.8.3)(yaml@2.8.0) + version: 5.11.0(@types/node@22.16.3)(db0@0.3.2(better-sqlite3@12.2.0))(encoding@0.1.13)(ioredis@5.6.1)(jiti@2.4.2)(rollup@4.44.2)(terser@5.43.1)(tsx@4.20.3)(typescript@5.8.3)(yaml@2.8.0) react: specifier: ^19.1.0 version: 19.1.0 @@ -843,7 +843,7 @@ importers: version: 5.8.3 zod: specifier: ^3.25.74 - version: 3.25.74 + version: 3.25.76 playgrounds/browser-extension: devDependencies: @@ -867,7 +867,7 @@ importers: version: link:../../packages/zod '@tanstack/react-query': specifier: ^5.81.5 - version: 5.81.5(react@19.1.0) + version: 5.82.0(react@19.1.0) '@types/react': specifier: ^19.1.8 version: 19.1.8 @@ -876,7 +876,7 @@ importers: version: 19.1.6(@types/react@19.1.8) '@wxt-dev/module-react': specifier: ^1.1.3 - version: 1.1.3(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))(wxt@0.20.7(@types/node@24.0.10)(jiti@2.4.2)(rollup@4.44.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) + version: 1.1.3(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))(wxt@0.20.7(@types/node@22.16.3)(jiti@2.4.2)(rollup@4.44.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) react: specifier: ^19.1.0 version: 19.1.0 @@ -888,16 +888,16 @@ importers: version: 5.8.3 wxt: specifier: ^0.20.6 - version: 0.20.7(@types/node@24.0.10)(jiti@2.4.2)(rollup@4.44.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) + version: 0.20.7(@types/node@22.16.3)(jiti@2.4.2)(rollup@4.44.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) zod: specifier: ^3.25.74 - version: 3.25.74 + version: 3.25.76 playgrounds/cloudflare-worker: devDependencies: '@cloudflare/vite-plugin': specifier: ^1.9.0 - version: 1.9.0(rollup@4.44.1)(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))(workerd@1.20250617.0)(wrangler@4.23.0(@cloudflare/workers-types@4.20250705.0)) + version: 1.9.4(rollup@4.44.2)(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))(workerd@1.20250709.0)(wrangler@4.24.3(@cloudflare/workers-types@4.20250711.0)) '@orpc/client': specifier: next version: link:../../packages/client @@ -915,7 +915,7 @@ importers: version: 19.1.6(@types/react@19.1.8) '@vitejs/plugin-react': specifier: ^4.6.0 - version: 4.6.0(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) + version: 4.6.0(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) react: specifier: ^19.1.0 version: 19.1.0 @@ -927,13 +927,13 @@ importers: version: 5.8.3 vite: specifier: ^6.3.5 - version: 6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) + version: 6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) wrangler: specifier: ^4.23.0 - version: 4.23.0(@cloudflare/workers-types@4.20250705.0) + version: 4.24.3(@cloudflare/workers-types@4.20250711.0) zod: specifier: ^3.25.74 - version: 3.25.74 + version: 3.25.76 playgrounds/contract-first: devDependencies: @@ -960,10 +960,10 @@ importers: version: link:../../packages/zod '@tanstack/react-query': specifier: ^5.81.5 - version: 5.81.5(react@19.1.0) + version: 5.82.0(react@19.1.0) '@types/node': specifier: ^22.15.18 - version: 22.15.30 + version: 22.16.3 tsx: specifier: ^4.20.3 version: 4.20.3 @@ -972,19 +972,19 @@ importers: version: 5.8.3 zod: specifier: ^3.25.74 - version: 3.25.74 + version: 3.25.76 playgrounds/electron: devDependencies: '@electron-toolkit/preload': specifier: ^3.0.2 - version: 3.0.2(electron@37.2.0) + version: 3.0.2(electron@37.2.1) '@electron-toolkit/tsconfig': specifier: ^1.0.1 - version: 1.0.1(@types/node@22.15.30) + version: 1.0.1(@types/node@22.16.3) '@electron-toolkit/utils': specifier: ^4.0.0 - version: 4.0.0(electron@37.2.0) + version: 4.0.0(electron@37.2.1) '@orpc/client': specifier: next version: link:../../packages/client @@ -999,10 +999,10 @@ importers: version: link:../../packages/zod '@tanstack/react-query': specifier: ^5.81.5 - version: 5.81.5(react@19.1.0) + version: 5.82.0(react@19.1.0) '@types/node': specifier: ^22.15.18 - version: 22.15.30 + version: 22.16.3 '@types/react': specifier: ^19.1.8 version: 19.1.8 @@ -1011,16 +1011,16 @@ importers: version: 19.1.6(@types/react@19.1.8) '@vitejs/plugin-react': specifier: ^4.6.0 - version: 4.6.0(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) + version: 4.6.0(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) electron: specifier: ^37.2.0 - version: 37.2.0 + version: 37.2.1 electron-builder: specifier: ^26.0.12 version: 26.0.12(electron-builder-squirrel-windows@26.0.12) electron-vite: specifier: ^3.1.0 - version: 3.1.0(@swc/core@1.12.9(@swc/helpers@0.5.17))(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) + version: 3.1.0(@swc/core@1.12.11(@swc/helpers@0.5.17))(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) react: specifier: ^19.1.0 version: 19.1.0 @@ -1032,16 +1032,16 @@ importers: version: 5.8.3 vite: specifier: ^6.3.5 - version: 6.3.5(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) + version: 6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) zod: specifier: ^3.25.74 - version: 3.25.74 + version: 3.25.76 playgrounds/nest: devDependencies: '@nestjs/cli': specifier: ^11.0.0 - version: 11.0.7(@swc/cli@0.7.7(@swc/core@1.12.9(@swc/helpers@0.5.17))(chokidar@4.0.3))(@swc/core@1.12.9(@swc/helpers@0.5.17))(@types/node@22.15.30) + version: 11.0.7(@swc/cli@0.7.8(@swc/core@1.12.11(@swc/helpers@0.5.17))(chokidar@4.0.3))(@swc/core@1.12.11(@swc/helpers@0.5.17))(@types/node@22.16.3) '@nestjs/common': specifier: ^11.1.0 version: 11.1.3(reflect-metadata@0.2.2)(rxjs@7.8.2) @@ -1077,19 +1077,19 @@ importers: version: link:../../packages/zod '@swc/cli': specifier: ^0.7.7 - version: 0.7.7(@swc/core@1.12.9(@swc/helpers@0.5.17))(chokidar@4.0.3) + version: 0.7.8(@swc/core@1.12.11(@swc/helpers@0.5.17))(chokidar@4.0.3) '@swc/core': specifier: ^1.12.9 - version: 1.12.9(@swc/helpers@0.5.17) + version: 1.12.11(@swc/helpers@0.5.17) '@tanstack/react-query': specifier: ^5.81.5 - version: 5.81.5(react@19.1.0) + version: 5.82.0(react@19.1.0) '@types/express': specifier: ^5.0.3 version: 5.0.3 '@types/node': specifier: ^22.15.18 - version: 22.15.30 + version: 22.16.3 globals: specifier: ^16.3.0 version: 16.3.0 @@ -1104,10 +1104,10 @@ importers: version: 0.5.21 ts-loader: specifier: ^9.5.2 - version: 9.5.2(typescript@5.8.3)(webpack@5.99.6(@swc/core@1.12.9(@swc/helpers@0.5.17))) + version: 9.5.2(typescript@5.8.3)(webpack@5.99.6(@swc/core@1.12.11(@swc/helpers@0.5.17))) ts-node: specifier: ^10.9.2 - version: 10.9.2(@swc/core@1.12.9(@swc/helpers@0.5.17))(@types/node@22.15.30)(typescript@5.8.3) + version: 10.9.2(@swc/core@1.12.11(@swc/helpers@0.5.17))(@types/node@22.16.3)(typescript@5.8.3) tsconfig-paths: specifier: ^4.2.0 version: 4.2.0 @@ -1119,7 +1119,7 @@ importers: version: 3.5.0(typescript@5.8.3)(vue@3.5.17(typescript@5.8.3)) zod: specifier: ^3.25.74 - version: 3.25.74 + version: 3.25.76 playgrounds/next: devDependencies: @@ -1146,10 +1146,10 @@ importers: version: link:../../packages/zod '@tanstack/react-query': specifier: ^5.81.5 - version: 5.81.5(react@19.1.0) + version: 5.82.0(react@19.1.0) '@types/node': specifier: ^22.15.18 - version: 22.15.30 + version: 22.16.3 '@types/react': specifier: ^19.1.8 version: 19.1.8 @@ -1158,7 +1158,7 @@ importers: version: 19.1.6(@types/react@19.1.8) next: specifier: ^15.3.5 - version: 15.3.5(@babel/core@7.27.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 15.3.5(@babel/core@7.28.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react: specifier: ^19.1.0 version: 19.1.0 @@ -1170,7 +1170,7 @@ importers: version: 5.8.3 zod: specifier: ^3.25.74 - version: 3.25.74 + version: 3.25.76 playgrounds/nuxt: devDependencies: @@ -1194,10 +1194,10 @@ importers: version: link:../../packages/zod '@tanstack/vue-query': specifier: ^5.81.5 - version: 5.81.5(vue@3.5.17(typescript@5.8.3)) + version: 5.82.0(vue@3.5.17(typescript@5.8.3)) nuxt: specifier: ^3.17.6 - version: 3.17.6(@parcel/watcher@2.5.1)(@types/node@24.0.10)(@vue/compiler-sfc@3.5.17)(better-sqlite3@12.2.0)(db0@0.3.2(better-sqlite3@12.2.0))(encoding@0.1.13)(eslint@9.30.1(jiti@2.4.2))(ioredis@5.6.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.44.1)(terser@5.43.1)(tsx@4.20.3)(typescript@5.8.3)(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))(xml2js@0.6.2)(yaml@2.8.0) + version: 3.17.6(@parcel/watcher@2.5.1)(@types/node@22.16.3)(@vue/compiler-sfc@3.5.17)(better-sqlite3@12.2.0)(db0@0.3.2(better-sqlite3@12.2.0))(encoding@0.1.13)(eslint@9.30.1(jiti@2.4.2))(ioredis@5.6.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.44.2)(terser@5.43.1)(tsx@4.20.3)(typescript@5.8.3)(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))(xml2js@0.6.2)(yaml@2.8.0) vue: specifier: latest version: 3.5.17(typescript@5.8.3) @@ -1206,7 +1206,7 @@ importers: version: 4.5.1(vue@3.5.17(typescript@5.8.3)) zod: specifier: ^3.25.74 - version: 3.25.74 + version: 3.25.76 playgrounds/solid-start: devDependencies: @@ -1233,22 +1233,22 @@ importers: version: 0.15.3(solid-js@1.9.7) '@solidjs/start': specifier: ^1.1.6 - version: 1.1.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.7)(vinxi@0.5.8(@types/node@24.0.10)(better-sqlite3@12.2.0)(db0@0.3.2(better-sqlite3@12.2.0))(encoding@0.1.13)(ioredis@5.6.1)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(xml2js@0.6.2)(yaml@2.8.0))(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) + version: 1.1.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.7)(vinxi@0.5.8(@types/node@22.16.3)(better-sqlite3@12.2.0)(db0@0.3.2(better-sqlite3@12.2.0))(encoding@0.1.13)(ioredis@5.6.1)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(xml2js@0.6.2)(yaml@2.8.0))(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) '@tanstack/solid-query': specifier: ^5.81.5 - version: 5.81.5(solid-js@1.9.7) + version: 5.82.0(solid-js@1.9.7) solid-js: specifier: ^1.9.5 version: 1.9.7 vinxi: specifier: ^0.5.8 - version: 0.5.8(@types/node@24.0.10)(better-sqlite3@12.2.0)(db0@0.3.2(better-sqlite3@12.2.0))(encoding@0.1.13)(ioredis@5.6.1)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(xml2js@0.6.2)(yaml@2.8.0) + version: 0.5.8(@types/node@22.16.3)(better-sqlite3@12.2.0)(db0@0.3.2(better-sqlite3@12.2.0))(encoding@0.1.13)(ioredis@5.6.1)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(xml2js@0.6.2)(yaml@2.8.0) vite-plugin-top-level-await: specifier: ^1.5.0 - version: 1.5.0(@swc/helpers@0.5.17)(rollup@4.44.1)(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) + version: 1.5.0(@swc/helpers@0.5.17)(rollup@4.44.2)(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) zod: specifier: ^3.25.74 - version: 3.25.74 + version: 3.25.76 playgrounds/svelte-kit: devDependencies: @@ -1272,31 +1272,31 @@ importers: version: link:../../packages/zod '@sveltejs/adapter-auto': specifier: ^6.0.0 - version: 6.0.1(@sveltejs/kit@2.22.2(@sveltejs/vite-plugin-svelte@5.1.0(svelte@5.35.2)(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)))(svelte@5.35.2)(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))) + version: 6.0.1(@sveltejs/kit@2.22.5(@sveltejs/vite-plugin-svelte@5.1.0(svelte@5.35.6)(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)))(svelte@5.35.6)(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))) '@sveltejs/kit': specifier: ^2.22.2 - version: 2.22.2(@sveltejs/vite-plugin-svelte@5.1.0(svelte@5.35.2)(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)))(svelte@5.35.2)(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) + version: 2.22.5(@sveltejs/vite-plugin-svelte@5.1.0(svelte@5.35.6)(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)))(svelte@5.35.6)(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) '@sveltejs/vite-plugin-svelte': specifier: ^5.1.0 - version: 5.1.0(svelte@5.35.2)(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) + version: 5.1.0(svelte@5.35.6)(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) '@tanstack/svelte-query': specifier: ^5.81.5 - version: 5.81.5(svelte@5.35.2) + version: 5.82.0(svelte@5.35.6) svelte: specifier: ^5.35.2 - version: 5.35.2 + version: 5.35.6 svelte-check: specifier: ^4.2.2 - version: 4.2.2(picomatch@4.0.2)(svelte@5.35.2)(typescript@5.8.3) + version: 4.2.2(picomatch@4.0.2)(svelte@5.35.6)(typescript@5.8.3) typescript: specifier: ^5.8.3 version: 5.8.3 vite: specifier: ^6.3.5 - version: 6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) + version: 6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) zod: specifier: ^3.25.74 - version: 3.25.74 + version: 3.25.76 playgrounds/tanstack-start: devDependencies: @@ -1323,25 +1323,25 @@ importers: version: link:../../packages/zod '@tanstack/react-query': specifier: ^5.81.5 - version: 5.81.5(react@19.1.0) + version: 5.82.0(react@19.1.0) '@tanstack/react-query-devtools': specifier: ^5.81.5 - version: 5.81.5(@tanstack/react-query@5.81.5(react@19.1.0))(react@19.1.0) + version: 5.82.0(@tanstack/react-query@5.82.0(react@19.1.0))(react@19.1.0) '@tanstack/react-router': specifier: ^1.124.0 - version: 1.124.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.127.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@tanstack/react-router-devtools': specifier: ^1.124.0 - version: 1.124.0(@tanstack/react-router@1.124.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@tanstack/router-core@1.124.0)(csstype@3.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(solid-js@1.9.7)(tiny-invariant@1.3.3) + version: 1.127.0(@tanstack/react-router@1.127.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@tanstack/router-core@1.127.0)(csstype@3.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(solid-js@1.9.7)(tiny-invariant@1.3.3) '@tanstack/react-router-with-query': specifier: ^1.124.0 - version: 1.124.0(@tanstack/react-query@5.81.5(react@19.1.0))(@tanstack/react-router@1.124.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@tanstack/router-core@1.124.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.127.0(@tanstack/react-query@5.82.0(react@19.1.0))(@tanstack/react-router@1.127.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@tanstack/router-core@1.127.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@tanstack/react-start': specifier: ^1.124.1 - version: 1.124.1(@tanstack/react-router@1.124.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@vitejs/plugin-react@4.6.0(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)))(better-sqlite3@12.2.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(vite-plugin-solid@2.11.7(@testing-library/jest-dom@6.6.3)(solid-js@1.9.7)(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)))(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))(webpack@5.99.6)(xml2js@0.6.2) + version: 1.127.0(@tanstack/react-router@1.127.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@vitejs/plugin-react@4.6.0(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)))(better-sqlite3@12.2.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(vite-plugin-solid@2.11.7(@testing-library/jest-dom@6.6.3)(solid-js@1.9.7)(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)))(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))(webpack@5.99.6)(xml2js@0.6.2) '@types/node': specifier: ^22.15.18 - version: 22.15.30 + version: 22.16.3 '@types/react': specifier: ^19.1.8 version: 19.1.8 @@ -1356,13 +1356,13 @@ importers: version: 19.1.0(react@19.1.0) vite: specifier: ^6.3.5 - version: 6.3.5(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) + version: 6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) + version: 5.1.4(typescript@5.8.3)(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) zod: specifier: ^3.25.74 - version: 3.25.74 + version: 3.25.76 packages: @@ -1372,8 +1372,8 @@ packages: '@1natsu/wait-element@4.1.2': resolution: {integrity: sha512-qWxSJD+Q5b8bKOvESFifvfZ92DuMsY+03SBNjTO34ipJLP6mZ9yK4bQz/vlh48aEQXoJfaZBqUwKL5BdI5iiWw==} - '@adobe/css-tools@4.4.2': - resolution: {integrity: sha512-baYZExFpsdkBNuvGKTKWCwKH57HRZLVtycZS05WTQNVOiXVSeAki3nU35zlRbToeMW8aHlJfyS+1C4BOv27q0A==} + '@adobe/css-tools@4.4.3': + resolution: {integrity: sha512-VQKMkwriZbaOgVCby1UDY/LDk5fIjhQicCvVPFqfe+69fWaPWydbWJ3wRt59/YzIwda1I81loas3oCoHxnqvdA==} '@aklinker1/rollup-plugin-visualizer@5.12.0': resolution: {integrity: sha512-X24LvEGw6UFmy0lpGJDmXsMyBD58XmX1bbwsaMLhNoM+UMQfQ3b2RtC+nz4b/NoRK5r6QJSKJHBNVeUdwqybaQ==} @@ -1405,56 +1405,56 @@ packages: '@algolia/client-search': '>= 4.9.1 < 6' algoliasearch: '>= 4.9.1 < 6' - '@algolia/client-abtesting@5.23.3': - resolution: {integrity: sha512-yHI0hBwYcNPc+nJoHPTmmlP8pG6nstCEhpHaZQCDwLZhdMtNhd1hliZMCtLgNnvd1yKEgTt/ZDnTSdZLehfKdA==} + '@algolia/client-abtesting@5.32.0': + resolution: {integrity: sha512-HG/6Eib6DnJYm/B2ijWFXr4txca/YOuA4K7AsEU0JBrOZSB+RU7oeDyNBPi3c0v0UDDqlkBqM3vBU/auwZlglA==} engines: {node: '>= 14.0.0'} - '@algolia/client-analytics@5.23.3': - resolution: {integrity: sha512-/70Ey+nZm4bRr2DcNrGU251YIn9lDu0g8xeP4jTCyunGRNFZ/d8hQAw9El34pcTpO1QDojJWAi6ywKIrUaks9w==} + '@algolia/client-analytics@5.32.0': + resolution: {integrity: sha512-8Y9MLU72WFQOW3HArYv16+Wvm6eGmsqbxxM1qxtm0hvSASJbxCm+zQAZe5stqysTlcWo4BJ82KEH1PfgHbJAmQ==} engines: {node: '>= 14.0.0'} - '@algolia/client-common@5.23.3': - resolution: {integrity: sha512-fkpbPclIvaiyw3ADKRBCxMZhrNx/8//6DClfWGxeEiTJ0HEEYtHlqE6GjAkEJubz4v1ioCQkhZwMoFfFct2/vQ==} + '@algolia/client-common@5.32.0': + resolution: {integrity: sha512-w8L+rgyXMCPBKmEdOT+RfgMrF0mT6HK60vPYWLz8DBs/P7yFdGo7urn99XCJvVLMSKXrIbZ2FMZ/i50nZTXnuQ==} engines: {node: '>= 14.0.0'} - '@algolia/client-insights@5.23.3': - resolution: {integrity: sha512-TXc5Ve6QOCihWCTWY9N56CZxF1iovzpBWBUhQhy6JSiUfX3MXceV3saV+sXHQ1NVt2NKkyUfEspYHBsTrYzIDg==} + '@algolia/client-insights@5.32.0': + resolution: {integrity: sha512-AdWfynhUeX7jz/LTiFU3wwzJembTbdLkQIOLs4n7PyBuxZ3jz4azV1CWbIP8AjUOFmul6uXbmYza+KqyS5CzOA==} engines: {node: '>= 14.0.0'} - '@algolia/client-personalization@5.23.3': - resolution: {integrity: sha512-JlReruxxiw9LB53jF/BmvVV+c0thiWQUHRdgtbVIEusvRaiX1IdpWJSPQExEtBQ7VFg89nP8niCzWtA34ktKSA==} + '@algolia/client-personalization@5.32.0': + resolution: {integrity: sha512-bTupJY4xzGZYI4cEQcPlSjjIEzMvv80h7zXGrXY1Y0KC/n/SLiMv84v7Uy+B6AG1Kiy9FQm2ADChBLo1uEhGtQ==} engines: {node: '>= 14.0.0'} - '@algolia/client-query-suggestions@5.23.3': - resolution: {integrity: sha512-GDEExFMXwx0ScE0AZUA4F6ssztdJvGcXUkdWmWyt2hbYz43ukqmlVJqPaYgGmWdjJjvTx+dNF/hcinwWuXbCug==} + '@algolia/client-query-suggestions@5.32.0': + resolution: {integrity: sha512-if+YTJw1G3nDKL2omSBjQltCHUQzbaHADkcPQrGFnIGhVyHU3Dzq4g46uEv8mrL5sxL8FjiS9LvekeUlL2NRqw==} engines: {node: '>= 14.0.0'} - '@algolia/client-search@5.23.3': - resolution: {integrity: sha512-mwofV6tGo0oHt4BPi+S5eLC3wnhOa4A1OVgPxetTxZuetod+2W4cxKavUW2v/Ma5CABXPLooXX+g9E67umELZw==} + '@algolia/client-search@5.32.0': + resolution: {integrity: sha512-kmK5nVkKb4DSUgwbveMKe4X3xHdMsPsOVJeEzBvFJ+oS7CkBPmpfHAEq+CcmiPJs20YMv6yVtUT9yPWL5WgAhg==} engines: {node: '>= 14.0.0'} - '@algolia/ingestion@1.23.3': - resolution: {integrity: sha512-Zxgmi7Hk4lI52YFphzzJekUqWxYxVjY2GrCpOxV+QiojvUi8Ru+knq6REcwLHFSwpwaDh2Th5pOefMpn4EkQCw==} + '@algolia/ingestion@1.32.0': + resolution: {integrity: sha512-PZTqjJbx+fmPuT2ud1n4vYDSF1yrT//vOGI9HNYKNA0PM0xGUBWigf5gRivHsXa3oBnUlTyHV9j7Kqx5BHbVHQ==} engines: {node: '>= 14.0.0'} - '@algolia/monitoring@1.23.3': - resolution: {integrity: sha512-zi/IqvsmFW4E5gMaovAE4KRbXQ+LDYpPGG1nHtfuD5u3SSuQ31fT1vX2zqb6PbPTlgJMEmMk91Mbb7fIKmbQUw==} + '@algolia/monitoring@1.32.0': + resolution: {integrity: sha512-kYYoOGjvNQAmHDS1v5sBj+0uEL9RzYqH/TAdq8wmcV+/22weKt/fjh+6LfiqkS1SCZFYYrwGnirrUhUM36lBIQ==} engines: {node: '>= 14.0.0'} - '@algolia/recommend@5.23.3': - resolution: {integrity: sha512-C9TwbT1zGwULLXGSUSB+G7o/30djacPmQcsTHepvT47PVfPr2ISK/5QVtUnjMU84LEP8uNjuPUeM4ZeWVJ2iuQ==} + '@algolia/recommend@5.32.0': + resolution: {integrity: sha512-jyIBLdskjPAL7T1g57UMfUNx+PzvYbxKslwRUKBrBA6sNEsYCFdxJAtZSLUMmw6MC98RDt4ksmEl5zVMT5bsuw==} engines: {node: '>= 14.0.0'} - '@algolia/requester-browser-xhr@5.23.3': - resolution: {integrity: sha512-/7oYeUhYzY0lls7WtkAURM6wy21/Wwmq9GdujW1MpoYVC0ATXXxwCiAfOpYL9xdWxLV0R3wjyD+yZEni+nboKg==} + '@algolia/requester-browser-xhr@5.32.0': + resolution: {integrity: sha512-eDp14z92Gt6JlFgiexImcWWH+Lk07s/FtxcoDaGrE4UVBgpwqOO6AfQM6dXh1pvHxlDFbMJihHc/vj3gBhPjqQ==} engines: {node: '>= 14.0.0'} - '@algolia/requester-fetch@5.23.3': - resolution: {integrity: sha512-r/4fKz4t+bSU1KdjRq+swdNvuGfJ0spV8aFTHPtcsF+1ZaN/VqmdXrTe5NkaZLSztFeMqKwZlJIVvE7VuGlFtw==} + '@algolia/requester-fetch@5.32.0': + resolution: {integrity: sha512-rnWVglh/K75hnaLbwSc2t7gCkbq1ldbPgeIKDUiEJxZ4mlguFgcltWjzpDQ/t1LQgxk9HdIFcQfM17Hid3aQ6Q==} engines: {node: '>= 14.0.0'} - '@algolia/requester-node-http@5.23.3': - resolution: {integrity: sha512-UZiTNmUBQFPl3tUKuXaDd8BxEC0t0ny86wwW6XgwfM9IQf4PrzuMpvuOGIJMcCGlrNolZDEI0mcbz/tqRdKW7A==} + '@algolia/requester-node-http@5.32.0': + resolution: {integrity: sha512-LbzQ04+VLkzXY4LuOzgyjqEv/46Gwrk55PldaglMJ4i4eDXSRXGKkwJpXFwsoU+c1HMQlHIyjJBhrfsfdyRmyQ==} engines: {node: '>= 14.0.0'} '@ampproject/remapping@2.3.0': @@ -1492,18 +1492,18 @@ packages: resolution: {integrity: sha512-QsmFuYdAyeCyg9WF/AJBhFXDUfCwmDFTEbsv5t5KPSP6slhk0GoLNZApniiFytU2siRlSxVNpve2uATyYuAYkQ==} engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} - '@angular/common@19.2.14': - resolution: {integrity: sha512-NcNklcuyqaTjOVGf7aru8APX9mjsnZ01gFZrn47BxHozhaR0EMRrotYQTdi8YdVjPkeYFYanVntSLfhyobq/jg==} - engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0} + '@angular/common@20.1.0': + resolution: {integrity: sha512-RsHClHJux+4lXrHdGHVw22wekRbSjYtx6Xwjox2S+IRPP51CbX0KskAALZ9ZmtCttkYSFVtvr0S+SQrU2cu5WA==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/core': 19.2.14 + '@angular/core': 20.1.0 rxjs: ^6.5.3 || ^7.4.0 - '@angular/core@20.0.6': - resolution: {integrity: sha512-PLSRl8vM8I+HOlAJFiTcRMNbRj2Clb7lpQqUfkeBSk8bBWOy9fLlscoY3JOk0tXoUTnW6lbRB1LmAFuYAQZzAA==} + '@angular/core@20.1.0': + resolution: {integrity: sha512-/dJooZi+OAACkjWgGMPrOOGikdtlTJXwdeXPJTgZSUD5L8oQMbhZFG0XW/1Hldvsti87wPjZPz67ivB7zR86VA==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/compiler': 20.0.6 + '@angular/compiler': 20.1.0 rxjs: ^6.5.3 || ^7.4.0 zone.js: ~0.15.0 peerDependenciesMeta: @@ -1573,8 +1573,8 @@ packages: '@ark/util@0.46.0': resolution: {integrity: sha512-JPy/NGWn/lvf1WmGCPw2VGpBg5utZraE84I7wli18EDF3p3zc/e9WolT35tINeZO3l7C77SjqRJeAUoT0CvMRg==} - '@asamuzakjp/css-color@3.1.7': - resolution: {integrity: sha512-Ok5fYhtwdyJQmU1PpEv6Si7Y+A4cYb8yNM9oiIJC9TzXPMuN9fvdonKJqcnz9TbFqV6bQ8z0giRq0iaOpGZV2g==} + '@asamuzakjp/css-color@3.2.0': + resolution: {integrity: sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw==} '@astrojs/check@0.9.4': resolution: {integrity: sha512-IOheHwCtpUfvogHHsvu0AbeRZEnjJg3MopdLddkJE70mULItS/Vh37BHcI00mcOJcH1vhD3odbpvWokpxam7xA==} @@ -1582,9 +1582,6 @@ packages: peerDependencies: typescript: ^5.0.0 - '@astrojs/compiler@2.12.0': - resolution: {integrity: sha512-7bCjW6tVDpUurQLeKBUN9tZ5kSv5qYrGmcn0sG0IwacL7isR2ZbyyA3AdZ4uxsuUFOS2SlgReTH7wkxO6zpqWA==} - '@astrojs/compiler@2.12.2': resolution: {integrity: sha512-w2zfvhjNCkNMmMMOn5b0J8+OmUaBL1o40ipMvqcG6NRpdC+lKxmTi48DT8Xw0SzJ3AfmeFLB45zXZXtmbsjcgw==} @@ -1634,34 +1631,14 @@ packages: resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} engines: {node: '>=6.9.0'} - '@babel/compat-data@7.27.5': - resolution: {integrity: sha512-KiRAp/VoJaWkkte84TvUd9qjdbZAdiqyvMxrGl1N6vzFogKmaLgoM3L1kgtLicp2HP5fBJS8JrZKLVIZGVJAVg==} - engines: {node: '>=6.9.0'} - - '@babel/core@7.27.1': - resolution: {integrity: sha512-IaaGWsQqfsQWVLqMn9OB92MNN7zukfVA4s7KKAI0KfrrDsZ0yhi5uV4baBuLuN7n3vsZpwP8asPPcVwApxvjBQ==} - engines: {node: '>=6.9.0'} - - '@babel/core@7.27.4': - resolution: {integrity: sha512-bXYxrXFubeYdvB0NhD/NBB3Qi6aZeV20GOWVI47t2dkecCEoneR4NPVcb7abpXDEvejgrUfFtG6vG/zxAKmg+g==} - engines: {node: '>=6.9.0'} - - '@babel/core@7.27.7': - resolution: {integrity: sha512-BU2f9tlKQ5CAthiMIgpzAh4eDTLWo1mqi9jqE2OxMG0E/OM199VJt2q8BztTxpnSW0i1ymdwLXRJnYzvDM5r2w==} + '@babel/compat-data@7.28.0': + resolution: {integrity: sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==} engines: {node: '>=6.9.0'} '@babel/core@7.28.0': resolution: {integrity: sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==} engines: {node: '>=6.9.0'} - '@babel/generator@7.27.1': - resolution: {integrity: sha512-UnJfnIpc/+JO0/+KRVQNGU+y5taA5vCbwN8+azkX6beii/ZF+enZJSOKo11ZSzGJjlNfJHfQtmQT8H+9TXPG2w==} - engines: {node: '>=6.9.0'} - - '@babel/generator@7.27.5': - resolution: {integrity: sha512-ZGhA37l0e/g2s1Cnzdix0O3aLYm66eF8aufiVteOgnwxgnRP8GoyMj7VWsgWnQbVKXyge7hqrFh2K2TQM6t1Hw==} - engines: {node: '>=6.9.0'} - '@babel/generator@7.28.0': resolution: {integrity: sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==} engines: {node: '>=6.9.0'} @@ -1696,12 +1673,6 @@ packages: resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==} engines: {node: '>=6.9.0'} - '@babel/helper-module-transforms@7.27.1': - resolution: {integrity: sha512-9yHn519/8KvTU5BjTVEEeIM3w9/2yXNKoD82JifINImhpKkARMJKPP59kLo+BafpdN5zgNeIcS4jsGDmd3l58g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - '@babel/helper-module-transforms@7.27.3': resolution: {integrity: sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==} engines: {node: '>=6.9.0'} @@ -1738,29 +1709,10 @@ packages: resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.27.1': - resolution: {integrity: sha512-FCvFTm0sWV8Fxhpp2McP5/W53GPllQ9QeQ7SiqGWjMf/LVG07lFa5+pgK05IRhVwtvafT22KF+ZSnM9I545CvQ==} - engines: {node: '>=6.9.0'} - '@babel/helpers@7.27.6': resolution: {integrity: sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==} engines: {node: '>=6.9.0'} - '@babel/parser@7.27.2': - resolution: {integrity: sha512-QYLs8299NA7WM/bZAdp+CviYYkVoYXlDW2rzliy3chxd1PQjej7JORuMJDJXJUb9g0TT+B99EwaVLKmX+sPXWw==} - engines: {node: '>=6.0.0'} - hasBin: true - - '@babel/parser@7.27.5': - resolution: {integrity: sha512-OsQd175SxWkGlzbny8J3K8TnnDD0N3lrIUtB92xwyRpzaenGZhxDvxN/JgU00U3CDZNj9tPuDJ5H0WS4Nt3vKg==} - engines: {node: '>=6.0.0'} - hasBin: true - - '@babel/parser@7.27.7': - resolution: {integrity: sha512-qnzXzDXdr/po3bOTbTIQZ7+TxNKxpkN5IifVLXS+r7qwynkZfPyjZfE7hCXbo7IoO9TNcSyibgONsf2HauUd3Q==} - engines: {node: '>=6.0.0'} - hasBin: true - '@babel/parser@7.28.0': resolution: {integrity: sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==} engines: {node: '>=6.0.0'} @@ -1802,12 +1754,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-typescript@7.27.1': - resolution: {integrity: sha512-Q5sT5+O4QUebHdbwKedFBEwRLb02zJ7r4A5Gg2hUoLuU3FjdMcyqcywqUrLCaDsFCxzokf7u9kuy7qz51YUuAg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-typescript@7.28.0': resolution: {integrity: sha512-4AEiDEBPIZvLQaWlc9liCavE0xRM0dNca41WtBeM3jgFptfUOSG9z0uteLhq6+3rq+WB6jIvUwKDTpXEHPJ2Vg==} engines: {node: '>=6.9.0'} @@ -1824,38 +1770,18 @@ packages: resolution: {integrity: sha512-VtPOkrdPHZsKc/clNqyi9WUA8TINkZ4cGk63UUE3u4pmB2k+ZMQRDuIOagv8UVd6j7k0T3+RRIb7beKTebNbcw==} engines: {node: '>=6.9.0'} - '@babel/template@7.27.2': - resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} - engines: {node: '>=6.9.0'} - - '@babel/traverse@7.27.1': - resolution: {integrity: sha512-ZCYtZciz1IWJB4U61UPu4KEaqyfj+r5T1Q5mqPo+IBpcG9kHv30Z0aD8LXPgC1trYa6rK0orRyAhqUgk4MjmEg==} - engines: {node: '>=6.9.0'} - - '@babel/traverse@7.27.4': - resolution: {integrity: sha512-oNcu2QbHqts9BtOWJosOVJapWjBDSxGCpFvikNR5TGDYDQf3JwpIoMzIKrvfoti93cLfPJEG4tH9SPVeyCGgdA==} + '@babel/runtime@7.27.6': + resolution: {integrity: sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.27.7': - resolution: {integrity: sha512-X6ZlfR/O/s5EQ/SnUSLzr+6kGnkg8HXGMzpgsMsrJVcfDtH1vIp6ctCN4eZ1LS5c0+te5Cb6Y514fASjMRJ1nw==} + '@babel/template@7.27.2': + resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} engines: {node: '>=6.9.0'} '@babel/traverse@7.28.0': resolution: {integrity: sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==} engines: {node: '>=6.9.0'} - '@babel/types@7.27.1': - resolution: {integrity: sha512-+EzkxvLNfiUeKMgy/3luqfsCWFRXLb7U6wNQTk60tovuckwB15B191tJWvpp4HjiQWdJkCxO3Wbvc6jlk3Xb2Q==} - engines: {node: '>=6.9.0'} - - '@babel/types@7.27.6': - resolution: {integrity: sha512-ETyHEk2VHHvl9b9jZP5IHPavHYk57EhanlRRuae9XCpb/j5bDCbPPMOBfCWhnl/7EDJz0jEMCi/RhccCE8r1+Q==} - engines: {node: '>=6.9.0'} - - '@babel/types@7.27.7': - resolution: {integrity: sha512-8OLQgDScAOHXnAz2cV+RfzzNMipuLVBz2biuAJFMV9bfkNf393je3VM8CLkjQodW5+iWsSJdSgSWT6rsZoXHPw==} - engines: {node: '>=6.9.0'} - '@babel/types@7.28.0': resolution: {integrity: sha512-jYnje+JyZG5YThjHiF28oT4SIZLnYOcSBb6+SDaFIyzDVSkXQmQQYclJ2R+YxcdmK0AX6x1E5OQNtuh3jHDrUg==} engines: {node: '>=6.9.0'} @@ -1916,44 +1842,44 @@ packages: workerd: optional: true - '@cloudflare/vite-plugin@1.9.0': - resolution: {integrity: sha512-YYmWZklDPF7Ay97JX51bZzKGNP7Z6Sme0+Pje1g5Jr7M6oU6L3NmmvIi8VKFLM48FRlSpXRmTF1tULJng6d6vg==} + '@cloudflare/vite-plugin@1.9.4': + resolution: {integrity: sha512-i1sMePamMZs/eR5ennHNICEFEtXWDCbt8j+mSE0EQuMFt0YrqqU9WSCZzUvISyYebnnLfnHZQpq3Y8y4uPz4RQ==} peerDependencies: vite: ^6.1.0 || ^7.0.0 - wrangler: ^3.101.0 || ^4.0.0 + wrangler: 4.24.3 - '@cloudflare/workerd-darwin-64@1.20250617.0': - resolution: {integrity: sha512-toG8JUKVLIks4oOJLe9FeuixE84pDpMZ32ip7mCpE7JaFc5BqGFvevk0YC/db3T71AQlialjRwioH3jS/dzItA==} + '@cloudflare/workerd-darwin-64@1.20250709.0': + resolution: {integrity: sha512-VqwcvnbI8FNCP87ZWNHA3/sAC5U9wMbNnjBG0sHEYzM7B9RPHKYHdVKdBEWhzZXnkQYMK81IHm4CZsK16XxAuQ==} engines: {node: '>=16'} cpu: [x64] os: [darwin] - '@cloudflare/workerd-darwin-arm64@1.20250617.0': - resolution: {integrity: sha512-JTX0exbC9/ZtMmQQA8tDZEZFMXZrxOpTUj2hHnsUkErWYkr5SSZH04RBhPg6dU4VL8bXuB5/eJAh7+P9cZAp7g==} + '@cloudflare/workerd-darwin-arm64@1.20250709.0': + resolution: {integrity: sha512-A54ttSgXMM4huChPTThhkieOjpDxR+srVOO9zjTHVIyoQxA8zVsku4CcY/GQ95RczMV+yCKVVu/tAME7vwBFuA==} engines: {node: '>=16'} cpu: [arm64] os: [darwin] - '@cloudflare/workerd-linux-64@1.20250617.0': - resolution: {integrity: sha512-8jkSoVRJ+1bOx3tuWlZCGaGCV2ew7/jFMl6V3CPXOoEtERUHsZBQLVkQIGKcmC/LKSj7f/mpyBUeu2EPTo2HEg==} + '@cloudflare/workerd-linux-64@1.20250709.0': + resolution: {integrity: sha512-no4O3OK+VXINIxv99OHJDpIgML2ZssrSvImwLtULzqm+cl4t1PIfXNRUqj89ujTkmad+L9y4G6dBQMPCLnmlGg==} engines: {node: '>=16'} cpu: [x64] os: [linux] - '@cloudflare/workerd-linux-arm64@1.20250617.0': - resolution: {integrity: sha512-YAzcOyu897z5dQKFzme1oujGWMGEJCR7/Wrrm1nSP6dqutxFPTubRADM8BHn2CV3ij//vaPnAeLmZE3jVwOwig==} + '@cloudflare/workerd-linux-arm64@1.20250709.0': + resolution: {integrity: sha512-7cNICk2Qd+m4QGrcmWyAuZJXTHt1ud6isA+dic7Yk42WZmwXhlcUATyvFD9FSQNFcldjuRB4n8JlWEFqZBn+lw==} engines: {node: '>=16'} cpu: [arm64] os: [linux] - '@cloudflare/workerd-windows-64@1.20250617.0': - resolution: {integrity: sha512-XWM/6sagDrO0CYDKhXhPjM23qusvIN1ju9ZEml6gOQs8tNOFnq6Cn6X9FAmnyapRFCGUSEC3HZYJAm7zwVKaMA==} + '@cloudflare/workerd-windows-64@1.20250709.0': + resolution: {integrity: sha512-j1AyO8V/62Q23EJplWgzBlRCqo/diXgox58AbDqSqgyzCBAlvUzXQRDBab/FPNG/erRqt7I1zQhahrBhrM0uLA==} engines: {node: '>=16'} cpu: [x64] os: [win32] - '@cloudflare/workers-types@4.20250705.0': - resolution: {integrity: sha512-+eKIUEW0loB+CCgkfpa6UCTacnn3YOCllLpLbKfwR0qdoIfzmeOpadqY/W6ZSi/9v0tpQqTPB80tkhu7a7Cyug==} + '@cloudflare/workers-types@4.20250711.0': + resolution: {integrity: sha512-aocBpm0Mbbz6GIOLJDbPrl4gZZ2o2A1a7pjFWlt3j2T1xghP0h1V3LtWUhyk74bAY5qOEuGQyLgr+svY//yCrQ==} '@colors/colors@1.5.0': resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} @@ -1971,28 +1897,28 @@ packages: resolution: {integrity: sha512-JqWH1vsgdGcw2RR6VliXXdA0/59LttzlU8UlRT/iUUsEeWfYq8I+K0yhihEUTTHLRm1EXvpsCx3083EU15ecsA==} engines: {node: '>=18'} - '@csstools/css-calc@2.1.3': - resolution: {integrity: sha512-XBG3talrhid44BY1x3MHzUx/aTG8+x/Zi57M4aTKK9RFB4aLlF3TTSzfzn8nWVHWL3FgAXAxmupmDd6VWww+pw==} + '@csstools/css-calc@2.1.4': + resolution: {integrity: sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==} engines: {node: '>=18'} peerDependencies: - '@csstools/css-parser-algorithms': ^3.0.4 - '@csstools/css-tokenizer': ^3.0.3 + '@csstools/css-parser-algorithms': ^3.0.5 + '@csstools/css-tokenizer': ^3.0.4 - '@csstools/css-color-parser@3.0.9': - resolution: {integrity: sha512-wILs5Zk7BU86UArYBJTPy/FMPPKVKHMj1ycCEyf3VUptol0JNRLFU/BZsJ4aiIHJEbSLiizzRrw8Pc1uAEDrXw==} + '@csstools/css-color-parser@3.0.10': + resolution: {integrity: sha512-TiJ5Ajr6WRd1r8HSiwJvZBiJOqtH86aHpUjq5aEKWHiII2Qfjqd/HCWKPOW8EP4vcspXbHnXrwIDlu5savQipg==} engines: {node: '>=18'} peerDependencies: - '@csstools/css-parser-algorithms': ^3.0.4 - '@csstools/css-tokenizer': ^3.0.3 + '@csstools/css-parser-algorithms': ^3.0.5 + '@csstools/css-tokenizer': ^3.0.4 - '@csstools/css-parser-algorithms@3.0.4': - resolution: {integrity: sha512-Up7rBoV77rv29d3uKHUIVubz1BTcgyUK72IvCQAbfbMv584xHcGKCKbWh7i8hPrRJ7qU4Y8IO3IY9m+iTB7P3A==} + '@csstools/css-parser-algorithms@3.0.5': + resolution: {integrity: sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==} engines: {node: '>=18'} peerDependencies: - '@csstools/css-tokenizer': ^3.0.3 + '@csstools/css-tokenizer': ^3.0.4 - '@csstools/css-tokenizer@3.0.3': - resolution: {integrity: sha512-UJnjoFsmxfKUdNYdWgOB0mWUypuLvAfQPH1+pyvRJs6euowbFkFC6P13w1l8mJyi3vxYMxc9kld5jZEGRQs6bw==} + '@csstools/css-tokenizer@3.0.4': + resolution: {integrity: sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==} engines: {node: '>=18'} '@dabh/diagnostics@2.0.3': @@ -2140,14 +2066,14 @@ packages: '@emmetio/stream-reader@2.2.0': resolution: {integrity: sha512-fXVXEyFA5Yv3M3n8sUGT7+fvecGrZP4k6FnWWMSZVQf69kAq0LLpaBQLGcPR30m3zMmKYhECP4k/ZkzvhEW5kw==} - '@emnapi/core@1.4.3': - resolution: {integrity: sha512-4m62DuCE07lw01soJwPiBGC0nAww0Q+RY70VZ+n49yDIO13yyinhbWCeNnaob0lakDtWQzSdtNWzJeOJt2ma+g==} + '@emnapi/core@1.4.4': + resolution: {integrity: sha512-A9CnAbC6ARNMKcIcrQwq6HeHCjpcBZ5wSx4U01WXCqEKlrzB9F9315WDNHkrs2xbx7YjjSxbUYxuN6EQzpcY2g==} - '@emnapi/runtime@1.4.3': - resolution: {integrity: sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==} + '@emnapi/runtime@1.4.4': + resolution: {integrity: sha512-hHyapA4A3gPaDCNfiqyZUStTMqIkKRshqPIuDOXv1hcBnD4U3l8cP0T1HMCfGRxQ6V64TGCcoswChANyOAwbQg==} - '@emnapi/wasi-threads@1.0.2': - resolution: {integrity: sha512-5n3nTJblwRi8LlXkJ9eBzu+kZR8Yxcc7ubakyQTFzPMtIhFpUBRbsnc2Dv88IZDIbCDlBiWrknhB4Lsz7mg6BA==} + '@emnapi/wasi-threads@1.0.3': + resolution: {integrity: sha512-8K5IFFsQqF9wQNJptGbS6FNKgUTsSRYnTqNCG1vPP8jFdjSv18n2mQfJpkt2Oibo9iBEzcDnDxNwKTzC7svlJw==} '@es-joy/jsdoccomment@0.50.2': resolution: {integrity: sha512-YAdE/IJSpwbOTiaURNCKECdAwqrJuFiZhylmesBcIRawtYKnBR2wxPhoIewMg+Yu+QuYvHfJNReWpoxGBKOChA==} @@ -2175,6 +2101,12 @@ packages: cpu: [ppc64] os: [aix] + '@esbuild/aix-ppc64@0.25.6': + resolution: {integrity: sha512-ShbM/3XxwuxjFiuVBHA+d3j5dyac0aEVVq1oluIDf71hUw0aRF59dV/efUsIwFnR6m8JNM2FjZOzmaZ8yG61kw==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + '@esbuild/android-arm64@0.21.5': resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} engines: {node: '>=12'} @@ -2193,6 +2125,12 @@ packages: cpu: [arm64] os: [android] + '@esbuild/android-arm64@0.25.6': + resolution: {integrity: sha512-hd5zdUarsK6strW+3Wxi5qWws+rJhCCbMiC9QZyzoxfk5uHRIE8T287giQxzVpEvCwuJ9Qjg6bEjcRJcgfLqoA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + '@esbuild/android-arm@0.21.5': resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} engines: {node: '>=12'} @@ -2211,6 +2149,12 @@ packages: cpu: [arm] os: [android] + '@esbuild/android-arm@0.25.6': + resolution: {integrity: sha512-S8ToEOVfg++AU/bHwdksHNnyLyVM+eMVAOf6yRKFitnwnbwwPNqKr3srzFRe7nzV69RQKb5DgchIX5pt3L53xg==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + '@esbuild/android-x64@0.21.5': resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} engines: {node: '>=12'} @@ -2229,6 +2173,12 @@ packages: cpu: [x64] os: [android] + '@esbuild/android-x64@0.25.6': + resolution: {integrity: sha512-0Z7KpHSr3VBIO9A/1wcT3NTy7EB4oNC4upJ5ye3R7taCc2GUdeynSLArnon5G8scPwaU866d3H4BCrE5xLW25A==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + '@esbuild/darwin-arm64@0.21.5': resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} engines: {node: '>=12'} @@ -2247,6 +2197,12 @@ packages: cpu: [arm64] os: [darwin] + '@esbuild/darwin-arm64@0.25.6': + resolution: {integrity: sha512-FFCssz3XBavjxcFxKsGy2DYK5VSvJqa6y5HXljKzhRZ87LvEi13brPrf/wdyl/BbpbMKJNOr1Sd0jtW4Ge1pAA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + '@esbuild/darwin-x64@0.21.5': resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} engines: {node: '>=12'} @@ -2265,6 +2221,12 @@ packages: cpu: [x64] os: [darwin] + '@esbuild/darwin-x64@0.25.6': + resolution: {integrity: sha512-GfXs5kry/TkGM2vKqK2oyiLFygJRqKVhawu3+DOCk7OxLy/6jYkWXhlHwOoTb0WqGnWGAS7sooxbZowy+pK9Yg==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + '@esbuild/freebsd-arm64@0.21.5': resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} engines: {node: '>=12'} @@ -2283,6 +2245,12 @@ packages: cpu: [arm64] os: [freebsd] + '@esbuild/freebsd-arm64@0.25.6': + resolution: {integrity: sha512-aoLF2c3OvDn2XDTRvn8hN6DRzVVpDlj2B/F66clWd/FHLiHaG3aVZjxQX2DYphA5y/evbdGvC6Us13tvyt4pWg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + '@esbuild/freebsd-x64@0.21.5': resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} engines: {node: '>=12'} @@ -2301,6 +2269,12 @@ packages: cpu: [x64] os: [freebsd] + '@esbuild/freebsd-x64@0.25.6': + resolution: {integrity: sha512-2SkqTjTSo2dYi/jzFbU9Plt1vk0+nNg8YC8rOXXea+iA3hfNJWebKYPs3xnOUf9+ZWhKAaxnQNUf2X9LOpeiMQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + '@esbuild/linux-arm64@0.21.5': resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} engines: {node: '>=12'} @@ -2319,6 +2293,12 @@ packages: cpu: [arm64] os: [linux] + '@esbuild/linux-arm64@0.25.6': + resolution: {integrity: sha512-b967hU0gqKd9Drsh/UuAm21Khpoh6mPBSgz8mKRq4P5mVK8bpA+hQzmm/ZwGVULSNBzKdZPQBRT3+WuVavcWsQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + '@esbuild/linux-arm@0.21.5': resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} engines: {node: '>=12'} @@ -2337,6 +2317,12 @@ packages: cpu: [arm] os: [linux] + '@esbuild/linux-arm@0.25.6': + resolution: {integrity: sha512-SZHQlzvqv4Du5PrKE2faN0qlbsaW/3QQfUUc6yO2EjFcA83xnwm91UbEEVx4ApZ9Z5oG8Bxz4qPE+HFwtVcfyw==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + '@esbuild/linux-ia32@0.21.5': resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} engines: {node: '>=12'} @@ -2355,6 +2341,12 @@ packages: cpu: [ia32] os: [linux] + '@esbuild/linux-ia32@0.25.6': + resolution: {integrity: sha512-aHWdQ2AAltRkLPOsKdi3xv0mZ8fUGPdlKEjIEhxCPm5yKEThcUjHpWB1idN74lfXGnZ5SULQSgtr5Qos5B0bPw==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + '@esbuild/linux-loong64@0.21.5': resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} engines: {node: '>=12'} @@ -2373,6 +2365,12 @@ packages: cpu: [loong64] os: [linux] + '@esbuild/linux-loong64@0.25.6': + resolution: {integrity: sha512-VgKCsHdXRSQ7E1+QXGdRPlQ/e08bN6WMQb27/TMfV+vPjjTImuT9PmLXupRlC90S1JeNNW5lzkAEO/McKeJ2yg==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + '@esbuild/linux-mips64el@0.21.5': resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} engines: {node: '>=12'} @@ -2391,6 +2389,12 @@ packages: cpu: [mips64el] os: [linux] + '@esbuild/linux-mips64el@0.25.6': + resolution: {integrity: sha512-WViNlpivRKT9/py3kCmkHnn44GkGXVdXfdc4drNmRl15zVQ2+D2uFwdlGh6IuK5AAnGTo2qPB1Djppj+t78rzw==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + '@esbuild/linux-ppc64@0.21.5': resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} engines: {node: '>=12'} @@ -2409,6 +2413,12 @@ packages: cpu: [ppc64] os: [linux] + '@esbuild/linux-ppc64@0.25.6': + resolution: {integrity: sha512-wyYKZ9NTdmAMb5730I38lBqVu6cKl4ZfYXIs31Baf8aoOtB4xSGi3THmDYt4BTFHk7/EcVixkOV2uZfwU3Q2Jw==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + '@esbuild/linux-riscv64@0.21.5': resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} engines: {node: '>=12'} @@ -2427,6 +2437,12 @@ packages: cpu: [riscv64] os: [linux] + '@esbuild/linux-riscv64@0.25.6': + resolution: {integrity: sha512-KZh7bAGGcrinEj4qzilJ4hqTY3Dg2U82c8bv+e1xqNqZCrCyc+TL9AUEn5WGKDzm3CfC5RODE/qc96OcbIe33w==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + '@esbuild/linux-s390x@0.21.5': resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} engines: {node: '>=12'} @@ -2445,6 +2461,12 @@ packages: cpu: [s390x] os: [linux] + '@esbuild/linux-s390x@0.25.6': + resolution: {integrity: sha512-9N1LsTwAuE9oj6lHMyyAM+ucxGiVnEqUdp4v7IaMmrwb06ZTEVCIs3oPPplVsnjPfyjmxwHxHMF8b6vzUVAUGw==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + '@esbuild/linux-x64@0.21.5': resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} engines: {node: '>=12'} @@ -2463,6 +2485,12 @@ packages: cpu: [x64] os: [linux] + '@esbuild/linux-x64@0.25.6': + resolution: {integrity: sha512-A6bJB41b4lKFWRKNrWoP2LHsjVzNiaurf7wyj/XtFNTsnPuxwEBWHLty+ZE0dWBKuSK1fvKgrKaNjBS7qbFKig==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + '@esbuild/netbsd-arm64@0.25.4': resolution: {integrity: sha512-vUnkBYxZW4hL/ie91hSqaSNjulOnYXE1VSLusnvHg2u3jewJBz3YzB9+oCw8DABeVqZGg94t9tyZFoHma8gWZQ==} engines: {node: '>=18'} @@ -2475,6 +2503,12 @@ packages: cpu: [arm64] os: [netbsd] + '@esbuild/netbsd-arm64@0.25.6': + resolution: {integrity: sha512-IjA+DcwoVpjEvyxZddDqBY+uJ2Snc6duLpjmkXm/v4xuS3H+3FkLZlDm9ZsAbF9rsfP3zeA0/ArNDORZgrxR/Q==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + '@esbuild/netbsd-x64@0.21.5': resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} engines: {node: '>=12'} @@ -2493,6 +2527,12 @@ packages: cpu: [x64] os: [netbsd] + '@esbuild/netbsd-x64@0.25.6': + resolution: {integrity: sha512-dUXuZr5WenIDlMHdMkvDc1FAu4xdWixTCRgP7RQLBOkkGgwuuzaGSYcOpW4jFxzpzL1ejb8yF620UxAqnBrR9g==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + '@esbuild/openbsd-arm64@0.25.4': resolution: {integrity: sha512-Ct2WcFEANlFDtp1nVAXSNBPDxyU+j7+tId//iHXU2f/lN5AmO4zLyhDcpR5Cz1r08mVxzt3Jpyt4PmXQ1O6+7A==} engines: {node: '>=18'} @@ -2505,6 +2545,12 @@ packages: cpu: [arm64] os: [openbsd] + '@esbuild/openbsd-arm64@0.25.6': + resolution: {integrity: sha512-l8ZCvXP0tbTJ3iaqdNf3pjaOSd5ex/e6/omLIQCVBLmHTlfXW3zAxQ4fnDmPLOB1x9xrcSi/xtCWFwCZRIaEwg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + '@esbuild/openbsd-x64@0.21.5': resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} engines: {node: '>=12'} @@ -2523,6 +2569,18 @@ packages: cpu: [x64] os: [openbsd] + '@esbuild/openbsd-x64@0.25.6': + resolution: {integrity: sha512-hKrmDa0aOFOr71KQ/19JC7az1P0GWtCN1t2ahYAf4O007DHZt/dW8ym5+CUdJhQ/qkZmI1HAF8KkJbEFtCL7gw==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + + '@esbuild/openharmony-arm64@0.25.6': + resolution: {integrity: sha512-+SqBcAWoB1fYKmpWoQP4pGtx+pUUC//RNYhFdbcSA16617cchuryuhOCRpPsjCblKukAckWsV+aQ3UKT/RMPcA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openharmony] + '@esbuild/sunos-x64@0.21.5': resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} engines: {node: '>=12'} @@ -2541,6 +2599,12 @@ packages: cpu: [x64] os: [sunos] + '@esbuild/sunos-x64@0.25.6': + resolution: {integrity: sha512-dyCGxv1/Br7MiSC42qinGL8KkG4kX0pEsdb0+TKhmJZgCUDBGmyo1/ArCjNGiOLiIAgdbWgmWgib4HoCi5t7kA==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + '@esbuild/win32-arm64@0.21.5': resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} engines: {node: '>=12'} @@ -2559,6 +2623,12 @@ packages: cpu: [arm64] os: [win32] + '@esbuild/win32-arm64@0.25.6': + resolution: {integrity: sha512-42QOgcZeZOvXfsCBJF5Afw73t4veOId//XD3i+/9gSkhSV6Gk3VPlWncctI+JcOyERv85FUo7RxuxGy+z8A43Q==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + '@esbuild/win32-ia32@0.21.5': resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} engines: {node: '>=12'} @@ -2577,6 +2647,12 @@ packages: cpu: [ia32] os: [win32] + '@esbuild/win32-ia32@0.25.6': + resolution: {integrity: sha512-4AWhgXmDuYN7rJI6ORB+uU9DHLq/erBbuMoAuB4VWJTu5KtCgcKYPynF0YI1VkBNuEfjNlLrFr9KZPJzrtLkrQ==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + '@esbuild/win32-x64@0.21.5': resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} engines: {node: '>=12'} @@ -2595,6 +2671,12 @@ packages: cpu: [x64] os: [win32] + '@esbuild/win32-x64@0.25.6': + resolution: {integrity: sha512-NgJPHHbEpLQgDH2MjQu90pzW/5vvXIZ7KOnPyNBm92A6WgZ/7b6fJyUBjoumLqeOQQGqY2QjQxRo97ah4Sj0cA==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + '@eslint-community/eslint-plugin-eslint-comments@4.5.0': resolution: {integrity: sha512-MAhuTKlr4y/CE3WYX26raZjy+I/kS2PLKSzvfmDCGrBLTFHOYwqROZdr4XwPgXwX3K9rjzMr4pSmUWGnzsUyMg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -2698,14 +2780,14 @@ packages: '@fastify/proxy-addr@5.0.0': resolution: {integrity: sha512-37qVVA1qZ5sgH7KpHkkC4z9SK6StIsIcOmpjvMPXNb3vx2GQxhZocogVYbr2PbbeLCQxYIPDok307xEvRZOzGA==} - '@floating-ui/core@1.6.9': - resolution: {integrity: sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==} + '@floating-ui/core@1.7.2': + resolution: {integrity: sha512-wNB5ooIKHQc+Kui96jE/n69rHFWAVoxn5CAzL1Xdd8FG03cgY3MLO+GF9U3W737fYDSgPWA6MReKhBQBop6Pcw==} '@floating-ui/dom@1.1.1': resolution: {integrity: sha512-TpIO93+DIujg3g7SykEAGZMDtbJRrmnYRCNYSjJlvIbGhBjRSNTLVbNeDQBrzy9qDgUbiWdc7KA0uZHZ2tJmiw==} - '@floating-ui/utils@0.2.9': - resolution: {integrity: sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==} + '@floating-ui/utils@0.2.10': + resolution: {integrity: sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==} '@gar/promisify@1.1.3': resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} @@ -2750,8 +2832,8 @@ packages: '@iconify-json/logos@1.2.4': resolution: {integrity: sha512-XC4If5D/hbaZvUkTV8iaZuGlQCyG6CNOlaAaJaGa13V5QMYwYjgtKk3vPP8wz3wtTVNVEVk3LRx1fOJz+YnSMw==} - '@iconify-json/simple-icons@1.2.31': - resolution: {integrity: sha512-xBUPtvkcSAiXs9DfVtudhLddQtQYin3I3Ph/W5FNYA0oE6r2hmLB8TgOog9OjOt1Sxn3IB5+4n5+64DMf2xNmQ==} + '@iconify-json/simple-icons@1.2.42': + resolution: {integrity: sha512-G/EED0hUV1wMNUsWaFdQYLibm6SO7rP2GZP1+CvhszB5WAFYYibD3zoWp3X96xSIWpYQFvccvE17ewpd0Q1hWQ==} '@iconify-json/vscode-icons@1.2.23': resolution: {integrity: sha512-gFTcKecKra2/b5SbGDgHGI/l8CuikHyBPmqGlK+YCmS8AK72dtDQbUekdoACsju/3TYS37QvdPoOQwnyx2LdYg==} @@ -2768,8 +2850,8 @@ packages: cpu: [arm64] os: [darwin] - '@img/sharp-darwin-arm64@0.34.2': - resolution: {integrity: sha512-OfXHZPppddivUJnqyKoi5YVeHRkkNE2zUFT2gbpKxp/JZCFYEYubnMg+gOp6lWfasPrTS+KPosKqdI+ELYVDtg==} + '@img/sharp-darwin-arm64@0.34.3': + resolution: {integrity: sha512-ryFMfvxxpQRsgZJqBd4wsttYQbCxsJksrv9Lw/v798JcQ8+w84mBWuXwl+TT0WJ/WrYOLaYpwQXi3sA9nTIaIg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [darwin] @@ -2780,8 +2862,8 @@ packages: cpu: [x64] os: [darwin] - '@img/sharp-darwin-x64@0.34.2': - resolution: {integrity: sha512-dYvWqmjU9VxqXmjEtjmvHnGqF8GrVjM2Epj9rJ6BUIXvk8slvNDJbhGFvIoXzkDhrJC2jUxNLz/GUjjvSzfw+g==} + '@img/sharp-darwin-x64@0.34.3': + resolution: {integrity: sha512-yHpJYynROAj12TA6qil58hmPmAwxKKC7reUqtGLzsOHfP7/rniNGTL8tjWX6L3CTV4+5P4ypcS7Pp+7OB+8ihA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [darwin] @@ -2791,8 +2873,8 @@ packages: cpu: [arm64] os: [darwin] - '@img/sharp-libvips-darwin-arm64@1.1.0': - resolution: {integrity: sha512-HZ/JUmPwrJSoM4DIQPv/BfNh9yrOA8tlBbqbLz4JZ5uew2+o22Ik+tHQJcih7QJuSa0zo5coHTfD5J8inqj9DA==} + '@img/sharp-libvips-darwin-arm64@1.2.0': + resolution: {integrity: sha512-sBZmpwmxqwlqG9ueWFXtockhsxefaV6O84BMOrhtg/YqbTaRdqDE7hxraVE3y6gVM4eExmfzW4a8el9ArLeEiQ==} cpu: [arm64] os: [darwin] @@ -2801,8 +2883,8 @@ packages: cpu: [x64] os: [darwin] - '@img/sharp-libvips-darwin-x64@1.1.0': - resolution: {integrity: sha512-Xzc2ToEmHN+hfvsl9wja0RlnXEgpKNmftriQp6XzY/RaSfwD9th+MSh0WQKzUreLKKINb3afirxW7A0fz2YWuQ==} + '@img/sharp-libvips-darwin-x64@1.2.0': + resolution: {integrity: sha512-M64XVuL94OgiNHa5/m2YvEQI5q2cl9d/wk0qFTDVXcYzi43lxuiFTftMR1tOnFQovVXNZJ5TURSDK2pNe9Yzqg==} cpu: [x64] os: [darwin] @@ -2811,8 +2893,8 @@ packages: cpu: [arm64] os: [linux] - '@img/sharp-libvips-linux-arm64@1.1.0': - resolution: {integrity: sha512-IVfGJa7gjChDET1dK9SekxFFdflarnUB8PwW8aGwEoF3oAsSDuNUTYS+SKDOyOJxQyDC1aPFMuRYLoDInyV9Ew==} + '@img/sharp-libvips-linux-arm64@1.2.0': + resolution: {integrity: sha512-RXwd0CgG+uPRX5YYrkzKyalt2OJYRiJQ8ED/fi1tq9WQW2jsQIn0tqrlR5l5dr/rjqq6AHAxURhj2DVjyQWSOA==} cpu: [arm64] os: [linux] @@ -2821,13 +2903,13 @@ packages: cpu: [arm] os: [linux] - '@img/sharp-libvips-linux-arm@1.1.0': - resolution: {integrity: sha512-s8BAd0lwUIvYCJyRdFqvsj+BJIpDBSxs6ivrOPm/R7piTs5UIwY5OjXrP2bqXC9/moGsyRa37eYWYCOGVXxVrA==} + '@img/sharp-libvips-linux-arm@1.2.0': + resolution: {integrity: sha512-mWd2uWvDtL/nvIzThLq3fr2nnGfyr/XMXlq8ZJ9WMR6PXijHlC3ksp0IpuhK6bougvQrchUAfzRLnbsen0Cqvw==} cpu: [arm] os: [linux] - '@img/sharp-libvips-linux-ppc64@1.1.0': - resolution: {integrity: sha512-tiXxFZFbhnkWE2LA8oQj7KYR+bWBkiV2nilRldT7bqoEZ4HiDOcePr9wVDAZPi/Id5fT1oY9iGnDq20cwUz8lQ==} + '@img/sharp-libvips-linux-ppc64@1.2.0': + resolution: {integrity: sha512-Xod/7KaDDHkYu2phxxfeEPXfVXFKx70EAFZ0qyUdOjCcxbjqyJOEUpDe6RIyaunGxT34Anf9ue/wuWOqBW2WcQ==} cpu: [ppc64] os: [linux] @@ -2836,8 +2918,8 @@ packages: cpu: [s390x] os: [linux] - '@img/sharp-libvips-linux-s390x@1.1.0': - resolution: {integrity: sha512-xukSwvhguw7COyzvmjydRb3x/09+21HykyapcZchiCUkTThEQEOMtBj9UhkaBRLuBrgLFzQ2wbxdeCCJW/jgJA==} + '@img/sharp-libvips-linux-s390x@1.2.0': + resolution: {integrity: sha512-eMKfzDxLGT8mnmPJTNMcjfO33fLiTDsrMlUVcp6b96ETbnJmd4uvZxVJSKPQfS+odwfVaGifhsB07J1LynFehw==} cpu: [s390x] os: [linux] @@ -2846,8 +2928,8 @@ packages: cpu: [x64] os: [linux] - '@img/sharp-libvips-linux-x64@1.1.0': - resolution: {integrity: sha512-yRj2+reB8iMg9W5sULM3S74jVS7zqSzHG3Ol/twnAAkAhnGQnpjj6e4ayUz7V+FpKypwgs82xbRdYtchTTUB+Q==} + '@img/sharp-libvips-linux-x64@1.2.0': + resolution: {integrity: sha512-ZW3FPWIc7K1sH9E3nxIGB3y3dZkpJlMnkk7z5tu1nSkBoCgw2nSRTFHI5pB/3CQaJM0pdzMF3paf9ckKMSE9Tg==} cpu: [x64] os: [linux] @@ -2856,8 +2938,8 @@ packages: cpu: [arm64] os: [linux] - '@img/sharp-libvips-linuxmusl-arm64@1.1.0': - resolution: {integrity: sha512-jYZdG+whg0MDK+q2COKbYidaqW/WTz0cc1E+tMAusiDygrM4ypmSCjOJPmFTvHHJ8j/6cAGyeDWZOsK06tP33w==} + '@img/sharp-libvips-linuxmusl-arm64@1.2.0': + resolution: {integrity: sha512-UG+LqQJbf5VJ8NWJ5Z3tdIe/HXjuIdo4JeVNADXBFuG7z9zjoegpzzGIyV5zQKi4zaJjnAd2+g2nna8TZvuW9Q==} cpu: [arm64] os: [linux] @@ -2866,8 +2948,8 @@ packages: cpu: [x64] os: [linux] - '@img/sharp-libvips-linuxmusl-x64@1.1.0': - resolution: {integrity: sha512-wK7SBdwrAiycjXdkPnGCPLjYb9lD4l6Ze2gSdAGVZrEL05AOUJESWU2lhlC+Ffn5/G+VKuSm6zzbQSzFX/P65A==} + '@img/sharp-libvips-linuxmusl-x64@1.2.0': + resolution: {integrity: sha512-SRYOLR7CXPgNze8akZwjoGBoN1ThNZoqpOgfnOxmWsklTGVfJiGJoC/Lod7aNMGA1jSsKWM1+HRX43OP6p9+6Q==} cpu: [x64] os: [linux] @@ -2877,8 +2959,8 @@ packages: cpu: [arm64] os: [linux] - '@img/sharp-linux-arm64@0.34.2': - resolution: {integrity: sha512-D8n8wgWmPDakc83LORcfJepdOSN6MvWNzzz2ux0MnIbOqdieRZwVYY32zxVx+IFUT8er5KPcyU3XXsn+GzG/0Q==} + '@img/sharp-linux-arm64@0.34.3': + resolution: {integrity: sha512-QdrKe3EvQrqwkDrtuTIjI0bu6YEJHTgEeqdzI3uWJOH6G1O8Nl1iEeVYRGdj1h5I21CqxSvQp1Yv7xeU3ZewbA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] @@ -2889,20 +2971,26 @@ packages: cpu: [arm] os: [linux] - '@img/sharp-linux-arm@0.34.2': - resolution: {integrity: sha512-0DZzkvuEOqQUP9mo2kjjKNok5AmnOr1jB2XYjkaoNRwpAYMDzRmAqUIa1nRi58S2WswqSfPOWLNOr0FDT3H5RQ==} + '@img/sharp-linux-arm@0.34.3': + resolution: {integrity: sha512-oBK9l+h6KBN0i3dC8rYntLiVfW8D8wH+NPNT3O/WBHeW0OQWCjfWksLUaPidsrDKpJgXp3G3/hkmhptAW0I3+A==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm] os: [linux] + '@img/sharp-linux-ppc64@0.34.3': + resolution: {integrity: sha512-GLtbLQMCNC5nxuImPR2+RgrviwKwVql28FWZIW1zWruy6zLgA5/x2ZXk3mxj58X/tszVF69KK0Is83V8YgWhLA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [ppc64] + os: [linux] + '@img/sharp-linux-s390x@0.33.5': resolution: {integrity: sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [s390x] os: [linux] - '@img/sharp-linux-s390x@0.34.2': - resolution: {integrity: sha512-EGZ1xwhBI7dNISwxjChqBGELCWMGDvmxZXKjQRuqMrakhO8QoMgqCrdjnAqJq/CScxfRn+Bb7suXBElKQpPDiw==} + '@img/sharp-linux-s390x@0.34.3': + resolution: {integrity: sha512-3gahT+A6c4cdc2edhsLHmIOXMb17ltffJlxR0aC2VPZfwKoTGZec6u5GrFgdR7ciJSsHT27BD3TIuGcuRT0KmQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [s390x] os: [linux] @@ -2913,8 +3001,8 @@ packages: cpu: [x64] os: [linux] - '@img/sharp-linux-x64@0.34.2': - resolution: {integrity: sha512-sD7J+h5nFLMMmOXYH4DD9UtSNBD05tWSSdWAcEyzqW8Cn5UxXvsHAxmxSesYUsTOBmUnjtxghKDl15EvfqLFbQ==} + '@img/sharp-linux-x64@0.34.3': + resolution: {integrity: sha512-8kYso8d806ypnSq3/Ly0QEw90V5ZoHh10yH0HnrzOCr6DKAPI6QVHvwleqMkVQ0m+fc7EH8ah0BB0QPuWY6zJQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] @@ -2925,8 +3013,8 @@ packages: cpu: [arm64] os: [linux] - '@img/sharp-linuxmusl-arm64@0.34.2': - resolution: {integrity: sha512-NEE2vQ6wcxYav1/A22OOxoSOGiKnNmDzCYFOZ949xFmrWZOVII1Bp3NqVVpvj+3UeHMFyN5eP/V5hzViQ5CZNA==} + '@img/sharp-linuxmusl-arm64@0.34.3': + resolution: {integrity: sha512-vAjbHDlr4izEiXM1OTggpCcPg9tn4YriK5vAjowJsHwdBIdx0fYRsURkxLG2RLm9gyBq66gwtWI8Gx0/ov+JKQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] @@ -2937,8 +3025,8 @@ packages: cpu: [x64] os: [linux] - '@img/sharp-linuxmusl-x64@0.34.2': - resolution: {integrity: sha512-DOYMrDm5E6/8bm/yQLCWyuDJwUnlevR8xtF8bs+gjZ7cyUNYXiSf/E8Kp0Ss5xasIaXSHzb888V1BE4i1hFhAA==} + '@img/sharp-linuxmusl-x64@0.34.3': + resolution: {integrity: sha512-gCWUn9547K5bwvOn9l5XGAEjVTTRji4aPTqLzGXHvIr6bIDZKNTA34seMPgM0WmSf+RYBH411VavCejp3PkOeQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] @@ -2948,13 +3036,13 @@ packages: engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [wasm32] - '@img/sharp-wasm32@0.34.2': - resolution: {integrity: sha512-/VI4mdlJ9zkaq53MbIG6rZY+QRN3MLbR6usYlgITEzi4Rpx5S6LFKsycOQjkOGmqTNmkIdLjEvooFKwww6OpdQ==} + '@img/sharp-wasm32@0.34.3': + resolution: {integrity: sha512-+CyRcpagHMGteySaWos8IbnXcHgfDn7pO2fiC2slJxvNq9gDipYBN42/RagzctVRKgxATmfqOSulgZv5e1RdMg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [wasm32] - '@img/sharp-win32-arm64@0.34.2': - resolution: {integrity: sha512-cfP/r9FdS63VA5k0xiqaNaEoGxBg9k7uE+RQGzuK9fHt7jib4zAVVseR9LsE4gJcNWgT6APKMNnCcnyOtmSEUQ==} + '@img/sharp-win32-arm64@0.34.3': + resolution: {integrity: sha512-MjnHPnbqMXNC2UgeLJtX4XqoVHHlZNd+nPt1kRPmj63wURegwBhZlApELdtxM2OIZDRv/DFtLcNhVbd1z8GYXQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [win32] @@ -2965,8 +3053,8 @@ packages: cpu: [ia32] os: [win32] - '@img/sharp-win32-ia32@0.34.2': - resolution: {integrity: sha512-QLjGGvAbj0X/FXl8n1WbtQ6iVBpWU7JO94u/P2M4a8CFYsvQi4GW2mRy/JqkRx0qpBzaOdKJKw8uc930EX2AHw==} + '@img/sharp-win32-ia32@0.34.3': + resolution: {integrity: sha512-xuCdhH44WxuXgOM714hn4amodJMZl3OEvf0GVTm0BEyMeA2to+8HEdRPShH0SLYptJY1uBw+SCFP9WVQi1Q/cw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [ia32] os: [win32] @@ -2977,14 +3065,14 @@ packages: cpu: [x64] os: [win32] - '@img/sharp-win32-x64@0.34.2': - resolution: {integrity: sha512-aUdT6zEYtDKCaxkofmmJDJYGCf0+pJg3eU9/oBuqvEeoB9dKI6ZLc/1iLJCTuJQDO4ptntAlkUmHgGjyuobZbw==} + '@img/sharp-win32-x64@0.34.3': + resolution: {integrity: sha512-OWwz05d++TxzLEv4VnsTz5CmZ6mI6S05sfQGEMrNrQcOEERbX46332IvE7pO/EUiw7jUrrS40z/M7kPyjfl04g==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [win32] - '@inquirer/checkbox@4.1.5': - resolution: {integrity: sha512-swPczVU+at65xa5uPfNP9u3qx/alNwiaykiI/ExpsmMSQW55trmZcwhYWzw/7fj+n6Q8z1eENvR7vFfq9oPSAQ==} + '@inquirer/checkbox@4.1.9': + resolution: {integrity: sha512-DBJBkzI5Wx4jFaYm221LHvAhpKYkhVS0k9plqHwaHhofGNxvYB7J3Bz8w+bFJ05zaMb0sZNHo4KdmENQFlNTuQ==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -3010,8 +3098,8 @@ packages: '@types/node': optional: true - '@inquirer/editor@4.2.10': - resolution: {integrity: sha512-5GVWJ+qeI6BzR6TIInLP9SXhWCEcvgFQYmcRG6d6RIlhFjM5TyG18paTGBgRYyEouvCmzeco47x9zX9tQEofkw==} + '@inquirer/editor@4.2.14': + resolution: {integrity: sha512-yd2qtLl4QIIax9DTMZ1ZN2pFrrj+yL3kgIWxm34SS6uwCr0sIhsNyudUjAo5q3TqI03xx4SEBkUJqZuAInp9uA==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -3019,8 +3107,8 @@ packages: '@types/node': optional: true - '@inquirer/expand@4.0.12': - resolution: {integrity: sha512-jV8QoZE1fC0vPe6TnsOfig+qwu7Iza1pkXoUJ3SroRagrt2hxiL+RbM432YAihNR7m7XnU0HWl/WQ35RIGmXHw==} + '@inquirer/expand@4.0.16': + resolution: {integrity: sha512-oiDqafWzMtofeJyyGkb1CTPaxUkjIcSxePHHQCfif8t3HV9pHcw1Kgdw3/uGpDvaFfeTluwQtWiqzPVjAqS3zA==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -3028,16 +3116,12 @@ packages: '@types/node': optional: true - '@inquirer/figures@1.0.11': - resolution: {integrity: sha512-eOg92lvrn/aRUqbxRyvpEWnrvRuTYRifixHkYVpJiygTgVSBIHDqLh0SrMQXkafvULg3ck11V7xvR+zcgvpHFw==} - engines: {node: '>=18'} - '@inquirer/figures@1.0.12': resolution: {integrity: sha512-MJttijd8rMFcKJC8NYmprWr6hD3r9Gd9qUC0XwPNwoEPWSMVJwA2MlXxF+nhZZNMY+HXsWa+o7KY2emWYIn0jQ==} engines: {node: '>=18'} - '@inquirer/input@4.1.9': - resolution: {integrity: sha512-mshNG24Ij5KqsQtOZMgj5TwEjIf+F2HOESk6bjMwGWgcH5UBe8UoljwzNFHqdMbGYbgAf6v2wU/X9CAdKJzgOA==} + '@inquirer/input@4.2.0': + resolution: {integrity: sha512-opqpHPB1NjAmDISi3uvZOTrjEEU5CWVu/HBkDby8t93+6UxYX0Z7Ps0Ltjm5sZiEbWenjubwUkivAEYQmy9xHw==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -3045,8 +3129,8 @@ packages: '@types/node': optional: true - '@inquirer/number@3.0.12': - resolution: {integrity: sha512-7HRFHxbPCA4e4jMxTQglHJwP+v/kpFsCf2szzfBHy98Wlc3L08HL76UDiA87TOdX5fwj2HMOLWqRWv9Pnn+Z5Q==} + '@inquirer/number@3.0.16': + resolution: {integrity: sha512-kMrXAaKGavBEoBYUCgualbwA9jWUx2TjMA46ek+pEKy38+LFpL9QHlTd8PO2kWPUgI/KB+qi02o4y2rwXbzr3Q==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -3054,8 +3138,8 @@ packages: '@types/node': optional: true - '@inquirer/password@4.0.12': - resolution: {integrity: sha512-FlOB0zvuELPEbnBYiPaOdJIaDzb2PmJ7ghi/SVwIHDDSQ2K4opGBkF+5kXOg6ucrtSUQdLhVVY5tycH0j0l+0g==} + '@inquirer/password@4.0.16': + resolution: {integrity: sha512-g8BVNBj5Zeb5/Y3cSN+hDUL7CsIFDIuVxb9EPty3lkxBaYpjL5BNRKSYOF9yOLe+JOcKFd+TSVeADQ4iSY7rbg==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -3081,8 +3165,8 @@ packages: '@types/node': optional: true - '@inquirer/rawlist@4.1.0': - resolution: {integrity: sha512-6ob45Oh9pXmfprKqUiEeMz/tjtVTFQTgDDz1xAMKMrIvyrYjAmRbQZjMJfsictlL4phgjLhdLu27IkHNnNjB7g==} + '@inquirer/rawlist@4.1.4': + resolution: {integrity: sha512-5GGvxVpXXMmfZNtvWw4IsHpR7RzqAR624xtkPd1NxxlV5M+pShMqzL4oRddRkg8rVEOK9fKdJp1jjVML2Lr7TQ==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -3090,8 +3174,8 @@ packages: '@types/node': optional: true - '@inquirer/search@3.0.12': - resolution: {integrity: sha512-H/kDJA3kNlnNIjB8YsaXoQI0Qccgf0Na14K1h8ExWhNmUg2E941dyFPrZeugihEa9AZNW5NdsD/NcvUME83OPQ==} + '@inquirer/search@3.0.16': + resolution: {integrity: sha512-POCmXo+j97kTGU6aeRjsPyuCpQQfKcMXdeTMw708ZMtWrj5aykZvlUxH4Qgz3+Y1L/cAVZsSpA+UgZCu2GMOMg==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -3099,8 +3183,8 @@ packages: '@types/node': optional: true - '@inquirer/select@4.2.0': - resolution: {integrity: sha512-KkXQ4aSySWimpV4V/TUJWdB3tdfENZUU765GjOIZ0uPwdbGIG6jrxD4dDf1w68uP+DVtfNhr1A92B+0mbTZ8FA==} + '@inquirer/select@4.2.4': + resolution: {integrity: sha512-unTppUcTjmnbl/q+h8XeQDhAqIOmwWYWNyiiP2e3orXrg6tOaa5DHXja9PChCSbChOsktyKgOieRZFnajzxoBg==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -3150,15 +3234,9 @@ packages: '@jridgewell/source-map@0.3.10': resolution: {integrity: sha512-0pPkgz9dY+bijgistcTTJ5mR+ocqRXLuhXHYdzoMmmoJ2C9S46RCm2GMUbatPEUK9Yjy26IrAy8D/M00lLkv+Q==} - '@jridgewell/source-map@0.3.6': - resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} - '@jridgewell/sourcemap-codec@1.5.4': resolution: {integrity: sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==} - '@jridgewell/trace-mapping@0.3.25': - resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} - '@jridgewell/trace-mapping@0.3.29': resolution: {integrity: sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==} @@ -3194,8 +3272,8 @@ packages: '@mermaid-js/mermaid-mindmap@9.3.0': resolution: {integrity: sha512-IhtYSVBBRYviH1Ehu8gk69pMDF8DSRqXBRDMWrEfHoaMruHeaP2DXA3PBnuwsMaCdPQhlUUcy/7DBLAEIXvCAw==} - '@mermaid-js/parser@0.6.0': - resolution: {integrity: sha512-7DNESgpyZ5WG1SIkrYafVBhWmImtmQuoxOO1lawI3gQYWxBX3v1FW3IyuuRfKJAO06XrZR71W0Kif5VEGGd4VA==} + '@mermaid-js/parser@0.6.1': + resolution: {integrity: sha512-lCQNpV8R4lgsGcjX5667UiuDLk2micCtjtxR1YKbBXvN5w2v+FeLYoHrTSSrjwXdMcDYvE4ZBPvKT31dfeSmmA==} '@mjackson/node-fetch-server@0.6.1': resolution: {integrity: sha512-9ZJnk/DJjt805uv5PPv11haJIW+HHf3YEEyVXv+8iLQxLD/iXA68FH220XoiTPBC4gCg5q+IMadDw8qPqlA5wg==} @@ -3204,108 +3282,108 @@ packages: resolution: {integrity: sha512-RuzCup9Ct91Y7V79xwCb146RaBRHZ7NBbrIUySumd1rpKqHL5OonaqrGIbug5hNwP/fRyxFMA6ISgw4FTtYFYg==} engines: {node: '>=18'} - '@napi-rs/nice-android-arm-eabi@1.0.1': - resolution: {integrity: sha512-5qpvOu5IGwDo7MEKVqqyAxF90I6aLj4n07OzpARdgDRfz8UbBztTByBp0RC59r3J1Ij8uzYi6jI7r5Lws7nn6w==} + '@napi-rs/nice-android-arm-eabi@1.0.4': + resolution: {integrity: sha512-OZFMYUkih4g6HCKTjqJHhMUlgvPiDuSLZPbPBWHLjKmFTv74COzRlq/gwHtmEVaR39mJQ6ZyttDl2HNMUbLVoA==} engines: {node: '>= 10'} cpu: [arm] os: [android] - '@napi-rs/nice-android-arm64@1.0.1': - resolution: {integrity: sha512-GqvXL0P8fZ+mQqG1g0o4AO9hJjQaeYG84FRfZaYjyJtZZZcMjXW5TwkL8Y8UApheJgyE13TQ4YNUssQaTgTyvA==} + '@napi-rs/nice-android-arm64@1.0.4': + resolution: {integrity: sha512-k8u7cjeA64vQWXZcRrPbmwjH8K09CBnNaPnI9L1D5N6iMPL3XYQzLcN6WwQonfcqCDv5OCY3IqX89goPTV4KMw==} engines: {node: '>= 10'} cpu: [arm64] os: [android] - '@napi-rs/nice-darwin-arm64@1.0.1': - resolution: {integrity: sha512-91k3HEqUl2fsrz/sKkuEkscj6EAj3/eZNCLqzD2AA0TtVbkQi8nqxZCZDMkfklULmxLkMxuUdKe7RvG/T6s2AA==} + '@napi-rs/nice-darwin-arm64@1.0.4': + resolution: {integrity: sha512-GsLdQvUcuVzoyzmtjsThnpaVEizAqH5yPHgnsBmq3JdVoVZHELFo7PuJEdfOH1DOHi2mPwB9sCJEstAYf3XCJA==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@napi-rs/nice-darwin-x64@1.0.1': - resolution: {integrity: sha512-jXnMleYSIR/+TAN/p5u+NkCA7yidgswx5ftqzXdD5wgy/hNR92oerTXHc0jrlBisbd7DpzoaGY4cFD7Sm5GlgQ==} + '@napi-rs/nice-darwin-x64@1.0.4': + resolution: {integrity: sha512-1y3gyT3e5zUY5SxRl3QDtJiWVsbkmhtUHIYwdWWIQ3Ia+byd/IHIEpqAxOGW1nhhnIKfTCuxBadHQb+yZASVoA==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@napi-rs/nice-freebsd-x64@1.0.1': - resolution: {integrity: sha512-j+iJ/ezONXRQsVIB/FJfwjeQXX7A2tf3gEXs4WUGFrJjpe/z2KB7sOv6zpkm08PofF36C9S7wTNuzHZ/Iiccfw==} + '@napi-rs/nice-freebsd-x64@1.0.4': + resolution: {integrity: sha512-06oXzESPRdXUuzS8n2hGwhM2HACnDfl3bfUaSqLGImM8TA33pzDXgGL0e3If8CcFWT98aHows5Lk7xnqYNGFeA==} engines: {node: '>= 10'} cpu: [x64] os: [freebsd] - '@napi-rs/nice-linux-arm-gnueabihf@1.0.1': - resolution: {integrity: sha512-G8RgJ8FYXYkkSGQwywAUh84m946UTn6l03/vmEXBYNJxQJcD+I3B3k5jmjFG/OPiU8DfvxutOP8bi+F89MCV7Q==} + '@napi-rs/nice-linux-arm-gnueabihf@1.0.4': + resolution: {integrity: sha512-CgklZ6g8WL4+EgVVkxkEvvsi2DSLf9QIloxWO0fvQyQBp6VguUSX3eHLeRpqwW8cRm2Hv/Q1+PduNk7VK37VZw==} engines: {node: '>= 10'} cpu: [arm] os: [linux] - '@napi-rs/nice-linux-arm64-gnu@1.0.1': - resolution: {integrity: sha512-IMDak59/W5JSab1oZvmNbrms3mHqcreaCeClUjwlwDr0m3BoR09ZiN8cKFBzuSlXgRdZ4PNqCYNeGQv7YMTjuA==} + '@napi-rs/nice-linux-arm64-gnu@1.0.4': + resolution: {integrity: sha512-wdAJ7lgjhAlsANUCv0zi6msRwq+D4KDgU+GCCHssSxWmAERZa2KZXO0H2xdmoJ/0i03i6YfK/sWaZgUAyuW2oQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@napi-rs/nice-linux-arm64-musl@1.0.1': - resolution: {integrity: sha512-wG8fa2VKuWM4CfjOjjRX9YLIbysSVV1S3Kgm2Fnc67ap/soHBeYZa6AGMeR5BJAylYRjnoVOzV19Cmkco3QEPw==} + '@napi-rs/nice-linux-arm64-musl@1.0.4': + resolution: {integrity: sha512-4b1KYG+sriufhFrpUS9uNOEYYJqSfcbnwGx6uGX7JjrH8tELG90cOpCawz5THNIwlS3DhLgnCOcn0+4p6z26QA==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@napi-rs/nice-linux-ppc64-gnu@1.0.1': - resolution: {integrity: sha512-lxQ9WrBf0IlNTCA9oS2jg/iAjQyTI6JHzABV664LLrLA/SIdD+I1i3Mjf7TsnoUbgopBcCuDztVLfJ0q9ubf6Q==} + '@napi-rs/nice-linux-ppc64-gnu@1.0.4': + resolution: {integrity: sha512-iaf3vMRgr23oe1PUaKpxaH3DS0IMN0+N9iEiWVwYPm/U15vZFYdqVegGfN2PzrZLUl5lc8ZxbmEKDfuqslhAMA==} engines: {node: '>= 10'} cpu: [ppc64] os: [linux] - '@napi-rs/nice-linux-riscv64-gnu@1.0.1': - resolution: {integrity: sha512-3xs69dO8WSWBb13KBVex+yvxmUeEsdWexxibqskzoKaWx9AIqkMbWmE2npkazJoopPKX2ULKd8Fm9veEn0g4Ig==} + '@napi-rs/nice-linux-riscv64-gnu@1.0.4': + resolution: {integrity: sha512-UXoREY6Yw6rHrGuTwQgBxpfjK34t6mTjibE9/cXbefL9AuUCJ9gEgwNKZiONuR5QGswChqo9cnthjdKkYyAdDg==} engines: {node: '>= 10'} cpu: [riscv64] os: [linux] - '@napi-rs/nice-linux-s390x-gnu@1.0.1': - resolution: {integrity: sha512-lMFI3i9rlW7hgToyAzTaEybQYGbQHDrpRkg+1gJWEpH0PLAQoZ8jiY0IzakLfNWnVda1eTYYlxxFYzW8Rqczkg==} + '@napi-rs/nice-linux-s390x-gnu@1.0.4': + resolution: {integrity: sha512-eFbgYCRPmsqbYPAlLYU5hYTNbogmIDUvknilehHsFhCH1+0/kN87lP+XaLT0Yeq4V/rpwChSd9vlz4muzFArtw==} engines: {node: '>= 10'} cpu: [s390x] os: [linux] - '@napi-rs/nice-linux-x64-gnu@1.0.1': - resolution: {integrity: sha512-XQAJs7DRN2GpLN6Fb+ZdGFeYZDdGl2Fn3TmFlqEL5JorgWKrQGRUrpGKbgZ25UeZPILuTKJ+OowG2avN8mThBA==} + '@napi-rs/nice-linux-x64-gnu@1.0.4': + resolution: {integrity: sha512-4T3E6uTCwWT6IPnwuPcWVz3oHxvEp/qbrCxZhsgzwTUBEwu78EGNXGdHfKJQt3soth89MLqZJw+Zzvnhrsg1mQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@napi-rs/nice-linux-x64-musl@1.0.1': - resolution: {integrity: sha512-/rodHpRSgiI9o1faq9SZOp/o2QkKQg7T+DK0R5AkbnI/YxvAIEHf2cngjYzLMQSQgUhxym+LFr+UGZx4vK4QdQ==} + '@napi-rs/nice-linux-x64-musl@1.0.4': + resolution: {integrity: sha512-NtbBkAeyBPLvCBkWtwkKXkNSn677eaT0cX3tygq+2qVv71TmHgX4gkX6o9BXjlPzdgPGwrUudavCYPT9tzkEqQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@napi-rs/nice-win32-arm64-msvc@1.0.1': - resolution: {integrity: sha512-rEcz9vZymaCB3OqEXoHnp9YViLct8ugF+6uO5McifTedjq4QMQs3DHz35xBEGhH3gJWEsXMUbzazkz5KNM5YUg==} + '@napi-rs/nice-win32-arm64-msvc@1.0.4': + resolution: {integrity: sha512-vubOe3i+YtSJGEk/++73y+TIxbuVHi+W8ZzrRm2eETCjCRwNlgbfToQZ85dSA+4iBB/NJRGNp+O4hfdbbttZWA==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@napi-rs/nice-win32-ia32-msvc@1.0.1': - resolution: {integrity: sha512-t7eBAyPUrWL8su3gDxw9xxxqNwZzAqKo0Szv3IjVQd1GpXXVkb6vBBQUuxfIYaXMzZLwlxRQ7uzM2vdUE9ULGw==} + '@napi-rs/nice-win32-ia32-msvc@1.0.4': + resolution: {integrity: sha512-BMOVrUDZeg1RNRKVlh4eyLv5djAAVLiSddfpuuQ47EFjBcklg0NUeKMFKNrKQR4UnSn4HAiACLD7YK7koskwmg==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] - '@napi-rs/nice-win32-x64-msvc@1.0.1': - resolution: {integrity: sha512-JlF+uDcatt3St2ntBG8H02F1mM45i5SF9W+bIKiReVE6wiy3o16oBP/yxt+RZ+N6LbCImJXJ6bXNO2kn9AXicg==} + '@napi-rs/nice-win32-x64-msvc@1.0.4': + resolution: {integrity: sha512-kCNk6HcRZquhw/whwh4rHsdPyOSCQCgnVDVik+Y9cuSVTDy3frpiCJTScJqPPS872h4JgZKkr/+CwcwttNEo9Q==} engines: {node: '>= 10'} cpu: [x64] os: [win32] - '@napi-rs/nice@1.0.1': - resolution: {integrity: sha512-zM0mVWSXE0a0h9aKACLwKmD6nHcRiKrPpCfvaKqG1CqDEyjEawId0ocXxVzPMCAm6kkWr2P025msfxXEnt8UGQ==} + '@napi-rs/nice@1.0.4': + resolution: {integrity: sha512-Sqih1YARrmMoHlXGgI9JrrgkzxcaaEso0AH+Y7j8NHonUs+xe4iDsgC3IBIDNdzEewbNpccNN6hip+b5vmyRLw==} engines: {node: '>= 10'} - '@napi-rs/wasm-runtime@0.2.11': - resolution: {integrity: sha512-9DPkXtvHydrcOsopiYpUgPHpmj0HWZKMUnL2dZqpvC42lsratuBG06V5ipyno0fUek5VlFsNQ+AcFATSrJXgMA==} + '@napi-rs/wasm-runtime@0.2.12': + resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==} '@nestjs/cli@11.0.7': resolution: {integrity: sha512-svrP8j1R0/lQVJ8ZI3BlDtuZxmkvVJokUJSB04sr6uibunk2wHeVDDVLZvYBUorCdGU/RHJl1IufhqUBM91vAQ==} @@ -3419,8 +3497,8 @@ packages: resolution: {integrity: sha512-bNlN/hpND8xFQzpjyKxm6vJayD+bPBlOvs4lWihE7WULrphuH1UuFsoVE5386bNNGH8Rs1IH01AFsl7ALQgOlQ==} engines: {node: '>=18.0.0'} - '@netlify/zip-it-and-ship-it@12.2.0': - resolution: {integrity: sha512-64tKrE4bGGh/uChrCKQ1g6rDmY+Jl95bh+GGeP1mzIOcXmZHFja8sWMyaKv8iOxIiPdaJCQuhadSmE4ATUDVFg==} + '@netlify/zip-it-and-ship-it@12.2.1': + resolution: {integrity: sha512-zAr+8Tg80y/sUbhdUkZsq4Uy1IMzkSB6H/sKRMrDQ2NJx4uPgf5X5jMdg9g2FljNcxzpfJwc1Gg4OXQrjD0Z4A==} engines: {node: '>=18.14.0'} hasBin: true @@ -3578,97 +3656,97 @@ packages: '@oslojs/encoding@1.1.0': resolution: {integrity: sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ==} - '@oxc-parser/binding-android-arm64@0.75.0': - resolution: {integrity: sha512-nSHUHCO59G+kbixFVc7dK1j3l1EU3nVNLkj47ysCyl7RW3Z9cwCITp7SVwm+gl3ufCuVU4bkaBpgFnesnqZeDg==} + '@oxc-parser/binding-android-arm64@0.75.1': + resolution: {integrity: sha512-hJt8uKPKj0R+3mKCWZLb14lIJ5o2SvVmO/0FwzbBR4Pdrlmp7mWG28Uui1VSIrFVqr47S38dswfCz5StMhGRjA==} engines: {node: '>=20.0.0'} cpu: [arm64] os: [android] - '@oxc-parser/binding-darwin-arm64@0.75.0': - resolution: {integrity: sha512-Wnx2L/gX39/9ZkohpW9R46eQTavBFnqsoAFaRgOnUsLW/+rtZIacMwwxZCfBhLY/tNlBWEUbTxlN6bvN/hPbKw==} + '@oxc-parser/binding-darwin-arm64@0.75.1': + resolution: {integrity: sha512-uIwpwocl3ot599uPgZMfYC7wpQoL7Cpn6r4jRGss3u2g2och4JVUO8H3BTcne+l/bGGP9FEo58dlKKj27SDzvQ==} engines: {node: '>=20.0.0'} cpu: [arm64] os: [darwin] - '@oxc-parser/binding-darwin-x64@0.75.0': - resolution: {integrity: sha512-jXOYe/K7YLE8xN2dDBcaZ78dxfXWXtPMZBOzg2j0YignThagLX4KgDCqEVlMbQY4MymzpqrY0TzSXjCI9MCfvA==} + '@oxc-parser/binding-darwin-x64@0.75.1': + resolution: {integrity: sha512-Mvt3miySAzXatxPiklsJoPz3yFErNg7sJKnPjBkgn4VCuJjL7Tulbdjkpx/aXGvRA6lPvaxz1hgyeSJ5CU0Arg==} engines: {node: '>=20.0.0'} cpu: [x64] os: [darwin] - '@oxc-parser/binding-freebsd-x64@0.75.0': - resolution: {integrity: sha512-Qz/iLccz8ecbeH0jterDVZcw9xmbuJn0/Jo+yc3+tqd3Iwirp+UbY/6c7SOkFFciF1dNN4G2FLpmDQSSWFZdjw==} + '@oxc-parser/binding-freebsd-x64@0.75.1': + resolution: {integrity: sha512-sBbrz6EGzKh7u5fzKTxQympWTvmM1u7Xm80OXAVPunZ15+Ky2Q2Xmzys8jlfRsceZwRjeziggS+ysCeT0yhyMA==} engines: {node: '>=20.0.0'} cpu: [x64] os: [freebsd] - '@oxc-parser/binding-linux-arm-gnueabihf@0.75.0': - resolution: {integrity: sha512-OQomvh7PfJjzKSfG0lNcTru+QYXYzETrU4YZsWBWcJyV4pKJ6ZoRn4BOlY9QVH3F8htN890/agTQfNtEAzp23g==} + '@oxc-parser/binding-linux-arm-gnueabihf@0.75.1': + resolution: {integrity: sha512-UbzXDqh4IwtF6x1NoxD44esutbe4/+dBzEHle7awCXGFKWPghP/AMGZnA2JYBGHxrxbiQpfueynyvqQThEAYtg==} engines: {node: '>=20.0.0'} cpu: [arm] os: [linux] - '@oxc-parser/binding-linux-arm-musleabihf@0.75.0': - resolution: {integrity: sha512-solH8uhoWkqHaVLGdBjB6cxbKugqRjxiEdXOQYeNXJo5d5gJxLW6WFhLhRedajwVtxVaKhcNNW4vrwuhU85OXA==} + '@oxc-parser/binding-linux-arm-musleabihf@0.75.1': + resolution: {integrity: sha512-cVWiU+UrspdMlp/aMrt1F2l1nxZtrzIkGvIbrKL0hVjOcXvMCp+H2mL07PQ3vnaHo2mt8cPIKv9pd+FoJhgp3w==} engines: {node: '>=20.0.0'} cpu: [arm] os: [linux] - '@oxc-parser/binding-linux-arm64-gnu@0.75.0': - resolution: {integrity: sha512-CrYqeI5/TY8x/G/KvprDaxB9V6Wpudby1sXVpncz4Azzoyg+mIRGgWOl+ZbX/O9uwpCrFr0TPf2JY7cl3baLAA==} + '@oxc-parser/binding-linux-arm64-gnu@0.75.1': + resolution: {integrity: sha512-hmCAu+bIq/4b8H07tLZNyIiWL1Prw1ILuTEPPakb1uFV943kg0ZOwEOpV1poBleZrnSjjciWyKRpDRuacBAgyQ==} engines: {node: '>=20.0.0'} cpu: [arm64] os: [linux] - '@oxc-parser/binding-linux-arm64-musl@0.75.0': - resolution: {integrity: sha512-dQK0rLN6ha5cGahgA4j7zqLH6rtDd5TdNApBo5JFannCLzpr9TQ1QUecYggx70+vLrmm/PMKCMnwR0uuvLbq8g==} + '@oxc-parser/binding-linux-arm64-musl@0.75.1': + resolution: {integrity: sha512-8ilN7iG7Y4qvXJTuHERPKy5LKcT1ioSGRn7Yyd988tzuR9Cvp4+gJu8azYZnSUJKfNV6SGOEfVnxLabCLRkG/A==} engines: {node: '>=20.0.0'} cpu: [arm64] os: [linux] - '@oxc-parser/binding-linux-riscv64-gnu@0.75.0': - resolution: {integrity: sha512-thRPaGeeKuVFI1fTY+G5zeh5w34eUYszliA/2qpAsb1yWfq+imHgsdloFLi3wW1CiR1mnk6AhKFoj7u3JGVWTA==} + '@oxc-parser/binding-linux-riscv64-gnu@0.75.1': + resolution: {integrity: sha512-/JPJXjT/fkG699rlxzLNvQx0URjvzdk7oHln54F159ybgVJKLLWqb8M45Nhw5z6TeaIYyhwIqMNlrA7yb1Rlrw==} engines: {node: '>=20.0.0'} cpu: [riscv64] os: [linux] - '@oxc-parser/binding-linux-s390x-gnu@0.75.0': - resolution: {integrity: sha512-ku2ckoJeXXLe6ZiWFXXYALpfmAtoPUzsWOlFf7HssOYbhHEm/RH9yw/GoUNRwZdz1uSi6tYzNvLZ915irffK/w==} + '@oxc-parser/binding-linux-s390x-gnu@0.75.1': + resolution: {integrity: sha512-t6/E4j+2dT7/4R5hQNX4LBtR1+wxxtJNUVBD89YuiWHPgeEoghqSa0mGMrGyOZPbHMb4V8xdT/CrMMeDpuqRaQ==} engines: {node: '>=20.0.0'} cpu: [s390x] os: [linux] - '@oxc-parser/binding-linux-x64-gnu@0.75.0': - resolution: {integrity: sha512-223VDGrX7cnmhSSRimnL+/eOCp/ABU4Iobfnelz5zbQKRpijQQjk8Ohx2kb7aZ5Q0dY09fDSUNjY/iOBBFaRIg==} + '@oxc-parser/binding-linux-x64-gnu@0.75.1': + resolution: {integrity: sha512-zJ2t+d1rV5dcPJHxN3B1Fxc2KDN+gPgdXtlzp0/EH4iO3s5OePpPvTTZA/d1vfPoQFiFOT7VYNmaD9XjHfMQaw==} engines: {node: '>=20.0.0'} cpu: [x64] os: [linux] - '@oxc-parser/binding-linux-x64-musl@0.75.0': - resolution: {integrity: sha512-WVdpo3EA53PTZt3p2fdmPgoF9jIichRcpd2GmuZV58P3wlFWq9iKefdD4M87mskzdxwGUiMQlPiktNcsZZWMkQ==} + '@oxc-parser/binding-linux-x64-musl@0.75.1': + resolution: {integrity: sha512-62hG/1IoOr0hpmGtF2k1MJUzAXLH7DH3fSAttZ1vEvDThhLplqA7jcqOP0IFMIVZ0kt9cA/rW5pF4tnXjiWeSA==} engines: {node: '>=20.0.0'} cpu: [x64] os: [linux] - '@oxc-parser/binding-wasm32-wasi@0.75.0': - resolution: {integrity: sha512-SPXt1nYkmjuGDh7ZfnfarObQq8AnnvA+m+hmcOqXVSxLJWZQhXDF6AHaS0dzKhpIDHWjScbTp5c9eqINLbPh7g==} + '@oxc-parser/binding-wasm32-wasi@0.75.1': + resolution: {integrity: sha512-txS7vK0EU/1Ey7d1pxGrlp2q/JrxkvLU+r9c3gKxW9mVgvFMQzAxQhuc9tT3ZiS793pkvZ+C1w9GS2DpJi7QYg==} engines: {node: '>=14.0.0'} cpu: [wasm32] - '@oxc-parser/binding-win32-arm64-msvc@0.75.0': - resolution: {integrity: sha512-YBEBK1K5nC6GkQykdtGjKCY+/QvmKiG2blmTOKNUXnsSyDNDivJSClpjb+UrziR87skxnvcn3GbMPY08aG2AVg==} + '@oxc-parser/binding-win32-arm64-msvc@0.75.1': + resolution: {integrity: sha512-/Rw/YLuMaSo8h0QyCniv0UFby5wDTghhswDCcFT2aCCgZaXUVQZrJ+0GJHB8tK72xhe5E6u34etpw/dxxH6E3A==} engines: {node: '>=20.0.0'} cpu: [arm64] os: [win32] - '@oxc-parser/binding-win32-x64-msvc@0.75.0': - resolution: {integrity: sha512-o1f+JB8zFObz+5fvmMlP0ykBUkcVN1STjEHmRahD0TOZG1EJeUvz6xaLXr7EHeRW8z5ftEEGJK5nLlitwLXxCQ==} + '@oxc-parser/binding-win32-x64-msvc@0.75.1': + resolution: {integrity: sha512-ThiQUpCG2nYE/bnYM3fjIpcKbxITB/a/cf5VL0VAqtpsGNCzUC7TrwMVUdfBerTBTEZpwxWBf/d1EF1ggrtVfQ==} engines: {node: '>=20.0.0'} cpu: [x64] os: [win32] - '@oxc-project/types@0.75.0': - resolution: {integrity: sha512-QMW+06WOXs7+F301Y3X0VpmWhwuQVc/X/RP2zF9OIwvSMmsif3xURS2wxbakFIABYsytgBcHpUcFepVS0Qnd3A==} + '@oxc-project/types@0.75.1': + resolution: {integrity: sha512-7ZJy+51qWpZRvynaQUezeYfjCtaSdiXIWFUZIlOuTSfDXpXqnSl/m1IUPLx6XrOy6s0SFv3CLE14vcZy63bz7g==} '@paralleldrive/cuid2@2.2.2': resolution: {integrity: sha512-ZOBkgDwEdoYVlSeRbYYXs0S9MejQofiVYoTbKzy/6GQa39/q5tQU2IX46+shYnUkpEl3wc+J6wRlar7r2EK2xA==} @@ -3799,25 +3877,20 @@ packages: '@polka/url@1.0.0-next.29': resolution: {integrity: sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==} - '@poppinss/colors@4.1.4': - resolution: {integrity: sha512-FA+nTU8p6OcSH4tLDY5JilGYr1bVWHpNmcLr7xmMEdbWmKHa+3QZ+DqefrXKmdjO/brHTnQZo20lLSjaO7ydog==} - engines: {node: '>=18.16.0'} + '@poppinss/colors@4.1.5': + resolution: {integrity: sha512-FvdDqtcRCtz6hThExcFOgW0cWX+xwSMWcRuQe5ZEb2m7cVQOAVZOIMt+/v9RxGiD9/OY16qJBXK4CVKWAPalBw==} - '@poppinss/dumper@0.6.3': - resolution: {integrity: sha512-iombbn8ckOixMtuV1p3f8jN6vqhXefNjJttoPaJDMeIk/yIGhkkL3OrHkEjE9SRsgoAx1vBUU2GtgggjvA5hCA==} + '@poppinss/dumper@0.6.4': + resolution: {integrity: sha512-iG0TIdqv8xJ3Lt9O8DrPRxw1MRLjNpoqiSGU03P/wNLP/s0ra0udPJ1J2Tx5M0J3H/cVyEgpbn8xUKRY9j59kQ==} - '@poppinss/exception@1.2.1': - resolution: {integrity: sha512-aQypoot0HPSJa6gDPEPTntc1GT6QINrSbgRlRhadGW2WaYqUK3tK4Bw9SBMZXhmxd3GeAlZjVcODHgiu+THY7A==} - engines: {node: '>=18'} + '@poppinss/exception@1.2.2': + resolution: {integrity: sha512-m7bpKCD4QMlFCjA/nKTs23fuvoVFoA83brRKmObCUNmi/9tVu8Ve3w4YQAnJu4q3Tjf5fr685HYIC/IA2zHRSg==} '@rolldown/pluginutils@1.0.0-beta.19': resolution: {integrity: sha512-3FL3mnMbPu0muGOCaKAhhFEYmqv9eTfPSJRJmANrCwtgK8VuxpsZDGK+m0LYAGoyO8+0j5uRe4PeyPDK1yA/hA==} - '@rolldown/pluginutils@1.0.0-beta.23': - resolution: {integrity: sha512-lLCP4LUecUGBLq8EfkbY2esGYyvZj5ee+WZG12+mVnQH48b46SVbwp+0vJkD+6Pnsc+u9SWarBV9sQ5mVwmb5g==} - - '@rolldown/pluginutils@1.0.0-beta.9': - resolution: {integrity: sha512-e9MeMtVWo186sgvFFJOPGy7/d2j2mZhLJIdVW0C/xDluuOvymEATqz6zKsP0ZmXGzQtqlyjz5sC1sYQUoJG98w==} + '@rolldown/pluginutils@1.0.0-beta.26': + resolution: {integrity: sha512-r/5po89voz/QRPDmoErL10+hVuTAuz1SHvokx+yWBlOIPB5C41jC7QhLqq9kaebx/+EHyoV3z22/qBfX81Ns8A==} '@rollup/plugin-alias@5.1.1': resolution: {integrity: sha512-PR9zDb+rOzkRb2VD+EuKB7UC41vU5DIwZ5qqCpk0KJudcWAyi8rvYOhS7+L5aZCspw1stTViLgN5v6FF1p5cgQ==} @@ -3828,15 +3901,6 @@ packages: rollup: optional: true - '@rollup/plugin-commonjs@28.0.3': - resolution: {integrity: sha512-pyltgilam1QPdn+Zd9gaCfOLcnjMEJ9gV+bTw6/r73INdvzf1ah9zLIJBm+kW7R6IUFIQ1YO+VqZtYxZNWFPEQ==} - engines: {node: '>=16.0.0 || 14 >= 14.17'} - peerDependencies: - rollup: ^2.68.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - '@rollup/plugin-commonjs@28.0.6': resolution: {integrity: sha512-XSQB1K7FUU5QP+3lOQmVCE3I0FcbbNvmNT4VJSj93iUjayaARrTQeoRdiYQoftAJBLrR9t2agwAd3ekaTgHNlw==} engines: {node: '>=16.0.0 || 14 >= 14.17'} @@ -3900,15 +3964,6 @@ packages: rollup: optional: true - '@rollup/pluginutils@5.1.4': - resolution: {integrity: sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - '@rollup/pluginutils@5.2.0': resolution: {integrity: sha512-qWJ2ZTbmumwiLFomfzTyt5Kng4hwPi9rwCYN4SHb6eaRU1KNO4ccxINHr/VhH4GgPlt1XfSTLX2LBTme8ne4Zw==} engines: {node: '>=14.0.0'} @@ -3918,203 +3973,103 @@ packages: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.41.0': - resolution: {integrity: sha512-KxN+zCjOYHGwCl4UCtSfZ6jrq/qi88JDUtiEFk8LELEHq2Egfc/FgW+jItZiOLRuQfb/3xJSgFuNPC9jzggX+A==} + '@rollup/rollup-android-arm-eabi@4.44.2': + resolution: {integrity: sha512-g0dF8P1e2QYPOj1gu7s/3LVP6kze9A7m6x0BZ9iTdXK8N5c2V7cpBKHV3/9A4Zd8xxavdhK0t4PnqjkqVmUc9Q==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm-eabi@4.44.1': - resolution: {integrity: sha512-JAcBr1+fgqx20m7Fwe1DxPUl/hPkee6jA6Pl7n1v2EFiktAHenTaXl5aIFjUIEsfn9w3HE4gK1lEgNGMzBDs1w==} - cpu: [arm] - os: [android] - - '@rollup/rollup-android-arm64@4.41.0': - resolution: {integrity: sha512-yDvqx3lWlcugozax3DItKJI5j05B0d4Kvnjx+5mwiUpWramVvmAByYigMplaoAQ3pvdprGCTCE03eduqE/8mPQ==} - cpu: [arm64] - os: [android] - - '@rollup/rollup-android-arm64@4.44.1': - resolution: {integrity: sha512-RurZetXqTu4p+G0ChbnkwBuAtwAbIwJkycw1n6GvlGlBuS4u5qlr5opix8cBAYFJgaY05TWtM+LaoFggUmbZEQ==} + '@rollup/rollup-android-arm64@4.44.2': + resolution: {integrity: sha512-Yt5MKrOosSbSaAK5Y4J+vSiID57sOvpBNBR6K7xAaQvk3MkcNVV0f9fE20T+41WYN8hDn6SGFlFrKudtx4EoxA==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.41.0': - resolution: {integrity: sha512-2KOU574vD3gzcPSjxO0eyR5iWlnxxtmW1F5CkNOHmMlueKNCQkxR6+ekgWyVnz6zaZihpUNkGxjsYrkTJKhkaw==} - cpu: [arm64] - os: [darwin] - - '@rollup/rollup-darwin-arm64@4.44.1': - resolution: {integrity: sha512-fM/xPesi7g2M7chk37LOnmnSTHLG/v2ggWqKj3CCA1rMA4mm5KVBT1fNoswbo1JhPuNNZrVwpTvlCVggv8A2zg==} + '@rollup/rollup-darwin-arm64@4.44.2': + resolution: {integrity: sha512-EsnFot9ZieM35YNA26nhbLTJBHD0jTwWpPwmRVDzjylQT6gkar+zenfb8mHxWpRrbn+WytRRjE0WKsfaxBkVUA==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.41.0': - resolution: {integrity: sha512-gE5ACNSxHcEZyP2BA9TuTakfZvULEW4YAOtxl/A/YDbIir/wPKukde0BNPlnBiP88ecaN4BJI2TtAd+HKuZPQQ==} - cpu: [x64] - os: [darwin] - - '@rollup/rollup-darwin-x64@4.44.1': - resolution: {integrity: sha512-gDnWk57urJrkrHQ2WVx9TSVTH7lSlU7E3AFqiko+bgjlh78aJ88/3nycMax52VIVjIm3ObXnDL2H00e/xzoipw==} + '@rollup/rollup-darwin-x64@4.44.2': + resolution: {integrity: sha512-dv/t1t1RkCvJdWWxQ2lWOO+b7cMsVw5YFaS04oHpZRWehI1h0fV1gF4wgGCTyQHHjJDfbNpwOi6PXEafRBBezw==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.41.0': - resolution: {integrity: sha512-GSxU6r5HnWij7FoSo7cZg3l5GPg4HFLkzsFFh0N/b16q5buW1NAWuCJ+HMtIdUEi6XF0qH+hN0TEd78laRp7Dg==} + '@rollup/rollup-freebsd-arm64@4.44.2': + resolution: {integrity: sha512-W4tt4BLorKND4qeHElxDoim0+BsprFTwb+vriVQnFFtT/P6v/xO5I99xvYnVzKWrK6j7Hb0yp3x7V5LUbaeOMg==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-arm64@4.44.1': - resolution: {integrity: sha512-wnFQmJ/zPThM5zEGcnDcCJeYJgtSLjh1d//WuHzhf6zT3Md1BvvhJnWoy+HECKu2bMxaIcfWiu3bJgx6z4g2XA==} - cpu: [arm64] - os: [freebsd] - - '@rollup/rollup-freebsd-x64@4.41.0': - resolution: {integrity: sha512-KGiGKGDg8qLRyOWmk6IeiHJzsN/OYxO6nSbT0Vj4MwjS2XQy/5emsmtoqLAabqrohbgLWJ5GV3s/ljdrIr8Qjg==} - cpu: [x64] - os: [freebsd] - - '@rollup/rollup-freebsd-x64@4.44.1': - resolution: {integrity: sha512-uBmIxoJ4493YATvU2c0upGz87f99e3wop7TJgOA/bXMFd2SvKCI7xkxY/5k50bv7J6dw1SXT4MQBQSLn8Bb/Uw==} + '@rollup/rollup-freebsd-x64@4.44.2': + resolution: {integrity: sha512-tdT1PHopokkuBVyHjvYehnIe20fxibxFCEhQP/96MDSOcyjM/shlTkZZLOufV3qO6/FQOSiJTBebhVc12JyPTA==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.41.0': - resolution: {integrity: sha512-46OzWeqEVQyX3N2/QdiU/CMXYDH/lSHpgfBkuhl3igpZiaB3ZIfSjKuOnybFVBQzjsLwkus2mjaESy8H41SzvA==} - cpu: [arm] - os: [linux] - - '@rollup/rollup-linux-arm-gnueabihf@4.44.1': - resolution: {integrity: sha512-n0edDmSHlXFhrlmTK7XBuwKlG5MbS7yleS1cQ9nn4kIeW+dJH+ExqNgQ0RrFRew8Y+0V/x6C5IjsHrJmiHtkxQ==} - cpu: [arm] - os: [linux] - - '@rollup/rollup-linux-arm-musleabihf@4.41.0': - resolution: {integrity: sha512-lfgW3KtQP4YauqdPpcUZHPcqQXmTmH4nYU0cplNeW583CMkAGjtImw4PKli09NFi2iQgChk4e9erkwlfYem6Lg==} + '@rollup/rollup-linux-arm-gnueabihf@4.44.2': + resolution: {integrity: sha512-+xmiDGGaSfIIOXMzkhJ++Oa0Gwvl9oXUeIiwarsdRXSe27HUIvjbSIpPxvnNsRebsNdUo7uAiQVgBD1hVriwSQ==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.44.1': - resolution: {integrity: sha512-8WVUPy3FtAsKSpyk21kV52HCxB+me6YkbkFHATzC2Yd3yuqHwy2lbFL4alJOLXKljoRw08Zk8/xEj89cLQ/4Nw==} + '@rollup/rollup-linux-arm-musleabihf@4.44.2': + resolution: {integrity: sha512-bDHvhzOfORk3wt8yxIra8N4k/N0MnKInCW5OGZaeDYa/hMrdPaJzo7CSkjKZqX4JFUWjUGm88lI6QJLCM7lDrA==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.41.0': - resolution: {integrity: sha512-nn8mEyzMbdEJzT7cwxgObuwviMx6kPRxzYiOl6o/o+ChQq23gfdlZcUNnt89lPhhz3BYsZ72rp0rxNqBSfqlqw==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-arm64-gnu@4.44.1': - resolution: {integrity: sha512-yuktAOaeOgorWDeFJggjuCkMGeITfqvPgkIXhDqsfKX8J3jGyxdDZgBV/2kj/2DyPaLiX6bPdjJDTu9RB8lUPQ==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-arm64-musl@4.41.0': - resolution: {integrity: sha512-l+QK99je2zUKGd31Gh+45c4pGDAqZSuWQiuRFCdHYC2CSiO47qUWsCcenrI6p22hvHZrDje9QjwSMAFL3iwXwQ==} + '@rollup/rollup-linux-arm64-gnu@4.44.2': + resolution: {integrity: sha512-NMsDEsDiYghTbeZWEGnNi4F0hSbGnsuOG+VnNvxkKg0IGDvFh7UVpM/14mnMwxRxUf9AdAVJgHPvKXf6FpMB7A==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.44.1': - resolution: {integrity: sha512-W+GBM4ifET1Plw8pdVaecwUgxmiH23CfAUj32u8knq0JPFyK4weRy6H7ooxYFD19YxBulL0Ktsflg5XS7+7u9g==} + '@rollup/rollup-linux-arm64-musl@4.44.2': + resolution: {integrity: sha512-lb5bxXnxXglVq+7imxykIp5xMq+idehfl+wOgiiix0191av84OqbjUED+PRC5OA8eFJYj5xAGcpAZ0pF2MnW+A==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-loongarch64-gnu@4.41.0': - resolution: {integrity: sha512-WbnJaxPv1gPIm6S8O/Wg+wfE/OzGSXlBMbOe4ie+zMyykMOeqmgD1BhPxZQuDqwUN+0T/xOFtL2RUWBspnZj3w==} - cpu: [loong64] - os: [linux] - - '@rollup/rollup-linux-loongarch64-gnu@4.44.1': - resolution: {integrity: sha512-1zqnUEMWp9WrGVuVak6jWTl4fEtrVKfZY7CvcBmUUpxAJ7WcSowPSAWIKa/0o5mBL/Ij50SIf9tuirGx63Ovew==} + '@rollup/rollup-linux-loongarch64-gnu@4.44.2': + resolution: {integrity: sha512-Yl5Rdpf9pIc4GW1PmkUGHdMtbx0fBLE1//SxDmuf3X0dUC57+zMepow2LK0V21661cjXdTn8hO2tXDdAWAqE5g==} cpu: [loong64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.41.0': - resolution: {integrity: sha512-eRDWR5t67/b2g8Q/S8XPi0YdbKcCs4WQ8vklNnUYLaSWF+Cbv2axZsp4jni6/j7eKvMLYCYdcsv8dcU+a6QNFg==} - cpu: [ppc64] - os: [linux] - - '@rollup/rollup-linux-powerpc64le-gnu@4.44.1': - resolution: {integrity: sha512-Rl3JKaRu0LHIx7ExBAAnf0JcOQetQffaw34T8vLlg9b1IhzcBgaIdnvEbbsZq9uZp3uAH+JkHd20Nwn0h9zPjA==} + '@rollup/rollup-linux-powerpc64le-gnu@4.44.2': + resolution: {integrity: sha512-03vUDH+w55s680YYryyr78jsO1RWU9ocRMaeV2vMniJJW/6HhoTBwyyiiTPVHNWLnhsnwcQ0oH3S9JSBEKuyqw==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.41.0': - resolution: {integrity: sha512-TWrZb6GF5jsEKG7T1IHwlLMDRy2f3DPqYldmIhnA2DVqvvhY2Ai184vZGgahRrg8k9UBWoSlHv+suRfTN7Ua4A==} + '@rollup/rollup-linux-riscv64-gnu@4.44.2': + resolution: {integrity: sha512-iYtAqBg5eEMG4dEfVlkqo05xMOk6y/JXIToRca2bAWuqjrJYJlx/I7+Z+4hSrsWU8GdJDFPL4ktV3dy4yBSrzg==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.44.1': - resolution: {integrity: sha512-j5akelU3snyL6K3N/iX7otLBIl347fGwmd95U5gS/7z6T4ftK288jKq3A5lcFKcx7wwzb5rgNvAg3ZbV4BqUSw==} + '@rollup/rollup-linux-riscv64-musl@4.44.2': + resolution: {integrity: sha512-e6vEbgaaqz2yEHqtkPXa28fFuBGmUJ0N2dOJK8YUfijejInt9gfCSA7YDdJ4nYlv67JfP3+PSWFX4IVw/xRIPg==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-riscv64-musl@4.41.0': - resolution: {integrity: sha512-ieQljaZKuJpmWvd8gW87ZmSFwid6AxMDk5bhONJ57U8zT77zpZ/TPKkU9HpnnFrM4zsgr4kiGuzbIbZTGi7u9A==} - cpu: [riscv64] - os: [linux] - - '@rollup/rollup-linux-riscv64-musl@4.44.1': - resolution: {integrity: sha512-ppn5llVGgrZw7yxbIm8TTvtj1EoPgYUAbfw0uDjIOzzoqlZlZrLJ/KuiE7uf5EpTpCTrNt1EdtzF0naMm0wGYg==} - cpu: [riscv64] - os: [linux] - - '@rollup/rollup-linux-s390x-gnu@4.41.0': - resolution: {integrity: sha512-/L3pW48SxrWAlVsKCN0dGLB2bi8Nv8pr5S5ocSM+S0XCn5RCVCXqi8GVtHFsOBBCSeR+u9brV2zno5+mg3S4Aw==} - cpu: [s390x] - os: [linux] - - '@rollup/rollup-linux-s390x-gnu@4.44.1': - resolution: {integrity: sha512-Hu6hEdix0oxtUma99jSP7xbvjkUM/ycke/AQQ4EC5g7jNRLLIwjcNwaUy95ZKBJJwg1ZowsclNnjYqzN4zwkAw==} + '@rollup/rollup-linux-s390x-gnu@4.44.2': + resolution: {integrity: sha512-evFOtkmVdY3udE+0QKrV5wBx7bKI0iHz5yEVx5WqDJkxp9YQefy4Mpx3RajIVcM6o7jxTvVd/qpC1IXUhGc1Mw==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.41.0': - resolution: {integrity: sha512-XMLeKjyH8NsEDCRptf6LO8lJk23o9wvB+dJwcXMaH6ZQbbkHu2dbGIUindbMtRN6ux1xKi16iXWu6q9mu7gDhQ==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-linux-x64-gnu@4.44.1': - resolution: {integrity: sha512-EtnsrmZGomz9WxK1bR5079zee3+7a+AdFlghyd6VbAjgRJDbTANJ9dcPIPAi76uG05micpEL+gPGmAKYTschQw==} + '@rollup/rollup-linux-x64-gnu@4.44.2': + resolution: {integrity: sha512-/bXb0bEsWMyEkIsUL2Yt5nFB5naLAwyOWMEviQfQY1x3l5WsLKgvZf66TM7UTfED6erckUVUJQ/jJ1FSpm3pRQ==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.41.0': - resolution: {integrity: sha512-m/P7LycHZTvSQeXhFmgmdqEiTqSV80zn6xHaQ1JSqwCtD1YGtwEK515Qmy9DcB2HK4dOUVypQxvhVSy06cJPEg==} + '@rollup/rollup-linux-x64-musl@4.44.2': + resolution: {integrity: sha512-3D3OB1vSSBXmkGEZR27uiMRNiwN08/RVAcBKwhUYPaiZ8bcvdeEwWPvbnXvvXHY+A/7xluzcN+kaiOFNiOZwWg==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.44.1': - resolution: {integrity: sha512-iAS4p+J1az6Usn0f8xhgL4PaU878KEtutP4hqw52I4IO6AGoyOkHCxcc4bqufv1tQLdDWFx8lR9YlwxKuv3/3g==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-win32-arm64-msvc@4.41.0': - resolution: {integrity: sha512-4yodtcOrFHpbomJGVEqZ8fzD4kfBeCbpsUy5Pqk4RluXOdsWdjLnjhiKy2w3qzcASWd04fp52Xz7JKarVJ5BTg==} - cpu: [arm64] - os: [win32] - - '@rollup/rollup-win32-arm64-msvc@4.44.1': - resolution: {integrity: sha512-NtSJVKcXwcqozOl+FwI41OH3OApDyLk3kqTJgx8+gp6On9ZEt5mYhIsKNPGuaZr3p9T6NWPKGU/03Vw4CNU9qg==} + '@rollup/rollup-win32-arm64-msvc@4.44.2': + resolution: {integrity: sha512-VfU0fsMK+rwdK8mwODqYeM2hDrF2WiHaSmCBrS7gColkQft95/8tphyzv2EupVxn3iE0FI78wzffoULH1G+dkw==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.41.0': - resolution: {integrity: sha512-tmazCrAsKzdkXssEc65zIE1oC6xPHwfy9d5Ta25SRCDOZS+I6RypVVShWALNuU9bxIfGA0aqrmzlzoM5wO5SPQ==} - cpu: [ia32] - os: [win32] - - '@rollup/rollup-win32-ia32-msvc@4.44.1': - resolution: {integrity: sha512-JYA3qvCOLXSsnTR3oiyGws1Dm0YTuxAAeaYGVlGpUsHqloPcFjPg+X0Fj2qODGLNwQOAcCiQmHub/V007kiH5A==} + '@rollup/rollup-win32-ia32-msvc@4.44.2': + resolution: {integrity: sha512-+qMUrkbUurpE6DVRjiJCNGZBGo9xM4Y0FXU5cjgudWqIBWbcLkjE3XprJUsOFgC6xjBClwVa9k6O3A7K3vxb5Q==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.41.0': - resolution: {integrity: sha512-h1J+Yzjo/X+0EAvR2kIXJDuTuyT7drc+t2ALY0nIcGPbTatNOf0VWdhEA2Z4AAjv6X1NJV7SYo5oCTYRJhSlVA==} - cpu: [x64] - os: [win32] - - '@rollup/rollup-win32-x64-msvc@4.44.1': - resolution: {integrity: sha512-J8o22LuF0kTe7m+8PvW9wk3/bRq5+mRo5Dqo6+vXb7otCm3TPhYOJqOaQtGU9YMWQSL3krMnoOxMr0+9E6F3Ug==} + '@rollup/rollup-win32-x64-msvc@4.44.2': + resolution: {integrity: sha512-3+QZROYfJ25PDcxFF66UEk8jGWigHJeecZILvkPkyQN7oc5BvFo4YEXFkOs154j3FTMp9mn9Ky8RCOwastduEA==} cpu: [x64] os: [win32] @@ -4247,8 +4202,8 @@ packages: peerDependencies: '@sveltejs/kit': ^2.0.0 - '@sveltejs/kit@2.22.2': - resolution: {integrity: sha512-2MvEpSYabUrsJAoq5qCOBGAlkICjfjunrnLcx3YAk2XV7TvAIhomlKsAgR4H/4uns5rAfYmj7Wet5KRtc8dPIg==} + '@sveltejs/kit@2.22.5': + resolution: {integrity: sha512-l5i+LcDaoymD2mg5ziptnHmzzF79+c9twJiDoLWAPKq7afMEe4mvGesJ+LVtm33A92mLzd2KUHgtGSqTrvfkvg==} engines: {node: '>=18.13'} hasBin: true peerDependencies: @@ -4271,8 +4226,8 @@ packages: svelte: ^5.0.0 vite: ^6.0.0 - '@swc/cli@0.7.7': - resolution: {integrity: sha512-j4yYm9bx3pxWofaJKX1BFwj/3ngUDynN4UIQ2Xd2h0h/7Gt7zkReBTpDN7g5S13mgAYxacaTHTOUsz18097E8w==} + '@swc/cli@0.7.8': + resolution: {integrity: sha512-27Ov4rm0s2C6LLX+NDXfDVB69LGs8K94sXtFhgeUyQ4DBywZuCgTBu2loCNHRr8JhT9DeQvJM5j9FAu/THbo4w==} engines: {node: '>= 16.14.0'} hasBin: true peerDependencies: @@ -4282,68 +4237,68 @@ packages: chokidar: optional: true - '@swc/core-darwin-arm64@1.12.9': - resolution: {integrity: sha512-GACFEp4nD6V+TZNR2JwbMZRHB+Yyvp14FrcmB6UCUYmhuNWjkxi+CLnEvdbuiKyQYv0zA+TRpCHZ+whEs6gwfA==} + '@swc/core-darwin-arm64@1.12.11': + resolution: {integrity: sha512-J19Jj9Y5x/N0loExH7W0OI9OwwoVyxutDdkyq1o/kgXyBqmmzV7Y/Q9QekI2Fm/qc5mNeAdP7aj4boY4AY/JPw==} engines: {node: '>=10'} cpu: [arm64] os: [darwin] - '@swc/core-darwin-x64@1.12.9': - resolution: {integrity: sha512-hv2kls7Ilkm2EpeJz+I9MCil7pGS3z55ZAgZfxklEuYsxpICycxeH+RNRv4EraggN44ms+FWCjtZFu0LGg2V3g==} + '@swc/core-darwin-x64@1.12.11': + resolution: {integrity: sha512-PTuUQrfStQ6cjW+uprGO2lpQHy84/l0v+GqRqq8s/jdK55rFRjMfCeyf6FAR0l6saO5oNOQl+zWR1aNpj8pMQw==} engines: {node: '>=10'} cpu: [x64] os: [darwin] - '@swc/core-linux-arm-gnueabihf@1.12.9': - resolution: {integrity: sha512-od9tDPiG+wMU9wKtd6y3nYJdNqgDOyLdgRRcrj1/hrbHoUPOM8wZQZdwQYGarw63iLXGgsw7t5HAF9Yc51ilFA==} + '@swc/core-linux-arm-gnueabihf@1.12.11': + resolution: {integrity: sha512-poxBq152HsupOtnZilenvHmxZ9a8SRj4LtfxUnkMDNOGrZR9oxbQNwEzNKfi3RXEcXz+P8c0Rai1ubBazXv8oQ==} engines: {node: '>=10'} cpu: [arm] os: [linux] - '@swc/core-linux-arm64-gnu@1.12.9': - resolution: {integrity: sha512-6qx1ka9LHcLzxIgn2Mros+CZLkHK2TawlXzi/h7DJeNnzi8F1Hw0Yzjp8WimxNCg6s2n+o3jnmin1oXB7gg8rw==} + '@swc/core-linux-arm64-gnu@1.12.11': + resolution: {integrity: sha512-y1HNamR/D0Hc8xIE910ysyLe269UYiGaQPoLjQS0phzWFfWdMj9bHM++oydVXZ4RSWycO7KyJ3uvw4NilvyMKQ==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-arm64-musl@1.12.9': - resolution: {integrity: sha512-yghFZWKPVVGbUdqiD7ft23G0JX6YFGDJPz9YbLLAwGuKZ9th3/jlWoQDAw1Naci31LQhVC+oIji6ozihSuwB2A==} + '@swc/core-linux-arm64-musl@1.12.11': + resolution: {integrity: sha512-LlBxPh/32pyQsu2emMEOFRm7poEFLsw12Y1mPY7FWZiZeptomKSOSHRzKDz9EolMiV4qhK1caP1lvW4vminYgQ==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-x64-gnu@1.12.9': - resolution: {integrity: sha512-SFUxyhWLZRNL8QmgGNqdi2Q43PNyFVkRZ2zIif30SOGFSxnxcf2JNeSeBgKIGVgaLSuk6xFVVCtJ3KIeaStgRg==} + '@swc/core-linux-x64-gnu@1.12.11': + resolution: {integrity: sha512-bOjiZB8O/1AzHkzjge1jqX62HGRIpOHqFUrGPfAln/NC6NR+Z2A78u3ixV7k5KesWZFhCV0YVGJL+qToL27myA==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-linux-x64-musl@1.12.9': - resolution: {integrity: sha512-9FB0wM+6idCGTI20YsBNBg9xSWtkDBymnpaTCsZM3qDc0l4uOpJMqbfWhQvp17x7r/ulZfb2QY8RDvQmCL6AcQ==} + '@swc/core-linux-x64-musl@1.12.11': + resolution: {integrity: sha512-4dzAtbT/m3/UjF045+33gLiHd8aSXJDoqof7gTtu4q0ZyAf7XJ3HHspz+/AvOJLVo4FHHdFcdXhmo/zi1nFn8A==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-win32-arm64-msvc@1.12.9': - resolution: {integrity: sha512-zHOusMVbOH9ik5RtRrMiGzLpKwxrPXgXkBm3SbUCa65HAdjV33NZ0/R9Rv1uPESALtEl2tzMYLUxYA5ECFDFhA==} + '@swc/core-win32-arm64-msvc@1.12.11': + resolution: {integrity: sha512-h8HiwBZErKvCAmjW92JvQp0iOqm6bncU4ac5jxBGkRApabpUenNJcj3h2g5O6GL5K6T9/WhnXE5gyq/s1fhPQg==} engines: {node: '>=10'} cpu: [arm64] os: [win32] - '@swc/core-win32-ia32-msvc@1.12.9': - resolution: {integrity: sha512-aWZf0PqE0ot7tCuhAjRkDFf41AzzSQO0x2xRfTbnhpROp57BRJ/N5eee1VULO/UA2PIJRG7GKQky5bSGBYlFug==} + '@swc/core-win32-ia32-msvc@1.12.11': + resolution: {integrity: sha512-1pwr325mXRNUhxTtXmx1IokV5SiRL+6iDvnt3FRXj+X5UvXXKtg2zeyftk+03u8v8v8WUr5I32hIypVJPTNxNg==} engines: {node: '>=10'} cpu: [ia32] os: [win32] - '@swc/core-win32-x64-msvc@1.12.9': - resolution: {integrity: sha512-C25fYftXOras3P3anSUeXXIpxmEkdAcsIL9yrr0j1xepTZ/yKwpnQ6g3coj8UXdeJy4GTVlR6+Ow/QiBgZQNOg==} + '@swc/core-win32-x64-msvc@1.12.11': + resolution: {integrity: sha512-5gggWo690Gvs7XiPxAmb5tHwzB9RTVXUV7AWoGb6bmyUd1OXYaebQF0HAOtade5jIoNhfQMQJ7QReRgt/d2jAA==} engines: {node: '>=10'} cpu: [x64] os: [win32] - '@swc/core@1.12.9': - resolution: {integrity: sha512-O+LfT2JlVMsIMWG9x+rdxg8GzpzeGtCZQfXV7cKc1PjIKUkLFf1QJ7okuseA4f/9vncu37dQ2ZcRrPKy0Ndd5g==} + '@swc/core@1.12.11': + resolution: {integrity: sha512-P3GM+0lqjFctcp5HhR9mOcvLSX3SptI9L1aux0Fuvgt8oH4f92rCUrkodAa0U2ktmdjcyIiG37xg2mb/dSCYSA==} engines: {node: '>=10'} peerDependencies: '@swc/helpers': '>=0.5.17' @@ -4371,8 +4326,8 @@ packages: resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==} engines: {node: '>=14.16'} - '@tanstack/angular-query-experimental@5.81.5': - resolution: {integrity: sha512-9XMczYINwnaJohMvQoG20pZqG9WhehIwl6azfFv7QTSJUnf1lGYFNnM7H86ueo0k5he4ueWukg03yjuuvXjwsQ==} + '@tanstack/angular-query-experimental@5.82.0': + resolution: {integrity: sha512-beMSMlzT4Lr9FeZD5pJ9NidLrXrJT5RpUUx95N9vANtDSWm3oWcCQrY1UFDbvagG6jMJPl9NYWmgfrztJb984Q==} peerDependencies: '@angular/common': '>=16.0.0' '@angular/core': '>=16.0.0' @@ -4397,33 +4352,33 @@ packages: resolution: {integrity: sha512-Wo1iKt2b9OT7d+YGhvEPD3DXvPv2etTusIMhMUoG7fbhmxcXCtIjJDEygy91Y2JFlwGyjqiBPRozme7UD8hoqg==} engines: {node: '>=12'} - '@tanstack/query-core@5.81.5': - resolution: {integrity: sha512-ZJOgCy/z2qpZXWaj/oxvodDx07XcQa9BF92c0oINjHkoqUPsmm3uG08HpTaviviZ/N9eP1f9CM7mKSEkIo7O1Q==} + '@tanstack/query-core@5.82.0': + resolution: {integrity: sha512-JrjoVuaajBQtnoWSg8iaPHaT4mW73lK2t+exxHNOSMqy0+13eKLqJgTKXKImLejQIfdAHQ6Un0njEhOvUtOd5w==} '@tanstack/query-devtools@5.81.2': resolution: {integrity: sha512-jCeJcDCwKfoyyBXjXe9+Lo8aTkavygHHsUHAlxQKKaDeyT0qyQNLKl7+UyqYH2dDF6UN/14873IPBHchcsU+Zg==} - '@tanstack/react-query-devtools@5.81.5': - resolution: {integrity: sha512-lCGMu4RX0uGnlrlLeSckBfnW/UV+KMlTBVqa97cwK7Z2ED5JKnZRSjNXwoma6sQBTJrcULvzgx2K6jEPvNUpDw==} + '@tanstack/react-query-devtools@5.82.0': + resolution: {integrity: sha512-MC05Zq3zr/59jhgF7dL6JSGPg1krbasDSizmRxjNcvxgh/sUTwRFD9CGN10YYX7LB6jq0ZpFtCjSVGdLiFrKAA==} peerDependencies: - '@tanstack/react-query': ^5.81.5 + '@tanstack/react-query': ^5.82.0 react: ^18 || ^19 - '@tanstack/react-query@5.81.5': - resolution: {integrity: sha512-lOf2KqRRiYWpQT86eeeftAGnjuTR35myTP8MXyvHa81VlomoAWNEd8x5vkcAfQefu0qtYCvyqLropFZqgI2EQw==} + '@tanstack/react-query@5.82.0': + resolution: {integrity: sha512-mnk8/ofKEthFeMdhV1dV8YXRf+9HqvXAcciXkoo755d/ocfWq7N/Y9jGOzS3h7ZW9dDGwSIhs3/HANWUBsyqYg==} peerDependencies: react: ^18 || ^19 - '@tanstack/react-router-devtools@1.124.0': - resolution: {integrity: sha512-CpOUUvtOYfLQEQS/ikGL9FQgEgYzBOKq9/2LqqFDXhZZgCVW18rBvR3LZeejkYSHAWlRphG33sdXCYVRM02sZQ==} + '@tanstack/react-router-devtools@1.127.0': + resolution: {integrity: sha512-43TNDJqgEDiLhzWkn4XW8oDItp4pod6USWX1gkqCX/8g3uCkzM+VXwRKMjWk2pouNrTMwp7H/WiWp/nn2vfC0w==} engines: {node: '>=12'} peerDependencies: - '@tanstack/react-router': ^1.124.0 + '@tanstack/react-router': ^1.127.0 react: '>=18.0.0 || >=19.0.0' react-dom: '>=18.0.0 || >=19.0.0' - '@tanstack/react-router-with-query@1.124.0': - resolution: {integrity: sha512-gZeN5VdGIIfD7V5UrxmZfP6EjYK9wbxzUniETMDdlQdMz/cGVbVYmAj5khqtvHVsGdAz4ZXJ5xfiARE78djLsw==} + '@tanstack/react-router-with-query@1.127.0': + resolution: {integrity: sha512-qxSKcEArU0/JZxtebk7vtLlwdn14XrfeV0Jp44OqR8Ce90iznGajmcon7mxZvsnSqhx5kphNxEf93llacxtpCQ==} engines: {node: '>=12'} peerDependencies: '@tanstack/react-query': '>=5.49.2' @@ -4432,36 +4387,36 @@ packages: react: '>=18.0.0 || >=19.0.0' react-dom: '>=18.0.0 || >=19.0.0' - '@tanstack/react-router@1.124.0': - resolution: {integrity: sha512-jJxuLbPP/Cxirnft3CoiGWyH0aj94VTmLNcYauvjTGRNbUitK4udvGaHXVEP8bcifYvpko7ptsqqBlisaosugA==} + '@tanstack/react-router@1.127.0': + resolution: {integrity: sha512-MxGpMfM7swT8b+7Y9S8bmRbzOQXiTcPhXKwETQuDrctqOVyl2m9OTqGCJpFCVUn7oD+RqmQ7KBS+N0zgENStJg==} engines: {node: '>=12'} peerDependencies: react: '>=18.0.0 || >=19.0.0' react-dom: '>=18.0.0 || >=19.0.0' - '@tanstack/react-start-client@1.124.0': - resolution: {integrity: sha512-levx9QH0cswxf+VgmBkgQnk1BxtLaEK3bCWgjPGfVGgrLPR+QItf9jBp50mjLbbvc5flC6XcYBLEVFxvlB28kQ==} + '@tanstack/react-start-client@1.127.0': + resolution: {integrity: sha512-GK2mHUeXIYVG8cl6quOgw8LaTVEf+TdwlGEV+LVhNwKqxslSDHEmOeE5nGFoE16pG8ia1r9JvPzlSx299LCZ7w==} engines: {node: '>=12'} peerDependencies: react: '>=18.0.0 || >=19.0.0' react-dom: '>=18.0.0 || >=19.0.0' - '@tanstack/react-start-plugin@1.124.1': - resolution: {integrity: sha512-K6T1bxmLbh7xBH2uxi7eLsk0SfBbaoaBWMcA/mZ5w4SiFi2FMkGS+LzORrWm/RYSTw6zPJ/iTWBRdCBIJDVgWg==} + '@tanstack/react-start-plugin@1.127.0': + resolution: {integrity: sha512-H0PoboWRIzSn3MZ6qLSRxgigtu4n+XKfDx8Fvvajf+3BCUxU0jxTDbpPciZTWQzYux9pIYDfMSkvofCZikiqJA==} engines: {node: '>=12'} peerDependencies: '@vitejs/plugin-react': '>=4.3.4' vite: '>=6.0.0' - '@tanstack/react-start-server@1.124.0': - resolution: {integrity: sha512-DTsPJRUXqpTOxhRRXobGyi2Dn4GiTkjR/U76meYQf0aBePvSdjBDXJkmG/3+kyRYTF1MUA/l4mnvIXujmP0Nkg==} + '@tanstack/react-start-server@1.127.0': + resolution: {integrity: sha512-uDNb5FgBsmf2ONK+4cbN64kNeabMZdNGMoao5VwY0tBg31F7PrOoSa75uSDlcCRLVyWlvk43xgkVs37bC5Ba+g==} engines: {node: '>=12'} peerDependencies: react: '>=18.0.0 || >=19.0.0' react-dom: '>=18.0.0 || >=19.0.0' - '@tanstack/react-start@1.124.1': - resolution: {integrity: sha512-/R/7efpNDtTh85oSrc035O+rjYync5PQV2WixrbUWkDZ2jjkwGhIHblwNDSqMxTDboyuCxF2b9K2EIGDGIwF5A==} + '@tanstack/react-start@1.127.0': + resolution: {integrity: sha512-n9i1xGIrDp4VRdQf2hJUfRiNSvE0/+b+9LkmriQXTVntRzYi0b+LUPQ9WIKwBfGey46ZJJhtnIAO8nak1bVJzw==} engines: {node: '>=12'} peerDependencies: '@vitejs/plugin-react': '>=4.3.4' @@ -4469,21 +4424,21 @@ packages: react-dom: '>=18.0.0 || >=19.0.0' vite: '>=6.0.0' - '@tanstack/react-store@0.7.1': - resolution: {integrity: sha512-qUTEKdId6QPWGiWyKAPf/gkN29scEsz6EUSJ0C3HgLMgaqTAyBsQ2sMCfGVcqb+kkhEXAdjleCgH6LAPD6f2sA==} + '@tanstack/react-store@0.7.3': + resolution: {integrity: sha512-3Dnqtbw9P2P0gw8uUM8WP2fFfg8XMDSZCTsywRPZe/XqqYW8PGkXKZTvP0AHkE4mpqP9Y43GpOg9vwO44azu6Q==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - '@tanstack/router-core@1.124.0': - resolution: {integrity: sha512-mU2KA2v+ZFWC3NIjY2y+pPCx1sZDXPsUkzPjPPZxRgonE11nIu9MB89WuukqYuPbxoSWeodKNXsLe4KksGFCKA==} + '@tanstack/router-core@1.127.0': + resolution: {integrity: sha512-hHgbtLOAnN61LFqBrE2bq3mctRLfXvJefBlTFakZJavSoMEniX6bMQ5ZMDwMtpo57Hbyzx2rTD4yZfYu74Eydg==} engines: {node: '>=12'} - '@tanstack/router-devtools-core@1.124.0': - resolution: {integrity: sha512-F4xejY63XrQmQZ8q6IJmLHJGeow/5CzdCAWChYEHIFy9SWYiFMMvdGFpB8SReJuwld+eoHvvtp2qhUqNloqzRA==} + '@tanstack/router-devtools-core@1.127.0': + resolution: {integrity: sha512-K/UFaru0sVonaRoqQFUoNiqDt4AvXLxcRd2+9HjbGSC1xckAUNEEAcVl7jwQfERg89e9IVfHiPOIuDdQFjFBtA==} engines: {node: '>=12'} peerDependencies: - '@tanstack/router-core': ^1.124.0 + '@tanstack/router-core': ^1.127.0 csstype: ^3.0.10 solid-js: '>=1.9.5' tiny-invariant: ^1.3.3 @@ -4491,16 +4446,16 @@ packages: csstype: optional: true - '@tanstack/router-generator@1.124.0': - resolution: {integrity: sha512-fatjfBvgLh7i2xcLKO3QaM5egHAhMy57B7DfE44sYx1D7/xxLOubSEjSnVSLE3dWBrstZ3aqyuYYhw7NuoXB7g==} + '@tanstack/router-generator@1.127.0': + resolution: {integrity: sha512-k6f2Ekkoe4MB8lEeMfefQ4031yVf+3BIArsQqFB3HOzJaIRzPo8w8Boq7XqwZ2/r1lwSpK0z/xrNLcF2EMmeaw==} engines: {node: '>=12'} - '@tanstack/router-plugin@1.124.0': - resolution: {integrity: sha512-CqV3PCVoMrHw0HyTioIGHTTjaMRgfwbW4ax2Pule++smyetn+3KPLV6C3VWc0vdukZMQz13JvLORSSeM0B2cYQ==} + '@tanstack/router-plugin@1.127.0': + resolution: {integrity: sha512-PphNi7PVf1PGLFD5fkrFQBLfknJNsug0jVJ7Mr4ChkhRsPSKs0hJtUPr9FxENSgY9TGbDTJaWw+42e5xfC2vUw==} engines: {node: '>=12'} peerDependencies: '@rsbuild/core': '>=1.0.2' - '@tanstack/react-router': ^1.124.0 + '@tanstack/react-router': ^1.127.0 vite: '>=5.0.0 || >=6.0.0' vite-plugin-solid: ^2.11.2 webpack: '>=5.92.0' @@ -4528,42 +4483,42 @@ packages: resolution: {integrity: sha512-9GIu+PXu5itj+Q74FJQpd4WV3FikzkAAxvBl9hrnmiEwz+AGDZL0GOiGy++MdupHJXuHXXss9mHqKtNmw9wMdw==} engines: {node: '>=12'} - '@tanstack/solid-query@5.81.5': - resolution: {integrity: sha512-VqVXaxiJIsKA6B45uApF+RUD3g8Roj/vdAuGpHMjR+RyHqlyQ+hOwgmALkzlbkbIaWCQi8CJOvrbU6WOBuMOxA==} + '@tanstack/solid-query@5.82.0': + resolution: {integrity: sha512-1VardJQ2dOluS1YfwintpUa7BqHk+KA3nLpM2DtcNLCbRt5vQScpPw96ZzW5WOPiGIoobAAyg5e2Ci9FlEOmtg==} peerDependencies: solid-js: ^1.6.0 - '@tanstack/start-client-core@1.124.0': - resolution: {integrity: sha512-BT8oVtaElSKlRN6rySV2M7cn+2duuSJPe4iMMGq7h2fSo9Su85ZNMrIGisU85BAvQ7Vn2LS0LDVScFCahOoPPA==} + '@tanstack/start-client-core@1.127.0': + resolution: {integrity: sha512-bmKfvZAXxKzchscIFPdKCrPlgl5W/54iMq8cgmmZAP4D4DkVzl/NLO162+v9mHBjpn+IvUGveeR6NG4yNSugrw==} engines: {node: '>=12'} - '@tanstack/start-plugin-core@1.124.1': - resolution: {integrity: sha512-9qksni/DRKWIPtXBUZ9CBgdD9NibHscMSi8+g4W5Fj2hlN9TvyQ0fxymyMx9dpmqtNx7GeFAu8bZh0Kk+H5YrA==} + '@tanstack/start-plugin-core@1.127.0': + resolution: {integrity: sha512-F5Y0DJGLYCjhUsv1vqei8TDzAOAocDL3Hjc2GDqlm648a/S2xNp1ynHwGwS5rm0pfw4gQ6qG9Jfn2NTRoMujLg==} engines: {node: '>=12'} peerDependencies: vite: '>=6.0.0' - '@tanstack/start-server-core@1.124.0': - resolution: {integrity: sha512-tNduQzWkjKR4PIwmFNRh9K9sotEuOmc0pIpQ3FECBhLcyVF/32KAnu3uRXF3aoovvma3XhNYldQN4aM74WxPfg==} + '@tanstack/start-server-core@1.127.0': + resolution: {integrity: sha512-+wuoTRU3OFlSyDzIfUIhLZ30na6Oh4awTz35d1Hs3UPwYllURo3ovtTYUW+VDyiHuIbhN8RiCqho5Mf4RBy1tA==} engines: {node: '>=12'} - '@tanstack/start-server-functions-client@1.124.1': - resolution: {integrity: sha512-r0h3stJP/15T+GQmMaBXCUkmW8t6RbMKys6S6ELXt9AmXfxEbD0V+KxVIxvp7LktubYVRuuZPom6w6+n1oNkwQ==} + '@tanstack/start-server-functions-client@1.127.0': + resolution: {integrity: sha512-N6yPY24eyuiiXs2FH9nPquA4q0m5EzS4fU+312YVz/eOEyy91Pn5adQD6Krj3dAKsoVTR/NLn59VB3e5MqO3HA==} engines: {node: '>=12'} - '@tanstack/start-server-functions-fetcher@1.124.0': - resolution: {integrity: sha512-UztOiOUFYXnS9wlkWw2OQSgM9g/KG88FFEjC4UVOAPbXdAJtkROp1FoES/grEUgzE9bXGXo7YANJXL/mLN+JyQ==} + '@tanstack/start-server-functions-fetcher@1.127.0': + resolution: {integrity: sha512-Lzg7taKfaTcgB6KG2sr5H9FpqgsYOxDzS2YG4ADA8bk2MK8cvB5onIU2U24k3rfJDYX3D6S8xj9zT34O7hHfcA==} engines: {node: '>=12'} '@tanstack/start-server-functions-server@1.124.1': resolution: {integrity: sha512-59NJqtdXm2c+JmwDqm3ZuvgcN1KT2LlvApelydj9y201lj76XjcEH4RqbJKm5G7C/wc98QPhghFHY8cwHJUCTg==} engines: {node: '>=12'} - '@tanstack/store@0.7.1': - resolution: {integrity: sha512-PjUQKXEXhLYj2X5/6c1Xn/0/qKY0IVFxTJweopRfF26xfjVyb14yALydJrHupDh3/d+1WKmfEgZPBVCmDkzzwg==} + '@tanstack/store@0.7.2': + resolution: {integrity: sha512-RP80Z30BYiPX2Pyo0Nyw4s1SJFH2jyM6f9i3HfX4pA+gm5jsnYryscdq2aIQLnL4TaGuQMO+zXmN9nh1Qck+Pg==} - '@tanstack/svelte-query@5.81.5': - resolution: {integrity: sha512-P2TaL+dGHWwQ83CyX8I9icb/1lYUSFwqQvGHI8jzFbacOEtVtQQXB0N12fotvn/BDn7Eh+tyCNiiMN56tFuFJw==} + '@tanstack/svelte-query@5.82.0': + resolution: {integrity: sha512-lKlFhnYj2Sw4zoAOz5DqTUZDg0b1Ys9Ka0W7OIucyWjMg64NNbieofvd2FWWaDfET7o7AlBCojYQB1cuYw+lgg==} peerDependencies: svelte: ^3.54.0 || ^4.0.0 || ^5.0.0 @@ -4571,8 +4526,8 @@ packages: resolution: {integrity: sha512-3nuYsTyaq6ZN7jRZ9z6Gj3GXZqBOqOT0yzd/WZ33ZFfv4yVNIvsa5Lw+M1j3sgyEAxKMqGu/FaNi7FCjr3yOdw==} engines: {node: '>=12'} - '@tanstack/vue-query@5.81.5': - resolution: {integrity: sha512-Ylt2pzRj1KyXOoidRemRoySU8ub3PXLKwGBr+iQxs6lhfvo1JlimTS2CANM2+3Uph+7JIIguFc8w0Mw3vSjVsw==} + '@tanstack/vue-query@5.82.0': + resolution: {integrity: sha512-e+cb8OFuEetYd7q6U3g3yjqDDrAZ6rzxSlifjOy3tvJdopwTMDAyo65h4df/b+BrwcJRaPjsLk/b9H1gZrhv1g==} peerDependencies: '@vue/composition-api': ^1.1.2 vue: ^2.6.0 || ^3.3.0 @@ -4665,8 +4620,8 @@ packages: '@tsconfig/node16@1.0.4': resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} - '@tybys/wasm-util@0.9.0': - resolution: {integrity: sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==} + '@tybys/wasm-util@0.10.0': + resolution: {integrity: sha512-VyyPYFlOMNylG45GoAe0xDoLwWuowvf92F9kySqzYh8vmYm7D2u4iUJKa1tOUpS70Ku13ASrOkS4ScXFsTaCNQ==} '@types/aria-query@5.0.4': resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==} @@ -4818,14 +4773,11 @@ packages: '@types/eslint@9.6.1': resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} - '@types/estree@1.0.7': - resolution: {integrity: sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==} - '@types/estree@1.0.8': resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} - '@types/express-serve-static-core@5.0.6': - resolution: {integrity: sha512-3xhRnjJPkULekpSzgtoNYYcTWgEZkp4myc+Saevii5JPnHNvHMRlBSHDbs7Bh1iPPoVTERHEZXyhyLbMEsExsA==} + '@types/express-serve-static-core@5.0.7': + resolution: {integrity: sha512-R+33OsgWw7rOhD1emjU7dzCDHucJrgJXMA5PYCzJxVil0dsyx5iBEPHqpPfiKNJQb7lZ1vxwoLR4Z87bBUpeGQ==} '@types/express@5.0.3': resolution: {integrity: sha512-wGA0NX93b19/dZC1J18tKWVIYWyyF2ZjT9vin/NRu0qzzvfVzWjs04iq2rQ3H65vCTQYlRqs3YHfY7zjdV+9Kw==} @@ -4893,11 +4845,8 @@ packages: '@types/nlcst@2.0.3': resolution: {integrity: sha512-vSYNSDe6Ix3q+6Z7ri9lyWqgGhJTmzRjZRqyq15N0Z/1/UnVsno9G/N40NBijoYx2seFDIl0+B2mgAb9mezUCA==} - '@types/node@22.15.30': - resolution: {integrity: sha512-6Q7lr06bEHdlfplU6YRbgG1SFBdlsfNC4/lX+SkhiTs0cpJkOElmWls8PxDFv4yY/xKb8Y6SO0OmSX4wgqTZbA==} - - '@types/node@24.0.10': - resolution: {integrity: sha512-ENHwaH+JIRTDIEEbDK6QSQntAYGtbvdDXnMXnZaZ6k13Du1dPMmprkEHIL7ok2Wl2aZevetwTAb5S+7yIF+enA==} + '@types/node@22.16.3': + resolution: {integrity: sha512-sr4Xz74KOUeYadexo1r8imhRtlVXcs+j3XK3TcoiYk7B1t3YRVJgtaD3cwX73NYb71pmVuMLNRhJ9XKdoDB74g==} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -4971,63 +4920,63 @@ packages: '@types/yauzl@2.10.3': resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} - '@typescript-eslint/eslint-plugin@8.35.1': - resolution: {integrity: sha512-9XNTlo7P7RJxbVeICaIIIEipqxLKguyh+3UbXuT2XQuFp6d8VOeDEGuz5IiX0dgZo8CiI6aOFLg4e8cF71SFVg==} + '@typescript-eslint/eslint-plugin@8.36.0': + resolution: {integrity: sha512-lZNihHUVB6ZZiPBNgOQGSxUASI7UJWhT8nHyUGCnaQ28XFCw98IfrMCG3rUl1uwUWoAvodJQby2KTs79UTcrAg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.35.1 + '@typescript-eslint/parser': ^8.36.0 eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/parser@8.35.1': - resolution: {integrity: sha512-3MyiDfrfLeK06bi/g9DqJxP5pV74LNv4rFTyvGDmT3x2p1yp1lOd+qYZfiRPIOf/oON+WRZR5wxxuF85qOar+w==} + '@typescript-eslint/parser@8.36.0': + resolution: {integrity: sha512-FuYgkHwZLuPbZjQHzJXrtXreJdFMKl16BFYyRrLxDhWr6Qr7Kbcu2s1Yhu8tsiMXw1S0W1pjfFfYEt+R604s+Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/project-service@8.35.1': - resolution: {integrity: sha512-VYxn/5LOpVxADAuP3NrnxxHYfzVtQzLKeldIhDhzC8UHaiQvYlXvKuVho1qLduFbJjjy5U5bkGwa3rUGUb1Q6Q==} + '@typescript-eslint/project-service@8.36.0': + resolution: {integrity: sha512-JAhQFIABkWccQYeLMrHadu/fhpzmSQ1F1KXkpzqiVxA/iYI6UnRt2trqXHt1sYEcw1mxLnB9rKMsOxXPxowN/g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/scope-manager@8.35.1': - resolution: {integrity: sha512-s/Bpd4i7ht2934nG+UoSPlYXd08KYz3bmjLEb7Ye1UVob0d1ENiT3lY8bsCmik4RqfSbPw9xJJHbugpPpP5JUg==} + '@typescript-eslint/scope-manager@8.36.0': + resolution: {integrity: sha512-wCnapIKnDkN62fYtTGv2+RY8FlnBYA3tNm0fm91kc2BjPhV2vIjwwozJ7LToaLAyb1ca8BxrS7vT+Pvvf7RvqA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/tsconfig-utils@8.35.1': - resolution: {integrity: sha512-K5/U9VmT9dTHoNowWZpz+/TObS3xqC5h0xAIjXPw+MNcKV9qg6eSatEnmeAwkjHijhACH0/N7bkhKvbt1+DXWQ==} + '@typescript-eslint/tsconfig-utils@8.36.0': + resolution: {integrity: sha512-Nhh3TIEgN18mNbdXpd5Q8mSCBnrZQeY9V7Ca3dqYvNDStNIGRmJA6dmrIPMJ0kow3C7gcQbpsG2rPzy1Ks/AnA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/type-utils@8.35.1': - resolution: {integrity: sha512-HOrUBlfVRz5W2LIKpXzZoy6VTZzMu2n8q9C2V/cFngIC5U1nStJgv0tMV4sZPzdf4wQm9/ToWUFPMN9Vq9VJQQ==} + '@typescript-eslint/type-utils@8.36.0': + resolution: {integrity: sha512-5aaGYG8cVDd6cxfk/ynpYzxBRZJk7w/ymto6uiyUFtdCozQIsQWh7M28/6r57Fwkbweng8qAzoMCPwSJfWlmsg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/types@8.35.1': - resolution: {integrity: sha512-q/O04vVnKHfrrhNAscndAn1tuQhIkwqnaW+eu5waD5IPts2eX1dgJxgqcPx5BX109/qAz7IG6VrEPTOYKCNfRQ==} + '@typescript-eslint/types@8.36.0': + resolution: {integrity: sha512-xGms6l5cTJKQPZOKM75Dl9yBfNdGeLRsIyufewnxT4vZTrjC0ImQT4fj8QmtJK84F58uSh5HVBSANwcfiXxABQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.35.1': - resolution: {integrity: sha512-Vvpuvj4tBxIka7cPs6Y1uvM7gJgdF5Uu9F+mBJBPY4MhvjrjWGK4H0lVgLJd/8PWZ23FTqsaJaLEkBCFUk8Y9g==} + '@typescript-eslint/typescript-estree@8.36.0': + resolution: {integrity: sha512-JaS8bDVrfVJX4av0jLpe4ye0BpAaUW7+tnS4Y4ETa3q7NoZgzYbN9zDQTJ8kPb5fQ4n0hliAt9tA4Pfs2zA2Hg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/utils@8.35.1': - resolution: {integrity: sha512-lhnwatFmOFcazAsUm3ZnZFpXSxiwoa1Lj50HphnDe1Et01NF4+hrdXONSUHIcbVu2eFb1bAf+5yjXkGVkXBKAQ==} + '@typescript-eslint/utils@8.36.0': + resolution: {integrity: sha512-VOqmHu42aEMT+P2qYjylw6zP/3E/HvptRwdn/PZxyV27KhZg2IOszXod4NcXisWzPAGSS4trE/g4moNj6XmH2g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/visitor-keys@8.35.1': - resolution: {integrity: sha512-VRwixir4zBWCSTP/ljEo091lbpypz57PoeAQ9imjG+vbeof9LplljsL1mos4ccG6H9IjfrVGM359RozUnuFhpw==} + '@typescript-eslint/visitor-keys@8.36.0': + resolution: {integrity: sha512-vZrhV2lRPWDuGoxcmrzRZyxAggPL+qp3WzUrlZD+slFueDiYHxeBa34dUXPuC0RmGKzl4lS5kFJYvKCq9cnNDA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript/twoslash@3.1.0': @@ -5047,8 +4996,8 @@ packages: '@ungap/structured-clone@1.3.0': resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} - '@unhead/vue@2.0.11': - resolution: {integrity: sha512-8fotlaymgclwiywz9sCr+4EfJs4aoVr0TW31lk5Z8c3VVxeKLSjS4rs8ely8HQd9e3UWxYzZhR8ZqQh0qJPQ/w==} + '@unhead/vue@2.0.12': + resolution: {integrity: sha512-WFaiCVbBd39FK6Bx3GQskhgT9s45Vjx6dRQegYheVwU1AnF+FAfJVgWbrl21p6fRJcLAFp0xDz6wE18JYBM0eQ==} peerDependencies: vue: '>=3.5.13' @@ -5076,12 +5025,6 @@ packages: peerDependencies: vinxi: ^0.5.5 - '@vitejs/plugin-react@4.5.0': - resolution: {integrity: sha512-JuLWaEqypaJmOJPLWwO335Ig6jSgC1FTONCWAxnqcQthLTK/Yc9aH6hr9z/87xciejbQcnP3GnA1FWUSWeXaeg==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - vite: ^4.2.0 || ^5.0.0 || ^6.0.0 - '@vitejs/plugin-react@4.6.0': resolution: {integrity: sha512-5Kgff+m8e2PB+9j51eGHEpn5kUzRKH2Ry0qGoe8ItJg7pqnkPrYPkDQZGgGmTa0EGarHrkjLvOdU3b1fzI8otQ==} engines: {node: ^14.18.0 || >=16.0.0} @@ -5157,25 +5100,31 @@ packages: '@vitest/utils@3.2.4': resolution: {integrity: sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==} - '@volar/kit@2.4.13': - resolution: {integrity: sha512-x5b2JwVT+0YQcIR4uX0NaW9Ocf3ShQRvoA18OK9ZYoFyqIYnK/niuLc8uI7hcVaey2S3EPBe3QvLGD69DJ/t6Q==} + '@volar/kit@2.4.18': + resolution: {integrity: sha512-W7ihKMb8bX9buPzMSmL8GfyQXrxR8IHfm02exAT4fMR7qQAfKqNN1/FDqZBmD9zTxDmSKKu5dkT6m5b9K3dK6Q==} peerDependencies: typescript: '*' - '@volar/language-core@2.4.13': - resolution: {integrity: sha512-MnQJ7eKchJx5Oz+YdbqyFUk8BN6jasdJv31n/7r6/WwlOOv7qzvot6B66887l2ST3bUW4Mewml54euzpJWA6bg==} + '@volar/language-core@2.4.17': + resolution: {integrity: sha512-chmRZMbKmcGpKMoO7Reb70uiLrzo0KWC2CkFttKUuKvrE+VYgi+fL9vWMJ07Fv5ulX0V1TAyyacN9q3nc5/ecA==} + + '@volar/language-core@2.4.18': + resolution: {integrity: sha512-G3yYV85ekH4TV0EDS6DsS/dUJWrz675H9UgsxFz5pQbmas51a0Q2fF6Lb2q4RKgytuLZ4E0MBdT5PlVsJXNalw==} - '@volar/language-server@2.4.13': - resolution: {integrity: sha512-g8ucG5+FJgQT2r+Te1Pk+ppoPHCwzJ54gq/oN1utjtA3+iE9hp5E+M60Ks+hhGrexUPC/E3EABDQlCagmEal+Q==} + '@volar/language-server@2.4.18': + resolution: {integrity: sha512-9fWNzovOfmXR/6nTEV/zgva9E0FKzb1dDMzCMkEWd/hizr4iYYzPgDr/u5GroOpTyUxiR2qnp1zaP6MmvYXKhw==} - '@volar/language-service@2.4.13': - resolution: {integrity: sha512-yngNLIxt1w3S60YLTRAa7MSE1IRmXcxGA9ttLjndY0Jc3owCFjeAWSPeXBILZBJOtdT8rP07JY1ozwUls/gvRg==} + '@volar/language-service@2.4.18': + resolution: {integrity: sha512-2/8RTNUAJqJOc8pRu4LPUTL06uTGgfztqbK1k6VQhmeqEG3Y8ZaXgBwHWMt7TbnCi725ylVPZQqthBPpVzvWLA==} - '@volar/source-map@2.4.13': - resolution: {integrity: sha512-l/EBcc2FkvHgz2ZxV+OZK3kMSroMr7nN3sZLF2/f6kWW66q8+tEL4giiYyFjt0BcubqJhBt6soYIrAPhg/Yr+Q==} + '@volar/source-map@2.4.17': + resolution: {integrity: sha512-QDybtQyO3Ms/NjFqNHTC5tbDN2oK5VH7ZaKrcubtfHBDj63n2pizHC3wlMQ+iT55kQXZUUAbmBX5L1C8CHFeBw==} - '@volar/typescript@2.4.13': - resolution: {integrity: sha512-Ukz4xv84swJPupZeoFsQoeJEOm7U9pqsEnaGGgt5ni3SCTa22m8oJP5Nng3Wed7Uw5RBELdLxxORX8YhJPyOgQ==} + '@volar/source-map@2.4.18': + resolution: {integrity: sha512-zaj2V/zo/CHQ/xA75h60jBPgrz+Ou9s6aPl7dX0rT46/uill9aB/ZaDk92ROpJsa/9e2xftCeNAU9ZwVyB/egQ==} + + '@volar/typescript@2.4.18': + resolution: {integrity: sha512-xcbsMG8m/yhvO1VIKnTtc+llZxw3YtWkZiV7/F1qNpTORdPExkZRcBxJ5d19MXLpkeiQ+DG5JURHh1SV0bcWRA==} '@vscode/emmet-helper@2.11.0': resolution: {integrity: sha512-QLxjQR3imPZPQltfbWRnHU6JecWTF1QSWhx3GAKQpslx7y3Dp6sIIXhKjiUJ/BR9FX8PVthjr9PD6pNwOJfAzw==} @@ -5226,28 +5175,22 @@ packages: '@vue/devtools-api@6.6.4': resolution: {integrity: sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==} - '@vue/devtools-api@7.7.6': - resolution: {integrity: sha512-b2Xx0KvXZObePpXPYHvBRRJLDQn5nhKjXh7vUhMEtWxz1AYNFOVIsh5+HLP8xDGL7sy+Q7hXeUxPHB/KgbtsPw==} + '@vue/devtools-api@7.7.7': + resolution: {integrity: sha512-lwOnNBH2e7x1fIIbVT7yF5D+YWhqELm55/4ZKf45R9T8r9dE2AIOy8HKjfqzGsoTHFbWbr337O4E0A0QADnjBg==} '@vue/devtools-core@7.7.7': resolution: {integrity: sha512-9z9TLbfC+AjAi1PQyWX+OErjIaJmdFlbDHcD+cAMYKY6Bh5VlsAtCeGyRMrXwIlMEQPukvnWt3gZBLwTAIMKzQ==} peerDependencies: vue: ^3.0.0 - '@vue/devtools-kit@7.7.6': - resolution: {integrity: sha512-geu7ds7tem2Y7Wz+WgbnbZ6T5eadOvozHZ23Atk/8tksHMFOFylKi1xgGlQlVn0wlkEf4hu+vd5ctj1G4kFtwA==} - '@vue/devtools-kit@7.7.7': resolution: {integrity: sha512-wgoZtxcTta65cnZ1Q6MbAfePVFxfM+gq0saaeytoph7nEa7yMXoi6sCPy4ufO111B9msnw0VOWjPEFCXuAKRHA==} - '@vue/devtools-shared@7.7.6': - resolution: {integrity: sha512-yFEgJZ/WblEsojQQceuyK6FzpFDx4kqrz2ohInxNj5/DnhoX023upTv4OD6lNPLAA5LLkbwPVb10o/7b+Y4FVA==} - '@vue/devtools-shared@7.7.7': resolution: {integrity: sha512-+udSj47aRl5aKb0memBvcUG9koarqnxNM5yjuREvqwK6T3ap4mn3Zqqc17QrBFTqSMjr3HK1cvStEZpMDpfdyw==} - '@vue/language-core@2.2.4': - resolution: {integrity: sha512-eGGdw7eWUwdIn9Fy/irJ7uavCGfgemuHQABgJ/hU1UgZFnbTg9VWeXvHQdhY+2SPQZWJqWXvRWIg67t4iWEa+Q==} + '@vue/language-core@3.0.1': + resolution: {integrity: sha512-sq+/Mc1IqIexWEQ+Q2XPiDb5SxSvY5JPqHnMOl/PlF5BekslzduX8dglSkpC17VeiAQB6dpS+4aiwNLJRduCNw==} peerDependencies: typescript: '*' peerDependenciesMeta: @@ -5268,9 +5211,6 @@ packages: peerDependencies: vue: 3.5.17 - '@vue/shared@3.5.16': - resolution: {integrity: sha512-c/0fWy3Jw6Z8L9FmTyYfkpM5zklnqqa9+a6dz3DvONRKW2NEbh46BP0FHuLFSWi2TnQEtp91Z6zOWNrU6QiyPg==} - '@vue/shared@3.5.17': resolution: {integrity: sha512-CabR+UN630VnsJO/jHWYBC1YVXyMq94KKp6iF5MQgZJs5I8cmjw6oVMO1oDbtBkENSHSSn/UadWlW/OAgdmKrg==} @@ -5516,11 +5456,6 @@ packages: engines: {node: '>=0.4.0'} hasBin: true - acorn@8.14.1: - resolution: {integrity: sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==} - engines: {node: '>=0.4.0'} - hasBin: true - acorn@8.15.0: resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} engines: {node: '>=0.4.0'} @@ -5534,8 +5469,8 @@ packages: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} - agent-base@7.1.3: - resolution: {integrity: sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==} + agent-base@7.1.4: + resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} engines: {node: '>= 14'} agentkeepalive@4.6.0: @@ -5578,12 +5513,12 @@ packages: ajv@8.17.1: resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} - algoliasearch@5.23.3: - resolution: {integrity: sha512-0JlUaY/hl3LrKvbidI5FysEi2ggAlcTHM8AHV2UsrJUXnNo8/lWBfhzc1b7o8bK3YZNiU26JtLyT9exoj5VBgA==} + algoliasearch@5.32.0: + resolution: {integrity: sha512-84xBncKNPBK8Ae89F65+SyVcOihrIbm/3N7to+GpRBHEUXGjA3ydWTMpcRW6jmFzkBQ/eqYy/y+J+NBpJWYjBg==} engines: {node: '>= 14.0.0'} - alien-signals@1.0.13: - resolution: {integrity: sha512-OGj9yyTnJEttvzhTUWuscOvtqxq5vrhF7vL9oS0xJ2mK0ItPYP1/y+vCFebfxoEyAz0++1AIwJ5CMr+Fk3nDmg==} + alien-signals@2.0.5: + resolution: {integrity: sha512-PdJB6+06nUNAClInE3Dweq7/2xVAYM64vvvS1IHVHSJmgeOtEdrAGyp7Z2oJtYm0B342/Exd2NT0uMJaThcjLQ==} ansi-align@3.0.1: resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} @@ -5696,9 +5631,6 @@ packages: resolution: {integrity: sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==} engines: {node: '>=12'} - as-table@1.0.55: - resolution: {integrity: sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==} - asap@2.0.6: resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} @@ -5805,8 +5737,8 @@ packages: balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - bare-events@2.5.4: - resolution: {integrity: sha512-+gFfDkR8pj4/TrWCGUGWmJIkBwuxPS5F+a5yWjOHQt2hHvNZd5YLzadjmDUtFmMM4y429bnKLa8bYBMHcYdnQA==} + bare-events@2.6.0: + resolution: {integrity: sha512-EKZ5BTXYExaNqi3I3f9RtEsaI/xBSGjE0XZCZilPzFAV/goswFHuPd9jEZlPIZ/iNZJwDSao9qRiScySz7MbQg==} base-64@1.0.0: resolution: {integrity: sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==} @@ -5837,9 +5769,6 @@ packages: bindings@1.5.0: resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} - birpc@2.3.0: - resolution: {integrity: sha512-ijbtkn/F3Pvzb6jHypHRyve2QApOCZDR25D/VnkY2G/lBNcXCTsnsCxgY4k4PkVB7zfwzYbY3O9Lcqe3xufS5g==} - birpc@2.4.0: resolution: {integrity: sha512-5IdNxTyhXHv2UlgnPHQ0h+5ypVmkrYHzL8QT+DwFZ//2N/oNV8Ch+BCRmTJ3x6/z9Axo/cXYBc9eprsUVK/Jsg==} @@ -5880,9 +5809,6 @@ packages: brace-expansion@1.1.12: resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} - brace-expansion@2.0.1: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} - brace-expansion@2.0.2: resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} @@ -5893,16 +5819,6 @@ packages: brotli@1.3.3: resolution: {integrity: sha512-oTKjJdShmDuGW94SyyaoQvAjf30dZaHnjJ8uAF+u2/vGJkJbJPJAT1gDiOJP5v1Zb6f9KEyW/1HpuaWIXtGHPg==} - browserslist@4.24.5: - resolution: {integrity: sha512-FDToo4Wo82hIdgc1CQ+NQD0hEhmpPjrZ3hiUgwgOG6IuTdlpr8jdjyG24P6cNP1yJpTLzS5OcGgSw0xmDU1/Tw==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - - browserslist@4.25.0: - resolution: {integrity: sha512-PJ8gYKeS5e/whHBh8xrwYK+dAvEj7JXtz6uTucnMRB8OiGTsKccFekoRrjajPBHV8oOY+2tI4uxeceSimKwMFA==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - browserslist@4.25.1: resolution: {integrity: sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} @@ -6026,15 +5942,15 @@ packages: caniuse-api@3.0.0: resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} - caniuse-lite@1.0.30001726: - resolution: {integrity: sha512-VQAUIUzBiZ/UnlM28fSp2CRF3ivUn1BWEvxMcVTNwpw91Py1pGbPIyIKtd+tzct9C3ouceCVdGAXxZOpZAsgdw==} + caniuse-lite@1.0.30001727: + resolution: {integrity: sha512-pB68nIHmbN6L/4C6MH1DokyR3bYqFwjaSs/sWDHGj4CTcFtQUQMuJftVwWkXq7mNWOybD3KhUv3oWHoGxgP14Q==} ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} - chai@5.2.0: - resolution: {integrity: sha512-mCuXncKXk5iCLhfhwTc0izo0gtEmpz5CtG2y8GiOINBlMVS6v8TMRc5TaLWKS6692m9+dVVfzgeVxR5UxWHTYw==} - engines: {node: '>=12'} + chai@5.2.1: + resolution: {integrity: sha512-5nFxhUrX0PqtyogoYOA8IPswy5sZFTOsBFl/9bNsmDLgsxYTzSZQJDPppDnZPTQbzSEm0hqGjWPzRemQCYbD6A==} + engines: {node: '>=18'} chalk@3.0.0: resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==} @@ -6114,8 +6030,8 @@ packages: resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} engines: {node: '>=8'} - ci-info@4.2.0: - resolution: {integrity: sha512-cYY9mypksY8NRqgDB1XD1RiJL338v/551niynFTGkZOO2LHuB2OmOYxDIe/ttN9AHwrqdum1360G3ald0W9kCg==} + ci-info@4.3.0: + resolution: {integrity: sha512-l+2bNRMiQgcfILUi33labAZYIWlH1kWDp+ecNo5iisRKrbm0xcRyCww71/YU0Fkw0mAFpz9bJayXPjey6vkmaQ==} engines: {node: '>=8'} citty@0.1.6: @@ -6403,8 +6319,8 @@ packages: resolution: {integrity: sha512-mFsNh/DIANLqFt5VHZoGirdg7bK5+oTWlhnGu6tgRhzBlnEKWaPX2xrFaLltii/6rmhqFMJqffUgknuRdpYlHw==} engines: {node: '>=18'} - core-js-compat@3.43.0: - resolution: {integrity: sha512-2GML2ZsCc5LR7hZYz4AXmjQw8zuy2T//2QntwdnpuYI7jteT6GVYJL7F6C2C57R7gSYrcqVW3lAALefdbhBLDA==} + core-js-compat@3.44.0: + resolution: {integrity: sha512-JepmAj2zfl6ogy34qfWtcE7nHKAJnKsQFRn++scjVS2bZFllwptzw61BZcZFYBPpUznLfAvh0LGhxKppk04ClA==} core-util-is@1.0.2: resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==} @@ -6481,9 +6397,6 @@ packages: peerDependencies: postcss: ^8.0.9 - css-select@5.1.0: - resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} - css-select@5.2.2: resolution: {integrity: sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==} @@ -6499,10 +6412,6 @@ packages: resolution: {integrity: sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==} engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} - css-what@6.1.0: - resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} - engines: {node: '>= 6'} - css-what@6.2.2: resolution: {integrity: sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==} engines: {node: '>= 6'} @@ -6540,8 +6449,8 @@ packages: cssom@0.5.0: resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==} - cssstyle@4.3.1: - resolution: {integrity: sha512-ZgW+Jgdd7i52AaLYCriF8Mxqft0gD/R9i9wi6RWBhs1pqdPEzPjym7rvRKi397WmQFf3SlyUsszhw+VVCbx79Q==} + cssstyle@4.6.0: + resolution: {integrity: sha512-2z+rWdzbbSZv6/rhtvzvqeZQHrBaqgogqt85sqFNbabZOuFbCVFb8kPeEtZjiKkbrm395irpNKiYeFeLiQnFPg==} engines: {node: '>=18'} csstype@3.1.3: @@ -6557,8 +6466,8 @@ packages: peerDependencies: cytoscape: ^3.2.0 - cytoscape@3.32.0: - resolution: {integrity: sha512-5JHBC9n75kz5851jeklCPmZWcg3hUe6sjqJvyk3+hVqFaKcHwHgxsjeN1yLmggoUc6STbtm9/NQyabQehfjvWQ==} + cytoscape@3.32.1: + resolution: {integrity: sha512-dbeqFTLYEwlFg7UGtcZhCCG/2WayX72zK3Sq323CEX29CY81tYfVhw1MIdduCtpstB0cTOhJswWlM/OEB3Xp+Q==} engines: {node: '>=0.10'} d3-array@2.12.1: @@ -6703,9 +6612,6 @@ packages: dagre-d3-es@7.0.11: resolution: {integrity: sha512-tvlJLyQf834SylNKax8Wkzco/1ias1OPw8DcUMDE7oUIoSEW25riQVuiu/0OWEFqT0cxHT3Pa9/D82Jr47IONw==} - data-uri-to-buffer@2.0.2: - resolution: {integrity: sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==} - data-uri-to-buffer@4.0.1: resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==} engines: {node: '>= 12'} @@ -6778,11 +6684,11 @@ packages: decache@4.6.2: resolution: {integrity: sha512-2LPqkLeu8XWHU8qNCS3kcF6sCcb5zIzvWaAHYSvPfwhdd7mHuah29NssMzrTYyHN4F5oFy2ko9OBYxegtU0FEw==} - decimal.js@10.5.0: - resolution: {integrity: sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw==} + decimal.js@10.6.0: + resolution: {integrity: sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==} - decode-named-character-reference@1.1.0: - resolution: {integrity: sha512-Wy+JTSbFThEOXQIR2L6mxJvEs+veIzpmqD7ynWxMXGpnk3smkHQOp6forLdHsKpAMW9iJpaBBIxz285t1n1C3w==} + decode-named-character-reference@1.2.0: + resolution: {integrity: sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q==} decompress-response@6.0.0: resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} @@ -7007,10 +6913,6 @@ packages: resolution: {integrity: sha512-lXpXz2ZE1cea1gL4sz2Ipj8y4PiVjytYr3Ij0SWoms1PGxIv7m2CRKuRuCRtHdVuvM/hNJPMxt5PbhboNC4dPQ==} engines: {node: '>=12'} - dotenv@16.5.0: - resolution: {integrity: sha512-m/C+AwOAr9/W1UOIZUo232ejMNnJAJtYQjUbHoNTBNTJSvqzzDh7vnrei3o3r3m9blf6ZoDkvcw0VmozNRFJxg==} - engines: {node: '>=12'} - dotenv@16.6.1: resolution: {integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==} engines: {node: '>=12'} @@ -7053,14 +6955,8 @@ packages: electron-publish@26.0.11: resolution: {integrity: sha512-a8QRH0rAPIWH9WyyS5LbNvW9Ark6qe63/LqDB7vu2JXYpi0Gma5Q60Dh4tmTqhOBQt0xsrzD8qE7C+D7j+B24A==} - electron-to-chromium@1.5.151: - resolution: {integrity: sha512-Rl6uugut2l9sLojjS4H4SAr3A4IgACMLgpuEMPYCVcKydzfyPrn5absNRju38IhQOf/NwjJY8OGWjlteqYeBCA==} - - electron-to-chromium@1.5.173: - resolution: {integrity: sha512-2bFhXP2zqSfQHugjqJIDFVwa+qIxyNApenmXTp9EjaKtdPrES5Qcn9/aSFy/NaP2E+fWG/zxKu/LBvY36p5VNQ==} - - electron-to-chromium@1.5.178: - resolution: {integrity: sha512-wObbz/ar3Bc6e4X5vf0iO8xTN8YAjN/tgiAOJLr7yjYFtP9wAjq8Mb5h0yn6kResir+VYx2DXBj9NNobs0ETSA==} + electron-to-chromium@1.5.182: + resolution: {integrity: sha512-Lv65Btwv9W4J9pyODI6EWpdnhfvrve/us5h1WspW8B2Fb0366REPtY3hX7ounk1CkV/TBjWCEvCBBbYbmV0qCA==} electron-vite@3.1.0: resolution: {integrity: sha512-M7aAzaRvSl5VO+6KN4neJCYLHLpF/iWo5ztchI/+wMxIieDZQqpbCYfaEHHHPH6eupEzfvZdLYdPdmvGqoVe0Q==} @@ -7077,8 +6973,8 @@ packages: resolution: {integrity: sha512-bO3y10YikuUwUuDUQRM4KfwNkKhnpVO7IPdbsrejwN9/AABJzzTQ4GeHwyzNSrVO+tEH3/Np255a3sVZpZDjvg==} engines: {node: '>=8.0.0'} - electron@37.2.0: - resolution: {integrity: sha512-dE6+qeg6SBUVd5d8CD2+GH82kh+gF1v40+hs+U+UOno681NMSGmBtgqwldQRpbvtnQDD7V2M9Cpfr3+Abw7aBg==} + electron@37.2.1: + resolution: {integrity: sha512-ae2EbzRNqIAHlftfCHtbbt6EgJUW8+zxWLONqNnn2iSrLF0O/pbxbff3xcpZYPpmFBs4uqjoi+s4QS7DQ+zZ/w==} engines: {node: '>= 12.20.55'} hasBin: true @@ -7117,10 +7013,6 @@ packages: end-of-stream@1.4.5: resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==} - enhanced-resolve@5.18.1: - resolution: {integrity: sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==} - engines: {node: '>=10.13.0'} - enhanced-resolve@5.18.2: resolution: {integrity: sha512-6Jw4sE1maoRJo3q8MsSIn2onJFbLTOjY9hlx4DZXmOKvLRd1Ok2kXmAGXaafL2+ijsJZ1ClYbl/pmqr9+k4iUQ==} engines: {node: '>=10.13.0'} @@ -7129,10 +7021,6 @@ packages: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} - entities@6.0.0: - resolution: {integrity: sha512-aKstq2TDOndCn4diEyp9Uq/Flu2i1GlLkc6XIDQSDMuaFE3OPW5OphLCyQ5SpSJZTb4reN+kTcYru5yIfXoRPw==} - engines: {node: '>=0.12'} - entities@6.0.1: resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} engines: {node: '>=0.12'} @@ -7201,6 +7089,11 @@ packages: engines: {node: '>=18'} hasBin: true + esbuild@0.25.6: + resolution: {integrity: sha512-GVuzuUwtdsghE3ocJ9Bs8PNoF13HNQ5TXbEi2AhvVb8xU1Iwt9Fos9FEamfoee+u/TOsn7GUWc04lz46n2bbTg==} + engines: {node: '>=18'} + hasBin: true + escalade@3.2.0: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} @@ -7308,8 +7201,8 @@ packages: typescript: optional: true - eslint-plugin-jsdoc@51.3.2: - resolution: {integrity: sha512-sBmS2MoxbUuKE1wMn/jeHitlCwdk3jAkkpdo3TNA5qGADjiow9D5z/zJ3XScScDsNI2fzZJsmCyf5rc12oRbUA==} + eslint-plugin-jsdoc@51.3.4: + resolution: {integrity: sha512-maz6qa95+sAjMr9m5oRyfejc+mnyQWsWSe9oyv9371bh4/T0kWOMryJNO4h8rEd97wo/9lbzwi3OOX4rDhnAzg==} engines: {node: '>=20.11.0'} peerDependencies: eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 @@ -7320,8 +7213,8 @@ packages: peerDependencies: eslint: '>=6.0.0' - eslint-plugin-n@17.20.0: - resolution: {integrity: sha512-IRSoatgB/NQJZG5EeTbv/iAx1byOGdbbyhQrNvWdCfTnmPxUT0ao9/eGOeG7ljD8wJBsxwE8f6tES5Db0FRKEw==} + eslint-plugin-n@17.21.0: + resolution: {integrity: sha512-1+iZ8We4ZlwVMtb/DcHG3y5/bZOdazIpa/4TySo22MLKdwrLcfrX0hbadnCvykSQCCmkAnWmIP8jZVb2AAq29A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: '>=8.23.0' @@ -7368,12 +7261,16 @@ packages: '@typescript-eslint/eslint-plugin': optional: true - eslint-plugin-vue@10.2.0: - resolution: {integrity: sha512-tl9s+KN3z0hN2b8fV2xSs5ytGl7Esk1oSCxULLwFcdaElhZ8btYYZFrWxvh4En+czrSDtuLCeCOGa8HhEZuBdQ==} + eslint-plugin-vue@10.3.0: + resolution: {integrity: sha512-A0u9snqjCfYaPnqqOaH6MBLVWDUIN4trXn8J3x67uDcXvR7X6Ut8p16N+nYhMCQ9Y7edg2BIRGzfyZsY0IdqoQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: + '@typescript-eslint/parser': ^7.0.0 || ^8.0.0 eslint: ^8.57.0 || ^9.0.0 vue-eslint-parser: ^10.0.0 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true eslint-plugin-yml@1.18.0: resolution: {integrity: sha512-9NtbhHRN2NJa/s3uHchO3qVVZw0vyOIvWlXWGaKCr/6l3Go62wsvJK5byiI6ZoYztDsow4GnS69BZD3GnqH3hA==} @@ -7499,8 +7396,8 @@ packages: resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} engines: {node: '>=6'} - expect-type@1.2.1: - resolution: {integrity: sha512-/kP8CAwxzLVEeFrMm4kMmy4CCDlpipyA7MYLVrdJIkV0fYF0UaigQHRsxHiuY/GEea+bh4KSv3TIlgr+2UL6bw==} + expect-type@1.2.2: + resolution: {integrity: sha512-JhFGDVJ7tmDJItKhYgJCGLOWjuK9vPxiXoUFLwLDc99NlmklilbiQJwoctZtt13+xMw91MCk/REan6MWHqDjyA==} engines: {node: '>=12.0.0'} exponential-backoff@3.1.2: @@ -7510,9 +7407,6 @@ packages: resolution: {integrity: sha512-DT9ck5YIRU+8GYzzU5kT3eHGA5iL+1Zd0EutOmTE9Dtk+Tvuzd23VBU+ec7HPNSTxXYO55gPV/hq4pSBJDjFpA==} engines: {node: '>= 18'} - exsolve@1.0.5: - resolution: {integrity: sha512-pz5dvkYYKQ1AHVrgOzBKWeP4u4FRb3a6DNK2ucr0OoNwYIU4QWsJ+NM36LLzORT+z845MzKHHhpXiUF5nvQoJg==} - exsolve@1.0.7: resolution: {integrity: sha512-VO5fQUzZtI6C+vx4w/4BWJpg3s/5l+6pRQEHzFRM8WFi4XffSP1Z+4qi7GbjWbvRQEbdIco5mIMq+zX4rPuLrw==} @@ -7606,14 +7500,6 @@ packages: fd-slicer@1.1.0: resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} - fdir@6.4.4: - resolution: {integrity: sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==} - peerDependencies: - picomatch: ^3 || ^4 - peerDependenciesMeta: - picomatch: - optional: true - fdir@6.4.6: resolution: {integrity: sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==} peerDependencies: @@ -7729,8 +7615,8 @@ packages: fn.name@1.1.0: resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==} - focus-trap@7.6.4: - resolution: {integrity: sha512-xx560wGBk7seZ6y933idtjJQc1l+ck+pI3sKvhKozdBV1dRZoKhkW5xoCaFv9tQiX5RH1xfSxjuNu6g+lmN/gw==} + focus-trap@7.6.5: + resolution: {integrity: sha512-7Ke1jyybbbPZyZXFxEftUtxFGLMpE2n6A+z//m4CRDlj0hW+o3iYSmh8nFlYMurOiJVDmJRilUQtJr08KfIxlg==} follow-redirects@1.15.9: resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} @@ -7762,8 +7648,8 @@ packages: resolution: {integrity: sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==} engines: {node: '>= 14.17'} - form-data@4.0.2: - resolution: {integrity: sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==} + form-data@4.0.3: + resolution: {integrity: sha512-qsITQPfmvMOSAdeyZ+12I1c+CKSstAFAwu+97zrnWAbIr5u8wfsExUzCesVLC8NgHuRUqNN4Zy6UPWUTRGslcA==} engines: {node: '>= 6'} format@0.2.2: @@ -7877,9 +7763,6 @@ packages: resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} engines: {node: '>= 0.4'} - get-source@2.0.12: - resolution: {integrity: sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==} - get-stream@5.2.0: resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} engines: {node: '>=8'} @@ -7956,10 +7839,6 @@ packages: resolution: {integrity: sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==} engines: {node: '>=18'} - globals@11.12.0: - resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} - engines: {node: '>=4'} - globals@14.0.0: resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} engines: {node: '>=18'} @@ -8109,8 +7988,8 @@ packages: highlight.js@10.7.3: resolution: {integrity: sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==} - hono@4.7.6: - resolution: {integrity: sha512-564rVzELU+9BRqqx5k8sT2NFwGD3I3Vifdb6P7CmM6FiarOSY+fDC+6B+k9wcCb86ReoayteZP2ki0cRLN1jbw==} + hono@4.8.4: + resolution: {integrity: sha512-KOIBp1+iUs0HrKztM4EHiB2UtzZDTBihDtOF5K6+WaJjCPeaW4Q92R8j63jOhvJI5+tZSMuKD9REVEXXY9illg==} engines: {node: '>=16.9.0'} hookable@5.5.3: @@ -8554,8 +8433,8 @@ packages: jackspeak@3.4.3: resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} - jackspeak@4.1.0: - resolution: {integrity: sha512-9DDdhb5j6cpeitCbvLO7n7J4IxnbM6hoF6O1g4HQ5TfhvvKN8ywDM7668ZhMHRqVmxqhps/F6syWK2KcPxYlkw==} + jackspeak@4.1.1: + resolution: {integrity: sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ==} engines: {node: 20 || >=22} jake@10.9.2: @@ -8779,8 +8658,8 @@ packages: resolution: {integrity: sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - linkedom@0.18.10: - resolution: {integrity: sha512-ESCqVAtme2GI3zZnlVRidiydByV6WmPlmKeFzFVQslADiAO2Wi+H6xL/5kr/pUOESjEoVb2Eb3cYFJ/TQhQOWA==} + linkedom@0.18.11: + resolution: {integrity: sha512-K03GU3FUlnhBAP0jPb7tN7YJl7LbjZx30Z8h6wgLXusnKF7+BEZvfEbdkN/lO9LfFzxN3S0ZAriDuJ/13dIsLA==} linkify-it@5.0.0: resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} @@ -8877,9 +8756,6 @@ packages: longest-streak@3.1.0: resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} - loupe@3.1.3: - resolution: {integrity: sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug==} - loupe@3.1.4: resolution: {integrity: sha512-wJzkKwJrheKtknCOKNEtDK4iqg/MxmZheEMtSTYvnzRdEYaZzmgH976nenp8WdJRdx5Vc1X/9MO0Oszl6ezeXg==} @@ -8909,8 +8785,8 @@ packages: resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} engines: {node: '>=12'} - luxon@3.6.1: - resolution: {integrity: sha512-tJLxrKJhO2ukZ5z0gyjY1zPh3Rh88Ej9P7jNrZiHMUXHae1yvI2imgOZtL1TO8TW6biMMKfTtAOoEJANgtWBMQ==} + luxon@3.7.1: + resolution: {integrity: sha512-RkRWjA926cTvz5rAb1BqyWkKbbjzCGchDUIKMCUvNi17j6f6j8uHGDV82Aqcqtzd+icoYpELmG3ksgGiFNNcNg==} engines: {node: '>=12'} lz-string@1.5.0: @@ -9059,8 +8935,8 @@ packages: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} - mermaid@11.8.0: - resolution: {integrity: sha512-uAZUwnBiqREZcUrFw3G5iQ5Pj3hTYUP95EZc3ec/nGBzHddJZydzYGE09tGZDBS1VoSoDn0symZ85FmypSTo5g==} + mermaid@11.8.1: + resolution: {integrity: sha512-VSXJLqP1Sqw5sGr273mhvpPRhXwE6NlmMSqBZQw+yZJoAJkOIPPn/uT3teeCBx60Fkt5zEI3FrH2eVT0jXRDzw==} methods@1.1.2: resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} @@ -9228,15 +9104,11 @@ packages: resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} engines: {node: '>=4'} - miniflare@4.20250617.5: - resolution: {integrity: sha512-Qqn30jR6dCjXaKVizT6vH4KOb+GyLccoxLNOJEfu63yBPn8eoXa7PrdiSGTmjs2RY8/tr7eTO8Wu/Yr14k0xVA==} + miniflare@4.20250709.0: + resolution: {integrity: sha512-dRGXi6Do9ArQZt7205QGWZ1tD6k6xQNY/mAZBAtiaQYvKxFuNyiHYlFnSN8Co4AFCVOozo/U52sVAaHvlcmnew==} engines: {node: '>=18.0.0'} hasBin: true - minimatch@10.0.1: - resolution: {integrity: sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==} - engines: {node: 20 || >=22} - minimatch@10.0.3: resolution: {integrity: sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==} engines: {node: 20 || >=22} @@ -9389,10 +9261,6 @@ packages: resolution: {integrity: sha512-I7tSVxHGPlmPN/enE3mS1aOSo6bWBfls+3HmuEeCUBCE7gWnm3cBXCBkpurzFjVRwC6Kld8lLaZ1Iv5vOcjvcQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - mustache@4.2.0: - resolution: {integrity: sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==} - hasBin: true - mute-stream@2.0.0: resolution: {integrity: sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==} engines: {node: ^18.17.0 || >=20.5.0} @@ -9703,8 +9571,8 @@ packages: resolution: {integrity: sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==} engines: {node: '>=14.16'} - openai@5.8.2: - resolution: {integrity: sha512-8C+nzoHYgyYOXhHGN6r0fcb4SznuEn1R7YZMvlqDbnCuE0FM2mm3T1HiYW6WIcMS/F1Of2up/cSPjLPaWt0X9Q==} + openai@5.9.0: + resolution: {integrity: sha512-cmLC0pfqLLhBGxE4aZPyRPjydgYCncppV2ClQkKmW79hNjCvmzkfhz8rN5/YVDmjVQlFV+UsF1JIuNjNgeagyQ==} hasBin: true peerDependencies: ws: ^8.18.0 @@ -9745,8 +9613,8 @@ packages: outvariant@1.4.3: resolution: {integrity: sha512-+Sl2UErvtsoajRDKCE5/dBz4DIvHXQQnAxtQTF04OJxY0+DyZXSo5P5Bb7XYWOh81syohlYL24hbDwxedPUJCA==} - oxc-parser@0.75.0: - resolution: {integrity: sha512-WbgEAOXvO327lFz12U+utDzNDt5+gM9gRCLfi/q3oUaoVd7tzVNlbxhJCS9PBM97tEDghJQXbnr6vqzqvU2TPQ==} + oxc-parser@0.75.1: + resolution: {integrity: sha512-yq4gtrBM+kitDyQEtUtskdg9lqH5o1YOcYbJDKV9XGfJTdgbUiMNbYQi7gXsfOZlUGsmwsWEtmjcjYMSjPB1pA==} engines: {node: '>=20.0.0'} p-cancelable@2.1.1: @@ -9936,8 +9804,8 @@ packages: pathe@2.0.3: resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} - pathval@2.0.0: - resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==} + pathval@2.0.1: + resolution: {integrity: sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==} engines: {node: '>= 14.16'} pe-library@0.4.1: @@ -9948,10 +9816,6 @@ packages: resolution: {integrity: sha512-peBp3qZyuS6cNIJ2akRNG1uo1WJ1d0wTxg/fxMdZ0BqCVhx242bSFHM9eNqflfJVS9SsgkzgT/1UgnsurBOTMg==} engines: {node: '>=14.16'} - peek-readable@7.0.0: - resolution: {integrity: sha512-nri2TO5JE3/mRryik9LlHFT53cgHfRK0Lt0BAZQXku/AW3E6XLt2GaY8siWi7dvW/m1z0ecn+J+bpDa9ZN3IsQ==} - engines: {node: '>=18'} - pend@1.2.0: resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} @@ -10003,9 +9867,6 @@ packages: pkg-types@1.3.1: resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} - pkg-types@2.1.0: - resolution: {integrity: sha512-wmJwA+8ihJixSoHKxZJRBQG1oY8Yr9pGLzRmSsNms0iNWyHHAlZCa7mmKiFR10YPZuz/2k169JiS/inOjBCZ2A==} - pkg-types@2.2.0: resolution: {integrity: sha512-2SM/GZGAEkPp3KWORxQZns4M+WSeXbC2HEvmOIJe3Cmiv6ieAJvdVhDldtHqM5J1Y7MrR1XhkBT/rMlhh9FdqQ==} @@ -10215,10 +10076,6 @@ packages: resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} engines: {node: ^10 || ^12 || >=14} - postcss@8.5.3: - resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==} - engines: {node: ^10 || ^12 || >=14} - postcss@8.5.6: resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} engines: {node: ^10 || ^12 || >=14} @@ -10228,8 +10085,8 @@ packages: engines: {node: '>=14.0.0'} hasBin: true - preact@10.26.5: - resolution: {integrity: sha512-fmpDkgfGU6JYux9teDWLhj9mKN55tyepwYbxHgQuIxbWQzgFg5vk7Mrrtfx7xRxq798ynkY4DDDxZr235Kk+4w==} + preact@10.26.9: + resolution: {integrity: sha512-SSjF9vcnF27mJK1XyFMNJzFd5u3pQiATFqoaDy03XuN00u4ziveVVEGt5RKJrDR8MHE/wJo9Nnad56RLzS2RMA==} prebuild-install@7.1.3: resolution: {integrity: sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==} @@ -10254,11 +10111,6 @@ packages: engines: {node: '>=10.13.0'} hasBin: true - prettier@3.5.3: - resolution: {integrity: sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==} - engines: {node: '>=14'} - hasBin: true - prettier@3.6.2: resolution: {integrity: sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==} engines: {node: '>=14'} @@ -10272,9 +10124,6 @@ packages: resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - printable-characters@1.0.42: - resolution: {integrity: sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==} - prismjs@1.30.0: resolution: {integrity: sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==} engines: {node: '>=6'} @@ -10339,8 +10188,8 @@ packages: psl@1.15.0: resolution: {integrity: sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==} - publish-browser-extension@3.0.0: - resolution: {integrity: sha512-gwjH8mIepNqID2VqKIxzT6lmtvkcc5tcWYzrGSUdkeUFFFSHhGp9xx01EZ7j8wPq50dDe0XU5VNbHMAqr6wWAA==} + publish-browser-extension@3.0.1: + resolution: {integrity: sha512-k0Ljop/AIGlX0M+hrYjjL/fCaFy0TmkqQGcK3uHN3ZbxYWzivF412nGco6tRawb6Nxe/fPxWh3OaewaH+l03VA==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true @@ -10711,13 +10560,8 @@ packages: rollup: optional: true - rollup@4.41.0: - resolution: {integrity: sha512-HqMFpUbWlf/tvcxBFNKnJyzc7Lk+XO3FGc3pbNBLqEbOz0gPLRgcrlS3UF4MfUrVlstOaP/q0kM6GVvi+LrLRg==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true - - rollup@4.44.1: - resolution: {integrity: sha512-x8H8aPvD+xbl0Do8oez5f5o8eMS3trfCghc4HhLAnCkj7Vl0d1JWGs0UF/D886zLW2rOj2QymV/JcSSsw+XDNg==} + rollup@4.44.2: + resolution: {integrity: sha512-PVoapzTwSEcelaWGth3uR66u7ZRo6qhPHc0f2uRO9fX6XDVNrIiGYS0Pj9+R8yIIYSD/mCx2b16Ws9itljKSPg==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -10855,22 +10699,12 @@ packages: serialize-javascript@6.0.2: resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} - seroval-plugins@1.3.1: - resolution: {integrity: sha512-dOlUoiI3fgZbQIcj6By+l865pzeWdP3XCSLdI3xlKnjCk5983yLWPsXytFOUI0BUZKG9qwqbj78n9yVcVwUqaQ==} - engines: {node: '>=10'} - peerDependencies: - seroval: ^1.0 - seroval-plugins@1.3.2: resolution: {integrity: sha512-0QvCV2lM3aj/U3YozDiVwx9zpH0q8A60CTWIv4Jszj/givcudPb48B+rkU5D51NJ0pTpweGMttHjboPa9/zoIQ==} engines: {node: '>=10'} peerDependencies: seroval: ^1.0 - seroval@1.3.1: - resolution: {integrity: sha512-F+T9EQPdLzgdewgxnBh4mSc+vde+EOkU6dC9BDuu/bfGb+UyUlqM6t8znFCTPQSuai/ZcfFg0gu79h+bVW2O0w==} - engines: {node: '>=10'} - seroval@1.3.2: resolution: {integrity: sha512-RbcPH1n5cfwKrru7v7+zrZvjLurgHhGyso3HTyGtRivGWgYjbOmGuivCQaORNELjNONoK35nj28EoWul9sb1zQ==} engines: {node: '>=10'} @@ -10903,8 +10737,8 @@ packages: resolution: {integrity: sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - sharp@0.34.2: - resolution: {integrity: sha512-lszvBmB9QURERtyKT2bNmsgxXK0ShJrL/fvqlonCo7e6xBF8nT8xU6pW+PMIbLsz0RxQk3rgH9kd8UmvOzlMJg==} + sharp@0.34.3: + resolution: {integrity: sha512-eX2IQ6nFohW4DbvHIOLRB3MHFpYqaqvXd3Tp5e/T/dSH83fxaNJQRvDMhASmkNTsNTVF2/OOopzRCt7xokgPfg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} shebang-command@2.0.0: @@ -11125,9 +10959,6 @@ packages: stackframe@1.3.4: resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==} - stacktracey@2.1.8: - resolution: {integrity: sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==} - standard-as-callback@2.1.0: resolution: {integrity: sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==} @@ -11247,8 +11078,8 @@ packages: strip-literal@3.0.0: resolution: {integrity: sha512-TcccoMhJOM3OebGhSBEmp3UZ2SfDMZUEBdRA/9ynfLi8yYajyWX3JiXArcJt4Umh4vISpspkQIY8ZZoCqjbviA==} - strtok3@10.2.2: - resolution: {integrity: sha512-Xt18+h4s7Z8xyZ0tmBoRmzxcop97R4BAh+dXouUDCYn+Em+1P3qpkUfI5ueWLT8ynC5hZ+q4iPEmGG1urvQGBg==} + strtok3@10.3.1: + resolution: {integrity: sha512-3JWEZM6mfix/GCJBBUrkA8p2Id2pBkyTkVCJKto55w080QBKZ+8R171fGrbiSp+yMO/u6F8/yUh7K4V9K+YCnw==} engines: {node: '>=18'} strtok3@9.1.1: @@ -11287,16 +11118,16 @@ packages: resolution: {integrity: sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==} engines: {node: '>= 8.0'} - superagent@10.2.1: - resolution: {integrity: sha512-O+PCv11lgTNJUzy49teNAWLjBZfc+A1enOwTpLlH6/rsvKcTwcdTT8m9azGkVqM7HBl5jpyZ7KTPhHweokBcdg==} + superagent@10.2.2: + resolution: {integrity: sha512-vWMq11OwWCC84pQaFPzF/VO3BrjkCeewuvJgt1jfV0499Z1QSAWN4EqfMM5WlFDDX9/oP8JjlDKpblrmEoyu4Q==} engines: {node: '>=14.18.0'} superjson@2.2.2: resolution: {integrity: sha512-5JRxVqC8I8NuOUjzBbvVJAKNM8qoVuH0O77h4WInc/qC2q5IreqKxYwgkga3PfA22OayK2ikceb/B26dztPl+Q==} engines: {node: '>=16'} - supertest@7.1.1: - resolution: {integrity: sha512-aI59HBTlG9e2wTjxGJV+DygfNLgnWbGdZxiA/sgrnNNikIW8lbDvCtF6RnhZoJ82nU7qv7ZLjrvWqCEm52fAmw==} + supertest@7.1.3: + resolution: {integrity: sha512-ORY0gPa6ojmg/C74P/bDoS21WL6FMXq5I8mawkEz30/zkwdu0gOeqstFy316vHG6OKxqQ+IbGneRemHI8WraEw==} engines: {node: '>=14.18.0'} supports-color@10.0.0: @@ -11323,8 +11154,8 @@ packages: svelte: ^4.0.0 || ^5.0.0-next.0 typescript: '>=5.0.0' - svelte@5.35.2: - resolution: {integrity: sha512-uW/rRXYrhZ7Dh4UQNZ0t+oVGL1dEM+95GavCO8afAk1IY2cPq9BcZv9C3um5aLIya2y8lIeLPxLII9ASGg9Dzw==} + svelte@5.35.6: + resolution: {integrity: sha512-p7PVLQYrvCxJuxzGfOv/l71hVuHC6EZk5UDjbt/bndMYaBcUV5sFjDsj+PSIYvz1vcfbG6inX83/xIUeik1xGA==} engines: {node: '>=18'} svgo@3.3.2: @@ -11343,8 +11174,8 @@ packages: resolution: {integrity: sha512-+XZ+r1XGIJGeQk3VvXhT6xx/VpbHsRzsTkGgF6E5RX9TTXD0118l87puaEBZ566FhqblC6U0d4XnubznJDm30A==} engines: {node: ^14.18.0 || >=16.0.0} - synckit@0.9.2: - resolution: {integrity: sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw==} + synckit@0.9.3: + resolution: {integrity: sha512-JJoOEKTfL1urb1mDoEblhD9NhEbWmq9jHEMEnxoC4ujUaZ4itA8vKgwkFAyNClgxplLi9tsUKX+EduK0p/l7sg==} engines: {node: ^14.18.0 || >=16.0.0} system-architecture@0.1.0: @@ -11354,10 +11185,6 @@ packages: tabbable@6.2.0: resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==} - tapable@2.2.1: - resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} - engines: {node: '>=6'} - tapable@2.2.2: resolution: {integrity: sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==} engines: {node: '>=6'} @@ -11409,11 +11236,6 @@ packages: uglify-js: optional: true - terser@5.39.2: - resolution: {integrity: sha512-yEPUmWve+VA78bI71BW70Dh0TuV4HHd+I5SHOAfS1+QBOmvmCiiffgjR8ryyEd3KIfvPGFqoADt8LdQ6XpXIvg==} - engines: {node: '>=10'} - hasBin: true - terser@5.43.1: resolution: {integrity: sha512-+6erLbBm0+LROX2sPXlUYx/ux5PyE9K/a92Wrt6oA+WDAoFTdpHE5tCYCI5PNzq2y8df4rA+QgHLJuR4jNymsg==} engines: {node: '>=10'} @@ -11463,10 +11285,6 @@ packages: tinyexec@1.0.1: resolution: {integrity: sha512-5uC6DDlmeqiOwCPmK9jMSdOuZTh8bU39Ys6yidB+UTt5hfZUPGAypSgFRiEp+jbi9qH40BLDvy85jIU88wKSqw==} - tinyglobby@0.2.13: - resolution: {integrity: sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw==} - engines: {node: '>=12.0.0'} - tinyglobby@0.2.14: resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==} engines: {node: '>=12.0.0'} @@ -11517,8 +11335,8 @@ packages: resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} engines: {node: '>=0.6'} - token-types@6.0.0: - resolution: {integrity: sha512-lbDrTLVsHhOMljPscd0yitpozq7Ga2M5Cvez5AjGg8GASBjtt6iERCAJ93yommPmz62fb45oFIXHEZ3u9bfJEA==} + token-types@6.0.3: + resolution: {integrity: sha512-IKJ6EzuPPWtKtEIEPpIdXv9j5j2LGJEYk0CKY2efgKoYKLBiZdh6iQkLVBow/CB3phyWAWCyk+bZeaimJn6uRQ==} engines: {node: '>=14.16'} tokenx@1.1.0: @@ -11603,16 +11421,6 @@ packages: '@swc/wasm': optional: true - tsconfck@3.1.5: - resolution: {integrity: sha512-CLDfGgUp7XPswWnezWwsCRxNmgQjhYq3VXHM0/XIRxhVrKw0M1if9agzryh1QS3nxjCROvV+xWxoJO1YctzzWg==} - engines: {node: ^18 || >=20} - hasBin: true - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true - tsconfck@3.1.6: resolution: {integrity: sha512-ks6Vjr/jEw0P1gmOVwutM3B7fWxoWBL2KRDb1JfqGVawBmO5UsvmWOQFGHBPl5yxYz4eERr19E6L7NMv+Fej4w==} engines: {node: ^18 || >=20} @@ -11645,16 +11453,16 @@ packages: tunnel-agent@0.6.0: resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} - twoslash-protocol@0.3.1: - resolution: {integrity: sha512-BMePTL9OkuNISSyyMclBBhV2s9++DiOCyhhCoV5Kaht6eaWLwVjCCUJHY33eZJPsyKeZYS8Wzz0h+XI01VohVw==} + twoslash-protocol@0.3.2: + resolution: {integrity: sha512-lWIL1dGcMr7cywSLSn8ufCoeyPab3bIwPE6DmAlQYQSMjJUgzzRvSz/LsQ179eNJafRghYDlIgF2v7pmsjV3Ww==} - twoslash-vue@0.3.1: - resolution: {integrity: sha512-9/PS0/iL2m8G6N2ILdI18sZ8l6ex+W2nN5jIaTpfFPlnY0MOX2G5UxEVs+AuNimM9SwEnwfiIuDY9ubDCIQpSQ==} + twoslash-vue@0.3.2: + resolution: {integrity: sha512-PzhlfoJBVSNx2H/fA/7vROIsr3s0EMoE4mxaP6k/4kj03woQ8vU0CqEhSfvCojYv4v6xYQJDyHFNhqzQuWT6Vg==} peerDependencies: typescript: ^5.5.0 - twoslash@0.3.1: - resolution: {integrity: sha512-OGqMTGvqXTcb92YQdwGfEdK0nZJA64Aj/ChLOelbl3TfYch2IoBST0Yx4C0LQ7Lzyqm9RpgcpgDxeXQIz4p2Kg==} + twoslash@0.3.2: + resolution: {integrity: sha512-TB+ja888uMKhbng8HzpTHm+JfxIWbngIHPy4nKEt2N93MFjpqmkqn8ppnPhIKj4kDnrohEsiogMF7T1gMY06rw==} peerDependencies: typescript: ^5.5.0 @@ -11692,8 +11500,8 @@ packages: typesafe-path@0.2.2: resolution: {integrity: sha512-OJabfkAg1WLZSqJAJ0Z6Sdt3utnbzr/jh+NAHoyWHJe8CMSy79Gm085094M9nvTPy22KzTVn5Zq5mbapCI/hPA==} - typescript-auto-import-cache@0.3.5: - resolution: {integrity: sha512-fAIveQKsoYj55CozUiBoj4b/7WpN0i4o74wiGY5JVUEoD0XiqDk1tJqTEjgzL2/AizKQrXxyRosSebyDzBZKjw==} + typescript-auto-import-cache@0.3.6: + resolution: {integrity: sha512-RpuHXrknHdVdK7wv/8ug3Fr0WNsNi5l5aB8MYYuXhq2UH5lnEB1htJ1smhtD5VeCsGr2p8mUDtd83LCQDFVgjQ==} typescript@5.8.3: resolution: {integrity: sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==} @@ -11749,9 +11557,6 @@ packages: undici-types@6.21.0: resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} - undici-types@7.8.0: - resolution: {integrity: sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==} - undici@5.29.0: resolution: {integrity: sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg==} engines: {node: '>=14.0'} @@ -11769,8 +11574,8 @@ packages: unenv@2.0.0-rc.18: resolution: {integrity: sha512-O0oVQVJ2X3Q8H4HITJr4e2cWxMYBeZ+p8S25yoKCxVCgDWtIJDcgwWNonYz12tI3ylVQCRyPV/Bdq0KJeXo7AA==} - unhead@2.0.11: - resolution: {integrity: sha512-wob9IFYcCH6Tr+84P6/m2EDhdPgq/Fb8AlLEes/2eE4empMHfZk/qFhA7cCmIiXRCPqUFt/pN+nIJVs5nEp9Ng==} + unhead@2.0.12: + resolution: {integrity: sha512-5oo0lwz81XDXCmrHGzgmbaNOxM8R9MZ3FkEs2ROHeW8e16xsrv7qXykENlISrcxr3RLPHQEsD1b6js9P2Oj/Ow==} unicode-properties@1.4.1: resolution: {integrity: sha512-CLjCCLQ6UuMxWnbIylkisbRj31qxHPAurvena/0iwSVbQ2G1VY5/HjV0IRabOEbDHlzZlRdCrD4NhB0JtU40Pg==} @@ -11792,10 +11597,6 @@ packages: unifont@0.5.2: resolution: {integrity: sha512-LzR4WUqzH9ILFvjLAUU7dK3Lnou/qd5kD+IakBtBK4S15/+x2y9VX+DcWQv6s551R6W+vzwgVS6tFg3XggGBgg==} - unimport@5.0.1: - resolution: {integrity: sha512-1YWzPj6wYhtwHE+9LxRlyqP4DiRrhGfJxdtH475im8ktyZXO3jHj/3PZ97zDdvkYoovFdi0K4SKl3a7l92v3sQ==} - engines: {node: '>=18.12.0'} - unimport@5.1.0: resolution: {integrity: sha512-wMmuG+wkzeHh2KCE6yiDlHmKelN8iE/maxkUYMbmrS6iV8+n6eP1TH3yKKlepuF4hrkepinEGmBXdfo9XZUvAw==} engines: {node: '>=18.12.0'} @@ -11884,10 +11685,6 @@ packages: resolution: {integrity: sha512-4/u/j4FrCKdi17jaxuJA0jClGxB1AvU2hw/IuayPc4ay1XGaJs/rbb4v5WKwAjNifjmXK9PIFyuPiaK8azyR9w==} engines: {node: '>=14.0.0'} - unplugin@2.3.4: - resolution: {integrity: sha512-m4PjxTurwpWfpMomp8AptjD5yj8qEZN5uQjjGM3TAs9MWWD2tXSSNNj6jGR2FoVGod4293ytyV6SwBbertfyJg==} - engines: {node: '>=18.12.0'} - unplugin@2.3.5: resolution: {integrity: sha512-RyWSb5AHmGtjjNQ6gIlA67sHOsWpsbWpwDokLwTcejVdOjEkJZh7QKu14J00gDDVSh8kGH4KYC/TNBceXFZhtw==} engines: {node: '>=18.12.0'} @@ -12062,11 +11859,6 @@ packages: peerDependencies: vite: ^2.6.0 || ^3.0.0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0 - vite-node@3.1.4: - resolution: {integrity: sha512-6enNwYnpyDo4hEgytbmc6mYWHXDHYEn0D1/rw4Q+tnHUGtKTJsn8T1YkX6Q18wI5LCrS8CTYlBaiCqxOy2kvUA==} - engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} - hasBin: true - vite-node@3.2.4: resolution: {integrity: sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} @@ -12145,8 +11937,8 @@ packages: vite: optional: true - vite@5.4.18: - resolution: {integrity: sha512-1oDcnEp3lVyHCuQ2YFelM4Alm2o91xNoMncRm1U7S+JdYfYOvbiGZ3/CxGttrOu2M/KcGz7cRC2DoNUA6urmMA==} + vite@5.4.19: + resolution: {integrity: sha512-qO3aKv3HoQC8QKiNSTuUM1l9o/XX3+c+VTgLHbJWHZGeTPVAg2XwazI9UWzoxjIJCGCV2zU60uqMzjeLZuULqA==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -12216,22 +12008,6 @@ packages: yaml: optional: true - vitefu@1.0.6: - resolution: {integrity: sha512-+Rex1GlappUyNN6UfwbVZne/9cYC4+R2XDk9xkNXBKMw6HQagdX9PgZ8V2v1WUSK1wfBLp7qbI1+XSNIlB1xmA==} - peerDependencies: - vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 - peerDependenciesMeta: - vite: - optional: true - - vitefu@1.0.7: - resolution: {integrity: sha512-eRWXLBbJjW3X5z5P5IHcSm2yYbYRPb2kQuc+oqsbAl99WB5kVsPbiiox+cymo8twTzifA6itvhr2CmjnaZZp0Q==} - peerDependencies: - vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0 - peerDependenciesMeta: - vite: - optional: true - vitefu@1.1.1: resolution: {integrity: sha512-B/Fegf3i8zh0yFbpzZ21amWzHmuNlLlmJT6n7bu5e+pCHUKQIfXSYokrqOBGEMMe9UG2sostKQF9mml/vYaWJQ==} peerDependencies: @@ -12246,8 +12022,8 @@ packages: markdown-it: '>=14' vite: '>=3' - vitepress-plugin-llms@1.6.0: - resolution: {integrity: sha512-5EjrMvtggY61fAnhC+rldzw1UqPxwdbtsh/w15Z/Gy7u/SOsPQgSdDzoQm1iFet6ofAzUB2TXA8wj5KZX9TKSA==} + vitepress-plugin-llms@1.7.0: + resolution: {integrity: sha512-J4va/lPTBcrlV5RXmuML8Lg1nzRR8cB1nJszqjITtayOrliR1jDbho31nkzJCdU/SmwdR7PFVQDRwwOTEDdoHA==} vitepress-plugin-mermaid@2.0.17: resolution: {integrity: sha512-IUzYpwf61GC6k0XzfmAmNrLvMi9TRrVRMsUyCA8KNXhg/mQ1VqWnO0/tBVPiX5UoKF1mDUwqn5QV4qAJl6JnUg==} @@ -12359,11 +12135,11 @@ packages: '@volar/language-service': optional: true - vscode-css-languageservice@6.3.5: - resolution: {integrity: sha512-ehEIMXYPYEz/5Svi2raL9OKLpBt5dSAdoCFoLpo0TVFKrVpDemyuQwS3c3D552z/qQCg3pMp8oOLMObY6M3ajQ==} + vscode-css-languageservice@6.3.7: + resolution: {integrity: sha512-5TmXHKllPzfkPhW4UE9sODV3E0bIOJPOk+EERKllf2SmAczjfTmYeq5txco+N3jpF8KIZ6loj/JptpHBQuVQRA==} - vscode-html-languageservice@5.4.0: - resolution: {integrity: sha512-9/cbc90BSYCghmHI7/VbWettHZdC7WYpz2g5gBK6UDUI1MkZbM773Q12uAYJx9jzAiNHPpyo6KzcwmcnugncAQ==} + vscode-html-languageservice@5.5.1: + resolution: {integrity: sha512-/ZdEtsZ3OiFSyL00kmmu7crFV9KwWR+MgpzjsxO60DQH7sIfHZM892C/E4iDd11EKocr+NYuvOA4Y7uc3QzLEA==} vscode-json-languageservice@4.1.8: resolution: {integrity: sha512-0vSpg6Xd9hfV+eZAaYN63xVVMOTmJ4GgHxXnkLCh+9RsQBkWKIghzLhW2B9ebfG+LQQg8uLtsQ2aUKjTgE+QOg==} @@ -12418,8 +12194,8 @@ packages: vue-bundle-renderer@2.1.1: resolution: {integrity: sha512-+qALLI5cQncuetYOXp4yScwYvqh8c6SMXee3B+M7oTZxOgtESP0l4j/fXdEJoZ+EdMxkGWIj+aSEyjXkOdmd7g==} - vue-component-type-helpers@2.2.8: - resolution: {integrity: sha512-4bjIsC284coDO9om4HPA62M7wfsTvcmZyzdfR0aUlFXqq4tXxM1APyXpNVxPC8QazKw9OhmZNHBVDA6ODaZsrA==} + vue-component-type-helpers@2.2.12: + resolution: {integrity: sha512-YbGqHZ5/eW4SnkPNR44mKVc6ZKQoRs/Rux1sxC6rdwXb4qpbOSYfDr9DsTHolOTGmIKgM9j141mZbBeg05R1pw==} vue-demi@0.14.10: resolution: {integrity: sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==} @@ -12467,6 +12243,10 @@ packages: resolution: {integrity: sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==} engines: {node: '>=10.13.0'} + watchpack@2.4.4: + resolution: {integrity: sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA==} + engines: {node: '>=10.13.0'} + wcwidth@1.0.1: resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} @@ -12492,8 +12272,8 @@ packages: resolution: {integrity: sha512-LnL6Z3GGDPht/AigwRh2dvL9PQPFQ8skEpVrWZXLWBYmqcaojHNN0onvHzie6rq7EWKrrBfPYqNEzTJgiwEQDQ==} engines: {node: '>=6'} - webpack-sources@3.2.3: - resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} + webpack-sources@3.3.3: + resolution: {integrity: sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==} engines: {node: '>=10.13.0'} webpack-virtual-modules@0.6.2: @@ -12583,17 +12363,17 @@ packages: wordwrap@1.0.0: resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} - workerd@1.20250617.0: - resolution: {integrity: sha512-Uv6p0PYUHp/W/aWfUPLkZVAoAjapisM27JJlwcX9wCPTfCfnuegGOxFMvvlYpmNaX4YCwEdLCwuNn3xkpSkuZw==} + workerd@1.20250709.0: + resolution: {integrity: sha512-BqLPpmvRN+TYUSG61OkWamsGdEuMwgvabP8m0QOHIfofnrD2YVyWqE1kXJ0GH5EsVEuWamE5sR8XpTfsGBmIpg==} engines: {node: '>=16'} hasBin: true - wrangler@4.23.0: - resolution: {integrity: sha512-JSeDt3IwA4TEmg/V3tRblImPjdxynBt9PUVO/acQJ83XGlMMSwswDKL1FuwvbFzgX6+JXc3GMHeu7r8AQIxw9w==} + wrangler@4.24.3: + resolution: {integrity: sha512-stB1Wfs5NKlspsAzz8SBujBKsDqT5lpCyrL+vSUMy3uueEtI1A5qyORbKoJhIguEbwHfWS39mBsxzm6Vm1J2cg==} engines: {node: '>=18.0.0'} hasBin: true peerDependencies: - '@cloudflare/workers-types': ^4.20250617.0 + '@cloudflare/workers-types': ^4.20250709.0 peerDependenciesMeta: '@cloudflare/workers-types': optional: true @@ -12777,21 +12557,16 @@ packages: resolution: {integrity: sha512-GQHQqAopRhwU8Kt1DDM8NjibDXHC8eoh1erhGAJPEyveY9qqVeXvVikNKrDz69sHowPMorbPUrH/mx8c50eiBQ==} engines: {node: '>=18'} - youch-core@0.3.2: - resolution: {integrity: sha512-fusrlIMLeRvTFYLUjJ9KzlGC3N+6MOPJ68HNj/yJv2nz7zq8t4HEviLms2gkdRPUS7F5rZ5n+pYx9r88m6IE1g==} - engines: {node: '>=18'} + youch-core@0.3.3: + resolution: {integrity: sha512-ho7XuGjLaJ2hWHoK8yFnsUGy2Y5uDpqSTq1FkHLK4/oqKtyUU1AFbOOxY4IpC9f0fTLjwYbslUz0Po5BpD1wrA==} - youch@3.3.4: - resolution: {integrity: sha512-UeVBXie8cA35DS6+nBkls68xaBBXCye0CNznrhszZjTbRVnJKQuNsyLKBTTL4ln1o1rh2PKtv35twV7irj5SEg==} + youch@4.1.0-beta.10: + resolution: {integrity: sha512-rLfVLB4FgQneDr0dv1oddCVZmKjcJ6yX6mS4pU82Mq/Dt9a3cLZQ62pDBL4AUO+uVrCvtWz3ZFUL2HFAFJ/BXQ==} youch@4.1.0-beta.8: resolution: {integrity: sha512-rY2A2lSF7zC+l7HH9Mq+83D1dLlsPnEvy8jTouzaptDZM6geqZ3aJe/b7ULCwRURPtWV3vbDjA2DDMdoBol0HQ==} engines: {node: '>=18'} - youch@4.1.0-beta.9: - resolution: {integrity: sha512-i7gHozzZ6PXBCSzt9FToxVamebbCkCoNPmPbDTWJwefEz5qNpAA0B+6WGW5mFCvXWox/jyQEyRJNQB0ZScVDZg==} - engines: {node: '>=18'} - zimmerframe@1.1.2: resolution: {integrity: sha512-rAbqEGa8ovJy4pyBxZM70hg4pE6gDgaQ0Sl9M3enG3I0d6H4XSAM3GeNGLKnsBpuijUow064sf7ww1nutC5/3w==} @@ -12816,11 +12591,8 @@ packages: zod@3.22.3: resolution: {integrity: sha512-EjIevzuJRiRPbVH4mGc8nApb/lVLKVpmUhAaR5R5doKGfAnGJ6Gr3CViAVjP+4FWSxCsybeWQdcgCtbX+7oZug==} - zod@3.25.74: - resolution: {integrity: sha512-J8poo92VuhKjNknViHRAIuuN6li/EwFbAC8OedzI8uxpEPGiXHGQu9wemIAioIpqgfB4SySaJhdk0mH5Y4ICBg==} - - zone.js@0.15.1: - resolution: {integrity: sha512-XE96n56IQpJM7NAoXswY3XRLcWFW83xe0BiAOeMD7K5k5xecOeul3Qcpx6GqEeeHNkW5DWL5zOyTbEfB4eti8w==} + zod@3.25.76: + resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} zwitch@2.0.4: resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} @@ -12834,121 +12606,121 @@ snapshots: defu: 6.1.4 many-keys-map: 2.0.1 - '@adobe/css-tools@4.4.2': {} + '@adobe/css-tools@4.4.3': {} - '@aklinker1/rollup-plugin-visualizer@5.12.0(rollup@4.44.1)': + '@aklinker1/rollup-plugin-visualizer@5.12.0(rollup@4.44.2)': dependencies: open: 8.4.2 picomatch: 2.3.1 source-map: 0.7.4 yargs: 17.7.2 optionalDependencies: - rollup: 4.44.1 + rollup: 4.44.2 - '@algolia/autocomplete-core@1.17.7(@algolia/client-search@5.23.3)(algoliasearch@5.23.3)(search-insights@2.17.3)': + '@algolia/autocomplete-core@1.17.7(@algolia/client-search@5.32.0)(algoliasearch@5.32.0)(search-insights@2.17.3)': dependencies: - '@algolia/autocomplete-plugin-algolia-insights': 1.17.7(@algolia/client-search@5.23.3)(algoliasearch@5.23.3)(search-insights@2.17.3) - '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.23.3)(algoliasearch@5.23.3) + '@algolia/autocomplete-plugin-algolia-insights': 1.17.7(@algolia/client-search@5.32.0)(algoliasearch@5.32.0)(search-insights@2.17.3) + '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.32.0)(algoliasearch@5.32.0) transitivePeerDependencies: - '@algolia/client-search' - algoliasearch - search-insights - '@algolia/autocomplete-plugin-algolia-insights@1.17.7(@algolia/client-search@5.23.3)(algoliasearch@5.23.3)(search-insights@2.17.3)': + '@algolia/autocomplete-plugin-algolia-insights@1.17.7(@algolia/client-search@5.32.0)(algoliasearch@5.32.0)(search-insights@2.17.3)': dependencies: - '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.23.3)(algoliasearch@5.23.3) + '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.32.0)(algoliasearch@5.32.0) search-insights: 2.17.3 transitivePeerDependencies: - '@algolia/client-search' - algoliasearch - '@algolia/autocomplete-preset-algolia@1.17.7(@algolia/client-search@5.23.3)(algoliasearch@5.23.3)': + '@algolia/autocomplete-preset-algolia@1.17.7(@algolia/client-search@5.32.0)(algoliasearch@5.32.0)': dependencies: - '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.23.3)(algoliasearch@5.23.3) - '@algolia/client-search': 5.23.3 - algoliasearch: 5.23.3 + '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.32.0)(algoliasearch@5.32.0) + '@algolia/client-search': 5.32.0 + algoliasearch: 5.32.0 - '@algolia/autocomplete-shared@1.17.7(@algolia/client-search@5.23.3)(algoliasearch@5.23.3)': + '@algolia/autocomplete-shared@1.17.7(@algolia/client-search@5.32.0)(algoliasearch@5.32.0)': dependencies: - '@algolia/client-search': 5.23.3 - algoliasearch: 5.23.3 + '@algolia/client-search': 5.32.0 + algoliasearch: 5.32.0 - '@algolia/client-abtesting@5.23.3': + '@algolia/client-abtesting@5.32.0': dependencies: - '@algolia/client-common': 5.23.3 - '@algolia/requester-browser-xhr': 5.23.3 - '@algolia/requester-fetch': 5.23.3 - '@algolia/requester-node-http': 5.23.3 + '@algolia/client-common': 5.32.0 + '@algolia/requester-browser-xhr': 5.32.0 + '@algolia/requester-fetch': 5.32.0 + '@algolia/requester-node-http': 5.32.0 - '@algolia/client-analytics@5.23.3': + '@algolia/client-analytics@5.32.0': dependencies: - '@algolia/client-common': 5.23.3 - '@algolia/requester-browser-xhr': 5.23.3 - '@algolia/requester-fetch': 5.23.3 - '@algolia/requester-node-http': 5.23.3 + '@algolia/client-common': 5.32.0 + '@algolia/requester-browser-xhr': 5.32.0 + '@algolia/requester-fetch': 5.32.0 + '@algolia/requester-node-http': 5.32.0 - '@algolia/client-common@5.23.3': {} + '@algolia/client-common@5.32.0': {} - '@algolia/client-insights@5.23.3': + '@algolia/client-insights@5.32.0': dependencies: - '@algolia/client-common': 5.23.3 - '@algolia/requester-browser-xhr': 5.23.3 - '@algolia/requester-fetch': 5.23.3 - '@algolia/requester-node-http': 5.23.3 + '@algolia/client-common': 5.32.0 + '@algolia/requester-browser-xhr': 5.32.0 + '@algolia/requester-fetch': 5.32.0 + '@algolia/requester-node-http': 5.32.0 - '@algolia/client-personalization@5.23.3': + '@algolia/client-personalization@5.32.0': dependencies: - '@algolia/client-common': 5.23.3 - '@algolia/requester-browser-xhr': 5.23.3 - '@algolia/requester-fetch': 5.23.3 - '@algolia/requester-node-http': 5.23.3 + '@algolia/client-common': 5.32.0 + '@algolia/requester-browser-xhr': 5.32.0 + '@algolia/requester-fetch': 5.32.0 + '@algolia/requester-node-http': 5.32.0 - '@algolia/client-query-suggestions@5.23.3': + '@algolia/client-query-suggestions@5.32.0': dependencies: - '@algolia/client-common': 5.23.3 - '@algolia/requester-browser-xhr': 5.23.3 - '@algolia/requester-fetch': 5.23.3 - '@algolia/requester-node-http': 5.23.3 + '@algolia/client-common': 5.32.0 + '@algolia/requester-browser-xhr': 5.32.0 + '@algolia/requester-fetch': 5.32.0 + '@algolia/requester-node-http': 5.32.0 - '@algolia/client-search@5.23.3': + '@algolia/client-search@5.32.0': dependencies: - '@algolia/client-common': 5.23.3 - '@algolia/requester-browser-xhr': 5.23.3 - '@algolia/requester-fetch': 5.23.3 - '@algolia/requester-node-http': 5.23.3 + '@algolia/client-common': 5.32.0 + '@algolia/requester-browser-xhr': 5.32.0 + '@algolia/requester-fetch': 5.32.0 + '@algolia/requester-node-http': 5.32.0 - '@algolia/ingestion@1.23.3': + '@algolia/ingestion@1.32.0': dependencies: - '@algolia/client-common': 5.23.3 - '@algolia/requester-browser-xhr': 5.23.3 - '@algolia/requester-fetch': 5.23.3 - '@algolia/requester-node-http': 5.23.3 + '@algolia/client-common': 5.32.0 + '@algolia/requester-browser-xhr': 5.32.0 + '@algolia/requester-fetch': 5.32.0 + '@algolia/requester-node-http': 5.32.0 - '@algolia/monitoring@1.23.3': + '@algolia/monitoring@1.32.0': dependencies: - '@algolia/client-common': 5.23.3 - '@algolia/requester-browser-xhr': 5.23.3 - '@algolia/requester-fetch': 5.23.3 - '@algolia/requester-node-http': 5.23.3 + '@algolia/client-common': 5.32.0 + '@algolia/requester-browser-xhr': 5.32.0 + '@algolia/requester-fetch': 5.32.0 + '@algolia/requester-node-http': 5.32.0 - '@algolia/recommend@5.23.3': + '@algolia/recommend@5.32.0': dependencies: - '@algolia/client-common': 5.23.3 - '@algolia/requester-browser-xhr': 5.23.3 - '@algolia/requester-fetch': 5.23.3 - '@algolia/requester-node-http': 5.23.3 + '@algolia/client-common': 5.32.0 + '@algolia/requester-browser-xhr': 5.32.0 + '@algolia/requester-fetch': 5.32.0 + '@algolia/requester-node-http': 5.32.0 - '@algolia/requester-browser-xhr@5.23.3': + '@algolia/requester-browser-xhr@5.32.0': dependencies: - '@algolia/client-common': 5.23.3 + '@algolia/client-common': 5.32.0 - '@algolia/requester-fetch@5.23.3': + '@algolia/requester-fetch@5.32.0': dependencies: - '@algolia/client-common': 5.23.3 + '@algolia/client-common': 5.32.0 - '@algolia/requester-node-http@5.23.3': + '@algolia/requester-node-http@5.32.0': dependencies: - '@algolia/client-common': 5.23.3 + '@algolia/client-common': 5.32.0 '@ampproject/remapping@2.3.0': dependencies: @@ -12977,11 +12749,11 @@ snapshots: optionalDependencies: chokidar: 4.0.3 - '@angular-devkit/schematics-cli@19.2.8(@types/node@22.15.30)(chokidar@4.0.3)': + '@angular-devkit/schematics-cli@19.2.8(@types/node@22.16.3)(chokidar@4.0.3)': dependencies: '@angular-devkit/core': 19.2.8(chokidar@4.0.3) '@angular-devkit/schematics': 19.2.8(chokidar@4.0.3) - '@inquirer/prompts': 7.3.2(@types/node@22.15.30) + '@inquirer/prompts': 7.3.2(@types/node@22.16.3) ansi-colors: 4.1.3 symbol-observable: 4.0.0 yargs-parser: 21.1.1 @@ -13009,18 +12781,16 @@ snapshots: transitivePeerDependencies: - chokidar - '@angular/common@19.2.14(@angular/core@20.0.6(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': + '@angular/common@20.1.0(@angular/core@20.1.0(rxjs@7.8.2))(rxjs@7.8.2)': dependencies: - '@angular/core': 20.0.6(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/core': 20.1.0(rxjs@7.8.2) rxjs: 7.8.2 tslib: 2.8.1 - '@angular/core@20.0.6(rxjs@7.8.2)(zone.js@0.15.1)': + '@angular/core@20.1.0(rxjs@7.8.2)': dependencies: rxjs: 7.8.2 tslib: 2.8.1 - optionalDependencies: - zone.js: 0.15.1 '@antfu/eslint-config@4.16.2(@vue/compiler-sfc@3.5.17)(eslint-plugin-format@1.0.1(eslint@9.30.1(jiti@2.4.2)))(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3)(vitest@3.2.4)': dependencies: @@ -13029,8 +12799,8 @@ snapshots: '@eslint-community/eslint-plugin-eslint-comments': 4.5.0(eslint@9.30.1(jiti@2.4.2)) '@eslint/markdown': 6.6.0 '@stylistic/eslint-plugin': 5.1.0(eslint@9.30.1(jiti@2.4.2)) - '@typescript-eslint/eslint-plugin': 8.35.1(@typescript-eslint/parser@8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3))(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/parser': 8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/eslint-plugin': 8.36.0(@typescript-eslint/parser@8.36.0(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3))(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/parser': 8.36.0(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3) '@vitest/eslint-plugin': 1.3.4(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3)(vitest@3.2.4) ansis: 4.1.0 cac: 6.7.14 @@ -13041,17 +12811,17 @@ snapshots: eslint-plugin-antfu: 3.1.1(eslint@9.30.1(jiti@2.4.2)) eslint-plugin-command: 3.3.1(eslint@9.30.1(jiti@2.4.2)) eslint-plugin-import-lite: 0.3.0(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3) - eslint-plugin-jsdoc: 51.3.2(eslint@9.30.1(jiti@2.4.2)) + eslint-plugin-jsdoc: 51.3.4(eslint@9.30.1(jiti@2.4.2)) eslint-plugin-jsonc: 2.20.1(eslint@9.30.1(jiti@2.4.2)) - eslint-plugin-n: 17.20.0(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3) + eslint-plugin-n: 17.21.0(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3) eslint-plugin-no-only-tests: 3.3.0 eslint-plugin-perfectionist: 4.15.0(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3) eslint-plugin-pnpm: 0.3.1(eslint@9.30.1(jiti@2.4.2)) eslint-plugin-regexp: 2.9.0(eslint@9.30.1(jiti@2.4.2)) eslint-plugin-toml: 0.12.0(eslint@9.30.1(jiti@2.4.2)) eslint-plugin-unicorn: 59.0.1(eslint@9.30.1(jiti@2.4.2)) - eslint-plugin-unused-imports: 4.1.4(@typescript-eslint/eslint-plugin@8.35.1(@typescript-eslint/parser@8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3))(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3))(eslint@9.30.1(jiti@2.4.2)) - eslint-plugin-vue: 10.2.0(eslint@9.30.1(jiti@2.4.2))(vue-eslint-parser@10.2.0(eslint@9.30.1(jiti@2.4.2))) + eslint-plugin-unused-imports: 4.1.4(@typescript-eslint/eslint-plugin@8.36.0(@typescript-eslint/parser@8.36.0(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3))(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3))(eslint@9.30.1(jiti@2.4.2)) + eslint-plugin-vue: 10.3.0(@typescript-eslint/parser@8.36.0(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3))(eslint@9.30.1(jiti@2.4.2))(vue-eslint-parser@10.2.0(eslint@9.30.1(jiti@2.4.2))) eslint-plugin-yml: 1.18.0(eslint@9.30.1(jiti@2.4.2)) eslint-processor-vue-blocks: 2.0.0(@vue/compiler-sfc@3.5.17)(eslint@9.30.1(jiti@2.4.2)) globals: 16.3.0 @@ -13083,12 +12853,12 @@ snapshots: '@ark/util@0.46.0': {} - '@asamuzakjp/css-color@3.1.7': + '@asamuzakjp/css-color@3.2.0': dependencies: - '@csstools/css-calc': 2.1.3(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) - '@csstools/css-color-parser': 3.0.9(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) - '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) - '@csstools/css-tokenizer': 3.0.3 + '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-color-parser': 3.0.10(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 lru-cache: 10.4.3 '@astrojs/check@0.9.4(prettier@3.6.2)(typescript@5.8.3)': @@ -13102,31 +12872,29 @@ snapshots: - prettier - prettier-plugin-astro - '@astrojs/compiler@2.12.0': {} - '@astrojs/compiler@2.12.2': {} '@astrojs/internal-helpers@0.6.1': {} '@astrojs/language-server@2.15.4(prettier@3.6.2)(typescript@5.8.3)': dependencies: - '@astrojs/compiler': 2.12.0 + '@astrojs/compiler': 2.12.2 '@astrojs/yaml2ts': 0.2.2 '@jridgewell/sourcemap-codec': 1.5.4 - '@volar/kit': 2.4.13(typescript@5.8.3) - '@volar/language-core': 2.4.13 - '@volar/language-server': 2.4.13 - '@volar/language-service': 2.4.13 + '@volar/kit': 2.4.18(typescript@5.8.3) + '@volar/language-core': 2.4.18 + '@volar/language-server': 2.4.18 + '@volar/language-service': 2.4.18 fast-glob: 3.3.3 muggle-string: 0.4.1 - volar-service-css: 0.0.62(@volar/language-service@2.4.13) - volar-service-emmet: 0.0.62(@volar/language-service@2.4.13) - volar-service-html: 0.0.62(@volar/language-service@2.4.13) - volar-service-prettier: 0.0.62(@volar/language-service@2.4.13)(prettier@3.6.2) - volar-service-typescript: 0.0.62(@volar/language-service@2.4.13) - volar-service-typescript-twoslash-queries: 0.0.62(@volar/language-service@2.4.13) - volar-service-yaml: 0.0.62(@volar/language-service@2.4.13) - vscode-html-languageservice: 5.4.0 + volar-service-css: 0.0.62(@volar/language-service@2.4.18) + volar-service-emmet: 0.0.62(@volar/language-service@2.4.18) + volar-service-html: 0.0.62(@volar/language-service@2.4.18) + volar-service-prettier: 0.0.62(@volar/language-service@2.4.18)(prettier@3.6.2) + volar-service-typescript: 0.0.62(@volar/language-service@2.4.18) + volar-service-typescript-twoslash-queries: 0.0.62(@volar/language-service@2.4.18) + volar-service-yaml: 0.0.62(@volar/language-service@2.4.18) + vscode-html-languageservice: 5.5.1 vscode-uri: 3.1.0 optionalDependencies: prettier: 3.6.2 @@ -13163,15 +12931,15 @@ snapshots: dependencies: prismjs: 1.30.0 - '@astrojs/react@4.3.0(@types/node@24.0.10)(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(jiti@2.4.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)': + '@astrojs/react@4.3.0(@types/node@22.16.3)(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(jiti@2.4.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)': dependencies: '@types/react': 19.1.8 '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@vitejs/plugin-react': 4.5.0(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) + '@vitejs/plugin-react': 4.6.0(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) ultrahtml: 1.6.0 - vite: 6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) + vite: 6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) transitivePeerDependencies: - '@types/node' - jiti @@ -13188,7 +12956,7 @@ snapshots: '@astrojs/telemetry@3.3.0': dependencies: - ci-info: 4.2.0 + ci-info: 4.3.0 debug: 4.4.1 dlv: 1.1.3 dset: 3.1.4 @@ -13214,67 +12982,7 @@ snapshots: js-tokens: 4.0.0 picocolors: 1.1.1 - '@babel/compat-data@7.27.5': {} - - '@babel/core@7.27.1': - dependencies: - '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.27.1 - '@babel/generator': 7.27.1 - '@babel/helper-compilation-targets': 7.27.2 - '@babel/helper-module-transforms': 7.27.1(@babel/core@7.27.1) - '@babel/helpers': 7.27.1 - '@babel/parser': 7.27.2 - '@babel/template': 7.27.2 - '@babel/traverse': 7.27.1 - '@babel/types': 7.27.1 - convert-source-map: 2.0.0 - debug: 4.4.1 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - '@babel/core@7.27.4': - dependencies: - '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.27.1 - '@babel/generator': 7.27.5 - '@babel/helper-compilation-targets': 7.27.2 - '@babel/helper-module-transforms': 7.27.3(@babel/core@7.27.4) - '@babel/helpers': 7.27.6 - '@babel/parser': 7.27.5 - '@babel/template': 7.27.2 - '@babel/traverse': 7.27.4 - '@babel/types': 7.27.6 - convert-source-map: 2.0.0 - debug: 4.4.1 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - '@babel/core@7.27.7': - dependencies: - '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.27.1 - '@babel/generator': 7.27.5 - '@babel/helper-compilation-targets': 7.27.2 - '@babel/helper-module-transforms': 7.27.3(@babel/core@7.27.7) - '@babel/helpers': 7.27.6 - '@babel/parser': 7.27.7 - '@babel/template': 7.27.2 - '@babel/traverse': 7.27.7 - '@babel/types': 7.27.7 - convert-source-map: 2.0.0 - debug: 4.4.1 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color + '@babel/compat-data@7.28.0': {} '@babel/core@7.28.0': dependencies: @@ -13296,22 +13004,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/generator@7.27.1': - dependencies: - '@babel/parser': 7.28.0 - '@babel/types': 7.28.0 - '@jridgewell/gen-mapping': 0.3.12 - '@jridgewell/trace-mapping': 0.3.29 - jsesc: 3.1.0 - - '@babel/generator@7.27.5': - dependencies: - '@babel/parser': 7.28.0 - '@babel/types': 7.28.0 - '@jridgewell/gen-mapping': 0.3.12 - '@jridgewell/trace-mapping': 0.3.29 - jsesc: 3.1.0 - '@babel/generator@7.28.0': dependencies: '@babel/parser': 7.28.0 @@ -13326,25 +13018,12 @@ snapshots: '@babel/helper-compilation-targets@7.27.2': dependencies: - '@babel/compat-data': 7.27.5 + '@babel/compat-data': 7.28.0 '@babel/helper-validator-option': 7.27.1 - browserslist: 4.25.0 + browserslist: 4.25.1 lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-create-class-features-plugin@7.27.1(@babel/core@7.27.7)': - dependencies: - '@babel/core': 7.27.7 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-member-expression-to-functions': 7.27.1 - '@babel/helper-optimise-call-expression': 7.27.1 - '@babel/helper-replace-supers': 7.27.1(@babel/core@7.27.7) - '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/traverse': 7.28.0 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - '@babel/helper-create-class-features-plugin@7.27.1(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 @@ -13378,39 +13057,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.27.1(@babel/core@7.27.1)': - dependencies: - '@babel/core': 7.27.1 - '@babel/helper-module-imports': 7.27.1 - '@babel/helper-validator-identifier': 7.27.1 - '@babel/traverse': 7.27.4 - transitivePeerDependencies: - - supports-color - - '@babel/helper-module-transforms@7.27.3(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-module-imports': 7.27.1 - '@babel/helper-validator-identifier': 7.27.1 - '@babel/traverse': 7.27.4 - transitivePeerDependencies: - - supports-color - - '@babel/helper-module-transforms@7.27.3(@babel/core@7.27.7)': - dependencies: - '@babel/core': 7.27.7 - '@babel/helper-module-imports': 7.27.1 - '@babel/helper-validator-identifier': 7.27.1 - '@babel/traverse': 7.27.4 - transitivePeerDependencies: - - supports-color - '@babel/helper-module-transforms@7.27.3(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 '@babel/helper-module-imports': 7.27.1 '@babel/helper-validator-identifier': 7.27.1 - '@babel/traverse': 7.27.4 + '@babel/traverse': 7.28.0 transitivePeerDependencies: - supports-color @@ -13420,15 +13072,6 @@ snapshots: '@babel/helper-plugin-utils@7.27.1': {} - '@babel/helper-replace-supers@7.27.1(@babel/core@7.27.7)': - dependencies: - '@babel/core': 7.27.7 - '@babel/helper-member-expression-to-functions': 7.27.1 - '@babel/helper-optimise-call-expression': 7.27.1 - '@babel/traverse': 7.28.0 - transitivePeerDependencies: - - supports-color - '@babel/helper-replace-supers@7.27.1(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 @@ -13451,60 +13094,28 @@ snapshots: '@babel/helper-validator-option@7.27.1': {} - '@babel/helpers@7.27.1': - dependencies: - '@babel/template': 7.27.2 - '@babel/types': 7.28.0 - '@babel/helpers@7.27.6': dependencies: '@babel/template': 7.27.2 '@babel/types': 7.28.0 - '@babel/parser@7.27.2': - dependencies: - '@babel/types': 7.28.0 - - '@babel/parser@7.27.5': - dependencies: - '@babel/types': 7.27.6 - - '@babel/parser@7.27.7': - dependencies: - '@babel/types': 7.28.0 - '@babel/parser@7.28.0': dependencies: '@babel/types': 7.28.0 - '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.27.7)': - dependencies: - '@babel/core': 7.27.7 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.27.7)': - dependencies: - '@babel/core': 7.27.7 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-arrow-functions@7.27.1(@babel/core@7.27.1)': + '@babel/plugin-transform-arrow-functions@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.28.0)': @@ -13515,27 +13126,16 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-transform-react-jsx-self@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-transform-react-jsx-self@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.4 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-react-jsx-source@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-transform-react-jsx-source@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.4 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-typescript@7.27.1(@babel/core@7.27.7)': - dependencies: - '@babel/core': 7.27.7 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.27.7) - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.27.7) - transitivePeerDependencies: - - supports-color - '@babel/plugin-transform-typescript@7.28.0(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 @@ -13562,47 +13162,13 @@ snapshots: dependencies: regenerator-runtime: 0.14.1 - '@babel/template@7.27.2': - dependencies: - '@babel/code-frame': 7.27.1 - '@babel/parser': 7.28.0 - '@babel/types': 7.28.0 - - '@babel/traverse@7.27.1': - dependencies: - '@babel/code-frame': 7.27.1 - '@babel/generator': 7.27.5 - '@babel/parser': 7.28.0 - '@babel/template': 7.27.2 - '@babel/types': 7.28.0 - debug: 4.4.1 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color + '@babel/runtime@7.27.6': {} - '@babel/traverse@7.27.4': - dependencies: - '@babel/code-frame': 7.27.1 - '@babel/generator': 7.27.5 - '@babel/parser': 7.28.0 - '@babel/template': 7.27.2 - '@babel/types': 7.28.0 - debug: 4.4.1 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - - '@babel/traverse@7.27.7': + '@babel/template@7.27.2': dependencies: '@babel/code-frame': 7.27.1 - '@babel/generator': 7.27.5 '@babel/parser': 7.28.0 - '@babel/template': 7.27.2 '@babel/types': 7.28.0 - debug: 4.4.1 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color '@babel/traverse@7.28.0': dependencies: @@ -13616,21 +13182,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/types@7.27.1': - dependencies: - '@babel/helper-string-parser': 7.27.1 - '@babel/helper-validator-identifier': 7.27.1 - - '@babel/types@7.27.6': - dependencies: - '@babel/helper-string-parser': 7.27.1 - '@babel/helper-validator-identifier': 7.27.1 - - '@babel/types@7.27.7': - dependencies: - '@babel/helper-string-parser': 7.27.1 - '@babel/helper-validator-identifier': 7.27.1 - '@babel/types@7.28.0': dependencies: '@babel/helper-string-parser': 7.27.1 @@ -13696,24 +13247,24 @@ snapshots: dependencies: mime: 3.0.0 - '@cloudflare/unenv-preset@2.3.3(unenv@2.0.0-rc.17)(workerd@1.20250617.0)': + '@cloudflare/unenv-preset@2.3.3(unenv@2.0.0-rc.17)(workerd@1.20250709.0)': dependencies: unenv: 2.0.0-rc.17 optionalDependencies: - workerd: 1.20250617.0 + workerd: 1.20250709.0 - '@cloudflare/vite-plugin@1.9.0(rollup@4.44.1)(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))(workerd@1.20250617.0)(wrangler@4.23.0(@cloudflare/workers-types@4.20250705.0))': + '@cloudflare/vite-plugin@1.9.4(rollup@4.44.2)(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))(workerd@1.20250709.0)(wrangler@4.24.3(@cloudflare/workers-types@4.20250711.0))': dependencies: - '@cloudflare/unenv-preset': 2.3.3(unenv@2.0.0-rc.17)(workerd@1.20250617.0) + '@cloudflare/unenv-preset': 2.3.3(unenv@2.0.0-rc.17)(workerd@1.20250709.0) '@mjackson/node-fetch-server': 0.6.1 - '@rollup/plugin-replace': 6.0.2(rollup@4.44.1) + '@rollup/plugin-replace': 6.0.2(rollup@4.44.2) get-port: 7.1.0 - miniflare: 4.20250617.5 + miniflare: 4.20250709.0 picocolors: 1.1.1 tinyglobby: 0.2.14 unenv: 2.0.0-rc.17 - vite: 6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) - wrangler: 4.23.0(@cloudflare/workers-types@4.20250705.0) + vite: 6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) + wrangler: 4.24.3(@cloudflare/workers-types@4.20250711.0) ws: 8.18.0 transitivePeerDependencies: - bufferutil @@ -13721,22 +13272,22 @@ snapshots: - utf-8-validate - workerd - '@cloudflare/workerd-darwin-64@1.20250617.0': + '@cloudflare/workerd-darwin-64@1.20250709.0': optional: true - '@cloudflare/workerd-darwin-arm64@1.20250617.0': + '@cloudflare/workerd-darwin-arm64@1.20250709.0': optional: true - '@cloudflare/workerd-linux-64@1.20250617.0': + '@cloudflare/workerd-linux-64@1.20250709.0': optional: true - '@cloudflare/workerd-linux-arm64@1.20250617.0': + '@cloudflare/workerd-linux-arm64@1.20250709.0': optional: true - '@cloudflare/workerd-windows-64@1.20250617.0': + '@cloudflare/workerd-windows-64@1.20250709.0': optional: true - '@cloudflare/workers-types@4.20250705.0': {} + '@cloudflare/workers-types@4.20250711.0': {} '@colors/colors@1.5.0': optional: true @@ -13749,23 +13300,23 @@ snapshots: '@csstools/color-helpers@5.0.2': {} - '@csstools/css-calc@2.1.3(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)': + '@csstools/css-calc@2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)': dependencies: - '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) - '@csstools/css-tokenizer': 3.0.3 + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 - '@csstools/css-color-parser@3.0.9(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)': + '@csstools/css-color-parser@3.0.10(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)': dependencies: '@csstools/color-helpers': 5.0.2 - '@csstools/css-calc': 2.1.3(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) - '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) - '@csstools/css-tokenizer': 3.0.3 + '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 - '@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3)': + '@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4)': dependencies: - '@csstools/css-tokenizer': 3.0.3 + '@csstools/css-tokenizer': 3.0.4 - '@csstools/css-tokenizer@3.0.3': {} + '@csstools/css-tokenizer@3.0.4': {} '@dabh/diagnostics@2.0.3': dependencies: @@ -13808,10 +13359,10 @@ snapshots: '@docsearch/css@3.8.2': {} - '@docsearch/js@3.8.2(@algolia/client-search@5.23.3)(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(search-insights@2.17.3)': + '@docsearch/js@3.8.2(@algolia/client-search@5.32.0)(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(search-insights@2.17.3)': dependencies: - '@docsearch/react': 3.8.2(@algolia/client-search@5.23.3)(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(search-insights@2.17.3) - preact: 10.26.5 + '@docsearch/react': 3.8.2(@algolia/client-search@5.32.0)(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(search-insights@2.17.3) + preact: 10.26.9 transitivePeerDependencies: - '@algolia/client-search' - '@types/react' @@ -13819,12 +13370,12 @@ snapshots: - react-dom - search-insights - '@docsearch/react@3.8.2(@algolia/client-search@5.23.3)(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(search-insights@2.17.3)': + '@docsearch/react@3.8.2(@algolia/client-search@5.32.0)(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(search-insights@2.17.3)': dependencies: - '@algolia/autocomplete-core': 1.17.7(@algolia/client-search@5.23.3)(algoliasearch@5.23.3)(search-insights@2.17.3) - '@algolia/autocomplete-preset-algolia': 1.17.7(@algolia/client-search@5.23.3)(algoliasearch@5.23.3) + '@algolia/autocomplete-core': 1.17.7(@algolia/client-search@5.32.0)(algoliasearch@5.32.0)(search-insights@2.17.3) + '@algolia/autocomplete-preset-algolia': 1.17.7(@algolia/client-search@5.32.0)(algoliasearch@5.32.0) '@docsearch/css': 3.8.2 - algoliasearch: 5.23.3 + algoliasearch: 5.32.0 optionalDependencies: '@types/react': 19.1.8 react: 19.1.0 @@ -13839,17 +13390,17 @@ snapshots: '@dprint/toml@0.6.4': {} - '@electron-toolkit/preload@3.0.2(electron@37.2.0)': + '@electron-toolkit/preload@3.0.2(electron@37.2.1)': dependencies: - electron: 37.2.0 + electron: 37.2.1 - '@electron-toolkit/tsconfig@1.0.1(@types/node@22.15.30)': + '@electron-toolkit/tsconfig@1.0.1(@types/node@22.16.3)': dependencies: - '@types/node': 22.15.30 + '@types/node': 22.16.3 - '@electron-toolkit/utils@4.0.0(electron@37.2.0)': + '@electron-toolkit/utils@4.0.0(electron@37.2.1)': dependencies: - electron: 37.2.0 + electron: 37.2.1 '@electron/asar@3.2.18': dependencies: @@ -13940,7 +13491,7 @@ snapshots: '@electron/universal@2.0.1': dependencies: - '@electron/asar': 3.4.1 + '@electron/asar': 3.2.18 '@malept/cross-spawn-promise': 2.0.0 debug: 4.4.1 dir-compare: 4.2.0 @@ -13984,18 +13535,18 @@ snapshots: '@emmetio/stream-reader@2.2.0': {} - '@emnapi/core@1.4.3': + '@emnapi/core@1.4.4': dependencies: - '@emnapi/wasi-threads': 1.0.2 + '@emnapi/wasi-threads': 1.0.3 tslib: 2.8.1 optional: true - '@emnapi/runtime@1.4.3': + '@emnapi/runtime@1.4.4': dependencies: tslib: 2.8.1 optional: true - '@emnapi/wasi-threads@1.0.2': + '@emnapi/wasi-threads@1.0.3': dependencies: tslib: 2.8.1 optional: true @@ -14003,7 +13554,7 @@ snapshots: '@es-joy/jsdoccomment@0.50.2': dependencies: '@types/estree': 1.0.8 - '@typescript-eslint/types': 8.35.1 + '@typescript-eslint/types': 8.36.0 comment-parser: 1.4.1 esquery: 1.6.0 jsdoc-type-pratt-parser: 4.1.0 @@ -14011,7 +13562,7 @@ snapshots: '@es-joy/jsdoccomment@0.52.0': dependencies: '@types/estree': 1.0.8 - '@typescript-eslint/types': 8.35.1 + '@typescript-eslint/types': 8.36.0 comment-parser: 1.4.1 esquery: 1.6.0 jsdoc-type-pratt-parser: 4.1.0 @@ -14025,6 +13576,9 @@ snapshots: '@esbuild/aix-ppc64@0.25.5': optional: true + '@esbuild/aix-ppc64@0.25.6': + optional: true + '@esbuild/android-arm64@0.21.5': optional: true @@ -14034,6 +13588,9 @@ snapshots: '@esbuild/android-arm64@0.25.5': optional: true + '@esbuild/android-arm64@0.25.6': + optional: true + '@esbuild/android-arm@0.21.5': optional: true @@ -14043,6 +13600,9 @@ snapshots: '@esbuild/android-arm@0.25.5': optional: true + '@esbuild/android-arm@0.25.6': + optional: true + '@esbuild/android-x64@0.21.5': optional: true @@ -14052,6 +13612,9 @@ snapshots: '@esbuild/android-x64@0.25.5': optional: true + '@esbuild/android-x64@0.25.6': + optional: true + '@esbuild/darwin-arm64@0.21.5': optional: true @@ -14061,6 +13624,9 @@ snapshots: '@esbuild/darwin-arm64@0.25.5': optional: true + '@esbuild/darwin-arm64@0.25.6': + optional: true + '@esbuild/darwin-x64@0.21.5': optional: true @@ -14070,6 +13636,9 @@ snapshots: '@esbuild/darwin-x64@0.25.5': optional: true + '@esbuild/darwin-x64@0.25.6': + optional: true + '@esbuild/freebsd-arm64@0.21.5': optional: true @@ -14079,6 +13648,9 @@ snapshots: '@esbuild/freebsd-arm64@0.25.5': optional: true + '@esbuild/freebsd-arm64@0.25.6': + optional: true + '@esbuild/freebsd-x64@0.21.5': optional: true @@ -14088,6 +13660,9 @@ snapshots: '@esbuild/freebsd-x64@0.25.5': optional: true + '@esbuild/freebsd-x64@0.25.6': + optional: true + '@esbuild/linux-arm64@0.21.5': optional: true @@ -14097,6 +13672,9 @@ snapshots: '@esbuild/linux-arm64@0.25.5': optional: true + '@esbuild/linux-arm64@0.25.6': + optional: true + '@esbuild/linux-arm@0.21.5': optional: true @@ -14106,6 +13684,9 @@ snapshots: '@esbuild/linux-arm@0.25.5': optional: true + '@esbuild/linux-arm@0.25.6': + optional: true + '@esbuild/linux-ia32@0.21.5': optional: true @@ -14115,6 +13696,9 @@ snapshots: '@esbuild/linux-ia32@0.25.5': optional: true + '@esbuild/linux-ia32@0.25.6': + optional: true + '@esbuild/linux-loong64@0.21.5': optional: true @@ -14124,6 +13708,9 @@ snapshots: '@esbuild/linux-loong64@0.25.5': optional: true + '@esbuild/linux-loong64@0.25.6': + optional: true + '@esbuild/linux-mips64el@0.21.5': optional: true @@ -14133,6 +13720,9 @@ snapshots: '@esbuild/linux-mips64el@0.25.5': optional: true + '@esbuild/linux-mips64el@0.25.6': + optional: true + '@esbuild/linux-ppc64@0.21.5': optional: true @@ -14142,6 +13732,9 @@ snapshots: '@esbuild/linux-ppc64@0.25.5': optional: true + '@esbuild/linux-ppc64@0.25.6': + optional: true + '@esbuild/linux-riscv64@0.21.5': optional: true @@ -14151,6 +13744,9 @@ snapshots: '@esbuild/linux-riscv64@0.25.5': optional: true + '@esbuild/linux-riscv64@0.25.6': + optional: true + '@esbuild/linux-s390x@0.21.5': optional: true @@ -14160,6 +13756,9 @@ snapshots: '@esbuild/linux-s390x@0.25.5': optional: true + '@esbuild/linux-s390x@0.25.6': + optional: true + '@esbuild/linux-x64@0.21.5': optional: true @@ -14169,12 +13768,18 @@ snapshots: '@esbuild/linux-x64@0.25.5': optional: true + '@esbuild/linux-x64@0.25.6': + optional: true + '@esbuild/netbsd-arm64@0.25.4': optional: true '@esbuild/netbsd-arm64@0.25.5': optional: true + '@esbuild/netbsd-arm64@0.25.6': + optional: true + '@esbuild/netbsd-x64@0.21.5': optional: true @@ -14184,12 +13789,18 @@ snapshots: '@esbuild/netbsd-x64@0.25.5': optional: true + '@esbuild/netbsd-x64@0.25.6': + optional: true + '@esbuild/openbsd-arm64@0.25.4': optional: true '@esbuild/openbsd-arm64@0.25.5': optional: true + '@esbuild/openbsd-arm64@0.25.6': + optional: true + '@esbuild/openbsd-x64@0.21.5': optional: true @@ -14199,6 +13810,12 @@ snapshots: '@esbuild/openbsd-x64@0.25.5': optional: true + '@esbuild/openbsd-x64@0.25.6': + optional: true + + '@esbuild/openharmony-arm64@0.25.6': + optional: true + '@esbuild/sunos-x64@0.21.5': optional: true @@ -14208,6 +13825,9 @@ snapshots: '@esbuild/sunos-x64@0.25.5': optional: true + '@esbuild/sunos-x64@0.25.6': + optional: true + '@esbuild/win32-arm64@0.21.5': optional: true @@ -14217,6 +13837,9 @@ snapshots: '@esbuild/win32-arm64@0.25.5': optional: true + '@esbuild/win32-arm64@0.25.6': + optional: true + '@esbuild/win32-ia32@0.21.5': optional: true @@ -14226,6 +13849,9 @@ snapshots: '@esbuild/win32-ia32@0.25.5': optional: true + '@esbuild/win32-ia32@0.25.6': + optional: true + '@esbuild/win32-x64@0.21.5': optional: true @@ -14235,6 +13861,9 @@ snapshots: '@esbuild/win32-x64@0.25.5': optional: true + '@esbuild/win32-x64@0.25.6': + optional: true + '@eslint-community/eslint-plugin-eslint-comments@4.5.0(eslint@9.30.1(jiti@2.4.2))': dependencies: escape-string-regexp: 4.0.0 @@ -14359,15 +13988,15 @@ snapshots: '@fastify/forwarded': 3.0.0 ipaddr.js: 2.2.0 - '@floating-ui/core@1.6.9': + '@floating-ui/core@1.7.2': dependencies: - '@floating-ui/utils': 0.2.9 + '@floating-ui/utils': 0.2.10 '@floating-ui/dom@1.1.1': dependencies: - '@floating-ui/core': 1.6.9 + '@floating-ui/core': 1.7.2 - '@floating-ui/utils@0.2.9': {} + '@floating-ui/utils@0.2.10': {} '@gar/promisify@1.1.3': {} @@ -14391,9 +14020,9 @@ snapshots: transitivePeerDependencies: - magicast - '@hono/node-server@1.15.0(hono@4.7.6)': + '@hono/node-server@1.15.0(hono@4.8.4)': dependencies: - hono: 4.7.6 + hono: 4.8.4 '@humanfs/core@0.19.1': {} @@ -14412,7 +14041,7 @@ snapshots: dependencies: '@iconify/types': 2.0.0 - '@iconify-json/simple-icons@1.2.31': + '@iconify-json/simple-icons@1.2.42': dependencies: '@iconify/types': 2.0.0 @@ -14440,9 +14069,9 @@ snapshots: '@img/sharp-libvips-darwin-arm64': 1.0.4 optional: true - '@img/sharp-darwin-arm64@0.34.2': + '@img/sharp-darwin-arm64@0.34.3': optionalDependencies: - '@img/sharp-libvips-darwin-arm64': 1.1.0 + '@img/sharp-libvips-darwin-arm64': 1.2.0 optional: true '@img/sharp-darwin-x64@0.33.5': @@ -14450,60 +14079,60 @@ snapshots: '@img/sharp-libvips-darwin-x64': 1.0.4 optional: true - '@img/sharp-darwin-x64@0.34.2': + '@img/sharp-darwin-x64@0.34.3': optionalDependencies: - '@img/sharp-libvips-darwin-x64': 1.1.0 + '@img/sharp-libvips-darwin-x64': 1.2.0 optional: true '@img/sharp-libvips-darwin-arm64@1.0.4': optional: true - '@img/sharp-libvips-darwin-arm64@1.1.0': + '@img/sharp-libvips-darwin-arm64@1.2.0': optional: true '@img/sharp-libvips-darwin-x64@1.0.4': optional: true - '@img/sharp-libvips-darwin-x64@1.1.0': + '@img/sharp-libvips-darwin-x64@1.2.0': optional: true '@img/sharp-libvips-linux-arm64@1.0.4': optional: true - '@img/sharp-libvips-linux-arm64@1.1.0': + '@img/sharp-libvips-linux-arm64@1.2.0': optional: true '@img/sharp-libvips-linux-arm@1.0.5': optional: true - '@img/sharp-libvips-linux-arm@1.1.0': + '@img/sharp-libvips-linux-arm@1.2.0': optional: true - '@img/sharp-libvips-linux-ppc64@1.1.0': + '@img/sharp-libvips-linux-ppc64@1.2.0': optional: true '@img/sharp-libvips-linux-s390x@1.0.4': optional: true - '@img/sharp-libvips-linux-s390x@1.1.0': + '@img/sharp-libvips-linux-s390x@1.2.0': optional: true '@img/sharp-libvips-linux-x64@1.0.4': optional: true - '@img/sharp-libvips-linux-x64@1.1.0': + '@img/sharp-libvips-linux-x64@1.2.0': optional: true '@img/sharp-libvips-linuxmusl-arm64@1.0.4': optional: true - '@img/sharp-libvips-linuxmusl-arm64@1.1.0': + '@img/sharp-libvips-linuxmusl-arm64@1.2.0': optional: true '@img/sharp-libvips-linuxmusl-x64@1.0.4': optional: true - '@img/sharp-libvips-linuxmusl-x64@1.1.0': + '@img/sharp-libvips-linuxmusl-x64@1.2.0': optional: true '@img/sharp-linux-arm64@0.33.5': @@ -14511,9 +14140,9 @@ snapshots: '@img/sharp-libvips-linux-arm64': 1.0.4 optional: true - '@img/sharp-linux-arm64@0.34.2': + '@img/sharp-linux-arm64@0.34.3': optionalDependencies: - '@img/sharp-libvips-linux-arm64': 1.1.0 + '@img/sharp-libvips-linux-arm64': 1.2.0 optional: true '@img/sharp-linux-arm@0.33.5': @@ -14521,9 +14150,14 @@ snapshots: '@img/sharp-libvips-linux-arm': 1.0.5 optional: true - '@img/sharp-linux-arm@0.34.2': + '@img/sharp-linux-arm@0.34.3': + optionalDependencies: + '@img/sharp-libvips-linux-arm': 1.2.0 + optional: true + + '@img/sharp-linux-ppc64@0.34.3': optionalDependencies: - '@img/sharp-libvips-linux-arm': 1.1.0 + '@img/sharp-libvips-linux-ppc64': 1.2.0 optional: true '@img/sharp-linux-s390x@0.33.5': @@ -14531,9 +14165,9 @@ snapshots: '@img/sharp-libvips-linux-s390x': 1.0.4 optional: true - '@img/sharp-linux-s390x@0.34.2': + '@img/sharp-linux-s390x@0.34.3': optionalDependencies: - '@img/sharp-libvips-linux-s390x': 1.1.0 + '@img/sharp-libvips-linux-s390x': 1.2.0 optional: true '@img/sharp-linux-x64@0.33.5': @@ -14541,9 +14175,9 @@ snapshots: '@img/sharp-libvips-linux-x64': 1.0.4 optional: true - '@img/sharp-linux-x64@0.34.2': + '@img/sharp-linux-x64@0.34.3': optionalDependencies: - '@img/sharp-libvips-linux-x64': 1.1.0 + '@img/sharp-libvips-linux-x64': 1.2.0 optional: true '@img/sharp-linuxmusl-arm64@0.33.5': @@ -14551,9 +14185,9 @@ snapshots: '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 optional: true - '@img/sharp-linuxmusl-arm64@0.34.2': + '@img/sharp-linuxmusl-arm64@0.34.3': optionalDependencies: - '@img/sharp-libvips-linuxmusl-arm64': 1.1.0 + '@img/sharp-libvips-linuxmusl-arm64': 1.2.0 optional: true '@img/sharp-linuxmusl-x64@0.33.5': @@ -14561,57 +14195,57 @@ snapshots: '@img/sharp-libvips-linuxmusl-x64': 1.0.4 optional: true - '@img/sharp-linuxmusl-x64@0.34.2': + '@img/sharp-linuxmusl-x64@0.34.3': optionalDependencies: - '@img/sharp-libvips-linuxmusl-x64': 1.1.0 + '@img/sharp-libvips-linuxmusl-x64': 1.2.0 optional: true '@img/sharp-wasm32@0.33.5': dependencies: - '@emnapi/runtime': 1.4.3 + '@emnapi/runtime': 1.4.4 optional: true - '@img/sharp-wasm32@0.34.2': + '@img/sharp-wasm32@0.34.3': dependencies: - '@emnapi/runtime': 1.4.3 + '@emnapi/runtime': 1.4.4 optional: true - '@img/sharp-win32-arm64@0.34.2': + '@img/sharp-win32-arm64@0.34.3': optional: true '@img/sharp-win32-ia32@0.33.5': optional: true - '@img/sharp-win32-ia32@0.34.2': + '@img/sharp-win32-ia32@0.34.3': optional: true '@img/sharp-win32-x64@0.33.5': optional: true - '@img/sharp-win32-x64@0.34.2': + '@img/sharp-win32-x64@0.34.3': optional: true - '@inquirer/checkbox@4.1.5(@types/node@22.15.30)': + '@inquirer/checkbox@4.1.9(@types/node@22.16.3)': dependencies: - '@inquirer/core': 10.1.14(@types/node@22.15.30) - '@inquirer/figures': 1.0.11 - '@inquirer/type': 3.0.7(@types/node@22.15.30) + '@inquirer/core': 10.1.14(@types/node@22.16.3) + '@inquirer/figures': 1.0.12 + '@inquirer/type': 3.0.7(@types/node@22.16.3) ansi-escapes: 4.3.2 yoctocolors-cjs: 2.1.2 optionalDependencies: - '@types/node': 22.15.30 + '@types/node': 22.16.3 - '@inquirer/confirm@5.1.13(@types/node@22.15.30)': + '@inquirer/confirm@5.1.13(@types/node@22.16.3)': dependencies: - '@inquirer/core': 10.1.14(@types/node@22.15.30) - '@inquirer/type': 3.0.7(@types/node@22.15.30) + '@inquirer/core': 10.1.14(@types/node@22.16.3) + '@inquirer/type': 3.0.7(@types/node@22.16.3) optionalDependencies: - '@types/node': 22.15.30 + '@types/node': 22.16.3 - '@inquirer/core@10.1.14(@types/node@22.15.30)': + '@inquirer/core@10.1.14(@types/node@22.16.3)': dependencies: '@inquirer/figures': 1.0.12 - '@inquirer/type': 3.0.7(@types/node@22.15.30) + '@inquirer/type': 3.0.7(@types/node@22.16.3) ansi-escapes: 4.3.2 cli-width: 4.1.0 mute-stream: 2.0.0 @@ -14619,110 +14253,108 @@ snapshots: wrap-ansi: 6.2.0 yoctocolors-cjs: 2.1.2 optionalDependencies: - '@types/node': 22.15.30 + '@types/node': 22.16.3 - '@inquirer/editor@4.2.10(@types/node@22.15.30)': + '@inquirer/editor@4.2.14(@types/node@22.16.3)': dependencies: - '@inquirer/core': 10.1.14(@types/node@22.15.30) - '@inquirer/type': 3.0.7(@types/node@22.15.30) + '@inquirer/core': 10.1.14(@types/node@22.16.3) + '@inquirer/type': 3.0.7(@types/node@22.16.3) external-editor: 3.1.0 optionalDependencies: - '@types/node': 22.15.30 + '@types/node': 22.16.3 - '@inquirer/expand@4.0.12(@types/node@22.15.30)': + '@inquirer/expand@4.0.16(@types/node@22.16.3)': dependencies: - '@inquirer/core': 10.1.14(@types/node@22.15.30) - '@inquirer/type': 3.0.7(@types/node@22.15.30) + '@inquirer/core': 10.1.14(@types/node@22.16.3) + '@inquirer/type': 3.0.7(@types/node@22.16.3) yoctocolors-cjs: 2.1.2 optionalDependencies: - '@types/node': 22.15.30 - - '@inquirer/figures@1.0.11': {} + '@types/node': 22.16.3 '@inquirer/figures@1.0.12': {} - '@inquirer/input@4.1.9(@types/node@22.15.30)': + '@inquirer/input@4.2.0(@types/node@22.16.3)': dependencies: - '@inquirer/core': 10.1.14(@types/node@22.15.30) - '@inquirer/type': 3.0.7(@types/node@22.15.30) + '@inquirer/core': 10.1.14(@types/node@22.16.3) + '@inquirer/type': 3.0.7(@types/node@22.16.3) optionalDependencies: - '@types/node': 22.15.30 + '@types/node': 22.16.3 - '@inquirer/number@3.0.12(@types/node@22.15.30)': + '@inquirer/number@3.0.16(@types/node@22.16.3)': dependencies: - '@inquirer/core': 10.1.14(@types/node@22.15.30) - '@inquirer/type': 3.0.7(@types/node@22.15.30) + '@inquirer/core': 10.1.14(@types/node@22.16.3) + '@inquirer/type': 3.0.7(@types/node@22.16.3) optionalDependencies: - '@types/node': 22.15.30 + '@types/node': 22.16.3 - '@inquirer/password@4.0.12(@types/node@22.15.30)': + '@inquirer/password@4.0.16(@types/node@22.16.3)': dependencies: - '@inquirer/core': 10.1.14(@types/node@22.15.30) - '@inquirer/type': 3.0.7(@types/node@22.15.30) + '@inquirer/core': 10.1.14(@types/node@22.16.3) + '@inquirer/type': 3.0.7(@types/node@22.16.3) ansi-escapes: 4.3.2 optionalDependencies: - '@types/node': 22.15.30 - - '@inquirer/prompts@7.3.2(@types/node@22.15.30)': - dependencies: - '@inquirer/checkbox': 4.1.5(@types/node@22.15.30) - '@inquirer/confirm': 5.1.13(@types/node@22.15.30) - '@inquirer/editor': 4.2.10(@types/node@22.15.30) - '@inquirer/expand': 4.0.12(@types/node@22.15.30) - '@inquirer/input': 4.1.9(@types/node@22.15.30) - '@inquirer/number': 3.0.12(@types/node@22.15.30) - '@inquirer/password': 4.0.12(@types/node@22.15.30) - '@inquirer/rawlist': 4.1.0(@types/node@22.15.30) - '@inquirer/search': 3.0.12(@types/node@22.15.30) - '@inquirer/select': 4.2.0(@types/node@22.15.30) + '@types/node': 22.16.3 + + '@inquirer/prompts@7.3.2(@types/node@22.16.3)': + dependencies: + '@inquirer/checkbox': 4.1.9(@types/node@22.16.3) + '@inquirer/confirm': 5.1.13(@types/node@22.16.3) + '@inquirer/editor': 4.2.14(@types/node@22.16.3) + '@inquirer/expand': 4.0.16(@types/node@22.16.3) + '@inquirer/input': 4.2.0(@types/node@22.16.3) + '@inquirer/number': 3.0.16(@types/node@22.16.3) + '@inquirer/password': 4.0.16(@types/node@22.16.3) + '@inquirer/rawlist': 4.1.4(@types/node@22.16.3) + '@inquirer/search': 3.0.16(@types/node@22.16.3) + '@inquirer/select': 4.2.4(@types/node@22.16.3) optionalDependencies: - '@types/node': 22.15.30 - - '@inquirer/prompts@7.4.1(@types/node@22.15.30)': - dependencies: - '@inquirer/checkbox': 4.1.5(@types/node@22.15.30) - '@inquirer/confirm': 5.1.13(@types/node@22.15.30) - '@inquirer/editor': 4.2.10(@types/node@22.15.30) - '@inquirer/expand': 4.0.12(@types/node@22.15.30) - '@inquirer/input': 4.1.9(@types/node@22.15.30) - '@inquirer/number': 3.0.12(@types/node@22.15.30) - '@inquirer/password': 4.0.12(@types/node@22.15.30) - '@inquirer/rawlist': 4.1.0(@types/node@22.15.30) - '@inquirer/search': 3.0.12(@types/node@22.15.30) - '@inquirer/select': 4.2.0(@types/node@22.15.30) + '@types/node': 22.16.3 + + '@inquirer/prompts@7.4.1(@types/node@22.16.3)': + dependencies: + '@inquirer/checkbox': 4.1.9(@types/node@22.16.3) + '@inquirer/confirm': 5.1.13(@types/node@22.16.3) + '@inquirer/editor': 4.2.14(@types/node@22.16.3) + '@inquirer/expand': 4.0.16(@types/node@22.16.3) + '@inquirer/input': 4.2.0(@types/node@22.16.3) + '@inquirer/number': 3.0.16(@types/node@22.16.3) + '@inquirer/password': 4.0.16(@types/node@22.16.3) + '@inquirer/rawlist': 4.1.4(@types/node@22.16.3) + '@inquirer/search': 3.0.16(@types/node@22.16.3) + '@inquirer/select': 4.2.4(@types/node@22.16.3) optionalDependencies: - '@types/node': 22.15.30 + '@types/node': 22.16.3 - '@inquirer/rawlist@4.1.0(@types/node@22.15.30)': + '@inquirer/rawlist@4.1.4(@types/node@22.16.3)': dependencies: - '@inquirer/core': 10.1.14(@types/node@22.15.30) - '@inquirer/type': 3.0.7(@types/node@22.15.30) + '@inquirer/core': 10.1.14(@types/node@22.16.3) + '@inquirer/type': 3.0.7(@types/node@22.16.3) yoctocolors-cjs: 2.1.2 optionalDependencies: - '@types/node': 22.15.30 + '@types/node': 22.16.3 - '@inquirer/search@3.0.12(@types/node@22.15.30)': + '@inquirer/search@3.0.16(@types/node@22.16.3)': dependencies: - '@inquirer/core': 10.1.14(@types/node@22.15.30) - '@inquirer/figures': 1.0.11 - '@inquirer/type': 3.0.7(@types/node@22.15.30) + '@inquirer/core': 10.1.14(@types/node@22.16.3) + '@inquirer/figures': 1.0.12 + '@inquirer/type': 3.0.7(@types/node@22.16.3) yoctocolors-cjs: 2.1.2 optionalDependencies: - '@types/node': 22.15.30 + '@types/node': 22.16.3 - '@inquirer/select@4.2.0(@types/node@22.15.30)': + '@inquirer/select@4.2.4(@types/node@22.16.3)': dependencies: - '@inquirer/core': 10.1.14(@types/node@22.15.30) - '@inquirer/figures': 1.0.11 - '@inquirer/type': 3.0.7(@types/node@22.15.30) + '@inquirer/core': 10.1.14(@types/node@22.16.3) + '@inquirer/figures': 1.0.12 + '@inquirer/type': 3.0.7(@types/node@22.16.3) ansi-escapes: 4.3.2 yoctocolors-cjs: 2.1.2 optionalDependencies: - '@types/node': 22.15.30 + '@types/node': 22.16.3 - '@inquirer/type@3.0.7(@types/node@22.15.30)': + '@inquirer/type@3.0.7(@types/node@22.16.3)': optionalDependencies: - '@types/node': 22.15.30 + '@types/node': 22.16.3 '@ioredis/commands@1.2.0': {} @@ -14759,18 +14391,8 @@ snapshots: '@jridgewell/gen-mapping': 0.3.12 '@jridgewell/trace-mapping': 0.3.29 - '@jridgewell/source-map@0.3.6': - dependencies: - '@jridgewell/gen-mapping': 0.3.12 - '@jridgewell/trace-mapping': 0.3.29 - '@jridgewell/sourcemap-codec@1.5.4': {} - '@jridgewell/trace-mapping@0.3.25': - dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.4 - '@jridgewell/trace-mapping@0.3.29': dependencies: '@jridgewell/resolve-uri': 3.1.2 @@ -14822,15 +14444,15 @@ snapshots: '@mermaid-js/mermaid-mindmap@9.3.0': dependencies: '@braintree/sanitize-url': 6.0.4 - cytoscape: 3.32.0 - cytoscape-cose-bilkent: 4.1.0(cytoscape@3.32.0) - cytoscape-fcose: 2.2.0(cytoscape@3.32.0) + cytoscape: 3.32.1 + cytoscape-cose-bilkent: 4.1.0(cytoscape@3.32.1) + cytoscape-fcose: 2.2.0(cytoscape@3.32.1) d3: 7.9.0 khroma: 2.1.0 non-layered-tidy-tree-layout: 2.0.2 optional: true - '@mermaid-js/parser@0.6.0': + '@mermaid-js/parser@0.6.1': dependencies: langium: 3.3.1 @@ -14845,93 +14467,93 @@ snapshots: outvariant: 1.4.3 strict-event-emitter: 0.5.1 - '@napi-rs/nice-android-arm-eabi@1.0.1': + '@napi-rs/nice-android-arm-eabi@1.0.4': optional: true - '@napi-rs/nice-android-arm64@1.0.1': + '@napi-rs/nice-android-arm64@1.0.4': optional: true - '@napi-rs/nice-darwin-arm64@1.0.1': + '@napi-rs/nice-darwin-arm64@1.0.4': optional: true - '@napi-rs/nice-darwin-x64@1.0.1': + '@napi-rs/nice-darwin-x64@1.0.4': optional: true - '@napi-rs/nice-freebsd-x64@1.0.1': + '@napi-rs/nice-freebsd-x64@1.0.4': optional: true - '@napi-rs/nice-linux-arm-gnueabihf@1.0.1': + '@napi-rs/nice-linux-arm-gnueabihf@1.0.4': optional: true - '@napi-rs/nice-linux-arm64-gnu@1.0.1': + '@napi-rs/nice-linux-arm64-gnu@1.0.4': optional: true - '@napi-rs/nice-linux-arm64-musl@1.0.1': + '@napi-rs/nice-linux-arm64-musl@1.0.4': optional: true - '@napi-rs/nice-linux-ppc64-gnu@1.0.1': + '@napi-rs/nice-linux-ppc64-gnu@1.0.4': optional: true - '@napi-rs/nice-linux-riscv64-gnu@1.0.1': + '@napi-rs/nice-linux-riscv64-gnu@1.0.4': optional: true - '@napi-rs/nice-linux-s390x-gnu@1.0.1': + '@napi-rs/nice-linux-s390x-gnu@1.0.4': optional: true - '@napi-rs/nice-linux-x64-gnu@1.0.1': + '@napi-rs/nice-linux-x64-gnu@1.0.4': optional: true - '@napi-rs/nice-linux-x64-musl@1.0.1': + '@napi-rs/nice-linux-x64-musl@1.0.4': optional: true - '@napi-rs/nice-win32-arm64-msvc@1.0.1': + '@napi-rs/nice-win32-arm64-msvc@1.0.4': optional: true - '@napi-rs/nice-win32-ia32-msvc@1.0.1': + '@napi-rs/nice-win32-ia32-msvc@1.0.4': optional: true - '@napi-rs/nice-win32-x64-msvc@1.0.1': + '@napi-rs/nice-win32-x64-msvc@1.0.4': optional: true - '@napi-rs/nice@1.0.1': + '@napi-rs/nice@1.0.4': optionalDependencies: - '@napi-rs/nice-android-arm-eabi': 1.0.1 - '@napi-rs/nice-android-arm64': 1.0.1 - '@napi-rs/nice-darwin-arm64': 1.0.1 - '@napi-rs/nice-darwin-x64': 1.0.1 - '@napi-rs/nice-freebsd-x64': 1.0.1 - '@napi-rs/nice-linux-arm-gnueabihf': 1.0.1 - '@napi-rs/nice-linux-arm64-gnu': 1.0.1 - '@napi-rs/nice-linux-arm64-musl': 1.0.1 - '@napi-rs/nice-linux-ppc64-gnu': 1.0.1 - '@napi-rs/nice-linux-riscv64-gnu': 1.0.1 - '@napi-rs/nice-linux-s390x-gnu': 1.0.1 - '@napi-rs/nice-linux-x64-gnu': 1.0.1 - '@napi-rs/nice-linux-x64-musl': 1.0.1 - '@napi-rs/nice-win32-arm64-msvc': 1.0.1 - '@napi-rs/nice-win32-ia32-msvc': 1.0.1 - '@napi-rs/nice-win32-x64-msvc': 1.0.1 + '@napi-rs/nice-android-arm-eabi': 1.0.4 + '@napi-rs/nice-android-arm64': 1.0.4 + '@napi-rs/nice-darwin-arm64': 1.0.4 + '@napi-rs/nice-darwin-x64': 1.0.4 + '@napi-rs/nice-freebsd-x64': 1.0.4 + '@napi-rs/nice-linux-arm-gnueabihf': 1.0.4 + '@napi-rs/nice-linux-arm64-gnu': 1.0.4 + '@napi-rs/nice-linux-arm64-musl': 1.0.4 + '@napi-rs/nice-linux-ppc64-gnu': 1.0.4 + '@napi-rs/nice-linux-riscv64-gnu': 1.0.4 + '@napi-rs/nice-linux-s390x-gnu': 1.0.4 + '@napi-rs/nice-linux-x64-gnu': 1.0.4 + '@napi-rs/nice-linux-x64-musl': 1.0.4 + '@napi-rs/nice-win32-arm64-msvc': 1.0.4 + '@napi-rs/nice-win32-ia32-msvc': 1.0.4 + '@napi-rs/nice-win32-x64-msvc': 1.0.4 optional: true - '@napi-rs/wasm-runtime@0.2.11': + '@napi-rs/wasm-runtime@0.2.12': dependencies: - '@emnapi/core': 1.4.3 - '@emnapi/runtime': 1.4.3 - '@tybys/wasm-util': 0.9.0 + '@emnapi/core': 1.4.4 + '@emnapi/runtime': 1.4.4 + '@tybys/wasm-util': 0.10.0 optional: true - '@nestjs/cli@11.0.7(@swc/cli@0.7.7(@swc/core@1.12.9(@swc/helpers@0.5.17))(chokidar@4.0.3))(@swc/core@1.12.9(@swc/helpers@0.5.17))(@types/node@22.15.30)': + '@nestjs/cli@11.0.7(@swc/cli@0.7.8(@swc/core@1.12.11(@swc/helpers@0.5.17))(chokidar@4.0.3))(@swc/core@1.12.11(@swc/helpers@0.5.17))(@types/node@22.16.3)': dependencies: '@angular-devkit/core': 19.2.8(chokidar@4.0.3) '@angular-devkit/schematics': 19.2.8(chokidar@4.0.3) - '@angular-devkit/schematics-cli': 19.2.8(@types/node@22.15.30)(chokidar@4.0.3) - '@inquirer/prompts': 7.4.1(@types/node@22.15.30) + '@angular-devkit/schematics-cli': 19.2.8(@types/node@22.16.3)(chokidar@4.0.3) + '@inquirer/prompts': 7.4.1(@types/node@22.16.3) '@nestjs/schematics': 11.0.5(chokidar@4.0.3)(typescript@5.8.3) ansis: 3.17.0 chokidar: 4.0.3 cli-table3: 0.6.5 commander: 4.1.1 - fork-ts-checker-webpack-plugin: 9.1.0(typescript@5.8.3)(webpack@5.99.6(@swc/core@1.12.9(@swc/helpers@0.5.17))) + fork-ts-checker-webpack-plugin: 9.1.0(typescript@5.8.3)(webpack@5.99.6(@swc/core@1.12.11(@swc/helpers@0.5.17))) glob: 11.0.1 node-emoji: 1.11.0 ora: 5.4.1 @@ -14939,11 +14561,11 @@ snapshots: tsconfig-paths: 4.2.0 tsconfig-paths-webpack-plugin: 4.2.0 typescript: 5.8.3 - webpack: 5.99.6(@swc/core@1.12.9(@swc/helpers@0.5.17)) + webpack: 5.99.6(@swc/core@1.12.11(@swc/helpers@0.5.17)) webpack-node-externals: 3.0.0 optionalDependencies: - '@swc/cli': 0.7.7(@swc/core@1.12.9(@swc/helpers@0.5.17))(chokidar@4.0.3) - '@swc/core': 1.12.9(@swc/helpers@0.5.17) + '@swc/cli': 0.7.8(@swc/core@1.12.11(@swc/helpers@0.5.17))(chokidar@4.0.3) + '@swc/core': 1.12.11(@swc/helpers@0.5.17) transitivePeerDependencies: - '@types/node' - esbuild @@ -15041,12 +14663,12 @@ snapshots: uuid: 11.1.0 write-file-atomic: 6.0.0 - '@netlify/functions@3.1.10(encoding@0.1.13)(rollup@4.44.1)': + '@netlify/functions@3.1.10(encoding@0.1.13)(rollup@4.44.2)': dependencies: '@netlify/blobs': 9.1.2 '@netlify/dev-utils': 2.2.0 '@netlify/serverless-functions-api': 1.41.2 - '@netlify/zip-it-and-ship-it': 12.2.0(encoding@0.1.13)(rollup@4.44.1) + '@netlify/zip-it-and-ship-it': 12.2.1(encoding@0.1.13)(rollup@4.44.2) cron-parser: 4.9.0 decache: 4.6.2 extract-zip: 2.0.1 @@ -15068,13 +14690,13 @@ snapshots: '@netlify/serverless-functions-api@2.1.3': {} - '@netlify/zip-it-and-ship-it@12.2.0(encoding@0.1.13)(rollup@4.44.1)': + '@netlify/zip-it-and-ship-it@12.2.1(encoding@0.1.13)(rollup@4.44.2)': dependencies: '@babel/parser': 7.28.0 - '@babel/types': 7.27.6 + '@babel/types': 7.28.0 '@netlify/binary-info': 1.0.0 '@netlify/serverless-functions-api': 2.1.3 - '@vercel/nft': 0.29.4(encoding@0.1.13)(rollup@4.44.1) + '@vercel/nft': 0.29.4(encoding@0.1.13)(rollup@4.44.2) archiver: 7.0.1 common-path-prefix: 3.0.0 copy-file: 11.0.0 @@ -15102,7 +14724,7 @@ snapshots: unixify: 1.0.0 urlpattern-polyfill: 8.0.2 yargs: 17.7.2 - zod: 3.25.74 + zod: 3.25.76 transitivePeerDependencies: - encoding - rollup @@ -15183,17 +14805,17 @@ snapshots: std-env: 3.9.0 tinyexec: 1.0.1 ufo: 1.6.1 - youch: 4.1.0-beta.9 + youch: 4.1.0-beta.10 transitivePeerDependencies: - magicast '@nuxt/devalue@2.0.2': {} - '@nuxt/devtools-kit@2.6.2(magicast@0.3.5)(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))': + '@nuxt/devtools-kit@2.6.2(magicast@0.3.5)(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))': dependencies: '@nuxt/kit': 3.17.6(magicast@0.3.5) execa: 8.0.1 - vite: 6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) + vite: 6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) transitivePeerDependencies: - magicast @@ -15208,12 +14830,12 @@ snapshots: prompts: 2.4.2 semver: 7.7.2 - '@nuxt/devtools@2.6.2(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3))': + '@nuxt/devtools@2.6.2(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3))': dependencies: - '@nuxt/devtools-kit': 2.6.2(magicast@0.3.5)(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) + '@nuxt/devtools-kit': 2.6.2(magicast@0.3.5)(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) '@nuxt/devtools-wizard': 2.6.2 '@nuxt/kit': 3.17.6(magicast@0.3.5) - '@vue/devtools-core': 7.7.7(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3)) + '@vue/devtools-core': 7.7.7(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3)) '@vue/devtools-kit': 7.7.7 birpc: 2.4.0 consola: 3.4.2 @@ -15238,9 +14860,9 @@ snapshots: sirv: 3.0.1 structured-clone-es: 1.0.0 tinyglobby: 0.2.14 - vite: 6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) - vite-plugin-inspect: 11.3.0(@nuxt/kit@3.17.6(magicast@0.3.5))(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) - vite-plugin-vue-tracer: 1.0.0(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3)) + vite: 6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) + vite-plugin-inspect: 11.3.0(@nuxt/kit@3.17.6(magicast@0.3.5))(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) + vite-plugin-vue-tracer: 1.0.0(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3)) which: 5.0.0 ws: 8.18.3 transitivePeerDependencies: @@ -15305,17 +14927,17 @@ snapshots: transitivePeerDependencies: - magicast - '@nuxt/vite-builder@3.17.6(@types/node@24.0.10)(eslint@9.30.1(jiti@2.4.2))(magicast@0.3.5)(optionator@0.9.4)(rollup@4.44.1)(terser@5.43.1)(tsx@4.20.3)(typescript@5.8.3)(vue@3.5.17(typescript@5.8.3))(yaml@2.8.0)': + '@nuxt/vite-builder@3.17.6(@types/node@22.16.3)(eslint@9.30.1(jiti@2.4.2))(magicast@0.3.5)(optionator@0.9.4)(rollup@4.44.2)(terser@5.43.1)(tsx@4.20.3)(typescript@5.8.3)(vue@3.5.17(typescript@5.8.3))(yaml@2.8.0)': dependencies: '@nuxt/kit': 3.17.6(magicast@0.3.5) - '@rollup/plugin-replace': 6.0.2(rollup@4.44.1) - '@vitejs/plugin-vue': 5.2.4(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3)) - '@vitejs/plugin-vue-jsx': 4.2.0(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3)) + '@rollup/plugin-replace': 6.0.2(rollup@4.44.2) + '@vitejs/plugin-vue': 5.2.4(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3)) + '@vitejs/plugin-vue-jsx': 4.2.0(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3)) autoprefixer: 10.4.21(postcss@8.5.6) consola: 3.4.2 cssnano: 7.0.7(postcss@8.5.6) defu: 6.1.4 - esbuild: 0.25.5 + esbuild: 0.25.6 escape-string-regexp: 5.0.0 exsolve: 1.0.7 externality: 1.0.2 @@ -15331,13 +14953,13 @@ snapshots: perfect-debounce: 1.0.0 pkg-types: 2.2.0 postcss: 8.5.6 - rollup-plugin-visualizer: 6.0.3(rollup@4.44.1) + rollup-plugin-visualizer: 6.0.3(rollup@4.44.2) std-env: 3.9.0 ufo: 1.6.1 unenv: 2.0.0-rc.18 - vite: 6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) - vite-node: 3.2.4(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) - vite-plugin-checker: 0.9.3(eslint@9.30.1(jiti@2.4.2))(optionator@0.9.4)(typescript@5.8.3)(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) + vite: 6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) + vite-node: 3.2.4(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) + vite-plugin-checker: 0.9.3(eslint@9.30.1(jiti@2.4.2))(optionator@0.9.4)(typescript@5.8.3)(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) vue: 3.5.17(typescript@5.8.3) vue-bundle-renderer: 2.1.1 transitivePeerDependencies: @@ -15395,54 +15017,54 @@ snapshots: '@oslojs/encoding@1.1.0': {} - '@oxc-parser/binding-android-arm64@0.75.0': + '@oxc-parser/binding-android-arm64@0.75.1': optional: true - '@oxc-parser/binding-darwin-arm64@0.75.0': + '@oxc-parser/binding-darwin-arm64@0.75.1': optional: true - '@oxc-parser/binding-darwin-x64@0.75.0': + '@oxc-parser/binding-darwin-x64@0.75.1': optional: true - '@oxc-parser/binding-freebsd-x64@0.75.0': + '@oxc-parser/binding-freebsd-x64@0.75.1': optional: true - '@oxc-parser/binding-linux-arm-gnueabihf@0.75.0': + '@oxc-parser/binding-linux-arm-gnueabihf@0.75.1': optional: true - '@oxc-parser/binding-linux-arm-musleabihf@0.75.0': + '@oxc-parser/binding-linux-arm-musleabihf@0.75.1': optional: true - '@oxc-parser/binding-linux-arm64-gnu@0.75.0': + '@oxc-parser/binding-linux-arm64-gnu@0.75.1': optional: true - '@oxc-parser/binding-linux-arm64-musl@0.75.0': + '@oxc-parser/binding-linux-arm64-musl@0.75.1': optional: true - '@oxc-parser/binding-linux-riscv64-gnu@0.75.0': + '@oxc-parser/binding-linux-riscv64-gnu@0.75.1': optional: true - '@oxc-parser/binding-linux-s390x-gnu@0.75.0': + '@oxc-parser/binding-linux-s390x-gnu@0.75.1': optional: true - '@oxc-parser/binding-linux-x64-gnu@0.75.0': + '@oxc-parser/binding-linux-x64-gnu@0.75.1': optional: true - '@oxc-parser/binding-linux-x64-musl@0.75.0': + '@oxc-parser/binding-linux-x64-musl@0.75.1': optional: true - '@oxc-parser/binding-wasm32-wasi@0.75.0': + '@oxc-parser/binding-wasm32-wasi@0.75.1': dependencies: - '@napi-rs/wasm-runtime': 0.2.11 + '@napi-rs/wasm-runtime': 0.2.12 optional: true - '@oxc-parser/binding-win32-arm64-msvc@0.75.0': + '@oxc-parser/binding-win32-arm64-msvc@0.75.1': optional: true - '@oxc-parser/binding-win32-x64-msvc@0.75.0': + '@oxc-parser/binding-win32-x64-msvc@0.75.1': optional: true - '@oxc-project/types@0.75.0': {} + '@oxc-project/types@0.75.1': {} '@paralleldrive/cuid2@2.2.2': dependencies: @@ -15520,7 +15142,7 @@ snapshots: '@pinia/colada@0.17.1(pinia@3.0.3(typescript@5.8.3)(vue@3.5.17(typescript@5.8.3)))': dependencies: - '@vue/devtools-api': 7.7.6 + '@vue/devtools-api': 7.7.7 pinia: 3.0.3(typescript@5.8.3)(vue@3.5.17(typescript@5.8.3)) '@pkgjs/parseargs@0.11.0': @@ -15544,47 +15166,29 @@ snapshots: '@polka/url@1.0.0-next.29': {} - '@poppinss/colors@4.1.4': + '@poppinss/colors@4.1.5': dependencies: kleur: 4.1.5 - '@poppinss/dumper@0.6.3': + '@poppinss/dumper@0.6.4': dependencies: - '@poppinss/colors': 4.1.4 + '@poppinss/colors': 4.1.5 '@sindresorhus/is': 7.0.2 supports-color: 10.0.0 - '@poppinss/exception@1.2.1': {} + '@poppinss/exception@1.2.2': {} '@rolldown/pluginutils@1.0.0-beta.19': {} - '@rolldown/pluginutils@1.0.0-beta.23': {} + '@rolldown/pluginutils@1.0.0-beta.26': {} - '@rolldown/pluginutils@1.0.0-beta.9': {} - - '@rollup/plugin-alias@5.1.1(rollup@4.41.0)': - optionalDependencies: - rollup: 4.41.0 - - '@rollup/plugin-alias@5.1.1(rollup@4.44.1)': - optionalDependencies: - rollup: 4.44.1 - - '@rollup/plugin-commonjs@28.0.3(rollup@4.41.0)': - dependencies: - '@rollup/pluginutils': 5.2.0(rollup@4.41.0) - commondir: 1.0.1 - estree-walker: 2.0.2 - fdir: 6.4.4(picomatch@4.0.2) - is-reference: 1.2.1 - magic-string: 0.30.17 - picomatch: 4.0.2 + '@rollup/plugin-alias@5.1.1(rollup@4.44.2)': optionalDependencies: - rollup: 4.41.0 + rollup: 4.44.2 - '@rollup/plugin-commonjs@28.0.6(rollup@4.44.1)': + '@rollup/plugin-commonjs@28.0.6(rollup@4.44.2)': dependencies: - '@rollup/pluginutils': 5.2.0(rollup@4.44.1) + '@rollup/pluginutils': 5.2.0(rollup@4.44.2) commondir: 1.0.1 estree-walker: 2.0.2 fdir: 6.4.6(picomatch@4.0.2) @@ -15592,216 +15196,117 @@ snapshots: magic-string: 0.30.17 picomatch: 4.0.2 optionalDependencies: - rollup: 4.44.1 + rollup: 4.44.2 - '@rollup/plugin-inject@5.0.5(rollup@4.44.1)': + '@rollup/plugin-inject@5.0.5(rollup@4.44.2)': dependencies: - '@rollup/pluginutils': 5.2.0(rollup@4.44.1) + '@rollup/pluginutils': 5.2.0(rollup@4.44.2) estree-walker: 2.0.2 magic-string: 0.30.17 optionalDependencies: - rollup: 4.44.1 + rollup: 4.44.2 - '@rollup/plugin-json@6.1.0(rollup@4.41.0)': + '@rollup/plugin-json@6.1.0(rollup@4.44.2)': dependencies: - '@rollup/pluginutils': 5.2.0(rollup@4.41.0) + '@rollup/pluginutils': 5.2.0(rollup@4.44.2) optionalDependencies: - rollup: 4.41.0 + rollup: 4.44.2 - '@rollup/plugin-json@6.1.0(rollup@4.44.1)': + '@rollup/plugin-node-resolve@16.0.1(rollup@4.44.2)': dependencies: - '@rollup/pluginutils': 5.2.0(rollup@4.44.1) - optionalDependencies: - rollup: 4.44.1 - - '@rollup/plugin-node-resolve@16.0.1(rollup@4.41.0)': - dependencies: - '@rollup/pluginutils': 5.2.0(rollup@4.41.0) - '@types/resolve': 1.20.2 - deepmerge: 4.3.1 - is-module: 1.0.0 - resolve: 1.22.10 - optionalDependencies: - rollup: 4.41.0 - - '@rollup/plugin-node-resolve@16.0.1(rollup@4.44.1)': - dependencies: - '@rollup/pluginutils': 5.2.0(rollup@4.44.1) + '@rollup/pluginutils': 5.2.0(rollup@4.44.2) '@types/resolve': 1.20.2 deepmerge: 4.3.1 is-module: 1.0.0 resolve: 1.22.10 optionalDependencies: - rollup: 4.44.1 - - '@rollup/plugin-replace@6.0.2(rollup@4.41.0)': - dependencies: - '@rollup/pluginutils': 5.2.0(rollup@4.41.0) - magic-string: 0.30.17 - optionalDependencies: - rollup: 4.41.0 + rollup: 4.44.2 - '@rollup/plugin-replace@6.0.2(rollup@4.44.1)': + '@rollup/plugin-replace@6.0.2(rollup@4.44.2)': dependencies: - '@rollup/pluginutils': 5.2.0(rollup@4.44.1) + '@rollup/pluginutils': 5.2.0(rollup@4.44.2) magic-string: 0.30.17 optionalDependencies: - rollup: 4.44.1 + rollup: 4.44.2 - '@rollup/plugin-terser@0.4.4(rollup@4.44.1)': + '@rollup/plugin-terser@0.4.4(rollup@4.44.2)': dependencies: serialize-javascript: 6.0.2 smob: 1.5.0 terser: 5.43.1 optionalDependencies: - rollup: 4.44.1 + rollup: 4.44.2 - '@rollup/plugin-virtual@3.0.2(rollup@4.44.1)': + '@rollup/plugin-virtual@3.0.2(rollup@4.44.2)': optionalDependencies: - rollup: 4.44.1 + rollup: 4.44.2 - '@rollup/pluginutils@5.1.4(rollup@4.41.0)': + '@rollup/pluginutils@5.2.0(rollup@4.44.2)': dependencies: '@types/estree': 1.0.8 estree-walker: 2.0.2 picomatch: 4.0.2 optionalDependencies: - rollup: 4.41.0 + rollup: 4.44.2 - '@rollup/pluginutils@5.2.0(rollup@4.41.0)': - dependencies: - '@types/estree': 1.0.8 - estree-walker: 2.0.2 - picomatch: 4.0.2 - optionalDependencies: - rollup: 4.41.0 - - '@rollup/pluginutils@5.2.0(rollup@4.44.1)': - dependencies: - '@types/estree': 1.0.8 - estree-walker: 2.0.2 - picomatch: 4.0.2 - optionalDependencies: - rollup: 4.44.1 - - '@rollup/rollup-android-arm-eabi@4.41.0': - optional: true - - '@rollup/rollup-android-arm-eabi@4.44.1': - optional: true - - '@rollup/rollup-android-arm64@4.41.0': - optional: true - - '@rollup/rollup-android-arm64@4.44.1': - optional: true - - '@rollup/rollup-darwin-arm64@4.41.0': - optional: true - - '@rollup/rollup-darwin-arm64@4.44.1': - optional: true - - '@rollup/rollup-darwin-x64@4.41.0': - optional: true - - '@rollup/rollup-darwin-x64@4.44.1': - optional: true - - '@rollup/rollup-freebsd-arm64@4.41.0': - optional: true - - '@rollup/rollup-freebsd-arm64@4.44.1': + '@rollup/rollup-android-arm-eabi@4.44.2': optional: true - '@rollup/rollup-freebsd-x64@4.41.0': + '@rollup/rollup-android-arm64@4.44.2': optional: true - '@rollup/rollup-freebsd-x64@4.44.1': + '@rollup/rollup-darwin-arm64@4.44.2': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.41.0': + '@rollup/rollup-darwin-x64@4.44.2': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.44.1': + '@rollup/rollup-freebsd-arm64@4.44.2': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.41.0': + '@rollup/rollup-freebsd-x64@4.44.2': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.44.1': + '@rollup/rollup-linux-arm-gnueabihf@4.44.2': optional: true - '@rollup/rollup-linux-arm64-gnu@4.41.0': + '@rollup/rollup-linux-arm-musleabihf@4.44.2': optional: true - '@rollup/rollup-linux-arm64-gnu@4.44.1': + '@rollup/rollup-linux-arm64-gnu@4.44.2': optional: true - '@rollup/rollup-linux-arm64-musl@4.41.0': + '@rollup/rollup-linux-arm64-musl@4.44.2': optional: true - '@rollup/rollup-linux-arm64-musl@4.44.1': + '@rollup/rollup-linux-loongarch64-gnu@4.44.2': optional: true - '@rollup/rollup-linux-loongarch64-gnu@4.41.0': + '@rollup/rollup-linux-powerpc64le-gnu@4.44.2': optional: true - '@rollup/rollup-linux-loongarch64-gnu@4.44.1': + '@rollup/rollup-linux-riscv64-gnu@4.44.2': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.41.0': + '@rollup/rollup-linux-riscv64-musl@4.44.2': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.44.1': + '@rollup/rollup-linux-s390x-gnu@4.44.2': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.41.0': + '@rollup/rollup-linux-x64-gnu@4.44.2': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.44.1': + '@rollup/rollup-linux-x64-musl@4.44.2': optional: true - '@rollup/rollup-linux-riscv64-musl@4.41.0': + '@rollup/rollup-win32-arm64-msvc@4.44.2': optional: true - '@rollup/rollup-linux-riscv64-musl@4.44.1': + '@rollup/rollup-win32-ia32-msvc@4.44.2': optional: true - '@rollup/rollup-linux-s390x-gnu@4.41.0': - optional: true - - '@rollup/rollup-linux-s390x-gnu@4.44.1': - optional: true - - '@rollup/rollup-linux-x64-gnu@4.41.0': - optional: true - - '@rollup/rollup-linux-x64-gnu@4.44.1': - optional: true - - '@rollup/rollup-linux-x64-musl@4.41.0': - optional: true - - '@rollup/rollup-linux-x64-musl@4.44.1': - optional: true - - '@rollup/rollup-win32-arm64-msvc@4.41.0': - optional: true - - '@rollup/rollup-win32-arm64-msvc@4.44.1': - optional: true - - '@rollup/rollup-win32-ia32-msvc@4.41.0': - optional: true - - '@rollup/rollup-win32-ia32-msvc@4.44.1': - optional: true - - '@rollup/rollup-win32-x64-msvc@4.41.0': - optional: true - - '@rollup/rollup-win32-x64-msvc@4.44.1': + '@rollup/rollup-win32-x64-msvc@4.44.2': optional: true '@sec-ant/readable-stream@0.4.1': {} @@ -15897,7 +15402,7 @@ snapshots: dependencies: '@shikijs/core': 3.7.0 '@shikijs/types': 3.7.0 - twoslash: 0.3.1(typescript@5.8.3) + twoslash: 0.3.2(typescript@5.8.3) typescript: 5.8.3 transitivePeerDependencies: - supports-color @@ -15925,8 +15430,8 @@ snapshots: mdast-util-gfm: 3.1.0 mdast-util-to-hast: 13.2.0 shiki: 3.7.0 - twoslash: 0.3.1(typescript@5.8.3) - twoslash-vue: 0.3.1(typescript@5.8.3) + twoslash: 0.3.2(typescript@5.8.3) + twoslash-vue: 0.3.2(typescript@5.8.3) vue: 3.5.17(typescript@5.8.3) transitivePeerDependencies: - '@nuxt/kit' @@ -15947,11 +15452,11 @@ snapshots: dependencies: solid-js: 1.9.7 - '@solidjs/start@1.1.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.7)(vinxi@0.5.8(@types/node@24.0.10)(better-sqlite3@12.2.0)(db0@0.3.2(better-sqlite3@12.2.0))(encoding@0.1.13)(ioredis@5.6.1)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(xml2js@0.6.2)(yaml@2.8.0))(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))': + '@solidjs/start@1.1.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.7)(vinxi@0.5.8(@types/node@22.16.3)(better-sqlite3@12.2.0)(db0@0.3.2(better-sqlite3@12.2.0))(encoding@0.1.13)(ioredis@5.6.1)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(xml2js@0.6.2)(yaml@2.8.0))(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))': dependencies: - '@tanstack/server-functions-plugin': 1.121.21(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) - '@vinxi/plugin-directives': 0.5.1(vinxi@0.5.8(@types/node@24.0.10)(better-sqlite3@12.2.0)(db0@0.3.2(better-sqlite3@12.2.0))(encoding@0.1.13)(ioredis@5.6.1)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(xml2js@0.6.2)(yaml@2.8.0)) - '@vinxi/server-components': 0.5.1(vinxi@0.5.8(@types/node@24.0.10)(better-sqlite3@12.2.0)(db0@0.3.2(better-sqlite3@12.2.0))(encoding@0.1.13)(ioredis@5.6.1)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(xml2js@0.6.2)(yaml@2.8.0)) + '@tanstack/server-functions-plugin': 1.121.21(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) + '@vinxi/plugin-directives': 0.5.1(vinxi@0.5.8(@types/node@22.16.3)(better-sqlite3@12.2.0)(db0@0.3.2(better-sqlite3@12.2.0))(encoding@0.1.13)(ioredis@5.6.1)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(xml2js@0.6.2)(yaml@2.8.0)) + '@vinxi/server-components': 0.5.1(vinxi@0.5.8(@types/node@22.16.3)(better-sqlite3@12.2.0)(db0@0.3.2(better-sqlite3@12.2.0))(encoding@0.1.13)(ioredis@5.6.1)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(xml2js@0.6.2)(yaml@2.8.0)) defu: 6.1.4 error-stack-parser: 2.1.4 html-to-image: 1.11.13 @@ -15962,8 +15467,8 @@ snapshots: source-map-js: 1.2.1 terracotta: 1.0.6(solid-js@1.9.7) tinyglobby: 0.2.14 - vinxi: 0.5.8(@types/node@24.0.10)(better-sqlite3@12.2.0)(db0@0.3.2(better-sqlite3@12.2.0))(encoding@0.1.13)(ioredis@5.6.1)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(xml2js@0.6.2)(yaml@2.8.0) - vite-plugin-solid: 2.11.7(@testing-library/jest-dom@6.6.3)(solid-js@1.9.7)(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) + vinxi: 0.5.8(@types/node@22.16.3)(better-sqlite3@12.2.0)(db0@0.3.2(better-sqlite3@12.2.0))(encoding@0.1.13)(ioredis@5.6.1)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(xml2js@0.6.2)(yaml@2.8.0) + vite-plugin-solid: 2.11.7(@testing-library/jest-dom@6.6.3)(solid-js@1.9.7)(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) transitivePeerDependencies: - '@testing-library/jest-dom' - solid-js @@ -15984,7 +15489,7 @@ snapshots: '@stylistic/eslint-plugin@5.1.0(eslint@9.30.1(jiti@2.4.2))': dependencies: '@eslint-community/eslint-utils': 4.7.0(eslint@9.30.1(jiti@2.4.2)) - '@typescript-eslint/types': 8.35.1 + '@typescript-eslint/types': 8.36.0 eslint: 9.30.1(jiti@2.4.2) eslint-visitor-keys: 4.2.1 espree: 10.4.0 @@ -15995,14 +15500,14 @@ snapshots: dependencies: acorn: 8.15.0 - '@sveltejs/adapter-auto@6.0.1(@sveltejs/kit@2.22.2(@sveltejs/vite-plugin-svelte@5.1.0(svelte@5.35.2)(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)))(svelte@5.35.2)(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)))': + '@sveltejs/adapter-auto@6.0.1(@sveltejs/kit@2.22.5(@sveltejs/vite-plugin-svelte@5.1.0(svelte@5.35.6)(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)))(svelte@5.35.6)(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)))': dependencies: - '@sveltejs/kit': 2.22.2(@sveltejs/vite-plugin-svelte@5.1.0(svelte@5.35.2)(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)))(svelte@5.35.2)(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) + '@sveltejs/kit': 2.22.5(@sveltejs/vite-plugin-svelte@5.1.0(svelte@5.35.6)(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)))(svelte@5.35.6)(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) - '@sveltejs/kit@2.22.2(@sveltejs/vite-plugin-svelte@5.1.0(svelte@5.35.2)(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)))(svelte@5.35.2)(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))': + '@sveltejs/kit@2.22.5(@sveltejs/vite-plugin-svelte@5.1.0(svelte@5.35.6)(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)))(svelte@5.35.6)(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))': dependencies: '@sveltejs/acorn-typescript': 1.0.5(acorn@8.15.0) - '@sveltejs/vite-plugin-svelte': 5.1.0(svelte@5.35.2)(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) + '@sveltejs/vite-plugin-svelte': 5.1.0(svelte@5.35.6)(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) '@types/cookie': 0.6.0 acorn: 8.15.0 cookie: 0.6.0 @@ -16014,114 +15519,91 @@ snapshots: sade: 1.8.1 set-cookie-parser: 2.7.1 sirv: 3.0.1 - svelte: 5.35.2 - vite: 6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) - vitefu: 1.0.7(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) + svelte: 5.35.6 + vite: 6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) - '@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.1.0(svelte@5.35.2)(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)))(svelte@5.35.2)(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))': + '@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.1.0(svelte@5.35.6)(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)))(svelte@5.35.6)(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))': dependencies: - '@sveltejs/vite-plugin-svelte': 5.1.0(svelte@5.35.2)(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) + '@sveltejs/vite-plugin-svelte': 5.1.0(svelte@5.35.6)(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) debug: 4.4.1 - svelte: 5.35.2 - vite: 6.3.5(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) + svelte: 5.35.6 + vite: 6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) transitivePeerDependencies: - supports-color - '@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.1.0(svelte@5.35.2)(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)))(svelte@5.35.2)(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))': + '@sveltejs/vite-plugin-svelte@5.1.0(svelte@5.35.6)(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))': dependencies: - '@sveltejs/vite-plugin-svelte': 5.1.0(svelte@5.35.2)(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) - debug: 4.4.1 - svelte: 5.35.2 - vite: 6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) - transitivePeerDependencies: - - supports-color - - '@sveltejs/vite-plugin-svelte@5.1.0(svelte@5.35.2)(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))': - dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 4.0.1(@sveltejs/vite-plugin-svelte@5.1.0(svelte@5.35.2)(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)))(svelte@5.35.2)(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) + '@sveltejs/vite-plugin-svelte-inspector': 4.0.1(@sveltejs/vite-plugin-svelte@5.1.0(svelte@5.35.6)(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)))(svelte@5.35.6)(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) debug: 4.4.1 deepmerge: 4.3.1 kleur: 4.1.5 magic-string: 0.30.17 - svelte: 5.35.2 - vite: 6.3.5(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) - vitefu: 1.0.6(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) + svelte: 5.35.6 + vite: 6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) + vitefu: 1.1.1(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) transitivePeerDependencies: - supports-color - '@sveltejs/vite-plugin-svelte@5.1.0(svelte@5.35.2)(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))': + '@swc/cli@0.7.8(@swc/core@1.12.11(@swc/helpers@0.5.17))(chokidar@4.0.3)': dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 4.0.1(@sveltejs/vite-plugin-svelte@5.1.0(svelte@5.35.2)(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)))(svelte@5.35.2)(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) - debug: 4.4.1 - deepmerge: 4.3.1 - kleur: 4.1.5 - magic-string: 0.30.17 - svelte: 5.35.2 - vite: 6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) - vitefu: 1.0.6(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) - transitivePeerDependencies: - - supports-color - - '@swc/cli@0.7.7(@swc/core@1.12.9(@swc/helpers@0.5.17))(chokidar@4.0.3)': - dependencies: - '@swc/core': 1.12.9(@swc/helpers@0.5.17) + '@swc/core': 1.12.11(@swc/helpers@0.5.17) '@swc/counter': 0.1.3 '@xhmikosr/bin-wrapper': 13.0.5 commander: 8.3.0 - fast-glob: 3.3.3 minimatch: 9.0.5 piscina: 4.9.2 semver: 7.7.2 slash: 3.0.0 source-map: 0.7.4 + tinyglobby: 0.2.14 optionalDependencies: chokidar: 4.0.3 - '@swc/core-darwin-arm64@1.12.9': + '@swc/core-darwin-arm64@1.12.11': optional: true - '@swc/core-darwin-x64@1.12.9': + '@swc/core-darwin-x64@1.12.11': optional: true - '@swc/core-linux-arm-gnueabihf@1.12.9': + '@swc/core-linux-arm-gnueabihf@1.12.11': optional: true - '@swc/core-linux-arm64-gnu@1.12.9': + '@swc/core-linux-arm64-gnu@1.12.11': optional: true - '@swc/core-linux-arm64-musl@1.12.9': + '@swc/core-linux-arm64-musl@1.12.11': optional: true - '@swc/core-linux-x64-gnu@1.12.9': + '@swc/core-linux-x64-gnu@1.12.11': optional: true - '@swc/core-linux-x64-musl@1.12.9': + '@swc/core-linux-x64-musl@1.12.11': optional: true - '@swc/core-win32-arm64-msvc@1.12.9': + '@swc/core-win32-arm64-msvc@1.12.11': optional: true - '@swc/core-win32-ia32-msvc@1.12.9': + '@swc/core-win32-ia32-msvc@1.12.11': optional: true - '@swc/core-win32-x64-msvc@1.12.9': + '@swc/core-win32-x64-msvc@1.12.11': optional: true - '@swc/core@1.12.9(@swc/helpers@0.5.17)': + '@swc/core@1.12.11(@swc/helpers@0.5.17)': dependencies: '@swc/counter': 0.1.3 '@swc/types': 0.1.23 optionalDependencies: - '@swc/core-darwin-arm64': 1.12.9 - '@swc/core-darwin-x64': 1.12.9 - '@swc/core-linux-arm-gnueabihf': 1.12.9 - '@swc/core-linux-arm64-gnu': 1.12.9 - '@swc/core-linux-arm64-musl': 1.12.9 - '@swc/core-linux-x64-gnu': 1.12.9 - '@swc/core-linux-x64-musl': 1.12.9 - '@swc/core-win32-arm64-msvc': 1.12.9 - '@swc/core-win32-ia32-msvc': 1.12.9 - '@swc/core-win32-x64-msvc': 1.12.9 + '@swc/core-darwin-arm64': 1.12.11 + '@swc/core-darwin-x64': 1.12.11 + '@swc/core-linux-arm-gnueabihf': 1.12.11 + '@swc/core-linux-arm64-gnu': 1.12.11 + '@swc/core-linux-arm64-musl': 1.12.11 + '@swc/core-linux-x64-gnu': 1.12.11 + '@swc/core-linux-x64-musl': 1.12.11 + '@swc/core-win32-arm64-msvc': 1.12.11 + '@swc/core-win32-ia32-msvc': 1.12.11 + '@swc/core-win32-x64-msvc': 1.12.11 '@swc/helpers': 0.5.17 '@swc/counter@0.1.3': {} @@ -16146,14 +15628,14 @@ snapshots: dependencies: defer-to-connect: 2.0.1 - '@tanstack/angular-query-experimental@5.81.5(@angular/common@19.2.14(@angular/core@20.0.6(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.0.6(rxjs@7.8.2)(zone.js@0.15.1))': + '@tanstack/angular-query-experimental@5.82.0(@angular/common@20.1.0(@angular/core@20.1.0(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@20.1.0(rxjs@7.8.2))': dependencies: - '@angular/common': 19.2.14(@angular/core@20.0.6(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 20.0.6(rxjs@7.8.2)(zone.js@0.15.1) - '@tanstack/query-core': 5.81.5 + '@angular/common': 20.1.0(@angular/core@20.1.0(rxjs@7.8.2))(rxjs@7.8.2) + '@angular/core': 20.1.0(rxjs@7.8.2) + '@tanstack/query-core': 5.82.0 '@tanstack/query-devtools': 5.81.2 - '@tanstack/directive-functions-plugin@1.121.21(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))': + '@tanstack/directive-functions-plugin@1.121.21(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))': dependencies: '@babel/code-frame': 7.26.2 '@babel/core': 7.28.0 @@ -16162,11 +15644,11 @@ snapshots: '@tanstack/router-utils': 1.121.21 babel-dead-code-elimination: 1.0.10 tiny-invariant: 1.3.3 - vite: 6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) + vite: 6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) transitivePeerDependencies: - supports-color - '@tanstack/directive-functions-plugin@1.124.1(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))': + '@tanstack/directive-functions-plugin@1.124.1(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))': dependencies: '@babel/code-frame': 7.27.1 '@babel/core': 7.28.0 @@ -16175,7 +15657,7 @@ snapshots: '@tanstack/router-utils': 1.121.21 babel-dead-code-elimination: 1.0.10 tiny-invariant: 1.3.3 - vite: 6.3.5(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) + vite: 6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) transitivePeerDependencies: - supports-color @@ -16185,25 +15667,25 @@ snapshots: dependencies: remove-accents: 0.5.0 - '@tanstack/query-core@5.81.5': {} + '@tanstack/query-core@5.82.0': {} '@tanstack/query-devtools@5.81.2': {} - '@tanstack/react-query-devtools@5.81.5(@tanstack/react-query@5.81.5(react@19.1.0))(react@19.1.0)': + '@tanstack/react-query-devtools@5.82.0(@tanstack/react-query@5.82.0(react@19.1.0))(react@19.1.0)': dependencies: '@tanstack/query-devtools': 5.81.2 - '@tanstack/react-query': 5.81.5(react@19.1.0) + '@tanstack/react-query': 5.82.0(react@19.1.0) react: 19.1.0 - '@tanstack/react-query@5.81.5(react@19.1.0)': + '@tanstack/react-query@5.82.0(react@19.1.0)': dependencies: - '@tanstack/query-core': 5.81.5 + '@tanstack/query-core': 5.82.0 react: 19.1.0 - '@tanstack/react-router-devtools@1.124.0(@tanstack/react-router@1.124.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@tanstack/router-core@1.124.0)(csstype@3.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(solid-js@1.9.7)(tiny-invariant@1.3.3)': + '@tanstack/react-router-devtools@1.127.0(@tanstack/react-router@1.127.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@tanstack/router-core@1.127.0)(csstype@3.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(solid-js@1.9.7)(tiny-invariant@1.3.3)': dependencies: - '@tanstack/react-router': 1.124.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@tanstack/router-devtools-core': 1.124.0(@tanstack/router-core@1.124.0)(csstype@3.1.3)(solid-js@1.9.7)(tiny-invariant@1.3.3) + '@tanstack/react-router': 1.127.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@tanstack/router-devtools-core': 1.127.0(@tanstack/router-core@1.127.0)(csstype@3.1.3)(solid-js@1.9.7)(tiny-invariant@1.3.3) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) transitivePeerDependencies: @@ -16212,19 +15694,19 @@ snapshots: - solid-js - tiny-invariant - '@tanstack/react-router-with-query@1.124.0(@tanstack/react-query@5.81.5(react@19.1.0))(@tanstack/react-router@1.124.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@tanstack/router-core@1.124.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@tanstack/react-router-with-query@1.127.0(@tanstack/react-query@5.82.0(react@19.1.0))(@tanstack/react-router@1.127.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@tanstack/router-core@1.127.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@tanstack/react-query': 5.81.5(react@19.1.0) - '@tanstack/react-router': 1.124.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@tanstack/router-core': 1.124.0 + '@tanstack/react-query': 5.82.0(react@19.1.0) + '@tanstack/react-router': 1.127.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@tanstack/router-core': 1.127.0 react: 19.1.0 react-dom: 19.1.0(react@19.1.0) - '@tanstack/react-router@1.124.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@tanstack/react-router@1.127.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@tanstack/history': 1.121.34 - '@tanstack/react-store': 0.7.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@tanstack/router-core': 1.124.0 + '@tanstack/react-store': 0.7.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@tanstack/router-core': 1.127.0 isbot: 5.1.28 jsesc: 3.1.0 react: 19.1.0 @@ -16232,11 +15714,11 @@ snapshots: tiny-invariant: 1.3.3 tiny-warning: 1.0.3 - '@tanstack/react-start-client@1.124.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@tanstack/react-start-client@1.127.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@tanstack/react-router': 1.124.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@tanstack/router-core': 1.124.0 - '@tanstack/start-client-core': 1.124.0 + '@tanstack/react-router': 1.127.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@tanstack/router-core': 1.127.0 + '@tanstack/start-client-core': 1.127.0 cookie-es: 1.2.2 jsesc: 3.1.0 react: 19.1.0 @@ -16244,12 +15726,12 @@ snapshots: tiny-invariant: 1.3.3 tiny-warning: 1.0.3 - '@tanstack/react-start-plugin@1.124.1(@tanstack/react-router@1.124.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@vitejs/plugin-react@4.6.0(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)))(better-sqlite3@12.2.0)(vite-plugin-solid@2.11.7(@testing-library/jest-dom@6.6.3)(solid-js@1.9.7)(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)))(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))(webpack@5.99.6)(xml2js@0.6.2)': + '@tanstack/react-start-plugin@1.127.0(@tanstack/react-router@1.127.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@vitejs/plugin-react@4.6.0(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)))(better-sqlite3@12.2.0)(vite-plugin-solid@2.11.7(@testing-library/jest-dom@6.6.3)(solid-js@1.9.7)(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)))(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))(webpack@5.99.6)(xml2js@0.6.2)': dependencies: - '@tanstack/start-plugin-core': 1.124.1(@tanstack/react-router@1.124.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(better-sqlite3@12.2.0)(vite-plugin-solid@2.11.7(@testing-library/jest-dom@6.6.3)(solid-js@1.9.7)(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)))(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))(webpack@5.99.6)(xml2js@0.6.2) - '@vitejs/plugin-react': 4.6.0(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) - vite: 6.3.5(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) - zod: 3.25.74 + '@tanstack/start-plugin-core': 1.127.0(@tanstack/react-router@1.127.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(better-sqlite3@12.2.0)(vite-plugin-solid@2.11.7(@testing-library/jest-dom@6.6.3)(solid-js@1.9.7)(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)))(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))(webpack@5.99.6)(xml2js@0.6.2) + '@vitejs/plugin-react': 4.6.0(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) + vite: 6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) + zod: 3.25.76 transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -16282,29 +15764,29 @@ snapshots: - webpack - xml2js - '@tanstack/react-start-server@1.124.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@tanstack/react-start-server@1.127.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@tanstack/history': 1.121.34 - '@tanstack/react-router': 1.124.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@tanstack/router-core': 1.124.0 - '@tanstack/start-client-core': 1.124.0 - '@tanstack/start-server-core': 1.124.0 + '@tanstack/react-router': 1.127.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@tanstack/router-core': 1.127.0 + '@tanstack/start-client-core': 1.127.0 + '@tanstack/start-server-core': 1.127.0 h3: 1.13.0 isbot: 5.1.28 react: 19.1.0 react-dom: 19.1.0(react@19.1.0) - '@tanstack/react-start@1.124.1(@tanstack/react-router@1.124.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@vitejs/plugin-react@4.6.0(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)))(better-sqlite3@12.2.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(vite-plugin-solid@2.11.7(@testing-library/jest-dom@6.6.3)(solid-js@1.9.7)(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)))(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))(webpack@5.99.6)(xml2js@0.6.2)': + '@tanstack/react-start@1.127.0(@tanstack/react-router@1.127.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@vitejs/plugin-react@4.6.0(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)))(better-sqlite3@12.2.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(vite-plugin-solid@2.11.7(@testing-library/jest-dom@6.6.3)(solid-js@1.9.7)(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)))(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))(webpack@5.99.6)(xml2js@0.6.2)': dependencies: - '@tanstack/react-start-client': 1.124.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@tanstack/react-start-plugin': 1.124.1(@tanstack/react-router@1.124.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@vitejs/plugin-react@4.6.0(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)))(better-sqlite3@12.2.0)(vite-plugin-solid@2.11.7(@testing-library/jest-dom@6.6.3)(solid-js@1.9.7)(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)))(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))(webpack@5.99.6)(xml2js@0.6.2) - '@tanstack/react-start-server': 1.124.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@tanstack/start-server-functions-client': 1.124.1(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) - '@tanstack/start-server-functions-server': 1.124.1(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) - '@vitejs/plugin-react': 4.6.0(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) + '@tanstack/react-start-client': 1.127.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@tanstack/react-start-plugin': 1.127.0(@tanstack/react-router@1.127.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@vitejs/plugin-react@4.6.0(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)))(better-sqlite3@12.2.0)(vite-plugin-solid@2.11.7(@testing-library/jest-dom@6.6.3)(solid-js@1.9.7)(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)))(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))(webpack@5.99.6)(xml2js@0.6.2) + '@tanstack/react-start-server': 1.127.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@tanstack/start-server-functions-client': 1.127.0(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) + '@tanstack/start-server-functions-server': 1.124.1(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) + '@vitejs/plugin-react': 4.6.0(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) - vite: 6.3.5(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) + vite: 6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -16337,25 +15819,27 @@ snapshots: - webpack - xml2js - '@tanstack/react-store@0.7.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@tanstack/react-store@0.7.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@tanstack/store': 0.7.1 + '@tanstack/store': 0.7.2 react: 19.1.0 react-dom: 19.1.0(react@19.1.0) use-sync-external-store: 1.5.0(react@19.1.0) - '@tanstack/router-core@1.124.0': + '@tanstack/router-core@1.127.0': dependencies: '@tanstack/history': 1.121.34 - '@tanstack/store': 0.7.1 + '@tanstack/store': 0.7.2 cookie-es: 1.2.2 jsesc: 3.1.0 + seroval: 1.3.2 + seroval-plugins: 1.3.2(seroval@1.3.2) tiny-invariant: 1.3.3 tiny-warning: 1.0.3 - '@tanstack/router-devtools-core@1.124.0(@tanstack/router-core@1.124.0)(csstype@3.1.3)(solid-js@1.9.7)(tiny-invariant@1.3.3)': + '@tanstack/router-devtools-core@1.127.0(@tanstack/router-core@1.127.0)(csstype@3.1.3)(solid-js@1.9.7)(tiny-invariant@1.3.3)': dependencies: - '@tanstack/router-core': 1.124.0 + '@tanstack/router-core': 1.127.0 clsx: 2.1.1 goober: 2.1.16(csstype@3.1.3) solid-js: 1.9.7 @@ -16363,20 +15847,20 @@ snapshots: optionalDependencies: csstype: 3.1.3 - '@tanstack/router-generator@1.124.0': + '@tanstack/router-generator@1.127.0': dependencies: - '@tanstack/router-core': 1.124.0 + '@tanstack/router-core': 1.127.0 '@tanstack/router-utils': 1.121.21 '@tanstack/virtual-file-routes': 1.121.21 prettier: 3.6.2 recast: 0.23.11 source-map: 0.7.4 tsx: 4.20.3 - zod: 3.25.74 + zod: 3.25.76 transitivePeerDependencies: - supports-color - '@tanstack/router-plugin@1.124.0(@tanstack/react-router@1.124.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(vite-plugin-solid@2.11.7(@testing-library/jest-dom@6.6.3)(solid-js@1.9.7)(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)))(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))(webpack@5.99.6)': + '@tanstack/router-plugin@1.127.0(@tanstack/react-router@1.127.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(vite-plugin-solid@2.11.7(@testing-library/jest-dom@6.6.3)(solid-js@1.9.7)(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)))(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))(webpack@5.99.6)': dependencies: '@babel/core': 7.28.0 '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.0) @@ -16384,18 +15868,18 @@ snapshots: '@babel/template': 7.27.2 '@babel/traverse': 7.28.0 '@babel/types': 7.28.0 - '@tanstack/router-core': 1.124.0 - '@tanstack/router-generator': 1.124.0 + '@tanstack/router-core': 1.127.0 + '@tanstack/router-generator': 1.127.0 '@tanstack/router-utils': 1.121.21 '@tanstack/virtual-file-routes': 1.121.21 babel-dead-code-elimination: 1.0.10 chokidar: 3.6.0 unplugin: 2.3.5 - zod: 3.25.74 + zod: 3.25.76 optionalDependencies: - '@tanstack/react-router': 1.124.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - vite: 6.3.5(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) - vite-plugin-solid: 2.11.7(@testing-library/jest-dom@6.6.3)(solid-js@1.9.7)(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) + '@tanstack/react-router': 1.127.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + vite: 6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) + vite-plugin-solid: 2.11.7(@testing-library/jest-dom@6.6.3)(solid-js@1.9.7)(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) webpack: 5.99.6 transitivePeerDependencies: - supports-color @@ -16411,7 +15895,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@tanstack/server-functions-plugin@1.121.21(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))': + '@tanstack/server-functions-plugin@1.121.21(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))': dependencies: '@babel/code-frame': 7.26.2 '@babel/core': 7.28.0 @@ -16420,14 +15904,14 @@ snapshots: '@babel/template': 7.27.2 '@babel/traverse': 7.28.0 '@babel/types': 7.28.0 - '@tanstack/directive-functions-plugin': 1.121.21(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) + '@tanstack/directive-functions-plugin': 1.121.21(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) babel-dead-code-elimination: 1.0.10 tiny-invariant: 1.3.3 transitivePeerDependencies: - supports-color - vite - '@tanstack/server-functions-plugin@1.124.1(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))': + '@tanstack/server-functions-plugin@1.124.1(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))': dependencies: '@babel/code-frame': 7.27.1 '@babel/core': 7.28.0 @@ -16436,36 +15920,36 @@ snapshots: '@babel/template': 7.27.2 '@babel/traverse': 7.28.0 '@babel/types': 7.28.0 - '@tanstack/directive-functions-plugin': 1.124.1(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) + '@tanstack/directive-functions-plugin': 1.124.1(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) babel-dead-code-elimination: 1.0.10 tiny-invariant: 1.3.3 transitivePeerDependencies: - supports-color - vite - '@tanstack/solid-query@5.81.5(solid-js@1.9.7)': + '@tanstack/solid-query@5.82.0(solid-js@1.9.7)': dependencies: - '@tanstack/query-core': 5.81.5 + '@tanstack/query-core': 5.82.0 solid-js: 1.9.7 - '@tanstack/start-client-core@1.124.0': + '@tanstack/start-client-core@1.127.0': dependencies: - '@tanstack/router-core': 1.124.0 + '@tanstack/router-core': 1.127.0 cookie-es: 1.2.2 tiny-invariant: 1.3.3 tiny-warning: 1.0.3 - '@tanstack/start-plugin-core@1.124.1(@tanstack/react-router@1.124.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(better-sqlite3@12.2.0)(vite-plugin-solid@2.11.7(@testing-library/jest-dom@6.6.3)(solid-js@1.9.7)(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)))(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))(webpack@5.99.6)(xml2js@0.6.2)': + '@tanstack/start-plugin-core@1.127.0(@tanstack/react-router@1.127.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(better-sqlite3@12.2.0)(vite-plugin-solid@2.11.7(@testing-library/jest-dom@6.6.3)(solid-js@1.9.7)(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)))(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))(webpack@5.99.6)(xml2js@0.6.2)': dependencies: '@babel/code-frame': 7.26.2 '@babel/core': 7.28.0 '@babel/types': 7.28.0 - '@tanstack/router-core': 1.124.0 - '@tanstack/router-generator': 1.124.0 - '@tanstack/router-plugin': 1.124.0(@tanstack/react-router@1.124.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(vite-plugin-solid@2.11.7(@testing-library/jest-dom@6.6.3)(solid-js@1.9.7)(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)))(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))(webpack@5.99.6) + '@tanstack/router-core': 1.127.0 + '@tanstack/router-generator': 1.127.0 + '@tanstack/router-plugin': 1.127.0(@tanstack/react-router@1.127.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(vite-plugin-solid@2.11.7(@testing-library/jest-dom@6.6.3)(solid-js@1.9.7)(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)))(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))(webpack@5.99.6) '@tanstack/router-utils': 1.121.21 - '@tanstack/server-functions-plugin': 1.124.1(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) - '@tanstack/start-server-core': 1.124.0 + '@tanstack/server-functions-plugin': 1.124.1(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) + '@tanstack/start-server-core': 1.127.0 '@types/babel__code-frame': 7.0.6 '@types/babel__core': 7.20.5 babel-dead-code-elimination: 1.0.10 @@ -16474,9 +15958,9 @@ snapshots: nitropack: 2.11.13(better-sqlite3@12.2.0)(encoding@0.1.13)(xml2js@0.6.2) pathe: 2.0.3 ufo: 1.6.1 - vite: 6.3.5(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) + vite: 6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) xmlbuilder2: 3.1.1 - zod: 3.25.74 + zod: 3.25.76 transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -16509,11 +15993,11 @@ snapshots: - webpack - xml2js - '@tanstack/start-server-core@1.124.0': + '@tanstack/start-server-core@1.127.0': dependencies: '@tanstack/history': 1.121.34 - '@tanstack/router-core': 1.124.0 - '@tanstack/start-client-core': 1.124.0 + '@tanstack/router-core': 1.127.0 + '@tanstack/start-client-core': 1.127.0 h3: 1.13.0 isbot: 5.1.28 jsesc: 3.1.0 @@ -16521,40 +16005,40 @@ snapshots: tiny-warning: 1.0.3 unctx: 2.4.1 - '@tanstack/start-server-functions-client@1.124.1(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))': + '@tanstack/start-server-functions-client@1.127.0(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))': dependencies: - '@tanstack/server-functions-plugin': 1.124.1(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) - '@tanstack/start-server-functions-fetcher': 1.124.0 + '@tanstack/server-functions-plugin': 1.124.1(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) + '@tanstack/start-server-functions-fetcher': 1.127.0 transitivePeerDependencies: - supports-color - vite - '@tanstack/start-server-functions-fetcher@1.124.0': + '@tanstack/start-server-functions-fetcher@1.127.0': dependencies: - '@tanstack/router-core': 1.124.0 - '@tanstack/start-client-core': 1.124.0 + '@tanstack/router-core': 1.127.0 + '@tanstack/start-client-core': 1.127.0 - '@tanstack/start-server-functions-server@1.124.1(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))': + '@tanstack/start-server-functions-server@1.124.1(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))': dependencies: - '@tanstack/server-functions-plugin': 1.124.1(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) + '@tanstack/server-functions-plugin': 1.124.1(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) tiny-invariant: 1.3.3 transitivePeerDependencies: - supports-color - vite - '@tanstack/store@0.7.1': {} + '@tanstack/store@0.7.2': {} - '@tanstack/svelte-query@5.81.5(svelte@5.35.2)': + '@tanstack/svelte-query@5.82.0(svelte@5.35.6)': dependencies: - '@tanstack/query-core': 5.81.5 - svelte: 5.35.2 + '@tanstack/query-core': 5.82.0 + svelte: 5.35.6 '@tanstack/virtual-file-routes@1.121.21': {} - '@tanstack/vue-query@5.81.5(vue@3.5.17(typescript@5.8.3))': + '@tanstack/vue-query@5.82.0(vue@3.5.17(typescript@5.8.3))': dependencies: '@tanstack/match-sorter-utils': 8.19.4 - '@tanstack/query-core': 5.81.5 + '@tanstack/query-core': 5.82.0 '@vue/devtools-api': 6.6.4 vue: 3.5.17(typescript@5.8.3) vue-demi: 0.14.10(vue@3.5.17(typescript@5.8.3)) @@ -16562,7 +16046,7 @@ snapshots: '@testing-library/dom@10.4.0': dependencies: '@babel/code-frame': 7.27.1 - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.27.6 '@types/aria-query': 5.0.4 aria-query: 5.3.0 chalk: 4.1.2 @@ -16572,7 +16056,7 @@ snapshots: '@testing-library/jest-dom@6.6.3': dependencies: - '@adobe/css-tools': 4.4.2 + '@adobe/css-tools': 4.4.3 aria-query: 5.3.2 chalk: 3.0.0 css.escape: 1.5.1 @@ -16582,7 +16066,7 @@ snapshots: '@testing-library/react@16.3.0(@testing-library/dom@10.4.0)(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.27.6 '@testing-library/dom': 10.4.0 react: 19.1.0 react-dom: 19.1.0(react@19.1.0) @@ -16590,13 +16074,13 @@ snapshots: '@types/react': 19.1.8 '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@testing-library/svelte@5.2.8(svelte@5.35.2)(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))(vitest@3.2.4)': + '@testing-library/svelte@5.2.8(svelte@5.35.6)(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))(vitest@3.2.4)': dependencies: '@testing-library/dom': 10.4.0 - svelte: 5.35.2 + svelte: 5.35.6 optionalDependencies: - vite: 6.3.5(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) - vitest: 3.2.4(@types/debug@4.1.12)(@types/node@22.15.30)(@vitest/ui@3.2.4)(jiti@2.4.2)(jsdom@26.1.0)(msw@2.10.3(@types/node@22.15.30)(typescript@5.8.3))(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) + vite: 6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) + vitest: 3.2.4(@types/debug@4.1.12)(@types/node@22.16.3)(@vitest/ui@3.2.4)(jiti@2.4.2)(jsdom@26.1.0)(msw@2.10.3(@types/node@22.16.3)(typescript@5.8.3))(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) '@testing-library/user-event@14.6.1(@testing-library/dom@10.4.0)': dependencies: @@ -16606,7 +16090,7 @@ snapshots: dependencies: debug: 4.4.1 fflate: 0.8.2 - token-types: 6.0.0 + token-types: 6.0.3 transitivePeerDependencies: - supports-color @@ -16620,10 +16104,10 @@ snapshots: '@trysound/sax@0.2.0': {} - '@ts-rest/core@3.52.1(@types/node@24.0.10)(zod@3.25.74)': + '@ts-rest/core@3.52.1(@types/node@22.16.3)(zod@3.25.76)': optionalDependencies: - '@types/node': 24.0.10 - zod: 3.25.74 + '@types/node': 22.16.3 + zod: 3.25.76 '@tsconfig/node10@1.0.11': {} @@ -16633,7 +16117,7 @@ snapshots: '@tsconfig/node16@1.0.4': {} - '@tybys/wasm-util@0.9.0': + '@tybys/wasm-util@0.10.0': dependencies: tslib: 2.8.1 optional: true @@ -16646,8 +16130,8 @@ snapshots: '@types/babel__core@7.20.5': dependencies: - '@babel/parser': 7.27.5 - '@babel/types': 7.27.6 + '@babel/parser': 7.28.0 + '@babel/types': 7.28.0 '@types/babel__generator': 7.27.0 '@types/babel__template': 7.4.4 '@types/babel__traverse': 7.20.7 @@ -16667,12 +16151,12 @@ snapshots: '@types/better-sqlite3@7.6.13': dependencies: - '@types/node': 22.15.30 + '@types/node': 22.16.3 '@types/body-parser@1.19.6': dependencies: '@types/connect': 3.4.38 - '@types/node': 22.15.30 + '@types/node': 22.16.3 '@types/braces@3.0.5': {} @@ -16680,7 +16164,7 @@ snapshots: dependencies: '@types/http-cache-semantics': 4.0.4 '@types/keyv': 3.1.4 - '@types/node': 22.15.30 + '@types/node': 22.16.3 '@types/responselike': 1.0.3 '@types/chai@5.2.2': @@ -16689,7 +16173,7 @@ snapshots: '@types/connect@3.4.38': dependencies: - '@types/node': 22.15.30 + '@types/node': 22.16.3 '@types/cookie@0.6.0': {} @@ -16828,13 +16312,11 @@ snapshots: '@types/estree': 1.0.8 '@types/json-schema': 7.0.15 - '@types/estree@1.0.7': {} - '@types/estree@1.0.8': {} - '@types/express-serve-static-core@5.0.6': + '@types/express-serve-static-core@5.0.7': dependencies: - '@types/node': 22.15.30 + '@types/node': 22.16.3 '@types/qs': 6.14.0 '@types/range-parser': 1.2.7 '@types/send': 0.17.5 @@ -16842,7 +16324,7 @@ snapshots: '@types/express@5.0.3': dependencies: '@types/body-parser': 1.19.6 - '@types/express-serve-static-core': 5.0.6 + '@types/express-serve-static-core': 5.0.7 '@types/serve-static': 1.15.8 '@types/filesystem@0.0.36': @@ -16853,11 +16335,11 @@ snapshots: '@types/fontkit@2.0.8': dependencies: - '@types/node': 22.15.30 + '@types/node': 22.16.3 '@types/fs-extra@9.0.13': dependencies: - '@types/node': 22.15.30 + '@types/node': 22.16.3 '@types/geojson@7946.0.16': {} @@ -16875,7 +16357,7 @@ snapshots: '@types/keyv@3.1.4': dependencies: - '@types/node': 22.15.30 + '@types/node': 22.16.3 '@types/linkify-it@5.0.0': {} @@ -16906,15 +16388,10 @@ snapshots: dependencies: '@types/unist': 3.0.3 - '@types/node@22.15.30': + '@types/node@22.16.3': dependencies: undici-types: 6.21.0 - '@types/node@24.0.10': - dependencies: - undici-types: 7.8.0 - optional: true - '@types/normalize-package-data@2.4.4': {} '@types/parse-path@7.1.0': @@ -16923,7 +16400,7 @@ snapshots: '@types/plist@3.0.5': dependencies: - '@types/node': 22.15.30 + '@types/node': 22.16.3 xmlbuilder: 15.1.1 optional: true @@ -16943,17 +16420,17 @@ snapshots: '@types/responselike@1.0.3': dependencies: - '@types/node': 22.15.30 + '@types/node': 22.16.3 '@types/send@0.17.5': dependencies: '@types/mime': 1.3.5 - '@types/node': 22.15.30 + '@types/node': 22.16.3 '@types/serve-static@1.15.8': dependencies: '@types/http-errors': 2.0.5 - '@types/node': 22.15.30 + '@types/node': 22.16.3 '@types/send': 0.17.5 '@types/statuses@2.0.6': {} @@ -16962,8 +16439,8 @@ snapshots: dependencies: '@types/cookiejar': 2.1.5 '@types/methods': 1.1.4 - '@types/node': 22.15.30 - form-data: 4.0.2 + '@types/node': 22.16.3 + form-data: 4.0.3 '@types/supertest@6.0.3': dependencies: @@ -16988,21 +16465,21 @@ snapshots: '@types/ws@8.18.1': dependencies: - '@types/node': 22.15.30 + '@types/node': 22.16.3 '@types/yauzl@2.10.3': dependencies: - '@types/node': 22.15.30 + '@types/node': 22.16.3 optional: true - '@typescript-eslint/eslint-plugin@8.35.1(@typescript-eslint/parser@8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3))(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3)': + '@typescript-eslint/eslint-plugin@8.36.0(@typescript-eslint/parser@8.36.0(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3))(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/scope-manager': 8.35.1 - '@typescript-eslint/type-utils': 8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/utils': 8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.35.1 + '@typescript-eslint/parser': 8.36.0(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/scope-manager': 8.36.0 + '@typescript-eslint/type-utils': 8.36.0(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/utils': 8.36.0(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.36.0 eslint: 9.30.1(jiti@2.4.2) graphemer: 1.4.0 ignore: 7.0.5 @@ -17012,40 +16489,40 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3)': + '@typescript-eslint/parser@8.36.0(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3)': dependencies: - '@typescript-eslint/scope-manager': 8.35.1 - '@typescript-eslint/types': 8.35.1 - '@typescript-eslint/typescript-estree': 8.35.1(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.35.1 + '@typescript-eslint/scope-manager': 8.36.0 + '@typescript-eslint/types': 8.36.0 + '@typescript-eslint/typescript-estree': 8.36.0(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.36.0 debug: 4.4.1 eslint: 9.30.1(jiti@2.4.2) typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.35.1(typescript@5.8.3)': + '@typescript-eslint/project-service@8.36.0(typescript@5.8.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.35.1(typescript@5.8.3) - '@typescript-eslint/types': 8.35.1 + '@typescript-eslint/tsconfig-utils': 8.36.0(typescript@5.8.3) + '@typescript-eslint/types': 8.36.0 debug: 4.4.1 typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.35.1': + '@typescript-eslint/scope-manager@8.36.0': dependencies: - '@typescript-eslint/types': 8.35.1 - '@typescript-eslint/visitor-keys': 8.35.1 + '@typescript-eslint/types': 8.36.0 + '@typescript-eslint/visitor-keys': 8.36.0 - '@typescript-eslint/tsconfig-utils@8.35.1(typescript@5.8.3)': + '@typescript-eslint/tsconfig-utils@8.36.0(typescript@5.8.3)': dependencies: typescript: 5.8.3 - '@typescript-eslint/type-utils@8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3)': + '@typescript-eslint/type-utils@8.36.0(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3)': dependencies: - '@typescript-eslint/typescript-estree': 8.35.1(typescript@5.8.3) - '@typescript-eslint/utils': 8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/typescript-estree': 8.36.0(typescript@5.8.3) + '@typescript-eslint/utils': 8.36.0(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3) debug: 4.4.1 eslint: 9.30.1(jiti@2.4.2) ts-api-utils: 2.1.0(typescript@5.8.3) @@ -17053,14 +16530,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.35.1': {} + '@typescript-eslint/types@8.36.0': {} - '@typescript-eslint/typescript-estree@8.35.1(typescript@5.8.3)': + '@typescript-eslint/typescript-estree@8.36.0(typescript@5.8.3)': dependencies: - '@typescript-eslint/project-service': 8.35.1(typescript@5.8.3) - '@typescript-eslint/tsconfig-utils': 8.35.1(typescript@5.8.3) - '@typescript-eslint/types': 8.35.1 - '@typescript-eslint/visitor-keys': 8.35.1 + '@typescript-eslint/project-service': 8.36.0(typescript@5.8.3) + '@typescript-eslint/tsconfig-utils': 8.36.0(typescript@5.8.3) + '@typescript-eslint/types': 8.36.0 + '@typescript-eslint/visitor-keys': 8.36.0 debug: 4.4.1 fast-glob: 3.3.3 is-glob: 4.0.3 @@ -17071,20 +16548,20 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3)': + '@typescript-eslint/utils@8.36.0(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3)': dependencies: '@eslint-community/eslint-utils': 4.7.0(eslint@9.30.1(jiti@2.4.2)) - '@typescript-eslint/scope-manager': 8.35.1 - '@typescript-eslint/types': 8.35.1 - '@typescript-eslint/typescript-estree': 8.35.1(typescript@5.8.3) + '@typescript-eslint/scope-manager': 8.36.0 + '@typescript-eslint/types': 8.36.0 + '@typescript-eslint/typescript-estree': 8.36.0(typescript@5.8.3) eslint: 9.30.1(jiti@2.4.2) typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.35.1': + '@typescript-eslint/visitor-keys@8.36.0': dependencies: - '@typescript-eslint/types': 8.35.1 + '@typescript-eslint/types': 8.36.0 eslint-visitor-keys: 4.2.1 '@typescript/twoslash@3.1.0': @@ -17116,20 +16593,20 @@ snapshots: '@ungap/structured-clone@1.3.0': {} - '@unhead/vue@2.0.11(vue@3.5.17(typescript@5.8.3))': + '@unhead/vue@2.0.12(vue@3.5.17(typescript@5.8.3))': dependencies: hookable: 5.5.3 - unhead: 2.0.11 + unhead: 2.0.12 vue: 3.5.17(typescript@5.8.3) '@valibot/to-json-schema@1.3.0(valibot@1.1.0(typescript@5.8.3))': dependencies: valibot: 1.1.0(typescript@5.8.3) - '@vercel/nft@0.29.4(encoding@0.1.13)(rollup@4.44.1)': + '@vercel/nft@0.29.4(encoding@0.1.13)(rollup@4.44.2)': dependencies: '@mapbox/node-pre-gyp': 2.0.0(encoding@0.1.13) - '@rollup/pluginutils': 5.2.0(rollup@4.44.1) + '@rollup/pluginutils': 5.2.0(rollup@4.44.2) acorn: 8.15.0 acorn-import-attributes: 1.9.5(acorn@8.15.0) async-sema: 3.1.1 @@ -17165,7 +16642,7 @@ snapshots: untun: 0.1.3 uqr: 0.1.2 - '@vinxi/plugin-directives@0.5.1(vinxi@0.5.8(@types/node@24.0.10)(better-sqlite3@12.2.0)(db0@0.3.2(better-sqlite3@12.2.0))(encoding@0.1.13)(ioredis@5.6.1)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(xml2js@0.6.2)(yaml@2.8.0))': + '@vinxi/plugin-directives@0.5.1(vinxi@0.5.8(@types/node@22.16.3)(better-sqlite3@12.2.0)(db0@0.3.2(better-sqlite3@12.2.0))(encoding@0.1.13)(ioredis@5.6.1)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(xml2js@0.6.2)(yaml@2.8.0))': dependencies: '@babel/parser': 7.28.0 acorn: 8.15.0 @@ -17176,74 +16653,50 @@ snapshots: magicast: 0.2.11 recast: 0.23.11 tslib: 2.8.1 - vinxi: 0.5.8(@types/node@24.0.10)(better-sqlite3@12.2.0)(db0@0.3.2(better-sqlite3@12.2.0))(encoding@0.1.13)(ioredis@5.6.1)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(xml2js@0.6.2)(yaml@2.8.0) + vinxi: 0.5.8(@types/node@22.16.3)(better-sqlite3@12.2.0)(db0@0.3.2(better-sqlite3@12.2.0))(encoding@0.1.13)(ioredis@5.6.1)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(xml2js@0.6.2)(yaml@2.8.0) - '@vinxi/server-components@0.5.1(vinxi@0.5.8(@types/node@24.0.10)(better-sqlite3@12.2.0)(db0@0.3.2(better-sqlite3@12.2.0))(encoding@0.1.13)(ioredis@5.6.1)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(xml2js@0.6.2)(yaml@2.8.0))': + '@vinxi/server-components@0.5.1(vinxi@0.5.8(@types/node@22.16.3)(better-sqlite3@12.2.0)(db0@0.3.2(better-sqlite3@12.2.0))(encoding@0.1.13)(ioredis@5.6.1)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(xml2js@0.6.2)(yaml@2.8.0))': dependencies: - '@vinxi/plugin-directives': 0.5.1(vinxi@0.5.8(@types/node@24.0.10)(better-sqlite3@12.2.0)(db0@0.3.2(better-sqlite3@12.2.0))(encoding@0.1.13)(ioredis@5.6.1)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(xml2js@0.6.2)(yaml@2.8.0)) + '@vinxi/plugin-directives': 0.5.1(vinxi@0.5.8(@types/node@22.16.3)(better-sqlite3@12.2.0)(db0@0.3.2(better-sqlite3@12.2.0))(encoding@0.1.13)(ioredis@5.6.1)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(xml2js@0.6.2)(yaml@2.8.0)) acorn: 8.15.0 acorn-loose: 8.5.2 acorn-typescript: 1.4.13(acorn@8.15.0) astring: 1.9.0 magicast: 0.2.11 recast: 0.23.11 - vinxi: 0.5.8(@types/node@24.0.10)(better-sqlite3@12.2.0)(db0@0.3.2(better-sqlite3@12.2.0))(encoding@0.1.13)(ioredis@5.6.1)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(xml2js@0.6.2)(yaml@2.8.0) - - '@vitejs/plugin-react@4.5.0(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))': - dependencies: - '@babel/core': 7.27.4 - '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.27.4) - '@rolldown/pluginutils': 1.0.0-beta.9 - '@types/babel__core': 7.20.5 - react-refresh: 0.17.0 - vite: 6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) - transitivePeerDependencies: - - supports-color - - '@vitejs/plugin-react@4.6.0(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))': - dependencies: - '@babel/core': 7.27.4 - '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.27.4) - '@rolldown/pluginutils': 1.0.0-beta.19 - '@types/babel__core': 7.20.5 - react-refresh: 0.17.0 - vite: 6.3.5(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) - transitivePeerDependencies: - - supports-color + vinxi: 0.5.8(@types/node@22.16.3)(better-sqlite3@12.2.0)(db0@0.3.2(better-sqlite3@12.2.0))(encoding@0.1.13)(ioredis@5.6.1)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(xml2js@0.6.2)(yaml@2.8.0) - '@vitejs/plugin-react@4.6.0(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))': + '@vitejs/plugin-react@4.6.0(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))': dependencies: - '@babel/core': 7.27.4 - '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.27.4) + '@babel/core': 7.28.0 + '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.28.0) '@rolldown/pluginutils': 1.0.0-beta.19 '@types/babel__core': 7.20.5 react-refresh: 0.17.0 - vite: 6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) + vite: 6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue-jsx@4.2.0(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3))': + '@vitejs/plugin-vue-jsx@4.2.0(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3))': dependencies: - '@babel/core': 7.27.7 - '@babel/plugin-transform-typescript': 7.27.1(@babel/core@7.27.7) - '@rolldown/pluginutils': 1.0.0-beta.23 - '@vue/babel-plugin-jsx': 1.4.0(@babel/core@7.27.7) - vite: 6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) + '@babel/core': 7.28.0 + '@babel/plugin-transform-typescript': 7.28.0(@babel/core@7.28.0) + '@rolldown/pluginutils': 1.0.0-beta.26 + '@vue/babel-plugin-jsx': 1.4.0(@babel/core@7.28.0) + vite: 6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) vue: 3.5.17(typescript@5.8.3) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue@5.2.4(vite@5.4.18(@types/node@22.15.30)(terser@5.43.1))(vue@3.5.17(typescript@5.8.3))': + '@vitejs/plugin-vue@5.2.4(vite@5.4.19(@types/node@22.16.3)(terser@5.43.1))(vue@3.5.17(typescript@5.8.3))': dependencies: - vite: 5.4.18(@types/node@22.15.30)(terser@5.43.1) + vite: 5.4.19(@types/node@22.16.3)(terser@5.43.1) vue: 3.5.17(typescript@5.8.3) - '@vitejs/plugin-vue@5.2.4(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3))': + '@vitejs/plugin-vue@5.2.4(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3))': dependencies: - vite: 6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) + vite: 6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) vue: 3.5.17(typescript@5.8.3) '@vitest/coverage-v8@3.2.4(vitest@3.2.4)': @@ -17261,17 +16714,17 @@ snapshots: std-env: 3.9.0 test-exclude: 7.0.1 tinyrainbow: 2.0.0 - vitest: 3.2.4(@types/debug@4.1.12)(@types/node@22.15.30)(@vitest/ui@3.2.4)(jiti@2.4.2)(jsdom@26.1.0)(msw@2.10.3(@types/node@22.15.30)(typescript@5.8.3))(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) + vitest: 3.2.4(@types/debug@4.1.12)(@types/node@22.16.3)(@vitest/ui@3.2.4)(jiti@2.4.2)(jsdom@26.1.0)(msw@2.10.3(@types/node@22.16.3)(typescript@5.8.3))(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) transitivePeerDependencies: - supports-color '@vitest/eslint-plugin@1.3.4(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3)(vitest@3.2.4)': dependencies: - '@typescript-eslint/utils': 8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/utils': 8.36.0(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3) eslint: 9.30.1(jiti@2.4.2) optionalDependencies: typescript: 5.8.3 - vitest: 3.2.4(@types/debug@4.1.12)(@types/node@22.15.30)(@vitest/ui@3.2.4)(jiti@2.4.2)(jsdom@26.1.0)(msw@2.10.3(@types/node@22.15.30)(typescript@5.8.3))(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) + vitest: 3.2.4(@types/debug@4.1.12)(@types/node@22.16.3)(@vitest/ui@3.2.4)(jiti@2.4.2)(jsdom@26.1.0)(msw@2.10.3(@types/node@22.16.3)(typescript@5.8.3))(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) transitivePeerDependencies: - supports-color @@ -17280,17 +16733,17 @@ snapshots: '@types/chai': 5.2.2 '@vitest/spy': 3.2.4 '@vitest/utils': 3.2.4 - chai: 5.2.0 + chai: 5.2.1 tinyrainbow: 2.0.0 - '@vitest/mocker@3.2.4(msw@2.10.3(@types/node@22.15.30)(typescript@5.8.3))(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))': + '@vitest/mocker@3.2.4(msw@2.10.3(@types/node@22.16.3)(typescript@5.8.3))(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))': dependencies: '@vitest/spy': 3.2.4 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - msw: 2.10.3(@types/node@22.15.30)(typescript@5.8.3) - vite: 6.3.5(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) + msw: 2.10.3(@types/node@22.16.3)(typescript@5.8.3) + vite: 6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) '@vitest/pretty-format@3.2.4': dependencies: @@ -17321,7 +16774,7 @@ snapshots: sirv: 3.0.1 tinyglobby: 0.2.14 tinyrainbow: 2.0.0 - vitest: 3.2.4(@types/debug@4.1.12)(@types/node@22.15.30)(@vitest/ui@3.2.4)(jiti@2.4.2)(jsdom@26.1.0)(msw@2.10.3(@types/node@22.15.30)(typescript@5.8.3))(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) + vitest: 3.2.4(@types/debug@4.1.12)(@types/node@22.16.3)(@vitest/ui@3.2.4)(jiti@2.4.2)(jsdom@26.1.0)(msw@2.10.3(@types/node@22.16.3)(typescript@5.8.3))(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) '@vitest/utils@3.2.4': dependencies: @@ -17329,24 +16782,28 @@ snapshots: loupe: 3.1.4 tinyrainbow: 2.0.0 - '@volar/kit@2.4.13(typescript@5.8.3)': + '@volar/kit@2.4.18(typescript@5.8.3)': dependencies: - '@volar/language-service': 2.4.13 - '@volar/typescript': 2.4.13 + '@volar/language-service': 2.4.18 + '@volar/typescript': 2.4.18 typesafe-path: 0.2.2 typescript: 5.8.3 vscode-languageserver-textdocument: 1.0.12 vscode-uri: 3.1.0 - '@volar/language-core@2.4.13': + '@volar/language-core@2.4.17': + dependencies: + '@volar/source-map': 2.4.17 + + '@volar/language-core@2.4.18': dependencies: - '@volar/source-map': 2.4.13 + '@volar/source-map': 2.4.18 - '@volar/language-server@2.4.13': + '@volar/language-server@2.4.18': dependencies: - '@volar/language-core': 2.4.13 - '@volar/language-service': 2.4.13 - '@volar/typescript': 2.4.13 + '@volar/language-core': 2.4.18 + '@volar/language-service': 2.4.18 + '@volar/typescript': 2.4.18 path-browserify: 1.0.1 request-light: 0.7.0 vscode-languageserver: 9.0.1 @@ -17354,18 +16811,20 @@ snapshots: vscode-languageserver-textdocument: 1.0.12 vscode-uri: 3.1.0 - '@volar/language-service@2.4.13': + '@volar/language-service@2.4.18': dependencies: - '@volar/language-core': 2.4.13 + '@volar/language-core': 2.4.18 vscode-languageserver-protocol: 3.17.5 vscode-languageserver-textdocument: 1.0.12 vscode-uri: 3.1.0 - '@volar/source-map@2.4.13': {} + '@volar/source-map@2.4.17': {} + + '@volar/source-map@2.4.18': {} - '@volar/typescript@2.4.13': + '@volar/typescript@2.4.18': dependencies: - '@volar/language-core': 2.4.13 + '@volar/language-core': 2.4.18 path-browserify: 1.0.1 vscode-uri: 3.1.0 @@ -17391,26 +16850,26 @@ snapshots: '@vue/babel-helper-vue-transform-on@1.4.0': {} - '@vue/babel-plugin-jsx@1.4.0(@babel/core@7.27.7)': + '@vue/babel-plugin-jsx@1.4.0(@babel/core@7.28.0)': dependencies: '@babel/helper-module-imports': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.27.7) + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.0) '@babel/template': 7.27.2 '@babel/traverse': 7.28.0 '@babel/types': 7.28.0 '@vue/babel-helper-vue-transform-on': 1.4.0 - '@vue/babel-plugin-resolve-type': 1.4.0(@babel/core@7.27.7) + '@vue/babel-plugin-resolve-type': 1.4.0(@babel/core@7.28.0) '@vue/shared': 3.5.17 optionalDependencies: - '@babel/core': 7.27.7 + '@babel/core': 7.28.0 transitivePeerDependencies: - supports-color - '@vue/babel-plugin-resolve-type@1.4.0(@babel/core@7.27.7)': + '@vue/babel-plugin-resolve-type@1.4.0(@babel/core@7.28.0)': dependencies: '@babel/code-frame': 7.27.1 - '@babel/core': 7.27.7 + '@babel/core': 7.28.0 '@babel/helper-module-imports': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 '@babel/parser': 7.28.0 @@ -17420,7 +16879,7 @@ snapshots: '@vue/compiler-core@3.5.17': dependencies: - '@babel/parser': 7.27.5 + '@babel/parser': 7.28.0 '@vue/shared': 3.5.17 entities: 4.5.0 estree-walker: 2.0.2 @@ -17433,7 +16892,7 @@ snapshots: '@vue/compiler-sfc@3.5.17': dependencies: - '@babel/parser': 7.27.5 + '@babel/parser': 7.28.0 '@vue/compiler-core': 3.5.17 '@vue/compiler-dom': 3.5.17 '@vue/compiler-ssr': 3.5.17 @@ -17455,32 +16914,22 @@ snapshots: '@vue/devtools-api@6.6.4': {} - '@vue/devtools-api@7.7.6': + '@vue/devtools-api@7.7.7': dependencies: - '@vue/devtools-kit': 7.7.6 + '@vue/devtools-kit': 7.7.7 - '@vue/devtools-core@7.7.7(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3))': + '@vue/devtools-core@7.7.7(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3))': dependencies: '@vue/devtools-kit': 7.7.7 '@vue/devtools-shared': 7.7.7 mitt: 3.0.1 nanoid: 5.1.5 pathe: 2.0.3 - vite-hot-client: 2.1.0(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) + vite-hot-client: 2.1.0(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) vue: 3.5.17(typescript@5.8.3) transitivePeerDependencies: - vite - '@vue/devtools-kit@7.7.6': - dependencies: - '@vue/devtools-shared': 7.7.6 - birpc: 2.3.0 - hookable: 5.5.3 - mitt: 3.0.1 - perfect-debounce: 1.0.0 - speakingurl: 14.0.1 - superjson: 2.2.2 - '@vue/devtools-kit@7.7.7': dependencies: '@vue/devtools-shared': 7.7.7 @@ -17491,22 +16940,18 @@ snapshots: speakingurl: 14.0.1 superjson: 2.2.2 - '@vue/devtools-shared@7.7.6': - dependencies: - rfdc: 1.4.1 - '@vue/devtools-shared@7.7.7': dependencies: rfdc: 1.4.1 - '@vue/language-core@2.2.4(typescript@5.8.3)': + '@vue/language-core@3.0.1(typescript@5.8.3)': dependencies: - '@volar/language-core': 2.4.13 + '@volar/language-core': 2.4.17 '@vue/compiler-dom': 3.5.17 '@vue/compiler-vue2': 2.7.16 '@vue/shared': 3.5.17 - alien-signals: 1.0.13 - minimatch: 9.0.5 + alien-signals: 2.0.5 + minimatch: 10.0.3 muggle-string: 0.4.1 path-browserify: 1.0.1 optionalDependencies: @@ -17534,14 +16979,12 @@ snapshots: '@vue/shared': 3.5.17 vue: 3.5.17(typescript@5.8.3) - '@vue/shared@3.5.16': {} - '@vue/shared@3.5.17': {} '@vue/test-utils@2.4.6': dependencies: js-beautify: 1.15.4 - vue-component-type-helpers: 2.2.8 + vue-component-type-helpers: 2.2.12 '@vueuse/core@12.8.2(typescript@5.8.3)': dependencies: @@ -17552,13 +16995,13 @@ snapshots: transitivePeerDependencies: - typescript - '@vueuse/integrations@12.8.2(focus-trap@7.6.4)(fuse.js@7.1.0)(jwt-decode@4.0.0)(typescript@5.8.3)': + '@vueuse/integrations@12.8.2(focus-trap@7.6.5)(fuse.js@7.1.0)(jwt-decode@4.0.0)(typescript@5.8.3)': dependencies: '@vueuse/core': 12.8.2(typescript@5.8.3) '@vueuse/shared': 12.8.2(typescript@5.8.3) vue: 3.5.17(typescript@5.8.3) optionalDependencies: - focus-trap: 7.6.4 + focus-trap: 7.6.5 fuse.js: 7.1.0 jwt-decode: 4.0.0 transitivePeerDependencies: @@ -17691,10 +17134,10 @@ snapshots: '@types/filesystem': 0.0.36 '@types/har-format': 1.2.16 - '@wxt-dev/module-react@1.1.3(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))(wxt@0.20.7(@types/node@24.0.10)(jiti@2.4.2)(rollup@4.44.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))': + '@wxt-dev/module-react@1.1.3(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))(wxt@0.20.7(@types/node@22.16.3)(jiti@2.4.2)(rollup@4.44.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))': dependencies: - '@vitejs/plugin-react': 4.5.0(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) - wxt: 0.20.7(@types/node@24.0.10)(jiti@2.4.2)(rollup@4.44.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) + '@vitejs/plugin-react': 4.6.0(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) + wxt: 0.20.7(@types/node@22.16.3)(jiti@2.4.2)(rollup@4.44.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) transitivePeerDependencies: - supports-color - vite @@ -17819,8 +17262,6 @@ snapshots: acorn@8.14.0: {} - acorn@8.14.1: {} - acorn@8.15.0: {} adm-zip@0.5.16: {} @@ -17831,7 +17272,7 @@ snapshots: transitivePeerDependencies: - supports-color - agent-base@7.1.3: {} + agent-base@7.1.4: {} agentkeepalive@4.6.0: dependencies: @@ -17873,23 +17314,23 @@ snapshots: json-schema-traverse: 1.0.0 require-from-string: 2.0.2 - algoliasearch@5.23.3: + algoliasearch@5.32.0: dependencies: - '@algolia/client-abtesting': 5.23.3 - '@algolia/client-analytics': 5.23.3 - '@algolia/client-common': 5.23.3 - '@algolia/client-insights': 5.23.3 - '@algolia/client-personalization': 5.23.3 - '@algolia/client-query-suggestions': 5.23.3 - '@algolia/client-search': 5.23.3 - '@algolia/ingestion': 1.23.3 - '@algolia/monitoring': 1.23.3 - '@algolia/recommend': 5.23.3 - '@algolia/requester-browser-xhr': 5.23.3 - '@algolia/requester-fetch': 5.23.3 - '@algolia/requester-node-http': 5.23.3 + '@algolia/client-abtesting': 5.32.0 + '@algolia/client-analytics': 5.32.0 + '@algolia/client-common': 5.32.0 + '@algolia/client-insights': 5.32.0 + '@algolia/client-personalization': 5.32.0 + '@algolia/client-query-suggestions': 5.32.0 + '@algolia/client-search': 5.32.0 + '@algolia/ingestion': 1.32.0 + '@algolia/monitoring': 1.32.0 + '@algolia/recommend': 5.32.0 + '@algolia/requester-browser-xhr': 5.32.0 + '@algolia/requester-fetch': 5.32.0 + '@algolia/requester-node-http': 5.32.0 - alien-signals@1.0.13: {} + alien-signals@2.0.5: {} ansi-align@3.0.1: dependencies: @@ -17948,7 +17389,7 @@ snapshots: config-file-ts: 0.2.8-rc1 debug: 4.4.1 dmg-builder: 26.0.12(electron-builder-squirrel-windows@26.0.12) - dotenv: 16.5.0 + dotenv: 16.6.1 dotenv-expand: 11.0.7 ejs: 3.1.10 electron-builder-squirrel-windows: 26.0.12(dmg-builder@26.0.12) @@ -18024,10 +17465,6 @@ snapshots: array-union@3.0.1: {} - as-table@1.0.55: - dependencies: - printable-characters: 1.0.42 - asap@2.0.6: {} assert-plus@1.0.0: @@ -18048,7 +17485,7 @@ snapshots: ast-v8-to-istanbul@0.3.3: dependencies: - '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/trace-mapping': 0.3.29 estree-walker: 3.0.3 js-tokens: 9.0.1 @@ -18062,7 +17499,7 @@ snapshots: astring@1.9.0: {} - astro@5.11.0(@types/node@24.0.10)(db0@0.3.2(better-sqlite3@12.2.0))(encoding@0.1.13)(ioredis@5.6.1)(jiti@2.4.2)(rollup@4.44.1)(terser@5.43.1)(tsx@4.20.3)(typescript@5.8.3)(yaml@2.8.0): + astro@5.11.0(@types/node@22.16.3)(db0@0.3.2(better-sqlite3@12.2.0))(encoding@0.1.13)(ioredis@5.6.1)(jiti@2.4.2)(rollup@4.44.2)(terser@5.43.1)(tsx@4.20.3)(typescript@5.8.3)(yaml@2.8.0): dependencies: '@astrojs/compiler': 2.12.2 '@astrojs/internal-helpers': 0.6.1 @@ -18070,12 +17507,12 @@ snapshots: '@astrojs/telemetry': 3.3.0 '@capsizecss/unpack': 2.4.0(encoding@0.1.13) '@oslojs/encoding': 1.1.0 - '@rollup/pluginutils': 5.2.0(rollup@4.44.1) + '@rollup/pluginutils': 5.2.0(rollup@4.44.2) acorn: 8.15.0 aria-query: 5.3.2 axobject-query: 4.1.0 boxen: 8.0.1 - ci-info: 4.2.0 + ci-info: 4.3.0 clsx: 2.1.1 common-ancestor-path: 1.0.1 cookie: 1.0.2 @@ -18087,7 +17524,7 @@ snapshots: dlv: 1.1.3 dset: 3.1.4 es-module-lexer: 1.7.0 - esbuild: 0.25.5 + esbuild: 0.25.6 estree-walker: 3.0.3 flattie: 1.1.1 fontace: 0.3.0 @@ -18117,14 +17554,14 @@ snapshots: unist-util-visit: 5.0.0 unstorage: 1.16.0(db0@0.3.2(better-sqlite3@12.2.0))(ioredis@5.6.1) vfile: 6.0.3 - vite: 6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) - vitefu: 1.1.1(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) + vite: 6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) + vitefu: 1.1.1(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) xxhash-wasm: 1.1.0 yargs-parser: 21.1.1 yocto-spinner: 0.2.3 - zod: 3.25.74 - zod-to-json-schema: 3.24.6(zod@3.25.74) - zod-to-ts: 1.2.0(typescript@5.8.3)(zod@3.25.74) + zod: 3.25.76 + zod-to-json-schema: 3.24.6(zod@3.25.76) + zod-to-ts: 1.2.0(typescript@5.8.3)(zod@3.25.76) optionalDependencies: sharp: 0.33.5 transitivePeerDependencies: @@ -18185,8 +17622,8 @@ snapshots: autoprefixer@10.4.21(postcss@8.5.6): dependencies: - browserslist: 4.24.5 - caniuse-lite: 1.0.30001726 + browserslist: 4.25.1 + caniuse-lite: 1.0.30001727 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.1.1 @@ -18211,26 +17648,26 @@ snapshots: transitivePeerDependencies: - supports-color - babel-plugin-jsx-dom-expressions@0.39.8(@babel/core@7.27.4): + babel-plugin-jsx-dom-expressions@0.39.8(@babel/core@7.28.0): dependencies: - '@babel/core': 7.27.4 + '@babel/core': 7.28.0 '@babel/helper-module-imports': 7.18.6 - '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.0) '@babel/types': 7.28.0 html-entities: 2.3.3 parse5: 7.3.0 validate-html-nesting: 1.2.3 - babel-preset-solid@1.9.6(@babel/core@7.27.4): + babel-preset-solid@1.9.6(@babel/core@7.28.0): dependencies: - '@babel/core': 7.27.4 - babel-plugin-jsx-dom-expressions: 0.39.8(@babel/core@7.27.4) + '@babel/core': 7.28.0 + babel-plugin-jsx-dom-expressions: 0.39.8(@babel/core@7.28.0) bail@2.0.2: {} balanced-match@1.0.2: {} - bare-events@2.5.4: + bare-events@2.6.0: optional: true base-64@1.0.0: {} @@ -18261,8 +17698,6 @@ snapshots: dependencies: file-uri-to-path: 1.0.0 - birpc@2.3.0: {} - birpc@2.4.0: {} bl@4.1.0: @@ -18322,10 +17757,6 @@ snapshots: balanced-match: 1.0.2 concat-map: 0.0.1 - brace-expansion@2.0.1: - dependencies: - balanced-match: 1.0.2 - brace-expansion@2.0.2: dependencies: balanced-match: 1.0.2 @@ -18338,24 +17769,10 @@ snapshots: dependencies: base64-js: 1.5.1 - browserslist@4.24.5: - dependencies: - caniuse-lite: 1.0.30001726 - electron-to-chromium: 1.5.151 - node-releases: 2.0.19 - update-browserslist-db: 1.1.3(browserslist@4.24.5) - - browserslist@4.25.0: - dependencies: - caniuse-lite: 1.0.30001726 - electron-to-chromium: 1.5.173 - node-releases: 2.0.19 - update-browserslist-db: 1.1.3(browserslist@4.25.0) - browserslist@4.25.1: dependencies: - caniuse-lite: 1.0.30001726 - electron-to-chromium: 1.5.178 + caniuse-lite: 1.0.30001727 + electron-to-chromium: 1.5.182 node-releases: 2.0.19 update-browserslist-db: 1.1.3(browserslist@4.25.1) @@ -18429,7 +17846,7 @@ snapshots: chokidar: 4.0.3 confbox: 0.1.8 defu: 6.1.4 - dotenv: 16.5.0 + dotenv: 16.6.1 giget: 1.2.5 jiti: 2.4.2 mlly: 1.7.4 @@ -18446,14 +17863,14 @@ snapshots: chokidar: 4.0.3 confbox: 0.2.2 defu: 6.1.4 - dotenv: 16.5.0 - exsolve: 1.0.5 + dotenv: 16.6.1 + exsolve: 1.0.7 giget: 2.0.0 jiti: 2.4.2 ohash: 2.0.11 pathe: 2.0.3 perfect-debounce: 1.0.0 - pkg-types: 2.1.0 + pkg-types: 2.2.0 rc9: 2.1.2 optionalDependencies: magicast: 0.3.5 @@ -18526,21 +17943,21 @@ snapshots: caniuse-api@3.0.0: dependencies: browserslist: 4.25.1 - caniuse-lite: 1.0.30001726 + caniuse-lite: 1.0.30001727 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 - caniuse-lite@1.0.30001726: {} + caniuse-lite@1.0.30001727: {} ccount@2.0.1: {} - chai@5.2.0: + chai@5.2.1: dependencies: assertion-error: 2.0.1 check-error: 2.1.1 deep-eql: 5.0.2 - loupe: 3.1.3 - pathval: 2.0.0 + loupe: 3.1.4 + pathval: 2.0.1 chalk@3.0.0: dependencies: @@ -18625,7 +18042,7 @@ snapshots: chrome-launcher@1.1.2: dependencies: - '@types/node': 22.15.30 + '@types/node': 22.16.3 escape-string-regexp: 4.0.0 is-wsl: 2.2.0 lighthouse-logger: 2.0.1 @@ -18638,7 +18055,7 @@ snapshots: ci-info@3.9.0: {} - ci-info@4.2.0: {} + ci-info@4.3.0: {} citty@0.1.6: dependencies: @@ -18900,7 +18317,7 @@ snapshots: graceful-fs: 4.2.11 p-event: 6.0.1 - core-js-compat@3.43.0: + core-js-compat@3.44.0: dependencies: browserslist: 4.25.1 @@ -18947,7 +18364,7 @@ snapshots: cron-parser@4.9.0: dependencies: - luxon: 3.6.1 + luxon: 3.7.1 croner@9.1.0: {} @@ -18976,14 +18393,6 @@ snapshots: dependencies: postcss: 8.5.6 - css-select@5.1.0: - dependencies: - boolbase: 1.0.0 - css-what: 6.1.0 - domhandler: 5.0.3 - domutils: 3.2.2 - nth-check: 2.1.1 - css-select@5.2.2: dependencies: boolbase: 1.0.0 @@ -19007,8 +18416,6 @@ snapshots: mdn-data: 2.12.2 source-map-js: 1.2.1 - css-what@6.1.0: {} - css-what@6.2.2: {} css.escape@1.5.1: {} @@ -19065,24 +18472,24 @@ snapshots: cssom@0.5.0: {} - cssstyle@4.3.1: + cssstyle@4.6.0: dependencies: - '@asamuzakjp/css-color': 3.1.7 + '@asamuzakjp/css-color': 3.2.0 rrweb-cssom: 0.8.0 csstype@3.1.3: {} - cytoscape-cose-bilkent@4.1.0(cytoscape@3.32.0): + cytoscape-cose-bilkent@4.1.0(cytoscape@3.32.1): dependencies: cose-base: 1.0.3 - cytoscape: 3.32.0 + cytoscape: 3.32.1 - cytoscape-fcose@2.2.0(cytoscape@3.32.0): + cytoscape-fcose@2.2.0(cytoscape@3.32.1): dependencies: cose-base: 2.2.0 - cytoscape: 3.32.0 + cytoscape: 3.32.1 - cytoscape@3.32.0: {} + cytoscape@3.32.1: {} d3-array@2.12.1: dependencies: @@ -19256,8 +18663,6 @@ snapshots: d3: 7.9.0 lodash-es: 4.17.21 - data-uri-to-buffer@2.0.2: {} - data-uri-to-buffer@4.0.1: {} data-urls@5.0.0: @@ -19296,9 +18701,9 @@ snapshots: dependencies: callsite: 1.0.0 - decimal.js@10.5.0: {} + decimal.js@10.6.0: {} - decode-named-character-reference@1.1.0: + decode-named-character-reference@1.2.0: dependencies: character-entities: 2.0.2 @@ -19420,7 +18825,7 @@ snapshots: detective-typescript@14.0.0(typescript@5.8.3): dependencies: - '@typescript-eslint/typescript-estree': 8.35.1(typescript@5.8.3) + '@typescript-eslint/typescript-estree': 8.36.0(typescript@5.8.3) ast-module-types: 6.0.1 node-source-walk: 7.0.1 typescript: 5.8.3 @@ -19529,13 +18934,11 @@ snapshots: dotenv-expand@11.0.7: dependencies: - dotenv: 16.5.0 + dotenv: 16.6.1 dotenv-expand@12.0.2: dependencies: - dotenv: 16.5.0 - - dotenv@16.5.0: {} + dotenv: 16.6.1 dotenv@16.6.1: {} @@ -19597,30 +19000,26 @@ snapshots: builder-util: 26.0.11 builder-util-runtime: 9.3.1 chalk: 4.1.2 - form-data: 4.0.2 + form-data: 4.0.3 fs-extra: 10.1.0 lazy-val: 1.0.5 mime: 2.6.0 transitivePeerDependencies: - supports-color - electron-to-chromium@1.5.151: {} - - electron-to-chromium@1.5.173: {} - - electron-to-chromium@1.5.178: {} + electron-to-chromium@1.5.182: {} - electron-vite@3.1.0(@swc/core@1.12.9(@swc/helpers@0.5.17))(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)): + electron-vite@3.1.0(@swc/core@1.12.11(@swc/helpers@0.5.17))(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)): dependencies: - '@babel/core': 7.27.1 - '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.27.1) + '@babel/core': 7.28.0 + '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.28.0) cac: 6.7.14 - esbuild: 0.25.4 + esbuild: 0.25.6 magic-string: 0.30.17 picocolors: 1.1.1 - vite: 6.3.5(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) + vite: 6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) optionalDependencies: - '@swc/core': 1.12.9(@swc/helpers@0.5.17) + '@swc/core': 1.12.11(@swc/helpers@0.5.17) transitivePeerDependencies: - supports-color @@ -19636,10 +19035,10 @@ snapshots: transitivePeerDependencies: - supports-color - electron@37.2.0: + electron@37.2.1: dependencies: '@electron/get': 2.0.3 - '@types/node': 22.15.30 + '@types/node': 22.16.3 extract-zip: 2.0.1 transitivePeerDependencies: - supports-color @@ -19677,11 +19076,6 @@ snapshots: dependencies: once: 1.4.0 - enhanced-resolve@5.18.1: - dependencies: - graceful-fs: 4.2.11 - tapable: 2.2.1 - enhanced-resolve@5.18.2: dependencies: graceful-fs: 4.2.11 @@ -19689,8 +19083,6 @@ snapshots: entities@4.5.0: {} - entities@6.0.0: {} - entities@6.0.1: {} env-paths@2.2.1: {} @@ -19814,6 +19206,35 @@ snapshots: '@esbuild/win32-ia32': 0.25.5 '@esbuild/win32-x64': 0.25.5 + esbuild@0.25.6: + optionalDependencies: + '@esbuild/aix-ppc64': 0.25.6 + '@esbuild/android-arm': 0.25.6 + '@esbuild/android-arm64': 0.25.6 + '@esbuild/android-x64': 0.25.6 + '@esbuild/darwin-arm64': 0.25.6 + '@esbuild/darwin-x64': 0.25.6 + '@esbuild/freebsd-arm64': 0.25.6 + '@esbuild/freebsd-x64': 0.25.6 + '@esbuild/linux-arm': 0.25.6 + '@esbuild/linux-arm64': 0.25.6 + '@esbuild/linux-ia32': 0.25.6 + '@esbuild/linux-loong64': 0.25.6 + '@esbuild/linux-mips64el': 0.25.6 + '@esbuild/linux-ppc64': 0.25.6 + '@esbuild/linux-riscv64': 0.25.6 + '@esbuild/linux-s390x': 0.25.6 + '@esbuild/linux-x64': 0.25.6 + '@esbuild/netbsd-arm64': 0.25.6 + '@esbuild/netbsd-x64': 0.25.6 + '@esbuild/openbsd-arm64': 0.25.6 + '@esbuild/openbsd-x64': 0.25.6 + '@esbuild/openharmony-arm64': 0.25.6 + '@esbuild/sunos-x64': 0.25.6 + '@esbuild/win32-arm64': 0.25.6 + '@esbuild/win32-ia32': 0.25.6 + '@esbuild/win32-x64': 0.25.6 + escalade@3.2.0: {} escape-goat@4.0.0: {} @@ -19898,18 +19319,18 @@ snapshots: eslint: 9.30.1(jiti@2.4.2) eslint-formatting-reporter: 0.0.0(eslint@9.30.1(jiti@2.4.2)) eslint-parser-plain: 0.1.1 - prettier: 3.5.3 - synckit: 0.9.2 + prettier: 3.6.2 + synckit: 0.9.3 eslint-plugin-import-lite@0.3.0(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3): dependencies: '@eslint-community/eslint-utils': 4.7.0(eslint@9.30.1(jiti@2.4.2)) - '@typescript-eslint/types': 8.35.1 + '@typescript-eslint/types': 8.36.0 eslint: 9.30.1(jiti@2.4.2) optionalDependencies: typescript: 5.8.3 - eslint-plugin-jsdoc@51.3.2(eslint@9.30.1(jiti@2.4.2)): + eslint-plugin-jsdoc@51.3.4(eslint@9.30.1(jiti@2.4.2)): dependencies: '@es-joy/jsdoccomment': 0.52.0 are-docs-informative: 0.0.2 @@ -19939,10 +19360,9 @@ snapshots: transitivePeerDependencies: - '@eslint/json' - eslint-plugin-n@17.20.0(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3): + eslint-plugin-n@17.21.0(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3): dependencies: '@eslint-community/eslint-utils': 4.7.0(eslint@9.30.1(jiti@2.4.2)) - '@typescript-eslint/utils': 8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3) enhanced-resolve: 5.18.2 eslint: 9.30.1(jiti@2.4.2) eslint-plugin-es-x: 7.8.0(eslint@9.30.1(jiti@2.4.2)) @@ -19953,15 +19373,14 @@ snapshots: semver: 7.7.2 ts-declaration-location: 1.0.7(typescript@5.8.3) transitivePeerDependencies: - - supports-color - typescript eslint-plugin-no-only-tests@3.3.0: {} eslint-plugin-perfectionist@4.15.0(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3): dependencies: - '@typescript-eslint/types': 8.35.1 - '@typescript-eslint/utils': 8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/types': 8.36.0 + '@typescript-eslint/utils': 8.36.0(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3) eslint: 9.30.1(jiti@2.4.2) natural-orderby: 5.0.0 transitivePeerDependencies: @@ -20004,9 +19423,9 @@ snapshots: '@babel/helper-validator-identifier': 7.27.1 '@eslint-community/eslint-utils': 4.7.0(eslint@9.30.1(jiti@2.4.2)) '@eslint/plugin-kit': 0.2.8 - ci-info: 4.2.0 + ci-info: 4.3.0 clean-regexp: 1.0.0 - core-js-compat: 3.43.0 + core-js-compat: 3.44.0 eslint: 9.30.1(jiti@2.4.2) esquery: 1.6.0 find-up-simple: 1.0.1 @@ -20020,13 +19439,13 @@ snapshots: semver: 7.7.2 strip-indent: 4.0.0 - eslint-plugin-unused-imports@4.1.4(@typescript-eslint/eslint-plugin@8.35.1(@typescript-eslint/parser@8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3))(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3))(eslint@9.30.1(jiti@2.4.2)): + eslint-plugin-unused-imports@4.1.4(@typescript-eslint/eslint-plugin@8.36.0(@typescript-eslint/parser@8.36.0(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3))(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3))(eslint@9.30.1(jiti@2.4.2)): dependencies: eslint: 9.30.1(jiti@2.4.2) optionalDependencies: - '@typescript-eslint/eslint-plugin': 8.35.1(@typescript-eslint/parser@8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3))(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/eslint-plugin': 8.36.0(@typescript-eslint/parser@8.36.0(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3))(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3) - eslint-plugin-vue@10.2.0(eslint@9.30.1(jiti@2.4.2))(vue-eslint-parser@10.2.0(eslint@9.30.1(jiti@2.4.2))): + eslint-plugin-vue@10.3.0(@typescript-eslint/parser@8.36.0(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3))(eslint@9.30.1(jiti@2.4.2))(vue-eslint-parser@10.2.0(eslint@9.30.1(jiti@2.4.2))): dependencies: '@eslint-community/eslint-utils': 4.7.0(eslint@9.30.1(jiti@2.4.2)) eslint: 9.30.1(jiti@2.4.2) @@ -20036,6 +19455,8 @@ snapshots: semver: 7.7.2 vue-eslint-parser: 10.2.0(eslint@9.30.1(jiti@2.4.2)) xml-name-validator: 4.0.0 + optionalDependencies: + '@typescript-eslint/parser': 8.36.0(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3) eslint-plugin-yml@1.18.0(eslint@9.30.1(jiti@2.4.2)): dependencies: @@ -20201,7 +19622,7 @@ snapshots: expand-template@2.0.3: {} - expect-type@1.2.1: {} + expect-type@1.2.2: {} exponential-backoff@3.1.2: {} @@ -20231,14 +19652,12 @@ snapshots: router: 2.2.0 send: 1.2.0 serve-static: 2.2.0 - statuses: 2.0.1 + statuses: 2.0.2 type-is: 2.0.1 vary: 1.1.2 transitivePeerDependencies: - supports-color - exsolve@1.0.5: {} - exsolve@1.0.7: {} ext-list@2.2.2: @@ -20373,10 +19792,6 @@ snapshots: dependencies: pend: 1.2.0 - fdir@6.4.4(picomatch@4.0.2): - optionalDependencies: - picomatch: 4.0.2 - fdir@6.4.6(picomatch@4.0.2): optionalDependencies: picomatch: 4.0.2 @@ -20400,14 +19815,14 @@ snapshots: dependencies: get-stream: 9.0.1 strtok3: 9.1.1 - token-types: 6.0.0 + token-types: 6.0.3 uint8array-extras: 1.4.0 file-type@21.0.0: dependencies: '@tokenizer/inflate': 0.2.7 - strtok3: 10.2.2 - token-types: 6.0.0 + strtok3: 10.3.1 + token-types: 6.0.3 uint8array-extras: 1.4.0 transitivePeerDependencies: - supports-color @@ -20439,7 +19854,7 @@ snapshots: escape-html: 1.0.3 on-finished: 2.4.1 parseurl: 1.3.3 - statuses: 2.0.1 + statuses: 2.0.2 transitivePeerDependencies: - supports-color @@ -20478,7 +19893,7 @@ snapshots: dependencies: magic-string: 0.30.17 mlly: 1.7.4 - rollup: 4.41.0 + rollup: 4.44.2 flat-cache@4.0.1: dependencies: @@ -20499,7 +19914,7 @@ snapshots: fn.name@1.1.0: {} - focus-trap@7.6.4: + focus-trap@7.6.5: dependencies: tabbable: 6.2.0 @@ -20527,7 +19942,7 @@ snapshots: cross-spawn: 7.0.6 signal-exit: 4.1.0 - fork-ts-checker-webpack-plugin@9.1.0(typescript@5.8.3)(webpack@5.99.6(@swc/core@1.12.9(@swc/helpers@0.5.17))): + fork-ts-checker-webpack-plugin@9.1.0(typescript@5.8.3)(webpack@5.99.6(@swc/core@1.12.11(@swc/helpers@0.5.17))): dependencies: '@babel/code-frame': 7.27.1 chalk: 4.1.2 @@ -20540,17 +19955,18 @@ snapshots: node-abort-controller: 3.1.1 schema-utils: 3.3.0 semver: 7.7.2 - tapable: 2.2.1 + tapable: 2.2.2 typescript: 5.8.3 - webpack: 5.99.6(@swc/core@1.12.9(@swc/helpers@0.5.17)) + webpack: 5.99.6(@swc/core@1.12.11(@swc/helpers@0.5.17)) form-data-encoder@2.1.4: {} - form-data@4.0.2: + form-data@4.0.3: dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 es-set-tostringtag: 2.1.0 + hasown: 2.0.2 mime-types: 2.1.35 format@0.2.2: {} @@ -20665,11 +20081,6 @@ snapshots: dunder-proto: 1.0.1 es-object-atoms: 1.1.1 - get-source@2.0.12: - dependencies: - data-uri-to-buffer: 2.0.2 - source-map: 0.6.1 - get-stream@5.2.0: dependencies: pump: 3.0.3 @@ -20741,7 +20152,7 @@ snapshots: glob@11.0.1: dependencies: foreground-child: 3.3.1 - jackspeak: 4.1.0 + jackspeak: 4.1.1 minimatch: 10.0.3 minipass: 7.1.2 package-json-from-dist: 1.0.1 @@ -20778,8 +20189,6 @@ snapshots: dependencies: ini: 4.1.1 - globals@11.12.0: {} - globals@14.0.0: {} globals@15.15.0: {} @@ -21012,7 +20421,7 @@ snapshots: highlight.js@10.7.3: {} - hono@4.7.6: {} + hono@4.8.4: {} hookable@5.5.3: {} @@ -21065,7 +20474,7 @@ snapshots: http-proxy-agent@7.0.2: dependencies: - agent-base: 7.1.3 + agent-base: 7.1.4 debug: 4.4.1 transitivePeerDependencies: - supports-color @@ -21099,7 +20508,7 @@ snapshots: https-proxy-agent@7.0.6: dependencies: - agent-base: 7.1.3 + agent-base: 7.1.4 debug: 4.4.1 transitivePeerDependencies: - supports-color @@ -21372,7 +20781,7 @@ snapshots: istanbul-lib-source-maps@5.0.6: dependencies: - '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/trace-mapping': 0.3.29 debug: 4.4.1 istanbul-lib-coverage: 3.2.2 transitivePeerDependencies: @@ -21391,7 +20800,7 @@ snapshots: optionalDependencies: '@pkgjs/parseargs': 0.11.0 - jackspeak@4.1.0: + jackspeak@4.1.1: dependencies: '@isaacs/cliui': 8.0.2 @@ -21404,7 +20813,7 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 22.15.30 + '@types/node': 22.16.3 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -21443,9 +20852,9 @@ snapshots: jsdom@26.1.0: dependencies: - cssstyle: 4.3.1 + cssstyle: 4.6.0 data-urls: 5.0.0 - decimal.js: 10.5.0 + decimal.js: 10.6.0 html-encoding-sniffer: 4.0.0 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 @@ -21614,9 +21023,9 @@ snapshots: lines-and-columns@2.0.4: {} - linkedom@0.18.10: + linkedom@0.18.11: dependencies: - css-select: 5.1.0 + css-select: 5.2.2 cssom: 0.5.0 html-escaper: 3.0.3 htmlparser2: 10.0.0 @@ -21747,8 +21156,6 @@ snapshots: longest-streak@3.1.0: {} - loupe@3.1.3: {} - loupe@3.1.4: {} lowercase-keys@2.0.0: {} @@ -21769,7 +21176,7 @@ snapshots: lru-cache@7.18.3: {} - luxon@3.6.1: {} + luxon@3.7.1: {} lz-string@1.5.0: {} @@ -21866,7 +21273,7 @@ snapshots: dependencies: '@types/mdast': 4.0.4 '@types/unist': 3.0.3 - decode-named-character-reference: 1.1.0 + decode-named-character-reference: 1.2.0 devlop: 1.1.0 mdast-util-to-string: 4.0.0 micromark: 4.0.2 @@ -22010,15 +21417,15 @@ snapshots: merge2@1.4.1: {} - mermaid@11.8.0: + mermaid@11.8.1: dependencies: '@braintree/sanitize-url': 7.1.1 '@iconify/utils': 2.3.0 - '@mermaid-js/parser': 0.6.0 + '@mermaid-js/parser': 0.6.1 '@types/d3': 7.4.3 - cytoscape: 3.32.0 - cytoscape-cose-bilkent: 4.1.0(cytoscape@3.32.0) - cytoscape-fcose: 2.2.0(cytoscape@3.32.0) + cytoscape: 3.32.1 + cytoscape-cose-bilkent: 4.1.0(cytoscape@3.32.1) + cytoscape-fcose: 2.2.0(cytoscape@3.32.1) d3: 7.9.0 d3-sankey: 0.12.3 dagre-d3-es: 7.0.11 @@ -22041,7 +21448,7 @@ snapshots: micromark-core-commonmark@2.0.3: dependencies: - decode-named-character-reference: 1.1.0 + decode-named-character-reference: 1.2.0 devlop: 1.1.0 micromark-factory-destination: 2.0.1 micromark-factory-label: 2.0.1 @@ -22181,7 +21588,7 @@ snapshots: micromark-util-decode-string@2.0.1: dependencies: - decode-named-character-reference: 1.1.0 + decode-named-character-reference: 1.2.0 micromark-util-character: 2.1.1 micromark-util-decode-numeric-character-reference: 2.0.2 micromark-util-symbol: 2.0.1 @@ -22219,7 +21626,7 @@ snapshots: dependencies: '@types/debug': 4.1.12 debug: 4.4.1 - decode-named-character-reference: 1.1.0 + decode-named-character-reference: 1.2.0 devlop: 1.1.0 micromark-core-commonmark: 2.0.3 micromark-factory-space: 2.0.1 @@ -22280,7 +21687,7 @@ snapshots: min-indent@1.0.1: {} - miniflare@4.20250617.5: + miniflare@4.20250709.0: dependencies: '@cspotcode/source-map-support': 0.8.1 acorn: 8.14.0 @@ -22290,18 +21697,14 @@ snapshots: sharp: 0.33.5 stoppable: 1.1.0 undici: 5.29.0 - workerd: 1.20250617.0 + workerd: 1.20250709.0 ws: 8.18.0 - youch: 3.3.4 + youch: 4.1.0-beta.10 zod: 3.22.3 transitivePeerDependencies: - bufferutil - utf-8-validate - minimatch@10.0.1: - dependencies: - brace-expansion: 2.0.1 - minimatch@10.0.3: dependencies: '@isaacs/brace-expansion': 5.0.0 @@ -22320,7 +21723,7 @@ snapshots: minimatch@9.0.5: dependencies: - brace-expansion: 2.0.1 + brace-expansion: 2.0.2 minimist@1.2.8: {} @@ -22385,11 +21788,11 @@ snapshots: citty: 0.1.6 cssnano: 7.0.7(postcss@8.5.6) defu: 6.1.4 - esbuild: 0.25.5 + esbuild: 0.25.6 jiti: 1.21.7 mlly: 1.7.4 pathe: 2.0.3 - pkg-types: 2.1.0 + pkg-types: 2.2.0 postcss: 8.5.6 postcss-nested: 7.0.2(postcss@8.5.6) semver: 7.7.2 @@ -22420,12 +21823,12 @@ snapshots: ms@2.1.3: {} - msw@2.10.3(@types/node@22.15.30)(typescript@5.8.3): + msw@2.10.3(@types/node@22.16.3)(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.13(@types/node@22.15.30) + '@inquirer/confirm': 5.1.13(@types/node@22.16.3) '@mswjs/interceptors': 0.39.2 '@open-draft/deferred-promise': 2.2.0 '@open-draft/until': 2.1.0 @@ -22464,8 +21867,6 @@ snapshots: array-union: 3.0.1 minimatch: 3.1.2 - mustache@4.2.0: {} - mute-stream@2.0.0: {} mz@2.7.0: @@ -22507,17 +21908,17 @@ snapshots: p-wait-for: 5.0.2 qs: 6.14.0 - next@15.3.5(@babel/core@7.27.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + next@15.3.5(@babel/core@7.28.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: '@next/env': 15.3.5 '@swc/counter': 0.1.3 '@swc/helpers': 0.5.15 busboy: 1.6.0 - caniuse-lite: 1.0.30001726 + caniuse-lite: 1.0.30001727 postcss: 8.4.31 react: 19.1.0 react-dom: 19.1.0(react@19.1.0) - styled-jsx: 5.1.6(@babel/core@7.27.4)(react@19.1.0) + styled-jsx: 5.1.6(@babel/core@7.28.0)(react@19.1.0) optionalDependencies: '@next/swc-darwin-arm64': 15.3.5 '@next/swc-darwin-x64': 15.3.5 @@ -22527,7 +21928,7 @@ snapshots: '@next/swc-linux-x64-musl': 15.3.5 '@next/swc-win32-arm64-msvc': 15.3.5 '@next/swc-win32-x64-msvc': 15.3.5 - sharp: 0.34.2 + sharp: 0.34.3 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros @@ -22535,15 +21936,15 @@ snapshots: nitropack@2.11.13(better-sqlite3@12.2.0)(encoding@0.1.13)(xml2js@0.6.2): dependencies: '@cloudflare/kv-asset-handler': 0.4.0 - '@netlify/functions': 3.1.10(encoding@0.1.13)(rollup@4.44.1) - '@rollup/plugin-alias': 5.1.1(rollup@4.44.1) - '@rollup/plugin-commonjs': 28.0.6(rollup@4.44.1) - '@rollup/plugin-inject': 5.0.5(rollup@4.44.1) - '@rollup/plugin-json': 6.1.0(rollup@4.44.1) - '@rollup/plugin-node-resolve': 16.0.1(rollup@4.44.1) - '@rollup/plugin-replace': 6.0.2(rollup@4.44.1) - '@rollup/plugin-terser': 0.4.4(rollup@4.44.1) - '@vercel/nft': 0.29.4(encoding@0.1.13)(rollup@4.44.1) + '@netlify/functions': 3.1.10(encoding@0.1.13)(rollup@4.44.2) + '@rollup/plugin-alias': 5.1.1(rollup@4.44.2) + '@rollup/plugin-commonjs': 28.0.6(rollup@4.44.2) + '@rollup/plugin-inject': 5.0.5(rollup@4.44.2) + '@rollup/plugin-json': 6.1.0(rollup@4.44.2) + '@rollup/plugin-node-resolve': 16.0.1(rollup@4.44.2) + '@rollup/plugin-replace': 6.0.2(rollup@4.44.2) + '@rollup/plugin-terser': 0.4.4(rollup@4.44.2) + '@vercel/nft': 0.29.4(encoding@0.1.13)(rollup@4.44.2) archiver: 7.0.1 c12: 3.0.4(magicast@0.3.5) chokidar: 4.0.3 @@ -22558,7 +21959,7 @@ snapshots: defu: 6.1.4 destr: 2.0.5 dot-prop: 9.0.0 - esbuild: 0.25.5 + esbuild: 0.25.6 escape-string-regexp: 5.0.0 etag: 1.8.1 exsolve: 1.0.7 @@ -22585,8 +21986,8 @@ snapshots: pkg-types: 2.2.0 pretty-bytes: 6.1.1 radix3: 1.1.2 - rollup: 4.44.1 - rollup-plugin-visualizer: 6.0.3(rollup@4.44.1) + rollup: 4.44.2 + rollup-plugin-visualizer: 6.0.3(rollup@4.44.2) scule: 1.3.0 semver: 7.7.2 serve-placeholder: 2.0.2 @@ -22604,7 +22005,7 @@ snapshots: untyped: 2.0.0 unwasm: 0.3.9 youch: 4.1.0-beta.8 - youch-core: 0.3.2 + youch-core: 0.3.3 optionalDependencies: xml2js: 0.6.2 transitivePeerDependencies: @@ -22744,16 +22145,16 @@ snapshots: dependencies: boolbase: 1.0.0 - nuxt@3.17.6(@parcel/watcher@2.5.1)(@types/node@24.0.10)(@vue/compiler-sfc@3.5.17)(better-sqlite3@12.2.0)(db0@0.3.2(better-sqlite3@12.2.0))(encoding@0.1.13)(eslint@9.30.1(jiti@2.4.2))(ioredis@5.6.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.44.1)(terser@5.43.1)(tsx@4.20.3)(typescript@5.8.3)(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))(xml2js@0.6.2)(yaml@2.8.0): + nuxt@3.17.6(@parcel/watcher@2.5.1)(@types/node@22.16.3)(@vue/compiler-sfc@3.5.17)(better-sqlite3@12.2.0)(db0@0.3.2(better-sqlite3@12.2.0))(encoding@0.1.13)(eslint@9.30.1(jiti@2.4.2))(ioredis@5.6.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.44.2)(terser@5.43.1)(tsx@4.20.3)(typescript@5.8.3)(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))(xml2js@0.6.2)(yaml@2.8.0): dependencies: '@nuxt/cli': 3.25.1(magicast@0.3.5) '@nuxt/devalue': 2.0.2 - '@nuxt/devtools': 2.6.2(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3)) + '@nuxt/devtools': 2.6.2(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3)) '@nuxt/kit': 3.17.6(magicast@0.3.5) '@nuxt/schema': 3.17.6 '@nuxt/telemetry': 2.6.6(magicast@0.3.5) - '@nuxt/vite-builder': 3.17.6(@types/node@24.0.10)(eslint@9.30.1(jiti@2.4.2))(magicast@0.3.5)(optionator@0.9.4)(rollup@4.44.1)(terser@5.43.1)(tsx@4.20.3)(typescript@5.8.3)(vue@3.5.17(typescript@5.8.3))(yaml@2.8.0) - '@unhead/vue': 2.0.11(vue@3.5.17(typescript@5.8.3)) + '@nuxt/vite-builder': 3.17.6(@types/node@22.16.3)(eslint@9.30.1(jiti@2.4.2))(magicast@0.3.5)(optionator@0.9.4)(rollup@4.44.2)(terser@5.43.1)(tsx@4.20.3)(typescript@5.8.3)(vue@3.5.17(typescript@5.8.3))(yaml@2.8.0) + '@unhead/vue': 2.0.12(vue@3.5.17(typescript@5.8.3)) '@vue/shared': 3.5.17 c12: 3.0.4(magicast@0.3.5) chokidar: 4.0.3 @@ -22764,7 +22165,7 @@ snapshots: destr: 2.0.5 devalue: 5.1.1 errx: 0.1.0 - esbuild: 0.25.5 + esbuild: 0.25.6 escape-string-regexp: 5.0.0 estree-walker: 3.0.3 exsolve: 1.0.7 @@ -22784,7 +22185,7 @@ snapshots: ofetch: 1.4.1 ohash: 2.0.11 on-change: 5.0.1 - oxc-parser: 0.75.0 + oxc-parser: 0.75.1 pathe: 2.0.3 perfect-debounce: 1.0.0 pkg-types: 2.2.0 @@ -22809,7 +22210,7 @@ snapshots: vue-router: 4.5.1(vue@3.5.17(typescript@5.8.3)) optionalDependencies: '@parcel/watcher': 2.5.1 - '@types/node': 24.0.10 + '@types/node': 22.16.3 transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -22880,7 +22281,7 @@ snapshots: citty: 0.1.6 consola: 3.4.2 pathe: 2.0.3 - pkg-types: 2.1.0 + pkg-types: 2.2.0 tinyexec: 0.3.2 object-assign@4.1.1: {} @@ -22968,10 +22369,10 @@ snapshots: is-inside-container: 1.0.0 is-wsl: 2.2.0 - openai@5.8.2(ws@8.18.3)(zod@3.25.74): + openai@5.9.0(ws@8.18.3)(zod@3.25.76): optionalDependencies: ws: 8.18.3 - zod: 3.25.74 + zod: 3.25.76 openapi-types@12.1.3: {} @@ -23026,25 +22427,25 @@ snapshots: outvariant@1.4.3: {} - oxc-parser@0.75.0: + oxc-parser@0.75.1: dependencies: - '@oxc-project/types': 0.75.0 + '@oxc-project/types': 0.75.1 optionalDependencies: - '@oxc-parser/binding-android-arm64': 0.75.0 - '@oxc-parser/binding-darwin-arm64': 0.75.0 - '@oxc-parser/binding-darwin-x64': 0.75.0 - '@oxc-parser/binding-freebsd-x64': 0.75.0 - '@oxc-parser/binding-linux-arm-gnueabihf': 0.75.0 - '@oxc-parser/binding-linux-arm-musleabihf': 0.75.0 - '@oxc-parser/binding-linux-arm64-gnu': 0.75.0 - '@oxc-parser/binding-linux-arm64-musl': 0.75.0 - '@oxc-parser/binding-linux-riscv64-gnu': 0.75.0 - '@oxc-parser/binding-linux-s390x-gnu': 0.75.0 - '@oxc-parser/binding-linux-x64-gnu': 0.75.0 - '@oxc-parser/binding-linux-x64-musl': 0.75.0 - '@oxc-parser/binding-wasm32-wasi': 0.75.0 - '@oxc-parser/binding-win32-arm64-msvc': 0.75.0 - '@oxc-parser/binding-win32-x64-msvc': 0.75.0 + '@oxc-parser/binding-android-arm64': 0.75.1 + '@oxc-parser/binding-darwin-arm64': 0.75.1 + '@oxc-parser/binding-darwin-x64': 0.75.1 + '@oxc-parser/binding-freebsd-x64': 0.75.1 + '@oxc-parser/binding-linux-arm-gnueabihf': 0.75.1 + '@oxc-parser/binding-linux-arm-musleabihf': 0.75.1 + '@oxc-parser/binding-linux-arm64-gnu': 0.75.1 + '@oxc-parser/binding-linux-arm64-musl': 0.75.1 + '@oxc-parser/binding-linux-riscv64-gnu': 0.75.1 + '@oxc-parser/binding-linux-s390x-gnu': 0.75.1 + '@oxc-parser/binding-linux-x64-gnu': 0.75.1 + '@oxc-parser/binding-linux-x64-musl': 0.75.1 + '@oxc-parser/binding-wasm32-wasi': 0.75.1 + '@oxc-parser/binding-win32-arm64-msvc': 0.75.1 + '@oxc-parser/binding-win32-x64-msvc': 0.75.1 p-cancelable@2.1.1: {} @@ -23176,7 +22577,7 @@ snapshots: parse5@7.3.0: dependencies: - entities: 6.0.0 + entities: 6.0.1 parseurl@1.3.3: {} @@ -23222,14 +22623,12 @@ snapshots: pathe@2.0.3: {} - pathval@2.0.0: {} + pathval@2.0.1: {} pe-library@0.4.1: {} peek-readable@5.4.2: {} - peek-readable@7.0.0: {} - pend@1.2.0: {} perfect-debounce@1.0.0: {} @@ -23244,7 +22643,7 @@ snapshots: pinia@3.0.3(typescript@5.8.3)(vue@3.5.17(typescript@5.8.3)): dependencies: - '@vue/devtools-api': 7.7.6 + '@vue/devtools-api': 7.7.7 vue: 3.5.17(typescript@5.8.3) optionalDependencies: typescript: 5.8.3 @@ -23285,7 +22684,7 @@ snapshots: piscina@4.9.2: optionalDependencies: - '@napi-rs/nice': 1.0.1 + '@napi-rs/nice': 1.0.4 pkg-types@1.3.1: dependencies: @@ -23293,12 +22692,6 @@ snapshots: mlly: 1.7.4 pathe: 2.0.3 - pkg-types@2.1.0: - dependencies: - confbox: 0.2.2 - exsolve: 1.0.5 - pathe: 2.0.3 - pkg-types@2.2.0: dependencies: confbox: 0.2.2 @@ -23503,12 +22896,6 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 - postcss@8.5.3: - dependencies: - nanoid: 3.3.11 - picocolors: 1.1.1 - source-map-js: 1.2.1 - postcss@8.5.6: dependencies: nanoid: 3.3.11 @@ -23520,7 +22907,7 @@ snapshots: commander: 9.5.0 optional: true - preact@10.26.5: {} + preact@10.26.9: {} prebuild-install@7.1.3: dependencies: @@ -23566,8 +22953,6 @@ snapshots: prettier@2.8.7: optional: true - prettier@3.5.3: {} - prettier@3.6.2: {} pretty-bytes@6.1.1: {} @@ -23578,8 +22963,6 @@ snapshots: ansi-styles: 5.2.0 react-is: 17.0.2 - printable-characters@1.0.42: {} - prismjs@1.30.0: {} proc-log@2.0.1: {} @@ -23627,12 +23010,12 @@ snapshots: dependencies: punycode: 2.3.1 - publish-browser-extension@3.0.0: + publish-browser-extension@3.0.1: dependencies: cac: 6.7.14 cli-highlight: 2.1.11 consola: 3.4.2 - dotenv: 16.5.0 + dotenv: 16.6.1 extract-zip: 2.0.1 formdata-node: 6.0.3 listr2: 8.3.3 @@ -23643,7 +23026,7 @@ snapshots: open: 9.1.0 ora: 6.3.1 prompts: 2.4.2 - zod: 3.25.74 + zod: 3.25.76 transitivePeerDependencies: - supports-color @@ -24060,73 +23443,47 @@ snapshots: robust-predicates@3.0.2: {} - rollup-plugin-dts@6.2.1(rollup@4.41.0)(typescript@5.8.3): + rollup-plugin-dts@6.2.1(rollup@4.44.2)(typescript@5.8.3): dependencies: magic-string: 0.30.17 - rollup: 4.41.0 + rollup: 4.44.2 typescript: 5.8.3 optionalDependencies: '@babel/code-frame': 7.27.1 - rollup-plugin-visualizer@6.0.3(rollup@4.44.1): + rollup-plugin-visualizer@6.0.3(rollup@4.44.2): dependencies: open: 8.4.2 picomatch: 4.0.2 source-map: 0.7.4 yargs: 17.7.2 optionalDependencies: - rollup: 4.44.1 - - rollup@4.41.0: - dependencies: - '@types/estree': 1.0.7 - optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.41.0 - '@rollup/rollup-android-arm64': 4.41.0 - '@rollup/rollup-darwin-arm64': 4.41.0 - '@rollup/rollup-darwin-x64': 4.41.0 - '@rollup/rollup-freebsd-arm64': 4.41.0 - '@rollup/rollup-freebsd-x64': 4.41.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.41.0 - '@rollup/rollup-linux-arm-musleabihf': 4.41.0 - '@rollup/rollup-linux-arm64-gnu': 4.41.0 - '@rollup/rollup-linux-arm64-musl': 4.41.0 - '@rollup/rollup-linux-loongarch64-gnu': 4.41.0 - '@rollup/rollup-linux-powerpc64le-gnu': 4.41.0 - '@rollup/rollup-linux-riscv64-gnu': 4.41.0 - '@rollup/rollup-linux-riscv64-musl': 4.41.0 - '@rollup/rollup-linux-s390x-gnu': 4.41.0 - '@rollup/rollup-linux-x64-gnu': 4.41.0 - '@rollup/rollup-linux-x64-musl': 4.41.0 - '@rollup/rollup-win32-arm64-msvc': 4.41.0 - '@rollup/rollup-win32-ia32-msvc': 4.41.0 - '@rollup/rollup-win32-x64-msvc': 4.41.0 - fsevents: 2.3.3 + rollup: 4.44.2 - rollup@4.44.1: + rollup@4.44.2: dependencies: '@types/estree': 1.0.8 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.44.1 - '@rollup/rollup-android-arm64': 4.44.1 - '@rollup/rollup-darwin-arm64': 4.44.1 - '@rollup/rollup-darwin-x64': 4.44.1 - '@rollup/rollup-freebsd-arm64': 4.44.1 - '@rollup/rollup-freebsd-x64': 4.44.1 - '@rollup/rollup-linux-arm-gnueabihf': 4.44.1 - '@rollup/rollup-linux-arm-musleabihf': 4.44.1 - '@rollup/rollup-linux-arm64-gnu': 4.44.1 - '@rollup/rollup-linux-arm64-musl': 4.44.1 - '@rollup/rollup-linux-loongarch64-gnu': 4.44.1 - '@rollup/rollup-linux-powerpc64le-gnu': 4.44.1 - '@rollup/rollup-linux-riscv64-gnu': 4.44.1 - '@rollup/rollup-linux-riscv64-musl': 4.44.1 - '@rollup/rollup-linux-s390x-gnu': 4.44.1 - '@rollup/rollup-linux-x64-gnu': 4.44.1 - '@rollup/rollup-linux-x64-musl': 4.44.1 - '@rollup/rollup-win32-arm64-msvc': 4.44.1 - '@rollup/rollup-win32-ia32-msvc': 4.44.1 - '@rollup/rollup-win32-x64-msvc': 4.44.1 + '@rollup/rollup-android-arm-eabi': 4.44.2 + '@rollup/rollup-android-arm64': 4.44.2 + '@rollup/rollup-darwin-arm64': 4.44.2 + '@rollup/rollup-darwin-x64': 4.44.2 + '@rollup/rollup-freebsd-arm64': 4.44.2 + '@rollup/rollup-freebsd-x64': 4.44.2 + '@rollup/rollup-linux-arm-gnueabihf': 4.44.2 + '@rollup/rollup-linux-arm-musleabihf': 4.44.2 + '@rollup/rollup-linux-arm64-gnu': 4.44.2 + '@rollup/rollup-linux-arm64-musl': 4.44.2 + '@rollup/rollup-linux-loongarch64-gnu': 4.44.2 + '@rollup/rollup-linux-powerpc64le-gnu': 4.44.2 + '@rollup/rollup-linux-riscv64-gnu': 4.44.2 + '@rollup/rollup-linux-riscv64-musl': 4.44.2 + '@rollup/rollup-linux-s390x-gnu': 4.44.2 + '@rollup/rollup-linux-x64-gnu': 4.44.2 + '@rollup/rollup-linux-x64-musl': 4.44.2 + '@rollup/rollup-win32-arm64-msvc': 4.44.2 + '@rollup/rollup-win32-ia32-msvc': 4.44.2 + '@rollup/rollup-win32-x64-msvc': 4.44.2 fsevents: 2.3.3 rou3@0.7.3: {} @@ -24277,7 +23634,7 @@ snapshots: ms: 2.1.3 on-finished: 2.4.1 range-parser: 1.2.1 - statuses: 2.0.1 + statuses: 2.0.2 transitivePeerDependencies: - supports-color @@ -24290,16 +23647,10 @@ snapshots: dependencies: randombytes: 2.1.0 - seroval-plugins@1.3.1(seroval@1.3.1): - dependencies: - seroval: 1.3.1 - seroval-plugins@1.3.2(seroval@1.3.2): dependencies: seroval: 1.3.2 - seroval@1.3.1: {} - seroval@1.3.2: {} serve-placeholder@2.0.2: @@ -24361,33 +23712,34 @@ snapshots: '@img/sharp-win32-ia32': 0.33.5 '@img/sharp-win32-x64': 0.33.5 - sharp@0.34.2: + sharp@0.34.3: dependencies: color: 4.2.3 detect-libc: 2.0.4 semver: 7.7.2 optionalDependencies: - '@img/sharp-darwin-arm64': 0.34.2 - '@img/sharp-darwin-x64': 0.34.2 - '@img/sharp-libvips-darwin-arm64': 1.1.0 - '@img/sharp-libvips-darwin-x64': 1.1.0 - '@img/sharp-libvips-linux-arm': 1.1.0 - '@img/sharp-libvips-linux-arm64': 1.1.0 - '@img/sharp-libvips-linux-ppc64': 1.1.0 - '@img/sharp-libvips-linux-s390x': 1.1.0 - '@img/sharp-libvips-linux-x64': 1.1.0 - '@img/sharp-libvips-linuxmusl-arm64': 1.1.0 - '@img/sharp-libvips-linuxmusl-x64': 1.1.0 - '@img/sharp-linux-arm': 0.34.2 - '@img/sharp-linux-arm64': 0.34.2 - '@img/sharp-linux-s390x': 0.34.2 - '@img/sharp-linux-x64': 0.34.2 - '@img/sharp-linuxmusl-arm64': 0.34.2 - '@img/sharp-linuxmusl-x64': 0.34.2 - '@img/sharp-wasm32': 0.34.2 - '@img/sharp-win32-arm64': 0.34.2 - '@img/sharp-win32-ia32': 0.34.2 - '@img/sharp-win32-x64': 0.34.2 + '@img/sharp-darwin-arm64': 0.34.3 + '@img/sharp-darwin-x64': 0.34.3 + '@img/sharp-libvips-darwin-arm64': 1.2.0 + '@img/sharp-libvips-darwin-x64': 1.2.0 + '@img/sharp-libvips-linux-arm': 1.2.0 + '@img/sharp-libvips-linux-arm64': 1.2.0 + '@img/sharp-libvips-linux-ppc64': 1.2.0 + '@img/sharp-libvips-linux-s390x': 1.2.0 + '@img/sharp-libvips-linux-x64': 1.2.0 + '@img/sharp-libvips-linuxmusl-arm64': 1.2.0 + '@img/sharp-libvips-linuxmusl-x64': 1.2.0 + '@img/sharp-linux-arm': 0.34.3 + '@img/sharp-linux-arm64': 0.34.3 + '@img/sharp-linux-ppc64': 0.34.3 + '@img/sharp-linux-s390x': 0.34.3 + '@img/sharp-linux-x64': 0.34.3 + '@img/sharp-linuxmusl-arm64': 0.34.3 + '@img/sharp-linuxmusl-x64': 0.34.3 + '@img/sharp-wasm32': 0.34.3 + '@img/sharp-win32-arm64': 0.34.3 + '@img/sharp-win32-ia32': 0.34.3 + '@img/sharp-win32-x64': 0.34.3 optional: true shebang-command@2.0.0: @@ -24562,14 +23914,14 @@ snapshots: solid-js@1.9.7: dependencies: csstype: 3.1.3 - seroval: 1.3.1 - seroval-plugins: 1.3.1(seroval@1.3.1) + seroval: 1.3.2 + seroval-plugins: 1.3.2(seroval@1.3.2) solid-refresh@0.6.3(solid-js@1.9.7): dependencies: - '@babel/generator': 7.27.5 + '@babel/generator': 7.28.0 '@babel/helper-module-imports': 7.27.1 - '@babel/types': 7.27.6 + '@babel/types': 7.28.0 solid-js: 1.9.7 transitivePeerDependencies: - supports-color @@ -24649,11 +24001,6 @@ snapshots: stackframe@1.3.4: {} - stacktracey@2.1.8: - dependencies: - as-table: 1.0.55 - get-source: 2.0.12 - standard-as-callback@2.1.0: {} stat-mode@1.0.0: {} @@ -24679,7 +24026,7 @@ snapshots: fast-fifo: 1.3.2 text-decoder: 1.2.3 optionalDependencies: - bare-events: 2.5.4 + bare-events: 2.6.0 strict-event-emitter@0.5.1: {} @@ -24757,10 +24104,9 @@ snapshots: dependencies: js-tokens: 9.0.1 - strtok3@10.2.2: + strtok3@10.3.1: dependencies: '@tokenizer/token': 0.3.0 - peek-readable: 7.0.0 strtok3@9.1.1: dependencies: @@ -24771,12 +24117,12 @@ snapshots: stubborn-fs@1.2.5: {} - styled-jsx@5.1.6(@babel/core@7.27.4)(react@19.1.0): + styled-jsx@5.1.6(@babel/core@7.28.0)(react@19.1.0): dependencies: client-only: 0.0.1 react: 19.1.0 optionalDependencies: - '@babel/core': 7.27.4 + '@babel/core': 7.28.0 stylehacks@7.0.5(postcss@8.5.6): dependencies: @@ -24792,13 +24138,13 @@ snapshots: transitivePeerDependencies: - supports-color - superagent@10.2.1: + superagent@10.2.2: dependencies: component-emitter: 1.3.1 cookiejar: 2.1.4 debug: 4.4.1 fast-safe-stringify: 2.1.1 - form-data: 4.0.2 + form-data: 4.0.3 formidable: 3.5.4 methods: 1.1.2 mime: 2.6.0 @@ -24810,10 +24156,10 @@ snapshots: dependencies: copy-anything: 3.0.5 - supertest@7.1.1: + supertest@7.1.3: dependencies: methods: 1.1.2 - superagent: 10.2.1 + superagent: 10.2.2 transitivePeerDependencies: - supports-color @@ -24829,19 +24175,19 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - svelte-check@4.2.2(picomatch@4.0.2)(svelte@5.35.2)(typescript@5.8.3): + svelte-check@4.2.2(picomatch@4.0.2)(svelte@5.35.6)(typescript@5.8.3): dependencies: - '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/trace-mapping': 0.3.29 chokidar: 4.0.3 fdir: 6.4.6(picomatch@4.0.2) picocolors: 1.1.1 sade: 1.8.1 - svelte: 5.35.2 + svelte: 5.35.6 typescript: 5.8.3 transitivePeerDependencies: - picomatch - svelte@5.35.2: + svelte@5.35.6: dependencies: '@ampproject/remapping': 2.3.0 '@jridgewell/sourcemap-codec': 1.5.4 @@ -24876,7 +24222,7 @@ snapshots: dependencies: '@pkgr/core': 0.2.7 - synckit@0.9.2: + synckit@0.9.3: dependencies: '@pkgr/core': 0.1.2 tslib: 2.8.1 @@ -24885,8 +24231,6 @@ snapshots: tabbable@6.2.0: {} - tapable@2.2.1: {} - tapable@2.2.2: {} tar-fs@2.1.3: @@ -24943,16 +24287,16 @@ snapshots: solid-js: 1.9.7 solid-use: 0.9.1(solid-js@1.9.7) - terser-webpack-plugin@5.3.14(@swc/core@1.12.9(@swc/helpers@0.5.17))(webpack@5.99.6(@swc/core@1.12.9(@swc/helpers@0.5.17))): + terser-webpack-plugin@5.3.14(@swc/core@1.12.11(@swc/helpers@0.5.17))(webpack@5.99.6(@swc/core@1.12.11(@swc/helpers@0.5.17))): dependencies: '@jridgewell/trace-mapping': 0.3.29 jest-worker: 27.5.1 schema-utils: 4.3.2 serialize-javascript: 6.0.2 - terser: 5.39.2 - webpack: 5.99.6(@swc/core@1.12.9(@swc/helpers@0.5.17)) + terser: 5.43.1 + webpack: 5.99.6(@swc/core@1.12.11(@swc/helpers@0.5.17)) optionalDependencies: - '@swc/core': 1.12.9(@swc/helpers@0.5.17) + '@swc/core': 1.12.11(@swc/helpers@0.5.17) terser-webpack-plugin@5.3.14(webpack@5.99.6): dependencies: @@ -24960,17 +24304,10 @@ snapshots: jest-worker: 27.5.1 schema-utils: 4.3.2 serialize-javascript: 6.0.2 - terser: 5.39.2 + terser: 5.43.1 webpack: 5.99.6 optional: true - terser@5.39.2: - dependencies: - '@jridgewell/source-map': 0.3.6 - acorn: 8.15.0 - commander: 2.20.3 - source-map-support: 0.5.21 - terser@5.43.1: dependencies: '@jridgewell/source-map': 0.3.10 @@ -25020,11 +24357,6 @@ snapshots: tinyexec@1.0.1: {} - tinyglobby@0.2.13: - dependencies: - fdir: 6.4.4(picomatch@4.0.2) - picomatch: 4.0.2 - tinyglobby@0.2.14: dependencies: fdir: 6.4.6(picomatch@4.0.2) @@ -25062,7 +24394,7 @@ snapshots: toidentifier@1.0.1: {} - token-types@6.0.0: + token-types@6.0.3: dependencies: '@tokenizer/token': 0.3.0 ieee754: 1.2.1 @@ -25117,25 +24449,25 @@ snapshots: ts-dedent@2.2.0: {} - ts-loader@9.5.2(typescript@5.8.3)(webpack@5.99.6(@swc/core@1.12.9(@swc/helpers@0.5.17))): + ts-loader@9.5.2(typescript@5.8.3)(webpack@5.99.6(@swc/core@1.12.11(@swc/helpers@0.5.17))): dependencies: chalk: 4.1.2 - enhanced-resolve: 5.18.1 + enhanced-resolve: 5.18.2 micromatch: 4.0.8 semver: 7.7.2 source-map: 0.7.4 typescript: 5.8.3 - webpack: 5.99.6(@swc/core@1.12.9(@swc/helpers@0.5.17)) + webpack: 5.99.6(@swc/core@1.12.11(@swc/helpers@0.5.17)) - ts-node@10.9.2(@swc/core@1.12.9(@swc/helpers@0.5.17))(@types/node@22.15.30)(typescript@5.8.3): + ts-node@10.9.2(@swc/core@1.12.11(@swc/helpers@0.5.17))(@types/node@22.16.3)(typescript@5.8.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 22.15.30 - acorn: 8.14.1 + '@types/node': 22.16.3 + acorn: 8.15.0 acorn-walk: 8.3.4 arg: 4.1.3 create-require: 1.1.1 @@ -25145,11 +24477,7 @@ snapshots: v8-compile-cache-lib: 3.0.1 yn: 3.1.1 optionalDependencies: - '@swc/core': 1.12.9(@swc/helpers@0.5.17) - - tsconfck@3.1.5(typescript@5.8.3): - optionalDependencies: - typescript: 5.8.3 + '@swc/core': 1.12.11(@swc/helpers@0.5.17) tsconfck@3.1.6(typescript@5.8.3): optionalDependencies: @@ -25158,8 +24486,8 @@ snapshots: tsconfig-paths-webpack-plugin@4.2.0: dependencies: chalk: 4.1.2 - enhanced-resolve: 5.18.1 - tapable: 2.2.1 + enhanced-resolve: 5.18.2 + tapable: 2.2.2 tsconfig-paths: 4.2.0 tsconfig-paths@4.2.0: @@ -25174,7 +24502,7 @@ snapshots: tsx@4.20.3: dependencies: - esbuild: 0.25.5 + esbuild: 0.25.6 get-tsconfig: 4.10.1 optionalDependencies: fsevents: 2.3.3 @@ -25183,21 +24511,21 @@ snapshots: dependencies: safe-buffer: 5.2.1 - twoslash-protocol@0.3.1: {} + twoslash-protocol@0.3.2: {} - twoslash-vue@0.3.1(typescript@5.8.3): + twoslash-vue@0.3.2(typescript@5.8.3): dependencies: - '@vue/language-core': 2.2.4(typescript@5.8.3) - twoslash: 0.3.1(typescript@5.8.3) - twoslash-protocol: 0.3.1 + '@vue/language-core': 3.0.1(typescript@5.8.3) + twoslash: 0.3.2(typescript@5.8.3) + twoslash-protocol: 0.3.2 typescript: 5.8.3 transitivePeerDependencies: - supports-color - twoslash@0.3.1(typescript@5.8.3): + twoslash@0.3.2(typescript@5.8.3): dependencies: '@typescript/vfs': 1.6.1(typescript@5.8.3) - twoslash-protocol: 0.3.1 + twoslash-protocol: 0.3.2 typescript: 5.8.3 transitivePeerDependencies: - supports-color @@ -25230,7 +24558,7 @@ snapshots: typesafe-path@0.2.2: {} - typescript-auto-import-cache@0.3.5: + typescript-auto-import-cache@0.3.6: dependencies: semver: 7.7.2 @@ -25255,16 +24583,16 @@ snapshots: unbuild@3.5.0(typescript@5.8.3)(vue@3.5.17(typescript@5.8.3)): dependencies: - '@rollup/plugin-alias': 5.1.1(rollup@4.41.0) - '@rollup/plugin-commonjs': 28.0.3(rollup@4.41.0) - '@rollup/plugin-json': 6.1.0(rollup@4.41.0) - '@rollup/plugin-node-resolve': 16.0.1(rollup@4.41.0) - '@rollup/plugin-replace': 6.0.2(rollup@4.41.0) - '@rollup/pluginutils': 5.1.4(rollup@4.41.0) + '@rollup/plugin-alias': 5.1.1(rollup@4.44.2) + '@rollup/plugin-commonjs': 28.0.6(rollup@4.44.2) + '@rollup/plugin-json': 6.1.0(rollup@4.44.2) + '@rollup/plugin-node-resolve': 16.0.1(rollup@4.44.2) + '@rollup/plugin-replace': 6.0.2(rollup@4.44.2) + '@rollup/pluginutils': 5.2.0(rollup@4.44.2) citty: 0.1.6 consola: 3.4.2 defu: 6.1.4 - esbuild: 0.25.4 + esbuild: 0.25.6 fix-dts-default-cjs-exports: 1.0.1 hookable: 5.5.3 jiti: 2.4.2 @@ -25272,12 +24600,12 @@ snapshots: mkdist: 2.3.0(typescript@5.8.3)(vue@3.5.17(typescript@5.8.3)) mlly: 1.7.4 pathe: 2.0.3 - pkg-types: 2.1.0 + pkg-types: 2.2.0 pretty-bytes: 6.1.1 - rollup: 4.41.0 - rollup-plugin-dts: 6.2.1(rollup@4.41.0)(typescript@5.8.3) + rollup: 4.44.2 + rollup-plugin-dts: 6.2.1(rollup@4.44.2)(typescript@5.8.3) scule: 1.3.0 - tinyglobby: 0.2.13 + tinyglobby: 0.2.14 untyped: 2.0.0 optionalDependencies: typescript: 5.8.3 @@ -25305,9 +24633,6 @@ snapshots: undici-types@6.21.0: {} - undici-types@7.8.0: - optional: true - undici@5.29.0: dependencies: '@fastify/busboy': 2.1.1 @@ -25338,7 +24663,7 @@ snapshots: pathe: 2.0.3 ufo: 1.6.1 - unhead@2.0.11: + unhead@2.0.12: dependencies: hookable: 5.5.3 @@ -25372,23 +24697,6 @@ snapshots: ofetch: 1.4.1 ohash: 2.0.11 - unimport@5.0.1: - dependencies: - acorn: 8.15.0 - escape-string-regexp: 5.0.0 - estree-walker: 3.0.3 - local-pkg: 1.1.1 - magic-string: 0.30.17 - mlly: 1.7.4 - pathe: 2.0.3 - picomatch: 4.0.2 - pkg-types: 2.1.0 - scule: 1.3.0 - strip-literal: 3.0.0 - tinyglobby: 0.2.14 - unplugin: 2.3.4 - unplugin-utils: 0.2.4 - unimport@5.1.0: dependencies: acorn: 8.15.0 @@ -25519,12 +24827,6 @@ snapshots: acorn: 8.15.0 webpack-virtual-modules: 0.6.2 - unplugin@2.3.4: - dependencies: - acorn: 8.15.0 - picomatch: 4.0.2 - webpack-virtual-modules: 0.6.2 - unplugin@2.3.5: dependencies: acorn: 8.15.0 @@ -25570,18 +24872,6 @@ snapshots: pkg-types: 1.3.1 unplugin: 1.16.1 - update-browserslist-db@1.1.3(browserslist@4.24.5): - dependencies: - browserslist: 4.24.5 - escalade: 3.2.0 - picocolors: 1.1.1 - - update-browserslist-db@1.1.3(browserslist@4.25.0): - dependencies: - browserslist: 4.25.0 - escalade: 3.2.0 - picocolors: 1.1.1 - update-browserslist-db@1.1.3(browserslist@4.25.1): dependencies: browserslist: 4.25.1 @@ -25667,11 +24957,11 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.2 - vinxi@0.5.8(@types/node@24.0.10)(better-sqlite3@12.2.0)(db0@0.3.2(better-sqlite3@12.2.0))(encoding@0.1.13)(ioredis@5.6.1)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(xml2js@0.6.2)(yaml@2.8.0): + vinxi@0.5.8(@types/node@22.16.3)(better-sqlite3@12.2.0)(db0@0.3.2(better-sqlite3@12.2.0))(encoding@0.1.13)(ioredis@5.6.1)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(xml2js@0.6.2)(yaml@2.8.0): dependencies: - '@babel/core': 7.27.7 - '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.27.7) - '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.27.7) + '@babel/core': 7.28.0 + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.0) '@types/micromatch': 4.0.9 '@vinxi/listhen': 1.5.6 boxen: 8.0.1 @@ -25682,7 +24972,7 @@ snapshots: dax-sh: 0.43.2 defu: 6.1.4 es-module-lexer: 1.7.0 - esbuild: 0.25.5 + esbuild: 0.25.6 get-port-please: 3.1.2 h3: 1.15.3 hookable: 5.5.3 @@ -25701,8 +24991,8 @@ snapshots: unctx: 2.4.1 unenv: 1.10.0 unstorage: 1.16.0(db0@0.3.2(better-sqlite3@12.2.0))(ioredis@5.6.1) - vite: 6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) - zod: 3.25.74 + vite: 6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) + zod: 3.25.76 transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -25745,65 +25035,23 @@ snapshots: - xml2js - yaml - vite-dev-rpc@1.1.0(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)): + vite-dev-rpc@1.1.0(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)): dependencies: birpc: 2.4.0 - vite: 6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) - vite-hot-client: 2.1.0(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) - - vite-hot-client@2.1.0(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)): - dependencies: - vite: 6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) - - vite-node@3.1.4(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0): - dependencies: - cac: 6.7.14 - debug: 4.4.1 - es-module-lexer: 1.7.0 - pathe: 2.0.3 - vite: 6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) - transitivePeerDependencies: - - '@types/node' - - jiti - - less - - lightningcss - - sass - - sass-embedded - - stylus - - sugarss - - supports-color - - terser - - tsx - - yaml + vite: 6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) + vite-hot-client: 2.1.0(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) - vite-node@3.2.4(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0): + vite-hot-client@2.1.0(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)): dependencies: - cac: 6.7.14 - debug: 4.4.1 - es-module-lexer: 1.7.0 - pathe: 2.0.3 - vite: 6.3.5(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) - transitivePeerDependencies: - - '@types/node' - - jiti - - less - - lightningcss - - sass - - sass-embedded - - stylus - - sugarss - - supports-color - - terser - - tsx - - yaml + vite: 6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) - vite-node@3.2.4(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0): + vite-node@3.2.4(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0): dependencies: cac: 6.7.14 debug: 4.4.1 es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) + vite: 6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) transitivePeerDependencies: - '@types/node' - jiti @@ -25818,7 +25066,7 @@ snapshots: - tsx - yaml - vite-plugin-checker@0.9.3(eslint@9.30.1(jiti@2.4.2))(optionator@0.9.4)(typescript@5.8.3)(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)): + vite-plugin-checker@0.9.3(eslint@9.30.1(jiti@2.4.2))(optionator@0.9.4)(typescript@5.8.3)(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)): dependencies: '@babel/code-frame': 7.27.1 chokidar: 4.0.3 @@ -25828,14 +25076,14 @@ snapshots: strip-ansi: 7.1.0 tiny-invariant: 1.3.3 tinyglobby: 0.2.14 - vite: 6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) + vite: 6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) vscode-uri: 3.1.0 optionalDependencies: eslint: 9.30.1(jiti@2.4.2) optionator: 0.9.4 typescript: 5.8.3 - vite-plugin-inspect@11.3.0(@nuxt/kit@3.17.6(magicast@0.3.5))(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)): + vite-plugin-inspect@11.3.0(@nuxt/kit@3.17.6(magicast@0.3.5))(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)): dependencies: ansis: 4.1.0 debug: 4.4.1 @@ -25845,147 +25093,100 @@ snapshots: perfect-debounce: 1.0.0 sirv: 3.0.1 unplugin-utils: 0.2.4 - vite: 6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) - vite-dev-rpc: 1.1.0(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) + vite: 6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) + vite-dev-rpc: 1.1.0(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) optionalDependencies: '@nuxt/kit': 3.17.6(magicast@0.3.5) transitivePeerDependencies: - supports-color - vite-plugin-solid@2.11.7(@testing-library/jest-dom@6.6.3)(solid-js@1.9.7)(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)): - dependencies: - '@babel/core': 7.27.4 - '@types/babel__core': 7.20.5 - babel-preset-solid: 1.9.6(@babel/core@7.27.4) - merge-anything: 5.1.7 - solid-js: 1.9.7 - solid-refresh: 0.6.3(solid-js@1.9.7) - vite: 6.3.5(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) - vitefu: 1.0.7(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) - optionalDependencies: - '@testing-library/jest-dom': 6.6.3 - transitivePeerDependencies: - - supports-color - - vite-plugin-solid@2.11.7(@testing-library/jest-dom@6.6.3)(solid-js@1.9.7)(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)): + vite-plugin-solid@2.11.7(@testing-library/jest-dom@6.6.3)(solid-js@1.9.7)(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)): dependencies: - '@babel/core': 7.27.4 + '@babel/core': 7.28.0 '@types/babel__core': 7.20.5 - babel-preset-solid: 1.9.6(@babel/core@7.27.4) + babel-preset-solid: 1.9.6(@babel/core@7.28.0) merge-anything: 5.1.7 solid-js: 1.9.7 solid-refresh: 0.6.3(solid-js@1.9.7) - vite: 6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) - vitefu: 1.0.7(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) + vite: 6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) + vitefu: 1.1.1(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) optionalDependencies: '@testing-library/jest-dom': 6.6.3 transitivePeerDependencies: - supports-color - vite-plugin-top-level-await@1.5.0(@swc/helpers@0.5.17)(rollup@4.44.1)(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)): + vite-plugin-top-level-await@1.5.0(@swc/helpers@0.5.17)(rollup@4.44.2)(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)): dependencies: - '@rollup/plugin-virtual': 3.0.2(rollup@4.44.1) - '@swc/core': 1.12.9(@swc/helpers@0.5.17) + '@rollup/plugin-virtual': 3.0.2(rollup@4.44.2) + '@swc/core': 1.12.11(@swc/helpers@0.5.17) uuid: 10.0.0 - vite: 6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) + vite: 6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) transitivePeerDependencies: - '@swc/helpers' - rollup - vite-plugin-vue-tracer@1.0.0(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3)): + vite-plugin-vue-tracer@1.0.0(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3)): dependencies: estree-walker: 3.0.3 exsolve: 1.0.7 magic-string: 0.30.17 pathe: 2.0.3 source-map-js: 1.2.1 - vite: 6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) + vite: 6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) vue: 3.5.17(typescript@5.8.3) - vite-tsconfig-paths@5.1.4(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)): + vite-tsconfig-paths@5.1.4(typescript@5.8.3)(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)): dependencies: debug: 4.4.1 globrex: 0.1.2 - tsconfck: 3.1.5(typescript@5.8.3) + tsconfck: 3.1.6(typescript@5.8.3) optionalDependencies: - vite: 6.3.5(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) + vite: 6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) transitivePeerDependencies: - supports-color - typescript - vite@5.4.18(@types/node@22.15.30)(terser@5.43.1): + vite@5.4.19(@types/node@22.16.3)(terser@5.43.1): dependencies: esbuild: 0.21.5 - postcss: 8.5.3 - rollup: 4.41.0 - optionalDependencies: - '@types/node': 22.15.30 - fsevents: 2.3.3 - terser: 5.43.1 - - vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0): - dependencies: - esbuild: 0.25.4 - fdir: 6.4.4(picomatch@4.0.2) - picomatch: 4.0.2 - postcss: 8.5.3 - rollup: 4.41.0 - tinyglobby: 0.2.13 + postcss: 8.5.6 + rollup: 4.44.2 optionalDependencies: - '@types/node': 22.15.30 + '@types/node': 22.16.3 fsevents: 2.3.3 - jiti: 2.4.2 terser: 5.43.1 - tsx: 4.20.3 - yaml: 2.8.0 - vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0): + vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0): dependencies: - esbuild: 0.25.4 - fdir: 6.4.4(picomatch@4.0.2) + esbuild: 0.25.6 + fdir: 6.4.6(picomatch@4.0.2) picomatch: 4.0.2 - postcss: 8.5.3 - rollup: 4.41.0 - tinyglobby: 0.2.13 + postcss: 8.5.6 + rollup: 4.44.2 + tinyglobby: 0.2.14 optionalDependencies: - '@types/node': 24.0.10 + '@types/node': 22.16.3 fsevents: 2.3.3 jiti: 2.4.2 terser: 5.43.1 tsx: 4.20.3 yaml: 2.8.0 - vitefu@1.0.6(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)): + vitefu@1.1.1(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)): optionalDependencies: - vite: 6.3.5(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) + vite: 6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) - vitefu@1.0.6(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)): - optionalDependencies: - vite: 6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) - - vitefu@1.0.7(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)): - optionalDependencies: - vite: 6.3.5(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) - - vitefu@1.0.7(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)): - optionalDependencies: - vite: 6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) - - vitefu@1.1.1(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)): - optionalDependencies: - vite: 6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) - - vitepress-plugin-group-icons@1.6.1(markdown-it@14.1.0)(vite@5.4.18(@types/node@22.15.30)(terser@5.43.1)): + vitepress-plugin-group-icons@1.6.1(markdown-it@14.1.0)(vite@5.4.19(@types/node@22.16.3)(terser@5.43.1)): dependencies: '@iconify-json/logos': 1.2.4 '@iconify-json/vscode-icons': 1.2.23 '@iconify/utils': 2.3.0 markdown-it: 14.1.0 - vite: 5.4.18(@types/node@22.15.30)(terser@5.43.1) + vite: 5.4.19(@types/node@22.16.3)(terser@5.43.1) transitivePeerDependencies: - supports-color - vitepress-plugin-llms@1.6.0: + vitepress-plugin-llms@1.7.0: dependencies: byte-size: 9.0.1 gray-matter: 4.0.3 @@ -26004,40 +25205,40 @@ snapshots: - '@75lb/nature' - supports-color - vitepress-plugin-mermaid@2.0.17(mermaid@11.8.0)(vitepress@1.6.3(@algolia/client-search@5.23.3)(@types/node@22.15.30)(@types/react@19.1.8)(fuse.js@7.1.0)(jwt-decode@4.0.0)(postcss@8.5.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(search-insights@2.17.3)(terser@5.43.1)(typescript@5.8.3)): + vitepress-plugin-mermaid@2.0.17(mermaid@11.8.1)(vitepress@1.6.3(@algolia/client-search@5.32.0)(@types/node@22.16.3)(@types/react@19.1.8)(fuse.js@7.1.0)(jwt-decode@4.0.0)(postcss@8.5.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(search-insights@2.17.3)(terser@5.43.1)(typescript@5.8.3)): dependencies: - mermaid: 11.8.0 - vitepress: 1.6.3(@algolia/client-search@5.23.3)(@types/node@22.15.30)(@types/react@19.1.8)(fuse.js@7.1.0)(jwt-decode@4.0.0)(postcss@8.5.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(search-insights@2.17.3)(terser@5.43.1)(typescript@5.8.3) + mermaid: 11.8.1 + vitepress: 1.6.3(@algolia/client-search@5.32.0)(@types/node@22.16.3)(@types/react@19.1.8)(fuse.js@7.1.0)(jwt-decode@4.0.0)(postcss@8.5.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(search-insights@2.17.3)(terser@5.43.1)(typescript@5.8.3) optionalDependencies: '@mermaid-js/mermaid-mindmap': 9.3.0 - vitepress-plugin-shiki-twoslash@0.0.6(typescript@5.8.3)(vitepress@1.6.3(@algolia/client-search@5.23.3)(@types/node@22.15.30)(@types/react@19.1.8)(fuse.js@7.1.0)(jwt-decode@4.0.0)(postcss@8.5.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(search-insights@2.17.3)(terser@5.43.1)(typescript@5.8.3)): + vitepress-plugin-shiki-twoslash@0.0.6(typescript@5.8.3)(vitepress@1.6.3(@algolia/client-search@5.32.0)(@types/node@22.16.3)(@types/react@19.1.8)(fuse.js@7.1.0)(jwt-decode@4.0.0)(postcss@8.5.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(search-insights@2.17.3)(terser@5.43.1)(typescript@5.8.3)): dependencies: remark-shiki-twoslash: 3.1.3(typescript@5.8.3) - vitepress: 1.6.3(@algolia/client-search@5.23.3)(@types/node@22.15.30)(@types/react@19.1.8)(fuse.js@7.1.0)(jwt-decode@4.0.0)(postcss@8.5.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(search-insights@2.17.3)(terser@5.43.1)(typescript@5.8.3) + vitepress: 1.6.3(@algolia/client-search@5.32.0)(@types/node@22.16.3)(@types/react@19.1.8)(fuse.js@7.1.0)(jwt-decode@4.0.0)(postcss@8.5.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(search-insights@2.17.3)(terser@5.43.1)(typescript@5.8.3) transitivePeerDependencies: - supports-color - typescript - vitepress@1.6.3(@algolia/client-search@5.23.3)(@types/node@22.15.30)(@types/react@19.1.8)(fuse.js@7.1.0)(jwt-decode@4.0.0)(postcss@8.5.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(search-insights@2.17.3)(terser@5.43.1)(typescript@5.8.3): + vitepress@1.6.3(@algolia/client-search@5.32.0)(@types/node@22.16.3)(@types/react@19.1.8)(fuse.js@7.1.0)(jwt-decode@4.0.0)(postcss@8.5.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(search-insights@2.17.3)(terser@5.43.1)(typescript@5.8.3): dependencies: '@docsearch/css': 3.8.2 - '@docsearch/js': 3.8.2(@algolia/client-search@5.23.3)(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(search-insights@2.17.3) - '@iconify-json/simple-icons': 1.2.31 + '@docsearch/js': 3.8.2(@algolia/client-search@5.32.0)(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(search-insights@2.17.3) + '@iconify-json/simple-icons': 1.2.42 '@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.4(vite@5.4.18(@types/node@22.15.30)(terser@5.43.1))(vue@3.5.17(typescript@5.8.3)) - '@vue/devtools-api': 7.7.6 - '@vue/shared': 3.5.16 + '@vitejs/plugin-vue': 5.2.4(vite@5.4.19(@types/node@22.16.3)(terser@5.43.1))(vue@3.5.17(typescript@5.8.3)) + '@vue/devtools-api': 7.7.7 + '@vue/shared': 3.5.17 '@vueuse/core': 12.8.2(typescript@5.8.3) - '@vueuse/integrations': 12.8.2(focus-trap@7.6.4)(fuse.js@7.1.0)(jwt-decode@4.0.0)(typescript@5.8.3) - focus-trap: 7.6.4 + '@vueuse/integrations': 12.8.2(focus-trap@7.6.5)(fuse.js@7.1.0)(jwt-decode@4.0.0)(typescript@5.8.3) + focus-trap: 7.6.5 mark.js: 8.11.1 minisearch: 7.1.2 shiki: 2.5.0 - vite: 5.4.18(@types/node@22.15.30)(terser@5.43.1) + vite: 5.4.19(@types/node@22.16.3)(terser@5.43.1) vue: 3.5.17(typescript@5.8.3) optionalDependencies: postcss: 8.5.6 @@ -26068,19 +25269,19 @@ snapshots: - typescript - universal-cookie - vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.15.30)(@vitest/ui@3.2.4)(jiti@2.4.2)(jsdom@26.1.0)(msw@2.10.3(@types/node@22.15.30)(typescript@5.8.3))(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0): + vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.16.3)(@vitest/ui@3.2.4)(jiti@2.4.2)(jsdom@26.1.0)(msw@2.10.3(@types/node@22.16.3)(typescript@5.8.3))(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0): dependencies: '@types/chai': 5.2.2 '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(msw@2.10.3(@types/node@22.15.30)(typescript@5.8.3))(vite@6.3.5(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) + '@vitest/mocker': 3.2.4(msw@2.10.3(@types/node@22.16.3)(typescript@5.8.3))(vite@6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) '@vitest/pretty-format': 3.2.4 '@vitest/runner': 3.2.4 '@vitest/snapshot': 3.2.4 '@vitest/spy': 3.2.4 '@vitest/utils': 3.2.4 - chai: 5.2.0 + chai: 5.2.1 debug: 4.4.1 - expect-type: 1.2.1 + expect-type: 1.2.2 magic-string: 0.30.17 pathe: 2.0.3 picomatch: 4.0.2 @@ -26090,12 +25291,12 @@ snapshots: tinyglobby: 0.2.14 tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: 6.3.5(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) - vite-node: 3.2.4(@types/node@22.15.30)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) + vite: 6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) + vite-node: 3.2.4(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) why-is-node-running: 2.3.0 optionalDependencies: '@types/debug': 4.1.12 - '@types/node': 22.15.30 + '@types/node': 22.16.3 '@vitest/ui': 3.2.4(vitest@3.2.4) jsdom: 26.1.0 transitivePeerDependencies: @@ -26112,70 +25313,70 @@ snapshots: - tsx - yaml - volar-service-css@0.0.62(@volar/language-service@2.4.13): + volar-service-css@0.0.62(@volar/language-service@2.4.18): dependencies: - vscode-css-languageservice: 6.3.5 + vscode-css-languageservice: 6.3.7 vscode-languageserver-textdocument: 1.0.12 vscode-uri: 3.1.0 optionalDependencies: - '@volar/language-service': 2.4.13 + '@volar/language-service': 2.4.18 - volar-service-emmet@0.0.62(@volar/language-service@2.4.13): + volar-service-emmet@0.0.62(@volar/language-service@2.4.18): dependencies: '@emmetio/css-parser': 0.4.0 '@emmetio/html-matcher': 1.3.0 '@vscode/emmet-helper': 2.11.0 vscode-uri: 3.1.0 optionalDependencies: - '@volar/language-service': 2.4.13 + '@volar/language-service': 2.4.18 - volar-service-html@0.0.62(@volar/language-service@2.4.13): + volar-service-html@0.0.62(@volar/language-service@2.4.18): dependencies: - vscode-html-languageservice: 5.4.0 + vscode-html-languageservice: 5.5.1 vscode-languageserver-textdocument: 1.0.12 vscode-uri: 3.1.0 optionalDependencies: - '@volar/language-service': 2.4.13 + '@volar/language-service': 2.4.18 - volar-service-prettier@0.0.62(@volar/language-service@2.4.13)(prettier@3.6.2): + volar-service-prettier@0.0.62(@volar/language-service@2.4.18)(prettier@3.6.2): dependencies: vscode-uri: 3.1.0 optionalDependencies: - '@volar/language-service': 2.4.13 + '@volar/language-service': 2.4.18 prettier: 3.6.2 - volar-service-typescript-twoslash-queries@0.0.62(@volar/language-service@2.4.13): + volar-service-typescript-twoslash-queries@0.0.62(@volar/language-service@2.4.18): dependencies: vscode-uri: 3.1.0 optionalDependencies: - '@volar/language-service': 2.4.13 + '@volar/language-service': 2.4.18 - volar-service-typescript@0.0.62(@volar/language-service@2.4.13): + volar-service-typescript@0.0.62(@volar/language-service@2.4.18): dependencies: path-browserify: 1.0.1 semver: 7.7.2 - typescript-auto-import-cache: 0.3.5 + typescript-auto-import-cache: 0.3.6 vscode-languageserver-textdocument: 1.0.12 vscode-nls: 5.2.0 vscode-uri: 3.1.0 optionalDependencies: - '@volar/language-service': 2.4.13 + '@volar/language-service': 2.4.18 - volar-service-yaml@0.0.62(@volar/language-service@2.4.13): + volar-service-yaml@0.0.62(@volar/language-service@2.4.18): dependencies: vscode-uri: 3.1.0 yaml-language-server: 1.15.0 optionalDependencies: - '@volar/language-service': 2.4.13 + '@volar/language-service': 2.4.18 - vscode-css-languageservice@6.3.5: + vscode-css-languageservice@6.3.7: dependencies: '@vscode/l10n': 0.0.18 vscode-languageserver-textdocument: 1.0.12 vscode-languageserver-types: 3.17.5 vscode-uri: 3.1.0 - vscode-html-languageservice@5.4.0: + vscode-html-languageservice@5.5.1: dependencies: '@vscode/l10n': 0.0.18 vscode-languageserver-textdocument: 1.0.12 @@ -26232,7 +25433,7 @@ snapshots: dependencies: ufo: 1.6.1 - vue-component-type-helpers@2.2.8: {} + vue-component-type-helpers@2.2.12: {} vue-demi@0.14.10(vue@3.5.17(typescript@5.8.3)): dependencies: @@ -26280,6 +25481,11 @@ snapshots: glob-to-regexp: 0.4.1 graceful-fs: 4.2.11 + watchpack@2.4.4: + dependencies: + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + wcwidth@1.0.1: dependencies: defaults: 1.0.4 @@ -26322,7 +25528,7 @@ snapshots: webpack-node-externals@3.0.0: {} - webpack-sources@3.2.3: {} + webpack-sources@3.3.3: {} webpack-virtual-modules@0.6.2: {} @@ -26334,9 +25540,9 @@ snapshots: '@webassemblyjs/wasm-edit': 1.14.1 '@webassemblyjs/wasm-parser': 1.14.1 acorn: 8.15.0 - browserslist: 4.24.5 + browserslist: 4.25.1 chrome-trace-event: 1.0.4 - enhanced-resolve: 5.18.1 + enhanced-resolve: 5.18.2 es-module-lexer: 1.7.0 eslint-scope: 5.1.1 events: 3.3.0 @@ -26347,17 +25553,17 @@ snapshots: mime-types: 2.1.35 neo-async: 2.6.2 schema-utils: 4.3.2 - tapable: 2.2.1 + tapable: 2.2.2 terser-webpack-plugin: 5.3.14(webpack@5.99.6) - watchpack: 2.4.2 - webpack-sources: 3.2.3 + watchpack: 2.4.4 + webpack-sources: 3.3.3 transitivePeerDependencies: - '@swc/core' - esbuild - uglify-js optional: true - webpack@5.99.6(@swc/core@1.12.9(@swc/helpers@0.5.17)): + webpack@5.99.6(@swc/core@1.12.11(@swc/helpers@0.5.17)): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.8 @@ -26365,9 +25571,9 @@ snapshots: '@webassemblyjs/wasm-edit': 1.14.1 '@webassemblyjs/wasm-parser': 1.14.1 acorn: 8.15.0 - browserslist: 4.24.5 + browserslist: 4.25.1 chrome-trace-event: 1.0.4 - enhanced-resolve: 5.18.1 + enhanced-resolve: 5.18.2 es-module-lexer: 1.7.0 eslint-scope: 5.1.1 events: 3.3.0 @@ -26378,10 +25584,10 @@ snapshots: mime-types: 2.1.35 neo-async: 2.6.2 schema-utils: 4.3.2 - tapable: 2.2.1 - terser-webpack-plugin: 5.3.14(@swc/core@1.12.9(@swc/helpers@0.5.17))(webpack@5.99.6(@swc/core@1.12.9(@swc/helpers@0.5.17))) - watchpack: 2.4.2 - webpack-sources: 3.2.3 + tapable: 2.2.2 + terser-webpack-plugin: 5.3.14(@swc/core@1.12.11(@swc/helpers@0.5.17))(webpack@5.99.6(@swc/core@1.12.11(@swc/helpers@0.5.17))) + watchpack: 2.4.4 + webpack-sources: 3.3.3 transitivePeerDependencies: - '@swc/core' - esbuild @@ -26463,26 +25669,26 @@ snapshots: wordwrap@1.0.0: {} - workerd@1.20250617.0: + workerd@1.20250709.0: optionalDependencies: - '@cloudflare/workerd-darwin-64': 1.20250617.0 - '@cloudflare/workerd-darwin-arm64': 1.20250617.0 - '@cloudflare/workerd-linux-64': 1.20250617.0 - '@cloudflare/workerd-linux-arm64': 1.20250617.0 - '@cloudflare/workerd-windows-64': 1.20250617.0 + '@cloudflare/workerd-darwin-64': 1.20250709.0 + '@cloudflare/workerd-darwin-arm64': 1.20250709.0 + '@cloudflare/workerd-linux-64': 1.20250709.0 + '@cloudflare/workerd-linux-arm64': 1.20250709.0 + '@cloudflare/workerd-windows-64': 1.20250709.0 - wrangler@4.23.0(@cloudflare/workers-types@4.20250705.0): + wrangler@4.24.3(@cloudflare/workers-types@4.20250711.0): dependencies: '@cloudflare/kv-asset-handler': 0.4.0 - '@cloudflare/unenv-preset': 2.3.3(unenv@2.0.0-rc.17)(workerd@1.20250617.0) + '@cloudflare/unenv-preset': 2.3.3(unenv@2.0.0-rc.17)(workerd@1.20250709.0) blake3-wasm: 2.1.5 esbuild: 0.25.4 - miniflare: 4.20250617.5 + miniflare: 4.20250709.0 path-to-regexp: 6.3.0 unenv: 2.0.0-rc.17 - workerd: 1.20250617.0 + workerd: 1.20250709.0 optionalDependencies: - '@cloudflare/workers-types': 4.20250705.0 + '@cloudflare/workers-types': 4.20250711.0 fsevents: 2.3.3 transitivePeerDependencies: - bufferutil @@ -26525,10 +25731,10 @@ snapshots: ws@8.18.3: {} - wxt@0.20.7(@types/node@24.0.10)(jiti@2.4.2)(rollup@4.44.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0): + wxt@0.20.7(@types/node@22.16.3)(jiti@2.4.2)(rollup@4.44.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0): dependencies: '@1natsu/wait-element': 4.1.2 - '@aklinker1/rollup-plugin-visualizer': 5.12.0(rollup@4.44.1) + '@aklinker1/rollup-plugin-visualizer': 5.12.0(rollup@4.44.2) '@webext-core/fake-browser': 1.3.2 '@webext-core/isolated-element': 1.1.2 '@webext-core/match-patterns': 1.0.3 @@ -26538,12 +25744,12 @@ snapshots: c12: 3.0.4(magicast@0.3.5) cac: 6.7.14 chokidar: 4.0.3 - ci-info: 4.2.0 + ci-info: 4.3.0 consola: 3.4.2 defu: 6.1.4 - dotenv: 16.5.0 + dotenv: 16.6.1 dotenv-expand: 12.0.2 - esbuild: 0.25.4 + esbuild: 0.25.6 fast-glob: 3.3.3 filesize: 10.1.6 fs-extra: 11.3.0 @@ -26554,9 +25760,9 @@ snapshots: is-wsl: 3.1.0 json5: 2.2.3 jszip: 3.10.1 - linkedom: 0.18.10 + linkedom: 0.18.11 magicast: 0.3.5 - minimatch: 10.0.1 + minimatch: 10.0.3 nano-spawn: 0.2.1 normalize-path: 3.0.0 nypm: 0.6.0 @@ -26566,11 +25772,11 @@ snapshots: perfect-debounce: 1.0.0 picocolors: 1.1.1 prompts: 2.4.2 - publish-browser-extension: 3.0.0 + publish-browser-extension: 3.0.1 scule: 1.3.0 - unimport: 5.0.1 - vite: 6.3.5(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) - vite-node: 3.1.4(@types/node@24.0.10)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) + unimport: 5.1.0 + vite: 6.3.5(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) + vite-node: 3.2.4(@types/node@22.16.3)(jiti@2.4.2)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0) web-ext-run: 0.2.3 transitivePeerDependencies: - '@types/node' @@ -26697,32 +25903,26 @@ snapshots: yoctocolors@2.1.1: {} - youch-core@0.3.2: + youch-core@0.3.3: dependencies: - '@poppinss/exception': 1.2.1 + '@poppinss/exception': 1.2.2 error-stack-parser-es: 1.0.5 - youch@3.3.4: - dependencies: - cookie: 0.7.2 - mustache: 4.2.0 - stacktracey: 2.1.8 - - youch@4.1.0-beta.8: + youch@4.1.0-beta.10: dependencies: - '@poppinss/colors': 4.1.4 - '@poppinss/dumper': 0.6.3 + '@poppinss/colors': 4.1.5 + '@poppinss/dumper': 0.6.4 '@speed-highlight/core': 1.2.7 cookie: 1.0.2 - youch-core: 0.3.2 + youch-core: 0.3.3 - youch@4.1.0-beta.9: + youch@4.1.0-beta.8: dependencies: - '@poppinss/colors': 4.1.4 - '@poppinss/dumper': 0.6.3 + '@poppinss/colors': 4.1.5 + '@poppinss/dumper': 0.6.4 '@speed-highlight/core': 1.2.7 cookie: 1.0.2 - youch-core: 0.3.2 + youch-core: 0.3.3 zimmerframe@1.1.2: {} @@ -26737,20 +25937,17 @@ snapshots: compress-commons: 6.0.2 readable-stream: 4.7.0 - zod-to-json-schema@3.24.6(zod@3.25.74): + zod-to-json-schema@3.24.6(zod@3.25.76): dependencies: - zod: 3.25.74 + zod: 3.25.76 - zod-to-ts@1.2.0(typescript@5.8.3)(zod@3.25.74): + zod-to-ts@1.2.0(typescript@5.8.3)(zod@3.25.76): dependencies: typescript: 5.8.3 - zod: 3.25.74 + zod: 3.25.76 zod@3.22.3: {} - zod@3.25.74: {} - - zone.js@0.15.1: - optional: true + zod@3.25.76: {} zwitch@2.0.4: {} From 8b2b55254376e6c47894be39a01602d7be65ed37 Mon Sep 17 00:00:00 2001 From: unnoq Date: Fri, 11 Jul 2025 08:37:06 +0700 Subject: [PATCH 17/20] wip --- apps/content/docs/openapi/plugins/smart-coercion.md | 1 - packages/json-schema/src/coercer.ts | 4 ++-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/apps/content/docs/openapi/plugins/smart-coercion.md b/apps/content/docs/openapi/plugins/smart-coercion.md index f072ca407..f91932c63 100644 --- a/apps/content/docs/openapi/plugins/smart-coercion.md +++ b/apps/content/docs/openapi/plugins/smart-coercion.md @@ -101,7 +101,6 @@ Support valid numeric strings: - `'123'` → `123` - `'3.14'` → `3.14` -- `'123.0'` → `123` ### String/Number → BigInt diff --git a/packages/json-schema/src/coercer.ts b/packages/json-schema/src/coercer.ts index 7878bc231..0805ccc81 100644 --- a/packages/json-schema/src/coercer.ts +++ b/packages/json-schema/src/coercer.ts @@ -338,7 +338,7 @@ export class experimental_JsonSchemaCoercer { #stringToNumber(value: string): number | string { const num = Number.parseFloat(value) - if (Number.isNaN(num) || num.toString() !== value) { + if (Number.isNaN(num) || num !== Number(value)) { return value } @@ -348,7 +348,7 @@ export class experimental_JsonSchemaCoercer { #stringToInteger(value: string): number | string { const num = Number.parseInt(value) - if (Number.isNaN(num) || num.toString() !== value) { + if (Number.isNaN(num) || num !== Number(value)) { return value } From c40d3b25939029720b4287850b69f92099c707ae Mon Sep 17 00:00:00 2001 From: unnoq Date: Fri, 11 Jul 2025 08:44:16 +0700 Subject: [PATCH 18/20] fix --- apps/content/docs/openapi/plugins/smart-coercion.md | 2 +- packages/json-schema/src/coercer.test.ts | 1 + packages/json-schema/src/coercer.ts | 8 ++++---- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/apps/content/docs/openapi/plugins/smart-coercion.md b/apps/content/docs/openapi/plugins/smart-coercion.md index f91932c63..a7456e0d8 100644 --- a/apps/content/docs/openapi/plugins/smart-coercion.md +++ b/apps/content/docs/openapi/plugins/smart-coercion.md @@ -79,7 +79,7 @@ JavaScript native types such as BigInt, Date, RegExp, URL, Set, and Map are not - `x-native-type: 'set'` for Set - `x-native-type: 'map'` for Map -The built-in [JSON Schema Converters](/docs/openapi/openapi-specification#generating-specifications) handle these cases (with the exception of some experimental converters). Since this approach is not part of the official JSON Schema specification, if you use a custom converter, you may need to add the appropriate `x-native-type` metadata to your schemas to ensure proper coercion. +The built-in [JSON Schema Converters](/docs/openapi/openapi-specification#generating-specifications) handle these cases (except for some experimental converters). Since this approach is not part of the official JSON Schema specification, if you use a custom converter, you may need to add the appropriate `x-native-type` metadata to your schemas to ensure proper coercion. ::: ## Conversion Rules diff --git a/packages/json-schema/src/coercer.test.ts b/packages/json-schema/src/coercer.test.ts index 1a0b10cc9..e3af6205e 100644 --- a/packages/json-schema/src/coercer.test.ts +++ b/packages/json-schema/src/coercer.test.ts @@ -44,6 +44,7 @@ describe('jsonSchemaCoercer', () => { expect(coercer.coerce({ 'type': 'string', 'x-native-type': 'bigint' } as any, '123')).toEqual(123n) expect(coercer.coerce({ 'type': 'string', 'x-native-type': 'bigint' } as any, 123)).toEqual(123n) + expect(coercer.coerce({ 'type': 'string', 'x-native-type': 'bigint' } as any, Infinity)).toEqual(Infinity) expect(coercer.coerce({ 'type': 'string', 'x-native-type': 'bigint' } as any, 'invalid')).toEqual('invalid') expect(coercer.coerce({ 'type': 'string', 'x-native-type': 'url' } as any, 'https://example.com')).toEqual(new URL('https://example.com')) diff --git a/packages/json-schema/src/coercer.ts b/packages/json-schema/src/coercer.ts index 0805ccc81..730469d85 100644 --- a/packages/json-schema/src/coercer.ts +++ b/packages/json-schema/src/coercer.ts @@ -373,6 +373,10 @@ export class experimental_JsonSchemaCoercer { return guard(() => BigInt(value)) ?? value } + #numberToBigInt(value: number): bigint | number { + return guard(() => BigInt(value)) ?? value + } + #stringToDate(value: string): Date | string { const date = new Date(value) @@ -398,10 +402,6 @@ export class experimental_JsonSchemaCoercer { return guard(() => new URL(value)) ?? value } - #numberToBigInt(value: number): bigint | number { - return BigInt(value) - } - #arrayToSet(value: unknown[]): Set | unknown[] { const set = new Set(value) From 4799c75233147601778c1920a7e00a95f947530e Mon Sep 17 00:00:00 2001 From: unnoq Date: Fri, 11 Jul 2025 08:53:46 +0700 Subject: [PATCH 19/20] lint fixed --- .../docs/openapi/integrations/implement-contract-in-nest.md | 1 - 1 file changed, 1 deletion(-) diff --git a/apps/content/docs/openapi/integrations/implement-contract-in-nest.md b/apps/content/docs/openapi/integrations/implement-contract-in-nest.md index e50f5a373..7d71610bd 100644 --- a/apps/content/docs/openapi/integrations/implement-contract-in-nest.md +++ b/apps/content/docs/openapi/integrations/implement-contract-in-nest.md @@ -54,7 +54,6 @@ oRPC is an ESM-only library. Therefore, your NestJS application must be configur ``` 2. **Node.js Environment**: - - **Node.js 22+**: Recommended, as it allows `require()` of ESM modules natively. - **Older Node.js versions**: Alternatively, use a bundler to compile ESM modules (including `@orpc/nest`) to CommonJS. From c5571fc42486ff26676e4ba21d49198c5631442e Mon Sep 17 00:00:00 2001 From: unnoq Date: Fri, 11 Jul 2025 09:42:10 +0700 Subject: [PATCH 20/20] enhance date coercion handling and add test cases for flexible date formats --- apps/content/docs/openapi/plugins/smart-coercion.md | 1 + packages/json-schema/src/coercer.test.ts | 2 ++ packages/json-schema/src/coercer.ts | 4 +++- 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/apps/content/docs/openapi/plugins/smart-coercion.md b/apps/content/docs/openapi/plugins/smart-coercion.md index a7456e0d8..24a78d11e 100644 --- a/apps/content/docs/openapi/plugins/smart-coercion.md +++ b/apps/content/docs/openapi/plugins/smart-coercion.md @@ -114,6 +114,7 @@ Support valid numeric strings or numbers: Support ISO date/datetime strings: - `'2023-10-01'` → `new Date('2023-10-01')` +- `'2020-01-01T06:15'` → `new Date('2020-01-01T06:15')` - `'2020-01-01T06:15Z'` → `new Date('2020-01-01T06:15Z')` - `'2020-01-01T06:15:00Z'` → `new Date('2020-01-01T06:15:00Z')` - `'2020-01-01T06:15:00.123Z'` → `new Date('2020-01-01T06:15:00.123Z')` diff --git a/packages/json-schema/src/coercer.test.ts b/packages/json-schema/src/coercer.test.ts index e3af6205e..3e320cd20 100644 --- a/packages/json-schema/src/coercer.test.ts +++ b/packages/json-schema/src/coercer.test.ts @@ -40,6 +40,8 @@ describe('jsonSchemaCoercer', () => { const date = new Date() expect(coercer.coerce({ 'type': 'string', 'x-native-type': 'date' } as any, date.toISOString())).toEqual(date) expect(coercer.coerce({ 'type': 'string', 'x-native-type': 'date' } as any, '1972-01-01')).toEqual(new Date('1972-01-01')) + expect(coercer.coerce({ 'type': 'string', 'x-native-type': 'date' } as any, '2018-06-12T19:30')).toEqual(new Date('2018-06-12T19:30')) + expect(coercer.coerce({ 'type': 'string', 'x-native-type': 'date' } as any, '2018-06-')).toEqual('2018-06-') expect(coercer.coerce({ 'type': 'string', 'x-native-type': 'date' } as any, 'Invalid Date')).toEqual('Invalid Date') expect(coercer.coerce({ 'type': 'string', 'x-native-type': 'bigint' } as any, '123')).toEqual(123n) diff --git a/packages/json-schema/src/coercer.ts b/packages/json-schema/src/coercer.ts index 730469d85..f3c5f3b43 100644 --- a/packages/json-schema/src/coercer.ts +++ b/packages/json-schema/src/coercer.ts @@ -2,6 +2,8 @@ import type { JsonSchema } from './types' import { guard, isObject, toArray } from '@orpc/shared' import { JsonSchemaXNativeType } from './types' +const FLEXIBLE_DATE_FORMAT_REGEX = /^[^-]+-[^-]+-[^-]+$/ + export interface experimental_JsonSchemaCoerceOptions { components?: Record } @@ -380,7 +382,7 @@ export class experimental_JsonSchemaCoercer { #stringToDate(value: string): Date | string { const date = new Date(value) - if (Number.isNaN(date.getTime()) || !value.startsWith(date.toISOString().slice(0, 10))) { + if (Number.isNaN(date.getTime()) || !FLEXIBLE_DATE_FORMAT_REGEX.test(value)) { return value }