diff --git a/README.md b/README.md index d542577..454e063 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ A unified LLM API. ## Specification -The specification serves as the basis to implement the unified LLM SDK in different programming languages. The specification is expressed using JSON schema and can be found in [openapi.json](../schemas/openapi.json). +The specification serves as the basis to implement the unified LLM SDK in different programming languages. The specification is expressed using JSON schema and can be found in [schema.json](../schema/schema.json). Implementations in different programming languages should adhere to this specification but may adapt it to the idioms of the respective language or provide additional functionalities. diff --git a/javascript/eslint.config.js b/javascript/eslint.config.js index 0046447..20dc538 100644 --- a/javascript/eslint.config.js +++ b/javascript/eslint.config.js @@ -14,7 +14,7 @@ export default [ globals: { ...globals.browser, ...globals.node }, parserOptions: { projectService: { - allowDefaultProject: ["*.js", "*.mjs", "openapi-ts.config.ts"], + allowDefaultProject: ["*.js", "*.mjs"], }, tsconfigRootDir: import.meta.dirname, }, diff --git a/javascript/examples/generate-audio-multiturn.ts b/javascript/examples/generate-audio-multiturn.ts new file mode 100644 index 0000000..7c18035 --- /dev/null +++ b/javascript/examples/generate-audio-multiturn.ts @@ -0,0 +1,80 @@ +import audioContext from "audio-context"; +import decodeAudio from "audio-decode"; +import play from "audio-play"; +import { openaiAudioModel } from "./model.js"; + +const response = await openaiAudioModel.generate({ + extra: { + audio: { + voice: "alloy", + format: "mp3", + }, + }, + modalities: ["text", "audio"], + messages: [ + { + role: "user", + content: [ + { + type: "text", + text: "Is a golden retriever a good family dog?", + }, + ], + }, + ], +}); + +console.dir(response, { depth: null }); + +const response2 = await openaiAudioModel.generate({ + extra: { + audio: { + voice: "alloy", + format: "mp3", + }, + }, + modalities: ["text", "audio"], + messages: [ + { + role: "user", + content: [ + { + type: "text", + text: "Is a golden retriever a good family dog?", + }, + ], + }, + { + role: "assistant", + content: response.content, + }, + { + role: "user", + content: [ + { + type: "text", + text: "What about a labrador?", + }, + ], + }, + ], +}); + +console.dir(response2, { depth: null }); + +const audioPart2 = response2.content.find((part) => part.type === "audio"); + +if (audioPart2) { + const audioBuffer2 = await decodeAudio( + Buffer.from(audioPart2.audioData, "base64"), + ); + const playback2 = play( + audioBuffer2, + { + // @ts-expect-error: it works ok? + context: audioContext, + }, + () => {}, + ); + playback2.play(); +} diff --git a/javascript/generate.js b/javascript/generate.js new file mode 100644 index 0000000..b8f60a2 --- /dev/null +++ b/javascript/generate.js @@ -0,0 +1,19 @@ +import { copyFile, writeFile } from "fs/promises"; +import { compileFromFile } from "json-schema-to-typescript"; +import { join } from "path"; + +const __dirname = import.meta.dirname; + +const originalSchemaPath = join(__dirname, "..", "schema", "schema.json"); + +await copyFile( + originalSchemaPath, + join(__dirname, "src", "schema", "schema.json"), +); + +// Generate typescript +const ts = await compileFromFile(originalSchemaPath, { + bannerComment: false, + unreachableDefinitions: true, +}); +await writeFile(join(__dirname, "src", "schema", "schema.ts"), ts); diff --git a/javascript/openapi-ts.config.ts b/javascript/openapi-ts.config.ts deleted file mode 100644 index 139550c..0000000 --- a/javascript/openapi-ts.config.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { defineConfig } from "@hey-api/openapi-ts"; - -export default defineConfig({ - client: "@hey-api/client-fetch", - input: "../schemas/openapi.json", - output: "./src/schemas/", - exportCore: false, - plugins: [ - "@hey-api/schemas", // preserves default output - "@hey-api/types", // preserves default output - ], -}); diff --git a/javascript/package.json b/javascript/package.json index ee4bd2d..82e9541 100644 --- a/javascript/package.json +++ b/javascript/package.json @@ -1,11 +1,11 @@ { "type": "module", "name": "@firefliesai/llm-sdk", - "version": "0.1.6", + "version": "0.1.7", "description": "A unified LLM SDK", "scripts": { - "generate": "npx @hey-api/openapi-ts", - "build": "tshy", + "generate": "node generate.js", + "build": "tshy && cp src/schema/schema.json dist/esm/schema/schema.json && cp src/schema/schema.json dist/commonjs/schema/schema.json", "lint": "eslint src", "test": "tsx --test --experimental-test-coverage --env-file=../.env \"**/*.test.ts\"" }, @@ -83,7 +83,17 @@ "default": "./dist/commonjs/utils/index.js" } }, - "./package.json": "./package.json" + "./package.json": "./package.json", + "./schema/schema.json": { + "import": { + "types": "./dist/esm/schema/schema.json", + "default": "./dist/esm/schema/schema.json" + }, + "require": { + "types": "./dist/commonjs/schema/schema.json", + "default": "./dist/commonjs/schema/schema.json" + } + } }, "main": "./dist/commonjs/index.js", "types": "./dist/commonjs/index.d.ts", @@ -108,7 +118,8 @@ "./cohere": "./src/cohere/index.ts", "./mistral": "./src/mistral/index.ts", "./utils": "./src/utils/index.ts", - "./package.json": "./package.json" + "./package.json": "./package.json", + "./schema/schema.json": "./src/schema/schema.json" }, "project": "tsconfig.build.json" }, diff --git a/javascript/schema.json b/javascript/schema.json new file mode 100644 index 0000000..5585526 --- /dev/null +++ b/javascript/schema.json @@ -0,0 +1,638 @@ +{ + "title": "llm-sdk", + "$schema": "http://json-schema.org/draft-07/schema#", + "definitions": { + "TextPart": { + "type": "object", + "description": "A part of the message that contains text.", + "properties": { + "type": { + "type": "string", + "const": "text" + }, + "text": { + "type": "string" + } + }, + "required": ["type", "text"], + "additionalProperties": false + }, + "ImagePart": { + "type": "object", + "description": "A part of the message that contains an image.", + "properties": { + "type": { + "type": "string", + "const": "image" + }, + "mimeType": { + "type": "string", + "description": "The MIME type of the image. E.g. \"image/jpeg\", \"image/png\"." + }, + "imageData": { + "type": "string", + "description": "The base64-encoded image data." + }, + "width": { + "type": "integer", + "description": "The width of the image in pixels." + }, + "height": { + "type": "integer", + "description": "The height of the image in pixels." + } + }, + "required": ["type", "mimeType", "imageData"], + "additionalProperties": false + }, + "AudioEncoding": { + "type": "string", + "enum": ["linear16", "flac", "mulaw", "alaw", "aac", "mp3", "opus"], + "description": "The encoding of the audio." + }, + "AudioContainer": { + "type": "string", + "enum": ["wav", "ogg", "flac", "webm"], + "description": "The container format of the audio." + }, + "AudioPart": { + "type": "object", + "description": "A part of the message that contains an audio.", + "properties": { + "type": { + "type": "string", + "const": "audio" + }, + "container": { + "$ref": "#/definitions/AudioContainer" + }, + "audioData": { + "type": "string", + "description": "The base64-encoded audio data." + }, + "encoding": { + "$ref": "#/definitions/AudioEncoding" + }, + "sampleRate": { + "type": "integer", + "description": "The sample rate of the audio. E.g. 44100, 48000." + }, + "channels": { + "type": "integer", + "description": "The number of channels of the audio. E.g. 1, 2." + }, + "transcript": { + "type": "string", + "description": "The transcript of the audio." + } + }, + "required": ["type", "audioData"], + "additionalProperties": false + }, + "ToolCallPart": { + "type": "object", + "description": "A part of the message that represents a call to a tool the model wants to use.", + "properties": { + "type": { + "type": "string", + "const": "tool-call" + }, + "toolCallId": { + "type": "string", + "description": "The ID of the tool call, used to match the tool result with the tool call." + }, + "toolName": { + "type": "string", + "description": "The name of the tool to call." + }, + "args": { + "oneOf": [ + { + "type": "object" + }, + { + "type": "null" + } + ], + "description": "The arguments to pass to the tool." + } + }, + "required": ["type", "toolCallId", "toolName", "args"], + "additionalProperties": false + }, + "ToolResultPart": { + "type": "object", + "description": "A part of the message that represents the result of a tool call.", + "properties": { + "type": { + "type": "string", + "const": "tool-result" + }, + "toolCallId": { + "type": "string", + "description": "The ID of the tool call from previous assistant message." + }, + "toolName": { + "type": "string", + "description": "The name of the tool that was called." + }, + "result": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "array" + } + ], + "description": "The result of the tool call." + }, + "isError": { + "type": "boolean", + "description": "Marks the tool result as an error." + } + }, + "required": ["type", "toolCallId", "toolName", "result"], + "additionalProperties": false + }, + "Part": { + "oneOf": [ + { + "$ref": "#/definitions/TextPart" + }, + { + "$ref": "#/definitions/ImagePart" + }, + { + "$ref": "#/definitions/AudioPart" + }, + { + "$ref": "#/definitions/ToolCallPart" + }, + { + "$ref": "#/definitions/ToolResultPart" + } + ] + }, + "UserMessage": { + "type": "object", + "description": "Represents a message sent by the user.", + "properties": { + "role": { + "type": "string", + "const": "user" + }, + "content": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/definitions/TextPart" + }, + { + "$ref": "#/definitions/ImagePart" + }, + { + "$ref": "#/definitions/AudioPart" + } + ] + } + } + }, + "required": ["role", "content"], + "additionalProperties": false + }, + "AssistantMessage": { + "type": "object", + "description": "Represents a message generated by the model.", + "properties": { + "role": { + "type": "string", + "const": "assistant" + }, + "content": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/definitions/TextPart" + }, + { + "$ref": "#/definitions/ToolCallPart" + }, + { + "$ref": "#/definitions/AudioPart" + } + ] + } + } + }, + "required": ["role", "content"], + "additionalProperties": false + }, + "TextPartDelta": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "text" + }, + "text": { + "type": "string" + } + }, + "required": ["type", "text"], + "additionalProperties": false + }, + "ToolCallPartDelta": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "tool-call" + }, + "toolCallId": { + "type": "string", + "description": "The ID of the tool call, used to match the tool result with the tool call." + }, + "toolName": { + "type": "string", + "description": "The name of the tool to call." + }, + "args": { + "type": "string", + "description": "The partial JSON string of the arguments to pass to the tool." + } + }, + "required": ["type"], + "additionalProperties": false + }, + "AudioPartDelta": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "audio" + }, + "audioData": { + "type": "string", + "description": "The base64-encoded audio data." + }, + "container": { + "$ref": "#/definitions/AudioContainer" + }, + "encoding": { + "$ref": "#/definitions/AudioEncoding" + }, + "sampleRate": { + "type": "integer", + "description": "The sample rate of the audio. E.g. 44100, 48000." + }, + "channels": { + "type": "integer", + "description": "The number of channels of the audio. E.g. 1, 2." + }, + "transcript": { + "type": "string", + "description": "The transcript of the audio." + } + }, + "required": ["type"], + "additionalProperties": false + }, + "ContentDelta": { + "type": "object", + "properties": { + "index": { + "type": "integer" + }, + "part": { + "oneOf": [ + { + "$ref": "#/definitions/TextPartDelta" + }, + { + "$ref": "#/definitions/ToolCallPartDelta" + }, + { + "$ref": "#/definitions/AudioPartDelta" + } + ] + } + }, + "required": ["index", "part"], + "additionalProperties": false + }, + "JSONSchema": { + "type": "object", + "description": "Represents a JSON schema." + }, + "Tool": { + "type": "object", + "description": "Represents a tool that can be used by the model.", + "properties": { + "name": { + "type": "string", + "description": "The name of the tool." + }, + "description": { + "type": "string", + "description": "A description of the tool." + }, + "parameters": { + "description": "The JSON schema of the parameters that the tool accepts. The type must be \"object\".", + "oneOf": [ + { + "$ref": "#/definitions/JSONSchema" + }, + { + "type": "null" + } + ] + } + }, + "required": ["name", "description", "parameters"], + "additionalProperties": false + }, + "ToolMessage": { + "type": "object", + "description": "Represents tool result in the message history.", + "properties": { + "role": { + "type": "string", + "const": "tool" + }, + "content": { + "type": "array", + "items": { + "$ref": "#/definitions/ToolResultPart" + } + } + }, + "required": ["role", "content"], + "additionalProperties": false + }, + "Message": { + "oneOf": [ + { + "$ref": "#/definitions/UserMessage" + }, + { + "$ref": "#/definitions/AssistantMessage" + }, + { + "$ref": "#/definitions/ToolMessage" + } + ] + }, + "ModelTokensDetail": { + "type": "object", + "description": "Represents the token usage of the model.", + "properties": { + "textTokens": { + "type": "integer" + }, + "audioTokens": { + "type": "integer" + }, + "imageTokens": { + "type": "integer" + } + }, + "additionalProperties": false + }, + "ModelUsage": { + "type": "object", + "description": "Represents the token usage of the model.", + "properties": { + "inputTokens": { + "type": "integer" + }, + "outputTokens": { + "type": "integer" + }, + "inputTokensDetail": { + "$ref": "#/definitions/ModelTokensDetail" + }, + "outputTokensDetail": { + "$ref": "#/definitions/ModelTokensDetail" + } + }, + "required": ["inputTokens", "outputTokens"], + "additionalProperties": false + }, + "ModelResponse": { + "type": "object", + "description": "Represents the response generated by the model.", + "properties": { + "content": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/definitions/TextPart" + }, + { + "$ref": "#/definitions/ToolCallPart" + }, + { + "$ref": "#/definitions/AudioPart" + } + ] + } + }, + "usage": { + "$ref": "#/definitions/ModelUsage" + }, + "cost": { + "type": "number", + "description": "The cost of the response." + } + }, + "required": ["content"], + "additionalProperties": false + }, + "PartialModelResponse": { + "type": "object", + "properties": { + "delta": { + "$ref": "#/definitions/ContentDelta" + } + }, + "required": ["delta"], + "additionalProperties": false + }, + "ToolChoiceAuto": { + "type": "object", + "description": "The model will automatically choose the tool to use or not use any tools.", + "properties": { + "type": { + "type": "string", + "const": "auto" + } + }, + "required": ["type"], + "additionalProperties": false + }, + "ToolChoiceNone": { + "type": "object", + "description": "The model will not use any tools.", + "properties": { + "type": { + "type": "string", + "const": "none" + } + }, + "required": ["type"], + "additionalProperties": false + }, + "ToolChoiceRequired": { + "type": "object", + "description": "The model will be forced to use a tool.", + "properties": { + "type": { + "type": "string", + "const": "required" + } + }, + "required": ["type"], + "additionalProperties": false + }, + "ToolChoiceTool": { + "type": "object", + "description": "The model will use the specified tool.", + "properties": { + "type": { + "type": "string", + "const": "tool" + }, + "toolName": { + "type": "string" + } + }, + "required": ["type", "toolName"], + "additionalProperties": false + }, + "ResponseFormatText": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "text" + } + }, + "required": ["type"], + "additionalProperties": false + }, + "ResponseFormatJson": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "json" + }, + "schema": { + "$ref": "#/definitions/JSONSchema" + } + }, + "required": ["type"], + "additionalProperties": false + }, + "Modality": { + "type": "string", + "enum": ["text", "audio"] + }, + "LanguageModelInput": { + "type": "object", + "properties": { + "systemPrompt": { + "type": "string", + "description": "A system prompt is a way of providing context and instructions to the model" + }, + "messages": { + "type": "array", + "items": { + "$ref": "#/definitions/Message" + }, + "description": "A list of messages comprising the conversation so far." + }, + "tools": { + "type": "array", + "items": { + "$ref": "#/definitions/Tool" + }, + "description": "Definitions of tools that the model may use." + }, + "toolChoice": { + "oneOf": [ + { + "$ref": "#/definitions/ToolChoiceAuto" + }, + { + "$ref": "#/definitions/ToolChoiceNone" + }, + { + "$ref": "#/definitions/ToolChoiceRequired" + }, + { + "$ref": "#/definitions/ToolChoiceTool" + } + ], + "description": "Determines how the model should choose which tool to use. \"auto\" - The model will automatically choose the tool to use or not use any tools. \"none\" - The model will not use any tools. \"required\" - The model will be forced to use a tool. { type: \"tool\", toolName: \"toolName\" } - The model will use the specified tool." + }, + "responseFormat": { + "oneOf": [ + { + "$ref": "#/definitions/ResponseFormatJson" + }, + { + "$ref": "#/definitions/ResponseFormatText" + } + ], + "description": "The format that the model must output" + }, + "maxTokens": { + "type": "integer", + "description": "The maximum number of tokens that can be generated in the chat completion." + }, + "temperature": { + "type": "number", + "description": "Amount of randomness injected into the response. Ranges from 0.0 to 1.0" + }, + "topP": { + "type": "number", + "description": "An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass Ranges from 0.0 to 1.0" + }, + "topK": { + "type": "number", + "description": "Only sample from the top K options for each subsequent token. Used to remove \"long tail\" low probability responses. Ranges from 0.0 to 1.0" + }, + "presencePenalty": { + "type": "number", + "description": "Positive values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics." + }, + "frequencyPenalty": { + "type": "number", + "description": "Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim." + }, + "seed": { + "type": "integer", + "description": "The seed (integer), if set and supported by the model, to enable deterministic results." + }, + "modalities": { + "type": "array", + "items": { + "$ref": "#/definitions/Modality" + }, + "description": "The modalities that the model should support." + }, + "extra": { + "type": "object", + "description": "Extra options that the model may support." + } + }, + "required": ["messages"], + "additionalProperties": false + } + } +} diff --git a/javascript/src/anthropic/anthropic.ts b/javascript/src/anthropic/anthropic.ts index 1edcdbe..1d9d8f8 100644 --- a/javascript/src/anthropic/anthropic.ts +++ b/javascript/src/anthropic/anthropic.ts @@ -1,4 +1,9 @@ import Anthropic from "@anthropic-ai/sdk"; +import { + InvalidValueError, + ModelUnsupportedMessagePart, + NotImplementedError, +} from "../errors/errors.js"; import type { LanguageModel, LanguageModelMetadata, @@ -14,7 +19,7 @@ import type { TextPart, Tool, ToolCallPart, -} from "../schemas/index.js"; +} from "../schema/index.js"; import { convertAudioPartsToTextParts } from "../utils/message.utils.js"; import { ContentDeltaAccumulator } from "../utils/stream.utils.js"; import { calculateCost } from "../utils/usage.utils.js"; @@ -170,11 +175,12 @@ export function convertToAnthropicMessages( input: part.args, }; case "audio": - throw new Error("Audio parts are not supported"); + throw new ModelUnsupportedMessagePart("anthropic", part.type); default: { const exhaustiveCheck: never = part; - throw new Error( - `Unsupported message part type: ${(exhaustiveCheck as { type: string }).type}`, + throw new InvalidValueError( + "part.type", + (exhaustiveCheck as { type: string }).type, ); } } @@ -228,11 +234,12 @@ export function convertToAnthropicMessages( }, }; case "audio": - throw new Error("Audio parts are not supported"); + throw new ModelUnsupportedMessagePart("anthropic", part.type); default: { const exhaustiveCheck: never = part; - throw new Error( - `Unsupported message part type: ${(exhaustiveCheck as { type: string }).type}`, + throw new InvalidValueError( + "part.type", + (exhaustiveCheck as { type: string }).type, ); } } @@ -243,8 +250,9 @@ export function convertToAnthropicMessages( default: { const exhaustiveCheck: never = message; - throw new Error( - `Unsupported message role: ${(exhaustiveCheck as { role: string }).role}`, + throw new InvalidValueError( + "message.role", + (exhaustiveCheck as { role: string }).role, ); } } @@ -287,8 +295,9 @@ export function convertToAnthropicToolChoice( } default: { const exhaustiveCheck: never = toolChoice; - throw new Error( - `Unsupported tool choice type: ${(exhaustiveCheck as { type: string }).type}`, + throw new InvalidValueError( + "toolChoice.type", + (exhaustiveCheck as { type: string }).type, ); } } @@ -333,8 +342,9 @@ export function mapAnthropicBlock(block: Anthropic.Messages.ContentBlock) { } satisfies ToolCallPart; default: { const exhaustiveCheck: never = block; - throw new Error( - `Unsupported block type: ${(exhaustiveCheck as { type: string }).type}`, + throw new NotImplementedError( + "block.type", + (exhaustiveCheck as { type: string }).type, ); } } @@ -370,8 +380,9 @@ export function mapAnthropicStreamEvent( } default: { const exhaustiveCheck: never = chunk.content_block; - throw new Error( - `Unsupported content block type: ${(exhaustiveCheck as { type: string }).type}`, + throw new NotImplementedError( + "content_block.type", + (exhaustiveCheck as { type: string }).type, ); } } @@ -399,8 +410,9 @@ export function mapAnthropicStreamEvent( ]; default: { const exhaustiveCheck: never = chunk.delta; - throw new Error( - `Unsupported delta type: ${(exhaustiveCheck as { type: string }).type}`, + throw new NotImplementedError( + "delta.type", + (exhaustiveCheck as { type: string }).type, ); } } diff --git a/javascript/src/cohere/cohere.ts b/javascript/src/cohere/cohere.ts index ad427ed..545a3af 100644 --- a/javascript/src/cohere/cohere.ts +++ b/javascript/src/cohere/cohere.ts @@ -1,4 +1,8 @@ import { Cohere, CohereClientV2 } from "cohere-ai"; +import { + InvalidValueError, + ModelUnsupportedMessagePart, +} from "../errors/errors.js"; import { LanguageModel, LanguageModelMetadata, @@ -13,7 +17,7 @@ import { PartialModelResponse, Tool, ToolCallPart, -} from "../schemas/types.gen.js"; +} from "../schema/index.js"; import { convertAudioPartsToTextParts } from "../utils/message.utils.js"; import { ContentDeltaAccumulator } from "../utils/stream.utils.js"; import { calculateCost } from "../utils/usage.utils.js"; @@ -48,10 +52,6 @@ export class CohereModel implements LanguageModel { convertToCohereParams(input, this.options), ); - if (!response.message) { - throw new Error("Response is missing message"); - } - const usage = response.usage ? mapCohereUsage(response.usage) : undefined; return { @@ -188,8 +188,9 @@ export function convertToCohereMessages( } default: { const exhaustiveCheck: never = message; - throw new Error( - `Unsupport message role: ${(exhaustiveCheck as { role: string }).role}`, + throw new InvalidValueError( + "message.role", + (exhaustiveCheck as { role: string }).role, ); } } @@ -217,12 +218,9 @@ export function convertToCohereMessageParam(parts: Part[]): { }); break; } - case "audio": { - throw new Error("Audio is not supported"); - } - case "image": { - throw new Error("Image is not supported"); - } + case "audio": + case "image": + throw new ModelUnsupportedMessagePart("cohere", part.type); case "tool-call": { toolCalls = toolCalls ?? []; toolCalls.push({ @@ -252,8 +250,9 @@ export function convertToCohereMessageParam(parts: Part[]): { } default: { const exhaustiveCheck: never = part; - throw new Error( - `Unsupported part type: ${(exhaustiveCheck as { type: string }).type}`, + throw new InvalidValueError( + "part.type", + (exhaustiveCheck as { type: string }).type, ); } } @@ -353,10 +352,9 @@ export function convertToCohereResponseFormat( }; default: { const exhaustiveCheck: never = responseFormat; - throw new Error( - `Unsupported response format type: ${ - (exhaustiveCheck as { type: string }).type - }`, + throw new InvalidValueError( + "responseFormat.type", + (exhaustiveCheck as { type: string }).type, ); } } diff --git a/javascript/src/errors/errors.ts b/javascript/src/errors/errors.ts new file mode 100644 index 0000000..dfd2981 --- /dev/null +++ b/javascript/src/errors/errors.ts @@ -0,0 +1,31 @@ +export class ModelUnsupportedMessagePart extends Error { + constructor(provider: string, part: string) { + super(`${provider} does not support message part: ${part}`); + } +} + +export class InvalidValueError extends Error { + constructor( + public parameterName: string, + public parameterValue: unknown, + extraMessage?: string, + ) { + super( + `${parameterName} is invalid: ${String(parameterValue)}` + + (extraMessage ? `. ${extraMessage}` : ""), + ); + } +} + +export class NotImplementedError extends Error { + constructor( + public parameterName: string, + public prameterValue: unknown, + extraMessage?: string, + ) { + super( + `${parameterName} is not implemented: ${String(prameterValue)}` + + (extraMessage ? `. ${extraMessage}` : ""), + ); + } +} diff --git a/javascript/src/google/google.ts b/javascript/src/google/google.ts index e5991bf..eea1bae 100644 --- a/javascript/src/google/google.ts +++ b/javascript/src/google/google.ts @@ -14,6 +14,7 @@ import type { UsageMetadata, } from "@google/generative-ai"; import { FunctionCallingMode, GoogleGenerativeAI } from "@google/generative-ai"; +import { InvalidValueError, NotImplementedError } from "../errors/errors.js"; import type { LanguageModel, LanguageModelMetadata, @@ -29,7 +30,7 @@ import type { PartialModelResponse, Tool, ToolResultPart, -} from "../schemas/index.js"; +} from "../schema/index.js"; import { mapAudioFormatToMimeType } from "../utils/audio.utils.js"; import { convertAudioPartsToTextParts } from "../utils/message.utils.js"; import type { InternalContentDelta } from "../utils/stream.utils.js"; @@ -206,9 +207,7 @@ export function convertToGoogleMessages( } default: { const exhaustiveCheck: never = part; - throw new Error( - `Unsupported part type: ${(exhaustiveCheck as { type: string }).type}`, - ); + throw new InvalidValueError("part.type", exhaustiveCheck); } } }); @@ -231,9 +230,7 @@ export function convertToGoogleMessages( }; default: { const exhaustiveCheck: never = message; - throw new Error( - `Unsupported message role: ${(exhaustiveCheck as { role: string }).role}`, - ); + throw new InvalidValueError("message.role", exhaustiveCheck); } } }); @@ -293,9 +290,7 @@ export function convertToGoogleToolConfig( }; default: { const exhaustiveCheck: never = toolChoice; - throw new Error( - `Unsupported tool choice type: ${(exhaustiveCheck as { type: string }).type}`, - ); + throw new InvalidValueError("toolChoice.type", exhaustiveCheck); } } } @@ -419,8 +414,9 @@ export function mapGooglePart(part: GooglePart): Part | undefined { audioData: part.inlineData.data, }; } - throw new Error( - "unsupported inlineData mimeType: " + part.inlineData.mimeType, + throw new NotImplementedError( + "inlineData.mimeType", + part.inlineData.mimeType, ); } if (part.functionCall) { @@ -437,7 +433,10 @@ export function mapGooglePart(part: GooglePart): Part | undefined { }; } if (part.codeExecutionResult) { - throw new Error("codeExecutionResult is not supported"); + throw new NotImplementedError( + "part.codeExecutionResult", + part.codeExecutionResult, + ); } if (part.functionResponse) { return { @@ -448,12 +447,13 @@ export function mapGooglePart(part: GooglePart): Part | undefined { }; } if (part.fileData) { - throw new Error("fileData is not supported"); + throw new NotImplementedError("part.fileData", part.fileData); } - // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition + if (part.executableCode) { - throw new Error("executableCode is not supported"); + throw new NotImplementedError("part.executableCode", part.executableCode); } + return undefined; } @@ -494,8 +494,9 @@ export function mapGoogleDelta( } default: { const exhaustiveCheck: never = part; - throw new Error( - `Unsupported part type: ${(exhaustiveCheck as { type: string }).type}`, + throw new NotImplementedError( + "part.type", + (exhaustiveCheck as { type: string }).type, ); } } diff --git a/javascript/src/index.ts b/javascript/src/index.ts index 0651ac0..ee1e1f4 100644 --- a/javascript/src/index.ts +++ b/javascript/src/index.ts @@ -1,4 +1,2 @@ -import * as schemas from "./schemas/schemas.gen.js"; export * from "./models/language-model.js"; -export * from "./schemas/types.gen.js"; -export { schemas }; +export * from "./schema/schema.js"; diff --git a/javascript/src/mistral/mistral.ts b/javascript/src/mistral/mistral.ts index e75d658..eff60b5 100644 --- a/javascript/src/mistral/mistral.ts +++ b/javascript/src/mistral/mistral.ts @@ -1,5 +1,10 @@ import { Mistral } from "@mistralai/mistralai"; import * as MistralComponents from "@mistralai/mistralai/models/components/index.js"; +import { + InvalidValueError, + ModelUnsupportedMessagePart, + NotImplementedError, +} from "../errors/errors.js"; import { LanguageModel, LanguageModelMetadata, @@ -13,7 +18,7 @@ import { PartialModelResponse, Tool, ToolCallPart, -} from "../schemas/types.gen.js"; +} from "../schema/index.js"; import { convertAudioPartsToTextParts } from "../utils/message.utils.js"; import { ContentDeltaAccumulator, @@ -159,20 +164,23 @@ export function convertToMistralMessages( messages.forEach((message) => { switch (message.role) { case "assistant": { - const mistralMessageParam: MistralComponents.AssistantMessage = { + const mistralMessageParam: Omit< + MistralComponents.AssistantMessage, + "content" + > & { + content: MistralComponents.ContentChunk[] | null; + } = { role: "assistant", content: null, }; message.content.forEach((part) => { switch (part.type) { case "text": { - mistralMessageParam.content = [ - ...(mistralMessageParam.content || []), - { - type: "text", - text: part.text, - }, - ] as Array; + mistralMessageParam.content = mistralMessageParam.content || []; + mistralMessageParam.content.push({ + type: "text", + text: part.text, + }); break; } case "tool-call": { @@ -189,11 +197,13 @@ export function convertToMistralMessages( break; } case "audio": { - throw new Error("Audio parts are not supported"); + throw new ModelUnsupportedMessagePart("mistral", "audio"); } default: { - throw new Error( - `Unsupported message part type: ${(part as { type: string }).type}`, + const exhaustiveCheck: never = part; + throw new InvalidValueError( + "part.type", + (exhaustiveCheck as { type: string }).type, ); } } @@ -236,11 +246,13 @@ export function convertToMistralMessages( }; } case "audio": { - throw new Error("Audio parts are not supported"); + throw new ModelUnsupportedMessagePart("mistral", "audio"); } default: { - throw new Error( - `Unsupported message part type: ${(part as { type: string }).type}`, + const exhaustiveCheck: never = part; + throw new InvalidValueError( + "part.type", + (exhaustiveCheck as { type: string }).type, ); } } @@ -250,8 +262,9 @@ export function convertToMistralMessages( } default: { const exhaustiveCheck: never = message; - throw new Error( - `Unsupported message role: ${(exhaustiveCheck as { role: string }).role}`, + throw new InvalidValueError( + "message.role", + (exhaustiveCheck as { role: string }).role, ); } } @@ -317,8 +330,9 @@ export function convertToMistralResponseFormat( return { type: "text" }; default: { const exhaustiveCheck: never = responseFormat; - throw new Error( - `Unsupported response format: ${(exhaustiveCheck as { type: string }).type}`, + throw new InvalidValueError( + "responseFormat.type", + (exhaustiveCheck as { type: string }).type, ); } } @@ -345,11 +359,13 @@ export function mapMistralMessage( }); break; case "image_url": - throw new Error("Image URL chunks are not supported"); + case "reference": + throw new NotImplementedError("message.part", chunk.type); default: { const exhaustiveCheck: never = chunk; - throw new Error( - `Unsupported message part type: ${(exhaustiveCheck as { type: string }).type}`, + throw new NotImplementedError( + "message.part", + (exhaustiveCheck as { type: string }).type, ); } } @@ -415,11 +431,13 @@ export function mapMistralDelta( break; } case "image_url": - throw new Error("Image URL chunks are not supported"); + case "reference": + throw new NotImplementedError("message.part", chunk.type); default: { const exhaustiveCheck: never = chunk; - throw new Error( - `Unsupported message part type: ${(exhaustiveCheck as { type: string }).type}`, + throw new NotImplementedError( + "message.part", + (exhaustiveCheck as { type: string }).type, ); } } diff --git a/javascript/src/models/language-model.ts b/javascript/src/models/language-model.ts index 409e5c1..a4ec6f4 100644 --- a/javascript/src/models/language-model.ts +++ b/javascript/src/models/language-model.ts @@ -2,7 +2,7 @@ import type { LanguageModelInput, ModelResponse, PartialModelResponse, -} from "../schemas/index.js"; +} from "../schema/index.js"; export type LanguageModelCapability = | "streaming" diff --git a/javascript/src/openai/openai.ts b/javascript/src/openai/openai.ts index 8e561a7..def1eb2 100644 --- a/javascript/src/openai/openai.ts +++ b/javascript/src/openai/openai.ts @@ -1,4 +1,5 @@ import OpenAI from "openai"; +import { InvalidValueError, NotImplementedError } from "../errors/errors.js"; import type { LanguageModel, LanguageModelMetadata, @@ -17,7 +18,7 @@ import type { TextPartDelta, Tool, ToolCallPartDelta, -} from "../schemas/index.js"; +} from "../schema/index.js"; import { convertAudioPartsToTextParts } from "../utils/message.utils.js"; import type { InternalContentDelta } from "../utils/stream.utils.js"; import { @@ -201,21 +202,23 @@ export function convertToOpenAIMessages( messages.forEach((message) => { switch (message.role) { case "assistant": { - const openaiMessageParam: OpenAI.Chat.ChatCompletionAssistantMessageParam = - { - role: "assistant", - content: null, - }; + const openaiMessageParam: Omit< + OpenAI.Chat.ChatCompletionAssistantMessageParam, + "content" + > & { + content: Array | null; + } = { + role: "assistant", + content: null, + }; message.content.forEach((part) => { switch (part.type) { case "text": { - openaiMessageParam.content = [ - ...(openaiMessageParam.content || []), - { - type: "text", - text: part.text, - }, - ] as Array; + openaiMessageParam.content = openaiMessageParam.content || []; + openaiMessageParam.content.push({ + type: "text", + text: part.text, + }); break; } case "tool-call": { @@ -232,14 +235,19 @@ export function convertToOpenAIMessages( break; } case "audio": { - throw new Error( - "Audio parts are not supported in assistant messages. Use options.convertAudioPartsToTextParts" + - " to convert audio parts to text parts.", - ); + if (!part.id) { + throw new Error("audio part must have an id"); + } + openaiMessageParam.audio = { + id: part.id, + }; + break; } default: { - throw new Error( - `Unsupported message part type: ${(part as { type: string }).type}`, + const exhaustiveCheck: never = part; + throw new InvalidValueError( + "message.part.type", + (exhaustiveCheck as { type: string }).type, ); } } @@ -293,8 +301,10 @@ export function convertToOpenAIMessages( }; } default: { - throw new Error( - `Unsupported message part type: ${(part as { type: string }).type}`, + const exhaustiveCheck: never = part; + throw new InvalidValueError( + "message.part.type", + (exhaustiveCheck as { type: string }).type, ); } } @@ -305,8 +315,9 @@ export function convertToOpenAIMessages( } default: { const exhaustiveCheck: never = message; - throw new Error( - `Unsupported message role: ${(exhaustiveCheck as { role: string }).role}`, + throw new InvalidValueError( + "message.role", + (exhaustiveCheck as { role: string }).role, ); } } @@ -454,8 +465,9 @@ export function convertToOpenAIResponseFormat( return { type: "text" }; default: { const exhaustiveCheck: never = responseFormat; - throw new Error( - `Unsupported response format: ${(exhaustiveCheck as { type: string }).type}`, + throw new InvalidValueError( + "responseFormat.type", + (exhaustiveCheck as { type: string }).type, ); } } @@ -484,7 +496,10 @@ export function mapOpenAIAudioFormat(format: PossibleOpenAIAudioFormat): { return { encoding: "alaw" }; default: { const exhaustiveCheck: never = format; - throw new Error(`Unsupported audio format: ${exhaustiveCheck as string}`); + throw new NotImplementedError( + "format", + (exhaustiveCheck as { type: string }).type, + ); } } } @@ -505,6 +520,7 @@ export function mapOpenAIMessage( if (message.audio) { content.push({ type: "audio", + id: message.audio.id, ...mapOpenAIAudioFormat(options?.audio?.format || "pcm16"), ...(options?.audio?.format === "pcm16" && { sampleRate: OPENAI_AUDIO_SAMPLE_RATE, @@ -544,7 +560,10 @@ export function mapOpenAIDelta( const contentDeltas: ContentDelta[] = []; if (delta.content) { - const part: TextPartDelta = { type: "text", text: delta.content }; + const part: TextPartDelta = { + type: "text", + text: delta.content, + }; contentDeltas.push({ index: guessDeltaIndex(part, [ ...existingContentDeltas, @@ -556,6 +575,7 @@ export function mapOpenAIDelta( if (delta.audio) { const part: AudioPartDelta = { type: "audio", + ...(delta.audio.id && { id: delta.audio.id }), ...(delta.audio.data && { audioData: delta.audio.data, ...mapOpenAIAudioFormat(options.audio?.format || "pcm16"), diff --git a/javascript/src/openai/types.ts b/javascript/src/openai/types.ts index 1766436..e9899a3 100644 --- a/javascript/src/openai/types.ts +++ b/javascript/src/openai/types.ts @@ -31,7 +31,7 @@ export type OpenAIPatchedPromptTokensDetails = { // documented type is wrong export type OpenAIPatchedCompletionTokenDetails = { - reasoning_tokens: 0; - text_tokens: 63; - audio_tokens: 286; + reasoning_tokens: number; + text_tokens: number; + audio_tokens: number; }; diff --git a/javascript/src/schema/index.ts b/javascript/src/schema/index.ts new file mode 100644 index 0000000..20cdc26 --- /dev/null +++ b/javascript/src/schema/index.ts @@ -0,0 +1 @@ +export * from "./schema.js"; diff --git a/javascript/src/schema/schema.json b/javascript/src/schema/schema.json new file mode 100644 index 0000000..a8a854e --- /dev/null +++ b/javascript/src/schema/schema.json @@ -0,0 +1,666 @@ +{ + "title": "llm-sdk", + "$schema": "http://json-schema.org/draft-07/schema#", + "definitions": { + "TextPart": { + "type": "object", + "description": "A part of the message that contains text.", + "properties": { + "type": { + "type": "string", + "const": "text" + }, + "text": { + "type": "string" + }, + "id": { + "type": "string", + "description": "The optional ID of the part." + } + }, + "required": ["type", "text"], + "additionalProperties": false + }, + "ImagePart": { + "type": "object", + "description": "A part of the message that contains an image.", + "properties": { + "type": { + "type": "string", + "const": "image" + }, + "mimeType": { + "type": "string", + "description": "The MIME type of the image. E.g. \"image/jpeg\", \"image/png\"." + }, + "imageData": { + "type": "string", + "description": "The base64-encoded image data." + }, + "width": { + "type": "integer", + "description": "The width of the image in pixels." + }, + "height": { + "type": "integer", + "description": "The height of the image in pixels." + }, + "id": { + "type": "string", + "description": "The optional ID of the part." + } + }, + "required": ["type", "mimeType", "imageData"], + "additionalProperties": false + }, + "AudioEncoding": { + "type": "string", + "enum": ["linear16", "flac", "mulaw", "alaw", "aac", "mp3", "opus"], + "description": "The encoding of the audio." + }, + "AudioContainer": { + "type": "string", + "enum": ["wav", "ogg", "flac", "webm"], + "description": "The container format of the audio." + }, + "AudioPart": { + "type": "object", + "description": "A part of the message that contains an audio.", + "properties": { + "type": { + "type": "string", + "const": "audio" + }, + "container": { + "$ref": "#/definitions/AudioContainer" + }, + "audioData": { + "type": "string", + "description": "The base64-encoded audio data." + }, + "encoding": { + "$ref": "#/definitions/AudioEncoding" + }, + "sampleRate": { + "type": "integer", + "description": "The sample rate of the audio. E.g. 44100, 48000." + }, + "channels": { + "type": "integer", + "description": "The number of channels of the audio. E.g. 1, 2." + }, + "transcript": { + "type": "string", + "description": "The transcript of the audio." + }, + "id": { + "type": "string", + "description": "The optional ID of the part." + } + }, + "required": ["type", "audioData"], + "additionalProperties": false + }, + "ToolCallPart": { + "type": "object", + "description": "A part of the message that represents a call to a tool the model wants to use.", + "properties": { + "type": { + "type": "string", + "const": "tool-call" + }, + "toolCallId": { + "type": "string", + "description": "The ID of the tool call, used to match the tool result with the tool call." + }, + "toolName": { + "type": "string", + "description": "The name of the tool to call." + }, + "args": { + "oneOf": [ + { + "type": "object" + }, + { + "type": "null" + } + ], + "description": "The arguments to pass to the tool." + }, + "id": { + "type": "string", + "description": "The optional ID of the part. This might not be the same as the toolCallId." + } + }, + "required": ["type", "toolCallId", "toolName", "args"], + "additionalProperties": false + }, + "ToolResultPart": { + "type": "object", + "description": "A part of the message that represents the result of a tool call.", + "properties": { + "type": { + "type": "string", + "const": "tool-result" + }, + "toolCallId": { + "type": "string", + "description": "The ID of the tool call from previous assistant message." + }, + "toolName": { + "type": "string", + "description": "The name of the tool that was called." + }, + "result": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "array" + } + ], + "description": "The result of the tool call." + }, + "isError": { + "type": "boolean", + "description": "Marks the tool result as an error." + } + }, + "required": ["type", "toolCallId", "toolName", "result"], + "additionalProperties": false + }, + "Part": { + "oneOf": [ + { + "$ref": "#/definitions/TextPart" + }, + { + "$ref": "#/definitions/ImagePart" + }, + { + "$ref": "#/definitions/AudioPart" + }, + { + "$ref": "#/definitions/ToolCallPart" + }, + { + "$ref": "#/definitions/ToolResultPart" + } + ] + }, + "UserMessage": { + "type": "object", + "description": "Represents a message sent by the user.", + "properties": { + "role": { + "type": "string", + "const": "user" + }, + "content": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/definitions/TextPart" + }, + { + "$ref": "#/definitions/ImagePart" + }, + { + "$ref": "#/definitions/AudioPart" + } + ] + } + } + }, + "required": ["role", "content"], + "additionalProperties": false + }, + "AssistantMessage": { + "type": "object", + "description": "Represents a message generated by the model.", + "properties": { + "role": { + "type": "string", + "const": "assistant" + }, + "content": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/definitions/TextPart" + }, + { + "$ref": "#/definitions/ToolCallPart" + }, + { + "$ref": "#/definitions/AudioPart" + } + ] + } + } + }, + "required": ["role", "content"], + "additionalProperties": false + }, + "TextPartDelta": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "text" + }, + "text": { + "type": "string" + }, + "id": { + "type": "string", + "description": "The optional ID of the part." + } + }, + "required": ["type", "text"], + "additionalProperties": false + }, + "ToolCallPartDelta": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "tool-call" + }, + "toolCallId": { + "type": "string", + "description": "The ID of the tool call, used to match the tool result with the tool call." + }, + "toolName": { + "type": "string", + "description": "The name of the tool to call." + }, + "args": { + "type": "string", + "description": "The partial JSON string of the arguments to pass to the tool." + }, + "id": { + "type": "string", + "description": "The optional ID of the part. This might not be the same as the toolCallId." + } + }, + "required": ["type"], + "additionalProperties": false + }, + "AudioPartDelta": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "audio" + }, + "audioData": { + "type": "string", + "description": "The base64-encoded audio data." + }, + "container": { + "$ref": "#/definitions/AudioContainer" + }, + "encoding": { + "$ref": "#/definitions/AudioEncoding" + }, + "sampleRate": { + "type": "integer", + "description": "The sample rate of the audio. E.g. 44100, 48000." + }, + "channels": { + "type": "integer", + "description": "The number of channels of the audio. E.g. 1, 2." + }, + "transcript": { + "type": "string", + "description": "The transcript of the audio." + }, + "id": { + "type": "string", + "description": "The optional ID of the part." + } + }, + "required": ["type"], + "additionalProperties": false + }, + "ContentDelta": { + "type": "object", + "properties": { + "index": { + "type": "integer" + }, + "part": { + "oneOf": [ + { + "$ref": "#/definitions/TextPartDelta" + }, + { + "$ref": "#/definitions/ToolCallPartDelta" + }, + { + "$ref": "#/definitions/AudioPartDelta" + } + ] + } + }, + "required": ["index", "part"], + "additionalProperties": false + }, + "JSONSchema": { + "type": "object", + "description": "Represents a JSON schema." + }, + "Tool": { + "type": "object", + "description": "Represents a tool that can be used by the model.", + "properties": { + "name": { + "type": "string", + "description": "The name of the tool." + }, + "description": { + "type": "string", + "description": "A description of the tool." + }, + "parameters": { + "description": "The JSON schema of the parameters that the tool accepts. The type must be \"object\".", + "oneOf": [ + { + "$ref": "#/definitions/JSONSchema" + }, + { + "type": "null" + } + ] + } + }, + "required": ["name", "description", "parameters"], + "additionalProperties": false + }, + "ToolMessage": { + "type": "object", + "description": "Represents tool result in the message history.", + "properties": { + "role": { + "type": "string", + "const": "tool" + }, + "content": { + "type": "array", + "items": { + "$ref": "#/definitions/ToolResultPart" + } + } + }, + "required": ["role", "content"], + "additionalProperties": false + }, + "Message": { + "oneOf": [ + { + "$ref": "#/definitions/UserMessage" + }, + { + "$ref": "#/definitions/AssistantMessage" + }, + { + "$ref": "#/definitions/ToolMessage" + } + ] + }, + "ModelTokensDetail": { + "type": "object", + "description": "Represents the token usage of the model.", + "properties": { + "textTokens": { + "type": "integer" + }, + "audioTokens": { + "type": "integer" + }, + "imageTokens": { + "type": "integer" + } + }, + "additionalProperties": false + }, + "ModelUsage": { + "type": "object", + "description": "Represents the token usage of the model.", + "properties": { + "inputTokens": { + "type": "integer" + }, + "outputTokens": { + "type": "integer" + }, + "inputTokensDetail": { + "$ref": "#/definitions/ModelTokensDetail" + }, + "outputTokensDetail": { + "$ref": "#/definitions/ModelTokensDetail" + } + }, + "required": ["inputTokens", "outputTokens"], + "additionalProperties": false + }, + "ModelResponse": { + "type": "object", + "description": "Represents the response generated by the model.", + "properties": { + "content": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/definitions/TextPart" + }, + { + "$ref": "#/definitions/ToolCallPart" + }, + { + "$ref": "#/definitions/AudioPart" + } + ] + } + }, + "usage": { + "$ref": "#/definitions/ModelUsage" + }, + "cost": { + "type": "number", + "description": "The cost of the response." + } + }, + "required": ["content"], + "additionalProperties": false + }, + "PartialModelResponse": { + "type": "object", + "properties": { + "delta": { + "$ref": "#/definitions/ContentDelta" + } + }, + "required": ["delta"], + "additionalProperties": false + }, + "ToolChoiceAuto": { + "type": "object", + "description": "The model will automatically choose the tool to use or not use any tools.", + "properties": { + "type": { + "type": "string", + "const": "auto" + } + }, + "required": ["type"], + "additionalProperties": false + }, + "ToolChoiceNone": { + "type": "object", + "description": "The model will not use any tools.", + "properties": { + "type": { + "type": "string", + "const": "none" + } + }, + "required": ["type"], + "additionalProperties": false + }, + "ToolChoiceRequired": { + "type": "object", + "description": "The model will be forced to use a tool.", + "properties": { + "type": { + "type": "string", + "const": "required" + } + }, + "required": ["type"], + "additionalProperties": false + }, + "ToolChoiceTool": { + "type": "object", + "description": "The model will use the specified tool.", + "properties": { + "type": { + "type": "string", + "const": "tool" + }, + "toolName": { + "type": "string" + } + }, + "required": ["type", "toolName"], + "additionalProperties": false + }, + "ResponseFormatText": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "text" + } + }, + "required": ["type"], + "additionalProperties": false + }, + "ResponseFormatJson": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "json" + }, + "schema": { + "$ref": "#/definitions/JSONSchema" + } + }, + "required": ["type"], + "additionalProperties": false + }, + "Modality": { + "type": "string", + "enum": ["text", "audio"] + }, + "LanguageModelInput": { + "type": "object", + "properties": { + "systemPrompt": { + "type": "string", + "description": "A system prompt is a way of providing context and instructions to the model" + }, + "messages": { + "type": "array", + "items": { + "$ref": "#/definitions/Message" + }, + "description": "A list of messages comprising the conversation so far." + }, + "tools": { + "type": "array", + "items": { + "$ref": "#/definitions/Tool" + }, + "description": "Definitions of tools that the model may use." + }, + "toolChoice": { + "oneOf": [ + { + "$ref": "#/definitions/ToolChoiceAuto" + }, + { + "$ref": "#/definitions/ToolChoiceNone" + }, + { + "$ref": "#/definitions/ToolChoiceRequired" + }, + { + "$ref": "#/definitions/ToolChoiceTool" + } + ], + "description": "Determines how the model should choose which tool to use. \"auto\" - The model will automatically choose the tool to use or not use any tools. \"none\" - The model will not use any tools. \"required\" - The model will be forced to use a tool. { type: \"tool\", toolName: \"toolName\" } - The model will use the specified tool." + }, + "responseFormat": { + "oneOf": [ + { + "$ref": "#/definitions/ResponseFormatJson" + }, + { + "$ref": "#/definitions/ResponseFormatText" + } + ], + "description": "The format that the model must output" + }, + "maxTokens": { + "type": "integer", + "description": "The maximum number of tokens that can be generated in the chat completion." + }, + "temperature": { + "type": "number", + "description": "Amount of randomness injected into the response. Ranges from 0.0 to 1.0" + }, + "topP": { + "type": "number", + "description": "An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass Ranges from 0.0 to 1.0" + }, + "topK": { + "type": "number", + "description": "Only sample from the top K options for each subsequent token. Used to remove \"long tail\" low probability responses. Ranges from 0.0 to 1.0" + }, + "presencePenalty": { + "type": "number", + "description": "Positive values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics." + }, + "frequencyPenalty": { + "type": "number", + "description": "Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim." + }, + "seed": { + "type": "integer", + "description": "The seed (integer), if set and supported by the model, to enable deterministic results." + }, + "modalities": { + "type": "array", + "items": { + "$ref": "#/definitions/Modality" + }, + "description": "The modalities that the model should support." + }, + "extra": { + "type": "object", + "description": "Extra options that the model may support." + } + }, + "required": ["messages"], + "additionalProperties": false + } + } +} diff --git a/javascript/src/schemas/types.gen.ts b/javascript/src/schema/schema.ts similarity index 55% rename from javascript/src/schemas/types.gen.ts rename to javascript/src/schema/schema.ts index 60e8ca0..3ecb50b 100644 --- a/javascript/src/schemas/types.gen.ts +++ b/javascript/src/schema/schema.ts @@ -1,20 +1,8 @@ -// This file is auto-generated by @hey-api/openapi-ts - -/** - * Represents a message generated by the model. - */ -export type AssistantMessage = { - role: "assistant"; - content: Array; -}; - -/** - * The container format of the audio. - */ -export type AudioContainer = "wav" | "ogg" | "flac" | "webm"; - /** * The encoding of the audio. + * + * This interface was referenced by `LlmSdk`'s JSON-Schema + * via the `definition` "AudioEncoding". */ export type AudioEncoding = | "linear16" @@ -24,39 +12,93 @@ export type AudioEncoding = | "aac" | "mp3" | "opus"; +/** + * The container format of the audio. + * + * This interface was referenced by `LlmSdk`'s JSON-Schema + * via the `definition` "AudioContainer". + */ +export type AudioContainer = "wav" | "ogg" | "flac" | "webm"; +/** + * This interface was referenced by `LlmSdk`'s JSON-Schema + * via the `definition` "Part". + */ +export type Part = + | TextPart + | ImagePart + | AudioPart + | ToolCallPart + | ToolResultPart; +/** + * This interface was referenced by `LlmSdk`'s JSON-Schema + * via the `definition` "Message". + */ +export type Message = UserMessage | AssistantMessage | ToolMessage; +/** + * This interface was referenced by `LlmSdk`'s JSON-Schema + * via the `definition` "Modality". + */ +export type Modality = "text" | "audio"; +export interface LlmSdk { + [k: string]: unknown; +} /** - * A part of the message that contains an audio. + * A part of the message that contains text. + * + * This interface was referenced by `LlmSdk`'s JSON-Schema + * via the `definition` "TextPart". */ -export type AudioPart = { - type: "audio"; - container?: AudioContainer; +export interface TextPart { + type: "text"; + text: string; /** - * The base64-encoded audio data. + * The optional ID of the part. */ - audioData: string; - encoding?: AudioEncoding; + id?: string; +} +/** + * A part of the message that contains an image. + * + * This interface was referenced by `LlmSdk`'s JSON-Schema + * via the `definition` "ImagePart". + */ +export interface ImagePart { + type: "image"; /** - * The sample rate of the audio. E.g. 44100, 48000. + * The MIME type of the image. E.g. "image/jpeg", "image/png". */ - sampleRate?: number; + mimeType: string; /** - * The number of channels of the audio. E.g. 1, 2. + * The base64-encoded image data. */ - channels?: number; + imageData: string; /** - * The transcript of the audio. + * The width of the image in pixels. */ - transcript?: string; -}; - -export type AudioPartDelta = { + width?: number; + /** + * The height of the image in pixels. + */ + height?: number; + /** + * The optional ID of the part. + */ + id?: string; +} +/** + * A part of the message that contains an audio. + * + * This interface was referenced by `LlmSdk`'s JSON-Schema + * via the `definition` "AudioPart". + */ +export interface AudioPart { type: "audio"; + container?: AudioContainer; /** * The base64-encoded audio data. */ - audioData?: string; - container?: AudioContainer; + audioData: string; encoding?: AudioEncoding; /** * The sample rate of the audio. E.g. 44100, 48000. @@ -70,299 +112,359 @@ export type AudioPartDelta = { * The transcript of the audio. */ transcript?: string; -}; - -export type ContentDelta = { - index: number; - part: TextPartDelta | ToolCallPartDelta | AudioPartDelta; -}; - + /** + * The optional ID of the part. + */ + id?: string; +} /** - * A part of the message that contains an image. + * A part of the message that represents a call to a tool the model wants to use. + * + * This interface was referenced by `LlmSdk`'s JSON-Schema + * via the `definition` "ToolCallPart". */ -export type ImagePart = { - type: "image"; +export interface ToolCallPart { + type: "tool-call"; /** - * The MIME type of the image. E.g. "image/jpeg", "image/png". + * The ID of the tool call, used to match the tool result with the tool call. */ - mimeType: string; + toolCallId: string; /** - * The base64-encoded image data. + * The name of the tool to call. */ - imageData: string; + toolName: string; /** - * The width of the image in pixels. + * The arguments to pass to the tool. */ - width?: number; + args: { + [k: string]: unknown; + } | null; /** - * The height of the image in pixels. + * The optional ID of the part. This might not be the same as the toolCallId. */ - height?: number; -}; - -export type LanguageModelInput = { + id?: string; +} +/** + * A part of the message that represents the result of a tool call. + * + * This interface was referenced by `LlmSdk`'s JSON-Schema + * via the `definition` "ToolResultPart". + */ +export interface ToolResultPart { + type: "tool-result"; /** - * A system prompt is a way of providing context and instructions to the model + * The ID of the tool call from previous assistant message. */ - systemPrompt?: string; + toolCallId: string; /** - * A list of messages comprising the conversation so far. + * The name of the tool that was called. */ - messages: Array; + toolName: string; /** - * Definitions of tools that the model may use. + * The result of the tool call. */ - tools?: Array; + result: + | { + [k: string]: unknown; + } + | unknown[]; /** - * Determines how the model should choose which tool to use. "auto" - The model will automatically choose the tool to use or not use any tools. "none" - The model will not use any tools. "required" - The model will be forced to use a tool. { type: "tool", toolName: "toolName" } - The model will use the specified tool. + * Marks the tool result as an error. */ - toolChoice?: - | ToolChoiceAuto - | ToolChoiceNone - | ToolChoiceRequired - | ToolChoiceTool; + isError?: boolean; +} +/** + * Represents a message sent by the user. + * + * This interface was referenced by `LlmSdk`'s JSON-Schema + * via the `definition` "UserMessage". + */ +export interface UserMessage { + role: "user"; + content: (TextPart | ImagePart | AudioPart)[]; +} +/** + * Represents a message generated by the model. + * + * This interface was referenced by `LlmSdk`'s JSON-Schema + * via the `definition` "AssistantMessage". + */ +export interface AssistantMessage { + role: "assistant"; + content: (TextPart | ToolCallPart | AudioPart)[]; +} +/** + * This interface was referenced by `LlmSdk`'s JSON-Schema + * via the `definition` "TextPartDelta". + */ +export interface TextPartDelta { + type: "text"; + text: string; /** - * The format that the model must output + * The optional ID of the part. */ - responseFormat?: ResponseFormatJson | ResponseFormatText; + id?: string; +} +/** + * This interface was referenced by `LlmSdk`'s JSON-Schema + * via the `definition` "ToolCallPartDelta". + */ +export interface ToolCallPartDelta { + type: "tool-call"; /** - * The maximum number of tokens that can be generated in the chat completion. + * The ID of the tool call, used to match the tool result with the tool call. */ - maxTokens?: number; + toolCallId?: string; /** - * Amount of randomness injected into the response. Ranges from 0.0 to 1.0 + * The name of the tool to call. */ - temperature?: number; + toolName?: string; /** - * An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass Ranges from 0.0 to 1.0 + * The partial JSON string of the arguments to pass to the tool. */ - topP?: number; + args?: string; /** - * Only sample from the top K options for each subsequent token. Used to remove "long tail" low probability responses. Ranges from 0.0 to 1.0 + * The optional ID of the part. This might not be the same as the toolCallId. */ - topK?: number; + id?: string; +} +/** + * This interface was referenced by `LlmSdk`'s JSON-Schema + * via the `definition` "AudioPartDelta". + */ +export interface AudioPartDelta { + type: "audio"; /** - * Positive values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics. + * The base64-encoded audio data. */ - presencePenalty?: number; + audioData?: string; + container?: AudioContainer; + encoding?: AudioEncoding; /** - * Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim. + * The sample rate of the audio. E.g. 44100, 48000. */ - frequencyPenalty?: number; + sampleRate?: number; /** - * The seed (integer), if set and supported by the model, to enable deterministic results. + * The number of channels of the audio. E.g. 1, 2. */ - seed?: number; + channels?: number; /** - * The modalities that the model should support. + * The transcript of the audio. */ - modalities?: Array; + transcript?: string; /** - * Extra options that the model may support. + * The optional ID of the part. */ - extra?: { - [key: string]: unknown; - }; -}; - -export type Message = UserMessage | AssistantMessage | ToolMessage; - -export type Modality = "text" | "audio"; - + id?: string; +} /** - * Represents the response generated by the model. + * This interface was referenced by `LlmSdk`'s JSON-Schema + * via the `definition` "ContentDelta". */ -export type ModelResponse = { - content: Array; - usage?: ModelUsage; +export interface ContentDelta { + index: number; + part: TextPartDelta | ToolCallPartDelta | AudioPartDelta; +} +/** + * Represents a JSON schema. + * + * This interface was referenced by `LlmSdk`'s JSON-Schema + * via the `definition` "JSONSchema". + */ +export interface JSONSchema { + [k: string]: unknown; +} +/** + * Represents a tool that can be used by the model. + * + * This interface was referenced by `LlmSdk`'s JSON-Schema + * via the `definition` "Tool". + */ +export interface Tool { /** - * The cost of the response. + * The name of the tool. */ - cost?: number; -}; - + name: string; + /** + * A description of the tool. + */ + description: string; + /** + * The JSON schema of the parameters that the tool accepts. The type must be "object". + */ + parameters: JSONSchema | null; +} +/** + * Represents tool result in the message history. + * + * This interface was referenced by `LlmSdk`'s JSON-Schema + * via the `definition` "ToolMessage". + */ +export interface ToolMessage { + role: "tool"; + content: ToolResultPart[]; +} /** * Represents the token usage of the model. + * + * This interface was referenced by `LlmSdk`'s JSON-Schema + * via the `definition` "ModelTokensDetail". */ -export type ModelTokensDetail = { +export interface ModelTokensDetail { textTokens?: number; audioTokens?: number; imageTokens?: number; -}; - +} /** * Represents the token usage of the model. + * + * This interface was referenced by `LlmSdk`'s JSON-Schema + * via the `definition` "ModelUsage". */ -export type ModelUsage = { +export interface ModelUsage { inputTokens: number; outputTokens: number; inputTokensDetail?: ModelTokensDetail; outputTokensDetail?: ModelTokensDetail; -}; - -export type Part = - | TextPart - | ImagePart - | AudioPart - | ToolCallPart - | ToolResultPart; - -export type PartialModelResponse = { - delta: ContentDelta; -}; - -export type ResponseFormatJson = { - type: "json"; - /** - * The JSON schema of the response that the model must output. Not all models support this option. - */ - schema?: { - [key: string]: unknown; - }; -}; - -export type ResponseFormatText = { - type: "text"; -}; - +} /** - * A part of the message that contains text. - */ -export type TextPart = { - type: "text"; - text: string; -}; - -export type TextPartDelta = { - type: "text"; - text: string; -}; - -/** - * Represents a tool that can be used by the model. + * Represents the response generated by the model. + * + * This interface was referenced by `LlmSdk`'s JSON-Schema + * via the `definition` "ModelResponse". */ -export type Tool = { - /** - * The name of the tool. - */ - name: string; - /** - * A description of the tool. - */ - description: string; +export interface ModelResponse { + content: (TextPart | ToolCallPart | AudioPart)[]; + usage?: ModelUsage; /** - * The JSON schema of the parameters that the tool accepts. The type must be "object". + * The cost of the response. */ - parameters: { - [key: string]: unknown; - } | null; -}; - + cost?: number; +} /** - * A part of the message that represents a call to a tool the model wants to use. + * This interface was referenced by `LlmSdk`'s JSON-Schema + * via the `definition` "PartialModelResponse". */ -export type ToolCallPart = { - type: "tool-call"; - /** - * The ID of the tool call, used to match the tool result with the tool call. - */ - toolCallId: string; - /** - * The name of the tool to call. - */ - toolName: string; - /** - * The arguments to pass to the tool. - */ - args: { - [key: string]: unknown; - } | null; -}; - -export type ToolCallPartDelta = { - type: "tool-call"; - /** - * The ID of the tool call, used to match the tool result with the tool call. - */ - toolCallId?: string; - /** - * The name of the tool to call. - */ - toolName?: string; - /** - * The partial JSON string of the arguments to pass to the tool. - */ - args?: string; -}; - +export interface PartialModelResponse { + delta: ContentDelta; +} /** * The model will automatically choose the tool to use or not use any tools. + * + * This interface was referenced by `LlmSdk`'s JSON-Schema + * via the `definition` "ToolChoiceAuto". */ -export type ToolChoiceAuto = { +export interface ToolChoiceAuto { type: "auto"; -}; - +} /** * The model will not use any tools. + * + * This interface was referenced by `LlmSdk`'s JSON-Schema + * via the `definition` "ToolChoiceNone". */ -export type ToolChoiceNone = { +export interface ToolChoiceNone { type: "none"; -}; - +} /** * The model will be forced to use a tool. + * + * This interface was referenced by `LlmSdk`'s JSON-Schema + * via the `definition` "ToolChoiceRequired". */ -export type ToolChoiceRequired = { +export interface ToolChoiceRequired { type: "required"; -}; - +} /** * The model will use the specified tool. + * + * This interface was referenced by `LlmSdk`'s JSON-Schema + * via the `definition` "ToolChoiceTool". */ -export type ToolChoiceTool = { +export interface ToolChoiceTool { type: "tool"; toolName: string; -}; - +} /** - * Represents tool result in the message history. + * This interface was referenced by `LlmSdk`'s JSON-Schema + * via the `definition` "ResponseFormatText". */ -export type ToolMessage = { - role: "tool"; - content: Array; -}; - +export interface ResponseFormatText { + type: "text"; +} /** - * A part of the message that represents the result of a tool call. + * This interface was referenced by `LlmSdk`'s JSON-Schema + * via the `definition` "ResponseFormatJson". */ -export type ToolResultPart = { - type: "tool-result"; +export interface ResponseFormatJson { + type: "json"; + schema?: JSONSchema; +} +/** + * This interface was referenced by `LlmSdk`'s JSON-Schema + * via the `definition` "LanguageModelInput". + */ +export interface LanguageModelInput { /** - * The ID of the tool call from previous assistant message. + * A system prompt is a way of providing context and instructions to the model */ - toolCallId: string; + systemPrompt?: string; /** - * The name of the tool that was called. + * A list of messages comprising the conversation so far. */ - toolName: string; + messages: Message[]; /** - * The result of the tool call. + * Definitions of tools that the model may use. */ - result: - | { - [key: string]: unknown; - } - | unknown[]; + tools?: Tool[]; /** - * Marks the tool result as an error. + * Determines how the model should choose which tool to use. "auto" - The model will automatically choose the tool to use or not use any tools. "none" - The model will not use any tools. "required" - The model will be forced to use a tool. { type: "tool", toolName: "toolName" } - The model will use the specified tool. */ - isError?: boolean; -}; - -/** - * Represents a message sent by the user. - */ -export type UserMessage = { - role: "user"; - content: Array; -}; + toolChoice?: + | ToolChoiceAuto + | ToolChoiceNone + | ToolChoiceRequired + | ToolChoiceTool; + /** + * The format that the model must output + */ + responseFormat?: ResponseFormatJson | ResponseFormatText; + /** + * The maximum number of tokens that can be generated in the chat completion. + */ + maxTokens?: number; + /** + * Amount of randomness injected into the response. Ranges from 0.0 to 1.0 + */ + temperature?: number; + /** + * An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass Ranges from 0.0 to 1.0 + */ + topP?: number; + /** + * Only sample from the top K options for each subsequent token. Used to remove "long tail" low probability responses. Ranges from 0.0 to 1.0 + */ + topK?: number; + /** + * Positive values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics. + */ + presencePenalty?: number; + /** + * Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim. + */ + frequencyPenalty?: number; + /** + * The seed (integer), if set and supported by the model, to enable deterministic results. + */ + seed?: number; + /** + * The modalities that the model should support. + */ + modalities?: Modality[]; + /** + * Extra options that the model may support. + */ + extra?: { + [k: string]: unknown; + }; +} diff --git a/javascript/src/schemas/index.ts b/javascript/src/schemas/index.ts deleted file mode 100644 index 013818c..0000000 --- a/javascript/src/schemas/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -// This file is auto-generated by @hey-api/openapi-ts -export * from "./schemas.gen.js"; -export * from "./types.gen.js"; diff --git a/javascript/src/schemas/schemas.gen.ts b/javascript/src/schemas/schemas.gen.ts deleted file mode 100644 index 04bae66..0000000 --- a/javascript/src/schemas/schemas.gen.ts +++ /dev/null @@ -1,642 +0,0 @@ -// This file is auto-generated by @hey-api/openapi-ts - -export const TextPartSchema = { - type: "object", - description: "A part of the message that contains text.", - properties: { - type: { - type: "string", - const: "text", - }, - text: { - type: "string", - }, - }, - required: ["type", "text"], -} as const; - -export const ImagePartSchema = { - type: "object", - description: "A part of the message that contains an image.", - properties: { - type: { - type: "string", - const: "image", - }, - mimeType: { - type: "string", - description: - 'The MIME type of the image. E.g. "image/jpeg", "image/png".', - }, - imageData: { - type: "string", - description: "The base64-encoded image data.", - }, - width: { - type: "integer", - description: "The width of the image in pixels.", - }, - height: { - type: "integer", - description: "The height of the image in pixels.", - }, - }, - required: ["type", "mimeType", "imageData"], -} as const; - -export const AudioEncodingSchema = { - type: "string", - enum: ["linear16", "flac", "mulaw", "alaw", "aac", "mp3", "opus"], - description: "The encoding of the audio.", -} as const; - -export const AudioContainerSchema = { - type: "string", - enum: ["wav", "ogg", "flac", "webm"], - description: "The container format of the audio.", -} as const; - -export const AudioPartSchema = { - type: "object", - description: "A part of the message that contains an audio.", - properties: { - type: { - type: "string", - const: "audio", - }, - container: { - $ref: "#/components/schemas/AudioContainer", - }, - audioData: { - type: "string", - description: "The base64-encoded audio data.", - }, - encoding: { - $ref: "#/components/schemas/AudioEncoding", - }, - sampleRate: { - type: "integer", - description: "The sample rate of the audio. E.g. 44100, 48000.", - }, - channels: { - type: "integer", - description: "The number of channels of the audio. E.g. 1, 2.", - }, - transcript: { - type: "string", - description: "The transcript of the audio.", - }, - }, - required: ["type", "audioData"], -} as const; - -export const ToolCallPartSchema = { - type: "object", - description: - "A part of the message that represents a call to a tool the model wants to use.", - properties: { - type: { - type: "string", - const: "tool-call", - }, - toolCallId: { - type: "string", - description: - "The ID of the tool call, used to match the tool result with the tool call.", - }, - toolName: { - type: "string", - description: "The name of the tool to call.", - }, - args: { - type: "object", - additionalProperties: true, - description: "The arguments to pass to the tool.", - nullable: true, - }, - }, - required: ["type", "toolCallId", "toolName", "args"], -} as const; - -export const ToolResultPartSchema = { - type: "object", - description: - "A part of the message that represents the result of a tool call.", - properties: { - type: { - type: "string", - const: "tool-result", - }, - toolCallId: { - type: "string", - description: "The ID of the tool call from previous assistant message.", - }, - toolName: { - type: "string", - description: "The name of the tool that was called.", - }, - result: { - anyOf: [ - { - type: "object", - }, - { - type: "array", - }, - ], - description: "The result of the tool call.", - }, - isError: { - type: "boolean", - description: "Marks the tool result as an error.", - }, - }, - required: ["type", "toolCallId", "toolName", "result"], -} as const; - -export const PartSchema = { - oneOf: [ - { - $ref: "#/components/schemas/TextPart", - }, - { - $ref: "#/components/schemas/ImagePart", - }, - { - $ref: "#/components/schemas/AudioPart", - }, - { - $ref: "#/components/schemas/ToolCallPart", - }, - { - $ref: "#/components/schemas/ToolResultPart", - }, - ], -} as const; - -export const UserMessageSchema = { - type: "object", - description: "Represents a message sent by the user.", - properties: { - role: { - type: "string", - const: "user", - }, - content: { - type: "array", - items: { - oneOf: [ - { - $ref: "#/components/schemas/TextPart", - }, - { - $ref: "#/components/schemas/ImagePart", - }, - { - $ref: "#/components/schemas/AudioPart", - }, - ], - }, - }, - }, - required: ["role", "content"], -} as const; - -export const AssistantMessageSchema = { - type: "object", - description: "Represents a message generated by the model.", - properties: { - role: { - type: "string", - const: "assistant", - }, - content: { - type: "array", - items: { - oneOf: [ - { - $ref: "#/components/schemas/TextPart", - }, - { - $ref: "#/components/schemas/ToolCallPart", - }, - { - $ref: "#/components/schemas/AudioPart", - }, - ], - }, - }, - }, - required: ["role", "content"], -} as const; - -export const TextPartDeltaSchema = { - type: "object", - properties: { - type: { - type: "string", - const: "text", - }, - text: { - type: "string", - }, - }, - required: ["type", "text"], -} as const; - -export const ToolCallPartDeltaSchema = { - type: "object", - properties: { - type: { - type: "string", - const: "tool-call", - }, - toolCallId: { - type: "string", - description: - "The ID of the tool call, used to match the tool result with the tool call.", - }, - toolName: { - type: "string", - description: "The name of the tool to call.", - }, - args: { - type: "string", - description: - "The partial JSON string of the arguments to pass to the tool.", - }, - }, - required: ["type"], -} as const; - -export const AudioPartDeltaSchema = { - type: "object", - properties: { - type: { - type: "string", - const: "audio", - }, - audioData: { - type: "string", - description: "The base64-encoded audio data.", - }, - container: { - $ref: "#/components/schemas/AudioContainer", - }, - encoding: { - $ref: "#/components/schemas/AudioEncoding", - }, - sampleRate: { - type: "integer", - description: "The sample rate of the audio. E.g. 44100, 48000.", - }, - channels: { - type: "integer", - description: "The number of channels of the audio. E.g. 1, 2.", - }, - transcript: { - type: "string", - description: "The transcript of the audio.", - }, - }, - required: ["type"], -} as const; - -export const ContentDeltaSchema = { - type: "object", - properties: { - index: { - type: "integer", - }, - part: { - oneOf: [ - { - $ref: "#/components/schemas/TextPartDelta", - }, - { - $ref: "#/components/schemas/ToolCallPartDelta", - }, - { - $ref: "#/components/schemas/AudioPartDelta", - }, - ], - }, - }, - required: ["index", "part"], -} as const; - -export const ToolSchema = { - type: "object", - description: "Represents a tool that can be used by the model.", - properties: { - name: { - type: "string", - description: "The name of the tool.", - }, - description: { - type: "string", - description: "A description of the tool.", - }, - parameters: { - type: "object", - description: - 'The JSON schema of the parameters that the tool accepts. The type must be "object".', - nullable: true, - }, - }, - required: ["name", "description", "parameters"], -} as const; - -export const ToolMessageSchema = { - type: "object", - description: "Represents tool result in the message history.", - properties: { - role: { - type: "string", - const: "tool", - }, - content: { - type: "array", - items: { - $ref: "#/components/schemas/ToolResultPart", - }, - }, - }, - required: ["role", "content"], -} as const; - -export const MessageSchema = { - oneOf: [ - { - $ref: "#/components/schemas/UserMessage", - }, - { - $ref: "#/components/schemas/AssistantMessage", - }, - { - $ref: "#/components/schemas/ToolMessage", - }, - ], -} as const; - -export const ModelTokensDetailSchema = { - type: "object", - description: "Represents the token usage of the model.", - properties: { - textTokens: { - type: "integer", - }, - audioTokens: { - type: "integer", - }, - imageTokens: { - type: "integer", - }, - }, -} as const; - -export const ModelUsageSchema = { - type: "object", - description: "Represents the token usage of the model.", - properties: { - inputTokens: { - type: "integer", - }, - outputTokens: { - type: "integer", - }, - inputTokensDetail: { - $ref: "#/components/schemas/ModelTokensDetail", - }, - outputTokensDetail: { - $ref: "#/components/schemas/ModelTokensDetail", - }, - }, - required: ["inputTokens", "outputTokens"], -} as const; - -export const ModelResponseSchema = { - type: "object", - description: "Represents the response generated by the model.", - properties: { - content: { - type: "array", - items: { - oneOf: [ - { - $ref: "#/components/schemas/TextPart", - }, - { - $ref: "#/components/schemas/ToolCallPart", - }, - { - $ref: "#/components/schemas/AudioPart", - }, - ], - }, - }, - usage: { - $ref: "#/components/schemas/ModelUsage", - }, - cost: { - type: "number", - description: "The cost of the response.", - }, - }, - required: ["content"], -} as const; - -export const PartialModelResponseSchema = { - type: "object", - properties: { - delta: { - $ref: "#/components/schemas/ContentDelta", - }, - }, - required: ["delta"], -} as const; - -export const ToolChoiceAutoSchema = { - type: "object", - description: - "The model will automatically choose the tool to use or not use any tools.", - properties: { - type: { - type: "string", - const: "auto", - }, - }, - required: ["type"], -} as const; - -export const ToolChoiceNoneSchema = { - type: "object", - description: "The model will not use any tools.", - properties: { - type: { - type: "string", - const: "none", - }, - }, - required: ["type"], -} as const; - -export const ToolChoiceRequiredSchema = { - type: "object", - description: "The model will be forced to use a tool.", - properties: { - type: { - type: "string", - const: "required", - }, - }, - required: ["type"], -} as const; - -export const ToolChoiceToolSchema = { - type: "object", - description: "The model will use the specified tool.", - properties: { - type: { - type: "string", - const: "tool", - }, - toolName: { - type: "string", - }, - }, - required: ["type", "toolName"], -} as const; - -export const ResponseFormatTextSchema = { - type: "object", - properties: { - type: { - type: "string", - const: "text", - }, - }, - required: ["type"], -} as const; - -export const ResponseFormatJsonSchema = { - type: "object", - properties: { - type: { - type: "string", - const: "json", - }, - schema: { - type: "object", - description: - "The JSON schema of the response that the model must output. Not all models support this option.", - }, - }, - required: ["type"], -} as const; - -export const ModalitySchema = { - type: "string", - enum: ["text", "audio"], -} as const; - -export const LanguageModelInputSchema = { - type: "object", - properties: { - systemPrompt: { - type: "string", - description: - "A system prompt is a way of providing context and instructions to the model", - }, - messages: { - type: "array", - items: { - $ref: "#/components/schemas/Message", - }, - description: "A list of messages comprising the conversation so far.", - }, - tools: { - type: "array", - items: { - $ref: "#/components/schemas/Tool", - }, - description: "Definitions of tools that the model may use.", - }, - toolChoice: { - oneOf: [ - { - $ref: "#/components/schemas/ToolChoiceAuto", - }, - { - $ref: "#/components/schemas/ToolChoiceNone", - }, - { - $ref: "#/components/schemas/ToolChoiceRequired", - }, - { - $ref: "#/components/schemas/ToolChoiceTool", - }, - ], - description: - 'Determines how the model should choose which tool to use. "auto" - The model will automatically choose the tool to use or not use any tools. "none" - The model will not use any tools. "required" - The model will be forced to use a tool. { type: "tool", toolName: "toolName" } - The model will use the specified tool.', - }, - responseFormat: { - oneOf: [ - { - $ref: "#/components/schemas/ResponseFormatJson", - }, - { - $ref: "#/components/schemas/ResponseFormatText", - }, - ], - description: "The format that the model must output", - }, - maxTokens: { - type: "integer", - description: - "The maximum number of tokens that can be generated in the chat completion.", - }, - temperature: { - type: "number", - description: - "Amount of randomness injected into the response. Ranges from 0.0 to 1.0", - }, - topP: { - type: "number", - description: - "An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass Ranges from 0.0 to 1.0", - }, - topK: { - type: "number", - description: - 'Only sample from the top K options for each subsequent token. Used to remove "long tail" low probability responses. Ranges from 0.0 to 1.0', - }, - presencePenalty: { - type: "number", - description: - "Positive values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics.", - }, - frequencyPenalty: { - type: "number", - description: - "Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.", - }, - seed: { - type: "integer", - description: - "The seed (integer), if set and supported by the model, to enable deterministic results.", - }, - modalities: { - type: "array", - items: { - $ref: "#/components/schemas/Modality", - }, - description: "The modalities that the model should support.", - }, - extra: { - type: "object", - description: "Extra options that the model may support.", - }, - }, - required: ["messages"], -} as const; diff --git a/javascript/src/utils/audio.utils.ts b/javascript/src/utils/audio.utils.ts index 8e742b5..d7941a6 100644 --- a/javascript/src/utils/audio.utils.ts +++ b/javascript/src/utils/audio.utils.ts @@ -1,4 +1,4 @@ -import type { AudioContainer, AudioEncoding } from "../schemas/types.gen.js"; +import type { AudioContainer, AudioEncoding } from "../schema/index.js"; export function base64ToArrayBuffer(base64: string): ArrayBuffer { const binaryString = atob(base64); @@ -10,11 +10,13 @@ export function base64ToArrayBuffer(base64: string): ArrayBuffer { return bytes.buffer; } -export function arrayBufferToBase64(arrayBuffer: ArrayBuffer): string { +export function arrayBufferToBase64( + arrayBuffer: ArrayBuffer | Float32Array | Int16Array, +): string { if (arrayBuffer instanceof Float32Array) { arrayBuffer = floatTo16BitPCM(arrayBuffer); } else if (arrayBuffer instanceof Int16Array) { - arrayBuffer = arrayBuffer.buffer; + arrayBuffer = arrayBuffer.buffer as ArrayBuffer; } let binary = ""; const bytes = new Uint8Array(arrayBuffer); diff --git a/javascript/src/utils/message.utils.ts b/javascript/src/utils/message.utils.ts index ecc4e3f..578878a 100644 --- a/javascript/src/utils/message.utils.ts +++ b/javascript/src/utils/message.utils.ts @@ -1,4 +1,4 @@ -import type { Message } from "../schemas/types.gen.js"; +import type { Message } from "../schema/index.js"; export function convertAudioPartsToTextParts(message: T): T { return { diff --git a/javascript/src/utils/stream.utils.ts b/javascript/src/utils/stream.utils.ts index e5ed0f1..3f47f5b 100644 --- a/javascript/src/utils/stream.utils.ts +++ b/javascript/src/utils/stream.utils.ts @@ -5,7 +5,7 @@ import type { TextPartDelta, ToolCallPart, ToolCallPartDelta, -} from "../schemas/index.js"; +} from "../schema/index.js"; import { arrayBufferToBase64, base64ToArrayBuffer, @@ -31,6 +31,10 @@ export class ContentDeltaAccumulator { ); if (existingDelta) { + if (incomingDelta.part.id) { + existingDelta.part.id = incomingDelta.part.id; + } + if ( existingDelta.part.type === "text" && incomingDelta.part.type === "text" @@ -104,6 +108,7 @@ export class ContentDeltaAccumulator { switch (delta.part.type) { case "text": return { + ...(delta.part.id && { id: delta.part.id }), type: "text", text: delta.part.text, }; @@ -115,6 +120,7 @@ export class ContentDeltaAccumulator { } return { type: "tool-call", + ...(delta.part.id && { id: delta.part.id }), toolCallId: delta.part.toolCallId, args: delta.part.args ? (JSON.parse(delta.part.args) as Record) @@ -130,6 +136,7 @@ export class ContentDeltaAccumulator { const concatenatedAudioData = mergeInt16Arrays(delta.part.audioData); return { type: "audio", + ...(delta.part.id && { id: delta.part.id }), audioData: arrayBufferToBase64(concatenatedAudioData), encoding: delta.part.encoding, ...(delta.part.container && { container: delta.part.container }), @@ -138,10 +145,12 @@ export class ContentDeltaAccumulator { ...(delta.part.transcript && { transcript: delta.part.transcript }), }; } - default: + default: { + const exhaustiveCheck: never = delta.part; throw new Error( - `unexpected part ${(delta.part as { type: string }).type} at index ${String(delta.index)}`, + `unexpected part ${String(exhaustiveCheck)} at index ${String(delta.index)}`, ); + } } }); } @@ -161,11 +170,10 @@ export function guessDeltaIndex( matchingDelta = allContentDeltas.findLast((contentDelta) => { if (part.type === "text" || part.type === "audio") { return contentDelta.part.type === part.type; - } else { - // we won't be able to reliably match tool calls - // because there can be multiple tool calls with the same tool name - return false; } + // we won't be able to reliably match tool calls + // because there can be multiple tool calls with the same tool name + return false; }); } if (matchingDelta) { diff --git a/javascript/src/utils/usage.utils.ts b/javascript/src/utils/usage.utils.ts index fd43099..91e8a3c 100644 --- a/javascript/src/utils/usage.utils.ts +++ b/javascript/src/utils/usage.utils.ts @@ -1,5 +1,5 @@ import type { LanguageModelPricing } from "../models/language-model.js"; -import type { ModelUsage } from "../schemas/types.gen.js"; +import type { ModelUsage } from "../schema/index.js"; export function calculateCost( usage: ModelUsage, diff --git a/javascript/test/openai.test.ts b/javascript/test/openai.test.ts index 4ae77bc..b866eff 100644 --- a/javascript/test/openai.test.ts +++ b/javascript/test/openai.test.ts @@ -108,6 +108,7 @@ suite("OpenAIModel", () => { t.assert.equal(audioPart!.audioData.length > 0, true); t.assert.equal(audioPart!.encoding!.length > 0, true); t.assert.equal(audioPart!.transcript!.length > 0, true); + t.assert.equal(!!audioPart?.id, true); }); test("stream audio", async (t) => { @@ -149,5 +150,62 @@ suite("OpenAIModel", () => { t.assert.equal(audioPart!.audioData.length > 0, true); t.assert.equal(audioPart!.encoding!.length > 0, true); t.assert.equal(audioPart!.transcript!.length > 0, true); + t.assert.equal(!!audioPart?.id, true); + }); + + test("generate with assistant audio part", async (t) => { + const response = await audioModel.generate({ + modalities: ["text", "audio"], + messages: [ + { + role: "user", + content: [ + { + type: "text", + text: "Hello", + }, + ], + }, + ], + extra: { + audio: { + voice: "alloy", + format: "mp3", + }, + }, + }); + + const audioPart = response.content.find((part) => part.type === "audio"); + t.assert.equal(!!audioPart?.id, true); + + const response2 = await audioModel.generate({ + modalities: ["text", "audio"], + messages: [ + { + role: "user", + content: [ + { + type: "text", + text: "Hello", + }, + ], + }, + { + role: "assistant", + content: response.content, + }, + ], + extra: { + audio: { + voice: "alloy", + format: "mp3", + }, + }, + }); + + log(response2); + + const audioPart2 = response2.content.find((part) => part.type === "audio"); + t.assert.equal(!!audioPart2, true); }); }); diff --git a/package-lock.json b/package-lock.json index 3297355..8c1651c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,35 +5,36 @@ "packages": { "": { "name": "llm-sdk", + "hasInstallScript": true, "workspaces": [ "javascript" ], "dependencies": { "@anthropic-ai/sdk": "^0.32.1", "@google/generative-ai": "^0.21.0", - "@mistralai/mistralai": "^1.3.0", + "@mistralai/mistralai": "^1.3.5", "audio-context": "^1.0.3", "audio-decode": "^2.2.2", "audio-play": "^2.3.1", - "cohere-ai": "^7.14.0", - "openai": "^4.71.1" + "cohere-ai": "^7.15.0", + "openai": "^4.76.0" }, "devDependencies": { - "@eslint/js": "^9.14.0", - "@hey-api/openapi-ts": "^0.55.0", + "@eslint/js": "^9.16.0", "@types/audio-context": "^1.0.3", "@types/audio-play": "^2.3.2", - "@types/node": "^22.9.0", - "eslint": "^8.57.1", + "@types/node": "^22.10.1", + "eslint": "^9.16.0", "eslint-config-prettier": "^9.1.0", "eslint-plugin-prettier": "^5.2.1", - "globals": "^15.12.0", - "ibm-openapi-validator": "^1.25.0", - "prettier": "^3.3.3", + "globals": "^15.13.0", + "json-schema-to-typescript": "^15.0.3", + "patch-package": "^8.0.0", + "prettier": "^3.4.2", "tshy": "^3.0.2", "tsx": "^4.19.2", - "typescript": "^5.6.3", - "typescript-eslint": "^8.13.0" + "typescript": "^5.7.2", + "typescript-eslint": "^8.17.0" }, "optionalDependencies": { "speaker": "^0.5.5" @@ -41,13 +42,11 @@ }, "javascript": { "name": "@firefliesai/llm-sdk", - "version": "0.1.6", + "version": "0.1.7", "license": "MIT" }, "node_modules/@anthropic-ai/sdk": { "version": "0.32.1", - "resolved": "https://registry.npmjs.org/@anthropic-ai/sdk/-/sdk-0.32.1.tgz", - "integrity": "sha512-U9JwTrDvdQ9iWuABVsMLj8nJVwAyQz6QXvgLsVhryhCEPkLsbcP/MXxm+jYcAwLoV8ESbaTTjnD4kuAFa+Hyjg==", "license": "MIT", "dependencies": { "@types/node": "^18.11.18", @@ -61,21 +60,17 @@ }, "node_modules/@anthropic-ai/sdk/node_modules/@types/node": { "version": "18.19.59", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.59.tgz", - "integrity": "sha512-vizm2EqwV/7Zay+A6J3tGl9Lhr7CjZe2HmWS988sefiEmsyP9CeXEleho6i4hJk/8UtZAo0bWN4QPZZr83RxvQ==", + "license": "MIT", "dependencies": { "undici-types": "~5.26.4" } }, "node_modules/@anthropic-ai/sdk/node_modules/undici-types": { "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + "license": "MIT" }, "node_modules/@apidevtools/json-schema-ref-parser": { "version": "11.7.2", - "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.7.2.tgz", - "integrity": "sha512-4gY54eEGEstClvEkGnwVkTkrx0sqwemEFG5OSRRn3tD91XH0+Q8XIkYIfo7IwEWPpJZwILb9GUXeShtplRc/eA==", "dev": true, "license": "MIT", "dependencies": { @@ -90,19 +85,8 @@ "url": "https://github.com/sponsors/philsturgeon" } }, - "node_modules/@asyncapi/specs": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/@asyncapi/specs/-/specs-4.3.1.tgz", - "integrity": "sha512-EfexhJu/lwF8OdQDm28NKLJHFkx0Gb6O+rcezhZYLPIoNYKXJMh2J1vFGpwmfAcTTh+ffK44Oc2Hs1Q4sLBp+A==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.11" - } - }, "node_modules/@aws-crypto/crc32": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/crc32/-/crc32-3.0.0.tgz", - "integrity": "sha512-IzSgsrxUcsrejQbPVilIKy16kAT52EwB6zSaI+M3xxIhKh5+aldEyvI+z6erM7TCLB2BJsFrtHjp6/4/sr+3dA==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/util": "^3.0.0", @@ -112,8 +96,6 @@ }, "node_modules/@aws-crypto/crc32/node_modules/@aws-crypto/util": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-3.0.0.tgz", - "integrity": "sha512-2OJlpeJpCR48CC8r+uKVChzs9Iungj9wkZrl8Z041DWEWvyIHILYKCPNzJghKsivj+S3mLo6BVc7mBNzdxA46w==", "license": "Apache-2.0", "dependencies": { "@aws-sdk/types": "^3.222.0", @@ -123,14 +105,10 @@ }, "node_modules/@aws-crypto/crc32/node_modules/tslib": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "license": "0BSD" }, "node_modules/@aws-crypto/sha256-browser": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-5.2.0.tgz", - "integrity": "sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-js": "^5.2.0", @@ -144,8 +122,6 @@ }, "node_modules/@aws-crypto/sha256-browser/node_modules/@smithy/is-array-buffer": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz", - "integrity": "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==", "license": "Apache-2.0", "dependencies": { "tslib": "^2.6.2" @@ -156,8 +132,6 @@ }, "node_modules/@aws-crypto/sha256-browser/node_modules/@smithy/util-buffer-from": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz", - "integrity": "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==", "license": "Apache-2.0", "dependencies": { "@smithy/is-array-buffer": "^2.2.0", @@ -169,8 +143,6 @@ }, "node_modules/@aws-crypto/sha256-browser/node_modules/@smithy/util-utf8": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.3.0.tgz", - "integrity": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==", "license": "Apache-2.0", "dependencies": { "@smithy/util-buffer-from": "^2.2.0", @@ -182,8 +154,6 @@ }, "node_modules/@aws-crypto/sha256-js": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-5.2.0.tgz", - "integrity": "sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/util": "^5.2.0", @@ -196,8 +166,6 @@ }, "node_modules/@aws-crypto/supports-web-crypto": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-5.2.0.tgz", - "integrity": "sha512-iAvUotm021kM33eCdNfwIN//F77/IADDSs58i+MDaOqFrVjZo9bAal0NK7HurRuWLLpF1iLX7gbWrjHjeo+YFg==", "license": "Apache-2.0", "dependencies": { "tslib": "^2.6.2" @@ -205,8 +173,6 @@ }, "node_modules/@aws-crypto/util": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-5.2.0.tgz", - "integrity": "sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==", "license": "Apache-2.0", "dependencies": { "@aws-sdk/types": "^3.222.0", @@ -216,8 +182,6 @@ }, "node_modules/@aws-crypto/util/node_modules/@smithy/is-array-buffer": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz", - "integrity": "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==", "license": "Apache-2.0", "dependencies": { "tslib": "^2.6.2" @@ -228,8 +192,6 @@ }, "node_modules/@aws-crypto/util/node_modules/@smithy/util-buffer-from": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz", - "integrity": "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==", "license": "Apache-2.0", "dependencies": { "@smithy/is-array-buffer": "^2.2.0", @@ -241,8 +203,6 @@ }, "node_modules/@aws-crypto/util/node_modules/@smithy/util-utf8": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.3.0.tgz", - "integrity": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==", "license": "Apache-2.0", "dependencies": { "@smithy/util-buffer-from": "^2.2.0", @@ -254,8 +214,6 @@ }, "node_modules/@aws-sdk/client-cognito-identity": { "version": "3.686.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.686.0.tgz", - "integrity": "sha512-Hhz2fijAcGWQ/cCYpoozQiuNTqcepIOdFuPFvbG4yrU5PBaWPBALcoDFlbbbJHGDU8fhxDYJpD8TsQnY8VH/8g==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", @@ -306,8 +264,6 @@ }, "node_modules/@aws-sdk/client-sagemaker": { "version": "3.686.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sagemaker/-/client-sagemaker-3.686.0.tgz", - "integrity": "sha512-o8GgmM26/x7JnsdYq4odUR016VtqbZxDMzsJtFZrZb/2BKItT0MDRO6wJkPIAjsctmIQ+Nz2yETyIpeMsHoj4g==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", @@ -361,8 +317,6 @@ }, "node_modules/@aws-sdk/client-sso": { "version": "3.686.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.686.0.tgz", - "integrity": "sha512-D8huL2BSHNP9QdQrqPcx4DCJXcG/vrPimNbymgCBgnYyS1HNs11Hu27ZPrbWCZFC8n/bvfXGXOhm8WAHOi4Vtw==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", @@ -410,8 +364,6 @@ }, "node_modules/@aws-sdk/client-sso-oidc": { "version": "3.686.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.686.0.tgz", - "integrity": "sha512-bV8yw1tpEj9WOVEnIJTcHPmTqikGccvh9RCg9ohc5DVKLajt/pUF4b+8dDyqNrEijUqlpDDwpSnh1GFhfe298A==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", @@ -463,8 +415,6 @@ }, "node_modules/@aws-sdk/client-sts": { "version": "3.686.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.686.0.tgz", - "integrity": "sha512-WVyOYdK3w7RhK6UrA2MY8KPIbcZ88BGIoKmRhcOXdIUC8CLL1UIECgdRthFXOU+MBqDPFS+VeF+COk0CpRhE8Q==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", @@ -514,8 +464,6 @@ }, "node_modules/@aws-sdk/core": { "version": "3.686.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.686.0.tgz", - "integrity": "sha512-Xt3DV4DnAT3v2WURwzTxWQK34Ew+iiLzoUoguvLaZrVMFOqMMrwVjP+sizqIaHp1j7rGmFcN5I8saXnsDLuQLA==", "license": "Apache-2.0", "dependencies": { "@aws-sdk/types": "3.686.0", @@ -536,8 +484,6 @@ }, "node_modules/@aws-sdk/credential-provider-cognito-identity": { "version": "3.686.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.686.0.tgz", - "integrity": "sha512-QDNX/VTThYKR26jbJ8HhsdxYYlncPjq7tMY9vL1DoByeOkUTZJnEEHweb7ViiPS7m+SBylCYbUZXC69Huc+15Q==", "license": "Apache-2.0", "dependencies": { "@aws-sdk/client-cognito-identity": "3.686.0", @@ -552,8 +498,6 @@ }, "node_modules/@aws-sdk/credential-provider-env": { "version": "3.686.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.686.0.tgz", - "integrity": "sha512-osD7lPO8OREkgxPiTWmA1i6XEmOth1uW9HWWj/+A2YGCj1G/t2sHu931w4Qj9NWHYZtbTTXQYVRg+TErALV7nQ==", "license": "Apache-2.0", "dependencies": { "@aws-sdk/core": "3.686.0", @@ -568,8 +512,6 @@ }, "node_modules/@aws-sdk/credential-provider-http": { "version": "3.686.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.686.0.tgz", - "integrity": "sha512-xyGAD/f3vR/wssUiZrNFWQWXZvI4zRm2wpHhoHA1cC2fbRMNFYtFn365yw6dU7l00ZLcdFB1H119AYIUZS7xbw==", "license": "Apache-2.0", "dependencies": { "@aws-sdk/core": "3.686.0", @@ -589,8 +531,6 @@ }, "node_modules/@aws-sdk/credential-provider-ini": { "version": "3.686.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.686.0.tgz", - "integrity": "sha512-90yr47QsduNiuVizMaJ2GctXZfp/z6s9eSk8ryMxMEJ2zJtaQHmJXIxaNnXj5Kh7V+HhCK7rYu58eyhZvz2Seg==", "license": "Apache-2.0", "dependencies": { "@aws-sdk/core": "3.686.0", @@ -615,8 +555,6 @@ }, "node_modules/@aws-sdk/credential-provider-node": { "version": "3.686.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.686.0.tgz", - "integrity": "sha512-d5etJJD5rE3ALxrZag80EuFYI+tmJrS4E4dvFNRCosVFKvIC89VVpVY0W+OaA0J+D4FD3OzBwxan31BQAW3IyA==", "license": "Apache-2.0", "dependencies": { "@aws-sdk/credential-provider-env": "3.686.0", @@ -638,8 +576,6 @@ }, "node_modules/@aws-sdk/credential-provider-process": { "version": "3.686.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.686.0.tgz", - "integrity": "sha512-sXqaAgyzMOc+dm4CnzAR5Q6S9OWVHyZjLfW6IQkmGjqeQXmZl24c4E82+w64C+CTkJrFLzH1VNOYp1Hy5gE6Qw==", "license": "Apache-2.0", "dependencies": { "@aws-sdk/core": "3.686.0", @@ -655,8 +591,6 @@ }, "node_modules/@aws-sdk/credential-provider-sso": { "version": "3.686.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.686.0.tgz", - "integrity": "sha512-bGDFRcqpGUe2YBL5gmRZTLcxGwbtFd916JsdqmNgJwhhlOXPF6nqjGil5ZYruS3AMPy0BMntnG0Mvn/ZbusT/A==", "license": "Apache-2.0", "dependencies": { "@aws-sdk/client-sso": "3.686.0", @@ -674,8 +608,6 @@ }, "node_modules/@aws-sdk/credential-provider-web-identity": { "version": "3.686.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.686.0.tgz", - "integrity": "sha512-40UqCpPxyHCXDP7CGd9JIOZDgDZf+u1OyLaGBpjQJlz1HYuEsIWnnbTe29Yg3Ah/Zc3g4NBWcUdlGVotlnpnDg==", "license": "Apache-2.0", "dependencies": { "@aws-sdk/core": "3.686.0", @@ -693,8 +625,6 @@ }, "node_modules/@aws-sdk/credential-providers": { "version": "3.686.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-providers/-/credential-providers-3.686.0.tgz", - "integrity": "sha512-Bb5SfOS9x9jW9tQwwA8IzJntVdVQX6GGNUkB4ELcVYPHDRZoyZL391BtxiCM2tucvNXpwnRrO8ifLLtShFuRLQ==", "license": "Apache-2.0", "dependencies": { "@aws-sdk/client-cognito-identity": "3.686.0", @@ -721,8 +651,6 @@ }, "node_modules/@aws-sdk/middleware-host-header": { "version": "3.686.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.686.0.tgz", - "integrity": "sha512-+Yc6rO02z+yhFbHmRZGvEw1vmzf/ifS9a4aBjJGeVVU+ZxaUvnk+IUZWrj4YQopUQ+bSujmMUzJLXSkbDq7yuw==", "license": "Apache-2.0", "dependencies": { "@aws-sdk/types": "3.686.0", @@ -736,8 +664,6 @@ }, "node_modules/@aws-sdk/middleware-logger": { "version": "3.686.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.686.0.tgz", - "integrity": "sha512-cX43ODfA2+SPdX7VRxu6gXk4t4bdVJ9pkktbfnkE5t27OlwNfvSGGhnHrQL8xTOFeyQ+3T+oowf26gf1OI+vIg==", "license": "Apache-2.0", "dependencies": { "@aws-sdk/types": "3.686.0", @@ -750,8 +676,6 @@ }, "node_modules/@aws-sdk/middleware-recursion-detection": { "version": "3.686.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.686.0.tgz", - "integrity": "sha512-jF9hQ162xLgp9zZ/3w5RUNhmwVnXDBlABEUX8jCgzaFpaa742qR/KKtjjZQ6jMbQnP+8fOCSXFAVNMU+s6v81w==", "license": "Apache-2.0", "dependencies": { "@aws-sdk/types": "3.686.0", @@ -765,8 +689,6 @@ }, "node_modules/@aws-sdk/middleware-user-agent": { "version": "3.686.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.686.0.tgz", - "integrity": "sha512-/GRU68H5J66OD2a/RtX5s2ECtXTlMq6NneLlzcx0mIWnZ2VRMS2vFW2j2jrBEPJ5Y5us1/lK/fbun6gNo3qh7Q==", "license": "Apache-2.0", "dependencies": { "@aws-sdk/core": "3.686.0", @@ -783,9 +705,6 @@ }, "node_modules/@aws-sdk/protocol-http": { "version": "3.374.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/protocol-http/-/protocol-http-3.374.0.tgz", - "integrity": "sha512-9WpRUbINdGroV3HiZZIBoJvL2ndoWk39OfwxWs2otxByppJZNN14bg/lvCx5e8ggHUti7IBk5rb0nqQZ4m05pg==", - "deprecated": "This package has moved to @smithy/protocol-http", "license": "Apache-2.0", "dependencies": { "@smithy/protocol-http": "^1.1.0", @@ -797,8 +716,6 @@ }, "node_modules/@aws-sdk/protocol-http/node_modules/@smithy/protocol-http": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-1.2.0.tgz", - "integrity": "sha512-GfGfruksi3nXdFok5RhgtOnWe5f6BndzYfmEXISD+5gAGdayFGpjWu5pIqIweTudMtse20bGbc+7MFZXT1Tb8Q==", "license": "Apache-2.0", "dependencies": { "@smithy/types": "^1.2.0", @@ -810,8 +727,6 @@ }, "node_modules/@aws-sdk/protocol-http/node_modules/@smithy/types": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@smithy/types/-/types-1.2.0.tgz", - "integrity": "sha512-z1r00TvBqF3dh4aHhya7nz1HhvCg4TRmw51fjMrh5do3h+ngSstt/yKlNbHeb9QxJmFbmN8KEVSWgb1bRvfEoA==", "license": "Apache-2.0", "dependencies": { "tslib": "^2.5.0" @@ -822,8 +737,6 @@ }, "node_modules/@aws-sdk/region-config-resolver": { "version": "3.686.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.686.0.tgz", - "integrity": "sha512-6zXD3bSD8tcsMAVVwO1gO7rI1uy2fCD3czgawuPGPopeLiPpo6/3FoUWCQzk2nvEhj7p9Z4BbjwZGSlRkVrXTw==", "license": "Apache-2.0", "dependencies": { "@aws-sdk/types": "3.686.0", @@ -839,9 +752,6 @@ }, "node_modules/@aws-sdk/signature-v4": { "version": "3.374.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.374.0.tgz", - "integrity": "sha512-2xLJvSdzcZZAg0lsDLUAuSQuihzK0dcxIK7WmfuJeF7DGKJFmp9czQmz5f3qiDz6IDQzvgK1M9vtJSVCslJbyQ==", - "deprecated": "This package has moved to @smithy/signature-v4", "license": "Apache-2.0", "dependencies": { "@smithy/signature-v4": "^1.0.1", @@ -853,8 +763,6 @@ }, "node_modules/@aws-sdk/signature-v4/node_modules/@smithy/is-array-buffer": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-1.1.0.tgz", - "integrity": "sha512-twpQ/n+3OWZJ7Z+xu43MJErmhB/WO/mMTnqR6PwWQShvSJ/emx5d1N59LQZk6ZpTAeuRWrc+eHhkzTp9NFjNRQ==", "license": "Apache-2.0", "dependencies": { "tslib": "^2.5.0" @@ -865,8 +773,6 @@ }, "node_modules/@aws-sdk/signature-v4/node_modules/@smithy/signature-v4": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-1.1.0.tgz", - "integrity": "sha512-fDo3m7YqXBs7neciOePPd/X9LPm5QLlDMdIC4m1H6dgNLnXfLMFNIxEfPyohGA8VW9Wn4X8lygnPSGxDZSmp0Q==", "license": "Apache-2.0", "dependencies": { "@smithy/eventstream-codec": "^1.1.0", @@ -884,8 +790,6 @@ }, "node_modules/@aws-sdk/signature-v4/node_modules/@smithy/types": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@smithy/types/-/types-1.2.0.tgz", - "integrity": "sha512-z1r00TvBqF3dh4aHhya7nz1HhvCg4TRmw51fjMrh5do3h+ngSstt/yKlNbHeb9QxJmFbmN8KEVSWgb1bRvfEoA==", "license": "Apache-2.0", "dependencies": { "tslib": "^2.5.0" @@ -896,8 +800,6 @@ }, "node_modules/@aws-sdk/signature-v4/node_modules/@smithy/util-buffer-from": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-1.1.0.tgz", - "integrity": "sha512-9m6NXE0ww+ra5HKHCHig20T+FAwxBAm7DIdwc/767uGWbRcY720ybgPacQNB96JMOI7xVr/CDa3oMzKmW4a+kw==", "license": "Apache-2.0", "dependencies": { "@smithy/is-array-buffer": "^1.1.0", @@ -909,8 +811,6 @@ }, "node_modules/@aws-sdk/signature-v4/node_modules/@smithy/util-hex-encoding": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@smithy/util-hex-encoding/-/util-hex-encoding-1.1.0.tgz", - "integrity": "sha512-7UtIE9eH0u41zpB60Jzr0oNCQ3hMJUabMcKRUVjmyHTXiWDE4vjSqN6qlih7rCNeKGbioS7f/y2Jgym4QZcKFg==", "license": "Apache-2.0", "dependencies": { "tslib": "^2.5.0" @@ -921,8 +821,6 @@ }, "node_modules/@aws-sdk/signature-v4/node_modules/@smithy/util-middleware": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-1.1.0.tgz", - "integrity": "sha512-6hhckcBqVgjWAqLy2vqlPZ3rfxLDhFWEmM7oLh2POGvsi7j0tHkbN7w4DFhuBExVJAbJ/qqxqZdRY6Fu7/OezQ==", "license": "Apache-2.0", "dependencies": { "tslib": "^2.5.0" @@ -933,8 +831,6 @@ }, "node_modules/@aws-sdk/signature-v4/node_modules/@smithy/util-uri-escape": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@smithy/util-uri-escape/-/util-uri-escape-1.1.0.tgz", - "integrity": "sha512-/jL/V1xdVRt5XppwiaEU8Etp5WHZj609n0xMTuehmCqdoOFbId1M+aEeDWZsQ+8JbEB/BJ6ynY2SlYmOaKtt8w==", "license": "Apache-2.0", "dependencies": { "tslib": "^2.5.0" @@ -945,8 +841,6 @@ }, "node_modules/@aws-sdk/signature-v4/node_modules/@smithy/util-utf8": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-1.1.0.tgz", - "integrity": "sha512-p/MYV+JmqmPyjdgyN2UxAeYDj9cBqCjp0C/NsTWnnjoZUVqoeZ6IrW915L9CAKWVECgv9lVQGc4u/yz26/bI1A==", "license": "Apache-2.0", "dependencies": { "@smithy/util-buffer-from": "^1.1.0", @@ -958,8 +852,6 @@ }, "node_modules/@aws-sdk/token-providers": { "version": "3.686.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.686.0.tgz", - "integrity": "sha512-9oL4kTCSePFmyKPskibeiOXV6qavPZ63/kXM9Wh9V6dTSvBtLeNnMxqGvENGKJcTdIgtoqyqA6ET9u0PJ5IRIg==", "license": "Apache-2.0", "dependencies": { "@aws-sdk/types": "3.686.0", @@ -977,8 +869,6 @@ }, "node_modules/@aws-sdk/types": { "version": "3.686.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.686.0.tgz", - "integrity": "sha512-xFnrb3wxOoJcW2Xrh63ZgFo5buIu9DF7bOHnwoUxHdNpUXicUh0AHw85TjXxyxIAd0d1psY/DU7QHoNI3OswgQ==", "license": "Apache-2.0", "dependencies": { "@smithy/types": "^3.6.0", @@ -990,8 +880,6 @@ }, "node_modules/@aws-sdk/util-endpoints": { "version": "3.686.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.686.0.tgz", - "integrity": "sha512-7msZE2oYl+6QYeeRBjlDgxQUhq/XRky3cXE0FqLFs2muLS7XSuQEXkpOXB3R782ygAP6JX0kmBxPTLurRTikZg==", "license": "Apache-2.0", "dependencies": { "@aws-sdk/types": "3.686.0", @@ -1005,8 +893,6 @@ }, "node_modules/@aws-sdk/util-locate-window": { "version": "3.679.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.679.0.tgz", - "integrity": "sha512-zKTd48/ZWrCplkXpYDABI74rQlbR0DNHs8nH95htfSLj9/mWRSwaGptoxwcihaq/77vi/fl2X3y0a1Bo8bt7RA==", "license": "Apache-2.0", "dependencies": { "tslib": "^2.6.2" @@ -1017,8 +903,6 @@ }, "node_modules/@aws-sdk/util-user-agent-browser": { "version": "3.686.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.686.0.tgz", - "integrity": "sha512-YiQXeGYZegF1b7B2GOR61orhgv79qmI0z7+Agm3NXLO6hGfVV3kFUJbXnjtH1BgWo5hbZYW7HQ2omGb3dnb6Lg==", "license": "Apache-2.0", "dependencies": { "@aws-sdk/types": "3.686.0", @@ -1029,8 +913,6 @@ }, "node_modules/@aws-sdk/util-user-agent-node": { "version": "3.686.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.686.0.tgz", - "integrity": "sha512-XXUhZPeacJt5BmWc0qNXA4/yyQGXPmFcTOFe5aqXuZbhtTCNVJ0fPQHFip37iGSHCg8eAFykiBn9W8hD4swolQ==", "license": "Apache-2.0", "dependencies": { "@aws-sdk/middleware-user-agent": "3.686.0", @@ -1053,649 +935,258 @@ }, "node_modules/@aws-sdk/util-utf8-browser": { "version": "3.259.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.259.0.tgz", - "integrity": "sha512-UvFa/vR+e19XookZF8RzFZBrw2EUkQWxiBW0yYQAhvk3C+QVGl0H3ouca8LDBlBfQKXwmW3huo/59H8rwb1wJw==", "license": "Apache-2.0", "dependencies": { "tslib": "^2.3.1" } }, - "node_modules/@esbuild/aix-ppc64": { + "node_modules/@esbuild/darwin-arm64": { "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.23.1.tgz", - "integrity": "sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==", "cpu": [ - "ppc64" + "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ - "aix" + "darwin" ], "engines": { "node": ">=18" } }, - "node_modules/@esbuild/android-arm": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.23.1.tgz", - "integrity": "sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==", - "cpu": [ - "arm" - ], + "node_modules/@eshaz/web-worker": { + "version": "1.2.2", + "license": "Apache-2.0" + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", "dev": true, - "optional": true, - "os": [ - "android" - ], + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, "engines": { - "node": ">=18" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, - "node_modules/@esbuild/android-arm64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.23.1.tgz", - "integrity": "sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==", - "cpu": [ - "arm64" - ], + "node_modules/@eslint-community/regexpp": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", "dev": true, - "optional": true, - "os": [ - "android" - ], + "license": "MIT", "engines": { - "node": ">=18" + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, - "node_modules/@esbuild/android-x64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.23.1.tgz", - "integrity": "sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==", - "cpu": [ - "x64" - ], + "node_modules/@eslint/config-array": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.1.tgz", + "integrity": "sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA==", "dev": true, - "optional": true, - "os": [ - "android" - ], + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.5", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, "engines": { - "node": ">=18" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.23.1.tgz", - "integrity": "sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==", - "cpu": [ - "arm64" - ], + "node_modules/@eslint/core": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.9.1.tgz", + "integrity": "sha512-GuUdqkyyzQI5RMIWkHhvTWLCyLo1jNK3vzkSyaExH5kHPDHcuL2VOpHjmMY+y3+NC69qAKToBqldTBgYeLSr9Q==", "dev": true, - "optional": true, - "os": [ - "darwin" - ], + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, "engines": { - "node": ">=18" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.23.1.tgz", - "integrity": "sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==", - "cpu": [ - "x64" - ], + "node_modules/@eslint/eslintrc": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.2.0.tgz", + "integrity": "sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==", "dev": true, - "optional": true, - "os": [ - "darwin" - ], + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, "engines": { - "node": ">=18" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.1.tgz", - "integrity": "sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==", - "cpu": [ - "arm64" - ], + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", "dev": true, - "optional": true, - "os": [ - "freebsd" - ], + "license": "MIT", "engines": { "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.23.1.tgz", - "integrity": "sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==", - "cpu": [ - "x64" - ], + "node_modules/@eslint/js": { + "version": "9.16.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.16.0.tgz", + "integrity": "sha512-tw2HxzQkrbeuvyj1tG2Yqq+0H9wGoI2IMk4EOsQeX+vmd75FtJAzf+gTA69WF+baUKRYQ3x2kbLE08js5OsTVg==", "dev": true, - "optional": true, - "os": [ - "freebsd" - ], + "license": "MIT", "engines": { - "node": ">=18" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@esbuild/linux-arm": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.23.1.tgz", - "integrity": "sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==", - "cpu": [ - "arm" - ], + "node_modules/@eslint/object-schema": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.5.tgz", + "integrity": "sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ==", "dev": true, - "optional": true, - "os": [ - "linux" - ], + "license": "Apache-2.0", "engines": { - "node": ">=18" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.23.1.tgz", - "integrity": "sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==", - "cpu": [ - "arm64" - ], + "node_modules/@eslint/plugin-kit": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.4.tgz", + "integrity": "sha512-zSkKow6H5Kdm0ZUQUB2kV5JIXqoG0+uH5YADhaEHswm664N9Db8dXSi0nMJpacpMf+MyyglF1vnZohpEg5yUtg==", "dev": true, - "optional": true, - "os": [ - "linux" - ], + "license": "Apache-2.0", + "dependencies": { + "levn": "^0.4.1" + }, "engines": { - "node": ">=18" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.23.1.tgz", - "integrity": "sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], + "node_modules/@firefliesai/llm-sdk": { + "resolved": "javascript", + "link": true + }, + "node_modules/@google/generative-ai": { + "version": "0.21.0", + "license": "Apache-2.0", "engines": { - "node": ">=18" + "node": ">=18.0.0" } }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.23.1.tgz", - "integrity": "sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==", - "cpu": [ - "loong64" - ], + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", "dev": true, - "optional": true, - "os": [ - "linux" - ], + "license": "Apache-2.0", "engines": { - "node": ">=18" + "node": ">=18.18.0" } }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.23.1.tgz", - "integrity": "sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==", - "cpu": [ - "mips64el" - ], + "node_modules/@humanfs/node": { + "version": "0.16.6", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", + "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", "dev": true, - "optional": true, - "os": [ - "linux" - ], + "license": "Apache-2.0", + "dependencies": { + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.3.0" + }, "engines": { - "node": ">=18" + "node": ">=18.18.0" } }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.23.1.tgz", - "integrity": "sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==", - "cpu": [ - "ppc64" - ], + "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", + "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", "dev": true, - "optional": true, - "os": [ - "linux" - ], + "license": "Apache-2.0", "engines": { - "node": ">=18" + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.23.1.tgz", - "integrity": "sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==", - "cpu": [ - "riscv64" - ], + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", "dev": true, - "optional": true, - "os": [ - "linux" - ], + "license": "Apache-2.0", "engines": { - "node": ">=18" + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.23.1.tgz", - "integrity": "sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==", - "cpu": [ - "s390x" - ], + "node_modules/@humanwhocodes/retry": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.1.tgz", + "integrity": "sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==", "dev": true, - "optional": true, - "os": [ - "linux" - ], + "license": "Apache-2.0", "engines": { - "node": ">=18" + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@esbuild/linux-x64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.23.1.tgz", - "integrity": "sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==", - "cpu": [ - "x64" - ], + "node_modules/@isaacs/cliui": { + "version": "8.0.2", "dev": true, - "optional": true, - "os": [ - "linux" - ], + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, "engines": { - "node": ">=18" + "node": ">=12" } }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.23.1.tgz", - "integrity": "sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==", - "cpu": [ - "x64" - ], + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", "dev": true, - "optional": true, - "os": [ - "netbsd" - ], + "license": "MIT", "engines": { - "node": ">=18" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/@esbuild/openbsd-arm64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.23.1.tgz", - "integrity": "sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.23.1.tgz", - "integrity": "sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.23.1.tgz", - "integrity": "sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.23.1.tgz", - "integrity": "sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.23.1.tgz", - "integrity": "sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.23.1.tgz", - "integrity": "sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@eshaz/web-worker": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@eshaz/web-worker/-/web-worker-1.2.2.tgz", - "integrity": "sha512-WxXiHFmD9u/owrzempiDlBB1ZYqiLnm9s6aPc8AlFQalq2tKmqdmMr9GXOupDgzXtqnBipj8Un0gkIm7Sjf8mw==" - }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", - "dev": true, - "license": "MIT", - "dependencies": { - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" - } - }, - "node_modules/@eslint-community/regexpp": { - "version": "4.11.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.1.tgz", - "integrity": "sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==", - "dev": true, - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@eslint/js": { - "version": "9.14.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.14.0.tgz", - "integrity": "sha512-pFoEtFWCPyDOl+C6Ift+wC7Ro89otjigCf5vcuWqWgqNSQbRrpjSvdeE6ofLz4dHmyxD5f7gIdGT4+p36L6Twg==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@firefliesai/llm-sdk": { - "resolved": "javascript", - "link": true - }, - "node_modules/@google/generative-ai": { - "version": "0.21.0", - "resolved": "https://registry.npmjs.org/@google/generative-ai/-/generative-ai-0.21.0.tgz", - "integrity": "sha512-7XhUbtnlkSEZK15kN3t+tzIMxsbKm/dSkKBFalj+20NvPKe1kBY7mR2P7vuijEn+f06z5+A8bVGKO0v39cr6Wg==", - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@hey-api/openapi-ts": { - "version": "0.55.0", - "resolved": "https://registry.npmjs.org/@hey-api/openapi-ts/-/openapi-ts-0.55.0.tgz", - "integrity": "sha512-GpOdpSbtYOfF5+G7P2CFUlVFl9hYMynKoM3Yw48EeCP1vuI85TBbjnMja1GkX5Ek4kLjvDmwP2dGHq+kL5b4LQ==", - "dev": true, - "license": "FSL-1.1-MIT", - "dependencies": { - "@apidevtools/json-schema-ref-parser": "11.7.2", - "c12": "2.0.1", - "commander": "12.1.0", - "handlebars": "4.7.8" - }, - "bin": { - "openapi-ts": "bin/index.cjs" - }, - "engines": { - "node": "^18.0.0 || >=20.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/mrlubos" - }, - "peerDependencies": { - "typescript": "^5.x" - } - }, - "node_modules/@hey-api/openapi-ts/node_modules/commander": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", - "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", - "dev": true, - "engines": { - "node": ">=18" - } - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", - "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", - "deprecated": "Use @eslint/config-array instead", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@humanwhocodes/object-schema": "^2.0.3", - "debug": "^4.3.1", - "minimatch": "^3.0.5" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", - "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", - "deprecated": "Use @eslint/object-schema instead", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/@ibm-cloud/openapi-ruleset": { - "version": "1.23.2", - "resolved": "https://registry.npmjs.org/@ibm-cloud/openapi-ruleset/-/openapi-ruleset-1.23.2.tgz", - "integrity": "sha512-yNdrVw9OZ8AHb1FR+o4k1ST5c+kXOKOMKYkRi1nFBtOlOuAZU+FMym9tnFa3lOS9+ePipul5DBJj3Hhd70vFpw==", - "dev": true, - "dependencies": { - "@ibm-cloud/openapi-ruleset-utilities": "1.4.0", - "@stoplight/spectral-formats": "^1.7.0", - "@stoplight/spectral-functions": "^1.9.0", - "@stoplight/spectral-rulesets": "^1.20.2", - "chalk": "^4.1.2", - "lodash": "^4.17.21", - "loglevel": "^1.9.2", - "loglevel-plugin-prefix": "0.8.4", - "minimatch": "^6.2.0", - "validator": "^13.11.0" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/@ibm-cloud/openapi-ruleset-utilities": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@ibm-cloud/openapi-ruleset-utilities/-/openapi-ruleset-utilities-1.4.0.tgz", - "integrity": "sha512-m033WjdlX3k5aSpK2iNX61hS4INEJXUpAxr1l1wBamRQklZpXE2EZKcDQ5AuqVMyz4VV9e46RTp6MAcwXh0gbA==", - "dev": true, - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/@ibm-cloud/openapi-ruleset/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@ibm-cloud/openapi-ruleset/node_modules/minimatch": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-6.2.0.tgz", - "integrity": "sha512-sauLxniAmvnhhRjFwPNnJKaPFYyddAgbYdeUpHULtCT/GhzdCx/MDNy+Y40lBxTQUrMzDE8e0S43Z5uqfO0REg==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "dev": true, - "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -1705,15 +1196,13 @@ }, "node_modules/@isaacs/cliui/node_modules/emoji-regex": { "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@isaacs/cliui/node_modules/string-width": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, + "license": "MIT", "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", @@ -1728,9 +1217,8 @@ }, "node_modules/@isaacs/cliui/node_modules/strip-ansi": { "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -1743,9 +1231,8 @@ }, "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", @@ -1760,47 +1247,21 @@ }, "node_modules/@jsdevtools/ono": { "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz", - "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==", "dev": true, "license": "MIT" }, - "node_modules/@jsep-plugin/regex": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@jsep-plugin/regex/-/regex-1.0.3.tgz", - "integrity": "sha512-XfZgry4DwEZvSFtS/6Y+R48D7qJYJK6R9/yJFyUFHCIUMEEHuJ4X95TDgJp5QkmzfLYvapMPzskV5HpIDrREug==", - "dev": true, - "engines": { - "node": ">= 10.16.0" - }, - "peerDependencies": { - "jsep": "^0.4.0||^1.0.0" - } - }, - "node_modules/@jsep-plugin/ternary": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@jsep-plugin/ternary/-/ternary-1.1.3.tgz", - "integrity": "sha512-qtLGzCNzPVJ3kdH6/zoLWDPjauHIKiLSBAR71Wa0+PWvGA8wODUQvRgxtpUA5YqAYL3CQ8S4qXhd/9WuWTZirg==", - "dev": true, - "engines": { - "node": ">= 10.16.0" - }, - "peerDependencies": { - "jsep": "^0.4.0||^1.0.0" - } - }, "node_modules/@mistralai/mistralai": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@mistralai/mistralai/-/mistralai-1.3.0.tgz", - "integrity": "sha512-G5DPCSC8sEhG3LUEZDYLD7qEZWDuZXgaX3IcoC3a/ydm9jFuh2pRZtknsgMx2sU8d7kxRuxblY3fPH5C38wnhQ==", + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@mistralai/mistralai/-/mistralai-1.3.5.tgz", + "integrity": "sha512-yC91oJ5ScEPqbXmv3mJTwTFgu/ZtsYoOPOhaVXSsy6x4zXTqTI57yEC1flC9uiA8GpG/yhpn2BBUXF95+U9Blw==", "peerDependencies": { + "react": "^18 || ^19", + "react-dom": "^18 || ^19", "zod": ">= 3" } }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, "license": "MIT", "dependencies": { @@ -1813,8 +1274,6 @@ }, "node_modules/@nodelib/fs.stat": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, "license": "MIT", "engines": { @@ -1823,8 +1282,6 @@ }, "node_modules/@nodelib/fs.walk": { "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, "license": "MIT", "dependencies": { @@ -1837,9 +1294,8 @@ }, "node_modules/@pkgjs/parseargs": { "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", "dev": true, + "license": "MIT", "optional": true, "engines": { "node": ">=14" @@ -1847,8 +1303,6 @@ }, "node_modules/@pkgr/core": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz", - "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==", "dev": true, "license": "MIT", "engines": { @@ -1858,60 +1312,8 @@ "url": "https://opencollective.com/unts" } }, - "node_modules/@rollup/plugin-commonjs": { - "version": "22.0.2", - "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-22.0.2.tgz", - "integrity": "sha512-//NdP6iIwPbMTcazYsiBMbJW7gfmpHom33u1beiIoHDEM0Q9clvtQB1T0efvMqHeKsGohiHo97BCPCkBXdscwg==", - "dev": true, - "dependencies": { - "@rollup/pluginutils": "^3.1.0", - "commondir": "^1.0.1", - "estree-walker": "^2.0.1", - "glob": "^7.1.6", - "is-reference": "^1.2.1", - "magic-string": "^0.25.7", - "resolve": "^1.17.0" - }, - "engines": { - "node": ">= 12.0.0" - }, - "peerDependencies": { - "rollup": "^2.68.0" - } - }, - "node_modules/@rollup/pluginutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", - "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", - "dev": true, - "dependencies": { - "@types/estree": "0.0.39", - "estree-walker": "^1.0.1", - "picomatch": "^2.2.2" - }, - "engines": { - "node": ">= 8.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0" - } - }, - "node_modules/@rollup/pluginutils/node_modules/@types/estree": { - "version": "0.0.39", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", - "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", - "dev": true - }, - "node_modules/@rollup/pluginutils/node_modules/estree-walker": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", - "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", - "dev": true - }, "node_modules/@smithy/abort-controller": { "version": "3.1.6", - "resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-3.1.6.tgz", - "integrity": "sha512-0XuhuHQlEqbNQZp7QxxrFTdVWdwxch4vjxYgfInF91hZFkPxf9QDrdQka0KfxFMPqLNzSw0b95uGTrLliQUavQ==", "license": "Apache-2.0", "dependencies": { "@smithy/types": "^3.6.0", @@ -1923,8 +1325,6 @@ }, "node_modules/@smithy/config-resolver": { "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-3.0.10.tgz", - "integrity": "sha512-Uh0Sz9gdUuz538nvkPiyv1DZRX9+D15EKDtnQP5rYVAzM/dnYk3P8cg73jcxyOitPgT3mE3OVj7ky7sibzHWkw==", "license": "Apache-2.0", "dependencies": { "@smithy/node-config-provider": "^3.1.9", @@ -1939,8 +1339,6 @@ }, "node_modules/@smithy/core": { "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@smithy/core/-/core-2.5.1.tgz", - "integrity": "sha512-DujtuDA7BGEKExJ05W5OdxCoyekcKT3Rhg1ZGeiUWaz2BJIWXjZmsG/DIP4W48GHno7AQwRsaCb8NcBgH3QZpg==", "license": "Apache-2.0", "dependencies": { "@smithy/middleware-serde": "^3.0.8", @@ -1958,8 +1356,6 @@ }, "node_modules/@smithy/credential-provider-imds": { "version": "3.2.5", - "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-3.2.5.tgz", - "integrity": "sha512-4FTQGAsuwqTzVMmiRVTn0RR9GrbRfkP0wfu/tXWVHd2LgNpTY0uglQpIScXK4NaEyXbB3JmZt8gfVqO50lP8wg==", "license": "Apache-2.0", "dependencies": { "@smithy/node-config-provider": "^3.1.9", @@ -1974,8 +1370,6 @@ }, "node_modules/@smithy/eventstream-codec": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-codec/-/eventstream-codec-1.1.0.tgz", - "integrity": "sha512-3tEbUb8t8an226jKB6V/Q2XU/J53lCwCzULuBPEaF4JjSh+FlCMp7TmogE/Aij5J9DwlsZ4VAD/IRDuQ/0ZtMw==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/crc32": "3.0.0", @@ -1986,8 +1380,6 @@ }, "node_modules/@smithy/eventstream-codec/node_modules/@smithy/types": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@smithy/types/-/types-1.2.0.tgz", - "integrity": "sha512-z1r00TvBqF3dh4aHhya7nz1HhvCg4TRmw51fjMrh5do3h+ngSstt/yKlNbHeb9QxJmFbmN8KEVSWgb1bRvfEoA==", "license": "Apache-2.0", "dependencies": { "tslib": "^2.5.0" @@ -1998,8 +1390,6 @@ }, "node_modules/@smithy/eventstream-codec/node_modules/@smithy/util-hex-encoding": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@smithy/util-hex-encoding/-/util-hex-encoding-1.1.0.tgz", - "integrity": "sha512-7UtIE9eH0u41zpB60Jzr0oNCQ3hMJUabMcKRUVjmyHTXiWDE4vjSqN6qlih7rCNeKGbioS7f/y2Jgym4QZcKFg==", "license": "Apache-2.0", "dependencies": { "tslib": "^2.5.0" @@ -2010,8 +1400,6 @@ }, "node_modules/@smithy/fetch-http-handler": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-4.0.0.tgz", - "integrity": "sha512-MLb1f5tbBO2X6K4lMEKJvxeLooyg7guq48C2zKr4qM7F2Gpkz4dc+hdSgu77pCJ76jVqFBjZczHYAs6dp15N+g==", "license": "Apache-2.0", "dependencies": { "@smithy/protocol-http": "^4.1.5", @@ -2023,8 +1411,6 @@ }, "node_modules/@smithy/hash-node": { "version": "3.0.8", - "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-3.0.8.tgz", - "integrity": "sha512-tlNQYbfpWXHimHqrvgo14DrMAgUBua/cNoz9fMYcDmYej7MAmUcjav/QKQbFc3NrcPxeJ7QClER4tWZmfwoPng==", "license": "Apache-2.0", "dependencies": { "@smithy/types": "^3.6.0", @@ -2038,8 +1424,6 @@ }, "node_modules/@smithy/invalid-dependency": { "version": "3.0.8", - "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-3.0.8.tgz", - "integrity": "sha512-7Qynk6NWtTQhnGTTZwks++nJhQ1O54Mzi7fz4PqZOiYXb4Z1Flpb2yRvdALoggTS8xjtohWUM+RygOtB30YL3Q==", "license": "Apache-2.0", "dependencies": { "@smithy/types": "^3.6.0", @@ -2048,8 +1432,6 @@ }, "node_modules/@smithy/is-array-buffer": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-3.0.0.tgz", - "integrity": "sha512-+Fsu6Q6C4RSJiy81Y8eApjEB5gVtM+oFKTffg+jSuwtvomJJrhUJBu2zS8wjXSgH/g1MKEWrzyChTBe6clb5FQ==", "license": "Apache-2.0", "dependencies": { "tslib": "^2.6.2" @@ -2060,8 +1442,6 @@ }, "node_modules/@smithy/middleware-content-length": { "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-3.0.10.tgz", - "integrity": "sha512-T4dIdCs1d/+/qMpwhJ1DzOhxCZjZHbHazEPJWdB4GDi2HjIZllVzeBEcdJUN0fomV8DURsgOyrbEUzg3vzTaOg==", "license": "Apache-2.0", "dependencies": { "@smithy/protocol-http": "^4.1.5", @@ -2074,8 +1454,6 @@ }, "node_modules/@smithy/middleware-endpoint": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-3.2.1.tgz", - "integrity": "sha512-wWO3xYmFm6WRW8VsEJ5oU6h7aosFXfszlz3Dj176pTij6o21oZnzkCLzShfmRaaCHDkBXWBdO0c4sQAvLFP6zA==", "license": "Apache-2.0", "dependencies": { "@smithy/core": "^2.5.1", @@ -2093,8 +1471,6 @@ }, "node_modules/@smithy/middleware-retry": { "version": "3.0.25", - "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-3.0.25.tgz", - "integrity": "sha512-m1F70cPaMBML4HiTgCw5I+jFNtjgz5z5UdGnUbG37vw6kh4UvizFYjqJGHvicfgKMkDL6mXwyPp5mhZg02g5sg==", "license": "Apache-2.0", "dependencies": { "@smithy/node-config-provider": "^3.1.9", @@ -2113,8 +1489,6 @@ }, "node_modules/@smithy/middleware-serde": { "version": "3.0.8", - "resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-3.0.8.tgz", - "integrity": "sha512-Xg2jK9Wc/1g/MBMP/EUn2DLspN8LNt+GMe7cgF+Ty3vl+Zvu+VeZU5nmhveU+H8pxyTsjrAkci8NqY6OuvZnjA==", "license": "Apache-2.0", "dependencies": { "@smithy/types": "^3.6.0", @@ -2126,8 +1500,6 @@ }, "node_modules/@smithy/middleware-stack": { "version": "3.0.8", - "resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-3.0.8.tgz", - "integrity": "sha512-d7ZuwvYgp1+3682Nx0MD3D/HtkmZd49N3JUndYWQXfRZrYEnCWYc8BHcNmVsPAp9gKvlurdg/mubE6b/rPS9MA==", "license": "Apache-2.0", "dependencies": { "@smithy/types": "^3.6.0", @@ -2139,8 +1511,6 @@ }, "node_modules/@smithy/node-config-provider": { "version": "3.1.9", - "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.9.tgz", - "integrity": "sha512-qRHoah49QJ71eemjuS/WhUXB+mpNtwHRWQr77J/m40ewBVVwvo52kYAmb7iuaECgGTTcYxHS4Wmewfwy++ueew==", "license": "Apache-2.0", "dependencies": { "@smithy/property-provider": "^3.1.8", @@ -2154,8 +1524,6 @@ }, "node_modules/@smithy/node-http-handler": { "version": "3.2.5", - "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-3.2.5.tgz", - "integrity": "sha512-PkOwPNeKdvX/jCpn0A8n9/TyoxjGZB8WVoJmm9YzsnAgggTj4CrjpRHlTQw7dlLZ320n1mY1y+nTRUDViKi/3w==", "license": "Apache-2.0", "dependencies": { "@smithy/abort-controller": "^3.1.6", @@ -2170,8 +1538,6 @@ }, "node_modules/@smithy/property-provider": { "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-3.1.8.tgz", - "integrity": "sha512-ukNUyo6rHmusG64lmkjFeXemwYuKge1BJ8CtpVKmrxQxc6rhUX0vebcptFA9MmrGsnLhwnnqeH83VTU9hwOpjA==", "license": "Apache-2.0", "dependencies": { "@smithy/types": "^3.6.0", @@ -2183,8 +1549,6 @@ }, "node_modules/@smithy/protocol-http": { "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-4.1.5.tgz", - "integrity": "sha512-hsjtwpIemmCkm3ZV5fd/T0bPIugW1gJXwZ/hpuVubt2hEUApIoUTrf6qIdh9MAWlw0vjMrA1ztJLAwtNaZogvg==", "license": "Apache-2.0", "dependencies": { "@smithy/types": "^3.6.0", @@ -2196,8 +1560,6 @@ }, "node_modules/@smithy/querystring-builder": { "version": "3.0.8", - "resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-3.0.8.tgz", - "integrity": "sha512-btYxGVqFUARbUrN6VhL9c3dnSviIwBYD9Rz1jHuN1hgh28Fpv2xjU1HeCeDJX68xctz7r4l1PBnFhGg1WBBPuA==", "license": "Apache-2.0", "dependencies": { "@smithy/types": "^3.6.0", @@ -2210,8 +1572,6 @@ }, "node_modules/@smithy/querystring-parser": { "version": "3.0.8", - "resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-3.0.8.tgz", - "integrity": "sha512-BtEk3FG7Ks64GAbt+JnKqwuobJNX8VmFLBsKIwWr1D60T426fGrV2L3YS5siOcUhhp6/Y6yhBw1PSPxA5p7qGg==", "license": "Apache-2.0", "dependencies": { "@smithy/types": "^3.6.0", @@ -2223,8 +1583,6 @@ }, "node_modules/@smithy/service-error-classification": { "version": "3.0.8", - "resolved": "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-3.0.8.tgz", - "integrity": "sha512-uEC/kCCFto83bz5ZzapcrgGqHOh/0r69sZ2ZuHlgoD5kYgXJEThCoTuw/y1Ub3cE7aaKdznb+jD9xRPIfIwD7g==", "license": "Apache-2.0", "dependencies": { "@smithy/types": "^3.6.0" @@ -2235,8 +1593,6 @@ }, "node_modules/@smithy/shared-ini-file-loader": { "version": "3.1.9", - "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.9.tgz", - "integrity": "sha512-/+OsJRNtoRbtsX0UpSgWVxFZLsJHo/4sTr+kBg/J78sr7iC+tHeOvOJrS5hCpVQ6sWBbhWLp1UNiuMyZhE6pmA==", "license": "Apache-2.0", "dependencies": { "@smithy/types": "^3.6.0", @@ -2248,8 +1604,6 @@ }, "node_modules/@smithy/signature-v4": { "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-4.2.1.tgz", - "integrity": "sha512-NsV1jF4EvmO5wqmaSzlnTVetemBS3FZHdyc5CExbDljcyJCEEkJr8ANu2JvtNbVg/9MvKAWV44kTrGS+Pi4INg==", "license": "Apache-2.0", "dependencies": { "@smithy/is-array-buffer": "^3.0.0", @@ -2267,8 +1621,6 @@ }, "node_modules/@smithy/smithy-client": { "version": "3.4.2", - "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-3.4.2.tgz", - "integrity": "sha512-dxw1BDxJiY9/zI3cBqfVrInij6ShjpV4fmGHesGZZUiP9OSE/EVfdwdRz0PgvkEvrZHpsj2htRaHJfftE8giBA==", "license": "Apache-2.0", "dependencies": { "@smithy/core": "^2.5.1", @@ -2285,8 +1637,6 @@ }, "node_modules/@smithy/types": { "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@smithy/types/-/types-3.6.0.tgz", - "integrity": "sha512-8VXK/KzOHefoC65yRgCn5vG1cysPJjHnOVt9d0ybFQSmJgQj152vMn4EkYhGuaOmnnZvCPav/KnYyE6/KsNZ2w==", "license": "Apache-2.0", "dependencies": { "tslib": "^2.6.2" @@ -2297,8 +1647,6 @@ }, "node_modules/@smithy/url-parser": { "version": "3.0.8", - "resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-3.0.8.tgz", - "integrity": "sha512-4FdOhwpTW7jtSFWm7SpfLGKIBC9ZaTKG5nBF0wK24aoQKQyDIKUw3+KFWCQ9maMzrgTJIuOvOnsV2lLGW5XjTg==", "license": "Apache-2.0", "dependencies": { "@smithy/querystring-parser": "^3.0.8", @@ -2308,8 +1656,6 @@ }, "node_modules/@smithy/util-base64": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@smithy/util-base64/-/util-base64-3.0.0.tgz", - "integrity": "sha512-Kxvoh5Qtt0CDsfajiZOCpJxgtPHXOKwmM+Zy4waD43UoEMA+qPxxa98aE/7ZhdnBFZFXMOiBR5xbcaMhLtznQQ==", "license": "Apache-2.0", "dependencies": { "@smithy/util-buffer-from": "^3.0.0", @@ -2322,8 +1668,6 @@ }, "node_modules/@smithy/util-body-length-browser": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@smithy/util-body-length-browser/-/util-body-length-browser-3.0.0.tgz", - "integrity": "sha512-cbjJs2A1mLYmqmyVl80uoLTJhAcfzMOyPgjwAYusWKMdLeNtzmMz9YxNl3/jRLoxSS3wkqkf0jwNdtXWtyEBaQ==", "license": "Apache-2.0", "dependencies": { "tslib": "^2.6.2" @@ -2331,8 +1675,6 @@ }, "node_modules/@smithy/util-body-length-node": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@smithy/util-body-length-node/-/util-body-length-node-3.0.0.tgz", - "integrity": "sha512-Tj7pZ4bUloNUP6PzwhN7K386tmSmEET9QtQg0TgdNOnxhZvCssHji+oZTUIuzxECRfG8rdm2PMw2WCFs6eIYkA==", "license": "Apache-2.0", "dependencies": { "tslib": "^2.6.2" @@ -2343,8 +1685,6 @@ }, "node_modules/@smithy/util-buffer-from": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-3.0.0.tgz", - "integrity": "sha512-aEOHCgq5RWFbP+UDPvPot26EJHjOC+bRgse5A8V3FSShqd5E5UN4qc7zkwsvJPPAVsf73QwYcHN1/gt/rtLwQA==", "license": "Apache-2.0", "dependencies": { "@smithy/is-array-buffer": "^3.0.0", @@ -2356,8 +1696,6 @@ }, "node_modules/@smithy/util-config-provider": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@smithy/util-config-provider/-/util-config-provider-3.0.0.tgz", - "integrity": "sha512-pbjk4s0fwq3Di/ANL+rCvJMKM5bzAQdE5S/6RL5NXgMExFAi6UgQMPOm5yPaIWPpr+EOXKXRonJ3FoxKf4mCJQ==", "license": "Apache-2.0", "dependencies": { "tslib": "^2.6.2" @@ -2368,8 +1706,6 @@ }, "node_modules/@smithy/util-defaults-mode-browser": { "version": "3.0.25", - "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-3.0.25.tgz", - "integrity": "sha512-fRw7zymjIDt6XxIsLwfJfYUfbGoO9CmCJk6rjJ/X5cd20+d2Is7xjU5Kt/AiDt6hX8DAf5dztmfP5O82gR9emA==", "license": "Apache-2.0", "dependencies": { "@smithy/property-provider": "^3.1.8", @@ -2384,8 +1720,6 @@ }, "node_modules/@smithy/util-defaults-mode-node": { "version": "3.0.25", - "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-3.0.25.tgz", - "integrity": "sha512-H3BSZdBDiVZGzt8TG51Pd2FvFO0PAx/A0mJ0EH8a13KJ6iUCdYnw/Dk/MdC1kTd0eUuUGisDFaxXVXo4HHFL1g==", "license": "Apache-2.0", "dependencies": { "@smithy/config-resolver": "^3.0.10", @@ -2402,8 +1736,6 @@ }, "node_modules/@smithy/util-endpoints": { "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-2.1.4.tgz", - "integrity": "sha512-kPt8j4emm7rdMWQyL0F89o92q10gvCUa6sBkBtDJ7nV2+P7wpXczzOfoDJ49CKXe5CCqb8dc1W+ZdLlrKzSAnQ==", "license": "Apache-2.0", "dependencies": { "@smithy/node-config-provider": "^3.1.9", @@ -2416,8 +1748,6 @@ }, "node_modules/@smithy/util-hex-encoding": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@smithy/util-hex-encoding/-/util-hex-encoding-3.0.0.tgz", - "integrity": "sha512-eFndh1WEK5YMUYvy3lPlVmYY/fZcQE1D8oSf41Id2vCeIkKJXPcYDCZD+4+xViI6b1XSd7tE+s5AmXzz5ilabQ==", "license": "Apache-2.0", "dependencies": { "tslib": "^2.6.2" @@ -2428,8 +1758,6 @@ }, "node_modules/@smithy/util-middleware": { "version": "3.0.8", - "resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-3.0.8.tgz", - "integrity": "sha512-p7iYAPaQjoeM+AKABpYWeDdtwQNxasr4aXQEA/OmbOaug9V0odRVDy3Wx4ci8soljE/JXQo+abV0qZpW8NX0yA==", "license": "Apache-2.0", "dependencies": { "@smithy/types": "^3.6.0", @@ -2441,8 +1769,6 @@ }, "node_modules/@smithy/util-retry": { "version": "3.0.8", - "resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-3.0.8.tgz", - "integrity": "sha512-TCEhLnY581YJ+g1x0hapPz13JFqzmh/pMWL2KEFASC51qCfw3+Y47MrTmea4bUE5vsdxQ4F6/KFbUeSz22Q1ow==", "license": "Apache-2.0", "dependencies": { "@smithy/service-error-classification": "^3.0.8", @@ -2455,8 +1781,6 @@ }, "node_modules/@smithy/util-stream": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-3.2.1.tgz", - "integrity": "sha512-R3ufuzJRxSJbE58K9AEnL/uSZyVdHzud9wLS8tIbXclxKzoe09CRohj2xV8wpx5tj7ZbiJaKYcutMm1eYgz/0A==", "license": "Apache-2.0", "dependencies": { "@smithy/fetch-http-handler": "^4.0.0", @@ -2474,8 +1798,6 @@ }, "node_modules/@smithy/util-uri-escape": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@smithy/util-uri-escape/-/util-uri-escape-3.0.0.tgz", - "integrity": "sha512-LqR7qYLgZTD7nWLBecUi4aqolw8Mhza9ArpNEQ881MJJIU2sE5iHCK6TdyqqzcDLy0OPe10IY4T8ctVdtynubg==", "license": "Apache-2.0", "dependencies": { "tslib": "^2.6.2" @@ -2486,8 +1808,6 @@ }, "node_modules/@smithy/util-utf8": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-3.0.0.tgz", - "integrity": "sha512-rUeT12bxFnplYDe815GXbq/oixEGHfRFFtcTF3YdDi/JaENIM6aSYYLJydG83UNzLXeRI5K8abYd/8Sp/QM0kA==", "license": "Apache-2.0", "dependencies": { "@smithy/util-buffer-from": "^3.0.0", @@ -2499,8 +1819,6 @@ }, "node_modules/@smithy/util-waiter": { "version": "3.1.7", - "resolved": "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-3.1.7.tgz", - "integrity": "sha512-d5yGlQtmN/z5eoTtIYgkvOw27US2Ous4VycnXatyoImIF9tzlcpnKqQ/V7qhvJmb2p6xZne1NopCLakdTnkBBQ==", "license": "Apache-2.0", "dependencies": { "@smithy/abort-controller": "^3.1.6", @@ -2511,791 +1829,331 @@ "node": ">=16.0.0" } }, - "node_modules/@stoplight/json": { - "version": "3.21.7", - "resolved": "https://registry.npmjs.org/@stoplight/json/-/json-3.21.7.tgz", - "integrity": "sha512-xcJXgKFqv/uCEgtGlPxy3tPA+4I+ZI4vAuMJ885+ThkTHFVkC+0Fm58lA9NlsyjnkpxFh4YiQWpH+KefHdbA0A==", - "dev": true, + "node_modules/@thi.ng/bitstream": { + "version": "2.4.3", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/postspectacular" + }, + { + "type": "patreon", + "url": "https://patreon.com/thing_umbrella" + } + ], + "license": "Apache-2.0", "dependencies": { - "@stoplight/ordered-object-literal": "^1.0.3", - "@stoplight/path": "^1.3.2", - "@stoplight/types": "^13.6.0", - "jsonc-parser": "~2.2.1", - "lodash": "^4.17.21", - "safe-stable-stringify": "^1.1" + "@thi.ng/errors": "^2.5.17" }, "engines": { - "node": ">=8.3.0" + "node": ">=18" } }, - "node_modules/@stoplight/json-ref-readers": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@stoplight/json-ref-readers/-/json-ref-readers-1.2.2.tgz", - "integrity": "sha512-nty0tHUq2f1IKuFYsLM4CXLZGHdMn+X/IwEUIpeSOXt0QjMUbL0Em57iJUDzz+2MkWG83smIigNZ3fauGjqgdQ==", - "dev": true, - "dependencies": { - "node-fetch": "^2.6.0", - "tslib": "^1.14.1" - }, + "node_modules/@thi.ng/errors": { + "version": "2.5.17", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/postspectacular" + }, + { + "type": "patreon", + "url": "https://patreon.com/thing_umbrella" + } + ], + "license": "Apache-2.0", "engines": { - "node": ">=8.3.0" + "node": ">=18" } }, - "node_modules/@stoplight/json-ref-readers/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/@stoplight/json-ref-resolver": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/@stoplight/json-ref-resolver/-/json-ref-resolver-3.1.6.tgz", - "integrity": "sha512-YNcWv3R3n3U6iQYBsFOiWSuRGE5su1tJSiX6pAPRVk7dP0L7lqCteXGzuVRQ0gMZqUl8v1P0+fAKxF6PLo9B5A==", + "node_modules/@types/audio-context": { + "version": "1.0.3", "dev": true, - "dependencies": { - "@stoplight/json": "^3.21.0", - "@stoplight/path": "^1.3.2", - "@stoplight/types": "^12.3.0 || ^13.0.0", - "@types/urijs": "^1.19.19", - "dependency-graph": "~0.11.0", - "fast-memoize": "^2.5.2", - "immer": "^9.0.6", - "lodash": "^4.17.21", - "tslib": "^2.6.0", - "urijs": "^1.19.11" - }, - "engines": { - "node": ">=8.3.0" - } + "license": "MIT" }, - "node_modules/@stoplight/ordered-object-literal": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@stoplight/ordered-object-literal/-/ordered-object-literal-1.0.5.tgz", - "integrity": "sha512-COTiuCU5bgMUtbIFBuyyh2/yVVzlr5Om0v5utQDgBCuQUOPgU1DwoffkTfg4UBQOvByi5foF4w4T+H9CoRe5wg==", + "node_modules/@types/audio-play": { + "version": "2.3.2", "dev": true, - "engines": { - "node": ">=8" - } + "license": "MIT" }, - "node_modules/@stoplight/path": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@stoplight/path/-/path-1.3.2.tgz", - "integrity": "sha512-lyIc6JUlUA8Ve5ELywPC8I2Sdnh1zc1zmbYgVarhXIp9YeAB0ReeqmGEOWNtlHkbP2DAA1AL65Wfn2ncjK/jtQ==", + "node_modules/@types/estree": { + "version": "1.0.6", "dev": true, - "engines": { - "node": ">=8" - } + "license": "MIT" }, - "node_modules/@stoplight/spectral-cli": { - "version": "6.13.1", - "resolved": "https://registry.npmjs.org/@stoplight/spectral-cli/-/spectral-cli-6.13.1.tgz", - "integrity": "sha512-v6ipX4w6wRhtbOotwdPL7RrEkP0m1OwHTIyqzVrAPi932F/zkee24jmf1CHNrTynonmfGoU6/XpeqUHtQdKDFw==", - "dev": true, - "dependencies": { - "@stoplight/json": "~3.21.0", - "@stoplight/path": "1.3.2", - "@stoplight/spectral-core": "^1.18.3", - "@stoplight/spectral-formatters": "^1.3.0", - "@stoplight/spectral-parsers": "^1.0.3", - "@stoplight/spectral-ref-resolver": "^1.0.4", - "@stoplight/spectral-ruleset-bundler": "^1.5.4", - "@stoplight/spectral-ruleset-migrator": "^1.9.6", - "@stoplight/spectral-rulesets": ">=1", - "@stoplight/spectral-runtime": "^1.1.2", - "@stoplight/types": "^13.6.0", - "chalk": "4.1.2", - "fast-glob": "~3.2.12", - "hpagent": "~1.2.0", - "lodash": "~4.17.21", - "pony-cause": "^1.0.0", - "stacktracey": "^2.1.7", - "tslib": "^2.3.0", - "yargs": "~17.7.2" - }, - "bin": { - "spectral": "dist/index.js" - }, - "engines": { - "node": "^12.20 || >= 14.13" - } + "node_modules/@types/json-schema": { + "version": "7.0.15", + "dev": true, + "license": "MIT" }, - "node_modules/@stoplight/spectral-cli/node_modules/fast-glob": { - "version": "3.2.12", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", - "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "node_modules/@types/lodash": { + "version": "4.17.13", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.13.tgz", + "integrity": "sha512-lfx+dftrEZcdBPczf9d0Qv0x+j/rfNCMuC6OcfXmO8gkfeNAY88PgKUbvG56whcN23gc27yenwF6oJZXGFpYxg==", "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "22.10.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.1.tgz", + "integrity": "sha512-qKgsUwfHZV2WCWLAnVP1JqnpE6Im6h3Y0+fYgMTasNQ7V++CBX5OT1as0g0f+OyubbFqhf6XVNIsmN4IIhEgGQ==", + "license": "MIT", "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" + "undici-types": "~6.20.0" } }, - "node_modules/@stoplight/spectral-cli/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, + "node_modules/@types/node-fetch": { + "version": "2.6.11", + "license": "MIT", "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" + "@types/node": "*", + "form-data": "^4.0.0" } }, - "node_modules/@stoplight/spectral-core": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/@stoplight/spectral-core/-/spectral-core-1.19.1.tgz", - "integrity": "sha512-YiWhXdjyjn4vCl3102ywzwCEJzncxapFcj4dxcj1YP/bZ62DFeGJ8cEaMP164vSw2kI3rX7EMMzI/c8XOUnTfQ==", + "node_modules/@types/uuid": { + "version": "9.0.8", + "license": "MIT" + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.17.0.tgz", + "integrity": "sha512-HU1KAdW3Tt8zQkdvNoIijfWDMvdSweFYm4hWh+KwhPstv+sCmWb89hCIP8msFm9N1R/ooh9honpSuvqKWlYy3w==", "dev": true, + "license": "MIT", "dependencies": { - "@stoplight/better-ajv-errors": "1.0.3", - "@stoplight/json": "~3.21.0", - "@stoplight/path": "1.3.2", - "@stoplight/spectral-parsers": "^1.0.0", - "@stoplight/spectral-ref-resolver": "^1.0.4", - "@stoplight/spectral-runtime": "^1.0.0", - "@stoplight/types": "~13.6.0", - "@types/es-aggregate-error": "^1.0.2", - "@types/json-schema": "^7.0.11", - "ajv": "^8.17.1", - "ajv-errors": "~3.0.0", - "ajv-formats": "~2.1.0", - "es-aggregate-error": "^1.0.7", - "jsonpath-plus": "7.1.0", - "lodash": "~4.17.21", - "lodash.topath": "^4.5.2", - "minimatch": "3.1.2", - "nimma": "0.2.2", - "pony-cause": "^1.0.0", - "simple-eval": "1.0.0", - "tslib": "^2.3.0" + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.17.0", + "@typescript-eslint/type-utils": "8.17.0", + "@typescript-eslint/utils": "8.17.0", + "@typescript-eslint/visitor-keys": "8.17.0", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "ts-api-utils": "^1.3.0" }, "engines": { - "node": "^12.20 || >= 14.13" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", + "eslint": "^8.57.0 || ^9.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/@stoplight/spectral-core/node_modules/@stoplight/better-ajv-errors": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@stoplight/better-ajv-errors/-/better-ajv-errors-1.0.3.tgz", - "integrity": "sha512-0p9uXkuB22qGdNfy3VeEhxkU5uwvp/KrBTAbrLBURv6ilxIVwanKwjMc41lQfIVgPGcOkmLbTolfFrSsueu7zA==", + "node_modules/@typescript-eslint/parser": { + "version": "8.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.17.0.tgz", + "integrity": "sha512-Drp39TXuUlD49F7ilHHCG7TTg8IkA+hxCuULdmzWYICxGXvDXmDmWEjJYZQYgf6l/TFfYNE167m7isnc3xlIEg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "jsonpointer": "^5.0.0", - "leven": "^3.1.0" + "@typescript-eslint/scope-manager": "8.17.0", + "@typescript-eslint/types": "8.17.0", + "@typescript-eslint/typescript-estree": "8.17.0", + "@typescript-eslint/visitor-keys": "8.17.0", + "debug": "^4.3.4" }, "engines": { - "node": "^12.20 || >= 14.13" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "ajv": ">=8" + "eslint": "^8.57.0 || ^9.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/@stoplight/spectral-core/node_modules/@stoplight/types": { - "version": "13.6.0", - "resolved": "https://registry.npmjs.org/@stoplight/types/-/types-13.6.0.tgz", - "integrity": "sha512-dzyuzvUjv3m1wmhPfq82lCVYGcXG0xUYgqnWfCq3PCVR4BKFhjdkHrnJ+jIDoMKvXb05AZP/ObQF6+NpDo29IQ==", + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.17.0.tgz", + "integrity": "sha512-/ewp4XjvnxaREtqsZjF4Mfn078RD/9GmiEAtTeLQ7yFdKnqwTOgRMSvFz4et9U5RiJQ15WTGXPLj89zGusvxBg==", "dev": true, + "license": "MIT", "dependencies": { - "@types/json-schema": "^7.0.4", - "utility-types": "^3.10.0" + "@typescript-eslint/types": "8.17.0", + "@typescript-eslint/visitor-keys": "8.17.0" }, "engines": { - "node": "^12.20 || >=14.13" - } - }, - "node_modules/@stoplight/spectral-core/node_modules/ajv": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/@stoplight/spectral-core/node_modules/ajv-errors": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-3.0.0.tgz", - "integrity": "sha512-V3wD15YHfHz6y0KdhYFjyy9vWtEVALT9UrxfN3zqlI6dMioHnJrqOYfyPKol3oqrnCM9uwkcdCwkJ0WUcbLMTQ==", - "dev": true, - "peerDependencies": { - "ajv": "^8.0.1" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@stoplight/spectral-core/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/@stoplight/spectral-core/node_modules/nimma": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/nimma/-/nimma-0.2.2.tgz", - "integrity": "sha512-V52MLl7BU+tH2Np9tDrIXK8bql3MVUadnMIl/0/oZSGC9keuro0O9UUv9QKp0aMvtN8HRew4G7byY7H4eWsxaQ==", + "node_modules/@typescript-eslint/type-utils": { + "version": "8.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.17.0.tgz", + "integrity": "sha512-q38llWJYPd63rRnJ6wY/ZQqIzPrBCkPdpIsaCfkR3Q4t3p6sb422zougfad4TFW9+ElIFLVDzWGiGAfbb/v2qw==", "dev": true, + "license": "MIT", "dependencies": { - "@jsep-plugin/regex": "^1.0.1", - "@jsep-plugin/ternary": "^1.0.2", - "astring": "^1.8.1", - "jsep": "^1.2.0" + "@typescript-eslint/typescript-estree": "8.17.0", + "@typescript-eslint/utils": "8.17.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.3.0" }, "engines": { - "node": "^12.20 || >=14.13" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, - "optionalDependencies": { - "jsonpath-plus": "^6.0.1", - "lodash.topath": "^4.5.2" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/@stoplight/spectral-core/node_modules/nimma/node_modules/jsonpath-plus": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/jsonpath-plus/-/jsonpath-plus-6.0.1.tgz", - "integrity": "sha512-EvGovdvau6FyLexFH2OeXfIITlgIbgZoAZe3usiySeaIDm5QS+A10DKNpaPBBqqRSZr2HN6HVNXxtwUAr2apEw==", + "node_modules/@typescript-eslint/types": { + "version": "8.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.17.0.tgz", + "integrity": "sha512-gY2TVzeve3z6crqh2Ic7Cr+CAv6pfb0Egee7J5UAVWCpVvDI/F71wNfolIim4FE6hT15EbpZFVUj9j5i38jYXA==", "dev": true, - "optional": true, + "license": "MIT", "engines": { - "node": ">=10.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@stoplight/spectral-formats": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@stoplight/spectral-formats/-/spectral-formats-1.7.0.tgz", - "integrity": "sha512-vJ1vIkA2s96fdJp0d3AJBGuPAW3sj8yMamyzR+dquEFO6ZAoYBo/BVsKKQskYzZi/nwljlRqUmGVmcf2PncIaA==", + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.17.0.tgz", + "integrity": "sha512-JqkOopc1nRKZpX+opvKqnM3XUlM7LpFMD0lYxTqOTKQfCWAmxw45e3qlOCsEqEB2yuacujivudOFpCnqkBDNMw==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "@stoplight/json": "^3.17.0", - "@stoplight/spectral-core": "^1.8.0", - "@types/json-schema": "^7.0.7", - "tslib": "^2.3.1" + "@typescript-eslint/types": "8.17.0", + "@typescript-eslint/visitor-keys": "8.17.0", + "debug": "^4.3.4", + "fast-glob": "^3.3.2", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" }, "engines": { - "node": ">=12" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/@stoplight/spectral-formatters": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@stoplight/spectral-formatters/-/spectral-formatters-1.4.0.tgz", - "integrity": "sha512-nxYQldDzVg32pxQ4cMX27eMtB1A39ea+GSf0wIJ20mqkSBfIgLnRZ+GKkBxhgF9JzSolc4YtweydsubGQGd7ag==", + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, + "license": "MIT", "dependencies": { - "@stoplight/path": "^1.3.2", - "@stoplight/spectral-core": "^1.15.1", - "@stoplight/spectral-runtime": "^1.1.0", - "@stoplight/types": "^13.15.0", - "@types/markdown-escape": "^1.1.3", - "chalk": "4.1.2", - "cliui": "7.0.4", - "lodash": "^4.17.21", - "markdown-escape": "^2.0.0", - "node-sarif-builder": "^2.0.3", - "strip-ansi": "6.0", - "text-table": "^0.2.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": "^12.20 || >=14.13" + "balanced-match": "^1.0.0" } }, - "node_modules/@stoplight/spectral-functions": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@stoplight/spectral-functions/-/spectral-functions-1.9.0.tgz", - "integrity": "sha512-T+xl93ji8bpus4wUsTq8Qr2DSu2X9PO727rbxW61tTCG0s17CbsXOLYI+Ezjg5P6aaQlgXszGX8khtc57xk8Yw==", + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, + "license": "ISC", "dependencies": { - "@stoplight/better-ajv-errors": "1.0.3", - "@stoplight/json": "^3.17.1", - "@stoplight/spectral-core": "^1.7.0", - "@stoplight/spectral-formats": "^1.7.0", - "@stoplight/spectral-runtime": "^1.1.0", - "ajv": "^8.17.1", - "ajv-draft-04": "~1.0.0", - "ajv-errors": "~3.0.0", - "ajv-formats": "~2.1.0", - "lodash": "~4.17.21", - "tslib": "^2.3.0" + "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=12" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@stoplight/spectral-functions/node_modules/@stoplight/better-ajv-errors": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@stoplight/better-ajv-errors/-/better-ajv-errors-1.0.3.tgz", - "integrity": "sha512-0p9uXkuB22qGdNfy3VeEhxkU5uwvp/KrBTAbrLBURv6ilxIVwanKwjMc41lQfIVgPGcOkmLbTolfFrSsueu7zA==", + "node_modules/@typescript-eslint/utils": { + "version": "8.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.17.0.tgz", + "integrity": "sha512-bQC8BnEkxqG8HBGKwG9wXlZqg37RKSMY7v/X8VEWD8JG2JuTHuNK0VFvMPMUKQcbk6B+tf05k+4AShAEtCtJ/w==", "dev": true, + "license": "MIT", "dependencies": { - "jsonpointer": "^5.0.0", - "leven": "^3.1.0" + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "8.17.0", + "@typescript-eslint/types": "8.17.0", + "@typescript-eslint/typescript-estree": "8.17.0" }, "engines": { - "node": "^12.20 || >= 14.13" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "ajv": ">=8" + "eslint": "^8.57.0 || ^9.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/@stoplight/spectral-functions/node_modules/ajv": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.17.0.tgz", + "integrity": "sha512-1Hm7THLpO6ww5QU6H/Qp+AusUUl+z/CAm3cNZZ0jQvon9yicgO7Rwd+/WWRpMKLYV6p2UvdbR27c86rzCPpreg==", "dev": true, + "license": "MIT", "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" + "@typescript-eslint/types": "8.17.0", + "eslint-visitor-keys": "^4.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@stoplight/spectral-functions/node_modules/ajv-draft-04": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/ajv-draft-04/-/ajv-draft-04-1.0.0.tgz", - "integrity": "sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==", + "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", "dev": true, - "peerDependencies": { - "ajv": "^8.5.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/@stoplight/spectral-functions/node_modules/ajv-errors": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-3.0.0.tgz", - "integrity": "sha512-V3wD15YHfHz6y0KdhYFjyy9vWtEVALT9UrxfN3zqlI6dMioHnJrqOYfyPKol3oqrnCM9uwkcdCwkJ0WUcbLMTQ==", - "dev": true, - "peerDependencies": { - "ajv": "^8.0.1" - } - }, - "node_modules/@stoplight/spectral-functions/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/@stoplight/spectral-parsers": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@stoplight/spectral-parsers/-/spectral-parsers-1.0.4.tgz", - "integrity": "sha512-nCTVvtX6q71M8o5Uvv9kxU31Gk1TRmgD6/k8HBhdCmKG6FWcwgjiZouA/R3xHLn/VwTI/9k8SdG5Mkdy0RBqbQ==", - "dev": true, - "dependencies": { - "@stoplight/json": "~3.21.0", - "@stoplight/types": "^14.1.1", - "@stoplight/yaml": "~4.3.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": "^12.20 || >=14.13" - } - }, - "node_modules/@stoplight/spectral-parsers/node_modules/@stoplight/types": { - "version": "14.1.1", - "resolved": "https://registry.npmjs.org/@stoplight/types/-/types-14.1.1.tgz", - "integrity": "sha512-/kjtr+0t0tjKr+heVfviO9FrU/uGLc+QNX3fHJc19xsCNYqU7lVhaXxDmEID9BZTjG+/r9pK9xP/xU02XGg65g==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.4", - "utility-types": "^3.10.0" - }, - "engines": { - "node": "^12.20 || >=14.13" - } - }, - "node_modules/@stoplight/spectral-ref-resolver": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@stoplight/spectral-ref-resolver/-/spectral-ref-resolver-1.0.4.tgz", - "integrity": "sha512-5baQIYL0NJTSVy8v6RxOR4U51xOUYM8wJri1YvlAT6bPN8m0EIxMwfVYi0xUZEMVeHcWx869nIkoqyWmOutF2A==", - "dev": true, - "dependencies": { - "@stoplight/json-ref-readers": "1.2.2", - "@stoplight/json-ref-resolver": "~3.1.6", - "@stoplight/spectral-runtime": "^1.1.2", - "dependency-graph": "0.11.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@stoplight/spectral-ruleset-bundler": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@stoplight/spectral-ruleset-bundler/-/spectral-ruleset-bundler-1.6.0.tgz", - "integrity": "sha512-8CU7e4aEGdfU9ncVDtlnJSawg/6epzAHrQTjuNu1QfKAOoiwyG7oUk2XUTHWcvq6Q67iUctb0vjOokR+MPVg0Q==", - "dev": true, - "dependencies": { - "@rollup/plugin-commonjs": "~22.0.2", - "@stoplight/path": "1.3.2", - "@stoplight/spectral-core": ">=1", - "@stoplight/spectral-formats": "^1.7.0", - "@stoplight/spectral-functions": ">=1", - "@stoplight/spectral-parsers": ">=1", - "@stoplight/spectral-ref-resolver": "^1.0.4", - "@stoplight/spectral-ruleset-migrator": "^1.9.6", - "@stoplight/spectral-rulesets": ">=1", - "@stoplight/spectral-runtime": "^1.1.0", - "@stoplight/types": "^13.6.0", - "@types/node": "*", - "pony-cause": "1.1.1", - "rollup": "~2.79.0", - "tslib": "^2.3.1", - "validate-npm-package-name": "3.0.0" - }, - "engines": { - "node": "^12.20 || >= 14.13" - } - }, - "node_modules/@stoplight/spectral-ruleset-migrator": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/@stoplight/spectral-ruleset-migrator/-/spectral-ruleset-migrator-1.10.0.tgz", - "integrity": "sha512-nDfkVfYeWWv0UvILC4TWZSnRqQ4rHgeOJO1/lHQ7XHeG5iONanQ639B1aK6ZS6vuUc8gwuyQsrPF67b4sHIyYw==", - "dev": true, - "dependencies": { - "@stoplight/json": "~3.21.0", - "@stoplight/ordered-object-literal": "~1.0.4", - "@stoplight/path": "1.3.2", - "@stoplight/spectral-functions": "^1.0.0", - "@stoplight/spectral-runtime": "^1.1.0", - "@stoplight/types": "^13.6.0", - "@stoplight/yaml": "~4.2.3", - "@types/node": "*", - "ajv": "^8.17.1", - "ast-types": "0.14.2", - "astring": "^1.7.5", - "reserved": "0.1.2", - "tslib": "^2.3.1", - "validate-npm-package-name": "3.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@stoplight/spectral-ruleset-migrator/node_modules/@stoplight/yaml": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/@stoplight/yaml/-/yaml-4.2.3.tgz", - "integrity": "sha512-Mx01wjRAR9C7yLMUyYFTfbUf5DimEpHMkRDQ1PKLe9dfNILbgdxyrncsOXM3vCpsQ1Hfj4bPiGl+u4u6e9Akqw==", - "dev": true, - "dependencies": { - "@stoplight/ordered-object-literal": "^1.0.1", - "@stoplight/types": "^13.0.0", - "@stoplight/yaml-ast-parser": "0.0.48", - "tslib": "^2.2.0" - }, - "engines": { - "node": ">=10.8" - } - }, - "node_modules/@stoplight/spectral-ruleset-migrator/node_modules/@stoplight/yaml-ast-parser": { - "version": "0.0.48", - "resolved": "https://registry.npmjs.org/@stoplight/yaml-ast-parser/-/yaml-ast-parser-0.0.48.tgz", - "integrity": "sha512-sV+51I7WYnLJnKPn2EMWgS4EUfoP4iWEbrWwbXsj0MZCB/xOK8j6+C9fntIdOM50kpx45ZLC3s6kwKivWuqvyg==", - "dev": true - }, - "node_modules/@stoplight/spectral-ruleset-migrator/node_modules/ajv": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/@stoplight/spectral-ruleset-migrator/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/@stoplight/spectral-rulesets": { - "version": "1.20.2", - "resolved": "https://registry.npmjs.org/@stoplight/spectral-rulesets/-/spectral-rulesets-1.20.2.tgz", - "integrity": "sha512-7Y8orZuNyGyeHr9n50rMfysgUJ+/zzIEHMptt66jiy82GUWl+0nr865DkMuXdC5GryfDYhtjoRTUCVsXu80Nkg==", - "dev": true, - "dependencies": { - "@asyncapi/specs": "^4.1.0", - "@stoplight/better-ajv-errors": "1.0.3", - "@stoplight/json": "^3.17.0", - "@stoplight/spectral-core": "^1.8.1", - "@stoplight/spectral-formats": "^1.7.0", - "@stoplight/spectral-functions": "^1.5.1", - "@stoplight/spectral-runtime": "^1.1.1", - "@stoplight/types": "^13.6.0", - "@types/json-schema": "^7.0.7", - "ajv": "^8.17.1", - "ajv-formats": "~2.1.0", - "json-schema-traverse": "^1.0.0", - "leven": "3.1.0", - "lodash": "~4.17.21", - "tslib": "^2.3.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@stoplight/spectral-rulesets/node_modules/@stoplight/better-ajv-errors": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@stoplight/better-ajv-errors/-/better-ajv-errors-1.0.3.tgz", - "integrity": "sha512-0p9uXkuB22qGdNfy3VeEhxkU5uwvp/KrBTAbrLBURv6ilxIVwanKwjMc41lQfIVgPGcOkmLbTolfFrSsueu7zA==", - "dev": true, - "dependencies": { - "jsonpointer": "^5.0.0", - "leven": "^3.1.0" - }, - "engines": { - "node": "^12.20 || >= 14.13" - }, - "peerDependencies": { - "ajv": ">=8" - } - }, - "node_modules/@stoplight/spectral-rulesets/node_modules/ajv": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/@stoplight/spectral-rulesets/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/@stoplight/spectral-runtime": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@stoplight/spectral-runtime/-/spectral-runtime-1.1.2.tgz", - "integrity": "sha512-fr5zRceXI+hrl82yAVoME+4GvJie8v3wmOe9tU+ZLRRNonizthy8qDi0Z/z4olE+vGreSDcuDOZ7JjRxFW5kTw==", - "dev": true, - "dependencies": { - "@stoplight/json": "^3.17.0", - "@stoplight/path": "^1.3.2", - "@stoplight/types": "^12.3.0", - "abort-controller": "^3.0.0", - "lodash": "^4.17.21", - "node-fetch": "^2.6.7", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@stoplight/spectral-runtime/node_modules/@stoplight/types": { - "version": "12.5.0", - "resolved": "https://registry.npmjs.org/@stoplight/types/-/types-12.5.0.tgz", - "integrity": "sha512-dwqYcDrGmEyUv5TWrDam5TGOxU72ufyQ7hnOIIDdmW5ezOwZaBFoR5XQ9AsH49w7wgvOqB2Bmo799pJPWnpCbg==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.4", - "utility-types": "^3.10.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@stoplight/types": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/@stoplight/types/-/types-13.20.0.tgz", - "integrity": "sha512-2FNTv05If7ib79VPDA/r9eUet76jewXFH2y2K5vuge6SXbRHtWBhcaRmu+6QpF4/WRNoJj5XYRSwLGXDxysBGA==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.4", - "utility-types": "^3.10.0" - }, - "engines": { - "node": "^12.20 || >=14.13" - } - }, - "node_modules/@stoplight/yaml": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@stoplight/yaml/-/yaml-4.3.0.tgz", - "integrity": "sha512-JZlVFE6/dYpP9tQmV0/ADfn32L9uFarHWxfcRhReKUnljz1ZiUM5zpX+PH8h5CJs6lao3TuFqnPm9IJJCEkE2w==", - "dev": true, - "dependencies": { - "@stoplight/ordered-object-literal": "^1.0.5", - "@stoplight/types": "^14.1.1", - "@stoplight/yaml-ast-parser": "0.0.50", - "tslib": "^2.2.0" - }, - "engines": { - "node": ">=10.8" - } - }, - "node_modules/@stoplight/yaml-ast-parser": { - "version": "0.0.50", - "resolved": "https://registry.npmjs.org/@stoplight/yaml-ast-parser/-/yaml-ast-parser-0.0.50.tgz", - "integrity": "sha512-Pb6M8TDO9DtSVla9yXSTAxmo9GVEouq5P40DWXdOie69bXogZTkgvopCq+yEvTMA0F6PEvdJmbtTV3ccIp11VQ==", - "dev": true - }, - "node_modules/@stoplight/yaml/node_modules/@stoplight/types": { - "version": "14.1.1", - "resolved": "https://registry.npmjs.org/@stoplight/types/-/types-14.1.1.tgz", - "integrity": "sha512-/kjtr+0t0tjKr+heVfviO9FrU/uGLc+QNX3fHJc19xsCNYqU7lVhaXxDmEID9BZTjG+/r9pK9xP/xU02XGg65g==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.4", - "utility-types": "^3.10.0" - }, - "engines": { - "node": "^12.20 || >=14.13" - } - }, - "node_modules/@thi.ng/bitstream": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/@thi.ng/bitstream/-/bitstream-2.4.3.tgz", - "integrity": "sha512-XfqT0G1WUjF/cJtdbwncoR4Z2NUPgQQEztq8FheoO110u2FxVxINhdkqO96qW8Fw+TD9JqdUPvT8IQbt7YF2ZA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/postspectacular" - }, - { - "type": "patreon", - "url": "https://patreon.com/thing_umbrella" - } - ], - "dependencies": { - "@thi.ng/errors": "^2.5.17" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@thi.ng/errors": { - "version": "2.5.17", - "resolved": "https://registry.npmjs.org/@thi.ng/errors/-/errors-2.5.17.tgz", - "integrity": "sha512-ohBAZcGNEIEOgJ9BPH4tjIsOjVgsnMGh4a2j63r6El68efr8RRN4G+GNkDaqV/jk9wbHKZZPt2t6suJMliPyxg==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/postspectacular" - }, - { - "type": "patreon", - "url": "https://patreon.com/thing_umbrella" - } - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@types/audio-context": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@types/audio-context/-/audio-context-1.0.3.tgz", - "integrity": "sha512-qACIhwTztJ2t/kfLsloj8FC9TJW9lUnOrejvyqJn1vtS8WiWlwsCACQWjUbJvAIFZLt1P1O204HAmdsl7G2pzw==", - "dev": true - }, - "node_modules/@types/audio-play": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/@types/audio-play/-/audio-play-2.3.2.tgz", - "integrity": "sha512-tGQbApfao04cIIiN6GtAJFjnJsdiN1L3zL90a8BKqsTycO0XxlQ8BR436MoZIlR2fBdP0IUJdTVbDweiHLVPnQ==", - "dev": true - }, - "node_modules/@types/es-aggregate-error": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@types/es-aggregate-error/-/es-aggregate-error-1.0.6.tgz", - "integrity": "sha512-qJ7LIFp06h1QE1aVxbVd+zJP2wdaugYXYfd6JxsyRMrYHaxb6itXPogW2tz+ylUJ1n1b+JF1PHyYCfYHm0dvUg==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/estree": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", - "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", - "dev": true - }, - "node_modules/@types/json-schema": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "dev": true - }, - "node_modules/@types/markdown-escape": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@types/markdown-escape/-/markdown-escape-1.1.3.tgz", - "integrity": "sha512-JIc1+s3y5ujKnt/+N+wq6s/QdL2qZ11fP79MijrVXsAAnzSxCbT2j/3prHRouJdZ2yFLN3vkP0HytfnoCczjOw==", - "dev": true - }, - "node_modules/@types/node": { - "version": "22.9.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.9.0.tgz", - "integrity": "sha512-vuyHg81vvWA1Z1ELfvLko2c8f34gyA0zaic0+Rllc5lbCnbSyuvb2Oxpm6TAUAC/2xZN3QGqxBNggD1nNR2AfQ==", - "license": "MIT", - "dependencies": { - "undici-types": "~6.19.8" - } - }, - "node_modules/@types/node-fetch": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.11.tgz", - "integrity": "sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==", - "dependencies": { - "@types/node": "*", - "form-data": "^4.0.0" + "url": "https://opencollective.com/eslint" } }, - "node_modules/@types/sarif": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/@types/sarif/-/sarif-2.1.7.tgz", - "integrity": "sha512-kRz0VEkJqWLf1LLVN4pT1cg1Z9wAuvI6L97V3m2f5B76Tg8d413ddvLBPTEHAZJlnn4XSvu0FkZtViCQGVyrXQ==", - "dev": true - }, - "node_modules/@types/urijs": { - "version": "1.19.25", - "resolved": "https://registry.npmjs.org/@types/urijs/-/urijs-1.19.25.tgz", - "integrity": "sha512-XOfUup9r3Y06nFAZh3WvO0rBU4OtlfPB/vgxpjg+NRdGU6CN6djdc6OEiH+PcqHCY6eFLo9Ista73uarf4gnBg==", - "dev": true - }, - "node_modules/@types/uuid": { - "version": "9.0.8", - "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.8.tgz", - "integrity": "sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==", - "license": "MIT" - }, - "node_modules/@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "dev": true, - "license": "ISC" - }, "node_modules/@wasm-audio-decoders/common": { "version": "9.0.5", - "resolved": "https://registry.npmjs.org/@wasm-audio-decoders/common/-/common-9.0.5.tgz", - "integrity": "sha512-b9JNh9sPAvn8PVIizNh9D60WkfQong/u9ea873H47u7zvVDLctxYIp2aZw9CQqXaQdk7JB3MoU5UHiseO40swg==", + "license": "MIT", "dependencies": { "@eshaz/web-worker": "1.2.2", "simple-yenc": "^1.0.4" @@ -3303,8 +2161,7 @@ }, "node_modules/@wasm-audio-decoders/flac": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/@wasm-audio-decoders/flac/-/flac-0.2.5.tgz", - "integrity": "sha512-8M//CgB3PlkWwn47KcwD0tO6DZBA7/AGG0ukHSG0G97UbNEUNINvKDWAKPVWznzHsqeBP6axw+K/38dzng64JA==", + "license": "MIT", "dependencies": { "@wasm-audio-decoders/common": "9.0.5", "codec-parser": "2.5.0" @@ -3316,8 +2173,7 @@ }, "node_modules/@wasm-audio-decoders/ogg-vorbis": { "version": "0.1.16", - "resolved": "https://registry.npmjs.org/@wasm-audio-decoders/ogg-vorbis/-/ogg-vorbis-0.1.16.tgz", - "integrity": "sha512-HcEx4LPZbbzjhs9bTXgMaXLVCSMSo/egY9paJxAnE9tsYbvseAaGtVddLYktl3Qi/G+nW/ZzUXg4144izJjqCw==", + "license": "MIT", "dependencies": { "@wasm-audio-decoders/common": "9.0.5", "codec-parser": "2.5.0" @@ -3327,10 +2183,16 @@ "url": "https://github.com/sponsors/eshaz" } }, + "node_modules/@yarnpkg/lockfile": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", + "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", + "dev": true, + "license": "BSD-2-Clause" + }, "node_modules/abort-controller": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "license": "MIT", "dependencies": { "event-target-shim": "^5.0.0" }, @@ -3340,8 +2202,6 @@ }, "node_modules/acorn": { "version": "8.14.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", - "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", "dev": true, "license": "MIT", "bin": { @@ -3363,8 +2223,7 @@ }, "node_modules/agentkeepalive": { "version": "4.5.0", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.5.0.tgz", - "integrity": "sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==", + "license": "MIT", "dependencies": { "humanize-ms": "^1.2.1" }, @@ -3389,49 +2248,8 @@ "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "dev": true, - "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/ajv-formats/node_modules/ajv": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-formats/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, "node_modules/ansi-regex": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, "license": "MIT", "engines": { @@ -3440,8 +2258,6 @@ }, "node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "license": "MIT", "dependencies": { @@ -3456,9 +2272,8 @@ }, "node_modules/anymatch": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, + "license": "ISC", "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -3469,108 +2284,34 @@ }, "node_modules/argparse": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true, "license": "Python-2.0" }, - "node_modules/array-buffer-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", - "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.5", - "is-array-buffer": "^3.0.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "node_modules/asynckit": { + "version": "0.4.0", + "license": "MIT" }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", "dev": true, - "license": "MIT", + "license": "ISC", "engines": { - "node": ">=8" + "node": ">= 4.0.0" } }, - "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", - "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", - "dev": true, - "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "es-abstract": "^1.22.3", - "es-errors": "^1.2.1", - "get-intrinsic": "^1.2.3", - "is-array-buffer": "^3.0.4", - "is-shared-array-buffer": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/as-table": { - "version": "1.0.55", - "resolved": "https://registry.npmjs.org/as-table/-/as-table-1.0.55.tgz", - "integrity": "sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==", - "dev": true, - "dependencies": { - "printable-characters": "^1.0.42" - } - }, - "node_modules/ast-types": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.14.2.tgz", - "integrity": "sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA==", - "dev": true, - "dependencies": { - "tslib": "^2.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/astring": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/astring/-/astring-1.9.0.tgz", - "integrity": "sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==", - "dev": true, - "bin": { - "astring": "bin/astring" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" - }, "node_modules/atob-lite": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/atob-lite/-/atob-lite-2.0.0.tgz", - "integrity": "sha512-LEeSAWeh2Gfa2FtlQE1shxQ8zi5F9GHarrGKz08TMdODD5T4eH6BMsvtnhbWZ+XQn+Gb6om/917ucvRu7l7ukw==" + "license": "MIT" }, "node_modules/audio-buffer": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/audio-buffer/-/audio-buffer-5.0.0.tgz", - "integrity": "sha512-gsDyj1wwUp8u7NBB+eW6yhLb9ICf+0eBmDX8NGaAS00w8/fLqFdxUlL5Ge/U8kB64DlQhdonxYC59dXy1J7H/w==" + "license": "MIT" }, "node_modules/audio-buffer-from": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/audio-buffer-from/-/audio-buffer-from-1.1.1.tgz", - "integrity": "sha512-8Wcira24z+26GXDFe7ZFRF1bJm1iWrz8O+XL8iNZxZjxqAPXIoK1IrJiOqStv35ASPbRjG57ZK/T0WO92MDUSg==", + "license": "MIT", "dependencies": { "audio-buffer": "^4.0.4", "audio-context": "^1.0.1", @@ -3584,17 +2325,14 @@ }, "node_modules/audio-buffer-from/node_modules/audio-buffer": { "version": "4.0.4", - "resolved": "https://registry.npmjs.org/audio-buffer/-/audio-buffer-4.0.4.tgz", - "integrity": "sha512-phH+MR3G+N/PO5ZKKxx7HlU6vJwAJFa0+FCaTjr/4lUZU/RCjUTqlk3nMJTRy5+b+6cbx8m//EtwZOVI5Ht9+w==", - "deprecated": "Depends on Web-Audio-API implementation. Use either web-audio-api, web-audio-js or web-audio-engine package.", + "license": "MIT", "dependencies": { "audio-context": "^1.0.0" } }, "node_modules/audio-buffer-list": { "version": "2.0.7", - "resolved": "https://registry.npmjs.org/audio-buffer-list/-/audio-buffer-list-2.0.7.tgz", - "integrity": "sha512-bj4YkkuyY896C64wqEp78QwolqfEwjTtxEKjWHoZAOy1T5DmpMgU7PEndvA0KmcgEWiRoUqdnwyL2wc59vuW2A==", + "license": "MIT", "dependencies": { "audio-buffer": "^3.0.0", "audio-buffer-utils": "^4.1.1", @@ -3607,9 +2345,7 @@ }, "node_modules/audio-buffer-list/node_modules/audio-buffer": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/audio-buffer/-/audio-buffer-3.2.1.tgz", - "integrity": "sha512-yQNZUatQ5dF7h4BezYLy6T9w4LHahMVXrncFZJjI+N44S3O0lEgZcicsSSdvgNk0gLii58Q4gTvSZyohYqRbfw==", - "deprecated": "Depends on Web-Audio-API implementation. Use either web-audio-api, web-audio-js or web-audio-engine package.", + "license": "MIT", "dependencies": { "audio-context": "^1.0.0", "buffer-to-arraybuffer": "latest", @@ -3621,8 +2357,7 @@ }, "node_modules/audio-buffer-list/node_modules/audio-buffer-utils": { "version": "4.3.2", - "resolved": "https://registry.npmjs.org/audio-buffer-utils/-/audio-buffer-utils-4.3.2.tgz", - "integrity": "sha512-4SV84QDCwatJTmsXZjMy9RyBv/vEoLp0BOkeGUX8/D7RS+daA3yCT18pp4J+MV9YUwADUoNXwzhhMnhUYQ8n3A==", + "license": "ISC", "dependencies": { "audio-buffer": "^3.1.1", "audio-context": "^1.0.0", @@ -3635,13 +2370,11 @@ }, "node_modules/audio-buffer-list/node_modules/is-buffer": { "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + "license": "MIT" }, "node_modules/audio-buffer-utils": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/audio-buffer-utils/-/audio-buffer-utils-5.1.2.tgz", - "integrity": "sha512-MZEnf8PLnnSwIySffyxG3Q33PwlKHH4r66FZMPUJMDLAtGt8OblzoLcxHInlGZmDqRt1MxYG0Eovn0CpHKsqzg==", + "license": "ISC", "dependencies": { "audio-buffer": "^4.0.0", "audio-buffer-from": "^1.0.0", @@ -3654,9 +2387,7 @@ }, "node_modules/audio-buffer-utils/node_modules/audio-buffer": { "version": "4.0.4", - "resolved": "https://registry.npmjs.org/audio-buffer/-/audio-buffer-4.0.4.tgz", - "integrity": "sha512-phH+MR3G+N/PO5ZKKxx7HlU6vJwAJFa0+FCaTjr/4lUZU/RCjUTqlk3nMJTRy5+b+6cbx8m//EtwZOVI5Ht9+w==", - "deprecated": "Depends on Web-Audio-API implementation. Use either web-audio-api, web-audio-js or web-audio-engine package.", + "license": "MIT", "dependencies": { "audio-context": "^1.0.0" } @@ -3665,12 +2396,12 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/audio-context/-/audio-context-1.0.3.tgz", "integrity": "sha512-RH3/rM74f2ITlohhjgC7oYZVS97wtv/SEjXLCzEinnrIPIDxc39m2aFc6wmdkM0NYRKo1DMleYPMAIbnTRW0eA==", - "deprecated": "Depends on Web-Audio-API implementation. Use either web-audio-api, web-audio-js or web-audio-engine package." + "deprecated": "Depends on Web-Audio-API implementation. Use either web-audio-api, web-audio-js or web-audio-engine package.", + "license": "MIT" }, "node_modules/audio-decode": { "version": "2.2.2", - "resolved": "https://registry.npmjs.org/audio-decode/-/audio-decode-2.2.2.tgz", - "integrity": "sha512-xyh7z6dpRT+5Ez4ggV2cEkSShkDvvIBBmVPR3kYY7uIBqRO1BGNjofip6JnjBnvezhrU3ypBGZjepyKFDZWnDw==", + "license": "MIT", "dependencies": { "@wasm-audio-decoders/flac": "^0.2.4", "@wasm-audio-decoders/ogg-vorbis": "^0.1.15", @@ -3684,8 +2415,7 @@ }, "node_modules/audio-format": { "version": "2.3.2", - "resolved": "https://registry.npmjs.org/audio-format/-/audio-format-2.3.2.tgz", - "integrity": "sha512-5IA2grZhaVhpGxX6lbJm8VVh/SKQULMXXrFxuiodi0zhzDPRB8BJfieo89AclEQv4bDxZRH4lv06qNnxqkFhKQ==", + "license": "MIT", "dependencies": { "is-audio-buffer": "^1.0.11", "is-buffer": "^1.1.5", @@ -3696,13 +2426,11 @@ }, "node_modules/audio-format/node_modules/is-buffer": { "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + "license": "MIT" }, "node_modules/audio-play": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/audio-play/-/audio-play-2.3.1.tgz", - "integrity": "sha512-TjqdAupN+dm6tGjxRXO7N0EsauKWlGe8+4fHL724ilvzNVJ6WcgblonNktnI4R/ClTaEUijm2sUZrBJz/lSBDw==", + "license": "MIT", "dependencies": { "audio-buffer": "^4.0.1", "audio-buffer-utils": "^5.1.2", @@ -3715,18 +2443,14 @@ }, "node_modules/audio-play/node_modules/audio-buffer": { "version": "4.0.4", - "resolved": "https://registry.npmjs.org/audio-buffer/-/audio-buffer-4.0.4.tgz", - "integrity": "sha512-phH+MR3G+N/PO5ZKKxx7HlU6vJwAJFa0+FCaTjr/4lUZU/RCjUTqlk3nMJTRy5+b+6cbx8m//EtwZOVI5Ht9+w==", - "deprecated": "Depends on Web-Audio-API implementation. Use either web-audio-api, web-audio-js or web-audio-engine package.", + "license": "MIT", "dependencies": { "audio-context": "^1.0.0" } }, "node_modules/audio-sink": { "version": "1.1.6", - "resolved": "https://registry.npmjs.org/audio-sink/-/audio-sink-1.1.6.tgz", - "integrity": "sha512-RoaAZV7WTgAk036LXdWZ5sjqvBZ9yx6cgPbpSUVZxWLO0bKUu+WTG2f/sFuI34FvwlwI8pBP5boHgdezVYV6vg==", - "deprecated": "Sad to admit that was wrong.", + "license": "MIT", "optional": true, "dependencies": { "inherits": "^2.0.1", @@ -3735,8 +2459,7 @@ }, "node_modules/audio-source": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/audio-source/-/audio-source-1.1.1.tgz", - "integrity": "sha512-3OA+3pfedIsPO3cAKs5Prw9I4/J6Ttej27taJcVCFPGZagCoSr60W0SwuW8Np4PJmG52U1cn0syejb6OSXE03A==", + "license": "MIT", "dependencies": { "audio-buffer": "^2.4.5", "audio-through": "^2.1.9", @@ -3747,9 +2470,7 @@ }, "node_modules/audio-source/node_modules/audio-buffer": { "version": "2.4.6", - "resolved": "https://registry.npmjs.org/audio-buffer/-/audio-buffer-2.4.6.tgz", - "integrity": "sha512-Rb2g11EeVSQHjCPP+2abKPhYj+RoqS6dZF/69DG3N3rb0xRJ86LsR4MwOcBMwXMkiPSnAFAAiR7nilBtIAfnQQ==", - "deprecated": "Depends on Web-Audio-API implementation. Use either web-audio-api, web-audio-js or web-audio-engine package.", + "license": "MIT", "dependencies": { "audio-context": "latest", "buffer-to-arraybuffer": "latest", @@ -3760,13 +2481,11 @@ }, "node_modules/audio-source/node_modules/is-buffer": { "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + "license": "MIT" }, "node_modules/audio-speaker": { "version": "1.5.1", - "resolved": "https://registry.npmjs.org/audio-speaker/-/audio-speaker-1.5.1.tgz", - "integrity": "sha512-FoTKQGSz9xZPOTAylfMWVKoyKZD3tcjm94AVsngkDrt7ohTVlPCX+lb0KcDD57rI0dPJprFO5GSxEbJUE3Jj+Q==", + "license": "MIT", "dependencies": { "audio-through": "^2.2.3", "inherits": "^2.0.1", @@ -3782,9 +2501,7 @@ }, "node_modules/audio-through": { "version": "2.2.3", - "resolved": "https://registry.npmjs.org/audio-through/-/audio-through-2.2.3.tgz", - "integrity": "sha512-geifBAjr4srD/jl7ZizmKLlSs20tg7dHJnFkCr8NFrVC2QiKQLqVqylH3g4zSWDqu3RyrVsALpAQ66LnyZlBfg==", - "deprecated": "Legacy. No audio in old node streams.", + "license": "MIT", "dependencies": { "audio-buffer": "^3.1.1", "audio-context": "^1.0.0", @@ -3798,9 +2515,7 @@ }, "node_modules/audio-through/node_modules/audio-buffer": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/audio-buffer/-/audio-buffer-3.2.1.tgz", - "integrity": "sha512-yQNZUatQ5dF7h4BezYLy6T9w4LHahMVXrncFZJjI+N44S3O0lEgZcicsSSdvgNk0gLii58Q4gTvSZyohYqRbfw==", - "deprecated": "Depends on Web-Audio-API implementation. Use either web-audio-api, web-audio-js or web-audio-engine package.", + "license": "MIT", "dependencies": { "audio-context": "^1.0.0", "buffer-to-arraybuffer": "latest", @@ -3812,49 +2527,22 @@ }, "node_modules/audio-through/node_modules/is-buffer": { "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + "license": "MIT" }, "node_modules/audio-type": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/audio-type/-/audio-type-2.2.1.tgz", - "integrity": "sha512-En9AY6EG1qYqEy5L/quryzbA4akBpJrnBZNxeKTqGHC2xT9Qc4aZ8b7CcbOMFTTc/MGdoNyp+SN4zInZNKxMYA==", + "license": "MIT", "engines": { "node": ">=14" } }, - "node_modules/available-typed-arrays": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", - "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", - "dev": true, - "dependencies": { - "possible-typed-array-names": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/backslash": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/backslash/-/backslash-0.2.0.tgz", - "integrity": "sha512-Avs+8FUZ1HF/VFP4YWwHQZSGzRPm37ukU1JQYQWijuHhtXdOuAzcZ8PcAzfIw898a8PyBzdn+RtnKA6MzW0X2A==", - "dev": true - }, "node_modules/balanced-match": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true, "license": "MIT" }, "node_modules/base64-js": { "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", "funding": [ { "type": "github", @@ -3873,9 +2561,8 @@ }, "node_modules/binary-extensions": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", - "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -3885,8 +2572,7 @@ }, "node_modules/bindings": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "license": "MIT", "optional": true, "dependencies": { "file-uri-to-path": "1.0.0" @@ -3894,14 +2580,10 @@ }, "node_modules/bowser": { "version": "2.11.0", - "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz", - "integrity": "sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==", "license": "MIT" }, "node_modules/brace-expansion": { "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "license": "MIT", "dependencies": { @@ -3911,8 +2593,6 @@ }, "node_modules/braces": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, "license": "MIT", "dependencies": { @@ -3924,8 +2604,6 @@ }, "node_modules/buffer": { "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", "funding": [ { "type": "github", @@ -3948,8 +2626,7 @@ }, "node_modules/buffer-alloc": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", - "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", + "license": "MIT", "optional": true, "dependencies": { "buffer-alloc-unsafe": "^1.1.0", @@ -3958,87 +2635,23 @@ }, "node_modules/buffer-alloc-unsafe": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", - "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", + "license": "MIT", "optional": true }, "node_modules/buffer-fill": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", - "integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==", + "license": "MIT", "optional": true }, "node_modules/buffer-to-arraybuffer": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.6.tgz", - "integrity": "sha512-i/ndmmCF5QC1D75QCO1EPwYRPIVRVs2yLwkl2bc8R5P1ORHGZZAbTwmYM/vpXt7KzCe+Y57E8YPGTJywgWBNRw==" - }, - "node_modules/builtins": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", - "integrity": "sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==", - "dev": true - }, - "node_modules/c12": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/c12/-/c12-2.0.1.tgz", - "integrity": "sha512-Z4JgsKXHG37C6PYUtIxCfLJZvo6FyhHJoClwwb9ftUkLpPSkuYqn6Tr+vnaN8hymm0kIbcg6Ey3kv/Q71k5w/A==", - "dev": true, - "dependencies": { - "chokidar": "^4.0.1", - "confbox": "^0.1.7", - "defu": "^6.1.4", - "dotenv": "^16.4.5", - "giget": "^1.2.3", - "jiti": "^2.3.0", - "mlly": "^1.7.1", - "ohash": "^1.1.4", - "pathe": "^1.1.2", - "perfect-debounce": "^1.0.0", - "pkg-types": "^1.2.0", - "rc9": "^2.1.2" - }, - "peerDependencies": { - "magicast": "^0.3.5" - }, - "peerDependenciesMeta": { - "magicast": { - "optional": true - } - } - }, - "node_modules/c12/node_modules/chokidar": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.1.tgz", - "integrity": "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==", - "dev": true, - "dependencies": { - "readdirp": "^4.0.1" - }, - "engines": { - "node": ">= 14.16.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/c12/node_modules/readdirp": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz", - "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==", - "dev": true, - "engines": { - "node": ">= 14.16.0" - }, - "funding": { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } + "integrity": "sha512-i/ndmmCF5QC1D75QCO1EPwYRPIVRVs2yLwkl2bc8R5P1ORHGZZAbTwmYM/vpXt7KzCe+Y57E8YPGTJywgWBNRw==", + "license": "MIT" }, "node_modules/call-bind": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "license": "MIT", "dependencies": { "es-define-property": "^1.0.0", "es-errors": "^1.3.0", @@ -4065,8 +2678,6 @@ }, "node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "license": "MIT", "dependencies": { @@ -4082,9 +2693,8 @@ }, "node_modules/chokidar": { "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "dev": true, + "license": "MIT", "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -4106,9 +2716,8 @@ }, "node_modules/chokidar/node_modules/glob-parent": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.1" }, @@ -4116,63 +2725,40 @@ "node": ">= 6" } }, - "node_modules/chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", "engines": { - "node": ">=10" - } - }, - "node_modules/citty": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/citty/-/citty-0.1.6.tgz", - "integrity": "sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==", - "dev": true, - "dependencies": { - "consola": "^3.2.3" + "node": ">=8" } }, "node_modules/clamp": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/clamp/-/clamp-1.0.1.tgz", - "integrity": "sha512-kgMuFyE78OC6Dyu3Dy7vcx4uy97EIbVxJB/B0eJ3bUNAkwdNcxYzgKltnyADiYwsR7SEqkkUPsEUT//OVS6XMA==" - }, - "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", - "dev": true, - "engines": { - "node": ">=0.8" - } + "license": "MIT" }, "node_modules/codec-parser": { "version": "2.5.0", - "resolved": "https://registry.npmjs.org/codec-parser/-/codec-parser-2.5.0.tgz", - "integrity": "sha512-Ru9t80fV8B0ZiixQl8xhMTLru+dzuis/KQld32/x5T/+3LwZb0/YvQdSKytX9JqCnRdiupvAvyYJINKrXieziQ==" + "license": "LGPL-3.0-or-later" }, "node_modules/cohere-ai": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/cohere-ai/-/cohere-ai-7.14.0.tgz", - "integrity": "sha512-hSo2/tFV29whjFFtVtdS7kHmtUsjfMO1sgwE/d5bhOE4O7Vkj5G1R9lLIqkIprp/+rrvCq3HGvEaOgry7xRcDA==", + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/cohere-ai/-/cohere-ai-7.15.0.tgz", + "integrity": "sha512-yhyoUdLXKePmGMxJVOtmvJCKt8WdVAK/fdzgk/IHQJTDOYCRyFeulGxayFY5xUv7MkRRLVsVKDU5sx2NLcG+qA==", "dependencies": { "@aws-sdk/client-sagemaker": "^3.583.0", "@aws-sdk/credential-providers": "^3.583.0", "@aws-sdk/protocol-http": "^3.374.0", "@aws-sdk/signature-v4": "^3.374.0", + "convict": "^6.2.4", "form-data": "^4.0.0", "form-data-encoder": "^4.0.2", "formdata-node": "^6.0.3", @@ -4185,8 +2771,6 @@ }, "node_modules/cohere-ai/node_modules/form-data-encoder": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-4.0.2.tgz", - "integrity": "sha512-KQVhvhK8ZkWzxKxOr56CPulAhH3dobtuQ4+hNQ+HekH/Wp5gSOafqRAeTphQUJAIk0GBvHZgJ2ZGRWd5kphMuw==", "license": "MIT", "engines": { "node": ">= 18" @@ -4194,8 +2778,6 @@ }, "node_modules/cohere-ai/node_modules/formdata-node": { "version": "6.0.3", - "resolved": "https://registry.npmjs.org/formdata-node/-/formdata-node-6.0.3.tgz", - "integrity": "sha512-8e1++BCiTzUno9v5IZ2J6bv4RU+3UKDmqWUQD0MIMVCd9AdhWkO1gw57oo1mNEX1dMq2EGI+FbWz4B92pscSQg==", "license": "MIT", "engines": { "node": ">= 18" @@ -4203,8 +2785,6 @@ }, "node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "license": "MIT", "dependencies": { @@ -4216,15 +2796,12 @@ }, "node_modules/color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true, "license": "MIT" }, "node_modules/combined-stream": { "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", "dependencies": { "delayed-stream": "~1.0.0" }, @@ -4232,56 +2809,37 @@ "node": ">= 0.8" } }, - "node_modules/commander": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", - "dev": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", - "dev": true - }, "node_modules/concat-map": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true, "license": "MIT" }, - "node_modules/confbox": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz", - "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==", - "dev": true - }, - "node_modules/consola": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/consola/-/consola-3.2.3.tgz", - "integrity": "sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==", - "dev": true, + "node_modules/convict": { + "version": "6.2.4", + "resolved": "https://registry.npmjs.org/convict/-/convict-6.2.4.tgz", + "integrity": "sha512-qN60BAwdMVdofckX7AlohVJ2x9UvjTNoKVXCL2LxFk1l7757EJqf1nySdMkPQer0bt8kQ5lQiyZ9/2NvrFBuwQ==", + "license": "Apache-2.0", + "dependencies": { + "lodash.clonedeep": "^4.5.0", + "yargs-parser": "^20.2.7" + }, "engines": { - "node": "^14.18.0 || >=16.10.0" + "node": ">=6" } }, - "node_modules/console-table-printer": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/console-table-printer/-/console-table-printer-2.12.1.tgz", - "integrity": "sha512-wKGOQRRvdnd89pCeH96e2Fn4wkbenSP6LMHfjfyNLMbGuHEFbMqQNuxXqd0oXG9caIOQ1FTvc5Uijp9/4jujnQ==", - "dev": true, - "dependencies": { - "simple-wcswidth": "^1.0.1" + "node_modules/convict/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "license": "ISC", + "engines": { + "node": ">=10" } }, "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dev": true, "license": "MIT", "dependencies": { @@ -4295,73 +2853,13 @@ }, "node_modules/data-uri-regex": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/data-uri-regex/-/data-uri-regex-0.1.4.tgz", - "integrity": "sha512-QnJ3LVGIitKfO1wZ08l+0cpQUNdEGRDKR0kH2prNvbfBUk0zVn7A6KSTvETGqD2BI1h1CgdqY4X8bEjKu4CdXA==", + "license": "MIT", "engines": { "node": ">=0.12.0" } }, - "node_modules/data-uri-to-buffer": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-2.0.2.tgz", - "integrity": "sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==", - "dev": true - }, - "node_modules/data-view-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", - "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/data-view-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", - "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/data-view-byte-offset": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", - "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/debug": { "version": "4.3.5", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", - "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", "devOptional": true, "license": "MIT", "dependencies": { @@ -4378,27 +2876,12 @@ }, "node_modules/deep-is": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true, "license": "MIT" }, - "node_modules/defaults": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", - "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", - "dev": true, - "dependencies": { - "clone": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/define-data-property": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "license": "MIT", "dependencies": { "es-define-property": "^1.0.0", "es-errors": "^1.3.0", @@ -4411,254 +2894,47 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "dev": true, - "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/defu": { - "version": "6.1.4", - "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.4.tgz", - "integrity": "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==", - "dev": true - }, "node_modules/delayed-stream": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", "engines": { "node": ">=0.4.0" } }, - "node_modules/dependency-graph": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", - "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", + "node_modules/eastasianwidth": { + "version": "0.2.0", "dev": true, - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/destr": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/destr/-/destr-2.0.3.tgz", - "integrity": "sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==", - "dev": true + "license": "MIT" }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "node_modules/emoji-regex": { + "version": "8.0.0", "dev": true, + "license": "MIT" + }, + "node_modules/es-define-property": { + "version": "1.0.0", "license": "MIT", "dependencies": { - "path-type": "^4.0.0" + "get-intrinsic": "^1.2.4" }, "engines": { - "node": ">=8" + "node": ">= 0.4" } }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "esutils": "^2.0.2" - }, + "node_modules/es-errors": { + "version": "1.3.0", + "license": "MIT", "engines": { - "node": ">=6.0.0" + "node": ">= 0.4" } }, - "node_modules/dotenv": { - "version": "16.4.5", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", - "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", + "node_modules/esbuild": { + "version": "0.23.1", "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://dotenvx.com" - } - }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/es-abstract": { - "version": "1.23.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", - "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", - "dev": true, - "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "arraybuffer.prototype.slice": "^1.0.3", - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "data-view-buffer": "^1.0.1", - "data-view-byte-length": "^1.0.1", - "data-view-byte-offset": "^1.0.0", - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-set-tostringtag": "^2.0.3", - "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.4", - "get-symbol-description": "^1.0.2", - "globalthis": "^1.0.3", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.0.3", - "has-symbols": "^1.0.3", - "hasown": "^2.0.2", - "internal-slot": "^1.0.7", - "is-array-buffer": "^3.0.4", - "is-callable": "^1.2.7", - "is-data-view": "^1.0.1", - "is-negative-zero": "^2.0.3", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.3", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.13", - "is-weakref": "^1.0.2", - "object-inspect": "^1.13.1", - "object-keys": "^1.1.1", - "object.assign": "^4.1.5", - "regexp.prototype.flags": "^1.5.2", - "safe-array-concat": "^1.1.2", - "safe-regex-test": "^1.0.3", - "string.prototype.trim": "^1.2.9", - "string.prototype.trimend": "^1.0.8", - "string.prototype.trimstart": "^1.0.8", - "typed-array-buffer": "^1.0.2", - "typed-array-byte-length": "^1.0.1", - "typed-array-byte-offset": "^1.0.2", - "typed-array-length": "^1.0.6", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.15" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-aggregate-error": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/es-aggregate-error/-/es-aggregate-error-1.0.13.tgz", - "integrity": "sha512-KkzhUUuD2CUMqEc8JEqsXEMDHzDPE8RCjZeUBitsnB1eNcAJWQPiciKsMXe3Yytj4Flw1XLl46Qcf9OxvZha7A==", - "dev": true, - "dependencies": { - "define-data-property": "^1.1.4", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "globalthis": "^1.0.3", - "has-property-descriptors": "^1.0.2", - "set-function-name": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", - "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", - "dependencies": { - "get-intrinsic": "^1.2.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-object-atoms": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", - "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", - "dev": true, - "dependencies": { - "es-errors": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-set-tostringtag": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", - "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.2.4", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/esbuild": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.23.1.tgz", - "integrity": "sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==", - "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" }, "engines": { "node": ">=18" @@ -4690,19 +2966,8 @@ "@esbuild/win32-x64": "0.23.1" } }, - "node_modules/escalade": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/escape-string-regexp": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, "license": "MIT", "engines": { @@ -4713,66 +2978,67 @@ } }, "node_modules/eslint": { - "version": "8.57.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", - "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", - "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", + "version": "9.16.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.16.0.tgz", + "integrity": "sha512-whp8mSQI4C8VXd+fLgSM0lh3UlmcFtVwUQjyKCFfsp+2ItAIYhlq/hqGahGqHE6cv9unM41VlqKk2VtKYR2TaA==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.57.1", - "@humanwhocodes/config-array": "^0.13.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.19.0", + "@eslint/core": "^0.9.0", + "@eslint/eslintrc": "^3.2.0", + "@eslint/js": "9.16.0", + "@eslint/plugin-kit": "^0.2.3", + "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", + "@humanwhocodes/retry": "^0.4.1", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", "ajv": "^6.12.4", "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", + "cross-spawn": "^7.0.5", "debug": "^4.3.2", - "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.4.2", + "eslint-scope": "^8.2.0", + "eslint-visitor-keys": "^4.2.0", + "espree": "^10.3.0", + "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", + "file-entry-cache": "^8.0.0", "find-up": "^5.0.0", "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" + "optionator": "^0.9.3" }, "bin": { "eslint": "bin/eslint.js" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://opencollective.com/eslint" + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } } }, "node_modules/eslint-config-prettier": { "version": "9.1.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", - "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", "dev": true, "license": "MIT", "bin": { @@ -4784,8 +3050,6 @@ }, "node_modules/eslint-plugin-prettier": { "version": "5.2.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.1.tgz", - "integrity": "sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw==", "dev": true, "license": "MIT", "dependencies": { @@ -4814,9 +3078,9 @@ } }, "node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz", + "integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -4824,7 +3088,7 @@ "estraverse": "^5.2.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -4832,8 +3096,6 @@ }, "node_modules/eslint-visitor-keys": { "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, "license": "Apache-2.0", "engines": { @@ -4843,67 +3105,52 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint/node_modules/@eslint/js": { - "version": "8.57.1", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", - "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/eslint/node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "node_modules/eslint/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", "dev": true, - "license": "MIT", - "dependencies": { - "type-fest": "^0.20.2" - }, + "license": "Apache-2.0", "engines": { - "node": ">=8" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://opencollective.com/eslint" } }, "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", + "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "acorn": "^8.9.0", + "acorn": "^8.14.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" + "eslint-visitor-keys": "^4.2.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" } }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, + "license": "Apache-2.0", "engines": { - "node": ">=4" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/esquery": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -4928,20 +3175,12 @@ }, "node_modules/estraverse": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } }, - "node_modules/estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", - "dev": true - }, "node_modules/esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", @@ -4954,62 +3193,30 @@ }, "node_modules/event-target-shim": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/events": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", "license": "MIT", "engines": { "node": ">=0.8.x" } }, - "node_modules/execa": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", - "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^8.0.1", - "human-signals": "^5.0.0", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^4.1.0", - "strip-final-newline": "^3.0.0" - }, - "engines": { - "node": ">=16.17" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, "node_modules/fast-deep-equal": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true, "license": "MIT" }, "node_modules/fast-diff": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", - "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", "dev": true, "license": "Apache-2.0" }, "node_modules/fast-glob": { "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", "dev": true, "license": "MIT", "dependencies": { @@ -5025,8 +3232,6 @@ }, "node_modules/fast-glob/node_modules/glob-parent": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "license": "ISC", "dependencies": { @@ -5045,27 +3250,11 @@ }, "node_modules/fast-levenshtein": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true, "license": "MIT" }, - "node_modules/fast-memoize": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/fast-memoize/-/fast-memoize-2.5.2.tgz", - "integrity": "sha512-Ue0LwpDYErFbmNnZSF0UH6eImUwDmogUO1jyE+JbN2gsQz/jICm1Ve7t9QT0rNSsfJt+Hs4/S3GnsDVjL4HVrw==", - "dev": true - }, - "node_modules/fast-uri": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.2.tgz", - "integrity": "sha512-GR6f0hD7XXyNJa25Tb9BuIdN0tdr+0BMi6/CJPH3wJO1JjNG3n/VsSw38AwRdKZABm8lGbPfakLRkYzx2V9row==", - "dev": true - }, "node_modules/fast-xml-parser": { "version": "4.4.1", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.4.1.tgz", - "integrity": "sha512-xkjOecfnKGkSsOwtZ5Pz7Us/T6mrbPQrq0nh+aCO5V9nk5NLWmasAHumTKjiPJPWANe+kAZ84Jc8ooJkzZ88Sw==", "funding": [ { "type": "github", @@ -5086,8 +3275,6 @@ }, "node_modules/fastq": { "version": "1.17.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", - "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", "dev": true, "license": "ISC", "dependencies": { @@ -5095,28 +3282,25 @@ } }, "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", "dev": true, "license": "MIT", "dependencies": { - "flat-cache": "^3.0.4" + "flat-cache": "^4.0.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=16.0.0" } }, "node_modules/file-uri-to-path": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "license": "MIT", "optional": true }, "node_modules/fill-range": { "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, "license": "MIT", "dependencies": { @@ -5128,8 +3312,6 @@ }, "node_modules/find-up": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, "license": "MIT", "dependencies": { @@ -5143,42 +3325,41 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/find-yarn-workspace-root": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz", + "integrity": "sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "micromatch": "^4.0.2" + } + }, "node_modules/flat-cache": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", - "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", "dev": true, "license": "MIT", "dependencies": { "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" + "keyv": "^4.5.4" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=16" } }, "node_modules/flatted": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", - "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.2.tgz", + "integrity": "sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==", "dev": true, "license": "ISC" }, - "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.3" - } - }, "node_modules/foreground-child": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.2.1.tgz", - "integrity": "sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==", "dev": true, + "license": "ISC", "dependencies": { "cross-spawn": "^7.0.0", "signal-exit": "^4.0.1" @@ -5192,8 +3373,7 @@ }, "node_modules/form-data": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "license": "MIT", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -5205,13 +3385,11 @@ }, "node_modules/form-data-encoder": { "version": "1.7.2", - "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.2.tgz", - "integrity": "sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==" + "license": "MIT" }, "node_modules/formdata-node": { "version": "4.4.1", - "resolved": "https://registry.npmjs.org/formdata-node/-/formdata-node-4.4.1.tgz", - "integrity": "sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==", + "license": "MIT", "dependencies": { "node-domexception": "1.0.0", "web-streams-polyfill": "4.0.0-beta.3" @@ -5222,62 +3400,20 @@ }, "node_modules/formdata-node/node_modules/web-streams-polyfill": { "version": "4.0.0-beta.3", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-4.0.0-beta.3.tgz", - "integrity": "sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==", + "license": "MIT", "engines": { "node": ">= 14" } }, - "node_modules/fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/fs-minipass/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/fs.realpath": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/fsevents": { "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, - "hasInstallScript": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -5288,22 +3424,20 @@ }, "node_modules/function-bind": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/function.prototype.name": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", - "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", - "dev": true, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "functions-have-names": "^1.2.3" + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" }, "engines": { "node": ">= 0.4" @@ -5312,191 +3446,55 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "node_modules/get-tsconfig": { + "version": "4.7.5", "dev": true, + "license": "MIT", + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" } }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "node_modules/glob": { + "version": "7.2.3", "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "license": "ISC", "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, "engines": { - "node": ">= 0.4" + "node": "*" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/get-source": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/get-source/-/get-source-2.0.12.tgz", - "integrity": "sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==", + "node_modules/glob-parent": { + "version": "6.0.2", "dev": true, + "license": "ISC", "dependencies": { - "data-uri-to-buffer": "^2.0.0", - "source-map": "^0.6.1" + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" } }, - "node_modules/get-stream": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", - "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "node_modules/globals": { + "version": "15.13.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.13.0.tgz", + "integrity": "sha512-49TewVEz0UxZjr1WYYsWpPrhyC/B/pA8Bq0fUmet2n+eR7yn0IvNzNaoBwnK6mdkzcN+se7Ez9zUgULTz2QH4g==", "dev": true, + "license": "MIT", "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-symbol-description": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", - "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.5", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-tsconfig": { - "version": "4.7.5", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.5.tgz", - "integrity": "sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==", - "dev": true, - "dependencies": { - "resolve-pkg-maps": "^1.0.0" - }, - "funding": { - "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" - } - }, - "node_modules/giget": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/giget/-/giget-1.2.3.tgz", - "integrity": "sha512-8EHPljDvs7qKykr6uw8b+lqLiUc/vUg+KVTI0uND4s63TdsZM2Xus3mflvF0DDG9SiM4RlCkFGL+7aAjRmV7KA==", - "dev": true, - "dependencies": { - "citty": "^0.1.6", - "consola": "^3.2.3", - "defu": "^6.1.4", - "node-fetch-native": "^1.6.3", - "nypm": "^0.3.8", - "ohash": "^1.1.3", - "pathe": "^1.1.2", - "tar": "^6.2.0" - }, - "bin": { - "giget": "dist/cli.mjs" - } - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/globals": { - "version": "15.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-15.12.0.tgz", - "integrity": "sha512-1+gLErljJFhbOVyaetcwJiJ4+eLe45S2E7P5UiZ9xGfeq3ATQf5DOv9G7MH3gGbKQLkzmNh2DxfZwLdw+j6oTQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globalthis": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", - "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", - "dev": true, - "dependencies": { - "define-properties": "^1.2.1", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -5504,8 +3502,7 @@ }, "node_modules/gopd": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "license": "MIT", "dependencies": { "get-intrinsic": "^1.1.3" }, @@ -5515,9 +3512,8 @@ }, "node_modules/graceful-fs": { "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/graphemer": { "version": "1.4.0", @@ -5526,40 +3522,8 @@ "dev": true, "license": "MIT" }, - "node_modules/handlebars": { - "version": "4.7.8", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", - "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5", - "neo-async": "^2.6.2", - "source-map": "^0.6.1", - "wordwrap": "^1.0.0" - }, - "bin": { - "handlebars": "bin/handlebars" - }, - "engines": { - "node": ">=0.4.7" - }, - "optionalDependencies": { - "uglify-js": "^3.1.4" - } - }, - "node_modules/has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "license": "MIT", "engines": { @@ -5568,8 +3532,7 @@ }, "node_modules/has-property-descriptors": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "license": "MIT", "dependencies": { "es-define-property": "^1.0.0" }, @@ -5579,8 +3542,7 @@ }, "node_modules/has-proto": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", - "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -5590,23 +3552,7 @@ }, "node_modules/has-symbols": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.3" - }, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -5616,8 +3562,7 @@ }, "node_modules/hasown": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", "dependencies": { "function-bind": "^1.1.2" }, @@ -5625,113 +3570,15 @@ "node": ">= 0.4" } }, - "node_modules/hpagent": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/hpagent/-/hpagent-1.2.0.tgz", - "integrity": "sha512-A91dYTeIB6NoXG+PxTQpCCDDnfHsW9kc06Lvpu1TEe9gnd6ZFeiBoRO9JvzEv6xK7EX97/dUE8g/vBMTqTS3CA==", - "dev": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/human-signals": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", - "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", - "dev": true, - "engines": { - "node": ">=16.17.0" - } - }, "node_modules/humanize-ms": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", + "license": "MIT", "dependencies": { "ms": "^2.0.0" } }, - "node_modules/ibm-openapi-validator": { - "version": "1.25.0", - "resolved": "https://registry.npmjs.org/ibm-openapi-validator/-/ibm-openapi-validator-1.25.0.tgz", - "integrity": "sha512-GaFmYaarnHuvnN30YWDgT5UZLt1jFNqORMgRacI1WQmu1jHlcOD0Xl1xX6ZVK1gPL4q9DNri56tFjNPSPwolmw==", - "dev": true, - "dependencies": { - "@ibm-cloud/openapi-ruleset": "1.23.2", - "@ibm-cloud/openapi-ruleset-utilities": "1.4.0", - "@stoplight/spectral-cli": "^6.13.1", - "@stoplight/spectral-core": "^1.19.1", - "@stoplight/spectral-parsers": "^1.0.4", - "@stoplight/spectral-ref-resolver": "^1.0.4", - "ajv": "^8.17.1", - "chalk": "^4.1.2", - "commander": "^10.0.1", - "console-table-printer": "^2.12.1", - "find-up": "5.0.0", - "globby": "^11.0.4", - "js-yaml": "^3.14.1", - "json-dup-key-validator": "^1.0.3", - "lodash": "^4.17.21", - "nimma": "^0.7.0", - "pad": "^2.3.0", - "semver": "^7.6.0" - }, - "bin": { - "lint-openapi": "src/cli-validator/index.js" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=8.3.0" - } - }, - "node_modules/ibm-openapi-validator/node_modules/ajv": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ibm-openapi-validator/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/ibm-openapi-validator/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/ibm-openapi-validator/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, "node_modules/ieee754": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", "funding": [ { "type": "github", @@ -5750,24 +3597,12 @@ }, "node_modules/ignore": { "version": "5.3.1", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", - "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", "dev": true, "license": "MIT", "engines": { "node": ">= 4" } }, - "node_modules/immer": { - "version": "9.0.21", - "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.21.tgz", - "integrity": "sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/immer" - } - }, "node_modules/import-fresh": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", @@ -5787,8 +3622,6 @@ }, "node_modules/imurmurhash": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, "license": "MIT", "engines": { @@ -5797,10 +3630,8 @@ }, "node_modules/inflight": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", "dev": true, + "license": "ISC", "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -5808,66 +3639,20 @@ }, "node_modules/inherits": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/internal-slot": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", - "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", - "dev": true, - "dependencies": { - "es-errors": "^1.3.0", - "hasown": "^2.0.0", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-array-buffer": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", - "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "license": "ISC" }, "node_modules/is-audio-buffer": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-audio-buffer/-/is-audio-buffer-1.1.0.tgz", - "integrity": "sha512-fmPC/dizJmP4ITCsW5oTQGMJ9wZVE+A/zAe6FQo3XwgERxmXHmm3ON5XkWDAxmyxvsrDmWx3NArpSgamp/59AA==" + "license": "MIT" }, "node_modules/is-base64": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-base64/-/is-base64-0.1.0.tgz", - "integrity": "sha512-WRRyllsGXJM7ZN7gPTCCQ/6wNPTRDwiWdPK66l5sJzcU/oOzcIcRRf0Rux8bkpox/1yjt0F6VJRsQOIG2qz5sg==" - }, - "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dev": true, - "dependencies": { - "has-bigints": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "license": "MIT" }, "node_modules/is-binary-path": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, + "license": "MIT", "dependencies": { "binary-extensions": "^2.0.0" }, @@ -5875,31 +3660,12 @@ "node": ">=8" } }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-browser": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-browser/-/is-browser-2.1.0.tgz", - "integrity": "sha512-F5rTJxDQ2sW81fcfOR1GnCXT6sVJC104fCyfj+mjpwNEwaPYSn5fte5jiHmBg3DHsIoL/l8Kvw5VN5SsTRcRFQ==" + "license": "MIT" }, "node_modules/is-buffer": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", "funding": [ { "type": "github", @@ -5914,41 +3680,14 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "engines": { "node": ">=4" } }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-core-module": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", - "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", - "dev": true, - "dependencies": { - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-data-uri": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-data-uri/-/is-data-uri-0.1.0.tgz", - "integrity": "sha512-f8UoAIxZ+9xkHv19viLuXOD5PcbasuwT0Syq1socQZkHmNFV0DVIshld0TEjLPHG8t+kTmNHimht5NY3j5Pk5A==", + "license": "MIT", "dependencies": { "data-uri-regex": "^0.1.2" }, @@ -5956,40 +3695,24 @@ "node": ">=0.10.0" } }, - "node_modules/is-data-view": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", - "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", "dev": true, - "dependencies": { - "is-typed-array": "^1.1.13" + "license": "MIT", + "bin": { + "is-docker": "cli.js" }, "engines": { - "node": ">= 0.4" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "node_modules/is-extglob": { + "version": "2.1.1", "dev": true, "license": "MIT", "engines": { @@ -5998,17 +3721,14 @@ }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/is-glob": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, "license": "MIT", "dependencies": { @@ -6018,193 +3738,52 @@ "node": ">=0.10.0" } }, - "node_modules/is-negative-zero": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", - "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-number": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, "license": "MIT", "engines": { "node": ">=0.12.0" } }, - "node_modules/is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/is-plain-obj": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/is-promise": { "version": "2.2.2", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", - "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==" - }, - "node_modules/is-reference": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", - "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", - "dev": true, - "dependencies": { - "@types/estree": "*" - } - }, - "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", - "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "license": "MIT" }, - "node_modules/is-typed-array": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", - "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", "dev": true, + "license": "MIT", "dependencies": { - "which-typed-array": "^1.1.14" + "is-docker": "^2.0.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8" } }, "node_modules/isarray": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/isexe": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "dev": true, "license": "ISC" }, "node_modules/jackspeak": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.0.1.tgz", - "integrity": "sha512-cub8rahkh0Q/bw1+GxP7aeSe29hHHn2V4m29nnDlvCdlgU+3UGxkZp7Z53jLUdpX3jdTO0nJZUDl3xvbWc2Xog==", "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { "@isaacs/cliui": "^8.0.2" }, @@ -6220,23 +3799,20 @@ }, "node_modules/jiti": { "version": "2.3.2", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.3.2.tgz", - "integrity": "sha512-9ZLDe7kYLCyWTAP6EIyg3B4ZuHy5W0gdy6y1rgrWrAOpTrUU+vKuKa1+OXB7MBkujyvm6a2b7i0ETHQDbgY98A==", "dev": true, + "license": "MIT", + "optional": true, + "peer": true, "bin": { "jiti": "lib/jiti-cli.mjs" } }, "node_modules/js-base64": { "version": "3.7.2", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.7.2.tgz", - "integrity": "sha512-NnRs6dsyqUXejqk/yv2aiXlAvOs56sLkX6nUdeaNezI5LFFLlsZjOThmwnrcwh5ZZRwZlCMnVAY3CvhIhoVEKQ==", "license": "BSD-3-Clause" }, "node_modules/js-yaml": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, "license": "MIT", "dependencies": { @@ -6246,15 +3822,6 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/jsep": { - "version": "1.3.9", - "resolved": "https://registry.npmjs.org/jsep/-/jsep-1.3.9.tgz", - "integrity": "sha512-i1rBX5N7VPl0eYb6+mHNp52sEuaS2Wi8CDYx1X5sn9naevL78+265XJqy1qENEk7mRKwS06NHpUqiBwR7qeodw==", - "dev": true, - "engines": { - "node": ">= 10.16.0" - } - }, "node_modules/json-buffer": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", @@ -6262,13 +3829,28 @@ "dev": true, "license": "MIT" }, - "node_modules/json-dup-key-validator": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/json-dup-key-validator/-/json-dup-key-validator-1.0.3.tgz", - "integrity": "sha512-JvJcV01JSiO7LRz7DY1Fpzn4wX2rJ3dfNTiAfnlvLNdhhnm0Pgdvhi2SGpENrZn7eSg26Ps3TPhOcuD/a4STXQ==", + "node_modules/json-schema-to-typescript": { + "version": "15.0.3", + "resolved": "https://registry.npmjs.org/json-schema-to-typescript/-/json-schema-to-typescript-15.0.3.tgz", + "integrity": "sha512-iOKdzTUWEVM4nlxpFudFsWyUiu/Jakkga4OZPEt7CGoSEsAsUgdOZqR6pcgx2STBek9Gm4hcarJpXSzIvZ/hKA==", "dev": true, + "license": "MIT", "dependencies": { - "backslash": "^0.2.0" + "@apidevtools/json-schema-ref-parser": "^11.5.5", + "@types/json-schema": "^7.0.15", + "@types/lodash": "^4.17.7", + "is-glob": "^4.0.3", + "js-yaml": "^4.1.0", + "lodash": "^4.17.21", + "minimist": "^1.2.8", + "prettier": "^3.2.5", + "tinyglobby": "^0.2.9" + }, + "bin": { + "json2ts": "dist/src/cli.js" + }, + "engines": { + "node": ">=16.0.0" } }, "node_modules/json-schema-traverse": { @@ -6278,24 +3860,34 @@ "dev": true, "license": "MIT" }, + "node_modules/json-stable-stringify": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.1.1.tgz", + "integrity": "sha512-SU/971Kt5qVQfJpyDveVhQ/vya+5hvrjClFOcr8c0Fq5aODJjMwutrOfCU+eCnVD5gpx1Q3fEqkyom77zH1iIg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.5", + "isarray": "^2.0.5", + "jsonify": "^0.0.1", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true, "license": "MIT" }, - "node_modules/jsonc-parser": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-2.2.1.tgz", - "integrity": "sha512-o6/yDBYccGvTz1+QFevz6l6OBZ2+fMVu2JZ9CIhzsYRX4mjaK5IyX9eldUdCmga16zlgQxyrj5pt9kzuj2C02w==", - "dev": true - }, "node_modules/jsonfile": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "dev": true, + "license": "MIT", "dependencies": { "universalify": "^2.0.0" }, @@ -6303,22 +3895,14 @@ "graceful-fs": "^4.1.6" } }, - "node_modules/jsonpath-plus": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/jsonpath-plus/-/jsonpath-plus-7.1.0.tgz", - "integrity": "sha512-gTaNRsPWO/K2KY6MrqaUFClF9kmuM6MFH5Dhg1VYDODgFbByw1yb7xu3hrViE/sz+dGOeMWgCzwUwQtAnCTE9g==", - "dev": true, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/jsonpointer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", - "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==", + "node_modules/jsonify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.1.tgz", + "integrity": "sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==", "dev": true, - "engines": { - "node": ">=0.10.0" + "license": "Public Domain", + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/keyv": { @@ -6331,19 +3915,18 @@ "json-buffer": "3.0.1" } }, - "node_modules/leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "node_modules/klaw-sync": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/klaw-sync/-/klaw-sync-6.0.0.tgz", + "integrity": "sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ==", "dev": true, - "engines": { - "node": ">=6" + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.11" } }, "node_modules/levn": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, "license": "MIT", "dependencies": { @@ -6356,8 +3939,6 @@ }, "node_modules/locate-path": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, "license": "MIT", "dependencies": { @@ -6372,76 +3953,30 @@ }, "node_modules/lodash": { "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true, "license": "MIT" }, - "node_modules/lodash.topath": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/lodash.topath/-/lodash.topath-4.5.2.tgz", - "integrity": "sha512-1/W4dM+35DwvE/iEd1M9ekewOSTlpFekhw9mhAtrwjVqUr83/ilQiyAvmg4tVX7Unkcfl1KC+i9WdaT4B6aQcg==", - "dev": true + "node_modules/lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==", + "license": "MIT" }, - "node_modules/loglevel": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.9.2.tgz", - "integrity": "sha512-HgMmCqIJSAKqo68l0rS2AanEWfkxaZ5wNiEFb5ggm08lDs9Xl2KxBlX3PTcaD2chBM1gXAYf491/M2Rv8Jwayg==", + "node_modules/lodash.merge": { + "version": "4.6.2", "dev": true, - "engines": { - "node": ">= 0.6.0" - }, - "funding": { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/loglevel" - } - }, - "node_modules/loglevel-plugin-prefix": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/loglevel-plugin-prefix/-/loglevel-plugin-prefix-0.8.4.tgz", - "integrity": "sha512-WpG9CcFAOjz/FtNht+QJeGpvVl/cdR6P0z6OcXSkr8wFJOsV2GRj2j10JLfjuA4aYkcKCNIEqRGCyTife9R8/g==", - "dev": true + "license": "MIT" }, "node_modules/lru-cache": { "version": "11.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.0.tgz", - "integrity": "sha512-Qv32eSV1RSCfhY3fpPE2GNZ8jgM9X7rdAfemLWqTUxwiyIC4jJ6Sy0fZ8H+oLWevO6i4/bizg7c8d8i6bxrzbA==", "dev": true, + "license": "ISC", "engines": { "node": "20 || >=22" } }, - "node_modules/magic-string": { - "version": "0.25.9", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", - "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", - "dev": true, - "dependencies": { - "sourcemap-codec": "^1.4.8" - } - }, - "node_modules/markdown-escape": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/markdown-escape/-/markdown-escape-2.0.0.tgz", - "integrity": "sha512-Trz4v0+XWlwy68LJIyw3bLbsJiC8XAbRCKF9DbEtZjyndKOGVx6n+wNB0VfoRmY2LKboQLeniap3xrb6LGSJ8A==", - "dev": true - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, "node_modules/merge2": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, "license": "MIT", "engines": { @@ -6450,8 +3985,6 @@ }, "node_modules/micromatch": { "version": "4.0.7", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", - "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", "dev": true, "license": "MIT", "dependencies": { @@ -6464,16 +3997,14 @@ }, "node_modules/mime-db": { "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/mime-types": { "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", "dependencies": { "mime-db": "1.52.0" }, @@ -6481,22 +4012,8 @@ "node": ">= 0.6" } }, - "node_modules/mimic-fn": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/minimatch": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "license": "ISC", "dependencies": { @@ -6508,75 +4025,15 @@ }, "node_modules/minimist": { "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minizlib/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/mlly": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.7.2.tgz", - "integrity": "sha512-tN3dvVHYVz4DhSXinXIk7u9syPYaJvio118uomkovAtWBT+RdbP6Lfh/5Lvo519YMmwBafwlh20IPTXIStscpA==", - "dev": true, - "dependencies": { - "acorn": "^8.12.1", - "pathe": "^1.1.2", - "pkg-types": "^1.2.0", - "ufo": "^1.5.4" - } - }, "node_modules/mpg123-decoder": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/mpg123-decoder/-/mpg123-decoder-1.0.0.tgz", - "integrity": "sha512-WV+pyuMUhRqv7s8S6p/Ii4KQHdBD1pb3yaABxcKJRsNp+HQ/Y6z2iIBIaOZu0JMHPTOoICYt0REDZ7XfLu+n/g==", + "license": "MIT", "dependencies": { "@wasm-audio-decoders/common": "9.0.5" }, @@ -6587,55 +4044,29 @@ }, "node_modules/ms": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "license": "MIT" }, "node_modules/natural-compare": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true, "license": "MIT" }, "node_modules/negative-index": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/negative-index/-/negative-index-1.0.3.tgz", - "integrity": "sha512-SzyzUmUYmerjD9gOEqizFRcDakY+Cf/59rOfqMi4bT212PN6g+jkUOjr/Sx9oOUOxi7qf6dsRwE0PPeRIq4DRw==", + "license": "MIT", "dependencies": { "negative-zero": "^2.0.0" } }, "node_modules/negative-zero": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/negative-zero/-/negative-zero-2.0.0.tgz", - "integrity": "sha512-OZYg1wcBGrFelnZ970V7SN5icAdXJ+KBn0x/AxN1DZEH82qIeFuqyPVS+9FaPtLAoD3GrDl+byffOVcOh+UvKg==", + "license": "MIT", "engines": { "node": ">=4" } }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true - }, - "node_modules/nimma": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/nimma/-/nimma-0.7.0.tgz", - "integrity": "sha512-Q2883SBl8RiCsQSzoK8efH+ByD8KArcU7CNNXtkWf0VVLT7ECXbsL7uM/YcrQ49l17m6UxqmvGa6sVUwfnP+9A==", - "dev": true, - "dependencies": { - "astring": "^1.8.6" - }, - "engines": { - "node": ">=18" - } - }, "node_modules/node-domexception": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", - "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", "funding": [ { "type": "github", @@ -6646,14 +4077,14 @@ "url": "https://paypal.me/jimmywarting" } ], + "license": "MIT", "engines": { "node": ">=10.5.0" } }, "node_modules/node-fetch": { "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "license": "MIT", "dependencies": { "whatwg-url": "^5.0.0" }, @@ -6669,101 +4100,31 @@ } } }, - "node_modules/node-fetch-native": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.6.4.tgz", - "integrity": "sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ==", - "dev": true - }, - "node_modules/node-sarif-builder": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/node-sarif-builder/-/node-sarif-builder-2.0.3.tgz", - "integrity": "sha512-Pzr3rol8fvhG/oJjIq2NTVB0vmdNNlz22FENhhPojYRZ4/ee08CfK4YuKmuL54V9MLhI1kpzxfOJ/63LzmZzDg==", - "dev": true, - "dependencies": { - "@types/sarif": "^2.1.4", - "fs-extra": "^10.0.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/node-wav": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/node-wav/-/node-wav-0.0.2.tgz", - "integrity": "sha512-M6Rm/bbG6De/gKGxOpeOobx/dnGuP0dz40adqx38boqHhlWssBJZgLCPBNtb9NkrmnKYiV04xELq+R6PFOnoLA==", - "engines": { - "node": ">=4.4.0" - } + "node_modules/node-wav": { + "version": "0.0.2", + "license": "MIT", + "engines": { + "node": ">=4.4.0" + } }, "node_modules/normalize-path": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/npm-run-path": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", - "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", - "dev": true, - "dependencies": { - "path-key": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/npm-run-path/node_modules/path-key": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/nypm": { - "version": "0.3.12", - "resolved": "https://registry.npmjs.org/nypm/-/nypm-0.3.12.tgz", - "integrity": "sha512-D3pzNDWIvgA+7IORhD/IuWzEk4uXv6GsgOxiid4UU3h9oq5IqV1KtPDi63n4sZJ/xcWlr88c0QM2RgN5VbOhFA==", - "dev": true, - "dependencies": { - "citty": "^0.1.6", - "consola": "^3.2.3", - "execa": "^8.0.1", - "pathe": "^1.1.2", - "pkg-types": "^1.2.0", - "ufo": "^1.5.4" - }, - "bin": { - "nypm": "dist/cli.mjs" - }, - "engines": { - "node": "^14.16.0 || >=16.10.0" - } - }, "node_modules/object-assign": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/object-inspect": { "version": "1.13.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", - "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -6773,35 +4134,15 @@ }, "node_modules/object-keys": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", - "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", "dev": true, - "dependencies": { - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - }, + "license": "MIT", "engines": { "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, "node_modules/ogg-opus-decoder": { "version": "1.6.13", - "resolved": "https://registry.npmjs.org/ogg-opus-decoder/-/ogg-opus-decoder-1.6.13.tgz", - "integrity": "sha512-hE2mEjFCzx5ERP9T/JxFgJgKOJ5abLSANATb9dOxqTAI424/cA/gESnAay2Soju/2LCT0MPknNQA5b2eDdFUpA==", + "license": "MIT", "dependencies": { "@wasm-audio-decoders/common": "9.0.5", "codec-parser": "2.5.0", @@ -6812,40 +4153,35 @@ "url": "https://github.com/sponsors/eshaz" } }, - "node_modules/ohash": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/ohash/-/ohash-1.1.4.tgz", - "integrity": "sha512-FlDryZAahJmEF3VR3w1KogSEdWX3WhA5GPakFx4J81kEAiHyLMpdLLElS8n8dfNadMgAne/MywcvmogzscVt4g==", - "dev": true - }, "node_modules/once": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, + "license": "ISC", "dependencies": { "wrappy": "1" } }, - "node_modules/onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "node_modules/open": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", + "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", "dev": true, + "license": "MIT", "dependencies": { - "mimic-fn": "^4.0.0" + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" }, "engines": { - "node": ">=12" + "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/openai": { - "version": "4.71.1", - "resolved": "https://registry.npmjs.org/openai/-/openai-4.71.1.tgz", - "integrity": "sha512-C6JNMaQ1eijM0lrjiRUL3MgThVP5RdwNAghpbJFdW0t11LzmyqON8Eh8MuUuEZ+CeD6bgYl2Fkn2BoptVxv9Ug==", + "version": "4.76.0", + "resolved": "https://registry.npmjs.org/openai/-/openai-4.76.0.tgz", + "integrity": "sha512-QBGIetjX1C9xDp5XGa/3mPnfKI9BgAe2xHQX6PmO98wuW9qQaurBaumcYptQWc9LHZZq7cH/Y1Rjnsr6uUDdVw==", "license": "Apache-2.0", "dependencies": { "@types/node": "^18.11.18", @@ -6870,21 +4206,17 @@ }, "node_modules/openai/node_modules/@types/node": { "version": "18.19.59", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.59.tgz", - "integrity": "sha512-vizm2EqwV/7Zay+A6J3tGl9Lhr7CjZe2HmWS988sefiEmsyP9CeXEleho6i4hJk/8UtZAo0bWN4QPZZr83RxvQ==", + "license": "MIT", "dependencies": { "undici-types": "~5.26.4" } }, "node_modules/openai/node_modules/undici-types": { "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + "license": "MIT" }, "node_modules/optionator": { "version": "0.9.4", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", - "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "dev": true, "license": "MIT", "dependencies": { @@ -6901,8 +4233,7 @@ }, "node_modules/opus-decoder": { "version": "0.7.6", - "resolved": "https://registry.npmjs.org/opus-decoder/-/opus-decoder-0.7.6.tgz", - "integrity": "sha512-5QYSl1YQYbSzWL7vM4dJoyrLC804xIvBFjfKTZZ6/z/EgmdFouOTT+8PDM2V18vzgnhRNPDuyB2aTfl/2hvMRA==", + "license": "MIT", "dependencies": { "@wasm-audio-decoders/common": "9.0.5" }, @@ -6911,10 +4242,18 @@ "url": "https://github.com/sponsors/eshaz" } }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/p-limit": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "license": "MIT", "dependencies": { @@ -6929,8 +4268,6 @@ }, "node_modules/p-locate": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, "license": "MIT", "dependencies": { @@ -6945,21 +4282,8 @@ }, "node_modules/package-json-from-dist": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", - "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==", - "dev": true - }, - "node_modules/pad": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pad/-/pad-2.3.0.tgz", - "integrity": "sha512-lxrgnOG5AXmzMRT1O5urWtYFxHnFSE+QntgTHij1nvS4W+ubhQLmQRHmZXDeEvk9I00itAixLqU9Q6fE0gW3sw==", "dev": true, - "dependencies": { - "wcwidth": "^1.0.1" - }, - "engines": { - "node": ">= 4.0.0" - } + "license": "BlueOak-1.0.0" }, "node_modules/parent-module": { "version": "1.0.1", @@ -6974,10 +4298,65 @@ "node": ">=6" } }, + "node_modules/patch-package": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/patch-package/-/patch-package-8.0.0.tgz", + "integrity": "sha512-da8BVIhzjtgScwDJ2TtKsfT5JFWz1hYoBl9rUQ1f38MC2HwnEIkK8VN3dKMKcP7P7bvvgzNDbfNHtx3MsQb5vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@yarnpkg/lockfile": "^1.1.0", + "chalk": "^4.1.2", + "ci-info": "^3.7.0", + "cross-spawn": "^7.0.3", + "find-yarn-workspace-root": "^2.0.0", + "fs-extra": "^9.0.0", + "json-stable-stringify": "^1.0.2", + "klaw-sync": "^6.0.0", + "minimist": "^1.2.6", + "open": "^7.4.2", + "rimraf": "^2.6.3", + "semver": "^7.5.3", + "slash": "^2.0.0", + "tmp": "^0.0.33", + "yaml": "^2.2.2" + }, + "bin": { + "patch-package": "index.js" + }, + "engines": { + "node": ">=14", + "npm": ">5" + } + }, + "node_modules/patch-package/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/patch-package/node_modules/slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/path-exists": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, "license": "MIT", "engines": { @@ -6986,34 +4365,24 @@ }, "node_modules/path-is-absolute": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/path-key": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, "node_modules/path-scurry": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz", - "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==", "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { "lru-cache": "^11.0.0", "minipass": "^7.1.2" @@ -7027,33 +4396,15 @@ }, "node_modules/path-scurry/node_modules/minipass": { "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "dev": true, + "license": "ISC", "engines": { "node": ">=16 || 14 >=14.17" } }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/pathe": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", - "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", - "dev": true - }, "node_modules/pcm-convert": { "version": "1.6.5", - "resolved": "https://registry.npmjs.org/pcm-convert/-/pcm-convert-1.6.5.tgz", - "integrity": "sha512-5CEspU4j8aEQ80AhNbcLfpT0apc93E6endFxahWd4sV70I6PN7LPdz8GoYm/1qr400K9bUVsVA+KxNgbFROZPw==", + "license": "MIT", "dependencies": { "audio-format": "^2.3.2", "is-audio-buffer": "^1.0.11", @@ -7063,14 +4414,11 @@ }, "node_modules/pcm-convert/node_modules/is-buffer": { "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + "license": "MIT" }, "node_modules/pcm-util": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/pcm-util/-/pcm-util-2.1.0.tgz", - "integrity": "sha512-gC6DtsnHJgOQ3Xp4ybdLclANWRi0YnL2ojn6HXznoqcL0kM3ZNcyGFIuRH/CKEy65VTGc2ZAL90m/IoqT5mGGQ==", - "deprecated": "Not as cool as you may think. Look pcm-convert.", + "license": "MIT", "dependencies": { "audio-buffer": "^3.0.0", "is-audio-buffer": "^1.0.1", @@ -7080,9 +4428,7 @@ }, "node_modules/pcm-util/node_modules/audio-buffer": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/audio-buffer/-/audio-buffer-3.2.1.tgz", - "integrity": "sha512-yQNZUatQ5dF7h4BezYLy6T9w4LHahMVXrncFZJjI+N44S3O0lEgZcicsSSdvgNk0gLii58Q4gTvSZyohYqRbfw==", - "deprecated": "Depends on Web-Audio-API implementation. Use either web-audio-api, web-audio-js or web-audio-engine package.", + "license": "MIT", "dependencies": { "audio-context": "^1.0.0", "buffer-to-arraybuffer": "latest", @@ -7094,29 +4440,18 @@ }, "node_modules/pcm-util/node_modules/is-buffer": { "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "node_modules/perfect-debounce": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-1.0.0.tgz", - "integrity": "sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==", - "dev": true + "license": "MIT" }, "node_modules/performance-now": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" + "license": "MIT" }, "node_modules/pick-by-alias": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pick-by-alias/-/pick-by-alias-1.2.0.tgz", - "integrity": "sha512-ESj2+eBxhGrcA1azgHs7lARG5+5iLakc/6nlfbpjcLl00HuuUOIuORhYXN4D1HfvMSKuVtFQjAlnwi1JHEeDIw==" + "license": "MIT" }, "node_modules/picomatch": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, "license": "MIT", "engines": { @@ -7126,22 +4461,10 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/pkg-types": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.2.0.tgz", - "integrity": "sha512-+ifYuSSqOQ8CqP4MbZA5hDpb97n3E8SVWdJe+Wms9kj745lmd3b7EZJiqvmLwAlmRfjrI7Hi5z3kdBJ93lFNPA==", - "dev": true, - "dependencies": { - "confbox": "^0.1.7", - "mlly": "^1.7.1", - "pathe": "^1.1.2" - } - }, "node_modules/polite-json": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/polite-json/-/polite-json-5.0.0.tgz", - "integrity": "sha512-OLS/0XeUAcE8a2fdwemNja+udKgXNnY6yKVIXqAD2zVRx1KvY6Ato/rZ2vdzbxqYwPW0u6SCNC/bAMPNzpzxbw==", "dev": true, + "license": "MIT", "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" }, @@ -7149,28 +4472,8 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/pony-cause": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pony-cause/-/pony-cause-1.1.1.tgz", - "integrity": "sha512-PxkIc/2ZpLiEzQXu5YRDOUgBlfGYBY8156HY5ZcRAwwonMk5W/MrJP2LLkG/hF7GEQzaHo2aS7ho6ZLCOvf+6g==", - "dev": true, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/possible-typed-array-names": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", - "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/prelude-ls": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, "license": "MIT", "engines": { @@ -7178,10 +4481,11 @@ } }, "node_modules/prettier": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", - "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.4.2.tgz", + "integrity": "sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==", "dev": true, + "license": "MIT", "bin": { "prettier": "bin/prettier.cjs" }, @@ -7194,8 +4498,6 @@ }, "node_modules/prettier-linter-helpers": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", - "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", "dev": true, "license": "MIT", "dependencies": { @@ -7205,16 +4507,8 @@ "node": ">=6.0.0" } }, - "node_modules/printable-characters": { - "version": "1.0.42", - "resolved": "https://registry.npmjs.org/printable-characters/-/printable-characters-1.0.42.tgz", - "integrity": "sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==", - "dev": true - }, "node_modules/process": { "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", "license": "MIT", "engines": { "node": ">= 0.6.0" @@ -7222,8 +4516,7 @@ }, "node_modules/pull-stream": { "version": "3.7.0", - "resolved": "https://registry.npmjs.org/pull-stream/-/pull-stream-3.7.0.tgz", - "integrity": "sha512-Eco+/R004UaCK2qEDE8vGklcTG2OeZSVm1kTUQNrykEjDwcFXDZhygFDsW49DbXyJMEhHeRL3z5cRVqPAhXlIw==" + "license": "MIT" }, "node_modules/punycode": { "version": "2.3.1", @@ -7237,16 +4530,13 @@ }, "node_modules/qoa-format": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/qoa-format/-/qoa-format-1.0.1.tgz", - "integrity": "sha512-dMB0Z6XQjdpz/Cw4Rf6RiBpQvUSPCfYlQMWvmuWlWkAT7nDQD29cVZ1SwDUB6DYJSitHENwbt90lqfI+7bvMcw==", + "license": "MIT", "dependencies": { "@thi.ng/bitstream": "^2.2.12" } }, "node_modules/qs": { "version": "6.11.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", - "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", "license": "BSD-3-Clause", "dependencies": { "side-channel": "^1.0.4" @@ -7260,8 +4550,6 @@ }, "node_modules/queue-microtask": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true, "funding": [ { @@ -7279,20 +4567,31 @@ ], "license": "MIT" }, - "node_modules/rc9": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/rc9/-/rc9-2.1.2.tgz", - "integrity": "sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg==", - "dev": true, + "node_modules/react": { + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/react/-/react-19.0.0.tgz", + "integrity": "sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.0.0.tgz", + "integrity": "sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==", + "license": "MIT", + "peer": true, "dependencies": { - "defu": "^6.1.4", - "destr": "^2.0.3" + "scheduler": "^0.25.0" + }, + "peerDependencies": { + "react": "^19.0.0" } }, "node_modules/readable-stream": { "version": "4.5.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz", - "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==", "license": "MIT", "dependencies": { "abort-controller": "^3.0.0", @@ -7307,9 +4606,8 @@ }, "node_modules/readdirp": { "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, + "license": "MIT", "dependencies": { "picomatch": "^2.2.1" }, @@ -7317,68 +4615,6 @@ "node": ">=8.10.0" } }, - "node_modules/regexp.prototype.flags": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz", - "integrity": "sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-errors": "^1.3.0", - "set-function-name": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/reserved": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/reserved/-/reserved-0.1.2.tgz", - "integrity": "sha512-/qO54MWj5L8WCBP9/UNe2iefJc+L9yETbH32xO/ft/EYPOTCR5k+azvDUgdCOKwZH8hXwPd0b8XBL78Nn2U69g==", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "dev": true, - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", @@ -7391,9 +4627,8 @@ }, "node_modules/resolve-import": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-import/-/resolve-import-2.0.0.tgz", - "integrity": "sha512-jpKjLibLuc8D1XEV2+7zb0aqN7I8d12u89g/v6IsgCzdVlccMQJq4TKkPw5fbhHdxhm7nbVtN+KvOTnjFf+nEA==", "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { "glob": "^11.0.0", "walk-up-path": "^4.0.0" @@ -7407,18 +4642,16 @@ }, "node_modules/resolve-import/node_modules/brace-expansion": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } }, "node_modules/resolve-import/node_modules/glob": { "version": "11.0.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.0.tgz", - "integrity": "sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==", "dev": true, + "license": "ISC", "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^4.0.1", @@ -7439,9 +4672,8 @@ }, "node_modules/resolve-import/node_modules/minimatch": { "version": "10.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz", - "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -7454,26 +4686,22 @@ }, "node_modules/resolve-import/node_modules/minipass": { "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "dev": true, + "license": "ISC", "engines": { "node": ">=16 || 14 >=14.17" } }, "node_modules/resolve-pkg-maps": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", - "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" } }, "node_modules/reusify": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true, "license": "MIT", "engines": { @@ -7482,9 +4710,9 @@ } }, "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "deprecated": "Rimraf versions prior to v4 are no longer supported", "dev": true, "license": "ISC", @@ -7493,30 +4721,10 @@ }, "bin": { "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rollup": { - "version": "2.79.2", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.2.tgz", - "integrity": "sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==", - "dev": true, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=10.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" } }, "node_modules/run-parallel": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, "funding": [ { @@ -7537,28 +4745,8 @@ "queue-microtask": "^1.2.2" } }, - "node_modules/safe-array-concat": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", - "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "get-intrinsic": "^1.2.4", - "has-symbols": "^1.0.3", - "isarray": "^2.0.5" - }, - "engines": { - "node": ">=0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/safe-buffer": { "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "funding": [ { "type": "github", @@ -7575,38 +4763,19 @@ ], "license": "MIT" }, - "node_modules/safe-regex-test": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", - "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "is-regex": "^1.1.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safe-stable-stringify": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-1.1.1.tgz", - "integrity": "sha512-ERq4hUjKDbJfE4+XtZLFPCDi8Vb1JqaxAPTxWFLBx8XcAlf9Bda/ZJdVezs/NAfsMQScyIlUMx+Yeu7P7rx5jw==", - "dev": true - }, - "node_modules/sample-rate": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/sample-rate/-/sample-rate-2.0.1.tgz", - "integrity": "sha512-AIK0vVBiAEObmpJOxQu/WCyklnWGqzTSDII4O7nBo+SJHmfgBUiYhgV/Y3Ohz76gfSlU6R5CIAKggj+nAOLSvg==" - }, - "node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "node_modules/sample-rate": { + "version": "2.0.1", + "license": "MIT" + }, + "node_modules/scheduler": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.25.0.tgz", + "integrity": "sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==", + "license": "MIT", + "peer": true + }, + "node_modules/semver": { + "version": "7.6.2", "dev": true, "license": "ISC", "bin": { @@ -7618,8 +4787,7 @@ }, "node_modules/set-function-length": { "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "license": "MIT", "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", @@ -7632,25 +4800,8 @@ "node": ">= 0.4" } }, - "node_modules/set-function-name": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", - "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", - "dev": true, - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/shebang-command": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, "license": "MIT", "dependencies": { @@ -7662,8 +4813,6 @@ }, "node_modules/shebang-regex": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, "license": "MIT", "engines": { @@ -7672,8 +4821,7 @@ }, "node_modules/side-channel": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", - "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "es-errors": "^1.3.0", @@ -7689,9 +4837,8 @@ }, "node_modules/signal-exit": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, + "license": "ISC", "engines": { "node": ">=14" }, @@ -7699,64 +4846,17 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/simple-eval": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/simple-eval/-/simple-eval-1.0.0.tgz", - "integrity": "sha512-kpKJR+bqTscgC0xuAl2xHN6bB12lHjC2DCUfqjAx19bQyO3R2EVLOurm3H9AUltv/uFVcSCVNc6faegR+8NYLw==", - "dev": true, - "dependencies": { - "jsep": "^1.1.2" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/simple-wcswidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-wcswidth/-/simple-wcswidth-1.0.1.tgz", - "integrity": "sha512-xMO/8eNREtaROt7tJvWJqHBDTMFN4eiQ5I4JRMuilwfnFcV5W9u7RUkueNkdw0jPqGMX36iCywelS5yilTuOxg==", - "dev": true - }, "node_modules/simple-yenc": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/simple-yenc/-/simple-yenc-1.0.4.tgz", - "integrity": "sha512-5gvxpSd79e9a3V4QDYUqnqxeD4HGlhCakVpb6gMnDD7lexJggSBJRBO5h52y/iJrdXRilX9UCuDaIJhSWm5OWw==", + "license": "MIT", "funding": { "type": "individual", "url": "https://github.com/sponsors/eshaz" } }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", - "deprecated": "Please use @jridgewell/sourcemap-codec instead", - "dev": true - }, "node_modules/speaker": { "version": "0.5.5", - "resolved": "https://registry.npmjs.org/speaker/-/speaker-0.5.5.tgz", - "integrity": "sha512-IBeMZUITigYBO139h0+1MAgBHNZF55GFJN4U/Box35Sg49cfqYkbCO92TXoCUy22Ast08zfqKuXLvPxq9CWwLw==", - "hasInstallScript": true, + "license": "(MIT AND LGPL-2.1-only)", "optional": true, "dependencies": { "bindings": "^1.3.0", @@ -7767,26 +4867,8 @@ "node": ">=8.6" } }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true - }, - "node_modules/stacktracey": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/stacktracey/-/stacktracey-2.1.8.tgz", - "integrity": "sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==", - "dev": true, - "dependencies": { - "as-table": "^1.0.36", - "get-source": "^2.0.12" - } - }, "node_modules/string_decoder": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "license": "MIT", "dependencies": { "safe-buffer": "~5.2.0" @@ -7794,8 +4876,7 @@ }, "node_modules/string-to-arraybuffer": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-to-arraybuffer/-/string-to-arraybuffer-1.0.2.tgz", - "integrity": "sha512-DaGZidzi93dwjQen5I2osxR9ERS/R7B1PFyufNMnzhj+fmlDQAc1DSDIJVJhgI8Oq221efIMbABUBdPHDRt43Q==", + "license": "MIT", "dependencies": { "atob-lite": "^2.0.0", "is-base64": "^0.1.0" @@ -7803,9 +4884,8 @@ }, "node_modules/string-width": { "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -7818,9 +4898,8 @@ "node_modules/string-width-cjs": { "name": "string-width", "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -7830,59 +4909,8 @@ "node": ">=8" } }, - "node_modules/string.prototype.trim": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", - "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.0", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", - "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", - "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/strip-ansi": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "license": "MIT", "dependencies": { @@ -7895,322 +4923,76 @@ "node_modules/strip-ansi-cjs": { "name": "strip-ansi", "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-final-newline": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/strnum": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", - "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==", - "license": "MIT" - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/sync-content": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/sync-content/-/sync-content-2.0.1.tgz", - "integrity": "sha512-NI1mo514yFhr8pV/5Etvgh+pSBUIpoAKoiBIUwALVlQQNAwb40bTw8hhPFaip/dvv0GhpHVOq0vq8iY02ppLTg==", - "dev": true, - "dependencies": { - "glob": "^11.0.0", - "mkdirp": "^3.0.1", - "path-scurry": "^2.0.0", - "rimraf": "^6.0.0", - "tshy": "^3.0.0" - }, - "bin": { - "sync-content": "dist/esm/bin.mjs" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/sync-content/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/sync-content/node_modules/glob": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.0.tgz", - "integrity": "sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==", - "dev": true, - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^4.0.1", - "minimatch": "^10.0.0", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^2.0.0" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/sync-content/node_modules/minimatch": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz", - "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/sync-content/node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "dev": true, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/sync-content/node_modules/mkdirp": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", - "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", - "dev": true, - "bin": { - "mkdirp": "dist/cjs/src/bin.js" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/sync-content/node_modules/rimraf": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-6.0.1.tgz", - "integrity": "sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==", - "dev": true, - "dependencies": { - "glob": "^11.0.0", - "package-json-from-dist": "^1.0.0" - }, - "bin": { - "rimraf": "dist/esm/bin.mjs" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/synckit": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.2.tgz", - "integrity": "sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@pkgr/core": "^0.1.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/unts" - } - }, - "node_modules/tar": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", - "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", - "dev": true, - "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^5.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true, - "license": "MIT" - }, - "node_modules/to-array-buffer": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/to-array-buffer/-/to-array-buffer-1.2.4.tgz", - "integrity": "sha512-G/ZsRfvADjo6whwVpnhY0ZVgRs7Vs8f6NJcxYHZA2TpBAX5Fxavy4SyQ3RLqujkHVWDZ6a7jmzGjGkspdvu6Wg==", - "dependencies": { - "atob-lite": "^1.0.0", - "is-audio-buffer": "^1.0.1", - "is-data-uri": "^0.1.0" - } - }, - "node_modules/to-array-buffer/node_modules/atob-lite": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/atob-lite/-/atob-lite-1.0.0.tgz", - "integrity": "sha512-ArXcmHR/vwSN37HLVap/Y5SKpz12CuEybxe1sIYl7th/S6SQPrVMNFt6rblJzCOAxn0SHbXpknUtqbAIeo3Aow==" - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, "license": "MIT", "dependencies": { - "is-number": "^7.0.0" + "ansi-regex": "^5.0.1" }, "engines": { - "node": ">=8.0" + "node": ">=8" } }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "node_modules/ts-api-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.0.tgz", - "integrity": "sha512-032cPxaEKwM+GT3vA5JXNzIaizx388rhsSW79vGRNGXfRRAdEAn2mvk36PvK5HnOchyWZ7afLEXqYCvPCrzuzQ==", + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, "license": "MIT", "engines": { - "node": ">=16" + "node": ">=8" }, - "peerDependencies": { - "typescript": ">=4.2.0" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/tshy": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/tshy/-/tshy-3.0.2.tgz", - "integrity": "sha512-8GkWnAfmNXxl8iDTZ1o2H4jdaj9H7HeDKkr5qd0ZhQBCNA41D3xqTyg2Ycs51VCfmjJ5e+0v9AUmD6ylAI9Bgw==", + "node_modules/strnum": { + "version": "1.0.5", + "license": "MIT" + }, + "node_modules/supports-color": { + "version": "7.2.0", "dev": true, + "license": "MIT", "dependencies": { - "chalk": "^5.3.0", - "chokidar": "^3.6.0", - "foreground-child": "^3.1.1", - "minimatch": "^10.0.0", + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/sync-content": { + "version": "2.0.1", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "glob": "^11.0.0", "mkdirp": "^3.0.1", - "polite-json": "^5.0.0", - "resolve-import": "^2.0.0", + "path-scurry": "^2.0.0", "rimraf": "^6.0.0", - "sync-content": "^2.0.1", - "typescript": "^5.5.3", - "walk-up-path": "^4.0.0" + "tshy": "^3.0.0" }, "bin": { - "tshy": "dist/esm/index.js" + "sync-content": "dist/esm/bin.mjs" }, "engines": { "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/tshy/node_modules/brace-expansion": { + "node_modules/sync-content/node_modules/brace-expansion": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } }, - "node_modules/tshy/node_modules/chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", - "dev": true, - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/tshy/node_modules/glob": { + "node_modules/sync-content/node_modules/glob": { "version": "11.0.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.0.tgz", - "integrity": "sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==", "dev": true, + "license": "ISC", "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^4.0.1", @@ -8229,11 +5011,10 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/tshy/node_modules/minimatch": { + "node_modules/sync-content/node_modules/minimatch": { "version": "10.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz", - "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -8244,20 +5025,18 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/tshy/node_modules/minipass": { + "node_modules/sync-content/node_modules/minipass": { "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "dev": true, + "license": "ISC", "engines": { "node": ">=16 || 14 >=14.17" } }, - "node_modules/tshy/node_modules/mkdirp": { + "node_modules/sync-content/node_modules/mkdirp": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", - "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", "dev": true, + "license": "MIT", "bin": { "mkdirp": "dist/cjs/src/bin.js" }, @@ -8268,11 +5047,10 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/tshy/node_modules/rimraf": { + "node_modules/sync-content/node_modules/rimraf": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-6.0.1.tgz", - "integrity": "sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==", "dev": true, + "license": "ISC", "dependencies": { "glob": "^11.0.0", "package-json-from-dist": "^1.0.0" @@ -8287,432 +5065,324 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/tslib": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", - "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==" - }, - "node_modules/tsx": { - "version": "4.19.2", - "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.19.2.tgz", - "integrity": "sha512-pOUl6Vo2LUq/bSa8S5q7b91cgNSjctn9ugq/+Mvow99qW6x/UZYwzxy/3NmqoT66eHYfCVvFvACC58UBPFf28g==", + "node_modules/synckit": { + "version": "0.9.2", "dev": true, "license": "MIT", "dependencies": { - "esbuild": "~0.23.0", - "get-tsconfig": "^4.7.5" - }, - "bin": { - "tsx": "dist/cli.mjs" + "@pkgr/core": "^0.1.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=18.0.0" + "node": "^14.18.0 || >=16.0.0" }, - "optionalDependencies": { - "fsevents": "~2.3.3" + "funding": { + "url": "https://opencollective.com/unts" } }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "node_modules/tinyglobby": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.10.tgz", + "integrity": "sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew==", "dev": true, "license": "MIT", "dependencies": { - "prelude-ls": "^1.2.1" + "fdir": "^6.4.2", + "picomatch": "^4.0.2" }, "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=12.0.0" } }, - "node_modules/typed-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", - "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "node_modules/tinyglobby/node_modules/fdir": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.2.tgz", + "integrity": "sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ==", "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "is-typed-array": "^1.1.13" + "license": "MIT", + "peerDependencies": { + "picomatch": "^3 || ^4" }, - "engines": { - "node": ">= 0.4" + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } } }, - "node_modules/typed-array-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", - "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13" - }, + "license": "MIT", "engines": { - "node": ">= 0.4" + "node": ">=12" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/typed-array-byte-offset": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", - "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "dev": true, + "license": "MIT", "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13" + "os-tmpdir": "~1.0.2" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=0.6.0" } }, - "node_modules/typed-array-length": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", - "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", - "dev": true, + "node_modules/to-array-buffer": { + "version": "1.2.4", + "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13", - "possible-typed-array-names": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "atob-lite": "^1.0.0", + "is-audio-buffer": "^1.0.1", + "is-data-uri": "^0.1.0" } }, - "node_modules/typedarray-methods": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/typedarray-methods/-/typedarray-methods-1.0.1.tgz", - "integrity": "sha512-fstWAa225OZ856/4npMqgJP6U1U3vTWnqkn9wokZXzME9pORW9dV8u/v1VRGpo584udKMvCIYlNXzKoIb+UUGg==" - }, - "node_modules/typescript": { - "version": "5.6.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", - "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } + "node_modules/to-array-buffer/node_modules/atob-lite": { + "version": "1.0.0", + "license": "MIT" }, - "node_modules/typescript-eslint": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.13.0.tgz", - "integrity": "sha512-vIMpDRJrQd70au2G8w34mPps0ezFSPMEX4pXkTzUkrNbRX+36ais2ksGWN0esZL+ZMaFJEneOBHzCgSqle7DHw==", + "node_modules/to-regex-range": { + "version": "5.0.1", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/eslint-plugin": "8.13.0", - "@typescript-eslint/parser": "8.13.0", - "@typescript-eslint/utils": "8.13.0" + "is-number": "^7.0.0" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "node": ">=8.0" } }, - "node_modules/typescript-eslint/node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.13.0.tgz", - "integrity": "sha512-nQtBLiZYMUPkclSeC3id+x4uVd1SGtHuElTxL++SfP47jR0zfkZBJHc+gL4qPsgTuypz0k8Y2GheaDYn6Gy3rg==", + "node_modules/tr46": { + "version": "0.0.3", + "license": "MIT" + }, + "node_modules/ts-api-utils": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.3.tgz", + "integrity": "sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==", "dev": true, "license": "MIT", - "dependencies": { - "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.13.0", - "@typescript-eslint/type-utils": "8.13.0", - "@typescript-eslint/utils": "8.13.0", - "@typescript-eslint/visitor-keys": "8.13.0", - "graphemer": "^1.4.0", - "ignore": "^5.3.1", - "natural-compare": "^1.4.0", - "ts-api-utils": "^1.3.0" - }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "node": ">=16" }, "peerDependencies": { - "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", - "eslint": "^8.57.0 || ^9.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "typescript": ">=4.2.0" } }, - "node_modules/typescript-eslint/node_modules/@typescript-eslint/parser": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.13.0.tgz", - "integrity": "sha512-w0xp+xGg8u/nONcGw1UXAr6cjCPU1w0XVyBs6Zqaj5eLmxkKQAByTdV/uGgNN5tVvN/kKpoQlP2cL7R+ajZZIQ==", + "node_modules/tshy": { + "version": "3.0.2", "dev": true, - "license": "BSD-2-Clause", + "license": "BlueOak-1.0.0", "dependencies": { - "@typescript-eslint/scope-manager": "8.13.0", - "@typescript-eslint/types": "8.13.0", - "@typescript-eslint/typescript-estree": "8.13.0", - "@typescript-eslint/visitor-keys": "8.13.0", - "debug": "^4.3.4" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "chalk": "^5.3.0", + "chokidar": "^3.6.0", + "foreground-child": "^3.1.1", + "minimatch": "^10.0.0", + "mkdirp": "^3.0.1", + "polite-json": "^5.0.0", + "resolve-import": "^2.0.0", + "rimraf": "^6.0.0", + "sync-content": "^2.0.1", + "typescript": "^5.5.3", + "walk-up-path": "^4.0.0" }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0" + "bin": { + "tshy": "dist/esm/index.js" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/tshy/node_modules/brace-expansion": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" } }, - "node_modules/typescript-eslint/node_modules/@typescript-eslint/scope-manager": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.13.0.tgz", - "integrity": "sha512-XsGWww0odcUT0gJoBZ1DeulY1+jkaHUciUq4jKNv4cpInbvvrtDoyBH9rE/n2V29wQJPk8iCH1wipra9BhmiMA==", + "node_modules/tshy/node_modules/chalk": { + "version": "5.3.0", "dev": true, "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.13.0", - "@typescript-eslint/visitor-keys": "8.13.0" - }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^12.17.0 || ^14.13 || >=16.0.0" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/typescript-eslint/node_modules/@typescript-eslint/type-utils": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.13.0.tgz", - "integrity": "sha512-Rqnn6xXTR316fP4D2pohZenJnp+NwQ1mo7/JM+J1LWZENSLkJI8ID8QNtlvFeb0HnFSK94D6q0cnMX6SbE5/vA==", + "node_modules/tshy/node_modules/glob": { + "version": "11.0.0", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "@typescript-eslint/typescript-estree": "8.13.0", - "@typescript-eslint/utils": "8.13.0", - "debug": "^4.3.4", - "ts-api-utils": "^1.3.0" + "foreground-child": "^3.1.0", + "jackspeak": "^4.0.1", + "minimatch": "^10.0.0", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^2.0.0" + }, + "bin": { + "glob": "dist/esm/bin.mjs" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "20 || >=22" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/typescript-eslint/node_modules/@typescript-eslint/types": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.13.0.tgz", - "integrity": "sha512-4cyFErJetFLckcThRUFdReWJjVsPCqyBlJTi6IDEpc1GWCIIZRFxVppjWLIMcQhNGhdWJJRYFHpHoDWvMlDzng==", + "node_modules/tshy/node_modules/minimatch": { + "version": "10.0.1", "dev": true, - "license": "MIT", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "20 || >=22" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/typescript-eslint/node_modules/@typescript-eslint/typescript-estree": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.13.0.tgz", - "integrity": "sha512-v7SCIGmVsRK2Cy/LTLGN22uea6SaUIlpBcO/gnMGT/7zPtxp90bphcGf4fyrCQl3ZtiBKqVTG32hb668oIYy1g==", + "node_modules/tshy/node_modules/minipass": { + "version": "7.1.2", "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/types": "8.13.0", - "@typescript-eslint/visitor-keys": "8.13.0", - "debug": "^4.3.4", - "fast-glob": "^3.3.2", - "is-glob": "^4.0.3", - "minimatch": "^9.0.4", - "semver": "^7.6.0", - "ts-api-utils": "^1.3.0" - }, + "license": "ISC", "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "node": ">=16 || 14 >=14.17" } }, - "node_modules/typescript-eslint/node_modules/@typescript-eslint/utils": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.13.0.tgz", - "integrity": "sha512-A1EeYOND6Uv250nybnLZapeXpYMl8tkzYUxqmoKAWnI4sei3ihf2XdZVd+vVOmHGcp3t+P7yRrNsyyiXTvShFQ==", + "node_modules/tshy/node_modules/mkdirp": { + "version": "3.0.1", "dev": true, "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.13.0", - "@typescript-eslint/types": "8.13.0", - "@typescript-eslint/typescript-estree": "8.13.0" + "bin": { + "mkdirp": "dist/cjs/src/bin.js" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": ">=10" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/typescript-eslint/node_modules/@typescript-eslint/visitor-keys": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.13.0.tgz", - "integrity": "sha512-7N/+lztJqH4Mrf0lb10R/CbI1EaAMMGyF5y0oJvFoAhafwgiRA7TXyd8TFn8FC8k5y2dTsYogg238qavRGNnlw==", + "node_modules/tshy/node_modules/rimraf": { + "version": "6.0.1", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "@typescript-eslint/types": "8.13.0", - "eslint-visitor-keys": "^3.4.3" + "glob": "^11.0.0", + "package-json-from-dist": "^1.0.0" + }, + "bin": { + "rimraf": "dist/esm/bin.mjs" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "20 || >=22" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/typescript-eslint/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "node_modules/tslib": { + "version": "2.7.0", + "license": "0BSD" + }, + "node_modules/tsx": { + "version": "4.19.2", "dev": true, "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0" + "esbuild": "~0.23.0", + "get-tsconfig": "^4.7.5" + }, + "bin": { + "tsx": "dist/cli.mjs" + }, + "engines": { + "node": ">=18.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" } }, - "node_modules/typescript-eslint/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "node_modules/type-check": { + "version": "0.4.0", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "brace-expansion": "^2.0.1" + "prelude-ls": "^1.2.1" }, "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">= 0.8.0" } }, - "node_modules/ufo": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.5.4.tgz", - "integrity": "sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==", - "dev": true + "node_modules/typedarray-methods": { + "version": "1.0.1", + "license": "MIT" }, - "node_modules/uglify-js": { - "version": "3.18.0", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.18.0.tgz", - "integrity": "sha512-SyVVbcNBCk0dzr9XL/R/ySrmYf0s372K6/hFklzgcp2lBFyXtw4I7BOdDjlLhE1aVqaI/SHWXWmYdlZxuyF38A==", + "node_modules/typescript": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.2.tgz", + "integrity": "sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==", "dev": true, - "optional": true, + "license": "Apache-2.0", "bin": { - "uglifyjs": "bin/uglifyjs" + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" }, "engines": { - "node": ">=0.8.0" + "node": ">=14.17" } }, - "node_modules/unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "node_modules/typescript-eslint": { + "version": "8.17.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.17.0.tgz", + "integrity": "sha512-409VXvFd/f1br1DCbuKNFqQpXICoTB+V51afcwG1pn1a3Cp92MqAUges3YjwEdQ0cMUoCIodjVDAYzyD8h3SYA==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" + "@typescript-eslint/eslint-plugin": "8.17.0", + "@typescript-eslint/parser": "8.17.0", + "@typescript-eslint/utils": "8.17.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, "node_modules/undici-types": { - "version": "6.19.8", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", - "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==" + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "license": "MIT" }, "node_modules/universalify": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 10.0.0" } @@ -8727,31 +5397,12 @@ "punycode": "^2.1.0" } }, - "node_modules/urijs": { - "version": "1.19.11", - "resolved": "https://registry.npmjs.org/urijs/-/urijs-1.19.11.tgz", - "integrity": "sha512-HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ==", - "dev": true - }, "node_modules/url-join": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", - "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==", "license": "MIT" }, - "node_modules/utility-types": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/utility-types/-/utility-types-3.11.0.tgz", - "integrity": "sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, "node_modules/uuid": { "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", "funding": [ "https://github.com/sponsors/broofa", "https://github.com/sponsors/ctavan" @@ -8761,47 +5412,17 @@ "uuid": "dist/bin/uuid" } }, - "node_modules/validate-npm-package-name": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", - "integrity": "sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==", - "dev": true, - "dependencies": { - "builtins": "^1.0.3" - } - }, - "node_modules/validator": { - "version": "13.12.0", - "resolved": "https://registry.npmjs.org/validator/-/validator-13.12.0.tgz", - "integrity": "sha512-c1Q0mCiPlgdTVVVIJIrBuxNicYE+t/7oKeI9MWLj3fh/uq2Pxh/3eeWbVZ4OcGW1TUf53At0njHw5SMdA3tmMg==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, "node_modules/walk-up-path": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/walk-up-path/-/walk-up-path-4.0.0.tgz", - "integrity": "sha512-3hu+tD8YzSLGuFYtPRb48vdhKMi0KQV5sn+uWr8+7dMEq/2G/dtLrdDinkLjqq5TIbIBjYJ4Ax/n3YiaW7QM8A==", "dev": true, + "license": "ISC", "engines": { "node": "20 || >=22" } }, - "node_modules/wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", - "dev": true, - "dependencies": { - "defaults": "^1.0.3" - } - }, "node_modules/web-audio-stream": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/web-audio-stream/-/web-audio-stream-3.0.1.tgz", - "integrity": "sha512-doFZu9H4hMtU5mxakGCsoKVyTUaUPYl3L9xoW9Za6hv2r+tHYWa1ZcAOpSUO/7OkFEkLKdt5cHS4db9R9VYRTw==", - "deprecated": "So nice name, such awful API, look. Have a look at web-audio-write better, or web-audio-read.", + "license": "MIT", "dependencies": { "audio-buffer-list": "^2.0.6", "audio-buffer-utils": "^4.3.0", @@ -8816,9 +5437,7 @@ }, "node_modules/web-audio-stream/node_modules/audio-buffer": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/audio-buffer/-/audio-buffer-3.2.1.tgz", - "integrity": "sha512-yQNZUatQ5dF7h4BezYLy6T9w4LHahMVXrncFZJjI+N44S3O0lEgZcicsSSdvgNk0gLii58Q4gTvSZyohYqRbfw==", - "deprecated": "Depends on Web-Audio-API implementation. Use either web-audio-api, web-audio-js or web-audio-engine package.", + "license": "MIT", "dependencies": { "audio-context": "^1.0.0", "buffer-to-arraybuffer": "latest", @@ -8830,8 +5449,7 @@ }, "node_modules/web-audio-stream/node_modules/audio-buffer-utils": { "version": "4.3.2", - "resolved": "https://registry.npmjs.org/audio-buffer-utils/-/audio-buffer-utils-4.3.2.tgz", - "integrity": "sha512-4SV84QDCwatJTmsXZjMy9RyBv/vEoLp0BOkeGUX8/D7RS+daA3yCT18pp4J+MV9YUwADUoNXwzhhMnhUYQ8n3A==", + "license": "ISC", "dependencies": { "audio-buffer": "^3.1.1", "audio-context": "^1.0.0", @@ -8844,18 +5462,15 @@ }, "node_modules/web-audio-stream/node_modules/is-buffer": { "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + "license": "MIT" }, "node_modules/webidl-conversions": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + "license": "BSD-2-Clause" }, "node_modules/whatwg-url": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "license": "MIT", "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" @@ -8863,8 +5478,6 @@ }, "node_modules/which": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "license": "ISC", "dependencies": { @@ -8877,80 +5490,19 @@ "node": ">= 8" } }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-typed-array": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", - "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", - "dev": true, - "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/word-wrap": { "version": "1.2.5", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", - "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", - "dev": true - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, "node_modules/wrap-ansi-cjs": { "name": "wrap-ansi", "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -8965,79 +5517,32 @@ }, "node_modules/wrappy": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/xtend": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "license": "MIT", "optional": true, "engines": { "node": ">=0.4" } }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dev": true, - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs/node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "node_modules/yaml": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.6.1.tgz", + "integrity": "sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg==", "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" + "license": "ISC", + "bin": { + "yaml": "bin.mjs" }, "engines": { - "node": ">=12" + "node": ">= 14" } }, "node_modules/yocto-queue": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true, "license": "MIT", "engines": { @@ -9049,8 +5554,6 @@ }, "node_modules/zod": { "version": "3.23.8", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.23.8.tgz", - "integrity": "sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==", "license": "MIT", "peer": true, "funding": { diff --git a/package.json b/package.json index 7dd9e61..78d7ac4 100644 --- a/package.json +++ b/package.json @@ -6,34 +6,34 @@ ], "scripts": { "format": "prettier --write .", - "lint:schema": "lint-openapi schemas/openapi.json" + "postinstall": "patch-package" }, "devDependencies": { - "@eslint/js": "^9.14.0", - "@hey-api/openapi-ts": "^0.55.0", + "@eslint/js": "^9.16.0", "@types/audio-context": "^1.0.3", "@types/audio-play": "^2.3.2", - "@types/node": "^22.9.0", - "eslint": "^8.57.1", + "@types/node": "^22.10.1", + "eslint": "^9.16.0", "eslint-config-prettier": "^9.1.0", "eslint-plugin-prettier": "^5.2.1", - "globals": "^15.12.0", - "ibm-openapi-validator": "^1.25.0", - "prettier": "^3.3.3", + "globals": "^15.13.0", + "json-schema-to-typescript": "^15.0.3", + "patch-package": "^8.0.0", + "prettier": "^3.4.2", "tshy": "^3.0.2", "tsx": "^4.19.2", - "typescript": "^5.6.3", - "typescript-eslint": "^8.13.0" + "typescript": "^5.7.2", + "typescript-eslint": "^8.17.0" }, "dependencies": { "@anthropic-ai/sdk": "^0.32.1", "@google/generative-ai": "^0.21.0", - "@mistralai/mistralai": "^1.3.0", + "@mistralai/mistralai": "^1.3.5", "audio-context": "^1.0.3", "audio-decode": "^2.2.2", "audio-play": "^2.3.1", - "cohere-ai": "^7.14.0", - "openai": "^4.71.1" + "cohere-ai": "^7.15.0", + "openai": "^4.76.0" }, "optionalDependencies": { "speaker": "^0.5.5" diff --git a/patches/json-schema-to-typescript+15.0.3.patch b/patches/json-schema-to-typescript+15.0.3.patch new file mode 100644 index 0000000..b654b46 --- /dev/null +++ b/patches/json-schema-to-typescript+15.0.3.patch @@ -0,0 +1,26 @@ +diff --git a/node_modules/json-schema-to-typescript/dist/src/parser.js b/node_modules/json-schema-to-typescript/dist/src/parser.js +index c9c6779..89de019 100644 +--- a/node_modules/json-schema-to-typescript/dist/src/parser.js ++++ b/node_modules/json-schema-to-typescript/dist/src/parser.js +@@ -318,7 +318,7 @@ function parseSchema(schema, options, processed, usedNames, parentSchemaName) { + const ast = parse(value, options, key, processed, usedNames); + const comment = `This interface was referenced by \`${parentSchemaName}\`'s JSON-Schema definition + via the \`patternProperty\` "${key.replace('*/', '*\\/')}".`; +- ast.comment = ast.comment ? `${ast.comment}\n\n${comment}` : comment; ++ ast.comment = ast.comment ? `${ast.comment}\n\n${comment}` : ''; + return { + ast, + isPatternProperty: !singlePatternProperty, +diff --git a/node_modules/json-schema-to-typescript/src/parser.ts b/node_modules/json-schema-to-typescript/src/parser.ts +index 92acdeb..14009ee 100644 +--- a/node_modules/json-schema-to-typescript/src/parser.ts ++++ b/node_modules/json-schema-to-typescript/src/parser.ts +@@ -400,7 +400,7 @@ function parseSchema( + const ast = parse(value, options, key, processed, usedNames) + const comment = `This interface was referenced by \`${parentSchemaName}\`'s JSON-Schema definition + via the \`patternProperty\` "${key.replace('*/', '*\\/')}".` +- ast.comment = ast.comment ? `${ast.comment}\n\n${comment}` : comment ++ ast.comment = ast.comment ? `${ast.comment}\n\n${comment}` : '' + return { + ast, + isPatternProperty: !singlePatternProperty, diff --git a/schema/schema.json b/schema/schema.json new file mode 100644 index 0000000..a8a854e --- /dev/null +++ b/schema/schema.json @@ -0,0 +1,666 @@ +{ + "title": "llm-sdk", + "$schema": "http://json-schema.org/draft-07/schema#", + "definitions": { + "TextPart": { + "type": "object", + "description": "A part of the message that contains text.", + "properties": { + "type": { + "type": "string", + "const": "text" + }, + "text": { + "type": "string" + }, + "id": { + "type": "string", + "description": "The optional ID of the part." + } + }, + "required": ["type", "text"], + "additionalProperties": false + }, + "ImagePart": { + "type": "object", + "description": "A part of the message that contains an image.", + "properties": { + "type": { + "type": "string", + "const": "image" + }, + "mimeType": { + "type": "string", + "description": "The MIME type of the image. E.g. \"image/jpeg\", \"image/png\"." + }, + "imageData": { + "type": "string", + "description": "The base64-encoded image data." + }, + "width": { + "type": "integer", + "description": "The width of the image in pixels." + }, + "height": { + "type": "integer", + "description": "The height of the image in pixels." + }, + "id": { + "type": "string", + "description": "The optional ID of the part." + } + }, + "required": ["type", "mimeType", "imageData"], + "additionalProperties": false + }, + "AudioEncoding": { + "type": "string", + "enum": ["linear16", "flac", "mulaw", "alaw", "aac", "mp3", "opus"], + "description": "The encoding of the audio." + }, + "AudioContainer": { + "type": "string", + "enum": ["wav", "ogg", "flac", "webm"], + "description": "The container format of the audio." + }, + "AudioPart": { + "type": "object", + "description": "A part of the message that contains an audio.", + "properties": { + "type": { + "type": "string", + "const": "audio" + }, + "container": { + "$ref": "#/definitions/AudioContainer" + }, + "audioData": { + "type": "string", + "description": "The base64-encoded audio data." + }, + "encoding": { + "$ref": "#/definitions/AudioEncoding" + }, + "sampleRate": { + "type": "integer", + "description": "The sample rate of the audio. E.g. 44100, 48000." + }, + "channels": { + "type": "integer", + "description": "The number of channels of the audio. E.g. 1, 2." + }, + "transcript": { + "type": "string", + "description": "The transcript of the audio." + }, + "id": { + "type": "string", + "description": "The optional ID of the part." + } + }, + "required": ["type", "audioData"], + "additionalProperties": false + }, + "ToolCallPart": { + "type": "object", + "description": "A part of the message that represents a call to a tool the model wants to use.", + "properties": { + "type": { + "type": "string", + "const": "tool-call" + }, + "toolCallId": { + "type": "string", + "description": "The ID of the tool call, used to match the tool result with the tool call." + }, + "toolName": { + "type": "string", + "description": "The name of the tool to call." + }, + "args": { + "oneOf": [ + { + "type": "object" + }, + { + "type": "null" + } + ], + "description": "The arguments to pass to the tool." + }, + "id": { + "type": "string", + "description": "The optional ID of the part. This might not be the same as the toolCallId." + } + }, + "required": ["type", "toolCallId", "toolName", "args"], + "additionalProperties": false + }, + "ToolResultPart": { + "type": "object", + "description": "A part of the message that represents the result of a tool call.", + "properties": { + "type": { + "type": "string", + "const": "tool-result" + }, + "toolCallId": { + "type": "string", + "description": "The ID of the tool call from previous assistant message." + }, + "toolName": { + "type": "string", + "description": "The name of the tool that was called." + }, + "result": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "array" + } + ], + "description": "The result of the tool call." + }, + "isError": { + "type": "boolean", + "description": "Marks the tool result as an error." + } + }, + "required": ["type", "toolCallId", "toolName", "result"], + "additionalProperties": false + }, + "Part": { + "oneOf": [ + { + "$ref": "#/definitions/TextPart" + }, + { + "$ref": "#/definitions/ImagePart" + }, + { + "$ref": "#/definitions/AudioPart" + }, + { + "$ref": "#/definitions/ToolCallPart" + }, + { + "$ref": "#/definitions/ToolResultPart" + } + ] + }, + "UserMessage": { + "type": "object", + "description": "Represents a message sent by the user.", + "properties": { + "role": { + "type": "string", + "const": "user" + }, + "content": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/definitions/TextPart" + }, + { + "$ref": "#/definitions/ImagePart" + }, + { + "$ref": "#/definitions/AudioPart" + } + ] + } + } + }, + "required": ["role", "content"], + "additionalProperties": false + }, + "AssistantMessage": { + "type": "object", + "description": "Represents a message generated by the model.", + "properties": { + "role": { + "type": "string", + "const": "assistant" + }, + "content": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/definitions/TextPart" + }, + { + "$ref": "#/definitions/ToolCallPart" + }, + { + "$ref": "#/definitions/AudioPart" + } + ] + } + } + }, + "required": ["role", "content"], + "additionalProperties": false + }, + "TextPartDelta": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "text" + }, + "text": { + "type": "string" + }, + "id": { + "type": "string", + "description": "The optional ID of the part." + } + }, + "required": ["type", "text"], + "additionalProperties": false + }, + "ToolCallPartDelta": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "tool-call" + }, + "toolCallId": { + "type": "string", + "description": "The ID of the tool call, used to match the tool result with the tool call." + }, + "toolName": { + "type": "string", + "description": "The name of the tool to call." + }, + "args": { + "type": "string", + "description": "The partial JSON string of the arguments to pass to the tool." + }, + "id": { + "type": "string", + "description": "The optional ID of the part. This might not be the same as the toolCallId." + } + }, + "required": ["type"], + "additionalProperties": false + }, + "AudioPartDelta": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "audio" + }, + "audioData": { + "type": "string", + "description": "The base64-encoded audio data." + }, + "container": { + "$ref": "#/definitions/AudioContainer" + }, + "encoding": { + "$ref": "#/definitions/AudioEncoding" + }, + "sampleRate": { + "type": "integer", + "description": "The sample rate of the audio. E.g. 44100, 48000." + }, + "channels": { + "type": "integer", + "description": "The number of channels of the audio. E.g. 1, 2." + }, + "transcript": { + "type": "string", + "description": "The transcript of the audio." + }, + "id": { + "type": "string", + "description": "The optional ID of the part." + } + }, + "required": ["type"], + "additionalProperties": false + }, + "ContentDelta": { + "type": "object", + "properties": { + "index": { + "type": "integer" + }, + "part": { + "oneOf": [ + { + "$ref": "#/definitions/TextPartDelta" + }, + { + "$ref": "#/definitions/ToolCallPartDelta" + }, + { + "$ref": "#/definitions/AudioPartDelta" + } + ] + } + }, + "required": ["index", "part"], + "additionalProperties": false + }, + "JSONSchema": { + "type": "object", + "description": "Represents a JSON schema." + }, + "Tool": { + "type": "object", + "description": "Represents a tool that can be used by the model.", + "properties": { + "name": { + "type": "string", + "description": "The name of the tool." + }, + "description": { + "type": "string", + "description": "A description of the tool." + }, + "parameters": { + "description": "The JSON schema of the parameters that the tool accepts. The type must be \"object\".", + "oneOf": [ + { + "$ref": "#/definitions/JSONSchema" + }, + { + "type": "null" + } + ] + } + }, + "required": ["name", "description", "parameters"], + "additionalProperties": false + }, + "ToolMessage": { + "type": "object", + "description": "Represents tool result in the message history.", + "properties": { + "role": { + "type": "string", + "const": "tool" + }, + "content": { + "type": "array", + "items": { + "$ref": "#/definitions/ToolResultPart" + } + } + }, + "required": ["role", "content"], + "additionalProperties": false + }, + "Message": { + "oneOf": [ + { + "$ref": "#/definitions/UserMessage" + }, + { + "$ref": "#/definitions/AssistantMessage" + }, + { + "$ref": "#/definitions/ToolMessage" + } + ] + }, + "ModelTokensDetail": { + "type": "object", + "description": "Represents the token usage of the model.", + "properties": { + "textTokens": { + "type": "integer" + }, + "audioTokens": { + "type": "integer" + }, + "imageTokens": { + "type": "integer" + } + }, + "additionalProperties": false + }, + "ModelUsage": { + "type": "object", + "description": "Represents the token usage of the model.", + "properties": { + "inputTokens": { + "type": "integer" + }, + "outputTokens": { + "type": "integer" + }, + "inputTokensDetail": { + "$ref": "#/definitions/ModelTokensDetail" + }, + "outputTokensDetail": { + "$ref": "#/definitions/ModelTokensDetail" + } + }, + "required": ["inputTokens", "outputTokens"], + "additionalProperties": false + }, + "ModelResponse": { + "type": "object", + "description": "Represents the response generated by the model.", + "properties": { + "content": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/definitions/TextPart" + }, + { + "$ref": "#/definitions/ToolCallPart" + }, + { + "$ref": "#/definitions/AudioPart" + } + ] + } + }, + "usage": { + "$ref": "#/definitions/ModelUsage" + }, + "cost": { + "type": "number", + "description": "The cost of the response." + } + }, + "required": ["content"], + "additionalProperties": false + }, + "PartialModelResponse": { + "type": "object", + "properties": { + "delta": { + "$ref": "#/definitions/ContentDelta" + } + }, + "required": ["delta"], + "additionalProperties": false + }, + "ToolChoiceAuto": { + "type": "object", + "description": "The model will automatically choose the tool to use or not use any tools.", + "properties": { + "type": { + "type": "string", + "const": "auto" + } + }, + "required": ["type"], + "additionalProperties": false + }, + "ToolChoiceNone": { + "type": "object", + "description": "The model will not use any tools.", + "properties": { + "type": { + "type": "string", + "const": "none" + } + }, + "required": ["type"], + "additionalProperties": false + }, + "ToolChoiceRequired": { + "type": "object", + "description": "The model will be forced to use a tool.", + "properties": { + "type": { + "type": "string", + "const": "required" + } + }, + "required": ["type"], + "additionalProperties": false + }, + "ToolChoiceTool": { + "type": "object", + "description": "The model will use the specified tool.", + "properties": { + "type": { + "type": "string", + "const": "tool" + }, + "toolName": { + "type": "string" + } + }, + "required": ["type", "toolName"], + "additionalProperties": false + }, + "ResponseFormatText": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "text" + } + }, + "required": ["type"], + "additionalProperties": false + }, + "ResponseFormatJson": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "json" + }, + "schema": { + "$ref": "#/definitions/JSONSchema" + } + }, + "required": ["type"], + "additionalProperties": false + }, + "Modality": { + "type": "string", + "enum": ["text", "audio"] + }, + "LanguageModelInput": { + "type": "object", + "properties": { + "systemPrompt": { + "type": "string", + "description": "A system prompt is a way of providing context and instructions to the model" + }, + "messages": { + "type": "array", + "items": { + "$ref": "#/definitions/Message" + }, + "description": "A list of messages comprising the conversation so far." + }, + "tools": { + "type": "array", + "items": { + "$ref": "#/definitions/Tool" + }, + "description": "Definitions of tools that the model may use." + }, + "toolChoice": { + "oneOf": [ + { + "$ref": "#/definitions/ToolChoiceAuto" + }, + { + "$ref": "#/definitions/ToolChoiceNone" + }, + { + "$ref": "#/definitions/ToolChoiceRequired" + }, + { + "$ref": "#/definitions/ToolChoiceTool" + } + ], + "description": "Determines how the model should choose which tool to use. \"auto\" - The model will automatically choose the tool to use or not use any tools. \"none\" - The model will not use any tools. \"required\" - The model will be forced to use a tool. { type: \"tool\", toolName: \"toolName\" } - The model will use the specified tool." + }, + "responseFormat": { + "oneOf": [ + { + "$ref": "#/definitions/ResponseFormatJson" + }, + { + "$ref": "#/definitions/ResponseFormatText" + } + ], + "description": "The format that the model must output" + }, + "maxTokens": { + "type": "integer", + "description": "The maximum number of tokens that can be generated in the chat completion." + }, + "temperature": { + "type": "number", + "description": "Amount of randomness injected into the response. Ranges from 0.0 to 1.0" + }, + "topP": { + "type": "number", + "description": "An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass Ranges from 0.0 to 1.0" + }, + "topK": { + "type": "number", + "description": "Only sample from the top K options for each subsequent token. Used to remove \"long tail\" low probability responses. Ranges from 0.0 to 1.0" + }, + "presencePenalty": { + "type": "number", + "description": "Positive values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics." + }, + "frequencyPenalty": { + "type": "number", + "description": "Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim." + }, + "seed": { + "type": "integer", + "description": "The seed (integer), if set and supported by the model, to enable deterministic results." + }, + "modalities": { + "type": "array", + "items": { + "$ref": "#/definitions/Modality" + }, + "description": "The modalities that the model should support." + }, + "extra": { + "type": "object", + "description": "Extra options that the model may support." + } + }, + "required": ["messages"], + "additionalProperties": false + } + } +} diff --git a/schemas/openapi.json b/schemas/openapi.json deleted file mode 100644 index 8290798..0000000 --- a/schemas/openapi.json +++ /dev/null @@ -1,605 +0,0 @@ -{ - "openapi": "3.1.0", - "info": { - "title": "LLM SDK Schema", - "version": "0.0.0" - }, - "components": { - "schemas": { - "TextPart": { - "type": "object", - "description": "A part of the message that contains text.", - "properties": { - "type": { - "type": "string", - "const": "text" - }, - "text": { - "type": "string" - } - }, - "required": ["type", "text"] - }, - "ImagePart": { - "type": "object", - "description": "A part of the message that contains an image.", - "properties": { - "type": { - "type": "string", - "const": "image" - }, - "mimeType": { - "type": "string", - "description": "The MIME type of the image. E.g. \"image/jpeg\", \"image/png\"." - }, - "imageData": { - "type": "string", - "description": "The base64-encoded image data." - }, - "width": { - "type": "integer", - "description": "The width of the image in pixels." - }, - "height": { - "type": "integer", - "description": "The height of the image in pixels." - } - }, - "required": ["type", "mimeType", "imageData"] - }, - "AudioEncoding": { - "type": "string", - "enum": ["linear16", "flac", "mulaw", "alaw", "aac", "mp3", "opus"], - "description": "The encoding of the audio." - }, - "AudioContainer": { - "type": "string", - "enum": ["wav", "ogg", "flac", "webm"], - "description": "The container format of the audio." - }, - "AudioPart": { - "type": "object", - "description": "A part of the message that contains an audio.", - "properties": { - "type": { - "type": "string", - "const": "audio" - }, - "container": { - "$ref": "#/components/schemas/AudioContainer" - }, - "audioData": { - "type": "string", - "description": "The base64-encoded audio data." - }, - "encoding": { - "$ref": "#/components/schemas/AudioEncoding" - }, - "sampleRate": { - "type": "integer", - "description": "The sample rate of the audio. E.g. 44100, 48000." - }, - "channels": { - "type": "integer", - "description": "The number of channels of the audio. E.g. 1, 2." - }, - "transcript": { - "type": "string", - "description": "The transcript of the audio." - } - }, - "required": ["type", "audioData"] - }, - "ToolCallPart": { - "type": "object", - "description": "A part of the message that represents a call to a tool the model wants to use.", - "properties": { - "type": { - "type": "string", - "const": "tool-call" - }, - "toolCallId": { - "type": "string", - "description": "The ID of the tool call, used to match the tool result with the tool call." - }, - "toolName": { - "type": "string", - "description": "The name of the tool to call." - }, - "args": { - "type": "object", - "additionalProperties": true, - "description": "The arguments to pass to the tool.", - "nullable": true - } - }, - "required": ["type", "toolCallId", "toolName", "args"] - }, - "ToolResultPart": { - "type": "object", - "description": "A part of the message that represents the result of a tool call.", - "properties": { - "type": { - "type": "string", - "const": "tool-result" - }, - "toolCallId": { - "type": "string", - "description": "The ID of the tool call from previous assistant message." - }, - "toolName": { - "type": "string", - "description": "The name of the tool that was called." - }, - "result": { - "anyOf": [ - { - "type": "object" - }, - { - "type": "array" - } - ], - "description": "The result of the tool call." - }, - "isError": { - "type": "boolean", - "description": "Marks the tool result as an error." - } - }, - "required": ["type", "toolCallId", "toolName", "result"] - }, - "Part": { - "oneOf": [ - { - "$ref": "#/components/schemas/TextPart" - }, - { - "$ref": "#/components/schemas/ImagePart" - }, - { - "$ref": "#/components/schemas/AudioPart" - }, - { - "$ref": "#/components/schemas/ToolCallPart" - }, - { - "$ref": "#/components/schemas/ToolResultPart" - } - ] - }, - "UserMessage": { - "type": "object", - "description": "Represents a message sent by the user.", - "properties": { - "role": { - "type": "string", - "const": "user" - }, - "content": { - "type": "array", - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/TextPart" - }, - { - "$ref": "#/components/schemas/ImagePart" - }, - { - "$ref": "#/components/schemas/AudioPart" - } - ] - } - } - }, - "required": ["role", "content"] - }, - "AssistantMessage": { - "type": "object", - "description": "Represents a message generated by the model.", - "properties": { - "role": { - "type": "string", - "const": "assistant" - }, - "content": { - "type": "array", - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/TextPart" - }, - { - "$ref": "#/components/schemas/ToolCallPart" - }, - { - "$ref": "#/components/schemas/AudioPart" - } - ] - } - } - }, - "required": ["role", "content"] - }, - "TextPartDelta": { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "text" - }, - "text": { - "type": "string" - } - }, - "required": ["type", "text"] - }, - "ToolCallPartDelta": { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "tool-call" - }, - "toolCallId": { - "type": "string", - "description": "The ID of the tool call, used to match the tool result with the tool call." - }, - "toolName": { - "type": "string", - "description": "The name of the tool to call." - }, - "args": { - "type": "string", - "description": "The partial JSON string of the arguments to pass to the tool." - } - }, - "required": ["type"] - }, - "AudioPartDelta": { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "audio" - }, - "audioData": { - "type": "string", - "description": "The base64-encoded audio data." - }, - "container": { - "$ref": "#/components/schemas/AudioContainer" - }, - "encoding": { - "$ref": "#/components/schemas/AudioEncoding" - }, - "sampleRate": { - "type": "integer", - "description": "The sample rate of the audio. E.g. 44100, 48000." - }, - "channels": { - "type": "integer", - "description": "The number of channels of the audio. E.g. 1, 2." - }, - "transcript": { - "type": "string", - "description": "The transcript of the audio." - } - }, - "required": ["type"] - }, - "ContentDelta": { - "type": "object", - "properties": { - "index": { - "type": "integer" - }, - "part": { - "oneOf": [ - { - "$ref": "#/components/schemas/TextPartDelta" - }, - { - "$ref": "#/components/schemas/ToolCallPartDelta" - }, - { - "$ref": "#/components/schemas/AudioPartDelta" - } - ] - } - }, - "required": ["index", "part"] - }, - "Tool": { - "type": "object", - "description": "Represents a tool that can be used by the model.", - "properties": { - "name": { - "type": "string", - "description": "The name of the tool." - }, - "description": { - "type": "string", - "description": "A description of the tool." - }, - "parameters": { - "type": "object", - "description": "The JSON schema of the parameters that the tool accepts. The type must be \"object\".", - "nullable": true - } - }, - "required": ["name", "description", "parameters"] - }, - "ToolMessage": { - "type": "object", - "description": "Represents tool result in the message history.", - "properties": { - "role": { - "type": "string", - "const": "tool" - }, - "content": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ToolResultPart" - } - } - }, - "required": ["role", "content"] - }, - "Message": { - "oneOf": [ - { - "$ref": "#/components/schemas/UserMessage" - }, - { - "$ref": "#/components/schemas/AssistantMessage" - }, - { - "$ref": "#/components/schemas/ToolMessage" - } - ] - }, - "ModelTokensDetail": { - "type": "object", - "description": "Represents the token usage of the model.", - "properties": { - "textTokens": { - "type": "integer" - }, - "audioTokens": { - "type": "integer" - }, - "imageTokens": { - "type": "integer" - } - } - }, - "ModelUsage": { - "type": "object", - "description": "Represents the token usage of the model.", - "properties": { - "inputTokens": { - "type": "integer" - }, - "outputTokens": { - "type": "integer" - }, - "inputTokensDetail": { - "$ref": "#/components/schemas/ModelTokensDetail" - }, - "outputTokensDetail": { - "$ref": "#/components/schemas/ModelTokensDetail" - } - }, - "required": ["inputTokens", "outputTokens"] - }, - "ModelResponse": { - "type": "object", - "description": "Represents the response generated by the model.", - "properties": { - "content": { - "type": "array", - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/TextPart" - }, - { - "$ref": "#/components/schemas/ToolCallPart" - }, - { - "$ref": "#/components/schemas/AudioPart" - } - ] - } - }, - "usage": { - "$ref": "#/components/schemas/ModelUsage" - }, - "cost": { - "type": "number", - "description": "The cost of the response." - } - }, - "required": ["content"] - }, - "PartialModelResponse": { - "type": "object", - "properties": { - "delta": { - "$ref": "#/components/schemas/ContentDelta" - } - }, - "required": ["delta"] - }, - "ToolChoiceAuto": { - "type": "object", - "description": "The model will automatically choose the tool to use or not use any tools.", - "properties": { - "type": { - "type": "string", - "const": "auto" - } - }, - "required": ["type"] - }, - "ToolChoiceNone": { - "type": "object", - "description": "The model will not use any tools.", - "properties": { - "type": { - "type": "string", - "const": "none" - } - }, - "required": ["type"] - }, - "ToolChoiceRequired": { - "type": "object", - "description": "The model will be forced to use a tool.", - "properties": { - "type": { - "type": "string", - "const": "required" - } - }, - "required": ["type"] - }, - "ToolChoiceTool": { - "type": "object", - "description": "The model will use the specified tool.", - "properties": { - "type": { - "type": "string", - "const": "tool" - }, - "toolName": { - "type": "string" - } - }, - "required": ["type", "toolName"] - }, - "ResponseFormatText": { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "text" - } - }, - "required": ["type"] - }, - "ResponseFormatJson": { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "json" - }, - "schema": { - "type": "object", - "description": "The JSON schema of the response that the model must output. Not all models support this option." - } - }, - "required": ["type"] - }, - "Modality": { - "type": "string", - "enum": ["text", "audio"] - }, - "LanguageModelInput": { - "type": "object", - "properties": { - "systemPrompt": { - "type": "string", - "description": "A system prompt is a way of providing context and instructions to the model" - }, - "messages": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Message" - }, - "description": "A list of messages comprising the conversation so far." - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Tool" - }, - "description": "Definitions of tools that the model may use." - }, - "toolChoice": { - "oneOf": [ - { - "$ref": "#/components/schemas/ToolChoiceAuto" - }, - { - "$ref": "#/components/schemas/ToolChoiceNone" - }, - { - "$ref": "#/components/schemas/ToolChoiceRequired" - }, - { - "$ref": "#/components/schemas/ToolChoiceTool" - } - ], - "description": "Determines how the model should choose which tool to use. \"auto\" - The model will automatically choose the tool to use or not use any tools. \"none\" - The model will not use any tools. \"required\" - The model will be forced to use a tool. { type: \"tool\", toolName: \"toolName\" } - The model will use the specified tool." - }, - "responseFormat": { - "oneOf": [ - { - "$ref": "#/components/schemas/ResponseFormatJson" - }, - { - "$ref": "#/components/schemas/ResponseFormatText" - } - ], - "description": "The format that the model must output" - }, - "maxTokens": { - "type": "integer", - "description": "The maximum number of tokens that can be generated in the chat completion." - }, - "temperature": { - "type": "number", - "description": "Amount of randomness injected into the response. Ranges from 0.0 to 1.0" - }, - "topP": { - "type": "number", - "description": "An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass Ranges from 0.0 to 1.0" - }, - "topK": { - "type": "number", - "description": "Only sample from the top K options for each subsequent token. Used to remove \"long tail\" low probability responses. Ranges from 0.0 to 1.0" - }, - "presencePenalty": { - "type": "number", - "description": "Positive values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics." - }, - "frequencyPenalty": { - "type": "number", - "description": "Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim." - }, - "seed": { - "type": "integer", - "description": "The seed (integer), if set and supported by the model, to enable deterministic results." - }, - "modalities": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Modality" - }, - "description": "The modalities that the model should support." - }, - "extra": { - "type": "object", - "description": "Extra options that the model may support." - } - }, - "required": ["messages"] - } - } - } -}