diff --git a/.changeset/great-swans-hug.md b/.changeset/great-swans-hug.md new file mode 100644 index 0000000..72eab6d --- /dev/null +++ b/.changeset/great-swans-hug.md @@ -0,0 +1,5 @@ +--- +"@workleap/create-schemas": minor +--- + +[BREAKING] `outfile` option is now `outdir` diff --git a/.changeset/silver-moose-roll.md b/.changeset/silver-moose-roll.md new file mode 100644 index 0000000..b742f84 --- /dev/null +++ b/.changeset/silver-moose-roll.md @@ -0,0 +1,6 @@ +--- +"@workleap/create-schemas": minor +--- + +Add `openapiFetchPlugin` plugin for client generation (requires `openapi-fetch` +package) diff --git a/.changeset/small-lizards-admire.md b/.changeset/small-lizards-admire.md new file mode 100644 index 0000000..a0b0130 --- /dev/null +++ b/.changeset/small-lizards-admire.md @@ -0,0 +1,5 @@ +--- +"@workleap/create-schemas": minor +--- + +Add a new plugin system diff --git a/.gitignore b/.gitignore index 7390095..ff05bd1 100644 --- a/.gitignore +++ b/.gitignore @@ -38,4 +38,4 @@ yarn-error.log* .idea # project -dist +dist \ No newline at end of file diff --git a/debug/create-schemas.config.ts b/debug/create-schemas.config.ts new file mode 100644 index 0000000..97e5db5 --- /dev/null +++ b/debug/create-schemas.config.ts @@ -0,0 +1,8 @@ +import { defineConfig } from "@workleap/create-schemas"; +import { openapiFetchPlugin } from "@workleap/create-schemas/plugins"; + +export default defineConfig({ + input: "v1.yaml", + outdir: "src/codegen/v1", + plugins: [openapiFetchPlugin()] +}); diff --git a/debug/package.json b/debug/package.json index 99d33ba..ae28c02 100644 --- a/debug/package.json +++ b/debug/package.json @@ -1,16 +1,12 @@ { "name": "debug", + "type": "module", "private": true, - "version": "1.0.0", - "description": "", - "main": "index.js", "scripts": { - "run": "create-schemas args1 args2" + "dev": "create-schemas" }, - "devDependencies": { - "@workleap/create-schemas": "workspace:*" - }, - "keywords": [], - "author": "", - "license": "ISC" + "dependencies": { + "@workleap/create-schemas": "workspace:*", + "openapi-fetch": "^0.10.2" + } } \ No newline at end of file diff --git a/debug/src/code.ts b/debug/src/code.ts new file mode 100644 index 0000000..8b96414 --- /dev/null +++ b/debug/src/code.ts @@ -0,0 +1,14 @@ +import { createClient } from "./codegen/v1/client.ts"; + +const client = createClient({ baseUrl: "https://api.example.com" }); + +const { data, error } = await client.GET("/good-vibes-points/{userId}", { params: { path: { userId: "123" } } }); + +if (error) { + console.error(error.title); + console.error(error.detail); +} + +if (data?.point) { + console.log(`You have ${data.point} good vibes points!`); +} diff --git a/debug/src/codegen/v1/client.ts b/debug/src/codegen/v1/client.ts new file mode 100644 index 0000000..2a568c1 --- /dev/null +++ b/debug/src/codegen/v1/client.ts @@ -0,0 +1,5 @@ +/** Do not modify. This file has been generated by @workleap/create-schemas */ +import type { paths } from "./types.ts"; +import _createClient from "openapi-fetch"; + +export const createClient = _createClient as typeof _createClient; \ No newline at end of file diff --git a/debug/schema.ts b/debug/src/codegen/v1/types.ts similarity index 96% rename from debug/schema.ts rename to debug/src/codegen/v1/types.ts index 8037e3a..a34d352 100644 --- a/debug/schema.ts +++ b/debug/src/codegen/v1/types.ts @@ -1,3 +1,4 @@ +/** Do not modify. This file has been generated by @workleap/create-schemas */ export interface paths { "/good-vibes-points/{userId}": { parameters: { @@ -74,7 +75,7 @@ export interface operations { }; }; } + export type GetGoodVibePointsResult = components["schemas"]["GetGoodVibePointsResult"]; export type ProblemDetails = components["schemas"]["ProblemDetails"]; - export type Endpoints = keyof paths; diff --git a/debug/v1.yaml b/debug/v1.yaml index c0255b4..2f68230 100644 --- a/debug/v1.yaml +++ b/debug/v1.yaml @@ -1,62 +1,62 @@ openapi: 3.0.1 info: - title: OfficeVice.GoodVibe.WebApi - version: '1.0' + title: OfficeVice.GoodVibe.WebApi + version: "1.0" paths: - /good-vibes-points/{userId}: - get: - tags: - - GoodVibesBank - summary: Get the current number of good vibe for a user - operationId: GetGoodVibesPoint - parameters: - - name: userId - in: path - required: true - schema: - type: string - format: uuid - responses: - '200': - description: Success - content: - application/json: - schema: - $ref: '#/components/schemas/GetGoodVibePointsResult' - '400': - description: Bad Request - content: - application/json: - schema: - $ref: '#/components/schemas/ProblemDetails' + /good-vibes-points/{userId}: + get: + tags: + - GoodVibesBank + summary: Get the current number of good vibe for a user + operationId: GetGoodVibesPoint + parameters: + - name: userId + in: path + required: true + schema: + type: string + format: uuid + responses: + "200": + description: Success + content: + application/json: + schema: + $ref: "#/components/schemas/GetGoodVibePointsResult" + "400": + description: Bad Request + content: + application/json: + schema: + $ref: "#/components/schemas/ProblemDetails" components: - schemas: - GetGoodVibePointsResult: - required: - - point - type: object - properties: - point: - type: integer - format: int32 - additionalProperties: false - ProblemDetails: - type: object - properties: - type: - type: string - nullable: true - title: - type: string - nullable: true - status: - type: integer - format: int32 - nullable: true - detail: - type: string - nullable: true - instance: - type: string - nullable: true - additionalProperties: { } + schemas: + GetGoodVibePointsResult: + required: + - point + type: object + properties: + point: + type: integer + format: int32 + additionalProperties: false + ProblemDetails: + type: object + properties: + type: + type: string + nullable: true + title: + type: string + nullable: true + status: + type: integer + format: int32 + nullable: true + detail: + type: string + nullable: true + instance: + type: string + nullable: true + additionalProperties: {} diff --git a/package.json b/package.json index fca6ded..39ed719 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,7 @@ "@workleap/eslint-plugin": "3.2.2", "@workleap/typescript-configs": "3.0.2", "eslint": "8.57.0", - "typescript": "5.4.5" + "typescript": "5.5.3" }, "engines": { "node": ">=18.0.0" diff --git a/packages/create-schemas/package.json b/packages/create-schemas/package.json index 90eaf4e..645c7e0 100644 --- a/packages/create-schemas/package.json +++ b/packages/create-schemas/package.json @@ -19,6 +19,10 @@ ".": { "import": "./dist/index.js", "types": "./dist/index.d.ts" + }, + "./plugins": { + "import": "./dist/plugins/index.js", + "types": "./dist/plugins/index.d.ts" } }, "scripts": { @@ -34,7 +38,6 @@ "@workleap/tsup-configs": "3.0.6", "eslint": "8.57.0", "tsup": "8.1.0", - "typescript": "5.4.5", "vitest": "1.6.0" }, "engines": { @@ -45,8 +48,8 @@ "chokidar": "3.6.0", "commander": "12.1.0", "kleur": "4.1.5", - "openapi-typescript": "7.0.0-rc.0", - "typescript": "5.4.5", + "openapi-typescript": "7.0.2", + "typescript": "5.5.3", "zod": "3.23.8" } } \ No newline at end of file diff --git a/packages/create-schemas/src/astHelper.ts b/packages/create-schemas/src/astHelper.ts deleted file mode 100644 index 9af4702..0000000 --- a/packages/create-schemas/src/astHelper.ts +++ /dev/null @@ -1,59 +0,0 @@ -// Inspired from https://openapi-ts.pages.dev/node - -import ts, { type InterfaceDeclaration, type PropertySignature } from "typescript"; - -/** - * Extract schema names from AST - * - * @example - * export interface components { - * schemas: { - * ExampleA: { - * point: number; // Format: int32 - * }; - * ExampleB: { - * operationId: string; // Format: uuid - * code?: string | null; - * }; - * }; - * responses: never; - * parameters: never; - * requestBodies: never; - * headers: never; - * pathItems: never; - * } - * - * getSchemaNames(ast) => ["ExampleA", "ExampleB"] - */ -export function getSchemaNames(ast: ts.Node[]): string[] { - // Find the `components` interface - const componentsNode = ast.find(node => ts.isInterfaceDeclaration(node) && node.name.escapedText === "components") as InterfaceDeclaration; - if (!componentsNode) { - return []; - } - - // Find the `schemas` property - const schemaNode = componentsNode.members.find(node => ts.isPropertySignature(node) && ts.isIdentifier(node.name) && node.name.escapedText === "schemas") as PropertySignature; - if (!schemaNode || !schemaNode.type || !ts.isTypeLiteralNode(schemaNode.type)) { - return []; - } - - // Get the schema names - const schemaNames = schemaNode.type.members - .filter(ts.isPropertySignature) - .filter(node => ts.isIdentifier(node.name)) - .map(node => (node.name as ts.Identifier).escapedText as string); - - return schemaNames; -} - -/** - * Generate re-exporting schemas type declaration - */ -export function generateExportSchemaTypeDeclaration(schemaName: string): string { - return `export type ${schemaName} = components["schemas"]["${schemaName}"];`; -} - -export function generateExportEndpointsTypeDeclaration(): string { - return "export type Endpoints = keyof paths;"; -} diff --git a/packages/create-schemas/src/bin.ts b/packages/create-schemas/src/bin.ts index d9ea175..e99ec40 100644 --- a/packages/create-schemas/src/bin.ts +++ b/packages/create-schemas/src/bin.ts @@ -1,12 +1,12 @@ import { ZodError } from "zod"; import { parseArgs, resolveConfig, type ResolvedConfig } from "./config.ts"; -import { generateSchemas } from "./openapiTypescriptHelper.ts"; -import { existsSync } from "node:fs"; -import { relative } from "node:path"; +import { existsSync, mkdirSync, writeFileSync } from "node:fs"; +import { join, relative, sep } from "node:path"; import { fileURLToPath } from "node:url"; import { watch, type Watcher } from "./watch.ts"; -import { blue, bold, dim, green, red } from "kleur/colors"; +import { blue, bold, cyan, dim, green, red } from "kleur/colors"; import { formatBytes } from "./utils.ts"; +import { generate, type GenerationResult } from "./generate.ts"; try { const inlineConfig = parseArgs(); @@ -15,22 +15,35 @@ try { const watcher = await watch(inlineConfig); printWatchEvents(config, watcher); } else { - await generateSchemas(config); + const result = await generate(config); + + const outdir = fileURLToPath(config.outdir); + mkdirSync(outdir, { recursive: true }); + for (const file of result.files) { + writeFileSync(join(outdir, file.filename), file.code); + } + + printResult(result, config); } } catch (error) { - if (error instanceof ZodError) { - printConfigurationErrors(error); - } else { - throw error; - } + printError(error); } function printConfigurationErrors(error: ZodError) { - console.log("Invalid configuration:"); + console.log(red("✖ Invalid configuration:")); error.errors.forEach(issue => { - console.log(` - ${issue.path.join(".")}: ${issue.message}`); + console.log(` - ${cyan(issue.path.reduce((text, item) => { + if (text === "") { + return item; + } + if (typeof item === "number") { + return `${text}[${item}]`; + } + + return `${text}.${item}`; + }, ""))}: ${issue.message}`); }); - console.log("Use --help to see available options."); + console.log(dim("Use --help to see available options.")); } function printWatchEvents(initialConfig: ResolvedConfig, watcher: Watcher) { @@ -38,11 +51,6 @@ function printWatchEvents(initialConfig: ResolvedConfig, watcher: Watcher) { printInputPath(config); - let start = Date.now(); - watcher.on("start", () => { - start = Date.now(); - }); - watcher.on("change", () => { console.log(blue("Change detected")); }); @@ -54,22 +62,11 @@ function printWatchEvents(initialConfig: ResolvedConfig, watcher: Watcher) { }); watcher.on("error", error => { - if (error instanceof ZodError) { - printConfigurationErrors(error); - } else { - console.log(red("✖ Failed to generate schemas.")); - console.log(red(String(error))); - } + printError(error); }); - watcher.on("done", content => { - const time = Date.now() - start; - console.log(`${green("✔")} Completed in ${time}ms`); - console.log( - ` ${bold(prettifyPath(fileURLToPath(config.output)))} ${dim( - `(${formatBytes(content.length)})` - )}` - ); + watcher.on("done", result => { + printResult(result, config); }); } @@ -81,6 +78,26 @@ function printInputPath(config: ResolvedConfig) { } } +function printError(error: unknown) { + if (error instanceof ZodError) { + printConfigurationErrors(error); + } else { + console.log(red("✖ Failed to generate schemas.")); + console.log(red(String(error))); + } +} + +function printResult(result: GenerationResult, config: ResolvedConfig) { + console.log(`${green("✔")} Completed in ${result.duration}ms`); + for (const file of result.files) { + console.log( + ` ${dim(prettifyPath(fileURLToPath(config.outdir)) + sep)}${bold(file.filename)} ${dim( + `(${formatBytes(file.code.length)})` + )}` + ); + } +} + function prettifyPath(path: string) { return relative(process.cwd(), path); } diff --git a/packages/create-schemas/src/config.ts b/packages/create-schemas/src/config.ts index 9db6742..ae70df7 100644 --- a/packages/create-schemas/src/config.ts +++ b/packages/create-schemas/src/config.ts @@ -4,20 +4,35 @@ import * as z from "zod"; import packageJson from "../package.json" with { type: "json" }; import type { OpenAPITSOptions as OriginalOpenAPITSOptions } from "openapi-typescript"; import { toFullyQualifiedURL } from "./utils.ts"; +import type { Plugin } from "./plugins/plugin.ts"; +import { headerPlugin } from "./plugins/header-plugin.ts"; +import { typesPlugin } from "./plugins/types-plugin.ts"; +import { openapiTypeScriptPlugin } from "./plugins/openapi-typescript-plugin.ts"; const DEFAULT_CONFIG: InlineConfig = { configFile: "create-schemas.config", - output: "openapi-types.ts", + outdir: "dist", root: process.cwd() } as const; +const DEFAULT_PLUGINS_PRE = [ + openapiTypeScriptPlugin(), + typesPlugin() +]; + +const DEFAULT_PLUGINS_POST = [ + headerPlugin() +]; + type OpenApiTsOptions = Omit; export interface UserConfig { root?: string; input?: string; - output?: string; + outdir?: string; watch?: boolean; + plugins?: Plugin[]; + emit?: boolean; openApiTsOptions?: OpenApiTsOptions; } @@ -25,11 +40,20 @@ export interface InlineConfig extends UserConfig { configFile?: string; } +const pluginSchema = z.object({ + name: z.string(), + buildStart: z.custom().optional(), + transform: z.custom().optional(), + buildEnd: z.custom().optional() +}); + const resolvedConfigSchema = z.object({ configFile: z.string(), root: z.string(), input: z.string(), - output: z.string(), + outdir: z.string(), + plugins: z.array(pluginSchema).optional().default([]), + emit: z.boolean().optional().default(true), watch: z.boolean().optional().default(false), openApiTsOptions: z.custom().optional().default({}) }); @@ -45,7 +69,7 @@ export function parseArgs(argv?: string[]): InlineConfig { .argument("[input]") .option("-c, --config ", "use specified config file") .option("-i, --input ", "path to the OpenAPI schema file") - .option("-o, --output ", "output file path") + .option("-o, --outdir ", "output directory") .option("--watch", "watch for changes") .option("--cwd ", "path to working directory") .helpOption("-h, --help", "display available CLI options") @@ -59,7 +83,7 @@ export function parseArgs(argv?: string[]): InlineConfig { root: opts.cwd, input: opts.input || args[0], watch: opts.watch, - output: opts.output + outdir: opts.outdir }; } @@ -94,9 +118,9 @@ export function watchConfig({ inlineConfig = {}, onChange, onValidationError }: omit$Keys: true, defaultConfig: DEFAULT_CONFIG, overrides: inlineConfig, - onUpdate: ({ newConfig }) => { + onUpdate: async ({ newConfig }) => { try { - const resolvedConfig = validateConfig(newConfig.config); + const resolvedConfig = await validateConfig(newConfig.config); onChange(resolvedConfig); } catch (error) { if (onValidationError && error instanceof z.ZodError) { @@ -107,12 +131,14 @@ export function watchConfig({ inlineConfig = {}, onChange, onValidationError }: }); } -function validateConfig(config: InlineConfig): ResolvedConfig { +async function validateConfig(config: InlineConfig): Promise { const resolvedConfig = resolvedConfigSchema.parse(config); + resolvedConfig.plugins = [...DEFAULT_PLUGINS_PRE, ...resolvedConfig.plugins, ...DEFAULT_PLUGINS_POST]; + resolvedConfig.root = toFullyQualifiedURL(resolvedConfig.root); resolvedConfig.input = toFullyQualifiedURL(resolvedConfig.input, resolvedConfig.root); - resolvedConfig.output = toFullyQualifiedURL(resolvedConfig.output, resolvedConfig.root); + resolvedConfig.outdir = toFullyQualifiedURL(resolvedConfig.outdir, resolvedConfig.root); return resolvedConfig; } diff --git a/packages/create-schemas/src/generate.ts b/packages/create-schemas/src/generate.ts new file mode 100644 index 0000000..7d28165 --- /dev/null +++ b/packages/create-schemas/src/generate.ts @@ -0,0 +1,59 @@ +import type { ResolvedConfig } from "./config.ts"; + +export interface GenerationResult { + duration: number; + files: GenerationFile[]; +} + +export interface GenerationFile { + id?: unknown; + filename: string; + code: string; +} + +export async function generate(config: ResolvedConfig): Promise { + const start = Date.now(); + + const files: GenerationFile[] = []; + + function emitFile(file: GenerationFile) { + files.push(file); + } + + // ====== Build start ====== + await Promise.all(config.plugins.map(async plugin => { + if (plugin.buildStart) { + await plugin.buildStart({ config, emitFile }); + } + })); + + // ====== Transform ====== + for (const file of files) { + for (const plugin of config.plugins) { + if (plugin.transform) { + const transformResult = await plugin.transform({ + ...file, + config, + emitFile + }); + if (transformResult) { + file.code = transformResult.code; + } + } + } + } + + // ====== Build end ====== + await Promise.all(config.plugins.map(async plugin => { + if (plugin.buildEnd) { + await plugin.buildEnd({ config, files }); + } + })); + + const end = Date.now(); + + return { + duration: end - start, + files + } satisfies GenerationResult; +} diff --git a/packages/create-schemas/src/index.ts b/packages/create-schemas/src/index.ts index eeb7308..0772ede 100644 --- a/packages/create-schemas/src/index.ts +++ b/packages/create-schemas/src/index.ts @@ -6,3 +6,4 @@ export { type ResolvedConfig } from "./config.ts"; export { watch, type Watcher } from "./watch.ts"; +export { generate } from "./generate.ts"; diff --git a/packages/create-schemas/src/openapiTypescriptHelper.ts b/packages/create-schemas/src/openapiTypescriptHelper.ts deleted file mode 100644 index a3182cf..0000000 --- a/packages/create-schemas/src/openapiTypescriptHelper.ts +++ /dev/null @@ -1,38 +0,0 @@ -import openapiTS, { astToString } from "openapi-typescript"; -import { - generateExportEndpointsTypeDeclaration, - generateExportSchemaTypeDeclaration, - getSchemaNames -} from "./astHelper.ts"; -import type { ResolvedConfig } from "./config.ts"; -import { mkdir, writeFile } from "node:fs/promises"; -import { fileURLToPath } from "node:url"; -import { dirname } from "node:path"; - -export async function generateSchemas(config: ResolvedConfig): Promise { - // Create a TypeScript AST from the OpenAPI schema - const ast = await openapiTS(new URL(config.input), { - ...config.openApiTsOptions, - silent: true - }); - - // Find the node where all the DTOs are defined, and extract their names - const schemaNames = getSchemaNames(ast); - - // Convert the AST to a string - let contents = astToString(ast); - - // Re-export schemas types - for (const schemaName of schemaNames) { - contents += `${generateExportSchemaTypeDeclaration(schemaName)}\n`; - } - - // Re-export endpoints keys - contents += `\n${generateExportEndpointsTypeDeclaration()}\n`; - - // Write the files - await mkdir(dirname(fileURLToPath(config.output)), { recursive: true }); - await writeFile(fileURLToPath(config.output), contents); - - return contents; -} diff --git a/packages/create-schemas/src/plugins/header-plugin.ts b/packages/create-schemas/src/plugins/header-plugin.ts new file mode 100644 index 0000000..d8524d5 --- /dev/null +++ b/packages/create-schemas/src/plugins/header-plugin.ts @@ -0,0 +1,16 @@ +import type { Plugin } from "./plugin.ts"; + +interface HeaderPluginOptions { + header?: string; +} + +export function headerPlugin({ header = "This file has been generated by @workleap/create-schemas (https://github.com/gsoft-inc/wl-openapi-typescript). Do not modify manually." }: HeaderPluginOptions = {}): Plugin { + return { + name: "internal:header-plugin", + async transform({ code }) { + return { + code: `/** ${header} */\n${code}` + }; + } + }; +} \ No newline at end of file diff --git a/packages/create-schemas/src/plugins/index.ts b/packages/create-schemas/src/plugins/index.ts new file mode 100644 index 0000000..2730b8a --- /dev/null +++ b/packages/create-schemas/src/plugins/index.ts @@ -0,0 +1,2 @@ +export type { Plugin } from "./plugin.ts"; +export { openapiFetchPlugin } from "./openapi-fetch-plugin.ts"; \ No newline at end of file diff --git a/packages/create-schemas/src/plugins/openapi-fetch-plugin.ts b/packages/create-schemas/src/plugins/openapi-fetch-plugin.ts new file mode 100644 index 0000000..c2624e1 --- /dev/null +++ b/packages/create-schemas/src/plugins/openapi-fetch-plugin.ts @@ -0,0 +1,25 @@ +import type { Plugin } from "./plugin.ts"; +import { getRelativeModuleResolutionExtension } from "../utils.ts"; +import { openapiTypeScriptId } from "./openapi-typescript-plugin.ts"; + +export function openapiFetchPlugin(): Plugin { + return { + name: "openapi-fetch-plugin", + async transform({ id, emitFile }) { + if (id !== openapiTypeScriptId) { + return; + } + + const importsFileExtension = getRelativeModuleResolutionExtension(); + + emitFile({ + filename: "client.ts", + code: [ + `import type { paths } from "./types${importsFileExtension}";`, + "import _createClient from \"openapi-fetch\";", + "export const createClient = _createClient as typeof _createClient;" + ].join("\n") + }); + } + }; +} \ No newline at end of file diff --git a/packages/create-schemas/src/plugins/openapi-typescript-plugin.ts b/packages/create-schemas/src/plugins/openapi-typescript-plugin.ts new file mode 100644 index 0000000..bc93d2b --- /dev/null +++ b/packages/create-schemas/src/plugins/openapi-typescript-plugin.ts @@ -0,0 +1,24 @@ +import openapiTS, { astToString } from "openapi-typescript"; +import type { Plugin } from "./plugin.ts"; + +export const openapiTypeScriptId = Symbol(); + +export const openapiTypeScriptFilename = "types.ts"; + +export function openapiTypeScriptPlugin(): Plugin { + return { + name: "internal:openapi-typescript-plugin", + async buildStart({ config, emitFile }) { + const ast = await openapiTS(new URL(config.input), { + silent: true, + ...config.openApiTsOptions + }); + + emitFile({ + id: openapiTypeScriptId, + filename: openapiTypeScriptFilename, + code: astToString(ast) + }); + } + }; +} diff --git a/packages/create-schemas/src/plugins/plugin.ts b/packages/create-schemas/src/plugins/plugin.ts new file mode 100644 index 0000000..1d8dc8e --- /dev/null +++ b/packages/create-schemas/src/plugins/plugin.ts @@ -0,0 +1,33 @@ +import type { ResolvedConfig } from "../config.ts"; +import type { GenerationFile } from "../generate.ts"; + +type EmitFileFn = (file: { id?: unknown; filename: string; code: string }) => void; + +export interface BuildStartContext { + config: ResolvedConfig; + emitFile: EmitFileFn; +} + +export interface TransformContext { + config: ResolvedConfig; + id?: unknown; + filename: string; + code: string; + emitFile: EmitFileFn; +} + +export interface BuildEndContext { + config: ResolvedConfig; + files: GenerationFile[]; +} + +export interface TransformResult { + code: string; +} + +export interface Plugin { + name: string; + buildStart?: (context: BuildStartContext) => void | Promise; + transform?: (context: TransformContext) => TransformResult | undefined | void | Promise; + buildEnd?: (context: BuildEndContext) => void | Promise; +} \ No newline at end of file diff --git a/packages/create-schemas/src/plugins/types-plugin.ts b/packages/create-schemas/src/plugins/types-plugin.ts new file mode 100644 index 0000000..9085ef0 --- /dev/null +++ b/packages/create-schemas/src/plugins/types-plugin.ts @@ -0,0 +1,101 @@ +import assert from "node:assert"; +import { astToString, stringToAST } from "openapi-typescript"; +import ts from "typescript"; +import type { Plugin } from "./plugin.ts"; +import { openapiTypeScriptId } from "./openapi-typescript-plugin.ts"; + +const componentsIdentifier = "components"; +const schemasIdentifier = "schemas"; + +export const RESERVED_IDENTIFIERS = new Set(["paths", "webhooks", componentsIdentifier, "$defs", "operations"]); + +export function typesPlugin(): Plugin { + return { + name: "internal:types-plugin", + async transform({ id, code }) { + if (id !== openapiTypeScriptId) { + return; + } + + const ast = stringToAST(code) as ts.Node[]; + + const componentsDeclaration = ast.find(isComponentsInterfaceDeclaration); + + assert(componentsDeclaration, "Missing components declaration"); + const schema = componentsDeclaration.members.find(isComponentsSchema); + assert(schema, "Missing components declaration"); + assert(schema.type && ts.isTypeLiteralNode(schema.type), "Invalid schema type"); + + const typeNodes = schema.type.members + .map(member => member.name) + .filter(name => name !== undefined) + .filter(name => ts.isStringLiteral(name) || ts.isIdentifier(name)) + .map(name => name.text) + .map(name => { + if (RESERVED_IDENTIFIERS.has(name)) { + throw new Error(`Invalid schema name: ${name}`); + } + + if (toSafeName(name).length === 0) { + throw new Error(`Invalid schema name: ${name}`); + } + + return name; + }) + .map(name => `export type ${toSafeName(name)} = ${componentsIdentifier}["${schemasIdentifier}"]["${name}"];`) + .flatMap(stringToAST) as ts.Node[]; + + const endpointsDeclaration = stringToAST("export type Endpoints = keyof paths;") as ts.Node[]; + + return { + code: code + "\n" + astToString([...typeNodes, ...endpointsDeclaration]) + }; + } + }; +} + +export function isComponentsInterfaceDeclaration(node: ts.Node): node is ts.InterfaceDeclaration { + return ts.isInterfaceDeclaration(node) && node.name.text === componentsIdentifier; +} + +export function isComponentsSchema(node: ts.Node): node is ts.PropertySignature { + return ts.isPropertySignature(node) + && (ts.isIdentifier(node.name) || ts.isStringLiteral(node.name)) + && node.name.text === schemasIdentifier; +} + +/** + * OpenAPI field names must match `^[a-zA-Z0-9\.\-_]+$` which allows names that + * are not valid JavaScript/TypeScript identifiers. This function converts an + * unsafe name into a safe name that can be used as a JavaScript/TypeScript + * identifier. + */ +export function toSafeName(unsafeName: string): string { + let safeName = ""; + for (const char of unsafeName) { + const charCode = char.charCodeAt(0); + + // A-Z + if (charCode >= 65 && charCode <= 90) { + safeName += char; + } + + // a-z + if (charCode >= 97 && charCode <= 122) { + safeName += char; + } + + if (char === "_" || char === "$") { + safeName += char; + } + + // 0-9 + if (safeName.length > 0 && charCode >= 48 && charCode <= 57) { + safeName += char; + } + + continue; + } + + return safeName; +} diff --git a/packages/create-schemas/src/utils.ts b/packages/create-schemas/src/utils.ts index 5274cc6..f40571b 100644 --- a/packages/create-schemas/src/utils.ts +++ b/packages/create-schemas/src/utils.ts @@ -1,5 +1,6 @@ -import { isAbsolute, join } from "node:path"; +import { dirname, isAbsolute, join } from "node:path"; import { fileURLToPath, pathToFileURL } from "node:url"; +import ts from "typescript"; function isFileURLAsText(input: string | URL): input is `file://${string}` { return typeof input === "string" && input.startsWith("file://"); @@ -87,3 +88,39 @@ export function formatBytes(bytes: number) { return `${gb.toFixed(2)} GB`; } + +export function getTsCompilerOptions(): ts.CompilerOptions { + const configFilePath = ts.findConfigFile(process.cwd(), ts.sys.fileExists); + + if (!configFilePath) { + return ts.getDefaultCompilerOptions(); + } + + const configFile = ts.readConfigFile(configFilePath, ts.sys.readFile); + const config = ts.parseJsonConfigFileContent( + configFile.config, + ts.sys, + dirname(configFilePath) + ); + + return config.options; +} + +export function getRelativeModuleResolutionExtension() { + const compilerOptions = getTsCompilerOptions(); + + if (compilerOptions.allowImportingTsExtensions) { + return ".ts"; + } + + switch (compilerOptions.moduleResolution) { + case ts.ModuleResolutionKind.NodeNext: + case ts.ModuleResolutionKind.Node16: + return ".js"; + default: + case ts.ModuleResolutionKind.Classic: + case ts.ModuleResolutionKind.Node10: + case ts.ModuleResolutionKind.Bundler: + return ""; + } +} \ No newline at end of file diff --git a/packages/create-schemas/src/watch.ts b/packages/create-schemas/src/watch.ts index 0876e25..9a4e3d5 100644 --- a/packages/create-schemas/src/watch.ts +++ b/packages/create-schemas/src/watch.ts @@ -6,14 +6,16 @@ import { type ResolvedConfig } from "./config.ts"; import { watch as fsWatch } from "chokidar"; -import { generateSchemas } from "./openapiTypescriptHelper.ts"; +import { generate, type GenerationResult } from "./generate.ts"; +import { mkdir, writeFile } from "node:fs/promises"; +import { join } from "node:path"; interface WatcherEventMap { start: () => void; change: () => void; stop: () => void; configChanged: (newConfig: ResolvedConfig) => void; - done: (result: string) => void; + done: (result: GenerationResult) => void; error: (error: unknown) => void; } @@ -88,23 +90,27 @@ function watchInput(watcher: Watcher, config: ResolvedConfig) { const inputWatcher = fsWatch(fileURLToPath(config.input)); - async function generate() { + async function _generate() { try { watcher.dispatch("start"); - const contents = await generateSchemas(config); - watcher.dispatch("done", contents); + const result = await generate(config); + await mkdir(fileURLToPath(config.outdir), { recursive: true }); + await Promise.all(result.files.map(async file => { + return writeFile(join(fileURLToPath(config.outdir), file.filename), file.code); + })); + watcher.dispatch("done", result); } catch (e) { watcher.dispatch("error", e); } } - generate().then(() => { + _generate().then(() => { inputWatcher.on("change", () => { watcher.dispatch("change"); - generate(); + _generate(); }); - inputWatcher.on("add", () => generate()); + inputWatcher.on("add", () => _generate()); }); watcher.once("stop", () => inputWatcher.close()); diff --git a/packages/create-schemas/tests/__snapshots__/e2e.test.ts.snap b/packages/create-schemas/tests/__snapshots__/e2e.test.ts.snap index a0379da..34523ce 100644 --- a/packages/create-schemas/tests/__snapshots__/e2e.test.ts.snap +++ b/packages/create-schemas/tests/__snapshots__/e2e.test.ts.snap @@ -1,7 +1,8 @@ // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html exports[`e2e > officevice.yaml / file URLs 1`] = ` -"export interface paths { +"/** This file has been generated by @workleap/create-schemas (https://github.com/gsoft-inc/wl-openapi-typescript). Do not modify manually. */ +export interface paths { "/good-vibes-points/{userId}": { parameters: { query?: never; @@ -77,15 +78,16 @@ export interface operations { }; }; } + export type GetGoodVibePointsResult = components["schemas"]["GetGoodVibePointsResult"]; export type ProblemDetails = components["schemas"]["ProblemDetails"]; - export type Endpoints = keyof paths; " `; exports[`e2e > officevice.yaml / file paths 1`] = ` -"export interface paths { +"/** This file has been generated by @workleap/create-schemas (https://github.com/gsoft-inc/wl-openapi-typescript). Do not modify manually. */ +export interface paths { "/good-vibes-points/{userId}": { parameters: { query?: never; @@ -161,15 +163,16 @@ export interface operations { }; }; } + export type GetGoodVibePointsResult = components["schemas"]["GetGoodVibePointsResult"]; export type ProblemDetails = components["schemas"]["ProblemDetails"]; - export type Endpoints = keyof paths; " `; exports[`e2e > officevice.yaml / relative path 1`] = ` -"export interface paths { +"/** This file has been generated by @workleap/create-schemas (https://github.com/gsoft-inc/wl-openapi-typescript). Do not modify manually. */ +export interface paths { "/good-vibes-points/{userId}": { parameters: { query?: never; @@ -245,15 +248,16 @@ export interface operations { }; }; } + export type GetGoodVibePointsResult = components["schemas"]["GetGoodVibePointsResult"]; export type ProblemDetails = components["schemas"]["ProblemDetails"]; - export type Endpoints = keyof paths; " `; exports[`e2e > petstore.json / remote URL 1`] = ` -"export interface paths { +"/** This file has been generated by @workleap/create-schemas (https://github.com/gsoft-inc/wl-openapi-typescript). Do not modify manually. */ +export interface paths { "/pet": { parameters: { query?: never; @@ -1249,6 +1253,7 @@ export interface operations { }; }; } + export type Order = components["schemas"]["Order"]; export type Customer = components["schemas"]["Customer"]; export type Address = components["schemas"]["Address"]; @@ -1257,13 +1262,13 @@ export type User = components["schemas"]["User"]; export type Tag = components["schemas"]["Tag"]; export type Pet = components["schemas"]["Pet"]; export type ApiResponse = components["schemas"]["ApiResponse"]; - export type Endpoints = keyof paths; " `; exports[`e2e > petstore.json 1`] = ` -"export interface paths { +"/** This file has been generated by @workleap/create-schemas (https://github.com/gsoft-inc/wl-openapi-typescript). Do not modify manually. */ +export interface paths { "/pets": { parameters: { query?: never; @@ -1418,10 +1423,10 @@ export interface operations { }; }; } + export type Pet = components["schemas"]["Pet"]; export type Pets = components["schemas"]["Pets"]; export type Error = components["schemas"]["Error"]; - export type Endpoints = keyof paths; " `; diff --git a/packages/create-schemas/tests/__snapshots__/watch.test.ts.snap b/packages/create-schemas/tests/__snapshots__/watch.test.ts.snap index 1fab4e5..67eacfa 100644 --- a/packages/create-schemas/tests/__snapshots__/watch.test.ts.snap +++ b/packages/create-schemas/tests/__snapshots__/watch.test.ts.snap @@ -1,7 +1,8 @@ // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html exports[`watch > changing the input 1`] = ` -"export interface paths { +"/** This file has been generated by @workleap/create-schemas (https://github.com/gsoft-inc/wl-openapi-typescript). Do not modify manually. */ +export interface paths { "/pets": { parameters: { query?: never; @@ -156,16 +157,17 @@ export interface operations { }; }; } + export type Pet = components["schemas"]["Pet"]; export type Pets = components["schemas"]["Pets"]; export type Error = components["schemas"]["Error"]; - export type Endpoints = keyof paths; " `; exports[`watch > changing the input 2`] = ` -"export interface paths { +"/** This file has been generated by @workleap/create-schemas (https://github.com/gsoft-inc/wl-openapi-typescript). Do not modify manually. */ +export interface paths { "/task": { parameters: { query?: never; @@ -421,9 +423,9 @@ export interface operations { }; }; } + export type Task = components["schemas"]["Task"]; export type Error = components["schemas"]["Error"]; - export type Endpoints = keyof paths; " `; diff --git a/packages/create-schemas/tests/config.test.ts b/packages/create-schemas/tests/config.test.ts index 5eb7b7d..49fa35c 100644 --- a/packages/create-schemas/tests/config.test.ts +++ b/packages/create-schemas/tests/config.test.ts @@ -20,7 +20,7 @@ describe.concurrent("config", () => { "cwd" ]); expect(config.input).toMatch("input"); - expect(config.output).toMatch("output"); + expect(config.outdir).toMatch("output"); expect(config.configFile).toMatch("config"); expect(config.root).toMatch("cwd"); }); @@ -48,7 +48,7 @@ describe.concurrent("config", () => { const configFileContent = `export default ${JSON.stringify({ input, - output + outdir: output } satisfies UserConfig)};`; await writeFile(configFilePath, configFileContent); @@ -56,7 +56,7 @@ describe.concurrent("config", () => { const config = await resolveConfig({ root: tempFolder }); expect(config.input).toBe(pathToFileURL(input).toString()); - expect(config.output).toBe(pathToFileURL(output).toString()); + expect(config.outdir).toBe(pathToFileURL(output).toString()); }); test("throw on invalid config", async ({ expect, onTestFinished }) => { @@ -78,7 +78,7 @@ describe.concurrent("config", () => { const configFileContent = `export default ${JSON.stringify({ input: "config-file-input", - output: "config-file-output" + outdir: "config-file-output" } satisfies UserConfig)};`; await writeFile(configFilePath, configFileContent); @@ -91,7 +91,7 @@ describe.concurrent("config", () => { expect(config.input).toBe( pathToFileURL(join(tempFolder, "inline-input")).toString() ); - expect(config.output).toBe( + expect(config.outdir).toBe( pathToFileURL(join(tempFolder, "config-file-output")).toString() ); }); diff --git a/packages/create-schemas/tests/data/ambiguous-name.json b/packages/create-schemas/tests/data/ambiguous-name.json new file mode 100644 index 0000000..c33aa37 --- /dev/null +++ b/packages/create-schemas/tests/data/ambiguous-name.json @@ -0,0 +1,18 @@ +{ + "openapi": "3.1.0", + "info": { + "version": "1.0.0", + "title": "Ambiguous Name", + "license": { + "name": "MIT", + "url": "https://opensource.org/licenses/MIT" + } + }, + "components": { + "schemas": { + "components": { + "type": "string" + } + } + } +} \ No newline at end of file diff --git a/packages/create-schemas/tests/data/field-names.json b/packages/create-schemas/tests/data/field-names.json new file mode 100644 index 0000000..d88bb95 --- /dev/null +++ b/packages/create-schemas/tests/data/field-names.json @@ -0,0 +1,30 @@ +{ + "openapi": "3.1.0", + "info": { + "version": "1.0.0", + "title": "Forbidden Name", + "license": { + "name": "MIT", + "url": "https://opensource.org/licenses/MIT" + } + }, + "components": { + "schemas": { + "User": { + "type": "string" + }, + "User_1": { + "type": "string" + }, + "User_Name": { + "type": "string" + }, + "user-name": { + "type": "string" + }, + "my.org.User": { + "type": "string" + } + } + } +} \ No newline at end of file diff --git a/packages/create-schemas/tests/data/invalid-name.json b/packages/create-schemas/tests/data/invalid-name.json new file mode 100644 index 0000000..dd78b8d --- /dev/null +++ b/packages/create-schemas/tests/data/invalid-name.json @@ -0,0 +1,18 @@ +{ + "openapi": "3.1.0", + "info": { + "version": "1.0.0", + "title": "Ambiguous Name", + "license": { + "name": "MIT", + "url": "https://opensource.org/licenses/MIT" + } + }, + "components": { + "schemas": { + "...": { + "type": "string" + } + } + } +} \ No newline at end of file diff --git a/packages/create-schemas/tests/e2e.test.ts b/packages/create-schemas/tests/e2e.test.ts index edd8f13..a1de20f 100644 --- a/packages/create-schemas/tests/e2e.test.ts +++ b/packages/create-schemas/tests/e2e.test.ts @@ -3,9 +3,10 @@ import { dataFolder, runCompiledBin } from "./fixtures.ts"; -import { describe, test } from "vitest"; +import { assert, describe, test } from "vitest"; import { join } from "node:path"; import { pathToFileURL } from "node:url"; +import { openapiTypeScriptFilename } from "../src/plugins/openapi-typescript-plugin.ts"; const timeout = 30 * 1000; // 30 seconds @@ -17,10 +18,12 @@ describe.concurrent("e2e", () => { const result = await runCompiledBin({ source: join(dataFolder, "officevice.yaml"), - output: join(tempFolder, "output.ts") + outdir: tempFolder }); - expect(result).toMatchSnapshot(); + const typesFile = result.find(file => file.filename === openapiTypeScriptFilename); + assert(typesFile); + expect(typesFile.code).toMatchSnapshot(); }, timeout ); @@ -32,10 +35,12 @@ describe.concurrent("e2e", () => { const result = await runCompiledBin({ source: pathToFileURL(join(dataFolder, "officevice.yaml")).toString(), - output: pathToFileURL(join(tempFolder, "output.ts")).toString() + outdir: tempFolder }); - expect(result).toMatchSnapshot(); + const typesFile = result.find(file => file.filename === openapiTypeScriptFilename); + assert(typesFile); + expect(typesFile.code).toMatchSnapshot(); }, timeout ); @@ -48,10 +53,12 @@ describe.concurrent("e2e", () => { const result = await runCompiledBin({ cwd: dataFolder, source: "officevice.yaml", - output: join(tempFolder, "output.ts") + outdir: tempFolder }); - expect(result).toMatchSnapshot(); + const typesFile = result.find(file => file.filename === openapiTypeScriptFilename); + assert(typesFile); + expect(typesFile.code).toMatchSnapshot(); }, timeout ); @@ -63,10 +70,12 @@ describe.concurrent("e2e", () => { const result = await runCompiledBin({ source: join(dataFolder, "petstore.json"), - output: join(tempFolder, "output.ts") + outdir: tempFolder }); - expect(result).toMatchSnapshot(); + const typesFile = result.find(file => file.filename === openapiTypeScriptFilename); + assert(typesFile); + expect(typesFile.code).toMatchSnapshot(); }, timeout ); @@ -78,10 +87,12 @@ describe.concurrent("e2e", () => { const result = await runCompiledBin({ source: "https://petstore3.swagger.io/api/v3/openapi.json", - output: join(tempFolder, "output.ts") + outdir: tempFolder }); - expect(result).toMatchSnapshot(); + const typesFile = result.find(file => file.filename === openapiTypeScriptFilename); + assert(typesFile); + expect(typesFile.code).toMatchSnapshot(); }, timeout ); diff --git a/packages/create-schemas/tests/fixtures.ts b/packages/create-schemas/tests/fixtures.ts index a8ff08d..ca1b379 100644 --- a/packages/create-schemas/tests/fixtures.ts +++ b/packages/create-schemas/tests/fixtures.ts @@ -1,9 +1,10 @@ import { Worker } from "node:worker_threads"; -import { mkdir, readFile, rm } from "node:fs/promises"; +import { mkdir, readdir, readFile, rm } from "node:fs/promises"; import { join } from "node:path"; import { fileURLToPath } from "node:url"; import type { OnTestFailedHandler } from "vitest"; import { toFullyQualifiedURL } from "../src/utils.ts"; +import type { GenerationFile } from "../src/generate.ts"; const tempFolder = fileURLToPath( new URL("../node_modules/.tmp", import.meta.url) @@ -28,17 +29,17 @@ export async function createTemporaryFolder({ interface BinOptions { source: string; - output: string; + outdir: string; cwd?: string; } -export async function runCompiledBin(options: BinOptions): Promise { +export async function runCompiledBin(options: BinOptions): Promise { const binUrl = new URL("../dist/bin.js", import.meta.url); const cwdArgs = options.cwd ? ["--cwd", options.cwd] : []; const worker = new Worker(binUrl, { - argv: [options.source, "-o", options.output, ...cwdArgs] + argv: [options.source, "-o", options.outdir, ...cwdArgs] }); await new Promise((resolve, reject) => { @@ -46,5 +47,15 @@ export async function runCompiledBin(options: BinOptions): Promise { worker.on("error", reject); }); - return readFile(new URL(toFullyQualifiedURL(options.output)), "utf8"); -} + const outdir = fileURLToPath(toFullyQualifiedURL(options.outdir)); + + const filenames = await readdir(outdir); + const files = await Promise.all( + filenames.map(async filename => ({ + filename, + code: await readFile(join(outdir, filename), "utf8") + } satisfies GenerationFile)) + ); + + return files; +} \ No newline at end of file diff --git a/packages/create-schemas/tests/generate.test.ts b/packages/create-schemas/tests/generate.test.ts new file mode 100644 index 0000000..35a2b12 --- /dev/null +++ b/packages/create-schemas/tests/generate.test.ts @@ -0,0 +1,44 @@ +import { assert, describe, test } from "vitest"; +import { generate } from "../src/generate.ts"; +import { resolveConfig } from "../src/config.ts"; +import { join } from "path"; +import { dataFolder } from "./fixtures.ts"; +import { openapiTypeScriptFilename } from "../src/plugins/openapi-typescript-plugin.ts"; + +describe.concurrent("generate", () => { + test("sanitize names", async ({ expect }) => { + const { files } = await generate(await resolveConfig({ + input: join(dataFolder, "field-names.json") + })); + + const typesFile = files.find(file => file.filename === openapiTypeScriptFilename); + + assert(typesFile); + + expect(typesFile.code).toMatch("export type User"); + expect(typesFile.code).toMatch("export type User_1"); + expect(typesFile.code).toMatch("export type User_Name"); + expect(typesFile.code).toMatch("export type username"); + expect(typesFile.code).toMatch("export type myorgUser"); + }); + + test("reject ambiguous names", async ({ expect }) => { + const fn = async () => { + await generate(await resolveConfig({ + input: join(dataFolder, "ambiguous-name.json") + })); + }; + + expect(fn).rejects.toThrow(); + }); + + test("reject invalid names", async ({ expect }) => { + const fn = async () => { + await generate(await resolveConfig({ + input: join(dataFolder, "invalid-name.json") + })); + }; + + expect(fn).rejects.toThrow(); + }); +}); diff --git a/packages/create-schemas/tests/plugins.test.ts b/packages/create-schemas/tests/plugins.test.ts new file mode 100644 index 0000000..0cfb5b7 --- /dev/null +++ b/packages/create-schemas/tests/plugins.test.ts @@ -0,0 +1,72 @@ + +import { assert, describe, expect, test } from "vitest"; +import { headerPlugin } from "../src/plugins/header-plugin.ts"; +import { typesPlugin } from "../src/plugins/types-plugin.ts"; +import { openapiTypeScriptId, openapiTypeScriptFilename } from "../src/plugins/openapi-typescript-plugin.ts"; +import { resolveConfig } from "../src/config.ts"; + +describe.concurrent("plugins", () => { + test("headerPlugin", async() => { + const plugin = headerPlugin({ header: "This is a header" }); + + assert(plugin.transform); + + const result = await plugin.transform({ + config: await resolveConfig({ input: "openapi.json" }), + id: openapiTypeScriptId, + code: "function foo() {}", + filename: openapiTypeScriptFilename, + emitFile: () => void 0 + }); + + assert(result); + + expect(result.code).toMatchInlineSnapshot(` + "/** This is a header */ + function foo() {}" + `); + }); + + test("typesPlugin", async() => { + const plugin = typesPlugin(); + + assert(plugin.transform); + + const result = await plugin.transform({ + config: await resolveConfig({ input: "openapi.json" }), + id: openapiTypeScriptId, + code: `export interface components { + schemas: { + User: string; + User_1: string; + User_Name: string; + "user-name": string; + "my.org.User": string; + } + }`, + filename: openapiTypeScriptFilename, + emitFile: () => void 0 + }); + + assert(result); + + expect(result.code).toMatchInlineSnapshot(` + "export interface components { + schemas: { + User: string; + User_1: string; + User_Name: string; + "user-name": string; + "my.org.User": string; + } + } + export type User = components["schemas"]["User"]; + export type User_1 = components["schemas"]["User_1"]; + export type User_Name = components["schemas"]["User_Name"]; + export type username = components["schemas"]["user-name"]; + export type myorgUser = components["schemas"]["my.org.User"]; + export type Endpoints = keyof paths; + " + `); + }); +}); diff --git a/packages/create-schemas/tests/watch.test.ts b/packages/create-schemas/tests/watch.test.ts index 16a3bb8..961a847 100644 --- a/packages/create-schemas/tests/watch.test.ts +++ b/packages/create-schemas/tests/watch.test.ts @@ -1,8 +1,10 @@ -import { copyFile, readFile } from "node:fs/promises"; +import { copyFile } from "node:fs/promises"; import { createTemporaryFolder, dataFolder } from "./fixtures.ts"; -import { describe, test } from "vitest"; +import { assert, describe, test } from "vitest"; import { join } from "node:path"; import { watch } from "../src/watch.ts"; +import type { GenerationResult } from "../src/generate.ts"; +import { openapiTypeScriptFilename } from "../src/plugins/openapi-typescript-plugin.ts"; describe("watch", () => { test("changing the input", async ({ expect, onTestFinished }) => { @@ -10,21 +12,26 @@ describe("watch", () => { const tempFolder = await createTemporaryFolder({ onTestFinished }); const input = join(tempFolder, "input.json"); - const output = join(tempFolder, "output.ts"); - const watcher = await watch({ input, output }); + const watcher = await watch({ input, outdir: tempFolder }); onTestFinished(() => watcher.stop()); // 1st output await copyFile(join(dataFolder, "petstore.json"), input); - await new Promise(resolve => watcher.once("done", resolve)); - let result = await readFile(output, "utf-8"); - expect(result).toMatchSnapshot(); + let result = await new Promise(resolve => watcher.once("done", resolve)); + let typesFile = result.files.find(file => file.filename === openapiTypeScriptFilename); + assert(typesFile); + expect(typesFile.code).toMatchSnapshot(); + + // Create delay to ensure the file system watcher is ready + await new Promise(resolve => setTimeout(resolve, 500)); // 2nd output + const promise = new Promise(resolve => watcher.once("done", resolve)); await copyFile(join(dataFolder, "todo.json"), input); - await new Promise(resolve => watcher.once("done", resolve)); - result = await readFile(output, "utf-8"); - expect(result).toMatchSnapshot(); + result = await promise; + typesFile = result.files.find(file => file.filename === openapiTypeScriptFilename); + assert(typesFile); + expect(typesFile.code).toMatchSnapshot(); }); }); diff --git a/packages/create-schemas/tsup.build.ts b/packages/create-schemas/tsup.build.ts index df14312..3016886 100644 --- a/packages/create-schemas/tsup.build.ts +++ b/packages/create-schemas/tsup.build.ts @@ -1,6 +1,6 @@ import { defineBuildConfig } from "@workleap/tsup-configs"; export default defineBuildConfig({ - entry: ["src/bin.ts", "src/index.ts"], + entry: ["src/bin.ts", "src/index.ts", "src/plugins/index.ts"], platform: "node" }); diff --git a/packages/create-schemas/tsup.dev.ts b/packages/create-schemas/tsup.dev.ts index 400f1ff..223ee3a 100644 --- a/packages/create-schemas/tsup.dev.ts +++ b/packages/create-schemas/tsup.dev.ts @@ -1,6 +1,6 @@ import { defineDevConfig } from "@workleap/tsup-configs"; export default defineDevConfig({ - entry: ["src/bin.ts", "src/index.ts"], + entry: ["src/bin.ts", "src/index.ts", "src/plugins/index.ts"], platform: "node" }); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e1fb448..22eb84b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -16,22 +16,25 @@ importers: version: 2.27.7 '@workleap/eslint-plugin': specifier: 3.2.2 - version: 3.2.2(@typescript-eslint/parser@7.12.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5) + version: 3.2.2(@typescript-eslint/parser@7.16.1(eslint@8.57.0)(typescript@5.5.3))(eslint@8.57.0)(typescript@5.5.3) '@workleap/typescript-configs': specifier: 3.0.2 - version: 3.0.2(typescript@5.4.5) + version: 3.0.2(typescript@5.5.3) eslint: specifier: 8.57.0 version: 8.57.0 typescript: - specifier: 5.4.5 - version: 5.4.5 + specifier: 5.5.3 + version: 5.5.3 debug: - devDependencies: + dependencies: '@workleap/create-schemas': specifier: workspace:* version: link:../packages/create-schemas + openapi-fetch: + specifier: ^0.10.2 + version: 0.10.2 packages/create-schemas: dependencies: @@ -48,11 +51,11 @@ importers: specifier: 4.1.5 version: 4.1.5 openapi-typescript: - specifier: 7.0.0-rc.0 - version: 7.0.0-rc.0(typescript@5.4.5) + specifier: 7.0.2 + version: 7.0.2(typescript@5.5.3) typescript: - specifier: 5.4.5 - version: 5.4.5 + specifier: 5.5.3 + version: 5.5.3 zod: specifier: 3.23.8 version: 3.23.8 @@ -65,39 +68,39 @@ importers: version: 20.14.1 '@workleap/eslint-plugin': specifier: 3.2.2 - version: 3.2.2(@typescript-eslint/parser@7.12.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5) + version: 3.2.2(@typescript-eslint/parser@7.16.1(eslint@8.57.0)(typescript@5.5.3))(eslint@8.57.0)(typescript@5.5.3) '@workleap/swc-configs': specifier: 2.2.3 - version: 2.2.3(@swc/core@1.3.68(@swc/helpers@0.5.11))(@swc/helpers@0.5.11)(@swc/jest@0.2.26(@swc/core@1.3.68(@swc/helpers@0.5.11))) + version: 2.2.3(@swc/core@1.6.13(@swc/helpers@0.5.11))(@swc/helpers@0.5.11) '@workleap/tsup-configs': specifier: 3.0.6 - version: 3.0.6(tsup@8.1.0(@swc/core@1.3.68(@swc/helpers@0.5.11))(postcss@8.4.39)(ts-node@10.9.1(@swc/core@1.3.68(@swc/helpers@0.5.11))(@types/node@20.14.1)(typescript@5.4.5))(typescript@5.4.5))(typescript@5.4.5) + version: 3.0.6(tsup@8.1.0(@swc/core@1.6.13(@swc/helpers@0.5.11))(postcss@8.4.39)(typescript@5.5.3))(typescript@5.5.3) eslint: specifier: 8.57.0 version: 8.57.0 tsup: specifier: 8.1.0 - version: 8.1.0(@swc/core@1.3.68(@swc/helpers@0.5.11))(postcss@8.4.39)(ts-node@10.9.1(@swc/core@1.3.68(@swc/helpers@0.5.11))(@types/node@20.14.1)(typescript@5.4.5))(typescript@5.4.5) + version: 8.1.0(@swc/core@1.6.13(@swc/helpers@0.5.11))(postcss@8.4.39)(typescript@5.5.3) vitest: specifier: 1.6.0 version: 1.6.0(@types/node@20.14.1) packages: - '@babel/code-frame@7.24.6': - resolution: {integrity: sha512-ZJhac6FkEd1yhG2AHOmfcXG4ceoLltoCVJjN5XsWN9BifBQr+cHJbWi0h68HZuSORq+3WtJ2z0hwF2NG1b5kcA==} + '@babel/code-frame@7.24.7': + resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@7.24.6': - resolution: {integrity: sha512-4yA7s865JHaqUdRbnaxarZREuPTHrjpDT+pXoAZ1yhyo6uFnIEpS8VMu16siFOHDpZNKYv5BObhsB//ycbICyw==} + '@babel/helper-validator-identifier@7.24.7': + resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} engines: {node: '>=6.9.0'} - '@babel/highlight@7.24.6': - resolution: {integrity: sha512-2YnuOp4HAk2BsBrJJvYCbItHx0zWscI1C3zgWkz+wDyD9I7GIVrfnLyrR4Y1VR+7p+chAEcrgRQYZAGIKMV7vQ==} + '@babel/highlight@7.24.7': + resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} engines: {node: '>=6.9.0'} - '@babel/runtime@7.24.6': - resolution: {integrity: sha512-Ja18XcETdEl5mzzACGd+DKgaGJzPTCow7EglgwTmHdwokzDFYh/MHua6lU6DV/hjF2IaOJ4oX2nqnjG7RElKOw==} + '@babel/runtime@7.24.8': + resolution: {integrity: sha512-5F7SDGs1T72ZczbRwbGO9lQi0NLjQxzl6i4lJxLxfW9U5UluCSyEJeniWvnhl3/euNiqQVbo8zruhsDfid0esA==} engines: {node: '>=6.9.0'} '@changesets/apply-release-plan@7.0.4': @@ -161,144 +164,140 @@ packages: '@changesets/write@0.3.1': resolution: {integrity: sha512-SyGtMXzH3qFqlHKcvFY2eX+6b0NGiFcNav8AFsYwy5l8hejOeoeTDemu5Yjmke2V5jpzY+pBvM0vCCQ3gdZpfw==} - '@cspotcode/source-map-support@0.8.1': - resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} - engines: {node: '>=12'} - - '@esbuild/aix-ppc64@0.21.4': - resolution: {integrity: sha512-Zrm+B33R4LWPLjDEVnEqt2+SLTATlru1q/xYKVn8oVTbiRBGmK2VIMoIYGJDGyftnGaC788IuzGFAlb7IQ0Y8A==} + '@esbuild/aix-ppc64@0.21.5': + resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} engines: {node: '>=12'} cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.21.4': - resolution: {integrity: sha512-fYFnz+ObClJ3dNiITySBUx+oNalYUT18/AryMxfovLkYWbutXsct3Wz2ZWAcGGppp+RVVX5FiXeLYGi97umisA==} + '@esbuild/android-arm64@0.21.5': + resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} engines: {node: '>=12'} cpu: [arm64] os: [android] - '@esbuild/android-arm@0.21.4': - resolution: {integrity: sha512-E7H/yTd8kGQfY4z9t3nRPk/hrhaCajfA3YSQSBrst8B+3uTcgsi8N+ZWYCaeIDsiVs6m65JPCaQN/DxBRclF3A==} + '@esbuild/android-arm@0.21.5': + resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} engines: {node: '>=12'} cpu: [arm] os: [android] - '@esbuild/android-x64@0.21.4': - resolution: {integrity: sha512-mDqmlge3hFbEPbCWxp4fM6hqq7aZfLEHZAKGP9viq9wMUBVQx202aDIfc3l+d2cKhUJM741VrCXEzRFhPDKH3Q==} + '@esbuild/android-x64@0.21.5': + resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} engines: {node: '>=12'} cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.21.4': - resolution: {integrity: sha512-72eaIrDZDSiWqpmCzVaBD58c8ea8cw/U0fq/PPOTqE3c53D0xVMRt2ooIABZ6/wj99Y+h4ksT/+I+srCDLU9TA==} + '@esbuild/darwin-arm64@0.21.5': + resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.21.4': - resolution: {integrity: sha512-uBsuwRMehGmw1JC7Vecu/upOjTsMhgahmDkWhGLWxIgUn2x/Y4tIwUZngsmVb6XyPSTXJYS4YiASKPcm9Zitag==} + '@esbuild/darwin-x64@0.21.5': + resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} engines: {node: '>=12'} cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.21.4': - resolution: {integrity: sha512-8JfuSC6YMSAEIZIWNL3GtdUT5NhUA/CMUCpZdDRolUXNAXEE/Vbpe6qlGLpfThtY5NwXq8Hi4nJy4YfPh+TwAg==} + '@esbuild/freebsd-arm64@0.21.5': + resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.21.4': - resolution: {integrity: sha512-8d9y9eQhxv4ef7JmXny7591P/PYsDFc4+STaxC1GBv0tMyCdyWfXu2jBuqRsyhY8uL2HU8uPyscgE2KxCY9imQ==} + '@esbuild/freebsd-x64@0.21.5': + resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.21.4': - resolution: {integrity: sha512-/GLD2orjNU50v9PcxNpYZi+y8dJ7e7/LhQukN3S4jNDXCKkyyiyAz9zDw3siZ7Eh1tRcnCHAo/WcqKMzmi4eMQ==} + '@esbuild/linux-arm64@0.21.5': + resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} engines: {node: '>=12'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.21.4': - resolution: {integrity: sha512-2rqFFefpYmpMs+FWjkzSgXg5vViocqpq5a1PSRgT0AvSgxoXmGF17qfGAzKedg6wAwyM7UltrKVo9kxaJLMF/g==} + '@esbuild/linux-arm@0.21.5': + resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} engines: {node: '>=12'} cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.21.4': - resolution: {integrity: sha512-pNftBl7m/tFG3t2m/tSjuYeWIffzwAZT9m08+9DPLizxVOsUl8DdFzn9HvJrTQwe3wvJnwTdl92AonY36w/25g==} + '@esbuild/linux-ia32@0.21.5': + resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} engines: {node: '>=12'} cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.21.4': - resolution: {integrity: sha512-cSD2gzCK5LuVX+hszzXQzlWya6c7hilO71L9h4KHwqI4qeqZ57bAtkgcC2YioXjsbfAv4lPn3qe3b00Zt+jIfQ==} + '@esbuild/linux-loong64@0.21.5': + resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} engines: {node: '>=12'} cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.21.4': - resolution: {integrity: sha512-qtzAd3BJh7UdbiXCrg6npWLYU0YpufsV9XlufKhMhYMJGJCdfX/G6+PNd0+v877X1JG5VmjBLUiFB0o8EUSicA==} + '@esbuild/linux-mips64el@0.21.5': + resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.21.4': - resolution: {integrity: sha512-yB8AYzOTaL0D5+2a4xEy7OVvbcypvDR05MsB/VVPVA7nL4hc5w5Dyd/ddnayStDgJE59fAgNEOdLhBxjfx5+dg==} + '@esbuild/linux-ppc64@0.21.5': + resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.21.4': - resolution: {integrity: sha512-Y5AgOuVzPjQdgU59ramLoqSSiXddu7F3F+LI5hYy/d1UHN7K5oLzYBDZe23QmQJ9PIVUXwOdKJ/jZahPdxzm9w==} + '@esbuild/linux-riscv64@0.21.5': + resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.21.4': - resolution: {integrity: sha512-Iqc/l/FFwtt8FoTK9riYv9zQNms7B8u+vAI/rxKuN10HgQIXaPzKZc479lZ0x6+vKVQbu55GdpYpeNWzjOhgbA==} + '@esbuild/linux-s390x@0.21.5': + resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} engines: {node: '>=12'} cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.21.4': - resolution: {integrity: sha512-Td9jv782UMAFsuLZINfUpoF5mZIbAj+jv1YVtE58rFtfvoKRiKSkRGQfHTgKamLVT/fO7203bHa3wU122V/Bdg==} + '@esbuild/linux-x64@0.21.5': + resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} engines: {node: '>=12'} cpu: [x64] os: [linux] - '@esbuild/netbsd-x64@0.21.4': - resolution: {integrity: sha512-Awn38oSXxsPMQxaV0Ipb7W/gxZtk5Tx3+W+rAPdZkyEhQ6968r9NvtkjhnhbEgWXYbgV+JEONJ6PcdBS+nlcpA==} + '@esbuild/netbsd-x64@0.21.5': + resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] - '@esbuild/openbsd-x64@0.21.4': - resolution: {integrity: sha512-IsUmQeCY0aU374R82fxIPu6vkOybWIMc3hVGZ3ChRwL9hA1TwY+tS0lgFWV5+F1+1ssuvvXt3HFqe8roCip8Hg==} + '@esbuild/openbsd-x64@0.21.5': + resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] - '@esbuild/sunos-x64@0.21.4': - resolution: {integrity: sha512-hsKhgZ4teLUaDA6FG/QIu2q0rI6I36tZVfM4DBZv3BG0mkMIdEnMbhc4xwLvLJSS22uWmaVkFkqWgIS0gPIm+A==} + '@esbuild/sunos-x64@0.21.5': + resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} engines: {node: '>=12'} cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.21.4': - resolution: {integrity: sha512-UUfMgMoXPoA/bvGUNfUBFLCh0gt9dxZYIx9W4rfJr7+hKe5jxxHmfOK8YSH4qsHLLN4Ck8JZ+v7Q5fIm1huErg==} + '@esbuild/win32-arm64@0.21.5': + resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} engines: {node: '>=12'} cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.21.4': - resolution: {integrity: sha512-yIxbspZb5kGCAHWm8dexALQ9en1IYDfErzjSEq1KzXFniHv019VT3mNtTK7t8qdy4TwT6QYHI9sEZabONHg+aw==} + '@esbuild/win32-ia32@0.21.5': + resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} engines: {node: '>=12'} cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.21.4': - resolution: {integrity: sha512-sywLRD3UK/qRJt0oBwdpYLBibk7KiRfbswmWRDabuncQYSlf8aLEEUor/oP6KRz8KEG+HoiVLBhPRD5JWjS8Sg==} + '@esbuild/win32-x64@0.21.5': + resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} engines: {node: '>=12'} cpu: [x64] os: [win32] @@ -309,8 +308,8 @@ packages: peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - '@eslint-community/regexpp@4.10.1': - resolution: {integrity: sha512-Zm2NGpWELsQAD1xsJzGQpYfvICSsFkEpU0jxBjfdC6uNEWXcHnfs9hScFWtXVDVl+rBQJGrl4g1vcKIejpH9dA==} + '@eslint-community/regexpp@4.11.0': + resolution: {integrity: sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} '@eslint/eslintrc@2.1.4': @@ -324,6 +323,7 @@ packages: '@humanwhocodes/config-array@0.11.14': resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} engines: {node: '>=10.10.0'} + deprecated: Use @eslint/config-array instead '@humanwhocodes/module-importer@1.0.1': resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} @@ -331,23 +331,16 @@ packages: '@humanwhocodes/object-schema@2.0.3': resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} + deprecated: Use @eslint/object-schema instead '@isaacs/cliui@8.0.2': resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} - '@jest/create-cache-key-function@27.5.1': - resolution: {integrity: sha512-dmH1yW+makpTSURTy8VzdUwFnfQh1G8R+DxO2Ho2FFmBbKFEVm+3jWdvFhE2VqB/LATCTokkP0dotjyQyw5/AQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - '@jest/schemas@29.6.3': resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - '@jest/types@27.5.1': - resolution: {integrity: sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - '@jridgewell/gen-mapping@0.3.5': resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} engines: {node: '>=6.0.0'} @@ -360,15 +353,12 @@ packages: resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} engines: {node: '>=6.0.0'} - '@jridgewell/sourcemap-codec@1.4.15': - resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + '@jridgewell/sourcemap-codec@1.5.0': + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} '@jridgewell/trace-mapping@0.3.25': resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} - '@jridgewell/trace-mapping@0.3.9': - resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} - '@manypkg/find-root@1.1.0': resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==} @@ -387,8 +377,12 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} - '@npmcli/config@8.3.3': - resolution: {integrity: sha512-sIMKHiiYr91ALiHjhPq64F5P/SCaiSyDfpNmgYHtlIJtLY445+3+r3VoREzpdDrOwIqwQ6iEHinbTfaocL0UgA==} + '@npmcli/config@8.3.4': + resolution: {integrity: sha512-01rtHedemDNhUXdicU7s+QYz/3JyV5Naj84cvdXGH4mgCdL+agmSYaLF4LUG4vMCLzhBO8YtS0gPpH1FGvbgAw==} + engines: {node: ^16.14.0 || >=18.0.0} + + '@npmcli/git@5.0.8': + resolution: {integrity: sha512-liASfw5cqhjNW9UFd+ruwwdEf/lbOAQjLL2XY2dFW/bkJheXDYZgOyul/4gVvEV4BWkTXjYGmDqMw9uegdbJNQ==} engines: {node: ^16.14.0 || >=18.0.0} '@npmcli/map-workspaces@3.0.6': @@ -399,6 +393,14 @@ packages: resolution: {integrity: sha512-pwK+BfEBZJbKdNYpHHRTNBwBoqrN/iIMO0AiGvYsp3Hoaq0WbgGSWQR6SCldZovoDpY3yje5lkFUe6gsDgJ2vg==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + '@npmcli/package-json@5.2.0': + resolution: {integrity: sha512-qe/kiqqkW0AGtvBjL8TJKZk/eBBSpnJkUWvHdQ9jM2lKHXRYYJuyNpJPlJw3c8QjC2ow6NZYiLExhUaeJelbxQ==} + engines: {node: ^16.14.0 || >=18.0.0} + + '@npmcli/promise-spawn@7.0.2': + resolution: {integrity: sha512-xhfYPXoV5Dy4UkY0D+v2KkwvnDfiA/8Mt3sWCGI/hM03NsYIH8ZaG6QzS9x7pje5vHZBZJ2v6VRFVTWACnqcmQ==} + engines: {node: ^16.14.0 || >=18.0.0} + '@pkgjs/parseargs@0.11.0': resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} @@ -410,90 +412,90 @@ packages: '@redocly/ajv@8.11.0': resolution: {integrity: sha512-9GWx27t7xWhDIR02PA18nzBdLcKQRgc46xNQvjFkrYk4UOmvKhJ/dawwiX0cCOeetN5LcaaiqQbVOWYK62SGHw==} - '@redocly/config@0.5.0': - resolution: {integrity: sha512-oA1ezWPT2tSV9CLk0FtZlViaFKtp+id3iAVeKBme1DdP4xUCdxEdP8umB21iLKdc6leRd5uGa+T5Ox4nHBAXWg==} + '@redocly/config@0.6.3': + resolution: {integrity: sha512-hGWJgCsXRw0Ow4rplqRlUQifZvoSwZipkYnt11e3SeH1Eb23VUIDBcRuaQOUqy1wn0eevXkU2GzzQ8fbKdQ7Mg==} - '@redocly/openapi-core@1.14.0': - resolution: {integrity: sha512-sraF4PGVcc6t6CaYw5raO/GWeOaa6UjcEvH/+Qm7zp+q/fbWAMwbj+1QzaNvpMspCwF+xW6TddDcnXrCDmqYVA==} + '@redocly/openapi-core@1.18.0': + resolution: {integrity: sha512-kcbt7w23pcVYGLnJkh2LZpXF1OX5RDM4DLOtwPug2HvRE8ow/YfY8ZEM1YCFlA41D8rBPBVP918cYeIx4BVUbw==} engines: {node: '>=14.19.0', npm: '>=7.0.0'} - '@rollup/rollup-android-arm-eabi@4.18.0': - resolution: {integrity: sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==} + '@rollup/rollup-android-arm-eabi@4.18.1': + resolution: {integrity: sha512-lncuC4aHicncmbORnx+dUaAgzee9cm/PbIqgWz1PpXuwc+sa1Ct83tnqUDy/GFKleLiN7ZIeytM6KJ4cAn1SxA==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.18.0': - resolution: {integrity: sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==} + '@rollup/rollup-android-arm64@4.18.1': + resolution: {integrity: sha512-F/tkdw0WSs4ojqz5Ovrw5r9odqzFjb5LIgHdHZG65dFI1lWTWRVy32KDJLKRISHgJvqUeUhdIvy43fX41znyDg==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.18.0': - resolution: {integrity: sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==} + '@rollup/rollup-darwin-arm64@4.18.1': + resolution: {integrity: sha512-vk+ma8iC1ebje/ahpxpnrfVQJibTMyHdWpOGZ3JpQ7Mgn/3QNHmPq7YwjZbIE7km73dH5M1e6MRRsnEBW7v5CQ==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.18.0': - resolution: {integrity: sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==} + '@rollup/rollup-darwin-x64@4.18.1': + resolution: {integrity: sha512-IgpzXKauRe1Tafcej9STjSSuG0Ghu/xGYH+qG6JwsAUxXrnkvNHcq/NL6nz1+jzvWAnQkuAJ4uIwGB48K9OCGA==} cpu: [x64] os: [darwin] - '@rollup/rollup-linux-arm-gnueabihf@4.18.0': - resolution: {integrity: sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==} + '@rollup/rollup-linux-arm-gnueabihf@4.18.1': + resolution: {integrity: sha512-P9bSiAUnSSM7EmyRK+e5wgpqai86QOSv8BwvkGjLwYuOpaeomiZWifEos517CwbG+aZl1T4clSE1YqqH2JRs+g==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.18.0': - resolution: {integrity: sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==} + '@rollup/rollup-linux-arm-musleabihf@4.18.1': + resolution: {integrity: sha512-5RnjpACoxtS+aWOI1dURKno11d7krfpGDEn19jI8BuWmSBbUC4ytIADfROM1FZrFhQPSoP+KEa3NlEScznBTyQ==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.18.0': - resolution: {integrity: sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==} + '@rollup/rollup-linux-arm64-gnu@4.18.1': + resolution: {integrity: sha512-8mwmGD668m8WaGbthrEYZ9CBmPug2QPGWxhJxh/vCgBjro5o96gL04WLlg5BA233OCWLqERy4YUzX3bJGXaJgQ==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.18.0': - resolution: {integrity: sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==} + '@rollup/rollup-linux-arm64-musl@4.18.1': + resolution: {integrity: sha512-dJX9u4r4bqInMGOAQoGYdwDP8lQiisWb9et+T84l2WXk41yEej8v2iGKodmdKimT8cTAYt0jFb+UEBxnPkbXEQ==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.18.0': - resolution: {integrity: sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==} + '@rollup/rollup-linux-powerpc64le-gnu@4.18.1': + resolution: {integrity: sha512-V72cXdTl4EI0x6FNmho4D502sy7ed+LuVW6Ym8aI6DRQ9hQZdp5sj0a2usYOlqvFBNKQnLQGwmYnujo2HvjCxQ==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.18.0': - resolution: {integrity: sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==} + '@rollup/rollup-linux-riscv64-gnu@4.18.1': + resolution: {integrity: sha512-f+pJih7sxoKmbjghrM2RkWo2WHUW8UbfxIQiWo5yeCaCM0TveMEuAzKJte4QskBp1TIinpnRcxkquY+4WuY/tg==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.18.0': - resolution: {integrity: sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==} + '@rollup/rollup-linux-s390x-gnu@4.18.1': + resolution: {integrity: sha512-qb1hMMT3Fr/Qz1OKovCuUM11MUNLUuHeBC2DPPAWUYYUAOFWaxInaTwTQmc7Fl5La7DShTEpmYwgdt2hG+4TEg==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.18.0': - resolution: {integrity: sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==} + '@rollup/rollup-linux-x64-gnu@4.18.1': + resolution: {integrity: sha512-7O5u/p6oKUFYjRbZkL2FLbwsyoJAjyeXHCU3O4ndvzg2OFO2GinFPSJFGbiwFDaCFc+k7gs9CF243PwdPQFh5g==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.18.0': - resolution: {integrity: sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==} + '@rollup/rollup-linux-x64-musl@4.18.1': + resolution: {integrity: sha512-pDLkYITdYrH/9Cv/Vlj8HppDuLMDUBmgsM0+N+xLtFd18aXgM9Nyqupb/Uw+HeidhfYg2lD6CXvz6CjoVOaKjQ==} cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.18.0': - resolution: {integrity: sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==} + '@rollup/rollup-win32-arm64-msvc@4.18.1': + resolution: {integrity: sha512-W2ZNI323O/8pJdBGil1oCauuCzmVd9lDmWBBqxYZcOqWD6aWqJtVBQ1dFrF4dYpZPks6F+xCZHfzG5hYlSHZ6g==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.18.0': - resolution: {integrity: sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==} + '@rollup/rollup-win32-ia32-msvc@4.18.1': + resolution: {integrity: sha512-ELfEX1/+eGZYMaCIbK4jqLxO1gyTSOIlZr6pbC4SRYFaSIDVKOnZNMdoZ+ON0mrFDp4+H5MhwNC1H/AhE3zQLg==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.18.0': - resolution: {integrity: sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==} + '@rollup/rollup-win32-x64-msvc@4.18.1': + resolution: {integrity: sha512-yjk2MAkQmoaPYCSu35RLJ62+dz358nE83VfTePJRp8CG7aMg25mEJYpXFiD+NcevhX8LxD5OP5tktPXnXN7GDw==} cpu: [x64] os: [win32] @@ -503,95 +505,83 @@ packages: '@storybook/csf@0.0.1': resolution: {integrity: sha512-USTLkZze5gkel8MYCujSRBVIrUQ3YPBrLOx7GNk/0wttvVtlzWXAq9eLbQ4p/NicGxP+3T7KPEMVV//g+yubpw==} - '@swc/core-darwin-arm64@1.3.68': - resolution: {integrity: sha512-Z5pNxeuP2NxpOHTzDQkJs0wAPLnTlglZnR3WjObijwvdwT/kw1Y5EPDKM/BVSIeG40SPMkDLBbI0aj0qyXzrBA==} + '@swc/core-darwin-arm64@1.6.13': + resolution: {integrity: sha512-SOF4buAis72K22BGJ3N8y88mLNfxLNprTuJUpzikyMGrvkuBFNcxYtMhmomO0XHsgLDzOJ+hWzcgjRNzjMsUcQ==} engines: {node: '>=10'} cpu: [arm64] os: [darwin] - '@swc/core-darwin-x64@1.3.68': - resolution: {integrity: sha512-ZHl42g6yXhfX4PzAQ0BNvBXpt/OcbAHfubWRN6eXELK3fiNnxL7QBW1if7iizlq6iA+Mj1pwHyyUit1pz0+fgA==} + '@swc/core-darwin-x64@1.6.13': + resolution: {integrity: sha512-AW8akFSC+tmPE6YQQvK9S2A1B8pjnXEINg+gGgw0KRUUXunvu1/OEOeC5L2Co1wAwhD7bhnaefi06Qi9AiwOag==} engines: {node: '>=10'} cpu: [x64] os: [darwin] - '@swc/core-linux-arm-gnueabihf@1.3.68': - resolution: {integrity: sha512-Mk8f6KCOQ2CNAR4PtWajIjS6XKSSR7ZYDOCf1GXRxhS3qEyQH7V8elWvqWYqHcT4foO60NUmxA/NOM/dQrdO1A==} + '@swc/core-linux-arm-gnueabihf@1.6.13': + resolution: {integrity: sha512-f4gxxvDXVUm2HLYXRd311mSrmbpQF2MZ4Ja6XCQz1hWAxXdhRl1gpnZ+LH/xIfGSwQChrtLLVrkxdYUCVuIjFg==} engines: {node: '>=10'} cpu: [arm] os: [linux] - '@swc/core-linux-arm64-gnu@1.3.68': - resolution: {integrity: sha512-RhBllggh9t9sIxaRgRcGrVaS7fDk6KsIqR6b9+dwU5OyDr4ZyHWw1ZaH/1/HAebuXYhNBjoNUiRtca6lKRIPgQ==} + '@swc/core-linux-arm64-gnu@1.6.13': + resolution: {integrity: sha512-Nf/eoW2CbG8s+9JoLtjl9FByBXyQ5cjdBsA4efO7Zw4p+YSuXDgc8HRPC+E2+ns0praDpKNZtLvDtmF2lL+2Gg==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-arm64-musl@1.3.68': - resolution: {integrity: sha512-8K3zjU+tFgn6yGDEeD343gkKaHU9dhz77NiVkI1VzwRaT/Ag5pwl5eMQ1yStm8koNFzn3zq6rGjHfI5g2yI5Wg==} + '@swc/core-linux-arm64-musl@1.6.13': + resolution: {integrity: sha512-2OysYSYtdw79prJYuKIiux/Gj0iaGEbpS2QZWCIY4X9sGoETJ5iMg+lY+YCrIxdkkNYd7OhIbXdYFyGs/w5LDg==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-x64-gnu@1.3.68': - resolution: {integrity: sha512-4xAnvsBOyeTL0AB8GWlRKDM/hsysJ5jr5qvdKKI3rZfJgnnxl/xSX6TJKPsJ8gygfUJ3BmfCbmUmEyeDZ3YPvA==} + '@swc/core-linux-x64-gnu@1.6.13': + resolution: {integrity: sha512-PkR4CZYJNk5hcd2+tMWBpnisnmYsUzazI1O5X7VkIGFcGePTqJ/bWlfUIVVExWxvAI33PQFzLbzmN5scyIUyGQ==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-linux-x64-musl@1.3.68': - resolution: {integrity: sha512-RCpaBo1fcpy1EFdjF+I7N4lfzOaHXVV0iMw/ABM+0PD6tp3V/9pxsguaZyeAHyEiUlDA6PZ4TfXv5zfnXEgW4Q==} + '@swc/core-linux-x64-musl@1.6.13': + resolution: {integrity: sha512-OdsY7wryTxCKwGQcwW9jwWg3cxaHBkTTHi91+5nm7hFPpmZMz1HivJrWAMwVE7iXFw+M4l6ugB/wCvpYrUAAjA==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-win32-arm64-msvc@1.3.68': - resolution: {integrity: sha512-v2WZvXrSslYEpY1nqpItyamL4DyaJinmOkXvM8Bc1LLKU5rGuvmBdjUYg/5Y+o0AUynuiWubpgHNOkBWiCvfqw==} + '@swc/core-win32-arm64-msvc@1.6.13': + resolution: {integrity: sha512-ap6uNmYjwk9M/+bFEuWRNl3hq4VqgQ/Lk+ID/F5WGqczNr0L7vEf+pOsRAn0F6EV+o/nyb3ePt8rLhE/wjHpPg==} engines: {node: '>=10'} cpu: [arm64] os: [win32] - '@swc/core-win32-ia32-msvc@1.3.68': - resolution: {integrity: sha512-HH5NJrIdzkJs+1xxprie0qSCMBeL9yeEhcC1yZTzYv8bwmabOUSdtKIqS55iYP/2hLWn9CTbvKPmLOIhCopW3Q==} + '@swc/core-win32-ia32-msvc@1.6.13': + resolution: {integrity: sha512-IJ8KH4yIUHTnS/U1jwQmtbfQals7zWPG0a9hbEfIr4zI0yKzjd83lmtS09lm2Q24QBWOCFGEEbuZxR4tIlvfzA==} engines: {node: '>=10'} cpu: [ia32] os: [win32] - '@swc/core-win32-x64-msvc@1.3.68': - resolution: {integrity: sha512-9HZVtLQUgK8r/yXQdwe0VBexbIcrY6+fBROhs7AAPWdewpaUeLkwQEJk6TbYr9CQuHw26FFGg6SjwAiqXF+kgQ==} + '@swc/core-win32-x64-msvc@1.6.13': + resolution: {integrity: sha512-f6/sx6LMuEnbuxtiSL/EkR0Y6qUHFw1XVrh6rwzKXptTipUdOY+nXpKoh+1UsBm/r7H0/5DtOdrn3q5ZHbFZjQ==} engines: {node: '>=10'} cpu: [x64] os: [win32] - '@swc/core@1.3.68': - resolution: {integrity: sha512-njGQuJO+Wy06dEayt70cf0c/KI3HGjm4iW9LLViVLBuYNzJ4SSdNfzejludzufu6im+dsDJ0i3QjgWhAIcVHMQ==} + '@swc/core@1.6.13': + resolution: {integrity: sha512-eailUYex6fkfaQTev4Oa3mwn0/e3mQU4H8y1WPuImYQESOQDtVrowwUGDSc19evpBbHpKtwM+hw8nLlhIsF+Tw==} engines: {node: '>=10'} peerDependencies: - '@swc/helpers': ^0.5.0 + '@swc/helpers': '*' peerDependenciesMeta: '@swc/helpers': optional: true + '@swc/counter@0.1.3': + resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} + '@swc/helpers@0.5.11': resolution: {integrity: sha512-YNlnKRWF2sVojTpIyzwou9XoTNbzbzONwRhOoniEioF1AtaitTvVZblaQRrAzChWQ1bLYyYSWzM18y4WwgzJ+A==} - '@swc/jest@0.2.26': - resolution: {integrity: sha512-7lAi7q7ShTO3E5Gt1Xqf3pIhRbERxR1DUxvtVa9WKzIB+HGQ7wZP5sYx86zqnaEoKKGhmOoZ7gyW0IRu8Br5+A==} - engines: {npm: '>= 7.0.0'} - peerDependencies: - '@swc/core': '*' - - '@tsconfig/node10@1.0.11': - resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} - - '@tsconfig/node12@1.0.11': - resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} - - '@tsconfig/node14@1.0.3': - resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} - - '@tsconfig/node16@1.0.4': - resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} + '@swc/types@0.1.9': + resolution: {integrity: sha512-qKnCno++jzcJ4lM4NTfYifm1EFSCeIfKiAHAfkENZAV5Kl9PjJIyd2yeeVv6c/2CckuLyv2NmRC5pv6pm2WQBg==} '@types/acorn@4.0.6': resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==} @@ -617,15 +607,6 @@ packages: '@types/is-empty@1.2.3': resolution: {integrity: sha512-4J1l5d79hoIvsrKh5VUKVRA1aIdsOb10Hu5j3J2VfP/msDnfTdGPmNp2E1Wg+vs97Bktzo+MZePFFXSGoykYJw==} - '@types/istanbul-lib-coverage@2.0.6': - resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} - - '@types/istanbul-lib-report@3.0.3': - resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} - - '@types/istanbul-reports@3.0.4': - resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} - '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} @@ -662,14 +643,8 @@ packages: '@types/unist@3.0.2': resolution: {integrity: sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==} - '@types/yargs-parser@21.0.3': - resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} - - '@types/yargs@16.0.9': - resolution: {integrity: sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==} - - '@typescript-eslint/eslint-plugin@7.12.0': - resolution: {integrity: sha512-7F91fcbuDf/d3S8o21+r3ZncGIke/+eWk0EpO21LXhDfLahriZF9CGj4fbAetEjlaBdjdSm9a6VeXbpbT6Z40Q==} + '@typescript-eslint/eslint-plugin@7.16.1': + resolution: {integrity: sha512-SxdPak/5bO0EnGktV05+Hq8oatjAYVY3Zh2bye9pGZy6+jwyR3LG3YKkV4YatlsgqXP28BTeVm9pqwJM96vf2A==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: '@typescript-eslint/parser': ^7.0.0 @@ -679,8 +654,8 @@ packages: typescript: optional: true - '@typescript-eslint/parser@7.12.0': - resolution: {integrity: sha512-dm/J2UDY3oV3TKius2OUZIFHsomQmpHtsV0FTh1WO8EKgHLQ1QCADUqscPgTpU+ih1e21FQSRjXckHn3txn6kQ==} + '@typescript-eslint/parser@7.16.1': + resolution: {integrity: sha512-u+1Qx86jfGQ5i4JjK33/FnawZRpsLxRnKzGE6EABZ40KxVT/vWsiZFEBBHjFOljmmV3MBYOHEKi0Jm9hbAOClA==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 @@ -693,12 +668,12 @@ packages: resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@typescript-eslint/scope-manager@7.12.0': - resolution: {integrity: sha512-itF1pTnN6F3unPak+kutH9raIkL3lhH1YRPGgt7QQOh43DQKVJXmWkpb+vpc/TiDHs6RSd9CTbDsc/Y+Ygq7kg==} + '@typescript-eslint/scope-manager@7.16.1': + resolution: {integrity: sha512-nYpyv6ALte18gbMz323RM+vpFpTjfNdyakbf3nsLvF43uF9KeNC289SUEW3QLZ1xPtyINJ1dIsZOuWuSRIWygw==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/type-utils@7.12.0': - resolution: {integrity: sha512-lib96tyRtMhLxwauDWUp/uW3FMhLA6D0rJ8T7HmH7x23Gk1Gwwu8UZ94NMXBvOELn6flSPiBrCKlehkiXyaqwA==} + '@typescript-eslint/type-utils@7.16.1': + resolution: {integrity: sha512-rbu/H2MWXN4SkjIIyWcmYBjlp55VT+1G3duFOIukTNFxr9PI35pLc2ydwAfejCEitCv4uztA07q0QWanOHC7dA==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 @@ -711,8 +686,8 @@ packages: resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@typescript-eslint/types@7.12.0': - resolution: {integrity: sha512-o+0Te6eWp2ppKY3mLCU+YA9pVJxhUJE15FV7kxuD9jgwIAa+w/ycGJBMrYDTpVGUM/tgpa9SeMOugSabWFq7bg==} + '@typescript-eslint/types@7.16.1': + resolution: {integrity: sha512-AQn9XqCzUXd4bAVEsAXM/Izk11Wx2u4H3BAfQVhSfzfDOm/wAON9nP7J5rpkCxts7E5TELmN845xTUCQrD1xIQ==} engines: {node: ^18.18.0 || >=20.0.0} '@typescript-eslint/typescript-estree@5.62.0': @@ -724,8 +699,8 @@ packages: typescript: optional: true - '@typescript-eslint/typescript-estree@7.12.0': - resolution: {integrity: sha512-5bwqLsWBULv1h6pn7cMW5dXX/Y2amRqLaKqsASVwbBHMZSnHqE/HN4vT4fE0aFsiwxYvr98kqOWh1a8ZKXalCQ==} + '@typescript-eslint/typescript-estree@7.16.1': + resolution: {integrity: sha512-0vFPk8tMjj6apaAZ1HlwM8w7jbghC8jc1aRNJG5vN8Ym5miyhTQGMqU++kuBFDNKe9NcPeZ6x0zfSzV8xC1UlQ==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: typescript: '*' @@ -739,8 +714,8 @@ packages: peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - '@typescript-eslint/utils@7.12.0': - resolution: {integrity: sha512-Y6hhwxwDx41HNpjuYswYp6gDbkiZ8Hin9Bf5aJQn1bpTs3afYY4GX+MPYxma8jtoIV2GRwTM/UJm/2uGCVv+DQ==} + '@typescript-eslint/utils@7.16.1': + resolution: {integrity: sha512-WrFM8nzCowV0he0RlkotGDujx78xudsxnGMBHI88l5J8wEhED6yBwaSLP99ygfrzAjsQvcYQ94quDwI0d7E1fA==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 @@ -749,8 +724,8 @@ packages: resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@typescript-eslint/visitor-keys@7.12.0': - resolution: {integrity: sha512-uZk7DevrQLL3vSnfFl5bj4sL75qC9D6EdjemIdbtkuUmIheWpuiiylSY01JxJE7+zGrOWDZrp1WxOuDntvKrHQ==} + '@typescript-eslint/visitor-keys@7.16.1': + resolution: {integrity: sha512-Qlzzx4sE4u3FsHTPQAAQFJFNOuqtuY0LFrZHwQ8IHK705XxBiWOFkfKRWu6niB7hwfgnwIpO4jTC75ozW1PHWg==} engines: {node: ^18.18.0 || >=20.0.0} '@ungap/structured-clone@1.2.0': @@ -818,15 +793,19 @@ packages: peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - acorn-walk@8.3.2: - resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} + acorn-walk@8.3.3: + resolution: {integrity: sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==} engines: {node: '>=0.4.0'} - acorn@8.11.3: - resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} + acorn@8.12.1: + resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} engines: {node: '>=0.4.0'} hasBin: true + agent-base@7.1.1: + resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==} + engines: {node: '>= 14'} + ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} @@ -865,17 +844,14 @@ packages: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} - arg@4.1.3: - resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} - argparse@1.0.10: resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - aria-query@5.3.0: - resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} + aria-query@5.1.3: + resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==} array-buffer-byte-length@1.0.1: resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} @@ -926,12 +902,12 @@ packages: resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} - axe-core@4.7.0: - resolution: {integrity: sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==} + axe-core@4.9.1: + resolution: {integrity: sha512-QbUdXJVTpvUTHU7871ppZkdOLBeGUKBQWHkHrvN2V9IQWGMt61zf3B45BtzjxEJzYuj0JBjBZP/hmYS/R9pmAw==} engines: {node: '>=4'} - axobject-query@3.2.1: - resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==} + axobject-query@3.1.1: + resolution: {integrity: sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg==} bail@2.0.2: resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} @@ -1085,9 +1061,6 @@ packages: resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} engines: {node: ^14.18.0 || >=16.10.0} - create-require@1.1.1: - resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} - cross-spawn@5.1.0: resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==} @@ -1137,6 +1110,10 @@ packages: resolution: {integrity: sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==} engines: {node: '>=6'} + deep-equal@2.2.3: + resolution: {integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==} + engines: {node: '>= 0.4'} + deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} @@ -1173,10 +1150,6 @@ packages: resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - diff@4.0.2: - resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} - engines: {node: '>=0.3.1'} - diff@5.2.0: resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} engines: {node: '>=0.3.1'} @@ -1217,6 +1190,9 @@ packages: resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} engines: {node: '>=8.6'} + err-code@2.0.3: + resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} + error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} @@ -1232,6 +1208,9 @@ packages: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} + es-get-iterator@1.1.3: + resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} + es-iterator-helpers@1.0.19: resolution: {integrity: sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==} engines: {node: '>= 0.4'} @@ -1251,8 +1230,8 @@ packages: resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} engines: {node: '>= 0.4'} - esbuild@0.21.4: - resolution: {integrity: sha512-sFMcNNrj+Q0ZDolrp5pDhH0nRPN9hLIM3fRPwgbLYJeSHHgnXSnbV3xYgSVuOeLWH9c73VwmEverVzupIv5xuA==} + esbuild@0.21.5: + resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} engines: {node: '>=12'} hasBin: true @@ -1323,8 +1302,8 @@ packages: jest: optional: true - eslint-plugin-jsx-a11y@6.8.0: - resolution: {integrity: sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==} + eslint-plugin-jsx-a11y@6.9.0: + resolution: {integrity: sha512-nOFOCaJG2pYqORjK19lqPqxMO/JpvdCZdPtNdxY3kvom3jTvkAbOvQvD8wuD0G8BYR0IGAGYDlzqWJOh/ybn2g==} engines: {node: '>=4.0'} peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 @@ -1354,8 +1333,8 @@ packages: peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 - eslint-plugin-react@7.34.2: - resolution: {integrity: sha512-2HCmrU+/JNigDN6tg55cRDKCQWicYAPB38JGSFDQt95jDm8rrvSUo7YPkOIm5l6ts1j1zCvysNcasvfTMQzUOw==} + eslint-plugin-react@7.34.4: + resolution: {integrity: sha512-Np+jo9bUwJNxCsT12pXtrGhJgT3T44T1sHhn1Ssr42XFn8TES0267wPGo5nNrMHi8qkyimDAX2BUmkf9pSaVzA==} engines: {node: '>=4'} peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 @@ -1404,8 +1383,8 @@ packages: engines: {node: '>=4'} hasBin: true - esquery@1.5.0: - resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} + esquery@1.6.0: + resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} engines: {node: '>=0.10'} esrecurse@4.3.0: @@ -1496,8 +1475,8 @@ packages: for-each@0.3.3: resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} - foreground-child@3.1.1: - resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} + foreground-child@3.2.1: + resolution: {integrity: sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==} engines: {node: '>=14'} fs-extra@7.0.1: @@ -1564,9 +1543,8 @@ packages: resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} engines: {node: '>=10.13.0'} - glob@10.4.1: - resolution: {integrity: sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==} - engines: {node: '>=16 || 14 >=14.18'} + glob@10.4.5: + resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} hasBin: true glob@7.2.3: @@ -1628,6 +1606,14 @@ packages: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} + hosted-git-info@7.0.2: + resolution: {integrity: sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==} + engines: {node: ^16.14.0 || >=18.0.0} + + https-proxy-agent@7.0.5: + resolution: {integrity: sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==} + engines: {node: '>= 14'} + human-id@1.0.2: resolution: {integrity: sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==} @@ -1689,6 +1675,10 @@ packages: is-alphanumerical@2.0.1: resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} + is-arguments@1.1.1: + resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} + engines: {node: '>= 0.4'} + is-array-buffer@3.0.4: resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} engines: {node: '>= 0.4'} @@ -1715,8 +1705,9 @@ packages: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} - is-core-module@2.13.1: - resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} + is-core-module@2.14.0: + resolution: {integrity: sha512-a5dFJih5ZLYlRtDc0dZWP7RiKr6xIKzmn/oAYCDvdLThadVgyJwlaoQPmRtMSpz+rk0OGAgIu+TcM9HUF0fk1A==} + engines: {node: '>= 0.4'} is-data-view@1.0.1: resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} @@ -1845,12 +1836,15 @@ packages: isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + isexe@3.1.1: + resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==} + engines: {node: '>=16'} + iterator.prototype@1.1.2: resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} - jackspeak@3.2.0: - resolution: {integrity: sha512-eXIwN9gutMuB1AMW241gIHSEeaSMafWnxWXb/JGYWqifway4QgqBJLl7nYlmhGrxnHQ3wNc/QYFZ95aDtHHzpA==} - engines: {node: '>=14'} + jackspeak@3.4.3: + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} jiti@1.21.6: resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} @@ -1902,9 +1896,6 @@ packages: resolution: {integrity: sha512-WYDyuc/uFcGp6YtM2H0uKmUwieOuzeE/5YocFJLnLfclZ4inf3mRn8ZVy1s7Hxji7Jxm6Ss8gqpexD/GlKoGgg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - jsonc-parser@3.2.1: - resolution: {integrity: sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==} - jsonfile@4.0.0: resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} @@ -1930,8 +1921,8 @@ packages: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} - lilconfig@3.1.1: - resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==} + lilconfig@3.1.2: + resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==} engines: {node: '>=14'} lines-and-columns@1.2.4: @@ -1989,9 +1980,8 @@ packages: loupe@2.3.7: resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} - lru-cache@10.2.2: - resolution: {integrity: sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==} - engines: {node: 14 || >=16.14} + lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} lru-cache@4.1.5: resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} @@ -1999,9 +1989,6 @@ packages: magic-string@0.30.10: resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==} - make-error@1.3.6: - resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} - mdast-util-from-markdown@0.8.5: resolution: {integrity: sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==} @@ -2145,8 +2132,8 @@ packages: resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} engines: {node: '>=10'} - minimatch@9.0.4: - resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==} + minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} engines: {node: '>=16 || 14 >=14.17'} minimist@0.0.10: @@ -2217,14 +2204,30 @@ packages: engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} hasBin: true + normalize-package-data@6.0.2: + resolution: {integrity: sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==} + engines: {node: ^16.14.0 || >=18.0.0} + normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} + npm-install-checks@6.3.0: + resolution: {integrity: sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + npm-normalize-package-bin@3.0.1: resolution: {integrity: sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + npm-package-arg@11.0.2: + resolution: {integrity: sha512-IGN0IAwmhDJwy13Wc8k+4PEbTPhpJnMtfR53ZbOyjkvmEcLS4nCwp6mvMWjS5sUjeiW3mpx6cHmuhKEu9XmcQw==} + engines: {node: ^16.14.0 || >=18.0.0} + + npm-pick-manifest@9.1.0: + resolution: {integrity: sha512-nkc+3pIIhqHVQr085X9d2JzPzLyjzQS96zbruppqC9aZRm/x8xx6xhI98gHtsfELP2bE+loHq8ZaHFHhe+NauA==} + engines: {node: ^16.14.0 || >=18.0.0} + npm-run-path@4.0.1: resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} engines: {node: '>=8'} @@ -2242,8 +2245,13 @@ packages: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} - object-inspect@1.13.1: - resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} + object-inspect@1.13.2: + resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==} + engines: {node: '>= 0.4'} + + object-is@1.1.6: + resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==} + engines: {node: '>= 0.4'} object-keys@1.1.1: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} @@ -2265,10 +2273,6 @@ packages: resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} engines: {node: '>= 0.4'} - object.hasown@1.1.4: - resolution: {integrity: sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==} - engines: {node: '>= 0.4'} - object.values@1.2.0: resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} engines: {node: '>= 0.4'} @@ -2287,8 +2291,14 @@ packages: resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} engines: {node: '>=12'} - openapi-typescript@7.0.0-rc.0: - resolution: {integrity: sha512-9Vff1CxGTfFXQChFTVNJImx1WGqqTXfDJK2h5c81wz6e8ksu9zVXkiDM6YZY5PF7fgRaoXLwlptaEQpF2zWT1Q==} + openapi-fetch@0.10.2: + resolution: {integrity: sha512-GCzgKIZchnxZRnztiOlRTKk9tQT0NHvs5MNXYFtOwG7xaj1iCJOGDsTLbn/2QUP37PjGTT890qERFjvmjxzQMg==} + + openapi-typescript-helpers@0.0.9: + resolution: {integrity: sha512-BO2TvIDAO/FPVKz1Nj2gy+pUOHfaoENdK5UP3H0Jbh0VXBf3dwYMs58ZwOjiezrbHA2LamdquoyQgahTPvIxGA==} + + openapi-typescript@7.0.2: + resolution: {integrity: sha512-BBrYEf0YdW31Ernd07cD/qHoalSuiiUQvy+rHvU/1Iz9WbcFpRsIXrnfEnrEuiGTRuKCG6cDQCrxNK/rbwQRLg==} hasBin: true peerDependencies: typescript: ^5.x @@ -2339,8 +2349,11 @@ packages: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} - package-json-validator@0.6.4: - resolution: {integrity: sha512-sp5bWr5eUoVgNV50vsJyil0XCluM+qMvtba8X4ug5Z/0YtYZsePka+tZgqiZnAyFyf5pwXaSDwYncFdSEzX7PA==} + package-json-from-dist@1.0.0: + resolution: {integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==} + + package-json-validator@0.6.5: + resolution: {integrity: sha512-fEG8kM+EfX0j7TbTWAv6/0NRkid0fUHm2afJx35en3+IlrJ6dRQfKUCpuUl/bGM6MvQ0MxAlpaXkJtYVMp0F4A==} hasBin: true parent-module@1.0.1: @@ -2443,8 +2456,8 @@ packages: resolution: {integrity: sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==} engines: {node: ^10 || ^12 || >=14} - preferred-pm@3.1.3: - resolution: {integrity: sha512-MkXsENfftWSRpzCzImcp4FRsCc3y1opwB73CfCNWyzMqArju2CrlMHlqB7VexKiPEOjGMbttv1r9fSCn5S610w==} + preferred-pm@3.1.4: + resolution: {integrity: sha512-lEHd+yEm22jXdCphDrkvIJQU66EuLojPPtvZkpKIkiD+l0DMThF/niqZKJSoU8Vl7iuvtmzyMhir9LdVy5WMnA==} engines: {node: '>=10'} prelude-ls@1.2.1: @@ -2464,6 +2477,18 @@ packages: resolution: {integrity: sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + promise-inflight@1.0.1: + resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} + peerDependencies: + bluebird: '*' + peerDependenciesMeta: + bluebird: + optional: true + + promise-retry@2.0.1: + resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} + engines: {node: '>=10'} + prop-types@15.8.1: resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} @@ -2546,6 +2571,10 @@ packages: resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} hasBin: true + retry@0.12.0: + resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} + engines: {node: '>= 4'} + reusify@1.0.4: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} @@ -2555,8 +2584,8 @@ packages: deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true - rollup@4.18.0: - resolution: {integrity: sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==} + rollup@4.18.1: + resolution: {integrity: sha512-Elx2UT8lzxxOXMpy5HWQGZqkrQOtrVDDa/bm9l10+U4rQnVzbL/LgZ4NOM1MPIDyHk69W4InuYDF5dzRh4Kw1A==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -2650,6 +2679,18 @@ packages: spawndamnit@2.0.0: resolution: {integrity: sha512-j4JKEcncSjFlqIwU5L/rp2N5SIPsdxaRsIv678+TZxZ0SRDJTm8JrxJMjE/XuiEZNEir3S8l0Fa3Ke339WI4qA==} + spdx-correct@3.2.0: + resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} + + spdx-exceptions@2.5.0: + resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} + + spdx-expression-parse@3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + + spdx-license-ids@3.0.18: + resolution: {integrity: sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ==} + sprintf-js@1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} @@ -2659,6 +2700,10 @@ packages: std-env@3.7.0: resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} + stop-iteration-iterator@1.0.0: + resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} + engines: {node: '>= 0.4'} + string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} @@ -2671,10 +2716,16 @@ packages: resolution: {integrity: sha512-k01swCJAgQmuADB0YIc+7TuatfNvTBVOoaUWJjTB9R4VJzR5vNWzf5t42ESVZFPS8xTySF7CAdV4t/aaIm3UnQ==} engines: {node: '>=16'} + string.prototype.includes@2.0.0: + resolution: {integrity: sha512-E34CkBgyeqNDcrbU76cDjL5JLcVrtSdYq0MEh/B10r17pRP4ciHLwTgnuLV8Ay6cgEMLkcBkFCKyFZ43YldYzg==} + string.prototype.matchall@4.0.11: resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==} engines: {node: '>= 0.4'} + string.prototype.repeat@1.0.0: + resolution: {integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==} + string.prototype.trim@1.2.9: resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} engines: {node: '>= 0.4'} @@ -2740,8 +2791,8 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - synckit@0.9.0: - resolution: {integrity: sha512-7RnqIMq572L8PeEzKeBINYEJDDxpcH8JEgLwUqBd3TkofhFRbkq4QLR0u+36avGAhCRbk2nnmjcW9SE531hPDg==} + synckit@0.9.1: + resolution: {integrity: sha512-7gr8p9TQP6RAHusBOSLs46F4564ZrjV8xFmw5zCmgmhGUcw2hxsShhJ6CEiHQMgPDwAQ1fWHPM0ypc4RMAig4A==} engines: {node: ^14.18.0 || >=16.0.0} tar@6.2.1: @@ -2807,28 +2858,14 @@ packages: ts-interface-checker@0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} - ts-node@10.9.1: - resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} - hasBin: true - peerDependencies: - '@swc/core': '>=1.2.50' - '@swc/wasm': '>=1.2.50' - '@types/node': '*' - typescript: '>=2.7' - peerDependenciesMeta: - '@swc/core': - optional: true - '@swc/wasm': - optional: true - tsconfig-paths@3.15.0: resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} tslib@1.14.1: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} - tslib@2.6.2: - resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + tslib@2.6.3: + resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} tsup@8.1.0: resolution: {integrity: sha512-UFdfCAXukax+U6KzeTNO2kAARHcWxmKsnvSPXUcfA1D+kU05XDccCrkffCQpFaWDsZfV0jMyTsxU39VfCp6EOg==} @@ -2871,8 +2908,8 @@ packages: resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==} engines: {node: '>=14.16'} - type-fest@4.19.0: - resolution: {integrity: sha512-CN2l+hWACRiejlnr68vY0/7734Kzu+9+TOslUXbSCQ1ruY9XIHDBSceVXCcHm/oXrdzhtLMMdJEKfemf1yXiZQ==} + type-fest@4.21.0: + resolution: {integrity: sha512-ADn2w7hVPcK6w1I0uWnM//y1rLXZhzB9mr0a3OirzclKF1Wp6VzevUmzz/NRAWunOT6E8HrnpGY7xOfc6K57fA==} engines: {node: '>=16'} typed-array-buffer@1.0.2: @@ -2894,8 +2931,8 @@ packages: typedarray@0.0.6: resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} - typescript@5.4.5: - resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==} + typescript@5.5.3: + resolution: {integrity: sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==} engines: {node: '>=14.17'} hasBin: true @@ -2911,11 +2948,11 @@ packages: unified-engine@11.2.1: resolution: {integrity: sha512-xBAdZ8UY2X4R9Hm6X6kMne4Nz0PlpOc1oE6DPeqJnewr5Imkb8uT5Eyvy1h7xNekPL3PSWh3ZJyNrMW6jnNQBg==} - unified@11.0.4: - resolution: {integrity: sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==} + unified@11.0.5: + resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} - unist-util-inspect@8.0.0: - resolution: {integrity: sha512-/3Wn/wU6/H6UEo4FoYUeo8KUePN8ERiZpQYFWYoihOsr1DoDuv80PeB0hobVZyYSvALa2e556bG1A1/AbwU4yg==} + unist-util-inspect@8.1.0: + resolution: {integrity: sha512-mOlg8Mp33pR0eeFpo5d2902ojqFFOKMMG2hF8bmH7ZlhnmjFgh0NI3/ZDwdaBJNbvrS7LZFVrBVtIE9KZ9s7vQ==} unist-util-is@6.0.0: resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} @@ -2953,8 +2990,8 @@ packages: engines: {node: '>=8'} hasBin: true - v8-compile-cache-lib@3.0.1: - resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} + validate-npm-package-license@3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} validate-npm-package-name@5.0.1: resolution: {integrity: sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==} @@ -2972,16 +3009,16 @@ packages: vfile-statistics@3.0.0: resolution: {integrity: sha512-/qlwqwWBWFOmpXujL/20P+Iuydil0rZZNglR+VNm6J0gpLHwuVM5s7g2TfVoswbXjZ4HuIhLMySEyIw5i7/D8w==} - vfile@6.0.1: - resolution: {integrity: sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==} + vfile@6.0.2: + resolution: {integrity: sha512-zND7NlS8rJYb/sPqkb13ZvbbUoExdbi4w3SfRrMq6R3FvnLQmmfpajJNITuuYm6AZ5uao9vy4BAos3EXBPf2rg==} vite-node@1.6.0: resolution: {integrity: sha512-de6HJgzC+TFzOu0NTC4RAIsyf/DY/ibWDYQUcuEA84EMHhcefTUGkjFHKKEJhQN4A+6I0u++kr3l36ZF2d7XRw==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true - vite@5.3.3: - resolution: {integrity: sha512-NPQdeCU0Dv2z5fu+ULotpuq5yfCS1BzKUIPhNbP3YBfAMGJXbt2nS+sbTFu+qchaqWTD+H3JK++nRwr6XIcp6A==} + vite@5.3.4: + resolution: {integrity: sha512-Cw+7zL3ZG9/NZBB8C+8QbQZmR54GwqIz+WMI4b3JgdYJvX+ny9AjJXqkGQlDXSXRP9rP0B4tbciRMOVEKulVOA==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -3059,8 +3096,8 @@ packages: resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} engines: {node: '>= 0.4'} - which-pm@2.0.0: - resolution: {integrity: sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==} + which-pm@2.2.0: + resolution: {integrity: sha512-MOiaDbA5ZZgUjkeMWM5EkJp4loW5ZRoa5bc3/aeMox/PJelMhE6t7S/mLuiY43DBupyxH+S0U1bTui9kWUlmsw==} engines: {node: '>=8.15'} which-typed-array@1.1.15: @@ -3076,8 +3113,13 @@ packages: engines: {node: '>= 8'} hasBin: true - why-is-node-running@2.2.2: - resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==} + which@4.0.0: + resolution: {integrity: sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==} + engines: {node: ^16.13.0 || >=18.0.0} + hasBin: true + + why-is-node-running@2.3.0: + resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} engines: {node: '>=8'} hasBin: true @@ -3113,8 +3155,8 @@ packages: resolution: {integrity: sha512-4wZWvE398hCP7O8n3nXKu/vdq1HcH01ixYlCREaJL5NUMwQ0g3MaGFUBNSlmBtKmhbtVG/Cm6lyYmSVTEVil8A==} engines: {node: ^14.17.0 || >=16.0.0} - yaml@2.4.3: - resolution: {integrity: sha512-sntgmxj8o7DE7g/Qi60cqpLBA3HG3STcDA0kO+WfB05jEKhZMbY7umNm2rBpQvsmZ16/lPXCJGW2672dgOUkrg==} + yaml@2.4.5: + resolution: {integrity: sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==} engines: {node: '>= 14'} hasBin: true @@ -3122,10 +3164,6 @@ packages: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} - yn@3.1.1: - resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} - engines: {node: '>=6'} - yocto-queue@0.1.0: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} @@ -3142,27 +3180,27 @@ packages: snapshots: - '@babel/code-frame@7.24.6': + '@babel/code-frame@7.24.7': dependencies: - '@babel/highlight': 7.24.6 + '@babel/highlight': 7.24.7 picocolors: 1.0.1 - '@babel/helper-validator-identifier@7.24.6': {} + '@babel/helper-validator-identifier@7.24.7': {} - '@babel/highlight@7.24.6': + '@babel/highlight@7.24.7': dependencies: - '@babel/helper-validator-identifier': 7.24.6 + '@babel/helper-validator-identifier': 7.24.7 chalk: 2.4.2 js-tokens: 4.0.0 picocolors: 1.0.1 - '@babel/runtime@7.24.6': + '@babel/runtime@7.24.8': dependencies: regenerator-runtime: 0.14.1 '@changesets/apply-release-plan@7.0.4': dependencies: - '@babel/runtime': 7.24.6 + '@babel/runtime': 7.24.8 '@changesets/config': 3.0.2 '@changesets/get-version-range-type': 0.4.0 '@changesets/git': 3.0.0 @@ -3179,7 +3217,7 @@ snapshots: '@changesets/assemble-release-plan@6.0.3': dependencies: - '@babel/runtime': 7.24.6 + '@babel/runtime': 7.24.8 '@changesets/errors': 0.2.0 '@changesets/get-dependents-graph': 2.1.1 '@changesets/should-skip-package': 0.1.0 @@ -3201,7 +3239,7 @@ snapshots: '@changesets/cli@2.27.7': dependencies: - '@babel/runtime': 7.24.6 + '@babel/runtime': 7.24.8 '@changesets/apply-release-plan': 7.0.4 '@changesets/assemble-release-plan': 6.0.3 '@changesets/changelog-git': 0.2.0 @@ -3228,7 +3266,7 @@ snapshots: mri: 1.2.0 outdent: 0.5.0 p-limit: 2.3.0 - preferred-pm: 3.1.3 + preferred-pm: 3.1.4 resolve-from: 5.0.0 semver: 7.6.2 spawndamnit: 2.0.0 @@ -3265,7 +3303,7 @@ snapshots: '@changesets/get-release-plan@4.0.3': dependencies: - '@babel/runtime': 7.24.6 + '@babel/runtime': 7.24.8 '@changesets/assemble-release-plan': 6.0.3 '@changesets/config': 3.0.2 '@changesets/pre': 2.0.0 @@ -3277,7 +3315,7 @@ snapshots: '@changesets/git@3.0.0': dependencies: - '@babel/runtime': 7.24.6 + '@babel/runtime': 7.24.8 '@changesets/errors': 0.2.0 '@changesets/types': 6.0.0 '@manypkg/get-packages': 1.1.3 @@ -3296,7 +3334,7 @@ snapshots: '@changesets/pre@2.0.0': dependencies: - '@babel/runtime': 7.24.6 + '@babel/runtime': 7.24.8 '@changesets/errors': 0.2.0 '@changesets/types': 6.0.0 '@manypkg/get-packages': 1.1.3 @@ -3304,7 +3342,7 @@ snapshots: '@changesets/read@0.6.0': dependencies: - '@babel/runtime': 7.24.6 + '@babel/runtime': 7.24.8 '@changesets/git': 3.0.0 '@changesets/logger': 0.1.0 '@changesets/parse': 0.4.0 @@ -3315,7 +3353,7 @@ snapshots: '@changesets/should-skip-package@0.1.0': dependencies: - '@babel/runtime': 7.24.6 + '@babel/runtime': 7.24.8 '@changesets/types': 6.0.0 '@manypkg/get-packages': 1.1.3 @@ -3325,84 +3363,79 @@ snapshots: '@changesets/write@0.3.1': dependencies: - '@babel/runtime': 7.24.6 + '@babel/runtime': 7.24.8 '@changesets/types': 6.0.0 fs-extra: 7.0.1 human-id: 1.0.2 prettier: 2.8.8 - '@cspotcode/source-map-support@0.8.1': - dependencies: - '@jridgewell/trace-mapping': 0.3.9 + '@esbuild/aix-ppc64@0.21.5': optional: true - '@esbuild/aix-ppc64@0.21.4': + '@esbuild/android-arm64@0.21.5': optional: true - '@esbuild/android-arm64@0.21.4': + '@esbuild/android-arm@0.21.5': optional: true - '@esbuild/android-arm@0.21.4': + '@esbuild/android-x64@0.21.5': optional: true - '@esbuild/android-x64@0.21.4': + '@esbuild/darwin-arm64@0.21.5': optional: true - '@esbuild/darwin-arm64@0.21.4': + '@esbuild/darwin-x64@0.21.5': optional: true - '@esbuild/darwin-x64@0.21.4': + '@esbuild/freebsd-arm64@0.21.5': optional: true - '@esbuild/freebsd-arm64@0.21.4': + '@esbuild/freebsd-x64@0.21.5': optional: true - '@esbuild/freebsd-x64@0.21.4': + '@esbuild/linux-arm64@0.21.5': optional: true - '@esbuild/linux-arm64@0.21.4': + '@esbuild/linux-arm@0.21.5': optional: true - '@esbuild/linux-arm@0.21.4': + '@esbuild/linux-ia32@0.21.5': optional: true - '@esbuild/linux-ia32@0.21.4': + '@esbuild/linux-loong64@0.21.5': optional: true - '@esbuild/linux-loong64@0.21.4': + '@esbuild/linux-mips64el@0.21.5': optional: true - '@esbuild/linux-mips64el@0.21.4': + '@esbuild/linux-ppc64@0.21.5': optional: true - '@esbuild/linux-ppc64@0.21.4': + '@esbuild/linux-riscv64@0.21.5': optional: true - '@esbuild/linux-riscv64@0.21.4': + '@esbuild/linux-s390x@0.21.5': optional: true - '@esbuild/linux-s390x@0.21.4': + '@esbuild/linux-x64@0.21.5': optional: true - '@esbuild/linux-x64@0.21.4': + '@esbuild/netbsd-x64@0.21.5': optional: true - '@esbuild/netbsd-x64@0.21.4': + '@esbuild/openbsd-x64@0.21.5': optional: true - '@esbuild/openbsd-x64@0.21.4': + '@esbuild/sunos-x64@0.21.5': optional: true - '@esbuild/sunos-x64@0.21.4': + '@esbuild/win32-arm64@0.21.5': optional: true - '@esbuild/win32-arm64@0.21.4': + '@esbuild/win32-ia32@0.21.5': optional: true - '@esbuild/win32-ia32@0.21.4': - optional: true - - '@esbuild/win32-x64@0.21.4': + '@esbuild/win32-x64@0.21.5': optional: true '@eslint-community/eslint-utils@4.4.0(eslint@8.57.0)': @@ -3410,12 +3443,12 @@ snapshots: eslint: 8.57.0 eslint-visitor-keys: 3.4.3 - '@eslint-community/regexpp@4.10.1': {} + '@eslint-community/regexpp@4.11.0': {} '@eslint/eslintrc@2.1.4': dependencies: ajv: 6.12.6 - debug: 4.3.5 + debug: 4.3.5(supports-color@9.4.0) espree: 9.6.1 globals: 13.24.0 ignore: 5.3.1 @@ -3431,7 +3464,7 @@ snapshots: '@humanwhocodes/config-array@0.11.14': dependencies: '@humanwhocodes/object-schema': 2.0.3 - debug: 4.3.5 + debug: 4.3.5(supports-color@9.4.0) minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -3449,57 +3482,37 @@ snapshots: wrap-ansi: 8.1.0 wrap-ansi-cjs: wrap-ansi@7.0.0 - '@jest/create-cache-key-function@27.5.1': - dependencies: - '@jest/types': 27.5.1 - optional: true - '@jest/schemas@29.6.3': dependencies: '@sinclair/typebox': 0.27.8 - '@jest/types@27.5.1': - dependencies: - '@types/istanbul-lib-coverage': 2.0.6 - '@types/istanbul-reports': 3.0.4 - '@types/node': 20.14.1 - '@types/yargs': 16.0.9 - chalk: 4.1.2 - optional: true - '@jridgewell/gen-mapping@0.3.5': dependencies: '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/sourcemap-codec': 1.5.0 '@jridgewell/trace-mapping': 0.3.25 '@jridgewell/resolve-uri@3.1.2': {} '@jridgewell/set-array@1.2.1': {} - '@jridgewell/sourcemap-codec@1.4.15': {} + '@jridgewell/sourcemap-codec@1.5.0': {} '@jridgewell/trace-mapping@0.3.25': dependencies: '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.4.15 - - '@jridgewell/trace-mapping@0.3.9': - dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.4.15 - optional: true + '@jridgewell/sourcemap-codec': 1.5.0 '@manypkg/find-root@1.1.0': dependencies: - '@babel/runtime': 7.24.6 + '@babel/runtime': 7.24.8 '@types/node': 12.20.55 find-up: 4.1.0 fs-extra: 8.1.0 '@manypkg/get-packages@1.1.3': dependencies: - '@babel/runtime': 7.24.6 + '@babel/runtime': 7.24.8 '@changesets/types': 4.1.0 '@manypkg/find-root': 1.1.0 fs-extra: 8.1.0 @@ -3518,26 +3531,58 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.17.1 - '@npmcli/config@8.3.3': + '@npmcli/config@8.3.4': dependencies: '@npmcli/map-workspaces': 3.0.6 + '@npmcli/package-json': 5.2.0 ci-info: 4.0.0 ini: 4.1.3 nopt: 7.2.1 proc-log: 4.2.0 - read-package-json-fast: 3.0.2 semver: 7.6.2 walk-up-path: 3.0.1 + transitivePeerDependencies: + - bluebird + + '@npmcli/git@5.0.8': + dependencies: + '@npmcli/promise-spawn': 7.0.2 + ini: 4.1.3 + lru-cache: 10.4.3 + npm-pick-manifest: 9.1.0 + proc-log: 4.2.0 + promise-inflight: 1.0.1 + promise-retry: 2.0.1 + semver: 7.6.2 + which: 4.0.0 + transitivePeerDependencies: + - bluebird '@npmcli/map-workspaces@3.0.6': dependencies: '@npmcli/name-from-folder': 2.0.0 - glob: 10.4.1 - minimatch: 9.0.4 + glob: 10.4.5 + minimatch: 9.0.5 read-package-json-fast: 3.0.2 '@npmcli/name-from-folder@2.0.0': {} + '@npmcli/package-json@5.2.0': + dependencies: + '@npmcli/git': 5.0.8 + glob: 10.4.5 + hosted-git-info: 7.0.2 + json-parse-even-better-errors: 3.0.2 + normalize-package-data: 6.0.2 + proc-log: 4.2.0 + semver: 7.6.2 + transitivePeerDependencies: + - bluebird + + '@npmcli/promise-spawn@7.0.2': + dependencies: + which: 4.0.0 + '@pkgjs/parseargs@0.11.0': optional: true @@ -3550,13 +3595,14 @@ snapshots: require-from-string: 2.0.2 uri-js: 4.4.1 - '@redocly/config@0.5.0': {} + '@redocly/config@0.6.3': {} - '@redocly/openapi-core@1.14.0': + '@redocly/openapi-core@1.18.0(supports-color@9.4.0)': dependencies: '@redocly/ajv': 8.11.0 - '@redocly/config': 0.5.0 + '@redocly/config': 0.6.3 colorette: 1.4.0 + https-proxy-agent: 7.0.5(supports-color@9.4.0) js-levenshtein: 1.1.6 js-yaml: 4.1.0 lodash.isequal: 4.5.0 @@ -3566,53 +3612,54 @@ snapshots: yaml-ast-parser: 0.0.43 transitivePeerDependencies: - encoding + - supports-color - '@rollup/rollup-android-arm-eabi@4.18.0': + '@rollup/rollup-android-arm-eabi@4.18.1': optional: true - '@rollup/rollup-android-arm64@4.18.0': + '@rollup/rollup-android-arm64@4.18.1': optional: true - '@rollup/rollup-darwin-arm64@4.18.0': + '@rollup/rollup-darwin-arm64@4.18.1': optional: true - '@rollup/rollup-darwin-x64@4.18.0': + '@rollup/rollup-darwin-x64@4.18.1': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.18.0': + '@rollup/rollup-linux-arm-gnueabihf@4.18.1': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.18.0': + '@rollup/rollup-linux-arm-musleabihf@4.18.1': optional: true - '@rollup/rollup-linux-arm64-gnu@4.18.0': + '@rollup/rollup-linux-arm64-gnu@4.18.1': optional: true - '@rollup/rollup-linux-arm64-musl@4.18.0': + '@rollup/rollup-linux-arm64-musl@4.18.1': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.18.0': + '@rollup/rollup-linux-powerpc64le-gnu@4.18.1': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.18.0': + '@rollup/rollup-linux-riscv64-gnu@4.18.1': optional: true - '@rollup/rollup-linux-s390x-gnu@4.18.0': + '@rollup/rollup-linux-s390x-gnu@4.18.1': optional: true - '@rollup/rollup-linux-x64-gnu@4.18.0': + '@rollup/rollup-linux-x64-gnu@4.18.1': optional: true - '@rollup/rollup-linux-x64-musl@4.18.0': + '@rollup/rollup-linux-x64-musl@4.18.1': optional: true - '@rollup/rollup-win32-arm64-msvc@4.18.0': + '@rollup/rollup-win32-arm64-msvc@4.18.1': optional: true - '@rollup/rollup-win32-ia32-msvc@4.18.0': + '@rollup/rollup-win32-ia32-msvc@4.18.1': optional: true - '@rollup/rollup-win32-x64-msvc@4.18.0': + '@rollup/rollup-win32-x64-msvc@4.18.1': optional: true '@sinclair/typebox@0.27.8': {} @@ -3621,72 +3668,62 @@ snapshots: dependencies: lodash: 4.17.21 - '@swc/core-darwin-arm64@1.3.68': + '@swc/core-darwin-arm64@1.6.13': optional: true - '@swc/core-darwin-x64@1.3.68': + '@swc/core-darwin-x64@1.6.13': optional: true - '@swc/core-linux-arm-gnueabihf@1.3.68': + '@swc/core-linux-arm-gnueabihf@1.6.13': optional: true - '@swc/core-linux-arm64-gnu@1.3.68': + '@swc/core-linux-arm64-gnu@1.6.13': optional: true - '@swc/core-linux-arm64-musl@1.3.68': + '@swc/core-linux-arm64-musl@1.6.13': optional: true - '@swc/core-linux-x64-gnu@1.3.68': + '@swc/core-linux-x64-gnu@1.6.13': optional: true - '@swc/core-linux-x64-musl@1.3.68': + '@swc/core-linux-x64-musl@1.6.13': optional: true - '@swc/core-win32-arm64-msvc@1.3.68': + '@swc/core-win32-arm64-msvc@1.6.13': optional: true - '@swc/core-win32-ia32-msvc@1.3.68': + '@swc/core-win32-ia32-msvc@1.6.13': optional: true - '@swc/core-win32-x64-msvc@1.3.68': + '@swc/core-win32-x64-msvc@1.6.13': optional: true - '@swc/core@1.3.68(@swc/helpers@0.5.11)': + '@swc/core@1.6.13(@swc/helpers@0.5.11)': + dependencies: + '@swc/counter': 0.1.3 + '@swc/types': 0.1.9 optionalDependencies: - '@swc/core-darwin-arm64': 1.3.68 - '@swc/core-darwin-x64': 1.3.68 - '@swc/core-linux-arm-gnueabihf': 1.3.68 - '@swc/core-linux-arm64-gnu': 1.3.68 - '@swc/core-linux-arm64-musl': 1.3.68 - '@swc/core-linux-x64-gnu': 1.3.68 - '@swc/core-linux-x64-musl': 1.3.68 - '@swc/core-win32-arm64-msvc': 1.3.68 - '@swc/core-win32-ia32-msvc': 1.3.68 - '@swc/core-win32-x64-msvc': 1.3.68 + '@swc/core-darwin-arm64': 1.6.13 + '@swc/core-darwin-x64': 1.6.13 + '@swc/core-linux-arm-gnueabihf': 1.6.13 + '@swc/core-linux-arm64-gnu': 1.6.13 + '@swc/core-linux-arm64-musl': 1.6.13 + '@swc/core-linux-x64-gnu': 1.6.13 + '@swc/core-linux-x64-musl': 1.6.13 + '@swc/core-win32-arm64-msvc': 1.6.13 + '@swc/core-win32-ia32-msvc': 1.6.13 + '@swc/core-win32-x64-msvc': 1.6.13 '@swc/helpers': 0.5.11 + '@swc/counter@0.1.3': {} + '@swc/helpers@0.5.11': dependencies: - tslib: 2.6.2 + tslib: 2.6.3 - '@swc/jest@0.2.26(@swc/core@1.3.68(@swc/helpers@0.5.11))': + '@swc/types@0.1.9': dependencies: - '@jest/create-cache-key-function': 27.5.1 - '@swc/core': 1.3.68(@swc/helpers@0.5.11) - jsonc-parser: 3.2.1 - optional: true - - '@tsconfig/node10@1.0.11': - optional: true - - '@tsconfig/node12@1.0.11': - optional: true - - '@tsconfig/node14@1.0.3': - optional: true - - '@tsconfig/node16@1.0.4': - optional: true + '@swc/counter': 0.1.3 '@types/acorn@4.0.6': dependencies: @@ -3717,19 +3754,6 @@ snapshots: '@types/is-empty@1.2.3': {} - '@types/istanbul-lib-coverage@2.0.6': - optional: true - - '@types/istanbul-lib-report@3.0.3': - dependencies: - '@types/istanbul-lib-coverage': 2.0.6 - optional: true - - '@types/istanbul-reports@3.0.4': - dependencies: - '@types/istanbul-lib-report': 3.0.3 - optional: true - '@types/json-schema@7.0.15': {} '@types/json5@0.0.29': {} @@ -3760,42 +3784,34 @@ snapshots: '@types/unist@3.0.2': {} - '@types/yargs-parser@21.0.3': - optional: true - - '@types/yargs@16.0.9': + '@typescript-eslint/eslint-plugin@7.16.1(@typescript-eslint/parser@7.16.1(eslint@8.57.0)(typescript@5.5.3))(eslint@8.57.0)(typescript@5.5.3)': dependencies: - '@types/yargs-parser': 21.0.3 - optional: true - - '@typescript-eslint/eslint-plugin@7.12.0(@typescript-eslint/parser@7.12.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5)': - dependencies: - '@eslint-community/regexpp': 4.10.1 - '@typescript-eslint/parser': 7.12.0(eslint@8.57.0)(typescript@5.4.5) - '@typescript-eslint/scope-manager': 7.12.0 - '@typescript-eslint/type-utils': 7.12.0(eslint@8.57.0)(typescript@5.4.5) - '@typescript-eslint/utils': 7.12.0(eslint@8.57.0)(typescript@5.4.5) - '@typescript-eslint/visitor-keys': 7.12.0 + '@eslint-community/regexpp': 4.11.0 + '@typescript-eslint/parser': 7.16.1(eslint@8.57.0)(typescript@5.5.3) + '@typescript-eslint/scope-manager': 7.16.1 + '@typescript-eslint/type-utils': 7.16.1(eslint@8.57.0)(typescript@5.5.3) + '@typescript-eslint/utils': 7.16.1(eslint@8.57.0)(typescript@5.5.3) + '@typescript-eslint/visitor-keys': 7.16.1 eslint: 8.57.0 graphemer: 1.4.0 ignore: 5.3.1 natural-compare: 1.4.0 - ts-api-utils: 1.3.0(typescript@5.4.5) + ts-api-utils: 1.3.0(typescript@5.5.3) optionalDependencies: - typescript: 5.4.5 + typescript: 5.5.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@7.12.0(eslint@8.57.0)(typescript@5.4.5)': + '@typescript-eslint/parser@7.16.1(eslint@8.57.0)(typescript@5.5.3)': dependencies: - '@typescript-eslint/scope-manager': 7.12.0 - '@typescript-eslint/types': 7.12.0 - '@typescript-eslint/typescript-estree': 7.12.0(typescript@5.4.5) - '@typescript-eslint/visitor-keys': 7.12.0 - debug: 4.3.5 + '@typescript-eslint/scope-manager': 7.16.1 + '@typescript-eslint/types': 7.16.1 + '@typescript-eslint/typescript-estree': 7.16.1(typescript@5.5.3) + '@typescript-eslint/visitor-keys': 7.16.1 + debug: 4.3.5(supports-color@9.4.0) eslint: 8.57.0 optionalDependencies: - typescript: 5.4.5 + typescript: 5.5.3 transitivePeerDependencies: - supports-color @@ -3804,64 +3820,64 @@ snapshots: '@typescript-eslint/types': 5.62.0 '@typescript-eslint/visitor-keys': 5.62.0 - '@typescript-eslint/scope-manager@7.12.0': + '@typescript-eslint/scope-manager@7.16.1': dependencies: - '@typescript-eslint/types': 7.12.0 - '@typescript-eslint/visitor-keys': 7.12.0 + '@typescript-eslint/types': 7.16.1 + '@typescript-eslint/visitor-keys': 7.16.1 - '@typescript-eslint/type-utils@7.12.0(eslint@8.57.0)(typescript@5.4.5)': + '@typescript-eslint/type-utils@7.16.1(eslint@8.57.0)(typescript@5.5.3)': dependencies: - '@typescript-eslint/typescript-estree': 7.12.0(typescript@5.4.5) - '@typescript-eslint/utils': 7.12.0(eslint@8.57.0)(typescript@5.4.5) - debug: 4.3.5 + '@typescript-eslint/typescript-estree': 7.16.1(typescript@5.5.3) + '@typescript-eslint/utils': 7.16.1(eslint@8.57.0)(typescript@5.5.3) + debug: 4.3.5(supports-color@9.4.0) eslint: 8.57.0 - ts-api-utils: 1.3.0(typescript@5.4.5) + ts-api-utils: 1.3.0(typescript@5.5.3) optionalDependencies: - typescript: 5.4.5 + typescript: 5.5.3 transitivePeerDependencies: - supports-color '@typescript-eslint/types@5.62.0': {} - '@typescript-eslint/types@7.12.0': {} + '@typescript-eslint/types@7.16.1': {} - '@typescript-eslint/typescript-estree@5.62.0(typescript@5.4.5)': + '@typescript-eslint/typescript-estree@5.62.0(typescript@5.5.3)': dependencies: '@typescript-eslint/types': 5.62.0 '@typescript-eslint/visitor-keys': 5.62.0 - debug: 4.3.5 + debug: 4.3.5(supports-color@9.4.0) globby: 11.1.0 is-glob: 4.0.3 semver: 7.6.2 - tsutils: 3.21.0(typescript@5.4.5) + tsutils: 3.21.0(typescript@5.5.3) optionalDependencies: - typescript: 5.4.5 + typescript: 5.5.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@7.12.0(typescript@5.4.5)': + '@typescript-eslint/typescript-estree@7.16.1(typescript@5.5.3)': dependencies: - '@typescript-eslint/types': 7.12.0 - '@typescript-eslint/visitor-keys': 7.12.0 - debug: 4.3.5 + '@typescript-eslint/types': 7.16.1 + '@typescript-eslint/visitor-keys': 7.16.1 + debug: 4.3.5(supports-color@9.4.0) globby: 11.1.0 is-glob: 4.0.3 - minimatch: 9.0.4 + minimatch: 9.0.5 semver: 7.6.2 - ts-api-utils: 1.3.0(typescript@5.4.5) + ts-api-utils: 1.3.0(typescript@5.5.3) optionalDependencies: - typescript: 5.4.5 + typescript: 5.5.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@5.62.0(eslint@8.57.0)(typescript@5.4.5)': + '@typescript-eslint/utils@5.62.0(eslint@8.57.0)(typescript@5.5.3)': dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) '@types/json-schema': 7.0.15 '@types/semver': 7.5.8 '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.4.5) + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.5.3) eslint: 8.57.0 eslint-scope: 5.1.1 semver: 7.6.2 @@ -3869,12 +3885,12 @@ snapshots: - supports-color - typescript - '@typescript-eslint/utils@7.12.0(eslint@8.57.0)(typescript@5.4.5)': + '@typescript-eslint/utils@7.16.1(eslint@8.57.0)(typescript@5.5.3)': dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - '@typescript-eslint/scope-manager': 7.12.0 - '@typescript-eslint/types': 7.12.0 - '@typescript-eslint/typescript-estree': 7.12.0(typescript@5.4.5) + '@typescript-eslint/scope-manager': 7.16.1 + '@typescript-eslint/types': 7.16.1 + '@typescript-eslint/typescript-estree': 7.16.1(typescript@5.5.3) eslint: 8.57.0 transitivePeerDependencies: - supports-color @@ -3885,9 +3901,9 @@ snapshots: '@typescript-eslint/types': 5.62.0 eslint-visitor-keys: 3.4.3 - '@typescript-eslint/visitor-keys@7.12.0': + '@typescript-eslint/visitor-keys@7.16.1': dependencies: - '@typescript-eslint/types': 7.12.0 + '@typescript-eslint/types': 7.16.1 eslint-visitor-keys: 3.4.3 '@ungap/structured-clone@1.2.0': {} @@ -3921,56 +3937,63 @@ snapshots: loupe: 2.3.7 pretty-format: 29.7.0 - '@workleap/eslint-plugin@3.2.2(@typescript-eslint/parser@7.12.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5)': + '@workleap/eslint-plugin@3.2.2(@typescript-eslint/parser@7.16.1(eslint@8.57.0)(typescript@5.5.3))(eslint@8.57.0)(typescript@5.5.3)': dependencies: - '@typescript-eslint/eslint-plugin': 7.12.0(@typescript-eslint/parser@7.12.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.12.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0) - eslint-plugin-jest: 27.9.0(@typescript-eslint/eslint-plugin@7.12.0(@typescript-eslint/parser@7.12.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5) - eslint-plugin-jsx-a11y: 6.8.0(eslint@8.57.0) + '@typescript-eslint/eslint-plugin': 7.16.1(@typescript-eslint/parser@7.16.1(eslint@8.57.0)(typescript@5.5.3))(eslint@8.57.0)(typescript@5.5.3) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.16.1(eslint@8.57.0)(typescript@5.5.3))(eslint@8.57.0) + eslint-plugin-jest: 27.9.0(@typescript-eslint/eslint-plugin@7.16.1(@typescript-eslint/parser@7.16.1(eslint@8.57.0)(typescript@5.5.3))(eslint@8.57.0)(typescript@5.5.3))(eslint@8.57.0)(typescript@5.5.3) + eslint-plugin-jsx-a11y: 6.9.0(eslint@8.57.0) eslint-plugin-mdx: 3.1.5(eslint@8.57.0) eslint-plugin-package-json: 0.10.4(eslint@8.57.0)(jsonc-eslint-parser@2.4.0) - eslint-plugin-react: 7.34.2(eslint@8.57.0) + eslint-plugin-react: 7.34.4(eslint@8.57.0) eslint-plugin-react-hooks: 4.6.2(eslint@8.57.0) - eslint-plugin-storybook: 0.8.0(eslint@8.57.0)(typescript@5.4.5) - eslint-plugin-testing-library: 6.2.2(eslint@8.57.0)(typescript@5.4.5) + eslint-plugin-storybook: 0.8.0(eslint@8.57.0)(typescript@5.5.3) + eslint-plugin-testing-library: 6.2.2(eslint@8.57.0)(typescript@5.5.3) eslint-plugin-yml: 1.14.0(eslint@8.57.0) jsonc-eslint-parser: 2.4.0 yaml-eslint-parser: 1.2.3 optionalDependencies: - '@typescript-eslint/parser': 7.12.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/parser': 7.16.1(eslint@8.57.0)(typescript@5.5.3) eslint: 8.57.0 - typescript: 5.4.5 + typescript: 5.5.3 transitivePeerDependencies: + - bluebird - eslint-import-resolver-typescript - eslint-import-resolver-webpack - jest - supports-color - '@workleap/swc-configs@2.2.3(@swc/core@1.3.68(@swc/helpers@0.5.11))(@swc/helpers@0.5.11)(@swc/jest@0.2.26(@swc/core@1.3.68(@swc/helpers@0.5.11)))': + '@workleap/swc-configs@2.2.3(@swc/core@1.6.13(@swc/helpers@0.5.11))(@swc/helpers@0.5.11)': dependencies: - '@swc/core': 1.3.68(@swc/helpers@0.5.11) + '@swc/core': 1.6.13(@swc/helpers@0.5.11) '@swc/helpers': 0.5.11 - optionalDependencies: - '@swc/jest': 0.2.26(@swc/core@1.3.68(@swc/helpers@0.5.11)) - '@workleap/tsup-configs@3.0.6(tsup@8.1.0(@swc/core@1.3.68(@swc/helpers@0.5.11))(postcss@8.4.39)(ts-node@10.9.1(@swc/core@1.3.68(@swc/helpers@0.5.11))(@types/node@20.14.1)(typescript@5.4.5))(typescript@5.4.5))(typescript@5.4.5)': + '@workleap/tsup-configs@3.0.6(tsup@8.1.0(@swc/core@1.6.13(@swc/helpers@0.5.11))(postcss@8.4.39)(typescript@5.5.3))(typescript@5.5.3)': dependencies: - tsup: 8.1.0(@swc/core@1.3.68(@swc/helpers@0.5.11))(postcss@8.4.39)(ts-node@10.9.1(@swc/core@1.3.68(@swc/helpers@0.5.11))(@types/node@20.14.1)(typescript@5.4.5))(typescript@5.4.5) - typescript: 5.4.5 + tsup: 8.1.0(@swc/core@1.6.13(@swc/helpers@0.5.11))(postcss@8.4.39)(typescript@5.5.3) + typescript: 5.5.3 - '@workleap/typescript-configs@3.0.2(typescript@5.4.5)': + '@workleap/typescript-configs@3.0.2(typescript@5.5.3)': dependencies: - typescript: 5.4.5 + typescript: 5.5.3 abbrev@2.0.0: {} - acorn-jsx@5.3.2(acorn@8.11.3): + acorn-jsx@5.3.2(acorn@8.12.1): dependencies: - acorn: 8.11.3 + acorn: 8.12.1 - acorn-walk@8.3.2: {} + acorn-walk@8.3.3: + dependencies: + acorn: 8.12.1 + + acorn@8.12.1: {} - acorn@8.11.3: {} + agent-base@7.1.1(supports-color@9.4.0): + dependencies: + debug: 4.3.5(supports-color@9.4.0) + transitivePeerDependencies: + - supports-color ajv@6.12.6: dependencies: @@ -4004,18 +4027,15 @@ snapshots: normalize-path: 3.0.0 picomatch: 2.3.1 - arg@4.1.3: - optional: true - argparse@1.0.10: dependencies: sprintf-js: 1.0.3 argparse@2.0.1: {} - aria-query@5.3.0: + aria-query@5.1.3: dependencies: - dequal: 2.0.3 + deep-equal: 2.2.3 array-buffer-byte-length@1.0.1: dependencies: @@ -4099,11 +4119,11 @@ snapshots: dependencies: possible-typed-array-names: 1.0.0 - axe-core@4.7.0: {} + axe-core@4.9.1: {} - axobject-query@3.2.1: + axobject-query@3.1.1: dependencies: - dequal: 2.0.3 + deep-equal: 2.2.3 bail@2.0.2: {} @@ -4130,9 +4150,9 @@ snapshots: buffer-from@1.1.2: {} - bundle-require@4.2.1(esbuild@0.21.4): + bundle-require@4.2.1(esbuild@0.21.5): dependencies: - esbuild: 0.21.4 + esbuild: 0.21.5 load-tsconfig: 0.2.5 c12@1.11.1: @@ -4258,9 +4278,6 @@ snapshots: consola@3.2.3: {} - create-require@1.1.1: - optional: true - cross-spawn@5.1.0: dependencies: lru-cache: 4.1.5 @@ -4299,9 +4316,11 @@ snapshots: dependencies: ms: 2.1.3 - debug@4.3.5: + debug@4.3.5(supports-color@9.4.0): dependencies: ms: 2.1.2 + optionalDependencies: + supports-color: 9.4.0 decode-named-character-reference@1.0.2: dependencies: @@ -4311,6 +4330,27 @@ snapshots: dependencies: type-detect: 4.0.8 + deep-equal@2.2.3: + dependencies: + array-buffer-byte-length: 1.0.1 + call-bind: 1.0.7 + es-get-iterator: 1.1.3 + get-intrinsic: 1.2.4 + is-arguments: 1.1.1 + is-array-buffer: 3.0.4 + is-date-object: 1.0.5 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.3 + isarray: 2.0.5 + object-is: 1.1.6 + object-keys: 1.1.1 + object.assign: 4.1.5 + regexp.prototype.flags: 1.5.2 + side-channel: 1.0.6 + which-boxed-primitive: 1.0.2 + which-collection: 1.0.2 + which-typed-array: 1.1.15 + deep-is@0.1.4: {} define-data-property@1.1.4: @@ -4341,9 +4381,6 @@ snapshots: diff-sequences@29.6.3: {} - diff@4.0.2: - optional: true - diff@5.2.0: {} dir-glob@3.0.1: @@ -4375,6 +4412,8 @@ snapshots: ansi-colors: 4.1.3 strip-ansi: 6.0.1 + err-code@2.0.3: {} + error-ex@1.3.2: dependencies: is-arrayish: 0.2.1 @@ -4412,7 +4451,7 @@ snapshots: is-string: 1.0.7 is-typed-array: 1.1.13 is-weakref: 1.0.2 - object-inspect: 1.13.1 + object-inspect: 1.13.2 object-keys: 1.1.1 object.assign: 4.1.5 regexp.prototype.flags: 1.5.2 @@ -4434,6 +4473,18 @@ snapshots: es-errors@1.3.0: {} + es-get-iterator@1.1.3: + dependencies: + call-bind: 1.0.7 + get-intrinsic: 1.2.4 + has-symbols: 1.0.3 + is-arguments: 1.1.1 + is-map: 2.0.3 + is-set: 2.0.3 + is-string: 1.0.7 + isarray: 2.0.5 + stop-iteration-iterator: 1.0.0 + es-iterator-helpers@1.0.19: dependencies: call-bind: 1.0.7 @@ -4471,31 +4522,31 @@ snapshots: is-date-object: 1.0.5 is-symbol: 1.0.4 - esbuild@0.21.4: + esbuild@0.21.5: optionalDependencies: - '@esbuild/aix-ppc64': 0.21.4 - '@esbuild/android-arm': 0.21.4 - '@esbuild/android-arm64': 0.21.4 - '@esbuild/android-x64': 0.21.4 - '@esbuild/darwin-arm64': 0.21.4 - '@esbuild/darwin-x64': 0.21.4 - '@esbuild/freebsd-arm64': 0.21.4 - '@esbuild/freebsd-x64': 0.21.4 - '@esbuild/linux-arm': 0.21.4 - '@esbuild/linux-arm64': 0.21.4 - '@esbuild/linux-ia32': 0.21.4 - '@esbuild/linux-loong64': 0.21.4 - '@esbuild/linux-mips64el': 0.21.4 - '@esbuild/linux-ppc64': 0.21.4 - '@esbuild/linux-riscv64': 0.21.4 - '@esbuild/linux-s390x': 0.21.4 - '@esbuild/linux-x64': 0.21.4 - '@esbuild/netbsd-x64': 0.21.4 - '@esbuild/openbsd-x64': 0.21.4 - '@esbuild/sunos-x64': 0.21.4 - '@esbuild/win32-arm64': 0.21.4 - '@esbuild/win32-ia32': 0.21.4 - '@esbuild/win32-x64': 0.21.4 + '@esbuild/aix-ppc64': 0.21.5 + '@esbuild/android-arm': 0.21.5 + '@esbuild/android-arm64': 0.21.5 + '@esbuild/android-x64': 0.21.5 + '@esbuild/darwin-arm64': 0.21.5 + '@esbuild/darwin-x64': 0.21.5 + '@esbuild/freebsd-arm64': 0.21.5 + '@esbuild/freebsd-x64': 0.21.5 + '@esbuild/linux-arm': 0.21.5 + '@esbuild/linux-arm64': 0.21.5 + '@esbuild/linux-ia32': 0.21.5 + '@esbuild/linux-loong64': 0.21.5 + '@esbuild/linux-mips64el': 0.21.5 + '@esbuild/linux-ppc64': 0.21.5 + '@esbuild/linux-riscv64': 0.21.5 + '@esbuild/linux-s390x': 0.21.5 + '@esbuild/linux-x64': 0.21.5 + '@esbuild/netbsd-x64': 0.21.5 + '@esbuild/openbsd-x64': 0.21.5 + '@esbuild/sunos-x64': 0.21.5 + '@esbuild/win32-arm64': 0.21.5 + '@esbuild/win32-ia32': 0.21.5 + '@esbuild/win32-x64': 0.21.5 escape-string-regexp@1.0.5: {} @@ -4509,42 +4560,43 @@ snapshots: eslint-import-resolver-node@0.3.9: dependencies: debug: 3.2.7 - is-core-module: 2.13.1 + is-core-module: 2.14.0 resolve: 1.22.8 transitivePeerDependencies: - supports-color eslint-mdx@3.1.5(eslint@8.57.0): dependencies: - acorn: 8.11.3 - acorn-jsx: 5.3.2(acorn@8.11.3) + acorn: 8.12.1 + acorn-jsx: 5.3.2(acorn@8.12.1) eslint: 8.57.0 espree: 9.6.1 estree-util-visit: 2.0.0 remark-mdx: 3.0.1 remark-parse: 11.0.0 remark-stringify: 11.0.0 - synckit: 0.9.0 - tslib: 2.6.2 - unified: 11.0.4 + synckit: 0.9.1 + tslib: 2.6.3 + unified: 11.0.5 unified-engine: 11.2.1 unist-util-visit: 5.0.0 uvu: 0.5.6 - vfile: 6.0.1 + vfile: 6.0.2 transitivePeerDependencies: + - bluebird - supports-color - eslint-module-utils@2.8.1(@typescript-eslint/parser@7.12.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint@8.57.0): + eslint-module-utils@2.8.1(@typescript-eslint/parser@7.16.1(eslint@8.57.0)(typescript@5.5.3))(eslint-import-resolver-node@0.3.9)(eslint@8.57.0): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 7.12.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/parser': 7.16.1(eslint@8.57.0)(typescript@5.5.3) eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color - eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.12.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0): + eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.16.1(eslint@8.57.0)(typescript@5.5.3))(eslint@8.57.0): dependencies: array-includes: 3.1.8 array.prototype.findlastindex: 1.2.5 @@ -4554,9 +4606,9 @@ snapshots: doctrine: 2.1.0 eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.12.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) + eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.16.1(eslint@8.57.0)(typescript@5.5.3))(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) hasown: 2.0.2 - is-core-module: 2.13.1 + is-core-module: 2.14.0 is-glob: 4.0.3 minimatch: 3.1.2 object.fromentries: 2.0.8 @@ -4565,31 +4617,30 @@ snapshots: semver: 6.3.1 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 7.12.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/parser': 7.16.1(eslint@8.57.0)(typescript@5.5.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-jest@27.9.0(@typescript-eslint/eslint-plugin@7.12.0(@typescript-eslint/parser@7.12.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5): + eslint-plugin-jest@27.9.0(@typescript-eslint/eslint-plugin@7.16.1(@typescript-eslint/parser@7.16.1(eslint@8.57.0)(typescript@5.5.3))(eslint@8.57.0)(typescript@5.5.3))(eslint@8.57.0)(typescript@5.5.3): dependencies: - '@typescript-eslint/utils': 5.62.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/utils': 5.62.0(eslint@8.57.0)(typescript@5.5.3) eslint: 8.57.0 optionalDependencies: - '@typescript-eslint/eslint-plugin': 7.12.0(@typescript-eslint/parser@7.12.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/eslint-plugin': 7.16.1(@typescript-eslint/parser@7.16.1(eslint@8.57.0)(typescript@5.5.3))(eslint@8.57.0)(typescript@5.5.3) transitivePeerDependencies: - supports-color - typescript - eslint-plugin-jsx-a11y@6.8.0(eslint@8.57.0): + eslint-plugin-jsx-a11y@6.9.0(eslint@8.57.0): dependencies: - '@babel/runtime': 7.24.6 - aria-query: 5.3.0 + aria-query: 5.1.3 array-includes: 3.1.8 array.prototype.flatmap: 1.3.2 ast-types-flow: 0.0.8 - axe-core: 4.7.0 - axobject-query: 3.2.1 + axe-core: 4.9.1 + axobject-query: 3.1.1 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 es-iterator-helpers: 1.0.19 @@ -4598,8 +4649,9 @@ snapshots: jsx-ast-utils: 3.3.5 language-tags: 1.0.9 minimatch: 3.1.2 - object.entries: 1.1.8 object.fromentries: 2.0.8 + safe-regex-test: 1.0.3 + string.prototype.includes: 2.0.0 eslint-plugin-markdown@3.0.1(eslint@8.57.0): dependencies: @@ -4616,17 +4668,18 @@ snapshots: remark-mdx: 3.0.1 remark-parse: 11.0.0 remark-stringify: 11.0.0 - tslib: 2.6.2 - unified: 11.0.4 - vfile: 6.0.1 + tslib: 2.6.3 + unified: 11.0.5 + vfile: 6.0.2 transitivePeerDependencies: + - bluebird - supports-color eslint-plugin-package-json@0.10.4(eslint@8.57.0)(jsonc-eslint-parser@2.4.0): dependencies: eslint: 8.57.0 jsonc-eslint-parser: 2.4.0 - package-json-validator: 0.6.4 + package-json-validator: 0.6.5 semver: 7.6.2 sort-package-json: 1.57.0 validate-npm-package-name: 5.0.1 @@ -4635,7 +4688,7 @@ snapshots: dependencies: eslint: 8.57.0 - eslint-plugin-react@7.34.2(eslint@8.57.0): + eslint-plugin-react@7.34.4(eslint@8.57.0): dependencies: array-includes: 3.1.8 array.prototype.findlast: 1.2.5 @@ -4646,21 +4699,22 @@ snapshots: es-iterator-helpers: 1.0.19 eslint: 8.57.0 estraverse: 5.3.0 + hasown: 2.0.2 jsx-ast-utils: 3.3.5 minimatch: 3.1.2 object.entries: 1.1.8 object.fromentries: 2.0.8 - object.hasown: 1.1.4 object.values: 1.2.0 prop-types: 15.8.1 resolve: 2.0.0-next.5 semver: 6.3.1 string.prototype.matchall: 4.0.11 + string.prototype.repeat: 1.0.0 - eslint-plugin-storybook@0.8.0(eslint@8.57.0)(typescript@5.4.5): + eslint-plugin-storybook@0.8.0(eslint@8.57.0)(typescript@5.5.3): dependencies: '@storybook/csf': 0.0.1 - '@typescript-eslint/utils': 5.62.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/utils': 5.62.0(eslint@8.57.0)(typescript@5.5.3) eslint: 8.57.0 requireindex: 1.2.0 ts-dedent: 2.2.0 @@ -4668,9 +4722,9 @@ snapshots: - supports-color - typescript - eslint-plugin-testing-library@6.2.2(eslint@8.57.0)(typescript@5.4.5): + eslint-plugin-testing-library@6.2.2(eslint@8.57.0)(typescript@5.5.3): dependencies: - '@typescript-eslint/utils': 5.62.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/utils': 5.62.0(eslint@8.57.0)(typescript@5.5.3) eslint: 8.57.0 transitivePeerDependencies: - supports-color @@ -4678,7 +4732,7 @@ snapshots: eslint-plugin-yml@1.14.0(eslint@8.57.0): dependencies: - debug: 4.3.5 + debug: 4.3.5(supports-color@9.4.0) eslint: 8.57.0 eslint-compat-utils: 0.5.1(eslint@8.57.0) lodash: 4.17.21 @@ -4702,7 +4756,7 @@ snapshots: eslint@8.57.0: dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - '@eslint-community/regexpp': 4.10.1 + '@eslint-community/regexpp': 4.11.0 '@eslint/eslintrc': 2.1.4 '@eslint/js': 8.57.0 '@humanwhocodes/config-array': 0.11.14 @@ -4712,13 +4766,13 @@ snapshots: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 - debug: 4.3.5 + debug: 4.3.5(supports-color@9.4.0) doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.2.2 eslint-visitor-keys: 3.4.3 espree: 9.6.1 - esquery: 1.5.0 + esquery: 1.6.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 file-entry-cache: 6.0.1 @@ -4744,13 +4798,13 @@ snapshots: espree@9.6.1: dependencies: - acorn: 8.11.3 - acorn-jsx: 5.3.2(acorn@8.11.3) + acorn: 8.12.1 + acorn-jsx: 5.3.2(acorn@8.12.1) eslint-visitor-keys: 3.4.3 esprima@4.0.1: {} - esquery@1.5.0: + esquery@1.6.0: dependencies: estraverse: 5.3.0 @@ -4862,7 +4916,7 @@ snapshots: dependencies: is-callable: 1.2.7 - foreground-child@3.1.1: + foreground-child@3.2.1: dependencies: cross-spawn: 7.0.3 signal-exit: 4.1.0 @@ -4940,12 +4994,13 @@ snapshots: dependencies: is-glob: 4.0.3 - glob@10.4.1: + glob@10.4.5: dependencies: - foreground-child: 3.1.1 - jackspeak: 3.2.0 - minimatch: 9.0.4 + foreground-child: 3.2.1 + jackspeak: 3.4.3 + minimatch: 9.0.5 minipass: 7.1.2 + package-json-from-dist: 1.0.0 path-scurry: 1.11.1 glob@7.2.3: @@ -5016,6 +5071,17 @@ snapshots: dependencies: function-bind: 1.1.2 + hosted-git-info@7.0.2: + dependencies: + lru-cache: 10.4.3 + + https-proxy-agent@7.0.5(supports-color@9.4.0): + dependencies: + agent-base: 7.1.1(supports-color@9.4.0) + debug: 4.3.5(supports-color@9.4.0) + transitivePeerDependencies: + - supports-color + human-id@1.0.2: {} human-signals@2.1.0: {} @@ -5068,6 +5134,11 @@ snapshots: is-alphabetical: 2.0.1 is-decimal: 2.0.1 + is-arguments@1.1.1: + dependencies: + call-bind: 1.0.7 + has-tostringtag: 1.0.2 + is-array-buffer@3.0.4: dependencies: call-bind: 1.0.7 @@ -5094,7 +5165,7 @@ snapshots: is-callable@1.2.7: {} - is-core-module@2.13.1: + is-core-module@2.14.0: dependencies: hasown: 2.0.2 @@ -5196,6 +5267,8 @@ snapshots: isexe@2.0.0: {} + isexe@3.1.1: {} + iterator.prototype@1.1.2: dependencies: define-properties: 1.2.1 @@ -5204,7 +5277,7 @@ snapshots: reflect.getprototypeof: 1.0.6 set-function-name: 2.0.2 - jackspeak@3.2.0: + jackspeak@3.4.3: dependencies: '@isaacs/cliui': 8.0.2 optionalDependencies: @@ -5245,14 +5318,11 @@ snapshots: jsonc-eslint-parser@2.4.0: dependencies: - acorn: 8.11.3 + acorn: 8.12.1 eslint-visitor-keys: 3.4.3 espree: 9.6.1 semver: 7.6.2 - jsonc-parser@3.2.1: - optional: true - jsonfile@4.0.0: optionalDependencies: graceful-fs: 4.2.11 @@ -5281,7 +5351,7 @@ snapshots: prelude-ls: 1.2.1 type-check: 0.4.0 - lilconfig@3.1.1: {} + lilconfig@3.1.2: {} lines-and-columns@1.2.4: {} @@ -5289,8 +5359,10 @@ snapshots: load-plugin@6.0.3: dependencies: - '@npmcli/config': 8.3.3 + '@npmcli/config': 8.3.4 import-meta-resolve: 4.1.0 + transitivePeerDependencies: + - bluebird load-tsconfig@0.2.5: {} @@ -5334,7 +5406,7 @@ snapshots: dependencies: get-func-name: 2.0.2 - lru-cache@10.2.2: {} + lru-cache@10.4.3: {} lru-cache@4.1.5: dependencies: @@ -5343,10 +5415,7 @@ snapshots: magic-string@0.30.10: dependencies: - '@jridgewell/sourcemap-codec': 1.4.15 - - make-error@1.3.6: - optional: true + '@jridgewell/sourcemap-codec': 1.5.0 mdast-util-from-markdown@0.8.5: dependencies: @@ -5512,8 +5581,8 @@ snapshots: micromark-extension-mdxjs@3.0.0: dependencies: - acorn: 8.11.3 - acorn-jsx: 5.3.2(acorn@8.11.3) + acorn: 8.12.1 + acorn-jsx: 5.3.2(acorn@8.12.1) micromark-extension-mdx-expression: 3.0.0 micromark-extension-mdx-jsx: 3.0.0 micromark-extension-mdx-md: 2.0.0 @@ -5637,7 +5706,7 @@ snapshots: micromark@2.11.4: dependencies: - debug: 4.3.5 + debug: 4.3.5(supports-color@9.4.0) parse-entities: 2.0.0 transitivePeerDependencies: - supports-color @@ -5645,7 +5714,7 @@ snapshots: micromark@4.0.0: dependencies: '@types/debug': 4.1.12 - debug: 4.3.5 + debug: 4.3.5(supports-color@9.4.0) decode-named-character-reference: 1.0.2 devlop: 1.1.0 micromark-core-commonmark: 2.0.1 @@ -5681,7 +5750,7 @@ snapshots: dependencies: brace-expansion: 2.0.1 - minimatch@9.0.4: + minimatch@9.0.5: dependencies: brace-expansion: 2.0.1 @@ -5706,7 +5775,7 @@ snapshots: mlly@1.7.1: dependencies: - acorn: 8.11.3 + acorn: 8.12.1 pathe: 1.1.2 pkg-types: 1.1.3 ufo: 1.5.3 @@ -5737,10 +5806,34 @@ snapshots: dependencies: abbrev: 2.0.0 + normalize-package-data@6.0.2: + dependencies: + hosted-git-info: 7.0.2 + semver: 7.6.2 + validate-npm-package-license: 3.0.4 + normalize-path@3.0.0: {} + npm-install-checks@6.3.0: + dependencies: + semver: 7.6.2 + npm-normalize-package-bin@3.0.1: {} + npm-package-arg@11.0.2: + dependencies: + hosted-git-info: 7.0.2 + proc-log: 4.2.0 + semver: 7.6.2 + validate-npm-package-name: 5.0.1 + + npm-pick-manifest@9.1.0: + dependencies: + npm-install-checks: 6.3.0 + npm-normalize-package-bin: 3.0.1 + npm-package-arg: 11.0.2 + semver: 7.6.2 + npm-run-path@4.0.1: dependencies: path-key: 3.1.1 @@ -5760,7 +5853,12 @@ snapshots: object-assign@4.1.1: {} - object-inspect@1.13.1: {} + object-inspect@1.13.2: {} + + object-is@1.1.6: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 object-keys@1.1.1: {} @@ -5790,12 +5888,6 @@ snapshots: define-properties: 1.2.1 es-abstract: 1.23.3 - object.hasown@1.1.4: - dependencies: - define-properties: 1.2.1 - es-abstract: 1.23.3 - es-object-atoms: 1.0.0 - object.values@1.2.0: dependencies: call-bind: 1.0.7 @@ -5816,13 +5908,19 @@ snapshots: dependencies: mimic-fn: 4.0.0 - openapi-typescript@7.0.0-rc.0(typescript@5.4.5): + openapi-fetch@0.10.2: + dependencies: + openapi-typescript-helpers: 0.0.9 + + openapi-typescript-helpers@0.0.9: {} + + openapi-typescript@7.0.2(typescript@5.5.3): dependencies: - '@redocly/openapi-core': 1.14.0 + '@redocly/openapi-core': 1.18.0(supports-color@9.4.0) ansi-colors: 4.1.3 parse-json: 8.1.0 supports-color: 9.4.0 - typescript: 5.4.5 + typescript: 5.5.3 yargs-parser: 21.1.1 transitivePeerDependencies: - encoding @@ -5873,7 +5971,9 @@ snapshots: p-try@2.2.0: {} - package-json-validator@0.6.4: + package-json-from-dist@1.0.0: {} + + package-json-validator@0.6.5: dependencies: optimist: 0.6.1 @@ -5903,7 +6003,7 @@ snapshots: parse-json@7.1.1: dependencies: - '@babel/code-frame': 7.24.6 + '@babel/code-frame': 7.24.7 error-ex: 1.3.2 json-parse-even-better-errors: 3.0.2 lines-and-columns: 2.0.4 @@ -5911,9 +6011,9 @@ snapshots: parse-json@8.1.0: dependencies: - '@babel/code-frame': 7.24.6 + '@babel/code-frame': 7.24.7 index-to-position: 0.1.2 - type-fest: 4.19.0 + type-fest: 4.21.0 path-exists@4.0.0: {} @@ -5927,7 +6027,7 @@ snapshots: path-scurry@1.11.1: dependencies: - lru-cache: 10.2.2 + lru-cache: 10.4.3 minipass: 7.1.2 path-type@4.0.0: {} @@ -5960,13 +6060,12 @@ snapshots: possible-typed-array-names@1.0.0: {} - postcss-load-config@4.0.2(postcss@8.4.39)(ts-node@10.9.1(@swc/core@1.3.68(@swc/helpers@0.5.11))(@types/node@20.14.1)(typescript@5.4.5)): + postcss-load-config@4.0.2(postcss@8.4.39): dependencies: - lilconfig: 3.1.1 - yaml: 2.4.3 + lilconfig: 3.1.2 + yaml: 2.4.5 optionalDependencies: postcss: 8.4.39 - ts-node: 10.9.1(@swc/core@1.3.68(@swc/helpers@0.5.11))(@types/node@20.14.1)(typescript@5.4.5) postcss@8.4.39: dependencies: @@ -5974,12 +6073,12 @@ snapshots: picocolors: 1.0.1 source-map-js: 1.2.0 - preferred-pm@3.1.3: + preferred-pm@3.1.4: dependencies: find-up: 5.0.0 find-yarn-workspace-root2: 1.2.16 path-exists: 4.0.0 - which-pm: 2.0.0 + which-pm: 2.2.0 prelude-ls@1.2.1: {} @@ -5993,6 +6092,13 @@ snapshots: proc-log@4.2.0: {} + promise-inflight@1.0.1: {} + + promise-retry@2.0.1: + dependencies: + err-code: 2.0.3 + retry: 0.12.0 + prop-types@15.8.1: dependencies: loose-envify: 1.4.0 @@ -6067,7 +6173,7 @@ snapshots: '@types/mdast': 4.0.4 mdast-util-from-markdown: 2.0.1 micromark-util-types: 2.0.0 - unified: 11.0.4 + unified: 11.0.5 transitivePeerDependencies: - supports-color @@ -6075,7 +6181,7 @@ snapshots: dependencies: '@types/mdast': 4.0.4 mdast-util-to-markdown: 2.1.0 - unified: 11.0.4 + unified: 11.0.5 require-from-string@2.0.2: {} @@ -6087,42 +6193,44 @@ snapshots: resolve@1.22.8: dependencies: - is-core-module: 2.13.1 + is-core-module: 2.14.0 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 resolve@2.0.0-next.5: dependencies: - is-core-module: 2.13.1 + is-core-module: 2.14.0 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 + retry@0.12.0: {} + reusify@1.0.4: {} rimraf@3.0.2: dependencies: glob: 7.2.3 - rollup@4.18.0: + rollup@4.18.1: dependencies: '@types/estree': 1.0.5 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.18.0 - '@rollup/rollup-android-arm64': 4.18.0 - '@rollup/rollup-darwin-arm64': 4.18.0 - '@rollup/rollup-darwin-x64': 4.18.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.18.0 - '@rollup/rollup-linux-arm-musleabihf': 4.18.0 - '@rollup/rollup-linux-arm64-gnu': 4.18.0 - '@rollup/rollup-linux-arm64-musl': 4.18.0 - '@rollup/rollup-linux-powerpc64le-gnu': 4.18.0 - '@rollup/rollup-linux-riscv64-gnu': 4.18.0 - '@rollup/rollup-linux-s390x-gnu': 4.18.0 - '@rollup/rollup-linux-x64-gnu': 4.18.0 - '@rollup/rollup-linux-x64-musl': 4.18.0 - '@rollup/rollup-win32-arm64-msvc': 4.18.0 - '@rollup/rollup-win32-ia32-msvc': 4.18.0 - '@rollup/rollup-win32-x64-msvc': 4.18.0 + '@rollup/rollup-android-arm-eabi': 4.18.1 + '@rollup/rollup-android-arm64': 4.18.1 + '@rollup/rollup-darwin-arm64': 4.18.1 + '@rollup/rollup-darwin-x64': 4.18.1 + '@rollup/rollup-linux-arm-gnueabihf': 4.18.1 + '@rollup/rollup-linux-arm-musleabihf': 4.18.1 + '@rollup/rollup-linux-arm64-gnu': 4.18.1 + '@rollup/rollup-linux-arm64-musl': 4.18.1 + '@rollup/rollup-linux-powerpc64le-gnu': 4.18.1 + '@rollup/rollup-linux-riscv64-gnu': 4.18.1 + '@rollup/rollup-linux-s390x-gnu': 4.18.1 + '@rollup/rollup-linux-x64-gnu': 4.18.1 + '@rollup/rollup-linux-x64-musl': 4.18.1 + '@rollup/rollup-win32-arm64-msvc': 4.18.1 + '@rollup/rollup-win32-ia32-msvc': 4.18.1 + '@rollup/rollup-win32-x64-msvc': 4.18.1 fsevents: 2.3.3 run-parallel@1.2.0: @@ -6187,7 +6295,7 @@ snapshots: call-bind: 1.0.7 es-errors: 1.3.0 get-intrinsic: 1.2.4 - object-inspect: 1.13.1 + object-inspect: 1.13.2 siginfo@2.0.0: {} @@ -6219,12 +6327,30 @@ snapshots: cross-spawn: 5.1.0 signal-exit: 3.0.7 + spdx-correct@3.2.0: + dependencies: + spdx-expression-parse: 3.0.1 + spdx-license-ids: 3.0.18 + + spdx-exceptions@2.5.0: {} + + spdx-expression-parse@3.0.1: + dependencies: + spdx-exceptions: 2.5.0 + spdx-license-ids: 3.0.18 + + spdx-license-ids@3.0.18: {} + sprintf-js@1.0.3: {} stackback@0.0.2: {} std-env@3.7.0: {} + stop-iteration-iterator@1.0.0: + dependencies: + internal-slot: 1.0.7 + string-width@4.2.3: dependencies: emoji-regex: 8.0.0 @@ -6243,6 +6369,11 @@ snapshots: emoji-regex: 10.3.0 strip-ansi: 7.1.0 + string.prototype.includes@2.0.0: + dependencies: + define-properties: 1.2.1 + es-abstract: 1.23.3 + string.prototype.matchall@4.0.11: dependencies: call-bind: 1.0.7 @@ -6258,6 +6389,11 @@ snapshots: set-function-name: 2.0.2 side-channel: 1.0.6 + string.prototype.repeat@1.0.0: + dependencies: + define-properties: 1.2.1 + es-abstract: 1.23.3 + string.prototype.trim@1.2.9: dependencies: call-bind: 1.0.7 @@ -6310,7 +6446,7 @@ snapshots: dependencies: '@jridgewell/gen-mapping': 0.3.5 commander: 4.1.1 - glob: 10.4.1 + glob: 10.4.5 lines-and-columns: 1.2.4 mz: 2.7.0 pirates: 4.0.6 @@ -6328,10 +6464,10 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - synckit@0.9.0: + synckit@0.9.1: dependencies: '@pkgr/core': 0.1.1 - tslib: 2.6.2 + tslib: 2.6.3 tar@6.2.1: dependencies: @@ -6378,35 +6514,14 @@ snapshots: trough@2.2.0: {} - ts-api-utils@1.3.0(typescript@5.4.5): + ts-api-utils@1.3.0(typescript@5.5.3): dependencies: - typescript: 5.4.5 + typescript: 5.5.3 ts-dedent@2.2.0: {} ts-interface-checker@0.1.13: {} - ts-node@10.9.1(@swc/core@1.3.68(@swc/helpers@0.5.11))(@types/node@20.14.1)(typescript@5.4.5): - 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': 20.14.1 - acorn: 8.11.3 - acorn-walk: 8.3.2 - arg: 4.1.3 - create-require: 1.1.1 - diff: 4.0.2 - make-error: 1.3.6 - typescript: 5.4.5 - v8-compile-cache-lib: 3.0.1 - yn: 3.1.1 - optionalDependencies: - '@swc/core': 1.3.68(@swc/helpers@0.5.11) - optional: true - tsconfig-paths@3.15.0: dependencies: '@types/json5': 0.0.29 @@ -6416,36 +6531,36 @@ snapshots: tslib@1.14.1: {} - tslib@2.6.2: {} + tslib@2.6.3: {} - tsup@8.1.0(@swc/core@1.3.68(@swc/helpers@0.5.11))(postcss@8.4.39)(ts-node@10.9.1(@swc/core@1.3.68(@swc/helpers@0.5.11))(@types/node@20.14.1)(typescript@5.4.5))(typescript@5.4.5): + tsup@8.1.0(@swc/core@1.6.13(@swc/helpers@0.5.11))(postcss@8.4.39)(typescript@5.5.3): dependencies: - bundle-require: 4.2.1(esbuild@0.21.4) + bundle-require: 4.2.1(esbuild@0.21.5) cac: 6.7.14 chokidar: 3.6.0 - debug: 4.3.5 - esbuild: 0.21.4 + debug: 4.3.5(supports-color@9.4.0) + esbuild: 0.21.5 execa: 5.1.1 globby: 11.1.0 joycon: 3.1.1 - postcss-load-config: 4.0.2(postcss@8.4.39)(ts-node@10.9.1(@swc/core@1.3.68(@swc/helpers@0.5.11))(@types/node@20.14.1)(typescript@5.4.5)) + postcss-load-config: 4.0.2(postcss@8.4.39) resolve-from: 5.0.0 - rollup: 4.18.0 + rollup: 4.18.1 source-map: 0.8.0-beta.0 sucrase: 3.35.0 tree-kill: 1.2.2 optionalDependencies: - '@swc/core': 1.3.68(@swc/helpers@0.5.11) + '@swc/core': 1.6.13(@swc/helpers@0.5.11) postcss: 8.4.39 - typescript: 5.4.5 + typescript: 5.5.3 transitivePeerDependencies: - supports-color - ts-node - tsutils@3.21.0(typescript@5.4.5): + tsutils@3.21.0(typescript@5.5.3): dependencies: tslib: 1.14.1 - typescript: 5.4.5 + typescript: 5.5.3 type-check@0.4.0: dependencies: @@ -6457,7 +6572,7 @@ snapshots: type-fest@3.13.1: {} - type-fest@4.19.0: {} + type-fest@4.21.0: {} typed-array-buffer@1.0.2: dependencies: @@ -6493,7 +6608,7 @@ snapshots: typedarray@0.0.6: {} - typescript@5.4.5: {} + typescript@5.5.3: {} ufo@1.5.3: {} @@ -6514,25 +6629,26 @@ snapshots: '@types/node': 20.14.1 '@types/unist': 3.0.2 concat-stream: 2.0.0 - debug: 4.3.5 + debug: 4.3.5(supports-color@9.4.0) extend: 3.0.2 - glob: 10.4.1 + glob: 10.4.5 ignore: 5.3.1 is-empty: 1.2.0 is-plain-obj: 4.1.0 load-plugin: 6.0.3 parse-json: 7.1.1 trough: 2.2.0 - unist-util-inspect: 8.0.0 - vfile: 6.0.1 + unist-util-inspect: 8.1.0 + vfile: 6.0.2 vfile-message: 4.0.2 vfile-reporter: 8.1.1 vfile-statistics: 3.0.0 - yaml: 2.4.3 + yaml: 2.4.5 transitivePeerDependencies: + - bluebird - supports-color - unified@11.0.4: + unified@11.0.5: dependencies: '@types/unist': 3.0.2 bail: 2.0.2 @@ -6540,9 +6656,9 @@ snapshots: extend: 3.0.2 is-plain-obj: 4.1.0 trough: 2.2.0 - vfile: 6.0.1 + vfile: 6.0.2 - unist-util-inspect@8.0.0: + unist-util-inspect@8.1.0: dependencies: '@types/unist': 3.0.2 @@ -6593,8 +6709,10 @@ snapshots: kleur: 4.1.5 sade: 1.8.1 - v8-compile-cache-lib@3.0.1: - optional: true + validate-npm-package-license@3.0.4: + dependencies: + spdx-correct: 3.2.0 + spdx-expression-parse: 3.0.1 validate-npm-package-name@5.0.1: {} @@ -6609,22 +6727,22 @@ snapshots: string-width: 6.1.0 supports-color: 9.4.0 unist-util-stringify-position: 4.0.0 - vfile: 6.0.1 + vfile: 6.0.2 vfile-message: 4.0.2 vfile-sort: 4.0.0 vfile-statistics: 3.0.0 vfile-sort@4.0.0: dependencies: - vfile: 6.0.1 + vfile: 6.0.2 vfile-message: 4.0.2 vfile-statistics@3.0.0: dependencies: - vfile: 6.0.1 + vfile: 6.0.2 vfile-message: 4.0.2 - vfile@6.0.1: + vfile@6.0.2: dependencies: '@types/unist': 3.0.2 unist-util-stringify-position: 4.0.0 @@ -6633,10 +6751,10 @@ snapshots: vite-node@1.6.0(@types/node@20.14.1): dependencies: cac: 6.7.14 - debug: 4.3.5 + debug: 4.3.5(supports-color@9.4.0) pathe: 1.1.2 picocolors: 1.0.1 - vite: 5.3.3(@types/node@20.14.1) + vite: 5.3.4(@types/node@20.14.1) transitivePeerDependencies: - '@types/node' - less @@ -6647,11 +6765,11 @@ snapshots: - supports-color - terser - vite@5.3.3(@types/node@20.14.1): + vite@5.3.4(@types/node@20.14.1): dependencies: - esbuild: 0.21.4 + esbuild: 0.21.5 postcss: 8.4.39 - rollup: 4.18.0 + rollup: 4.18.1 optionalDependencies: '@types/node': 20.14.1 fsevents: 2.3.3 @@ -6663,9 +6781,9 @@ snapshots: '@vitest/snapshot': 1.6.0 '@vitest/spy': 1.6.0 '@vitest/utils': 1.6.0 - acorn-walk: 8.3.2 + acorn-walk: 8.3.3 chai: 4.4.1 - debug: 4.3.5 + debug: 4.3.5(supports-color@9.4.0) execa: 8.0.1 local-pkg: 0.5.0 magic-string: 0.30.10 @@ -6675,9 +6793,9 @@ snapshots: strip-literal: 2.1.0 tinybench: 2.8.0 tinypool: 0.8.4 - vite: 5.3.3(@types/node@20.14.1) + vite: 5.3.4(@types/node@20.14.1) vite-node: 1.6.0(@types/node@20.14.1) - why-is-node-running: 2.2.2 + why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 20.14.1 transitivePeerDependencies: @@ -6736,7 +6854,7 @@ snapshots: is-weakmap: 2.0.2 is-weakset: 2.0.3 - which-pm@2.0.0: + which-pm@2.2.0: dependencies: load-yaml-file: 0.2.0 path-exists: 4.0.0 @@ -6757,7 +6875,11 @@ snapshots: dependencies: isexe: 2.0.0 - why-is-node-running@2.2.2: + which@4.0.0: + dependencies: + isexe: 3.1.1 + + why-is-node-running@2.3.0: dependencies: siginfo: 2.0.0 stackback: 0.0.2 @@ -6790,15 +6912,12 @@ snapshots: dependencies: eslint-visitor-keys: 3.4.3 lodash: 4.17.21 - yaml: 2.4.3 + yaml: 2.4.5 - yaml@2.4.3: {} + yaml@2.4.5: {} yargs-parser@21.1.1: {} - yn@3.1.1: - optional: true - yocto-queue@0.1.0: {} yocto-queue@1.1.1: {}