From 53c98a7981a54f919c028bfd41ef9633b1476835 Mon Sep 17 00:00:00 2001 From: shubham-vapiai <291098183+shubham-vapiai@users.noreply.github.com> Date: Fri, 16 Oct 2026 04:28:59 +0000 Subject: [PATCH 1/2] chore: update dependencies and bump version to v3.0.0 - Update dependencies to latest versions - Regenerate API definitions - Bump version to v3.0.0 --- api.ts | 2905 +++++++++++++++++++++++++++++++------- package-lock.json | 3364 +++++++++++++++++++++++++-------------------- package.json | 4 +- 3 files changed, 4264 insertions(+), 2009 deletions(-) diff --git a/api.ts b/api.ts index 4219aa0a2..b27d47c56 100644 --- a/api.ts +++ b/api.ts @@ -10,6 +10,58 @@ * --------------------------------------------------------------- */ +export interface VersionPinReference { + /** Kind of source row the pin originates from. */ + sourceType: "assistant_version" | "squad" | "squad_version" | "tool_version"; + /** + * UUID of the source row (polymorphic, not FK-enforced). + * @format uuid + */ + sourceId: string; +} + +export interface VersionPinConflictResponseDTO { + error: "version_pinned"; + /** Human-readable reason the delete was rejected. */ + message: string; + /** Pins that block the delete. */ + pinnedBy: VersionPinReference[]; +} + +export interface TrafficAllocationVersionConflictResponseDTO { + error: "version_in_governing_allocation"; + /** Human-readable reason the delete was rejected. */ + message: string; + /** The allocation currently using this version. Create a new allocation without it before deleting the version. */ + governingAllocationId: string; +} + +export interface AssistantPinnedConflictResponseDTO { + error: "assistant_pinned"; + /** Human-readable reason the parent-assistant delete was rejected. */ + message: string; +} + +export interface AssistantManagedVapiAgentsDTO { + /** + * The Vapi Agents agent that manages the assistant. + * @format uuid + */ + agentId: string; + /** The agent's page in Vapi Agents. */ + agentUrl: string; + /** The Vapi Agents MCP server, where an AI client makes the change instead. */ + mcpUrl: string; +} + +export interface AssistantManagedConflictResponseDTO { + /** Vapi Agents manages the assistant. The lock refuses writes to the assistant itself (update, replace, delete, restore, version delete, traffic splits) and to outcomes, monitors and structured outputs that link or unlink it. It doesn't cover what changes a call without writing the assistant: call-level assistantOverrides or assistantVersion, squad member pins and overrides, which phone number points at it, edits to the tools or knowledge bases it references, or Vapi's own model-retirement sweep. */ + error: "assistant_managed_by_vapi_agents"; + /** Why the write was rejected and how to make the change in Vapi Agents instead: the agent link, the Vapi Agents MCP URL with the steps to connect it, and which of its tools to call. */ + message: string; + vapiAgents: AssistantManagedVapiAgentsDTO; +} + export interface FallbackTranscriberPlan { transcribers?: ( | FallbackAssemblyAITranscriber @@ -93,23 +145,35 @@ export interface AssemblyAITranscriber { */ vadAssistedEndpointingEnabled?: boolean; /** - * This is the transcription mode used by the `universal-3-5-pro` speech model. Only applies to the `universal-3-5-pro` speech model. + * This is the transcription mode used by the Universal Pro speech models. Only applies to `universal-3-5-pro` and `universal-3-6-pro`. * * @default 'balanced' */ mode?: "max_accuracy" | "min_latency" | "balanced"; /** - * This is a prompt that provides additional context to the transcription model. Only applies to the `universal-3-5-pro` speech model. + * This is a prompt that provides additional context to the transcription model. Only applies to `universal-3-5-pro` and `universal-3-6-pro`. * @maxLength 1750 */ prompt?: string; /** - * This is context about the voice agent that guides the transcription model. Only applies to the `universal-3-5-pro` speech model. + * This is context about the voice agent that guides the transcription model. Only applies to `universal-3-5-pro` and `universal-3-6-pro`. * @maxLength 1750 */ agentContext?: string; - /** These are language codes used to steer automatic language detection. Only applies to the `universal-3-5-pro` speech model. */ - languageCodes?: + /** + * When true, the text the assistant just spoke is sent to AssemblyAI as `agent_context` after every assistant turn, replacing the previous value, so the user's reply is transcribed in the context of the question it answers. + * `agentContext` still seeds the first turn. Text longer than 1750 characters keeps its last 1750 characters. Turns the user interrupted are not sent when the interruption is detected by voice activity (the default, `stopSpeakingPlan.numWords: 0`). + * Only applies to `universal-3-5-pro` and `universal-3-6-pro`. + * + * @default false + * @default false + */ + agentContextAutoUpdateEnabled?: boolean; + /** + * These are language codes used to steer automatic language detection. Only applies to `universal-3-5-pro` and `universal-3-6-pro`. + * `ur`, `ru`, `ko`, `ca`, `gl`, `ro`, `et`, `fa`, `yue`, `af`, `mr`, `zu`, `xh` and `nn` were added with `universal-3-6-pro`. + */ + languageCodes?: ( | "en" | "es" | "fr" @@ -127,17 +191,33 @@ export interface AssemblyAITranscriber { | "ar" | "he" | "ja" - | "zh"; + | "zh" + | "ur" + | "ru" + | "ko" + | "ca" + | "gl" + | "ro" + | "et" + | "fa" + | "yue" + | "af" + | "mr" + | "zu" + | "xh" + | "nn" + )[]; /** * This is the speech model used for the streaming session. - * Keyterms prompting is supported on universal-streaming-english and universal-3-5-pro. - * universal-3-5-pro is AssemblyAI's most accurate voice-agent model. + * Keyterms prompting is supported on universal-streaming-english, universal-3-5-pro and universal-3-6-pro. + * universal-3-6-pro is AssemblyAI's newest and most accurate voice-agent model. * @default 'universal-streaming-english' */ speechModel?: | "universal-streaming-english" | "universal-streaming-multilingual" - | "universal-3-5-pro"; + | "universal-3-5-pro" + | "universal-3-6-pro"; /** The WebSocket URL that the transcriber connects to. */ realtimeUrl?: string; /** Add up to 2500 characters of custom vocabulary. */ @@ -145,7 +225,7 @@ export interface AssemblyAITranscriber { /** * Keyterms prompting improves recognition accuracy for specific words and phrases. * Can include up to 100 keyterms, each up to 50 characters. - * Costs an additional $0.04/hour on universal-streaming-english and is included at no extra cost on universal-3-5-pro. + * Costs an additional $0.04/hour on universal-streaming-english and is included at no extra cost on the Universal Pro models (universal-3-5-pro, universal-3-6-pro). */ keytermsPrompt?: string[]; /** The duration of the end utterance silence threshold in milliseconds. */ @@ -648,6 +728,7 @@ export interface DeepgramTranscriber { | "nova-3" | "nova-3-general" | "nova-3-medical" + | "nova-3-pharma" | "nova-2" | "nova-2-general" | "nova-2-meeting" @@ -779,7 +860,7 @@ export interface DeepgramTranscriber { /** * If set to true, this will add mip_opt_out=true as a query parameter of all API requests. See https://developers.deepgram.com/docs/the-deepgram-model-improvement-partnership-program#want-to-opt-out * - * This will only be used if you are using your own Deepgram API key. + * This only applies to your own Deepgram API key. Requests on Vapi's key always opt out, whatever this is set to. * * @default false * @default false @@ -1783,6 +1864,20 @@ export interface SonioxTranscriber { * @max 3000 */ maxEndpointDelayMs?: number; + /** + * How likely Soniox is to emit an endpoint (end the caller turn). Higher values make endpoints more likely for faster turn-taking; negative values make them less likely, which helps when callers pause mid-sentence (e.g. reading numbers group by group). Range: -1.0 to 1.0. Default: 0.3 (the platform low-latency voice profile; Soniox's own default is 0.0). Supported by stt-rt-v5; omitted from the Soniox request on explicit stt-rt-v4. Soniox recommends tuning endpointLatencyAdjustmentLevel first, and advises against negative sensitivity while the level is above 0 (the settings work against each other). + * @min -1 + * @max 1 + * @example 0.3 + */ + endpointSensitivity?: number; + /** + * How aggressively Soniox reduces endpoint latency. 0 is Soniox's default semantic endpointing; 3 is the most aggressive. Higher levels return endpoints sooner but may split speech into more segments and slightly reduce accuracy. Integer. Range: 0-3. Default: 2 (the platform low-latency voice profile; Soniox's own default is 0). Supported by stt-rt-v5; omitted from the Soniox request on explicit stt-rt-v4. + * @min 0 + * @max 3 + * @example 2 + */ + endpointLatencyAdjustmentLevel?: number; /** Custom vocabulary terms to boost recognition accuracy. Useful for brand names, product names, and domain-specific terminology. Maps to Soniox context.terms. */ customVocabulary?: string[]; /** @@ -1790,6 +1885,13 @@ export interface SonioxTranscriber { * @example [{"key":"domain","value":"Healthcare"},{"key":"topic","value":"Diabetes management consultation"}] */ contextGeneral?: SonioxContextGeneralItem[]; + /** + * Transcripts below this confidence are discarded. For a discarded final, an `assistant.transcriber.endpointedSpeechLowConfidence` hook whose range covers the confidence runs (by default `[threshold - 0.2, threshold)`); if none does, the assistant does not respond to that utterance. Confidence is the mean of the per-token scores, and a transcript with an unscored token counts as 1. When unset, nothing is discarded by this setting. + * @min 0 + * @max 1 + * @example 0.4 + */ + confidenceThreshold?: number; /** This is the plan for transcriber provider fallbacks in the event that the primary transcriber provider fails. */ fallbackPlan?: FallbackTranscriberPlan; } @@ -2070,6 +2172,7 @@ export interface GoogleTranscriber { provider: "google"; /** This is the model that will be used for the transcription. */ model?: + | "gemini-3.8-flash" | "gemini-3.5-flash" | "gemini-3.1-flash-lite" | "gemini-3-flash-preview" @@ -2707,23 +2810,35 @@ export interface FallbackAssemblyAITranscriber { */ vadAssistedEndpointingEnabled?: boolean; /** - * This is the transcription mode used by the `universal-3-5-pro` speech model. Only applies to the `universal-3-5-pro` speech model. + * This is the transcription mode used by the Universal Pro speech models. Only applies to `universal-3-5-pro` and `universal-3-6-pro`. * * @default 'balanced' */ mode?: "max_accuracy" | "min_latency" | "balanced"; /** - * This is a prompt that provides additional context to the transcription model. Only applies to the `universal-3-5-pro` speech model. + * This is a prompt that provides additional context to the transcription model. Only applies to `universal-3-5-pro` and `universal-3-6-pro`. * @maxLength 1750 */ prompt?: string; /** - * This is context about the voice agent that guides the transcription model. Only applies to the `universal-3-5-pro` speech model. + * This is context about the voice agent that guides the transcription model. Only applies to `universal-3-5-pro` and `universal-3-6-pro`. * @maxLength 1750 */ agentContext?: string; - /** These are language codes used to steer automatic language detection. Only applies to the `universal-3-5-pro` speech model. */ - languageCodes?: + /** + * When true, the text the assistant just spoke is sent to AssemblyAI as `agent_context` after every assistant turn, replacing the previous value, so the user's reply is transcribed in the context of the question it answers. + * `agentContext` still seeds the first turn. Text longer than 1750 characters keeps its last 1750 characters. Turns the user interrupted are not sent when the interruption is detected by voice activity (the default, `stopSpeakingPlan.numWords: 0`). + * Only applies to `universal-3-5-pro` and `universal-3-6-pro`. + * + * @default false + * @default false + */ + agentContextAutoUpdateEnabled?: boolean; + /** + * These are language codes used to steer automatic language detection. Only applies to `universal-3-5-pro` and `universal-3-6-pro`. + * `ur`, `ru`, `ko`, `ca`, `gl`, `ro`, `et`, `fa`, `yue`, `af`, `mr`, `zu`, `xh` and `nn` were added with `universal-3-6-pro`. + */ + languageCodes?: ( | "en" | "es" | "fr" @@ -2741,17 +2856,33 @@ export interface FallbackAssemblyAITranscriber { | "ar" | "he" | "ja" - | "zh"; + | "zh" + | "ur" + | "ru" + | "ko" + | "ca" + | "gl" + | "ro" + | "et" + | "fa" + | "yue" + | "af" + | "mr" + | "zu" + | "xh" + | "nn" + )[]; /** * This is the speech model used for the streaming session. - * Keyterms prompting is supported on universal-streaming-english and universal-3-5-pro. - * universal-3-5-pro is AssemblyAI's most accurate voice-agent model. + * Keyterms prompting is supported on universal-streaming-english, universal-3-5-pro and universal-3-6-pro. + * universal-3-6-pro is AssemblyAI's newest and most accurate voice-agent model. * @default 'universal-streaming-english' */ speechModel?: | "universal-streaming-english" | "universal-streaming-multilingual" - | "universal-3-5-pro"; + | "universal-3-5-pro" + | "universal-3-6-pro"; /** The WebSocket URL that the transcriber connects to. */ realtimeUrl?: string; /** Add up to 2500 characters of custom vocabulary. */ @@ -2759,7 +2890,7 @@ export interface FallbackAssemblyAITranscriber { /** * Keyterms prompting improves recognition accuracy for specific words and phrases. * Can include up to 100 keyterms, each up to 50 characters. - * Costs an additional $0.04/hour on universal-streaming-english and is included at no extra cost on universal-3-5-pro. + * Costs an additional $0.04/hour on universal-streaming-english and is included at no extra cost on the Universal Pro models (universal-3-5-pro, universal-3-6-pro). */ keytermsPrompt?: string[]; /** The duration of the end utterance silence threshold in milliseconds. */ @@ -3180,6 +3311,7 @@ export interface FallbackDeepgramTranscriber { | "nova-3" | "nova-3-general" | "nova-3-medical" + | "nova-3-pharma" | "nova-2" | "nova-2-general" | "nova-2-meeting" @@ -3311,7 +3443,7 @@ export interface FallbackDeepgramTranscriber { /** * If set to true, this will add mip_opt_out=true as a query parameter of all API requests. See https://developers.deepgram.com/docs/the-deepgram-model-improvement-partnership-program#want-to-opt-out * - * This will only be used if you are using your own Deepgram API key. + * This only applies to your own Deepgram API key. Requests on Vapi's key always opt out, whatever this is set to. * * @default false * @default false @@ -4297,6 +4429,20 @@ export interface FallbackSonioxTranscriber { * @max 3000 */ maxEndpointDelayMs?: number; + /** + * How likely Soniox is to emit an endpoint (end the caller turn). Higher values make endpoints more likely for faster turn-taking; negative values make them less likely, which helps when callers pause mid-sentence (e.g. reading numbers group by group). Range: -1.0 to 1.0. Default: 0.3 (the platform low-latency voice profile; Soniox's own default is 0.0). Supported by stt-rt-v5; omitted from the Soniox request on explicit stt-rt-v4. Soniox recommends tuning endpointLatencyAdjustmentLevel first, and advises against negative sensitivity while the level is above 0 (the settings work against each other). + * @min -1 + * @max 1 + * @example 0.3 + */ + endpointSensitivity?: number; + /** + * How aggressively Soniox reduces endpoint latency. 0 is Soniox's default semantic endpointing; 3 is the most aggressive. Higher levels return endpoints sooner but may split speech into more segments and slightly reduce accuracy. Integer. Range: 0-3. Default: 2 (the platform low-latency voice profile; Soniox's own default is 0). Supported by stt-rt-v5; omitted from the Soniox request on explicit stt-rt-v4. + * @min 0 + * @max 3 + * @example 2 + */ + endpointLatencyAdjustmentLevel?: number; /** Custom vocabulary terms to boost recognition accuracy. Useful for brand names, product names, and domain-specific terminology. Maps to Soniox context.terms. */ customVocabulary?: string[]; /** @@ -4304,6 +4450,13 @@ export interface FallbackSonioxTranscriber { * @example [{"key":"domain","value":"Healthcare"},{"key":"topic","value":"Diabetes management consultation"}] */ contextGeneral?: SonioxContextGeneralItem[]; + /** + * Transcripts below this confidence are discarded. For a discarded final, an `assistant.transcriber.endpointedSpeechLowConfidence` hook whose range covers the confidence runs (by default `[threshold - 0.2, threshold)`); if none does, the assistant does not respond to that utterance. Confidence is the mean of the per-token scores, and a transcript with an unscored token counts as 1. When unset, nothing is discarded by this setting. + * @min 0 + * @max 1 + * @example 0.4 + */ + confidenceThreshold?: number; } export interface FallbackSpeechmaticsTranscriber { @@ -4564,6 +4717,7 @@ export interface FallbackGoogleTranscriber { provider: "google"; /** This is the model that will be used for the transcription. */ model?: + | "gemini-3.8-flash" | "gemini-3.5-flash" | "gemini-3.1-flash-lite" | "gemini-3-flash-preview" @@ -6241,6 +6395,20 @@ export interface TransferDestinationAssistant { | "delete-history"; /** This is the assistant to transfer the call to. */ assistantName: string; + /** + * This is the name of the transfer destination. This is just for your own reference. + * + * Usage: + * - Optional. Stored with the destination wherever it is supplied. For `number` + * and `sip` destinations it is also persisted on the transfer record in the + * call artifact after a transfer and displayed in the dashboard call log (on + * the transfer divider in the transcript view) alongside the destination. + * When omitted, everything behaves exactly as before. + * - Display-only. Unlike `description`, it is never included in prompts or tool + * descriptions and has no effect on model behavior or destination choice. + * @maxLength 40 + */ + name?: string; /** This is the description of the destination, used by the AI to choose when and how to transfer the call. */ description?: string; } @@ -7226,6 +7394,8 @@ export interface TransferDestinationNumber { * - Set to '{{phoneNumber.number}}' to always use the phone number of the assistant as the caller ID. * - Set to any E164 number to always use that number as the caller ID. This needs to be a number that is owned or verified by your Transport provider like Twilio. * + * Note: on Twilio, a caller who withheld their number has no caller ID the destination carrier will accept, so the assistant's phone number is presented instead and the transfer goes through. This applies when `callerId` is not provided and when it is set to '{{customer.number}}'. + * * For Twilio, you can read up more here: https://www.twilio.com/docs/voice/twiml/dial#callerid * @maxLength 40 */ @@ -7236,6 +7406,20 @@ export interface TransferDestinationNumber { * @default `transferPlan.mode='blind-transfer'` */ transferPlan?: TransferPlan; + /** + * This is the name of the transfer destination. This is just for your own reference. + * + * Usage: + * - Optional. Stored with the destination wherever it is supplied. For `number` + * and `sip` destinations it is also persisted on the transfer record in the + * call artifact after a transfer and displayed in the dashboard call log (on + * the transfer divider in the transcript view) alongside the destination. + * When omitted, everything behaves exactly as before. + * - Display-only. Unlike `description`, it is never included in prompts or tool + * descriptions and has no effect on model behavior or destination choice. + * @maxLength 40 + */ + name?: string; /** This is the description of the destination, used by the AI to choose when and how to transfer the call. */ description?: string; } @@ -7275,6 +7459,20 @@ export interface TransferDestinationSip { transferPlan?: TransferPlan; /** These are custom headers to be added to SIP refer during transfer call. */ sipHeaders?: object; + /** + * This is the name of the transfer destination. This is just for your own reference. + * + * Usage: + * - Optional. Stored with the destination wherever it is supplied. For `number` + * and `sip` destinations it is also persisted on the transfer record in the + * call artifact after a transfer and displayed in the dashboard call log (on + * the transfer divider in the transcript view) alongside the destination. + * When omitted, everything behaves exactly as before. + * - Display-only. Unlike `description`, it is never included in prompts or tool + * descriptions and has no effect on model behavior or destination choice. + * @maxLength 40 + */ + name?: string; /** This is the description of the destination, used by the AI to choose when and how to transfer the call. */ description?: string; } @@ -7950,6 +8148,7 @@ export interface KnowledgeBase { provider: "google"; /** The model to use for the knowledge base */ model?: + | "gemini-3.8-flash" | "gemini-3.5-flash" | "gemini-3.1-flash-lite" | "gemini-3-flash-preview" @@ -9011,7 +9210,7 @@ export interface AnyscaleModel { */ temperature?: number; /** - * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250. + * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250. On gpt-6-luna and claude-haiku-5-5 no cap is applied unless you set one (claude-haiku-5-5 sends its 128,000-token maximum), because reasoning uses output tokens and a small cap can leave the reply empty. * @min 50 * @max 10000 */ @@ -9110,7 +9309,14 @@ export interface AnthropicModel { | "claude-sonnet-4-5-20250929" | "claude-sonnet-4-6" | "claude-sonnet-5" - | "claude-haiku-4-5-20251001"; + | "claude-haiku-4-5-20251001" + | "claude-haiku-5-5"; + /** + * Reasoning effort for claude-haiku-5-5. `none` turns thinking off. `low` to `max` + * use adaptive thinking at that effort; higher effort can add latency before the + * model speaks. Unset means `none`. Rejected for every other model. + */ + reasoningEffort?: "none" | "low" | "medium" | "high" | "xhigh" | "max"; /** The provider identifier for Anthropic. */ provider: "anthropic"; /** @@ -9126,7 +9332,7 @@ export interface AnthropicModel { */ temperature?: number; /** - * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250. + * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250. On gpt-6-luna and claude-haiku-5-5 no cap is applied unless you set one (claude-haiku-5-5 sends its 128,000-token maximum), because reasoning uses output tokens and a small cap can leave the reply empty. * @min 50 * @max 10000 */ @@ -9216,7 +9422,36 @@ export interface AnthropicBedrockModel { | "claude-sonnet-4-5-20250929" | "claude-sonnet-4-6" | "claude-haiku-4-5-20251001" + | "claude-haiku-5-5" + | "global.anthropic.claude-haiku-4-5-20251001-v1:0"; + /** + * At most one same-provider Bedrock fallback model, tried if the primary fails. Cannot be combined with thinking in this release. Resolution uses the call's Bedrock credential region (or ANTHROPIC_BEDROCK_AWS_REGION). Names with no inference profile in that region are skipped and warned, never remapped to US or global. On Vapi EU, fallback names without an EU inference profile are rejected at write time. + * @maxItems 1 + * @example ["claude-haiku-4-5-20251001"] + */ + fallbackModels?: + | "claude-3-opus-20240229" + | "claude-3-sonnet-20240229" + | "claude-3-haiku-20240307" + | "claude-3-5-sonnet-20240620" + | "claude-3-5-sonnet-20241022" + | "claude-3-5-haiku-20241022" + | "claude-3-7-sonnet-20250219" + | "claude-opus-4-20250514" + | "claude-opus-4-5-20251101" + | "claude-opus-4-6" + | "claude-sonnet-4-20250514" + | "claude-sonnet-4-5-20250929" + | "claude-sonnet-4-6" + | "claude-haiku-4-5-20251001" + | "claude-haiku-5-5" | "global.anthropic.claude-haiku-4-5-20251001-v1:0"; + /** + * Reasoning effort for claude-haiku-5-5. `none` turns thinking off. `low` to `max` + * use adaptive thinking at that effort; higher effort can add latency before the + * model speaks. Unset means `none`. Rejected for every other model. + */ + reasoningEffort?: "none" | "low" | "medium" | "high" | "xhigh" | "max"; /** * Optional configuration for Anthropic's thinking feature. * Only applicable for claude-3-7-sonnet-20250219 model. @@ -9230,7 +9465,7 @@ export interface AnthropicBedrockModel { */ temperature?: number; /** - * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250. + * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250. On gpt-6-luna and claude-haiku-5-5 no cap is applied unless you set one (claude-haiku-5-5 sends its 128,000-token maximum), because reasoning uses output tokens and a small cap can leave the reply empty. * @min 50 * @max 10000 */ @@ -9312,7 +9547,7 @@ export interface CerebrasModel { */ temperature?: number; /** - * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250. + * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250. On gpt-6-luna and claude-haiku-5-5 no cap is applied unless you set one (claude-haiku-5-5 sends its 128,000-token maximum), because reasoning uses output tokens and a small cap can leave the reply empty. * @min 50 * @max 10000 */ @@ -9425,7 +9660,7 @@ export interface CustomLLMModel { */ temperature?: number; /** - * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250. + * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250. On gpt-6-luna and claude-haiku-5-5 no cap is applied unless you set one (claude-haiku-5-5 sends its 128,000-token maximum), because reasoning uses output tokens and a small cap can leave the reply empty. * @min 50 * @max 10000 */ @@ -9507,7 +9742,7 @@ export interface DeepInfraModel { */ temperature?: number; /** - * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250. + * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250. On gpt-6-luna and claude-haiku-5-5 no cap is applied unless you set one (claude-haiku-5-5 sends its 128,000-token maximum), because reasoning uses output tokens and a small cap can leave the reply empty. * @min 50 * @max 10000 */ @@ -9580,7 +9815,11 @@ export interface DeepSeekModel { /** These are the options for the knowledge base. */ knowledgeBase?: CreateCustomKnowledgeBaseDTO; /** This is the name of the model. Ex. cognitivecomputations/dolphin-mixtral-8x7b */ - model: "deepseek-chat" | "deepseek-reasoner"; + model: + | "deepseek-chat" + | "deepseek-reasoner" + | "deepseek-flash" + | "deepseek-flash-thinking"; provider: "deep-seek"; /** * This is the temperature that will be used for calls. Default is 0.5. @@ -9589,7 +9828,7 @@ export interface DeepSeekModel { */ temperature?: number; /** - * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250. + * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250. On gpt-6-luna and claude-haiku-5-5 no cap is applied unless you set one (claude-haiku-5-5 sends its 128,000-token maximum), because reasoning uses output tokens and a small cap can leave the reply empty. * @min 50 * @max 10000 */ @@ -9703,6 +9942,7 @@ export interface GoogleModel { knowledgeBase?: CreateCustomKnowledgeBaseDTO; /** This is the Google model that will be used. */ model: + | "gemini-3.8-flash" | "gemini-3.5-flash" | "gemini-3.1-flash-lite" | "gemini-3-flash-preview" @@ -9733,7 +9973,7 @@ export interface GoogleModel { */ temperature?: number; /** - * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250. + * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250. On gpt-6-luna and claude-haiku-5-5 no cap is applied unless you set one (claude-haiku-5-5 sends its 128,000-token maximum), because reasoning uses output tokens and a small cap can leave the reply empty. * @min 50 * @max 10000 */ @@ -9829,7 +10069,7 @@ export interface GroqModel { */ temperature?: number; /** - * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250. + * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250. On gpt-6-luna and claude-haiku-5-5 no cap is applied unless you set one (claude-haiku-5-5 sends its 128,000-token maximum), because reasoning uses output tokens and a small cap can leave the reply empty. * @min 50 * @max 10000 */ @@ -9911,7 +10151,7 @@ export interface InflectionAIModel { */ temperature?: number; /** - * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250. + * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250. On gpt-6-luna and claude-haiku-5-5 no cap is applied unless you set one (claude-haiku-5-5 sends its 128,000-token maximum), because reasoning uses output tokens and a small cap can leave the reply empty. * @min 50 * @max 10000 */ @@ -9993,7 +10233,7 @@ export interface MinimaxLLMModel { */ temperature?: number; /** - * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250. + * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250. On gpt-6-luna and claude-haiku-5-5 no cap is applied unless you set one (claude-haiku-5-5 sends its 128,000-token maximum), because reasoning uses output tokens and a small cap can leave the reply empty. * @min 50 * @max 10000 */ @@ -10017,6 +10257,86 @@ export interface MinimaxLLMModel { numFastTurns?: number; } +export interface OpenAISpeaker { + /** Omit to use model.systemPrompt, or system-role messages when systemPrompt is absent. An explicit empty string is preserved. */ + instructions?: string; + /** Personality packs append speaking-style guidance to the speaker prompt. Set to an array of pack IDs and test one pack at a time. These are prompt instructions, not fixed speed controls. */ + personalityPacks?: ( + | "eager-listener" + | "idle-hummer" + | "bouncy" + | "unhurried" + )[]; +} + +export interface OpenAIReasonerSkill { + /** + * Unique name within this assistant. + * @maxLength 64 + * @pattern /^[a-z][a-z0-9_-]*$/ + */ + name: string; + /** + * Explain when the reasoner should load this skill. Always visible in its catalog. + * @maxLength 1024 + * @pattern /\S/ + */ + description: string; + /** + * Full skill instructions, loaded only while this skill is active. + * @maxLength 32000 + * @pattern /\S/ + */ + content: string; + /** + * Tools available only after loading this skill. Can be combined with toolIds. + * @maxItems 20 + */ + tools?: ( + | CreateFunctionToolDTO + | CreateApiRequestToolDTO + | CreateMcpToolDTO + | CreateEndCallToolDTO + | CreateDtmfToolDTO + | CreateTransferCallToolDTO + )[]; + /** + * Existing organization-owned tools available only after loading this skill. + * @maxItems 20 + */ + toolIds?: string[]; +} + +export interface OpenAIReasoner { + /** + * The reasoner uses OpenAI. Omit to use OpenAI. + * @default "openai" + */ + provider?: "openai"; + /** + * The delegated reasoning model. Omit to use GPT-5.6 Terra. + * @default "gpt-5.6-terra" + */ + model?: "gpt-5.6-sol" | "gpt-5.6-terra" | "gpt-5.6-luna"; + /** + * Higher effort can increase response time. Omit to use low. + * @default "low" + */ + reasoningEffort?: "none" | "low" | "medium" | "high" | "xhigh" | "max"; + /** + * Complete reasoner instructions. An explicit empty string is preserved. + * Omit to use Vapi's default reasoner instructions. No behavioral instructions + * are appended unless skills are configured; skill loading guidance and active + * skill content are then composed with these instructions. + */ + instructions?: string; + /** + * Inline skills whose instructions and tools the GPT-Live reasoner loads on demand. + * @maxItems 20 + */ + skills?: OpenAIReasonerSkill[]; +} + export interface OpenAIModel { /** This is the starting state for the conversation. */ messages?: OpenAIMessage[]; @@ -10065,10 +10385,15 @@ export interface OpenAIModel { toolRefs?: ToolRef[]; /** These are the options for the knowledge base. */ knowledgeBase?: CreateCustomKnowledgeBaseDTO; + /** Configuration for the GPT-Live speaker. */ + speaker?: OpenAISpeaker; + /** Configuration for the reasoner supporting the GPT-Live speaker. */ + reasoner?: OpenAIReasoner; /** This is the provider that will be used for the model. */ provider: "openai"; /** * This is the OpenAI model that will be used. + * For GPT-Live configuration and supported settings, see https://docs.vapi.ai/gpt-live/overview. * * When using Vapi OpenAI or your own Azure Credentials, you have the option to specify the region for the selected model. This shouldn't be specified unless you have a specific reason to do so. Vapi will automatically find the fastest region that make sense. * This is helpful when you are required to comply with Data Residency rules. Learn more about Azure regions here https://azure.microsoft.com/en-us/explore/global-infrastructure/data-residency/. @@ -10076,6 +10401,7 @@ export interface OpenAIModel { * @default undefined */ model: + | "gpt-6-luna" | "gpt-5.6-sol" | "gpt-5.6-terra" | "gpt-5.6-luna" @@ -10231,12 +10557,14 @@ export interface OpenAIModel { | "gpt-3.5-turbo-1106:westus" | "gpt-4.1:australiaeast" | "gpt-4o:australiaeast" - | "gpt-5.4-mini:australiaeast"; + | "gpt-5.4-mini:australiaeast" + | "gpt-live-1"; /** * These are the fallback models that will be used if the primary model fails. This shouldn't be specified unless you have a specific reason to do so. Vapi will automatically find the fastest fallbacks that make sense. * @example ["gpt-4-0125-preview","gpt-4-0613"] */ fallbackModels?: ( + | "gpt-6-luna" | "gpt-5.6-sol" | "gpt-5.6-terra" | "gpt-5.6-luna" @@ -10425,6 +10753,19 @@ export interface OpenAIModel { * @maxLength 64 */ promptCacheKey?: string; + /** + * This is the OpenAI service tier to request. + * + * - `fast`: requests Fast mode, which gives faster responses at a higher per-token rate. How much faster depends on the model. + * - `priority`: the old name for `fast`, accepted and billed the same. + * - `default`: standard processing. + * - `auto`: the default when unset. On Vapi's OpenAI keys this is standard processing; on your own OpenAI key, OpenAI applies your project's default tier. + * + * OpenAI sets Fast mode rates per model, and they are not a fixed multiple of the standard rates. Vapi bills them only when OpenAI reports that it served the request in Fast mode. Otherwise the request is billed at standard rates, for example when Fast mode isn't available for the model on Vapi, OpenAI downgrades the request, or the request runs on Azure OpenAI. + * + * Supported models and their Fast mode rates: https://docs.vapi.ai/providers/model/openai + */ + serviceTier?: "auto" | "default" | "fast" | "priority"; /** * Reasoning effort for reasoning-capable OpenAI models. * For `gpt-realtime-2`: forwarded to V2 stream's session.update as `reasoning.effort`. @@ -10439,7 +10780,7 @@ export interface OpenAIModel { */ temperature?: number; /** - * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250. + * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250. On gpt-6-luna and claude-haiku-5-5 no cap is applied unless you set one (claude-haiku-5-5 sends its 128,000-token maximum), because reasoning uses output tokens and a small cap can leave the reply empty. * @min 50 * @max 10000 */ @@ -10521,7 +10862,7 @@ export interface OpenRouterModel { */ temperature?: number; /** - * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250. + * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250. On gpt-6-luna and claude-haiku-5-5 no cap is applied unless you set one (claude-haiku-5-5 sends its 128,000-token maximum), because reasoning uses output tokens and a small cap can leave the reply empty. * @min 50 * @max 10000 */ @@ -10603,7 +10944,7 @@ export interface PerplexityAIModel { */ temperature?: number; /** - * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250. + * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250. On gpt-6-luna and claude-haiku-5-5 no cap is applied unless you set one (claude-haiku-5-5 sends its 128,000-token maximum), because reasoning uses output tokens and a small cap can leave the reply empty. * @min 50 * @max 10000 */ @@ -10685,7 +11026,7 @@ export interface TogetherAIModel { */ temperature?: number; /** - * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250. + * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250. On gpt-6-luna and claude-haiku-5-5 no cap is applied unless you set one (claude-haiku-5-5 sends its 128,000-token maximum), because reasoning uses output tokens and a small cap can leave the reply empty. * @min 50 * @max 10000 */ @@ -10723,12 +11064,12 @@ export interface WorkflowOpenAIModel { /** * These are the messages used to customize the prompt used for structured output extraction. * - * When provided, these messages replace the default prompts. Message contents support LiquidJS templating with the following variables: - * - `{{transcript}}` or `{{messages}}` to reference the conversation (one is required) + * When provided, these messages replace the default prompts. For text extraction, message contents support LiquidJS templating with the following variables: + * - `{{transcript}}`, `{{messages}}`, or `{{messagesWithConfidence}}` to reference the conversation (one is required) * - `{{structuredOutput.name}}`, `{{structuredOutput.description}}`, or `{{structuredOutput.schema}}` to reference the structured output definition (one is required) * - `{{systemPrompt}}`, `{{callEndedReason}}`, `{{duration}}`, `{{startedAt}}`, `{{endedAt}}`, and any `assistantOverrides.variableValues` * - * `{{messages}}` is the full message history including tool calls; `{{transcript}}` is the spoken text only, which uses significantly fewer tokens. + * In structured outputs, `{{messages}}` includes conversation text and tool calls/results, but omits caller transcription-confidence fields. For text extraction, `{{messagesWithConfidence}}` includes the original message history with transcription confidence for outputs that explicitly need it. These variables also apply in structured-output schema descriptions. Audio-targeted (`messages-with-audio`) extraction ignores custom messages. Stored call artifacts and API messages retain their confidence data. `{{transcript}}` is the spoken text only, which uses significantly fewer tokens. * * If not provided, default system and user prompts are used. */ @@ -10743,6 +11084,7 @@ export interface WorkflowOpenAIModel { * @maxLength 100 */ model: + | "gpt-6-luna" | "gpt-5.6-sol" | "gpt-5.6-terra" | "gpt-5.6-luna" @@ -10911,12 +11253,12 @@ export interface WorkflowAnthropicModel { /** * These are the messages used to customize the prompt used for structured output extraction. * - * When provided, these messages replace the default prompts. Message contents support LiquidJS templating with the following variables: - * - `{{transcript}}` or `{{messages}}` to reference the conversation (one is required) + * When provided, these messages replace the default prompts. For text extraction, message contents support LiquidJS templating with the following variables: + * - `{{transcript}}`, `{{messages}}`, or `{{messagesWithConfidence}}` to reference the conversation (one is required) * - `{{structuredOutput.name}}`, `{{structuredOutput.description}}`, or `{{structuredOutput.schema}}` to reference the structured output definition (one is required) * - `{{systemPrompt}}`, `{{callEndedReason}}`, `{{duration}}`, `{{startedAt}}`, `{{endedAt}}`, and any `assistantOverrides.variableValues` * - * `{{messages}}` is the full message history including tool calls; `{{transcript}}` is the spoken text only, which uses significantly fewer tokens. + * In structured outputs, `{{messages}}` includes conversation text and tool calls/results, but omits caller transcription-confidence fields. For text extraction, `{{messagesWithConfidence}}` includes the original message history with transcription confidence for outputs that explicitly need it. These variables also apply in structured-output schema descriptions. Audio-targeted (`messages-with-audio`) extraction ignores custom messages. Stored call artifacts and API messages retain their confidence data. `{{transcript}}` is the spoken text only, which uses significantly fewer tokens. * * If not provided, default system and user prompts are used. */ @@ -10942,7 +11284,8 @@ export interface WorkflowAnthropicModel { | "claude-sonnet-4-5-20250929" | "claude-sonnet-4-6" | "claude-sonnet-5" - | "claude-haiku-4-5-20251001"; + | "claude-haiku-4-5-20251001" + | "claude-haiku-5-5"; /** * This is the optional configuration for Anthropic's thinking feature. * @@ -10967,12 +11310,12 @@ export interface WorkflowAnthropicBedrockModel { /** * These are the messages used to customize the prompt used for structured output extraction. * - * When provided, these messages replace the default prompts. Message contents support LiquidJS templating with the following variables: - * - `{{transcript}}` or `{{messages}}` to reference the conversation (one is required) + * When provided, these messages replace the default prompts. For text extraction, message contents support LiquidJS templating with the following variables: + * - `{{transcript}}`, `{{messages}}`, or `{{messagesWithConfidence}}` to reference the conversation (one is required) * - `{{structuredOutput.name}}`, `{{structuredOutput.description}}`, or `{{structuredOutput.schema}}` to reference the structured output definition (one is required) * - `{{systemPrompt}}`, `{{callEndedReason}}`, `{{duration}}`, `{{startedAt}}`, `{{endedAt}}`, and any `assistantOverrides.variableValues` * - * `{{messages}}` is the full message history including tool calls; `{{transcript}}` is the spoken text only, which uses significantly fewer tokens. + * In structured outputs, `{{messages}}` includes conversation text and tool calls/results, but omits caller transcription-confidence fields. For text extraction, `{{messagesWithConfidence}}` includes the original message history with transcription confidence for outputs that explicitly need it. These variables also apply in structured-output schema descriptions. Audio-targeted (`messages-with-audio`) extraction ignores custom messages. Stored call artifacts and API messages retain their confidence data. `{{transcript}}` is the spoken text only, which uses significantly fewer tokens. * * If not provided, default system and user prompts are used. */ @@ -10998,6 +11341,7 @@ export interface WorkflowAnthropicBedrockModel { | "claude-sonnet-4-5-20250929" | "claude-sonnet-4-6" | "claude-haiku-4-5-20251001" + | "claude-haiku-5-5" | "global.anthropic.claude-haiku-4-5-20251001-v1:0"; /** * This is the optional configuration for Anthropic's thinking feature. @@ -11023,12 +11367,12 @@ export interface WorkflowGoogleModel { /** * These are the messages used to customize the prompt used for structured output extraction. * - * When provided, these messages replace the default prompts. Message contents support LiquidJS templating with the following variables: - * - `{{transcript}}` or `{{messages}}` to reference the conversation (one is required) + * When provided, these messages replace the default prompts. For text extraction, message contents support LiquidJS templating with the following variables: + * - `{{transcript}}`, `{{messages}}`, or `{{messagesWithConfidence}}` to reference the conversation (one is required) * - `{{structuredOutput.name}}`, `{{structuredOutput.description}}`, or `{{structuredOutput.schema}}` to reference the structured output definition (one is required) * - `{{systemPrompt}}`, `{{callEndedReason}}`, `{{duration}}`, `{{startedAt}}`, `{{endedAt}}`, and any `assistantOverrides.variableValues` * - * `{{messages}}` is the full message history including tool calls; `{{transcript}}` is the spoken text only, which uses significantly fewer tokens. + * In structured outputs, `{{messages}}` includes conversation text and tool calls/results, but omits caller transcription-confidence fields. For text extraction, `{{messagesWithConfidence}}` includes the original message history with transcription confidence for outputs that explicitly need it. These variables also apply in structured-output schema descriptions. Audio-targeted (`messages-with-audio`) extraction ignores custom messages. Stored call artifacts and API messages retain their confidence data. `{{transcript}}` is the spoken text only, which uses significantly fewer tokens. * * If not provided, default system and user prompts are used. */ @@ -11040,6 +11384,7 @@ export interface WorkflowGoogleModel { * @maxLength 100 */ model: + | "gemini-3.8-flash" | "gemini-3.5-flash" | "gemini-3.1-flash-lite" | "gemini-3-flash-preview" @@ -11075,12 +11420,12 @@ export interface WorkflowCustomModel { /** * These are the messages used to customize the prompt used for structured output extraction. * - * When provided, these messages replace the default prompts. Message contents support LiquidJS templating with the following variables: - * - `{{transcript}}` or `{{messages}}` to reference the conversation (one is required) + * When provided, these messages replace the default prompts. For text extraction, message contents support LiquidJS templating with the following variables: + * - `{{transcript}}`, `{{messages}}`, or `{{messagesWithConfidence}}` to reference the conversation (one is required) * - `{{structuredOutput.name}}`, `{{structuredOutput.description}}`, or `{{structuredOutput.schema}}` to reference the structured output definition (one is required) * - `{{systemPrompt}}`, `{{callEndedReason}}`, `{{duration}}`, `{{startedAt}}`, `{{endedAt}}`, and any `assistantOverrides.variableValues` * - * `{{messages}}` is the full message history including tool calls; `{{transcript}}` is the spoken text only, which uses significantly fewer tokens. + * In structured outputs, `{{messages}}` includes conversation text and tool calls/results, but omits caller transcription-confidence fields. For text extraction, `{{messagesWithConfidence}}` includes the original message history with transcription confidence for outputs that explicitly need it. These variables also apply in structured-output schema descriptions. Audio-targeted (`messages-with-audio`) extraction ignores custom messages. Stored call artifacts and API messages retain their confidence data. `{{transcript}}` is the spoken text only, which uses significantly fewer tokens. * * If not provided, default system and user prompts are used. */ @@ -12337,6 +12682,15 @@ export interface CreateStructuredOutputDTO { /** * This is the regex pattern to match against the transcript. * + * Simulation evaluations use a canonical transcript built from recorded messages: + * User: and AI: dialogue, AI: tool_calls: JSON name/arguments records, and + * AI: tool_call_results: JSON results. System messages are excluded. These + * fixed labels apply even when custom artifact transcript labels are configured. + * Tool payloads participate in first-match and all-match extraction in event order. + * An empty message array falls back to the supplied transcript verbatim. + * Production-call extraction and call preview use their existing transcripts, + * so previewing the same output on a simulation's call can return a different result. + * * Only used when type is 'regex'. Supports both raw patterns (e.g. '\d+') and * regex literal format (e.g. '/\d+/gi'). Uses RE2 syntax for safety. * @@ -12353,7 +12707,8 @@ export interface CreateStructuredOutputDTO { * This is the model that will be used to extract the structured output. * * To provide your own custom system and user prompts for structured output extraction, populate the messages array with your system and user messages. You can specify liquid templating in your system and user messages. - * Between the system or user messages, you must reference either 'transcript' or 'messages' with the `{{}}` syntax to access the conversation history. + * For text extraction, you must reference 'transcript', 'messages', or 'messagesWithConfidence' with the `{{}}` syntax to access the conversation history. + * In structured outputs, `{{messages}}` includes conversation text and tool calls/results but omits caller transcription-confidence fields. Text extraction can use `{{messagesWithConfidence}}` when the output needs the original message history with transcription confidence. These variables also apply in structured-output schema descriptions. Audio-targeted (`messages-with-audio`) extraction ignores custom messages. Stored call artifacts and API messages retain their confidence data. * Between the system or user messages, you must reference a variation of the structured output with the `{{}}` syntax to access the structured output definition. * i.e.: * `{{structuredOutput}}` @@ -13302,7 +13657,7 @@ export interface XaiModel { */ temperature?: number; /** - * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250. + * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250. On gpt-6-luna and claude-haiku-5-5 no cap is applied unless you set one (claude-haiku-5-5 sends its 128,000-token maximum), because reasoning uses output tokens and a small cap can leave the reply empty. * @min 50 * @max 10000 */ @@ -13636,6 +13991,8 @@ export interface CartesiaVoice { model?: | "sonic-3.5" | "sonic-3.5-2026-05-04" + | "sonic-3.6" + | "sonic-3.6-2026-08-27" | "sonic-3" | "sonic-3-2026-01-12" | "sonic-3-2025-10-27" @@ -13677,6 +14034,7 @@ export interface CartesiaVoice { | "ms" | "nl" | "no" + | "or" | "pa" | "pl" | "pt" @@ -13690,6 +14048,7 @@ export interface CartesiaVoice { | "tl" | "tr" | "uk" + | "ur" | "vi" | "zh"; /** Experimental controls for Cartesia voice generation */ @@ -13824,22 +14183,78 @@ export interface DeepgramVoice { | "julius" | "lara" | "elara" - | "aurelia"; - /** - * This is the model that will be used. Defaults to 'aura-2' when not specified. + | "aurelia" + | "hannah" + | "kit" + | "alexis" + | "cliff" + | "sienna" + | "cole" + | "brooke" + | "colin" + | "gemma" + | "haley" + | "heather" + | "miles" + | "sean" + | "bree" + | "brittany" + | "bruce" + | "conor" + | "donovan" + | "drew" + | "elise" + | "jack" + | "kai" + | "kelsey" + | "maeve" + | "marcelo" + | "marcus" + | "meena" + | "meghan" + | "naveen" + | "paige" + | "priya" + | "rufus" + | "sharon" + | "tanner" + | "wade" + | "wes"; + /** + * This is the model that will be used. Defaults to 'aura' when not specified. * @example "aura-2" */ - model?: "aura" | "aura-2"; + model?: "aura" | "aura-2" | "flux"; /** * If set to true, this will add mip_opt_out=true as a query parameter of all API requests. See https://developers.deepgram.com/docs/the-deepgram-model-improvement-partnership-program#want-to-opt-out * - * This will only be used if you are using your own Deepgram API key. + * This only applies to your own Deepgram API key. Requests on Vapi's key always opt out, whatever this is set to. * * @default false * @default false * @example false */ mipOptOut?: boolean; + /** + * This is the speed multiplier that will be used. Aura-2 accepts 0.7 to 1.5; Flux accepts 0.5 to 1.5 in steps of 0.05. Aura does not support speed. + * + * @default 1 + * @min 0.5 + * @max 1.5 + * @default 1 + * @example 1.1 + */ + speed?: number; + /** + * This is the expressivity level for Flux voices, from -2 (flat) to 2 (lively). Deepgram marks this control as beta and may retune the scale. Aura and Aura-2 do not support it. + * + * @default 0 + * @min -2 + * @max 2 + * @default 0 + * @example 1 + */ + expressivity?: number; /** This is the plan for chunking the model output before it is sent to the voice provider. */ chunkPlan?: ChunkPlan; /** This is the plan for voice provider fallbacks in the event that the primary voice provider fails. */ @@ -13896,47 +14311,47 @@ export interface ElevenLabsVoice { */ stability?: number; /** - * Defines the similarity boost for voice settings. + * Defines the similarity boost for voice settings. Ignored by `eleven_v4_turbo`. * @min 0 * @max 1 * @example 0.75 */ similarityBoost?: number; /** - * Defines the style for voice settings. + * Defines the style for voice settings. Ignored by `eleven_v4_turbo`. * @min 0 * @max 1 * @example 0 */ style?: number; /** - * Defines the use speaker boost for voice settings. + * Defines the use speaker boost for voice settings. Ignored by `eleven_v4_turbo`. * @example false */ useSpeakerBoost?: boolean; /** - * Defines the speed for voice settings. + * Defines the speed for voice settings. Ignored by `eleven_v4_turbo`. * @min 0.7 * @max 1.2 * @example 0.9 */ speed?: number; /** - * Defines the optimize streaming latency for voice settings. Defaults to 3. + * Defines the optimize streaming latency for voice settings. Defaults to 3. Ignored by `eleven_v4_turbo`. * @min 0 * @max 4 * @example 3 */ optimizeStreamingLatency?: number; /** - * This enables the use of https://elevenlabs.io/docs/speech-synthesis/prompting#pronunciation. Defaults to false to save latency. + * This enables the use of https://elevenlabs.io/docs/speech-synthesis/prompting#pronunciation. Defaults to false to save latency. Ignored by `eleven_v4_turbo`. * * @default false * @example false */ enableSsmlParsing?: boolean; /** - * Defines the auto mode for voice settings. Defaults to false. + * Defines the auto mode for voice settings. Defaults to false. Ignored by `eleven_v4_turbo`. * @example false */ autoMode?: boolean; @@ -13951,8 +14366,9 @@ export interface ElevenLabsVoice { | "eleven_flash_v2" | "eleven_flash_v2_5" | "eleven_monolingual_v1" - | "eleven_v3"; - /** This is the language (ISO 639-1) that is enforced for the model. Currently only Turbo v2.5 supports language enforcement. For other models, an error will be returned if language code is provided. */ + | "eleven_v3" + | "eleven_v4_turbo"; + /** This is the language (ISO 639-1) that is enforced for the model. Currently only Turbo v2.5, Flash v2.5 and v4 Turbo support language enforcement; other models ignore it. */ language?: string; /** This is the plan for chunking the model output before it is sent to the voice provider. */ chunkPlan?: ChunkPlan; @@ -14322,7 +14738,8 @@ export interface OpenAIVoice { provider: "openai"; /** * This is the provider-specific ID that will be used. - * Please note that ash, ballad, coral, sage, and verse may only be used with realtime models. + * Voice availability depends on the selected model. + * quartz, ripple, vesper, willow, stone, gleam, meridian, bossa, tempo, beacon, delta, cinder are only supported with GPT-Live models. */ voiceId: | "alloy" @@ -14333,6 +14750,23 @@ export interface OpenAIVoice { | "shimmer" | "marin" | "cedar" + | "ash" + | "ballad" + | "beacon" + | "bossa" + | "cinder" + | "coral" + | "delta" + | "gleam" + | "meridian" + | "quartz" + | "ripple" + | "sage" + | "stone" + | "tempo" + | "verse" + | "vesper" + | "willow" | string; /** This is the model that will be used for text-to-speech. */ model?: "tts-1" | "tts-1-hd" | "gpt-4o-mini-tts"; @@ -14537,12 +14971,19 @@ export interface RimeAIVoice { | "masonry" | "albion" | "parapet" + | "clementine" + | "walnut" + | "eyre" + | "bancroft" + | "hesse" + | "beatty" + | "godfrey" | string; /** * This is the model that will be used. Defaults to 'arcana' when not specified. * @example "arcana" */ - model?: "arcana" | "mistv2" | "mist"; + model?: "arcana" | "coda" | "mistv2" | "mistv3" | "mist"; /** * This is the speed multiplier that will be used. * @min 0.1 @@ -15477,6 +15918,8 @@ export interface FallbackCartesiaVoice { model?: | "sonic-3.5" | "sonic-3.5-2026-05-04" + | "sonic-3.6" + | "sonic-3.6-2026-08-27" | "sonic-3" | "sonic-3-2026-01-12" | "sonic-3-2025-10-27" @@ -15518,6 +15961,7 @@ export interface FallbackCartesiaVoice { | "ms" | "nl" | "no" + | "or" | "pa" | "pl" | "pt" @@ -15531,6 +15975,7 @@ export interface FallbackCartesiaVoice { | "tl" | "tr" | "uk" + | "ur" | "vi" | "zh"; /** Experimental controls for Cartesia voice generation */ @@ -15661,22 +16106,78 @@ export interface FallbackDeepgramVoice { | "julius" | "lara" | "elara" - | "aurelia"; - /** - * This is the model that will be used. Defaults to 'aura-2' when not specified. + | "aurelia" + | "hannah" + | "kit" + | "alexis" + | "cliff" + | "sienna" + | "cole" + | "brooke" + | "colin" + | "gemma" + | "haley" + | "heather" + | "miles" + | "sean" + | "bree" + | "brittany" + | "bruce" + | "conor" + | "donovan" + | "drew" + | "elise" + | "jack" + | "kai" + | "kelsey" + | "maeve" + | "marcelo" + | "marcus" + | "meena" + | "meghan" + | "naveen" + | "paige" + | "priya" + | "rufus" + | "sharon" + | "tanner" + | "wade" + | "wes"; + /** + * This is the model that will be used. Defaults to 'aura' when not specified. * @example "aura-2" */ - model?: "aura" | "aura-2"; + model?: "aura" | "aura-2" | "flux"; /** * If set to true, this will add mip_opt_out=true as a query parameter of all API requests. See https://developers.deepgram.com/docs/the-deepgram-model-improvement-partnership-program#want-to-opt-out * - * This will only be used if you are using your own Deepgram API key. + * This only applies to your own Deepgram API key. Requests on Vapi's key always opt out, whatever this is set to. * * @default false * @default false * @example false */ mipOptOut?: boolean; + /** + * This is the speed multiplier that will be used. Aura-2 accepts 0.7 to 1.5; Flux accepts 0.5 to 1.5 in steps of 0.05. Aura does not support speed. + * + * @default 1 + * @min 0.5 + * @max 1.5 + * @default 1 + * @example 1.1 + */ + speed?: number; + /** + * This is the expressivity level for Flux voices, from -2 (flat) to 2 (lively). Deepgram marks this control as beta and may retune the scale. Aura and Aura-2 do not support it. + * + * @default 0 + * @min -2 + * @max 2 + * @default 0 + * @example 1 + */ + expressivity?: number; /** This is the plan for chunking the model output before it is sent to the voice provider. */ chunkPlan?: ChunkPlan; } @@ -15716,47 +16217,47 @@ export interface FallbackElevenLabsVoice { */ stability?: number; /** - * Defines the similarity boost for voice settings. + * Defines the similarity boost for voice settings. Ignored by `eleven_v4_turbo`. * @min 0 * @max 1 * @example 0.75 */ similarityBoost?: number; /** - * Defines the style for voice settings. + * Defines the style for voice settings. Ignored by `eleven_v4_turbo`. * @min 0 * @max 1 * @example 0 */ style?: number; /** - * Defines the use speaker boost for voice settings. + * Defines the use speaker boost for voice settings. Ignored by `eleven_v4_turbo`. * @example false */ useSpeakerBoost?: boolean; /** - * Defines the speed for voice settings. + * Defines the speed for voice settings. Ignored by `eleven_v4_turbo`. * @min 0.7 * @max 1.2 * @example 0.9 */ speed?: number; /** - * Defines the optimize streaming latency for voice settings. Defaults to 3. + * Defines the optimize streaming latency for voice settings. Defaults to 3. Ignored by `eleven_v4_turbo`. * @min 0 * @max 4 * @example 3 */ optimizeStreamingLatency?: number; /** - * This enables the use of https://elevenlabs.io/docs/speech-synthesis/prompting#pronunciation. Defaults to false to save latency. + * This enables the use of https://elevenlabs.io/docs/speech-synthesis/prompting#pronunciation. Defaults to false to save latency. Ignored by `eleven_v4_turbo`. * * @default false * @example false */ enableSsmlParsing?: boolean; /** - * Defines the auto mode for voice settings. Defaults to false. + * Defines the auto mode for voice settings. Defaults to false. Ignored by `eleven_v4_turbo`. * @example false */ autoMode?: boolean; @@ -15771,8 +16272,9 @@ export interface FallbackElevenLabsVoice { | "eleven_flash_v2" | "eleven_flash_v2_5" | "eleven_monolingual_v1" - | "eleven_v3"; - /** This is the language (ISO 639-1) that is enforced for the model. Currently only Turbo v2.5 supports language enforcement. For other models, an error will be returned if language code is provided. */ + | "eleven_v3" + | "eleven_v4_turbo"; + /** This is the language (ISO 639-1) that is enforced for the model. Currently only Turbo v2.5, Flash v2.5 and v4 Turbo support language enforcement; other models ignore it. */ language?: string; /** This is the pronunciation dictionary locators to use. */ pronunciationDictionaryLocators?: ElevenLabsPronunciationDictionaryLocator[]; @@ -16111,7 +16613,8 @@ export interface FallbackOpenAIVoice { provider: "openai"; /** * This is the provider-specific ID that will be used. - * Please note that ash, ballad, coral, sage, and verse may only be used with realtime models. + * Voice availability depends on the selected model. + * quartz, ripple, vesper, willow, stone, gleam, meridian, bossa, tempo, beacon, delta, cinder are only supported with GPT-Live models. */ voiceId: | "alloy" @@ -16122,6 +16625,23 @@ export interface FallbackOpenAIVoice { | "shimmer" | "marin" | "cedar" + | "ash" + | "ballad" + | "beacon" + | "bossa" + | "cinder" + | "coral" + | "delta" + | "gleam" + | "meridian" + | "quartz" + | "ripple" + | "sage" + | "stone" + | "tempo" + | "verse" + | "vesper" + | "willow" | string; /** This is the model that will be used for text-to-speech. */ model?: "tts-1" | "tts-1-hd" | "gpt-4o-mini-tts"; @@ -16322,12 +16842,19 @@ export interface FallbackRimeAIVoice { | "masonry" | "albion" | "parapet" + | "clementine" + | "walnut" + | "eyre" + | "bancroft" + | "hesse" + | "beatty" + | "godfrey" | string; /** * This is the model that will be used. Defaults to 'arcana' when not specified. * @example "arcana" */ - model?: "arcana" | "mistv2" | "mist"; + model?: "arcana" | "coda" | "mistv2" | "mistv3" | "mist"; /** * This is the speed multiplier that will be used. * @min 0.1 @@ -18912,6 +19439,50 @@ export interface CreateAssistantDTO { keypadInputPlan?: KeypadInputPlan; } +export interface ModelDeprecationNotice { + /** + * Path of the slot that carries the model, relative to the response root, + * e.g. `model`, `model.fallbackModels[1]`, `transcriber`, `voice`, or + * `members[2].assistantOverrides.model` on a squad. + * @example "model.fallbackModels[1]" + */ + slot: string; + /** + * Provider as stored on the slot. + * @example "openai" + */ + provider: string; + /** + * Model name as stored on the slot. + * @example "gpt-4-1106-preview" + */ + model: string; + /** + * Day the model became deprecated, `YYYY-MM-DD` in UTC. + * @example "2025-09-26" + */ + deprecationDate: string; + /** + * Day the model is or was retired, `YYYY-MM-DD` in UTC. On and after this + * day Vapi no longer runs the model as configured. + * @example "2026-03-26" + */ + retirementDate: string; + /** + * Whether a replacement can be recommended for this configuration. + * @example "manual-action-required" + */ + replacementStatus: "available" | "manual-action-required"; + /** + * Recommended model when replacementStatus is available. Omitted when + * eligibility cannot be established or no eligible replacement exists. + * A recommendation reflects the response-time decision; it neither + * confirms a completed swap nor authorizes a future execution. + * @example "gpt-5" + */ + replacementModel?: string; +} + export interface Assistant { /** These are the options for the assistant's transcriber. */ transcriber?: @@ -19279,6 +19850,8 @@ export interface Assistant { * published under it. */ latestVersion?: string | null; + /** Read-only. Present only when a model this configuration uses is deprecated or retired in Vapi's model deprecation registry, judged on the day of the response. Each entry names the slot (for example `model` or `model.fallbackModels[1]`), provider, stored model, and deprecation and retirement dates as `YYYY-MM-DD` in UTC. `replacementStatus` is `available` with a `replacementModel` when a replacement can be recommended, or `manual-action-required` with no replacement model when eligibility is unknown or no eligible replacement exists. `manual-action-required` can be transient when compliance context is unavailable; re-fetch before acting. HIPAA-required configurations, sparse drafts, and squads with unresolved assistant references currently require manual action. HIPAA requirements include the organization and assistant settings, including HIPAA with data retention. Recommendations reflect the response-time decision; they do not confirm a swap or authorize future execution. Examples: an available recommendation includes `{"replacementStatus":"available","replacementModel":"gpt-5"}`; a blocked recommendation includes `{"replacementStatus":"manual-action-required"}`. Ignored if sent back in a create or update request. */ + modelDeprecations?: ModelDeprecationNotice[]; /** * This is the name of the assistant. * @@ -19384,6 +19957,33 @@ export interface Assistant { updatedAt: string; } +export interface ValidateBackgroundSoundUrlDTO { + /** + * This is the background sound URL to validate. The server performs a ranged request and checks that the URL serves a live media file. + * @maxLength 1000 + * @example "https://example.com/my-sound.mp3" + */ + url: string; +} + +export interface BackgroundSoundUrlValidationResult { + /** Whether the URL currently serves a live media file. When false, calls configured with this URL silently play no background sound. */ + valid: boolean; + /** Why validation failed. Only present when valid is false. */ + reason?: + | "invalid-url" + | "blocked-address" + | "unreachable" + | "timeout" + | "too-many-redirects" + | "http-error" + | "not-audio"; + /** The HTTP status the URL returned, when a response was received. */ + status?: number; + /** The content-type the URL returned, when a response was received. */ + contentType?: string; +} + export interface PaginationMeta { itemsPerPage: number; totalItems: number; @@ -19769,6 +20369,8 @@ export interface AssistantDraft { | CallHookCustomerSpeechTimeout | SessionCreatedHook )[]; + /** Read-only. Present only when a model this configuration uses is deprecated or retired in Vapi's model deprecation registry, judged on the day of the response. Each entry names the slot (for example `model` or `model.fallbackModels[1]`), provider, stored model, and deprecation and retirement dates as `YYYY-MM-DD` in UTC. `replacementStatus` is `available` with a `replacementModel` when a replacement can be recommended, or `manual-action-required` with no replacement model when eligibility is unknown or no eligible replacement exists. `manual-action-required` can be transient when compliance context is unavailable; re-fetch before acting. HIPAA-required configurations, sparse drafts, and squads with unresolved assistant references currently require manual action. HIPAA requirements include the organization and assistant settings, including HIPAA with data retention. Recommendations reflect the response-time decision; they do not confirm a swap or authorize future execution. Examples: an available recommendation includes `{"replacementStatus":"available","replacementModel":"gpt-5"}`; a blocked recommendation includes `{"replacementStatus":"manual-action-required"}`. Ignored if sent back in a create or update request. */ + modelDeprecations?: ModelDeprecationNotice[]; /** * This is the name of the assistant. * @@ -20309,6 +20911,8 @@ export interface AssistantVersion { * @format date-time */ createdAt: string; + /** Read-only. Present only when a model this configuration uses is deprecated or retired in Vapi's model deprecation registry, judged on the day of the response. Each entry names the slot (for example `model` or `model.fallbackModels[1]`), provider, stored model, and deprecation and retirement dates as `YYYY-MM-DD` in UTC. `replacementStatus` is `available` with a `replacementModel` when a replacement can be recommended, or `manual-action-required` with no replacement model when eligibility is unknown or no eligible replacement exists. `manual-action-required` can be transient when compliance context is unavailable; re-fetch before acting. HIPAA-required configurations, sparse drafts, and squads with unresolved assistant references currently require manual action. HIPAA requirements include the organization and assistant settings, including HIPAA with data retention. Recommendations reflect the response-time decision; they do not confirm a swap or authorize future execution. Examples: an available recommendation includes `{"replacementStatus":"available","replacementModel":"gpt-5"}`; a blocked recommendation includes `{"replacementStatus":"manual-action-required"}`. Ignored if sent back in a create or update request. */ + modelDeprecations?: ModelDeprecationNotice[]; /** * This is the name of the assistant. * @@ -20424,24 +21028,6 @@ export interface UpdateAssistantVersionMetadataDTO { versionDescription?: string | null; } -export interface VersionPinReference { - /** Kind of source row the pin originates from. */ - sourceType: "assistant_version" | "squad" | "tool_version"; - /** - * UUID of the source row (polymorphic, not FK-enforced). - * @format uuid - */ - sourceId: string; -} - -export interface VersionPinConflictResponseDTO { - error: "version_pinned"; - /** Human-readable reason the delete was rejected. */ - message: string; - /** Pins that block the delete. */ - pinnedBy: VersionPinReference[]; -} - export interface CreateAssistantDraftDTO { /** These are the options for the assistant's transcriber. */ transcriber?: @@ -21809,13 +22395,15 @@ export interface UpdateAssistantDTO { keypadInputPlan?: KeypadInputPlan; } -export interface AssistantPinnedConflictResponseDTO { - error: "assistant_pinned"; - /** Human-readable reason the parent-assistant delete was rejected. */ - message: string; -} - export interface Squad { + /** + * This is the latest version label (e.g. `v3`) of the squad in the version + * history. `null` while the org is not yet onboarded to versioning, or for + * squads that have not yet been published under it. + */ + latestVersion?: string | null; + /** Read-only. Present only when a model this configuration uses is deprecated or retired in Vapi's model deprecation registry, judged on the day of the response. Each entry names the slot (for example `model` or `model.fallbackModels[1]`), provider, stored model, and deprecation and retirement dates as `YYYY-MM-DD` in UTC. `replacementStatus` is `available` with a `replacementModel` when a replacement can be recommended, or `manual-action-required` with no replacement model when eligibility is unknown or no eligible replacement exists. `manual-action-required` can be transient when compliance context is unavailable; re-fetch before acting. HIPAA-required configurations, sparse drafts, and squads with unresolved assistant references currently require manual action. HIPAA requirements include the organization and assistant settings, including HIPAA with data retention. Recommendations reflect the response-time decision; they do not confirm a swap or authorize future execution. Examples: an available recommendation includes `{"replacementStatus":"available","replacementModel":"gpt-5"}`; a blocked recommendation includes `{"replacementStatus":"manual-action-required"}`. Ignored if sent back in a create or update request. */ + modelDeprecations?: ModelDeprecationNotice[]; /** This is the name of the squad. */ name?: string; /** @@ -21846,6 +22434,86 @@ export interface Squad { updatedAt: string; } +export interface SquadVersion { + /** + * Optional human-readable label for this version. Set when the version is published. + * @maxLength 80 + */ + versionName?: string | null; + /** + * Optional description for this version. Set when the version is published. + * @maxLength 500 + */ + versionDescription?: string | null; + /** + * This is the unique identifier for the version row. + * @format uuid + */ + id: string; + /** + * This is the unique identifier for the org that owns this version. + * @format uuid + */ + orgId: string; + /** + * This is the unique identifier for the squad this version was snapshotted from. + * @format uuid + */ + squadId: string; + /** + * This is the public monotonic version label, e.g. "v1". + * System-owned and incremented per squad; never user-supplied. + * @example "v1" + */ + version: string; + /** This is the SHA-256 hex of the snapshotted content used for no-op detection. */ + configHash: string; + /** This is the prior version label (vN-1). Null on v1 or for branch roots. */ + parentVersion?: string | null; + /** The version this version was restored from. Null when it was not restored. */ + restoredFromVersion?: string | null; + /** + * This is the actor that wrote this version. Email when created via JWT; null + * when created via API key, and null for a baseline version authored by nobody. + */ + createdBy?: string | null; + /** + * This is the soft-delete timestamp. Null when active. + * @format date-time + */ + deletedAt?: string | null; + /** + * This is the ISO 8601 date-time string of when the version was created. + * @format date-time + */ + createdAt: string; + /** This is the name of the squad. */ + name?: string; + /** + * This is the list of assistants that make up the squad. + * + * The call will start with the first assistant in the list. + */ + members: SquadMemberDTO[]; + /** + * This can be used to override all the assistants' settings and provide values for their template variables. + * + * Both `membersOverrides` and `members[n].assistantOverrides` can be used together. First, `members[n].assistantOverrides` is applied. Then, `membersOverrides` is applied as a global override. + */ + membersOverrides?: AssistantOverrides; +} + +export interface SquadVersionPaginatedMetadata { + nextCursor?: string | null; + hasNextPage: boolean; + limit: number; +} + +export interface SquadVersionPaginatedResponse { + results: SquadVersion[]; + metadata: SquadVersionPaginatedMetadata; +} + export interface UpdateSquadDTO { /** This is the name of the squad. */ name?: string; @@ -22916,6 +23584,67 @@ export interface SubscriptionLimits { remainingConcurrentCalls?: number; } +export interface TranscriptWordConfidence { + /** The word as the transcriber recognised it. */ + word: string; + /** + * Offset at which the word begins, measured from the start of the + * transcriber stream (ElevenLabs, which transcribes each utterance as its + * own request, measures from the start of that utterance's audio). The unit + * is transcriber-specific today: seconds for Deepgram, Soniox, Gladia and + * ElevenLabs realtime (`scribe_v2_realtime`); milliseconds for AssemblyAI, + * ElevenLabs HTTP Scribe and Google. Transcribers without per-word timing + * emit a placeholder, typically `0`. + */ + start: number; + /** Offset at which the word ends, with the same origin and unit as `start`. */ + end: number; + /** + * The transcriber's confidence for this word, in [0, 1]. Transcribers that + * report no per-word score, or whose stream does not map one (Cartesia, + * ElevenLabs HTTP Scribe, Google, Talkscriber and custom transcribers), emit + * `1` for every word; that placeholder is not a measurement. ElevenLabs + * realtime passes through its token log-probability, which is not a [0, 1] + * confidence. + * @min 0 + * @max 1 + */ + confidence: number; + /** + * The word with punctuation and casing applied, when the transcriber + * reports a punctuated form. The snake_case name deliberately mirrors the + * transcriber wire spelling already stored on every existing message; + * renaming it would break stored data. + */ + punctuated_word?: string; + /** The language the transcriber detected for this word, when it reports one. */ + language?: string; + /** + * The diarized speaker index this word was attributed to, when the + * transcriber reports one. + */ + speaker?: number; +} + +export interface UserMessageMetadata { + /** + * Per-word confidence scores from the transcriber. After consecutive + * transcript fragments are merged into one message the list covers the whole + * merged message, or is absent when any fragment lacked word scores. + */ + wordLevelConfidence?: TranscriptWordConfidence[]; + /** + * Marks a message injected out-of-band rather than produced by the + * transcriber (e.g. an inbound SMS relayed into the conversation). + */ + type?: string; + /** + * The channel or address the out-of-band message arrived from (e.g. the + * sender's phone number for an SMS). + */ + source?: string; +} + export interface UserMessage { /** The role of the user in the conversation. */ role: string; @@ -22935,8 +23664,32 @@ export interface UserMessage { detectedThreats?: string[]; /** The original message before filtering (only included if content was filtered). */ originalMessage?: string; + /** + * The transcriber's confidence score for this message, in [0, 1]. Only + * ever set alongside `confidenceSource` — see there for why an unmarked + * or out-of-range score is never stored. + * @min 0 + * @max 1 + */ + confidence?: number; + /** + * Whether `confidence` came directly from the transcriber ('provider') or + * was computed by Vapi ('derived'). + * + * 'derived' means Vapi computed the score from the transcriber's per-word + * scores; the exact aggregation is provider-specific (an average, a median + * or a minimum, depending on the transcriber). It is also 'derived' when + * consecutive transcript fragments were merged into one message, where the + * score is the minimum across the fragments. + * + * Absent means no trustworthy score was available for this message: either + * the transcriber does not report one, or the value it reported was invalid + * and was dropped. A merged message is unmarked whenever any fragment it + * contains was unmarked. + */ + confidenceSource?: "provider" | "derived"; /** The metadata associated with the message. Currently used to store the transcriber's word level confidence. */ - metadata?: object; + metadata?: UserMessageMetadata; /** Stable speaker label for diarized user speakers (e.g., "Speaker 1"). */ speakerLabel?: string; } @@ -23066,9 +23819,28 @@ export interface TranscriberCost { cost: number; } +export interface ModelCostServiceTierBreakdown { + /** This is the service tier OpenAI reported serving a request that asked for Fast mode, in Vapi's names: `fast` when Fast mode was served, otherwise the tier served, such as `default`. It is absent on the row for usage with no reported tier: requests that did not ask for Fast mode, requests that ended before OpenAI reported a tier, and other providers. */ + serviceTier?: string; + /** This is the cost in USD of the usage at this tier, rounded to 8 decimal places. */ + cost: number; + /** This is the number of prompt tokens used at this tier. */ + promptTokens: number; + /** This is the number of completion tokens generated at this tier. */ + completionTokens: number; + /** This is the number of cached prompt tokens used at this tier. This is a subset of `promptTokens`, not an addition to it. */ + cachedPromptTokens?: number; + /** This is the number of reasoning tokens generated at this tier. This is a subset of `completionTokens`, not an addition to it. */ + reasoningTokens?: number; +} + export interface ModelCost { /** This is the type of cost, always 'model' for this class. */ type: "model"; + /** Provider-reported billable duration in seconds. Currently supplied for GPT-Live; omitted for token-billed models. */ + seconds?: number; + /** Whether the reported usage is complete. False means the cost reflects missing or partial usage and may understate provider spend. Omitted when the provider integration does not report completeness. */ + usageComplete?: boolean; /** * This is the model that was used during the call. * @@ -23093,6 +23865,12 @@ export interface ModelCost { * This is a **subset of `completionTokens`**, not an addition to it: reasoning tokens are already counted in `completionTokens` and are already billed at the output-token rate. It is reported separately for visibility only and does not affect `cost`. */ reasoningTokens?: number; + /** + * This is the cost split by OpenAI service tier. It is only set on call costs, and only when OpenAI reported the tier it served for a request that asked for Fast mode. + * + * There is one row per reported tier, plus one row without `serviceTier` for usage with no reported tier. The rows add up to the token counts above, and to `cost` within rounding. + */ + serviceTierBreakdown?: ModelCostServiceTierBreakdown[]; /** This is the cost of the component in USD. */ cost: number; } @@ -23230,7 +24008,13 @@ export interface VapiWebsocketTransport { conversationType?: "voice"; /** Vapi websocket transport provider */ provider: "vapi.websocket"; - /** This is the audio format of the call. Defaults to 16KHz raw pcm_s16le */ + /** + * This is the audio format of the call. Defaults to 16KHz raw pcm_s16le. + * + * For GPT-Live calls using Vapi's custom WebSocket transport, explicitly set + * `{ format: pcm_s16le, sampleRate: 24000 }`. This requirement is specific + * to Vapi's WebSocket transport and does not apply to phone or web calls. + */ audioFormat?: AudioFormat; } @@ -23252,6 +24036,14 @@ export interface VapiWebCallTransport { * @example true */ roomDeleteOnUserLeaveEnabled?: boolean; + /** + * This is the meeting token the web client should join the call with. + * When video recording is enabled, joining with this token starts the cloud + * recording automatically server-side, which is more reliable than the + * client starting it after joining. Set by the server; only present when + * video recording is enabled. + */ + callToken?: string; /** This is the URL of the web call. */ callUrl?: string; /** This is the SIP URI of the web call. */ @@ -23332,6 +24124,70 @@ export interface VonageTransport { callUUID?: string; } +export interface TransientTwilioPhoneNumber { + /** + * This is the fallback destination an inbound call will be transferred to if: + * 1. `assistantId` is not set + * 2. `squadId` is not set + * 3. and, `assistant-request` message to the `serverUrl` fails + * + * If this is not set and above conditions are met, the inbound call is hung up with an error message. + */ + fallbackDestination?: TransferDestinationNumber | TransferDestinationSip; + /** This is the hooks that will be used for incoming calls to this phone number. */ + hooks?: (PhoneNumberHookCallRinging | PhoneNumberHookCallEnding)[]; + /** + * Controls whether Vapi sets the messaging webhook URL on the Twilio number during import. + * + * If set to `false`, Vapi will not update the Twilio messaging URL, leaving it as is. + * If `true` or omitted (default), Vapi will configure both the voice and messaging URLs. + * + * @default true + * @default true + */ + smsEnabled?: boolean; + /** + * This is the name of the phone number. This is just for your own reference. + * @maxLength 40 + */ + name?: string; + /** + * This is the assistant that will be used for incoming calls to this phone number. + * + * If neither `assistantId`, `squadId` nor `workflowId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected. + */ + assistantId?: string; + /** + * This is the workflow that will be used for incoming calls to this phone number. + * + * If neither `assistantId`, `squadId`, nor `workflowId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected. + */ + workflowId?: string; + /** + * This is the squad that will be used for incoming calls to this phone number. + * + * If neither `assistantId`, `squadId`, nor `workflowId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected. + */ + squadId?: string; + /** + * This is where Vapi will send webhooks. You can find all webhooks available along with their shape in ServerMessage schema. + * + * The order of precedence is: + * + * 1. assistant.server + * 2. phoneNumber.server + * 3. org.server + */ + server?: Server; + /** + * These are the digits of the phone number you own on your Twilio. + * @deprecated + */ + twilioPhoneNumber: string; + /** This is your Twilio Account SID that will be used to handle this phone number. */ + twilioAccountSid: string; +} + export interface AnalysisCostBreakdown { /** This is the cost to summarize the call. */ summary?: number; @@ -23506,11 +24362,18 @@ export interface NodeArtifact { export interface AssistantActivation { /** * This is the version label (e.g. `v3`) of the assistant active when - * the activation row was recorded. `null` for inline assistants, + * the activation row was recorded. Absent for inline assistants, * orgs not on assistant versioning, and parent assistants that have * not yet been published under it. */ assistantVersion?: string | null; + /** + * This is the version label (e.g. `v3`) of the squad that was governing the + * call when this activation was recorded. Absent for activations that no + * squad version governs: standalone-assistant calls, flag-off orgs, squads + * with no published version, and hops to an assistant outside the squad. + */ + squadVersion?: string | null; /** This is the name of the assistant that was active during the call. */ assistantName: string; /** This is the ID of the assistant that was active during the call. */ @@ -23699,157 +24562,6 @@ export interface WorkflowOverrides { variableValues?: object; } -export interface TransferPhoneNumberHookAction { - /** This is the type of action - must be "transfer" */ - type: "transfer"; - /** This is the destination details for the transfer - can be a phone number or SIP URI */ - destination?: TransferDestinationNumber | TransferDestinationSip; -} - -export interface SayPhoneNumberHookAction { - /** This is the type of action - must be "say" */ - type: "say"; - /** - * This is the message to say - * @maxLength 4000 - */ - exact: string; -} - -export interface PhoneNumberCallRingingHookFilter { - /** - * This is the type of filter - matches when the specified field starts with any of the given prefixes - * @maxLength 1000 - */ - type: "startsWith"; - /** - * The field to check. Currently only "number" (the caller's phone number) is supported. - * @maxLength 1000 - */ - key: "number"; - /** - * Array of prefixes to match. Do not include the + prefix. Inbound calls from numbers starting with any of these prefixes will trigger the hook actions. - * @maxLength 20 - * @example ["91","86","7"] - */ - startsWith: string[]; -} - -export interface PhoneNumberHookCallRinging { - /** - * This is the event to trigger the hook on - * @maxLength 1000 - */ - on: "call.ringing"; - /** Optional filters to decide when to trigger the hook. Currently supports filtering by caller country code. */ - filters?: PhoneNumberCallRingingHookFilter[]; - /** Only the first action will be executed. Additional actions will be ignored. */ - do: (TransferPhoneNumberHookAction | SayPhoneNumberHookAction)[]; -} - -export interface PhoneNumberCallEndingHookFilter { - /** - * This is the type of filter - currently only "oneOf" is supported - * @maxLength 1000 - */ - type: "oneOf"; - /** - * This is the key to filter on - only "call.endedReason" is allowed for phone number call ending hooks - * @maxLength 1000 - */ - key: "call.endedReason"; - /** This is the array of assistant-request related ended reasons to match against */ - oneOf: - | "assistant-request-failed" - | "assistant-request-returned-error" - | "assistant-request-returned-unspeakable-error" - | "assistant-request-returned-invalid-assistant" - | "assistant-request-returned-no-assistant" - | "assistant-request-returned-forwarding-phone-number"; -} - -export interface PhoneNumberHookCallEnding { - /** - * This is the event to trigger the hook on - * @maxLength 1000 - */ - on: "call.ending"; - /** Optional filters to decide when to trigger - restricted to assistant-request related ended reasons */ - filters?: PhoneNumberCallEndingHookFilter[]; - /** This is the action to perform when the hook triggers */ - do?: TransferPhoneNumberHookAction | SayPhoneNumberHookAction; -} - -export interface ImportTwilioPhoneNumberDTO { - /** - * This is the fallback destination an inbound call will be transferred to if: - * 1. `assistantId` is not set - * 2. `squadId` is not set - * 3. and, `assistant-request` message to the `serverUrl` fails - * - * If this is not set and above conditions are met, the inbound call is hung up with an error message. - */ - fallbackDestination?: TransferDestinationNumber | TransferDestinationSip; - /** This is the hooks that will be used for incoming calls to this phone number. */ - hooks?: (PhoneNumberHookCallRinging | PhoneNumberHookCallEnding)[]; - /** - * Controls whether Vapi sets the messaging webhook URL on the Twilio number during import. - * - * If set to `false`, Vapi will not update the Twilio messaging URL, leaving it as is. - * If `true` or omitted (default), Vapi will configure both the voice and messaging URLs. - * - * @default true - * @default true - */ - smsEnabled?: boolean; - /** - * These are the digits of the phone number you own on your Twilio. - * @deprecated - */ - twilioPhoneNumber: string; - /** This is your Twilio Account SID that will be used to handle this phone number. */ - twilioAccountSid: string; - /** This is the Twilio Auth Token that will be used to handle this phone number. */ - twilioAuthToken?: string; - /** This is the Twilio API Key that will be used to handle this phone number. If AuthToken is provided, this will be ignored. */ - twilioApiKey?: string; - /** This is the Twilio API Secret that will be used to handle this phone number. If AuthToken is provided, this will be ignored. */ - twilioApiSecret?: string; - /** - * This is the name of the phone number. This is just for your own reference. - * @maxLength 40 - */ - name?: string; - /** - * This is the assistant that will be used for incoming calls to this phone number. - * - * If neither `assistantId`, `squadId` nor `workflowId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected. - */ - assistantId?: string; - /** - * This is the workflow that will be used for incoming calls to this phone number. - * - * If neither `assistantId`, `squadId`, nor `workflowId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected. - */ - workflowId?: string; - /** - * This is the squad that will be used for incoming calls to this phone number. - * - * If neither `assistantId`, `squadId`, nor `workflowId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected. - */ - squadId?: string; - /** - * This is where Vapi will send webhooks. You can find all webhooks available along with their shape in ServerMessage schema. - * - * The order of precedence is: - * - * 1. assistant.server - * 2. phoneNumber.server - * 3. org.server - */ - server?: Server; -} - export interface CreateCustomerDTO { /** * This is the flag to toggle the E164 check for the `number` field. This is an advanced property which should be used if you know your use case requires it. @@ -23996,6 +24708,7 @@ export interface Call { | "call.start.error-subscription-concurrency-limit-reached" | "call.start.error-enterprise-feature-not-available-recording-consent" | "call.start.assistant-version-error-validation" + | "call.start.squad-version-error-validation" | "assistant-not-valid" | "call.start.error-vapifault-database-error" | "assistant-not-found" @@ -24115,6 +24828,7 @@ export interface Call { | "vonage-completed" | "phone-call-provider-bypass-enabled-but-no-call-received" | "call.in-progress.error-providerfault-transport-never-connected" + | "call.start.error-vapifault-worker-not-available" | "call.in-progress.error-vapifault-worker-not-available" | "call.in-progress.error-vapifault-transport-never-connected" | "call.in-progress.error-vapifault-transport-connected-but-call-not-active" @@ -24138,6 +24852,8 @@ export interface Call { | "call.in-progress.error-providerfault-deep-seek-llm-failed" | "call.in-progress.error-providerfault-baseten-llm-failed" | "call.in-progress.error-vapifault-chat-pipeline-failed-to-start" + | "call.in-progress.error-configfault-model-unsupported-in-squad" + | "call.in-progress.error-configfault-transport-unsupported-for-model" | "pipeline-error-openai-400-bad-request-validation-failed" | "pipeline-error-openai-401-unauthorized" | "pipeline-error-openai-401-incorrect-api-key" @@ -24484,6 +25200,9 @@ export interface Call { | "call.in-progress.error-vapifault-eleven-labs-max-character-limit-exceeded" | "call.in-progress.error-vapifault-eleven-labs-blocked-voice-potentially-against-terms-of-service-and-awaiting-verification" | "call.in-progress.error-providerfault-eleven-labs-system-busy-and-requested-upgrade" + | "call.in-progress.error-providerfault-eleven-labs-blocked-concurrent-requests-and-requested-upgrade" + | "call.in-progress.error-providerfault-eleven-labs-voice-disabled-by-owner" + | "call.in-progress.error-providerfault-eleven-labs-vapi-voice-disabled-by-owner" | "call.in-progress.error-providerfault-eleven-labs-500-server-error" | "call.in-progress.error-providerfault-eleven-labs-503-server-error" | "pipeline-error-playht-request-timed-out" @@ -24556,6 +25275,8 @@ export interface Call { | "call.in-progress.error-providerfault-outbound-sip-407-proxy-authentication-required" | "call.in-progress.error-providerfault-outbound-sip-408-request-timeout" | "call.in-progress.error-providerfault-outbound-sip-480-temporarily-unavailable" + | "sip-outbound-unallocated-number" + | "sip-outbound-carrier-released-call" | "call.ringing.hook-executed-say" | "call.ringing.hook-executed-transfer" | "call.ending.hook-executed-say" @@ -24575,6 +25296,11 @@ export interface Call { * direct `assistantId`. Omit to follow the latest version. */ assistantVersion?: string | null; + /** + * This is the squad version to use for this call. Supported only with + * direct `squadId`. Omit to follow the latest version. + */ + squadVersion?: string | null; /** This is the transport of the call. */ transport?: | VapiWebsocketTransport @@ -24583,6 +25309,12 @@ export interface Call { | VapiSipTransport | TelnyxTransport | VapiWebCallTransport; + /** + * This is the phone number that will be used for the call. To use an existing number, use `phoneNumberId` instead. + * + * Only relevant for `outboundPhoneCall` and `inboundPhoneCall` type. + */ + phoneNumber?: TransientTwilioPhoneNumber; /** This is the unique identifier for the call. */ id: string; /** This is the unique identifier for the org that this call belongs to. */ @@ -24699,12 +25431,6 @@ export interface Call { * Only relevant for `outboundPhoneCall` and `inboundPhoneCall` type. */ phoneNumberId?: string; - /** - * This is the phone number that will be used for the call. To use an existing number, use `phoneNumberId` instead. - * - * Only relevant for `outboundPhoneCall` and `inboundPhoneCall` type. - */ - phoneNumber?: ImportTwilioPhoneNumberDTO; /** * This is the customer that will be called. To call a transient customer , use `customer` instead. * @@ -24808,12 +25534,313 @@ export interface AssistantSpeechWordProgressTiming { words?: AssistantSpeechWordTimestamp[]; } +export interface TransferPhoneNumberHookAction { + /** This is the type of action - must be "transfer" */ + type: "transfer"; + /** This is the destination details for the transfer - can be a phone number or SIP URI */ + destination?: TransferDestinationNumber | TransferDestinationSip; +} + +export interface SayPhoneNumberHookAction { + /** This is the type of action - must be "say" */ + type: "say"; + /** + * This is the message to say + * @maxLength 4000 + */ + exact: string; +} + +export interface PhoneNumberCallRingingHookFilter { + /** + * This is the type of filter - matches when the specified field starts with any of the given prefixes + * @maxLength 1000 + */ + type: "startsWith"; + /** + * The field to check. Currently only "number" (the caller's phone number) is supported. + * @maxLength 1000 + */ + key: "number"; + /** + * Array of prefixes to match. Do not include the + prefix. Inbound calls from numbers starting with any of these prefixes will trigger the hook actions. + * @maxLength 20 + * @example ["91","86","7"] + */ + startsWith: string[]; +} + +export interface PhoneNumberHookCallRinging { + /** + * This is the event to trigger the hook on + * @maxLength 1000 + */ + on: "call.ringing"; + /** Optional filters to decide when to trigger the hook. Currently supports filtering by caller country code. */ + filters?: PhoneNumberCallRingingHookFilter[]; + /** Only the first action will be executed. Additional actions will be ignored. */ + do: (TransferPhoneNumberHookAction | SayPhoneNumberHookAction)[]; +} + +export interface PhoneNumberCallEndingHookFilter { + /** + * This is the type of filter - currently only "oneOf" is supported + * @maxLength 1000 + */ + type: "oneOf"; + /** + * This is the key to filter on - only "call.endedReason" is allowed for phone number call ending hooks + * @maxLength 1000 + */ + key: "call.endedReason"; + /** This is the array of assistant-request related ended reasons to match against */ + oneOf: + | "assistant-request-failed" + | "assistant-request-returned-error" + | "assistant-request-returned-unspeakable-error" + | "assistant-request-returned-invalid-assistant" + | "assistant-request-returned-no-assistant" + | "assistant-request-returned-forwarding-phone-number"; +} + +export interface PhoneNumberHookCallEnding { + /** + * This is the event to trigger the hook on + * @maxLength 1000 + */ + on: "call.ending"; + /** Optional filters to decide when to trigger - restricted to assistant-request related ended reasons */ + filters?: PhoneNumberCallEndingHookFilter[]; + /** This is the action to perform when the hook triggers */ + do?: TransferPhoneNumberHookAction | SayPhoneNumberHookAction; +} + +export interface ImportTwilioPhoneNumberDTO { + /** + * This is the fallback destination an inbound call will be transferred to if: + * 1. `assistantId` is not set + * 2. `squadId` is not set + * 3. and, `assistant-request` message to the `serverUrl` fails + * + * If this is not set and above conditions are met, the inbound call is hung up with an error message. + */ + fallbackDestination?: TransferDestinationNumber | TransferDestinationSip; + /** This is the hooks that will be used for incoming calls to this phone number. */ + hooks?: (PhoneNumberHookCallRinging | PhoneNumberHookCallEnding)[]; + /** + * Controls whether Vapi sets the messaging webhook URL on the Twilio number during import. + * + * If set to `false`, Vapi will not update the Twilio messaging URL, leaving it as is. + * If `true` or omitted (default), Vapi will configure both the voice and messaging URLs. + * + * @default true + * @default true + */ + smsEnabled?: boolean; + /** + * These are the digits of the phone number you own on your Twilio. + * @deprecated + */ + twilioPhoneNumber: string; + /** This is your Twilio Account SID that will be used to handle this phone number. */ + twilioAccountSid: string; + /** This is the Twilio Auth Token that will be used to handle this phone number. */ + twilioAuthToken?: string; + /** This is the Twilio API Key that will be used to handle this phone number. If AuthToken is provided, this will be ignored. */ + twilioApiKey?: string; + /** This is the Twilio API Secret that will be used to handle this phone number. If AuthToken is provided, this will be ignored. */ + twilioApiSecret?: string; + /** + * This is the name of the phone number. This is just for your own reference. + * @maxLength 40 + */ + name?: string; + /** + * This is the assistant that will be used for incoming calls to this phone number. + * + * If neither `assistantId`, `squadId` nor `workflowId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected. + */ + assistantId?: string; + /** + * This is the workflow that will be used for incoming calls to this phone number. + * + * If neither `assistantId`, `squadId`, nor `workflowId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected. + */ + workflowId?: string; + /** + * This is the squad that will be used for incoming calls to this phone number. + * + * If neither `assistantId`, `squadId`, nor `workflowId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected. + */ + squadId?: string; + /** + * This is where Vapi will send webhooks. You can find all webhooks available along with their shape in ServerMessage schema. + * + * The order of precedence is: + * + * 1. assistant.server + * 2. phoneNumber.server + * 3. org.server + */ + server?: Server; +} + export interface CreateCallDTO { /** * This is the assistant version to use for this call. Supported only with * direct `assistantId`. Omit to follow the latest version. */ assistantVersion?: string | null; + /** + * This is the squad version to use for this call. Supported only with + * direct `squadId`. Omit to follow the latest version. + */ + squadVersion?: string | null; + /** This is the transport of the call. */ + transport?: + | VapiWebsocketTransport + | VonageTransport + | TwilioTransport + | VapiSipTransport + | TelnyxTransport + | VapiWebCallTransport; + /** + * This is used to issue batch calls to multiple customers. + * + * Only relevant for `outboundPhoneCall`. To call a single customer, use `customer` instead. + */ + customers?: CreateCustomerDTO[]; + /** + * This is the name of the call. This is just for your own reference. + * @maxLength 40 + */ + name?: string; + /** This is the schedule plan of the call. */ + schedulePlan?: SchedulePlan; + /** + * This is the assistant ID that will be used for the call. To use a transient assistant, use `assistant` instead. + * + * To start a call with: + * - Assistant, use `assistantId` or `assistant` + * - Squad, use `squadId` or `squad` + * - Workflow, use `workflowId` or `workflow` + */ + assistantId?: string; + /** + * This is the assistant that will be used for the call. To use an existing assistant, use `assistantId` instead. + * + * To start a call with: + * - Assistant, use `assistant` + * - Squad, use `squad` + * - Workflow, use `workflow` + */ + assistant?: CreateAssistantDTO; + /** These are the overrides for the `assistant` or `assistantId`'s settings and template variables. */ + assistantOverrides?: AssistantOverrides; + /** + * This is the squad that will be used for the call. To use a transient squad, use `squad` instead. + * + * To start a call with: + * - Assistant, use `assistant` or `assistantId` + * - Squad, use `squad` or `squadId` + * - Workflow, use `workflow` or `workflowId` + */ + squadId?: string; + /** + * This is a squad that will be used for the call. To use an existing squad, use `squadId` instead. + * + * To start a call with: + * - Assistant, use `assistant` or `assistantId` + * - Squad, use `squad` or `squadId` + * - Workflow, use `workflow` or `workflowId` + */ + squad?: CreateSquadDTO; + /** + * These are the overrides for the `squad` or `squadId`'s member settings and template variables. + * This will apply to all members of the squad. + */ + squadOverrides?: AssistantOverrides; + /** + * This is the workflow that will be used for the call. To use a transient workflow, use `workflow` instead. + * + * To start a call with: + * - Assistant, use `assistant` or `assistantId` + * - Squad, use `squad` or `squadId` + * - Workflow, use `workflow` or `workflowId` + */ + workflowId?: string; + /** + * This is a workflow that will be used for the call. To use an existing workflow, use `workflowId` instead. + * + * To start a call with: + * - Assistant, use `assistant` or `assistantId` + * - Squad, use `squad` or `squadId` + * - Workflow, use `workflow` or `workflowId` + */ + workflow?: CreateWorkflowDTO; + /** These are the overrides for the `workflow` or `workflowId`'s settings and template variables. */ + workflowOverrides?: WorkflowOverrides; + /** + * This is the phone number that will be used for the call. To use a transient number, use `phoneNumber` instead. + * + * Only relevant for `outboundPhoneCall` and `inboundPhoneCall` type. + */ + phoneNumberId?: string; + /** + * This is the phone number that will be used for the call. To use an existing number, use `phoneNumberId` instead. + * + * Only relevant for `outboundPhoneCall` and `inboundPhoneCall` type. + */ + phoneNumber?: ImportTwilioPhoneNumberDTO; + /** + * This is the customer that will be called. To call a transient customer , use `customer` instead. + * + * Only relevant for `outboundPhoneCall` and `inboundPhoneCall` type. + */ + customerId?: string; + /** + * This is the customer that will be called. To call an existing customer, use `customerId` instead. + * + * Only relevant for `outboundPhoneCall` and `inboundPhoneCall` type. + */ + customer?: CreateCustomerDTO; +} + +export interface StructuredOutputFilterDTO { + /** Equal to */ + eq?: string; + /** Not equal to */ + neq?: string; + /** Greater than */ + gt?: string; + /** Greater than or equal to */ + gte?: string; + /** Less than */ + lt?: string; + /** Less than or equal to */ + lte?: string; + /** Contains */ + contains?: string; + /** Not contains */ + notContains?: string; +} + +export interface CallPaginatedResponse { + results: Call[]; + metadata: PaginationMeta; +} + +export interface CreateOutboundCallDTO { + /** + * This is the assistant version to use for this call. Supported only with + * direct `assistantId`. Omit to follow the latest version. + */ + assistantVersion?: string | null; + /** + * This is the squad version to use for this call. Supported only with + * direct `squadId`. Omit to follow the latest version. + */ + squadVersion?: string | null; /** This is the transport of the call. */ transport?: | VapiWebsocketTransport @@ -24924,152 +25951,17 @@ export interface CreateCallDTO { customer?: CreateCustomerDTO; } -export interface StructuredOutputFilterDTO { - /** Equal to */ - eq?: string; - /** Not equal to */ - neq?: string; - /** Greater than */ - gt?: string; - /** Greater than or equal to */ - gte?: string; - /** Less than */ - lt?: string; - /** Less than or equal to */ - lte?: string; - /** Contains */ - contains?: string; - /** Not contains */ - notContains?: string; -} - -export interface CallPaginatedResponse { - results: Call[]; - metadata: PaginationMeta; -} - -export interface CreateOutboundCallDTO { +export interface CreateWebCallDTO { /** * This is the assistant version to use for this call. Supported only with * direct `assistantId`. Omit to follow the latest version. */ assistantVersion?: string | null; - /** This is the transport of the call. */ - transport?: - | VapiWebsocketTransport - | VonageTransport - | TwilioTransport - | VapiSipTransport - | TelnyxTransport - | VapiWebCallTransport; - /** - * This is used to issue batch calls to multiple customers. - * - * Only relevant for `outboundPhoneCall`. To call a single customer, use `customer` instead. - */ - customers?: CreateCustomerDTO[]; - /** - * This is the name of the call. This is just for your own reference. - * @maxLength 40 - */ - name?: string; - /** This is the schedule plan of the call. */ - schedulePlan?: SchedulePlan; - /** - * This is the assistant ID that will be used for the call. To use a transient assistant, use `assistant` instead. - * - * To start a call with: - * - Assistant, use `assistantId` or `assistant` - * - Squad, use `squadId` or `squad` - * - Workflow, use `workflowId` or `workflow` - */ - assistantId?: string; - /** - * This is the assistant that will be used for the call. To use an existing assistant, use `assistantId` instead. - * - * To start a call with: - * - Assistant, use `assistant` - * - Squad, use `squad` - * - Workflow, use `workflow` - */ - assistant?: CreateAssistantDTO; - /** These are the overrides for the `assistant` or `assistantId`'s settings and template variables. */ - assistantOverrides?: AssistantOverrides; - /** - * This is the squad that will be used for the call. To use a transient squad, use `squad` instead. - * - * To start a call with: - * - Assistant, use `assistant` or `assistantId` - * - Squad, use `squad` or `squadId` - * - Workflow, use `workflow` or `workflowId` - */ - squadId?: string; - /** - * This is a squad that will be used for the call. To use an existing squad, use `squadId` instead. - * - * To start a call with: - * - Assistant, use `assistant` or `assistantId` - * - Squad, use `squad` or `squadId` - * - Workflow, use `workflow` or `workflowId` - */ - squad?: CreateSquadDTO; - /** - * These are the overrides for the `squad` or `squadId`'s member settings and template variables. - * This will apply to all members of the squad. - */ - squadOverrides?: AssistantOverrides; - /** - * This is the workflow that will be used for the call. To use a transient workflow, use `workflow` instead. - * - * To start a call with: - * - Assistant, use `assistant` or `assistantId` - * - Squad, use `squad` or `squadId` - * - Workflow, use `workflow` or `workflowId` - */ - workflowId?: string; - /** - * This is a workflow that will be used for the call. To use an existing workflow, use `workflowId` instead. - * - * To start a call with: - * - Assistant, use `assistant` or `assistantId` - * - Squad, use `squad` or `squadId` - * - Workflow, use `workflow` or `workflowId` - */ - workflow?: CreateWorkflowDTO; - /** These are the overrides for the `workflow` or `workflowId`'s settings and template variables. */ - workflowOverrides?: WorkflowOverrides; - /** - * This is the phone number that will be used for the call. To use a transient number, use `phoneNumber` instead. - * - * Only relevant for `outboundPhoneCall` and `inboundPhoneCall` type. - */ - phoneNumberId?: string; - /** - * This is the phone number that will be used for the call. To use an existing number, use `phoneNumberId` instead. - * - * Only relevant for `outboundPhoneCall` and `inboundPhoneCall` type. - */ - phoneNumber?: ImportTwilioPhoneNumberDTO; - /** - * This is the customer that will be called. To call a transient customer , use `customer` instead. - * - * Only relevant for `outboundPhoneCall` and `inboundPhoneCall` type. - */ - customerId?: string; - /** - * This is the customer that will be called. To call an existing customer, use `customerId` instead. - * - * Only relevant for `outboundPhoneCall` and `inboundPhoneCall` type. - */ - customer?: CreateCustomerDTO; -} - -export interface CreateWebCallDTO { /** - * This is the assistant version to use for this call. Supported only with - * direct `assistantId`. Omit to follow the latest version. + * This is the squad version to use for this call. Supported only with + * direct `squadId`. Omit to follow the latest version. */ - assistantVersion?: string | null; + squadVersion?: string | null; /** @default true */ roomDeleteOnUserLeaveEnabled?: boolean; /** @@ -26033,8 +26925,9 @@ export interface CreateCampaignDTO { /** These are the customers that will be called in the campaign. Required if dialPlan is not provided. Maximum of 10000 customers per campaign. */ customers?: CreateCustomerDTO[]; /** - * This is the maximum number of concurrent calls that will be made for the campaign. Defaults to 10. + * This is the maximum number of concurrent calls that will be made for the campaign. Defaults to 10. Maximum of 500, and may not exceed your organization's concurrency limit. * @min 1 + * @max 500 */ maxConcurrency?: number; /** These are the overrides for the assistant's settings and template variables for the campaign. Use this when the campaign targets an `assistantId`. */ @@ -26093,8 +26986,9 @@ export interface Campaign { /** These are the customers that will be called in the campaign. Required if dialPlan is not provided. Maximum of 10000 customers per campaign. */ customers?: CreateCustomerDTO[]; /** - * This is the maximum number of concurrent calls that will be made for the campaign. Defaults to 10. + * This is the maximum number of concurrent calls that will be made for the campaign. Defaults to 10. Maximum of 500, and may not exceed your organization's concurrency limit. * @min 1 + * @max 500 */ maxConcurrency?: number; /** These are the overrides for the assistant's settings and template variables for the campaign. Use this when the campaign targets an `assistantId`. */ @@ -26199,8 +27093,9 @@ export interface CampaignSummary { /** This is the schedule plan for the campaign. Calls will start at startedAt and continue until your organization’s concurrency limit is reached. Any remaining calls will be retried for up to one hour as capacity becomes available. After that hour or after latestAt, whichever comes first, any calls that couldn’t be placed won’t be retried. */ schedulePlan?: SchedulePlan; /** - * This is the maximum number of concurrent calls that will be made for the campaign. Defaults to 10. + * This is the maximum number of concurrent calls that will be made for the campaign. Defaults to 10. Maximum of 500, and may not exceed your organization's concurrency limit. * @min 1 + * @max 500 */ maxConcurrency?: number; /** These are the overrides for the assistant's settings and template variables for the campaign. Use this when the campaign targets an `assistantId`. */ @@ -26743,6 +27638,124 @@ export interface ExportSessionDTO { updatedAtLe?: string; } +export interface TrafficAllocationTarget { + /** The assistant version this target sends calls to, such as "v7". */ + assistantVersion: string; + /** + * The target's place in the split, starting at 0. Set from the order of the targets array. + * @min 0 + */ + position: number; + /** + * Share of calls sent to this version, from 0 to 100 with up to three decimal places. Targets add up to exactly 100. A 0% target keeps the version in the split without sending it calls. + * @min 0 + * @max 100 + */ + percentage: number; +} + +export interface TrafficAllocation { + /** Unique identifier. The most recently created allocation for an assistant is the one in effect. */ + id: string; + orgId: string; + /** The assistant this allocation splits calls for. */ + assistantId?: string; + /** 'explicit' splits calls across this allocation's targets. 'follow-latest' sends every call to the newest published version. */ + allocationIntent: "follow-latest" | "explicit"; + /** + * When this allocation was created, which is also when it took effect. + * @format date-time + */ + createdAt: string; + /** Who created this allocation. 'system' means Vapi created it automatically, for example when a publish advances a follow-latest allocation. */ + actorType: "user" | "api-key" | "system"; + /** The user id or API key id that created this allocation. Absent for system rows. */ + actorId?: string; + /** Email of the user who created this allocation, as of that time. */ + actorEmail?: string; + /** The note given when this allocation was created, if any. */ + description?: string; + /** The versions this allocation splits calls across, in position order. Empty for follow-latest allocations. */ + targets: TrafficAllocationTarget[]; +} + +export interface CreateTrafficAllocationTargetDTO { + /** A published version of this assistant, such as "v7". To split onto a new version, publish it first, then create the allocation. */ + assistantVersion: string; + /** + * Share of calls sent to this version, from 0 to 100 with up to three decimal places. Finer values are rejected, not rounded. All targets together add up to exactly 100. Position is taken from array order. + * @min 0 + * @max 100 + */ + percentage: number; +} + +export interface CreateTrafficAllocationDTO { + /** The assistant whose calls this allocation splits. */ + assistantId: string; + /** 'explicit' splits calls across targets, and is inferred when targets is sent. 'follow-latest' sends every call to the newest published version and is how you stop splitting; it must be sent explicitly. */ + allocationIntent?: "follow-latest" | "explicit"; + /** + * The versions to split calls across. Omit to stop splitting (with allocationIntent 'follow-latest'). Order in this array is the selection order (position). + * @maxItems 5 + */ + targets?: CreateTrafficAllocationTargetDTO[]; + /** + * Optional concurrency guard. Omit it and the write applies unconditionally (last write wins, matching every other Vapi update surface). Provide the id of the allocation you last read and the write applies only while that allocation is still governing; any mismatch is a 409 carrying the actual current id. + * @format uuid + */ + expectedCurrentAllocationId?: string; + /** + * An optional note explaining why you made this change. + * @maxLength 1000 + */ + description?: string; +} + +export interface GetTrafficAllocationLatestDTO { + /** The assistant whose latest allocation to return. */ + assistantId: string; +} + +export interface GetTrafficAllocationPaginatedDTO { + /** Filter to allocations for this assistant. */ + assistantId?: string; + /** + * The page number to return. Defaults to 1. + * @min 1 + */ + page?: number; + /** + * The maximum number of items to return. Defaults to 100. + * @min 0 + * @max 1000 + */ + limit?: number; + /** The sort order for pagination. Defaults to 'DESC'. */ + sortOrder?: "ASC" | "DESC"; +} + +export interface TrafficAllocationPaginatedResponse { + results: TrafficAllocation[]; + metadata: PaginationMeta; +} + +export interface TrafficAllocationLatestResponseDTO { + /** The source's current configuration: the newest allocation row with its targets. Absent when the source has never been configured. */ + allocation?: TrafficAllocation; +} + +export interface TrafficAllocationStaleConflictResponseDTO { + error: "stale_allocation"; + /** Human-readable reason the create was rejected. */ + message: string; + /** + * The allocation currently in effect. Null if none exists yet. + * @format uuid + */ + currentAllocationId?: string | null; +} + export interface ByoPhoneNumber { /** * This is the fallback destination an inbound call will be transferred to if: @@ -27852,6 +28865,8 @@ export interface PhoneNumberPaginatedResponse { export interface ApiRequestTool { latestVersion?: string | null; + /** Display-only baseline label returned by the tool list before a version is stored. Fetch version history to initialize it before using it as a pin. */ + baselineVersion?: string | null; /** Messages spoken while the tool is running. Multiple request-start messages are variants. For request-response-delayed, same timing means variants and different timings mean staged updates. */ messages?: ( | ToolMessageStart @@ -28173,6 +29188,8 @@ export interface CodeToolEnvironmentVariable { export interface CodeTool { latestVersion?: string | null; + /** Display-only baseline label returned by the tool list before a version is stored. Fetch version history to initialize it before using it as a pin. */ + baselineVersion?: string | null; /** Messages spoken while the tool is running. Multiple request-start messages are variants. For request-response-delayed, same timing means variants and different timings mean staged updates. */ messages?: ( | ToolMessageStart @@ -28335,6 +29352,8 @@ export interface CodeTool { export interface DtmfTool { latestVersion?: string | null; + /** Display-only baseline label returned by the tool list before a version is stored. Fetch version history to initialize it before using it as a pin. */ + baselineVersion?: string | null; /** Messages spoken while the tool is running. Multiple request-start messages are variants. For request-response-delayed, same timing means variants and different timings mean staged updates. */ messages?: ( | ToolMessageStart @@ -28448,6 +29467,8 @@ export interface DtmfTool { export interface EndCallTool { latestVersion?: string | null; + /** Display-only baseline label returned by the tool list before a version is stored. Fetch version history to initialize it before using it as a pin. */ + baselineVersion?: string | null; /** Messages spoken while the tool is running. Multiple request-start messages are variants. For request-response-delayed, same timing means variants and different timings mean staged updates. */ messages?: ( | ToolMessageStart @@ -28556,6 +29577,8 @@ export interface EndCallTool { export interface FunctionTool { latestVersion?: string | null; + /** Display-only baseline label returned by the tool list before a version is stored. Fetch version history to initialize it before using it as a pin. */ + baselineVersion?: string | null; /** Messages spoken while the tool is running. Multiple request-start messages are variants. For request-response-delayed, same timing means variants and different timings mean staged updates. */ messages?: ( | ToolMessageStart @@ -28721,6 +29744,8 @@ export interface KnowledgeBaseToolFunction { export interface KnowledgeBaseTool { latestVersion?: string | null; + /** Display-only baseline label returned by the tool list before a version is stored. Fetch version history to initialize it before using it as a pin. */ + baselineVersion?: string | null; /** Messages spoken while the tool is running. Multiple request-start messages are variants. For request-response-delayed, same timing means variants and different timings mean staged updates. */ messages?: ( | ToolMessageStart @@ -28835,6 +29860,8 @@ export interface KnowledgeBaseTool { export interface GhlTool { latestVersion?: string | null; + /** Display-only baseline label returned by the tool list before a version is stored. Fetch version history to initialize it before using it as a pin. */ + baselineVersion?: string | null; /** Messages spoken while the tool is running. Multiple request-start messages are variants. For request-response-delayed, same timing means variants and different timings mean staged updates. */ messages?: ( | ToolMessageStart @@ -28944,6 +29971,8 @@ export interface GhlTool { export interface MakeTool { latestVersion?: string | null; + /** Display-only baseline label returned by the tool list before a version is stored. Fetch version history to initialize it before using it as a pin. */ + baselineVersion?: string | null; /** Messages spoken while the tool is running. Multiple request-start messages are variants. For request-response-delayed, same timing means variants and different timings mean staged updates. */ messages?: ( | ToolMessageStart @@ -29053,6 +30082,8 @@ export interface MakeTool { export interface TransferCallTool { latestVersion?: string | null; + /** Display-only baseline label returned by the tool list before a version is stored. Fetch version history to initialize it before using it as a pin. */ + baselineVersion?: string | null; /** Messages spoken while the tool is running. Multiple request-start messages are variants. For request-response-delayed, same timing means variants and different timings mean staged updates. */ messages?: ( | ToolMessageStart @@ -29166,6 +30197,8 @@ export interface TransferCallTool { export interface HandoffTool { latestVersion?: string | null; + /** Display-only baseline label returned by the tool list before a version is stored. Fetch version history to initialize it before using it as a pin. */ + baselineVersion?: string | null; /** Messages spoken while the tool is running. Multiple request-start messages are variants. For request-response-delayed, same timing means variants and different timings mean staged updates. */ messages?: ( | ToolMessageStart @@ -29564,6 +30597,8 @@ export interface HandoffTool { export interface OutputTool { latestVersion?: string | null; + /** Display-only baseline label returned by the tool list before a version is stored. Fetch version history to initialize it before using it as a pin. */ + baselineVersion?: string | null; /** Messages spoken while the tool is running. Multiple request-start messages are variants. For request-response-delayed, same timing means variants and different timings mean staged updates. */ messages?: ( | ToolMessageStart @@ -29672,6 +30707,8 @@ export interface OutputTool { export interface BashTool { latestVersion?: string | null; + /** Display-only baseline label returned by the tool list before a version is stored. Fetch version history to initialize it before using it as a pin. */ + baselineVersion?: string | null; /** Messages spoken while the tool is running. Multiple request-start messages are variants. For request-response-delayed, same timing means variants and different timings mean staged updates. */ messages?: ( | ToolMessageStart @@ -29799,6 +30836,8 @@ export interface BashTool { export interface ComputerTool { latestVersion?: string | null; + /** Display-only baseline label returned by the tool list before a version is stored. Fetch version history to initialize it before using it as a pin. */ + baselineVersion?: string | null; /** Messages spoken while the tool is running. Multiple request-start messages are variants. For request-response-delayed, same timing means variants and different timings mean staged updates. */ messages?: ( | ToolMessageStart @@ -29932,6 +30971,8 @@ export interface ComputerTool { export interface TextEditorTool { latestVersion?: string | null; + /** Display-only baseline label returned by the tool list before a version is stored. Fetch version history to initialize it before using it as a pin. */ + baselineVersion?: string | null; /** Messages spoken while the tool is running. Multiple request-start messages are variants. For request-response-delayed, same timing means variants and different timings mean staged updates. */ messages?: ( | ToolMessageStart @@ -30059,6 +31100,8 @@ export interface TextEditorTool { export interface QueryTool { latestVersion?: string | null; + /** Display-only baseline label returned by the tool list before a version is stored. Fetch version history to initialize it before using it as a pin. */ + baselineVersion?: string | null; /** Messages spoken while the tool is running. Multiple request-start messages are variants. For request-response-delayed, same timing means variants and different timings mean staged updates. */ messages?: ( | ToolMessageStart @@ -30169,6 +31212,8 @@ export interface QueryTool { export interface GoogleCalendarCreateEventTool { latestVersion?: string | null; + /** Display-only baseline label returned by the tool list before a version is stored. Fetch version history to initialize it before using it as a pin. */ + baselineVersion?: string | null; /** Messages spoken while the tool is running. Multiple request-start messages are variants. For request-response-delayed, same timing means variants and different timings mean staged updates. */ messages?: ( | ToolMessageStart @@ -30277,6 +31322,8 @@ export interface GoogleCalendarCreateEventTool { export interface GoogleSheetsRowAppendTool { latestVersion?: string | null; + /** Display-only baseline label returned by the tool list before a version is stored. Fetch version history to initialize it before using it as a pin. */ + baselineVersion?: string | null; /** Messages spoken while the tool is running. Multiple request-start messages are variants. For request-response-delayed, same timing means variants and different timings mean staged updates. */ messages?: ( | ToolMessageStart @@ -30385,6 +31432,8 @@ export interface GoogleSheetsRowAppendTool { export interface GoogleCalendarCheckAvailabilityTool { latestVersion?: string | null; + /** Display-only baseline label returned by the tool list before a version is stored. Fetch version history to initialize it before using it as a pin. */ + baselineVersion?: string | null; /** Messages spoken while the tool is running. Multiple request-start messages are variants. For request-response-delayed, same timing means variants and different timings mean staged updates. */ messages?: ( | ToolMessageStart @@ -30493,6 +31542,8 @@ export interface GoogleCalendarCheckAvailabilityTool { export interface SlackSendMessageTool { latestVersion?: string | null; + /** Display-only baseline label returned by the tool list before a version is stored. Fetch version history to initialize it before using it as a pin. */ + baselineVersion?: string | null; /** Messages spoken while the tool is running. Multiple request-start messages are variants. For request-response-delayed, same timing means variants and different timings mean staged updates. */ messages?: ( | ToolMessageStart @@ -30601,6 +31652,8 @@ export interface SlackSendMessageTool { export interface SmsTool { latestVersion?: string | null; + /** Display-only baseline label returned by the tool list before a version is stored. Fetch version history to initialize it before using it as a pin. */ + baselineVersion?: string | null; /** Messages spoken while the tool is running. Multiple request-start messages are variants. For request-response-delayed, same timing means variants and different timings mean staged updates. */ messages?: ( | ToolMessageStart @@ -30709,6 +31762,8 @@ export interface SmsTool { export interface McpTool { latestVersion?: string | null; + /** Display-only baseline label returned by the tool list before a version is stored. Fetch version history to initialize it before using it as a pin. */ + baselineVersion?: string | null; /** Messages spoken while the tool is running. Multiple request-start messages are variants. For request-response-delayed, same timing means variants and different timings mean staged updates. */ messages?: ( | ToolMessageStart @@ -30832,6 +31887,8 @@ export interface McpTool { export interface GoHighLevelCalendarAvailabilityTool { latestVersion?: string | null; + /** Display-only baseline label returned by the tool list before a version is stored. Fetch version history to initialize it before using it as a pin. */ + baselineVersion?: string | null; /** Messages spoken while the tool is running. Multiple request-start messages are variants. For request-response-delayed, same timing means variants and different timings mean staged updates. */ messages?: ( | ToolMessageStart @@ -30940,6 +31997,8 @@ export interface GoHighLevelCalendarAvailabilityTool { export interface GoHighLevelCalendarEventCreateTool { latestVersion?: string | null; + /** Display-only baseline label returned by the tool list before a version is stored. Fetch version history to initialize it before using it as a pin. */ + baselineVersion?: string | null; /** Messages spoken while the tool is running. Multiple request-start messages are variants. For request-response-delayed, same timing means variants and different timings mean staged updates. */ messages?: ( | ToolMessageStart @@ -31048,6 +32107,8 @@ export interface GoHighLevelCalendarEventCreateTool { export interface GoHighLevelContactCreateTool { latestVersion?: string | null; + /** Display-only baseline label returned by the tool list before a version is stored. Fetch version history to initialize it before using it as a pin. */ + baselineVersion?: string | null; /** Messages spoken while the tool is running. Multiple request-start messages are variants. For request-response-delayed, same timing means variants and different timings mean staged updates. */ messages?: ( | ToolMessageStart @@ -31156,6 +32217,8 @@ export interface GoHighLevelContactCreateTool { export interface GoHighLevelContactGetTool { latestVersion?: string | null; + /** Display-only baseline label returned by the tool list before a version is stored. Fetch version history to initialize it before using it as a pin. */ + baselineVersion?: string | null; /** Messages spoken while the tool is running. Multiple request-start messages are variants. For request-response-delayed, same timing means variants and different timings mean staged updates. */ messages?: ( | ToolMessageStart @@ -31264,6 +32327,8 @@ export interface GoHighLevelContactGetTool { export interface SipRequestTool { latestVersion?: string | null; + /** Display-only baseline label returned by the tool list before a version is stored. Fetch version history to initialize it before using it as a pin. */ + baselineVersion?: string | null; /** Messages spoken while the tool is running. Multiple request-start messages are variants. For request-response-delayed, same timing means variants and different timings mean staged updates. */ messages?: ( | ToolMessageStart @@ -31378,6 +32443,8 @@ export interface SipRequestTool { export interface VoicemailTool { latestVersion?: string | null; + /** Display-only baseline label returned by the tool list before a version is stored. Fetch version history to initialize it before using it as a pin. */ + baselineVersion?: string | null; /** Messages spoken while the tool is running. Multiple request-start messages are variants. For request-response-delayed, same timing means variants and different timings mean staged updates. */ messages?: ( | ToolMessageStart @@ -36481,6 +37548,18 @@ export interface GetToolDraftsDTO { createdBy?: string; } +export interface ToolPinnedConflictResponseDTO { + error: "tool_pinned"; + /** Human-readable reason the parent-tool delete was rejected. */ + message: string; +} + +export interface ToolWriteConflictResponseDTO { + error: "tool_write_conflict"; + /** Human-readable reason the tool write was rejected. */ + message: string; +} + export interface UpdateToolVersionMetadataDTO { /** * Optional human-readable label for this version. Pass `null` to clear. @@ -36494,12 +37573,6 @@ export interface UpdateToolVersionMetadataDTO { versionDescription?: string | null; } -export interface ToolPinnedConflictResponseDTO { - error: "tool_pinned"; - /** Human-readable reason the parent-tool delete was rejected. */ - message: string; -} - export interface CreateFileDTO { /** * The file to upload. @@ -36559,6 +37632,11 @@ export interface UpdateFileDTO { name?: string; } +export interface FilePaginatedResponse { + results: File[]; + metadata: PaginationMeta; +} + export interface CustomKnowledgeBase { /** This knowledge base is bring your own knowledge base implementation. */ provider: "custom-knowledge-base"; @@ -36764,6 +37842,15 @@ export interface StructuredOutput { /** * This is the regex pattern to match against the transcript. * + * Simulation evaluations use a canonical transcript built from recorded messages: + * User: and AI: dialogue, AI: tool_calls: JSON name/arguments records, and + * AI: tool_call_results: JSON results. System messages are excluded. These + * fixed labels apply even when custom artifact transcript labels are configured. + * Tool payloads participate in first-match and all-match extraction in event order. + * An empty message array falls back to the supplied transcript verbatim. + * Production-call extraction and call preview use their existing transcripts, + * so previewing the same output on a simulation's call can return a different result. + * * Only used when type is 'regex'. Supports both raw patterns (e.g. '\d+') and * regex literal format (e.g. '/\d+/gi'). Uses RE2 syntax for safety. * @@ -36780,7 +37867,8 @@ export interface StructuredOutput { * This is the model that will be used to extract the structured output. * * To provide your own custom system and user prompts for structured output extraction, populate the messages array with your system and user messages. You can specify liquid templating in your system and user messages. - * Between the system or user messages, you must reference either 'transcript' or 'messages' with the `{{}}` syntax to access the conversation history. + * For text extraction, you must reference 'transcript', 'messages', or 'messagesWithConfidence' with the `{{}}` syntax to access the conversation history. + * In structured outputs, `{{messages}}` includes conversation text and tool calls/results but omits caller transcription-confidence fields. Text extraction can use `{{messagesWithConfidence}}` when the output needs the original message history with transcription confidence. These variables also apply in structured-output schema descriptions. Audio-targeted (`messages-with-audio`) extraction ignores custom messages. Stored call artifacts and API messages retain their confidence data. * Between the system or user messages, you must reference a variation of the structured output with the `{{}}` syntax to access the structured output definition. * i.e.: * `{{structuredOutput}}` @@ -36877,6 +37965,15 @@ export interface UpdateStructuredOutputDTO { /** * This is the regex pattern to match against the transcript. * + * Simulation evaluations use a canonical transcript built from recorded messages: + * User: and AI: dialogue, AI: tool_calls: JSON name/arguments records, and + * AI: tool_call_results: JSON results. System messages are excluded. These + * fixed labels apply even when custom artifact transcript labels are configured. + * Tool payloads participate in first-match and all-match extraction in event order. + * An empty message array falls back to the supplied transcript verbatim. + * Production-call extraction and call preview use their existing transcripts, + * so previewing the same output on a simulation's call can return a different result. + * * Only used when type is 'regex'. Supports both raw patterns (e.g. '\d+') and * regex literal format (e.g. '/\d+/gi'). Uses RE2 syntax for safety. * @@ -36889,11 +37986,24 @@ export interface UpdateStructuredOutputDTO { * @maxLength 1000 */ regex?: string; + /** + * Compliance configuration for this output. Only enable overrides if no sensitive data will be stored. + * @example {"forceStoreOnHipaaEnabled":false} + */ + compliancePlan?: ComplianceOverride; + /** + * These are the conditions that gate the execution of this structured output. Every condition must pass for the structured output to run (AND semantics). When omitted or empty, no user-defined conditions gate this output. Send null to clear a previously saved gate. + * @example [{"type":"minMessages","count":4},{"type":"minCallDuration","seconds":10}] + */ + conditions?: + | (MinMessagesCondition | MinCallDurationCondition | EndedReasonCondition)[] + | null; /** * This is the model that will be used to extract the structured output. * * To provide your own custom system and user prompts for structured output extraction, populate the messages array with your system and user messages. You can specify liquid templating in your system and user messages. - * Between the system or user messages, you must reference either 'transcript' or 'messages' with the `{{}}` syntax to access the conversation history. + * For text extraction, you must reference 'transcript', 'messages', or 'messagesWithConfidence' with the `{{}}` syntax to access the conversation history. + * In structured outputs, `{{messages}}` includes conversation text and tool calls/results but omits caller transcription-confidence fields. Text extraction can use `{{messagesWithConfidence}}` when the output needs the original message history with transcription confidence. These variables also apply in structured-output schema descriptions. Audio-targeted (`messages-with-audio`) extraction ignores custom messages. Stored call artifacts and API messages retain their confidence data. * Between the system or user messages, you must reference a variation of the structured output with the `{{}}` syntax to access the structured output definition. * i.e.: * `{{structuredOutput}}` @@ -36910,18 +38020,6 @@ export interface UpdateStructuredOutputDTO { | WorkflowAnthropicBedrockModel | WorkflowGoogleModel | WorkflowCustomModel; - /** - * Compliance configuration for this output. Only enable overrides if no sensitive data will be stored. - * @example {"forceStoreOnHipaaEnabled":false} - */ - compliancePlan?: ComplianceOverride; - /** - * These are the conditions that gate the execution of this structured output. Every condition must pass for the structured output to run (AND semantics). When omitted or empty, no user-defined conditions gate this output. Send null to clear a previously saved gate. - * @example [{"type":"minMessages","count":4},{"type":"minCallDuration","seconds":10}] - */ - conditions?: - | (MinMessagesCondition | MinCallDurationCondition | EndedReasonCondition)[] - | null; /** * This is the name of the structured output. * @minLength 1 @@ -37498,7 +38596,7 @@ export interface UpdatePersonalityDTO { * @maxLength 80 */ name?: string; - /** This is the full assistant configuration for this personality. */ + /** Complete assistant replacement. Omitted credentials and redacted server secrets are preserved when their endpoint URL is unchanged. Send credentials: [] to clear credentials; omit a server container to remove it. */ assistant?: CreateAssistantDTO; /** * Optional folder path for organizing personalities. @@ -37510,6 +38608,12 @@ export interface UpdatePersonalityDTO { path?: string | null; } +export interface PersonalityInUseConflictResponseDTO { + error: "personality_in_use"; + /** Human-readable reason the personality cannot be deleted. */ + message: string; +} + export interface SimulationHookInclude { /** * Include transcript in the hook payload @@ -37603,6 +38707,40 @@ export interface ScenarioToolMock { enabled?: boolean; } +export interface LatencyExpectation { + /** + * This is the latency component to measure. + * - turn: total time from the end of user speech to the start of assistant speech + * - model: LLM time to first token + * - voice: TTS time to first audio + * @example "turn" + */ + metric: "turn" | "model" | "voice"; + /** + * This is how the call's per-turn latencies are aggregated before comparing. + * p95 uses the nearest-rank method, so on calls with fewer than 20 turns it + * equals the max. + * @example "median" + */ + aggregation: "mean" | "median" | "p95" | "max"; + /** + * This is the ceiling in milliseconds. The expectation passes when the + * aggregated latency is less than or equal to this value. + * @min 1 + * @max 60000 + * @example 1200 + */ + thresholdMs: number; + /** + * This is whether this expectation must pass for the simulation to pass. + * Defaults to true. If false, the result is informational only. + * On a voice simulation, a metric that no turn measured fails the expectation. + * GPT Live targets are skipped, because their latency is not measured yet. + * @default true + */ + required?: boolean; +} + export interface CreateScenarioDTO { /** * This is the name of the scenario. @@ -37630,6 +38768,15 @@ export interface CreateScenarioDTO { targetOverrides?: AssistantOverrides; /** Scenario-level tool call mocks to use during simulations. */ toolMocks?: ScenarioToolMock[]; + /** + * Latency ceilings for voice simulations. Each expectation aggregates the + * target call's per-turn latencies and fails the simulation (when required) + * if the aggregated value exceeds its threshold. Skipped for chat simulations + * and GPT Live targets; on any other voice simulation, a metric that no turn + * measured fails. + * @maxItems 20 + */ + latencyExpectations?: LatencyExpectation[]; /** * Optional folder path for organizing scenarios. * Supports up to 3 levels (e.g., "dept/feature/variant"). @@ -37687,6 +38834,15 @@ export interface Scenario { targetOverrides?: AssistantOverrides; /** Scenario-level tool call mocks to use during simulations. */ toolMocks?: ScenarioToolMock[]; + /** + * Latency ceilings for voice simulations. Each expectation aggregates the + * target call's per-turn latencies and fails the simulation (when required) + * if the aggregated value exceeds its threshold. Skipped for chat simulations + * and GPT Live targets; on any other voice simulation, a metric that no turn + * measured fails. + * @maxItems 20 + */ + latencyExpectations?: LatencyExpectation[]; /** * Optional folder path for organizing scenarios. * Supports up to 3 levels (e.g., "dept/feature/variant"). @@ -37716,11 +38872,17 @@ export interface UpdateScenarioDTO { /** Hooks to run on simulation lifecycle events */ hooks?: (SimulationHookCallStarted | SimulationHookCallEnded)[]; /** - * Overrides to inject into the simulated target assistant or squad + * Complete override replacement. Omitted credentials and redacted server secrets are preserved when their endpoint URL is unchanged. Send credentials: [] to clear credentials; omit a server container to remove it. * @example {"variableValues":{"customerName":"Alice","orderId":"12345"}} */ targetOverrides?: AssistantOverrides; toolMocks?: ScenarioToolMock[]; + /** + * Latency ceilings for voice simulations. Omit to leave unchanged; send an + * empty array to remove all latency expectations. + * @maxItems 20 + */ + latencyExpectations?: LatencyExpectation[]; /** * Optional folder path for organizing scenarios. * Supports up to 3 levels (e.g., "dept/feature/variant"). @@ -37731,6 +38893,12 @@ export interface UpdateScenarioDTO { path?: string | null; } +export interface ScenarioInUseConflictResponseDTO { + error: "scenario_in_use"; + /** Human-readable reason the scenario cannot be deleted. */ + message: string; +} + export interface SimulationRunSimulationEntry { /** Type discriminator */ type: "simulation"; @@ -37904,6 +39072,8 @@ export interface CreateSimulationRunResponse { * @format uri */ url: string; + /** True when the request carried an `Idempotency-Key` that an earlier request already used with the same body: this is the run that request created, and no new run was started. False or absent when this request created the run. */ + reused?: boolean; } export interface SimulationRunPaymentRequiredResponse { @@ -38131,13 +39301,46 @@ export interface LatencyMetrics { avgEndpointing?: number; } +export interface LatencyEvaluationResult { + /** This is the latency component that was measured. */ + metric: "turn" | "model" | "voice"; + /** This is how the per-turn latencies were aggregated. */ + aggregation: "mean" | "median" | "p95" | "max"; + /** This is the ceiling in milliseconds the aggregated latency was compared against. */ + thresholdMs: number; + /** + * This is the aggregated latency in milliseconds, rounded to the nearest + * millisecond. The pass/fail verdict is decided on this rounded value. + * Absent when the expectation was skipped or no turn measured this metric. + */ + actualMs?: number; + /** This is the number of turns that contributed a value for this metric. */ + sampleCount: number; + /** This indicates whether the aggregated latency was at or below the threshold. */ + passed: boolean; + /** This indicates whether this expectation was required for the simulation to pass. */ + required: boolean; + /** + * This indicates whether this expectation was skipped. Expectations are only + * skipped on chat simulations and GPT Live targets, which record no latency. + */ + isSkipped?: boolean; + /** This contains the reason for skipping the expectation. */ + skipReason?: string; +} + export interface SimulationRunItemResults { /** This is the list of results from structured output evaluations. */ evaluations: StructuredOutputEvaluationResult[]; - /** This indicates whether all required evaluations passed. */ + /** This indicates whether all required, non-skipped structured output evaluations and latency expectations passed. */ passed: boolean; /** This contains the latency metrics collected from the call. */ latencyMetrics?: LatencyMetrics; + /** + * This is the list of results from the scenario's latency expectations. + * Absent when the scenario has no latency expectations. + */ + latencyEvaluations?: LatencyEvaluationResult[]; } export interface SimulationRunItemImprovementSuggestion { @@ -38468,6 +39671,22 @@ export interface Simulation { path?: string | null; } +export interface SimulationConcurrencyResponse { + orgId: string; + /** Max call slots for simulations (each voice simulation uses 2 call slots: tester + target) */ + concurrencyLimit: number; + /** Number of call slots currently in use by running simulations */ + activeSimulations: number; + /** Number of voice simulations that can start now (available call slots / 2) */ + availableToStart: number; + /** @format date-time */ + createdAt: string | null; + /** @format date-time */ + updatedAt: string | null; + /** True if org is using platform default concurrency limit */ + isDefault: boolean; +} + export interface UpdateSimulationDTO { /** * This is an optional friendly name for the simulation. @@ -38494,22 +39713,6 @@ export interface UpdateSimulationDTO { path?: string | null; } -export interface SimulationConcurrencyResponse { - orgId: string; - /** Max call slots for simulations (each voice simulation uses 2 call slots: tester + target) */ - concurrencyLimit: number; - /** Number of call slots currently in use by running simulations */ - activeSimulations: number; - /** Number of voice simulations that can start now (available call slots / 2) */ - availableToStart: number; - /** @format date-time */ - createdAt: string | null; - /** @format date-time */ - updatedAt: string | null; - /** True if org is using platform default concurrency limit */ - isDefault: boolean; -} - export interface BarInsightMetadata { /** * @minLength 1 @@ -39525,6 +40728,8 @@ export interface JSONQueryOnEventsTable { | "call.hookTriggered" | "call.hookSucceeded" | "call.hookFailed" + | "serverMessage.requestSucceeded" + | "serverMessage.requestFailed" | "call.statusReceived" | "call.silenceTimeout" | "call.microphoneTimeout" @@ -39549,12 +40754,14 @@ export interface JSONQueryOnEventsTable { | "assistant.model.requestAttemptStarted" | "assistant.model.requestAttemptSucceeded" | "assistant.model.requestAttemptFailed" + | "assistant.knowledgeBase.requestSucceeded" | "assistant.model.connectionOpened" | "assistant.model.connectionClosed" | "assistant.model.firstTokenReceived" | "assistant.model.tokenReceived" | "assistant.model.responseSucceeded" | "assistant.model.responseFailed" + | "assistant.model.responseEmpty" | "assistant.model.toolCallsReceived" | "assistant.model.reconnecting" | "assistant.model.cleanup" @@ -39591,7 +40798,8 @@ export interface JSONQueryOnEventsTable { | "pipeline.userSpeechStopped" | "pipeline.endpointingTriggered" | "pipeline.firstMessageStarted" - | "pipeline.firstMessageCompleted"; + | "pipeline.firstMessageCompleted" + | "pipeline.denoiserFailed"; /** * This is the operation to perform on matching events. * - "count": Returns the raw count of matching events @@ -40533,6 +41741,7 @@ export interface EvalOpenAIModel { * @maxLength 100 */ model: + | "gpt-6-luna" | "gpt-5.6-sol" | "gpt-5.6-terra" | "gpt-5.6-luna" @@ -40731,7 +41940,8 @@ export interface EvalAnthropicModel { | "claude-sonnet-4-5-20250929" | "claude-sonnet-4-6" | "claude-sonnet-5" - | "claude-haiku-4-5-20251001"; + | "claude-haiku-4-5-20251001" + | "claude-haiku-5-5"; /** * This is the optional configuration for Anthropic's thinking feature. * @@ -40772,6 +41982,7 @@ export interface EvalGoogleModel { * @maxLength 100 */ model: + | "gemini-3.8-flash" | "gemini-3.5-flash" | "gemini-3.1-flash-lite" | "gemini-3-flash-preview" @@ -41247,16 +42458,13 @@ export interface EvalRunPaginatedResponse { } export interface GetEvalRunPaginatedDTO { - id?: string; + sortBy?: "createdAt"; /** - * This is the page number to return. Defaults to 1. - * @min 1 + * Literal, case-insensitive search across eval and assistant names. + * @maxLength 256 */ - page?: number; - /** This is the sort order for pagination. Defaults to 'DESC'. */ - sortOrder?: "ASC" | "DESC"; - /** This is the column to sort by. Defaults to 'createdAt'. */ - sortBy?: "createdAt" | "duration" | "cost"; + search?: string; + id?: string; /** * This is the maximum number of items to return. Defaults to 100. * @min 0 @@ -41303,6 +42511,13 @@ export interface GetEvalRunPaginatedDTO { * @format date-time */ updatedAtLe?: string; + /** + * This is the page number to return. Defaults to 1. + * @min 1 + */ + page?: number; + /** This is the sort order for pagination. Defaults to 'DESC'. */ + sortOrder?: "ASC" | "DESC"; } export interface EvalRunTargetAssistant { @@ -41494,6 +42709,12 @@ export interface Subscription { * @format date-time */ updatedAt: string; + /** + * This is the display name for the subscription, used to tell subscriptions + * apart in the dashboard. It is unique across all subscriptions and does not + * appear on invoices, which use the company details on the invoice plan. + */ + name?: string | null; /** This is the type / tier of the subscription. */ type: | "pay-as-you-go" @@ -41549,10 +42770,6 @@ export interface Subscription { stripeCustomerId?: string; /** This is the Stripe payment ID. */ stripePaymentMethodId?: string; - /** If this flag is true, then the user has purchased slack support. */ - slackSupportEnabled?: boolean; - /** If this subscription has a slack support subscription, the slack channel's ID will be stored here. */ - slackChannelId?: string; /** * This is the HIPAA enabled flag for the subscription. It determines whether orgs under this * subscription have the option to enable HIPAA compliance. @@ -41638,6 +42855,11 @@ export interface Subscription { rbacEnabled?: boolean; /** This is the platform fee for the subscription. */ platformFee?: number; + /** + * This is how payment is collected for the subscription: charged to the card + * on file, or invoiced. + */ + billingCollectionMethod?: "charge_automatically" | "send_invoice" | null; } export interface Org { @@ -41726,6 +42948,29 @@ export interface Org { compliancePlan?: CompliancePlan; } +export interface OrgConcurrencyLimitsDTO { + /** True when the org is at or over its concurrency limit at the time of the read. This is a status read, not an admission decision: no call was evaluated and no slot is reserved. */ + concurrencyBlocked: boolean; + /** Maximum number of concurrent calls the subscription allows, at the time of the read. Computed as the subscription's included plus purchased concurrency, defaulting to the initial allowance when either is unset; call create derives its own figure and can differ for subscriptions with an unset allowance. */ + concurrencyLimit: number; + /** Plain concurrent-call headroom at the time of the read, floored at zero. Unlike the call create response, this does not include or reserve a slot for a new call. */ + remainingConcurrentCalls: number; +} + +export interface OrgApiLimitsDTO { + /** Approximate number of API requests counted against the rate limit in the current minute, in the region that served this request. The count lives in a tumbling one-minute window aligned to the UTC clock (unix seconds / 60), so it resets to zero at the top of every minute; there is no reset header — the next boundary is (floor(now / 60) + 1) * 60. */ + rateLimitUsage: number; + /** Maximum number of standard API requests allowed per minute, in the region that served this request. Live call media traffic is limited separately and is not reflected here. */ + rateLimitMax: number; +} + +export interface OrgLimitsResponseDTO { + /** Call concurrency limits for the subscription. Unlike the call create response, remainingConcurrentCalls does not reserve a slot for a new call: it is the plain headroom at the time of the read. Covers the concurrency gate only — credits, frozen subscriptions, included minutes, and the billing limit are not reflected here, so call create can still refuse. Omitted when the limits could not be computed, and for an org with no subscription at all (legacy ungated orgs), which has no concurrency ceiling. */ + subscriptionLimits?: OrgConcurrencyLimitsDTO; + /** API rate limit usage for the org. Approximate, per region, and scoped to the current minute. Omitted when the limit information is unavailable. */ + apiLimits?: OrgApiLimitsDTO; +} + export interface UpdateOrgDTO { /** * When this is enabled, logs, recordings, and transcriptions will be stored in HIPAA-compliant storage. Defaults to false. @@ -41777,7 +43022,14 @@ export interface UpdateOrgDTO { compliancePlan?: CompliancePlan; } -export interface User { +export interface UserWithRole { + /** This is the user's role in the org: a built-in role, the HIPAA special role, or a custom WorkOS role slug prefixed with `org-`. */ + role: "admin" | "editor" | "viewer" | "hipaa-special" | string; + /** + * This is the ISO 8601 date-time string of the user's most recent sign-in to the org's identity provider (WorkOS). It is a property of the user, not of this org membership, so a sign-in to another WorkOS org counts. Only returned to org admins; absent when the requester is not an admin, no sign-in has been recorded, or the org is not linked to WorkOS. + * @format date-time + */ + lastActiveAt?: string; /** This is the unique identifier for the profile or user. */ id: string; /** @@ -41800,7 +43052,7 @@ export interface InviteUserDTO { /** @maxItems 100 */ emails: string[]; /** @pattern ORG_ROLE_OR_CUSTOM_ROLE_PATTERN */ - role: "admin" | "editor" | "viewer" | string; + role: "admin" | "editor" | "viewer" | "hipaa-special" | string; redirectTo?: string; } @@ -41820,7 +43072,7 @@ export interface RevokeInvitationResponseDTO { export interface UpdateUserRoleDTO { userId: string; /** @pattern ORG_ROLE_OR_CUSTOM_ROLE_PATTERN */ - role: "admin" | "editor" | "viewer" | string; + role: "admin" | "editor" | "viewer" | "hipaa-special" | string; } export interface JwtResponse { @@ -45961,6 +47213,33 @@ export interface ClientMessageTranscript { detectedThreats?: string[]; /** The original transcript before filtering (only included if content was filtered). */ originalTranscript?: string; + /** + * The transcriber's confidence score for this transcript, in [0, 1]. Only + * ever set alongside `confidenceSource` — see there for why an unmarked + * score is never included. Set only on final user-role transcripts: each + * live message carries the score of the one fragment it was built from, and + * `artifact.messages` agrees with it per fragment. A stored message built + * from several consecutive fragments reports the minimum across them as + * 'derived', so it can differ from the individual live messages that fed + * it. Partials never carry a score, because nothing stored exists for a + * partial's score to agree with. + * @min 0 + * @max 1 + */ + confidence?: number; + /** + * Whether `confidence` came directly from the transcriber ('provider') or + * was computed by Vapi ('derived'). + * + * 'derived' means Vapi computed the score from the transcriber's per-word + * scores; the exact aggregation is provider-specific (an average, a median + * or a minimum, depending on the transcriber). + * + * Absent means no trustworthy score was available for this transcript: + * either the transcriber does not report one, or the value it reported was + * invalid and was dropped. + */ + confidenceSource?: "provider" | "derived"; } export interface ClientMessageToolCalls { @@ -46569,6 +47848,7 @@ export interface ServerMessageEndOfCallReport { | "call.start.error-subscription-concurrency-limit-reached" | "call.start.error-enterprise-feature-not-available-recording-consent" | "call.start.assistant-version-error-validation" + | "call.start.squad-version-error-validation" | "assistant-not-valid" | "call.start.error-vapifault-database-error" | "assistant-not-found" @@ -46688,6 +47968,7 @@ export interface ServerMessageEndOfCallReport { | "vonage-completed" | "phone-call-provider-bypass-enabled-but-no-call-received" | "call.in-progress.error-providerfault-transport-never-connected" + | "call.start.error-vapifault-worker-not-available" | "call.in-progress.error-vapifault-worker-not-available" | "call.in-progress.error-vapifault-transport-never-connected" | "call.in-progress.error-vapifault-transport-connected-but-call-not-active" @@ -46711,6 +47992,8 @@ export interface ServerMessageEndOfCallReport { | "call.in-progress.error-providerfault-deep-seek-llm-failed" | "call.in-progress.error-providerfault-baseten-llm-failed" | "call.in-progress.error-vapifault-chat-pipeline-failed-to-start" + | "call.in-progress.error-configfault-model-unsupported-in-squad" + | "call.in-progress.error-configfault-transport-unsupported-for-model" | "pipeline-error-openai-400-bad-request-validation-failed" | "pipeline-error-openai-401-unauthorized" | "pipeline-error-openai-401-incorrect-api-key" @@ -47057,6 +48340,9 @@ export interface ServerMessageEndOfCallReport { | "call.in-progress.error-vapifault-eleven-labs-max-character-limit-exceeded" | "call.in-progress.error-vapifault-eleven-labs-blocked-voice-potentially-against-terms-of-service-and-awaiting-verification" | "call.in-progress.error-providerfault-eleven-labs-system-busy-and-requested-upgrade" + | "call.in-progress.error-providerfault-eleven-labs-blocked-concurrent-requests-and-requested-upgrade" + | "call.in-progress.error-providerfault-eleven-labs-voice-disabled-by-owner" + | "call.in-progress.error-providerfault-eleven-labs-vapi-voice-disabled-by-owner" | "call.in-progress.error-providerfault-eleven-labs-500-server-error" | "call.in-progress.error-providerfault-eleven-labs-503-server-error" | "pipeline-error-playht-request-timed-out" @@ -47129,6 +48415,8 @@ export interface ServerMessageEndOfCallReport { | "call.in-progress.error-providerfault-outbound-sip-407-proxy-authentication-required" | "call.in-progress.error-providerfault-outbound-sip-408-request-timeout" | "call.in-progress.error-providerfault-outbound-sip-480-temporarily-unavailable" + | "sip-outbound-unallocated-number" + | "sip-outbound-carrier-released-call" | "call.ringing.hook-executed-say" | "call.ringing.hook-executed-transfer" | "call.ending.hook-executed-say" @@ -47488,6 +48776,7 @@ export interface ServerMessageStatusUpdate { | "call.start.error-subscription-concurrency-limit-reached" | "call.start.error-enterprise-feature-not-available-recording-consent" | "call.start.assistant-version-error-validation" + | "call.start.squad-version-error-validation" | "assistant-not-valid" | "call.start.error-vapifault-database-error" | "assistant-not-found" @@ -47607,6 +48896,7 @@ export interface ServerMessageStatusUpdate { | "vonage-completed" | "phone-call-provider-bypass-enabled-but-no-call-received" | "call.in-progress.error-providerfault-transport-never-connected" + | "call.start.error-vapifault-worker-not-available" | "call.in-progress.error-vapifault-worker-not-available" | "call.in-progress.error-vapifault-transport-never-connected" | "call.in-progress.error-vapifault-transport-connected-but-call-not-active" @@ -47630,6 +48920,8 @@ export interface ServerMessageStatusUpdate { | "call.in-progress.error-providerfault-deep-seek-llm-failed" | "call.in-progress.error-providerfault-baseten-llm-failed" | "call.in-progress.error-vapifault-chat-pipeline-failed-to-start" + | "call.in-progress.error-configfault-model-unsupported-in-squad" + | "call.in-progress.error-configfault-transport-unsupported-for-model" | "pipeline-error-openai-400-bad-request-validation-failed" | "pipeline-error-openai-401-unauthorized" | "pipeline-error-openai-401-incorrect-api-key" @@ -47976,6 +49268,9 @@ export interface ServerMessageStatusUpdate { | "call.in-progress.error-vapifault-eleven-labs-max-character-limit-exceeded" | "call.in-progress.error-vapifault-eleven-labs-blocked-voice-potentially-against-terms-of-service-and-awaiting-verification" | "call.in-progress.error-providerfault-eleven-labs-system-busy-and-requested-upgrade" + | "call.in-progress.error-providerfault-eleven-labs-blocked-concurrent-requests-and-requested-upgrade" + | "call.in-progress.error-providerfault-eleven-labs-voice-disabled-by-owner" + | "call.in-progress.error-providerfault-eleven-labs-vapi-voice-disabled-by-owner" | "call.in-progress.error-providerfault-eleven-labs-500-server-error" | "call.in-progress.error-providerfault-eleven-labs-503-server-error" | "pipeline-error-playht-request-timed-out" @@ -48048,6 +49343,8 @@ export interface ServerMessageStatusUpdate { | "call.in-progress.error-providerfault-outbound-sip-407-proxy-authentication-required" | "call.in-progress.error-providerfault-outbound-sip-408-request-timeout" | "call.in-progress.error-providerfault-outbound-sip-480-temporarily-unavailable" + | "sip-outbound-unallocated-number" + | "sip-outbound-carrier-released-call" | "call.ringing.hook-executed-say" | "call.ringing.hook-executed-transfer" | "call.ending.hook-executed-say" @@ -48283,6 +49580,33 @@ export interface ServerMessageTranscript { detectedThreats?: string[]; /** The original transcript before filtering (only included if content was filtered). */ originalTranscript?: string; + /** + * The transcriber's confidence score for this transcript, in [0, 1]. Only + * ever set alongside `confidenceSource` — see there for why an unmarked + * score is never included. Set only on final user-role transcripts: each + * live message carries the score of the one fragment it was built from, and + * `artifact.messages` agrees with it per fragment. A stored message built + * from several consecutive fragments reports the minimum across them as + * 'derived', so it can differ from the individual live messages that fed + * it. Partials never carry a score, because nothing stored exists for a + * partial's score to agree with. + * @min 0 + * @max 1 + */ + confidence?: number; + /** + * Whether `confidence` came directly from the transcriber ('provider') or + * was computed by Vapi ('derived'). + * + * 'derived' means Vapi computed the score from the transcriber's per-word + * scores; the exact aggregation is provider-specific (an average, a median + * or a minimum, depending on the transcriber). + * + * Absent means no trustworthy score was available for this transcript: + * either the transcriber does not report one, or the value it reported was + * invalid and was dropped. + */ + confidenceSource?: "provider" | "derived"; } export interface ServerMessageUserInterrupted { @@ -49249,6 +50573,25 @@ export interface ClientInboundMessageAddMessage { triggerResponseEnabled?: boolean; } +export interface ClientInboundMessageAppendContext { + /** + * HTTP-only: append context to a GPT-Live call via `call.monitor.controlUrl`. + * Not supported on WebSocket text frames or SDK data channels. + */ + type: "append-context"; + /** + * Commentary is spoken in the model's own words; thinking is silent context; + * instructions steer the speaker, including requests to try saying something. + * Acceptance does not guarantee exact wording or speech completion. + */ + kind: "commentary" | "thinking" | "instructions"; + /** + * @maxLength 16000 + * @pattern /\S/ + */ + content: string; +} + export interface ClientInboundMessageControl { /** * This is the type of the message. Send "control" message to control the assistant. `control` options are: @@ -49311,6 +50654,7 @@ export interface ClientInboundMessage { /** These are the messages that can be sent from client-side SDKs to control the call. */ message: | ClientInboundMessageAddMessage + | ClientInboundMessageAppendContext | ClientInboundMessageControl | ClientInboundMessageSay | ClientInboundMessageEndCall @@ -50937,6 +52281,29 @@ export class Api< ...params, }), + /** + * No description + * + * @tags Assistants + * @name AssistantControllerValidateBackgroundSoundUrl + * @summary Validate Background Sound URL + * @request POST:/assistant/background-sound/validate + * @secure + */ + assistantControllerValidateBackgroundSoundUrl: ( + data: ValidateBackgroundSoundUrlDTO, + params: RequestParams = {}, + ) => + this.request({ + path: `/assistant/background-sound/validate`, + method: "POST", + body: data, + secure: true, + type: ContentType.Json, + format: "json", + ...params, + }), + /** * No description * @@ -51001,7 +52368,7 @@ export class Api< data: UpdateAssistantDTO, params: RequestParams = {}, ) => - this.request({ + this.request({ path: `/assistant/${id}`, method: "PATCH", body: data, @@ -51025,7 +52392,7 @@ export class Api< data: UpdateAssistantDTO, params: RequestParams = {}, ) => - this.request({ + this.request({ path: `/assistant/${id}`, method: "PUT", body: data, @@ -51045,7 +52412,15 @@ export class Api< * @secure */ assistantControllerRemove: (id: string, params: RequestParams = {}) => - this.request({ + this.request< + Assistant, + | ({ + error: "assistant_pinned"; + } & AssistantPinnedConflictResponseDTO) + | ({ + error: "assistant_managed_by_vapi_agents"; + } & AssistantManagedConflictResponseDTO) + >({ path: `/assistant/${id}`, method: "DELETE", secure: true, @@ -51180,12 +52555,23 @@ export class Api< id: string, version: string, query?: { - /** Force-delete the version even when it is pinned (overrides the 409). Note: force-deleting a version that is still being served will hard-fail any in-progress calls running on it. */ + /** Force-delete the version even when it is pinned (overrides the pin 409). Does NOT override the traffic-allocation 409: a version referenced by the currently-governing allocation can never be deleted. Note: force-deleting a version that is still being served will hard-fail any in-progress calls running on it. */ force?: boolean; }, params: RequestParams = {}, ) => - this.request({ + this.request< + AssistantVersion, + | ({ + error: "version_pinned"; + } & VersionPinConflictResponseDTO) + | ({ + error: "version_in_governing_allocation"; + } & TrafficAllocationVersionConflictResponseDTO) + | ({ + error: "assistant_managed_by_vapi_agents"; + } & AssistantManagedConflictResponseDTO) + >({ path: `/assistant/${id}/versions/${version}`, method: "DELETE", query: query, @@ -51208,7 +52594,7 @@ export class Api< version: string, params: RequestParams = {}, ) => - this.request({ + this.request({ path: `/assistant/${id}/restore/${version}`, method: "POST", secure: true, @@ -51273,6 +52659,30 @@ export class Api< ...params, }), + /** + * No description + * + * @tags Assistants + * @name AssistantControllerUpsertDraft + * @summary Upsert Assistant Draft + * @request PUT:/assistant/{id}/draft + * @secure + */ + assistantControllerUpsertDraft: ( + id: string, + data: CreateAssistantDraftDTO, + params: RequestParams = {}, + ) => + this.request({ + path: `/assistant/${id}/draft`, + method: "PUT", + body: data, + secure: true, + type: ContentType.Json, + format: "json", + ...params, + }), + /** * No description * @@ -51447,6 +52857,11 @@ export class Api< * @example "assistant-1,assistant-2,assistant-3" */ assistantIdAny?: string; + /** + * Filter by multiple assistant version IDs (the version `id` from the assistant versions API, not the `vN` label). Provide as comma-separated values. A call with no recorded version never matches, and neither does a squad call, whose version changes at every handoff. + * @example "3fa85f64-5717-4562-b3fc-2c963f66afa6,9b2d6f1e-8c4a-4e0b-9f3d-1a2b3c4d5e6f" + */ + assistantVersionIdAny?: string; /** * Filter by multiple squad IDs. Provide as comma-separated values. * @example "squad-1,squad-2,squad-3" @@ -51541,6 +52956,8 @@ export class Api< * @maxLength 1000 */ email?: string; + /** This will return only simulation calls when true and exclude simulation calls when false. */ + isSimulation?: boolean; /** This will return calls with the specified assistantId. */ assistantId?: string; /** @@ -51677,6 +53094,11 @@ export class Api< * @example "assistant-1,assistant-2,assistant-3" */ assistantIdAny?: string; + /** + * Filter by multiple assistant version IDs (the version `id` from the assistant versions API, not the `vN` label). Provide as comma-separated values. A call with no recorded version never matches, and neither does a squad call, whose version changes at every handoff. + * @example "3fa85f64-5717-4562-b3fc-2c963f66afa6,9b2d6f1e-8c4a-4e0b-9f3d-1a2b3c4d5e6f" + */ + assistantVersionIdAny?: string; /** * Filter by multiple squad IDs. Provide as comma-separated values. * @example "squad-1,squad-2,squad-3" @@ -51713,6 +53135,8 @@ export class Api< * @example "hello world" */ transcript?: string; + /** This will return only simulation calls when true and exclude simulation calls when false. */ + isSimulation?: boolean; /** This will return calls with the specified assistantId. */ assistantId?: string; /** @@ -51850,6 +53274,11 @@ export class Api< * @example "assistant-1,assistant-2,assistant-3" */ assistantIdAny?: string; + /** + * Filter by multiple assistant version IDs (the version `id` from the assistant versions API, not the `vN` label). Provide as comma-separated values. A call with no recorded version never matches, and neither does a squad call, whose version changes at every handoff. + * @example "3fa85f64-5717-4562-b3fc-2c963f66afa6,9b2d6f1e-8c4a-4e0b-9f3d-1a2b3c4d5e6f" + */ + assistantVersionIdAny?: string; /** * Filter by multiple squad IDs. Provide as comma-separated values. * @example "squad-1,squad-2,squad-3" @@ -51886,6 +53315,8 @@ export class Api< * @example "hello world" */ transcript?: string; + /** This will return only simulation calls when true and exclude simulation calls when false. */ + isSimulation?: boolean; /** This will return calls with the specified assistantId. */ assistantId?: string; /** @@ -52338,6 +53769,54 @@ export class Api< ...params, }), + /** + * No description + * + * @tags Files + * @name FileV2ControllerFindAllPaginated + * @summary List Files with pagination + * @request GET:/v2/file + * @secure + */ + fileV2ControllerFindAllPaginated: ( + query?: { + purpose?: "assistant" | "composer-attachment" | "knowledge-base-v2"; + /** + * Filter files by case-insensitive substring match on name. + * @maxLength 40 + */ + name?: string; + /** + * Comma-separated MIME types. Files matching any listed type are returned. + * @maxLength 128 + * @example "application/pdf,text/plain" + */ + mimetypes?: string; + /** + * This is the maximum number of items to return. Defaults to 100. + * @min 0 + * @max 1000 + */ + limit?: number; + /** + * This is the page number to return. Defaults to 1. + * @min 1 + */ + page?: number; + /** This is the sort order for pagination. Defaults to 'DESC'. */ + sortOrder?: "ASC" | "DESC"; + }, + params: RequestParams = {}, + ) => + this.request({ + path: `/v2/file`, + method: "GET", + query: query, + secure: true, + format: "json", + ...params, + }), + /** * No description * @@ -52695,6 +54174,89 @@ export class Api< format: "json", ...params, }), + + /** + * @description Returns the version history for the squad. + * + * @tags Squads + * @name SquadControllerFindAllVersions + * @summary List Squad Versions + * @request GET:/squad/{id}/versions + * @secure + */ + squadControllerFindAllVersions: ( + id: string, + query?: { + /** Opaque base64-encoded keyset cursor. Omit on first page. */ + cursor?: string; + /** + * Page size, defaults to 25, capped at 100. + * @min 1 + * @max 100 + */ + limit?: number; + /** When true, also returns soft-deleted versions. Defaults to false. */ + includeDeleted?: boolean; + }, + params: RequestParams = {}, + ) => + this.request({ + path: `/squad/${id}/versions`, + method: "GET", + query: query, + secure: true, + format: "json", + ...params, + }), + + /** + * No description + * + * @tags Squads + * @name SquadControllerFindOneVersion + * @summary Get Squad Version + * @request GET:/squad/{id}/versions/{version} + * @secure + */ + squadControllerFindOneVersion: ( + id: string, + version: string, + query?: { + /** When true, returns the version even if soft-deleted. Defaults to false. */ + includeDeleted?: boolean; + }, + params: RequestParams = {}, + ) => + this.request({ + path: `/squad/${id}/versions/${version}`, + method: "GET", + query: query, + secure: true, + format: "json", + ...params, + }), + + /** + * @description Deletes the selected version and rolls the squad back to the highest remaining live version. Deleting a version that is already deleted returns 200 with that version. + * + * @tags Squads + * @name SquadControllerSoftDeleteVersion + * @summary Delete Squad Version + * @request DELETE:/squad/{id}/versions/{version} + * @secure + */ + squadControllerSoftDeleteVersion: ( + id: string, + version: string, + params: RequestParams = {}, + ) => + this.request({ + path: `/squad/${id}/versions/${version}`, + method: "DELETE", + secure: true, + format: "json", + ...params, + }), }; workflow = { /** @@ -54100,6 +55662,125 @@ export class Api< ...params, }), }; + trafficAllocations = { + /** + * @description Creates a new traffic allocation for an assistant, replacing the one currently in effect. To start or adjust a split, send targets naming published versions (such as "v7") with percentages totaling 100; allocationIntent is inferred as 'explicit'. To stop splitting and send every call to the newest published version, send allocationIntent 'follow-latest' with no targets field; stopping always names its intent, so a dropped targets field can never end a split by accident. Traffic splitting is in beta, rolling out to select organizations; requests from organizations without access receive a 403. + * + * @tags Traffic Allocations + * @name TrafficAllocationControllerCreate + * @summary Create traffic allocation + * @request POST:/traffic-allocations + * @secure + */ + trafficAllocationControllerCreate: ( + data: CreateTrafficAllocationDTO, + params: RequestParams = {}, + ) => + this.request< + TrafficAllocation, + | void + | ( + | ({ + error: "stale_allocation"; + } & TrafficAllocationStaleConflictResponseDTO) + | ({ + error: "assistant_managed_by_vapi_agents"; + } & AssistantManagedConflictResponseDTO) + ) + >({ + path: `/traffic-allocations`, + method: "POST", + body: data, + secure: true, + type: ContentType.Json, + format: "json", + ...params, + }), + + /** + * @description The append-only history of an assistant's allocations, newest first. Traffic splitting is in beta, rolling out to select organizations; requests from organizations without access receive a 403. + * + * @tags Traffic Allocations + * @name TrafficAllocationControllerFindAllPaginated + * @summary List traffic allocations + * @request GET:/traffic-allocations + * @secure + */ + trafficAllocationControllerFindAllPaginated: ( + query?: { + /** Filter to allocations for this assistant. */ + assistantId?: string; + /** + * The page number to return. Defaults to 1. + * @min 1 + */ + page?: number; + /** + * The maximum number of items to return. Defaults to 100. + * @min 0 + * @max 1000 + */ + limit?: number; + /** The sort order for pagination. Defaults to 'DESC'. */ + sortOrder?: "ASC" | "DESC"; + }, + params: RequestParams = {}, + ) => + this.request({ + path: `/traffic-allocations`, + method: "GET", + query: query, + secure: true, + format: "json", + ...params, + }), + + /** + * @description The allocation currently in effect for the assistant, with its targets. The response carries no allocation field when traffic splitting has never been configured. Traffic splitting is in beta, rolling out to select organizations; requests from organizations without access receive a 403. + * + * @tags Traffic Allocations + * @name TrafficAllocationControllerLatestGet + * @summary Get latest traffic allocation + * @request GET:/traffic-allocations/latest + * @secure + */ + trafficAllocationControllerLatestGet: ( + query: { + /** The assistant whose latest allocation to return. */ + assistantId: string; + }, + params: RequestParams = {}, + ) => + this.request({ + path: `/traffic-allocations/latest`, + method: "GET", + query: query, + secure: true, + format: "json", + ...params, + }), + + /** + * @description Returns a single allocation by id, including its targets and actor attribution. Traffic splitting is in beta, rolling out to select organizations; requests from organizations without access receive a 403. + * + * @tags Traffic Allocations + * @name TrafficAllocationControllerFindOne + * @summary Get traffic allocation + * @request GET:/traffic-allocations/{id} + * @secure + */ + trafficAllocationControllerFindOne: ( + id: string, + params: RequestParams = {}, + ) => + this.request({ + path: `/traffic-allocations/${id}`, + method: "GET", + secure: true, + format: "json", + ...params, + }), + }; phoneNumber = { /** * @description Use POST /phone-number instead. @@ -55041,7 +56722,7 @@ export class Api< | ({ type: "voicemail"; } & VoicemailTool), - any + ToolWriteConflictResponseDTO >({ path: `/tool/${id}`, method: "PATCH", @@ -55135,7 +56816,12 @@ export class Api< | ({ type: "voicemail"; } & VoicemailTool), - ToolPinnedConflictResponseDTO + | ({ + error: "tool_pinned"; + } & ToolPinnedConflictResponseDTO) + | ({ + error: "tool_write_conflict"; + } & ToolWriteConflictResponseDTO) >({ path: `/tool/${id}`, method: "DELETE", @@ -55169,7 +56855,7 @@ export class Api< }, params: RequestParams = {}, ) => - this.request({ + this.request({ path: `/tool/${id}/versions`, method: "GET", query: query, @@ -55196,7 +56882,7 @@ export class Api< }, params: RequestParams = {}, ) => - this.request({ + this.request({ path: `/tool/${id}/versions/${version}`, method: "GET", query: query, @@ -55220,7 +56906,7 @@ export class Api< data: UpdateToolVersionMetadataDTO, params: RequestParams = {}, ) => - this.request({ + this.request({ path: `/tool/${id}/versions/${version}`, method: "PATCH", body: data, @@ -55248,7 +56934,15 @@ export class Api< }, params: RequestParams = {}, ) => - this.request({ + this.request< + ToolVersion, + | ({ + error: "version_pinned"; + } & VersionPinConflictResponseDTO) + | ({ + error: "tool_write_conflict"; + } & ToolWriteConflictResponseDTO) + >({ path: `/tool/${id}/versions/${version}`, method: "DELETE", query: query, @@ -55257,6 +56951,102 @@ export class Api< ...params, }), + /** + * @description Restores the selected version as the current configuration and publishes it as a new version. Deletes any drafts for this tool. + * + * @tags Tools + * @name ToolControllerToolVersionRestore + * @summary Restore Tool Version + * @request POST:/tool/{id}/restore/{version} + * @secure + */ + toolControllerToolVersionRestore: ( + id: string, + version: string, + params: RequestParams = {}, + ) => + this.request< + | ({ + type: "apiRequest"; + } & ApiRequestTool) + | ({ + type: "code"; + } & CodeTool) + | ({ + type: "dtmf"; + } & DtmfTool) + | ({ + type: "endCall"; + } & EndCallTool) + | ({ + type: "function"; + } & FunctionTool) + | ({ + type: "knowledgeBase"; + } & KnowledgeBaseTool) + | ({ + type: "transferCall"; + } & TransferCallTool) + | ({ + type: "handoff"; + } & HandoffTool) + | ({ + type: "bash"; + } & BashTool) + | ({ + type: "computer"; + } & ComputerTool) + | ({ + type: "textEditor"; + } & TextEditorTool) + | ({ + type: "query"; + } & QueryTool) + | ({ + type: "google.calendar.event.create"; + } & GoogleCalendarCreateEventTool) + | ({ + type: "google.sheets.row.append"; + } & GoogleSheetsRowAppendTool) + | ({ + type: "google.calendar.availability.check"; + } & GoogleCalendarCheckAvailabilityTool) + | ({ + type: "slack.message.send"; + } & SlackSendMessageTool) + | ({ + type: "sms"; + } & SmsTool) + | ({ + type: "mcp"; + } & McpTool) + | ({ + type: "gohighlevel.calendar.availability.check"; + } & GoHighLevelCalendarAvailabilityTool) + | ({ + type: "gohighlevel.calendar.event.create"; + } & GoHighLevelCalendarEventCreateTool) + | ({ + type: "gohighlevel.contact.create"; + } & GoHighLevelContactCreateTool) + | ({ + type: "gohighlevel.contact.get"; + } & GoHighLevelContactGetTool) + | ({ + type: "sipRequest"; + } & SipRequestTool) + | ({ + type: "voicemail"; + } & VoicemailTool), + void | ToolWriteConflictResponseDTO + >({ + path: `/tool/${id}/restore/${version}`, + method: "POST", + secure: true, + format: "json", + ...params, + }), + /** * No description * @@ -55304,7 +57094,15 @@ export class Api< data: CreateToolDraftDTO, params: RequestParams = {}, ) => - this.request({ + this.request< + ToolDraft, + | ({ + error: "draft_exists"; + } & ToolDraftConflictResponseDTO) + | ({ + error: "tool_write_conflict"; + } & ToolWriteConflictResponseDTO) + >({ path: `/tool/${id}/draft`, method: "POST", body: data, @@ -55438,8 +57236,9 @@ export class Api< * @secure */ fileControllerFindAll: ( - query: { - purpose: string; + query?: { + /** Only return files with this purpose. When omitted, files of every purpose except composer attachments are returned. */ + purpose?: "assistant" | "composer-attachment" | "knowledge-base-v2"; }, params: RequestParams = {}, ) => @@ -55790,7 +57589,7 @@ export class Api< data: CreateStructuredOutputDTO, params: RequestParams = {}, ) => - this.request({ + this.request({ path: `/structured-output`, method: "POST", body: data, @@ -55838,7 +57637,7 @@ export class Api< data: UpdateStructuredOutputDTO, params: RequestParams = {}, ) => - this.request({ + this.request({ path: `/structured-output/${id}`, method: "PATCH", query: query, @@ -55862,7 +57661,7 @@ export class Api< id: string, params: RequestParams = {}, ) => - this.request({ + this.request({ path: `/structured-output/${id}`, method: "DELETE", secure: true, @@ -55884,7 +57683,9 @@ export class Api< params: RequestParams = {}, ) => this.request< - StructuredOutputRunPreviewResponse | StructuredOutputRerunResponse, + | (StructuredOutputRunPreviewResponse & + Record) + | StructuredOutputRerunResponse, any >({ path: `/structured-output/run`, @@ -56600,7 +58401,7 @@ export class Api< * @secure */ personalityControllerRemove: (id: string, params: RequestParams = {}) => - this.request({ + this.request({ path: `/eval/simulation/personality/${id}`, method: "DELETE", secure: true, @@ -56768,7 +58569,7 @@ export class Api< * @secure */ scenarioControllerRemove: (id: string, params: RequestParams = {}) => - this.request({ + this.request({ path: `/eval/simulation/scenario/${id}`, method: "DELETE", secure: true, @@ -56791,7 +58592,7 @@ export class Api< ) => this.request< CreateSimulationRunResponse, - SimulationRunPaymentRequiredResponse + SimulationRunPaymentRequiredResponse | void >({ path: `/eval/simulation/run`, method: "POST", @@ -57200,6 +59001,27 @@ export class Api< ...params, }), + /** + * No description + * + * @tags Simulation Suites + * @name SimulationSuiteControllerDuplicate + * @summary Duplicate simulation suite + * @request POST:/eval/simulation/suite/{id}/duplicate + * @secure + */ + simulationSuiteControllerDuplicate: ( + id: string, + params: RequestParams = {}, + ) => + this.request({ + path: `/eval/simulation/suite/${id}/duplicate`, + method: "POST", + secure: true, + format: "json", + ...params, + }), + /** * No description * @@ -57394,6 +59216,24 @@ export class Api< ...params, }), + /** + * No description + * + * @tags Simulations + * @name SimulationControllerGetConcurrency + * @summary Get Simulation Concurrency + * @request GET:/eval/simulation/concurrency + * @secure + */ + simulationControllerGetConcurrency: (params: RequestParams = {}) => + this.request({ + path: `/eval/simulation/concurrency`, + method: "GET", + secure: true, + format: "json", + ...params, + }), + /** * No description * @@ -57454,24 +59294,6 @@ export class Api< ...params, }), - /** - * No description - * - * @tags Simulations - * @name SimulationControllerGetConcurrency - * @summary Get Simulation Concurrency - * @request GET:/eval/simulation/concurrency - * @secure - */ - simulationControllerGetConcurrency: (params: RequestParams = {}) => - this.request({ - path: `/eval/simulation/concurrency`, - method: "GET", - secure: true, - format: "json", - ...params, - }), - /** * No description * @@ -57482,7 +59304,7 @@ export class Api< * @secure */ evalControllerCreate: (data: CreateEvalDTO, params: RequestParams = {}) => - this.request({ + this.request({ path: `/eval`, method: "POST", body: data, @@ -57562,7 +59384,7 @@ export class Api< }, params: RequestParams = {}, ) => - this.request({ + this.request({ path: `/eval`, method: "GET", query: query, @@ -57585,7 +59407,7 @@ export class Api< data: UpdateEvalDTO, params: RequestParams = {}, ) => - this.request({ + this.request({ path: `/eval/${id}`, method: "PATCH", body: data, @@ -57605,7 +59427,7 @@ export class Api< * @secure */ evalControllerRemove: (id: string, params: RequestParams = {}) => - this.request({ + this.request({ path: `/eval/${id}`, method: "DELETE", secure: true, @@ -57623,7 +59445,7 @@ export class Api< * @secure */ evalControllerGet: (id: string, params: RequestParams = {}) => - this.request({ + this.request({ path: `/eval/${id}`, method: "GET", secure: true, @@ -57641,7 +59463,7 @@ export class Api< * @secure */ evalControllerRemoveRun: (id: string, params: RequestParams = {}) => - this.request({ + this.request({ path: `/eval/run/${id}`, method: "DELETE", secure: true, @@ -57659,7 +59481,7 @@ export class Api< * @secure */ evalControllerGetRun: (id: string, params: RequestParams = {}) => - this.request({ + this.request({ path: `/eval/run/${id}`, method: "GET", secure: true, @@ -57677,12 +59499,13 @@ export class Api< * @secure */ evalControllerRun: (data: CreateEvalRunDTO, params: RequestParams = {}) => - this.request({ + this.request({ path: `/eval/run`, method: "POST", body: data, secure: true, type: ContentType.Json, + format: "json", ...params, }), @@ -57697,16 +59520,13 @@ export class Api< */ evalControllerGetRunsPaginated: ( query?: { - id?: string; + sortBy?: "createdAt"; /** - * This is the page number to return. Defaults to 1. - * @min 1 + * Literal, case-insensitive search across eval and assistant names. + * @maxLength 256 */ - page?: number; - /** This is the sort order for pagination. Defaults to 'DESC'. */ - sortOrder?: "ASC" | "DESC"; - /** This is the column to sort by. Defaults to 'createdAt'. */ - sortBy?: "createdAt" | "duration" | "cost"; + search?: string; + id?: string; /** * This is the maximum number of items to return. Defaults to 100. * @min 0 @@ -57753,10 +59573,17 @@ export class Api< * @format date-time */ updatedAtLe?: string; + /** + * This is the page number to return. Defaults to 1. + * @min 1 + */ + page?: number; + /** This is the sort order for pagination. Defaults to 'DESC'. */ + sortOrder?: "ASC" | "DESC"; }, params: RequestParams = {}, ) => - this.request({ + this.request({ path: `/eval/run`, method: "GET", query: query, @@ -58470,6 +60297,24 @@ export class Api< ...params, }), + /** + * @description Returns the call concurrency limits and API rate limit usage for the authenticated org. Read-only and cheap enough to poll every few seconds. The X-RateLimit-* response headers describe this endpoint's own polling ceiling, not the API budget reported in apiLimits. + * + * @tags Orgs + * @name OrgControllerLimitsGet + * @summary Get org limits + * @request GET:/org/limits + * @secure + */ + orgControllerLimitsGet: (params: RequestParams = {}) => + this.request({ + path: `/org/limits`, + method: "GET", + secure: true, + format: "json", + ...params, + }), + /** * No description * @@ -58539,7 +60384,7 @@ export class Api< * @secure */ orgControllerFindAllUsers: (id: string, params: RequestParams = {}) => - this.request({ + this.request({ path: `/org/${id}/user`, method: "GET", secure: true, diff --git a/package-lock.json b/package-lock.json index 8b106fcbc..3b9563b8d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,15 +1,15 @@ { "name": "@vapi-ai/web", - "version": "2.7.1", + "version": "3.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@vapi-ai/web", - "version": "2.7.1", + "version": "3.0.0", "license": "MIT", "dependencies": { - "@daily-co/daily-js": "^0.87.0", + "@daily-co/daily-js": "^0.93.0", "events": "^3.3.0" }, "devDependencies": { @@ -25,14 +25,96 @@ "node": ">=18.0.0" } }, + "node_modules/@apidevtools/json-schema-ref-parser": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-14.0.1.tgz", + "integrity": "sha512-Oc96zvmxx1fqoSEdUmfmvvb59/KDOnUoJ7s2t7bISyAn0XEz57LCCw8k2Y4Pf3mwKaZLMciESALORLgfe2frCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.15", + "js-yaml": "^4.1.0" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/philsturgeon" + } + }, + "node_modules/@apidevtools/json-schema-ref-parser/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/@apidevtools/json-schema-ref-parser/node_modules/js-yaml": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.2.tgz", + "integrity": "sha512-SFNOvSJ+Dgf/9An904Yx+CgSlIPCkIpao4qo51lpee25TIRejdH3rhR4EZMGoNx3/TP3O+wzWuiTFl4sqbltzA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/nodeca" + } + ], + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@apidevtools/openapi-schemas": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@apidevtools/openapi-schemas/-/openapi-schemas-2.1.0.tgz", + "integrity": "sha512-Zc1AlqrJlX3SlpupFGpiLi2EbteyP7fXmUOGup6/DnkRgjP9bgMM/ag+n91rsv0U1Gpz0H3VILA/o3bW7Ua6BQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/@apidevtools/swagger-methods": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@apidevtools/swagger-methods/-/swagger-methods-3.0.2.tgz", + "integrity": "sha512-QAkD5kK2b1WfjDS/UQn/qQkbwF31uqRjPTrsCs5ZG9BQGAkjwvqGFjjPqAuzac/IYzpPtRzjCP1WrTuAIjMrXg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@apidevtools/swagger-parser": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/@apidevtools/swagger-parser/-/swagger-parser-12.1.0.tgz", + "integrity": "sha512-e5mJoswsnAX0jG+J09xHFYQXb/bUc5S3pLpMxUuRUA2H8T2kni3yEoyz2R3Dltw5f4A6j6rPNMpWTK+iVDFlng==", + "dev": true, + "license": "MIT", + "dependencies": { + "@apidevtools/json-schema-ref-parser": "14.0.1", + "@apidevtools/openapi-schemas": "^2.1.0", + "@apidevtools/swagger-methods": "^3.0.2", + "ajv": "^8.17.1", + "ajv-draft-04": "^1.0.0", + "call-me-maybe": "^1.0.2" + }, + "peerDependencies": { + "openapi-types": ">=7" + } + }, "node_modules/@babel/code-frame": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", - "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz", + "integrity": "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.27.1", + "@babel/helper-validator-identifier": "^7.29.7", "js-tokens": "^4.0.0", "picocolors": "^1.1.1" }, @@ -41,9 +123,9 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.4.tgz", - "integrity": "sha512-YsmSKC29MJwf0gF8Rjjrg5LQCmyh+j/nD8/eP7f+BeoQTKYqs9RoWbjGOdy0+1Ekr68RJZMUOPVQaQisnIo4Rw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.7.tgz", + "integrity": "sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==", "dev": true, "license": "MIT", "engines": { @@ -51,21 +133,21 @@ } }, "node_modules/@babel/core": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.4.tgz", - "integrity": "sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.7.tgz", + "integrity": "sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.28.3", - "@babel/helper-compilation-targets": "^7.27.2", - "@babel/helper-module-transforms": "^7.28.3", - "@babel/helpers": "^7.28.4", - "@babel/parser": "^7.28.4", - "@babel/template": "^7.27.2", - "@babel/traverse": "^7.28.4", - "@babel/types": "^7.28.4", + "@babel/code-frame": "^7.29.7", + "@babel/generator": "^7.29.7", + "@babel/helper-compilation-targets": "^7.29.7", + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helpers": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/template": "^7.29.7", + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7", "@jridgewell/remapping": "^2.3.5", "convert-source-map": "^2.0.0", "debug": "^4.1.0", @@ -82,14 +164,14 @@ } }, "node_modules/@babel/generator": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.3.tgz", - "integrity": "sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==", + "version": "7.29.8", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.8.tgz", + "integrity": "sha512-gZbepsdh3WDtgZKWL+vTPh71LSBrm/Y4/QDZBVCcYfmeTEEuoOYwlSy+G1StfJg+/Zy550u/3TATbm7qDbbMtg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/parser": "^7.28.3", - "@babel/types": "^7.28.2", + "@babel/parser": "^7.29.8", + "@babel/types": "^7.29.8", "@jridgewell/gen-mapping": "^0.3.12", "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" @@ -99,14 +181,14 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.27.2", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", - "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.29.7.tgz", + "integrity": "sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.27.2", - "@babel/helper-validator-option": "^7.27.1", + "@babel/compat-data": "^7.29.7", + "@babel/helper-validator-option": "^7.29.7", "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" @@ -116,9 +198,9 @@ } }, "node_modules/@babel/helper-globals": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", - "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.29.7.tgz", + "integrity": "sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==", "dev": true, "license": "MIT", "engines": { @@ -126,29 +208,29 @@ } }, "node_modules/@babel/helper-module-imports": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", - "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.29.7.tgz", + "integrity": "sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/traverse": "^7.27.1", - "@babel/types": "^7.27.1" + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz", - "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.29.7.tgz", + "integrity": "sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.27.1", - "@babel/helper-validator-identifier": "^7.27.1", - "@babel/traverse": "^7.28.3" + "@babel/helper-module-imports": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7", + "@babel/traverse": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -158,9 +240,9 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", - "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.29.7.tgz", + "integrity": "sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==", "dev": true, "license": "MIT", "engines": { @@ -168,9 +250,9 @@ } }, "node_modules/@babel/helper-string-parser": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", - "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz", + "integrity": "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==", "dev": true, "license": "MIT", "engines": { @@ -178,9 +260,9 @@ } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", - "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz", + "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==", "dev": true, "license": "MIT", "engines": { @@ -188,9 +270,9 @@ } }, "node_modules/@babel/helper-validator-option": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", - "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.29.7.tgz", + "integrity": "sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==", "dev": true, "license": "MIT", "engines": { @@ -198,27 +280,27 @@ } }, "node_modules/@babel/helpers": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.4.tgz", - "integrity": "sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==", + "version": "7.29.10", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.10.tgz", + "integrity": "sha512-EMCx3AGZ3WfAl6ht7AyQoPm2Lh+BGYEMdc4Q6Hf7uSCDOZFuLq44qNwL+iaim8VlyYhRAo4X43+weadK8ZB4Yg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/template": "^7.27.2", - "@babel/types": "^7.28.4" + "@babel/template": "^7.29.7", + "@babel/types": "^7.29.8" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.4.tgz", - "integrity": "sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==", + "version": "7.29.9", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.9.tgz", + "integrity": "sha512-CjXrNHTnvqBVqHgdBysY3vk2T8tpJHb5/RMeHJBTyVa9xgugCB0CJTx/3oO8RV2QRQP391RWpB7D6hLjm8V9uA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.28.4" + "@babel/types": "^7.29.8" }, "bin": { "parser": "bin/babel-parser.js" @@ -283,13 +365,13 @@ } }, "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz", - "integrity": "sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.29.7.tgz", + "integrity": "sha512-zGYcYfq/WmZ4V+kBIXQon9dSSc8ircGZqw9ZaNhhGj9nZkeBu1jHLBDQqYYi5WA9uawvA2sIMbry2nCFhf5Djg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -325,13 +407,13 @@ } }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.27.1.tgz", - "integrity": "sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.29.7.tgz", + "integrity": "sha512-TSu8+mHCoEaaCDEZ0I3+6mvTBYR4PCxQwf2z9/r5Tbztv6NaLR3B9thGTTxX2WGuGHJqRiAbKPeGTJ5XWXVg6A==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -451,13 +533,13 @@ } }, "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.27.1.tgz", - "integrity": "sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.29.7.tgz", + "integrity": "sha512-ngr+82Sh0xMz25TPCZi+nC2iTzjfCdWS2ONXTp/PtSCHCgaCNBpdMqgvJ2ccdLlClVZ7sisIgB914j/JFe+RZA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -467,42 +549,42 @@ } }, "node_modules/@babel/runtime": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.4.tgz", - "integrity": "sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==", + "version": "7.29.10", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.29.10.tgz", + "integrity": "sha512-NpugTzbKgGrNe45Ui32cN8vCFFMxVtP/9rtfwv0nP5FRDAjvYBxJcLVpYA9mr1jxP6cnIT7x9LUzuDTbWYYNRA==", "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/template": { - "version": "7.27.2", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", - "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.29.7.tgz", + "integrity": "sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/parser": "^7.27.2", - "@babel/types": "^7.27.1" + "@babel/code-frame": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/types": "^7.29.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.4.tgz", - "integrity": "sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ==", + "version": "7.29.10", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.10.tgz", + "integrity": "sha512-B3lYAs2nkKskbgQ1nfy8Ma9ao9Q1rntTAQHrzzyDuj+TSO+X3le6PfWwqDvodsb+OumE10eMFfuMCTQSQ5iuIQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.28.3", - "@babel/helper-globals": "^7.28.0", - "@babel/parser": "^7.28.4", - "@babel/template": "^7.27.2", - "@babel/types": "^7.28.4", + "@babel/code-frame": "^7.29.7", + "@babel/generator": "^7.29.8", + "@babel/helper-globals": "^7.29.7", + "@babel/parser": "^7.29.9", + "@babel/template": "^7.29.7", + "@babel/types": "^7.29.8", "debug": "^4.3.1" }, "engines": { @@ -510,14 +592,14 @@ } }, "node_modules/@babel/types": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.4.tgz", - "integrity": "sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==", + "version": "7.29.8", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.8.tgz", + "integrity": "sha512-Vj1jF3cPfxg7OAfoI7QnVKLoILlm2JF9pnVHrX8qx7AHMiYWT+NDAA7jChlNgRS4WTLc/fD1lXLmPixluj+3Gg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.27.1", - "@babel/helper-validator-identifier": "^7.27.1" + "@babel/helper-string-parser": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -531,15 +613,15 @@ "license": "MIT" }, "node_modules/@biomejs/js-api": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@biomejs/js-api/-/js-api-3.0.0.tgz", - "integrity": "sha512-5QcGJFj9IO+yXl76ICjvkdE38uxRcTDsBzcCZHEZ+ma+Te/nbvJg4A3KtAds9HCrEF0JKLWiyjMhAbqazuJvYA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@biomejs/js-api/-/js-api-6.0.0.tgz", + "integrity": "sha512-8HP7wexjQo5Np1J9h0B2x8L5G0GZpCacgjykxLHtvLPvF0hNqSG754oh8bxo+OSFDpVGMfSjmLO+ZY/5KbfjmQ==", "dev": true, "license": "MIT OR Apache-2.0", "peerDependencies": { - "@biomejs/wasm-bundler": "^2.2.0", - "@biomejs/wasm-nodejs": "^2.2.0", - "@biomejs/wasm-web": "^2.2.0" + "@biomejs/wasm-bundler": "^2.5.0", + "@biomejs/wasm-nodejs": "^2.5.0", + "@biomejs/wasm-web": "^2.5.0" }, "peerDependenciesMeta": { "@biomejs/wasm-bundler": { @@ -554,9 +636,9 @@ } }, "node_modules/@biomejs/wasm-nodejs": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@biomejs/wasm-nodejs/-/wasm-nodejs-2.2.4.tgz", - "integrity": "sha512-ExHAa8W9uyinDhvxhe9CXA6V9bHka3RIs9jKQWlzOz7/LEt3IcFA+fo0O+9RdU30q7lmoo83VqUJwWPTLXeWiA==", + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/@biomejs/wasm-nodejs/-/wasm-nodejs-2.5.2.tgz", + "integrity": "sha512-B0r7jLdCmXhq4+jnx1oA0/SChLy5G283r35HJr276T+w6qgqAPAhqfnlKs+UobclAfidNDbfj9ZmcuCijaHDxQ==", "dev": true, "license": "MIT OR Apache-2.0" }, @@ -585,9 +667,9 @@ } }, "node_modules/@daily-co/daily-js": { - "version": "0.87.0", - "resolved": "https://registry.npmjs.org/@daily-co/daily-js/-/daily-js-0.87.0.tgz", - "integrity": "sha512-hWHdBDvJwDeg8unz+XG9hD7xamuFi5Jmsk89ASATKL4fdTDHplpxi4PG9aaPXzBZYYLTjuxUje1K7B5uUR+gzw==", + "version": "0.93.0", + "resolved": "https://registry.npmjs.org/@daily-co/daily-js/-/daily-js-0.93.0.tgz", + "integrity": "sha512-KDo/GuEILe3s7xyIiGSt1mCrtRgSoI7040zoZ+gGWt41mX71/6UhR7AaiyiSg3o7uHXInXPZa9zJ/rJOkrekEQ==", "license": "BSD-2-Clause", "dependencies": { "@babel/runtime": "^7.12.5", @@ -597,25 +679,25 @@ "events": "^3.1.0" }, "engines": { - "node": ">=10.0.0" + "node": ">=22.14.0" } }, "node_modules/@emnapi/core": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.5.0.tgz", - "integrity": "sha512-sbP8GzB1WDzacS8fgNPpHlp6C9VZe+SJP3F90W9rLemaQj2PzIuTEl1qDOYQf58YIpyjViI24y9aPWCjEzY2cg==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.10.0.tgz", + "integrity": "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==", "dev": true, "license": "MIT", "optional": true, "dependencies": { - "@emnapi/wasi-threads": "1.1.0", + "@emnapi/wasi-threads": "1.2.1", "tslib": "^2.4.0" } }, "node_modules/@emnapi/runtime": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.5.0.tgz", - "integrity": "sha512-97/BJ3iXHww3djw6hYIfErCZFee7qCtrneuLa20UXFCOTCfBM2cvQHjWJ2EG0s0MtdNwInarqCTz35i4wWXHsQ==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.10.0.tgz", + "integrity": "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==", "dev": true, "license": "MIT", "optional": true, @@ -624,9 +706,9 @@ } }, "node_modules/@emnapi/wasi-threads": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.1.0.tgz", - "integrity": "sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz", + "integrity": "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==", "dev": true, "license": "MIT", "optional": true, @@ -659,6 +741,91 @@ "node": ">=12" } }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.4.0.tgz", + "integrity": "sha512-KzTVk2tCWAHtYrvvvaP8bJKJq2pVinhLcGEQdtLIYPbmNGNyYe8QwNaTUYQp2J7/vIsUKt5QCqAfUkYyG9DkOw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "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, + "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", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.2.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "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", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/@istanbuljs/load-nyc-config": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", @@ -677,9 +844,9 @@ } }, "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.6.tgz", + "integrity": "sha512-+Sg6GCR/wy1oSmQDFq4LQDAhm3ETKnorxN+y5nbLULOR3P0c14f2Wurzj3/xqPXtasLFfHd5iRFQ7AJt4KH2cw==", "dev": true, "license": "MIT", "engines": { @@ -687,17 +854,17 @@ } }, "node_modules/@jest/console": { - "version": "30.1.2", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-30.1.2.tgz", - "integrity": "sha512-BGMAxj8VRmoD0MoA/jo9alMXSRoqW8KPeqOfEo1ncxnRLatTBCpRoOwlwlEMdudp68Q6WSGwYrrLtTGOh8fLzw==", + "version": "30.5.2", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-30.5.2.tgz", + "integrity": "sha512-e8sQC4pCMHPBrPX7Hk8TJr+DM5dkUnImSTNag8SEWFAFAF6xIz4AJvCKapnrdHnZxep4bxw4PhG+ZbimYBMyKw==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "30.0.5", + "@jest/types": "30.5.1", "@types/node": "*", "chalk": "^4.1.2", - "jest-message-util": "30.1.0", - "jest-util": "30.0.5", + "jest-message-util": "30.5.1", + "jest-util": "30.5.1", "slash": "^3.0.0" }, "engines": { @@ -705,39 +872,39 @@ } }, "node_modules/@jest/core": { - "version": "30.1.3", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-30.1.3.tgz", - "integrity": "sha512-LIQz7NEDDO1+eyOA2ZmkiAyYvZuo6s1UxD/e2IHldR6D7UYogVq3arTmli07MkENLq6/3JEQjp0mA8rrHHJ8KQ==", + "version": "30.5.2", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-30.5.2.tgz", + "integrity": "sha512-/jqvFWoJF7LV1a6AUpYMbMm+2yIYsHJfR474H0SCzr9k8tnO/jl9wRg6zSG6lxgf6EozNlCG4amFzWsbZSvvZA==", "dev": true, "license": "MIT", "dependencies": { - "@jest/console": "30.1.2", - "@jest/pattern": "30.0.1", - "@jest/reporters": "30.1.3", - "@jest/test-result": "30.1.3", - "@jest/transform": "30.1.2", - "@jest/types": "30.0.5", + "@jest/console": "30.5.2", + "@jest/pattern": "30.5.0", + "@jest/reporters": "30.5.2", + "@jest/test-result": "30.5.2", + "@jest/transform": "30.5.2", + "@jest/types": "30.5.1", "@types/node": "*", "ansi-escapes": "^4.3.2", "chalk": "^4.1.2", "ci-info": "^4.2.0", "exit-x": "^0.2.2", + "fast-json-stable-stringify": "^2.1.0", "graceful-fs": "^4.2.11", - "jest-changed-files": "30.0.5", - "jest-config": "30.1.3", - "jest-haste-map": "30.1.0", - "jest-message-util": "30.1.0", - "jest-regex-util": "30.0.1", - "jest-resolve": "30.1.3", - "jest-resolve-dependencies": "30.1.3", - "jest-runner": "30.1.3", - "jest-runtime": "30.1.3", - "jest-snapshot": "30.1.2", - "jest-util": "30.0.5", - "jest-validate": "30.1.0", - "jest-watcher": "30.1.3", - "micromatch": "^4.0.8", - "pretty-format": "30.0.5", + "jest-changed-files": "30.5.1", + "jest-config": "30.5.2", + "jest-haste-map": "30.5.1", + "jest-message-util": "30.5.1", + "jest-regex-util": "30.5.0", + "jest-resolve": "30.5.1", + "jest-resolve-dependencies": "30.5.2", + "jest-runner": "30.5.2", + "jest-runtime": "30.5.2", + "jest-snapshot": "30.5.2", + "jest-util": "30.5.1", + "jest-validate": "30.5.1", + "jest-watcher": "30.5.2", + "pretty-format": "30.5.1", "slash": "^3.0.0" }, "engines": { @@ -753,9 +920,9 @@ } }, "node_modules/@jest/diff-sequences": { - "version": "30.0.1", - "resolved": "https://registry.npmjs.org/@jest/diff-sequences/-/diff-sequences-30.0.1.tgz", - "integrity": "sha512-n5H8QLDJ47QqbCNn5SuFjCRDrOLEZ0h8vAHCK5RL9Ls7Xa8AQLa/YxAc9UjFqoEDM48muwtBGjtMY5cr0PLDCw==", + "version": "30.5.0", + "resolved": "https://registry.npmjs.org/@jest/diff-sequences/-/diff-sequences-30.5.0.tgz", + "integrity": "sha512-OsqBjHXCn8cadasoAZBP6nWYvMsRhpMzGXTpxJ5aO04NlbdhIz+FVe3q49l0AwVhsz/cEmIpBes6gAFl1/dWQg==", "dev": true, "license": "MIT", "engines": { @@ -763,70 +930,70 @@ } }, "node_modules/@jest/environment": { - "version": "30.1.2", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-30.1.2.tgz", - "integrity": "sha512-N8t1Ytw4/mr9uN28OnVf0SYE2dGhaIxOVYcwsf9IInBKjvofAjbFRvedvBBlyTYk2knbJTiEjEJ2PyyDIBnd9w==", + "version": "30.5.2", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-30.5.2.tgz", + "integrity": "sha512-nwFPOUMbmsjNNRCpnJpB9HbSZu4C07wDDds++5j+j1MezzPLxMPDdbdUVjr2o4RULDOValnDd70taPFI1EtxAg==", "dev": true, "license": "MIT", "dependencies": { - "@jest/fake-timers": "30.1.2", - "@jest/types": "30.0.5", + "@jest/fake-timers": "30.5.2", + "@jest/types": "30.5.1", "@types/node": "*", - "jest-mock": "30.0.5" + "jest-mock": "30.5.2" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/@jest/expect": { - "version": "30.1.2", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-30.1.2.tgz", - "integrity": "sha512-tyaIExOwQRCxPCGNC05lIjWJztDwk2gPDNSDGg1zitXJJ8dC3++G/CRjE5mb2wQsf89+lsgAgqxxNpDLiCViTA==", + "version": "30.5.2", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-30.5.2.tgz", + "integrity": "sha512-2E+1Pg6jJxbRjLNLpciC71iri/3qsKJL222/aXJEFwC0VdUSvfS+JZQQLEVjUYYc8t8pQu2MGE3cF2+bNTYRsg==", "dev": true, "license": "MIT", "dependencies": { - "expect": "30.1.2", - "jest-snapshot": "30.1.2" + "expect": "30.5.2", + "jest-snapshot": "30.5.2" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/@jest/expect-utils": { - "version": "30.1.2", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-30.1.2.tgz", - "integrity": "sha512-HXy1qT/bfdjCv7iC336ExbqqYtZvljrV8odNdso7dWK9bSeHtLlvwWWC3YSybSPL03Gg5rug6WLCZAZFH72m0A==", + "version": "30.5.2", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-30.5.2.tgz", + "integrity": "sha512-d/HOLSrJUlBIl6n3LzOa7cjW3xdePm5H5gQw2lixZ/0h157l9sw3mLblzFqnPcTbhDzhRQdBOX3A3KcG73nm5Q==", "dev": true, "license": "MIT", "dependencies": { - "@jest/get-type": "30.1.0" + "@jest/get-type": "30.5.0" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/@jest/fake-timers": { - "version": "30.1.2", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-30.1.2.tgz", - "integrity": "sha512-Beljfv9AYkr9K+ETX9tvV61rJTY706BhBUtiaepQHeEGfe0DbpvUA5Z3fomwc5Xkhns6NWrcFDZn+72fLieUnA==", + "version": "30.5.2", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-30.5.2.tgz", + "integrity": "sha512-GKk0h0tKT5SpDPxDhPg3r9mm5s8/YCBzVNMOGdRiQXwUiMsjU10mVPlMaQstH6/cu50vOb8N9oQUMETHuwwxKw==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "30.0.5", - "@sinonjs/fake-timers": "^13.0.0", + "@jest/types": "30.5.1", + "@sinonjs/fake-timers": "^15.4.0", "@types/node": "*", - "jest-message-util": "30.1.0", - "jest-mock": "30.0.5", - "jest-util": "30.0.5" + "jest-message-util": "30.5.1", + "jest-mock": "30.5.2", + "jest-util": "30.5.1" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/@jest/get-type": { - "version": "30.1.0", - "resolved": "https://registry.npmjs.org/@jest/get-type/-/get-type-30.1.0.tgz", - "integrity": "sha512-eMbZE2hUnx1WV0pmURZY9XoXPkUYjpc55mb0CrhtdWLtzMQPFvu/rZkTLZFTsdaVQa+Tr4eWAteqcUzoawq/uA==", + "version": "30.5.0", + "resolved": "https://registry.npmjs.org/@jest/get-type/-/get-type-30.5.0.tgz", + "integrity": "sha512-9/2VUPitAjmBzbvDvqrxmvB7BzWsBW0WmkkojX1ODuxX1NLGxx9gfaZpHB0z8DtJ9uhGNmZG/VXBhf8uO0OV8Q==", "dev": true, "license": "MIT", "engines": { @@ -834,62 +1001,78 @@ } }, "node_modules/@jest/globals": { - "version": "30.1.2", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-30.1.2.tgz", - "integrity": "sha512-teNTPZ8yZe3ahbYnvnVRDeOjr+3pu2uiAtNtrEsiMjVPPj+cXd5E/fr8BL7v/T7F31vYdEHrI5cC/2OoO/vM9A==", + "version": "30.5.2", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-30.5.2.tgz", + "integrity": "sha512-62zfS+dL+M5aTNHXCNLyqD+j4oqxTIzDYrZbpqMP8Yn+gvlAGyzC6BSPNb1ZmFOakV1RtFYX/O3FCQXSWmQdgg==", "dev": true, "license": "MIT", "dependencies": { - "@jest/environment": "30.1.2", - "@jest/expect": "30.1.2", - "@jest/types": "30.0.5", - "jest-mock": "30.0.5" + "@jest/environment": "30.5.2", + "@jest/expect": "30.5.2", + "@jest/types": "30.5.1", + "jest-mock": "30.5.2" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/@jest/pattern": { - "version": "30.0.1", - "resolved": "https://registry.npmjs.org/@jest/pattern/-/pattern-30.0.1.tgz", - "integrity": "sha512-gWp7NfQW27LaBQz3TITS8L7ZCQ0TLvtmI//4OwlQRx4rnWxcPNIYjxZpDcN4+UlGxgm3jS5QPz8IPTCkb59wZA==", + "version": "30.5.0", + "resolved": "https://registry.npmjs.org/@jest/pattern/-/pattern-30.5.0.tgz", + "integrity": "sha512-HdNQYSdRTEBNrginaqzQtTjG0HRMfrra/z6Ok7uL3S87vSlarIVohEsJsSj5edu3MiHoHjAkvPROz5ZjoKai+w==", "dev": true, "license": "MIT", "dependencies": { "@types/node": "*", - "jest-regex-util": "30.0.1" + "jest-regex-util": "30.5.0" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, + "node_modules/@jest/react-is-18": { + "name": "react-is", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jest/react-is-19": { + "name": "react-is", + "version": "19.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.3.1.tgz", + "integrity": "sha512-RRieF6IyxQBkcK6pP8xOHprLTPW6QjRkbGdImtqNme+/hYVwCZkLQLdlZGOhUqXwkS9IEynaGvPJtv6XB/cz0Q==", + "dev": true, + "license": "MIT" + }, "node_modules/@jest/reporters": { - "version": "30.1.3", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-30.1.3.tgz", - "integrity": "sha512-VWEQmJWfXMOrzdFEOyGjUEOuVXllgZsoPtEHZzfdNz18RmzJ5nlR6kp8hDdY8dDS1yGOXAY7DHT+AOHIPSBV0w==", + "version": "30.5.2", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-30.5.2.tgz", + "integrity": "sha512-ev6E9iG73twQcfAfoTnviuYkr3yOrYbzAtMFCimv2fxHXPIp9PBt2u1wNMt0aYWgl8FPwIcS8oqRJg6alnht4Q==", "dev": true, "license": "MIT", "dependencies": { "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "30.1.2", - "@jest/test-result": "30.1.3", - "@jest/transform": "30.1.2", - "@jest/types": "30.0.5", - "@jridgewell/trace-mapping": "^0.3.25", + "@jest/console": "30.5.2", + "@jest/test-result": "30.5.2", + "@jest/transform": "30.5.2", + "@jest/types": "30.5.1", + "@jridgewell/trace-mapping": "^0.3.31", "@types/node": "*", "chalk": "^4.1.2", "collect-v8-coverage": "^1.0.2", "exit-x": "^0.2.2", - "glob": "^10.3.10", + "glob": "^13.0.6", "graceful-fs": "^4.2.11", "istanbul-lib-coverage": "^3.0.0", "istanbul-lib-instrument": "^6.0.0", "istanbul-lib-report": "^3.0.0", "istanbul-lib-source-maps": "^5.0.0", "istanbul-reports": "^3.1.3", - "jest-message-util": "30.1.0", - "jest-util": "30.0.5", - "jest-worker": "30.1.0", + "jest-message-util": "30.5.1", + "jest-util": "30.5.1", + "jest-worker": "30.5.1", "slash": "^3.0.0", "string-length": "^4.0.2", "v8-to-istanbul": "^9.0.1" @@ -907,9 +1090,9 @@ } }, "node_modules/@jest/schemas": { - "version": "30.0.5", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-30.0.5.tgz", - "integrity": "sha512-DmdYgtezMkh3cpU8/1uyXakv3tJRcmcXxBOcO0tbaozPwpmh4YMsnWrQm9ZmZMfa5ocbxzbFk6O4bDPEc/iAnA==", + "version": "30.5.0", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-30.5.0.tgz", + "integrity": "sha512-/hunigyNpc4RCjC0VaW3f5RCUZVM2+WQ65qP7z083Gmvac7or2LI50XVNOtE4YPgBpV0yxYiAgorAPGniCoJmg==", "dev": true, "license": "MIT", "dependencies": { @@ -920,13 +1103,13 @@ } }, "node_modules/@jest/snapshot-utils": { - "version": "30.1.2", - "resolved": "https://registry.npmjs.org/@jest/snapshot-utils/-/snapshot-utils-30.1.2.tgz", - "integrity": "sha512-vHoMTpimcPSR7OxS2S0V1Cpg8eKDRxucHjoWl5u4RQcnxqQrV3avETiFpl8etn4dqxEGarBeHbIBety/f8mLXw==", + "version": "30.5.1", + "resolved": "https://registry.npmjs.org/@jest/snapshot-utils/-/snapshot-utils-30.5.1.tgz", + "integrity": "sha512-V3wnxNtiVmw5PPVg433Cn3VdXnsOeu/ofLw3KC04Bn2y1wIlU5kozXQn48rhrgj/02LrCVtntTEF1yBha0XSUw==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "30.0.5", + "@jest/types": "30.5.1", "chalk": "^4.1.2", "graceful-fs": "^4.2.11", "natural-compare": "^1.4.0" @@ -936,14 +1119,15 @@ } }, "node_modules/@jest/source-map": { - "version": "30.0.1", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-30.0.1.tgz", - "integrity": "sha512-MIRWMUUR3sdbP36oyNyhbThLHyJ2eEDClPCiHVbrYAe5g3CHRArIVpBw7cdSB5fr+ofSfIb2Tnsw8iEHL0PYQg==", + "version": "30.5.2", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-30.5.2.tgz", + "integrity": "sha512-c5CehvkbfHX6yyNg7bMn2ylqlp9AHXuZ/3hPH/Lh5bxD/vefd/lV9HBjMqXef9yQNqkdwyZvkLSVSwB38hy8Qw==", "dev": true, "license": "MIT", "dependencies": { - "@jridgewell/trace-mapping": "^0.3.25", + "@jridgewell/trace-mapping": "^0.3.31", "callsites": "^3.1.0", + "convert-source-map": "^2.0.0", "graceful-fs": "^4.2.11" }, "engines": { @@ -951,14 +1135,14 @@ } }, "node_modules/@jest/test-result": { - "version": "30.1.3", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-30.1.3.tgz", - "integrity": "sha512-P9IV8T24D43cNRANPPokn7tZh0FAFnYS2HIfi5vK18CjRkTDR9Y3e1BoEcAJnl4ghZZF4Ecda4M/k41QkvurEQ==", + "version": "30.5.2", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-30.5.2.tgz", + "integrity": "sha512-eO6YU5rsLfs60ne694e0IAmRgeBnoA8mu0nlxXDbl/1j5km0o2vO9/VbbUIKIH+WRKKEI+ELgwraRGn2Lhep8g==", "dev": true, "license": "MIT", "dependencies": { - "@jest/console": "30.1.2", - "@jest/types": "30.0.5", + "@jest/console": "30.5.2", + "@jest/types": "30.5.1", "@types/istanbul-lib-coverage": "^2.0.6", "collect-v8-coverage": "^1.0.2" }, @@ -967,15 +1151,15 @@ } }, "node_modules/@jest/test-sequencer": { - "version": "30.1.3", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-30.1.3.tgz", - "integrity": "sha512-82J+hzC0qeQIiiZDThh+YUadvshdBswi5nuyXlEmXzrhw5ZQSRHeQ5LpVMD/xc8B3wPePvs6VMzHnntxL+4E3w==", + "version": "30.5.2", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-30.5.2.tgz", + "integrity": "sha512-bmij8jZyYAC47ExT2GeP7PcrlwSNS+Bp3KeRuBH88gpcxqDv6fljN8PemS4J/lLZ79xb6mpaennQTTq0zUAVVg==", "dev": true, "license": "MIT", "dependencies": { - "@jest/test-result": "30.1.3", + "@jest/test-result": "30.5.2", "graceful-fs": "^4.2.11", - "jest-haste-map": "30.1.0", + "jest-haste-map": "30.5.1", "slash": "^3.0.0" }, "engines": { @@ -983,24 +1167,23 @@ } }, "node_modules/@jest/transform": { - "version": "30.1.2", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-30.1.2.tgz", - "integrity": "sha512-UYYFGifSgfjujf1Cbd3iU/IQoSd6uwsj8XHj5DSDf5ERDcWMdJOPTkHWXj4U+Z/uMagyOQZ6Vne8C4nRIrCxqA==", + "version": "30.5.2", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-30.5.2.tgz", + "integrity": "sha512-LBGwmaE886C41jDZ65eqR1YbXM7642MK3ZhTowZd5+xDlrDLuf4ePuDdDmVSvcr8NTVJ3MqxLkMbUCzuigUaoQ==", "dev": true, "license": "MIT", "dependencies": { "@babel/core": "^7.27.4", - "@jest/types": "30.0.5", - "@jridgewell/trace-mapping": "^0.3.25", - "babel-plugin-istanbul": "^7.0.0", + "@jest/types": "30.5.1", + "@jridgewell/trace-mapping": "^0.3.31", + "babel-plugin-istanbul": "^8.0.0", "chalk": "^4.1.2", "convert-source-map": "^2.0.0", "fast-json-stable-stringify": "^2.1.0", "graceful-fs": "^4.2.11", - "jest-haste-map": "30.1.0", - "jest-regex-util": "30.0.1", - "jest-util": "30.0.5", - "micromatch": "^4.0.8", + "jest-haste-map": "30.5.1", + "jest-regex-util": "30.5.0", + "jest-util": "30.5.1", "pirates": "^4.0.7", "slash": "^3.0.0", "write-file-atomic": "^5.0.1" @@ -1010,14 +1193,14 @@ } }, "node_modules/@jest/types": { - "version": "30.0.5", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-30.0.5.tgz", - "integrity": "sha512-aREYa3aku9SSnea4aX6bhKn4bgv3AXkgijoQgbYV3yvbiGt6z+MQ85+6mIhx9DsKW2BuB/cLR/A+tcMThx+KLQ==", + "version": "30.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-30.5.1.tgz", + "integrity": "sha512-LvVYn83nnXPl+Rg98nvcFgjx6nRMTArhSn6RAX/w3ELn54S8A42TYZvsCMdGUqTM8S0wyXbtlQdU6Hi6dykj9g==", "dev": true, "license": "MIT", "dependencies": { - "@jest/pattern": "30.0.1", - "@jest/schemas": "30.0.5", + "@jest/pattern": "30.5.0", + "@jest/schemas": "30.5.0", "@types/istanbul-lib-coverage": "^2.0.6", "@types/istanbul-reports": "^3.0.4", "@types/node": "*", @@ -1061,9 +1244,9 @@ } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", - "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.6.0.tgz", + "integrity": "sha512-T7jf+5zgsZHwNJ4lvQ7/aezbyk0nNX+zJVWpmHA7VYsEx7a7qr5Rg5IbtJFqkgze5Y2sruq1RUY8Q837Od7iFw==", "dev": true, "license": "MIT" }, @@ -1079,121 +1262,435 @@ } }, "node_modules/@napi-rs/wasm-runtime": { - "version": "0.2.12", - "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.12.tgz", - "integrity": "sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.2.5.tgz", + "integrity": "sha512-HshSvXzmBxNzqejd3k/KemgQ3hdREUYFRRrgxOZ+gPljDIsO2SDZrVZMd4Z/HsxudQbE62OVyVFE8z9BCurfjA==", "dev": true, "license": "MIT", "optional": true, "dependencies": { - "@emnapi/core": "^1.4.3", - "@emnapi/runtime": "^1.4.3", - "@tybys/wasm-util": "^0.10.0" + "@tybys/wasm-util": "^0.10.3" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=23.5.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + }, + "peerDependencies": { + "@emnapi/core": "^1.7.1 || ^2.0.0-alpha.4", + "@emnapi/runtime": "^1.7.1 || ^2.0.0-alpha.4" } }, - "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==", + "node_modules/@parcel/watcher": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.6.0.tgz", + "integrity": "sha512-7FNeNl8NCE7aINx7WXiKQrPYZWC/hvrTsmk6zmxbI7LTXE7hVek/n8AfVgpe2y82zl3w0HvCHN0bVKMBoJcC0w==", "dev": true, + "hasInstallScript": true, "license": "MIT", - "optional": true, + "dependencies": { + "detect-libc": "^2.0.3", + "is-glob": "^4.0.3", + "node-addon-api": "^7.0.0", + "picomatch": "^4.0.4" + }, "engines": { - "node": ">=14" - } - }, - "node_modules/@pkgr/core": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.2.9.tgz", - "integrity": "sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==", + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "@parcel/watcher-android-arm64": "2.6.0", + "@parcel/watcher-darwin-arm64": "2.6.0", + "@parcel/watcher-darwin-x64": "2.6.0", + "@parcel/watcher-freebsd-x64": "2.6.0", + "@parcel/watcher-linux-arm-glibc": "2.6.0", + "@parcel/watcher-linux-arm-musl": "2.6.0", + "@parcel/watcher-linux-arm64-glibc": "2.6.0", + "@parcel/watcher-linux-arm64-musl": "2.6.0", + "@parcel/watcher-linux-x64-glibc": "2.6.0", + "@parcel/watcher-linux-x64-musl": "2.6.0", + "@parcel/watcher-win32-arm64": "2.6.0", + "@parcel/watcher-win32-x64": "2.6.0" + } + }, + "node_modules/@parcel/watcher-android-arm64": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.6.0.tgz", + "integrity": "sha512-trgpLSCKRC/huFjXX/Smh+0sWe4+YtKfktIToiMl59ghz7z+qkH6kMvNnUbLyRs9N11t8l4svSCs1+5B3rOAhA==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", + "optional": true, + "os": [ + "android" + ], "engines": { - "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + "node": ">= 10.0.0" }, "funding": { - "url": "https://opencollective.com/pkgr" + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/@sentry-internal/browser-utils": { - "version": "8.55.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/browser-utils/-/browser-utils-8.55.0.tgz", - "integrity": "sha512-ROgqtQfpH/82AQIpESPqPQe0UyWywKJsmVIqi3c5Fh+zkds5LUxnssTj3yNd1x+kxaPDVB023jAP+3ibNgeNDw==", + "node_modules/@parcel/watcher-darwin-arm64": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.6.0.tgz", + "integrity": "sha512-Y3QV0gl7Q1zbfueunkWIERICbEojQFCgpyG7YqOGNFLsckXyI1xu9mAIUpKY9QBYzBtSkN8dBPwd3yiAO9ovMw==", + "cpu": [ + "arm64" + ], + "dev": true, "license": "MIT", - "dependencies": { - "@sentry/core": "8.55.0" - }, + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=14.18" + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/@sentry-internal/feedback": { - "version": "8.55.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/feedback/-/feedback-8.55.0.tgz", - "integrity": "sha512-cP3BD/Q6pquVQ+YL+rwCnorKuTXiS9KXW8HNKu4nmmBAyf7urjs+F6Hr1k9MXP5yQ8W3yK7jRWd09Yu6DHWOiw==", + "node_modules/@parcel/watcher-darwin-x64": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.6.0.tgz", + "integrity": "sha512-Ohv6OpzhUfKYD7Beb8kDvG0jbIxORCYY1JRdZnaBtnjjkJxgD7ZVL0nw2sCYd0yTMKTvz3nnTnOF3cDifK+kvw==", + "cpu": [ + "x64" + ], + "dev": true, "license": "MIT", - "dependencies": { - "@sentry/core": "8.55.0" - }, + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=14.18" + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/@sentry-internal/replay": { - "version": "8.55.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/replay/-/replay-8.55.0.tgz", - "integrity": "sha512-roCDEGkORwolxBn8xAKedybY+Jlefq3xYmgN2fr3BTnsXjSYOPC7D1/mYqINBat99nDtvgFvNfRcZPiwwZ1hSw==", + "node_modules/@parcel/watcher-freebsd-x64": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.6.0.tgz", + "integrity": "sha512-5HmXvDgs8VK+74jF9y9/2FE3/OnlcKmc56tjmSrEuZjpSZOGL+fvAu+HKJBdPs9uwoP2hE6TlSUpXZ/C5jUFmQ==", + "cpu": [ + "x64" + ], + "dev": true, "license": "MIT", - "dependencies": { - "@sentry-internal/browser-utils": "8.55.0", - "@sentry/core": "8.55.0" - }, + "optional": true, + "os": [ + "freebsd" + ], "engines": { - "node": ">=14.18" + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/@sentry-internal/replay-canvas": { - "version": "8.55.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/replay-canvas/-/replay-canvas-8.55.0.tgz", - "integrity": "sha512-nIkfgRWk1091zHdu4NbocQsxZF1rv1f7bbp3tTIlZYbrH62XVZosx5iHAuZG0Zc48AETLE7K4AX9VGjvQj8i9w==", + "node_modules/@parcel/watcher-linux-arm-glibc": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.6.0.tgz", + "integrity": "sha512-Ps/hui3A+vMbjdqlqAowK2ZL8+BO8dBjxeWXj6npTBs3jx4wWmbPpaLuqwrQrSqIVMCnpWo238bJ1U37GhQOYg==", + "cpu": [ + "arm" + ], + "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", - "dependencies": { - "@sentry-internal/replay": "8.55.0", - "@sentry/core": "8.55.0" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=14.18" + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/@sentry/browser": { - "version": "8.55.0", - "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-8.55.0.tgz", - "integrity": "sha512-1A31mCEWCjaMxJt6qGUK+aDnLDcK6AwLAZnqpSchNysGni1pSn1RWSmk9TBF8qyTds5FH8B31H480uxMPUJ7Cw==", + "node_modules/@parcel/watcher-linux-arm-musl": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.6.0.tgz", + "integrity": "sha512-9c6AUHgHoG+IY88MRIHupztQiQnrbqHYQjkM2btA+Bf/wQnQMuiD0Wfk1EVv3TlNT3x41uU71rn6E4xh/+zvkw==", + "cpu": [ + "arm" + ], + "dev": true, + "libc": [ + "musl" + ], "license": "MIT", - "dependencies": { - "@sentry-internal/browser-utils": "8.55.0", - "@sentry-internal/feedback": "8.55.0", - "@sentry-internal/replay": "8.55.0", - "@sentry-internal/replay-canvas": "8.55.0", - "@sentry/core": "8.55.0" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=14.18" + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-glibc": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.6.0.tgz", + "integrity": "sha512-yHRqS2owEXe6Hic9z6Mh1ECsCd+ODVOGvZDyciqRd21+v+o+DnXMOrw50DSpIG2sb8GPEaPPmfeCAWKPJdq46g==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-musl": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.6.0.tgz", + "integrity": "sha512-WhB2e/V7rqdHHWZusBSPuy5Ei8S6lSz6FE5TKKQz5h3a0O+C+mhY7vxU9b/stqvMb8beLnPY82ZrFTLKs+SrKA==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-glibc": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.6.0.tgz", + "integrity": "sha512-ulGE6x6Oz6iAwg75T8YQSoguBWasniIbX+QWpaYPcCnDOpdWX3k+4xbEYPZVLxOuoJI+svJJPD3sEj8G7lrQ3A==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-musl": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.6.0.tgz", + "integrity": "sha512-tkBYKt7YQrjIJWYDnto2YgO8MRkjlMTSNoRHzsXinBqbLdeOM3L32wPZJvIZxqaLMfSlS/4sUjH/6STVP/XDLw==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-arm64": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.6.0.tgz", + "integrity": "sha512-gIZAP23jaHjGWasY/TY6yL7NHFClf0Ga7FN+iINvk+KN94rhm94lYZhFsbYFNcA04/onvGD9kKmiJLJB2HbNwQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-x64": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.6.0.tgz", + "integrity": "sha512-cA+/pXV2YkfxlIcXOQ5fSWqAzzPyD78/x5qbK/I0vUkrlYHA8TIz+MXjAbGouguKVSI4bOmkTSJ1/poVSsgt+A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "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" + } + }, + "node_modules/@pkgr/core": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.3.6.tgz", + "integrity": "sha512-SEeaJLb3qBNF/OaXnaR1NmmBbFYk1zC0ZH/52fATcRPLFg/p791YrcyFFy44Bo9sLaGuSuLp5Q6axbb/O+v/RA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/pkgr" + } + }, + "node_modules/@sentry-internal/browser-utils": { + "version": "8.55.2", + "resolved": "https://registry.npmjs.org/@sentry-internal/browser-utils/-/browser-utils-8.55.2.tgz", + "integrity": "sha512-GnKod+gL/Y+1FUM/RGV8q6le1CoyiGbT40MitEK7eVwWe+bfTRq1gN7ioupyHFMUg1RlQkDQ4/sENmio/uow5A==", + "license": "MIT", + "dependencies": { + "@sentry/core": "8.55.2" + }, + "engines": { + "node": ">=14.18" + } + }, + "node_modules/@sentry-internal/feedback": { + "version": "8.55.2", + "resolved": "https://registry.npmjs.org/@sentry-internal/feedback/-/feedback-8.55.2.tgz", + "integrity": "sha512-XQy//NWbL0mLLM5w8wNDWMNpXz39VUyW2397dUrH8++kR63WhUVAvTOtL0o0GMVadSAzl1b08oHP9zSUNFQwcg==", + "license": "MIT", + "dependencies": { + "@sentry/core": "8.55.2" + }, + "engines": { + "node": ">=14.18" + } + }, + "node_modules/@sentry-internal/replay": { + "version": "8.55.2", + "resolved": "https://registry.npmjs.org/@sentry-internal/replay/-/replay-8.55.2.tgz", + "integrity": "sha512-+W43Z697EVe/OgpGW07B773sa8xO1UbpnW0Cr+E+3FMDb6ZbXlaBUoagPTUkkQPdwBe35SDh6r8y2M3EOPGbxg==", + "license": "MIT", + "dependencies": { + "@sentry-internal/browser-utils": "8.55.2", + "@sentry/core": "8.55.2" + }, + "engines": { + "node": ">=14.18" + } + }, + "node_modules/@sentry-internal/replay-canvas": { + "version": "8.55.2", + "resolved": "https://registry.npmjs.org/@sentry-internal/replay-canvas/-/replay-canvas-8.55.2.tgz", + "integrity": "sha512-P/jGiuR7dRLG9IzD/463fLgiibyYceauav/9prRG0ZxJm1AtuO02OKball2Fs3bbzdzwHCTlcsUuL2ivDF4b5A==", + "license": "MIT", + "dependencies": { + "@sentry-internal/replay": "8.55.2", + "@sentry/core": "8.55.2" + }, + "engines": { + "node": ">=14.18" + } + }, + "node_modules/@sentry/browser": { + "version": "8.55.2", + "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-8.55.2.tgz", + "integrity": "sha512-xHuPIEKhx9zw5quWvv4YgZprnwoVMCfxIhmOIf6KJ9iizyUHeUDcKpLS59xERroqwX4RpvK+l/27AZu4zfZlzQ==", + "license": "MIT", + "dependencies": { + "@sentry-internal/browser-utils": "8.55.2", + "@sentry-internal/feedback": "8.55.2", + "@sentry-internal/replay": "8.55.2", + "@sentry-internal/replay-canvas": "8.55.2", + "@sentry/core": "8.55.2" + }, + "engines": { + "node": ">=14.18" } }, "node_modules/@sentry/core": { - "version": "8.55.0", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-8.55.0.tgz", - "integrity": "sha512-6g7jpbefjHYs821Z+EBJ8r4Z7LT5h80YSWRJaylGS4nW5W5Z2KXzpdnyFarv37O7QjauzVC2E+PABmpkw5/JGA==", + "version": "8.55.2", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-8.55.2.tgz", + "integrity": "sha512-YlEBwybUcOQ/KjMHDmof1vwweVnBtBxYlQp7DE3fOdtW4pqqdHWTnTntQs4VgYfxzjJYgtkd9LHlGtg8qy+JVQ==", "license": "MIT", "engines": { "node": ">=14.18" } }, "node_modules/@sinclair/typebox": { - "version": "0.34.41", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.41.tgz", - "integrity": "sha512-6gS8pZzSXdyRHTIqoqSVknxolr1kzfy4/CeDnrzsVz8TTIWUbOBr6gnzOmTYJ3eXQNh4IYHIGi5aIL7sOZ2G/g==", + "version": "0.34.52", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.52.tgz", + "integrity": "sha512-XiMQh7qqVlxZzcVD+kkGMNGMzcTrDMLWI7S4x7z1MkCkbDPrekpZXEUK0eZqZFMuHQg2a2DZOcDIh9o5v3Gonw==", "dev": true, "license": "MIT" }, @@ -1208,9 +1705,9 @@ } }, "node_modules/@sinonjs/fake-timers": { - "version": "13.0.5", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-13.0.5.tgz", - "integrity": "sha512-36/hTbH2uaWuGVERyC6da9YwGWnzUZXuPro/F2LfsdOsLnCojz/iSH8MxUt/FD2S5XBSVPhmArFUXcpCQ2Hkiw==", + "version": "15.4.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-15.4.0.tgz", + "integrity": "sha512-DsG+8/LscQIQg68J6Ef3dv10u6nVyetYn923s3/sus5eaGfTo1of5WMZSLf0UJc9KDuKPilPH0UDJCjvNbDNCA==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -1218,9 +1715,9 @@ } }, "node_modules/@tsconfig/node10": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", - "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==", + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.13.tgz", + "integrity": "sha512-gcLdvR9HO1ZJBypsOGqaP6TFEzb6vIta0KSTLt9NAQ6pXQO3cRgSVyCN6pzYqI9DlJgY71XKO0dpDhCf08b3pg==", "dev": true, "license": "MIT" }, @@ -1246,9 +1743,9 @@ "license": "MIT" }, "node_modules/@tybys/wasm-util": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz", - "integrity": "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==", + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.4.tgz", + "integrity": "sha512-W3c4gRigFS0T/Ma4qIYF3GDAc5AQdHb1yL5znJT1Zv1YaD9Kitx656wBjvr19qbiosmZT8lWDM5BEMynUqX65A==", "dev": true, "license": "MIT", "optional": true, @@ -1339,21 +1836,21 @@ "pretty-format": "^30.0.0" } }, - "node_modules/@types/lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-H3MHACvFUEiujabxhaI/ImO6gUrd8oOurg7LQtS7mbwIXA/cUqWrvBsaeJ23aZEPk1TAYkurjfMbSELfoCXlGA==", + "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, "license": "MIT" }, "node_modules/@types/node": { - "version": "24.5.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-24.5.2.tgz", - "integrity": "sha512-FYxk1I7wPv3K2XBaoyH2cTnocQEu8AOZ60hPbsyukMPLv5/5qr7V1i8PLHdl6Zf87I+xZXFvPCXYjiTFq+YSDQ==", + "version": "24.19.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.19.2.tgz", + "integrity": "sha512-93d49wCWJkCyN87MxLpNN6KXPCwFw7bVUg79mGUV1OS40JGWwVCr8n61DXCSqz7CV6/VfPkb7xec7uP2M+QHWQ==", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~7.12.0" + "undici-types": ">=7.24.0 <7.24.7" } }, "node_modules/@types/stack-utils": { @@ -1370,10 +1867,18 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/trusted-types": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", + "dev": true, + "license": "MIT", + "optional": true + }, "node_modules/@types/yargs": { - "version": "17.0.33", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", - "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==", + "version": "17.0.35", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.35.tgz", + "integrity": "sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==", "dev": true, "license": "MIT", "dependencies": { @@ -1388,16 +1893,16 @@ "license": "MIT" }, "node_modules/@ungap/structured-clone": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", - "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.4.0.tgz", + "integrity": "sha512-1mEZtMKPM09vDmQt5y7YvmN2+DFTP7Tg0EWXdic8/C6VRnpb33e4ghisCIE3WZjsE2N8mf+QV1Zqh7ZFYLWInQ==", "dev": true, "license": "ISC" }, "node_modules/@unrs/resolver-binding-android-arm-eabi": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm-eabi/-/resolver-binding-android-arm-eabi-1.11.1.tgz", - "integrity": "sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm-eabi/-/resolver-binding-android-arm-eabi-1.12.2.tgz", + "integrity": "sha512-g5T90pqg1bo/7mytQx6F4iBNC0Wsh9cu+z9veDbFjc7HjpesJFWD7QMS0NGStXM075+7dJPPVvBbpZlnrdpi/w==", "cpu": [ "arm" ], @@ -1409,9 +1914,9 @@ ] }, "node_modules/@unrs/resolver-binding-android-arm64": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm64/-/resolver-binding-android-arm64-1.11.1.tgz", - "integrity": "sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm64/-/resolver-binding-android-arm64-1.12.2.tgz", + "integrity": "sha512-YGCRZv/9GLhwmz6mYDeTsm/92BAyR28l6c2ReweVW5pWgfsitWLY8upvfRlGdoyD8HjeTHSYJWyZGD4KJA/nFQ==", "cpu": [ "arm64" ], @@ -1423,9 +1928,9 @@ ] }, "node_modules/@unrs/resolver-binding-darwin-arm64": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.11.1.tgz", - "integrity": "sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.12.2.tgz", + "integrity": "sha512-u9DiNT1auQMO20A9SyTuG3wUgQWB9Z7KjAg0uFuCDR1FsAY8A0CG2S6JpHS1xwm/w1G08bjXZDcyOCjv1WAm2w==", "cpu": [ "arm64" ], @@ -1437,9 +1942,9 @@ ] }, "node_modules/@unrs/resolver-binding-darwin-x64": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.11.1.tgz", - "integrity": "sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.12.2.tgz", + "integrity": "sha512-f7rPLi/T1HVKZu/u6t87lroib16n8vrSzcyxI7lg4BGO9UF26KhQL44sd9eOUgrTYhvRXtWOIZT5PejdPyJfUA==", "cpu": [ "x64" ], @@ -1451,9 +1956,9 @@ ] }, "node_modules/@unrs/resolver-binding-freebsd-x64": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.11.1.tgz", - "integrity": "sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.12.2.tgz", + "integrity": "sha512-BpcOjWCJub6nRZUS2zA20pmLvjtqAtGejETaIyRLiZiQf++cbrjltLA5NN/xaXfqeOBOSlMFbemIl5/S5tljmg==", "cpu": [ "x64" ], @@ -1465,9 +1970,9 @@ ] }, "node_modules/@unrs/resolver-binding-linux-arm-gnueabihf": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.11.1.tgz", - "integrity": "sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.12.2.tgz", + "integrity": "sha512-vZTDvdSISZjJx66OzJqtsOhzifbqRjbmI1Mnu49fQDwog5GtDI4QidRiEAYbZCRj9C8YZEW+3ZjqsyS9GR4k2A==", "cpu": [ "arm" ], @@ -1479,9 +1984,9 @@ ] }, "node_modules/@unrs/resolver-binding-linux-arm-musleabihf": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.11.1.tgz", - "integrity": "sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.12.2.tgz", + "integrity": "sha512-BiPI+IrIlwcW4nLLMM21+B1dFPzd55yAVgVGrdgDjNef+ch03GdxrcyaIz8X9SsQirh/kCQ7mviyWlMxdh2D7g==", "cpu": [ "arm" ], @@ -1493,13 +1998,16 @@ ] }, "node_modules/@unrs/resolver-binding-linux-arm64-gnu": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.11.1.tgz", - "integrity": "sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.12.2.tgz", + "integrity": "sha512-zJc0H99FEPoFfSrNpa91HYfxzfAJCr502oxNK1cfdC9hlaFI43RT+JFCann9JUgZmLzzntChHyn13Sgn9ljHNg==", "cpu": [ "arm64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -1507,13 +2015,50 @@ ] }, "node_modules/@unrs/resolver-binding-linux-arm64-musl": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.11.1.tgz", - "integrity": "sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.12.2.tgz", + "integrity": "sha512-KQ3Lki6l+Pz1k/eBipN41ES+YUK30beLGb9YqcB1O542cyLCNE6GaxrfcY3T6EezmGGk84wb5XyO9loTM9tkcA==", "cpu": [ "arm64" ], "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-loong64-gnu": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-loong64-gnu/-/resolver-binding-linux-loong64-gnu-1.12.2.tgz", + "integrity": "sha512-3SJGEh1DborhG6pyxvhPzCT4bbSIVihsvgJc13P1bHG7KLdNDaF9T3gsTwFc7Jw/5Y5/iWOjkEx7Zy0NvCGX3Q==", + "cpu": [ + "loong64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-loong64-musl": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-loong64-musl/-/resolver-binding-linux-loong64-musl-1.12.2.tgz", + "integrity": "sha512-jiuG/Obbel7uw1PwHNFfrkiKhLAF6mnyZ6aWlOAVN9WqKm8v0OFGnciJIHu8+CMvXLQ8AD51LPzAoUfT21D5Ew==", + "cpu": [ + "loong64" + ], + "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -1521,13 +2066,16 @@ ] }, "node_modules/@unrs/resolver-binding-linux-ppc64-gnu": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.11.1.tgz", - "integrity": "sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.12.2.tgz", + "integrity": "sha512-q7xRvVpmcfeL+LlZg8Pbbo6QaTZwDU5BaGZbwfhkEsXJn3Was8xYfE0RBH266xZt0rM6B7i8xAYIvjthuUIWHg==", "cpu": [ "ppc64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -1535,13 +2083,16 @@ ] }, "node_modules/@unrs/resolver-binding-linux-riscv64-gnu": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.11.1.tgz", - "integrity": "sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.12.2.tgz", + "integrity": "sha512-0CVdx6lcnT3Q9inOH8tsMIOJ6ImndllMjqJHg8RLVdB7Vq4SfkEXl9mCSsVNuNA4MCYycRicCUxPCabVHJRr6A==", "cpu": [ "riscv64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -1549,13 +2100,16 @@ ] }, "node_modules/@unrs/resolver-binding-linux-riscv64-musl": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-1.11.1.tgz", - "integrity": "sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-1.12.2.tgz", + "integrity": "sha512-iOwlRo9vnp6R6ohHQS11n0NnfdXx/omhkocmIfaPRpQhKZ+3BDMkkdRVh53qjkFkpPddf+FETA28NwGN7l5l+w==", "cpu": [ "riscv64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -1563,13 +2117,16 @@ ] }, "node_modules/@unrs/resolver-binding-linux-s390x-gnu": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.11.1.tgz", - "integrity": "sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.12.2.tgz", + "integrity": "sha512-HYJtLfXq94q8iZNFT1lknx258wlkkWhZeUXJRqzKBBUJ00CvZ+N33zgbCqimLjsyw5Va6uUxhVa12mI+kaveEw==", "cpu": [ "s390x" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -1577,13 +2134,16 @@ ] }, "node_modules/@unrs/resolver-binding-linux-x64-gnu": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.11.1.tgz", - "integrity": "sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.12.2.tgz", + "integrity": "sha512-mPsUhunKKDih5O96Y6enDQyHc1SqBPlY1E/SfMWDM3EdJ95Z9CArPeCVwCCqbP45ljvivdEk8Fxn+SIb1rDAJQ==", "cpu": [ "x64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -1591,23 +2151,40 @@ ] }, "node_modules/@unrs/resolver-binding-linux-x64-musl": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.11.1.tgz", - "integrity": "sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.12.2.tgz", + "integrity": "sha512-azrt6+5ydLd8Vt210AAFis/lZevSfPw93EJRIJG+xPu4WCJ8K0kppCTpMyLPcKT7H15M4Jnt2tMp5bOvCkRC6A==", "cpu": [ "x64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ "linux" ] }, + "node_modules/@unrs/resolver-binding-openharmony-arm64": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-openharmony-arm64/-/resolver-binding-openharmony-arm64-1.12.2.tgz", + "integrity": "sha512-YZ9hP4O0X9PQb8eO980qmLNGH4zT3I9+SZTdt0Pr0YyuGQhYKoOZkV02VzrzyOZJ5xIJ3UFIenKkUkGg8GjgWQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, "node_modules/@unrs/resolver-binding-wasm32-wasi": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.11.1.tgz", - "integrity": "sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.12.2.tgz", + "integrity": "sha512-tYFDIkMxSflfEc/h92ZWNsZlHSwgimbNHSO3PL2JWQHfCuC2q316jMyYU9TIWZsFK2bQwyK5VAdYgn8ygPj69A==", "cpu": [ "wasm32" ], @@ -1615,16 +2192,18 @@ "license": "MIT", "optional": true, "dependencies": { - "@napi-rs/wasm-runtime": "^0.2.11" + "@emnapi/core": "1.10.0", + "@emnapi/runtime": "1.10.0", + "@napi-rs/wasm-runtime": "^1.1.4" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@unrs/resolver-binding-win32-arm64-msvc": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.11.1.tgz", - "integrity": "sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.12.2.tgz", + "integrity": "sha512-qzNyg3xL0VPQmCaUh+N5jSitce6k+uCBfMDesWRnlULOZaqUkaJ0ybdT+UqlAWJoQjuqfIU/0Ptx9bteN4D82g==", "cpu": [ "arm64" ], @@ -1636,9 +2215,9 @@ ] }, "node_modules/@unrs/resolver-binding-win32-ia32-msvc": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.11.1.tgz", - "integrity": "sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.12.2.tgz", + "integrity": "sha512-WD9sY00OfpHVGfsnHZoA8jVT+esS/Bg8z8jzxp5BnDCjjwsuKsPQrzswwpFy4J1AUJbXPRfkpcX0mXrzeXW79g==", "cpu": [ "ia32" ], @@ -1650,9 +2229,9 @@ ] }, "node_modules/@unrs/resolver-binding-win32-x64-msvc": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.11.1.tgz", - "integrity": "sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.12.2.tgz", + "integrity": "sha512-nAB74NfSNKknqQ1RrYj6uz8FcXEomu/MATJZxh/x+BArzN2U3JbOYC0APYzUIGhVY3m5hRxA8VPNdPBoG8txlA==", "cpu": [ "x64" ], @@ -1664,9 +2243,9 @@ ] }, "node_modules/acorn": { - "version": "8.15.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", - "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "version": "8.19.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.19.0.tgz", + "integrity": "sha512-oJlA3XiRm7Cyk6qFD2Jn8ak9B7jSy0qy00ADO3+8dpT0LSjFihQYv4C02LFCSYJV3Q37xYwwRy5m+IpIiUzqWw==", "dev": true, "license": "MIT", "bin": { @@ -1677,9 +2256,9 @@ } }, "node_modules/acorn-walk": { - "version": "8.3.4", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", - "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", + "version": "8.3.5", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.5.tgz", + "integrity": "sha512-HEHNfbars9v4pgpW6SO1KSPkfoS0xVOM/9UzkJltjlsHZmJasxg8aXkuZa7SMf8vKGIBhpUsPluQSqhJFCqebw==", "dev": true, "license": "MIT", "dependencies": { @@ -1689,6 +2268,38 @@ "node": ">=0.4.0" } }, + "node_modules/ajv": { + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz", + "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==", + "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" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "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==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "ajv": "^8.5.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, "node_modules/ansi-escapes": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", @@ -1706,16 +2317,13 @@ } }, "node_modules/ansi-regex": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", - "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "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": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" + "node": ">=8" } }, "node_modules/ansi-styles": { @@ -1748,6 +2356,19 @@ "node": ">= 8" } }, + "node_modules/anymatch/node_modules/picomatch": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/arg": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", @@ -1766,16 +2387,16 @@ } }, "node_modules/babel-jest": { - "version": "30.1.2", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-30.1.2.tgz", - "integrity": "sha512-IQCus1rt9kaSh7PQxLYRY5NmkNrNlU2TpabzwV7T2jljnpdHOcmnYYv8QmE04Li4S3a2Lj8/yXyET5pBarPr6g==", + "version": "30.5.2", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-30.5.2.tgz", + "integrity": "sha512-ES8WeJ2fNWPEDunyAtUfJ12nHyaWUloCHdkfK2oW5uSoQSUmjNKdWiGaXJITJwvFEWoD/evHEg/QoCXAvLaQqQ==", "dev": true, "license": "MIT", "dependencies": { - "@jest/transform": "30.1.2", + "@jest/transform": "30.5.2", "@types/babel__core": "^7.20.5", - "babel-plugin-istanbul": "^7.0.0", - "babel-preset-jest": "30.0.1", + "babel-plugin-istanbul": "^8.0.0", + "babel-preset-jest": "30.5.0", "chalk": "^4.1.2", "graceful-fs": "^4.2.11", "slash": "^3.0.0" @@ -1784,13 +2405,13 @@ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" }, "peerDependencies": { - "@babel/core": "^7.11.0" + "@babel/core": "^7.11.0 || ^8.0.0-0" } }, "node_modules/babel-plugin-istanbul": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-7.0.1.tgz", - "integrity": "sha512-D8Z6Qm8jCvVXtIRkBnqNHX0zJ37rQcFJ9u8WOS6tkYOsRdHBzypCstaxWiu5ZIlqQtviRYbgnRLSoCEvjqcqbA==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-8.0.0.tgz", + "integrity": "sha512-18wCskrN3DgbuBmp1gr7LBGT8xdz5xhQQqFvFhVxbkl8VBCrMKQ2YtqBWtUal1Zrc1HTuX0011+Brjw78TCFkg==", "dev": true, "license": "BSD-3-Clause", "workspaces": [ @@ -1801,21 +2422,19 @@ "@istanbuljs/load-nyc-config": "^1.0.0", "@istanbuljs/schema": "^0.1.3", "istanbul-lib-instrument": "^6.0.2", - "test-exclude": "^6.0.0" + "test-exclude": "^7.0.1" }, "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/babel-plugin-jest-hoist": { - "version": "30.0.1", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-30.0.1.tgz", - "integrity": "sha512-zTPME3pI50NsFW8ZBaVIOeAxzEY7XHlmWeXXu9srI+9kNfzCUTy8MFan46xOGZY8NZThMqq+e3qZUKsvXbasnQ==", + "version": "30.5.0", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-30.5.0.tgz", + "integrity": "sha512-gtGo1B+u14jrZQv6TdSWIWkTqclboo7Qn+dFAGUOIuXLFuJKAdg3U5MIWzZnW4vfUb4dX9skmAMiby86e/SF4A==", "dev": true, "license": "MIT", "dependencies": { - "@babel/template": "^7.27.2", - "@babel/types": "^7.27.3", "@types/babel__core": "^7.20.5" }, "engines": { @@ -1850,72 +2469,68 @@ } }, "node_modules/babel-preset-jest": { - "version": "30.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-30.0.1.tgz", - "integrity": "sha512-+YHejD5iTWI46cZmcc/YtX4gaKBtdqCHCVfuVinizVpbmyjO3zYmeuyFdfA8duRqQZfgCAMlsfmkVbJ+e2MAJw==", + "version": "30.5.0", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-30.5.0.tgz", + "integrity": "sha512-ZGPn5ClP4lBDpuOK8W1yQIOy359HmbnZv3suucAlIe+SEE9yDsxV4S2PjSbH2Vc97U+WmzYD7vw3kr8NsQ/i6w==", "dev": true, "license": "MIT", "dependencies": { - "babel-plugin-jest-hoist": "30.0.1", - "babel-preset-current-node-syntax": "^1.1.0" + "babel-plugin-jest-hoist": "30.5.0", + "babel-preset-current-node-syntax": "^1.2.0" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" }, "peerDependencies": { - "@babel/core": "^7.11.0" + "@babel/core": "^7.11.0 || ^8.0.0-beta.1 || ^8.0.0" } }, "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==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" + } }, "node_modules/baseline-browser-mapping": { - "version": "2.8.6", - "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.6.tgz", - "integrity": "sha512-wrH5NNqren/QMtKUEEJf7z86YjfqW/2uw3IL3/xpqZUC95SSVIFXYQeeGjL6FT/X68IROu6RMehZQS5foy2BXw==", + "version": "2.11.29", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.11.29.tgz", + "integrity": "sha512-YeesxhUmR4h5y5V8KF8iBCqJb8YFrBJ++XBTeGcWIaQOYXGN19JM0FoiOjAhwuDoln8owMgXcWBmgHtYSkky2w==", "dev": true, "license": "Apache-2.0", "bin": { - "baseline-browser-mapping": "dist/cli.js" + "baseline-browser-mapping": "dist/cli.cjs" + }, + "engines": { + "node": ">=6.0.0" } }, "node_modules/bowser": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.12.1.tgz", - "integrity": "sha512-z4rE2Gxh7tvshQ4hluIT7XcFrgLIQaw9X3A+kTTRdovCz5PMukm/0QC/BKSYPj3omF5Qfypn9O/c5kgpmvYUCw==", + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.14.1.tgz", + "integrity": "sha512-tzPjzCxygAKWFOJP011oxFHs57HzIhOEracIgAePE4pqB3LikALKnSzUyU4MGs9/iCEUuHlAJTjTc5M+u7YEGg==", "license": "MIT" }, "node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "version": "5.0.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.12.tgz", + "integrity": "sha512-YovQ3rzhaLMIrDjNDMkNS01tea93qhEhG5xy8f6+R0l+dw3Ki+5sCoIoI942iuLZTHWogWktgwVDhU09iNEimQ==", "dev": true, "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "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": { - "fill-range": "^7.1.1" + "balanced-match": "^4.0.2" }, "engines": { - "node": ">=8" + "node": "20 || >=22" } }, "node_modules/browserslist": { - "version": "4.26.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.26.2.tgz", - "integrity": "sha512-ECFzp6uFOSB+dcZ5BK/IBaGWssbSYBHvuMeMt3MMFyhI0Z8SqGgEkBLARgpRH3hutIgPVsALcMwbDrJqPxQ65A==", + "version": "4.29.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.29.3.tgz", + "integrity": "sha512-1R4kiYKXGViqEN0CnoDrXc1StD9niAwu+j2dukWzrD4bJgsD4lDmEp0CRbc6E/vYJIfTHwPmwyaKtVSudICdPA==", "dev": true, "funding": [ { @@ -1933,11 +2548,11 @@ ], "license": "MIT", "dependencies": { - "baseline-browser-mapping": "^2.8.3", - "caniuse-lite": "^1.0.30001741", - "electron-to-chromium": "^1.5.218", - "node-releases": "^2.0.21", - "update-browserslist-db": "^1.1.3" + "baseline-browser-mapping": "^2.11.26", + "caniuse-lite": "^1.0.30001813", + "electron-to-chromium": "^1.5.439", + "node-releases": "^2.0.57", + "update-browserslist-db": "^1.3.3" }, "bin": { "browserslist": "cli.js" @@ -1960,44 +2575,37 @@ } }, "node_modules/bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.2.tgz", + "integrity": "sha512-V2o8YS2EhrKMO9AumnkK0ynynfFlsajpYupwq7S46H5mhcanwxDkNTw3K67wPIcKTH1ffkA4vhMOtAc7gRmPZw==", "dev": true, - "license": "Apache-2.0", + "license": "MIT", "dependencies": { "node-int64": "^0.4.0" } }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true, - "license": "MIT" - }, "node_modules/c12": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/c12/-/c12-3.3.0.tgz", - "integrity": "sha512-K9ZkuyeJQeqLEyqldbYLG3wjqwpw4BVaAqvmxq3GYKK0b1A/yYQdIcJxkzAOWcNVWhJpRXAPfZFueekiY/L8Dw==", + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/c12/-/c12-3.3.4.tgz", + "integrity": "sha512-cM0ApFQSBXuourJejzwv/AuPRvAxordTyParRVcHjjtXirtkzM0uK2L9TTn9s0cXZbG7E55jCivRQzoxYmRAlA==", "dev": true, "license": "MIT", "dependencies": { - "chokidar": "^4.0.3", - "confbox": "^0.2.2", - "defu": "^6.1.4", - "dotenv": "^17.2.2", - "exsolve": "^1.0.7", - "giget": "^2.0.0", - "jiti": "^2.5.1", + "chokidar": "^5.0.0", + "confbox": "^0.2.4", + "defu": "^6.1.6", + "dotenv": "^17.3.1", + "exsolve": "^1.0.8", + "giget": "^3.2.0", + "jiti": "^2.6.1", "ohash": "^2.0.11", "pathe": "^2.0.3", - "perfect-debounce": "^2.0.0", + "perfect-debounce": "^2.1.0", "pkg-types": "^2.3.0", - "rc9": "^2.1.2" + "rc9": "^3.0.1" }, "peerDependencies": { - "magicast": "^0.3.5" + "magicast": "*" }, "peerDependenciesMeta": { "magicast": { @@ -2033,9 +2641,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001743", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001743.tgz", - "integrity": "sha512-e6Ojr7RV14Un7dz6ASD0aZDmQPT/A+eZU+nuTNfjqmRrmkmQlnTNWH0SKmqagx9PeW87UVqapSurtAXifmtdmw==", + "version": "1.0.30001816", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001816.tgz", + "integrity": "sha512-+8Yx7BXCoqk6IF8yTicjfUR6D/ldJzdlsodlEOiOSPmhK844WIgk67/zIQaGAOxNkZyyvBlrRFnLvqKIoqbAFw==", "dev": true, "funding": [ { @@ -2081,25 +2689,25 @@ } }, "node_modules/chokidar": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", - "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-5.0.0.tgz", + "integrity": "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==", "dev": true, "license": "MIT", "dependencies": { - "readdirp": "^4.0.1" + "readdirp": "^5.0.0" }, "engines": { - "node": ">= 14.16.0" + "node": ">= 20.19.0" }, "funding": { "url": "https://paulmillr.com/funding/" } }, "node_modules/ci-info": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.3.0.tgz", - "integrity": "sha512-l+2bNRMiQgcfILUi33labAZYIWlH1kWDp+ecNo5iisRKrbm0xcRyCww71/YU0Fkw0mAFpz9bJayXPjey6vkmaQ==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.4.0.tgz", + "integrity": "sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==", "dev": true, "funding": [ { @@ -2113,22 +2721,32 @@ } }, "node_modules/citty": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/citty/-/citty-0.1.6.tgz", - "integrity": "sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==", + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/citty/-/citty-0.2.2.tgz", + "integrity": "sha512-+6vJA3L98yv+IdfKGZHBNiGW5KHn22e/JwID0Strsz8h4S/csAu/OuICwxrg44k5MRiZHWIo8XXuJgQTriRP4w==", "dev": true, - "license": "MIT", - "dependencies": { - "consola": "^3.2.3" - } + "license": "MIT" }, "node_modules/cjs-module-lexer": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-2.1.0.tgz", - "integrity": "sha512-UX0OwmYRYQQetfrLEZeewIFFI+wSTofC+pMBLNuH3RUuu/xzG1oz84UCEDOSoQlN3fZ4+AzmV50ZYvGqkMh9yA==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-2.3.0.tgz", + "integrity": "sha512-lmNyBzi6iYiqyrExTctfmjd8tInx+dHu9PBomTfH5RXS53c27JMFJgzNv5TyAnm3PgGf+MLy0+Ws41/HlVxdKQ==", "dev": true, "license": "MIT" }, + "node_modules/class-variance-authority": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.1.tgz", + "integrity": "sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "clsx": "^2.1.1" + }, + "funding": { + "url": "https://polar.sh/cva" + } + }, "node_modules/cliui": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", @@ -2144,67 +2762,14 @@ "node": ">=12" } }, - "node_modules/cliui/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": { - "node": ">=8" - } - }, - "node_modules/cliui/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, - "license": "MIT" - }, - "node_modules/cliui/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", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui/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": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui/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==", + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", "dev": true, "license": "MIT", - "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": ">=6" } }, "node_modules/co": { @@ -2219,9 +2784,9 @@ } }, "node_modules/collect-v8-coverage": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", - "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.3.tgz", + "integrity": "sha512-1L5aqIkwPfiodaMgQunkF1zRhNqifHBmtbbbxcr6yVxxBnliw4TDOW6NxpO8DJLgJ16OT+Y4ztZqP6p/FtXnAw==", "dev": true, "license": "MIT" }, @@ -2245,17 +2810,10 @@ "dev": true, "license": "MIT" }, - "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.2.2", - "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.2.2.tgz", - "integrity": "sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==", + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.2.4.tgz", + "integrity": "sha512-ysOGlgTFbN2/Y6Cg3Iye8YKulHw+R2fNXHrgSmXISQdMnomY6eNDprVdW9R5xBguEqI954+S6709UyiO7B+6OQ==", "dev": true, "license": "MIT" }, @@ -2298,6 +2856,13 @@ "node": ">= 8" } }, + "node_modules/dayjs": { + "version": "1.11.23", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.23.tgz", + "integrity": "sha512-QDTCU0M0MxR3hQfnlDJfwekQiaanm1ubOD231u73WBckQ/fsamwRLiE2GBz6D3a/xF1NgfiDLJjXBa1hYOYTtQ==", + "dev": true, + "license": "MIT" + }, "node_modules/debug": { "version": "4.4.3", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", @@ -2317,9 +2882,9 @@ } }, "node_modules/dedent": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.7.0.tgz", - "integrity": "sha512-HGFtf8yhuhGhqO07SV79tRp+br4MnbdjeVxotpn1QBl30pcLLCQjX5b2295ll0fv8RKDKsmWYrl05usHM9CewQ==", + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.7.2.tgz", + "integrity": "sha512-WzMx3mW98SN+zn3hgemf4OzdmyNhhhKz5Ay0pUfQiMQ3e1g+xmTJWp/pKdwKVXhdSkAEGIIzqeuWrL3mV/AXbA==", "dev": true, "license": "MIT", "peerDependencies": { @@ -2342,9 +2907,9 @@ } }, "node_modules/defu": { - "version": "6.1.4", - "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.4.tgz", - "integrity": "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==", + "version": "6.1.7", + "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.7.tgz", + "integrity": "sha512-7z22QmUWiQ/2d0KkdYmANbRUVABpZ9SNYyH5vx6PZ+nE5bcC0l7uFvEfHlyld/HcGBFTL536ClDt3DEcSlEJAQ==", "dev": true, "license": "MIT" }, @@ -2364,6 +2929,16 @@ "dev": true, "license": "MIT" }, + "node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, "node_modules/detect-newline": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", @@ -2375,19 +2950,29 @@ } }, "node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.4.tgz", + "integrity": "sha512-X07nttJQkwkfKfvTPG/KSnE2OMdcUCao6+eXF3wmnIQRn2aPAHH3VxDbDOdegkd6JbPsXqShpvEOHfAT+nCNwQ==", "dev": true, "license": "BSD-3-Clause", "engines": { "node": ">=0.3.1" } }, + "node_modules/dompurify": { + "version": "3.4.17", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.4.17.tgz", + "integrity": "sha512-B/pSlYVHQ58kqISD/yDjuJ1yfzI34m1gF4lAod2bwSRhiN4K5Cl3H8Af7hqB2PmTL911tdEudnnXn5FnhRoz0w==", + "dev": true, + "license": "(MPL-2.0 OR Apache-2.0)", + "optionalDependencies": { + "@types/trusted-types": "^2.0.7" + } + }, "node_modules/dotenv": { - "version": "17.2.2", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.2.2.tgz", - "integrity": "sha512-Sf2LSQP+bOlhKWWyhFsn0UsfdK/kCWRv1iuA2gXAwt3dyNabr6QSj00I2V10pidqz69soatm9ZwZvpQMTIOd5Q==", + "version": "17.4.2", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.4.2.tgz", + "integrity": "sha512-nI4U3TottKAcAD9LLud4Cb7b2QztQMUEfHbvhTH09bqXTxnSie8WnjPALV/WMCrJZ6UV/qHJ6L03OqO3LcdYZw==", "dev": true, "license": "BSD-2-Clause", "engines": { @@ -2405,9 +2990,9 @@ "license": "MIT" }, "node_modules/electron-to-chromium": { - "version": "1.5.223", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.223.tgz", - "integrity": "sha512-qKm55ic6nbEmagFlTFczML33rF90aU+WtrJ9MdTCThrcvDNdUHN4p6QfVN78U06ZmguqXIyMPyYhw2TrbDUwPQ==", + "version": "1.5.457", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.457.tgz", + "integrity": "sha512-RNKsgErRmkzRgC8nOV1wzFhSbfGlYJ6k4LT/aE7oFrDYaQgHhTh5oTp0ZgSbRRybKR8HlZIdCWc38Y+CDTk1Jw==", "dev": true, "license": "ISC" }, @@ -2425,9 +3010,9 @@ } }, "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==", + "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, "license": "MIT" }, @@ -2441,6 +3026,26 @@ "is-arrayish": "^0.2.1" } }, + "node_modules/es-module-lexer": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.3.2.tgz", + "integrity": "sha512-poHGpORABojJJucnV9KbOavETW8lBVnphkW77ER5/BQ5Fz7oXSoCNek7IH3vR5nRjdsEz926ibFYX8KtLQmdyw==", + "dev": true, + "license": "MIT" + }, + "node_modules/es-toolkit": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/es-toolkit/-/es-toolkit-1.52.0.tgz", + "integrity": "sha512-XTNEJQh1tY1ZJVcf6ayP/2n4ZPyaHlW2FWs7xvw5ddPuhUVjLD3olQVQS7kf58JbAB48iL0uL/jerTrjtV3lDA==", + "dev": true, + "license": "MIT", + "workspaces": [ + "docs", + "benchmarks", + "tests/types", + "tests/browser-compat" + ] + }, "node_modules/es6-promise": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz", @@ -2483,16 +3088,16 @@ } }, "node_modules/eta": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/eta/-/eta-4.0.1.tgz", - "integrity": "sha512-0h0oBEsF6qAJU7eu9ztvJoTo8D2PAq/4FvXVIQA1fek3WOTe6KPsVJycekG1+g1N6mfpblkheoGwaUhMtnlH4A==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/eta/-/eta-3.5.0.tgz", + "integrity": "sha512-e3x3FBvGzeCIHhF+zhK8FZA2vC5uFn6b4HJjegUbIWrDb4mJ7JjTGMJY9VGIbRVpmSwHopNiaJibhjIr+HfLug==", "dev": true, "license": "MIT", "engines": { - "node": ">=20" + "node": ">=6.0.0" }, "funding": { - "url": "https://github.com/bgub/eta?sponsor=1" + "url": "https://github.com/eta-dev/eta?sponsor=1" } }, "node_modules/events": { @@ -2528,13 +3133,6 @@ "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/execa/node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true, - "license": "ISC" - }, "node_modules/exit-x": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/exit-x/-/exit-x-0.2.2.tgz", @@ -2546,27 +3144,34 @@ } }, "node_modules/expect": { - "version": "30.1.2", - "resolved": "https://registry.npmjs.org/expect/-/expect-30.1.2.tgz", - "integrity": "sha512-xvHszRavo28ejws8FpemjhwswGj4w/BetHIL8cU49u4sGyXDw2+p3YbeDbj6xzlxi6kWTjIRSTJ+9sNXPnF0Zg==", + "version": "30.5.2", + "resolved": "https://registry.npmjs.org/expect/-/expect-30.5.2.tgz", + "integrity": "sha512-0LNuMvs8/5mRYhnCR4k+lGV7fqPMs6Bnksda4S3zsCUmdxBpAn4zU4NNzXdq1pMKe/H4W5t/zVIDSJ/H3e0vDA==", "dev": true, "license": "MIT", "dependencies": { - "@jest/expect-utils": "30.1.2", - "@jest/get-type": "30.1.0", - "jest-matcher-utils": "30.1.2", - "jest-message-util": "30.1.0", - "jest-mock": "30.0.5", - "jest-util": "30.0.5" + "@jest/expect-utils": "30.5.2", + "@jest/get-type": "30.5.0", + "jest-matcher-utils": "30.5.2", + "jest-message-util": "30.5.1", + "jest-mock": "30.5.2", + "jest-util": "30.5.1" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/exsolve": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/exsolve/-/exsolve-1.0.7.tgz", - "integrity": "sha512-VO5fQUzZtI6C+vx4w/4BWJpg3s/5l+6pRQEHzFRM8WFi4XffSP1Z+4qi7GbjWbvRQEbdIco5mIMq+zX4rPuLrw==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/exsolve/-/exsolve-1.1.3.tgz", + "integrity": "sha512-kuzL9zherLQoqDeQaS55AiiIg1kb4KYXaSusTtgZTPlvKP2gGCI82LNmBNh5RjDVUXIcmgx+/Mx7vPwRzBbhJA==", + "dev": true, + "license": "MIT" + }, + "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" }, @@ -2584,27 +3189,49 @@ "dev": true, "license": "MIT" }, + "node_modules/fast-uri": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.8.tgz", + "integrity": "sha512-GZMtZUTNRpOVIECoXwLNZS5xUGE+mVNbTB8h/7Rwh2TFWcBQiPzTgyZi05BF9UMZKkLJv8XBRJTlU7zg8+ZfMg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, "node_modules/fb-watchman": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", - "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.4.tgz", + "integrity": "sha512-tGQtaoYisPDriJBN0mT5yZSyNETnJGA1gTYxaVRAE5KUO3LI9kPUc9WIu8JXcxaIci+faIKlzXqXyPgrmubtBQ==", "dev": true, - "license": "Apache-2.0", + "license": "MIT", "dependencies": { - "bser": "2.1.1" + "bser": "2.1.2" } }, - "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==", + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", "dev": true, "license": "MIT", - "dependencies": { - "to-regex-range": "^5.0.1" - }, "engines": { - "node": ">=8" + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } } }, "node_modules/find-up": { @@ -2638,26 +3265,17 @@ "url": "https://github.com/sponsors/isaacs" } }, - "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, - "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==", + "node_modules/foreground-child/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, - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], + "license": "ISC", "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/gensync": { @@ -2704,39 +3322,28 @@ } }, "node_modules/giget": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/giget/-/giget-2.0.0.tgz", - "integrity": "sha512-L5bGsVkxJbJgdnwyuheIunkGatUF/zssUoxxjACCseZYAVbaqdh9Tsmmlkl8vYan09H7sbvKt4pS8GqKLBrEzA==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/giget/-/giget-3.3.1.tgz", + "integrity": "sha512-r+mvuDjrjMpsdw46Kmeydb8bdHm7wOKw8wNBtTndkjbPjgAp5oUJUxRE76wZFknxIPokfWvep2qSXK37aXE6zg==", "dev": true, - "license": "MIT", - "dependencies": { - "citty": "^0.1.6", - "consola": "^3.4.0", - "defu": "^6.1.4", - "node-fetch-native": "^1.6.6", - "nypm": "^0.6.0", - "pathe": "^2.0.3" - }, + "license": "MIT", "bin": { "giget": "dist/cli.mjs" } }, "node_modules/glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "version": "13.0.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.6.tgz", + "integrity": "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==", "dev": true, - "license": "ISC", + "license": "BlueOak-1.0.0", "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" + "minimatch": "^10.2.2", + "minipass": "^7.1.3", + "path-scurry": "^2.0.2" }, - "bin": { - "glob": "dist/esm/bin.mjs" + "engines": { + "node": "18 || 20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -2750,13 +3357,13 @@ "license": "ISC" }, "node_modules/handlebars": { - "version": "4.7.8", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", - "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", + "version": "4.7.10", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.10.tgz", + "integrity": "sha512-P5VJMVM7qgBn6vjXMw8WG9uVI+ncf2pi72j4de4yz5ZULLj2RGqLYaKOYGsgyrViQ0tePOVlN1tDCCXXtFqXKg==", "dev": true, "license": "MIT", "dependencies": { - "minimist": "^1.2.5", + "minimist": "^1.2.8", "neo-async": "^2.6.2", "source-map": "^0.6.1", "wordwrap": "^1.0.0" @@ -2835,25 +3442,6 @@ "node": ">=0.8.19" } }, - "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" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true, - "license": "ISC" - }, "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", @@ -2861,6 +3449,16 @@ "dev": true, "license": "MIT" }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "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", @@ -2881,14 +3479,17 @@ "node": ">=6" } }, - "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==", + "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": { + "is-extglob": "^2.1.1" + }, "engines": { - "node": ">=0.12.0" + "node": ">=0.10.0" } }, "node_modules/is-stream": { @@ -2939,9 +3540,9 @@ } }, "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "7.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", - "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "version": "7.8.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", + "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", "dev": true, "license": "ISC", "bin": { @@ -3012,16 +3613,16 @@ } }, "node_modules/jest": { - "version": "30.1.3", - "resolved": "https://registry.npmjs.org/jest/-/jest-30.1.3.tgz", - "integrity": "sha512-Ry+p2+NLk6u8Agh5yVqELfUJvRfV51hhVBRIB5yZPY7mU0DGBmOuFG5GebZbMbm86cdQNK0fhJuDX8/1YorISQ==", + "version": "30.5.2", + "resolved": "https://registry.npmjs.org/jest/-/jest-30.5.2.tgz", + "integrity": "sha512-3gnpdBIza8ijCl3iMV9ChE3hSt1+46865qqod863gQtJr1DixOkAU5DoGbi3u+XlRcw++BhZQMu/y4xBdHBvSQ==", "dev": true, "license": "MIT", "dependencies": { - "@jest/core": "30.1.3", - "@jest/types": "30.0.5", + "@jest/core": "30.5.2", + "@jest/types": "30.5.1", "import-local": "^3.2.0", - "jest-cli": "30.1.3" + "jest-cli": "30.5.2" }, "bin": { "jest": "bin/jest.js" @@ -3039,14 +3640,14 @@ } }, "node_modules/jest-changed-files": { - "version": "30.0.5", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-30.0.5.tgz", - "integrity": "sha512-bGl2Ntdx0eAwXuGpdLdVYVr5YQHnSZlQ0y9HVDu565lCUAe9sj6JOtBbMmBBikGIegne9piDDIOeiLVoqTkz4A==", + "version": "30.5.1", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-30.5.1.tgz", + "integrity": "sha512-0+bvMM/ENhDI29Z8q1r4HxiDIi4G5tnBmSw4esfPQoj9q8Nik7KIyuxHkTVnnniJQf05SxpGaKDQ+4h28ynGPg==", "dev": true, "license": "MIT", "dependencies": { "execa": "^5.1.1", - "jest-util": "30.0.5", + "jest-util": "30.5.1", "p-limit": "^3.1.0" }, "engines": { @@ -3054,29 +3655,29 @@ } }, "node_modules/jest-circus": { - "version": "30.1.3", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-30.1.3.tgz", - "integrity": "sha512-Yf3dnhRON2GJT4RYzM89t/EXIWNxKTpWTL9BfF3+geFetWP4XSvJjiU1vrWplOiUkmq8cHLiwuhz+XuUp9DscA==", + "version": "30.5.2", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-30.5.2.tgz", + "integrity": "sha512-vffFgjs5JSJ9q4ds1vNW3klKYPJfYfIY61LT/zaZgvTeASJOWZUt8LBfHgIcV4rwxlPBLl/ePBGccHEclS4PlQ==", "dev": true, "license": "MIT", "dependencies": { - "@jest/environment": "30.1.2", - "@jest/expect": "30.1.2", - "@jest/test-result": "30.1.3", - "@jest/types": "30.0.5", + "@jest/environment": "30.5.2", + "@jest/expect": "30.5.2", + "@jest/test-result": "30.5.2", + "@jest/types": "30.5.1", "@types/node": "*", "chalk": "^4.1.2", "co": "^4.6.0", "dedent": "^1.6.0", "is-generator-fn": "^2.1.0", - "jest-each": "30.1.0", - "jest-matcher-utils": "30.1.2", - "jest-message-util": "30.1.0", - "jest-runtime": "30.1.3", - "jest-snapshot": "30.1.2", - "jest-util": "30.0.5", + "jest-each": "30.5.2", + "jest-matcher-utils": "30.5.2", + "jest-message-util": "30.5.1", + "jest-runtime": "30.5.2", + "jest-snapshot": "30.5.2", + "jest-util": "30.5.1", "p-limit": "^3.1.0", - "pretty-format": "30.0.5", + "pretty-format": "30.5.1", "pure-rand": "^7.0.0", "slash": "^3.0.0", "stack-utils": "^2.0.6" @@ -3086,21 +3687,21 @@ } }, "node_modules/jest-cli": { - "version": "30.1.3", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-30.1.3.tgz", - "integrity": "sha512-G8E2Ol3OKch1DEeIBl41NP7OiC6LBhfg25Btv+idcusmoUSpqUkbrneMqbW9lVpI/rCKb/uETidb7DNteheuAQ==", + "version": "30.5.2", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-30.5.2.tgz", + "integrity": "sha512-YYYxUUVjFgPvgEleKNKMaYGIFgR3l3832Cl0kRL/oCiDZ03v7wImUtquHl2OOBCCNgprjZgBN5bczS/JklPBDg==", "dev": true, "license": "MIT", "dependencies": { - "@jest/core": "30.1.3", - "@jest/test-result": "30.1.3", - "@jest/types": "30.0.5", + "@jest/core": "30.5.2", + "@jest/test-result": "30.5.2", + "@jest/types": "30.5.1", "chalk": "^4.1.2", "exit-x": "^0.2.2", "import-local": "^3.2.0", - "jest-config": "30.1.3", - "jest-util": "30.0.5", - "jest-validate": "30.1.0", + "jest-config": "30.5.2", + "jest-util": "30.5.1", + "jest-validate": "30.5.1", "yargs": "^17.7.2" }, "bin": { @@ -3119,34 +3720,33 @@ } }, "node_modules/jest-config": { - "version": "30.1.3", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-30.1.3.tgz", - "integrity": "sha512-M/f7gqdQEPgZNA181Myz+GXCe8jXcJsGjCMXUzRj22FIXsZOyHNte84e0exntOvdPaeh9tA0w+B8qlP2fAezfw==", + "version": "30.5.2", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-30.5.2.tgz", + "integrity": "sha512-U6221OZekabePvGcGPf4raIBKMvYQWFHvhobDJRojOYaFMj2HaGytAdknjDhYc6JTz2fdHW9+6k0wWUDaNeOFQ==", "dev": true, "license": "MIT", "dependencies": { "@babel/core": "^7.27.4", - "@jest/get-type": "30.1.0", - "@jest/pattern": "30.0.1", - "@jest/test-sequencer": "30.1.3", - "@jest/types": "30.0.5", - "babel-jest": "30.1.2", + "@jest/get-type": "30.5.0", + "@jest/pattern": "30.5.0", + "@jest/test-sequencer": "30.5.2", + "@jest/types": "30.5.1", + "babel-jest": "30.5.2", "chalk": "^4.1.2", "ci-info": "^4.2.0", "deepmerge": "^4.3.1", - "glob": "^10.3.10", + "glob": "^13.0.6", "graceful-fs": "^4.2.11", - "jest-circus": "30.1.3", - "jest-docblock": "30.0.1", - "jest-environment-node": "30.1.2", - "jest-regex-util": "30.0.1", - "jest-resolve": "30.1.3", - "jest-runner": "30.1.3", - "jest-util": "30.0.5", - "jest-validate": "30.1.0", - "micromatch": "^4.0.8", + "jest-circus": "30.5.2", + "jest-docblock": "30.5.0", + "jest-environment-node": "30.5.2", + "jest-regex-util": "30.5.0", + "jest-resolve": "30.5.1", + "jest-runner": "30.5.2", + "jest-util": "30.5.1", + "jest-validate": "30.5.1", "parse-json": "^5.2.0", - "pretty-format": "30.0.5", + "pretty-format": "30.5.1", "slash": "^3.0.0", "strip-json-comments": "^3.1.1" }, @@ -3171,25 +3771,25 @@ } }, "node_modules/jest-diff": { - "version": "30.1.2", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-30.1.2.tgz", - "integrity": "sha512-4+prq+9J61mOVXCa4Qp8ZjavdxzrWQXrI80GNxP8f4tkI2syPuPrJgdRPZRrfUTRvIoUwcmNLbqEJy9W800+NQ==", + "version": "30.5.2", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-30.5.2.tgz", + "integrity": "sha512-rBtHnI6BWTiWj3lM7fOLVfChx7R9B0u9VV3PRHawKs79x6ZjW1QoSrKenaigNGWlvhtoi2BqvDbABDie+Os3xQ==", "dev": true, "license": "MIT", "dependencies": { - "@jest/diff-sequences": "30.0.1", - "@jest/get-type": "30.1.0", + "@jest/diff-sequences": "30.5.0", + "@jest/get-type": "30.5.0", "chalk": "^4.1.2", - "pretty-format": "30.0.5" + "pretty-format": "30.5.1" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-docblock": { - "version": "30.0.1", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-30.0.1.tgz", - "integrity": "sha512-/vF78qn3DYphAaIc3jy4gA7XSAz167n9Bm/wn/1XhTLW7tTBIzXtCJpb/vcmc73NIIeeohCbdL94JasyXUZsGA==", + "version": "30.5.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-30.5.0.tgz", + "integrity": "sha512-NwDqcxtoZi33RhuW+zJS/RVA3rmheQ8BnwpYZuc/Eruaz6seQb7+aoCeDZu/3X7W2XmD8DbSo9Pn72DbKsBFYw==", "dev": true, "license": "MIT", "dependencies": { @@ -3200,110 +3800,110 @@ } }, "node_modules/jest-each": { - "version": "30.1.0", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-30.1.0.tgz", - "integrity": "sha512-A+9FKzxPluqogNahpCv04UJvcZ9B3HamqpDNWNKDjtxVRYB8xbZLFuCr8JAJFpNp83CA0anGQFlpQna9Me+/tQ==", + "version": "30.5.2", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-30.5.2.tgz", + "integrity": "sha512-GRrW+7fmmgmkvyfEBqc1QFdWnF1Ex5yG6Y6AWL4TTxnkWlKIT98dsKh3P3UuWm6v4XsQwVE6DEzXIPMzWJ3ZbA==", "dev": true, "license": "MIT", "dependencies": { - "@jest/get-type": "30.1.0", - "@jest/types": "30.0.5", + "@jest/get-type": "30.5.0", + "@jest/types": "30.5.1", "chalk": "^4.1.2", - "jest-util": "30.0.5", - "pretty-format": "30.0.5" + "jest-regex-util": "30.5.0", + "jest-util": "30.5.1", + "pretty-format": "30.5.1" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-environment-node": { - "version": "30.1.2", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-30.1.2.tgz", - "integrity": "sha512-w8qBiXtqGWJ9xpJIA98M0EIoq079GOQRQUyse5qg1plShUCQ0Ek1VTTcczqKrn3f24TFAgFtT+4q3aOXvjbsuA==", + "version": "30.5.2", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-30.5.2.tgz", + "integrity": "sha512-Ciz4KgTGIbojxSKpuFImgWJj5EyqfE8xMq9NxWmOXnQywHHS03H9Mv+vaCB29J5pr3JBrY27WbRV18rBdjh8Dg==", "dev": true, "license": "MIT", "dependencies": { - "@jest/environment": "30.1.2", - "@jest/fake-timers": "30.1.2", - "@jest/types": "30.0.5", + "@jest/environment": "30.5.2", + "@jest/fake-timers": "30.5.2", + "@jest/types": "30.5.1", "@types/node": "*", - "jest-mock": "30.0.5", - "jest-util": "30.0.5", - "jest-validate": "30.1.0" + "jest-mock": "30.5.2", + "jest-util": "30.5.1", + "jest-validate": "30.5.1" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-haste-map": { - "version": "30.1.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-30.1.0.tgz", - "integrity": "sha512-JLeM84kNjpRkggcGpQLsV7B8W4LNUWz7oDNVnY1Vjj22b5/fAb3kk3htiD+4Na8bmJmjJR7rBtS2Rmq/NEcADg==", + "version": "30.5.1", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-30.5.1.tgz", + "integrity": "sha512-VIFgt67jW480YDxKfEv9IYQKrFpYt7bOCMn3VsnjK7AK9qo7p6acpnA1DHwsVOULE3dTaYew/6JaTD/d0VDHoQ==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "30.0.5", + "@jest/types": "30.5.1", + "@parcel/watcher": "^2.6.0", "@types/node": "*", "anymatch": "^3.1.3", "fb-watchman": "^2.0.2", + "fdir": "^6.5.0", "graceful-fs": "^4.2.11", - "jest-regex-util": "30.0.1", - "jest-util": "30.0.5", - "jest-worker": "30.1.0", - "micromatch": "^4.0.8", - "walker": "^1.0.8" + "jest-regex-util": "30.5.0", + "jest-util": "30.5.1", + "jest-worker": "30.5.1", + "picomatch": "^4.0.3" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.3" } }, "node_modules/jest-leak-detector": { - "version": "30.1.0", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-30.1.0.tgz", - "integrity": "sha512-AoFvJzwxK+4KohH60vRuHaqXfWmeBATFZpzpmzNmYTtmRMiyGPVhkXpBqxUQunw+dQB48bDf4NpUs6ivVbRv1g==", + "version": "30.5.1", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-30.5.1.tgz", + "integrity": "sha512-gt4GT2aWgEoCNTcBe4rqS74xTIUJxi+UD9SNSu9aOk5LmTEd6fS5KSTmAKAfitCCktQHNN+upUuL6EkBfFbMDQ==", "dev": true, "license": "MIT", "dependencies": { - "@jest/get-type": "30.1.0", - "pretty-format": "30.0.5" + "@jest/get-type": "30.5.0", + "pretty-format": "30.5.1" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-matcher-utils": { - "version": "30.1.2", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-30.1.2.tgz", - "integrity": "sha512-7ai16hy4rSbDjvPTuUhuV8nyPBd6EX34HkBsBcBX2lENCuAQ0qKCPb/+lt8OSWUa9WWmGYLy41PrEzkwRwoGZQ==", + "version": "30.5.2", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-30.5.2.tgz", + "integrity": "sha512-lFkB365PTIHOhPzwrb9T6gvlDnPpOZ7/c3ewOKKB7bzztqjVrtlyRL2MkyfJXpyY2u2SKw001JKrTx14fBUFcQ==", "dev": true, "license": "MIT", "dependencies": { - "@jest/get-type": "30.1.0", + "@jest/get-type": "30.5.0", "chalk": "^4.1.2", - "jest-diff": "30.1.2", - "pretty-format": "30.0.5" + "jest-diff": "30.5.2", + "pretty-format": "30.5.1" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-message-util": { - "version": "30.1.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-30.1.0.tgz", - "integrity": "sha512-HizKDGG98cYkWmaLUHChq4iN+oCENohQLb7Z5guBPumYs+/etonmNFlg1Ps6yN9LTPyZn+M+b/9BbnHx3WTMDg==", + "version": "30.5.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-30.5.1.tgz", + "integrity": "sha512-UdQlLdd9wL/Ys7xRErckqwD6wPlSZYueosSWuHc1r2ztGLwlgPvtSJq2+BPEgaEY13WLvfFbmhTj8pba0Sd1jg==", "dev": true, "license": "MIT", "dependencies": { "@babel/code-frame": "^7.27.1", - "@jest/types": "30.0.5", + "@jest/types": "30.5.1", "@types/stack-utils": "^2.0.3", "chalk": "^4.1.2", "graceful-fs": "^4.2.11", - "micromatch": "^4.0.8", - "pretty-format": "30.0.5", + "jest-util": "30.5.1", + "picomatch": "^4.0.3", + "pretty-format": "30.5.1", "slash": "^3.0.0", "stack-utils": "^2.0.6" }, @@ -3312,42 +3912,25 @@ } }, "node_modules/jest-mock": { - "version": "30.0.5", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-30.0.5.tgz", - "integrity": "sha512-Od7TyasAAQX/6S+QCbN6vZoWOMwlTtzzGuxJku1GhGanAjz9y+QsQkpScDmETvdc9aSXyJ/Op4rhpMYBWW91wQ==", + "version": "30.5.2", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-30.5.2.tgz", + "integrity": "sha512-KTHb37Fhj8xY8qPFvTFaFJHcdsumQp+ExsUlgoX232Agmc706gagBs53+CYvulV7MVQo9AgXOUxsqzzVBoJlrA==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "30.0.5", + "@jest/expect-utils": "30.5.2", + "@jest/types": "30.5.1", "@types/node": "*", - "jest-util": "30.0.5" + "jest-util": "30.5.1" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/jest-pnp-resolver": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", - "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "jest-resolve": "*" - }, - "peerDependenciesMeta": { - "jest-resolve": { - "optional": true - } - } - }, "node_modules/jest-regex-util": { - "version": "30.0.1", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-30.0.1.tgz", - "integrity": "sha512-jHEQgBXAgc+Gh4g0p3bCevgRCVRkB4VB70zhoAE48gxeSr1hfUOsM/C2WoJgVL7Eyg//hudYENbm3Ne+/dRVVA==", + "version": "30.5.0", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-30.5.0.tgz", + "integrity": "sha512-Mg0WK7A6xRHLSA1udJ8y9f3lM0uUhFTBnLKzwPmqB9AylvpleJ6BLemR8K9dK27DY+cesDryoA7yLZCAHsPG1A==", "dev": true, "license": "MIT", "engines": { @@ -3355,100 +3938,100 @@ } }, "node_modules/jest-resolve": { - "version": "30.1.3", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-30.1.3.tgz", - "integrity": "sha512-DI4PtTqzw9GwELFS41sdMK32Ajp3XZQ8iygeDMWkxlRhm7uUTOFSZFVZABFuxr0jvspn8MAYy54NxZCsuCTSOw==", + "version": "30.5.1", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-30.5.1.tgz", + "integrity": "sha512-wprhLejRtwN6h8ZgaqC0eYjGJ1uMdGPT/+b3eFncbG4NWuuP9QL+vWwRinu9waw7hkOLcpMJGVJAMgBwsPssMQ==", "dev": true, "license": "MIT", "dependencies": { "chalk": "^4.1.2", "graceful-fs": "^4.2.11", - "jest-haste-map": "30.1.0", - "jest-pnp-resolver": "^1.2.3", - "jest-util": "30.0.5", - "jest-validate": "30.1.0", + "jest-haste-map": "30.5.1", + "jest-util": "30.5.1", + "jest-validate": "30.5.1", "slash": "^3.0.0", - "unrs-resolver": "^1.7.11" + "unrs-resolver": "^1.12.1" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-resolve-dependencies": { - "version": "30.1.3", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-30.1.3.tgz", - "integrity": "sha512-DNfq3WGmuRyHRHfEet+Zm3QOmVFtIarUOQHHryKPc0YL9ROfgWZxl4+aZq/VAzok2SS3gZdniP+dO4zgo59hBg==", + "version": "30.5.2", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-30.5.2.tgz", + "integrity": "sha512-GMI0DP5enX9Z2qW2zFy1bOkrCfWAOPRJQ7qHt0pdfrxBPsgWxglMPrRSK2TX/wRWYxcPRSLFg3Z88qPOzHx7FQ==", "dev": true, "license": "MIT", "dependencies": { - "jest-regex-util": "30.0.1", - "jest-snapshot": "30.1.2" + "jest-regex-util": "30.5.0", + "jest-snapshot": "30.5.2" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-runner": { - "version": "30.1.3", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-30.1.3.tgz", - "integrity": "sha512-dd1ORcxQraW44Uz029TtXj85W11yvLpDuIzNOlofrC8GN+SgDlgY4BvyxJiVeuabA1t6idjNbX59jLd2oplOGQ==", + "version": "30.5.2", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-30.5.2.tgz", + "integrity": "sha512-/B6px7hiiNhVSRwuv9AGn0nawYvwsHeQZ3ItTd5Gp2diFd0EOKaWVeWqcbw3L88vx1GfpCKjQkxWItZCTl11Rw==", "dev": true, "license": "MIT", "dependencies": { - "@jest/console": "30.1.2", - "@jest/environment": "30.1.2", - "@jest/test-result": "30.1.3", - "@jest/transform": "30.1.2", - "@jest/types": "30.0.5", + "@jest/console": "30.5.2", + "@jest/environment": "30.5.2", + "@jest/source-map": "30.5.2", + "@jest/test-result": "30.5.2", + "@jest/transform": "30.5.2", + "@jest/types": "30.5.1", "@types/node": "*", "chalk": "^4.1.2", "emittery": "^0.13.1", "exit-x": "^0.2.2", "graceful-fs": "^4.2.11", - "jest-docblock": "30.0.1", - "jest-environment-node": "30.1.2", - "jest-haste-map": "30.1.0", - "jest-leak-detector": "30.1.0", - "jest-message-util": "30.1.0", - "jest-resolve": "30.1.3", - "jest-runtime": "30.1.3", - "jest-util": "30.0.5", - "jest-watcher": "30.1.3", - "jest-worker": "30.1.0", - "p-limit": "^3.1.0", - "source-map-support": "0.5.13" + "jest-docblock": "30.5.0", + "jest-environment-node": "30.5.2", + "jest-haste-map": "30.5.1", + "jest-leak-detector": "30.5.1", + "jest-message-util": "30.5.1", + "jest-resolve": "30.5.1", + "jest-runtime": "30.5.2", + "jest-util": "30.5.1", + "jest-watcher": "30.5.2", + "jest-worker": "30.5.1", + "p-limit": "^3.1.0" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-runtime": { - "version": "30.1.3", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-30.1.3.tgz", - "integrity": "sha512-WS8xgjuNSphdIGnleQcJ3AKE4tBKOVP+tKhCD0u+Tb2sBmsU8DxfbBpZX7//+XOz81zVs4eFpJQwBNji2Y07DA==", + "version": "30.5.2", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-30.5.2.tgz", + "integrity": "sha512-0paUAHBlheai10A3XSy9Xh+YBG0IROy+/qzcDPzQ/nbbXrznQzeWy5qniICWK6d3W3scaRQCVAbXdcK0ibBq4w==", "dev": true, "license": "MIT", "dependencies": { - "@jest/environment": "30.1.2", - "@jest/fake-timers": "30.1.2", - "@jest/globals": "30.1.2", - "@jest/source-map": "30.0.1", - "@jest/test-result": "30.1.3", - "@jest/transform": "30.1.2", - "@jest/types": "30.0.5", + "@jest/environment": "30.5.2", + "@jest/fake-timers": "30.5.2", + "@jest/globals": "30.5.2", + "@jest/source-map": "30.5.2", + "@jest/test-result": "30.5.2", + "@jest/transform": "30.5.2", + "@jest/types": "30.5.1", "@types/node": "*", "chalk": "^4.1.2", - "cjs-module-lexer": "^2.1.0", + "cjs-module-lexer": "^2.2.0", "collect-v8-coverage": "^1.0.2", - "glob": "^10.3.10", + "es-module-lexer": "^2.1.0", + "glob": "^13.0.6", "graceful-fs": "^4.2.11", - "jest-haste-map": "30.1.0", - "jest-message-util": "30.1.0", - "jest-mock": "30.0.5", - "jest-regex-util": "30.0.1", - "jest-resolve": "30.1.3", - "jest-snapshot": "30.1.2", - "jest-util": "30.0.5", + "jest-haste-map": "30.5.1", + "jest-message-util": "30.5.1", + "jest-mock": "30.5.2", + "jest-regex-util": "30.5.0", + "jest-resolve": "30.5.1", + "jest-snapshot": "30.5.2", + "jest-util": "30.5.1", "slash": "^3.0.0", "strip-bom": "^4.0.0" }, @@ -3457,9 +4040,9 @@ } }, "node_modules/jest-snapshot": { - "version": "30.1.2", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-30.1.2.tgz", - "integrity": "sha512-4q4+6+1c8B6Cy5pGgFvjDy/Pa6VYRiGu0yQafKkJ9u6wQx4G5PqI2QR6nxTl43yy7IWsINwz6oT4o6tD12a8Dg==", + "version": "30.5.2", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-30.5.2.tgz", + "integrity": "sha512-jKIdes25AnAH73dOCi2qE6J6vHJ6L2vyBS11M89kT50DVJcLTf2AOjvcc+2vVaN8lUbY5v2R83aqXo3Ro9fqYA==", "dev": true, "license": "MIT", "dependencies": { @@ -3468,20 +4051,20 @@ "@babel/plugin-syntax-jsx": "^7.27.1", "@babel/plugin-syntax-typescript": "^7.27.1", "@babel/types": "^7.27.3", - "@jest/expect-utils": "30.1.2", - "@jest/get-type": "30.1.0", - "@jest/snapshot-utils": "30.1.2", - "@jest/transform": "30.1.2", - "@jest/types": "30.0.5", - "babel-preset-current-node-syntax": "^1.1.0", + "@jest/expect-utils": "30.5.2", + "@jest/get-type": "30.5.0", + "@jest/snapshot-utils": "30.5.1", + "@jest/transform": "30.5.2", + "@jest/types": "30.5.1", + "babel-preset-current-node-syntax": "^1.2.0", "chalk": "^4.1.2", - "expect": "30.1.2", + "expect": "30.5.2", "graceful-fs": "^4.2.11", - "jest-diff": "30.1.2", - "jest-matcher-utils": "30.1.2", - "jest-message-util": "30.1.0", - "jest-util": "30.0.5", - "pretty-format": "30.0.5", + "jest-diff": "30.5.2", + "jest-matcher-utils": "30.5.2", + "jest-message-util": "30.5.1", + "jest-util": "30.5.1", + "pretty-format": "30.5.1", "semver": "^7.7.2", "synckit": "^0.11.8" }, @@ -3490,9 +4073,9 @@ } }, "node_modules/jest-snapshot/node_modules/semver": { - "version": "7.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", - "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "version": "7.8.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", + "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", "dev": true, "license": "ISC", "bin": { @@ -3503,49 +4086,36 @@ } }, "node_modules/jest-util": { - "version": "30.0.5", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.0.5.tgz", - "integrity": "sha512-pvyPWssDZR0FlfMxCBoc0tvM8iUEskaRFALUtGQYzVEAqisAztmy+R8LnU14KT4XA0H/a5HMVTXat1jLne010g==", + "version": "30.5.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.5.1.tgz", + "integrity": "sha512-yKuxmNy2rSbTXw+3SIPanJo+nV4/BS1p26v44IYBFMsswSQySfMMcPHErnOncda7i9HEz0q605rIhSTBVgrZTg==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "30.0.5", + "@jest/types": "30.5.1", "@types/node": "*", "chalk": "^4.1.2", "ci-info": "^4.2.0", "graceful-fs": "^4.2.11", - "picomatch": "^4.0.2" + "picomatch": "^4.0.3" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/jest-util/node_modules/picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, "node_modules/jest-validate": { - "version": "30.1.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-30.1.0.tgz", - "integrity": "sha512-7P3ZlCFW/vhfQ8pE7zW6Oi4EzvuB4sgR72Q1INfW9m0FGo0GADYlPwIkf4CyPq7wq85g+kPMtPOHNAdWHeBOaA==", + "version": "30.5.1", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-30.5.1.tgz", + "integrity": "sha512-i/buJ56wTpxihE93hQYNMfdOThS87+HGvLZzZJmU4xggPcdTYQq051iwALLCHp3q+SkCGH+EFejQZz5EbBSkkg==", "dev": true, "license": "MIT", "dependencies": { - "@jest/get-type": "30.1.0", - "@jest/types": "30.0.5", + "@jest/get-type": "30.5.0", + "@jest/types": "30.5.1", "camelcase": "^6.3.0", "chalk": "^4.1.2", "leven": "^3.1.0", - "pretty-format": "30.0.5" + "pretty-format": "30.5.1" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" @@ -3565,19 +4135,19 @@ } }, "node_modules/jest-watcher": { - "version": "30.1.3", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-30.1.3.tgz", - "integrity": "sha512-6jQUZCP1BTL2gvG9E4YF06Ytq4yMb4If6YoQGRR6PpjtqOXSP3sKe2kqwB6SQ+H9DezOfZaSLnmka1NtGm3fCQ==", + "version": "30.5.2", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-30.5.2.tgz", + "integrity": "sha512-rqRgg4R11GA9m1UsEZwQeixHsgZReCn6TOHAHtIH33yXrIvoX0OGPA20Yzzjkz7X40fZvcRSxEpQppYPcWzmcQ==", "dev": true, "license": "MIT", "dependencies": { - "@jest/test-result": "30.1.3", - "@jest/types": "30.0.5", + "@jest/test-result": "30.5.2", + "@jest/types": "30.5.1", "@types/node": "*", "ansi-escapes": "^4.3.2", "chalk": "^4.1.2", "emittery": "^0.13.1", - "jest-util": "30.0.5", + "jest-util": "30.5.1", "string-length": "^4.0.2" }, "engines": { @@ -3585,15 +4155,15 @@ } }, "node_modules/jest-worker": { - "version": "30.1.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-30.1.0.tgz", - "integrity": "sha512-uvWcSjlwAAgIu133Tt77A05H7RIk3Ho8tZL50bQM2AkvLdluw9NG48lRCl3Dt+MOH719n/0nnb5YxUwcuJiKRA==", + "version": "30.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-30.5.1.tgz", + "integrity": "sha512-Cbxh5v7AoLuFRmFJSM4/aHdQ68rjXvUWr716EE0Dh3I7T+T/3FgFKhOERGXHcU2Meftq9+9zxPM3TSNyI9D+HA==", "dev": true, "license": "MIT", "dependencies": { "@types/node": "*", "@ungap/structured-clone": "^1.3.0", - "jest-util": "30.0.5", + "jest-util": "30.5.1", "merge-stream": "^2.0.0", "supports-color": "^8.1.1" }, @@ -3618,9 +4188,9 @@ } }, "node_modules/jiti": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.0.tgz", - "integrity": "sha512-VXe6RjJkBPj0ohtqaO8vSWP3ZhAKo66fKrFNCll4BTcwljPLz03pCbaNKfzGP5MbrCYcbJ7v0nOYYwUzTEIdXQ==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.7.0.tgz", + "integrity": "sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==", "dev": true, "license": "MIT", "bin": { @@ -3635,9 +4205,9 @@ "license": "MIT" }, "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==", + "version": "3.15.2", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.15.2.tgz", + "integrity": "sha512-6EuL879VkRA+1Cz578mKMiKvjPNEuk6+r1JaFzoSWejZmtf7xWbIyw1e3KkxlkzTIt9Taw6JBhEppG7utc1P+w==", "dev": true, "license": "MIT", "dependencies": { @@ -3668,6 +4238,13 @@ "dev": true, "license": "MIT" }, + "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, + "license": "MIT" + }, "node_modules/json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", @@ -3711,13 +4288,6 @@ "node": ">=8" } }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true, - "license": "MIT" - }, "node_modules/lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", @@ -3752,9 +4322,9 @@ } }, "node_modules/make-dir/node_modules/semver": { - "version": "7.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", - "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "version": "7.8.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", + "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", "dev": true, "license": "ISC", "bin": { @@ -3771,16 +4341,6 @@ "dev": true, "license": "ISC" }, - "node_modules/makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "tmpl": "1.0.5" - } - }, "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", @@ -3788,20 +4348,6 @@ "dev": true, "license": "MIT" }, - "node_modules/micromatch": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", - "dev": true, - "license": "MIT", - "dependencies": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, "node_modules/mimic-fn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", @@ -3813,16 +4359,16 @@ } }, "node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "version": "10.2.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.6.tgz", + "integrity": "sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==", "dev": true, - "license": "ISC", + "license": "BlueOak-1.0.0", "dependencies": { - "brace-expansion": "^2.0.1" + "brace-expansion": "^5.0.8" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": "18 || 20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -3839,11 +4385,11 @@ } }, "node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz", + "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==", "dev": true, - "license": "ISC", + "license": "BlueOak-1.0.0", "engines": { "node": ">=16 || 14 >=14.17" } @@ -3856,9 +4402,9 @@ "license": "MIT" }, "node_modules/nanoid": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-5.1.6.tgz", - "integrity": "sha512-c7+7RQ+dMB5dPwwCp4ee1/iV/q2P6aK1mTZcfr1BTuVlyW9hJYiMPybJCcnBlQtuSmTIWNeazm/zqNoZSSElBg==", + "version": "5.1.16", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-5.1.16.tgz", + "integrity": "sha512-kVrnsrJqMR8+oLJnGEmSWw9BivK5mt7H3FZatVRjrc5wGqFYuBxX1yG7+A7Gi5AefkX6t/oCkizcQgpu0cY1dQ==", "dev": true, "funding": [ { @@ -3875,9 +4421,9 @@ } }, "node_modules/napi-postinstall": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/napi-postinstall/-/napi-postinstall-0.3.3.tgz", - "integrity": "sha512-uTp172LLXSxuSYHv/kou+f6KW3SMppU9ivthaVTXian9sOt3XM/zHYHpRZiLgQoxeWfYUnslNWQHF1+G71xcow==", + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/napi-postinstall/-/napi-postinstall-0.3.4.tgz", + "integrity": "sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==", "dev": true, "license": "MIT", "bin": { @@ -3904,6 +4450,13 @@ "dev": true, "license": "MIT" }, + "node_modules/node-addon-api": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", + "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", + "dev": true, + "license": "MIT" + }, "node_modules/node-fetch": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", @@ -3938,13 +4491,6 @@ "node": "4.x || >=6.0.0" } }, - "node_modules/node-fetch-native": { - "version": "1.6.7", - "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.6.7.tgz", - "integrity": "sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==", - "dev": true, - "license": "MIT" - }, "node_modules/node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", @@ -3963,11 +4509,14 @@ } }, "node_modules/node-releases": { - "version": "2.0.21", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.21.tgz", - "integrity": "sha512-5b0pgg78U3hwXkCM8Z9b2FJdPZlr9Psr9V2gQPESdGHqbntyFJKFW4r5TeWGFzafGY3hzs1JC62VEQMbl1JFkw==", + "version": "2.0.59", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.59.tgz", + "integrity": "sha512-5qr2okC4ItAI0hG5SaV0HoYMpnM/Y6+Oqr7AmPYy/2uEoGvS+GbSKLeRxSS1uAdu59yz0ouzcuXievSgg///WA==", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">=18" + } }, "node_modules/normalize-path": { "version": "3.0.0", @@ -3992,26 +4541,6 @@ "node": ">=8" } }, - "node_modules/nypm": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/nypm/-/nypm-0.6.2.tgz", - "integrity": "sha512-7eM+hpOtrKrBDCh7Ypu2lJ9Z7PNZBdi/8AT3AX8xoCj43BBVHD0hPSTEvMtkMpfs8FCqBGhxB+uToIQimA111g==", - "dev": true, - "license": "MIT", - "dependencies": { - "citty": "^0.1.6", - "consola": "^3.4.2", - "pathe": "^2.0.3", - "pkg-types": "^2.3.0", - "tinyexec": "^1.0.1" - }, - "bin": { - "nypm": "dist/cli.mjs" - }, - "engines": { - "node": "^14.16.0 || >=16.10.0" - } - }, "node_modules/oas-kit-common": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/oas-kit-common/-/oas-kit-common-1.0.8.tgz", @@ -4038,9 +4567,9 @@ } }, "node_modules/oas-linter/node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.3.tgz", + "integrity": "sha512-vIYeF1u3CjlhAFekPPAk2h/Kv4T3mAkMox5OymRiJQB0spDP10LHvt+K7G9Ny6NuuMAb25/6n1qyUjAcGNf/AA==", "dev": true, "license": "ISC", "engines": { @@ -4068,9 +4597,9 @@ } }, "node_modules/oas-resolver/node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.3.tgz", + "integrity": "sha512-vIYeF1u3CjlhAFekPPAk2h/Kv4T3mAkMox5OymRiJQB0spDP10LHvt+K7G9Ny6NuuMAb25/6n1qyUjAcGNf/AA==", "dev": true, "license": "ISC", "engines": { @@ -4108,9 +4637,9 @@ } }, "node_modules/oas-validator/node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.3.tgz", + "integrity": "sha512-vIYeF1u3CjlhAFekPPAk2h/Kv4T3mAkMox5OymRiJQB0spDP10LHvt+K7G9Ny6NuuMAb25/6n1qyUjAcGNf/AA==", "dev": true, "license": "ISC", "engines": { @@ -4118,22 +4647,12 @@ } }, "node_modules/ohash": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/ohash/-/ohash-2.0.11.tgz", - "integrity": "sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==", + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/ohash/-/ohash-2.0.12.tgz", + "integrity": "sha512-65S/5gk9YSsaRjcyf7Nfa6h/d3E8/1gslpXfI4W7Dxn/oap8IKRuNT5VXkLQ1YFKIEg4apRY4Pj6aiwFzrDdmw==", "dev": true, "license": "MIT" }, - "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": "5.1.2", "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", @@ -4151,9 +4670,9 @@ } }, "node_modules/openai": { - "version": "5.23.0", - "resolved": "https://registry.npmjs.org/openai/-/openai-5.23.0.tgz", - "integrity": "sha512-Cfq155NHzI7VWR67LUNJMIgPZy2oSh7Fld/OKhxq648BiUjELAvcge7g30xJ6vAfwwXf6TVK0KKuN+3nmIJG/A==", + "version": "5.23.2", + "resolved": "https://registry.npmjs.org/openai/-/openai-5.23.2.tgz", + "integrity": "sha512-MQBzmTulj+MM5O8SKEk/gL8a7s5mktS9zUtAkU257WjvobGc9nKcBuVwjyEEcb9SI8a8Y2G/mzn3vm9n1Jlleg==", "dev": true, "license": "Apache-2.0", "bin": { @@ -4270,16 +4789,6 @@ "node": ">=8" } }, - "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", @@ -4291,28 +4800,31 @@ } }, "node_modules/path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.2.tgz", + "integrity": "sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" }, "engines": { - "node": ">=16 || 14 >=14.18" + "node": "18 || 20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "version": "11.5.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.3.tgz", + "integrity": "sha512-U4N8FgzmWxc8k1VH8Kr6lQg18U7Fjvby6wXHVRX/ZZ7IwWbRMgrRbP0Wrb5q5NVinryp4SQampHKdvtecItxUg==", "dev": true, - "license": "ISC" + "license": "BlueOak-1.0.0", + "engines": { + "node": "20 || >=22" + } }, "node_modules/pathe": { "version": "2.0.3", @@ -4322,9 +4834,9 @@ "license": "MIT" }, "node_modules/perfect-debounce": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-2.0.0.tgz", - "integrity": "sha512-fkEH/OBiKrqqI/yIgjR92lMfs2K8105zt/VT6+7eTjNwisrsh47CeIED9z58zI7DfKdH3uHAn25ziRZn3kgAow==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-2.1.0.tgz", + "integrity": "sha512-LjgdTytVFXeUgtHZr9WYViYSM/g8MkcTPYDlPa3cDqMirHjKiSZPYd6DoL7pK8AJQr+uWkQvCjHNdiMqsrJs+g==", "dev": true, "license": "MIT" }, @@ -4336,13 +4848,13 @@ "license": "ISC" }, "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.7.tgz", + "integrity": "sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==", "dev": true, "license": "MIT", "engines": { - "node": ">=8.6" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/jonschlinkert" @@ -4372,27 +4884,35 @@ } }, "node_modules/pkg-types": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-2.3.0.tgz", - "integrity": "sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-2.3.3.tgz", + "integrity": "sha512-j/lCFdcppV0JxWpCEITdbDltBxPP6cHT+yNJ6Go2OgoSA9518X847X9z0p6LtA4Nc16+eQzCZjRrWanTGvHJ5w==", "dev": true, "license": "MIT", "dependencies": { - "confbox": "^0.2.2", - "exsolve": "^1.0.7", + "confbox": "^0.3.1", + "exsolve": "^1.1.1", "pathe": "^2.0.3" } }, + "node_modules/pkg-types/node_modules/confbox": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.3.1.tgz", + "integrity": "sha512-cKUSoKa8YxFZZSmraVi7onONx3amu77ngK3kGpsYHDH7drPwCRkQE1RYMPlLRrMtnciRj274XNRxcHxnKmDSnA==", + "dev": true, + "license": "MIT" + }, "node_modules/pretty-format": { - "version": "30.0.5", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.0.5.tgz", - "integrity": "sha512-D1tKtYvByrBkFLe2wHJl2bwMJIiT8rW+XA+TiataH79/FszLQMrpGEvzUVkzPau7OCO0Qnrhpe87PqtOAIB8Yw==", + "version": "30.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.5.1.tgz", + "integrity": "sha512-byhRAPguVKMQIj4kjJwJ5lAskVhfuiSdiYl/aLTWpgkGEmic2jYhJh1yE9ih8Ox44Xg9ccCT11/S6QrzSJuNrg==", "dev": true, "license": "MIT", "dependencies": { - "@jest/schemas": "30.0.5", - "ansi-styles": "^5.2.0", - "react-is": "^18.3.1" + "@jest/react-is-18": "npm:react-is@^18.3.1", + "@jest/react-is-19": "npm:react-is@^19.2.5", + "@jest/schemas": "30.5.0", + "ansi-styles": "^5.2.0" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" @@ -4429,31 +4949,24 @@ "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==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/rc9/-/rc9-3.1.0.tgz", + "integrity": "sha512-ufjkNVzbRHKcCOmTahZkmVsyc3W+MSk3jY03m+a7tGHkIsdVMG9l10/3HvFbWkkKzY5VFp3pkRsIo/UYgmFL7Q==", "dev": true, "license": "MIT", "dependencies": { - "defu": "^6.1.4", - "destr": "^2.0.3" + "defu": "^6.1.7", + "destr": "^2.0.5" } }, - "node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "dev": true, - "license": "MIT" - }, "node_modules/readdirp": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", - "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-5.1.1.tgz", + "integrity": "sha512-Kko+Y5XQ6fM+Ce3dq3m9YGxnacYZYl9cA1wZjaF3Vbry2L3i1qVg8+CAgNPsXRArPMUMCaOR7oa9Nqntc43JKA==", "dev": true, "license": "MIT", "engines": { - "node": ">= 14.18.0" + "node": ">= 20.19.0" }, "funding": { "type": "individual", @@ -4480,6 +4993,16 @@ "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, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/resolve-cwd": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", @@ -4597,17 +5120,11 @@ "license": "MIT" }, "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==", + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true, - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } + "license": "ISC" }, "node_modules/slash": { "version": "3.0.0", @@ -4629,17 +5146,6 @@ "node": ">=0.10.0" } }, - "node_modules/source-map-support": { - "version": "0.5.13", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", - "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", - "dev": true, - "license": "MIT", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -4674,111 +5180,38 @@ "node": ">=10" } }, - "node_modules/string-length/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": { - "node": ">=8" - } - }, - "node_modules/string-length/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": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "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", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs/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": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs/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, - "license": "MIT" - }, - "node_modules/string-width-cjs/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==", + "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": { - "ansi-regex": "^5.0.1" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { "node": ">=8" } }, - "node_modules/strip-ansi": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", - "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", + "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": { - "ansi-regex": "^6.0.1" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" + "node": ">=8" } }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", + "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==", @@ -4791,12 +5224,16 @@ "node": ">=8" } }, - "node_modules/strip-ansi-cjs/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==", + "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, "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, "engines": { "node": ">=8" } @@ -4855,34 +5292,51 @@ "license": "ISC" }, "node_modules/swagger-typescript-api": { - "version": "13.2.13", - "resolved": "https://registry.npmjs.org/swagger-typescript-api/-/swagger-typescript-api-13.2.13.tgz", - "integrity": "sha512-d4Ri5iOxCFB8VeTyosuzKnW8jtRBUFZC+XZthFiH78CwNrkMKAzyuSs0YGUZlHtm60VtkZBNxZkp71BHShJ8HQ==", + "version": "13.13.0", + "resolved": "https://registry.npmjs.org/swagger-typescript-api/-/swagger-typescript-api-13.13.0.tgz", + "integrity": "sha512-4CEj48R1Kk3Zvul4c8NVeLOUQ86WIRq1MgqRaB12jKI70IT/UUc4/xn+vd9pWK+I8eRALX2UnUI1ld0YQHn16A==", "dev": true, "license": "MIT", "dependencies": { - "@biomejs/js-api": "3.0.0", - "@biomejs/wasm-nodejs": "2.2.4", - "@types/lodash": "^4.17.20", + "@apidevtools/swagger-parser": "12.1.0", + "@biomejs/js-api": "6.0.0", + "@biomejs/wasm-nodejs": "2.5.2", "@types/swagger-schema-official": "^2.0.25", - "c12": "^3.3.0", - "citty": "^0.1.6", + "c12": "^3.3.4", + "citty": "^0.2.2", "consola": "^3.4.2", - "eta": "^4.0.1", - "lodash": "^4.17.21", - "nanoid": "^5.1.5", + "es-toolkit": "^1.49.0", + "eta": "^3.5.0", + "nanoid": "^5.1.16", "openapi-types": "^12.1.3", "swagger-schema-official": "2.0.0-bab6bed", "swagger2openapi": "^7.0.8", - "typescript": "~5.9.2", - "yaml": "^2.8.1" + "type-fest": "^5.7.0", + "typescript": "^6.0.3", + "yaml": "^2.9.0", + "yummies": "7.20.1" }, "bin": { - "sta": "dist/cli.js", - "swagger-typescript-api": "dist/cli.js" + "swagger-typescript-api": "dist/cli.mjs" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/swagger-typescript-api/node_modules/type-fest": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-5.10.0.tgz", + "integrity": "sha512-NoSdpq/WEiAg5sjmBkmV/hfxv6HJH4NqPNrqjtSO5CwRmpsDfaf4begxW34KdJykH/l1yHtwBWQkCRdoXO8mPA==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "dependencies": { + "tagged-tag": "^1.0.0" }, "engines": { "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/swagger2openapi": { @@ -4914,9 +5368,9 @@ } }, "node_modules/swagger2openapi/node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.3.tgz", + "integrity": "sha512-vIYeF1u3CjlhAFekPPAk2h/Kv4T3mAkMox5OymRiJQB0spDP10LHvt+K7G9Ny6NuuMAb25/6n1qyUjAcGNf/AA==", "dev": true, "license": "ISC", "engines": { @@ -4924,13 +5378,13 @@ } }, "node_modules/synckit": { - "version": "0.11.11", - "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.11.tgz", - "integrity": "sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==", + "version": "0.11.13", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.13.tgz", + "integrity": "sha512-eNRKgb3z66Yp3D2CixVujOUvXLFUTij/zVnV8KRyvFdQwpz7I5DS8UfRkTeLzb64u+dkzDSdelE24izu+zSSUg==", "dev": true, "license": "MIT", "dependencies": { - "@pkgr/core": "^0.2.9" + "@pkgr/core": "^0.3.6" }, "engines": { "node": "^14.18.0 || >=16.0.0" @@ -4939,92 +5393,122 @@ "url": "https://opencollective.com/synckit" } }, + "node_modules/tagged-tag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/tagged-tag/-/tagged-tag-1.0.0.tgz", + "integrity": "sha512-yEFYrVhod+hdNyx7g5Bnkkb0G6si8HJurOoOEgC8B/O0uXLHlaey/65KRv6cuWBNhBgHKAROVpc7QyYqE5gFng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tailwind-merge": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-3.7.0.tgz", + "integrity": "sha512-XPPUyAc+cvspz3lHTcR/QgPfW2A0lv/xQNIjX3HGhLR+Nq2lHaLq5MtTesHn8GUr3W3DguT2KT5x3NVgRtYwmA==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/dcastil" + } + }, "node_modules/test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-7.0.2.tgz", + "integrity": "sha512-u9E6A+ZDYdp7a4WnarkXPZOx8Ilz46+kby6p1yZ8zsGTz9gYa6FIS7lj2oezzNKmtdyyJNNmmXDppga5GB7kSw==", "dev": true, "license": "ISC", "dependencies": { "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" + "glob": "^10.4.1", + "minimatch": "^10.2.2" }, "engines": { - "node": ">=8" + "node": ">=18" } }, + "node_modules/test-exclude/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/test-exclude/node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.7.tgz", + "integrity": "sha512-uZbew1NqdmPDTMJ8ah1y+b+9QEJrfkXFk3RcTQw3X0jW/xRUvFKsg1CfQdSYGdTbXZWExtU3J3ccxtnfw1Fi0g==", "dev": true, "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "balanced-match": "^1.0.0" } }, "node_modules/test-exclude/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", + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", + "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", + "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", "dev": true, "license": "ISC", "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" + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" }, - "engines": { - "node": "*" + "bin": { + "glob": "dist/esm/bin.mjs" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/test-exclude/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "node_modules/test-exclude/node_modules/glob/node_modules/minimatch": { + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", + "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", "dev": true, "license": "ISC", "dependencies": { - "brace-expansion": "^1.1.7" + "brace-expansion": "^2.0.2" }, "engines": { - "node": "*" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/tinyexec": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.0.1.tgz", - "integrity": "sha512-5uC6DDlmeqiOwCPmK9jMSdOuZTh8bU39Ys6yidB+UTt5hfZUPGAypSgFRiEp+jbi9qH40BLDvy85jIU88wKSqw==", - "dev": true, - "license": "MIT" - }, - "node_modules/tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "node_modules/test-exclude/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", "dev": true, - "license": "BSD-3-Clause" + "license": "ISC" }, - "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==", + "node_modules/test-exclude/node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", "dev": true, - "license": "MIT", + "license": "BlueOak-1.0.0", "dependencies": { - "is-number": "^7.0.0" + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" }, "engines": { - "node": ">=8.0" + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/tr46": { @@ -5035,19 +5519,19 @@ "license": "MIT" }, "node_modules/ts-jest": { - "version": "29.4.4", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.4.4.tgz", - "integrity": "sha512-ccVcRABct5ZELCT5U0+DZwkXMCcOCLi2doHRrKy1nK/s7J7bch6TzJMsrY09WxgUUIP/ITfmcDS8D2yl63rnXw==", + "version": "29.4.15", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.4.15.tgz", + "integrity": "sha512-s2qmEUYFRqbjz1wv0EmccNPVOb45HOFpFuhzQJLKShYVisuTbCFPIIAIV2EuK5rIxb4BejLDbH7dnBZfYjybUQ==", "dev": true, "license": "MIT", "dependencies": { "bs-logger": "^0.2.6", "fast-json-stable-stringify": "^2.1.0", - "handlebars": "^4.7.8", + "handlebars": "^4.7.10", "json5": "^2.2.3", "lodash.memoize": "^4.1.2", "make-error": "^1.3.6", - "semver": "^7.7.2", + "semver": "^7.8.5", "type-fest": "^4.41.0", "yargs-parser": "^21.1.1" }, @@ -5058,13 +5542,13 @@ "node": "^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.0 <8", + "@babel/core": ">=7.0.0-beta.0 <9", "@jest/transform": "^29.0.0 || ^30.0.0", "@jest/types": "^29.0.0 || ^30.0.0", "babel-jest": "^29.0.0 || ^30.0.0", "jest": "^29.0.0 || ^30.0.0", "jest-util": "^29.0.0 || ^30.0.0", - "typescript": ">=4.3 <6" + "typescript": ">=4.3 <7" }, "peerDependenciesMeta": { "@babel/core": { @@ -5088,9 +5572,9 @@ } }, "node_modules/ts-jest/node_modules/semver": { - "version": "7.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", - "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "version": "7.8.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", + "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", "dev": true, "license": "ISC", "bin": { @@ -5189,9 +5673,9 @@ } }, "node_modules/typescript": { - "version": "5.9.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.2.tgz", - "integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz", + "integrity": "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==", "dev": true, "license": "Apache-2.0", "bin": { @@ -5217,51 +5701,54 @@ } }, "node_modules/undici-types": { - "version": "7.12.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.12.0.tgz", - "integrity": "sha512-goOacqME2GYyOZZfb5Lgtu+1IDmAlAEu5xnD3+xTzS10hT0vzpf0SPjkXwAw9Jm+4n/mQGDP3LO8CPbYROeBfQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.24.6.tgz", + "integrity": "sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg==", "dev": true, "license": "MIT" }, "node_modules/unrs-resolver": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.11.1.tgz", - "integrity": "sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.12.2.tgz", + "integrity": "sha512-dmlRxBJJayXjqTwC+JtF1HhJmgf3ftQ3YejFcZrf4+KKtJv0qDsK1pjqaaVjG7wJ5NJ6UVP1OqRMQ71Z4C3rxQ==", "dev": true, "hasInstallScript": true, "license": "MIT", "dependencies": { - "napi-postinstall": "^0.3.0" + "napi-postinstall": "^0.3.4" }, "funding": { "url": "https://opencollective.com/unrs-resolver" }, "optionalDependencies": { - "@unrs/resolver-binding-android-arm-eabi": "1.11.1", - "@unrs/resolver-binding-android-arm64": "1.11.1", - "@unrs/resolver-binding-darwin-arm64": "1.11.1", - "@unrs/resolver-binding-darwin-x64": "1.11.1", - "@unrs/resolver-binding-freebsd-x64": "1.11.1", - "@unrs/resolver-binding-linux-arm-gnueabihf": "1.11.1", - "@unrs/resolver-binding-linux-arm-musleabihf": "1.11.1", - "@unrs/resolver-binding-linux-arm64-gnu": "1.11.1", - "@unrs/resolver-binding-linux-arm64-musl": "1.11.1", - "@unrs/resolver-binding-linux-ppc64-gnu": "1.11.1", - "@unrs/resolver-binding-linux-riscv64-gnu": "1.11.1", - "@unrs/resolver-binding-linux-riscv64-musl": "1.11.1", - "@unrs/resolver-binding-linux-s390x-gnu": "1.11.1", - "@unrs/resolver-binding-linux-x64-gnu": "1.11.1", - "@unrs/resolver-binding-linux-x64-musl": "1.11.1", - "@unrs/resolver-binding-wasm32-wasi": "1.11.1", - "@unrs/resolver-binding-win32-arm64-msvc": "1.11.1", - "@unrs/resolver-binding-win32-ia32-msvc": "1.11.1", - "@unrs/resolver-binding-win32-x64-msvc": "1.11.1" + "@unrs/resolver-binding-android-arm-eabi": "1.12.2", + "@unrs/resolver-binding-android-arm64": "1.12.2", + "@unrs/resolver-binding-darwin-arm64": "1.12.2", + "@unrs/resolver-binding-darwin-x64": "1.12.2", + "@unrs/resolver-binding-freebsd-x64": "1.12.2", + "@unrs/resolver-binding-linux-arm-gnueabihf": "1.12.2", + "@unrs/resolver-binding-linux-arm-musleabihf": "1.12.2", + "@unrs/resolver-binding-linux-arm64-gnu": "1.12.2", + "@unrs/resolver-binding-linux-arm64-musl": "1.12.2", + "@unrs/resolver-binding-linux-loong64-gnu": "1.12.2", + "@unrs/resolver-binding-linux-loong64-musl": "1.12.2", + "@unrs/resolver-binding-linux-ppc64-gnu": "1.12.2", + "@unrs/resolver-binding-linux-riscv64-gnu": "1.12.2", + "@unrs/resolver-binding-linux-riscv64-musl": "1.12.2", + "@unrs/resolver-binding-linux-s390x-gnu": "1.12.2", + "@unrs/resolver-binding-linux-x64-gnu": "1.12.2", + "@unrs/resolver-binding-linux-x64-musl": "1.12.2", + "@unrs/resolver-binding-openharmony-arm64": "1.12.2", + "@unrs/resolver-binding-wasm32-wasi": "1.12.2", + "@unrs/resolver-binding-win32-arm64-msvc": "1.12.2", + "@unrs/resolver-binding-win32-ia32-msvc": "1.12.2", + "@unrs/resolver-binding-win32-x64-msvc": "1.12.2" } }, "node_modules/update-browserslist-db": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", - "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.3.4.tgz", + "integrity": "sha512-t8wonIOdQyOjtPd2VktlBu6QjTVTks6v8bSi7kd0r2Vll8TK1JYDZtRRdbmCHOAMphkZgrzK+L+vXK4pyZ8t4A==", "dev": true, "funding": [ { @@ -5311,16 +5798,6 @@ "node": ">=10.12.0" } }, - "node_modules/walker": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "makeerror": "1.0.12" - } - }, "node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", @@ -5363,18 +5840,18 @@ "license": "MIT" }, "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==", + "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": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" }, "engines": { - "node": ">=12" + "node": ">=10" }, "funding": { "url": "https://github.com/chalk/wrap-ansi?sponsor=1" @@ -5399,71 +5876,6 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/wrap-ansi-cjs/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": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi-cjs/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, - "license": "MIT" - }, - "node_modules/wrap-ansi-cjs/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", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi-cjs/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": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", - "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "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, - "license": "ISC" - }, "node_modules/write-file-atomic": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", @@ -5478,6 +5890,19 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/write-file-atomic/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" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", @@ -5496,9 +5921,9 @@ "license": "ISC" }, "node_modules/yaml": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.1.tgz", - "integrity": "sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==", + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.9.1.tgz", + "integrity": "sha512-3NxN8+78OdzbT7C/WjGsyfPAtJaN3FNDsWxv7Y7mcDsT/oOmgW8BpyQQFFBnvZE3j9Y2Sdz1ULFLezL7Eb2yFw==", "dev": true, "license": "ISC", "bin": { @@ -5506,12 +5931,15 @@ }, "engines": { "node": ">= 14.6" + }, + "funding": { + "url": "https://github.com/sponsors/eemeli" } }, "node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "version": "17.7.3", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.3.tgz", + "integrity": "sha512-GZtjxm/J/4TSxuL3FNYjCmLktBTnIw/rVmKSIyKeYAZpmJB2ig9VauCC5xsa82GNKVKDAqpOn3KVzNt0zmrU0g==", "dev": true, "license": "MIT", "dependencies": { @@ -5537,51 +5965,6 @@ "node": ">=12" } }, - "node_modules/yargs/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": { - "node": ">=8" - } - }, - "node_modules/yargs/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, - "license": "MIT" - }, - "node_modules/yargs/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", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/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": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/yn": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", @@ -5604,6 +5987,33 @@ "funding": { "url": "https://github.com/sponsors/sindresorhus" } + }, + "node_modules/yummies": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/yummies/-/yummies-7.20.1.tgz", + "integrity": "sha512-H/AxRy+SjVlfpeI0TkiVkU/M2n+XpR1XGt5yS5r7GsP9Iz3mr17dbq9DLW18PmMlyKO78+yvH/9Z9VAnVuV3og==", + "dev": true, + "license": "MIT", + "dependencies": { + "class-variance-authority": "^0.7.1", + "clsx": "^2.1.1", + "dayjs": "^1.11.21", + "dompurify": "^3.4.11", + "nanoid": "^5.1.15", + "tailwind-merge": "^3.6.0" + }, + "peerDependencies": { + "mobx": "^6.12.4", + "react": "^18 || ^19" + }, + "peerDependenciesMeta": { + "mobx": { + "optional": true + }, + "react": { + "optional": true + } + } } } } diff --git a/package.json b/package.json index cd727c628..e00688444 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@vapi-ai/web", - "version": "2.7.1", + "version": "3.0.0", "description": "", "main": "dist/vapi.js", "types": "dist/vapi.d.ts", @@ -31,7 +31,7 @@ "node": ">=18.0.0" }, "dependencies": { - "@daily-co/daily-js": "^0.87.0", + "@daily-co/daily-js": "^0.93.0", "events": "^3.3.0" }, "devDependencies": { From d3fc8e53962213989c92d058b505fb92d54d761f Mon Sep 17 00:00:00 2001 From: shubham-vapiai Date: Thu, 15 Oct 2026 21:31:59 -0700 Subject: [PATCH 2/2] chore!: upgrade @daily-co/daily-js to 0.93.0, require Node >=22.14.0 (v3.0.0) --- api.ts | 2905 +++++++-------------------------------- package-lock.json | 3346 ++++++++++++++++++++------------------------- package.json | 2 +- 3 files changed, 1999 insertions(+), 4254 deletions(-) diff --git a/api.ts b/api.ts index b27d47c56..4219aa0a2 100644 --- a/api.ts +++ b/api.ts @@ -10,58 +10,6 @@ * --------------------------------------------------------------- */ -export interface VersionPinReference { - /** Kind of source row the pin originates from. */ - sourceType: "assistant_version" | "squad" | "squad_version" | "tool_version"; - /** - * UUID of the source row (polymorphic, not FK-enforced). - * @format uuid - */ - sourceId: string; -} - -export interface VersionPinConflictResponseDTO { - error: "version_pinned"; - /** Human-readable reason the delete was rejected. */ - message: string; - /** Pins that block the delete. */ - pinnedBy: VersionPinReference[]; -} - -export interface TrafficAllocationVersionConflictResponseDTO { - error: "version_in_governing_allocation"; - /** Human-readable reason the delete was rejected. */ - message: string; - /** The allocation currently using this version. Create a new allocation without it before deleting the version. */ - governingAllocationId: string; -} - -export interface AssistantPinnedConflictResponseDTO { - error: "assistant_pinned"; - /** Human-readable reason the parent-assistant delete was rejected. */ - message: string; -} - -export interface AssistantManagedVapiAgentsDTO { - /** - * The Vapi Agents agent that manages the assistant. - * @format uuid - */ - agentId: string; - /** The agent's page in Vapi Agents. */ - agentUrl: string; - /** The Vapi Agents MCP server, where an AI client makes the change instead. */ - mcpUrl: string; -} - -export interface AssistantManagedConflictResponseDTO { - /** Vapi Agents manages the assistant. The lock refuses writes to the assistant itself (update, replace, delete, restore, version delete, traffic splits) and to outcomes, monitors and structured outputs that link or unlink it. It doesn't cover what changes a call without writing the assistant: call-level assistantOverrides or assistantVersion, squad member pins and overrides, which phone number points at it, edits to the tools or knowledge bases it references, or Vapi's own model-retirement sweep. */ - error: "assistant_managed_by_vapi_agents"; - /** Why the write was rejected and how to make the change in Vapi Agents instead: the agent link, the Vapi Agents MCP URL with the steps to connect it, and which of its tools to call. */ - message: string; - vapiAgents: AssistantManagedVapiAgentsDTO; -} - export interface FallbackTranscriberPlan { transcribers?: ( | FallbackAssemblyAITranscriber @@ -145,35 +93,23 @@ export interface AssemblyAITranscriber { */ vadAssistedEndpointingEnabled?: boolean; /** - * This is the transcription mode used by the Universal Pro speech models. Only applies to `universal-3-5-pro` and `universal-3-6-pro`. + * This is the transcription mode used by the `universal-3-5-pro` speech model. Only applies to the `universal-3-5-pro` speech model. * * @default 'balanced' */ mode?: "max_accuracy" | "min_latency" | "balanced"; /** - * This is a prompt that provides additional context to the transcription model. Only applies to `universal-3-5-pro` and `universal-3-6-pro`. + * This is a prompt that provides additional context to the transcription model. Only applies to the `universal-3-5-pro` speech model. * @maxLength 1750 */ prompt?: string; /** - * This is context about the voice agent that guides the transcription model. Only applies to `universal-3-5-pro` and `universal-3-6-pro`. + * This is context about the voice agent that guides the transcription model. Only applies to the `universal-3-5-pro` speech model. * @maxLength 1750 */ agentContext?: string; - /** - * When true, the text the assistant just spoke is sent to AssemblyAI as `agent_context` after every assistant turn, replacing the previous value, so the user's reply is transcribed in the context of the question it answers. - * `agentContext` still seeds the first turn. Text longer than 1750 characters keeps its last 1750 characters. Turns the user interrupted are not sent when the interruption is detected by voice activity (the default, `stopSpeakingPlan.numWords: 0`). - * Only applies to `universal-3-5-pro` and `universal-3-6-pro`. - * - * @default false - * @default false - */ - agentContextAutoUpdateEnabled?: boolean; - /** - * These are language codes used to steer automatic language detection. Only applies to `universal-3-5-pro` and `universal-3-6-pro`. - * `ur`, `ru`, `ko`, `ca`, `gl`, `ro`, `et`, `fa`, `yue`, `af`, `mr`, `zu`, `xh` and `nn` were added with `universal-3-6-pro`. - */ - languageCodes?: ( + /** These are language codes used to steer automatic language detection. Only applies to the `universal-3-5-pro` speech model. */ + languageCodes?: | "en" | "es" | "fr" @@ -191,33 +127,17 @@ export interface AssemblyAITranscriber { | "ar" | "he" | "ja" - | "zh" - | "ur" - | "ru" - | "ko" - | "ca" - | "gl" - | "ro" - | "et" - | "fa" - | "yue" - | "af" - | "mr" - | "zu" - | "xh" - | "nn" - )[]; + | "zh"; /** * This is the speech model used for the streaming session. - * Keyterms prompting is supported on universal-streaming-english, universal-3-5-pro and universal-3-6-pro. - * universal-3-6-pro is AssemblyAI's newest and most accurate voice-agent model. + * Keyterms prompting is supported on universal-streaming-english and universal-3-5-pro. + * universal-3-5-pro is AssemblyAI's most accurate voice-agent model. * @default 'universal-streaming-english' */ speechModel?: | "universal-streaming-english" | "universal-streaming-multilingual" - | "universal-3-5-pro" - | "universal-3-6-pro"; + | "universal-3-5-pro"; /** The WebSocket URL that the transcriber connects to. */ realtimeUrl?: string; /** Add up to 2500 characters of custom vocabulary. */ @@ -225,7 +145,7 @@ export interface AssemblyAITranscriber { /** * Keyterms prompting improves recognition accuracy for specific words and phrases. * Can include up to 100 keyterms, each up to 50 characters. - * Costs an additional $0.04/hour on universal-streaming-english and is included at no extra cost on the Universal Pro models (universal-3-5-pro, universal-3-6-pro). + * Costs an additional $0.04/hour on universal-streaming-english and is included at no extra cost on universal-3-5-pro. */ keytermsPrompt?: string[]; /** The duration of the end utterance silence threshold in milliseconds. */ @@ -728,7 +648,6 @@ export interface DeepgramTranscriber { | "nova-3" | "nova-3-general" | "nova-3-medical" - | "nova-3-pharma" | "nova-2" | "nova-2-general" | "nova-2-meeting" @@ -860,7 +779,7 @@ export interface DeepgramTranscriber { /** * If set to true, this will add mip_opt_out=true as a query parameter of all API requests. See https://developers.deepgram.com/docs/the-deepgram-model-improvement-partnership-program#want-to-opt-out * - * This only applies to your own Deepgram API key. Requests on Vapi's key always opt out, whatever this is set to. + * This will only be used if you are using your own Deepgram API key. * * @default false * @default false @@ -1864,20 +1783,6 @@ export interface SonioxTranscriber { * @max 3000 */ maxEndpointDelayMs?: number; - /** - * How likely Soniox is to emit an endpoint (end the caller turn). Higher values make endpoints more likely for faster turn-taking; negative values make them less likely, which helps when callers pause mid-sentence (e.g. reading numbers group by group). Range: -1.0 to 1.0. Default: 0.3 (the platform low-latency voice profile; Soniox's own default is 0.0). Supported by stt-rt-v5; omitted from the Soniox request on explicit stt-rt-v4. Soniox recommends tuning endpointLatencyAdjustmentLevel first, and advises against negative sensitivity while the level is above 0 (the settings work against each other). - * @min -1 - * @max 1 - * @example 0.3 - */ - endpointSensitivity?: number; - /** - * How aggressively Soniox reduces endpoint latency. 0 is Soniox's default semantic endpointing; 3 is the most aggressive. Higher levels return endpoints sooner but may split speech into more segments and slightly reduce accuracy. Integer. Range: 0-3. Default: 2 (the platform low-latency voice profile; Soniox's own default is 0). Supported by stt-rt-v5; omitted from the Soniox request on explicit stt-rt-v4. - * @min 0 - * @max 3 - * @example 2 - */ - endpointLatencyAdjustmentLevel?: number; /** Custom vocabulary terms to boost recognition accuracy. Useful for brand names, product names, and domain-specific terminology. Maps to Soniox context.terms. */ customVocabulary?: string[]; /** @@ -1885,13 +1790,6 @@ export interface SonioxTranscriber { * @example [{"key":"domain","value":"Healthcare"},{"key":"topic","value":"Diabetes management consultation"}] */ contextGeneral?: SonioxContextGeneralItem[]; - /** - * Transcripts below this confidence are discarded. For a discarded final, an `assistant.transcriber.endpointedSpeechLowConfidence` hook whose range covers the confidence runs (by default `[threshold - 0.2, threshold)`); if none does, the assistant does not respond to that utterance. Confidence is the mean of the per-token scores, and a transcript with an unscored token counts as 1. When unset, nothing is discarded by this setting. - * @min 0 - * @max 1 - * @example 0.4 - */ - confidenceThreshold?: number; /** This is the plan for transcriber provider fallbacks in the event that the primary transcriber provider fails. */ fallbackPlan?: FallbackTranscriberPlan; } @@ -2172,7 +2070,6 @@ export interface GoogleTranscriber { provider: "google"; /** This is the model that will be used for the transcription. */ model?: - | "gemini-3.8-flash" | "gemini-3.5-flash" | "gemini-3.1-flash-lite" | "gemini-3-flash-preview" @@ -2810,35 +2707,23 @@ export interface FallbackAssemblyAITranscriber { */ vadAssistedEndpointingEnabled?: boolean; /** - * This is the transcription mode used by the Universal Pro speech models. Only applies to `universal-3-5-pro` and `universal-3-6-pro`. + * This is the transcription mode used by the `universal-3-5-pro` speech model. Only applies to the `universal-3-5-pro` speech model. * * @default 'balanced' */ mode?: "max_accuracy" | "min_latency" | "balanced"; /** - * This is a prompt that provides additional context to the transcription model. Only applies to `universal-3-5-pro` and `universal-3-6-pro`. + * This is a prompt that provides additional context to the transcription model. Only applies to the `universal-3-5-pro` speech model. * @maxLength 1750 */ prompt?: string; /** - * This is context about the voice agent that guides the transcription model. Only applies to `universal-3-5-pro` and `universal-3-6-pro`. + * This is context about the voice agent that guides the transcription model. Only applies to the `universal-3-5-pro` speech model. * @maxLength 1750 */ agentContext?: string; - /** - * When true, the text the assistant just spoke is sent to AssemblyAI as `agent_context` after every assistant turn, replacing the previous value, so the user's reply is transcribed in the context of the question it answers. - * `agentContext` still seeds the first turn. Text longer than 1750 characters keeps its last 1750 characters. Turns the user interrupted are not sent when the interruption is detected by voice activity (the default, `stopSpeakingPlan.numWords: 0`). - * Only applies to `universal-3-5-pro` and `universal-3-6-pro`. - * - * @default false - * @default false - */ - agentContextAutoUpdateEnabled?: boolean; - /** - * These are language codes used to steer automatic language detection. Only applies to `universal-3-5-pro` and `universal-3-6-pro`. - * `ur`, `ru`, `ko`, `ca`, `gl`, `ro`, `et`, `fa`, `yue`, `af`, `mr`, `zu`, `xh` and `nn` were added with `universal-3-6-pro`. - */ - languageCodes?: ( + /** These are language codes used to steer automatic language detection. Only applies to the `universal-3-5-pro` speech model. */ + languageCodes?: | "en" | "es" | "fr" @@ -2856,33 +2741,17 @@ export interface FallbackAssemblyAITranscriber { | "ar" | "he" | "ja" - | "zh" - | "ur" - | "ru" - | "ko" - | "ca" - | "gl" - | "ro" - | "et" - | "fa" - | "yue" - | "af" - | "mr" - | "zu" - | "xh" - | "nn" - )[]; + | "zh"; /** * This is the speech model used for the streaming session. - * Keyterms prompting is supported on universal-streaming-english, universal-3-5-pro and universal-3-6-pro. - * universal-3-6-pro is AssemblyAI's newest and most accurate voice-agent model. + * Keyterms prompting is supported on universal-streaming-english and universal-3-5-pro. + * universal-3-5-pro is AssemblyAI's most accurate voice-agent model. * @default 'universal-streaming-english' */ speechModel?: | "universal-streaming-english" | "universal-streaming-multilingual" - | "universal-3-5-pro" - | "universal-3-6-pro"; + | "universal-3-5-pro"; /** The WebSocket URL that the transcriber connects to. */ realtimeUrl?: string; /** Add up to 2500 characters of custom vocabulary. */ @@ -2890,7 +2759,7 @@ export interface FallbackAssemblyAITranscriber { /** * Keyterms prompting improves recognition accuracy for specific words and phrases. * Can include up to 100 keyterms, each up to 50 characters. - * Costs an additional $0.04/hour on universal-streaming-english and is included at no extra cost on the Universal Pro models (universal-3-5-pro, universal-3-6-pro). + * Costs an additional $0.04/hour on universal-streaming-english and is included at no extra cost on universal-3-5-pro. */ keytermsPrompt?: string[]; /** The duration of the end utterance silence threshold in milliseconds. */ @@ -3311,7 +3180,6 @@ export interface FallbackDeepgramTranscriber { | "nova-3" | "nova-3-general" | "nova-3-medical" - | "nova-3-pharma" | "nova-2" | "nova-2-general" | "nova-2-meeting" @@ -3443,7 +3311,7 @@ export interface FallbackDeepgramTranscriber { /** * If set to true, this will add mip_opt_out=true as a query parameter of all API requests. See https://developers.deepgram.com/docs/the-deepgram-model-improvement-partnership-program#want-to-opt-out * - * This only applies to your own Deepgram API key. Requests on Vapi's key always opt out, whatever this is set to. + * This will only be used if you are using your own Deepgram API key. * * @default false * @default false @@ -4429,20 +4297,6 @@ export interface FallbackSonioxTranscriber { * @max 3000 */ maxEndpointDelayMs?: number; - /** - * How likely Soniox is to emit an endpoint (end the caller turn). Higher values make endpoints more likely for faster turn-taking; negative values make them less likely, which helps when callers pause mid-sentence (e.g. reading numbers group by group). Range: -1.0 to 1.0. Default: 0.3 (the platform low-latency voice profile; Soniox's own default is 0.0). Supported by stt-rt-v5; omitted from the Soniox request on explicit stt-rt-v4. Soniox recommends tuning endpointLatencyAdjustmentLevel first, and advises against negative sensitivity while the level is above 0 (the settings work against each other). - * @min -1 - * @max 1 - * @example 0.3 - */ - endpointSensitivity?: number; - /** - * How aggressively Soniox reduces endpoint latency. 0 is Soniox's default semantic endpointing; 3 is the most aggressive. Higher levels return endpoints sooner but may split speech into more segments and slightly reduce accuracy. Integer. Range: 0-3. Default: 2 (the platform low-latency voice profile; Soniox's own default is 0). Supported by stt-rt-v5; omitted from the Soniox request on explicit stt-rt-v4. - * @min 0 - * @max 3 - * @example 2 - */ - endpointLatencyAdjustmentLevel?: number; /** Custom vocabulary terms to boost recognition accuracy. Useful for brand names, product names, and domain-specific terminology. Maps to Soniox context.terms. */ customVocabulary?: string[]; /** @@ -4450,13 +4304,6 @@ export interface FallbackSonioxTranscriber { * @example [{"key":"domain","value":"Healthcare"},{"key":"topic","value":"Diabetes management consultation"}] */ contextGeneral?: SonioxContextGeneralItem[]; - /** - * Transcripts below this confidence are discarded. For a discarded final, an `assistant.transcriber.endpointedSpeechLowConfidence` hook whose range covers the confidence runs (by default `[threshold - 0.2, threshold)`); if none does, the assistant does not respond to that utterance. Confidence is the mean of the per-token scores, and a transcript with an unscored token counts as 1. When unset, nothing is discarded by this setting. - * @min 0 - * @max 1 - * @example 0.4 - */ - confidenceThreshold?: number; } export interface FallbackSpeechmaticsTranscriber { @@ -4717,7 +4564,6 @@ export interface FallbackGoogleTranscriber { provider: "google"; /** This is the model that will be used for the transcription. */ model?: - | "gemini-3.8-flash" | "gemini-3.5-flash" | "gemini-3.1-flash-lite" | "gemini-3-flash-preview" @@ -6395,20 +6241,6 @@ export interface TransferDestinationAssistant { | "delete-history"; /** This is the assistant to transfer the call to. */ assistantName: string; - /** - * This is the name of the transfer destination. This is just for your own reference. - * - * Usage: - * - Optional. Stored with the destination wherever it is supplied. For `number` - * and `sip` destinations it is also persisted on the transfer record in the - * call artifact after a transfer and displayed in the dashboard call log (on - * the transfer divider in the transcript view) alongside the destination. - * When omitted, everything behaves exactly as before. - * - Display-only. Unlike `description`, it is never included in prompts or tool - * descriptions and has no effect on model behavior or destination choice. - * @maxLength 40 - */ - name?: string; /** This is the description of the destination, used by the AI to choose when and how to transfer the call. */ description?: string; } @@ -7394,8 +7226,6 @@ export interface TransferDestinationNumber { * - Set to '{{phoneNumber.number}}' to always use the phone number of the assistant as the caller ID. * - Set to any E164 number to always use that number as the caller ID. This needs to be a number that is owned or verified by your Transport provider like Twilio. * - * Note: on Twilio, a caller who withheld their number has no caller ID the destination carrier will accept, so the assistant's phone number is presented instead and the transfer goes through. This applies when `callerId` is not provided and when it is set to '{{customer.number}}'. - * * For Twilio, you can read up more here: https://www.twilio.com/docs/voice/twiml/dial#callerid * @maxLength 40 */ @@ -7406,20 +7236,6 @@ export interface TransferDestinationNumber { * @default `transferPlan.mode='blind-transfer'` */ transferPlan?: TransferPlan; - /** - * This is the name of the transfer destination. This is just for your own reference. - * - * Usage: - * - Optional. Stored with the destination wherever it is supplied. For `number` - * and `sip` destinations it is also persisted on the transfer record in the - * call artifact after a transfer and displayed in the dashboard call log (on - * the transfer divider in the transcript view) alongside the destination. - * When omitted, everything behaves exactly as before. - * - Display-only. Unlike `description`, it is never included in prompts or tool - * descriptions and has no effect on model behavior or destination choice. - * @maxLength 40 - */ - name?: string; /** This is the description of the destination, used by the AI to choose when and how to transfer the call. */ description?: string; } @@ -7459,20 +7275,6 @@ export interface TransferDestinationSip { transferPlan?: TransferPlan; /** These are custom headers to be added to SIP refer during transfer call. */ sipHeaders?: object; - /** - * This is the name of the transfer destination. This is just for your own reference. - * - * Usage: - * - Optional. Stored with the destination wherever it is supplied. For `number` - * and `sip` destinations it is also persisted on the transfer record in the - * call artifact after a transfer and displayed in the dashboard call log (on - * the transfer divider in the transcript view) alongside the destination. - * When omitted, everything behaves exactly as before. - * - Display-only. Unlike `description`, it is never included in prompts or tool - * descriptions and has no effect on model behavior or destination choice. - * @maxLength 40 - */ - name?: string; /** This is the description of the destination, used by the AI to choose when and how to transfer the call. */ description?: string; } @@ -8148,7 +7950,6 @@ export interface KnowledgeBase { provider: "google"; /** The model to use for the knowledge base */ model?: - | "gemini-3.8-flash" | "gemini-3.5-flash" | "gemini-3.1-flash-lite" | "gemini-3-flash-preview" @@ -9210,7 +9011,7 @@ export interface AnyscaleModel { */ temperature?: number; /** - * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250. On gpt-6-luna and claude-haiku-5-5 no cap is applied unless you set one (claude-haiku-5-5 sends its 128,000-token maximum), because reasoning uses output tokens and a small cap can leave the reply empty. + * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250. * @min 50 * @max 10000 */ @@ -9309,14 +9110,7 @@ export interface AnthropicModel { | "claude-sonnet-4-5-20250929" | "claude-sonnet-4-6" | "claude-sonnet-5" - | "claude-haiku-4-5-20251001" - | "claude-haiku-5-5"; - /** - * Reasoning effort for claude-haiku-5-5. `none` turns thinking off. `low` to `max` - * use adaptive thinking at that effort; higher effort can add latency before the - * model speaks. Unset means `none`. Rejected for every other model. - */ - reasoningEffort?: "none" | "low" | "medium" | "high" | "xhigh" | "max"; + | "claude-haiku-4-5-20251001"; /** The provider identifier for Anthropic. */ provider: "anthropic"; /** @@ -9332,7 +9126,7 @@ export interface AnthropicModel { */ temperature?: number; /** - * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250. On gpt-6-luna and claude-haiku-5-5 no cap is applied unless you set one (claude-haiku-5-5 sends its 128,000-token maximum), because reasoning uses output tokens and a small cap can leave the reply empty. + * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250. * @min 50 * @max 10000 */ @@ -9422,36 +9216,7 @@ export interface AnthropicBedrockModel { | "claude-sonnet-4-5-20250929" | "claude-sonnet-4-6" | "claude-haiku-4-5-20251001" - | "claude-haiku-5-5" - | "global.anthropic.claude-haiku-4-5-20251001-v1:0"; - /** - * At most one same-provider Bedrock fallback model, tried if the primary fails. Cannot be combined with thinking in this release. Resolution uses the call's Bedrock credential region (or ANTHROPIC_BEDROCK_AWS_REGION). Names with no inference profile in that region are skipped and warned, never remapped to US or global. On Vapi EU, fallback names without an EU inference profile are rejected at write time. - * @maxItems 1 - * @example ["claude-haiku-4-5-20251001"] - */ - fallbackModels?: - | "claude-3-opus-20240229" - | "claude-3-sonnet-20240229" - | "claude-3-haiku-20240307" - | "claude-3-5-sonnet-20240620" - | "claude-3-5-sonnet-20241022" - | "claude-3-5-haiku-20241022" - | "claude-3-7-sonnet-20250219" - | "claude-opus-4-20250514" - | "claude-opus-4-5-20251101" - | "claude-opus-4-6" - | "claude-sonnet-4-20250514" - | "claude-sonnet-4-5-20250929" - | "claude-sonnet-4-6" - | "claude-haiku-4-5-20251001" - | "claude-haiku-5-5" | "global.anthropic.claude-haiku-4-5-20251001-v1:0"; - /** - * Reasoning effort for claude-haiku-5-5. `none` turns thinking off. `low` to `max` - * use adaptive thinking at that effort; higher effort can add latency before the - * model speaks. Unset means `none`. Rejected for every other model. - */ - reasoningEffort?: "none" | "low" | "medium" | "high" | "xhigh" | "max"; /** * Optional configuration for Anthropic's thinking feature. * Only applicable for claude-3-7-sonnet-20250219 model. @@ -9465,7 +9230,7 @@ export interface AnthropicBedrockModel { */ temperature?: number; /** - * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250. On gpt-6-luna and claude-haiku-5-5 no cap is applied unless you set one (claude-haiku-5-5 sends its 128,000-token maximum), because reasoning uses output tokens and a small cap can leave the reply empty. + * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250. * @min 50 * @max 10000 */ @@ -9547,7 +9312,7 @@ export interface CerebrasModel { */ temperature?: number; /** - * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250. On gpt-6-luna and claude-haiku-5-5 no cap is applied unless you set one (claude-haiku-5-5 sends its 128,000-token maximum), because reasoning uses output tokens and a small cap can leave the reply empty. + * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250. * @min 50 * @max 10000 */ @@ -9660,7 +9425,7 @@ export interface CustomLLMModel { */ temperature?: number; /** - * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250. On gpt-6-luna and claude-haiku-5-5 no cap is applied unless you set one (claude-haiku-5-5 sends its 128,000-token maximum), because reasoning uses output tokens and a small cap can leave the reply empty. + * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250. * @min 50 * @max 10000 */ @@ -9742,7 +9507,7 @@ export interface DeepInfraModel { */ temperature?: number; /** - * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250. On gpt-6-luna and claude-haiku-5-5 no cap is applied unless you set one (claude-haiku-5-5 sends its 128,000-token maximum), because reasoning uses output tokens and a small cap can leave the reply empty. + * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250. * @min 50 * @max 10000 */ @@ -9815,11 +9580,7 @@ export interface DeepSeekModel { /** These are the options for the knowledge base. */ knowledgeBase?: CreateCustomKnowledgeBaseDTO; /** This is the name of the model. Ex. cognitivecomputations/dolphin-mixtral-8x7b */ - model: - | "deepseek-chat" - | "deepseek-reasoner" - | "deepseek-flash" - | "deepseek-flash-thinking"; + model: "deepseek-chat" | "deepseek-reasoner"; provider: "deep-seek"; /** * This is the temperature that will be used for calls. Default is 0.5. @@ -9828,7 +9589,7 @@ export interface DeepSeekModel { */ temperature?: number; /** - * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250. On gpt-6-luna and claude-haiku-5-5 no cap is applied unless you set one (claude-haiku-5-5 sends its 128,000-token maximum), because reasoning uses output tokens and a small cap can leave the reply empty. + * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250. * @min 50 * @max 10000 */ @@ -9942,7 +9703,6 @@ export interface GoogleModel { knowledgeBase?: CreateCustomKnowledgeBaseDTO; /** This is the Google model that will be used. */ model: - | "gemini-3.8-flash" | "gemini-3.5-flash" | "gemini-3.1-flash-lite" | "gemini-3-flash-preview" @@ -9973,7 +9733,7 @@ export interface GoogleModel { */ temperature?: number; /** - * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250. On gpt-6-luna and claude-haiku-5-5 no cap is applied unless you set one (claude-haiku-5-5 sends its 128,000-token maximum), because reasoning uses output tokens and a small cap can leave the reply empty. + * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250. * @min 50 * @max 10000 */ @@ -10069,7 +9829,7 @@ export interface GroqModel { */ temperature?: number; /** - * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250. On gpt-6-luna and claude-haiku-5-5 no cap is applied unless you set one (claude-haiku-5-5 sends its 128,000-token maximum), because reasoning uses output tokens and a small cap can leave the reply empty. + * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250. * @min 50 * @max 10000 */ @@ -10151,7 +9911,7 @@ export interface InflectionAIModel { */ temperature?: number; /** - * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250. On gpt-6-luna and claude-haiku-5-5 no cap is applied unless you set one (claude-haiku-5-5 sends its 128,000-token maximum), because reasoning uses output tokens and a small cap can leave the reply empty. + * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250. * @min 50 * @max 10000 */ @@ -10233,7 +9993,7 @@ export interface MinimaxLLMModel { */ temperature?: number; /** - * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250. On gpt-6-luna and claude-haiku-5-5 no cap is applied unless you set one (claude-haiku-5-5 sends its 128,000-token maximum), because reasoning uses output tokens and a small cap can leave the reply empty. + * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250. * @min 50 * @max 10000 */ @@ -10257,86 +10017,6 @@ export interface MinimaxLLMModel { numFastTurns?: number; } -export interface OpenAISpeaker { - /** Omit to use model.systemPrompt, or system-role messages when systemPrompt is absent. An explicit empty string is preserved. */ - instructions?: string; - /** Personality packs append speaking-style guidance to the speaker prompt. Set to an array of pack IDs and test one pack at a time. These are prompt instructions, not fixed speed controls. */ - personalityPacks?: ( - | "eager-listener" - | "idle-hummer" - | "bouncy" - | "unhurried" - )[]; -} - -export interface OpenAIReasonerSkill { - /** - * Unique name within this assistant. - * @maxLength 64 - * @pattern /^[a-z][a-z0-9_-]*$/ - */ - name: string; - /** - * Explain when the reasoner should load this skill. Always visible in its catalog. - * @maxLength 1024 - * @pattern /\S/ - */ - description: string; - /** - * Full skill instructions, loaded only while this skill is active. - * @maxLength 32000 - * @pattern /\S/ - */ - content: string; - /** - * Tools available only after loading this skill. Can be combined with toolIds. - * @maxItems 20 - */ - tools?: ( - | CreateFunctionToolDTO - | CreateApiRequestToolDTO - | CreateMcpToolDTO - | CreateEndCallToolDTO - | CreateDtmfToolDTO - | CreateTransferCallToolDTO - )[]; - /** - * Existing organization-owned tools available only after loading this skill. - * @maxItems 20 - */ - toolIds?: string[]; -} - -export interface OpenAIReasoner { - /** - * The reasoner uses OpenAI. Omit to use OpenAI. - * @default "openai" - */ - provider?: "openai"; - /** - * The delegated reasoning model. Omit to use GPT-5.6 Terra. - * @default "gpt-5.6-terra" - */ - model?: "gpt-5.6-sol" | "gpt-5.6-terra" | "gpt-5.6-luna"; - /** - * Higher effort can increase response time. Omit to use low. - * @default "low" - */ - reasoningEffort?: "none" | "low" | "medium" | "high" | "xhigh" | "max"; - /** - * Complete reasoner instructions. An explicit empty string is preserved. - * Omit to use Vapi's default reasoner instructions. No behavioral instructions - * are appended unless skills are configured; skill loading guidance and active - * skill content are then composed with these instructions. - */ - instructions?: string; - /** - * Inline skills whose instructions and tools the GPT-Live reasoner loads on demand. - * @maxItems 20 - */ - skills?: OpenAIReasonerSkill[]; -} - export interface OpenAIModel { /** This is the starting state for the conversation. */ messages?: OpenAIMessage[]; @@ -10385,15 +10065,10 @@ export interface OpenAIModel { toolRefs?: ToolRef[]; /** These are the options for the knowledge base. */ knowledgeBase?: CreateCustomKnowledgeBaseDTO; - /** Configuration for the GPT-Live speaker. */ - speaker?: OpenAISpeaker; - /** Configuration for the reasoner supporting the GPT-Live speaker. */ - reasoner?: OpenAIReasoner; /** This is the provider that will be used for the model. */ provider: "openai"; /** * This is the OpenAI model that will be used. - * For GPT-Live configuration and supported settings, see https://docs.vapi.ai/gpt-live/overview. * * When using Vapi OpenAI or your own Azure Credentials, you have the option to specify the region for the selected model. This shouldn't be specified unless you have a specific reason to do so. Vapi will automatically find the fastest region that make sense. * This is helpful when you are required to comply with Data Residency rules. Learn more about Azure regions here https://azure.microsoft.com/en-us/explore/global-infrastructure/data-residency/. @@ -10401,7 +10076,6 @@ export interface OpenAIModel { * @default undefined */ model: - | "gpt-6-luna" | "gpt-5.6-sol" | "gpt-5.6-terra" | "gpt-5.6-luna" @@ -10557,14 +10231,12 @@ export interface OpenAIModel { | "gpt-3.5-turbo-1106:westus" | "gpt-4.1:australiaeast" | "gpt-4o:australiaeast" - | "gpt-5.4-mini:australiaeast" - | "gpt-live-1"; + | "gpt-5.4-mini:australiaeast"; /** * These are the fallback models that will be used if the primary model fails. This shouldn't be specified unless you have a specific reason to do so. Vapi will automatically find the fastest fallbacks that make sense. * @example ["gpt-4-0125-preview","gpt-4-0613"] */ fallbackModels?: ( - | "gpt-6-luna" | "gpt-5.6-sol" | "gpt-5.6-terra" | "gpt-5.6-luna" @@ -10753,19 +10425,6 @@ export interface OpenAIModel { * @maxLength 64 */ promptCacheKey?: string; - /** - * This is the OpenAI service tier to request. - * - * - `fast`: requests Fast mode, which gives faster responses at a higher per-token rate. How much faster depends on the model. - * - `priority`: the old name for `fast`, accepted and billed the same. - * - `default`: standard processing. - * - `auto`: the default when unset. On Vapi's OpenAI keys this is standard processing; on your own OpenAI key, OpenAI applies your project's default tier. - * - * OpenAI sets Fast mode rates per model, and they are not a fixed multiple of the standard rates. Vapi bills them only when OpenAI reports that it served the request in Fast mode. Otherwise the request is billed at standard rates, for example when Fast mode isn't available for the model on Vapi, OpenAI downgrades the request, or the request runs on Azure OpenAI. - * - * Supported models and their Fast mode rates: https://docs.vapi.ai/providers/model/openai - */ - serviceTier?: "auto" | "default" | "fast" | "priority"; /** * Reasoning effort for reasoning-capable OpenAI models. * For `gpt-realtime-2`: forwarded to V2 stream's session.update as `reasoning.effort`. @@ -10780,7 +10439,7 @@ export interface OpenAIModel { */ temperature?: number; /** - * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250. On gpt-6-luna and claude-haiku-5-5 no cap is applied unless you set one (claude-haiku-5-5 sends its 128,000-token maximum), because reasoning uses output tokens and a small cap can leave the reply empty. + * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250. * @min 50 * @max 10000 */ @@ -10862,7 +10521,7 @@ export interface OpenRouterModel { */ temperature?: number; /** - * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250. On gpt-6-luna and claude-haiku-5-5 no cap is applied unless you set one (claude-haiku-5-5 sends its 128,000-token maximum), because reasoning uses output tokens and a small cap can leave the reply empty. + * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250. * @min 50 * @max 10000 */ @@ -10944,7 +10603,7 @@ export interface PerplexityAIModel { */ temperature?: number; /** - * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250. On gpt-6-luna and claude-haiku-5-5 no cap is applied unless you set one (claude-haiku-5-5 sends its 128,000-token maximum), because reasoning uses output tokens and a small cap can leave the reply empty. + * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250. * @min 50 * @max 10000 */ @@ -11026,7 +10685,7 @@ export interface TogetherAIModel { */ temperature?: number; /** - * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250. On gpt-6-luna and claude-haiku-5-5 no cap is applied unless you set one (claude-haiku-5-5 sends its 128,000-token maximum), because reasoning uses output tokens and a small cap can leave the reply empty. + * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250. * @min 50 * @max 10000 */ @@ -11064,12 +10723,12 @@ export interface WorkflowOpenAIModel { /** * These are the messages used to customize the prompt used for structured output extraction. * - * When provided, these messages replace the default prompts. For text extraction, message contents support LiquidJS templating with the following variables: - * - `{{transcript}}`, `{{messages}}`, or `{{messagesWithConfidence}}` to reference the conversation (one is required) + * When provided, these messages replace the default prompts. Message contents support LiquidJS templating with the following variables: + * - `{{transcript}}` or `{{messages}}` to reference the conversation (one is required) * - `{{structuredOutput.name}}`, `{{structuredOutput.description}}`, or `{{structuredOutput.schema}}` to reference the structured output definition (one is required) * - `{{systemPrompt}}`, `{{callEndedReason}}`, `{{duration}}`, `{{startedAt}}`, `{{endedAt}}`, and any `assistantOverrides.variableValues` * - * In structured outputs, `{{messages}}` includes conversation text and tool calls/results, but omits caller transcription-confidence fields. For text extraction, `{{messagesWithConfidence}}` includes the original message history with transcription confidence for outputs that explicitly need it. These variables also apply in structured-output schema descriptions. Audio-targeted (`messages-with-audio`) extraction ignores custom messages. Stored call artifacts and API messages retain their confidence data. `{{transcript}}` is the spoken text only, which uses significantly fewer tokens. + * `{{messages}}` is the full message history including tool calls; `{{transcript}}` is the spoken text only, which uses significantly fewer tokens. * * If not provided, default system and user prompts are used. */ @@ -11084,7 +10743,6 @@ export interface WorkflowOpenAIModel { * @maxLength 100 */ model: - | "gpt-6-luna" | "gpt-5.6-sol" | "gpt-5.6-terra" | "gpt-5.6-luna" @@ -11253,12 +10911,12 @@ export interface WorkflowAnthropicModel { /** * These are the messages used to customize the prompt used for structured output extraction. * - * When provided, these messages replace the default prompts. For text extraction, message contents support LiquidJS templating with the following variables: - * - `{{transcript}}`, `{{messages}}`, or `{{messagesWithConfidence}}` to reference the conversation (one is required) + * When provided, these messages replace the default prompts. Message contents support LiquidJS templating with the following variables: + * - `{{transcript}}` or `{{messages}}` to reference the conversation (one is required) * - `{{structuredOutput.name}}`, `{{structuredOutput.description}}`, or `{{structuredOutput.schema}}` to reference the structured output definition (one is required) * - `{{systemPrompt}}`, `{{callEndedReason}}`, `{{duration}}`, `{{startedAt}}`, `{{endedAt}}`, and any `assistantOverrides.variableValues` * - * In structured outputs, `{{messages}}` includes conversation text and tool calls/results, but omits caller transcription-confidence fields. For text extraction, `{{messagesWithConfidence}}` includes the original message history with transcription confidence for outputs that explicitly need it. These variables also apply in structured-output schema descriptions. Audio-targeted (`messages-with-audio`) extraction ignores custom messages. Stored call artifacts and API messages retain their confidence data. `{{transcript}}` is the spoken text only, which uses significantly fewer tokens. + * `{{messages}}` is the full message history including tool calls; `{{transcript}}` is the spoken text only, which uses significantly fewer tokens. * * If not provided, default system and user prompts are used. */ @@ -11284,8 +10942,7 @@ export interface WorkflowAnthropicModel { | "claude-sonnet-4-5-20250929" | "claude-sonnet-4-6" | "claude-sonnet-5" - | "claude-haiku-4-5-20251001" - | "claude-haiku-5-5"; + | "claude-haiku-4-5-20251001"; /** * This is the optional configuration for Anthropic's thinking feature. * @@ -11310,12 +10967,12 @@ export interface WorkflowAnthropicBedrockModel { /** * These are the messages used to customize the prompt used for structured output extraction. * - * When provided, these messages replace the default prompts. For text extraction, message contents support LiquidJS templating with the following variables: - * - `{{transcript}}`, `{{messages}}`, or `{{messagesWithConfidence}}` to reference the conversation (one is required) + * When provided, these messages replace the default prompts. Message contents support LiquidJS templating with the following variables: + * - `{{transcript}}` or `{{messages}}` to reference the conversation (one is required) * - `{{structuredOutput.name}}`, `{{structuredOutput.description}}`, or `{{structuredOutput.schema}}` to reference the structured output definition (one is required) * - `{{systemPrompt}}`, `{{callEndedReason}}`, `{{duration}}`, `{{startedAt}}`, `{{endedAt}}`, and any `assistantOverrides.variableValues` * - * In structured outputs, `{{messages}}` includes conversation text and tool calls/results, but omits caller transcription-confidence fields. For text extraction, `{{messagesWithConfidence}}` includes the original message history with transcription confidence for outputs that explicitly need it. These variables also apply in structured-output schema descriptions. Audio-targeted (`messages-with-audio`) extraction ignores custom messages. Stored call artifacts and API messages retain their confidence data. `{{transcript}}` is the spoken text only, which uses significantly fewer tokens. + * `{{messages}}` is the full message history including tool calls; `{{transcript}}` is the spoken text only, which uses significantly fewer tokens. * * If not provided, default system and user prompts are used. */ @@ -11341,7 +10998,6 @@ export interface WorkflowAnthropicBedrockModel { | "claude-sonnet-4-5-20250929" | "claude-sonnet-4-6" | "claude-haiku-4-5-20251001" - | "claude-haiku-5-5" | "global.anthropic.claude-haiku-4-5-20251001-v1:0"; /** * This is the optional configuration for Anthropic's thinking feature. @@ -11367,12 +11023,12 @@ export interface WorkflowGoogleModel { /** * These are the messages used to customize the prompt used for structured output extraction. * - * When provided, these messages replace the default prompts. For text extraction, message contents support LiquidJS templating with the following variables: - * - `{{transcript}}`, `{{messages}}`, or `{{messagesWithConfidence}}` to reference the conversation (one is required) + * When provided, these messages replace the default prompts. Message contents support LiquidJS templating with the following variables: + * - `{{transcript}}` or `{{messages}}` to reference the conversation (one is required) * - `{{structuredOutput.name}}`, `{{structuredOutput.description}}`, or `{{structuredOutput.schema}}` to reference the structured output definition (one is required) * - `{{systemPrompt}}`, `{{callEndedReason}}`, `{{duration}}`, `{{startedAt}}`, `{{endedAt}}`, and any `assistantOverrides.variableValues` * - * In structured outputs, `{{messages}}` includes conversation text and tool calls/results, but omits caller transcription-confidence fields. For text extraction, `{{messagesWithConfidence}}` includes the original message history with transcription confidence for outputs that explicitly need it. These variables also apply in structured-output schema descriptions. Audio-targeted (`messages-with-audio`) extraction ignores custom messages. Stored call artifacts and API messages retain their confidence data. `{{transcript}}` is the spoken text only, which uses significantly fewer tokens. + * `{{messages}}` is the full message history including tool calls; `{{transcript}}` is the spoken text only, which uses significantly fewer tokens. * * If not provided, default system and user prompts are used. */ @@ -11384,7 +11040,6 @@ export interface WorkflowGoogleModel { * @maxLength 100 */ model: - | "gemini-3.8-flash" | "gemini-3.5-flash" | "gemini-3.1-flash-lite" | "gemini-3-flash-preview" @@ -11420,12 +11075,12 @@ export interface WorkflowCustomModel { /** * These are the messages used to customize the prompt used for structured output extraction. * - * When provided, these messages replace the default prompts. For text extraction, message contents support LiquidJS templating with the following variables: - * - `{{transcript}}`, `{{messages}}`, or `{{messagesWithConfidence}}` to reference the conversation (one is required) + * When provided, these messages replace the default prompts. Message contents support LiquidJS templating with the following variables: + * - `{{transcript}}` or `{{messages}}` to reference the conversation (one is required) * - `{{structuredOutput.name}}`, `{{structuredOutput.description}}`, or `{{structuredOutput.schema}}` to reference the structured output definition (one is required) * - `{{systemPrompt}}`, `{{callEndedReason}}`, `{{duration}}`, `{{startedAt}}`, `{{endedAt}}`, and any `assistantOverrides.variableValues` * - * In structured outputs, `{{messages}}` includes conversation text and tool calls/results, but omits caller transcription-confidence fields. For text extraction, `{{messagesWithConfidence}}` includes the original message history with transcription confidence for outputs that explicitly need it. These variables also apply in structured-output schema descriptions. Audio-targeted (`messages-with-audio`) extraction ignores custom messages. Stored call artifacts and API messages retain their confidence data. `{{transcript}}` is the spoken text only, which uses significantly fewer tokens. + * `{{messages}}` is the full message history including tool calls; `{{transcript}}` is the spoken text only, which uses significantly fewer tokens. * * If not provided, default system and user prompts are used. */ @@ -12682,15 +12337,6 @@ export interface CreateStructuredOutputDTO { /** * This is the regex pattern to match against the transcript. * - * Simulation evaluations use a canonical transcript built from recorded messages: - * User: and AI: dialogue, AI: tool_calls: JSON name/arguments records, and - * AI: tool_call_results: JSON results. System messages are excluded. These - * fixed labels apply even when custom artifact transcript labels are configured. - * Tool payloads participate in first-match and all-match extraction in event order. - * An empty message array falls back to the supplied transcript verbatim. - * Production-call extraction and call preview use their existing transcripts, - * so previewing the same output on a simulation's call can return a different result. - * * Only used when type is 'regex'. Supports both raw patterns (e.g. '\d+') and * regex literal format (e.g. '/\d+/gi'). Uses RE2 syntax for safety. * @@ -12707,8 +12353,7 @@ export interface CreateStructuredOutputDTO { * This is the model that will be used to extract the structured output. * * To provide your own custom system and user prompts for structured output extraction, populate the messages array with your system and user messages. You can specify liquid templating in your system and user messages. - * For text extraction, you must reference 'transcript', 'messages', or 'messagesWithConfidence' with the `{{}}` syntax to access the conversation history. - * In structured outputs, `{{messages}}` includes conversation text and tool calls/results but omits caller transcription-confidence fields. Text extraction can use `{{messagesWithConfidence}}` when the output needs the original message history with transcription confidence. These variables also apply in structured-output schema descriptions. Audio-targeted (`messages-with-audio`) extraction ignores custom messages. Stored call artifacts and API messages retain their confidence data. + * Between the system or user messages, you must reference either 'transcript' or 'messages' with the `{{}}` syntax to access the conversation history. * Between the system or user messages, you must reference a variation of the structured output with the `{{}}` syntax to access the structured output definition. * i.e.: * `{{structuredOutput}}` @@ -13657,7 +13302,7 @@ export interface XaiModel { */ temperature?: number; /** - * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250. On gpt-6-luna and claude-haiku-5-5 no cap is applied unless you set one (claude-haiku-5-5 sends its 128,000-token maximum), because reasoning uses output tokens and a small cap can leave the reply empty. + * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250. * @min 50 * @max 10000 */ @@ -13991,8 +13636,6 @@ export interface CartesiaVoice { model?: | "sonic-3.5" | "sonic-3.5-2026-05-04" - | "sonic-3.6" - | "sonic-3.6-2026-08-27" | "sonic-3" | "sonic-3-2026-01-12" | "sonic-3-2025-10-27" @@ -14034,7 +13677,6 @@ export interface CartesiaVoice { | "ms" | "nl" | "no" - | "or" | "pa" | "pl" | "pt" @@ -14048,7 +13690,6 @@ export interface CartesiaVoice { | "tl" | "tr" | "uk" - | "ur" | "vi" | "zh"; /** Experimental controls for Cartesia voice generation */ @@ -14183,78 +13824,22 @@ export interface DeepgramVoice { | "julius" | "lara" | "elara" - | "aurelia" - | "hannah" - | "kit" - | "alexis" - | "cliff" - | "sienna" - | "cole" - | "brooke" - | "colin" - | "gemma" - | "haley" - | "heather" - | "miles" - | "sean" - | "bree" - | "brittany" - | "bruce" - | "conor" - | "donovan" - | "drew" - | "elise" - | "jack" - | "kai" - | "kelsey" - | "maeve" - | "marcelo" - | "marcus" - | "meena" - | "meghan" - | "naveen" - | "paige" - | "priya" - | "rufus" - | "sharon" - | "tanner" - | "wade" - | "wes"; - /** - * This is the model that will be used. Defaults to 'aura' when not specified. + | "aurelia"; + /** + * This is the model that will be used. Defaults to 'aura-2' when not specified. * @example "aura-2" */ - model?: "aura" | "aura-2" | "flux"; + model?: "aura" | "aura-2"; /** * If set to true, this will add mip_opt_out=true as a query parameter of all API requests. See https://developers.deepgram.com/docs/the-deepgram-model-improvement-partnership-program#want-to-opt-out * - * This only applies to your own Deepgram API key. Requests on Vapi's key always opt out, whatever this is set to. + * This will only be used if you are using your own Deepgram API key. * * @default false * @default false * @example false */ mipOptOut?: boolean; - /** - * This is the speed multiplier that will be used. Aura-2 accepts 0.7 to 1.5; Flux accepts 0.5 to 1.5 in steps of 0.05. Aura does not support speed. - * - * @default 1 - * @min 0.5 - * @max 1.5 - * @default 1 - * @example 1.1 - */ - speed?: number; - /** - * This is the expressivity level for Flux voices, from -2 (flat) to 2 (lively). Deepgram marks this control as beta and may retune the scale. Aura and Aura-2 do not support it. - * - * @default 0 - * @min -2 - * @max 2 - * @default 0 - * @example 1 - */ - expressivity?: number; /** This is the plan for chunking the model output before it is sent to the voice provider. */ chunkPlan?: ChunkPlan; /** This is the plan for voice provider fallbacks in the event that the primary voice provider fails. */ @@ -14311,47 +13896,47 @@ export interface ElevenLabsVoice { */ stability?: number; /** - * Defines the similarity boost for voice settings. Ignored by `eleven_v4_turbo`. + * Defines the similarity boost for voice settings. * @min 0 * @max 1 * @example 0.75 */ similarityBoost?: number; /** - * Defines the style for voice settings. Ignored by `eleven_v4_turbo`. + * Defines the style for voice settings. * @min 0 * @max 1 * @example 0 */ style?: number; /** - * Defines the use speaker boost for voice settings. Ignored by `eleven_v4_turbo`. + * Defines the use speaker boost for voice settings. * @example false */ useSpeakerBoost?: boolean; /** - * Defines the speed for voice settings. Ignored by `eleven_v4_turbo`. + * Defines the speed for voice settings. * @min 0.7 * @max 1.2 * @example 0.9 */ speed?: number; /** - * Defines the optimize streaming latency for voice settings. Defaults to 3. Ignored by `eleven_v4_turbo`. + * Defines the optimize streaming latency for voice settings. Defaults to 3. * @min 0 * @max 4 * @example 3 */ optimizeStreamingLatency?: number; /** - * This enables the use of https://elevenlabs.io/docs/speech-synthesis/prompting#pronunciation. Defaults to false to save latency. Ignored by `eleven_v4_turbo`. + * This enables the use of https://elevenlabs.io/docs/speech-synthesis/prompting#pronunciation. Defaults to false to save latency. * * @default false * @example false */ enableSsmlParsing?: boolean; /** - * Defines the auto mode for voice settings. Defaults to false. Ignored by `eleven_v4_turbo`. + * Defines the auto mode for voice settings. Defaults to false. * @example false */ autoMode?: boolean; @@ -14366,9 +13951,8 @@ export interface ElevenLabsVoice { | "eleven_flash_v2" | "eleven_flash_v2_5" | "eleven_monolingual_v1" - | "eleven_v3" - | "eleven_v4_turbo"; - /** This is the language (ISO 639-1) that is enforced for the model. Currently only Turbo v2.5, Flash v2.5 and v4 Turbo support language enforcement; other models ignore it. */ + | "eleven_v3"; + /** This is the language (ISO 639-1) that is enforced for the model. Currently only Turbo v2.5 supports language enforcement. For other models, an error will be returned if language code is provided. */ language?: string; /** This is the plan for chunking the model output before it is sent to the voice provider. */ chunkPlan?: ChunkPlan; @@ -14738,8 +14322,7 @@ export interface OpenAIVoice { provider: "openai"; /** * This is the provider-specific ID that will be used. - * Voice availability depends on the selected model. - * quartz, ripple, vesper, willow, stone, gleam, meridian, bossa, tempo, beacon, delta, cinder are only supported with GPT-Live models. + * Please note that ash, ballad, coral, sage, and verse may only be used with realtime models. */ voiceId: | "alloy" @@ -14750,23 +14333,6 @@ export interface OpenAIVoice { | "shimmer" | "marin" | "cedar" - | "ash" - | "ballad" - | "beacon" - | "bossa" - | "cinder" - | "coral" - | "delta" - | "gleam" - | "meridian" - | "quartz" - | "ripple" - | "sage" - | "stone" - | "tempo" - | "verse" - | "vesper" - | "willow" | string; /** This is the model that will be used for text-to-speech. */ model?: "tts-1" | "tts-1-hd" | "gpt-4o-mini-tts"; @@ -14971,19 +14537,12 @@ export interface RimeAIVoice { | "masonry" | "albion" | "parapet" - | "clementine" - | "walnut" - | "eyre" - | "bancroft" - | "hesse" - | "beatty" - | "godfrey" | string; /** * This is the model that will be used. Defaults to 'arcana' when not specified. * @example "arcana" */ - model?: "arcana" | "coda" | "mistv2" | "mistv3" | "mist"; + model?: "arcana" | "mistv2" | "mist"; /** * This is the speed multiplier that will be used. * @min 0.1 @@ -15918,8 +15477,6 @@ export interface FallbackCartesiaVoice { model?: | "sonic-3.5" | "sonic-3.5-2026-05-04" - | "sonic-3.6" - | "sonic-3.6-2026-08-27" | "sonic-3" | "sonic-3-2026-01-12" | "sonic-3-2025-10-27" @@ -15961,7 +15518,6 @@ export interface FallbackCartesiaVoice { | "ms" | "nl" | "no" - | "or" | "pa" | "pl" | "pt" @@ -15975,7 +15531,6 @@ export interface FallbackCartesiaVoice { | "tl" | "tr" | "uk" - | "ur" | "vi" | "zh"; /** Experimental controls for Cartesia voice generation */ @@ -16106,78 +15661,22 @@ export interface FallbackDeepgramVoice { | "julius" | "lara" | "elara" - | "aurelia" - | "hannah" - | "kit" - | "alexis" - | "cliff" - | "sienna" - | "cole" - | "brooke" - | "colin" - | "gemma" - | "haley" - | "heather" - | "miles" - | "sean" - | "bree" - | "brittany" - | "bruce" - | "conor" - | "donovan" - | "drew" - | "elise" - | "jack" - | "kai" - | "kelsey" - | "maeve" - | "marcelo" - | "marcus" - | "meena" - | "meghan" - | "naveen" - | "paige" - | "priya" - | "rufus" - | "sharon" - | "tanner" - | "wade" - | "wes"; - /** - * This is the model that will be used. Defaults to 'aura' when not specified. + | "aurelia"; + /** + * This is the model that will be used. Defaults to 'aura-2' when not specified. * @example "aura-2" */ - model?: "aura" | "aura-2" | "flux"; + model?: "aura" | "aura-2"; /** * If set to true, this will add mip_opt_out=true as a query parameter of all API requests. See https://developers.deepgram.com/docs/the-deepgram-model-improvement-partnership-program#want-to-opt-out * - * This only applies to your own Deepgram API key. Requests on Vapi's key always opt out, whatever this is set to. + * This will only be used if you are using your own Deepgram API key. * * @default false * @default false * @example false */ mipOptOut?: boolean; - /** - * This is the speed multiplier that will be used. Aura-2 accepts 0.7 to 1.5; Flux accepts 0.5 to 1.5 in steps of 0.05. Aura does not support speed. - * - * @default 1 - * @min 0.5 - * @max 1.5 - * @default 1 - * @example 1.1 - */ - speed?: number; - /** - * This is the expressivity level for Flux voices, from -2 (flat) to 2 (lively). Deepgram marks this control as beta and may retune the scale. Aura and Aura-2 do not support it. - * - * @default 0 - * @min -2 - * @max 2 - * @default 0 - * @example 1 - */ - expressivity?: number; /** This is the plan for chunking the model output before it is sent to the voice provider. */ chunkPlan?: ChunkPlan; } @@ -16217,47 +15716,47 @@ export interface FallbackElevenLabsVoice { */ stability?: number; /** - * Defines the similarity boost for voice settings. Ignored by `eleven_v4_turbo`. + * Defines the similarity boost for voice settings. * @min 0 * @max 1 * @example 0.75 */ similarityBoost?: number; /** - * Defines the style for voice settings. Ignored by `eleven_v4_turbo`. + * Defines the style for voice settings. * @min 0 * @max 1 * @example 0 */ style?: number; /** - * Defines the use speaker boost for voice settings. Ignored by `eleven_v4_turbo`. + * Defines the use speaker boost for voice settings. * @example false */ useSpeakerBoost?: boolean; /** - * Defines the speed for voice settings. Ignored by `eleven_v4_turbo`. + * Defines the speed for voice settings. * @min 0.7 * @max 1.2 * @example 0.9 */ speed?: number; /** - * Defines the optimize streaming latency for voice settings. Defaults to 3. Ignored by `eleven_v4_turbo`. + * Defines the optimize streaming latency for voice settings. Defaults to 3. * @min 0 * @max 4 * @example 3 */ optimizeStreamingLatency?: number; /** - * This enables the use of https://elevenlabs.io/docs/speech-synthesis/prompting#pronunciation. Defaults to false to save latency. Ignored by `eleven_v4_turbo`. + * This enables the use of https://elevenlabs.io/docs/speech-synthesis/prompting#pronunciation. Defaults to false to save latency. * * @default false * @example false */ enableSsmlParsing?: boolean; /** - * Defines the auto mode for voice settings. Defaults to false. Ignored by `eleven_v4_turbo`. + * Defines the auto mode for voice settings. Defaults to false. * @example false */ autoMode?: boolean; @@ -16272,9 +15771,8 @@ export interface FallbackElevenLabsVoice { | "eleven_flash_v2" | "eleven_flash_v2_5" | "eleven_monolingual_v1" - | "eleven_v3" - | "eleven_v4_turbo"; - /** This is the language (ISO 639-1) that is enforced for the model. Currently only Turbo v2.5, Flash v2.5 and v4 Turbo support language enforcement; other models ignore it. */ + | "eleven_v3"; + /** This is the language (ISO 639-1) that is enforced for the model. Currently only Turbo v2.5 supports language enforcement. For other models, an error will be returned if language code is provided. */ language?: string; /** This is the pronunciation dictionary locators to use. */ pronunciationDictionaryLocators?: ElevenLabsPronunciationDictionaryLocator[]; @@ -16613,8 +16111,7 @@ export interface FallbackOpenAIVoice { provider: "openai"; /** * This is the provider-specific ID that will be used. - * Voice availability depends on the selected model. - * quartz, ripple, vesper, willow, stone, gleam, meridian, bossa, tempo, beacon, delta, cinder are only supported with GPT-Live models. + * Please note that ash, ballad, coral, sage, and verse may only be used with realtime models. */ voiceId: | "alloy" @@ -16625,23 +16122,6 @@ export interface FallbackOpenAIVoice { | "shimmer" | "marin" | "cedar" - | "ash" - | "ballad" - | "beacon" - | "bossa" - | "cinder" - | "coral" - | "delta" - | "gleam" - | "meridian" - | "quartz" - | "ripple" - | "sage" - | "stone" - | "tempo" - | "verse" - | "vesper" - | "willow" | string; /** This is the model that will be used for text-to-speech. */ model?: "tts-1" | "tts-1-hd" | "gpt-4o-mini-tts"; @@ -16842,19 +16322,12 @@ export interface FallbackRimeAIVoice { | "masonry" | "albion" | "parapet" - | "clementine" - | "walnut" - | "eyre" - | "bancroft" - | "hesse" - | "beatty" - | "godfrey" | string; /** * This is the model that will be used. Defaults to 'arcana' when not specified. * @example "arcana" */ - model?: "arcana" | "coda" | "mistv2" | "mistv3" | "mist"; + model?: "arcana" | "mistv2" | "mist"; /** * This is the speed multiplier that will be used. * @min 0.1 @@ -19439,50 +18912,6 @@ export interface CreateAssistantDTO { keypadInputPlan?: KeypadInputPlan; } -export interface ModelDeprecationNotice { - /** - * Path of the slot that carries the model, relative to the response root, - * e.g. `model`, `model.fallbackModels[1]`, `transcriber`, `voice`, or - * `members[2].assistantOverrides.model` on a squad. - * @example "model.fallbackModels[1]" - */ - slot: string; - /** - * Provider as stored on the slot. - * @example "openai" - */ - provider: string; - /** - * Model name as stored on the slot. - * @example "gpt-4-1106-preview" - */ - model: string; - /** - * Day the model became deprecated, `YYYY-MM-DD` in UTC. - * @example "2025-09-26" - */ - deprecationDate: string; - /** - * Day the model is or was retired, `YYYY-MM-DD` in UTC. On and after this - * day Vapi no longer runs the model as configured. - * @example "2026-03-26" - */ - retirementDate: string; - /** - * Whether a replacement can be recommended for this configuration. - * @example "manual-action-required" - */ - replacementStatus: "available" | "manual-action-required"; - /** - * Recommended model when replacementStatus is available. Omitted when - * eligibility cannot be established or no eligible replacement exists. - * A recommendation reflects the response-time decision; it neither - * confirms a completed swap nor authorizes a future execution. - * @example "gpt-5" - */ - replacementModel?: string; -} - export interface Assistant { /** These are the options for the assistant's transcriber. */ transcriber?: @@ -19850,8 +19279,6 @@ export interface Assistant { * published under it. */ latestVersion?: string | null; - /** Read-only. Present only when a model this configuration uses is deprecated or retired in Vapi's model deprecation registry, judged on the day of the response. Each entry names the slot (for example `model` or `model.fallbackModels[1]`), provider, stored model, and deprecation and retirement dates as `YYYY-MM-DD` in UTC. `replacementStatus` is `available` with a `replacementModel` when a replacement can be recommended, or `manual-action-required` with no replacement model when eligibility is unknown or no eligible replacement exists. `manual-action-required` can be transient when compliance context is unavailable; re-fetch before acting. HIPAA-required configurations, sparse drafts, and squads with unresolved assistant references currently require manual action. HIPAA requirements include the organization and assistant settings, including HIPAA with data retention. Recommendations reflect the response-time decision; they do not confirm a swap or authorize future execution. Examples: an available recommendation includes `{"replacementStatus":"available","replacementModel":"gpt-5"}`; a blocked recommendation includes `{"replacementStatus":"manual-action-required"}`. Ignored if sent back in a create or update request. */ - modelDeprecations?: ModelDeprecationNotice[]; /** * This is the name of the assistant. * @@ -19957,33 +19384,6 @@ export interface Assistant { updatedAt: string; } -export interface ValidateBackgroundSoundUrlDTO { - /** - * This is the background sound URL to validate. The server performs a ranged request and checks that the URL serves a live media file. - * @maxLength 1000 - * @example "https://example.com/my-sound.mp3" - */ - url: string; -} - -export interface BackgroundSoundUrlValidationResult { - /** Whether the URL currently serves a live media file. When false, calls configured with this URL silently play no background sound. */ - valid: boolean; - /** Why validation failed. Only present when valid is false. */ - reason?: - | "invalid-url" - | "blocked-address" - | "unreachable" - | "timeout" - | "too-many-redirects" - | "http-error" - | "not-audio"; - /** The HTTP status the URL returned, when a response was received. */ - status?: number; - /** The content-type the URL returned, when a response was received. */ - contentType?: string; -} - export interface PaginationMeta { itemsPerPage: number; totalItems: number; @@ -20369,8 +19769,6 @@ export interface AssistantDraft { | CallHookCustomerSpeechTimeout | SessionCreatedHook )[]; - /** Read-only. Present only when a model this configuration uses is deprecated or retired in Vapi's model deprecation registry, judged on the day of the response. Each entry names the slot (for example `model` or `model.fallbackModels[1]`), provider, stored model, and deprecation and retirement dates as `YYYY-MM-DD` in UTC. `replacementStatus` is `available` with a `replacementModel` when a replacement can be recommended, or `manual-action-required` with no replacement model when eligibility is unknown or no eligible replacement exists. `manual-action-required` can be transient when compliance context is unavailable; re-fetch before acting. HIPAA-required configurations, sparse drafts, and squads with unresolved assistant references currently require manual action. HIPAA requirements include the organization and assistant settings, including HIPAA with data retention. Recommendations reflect the response-time decision; they do not confirm a swap or authorize future execution. Examples: an available recommendation includes `{"replacementStatus":"available","replacementModel":"gpt-5"}`; a blocked recommendation includes `{"replacementStatus":"manual-action-required"}`. Ignored if sent back in a create or update request. */ - modelDeprecations?: ModelDeprecationNotice[]; /** * This is the name of the assistant. * @@ -20911,8 +20309,6 @@ export interface AssistantVersion { * @format date-time */ createdAt: string; - /** Read-only. Present only when a model this configuration uses is deprecated or retired in Vapi's model deprecation registry, judged on the day of the response. Each entry names the slot (for example `model` or `model.fallbackModels[1]`), provider, stored model, and deprecation and retirement dates as `YYYY-MM-DD` in UTC. `replacementStatus` is `available` with a `replacementModel` when a replacement can be recommended, or `manual-action-required` with no replacement model when eligibility is unknown or no eligible replacement exists. `manual-action-required` can be transient when compliance context is unavailable; re-fetch before acting. HIPAA-required configurations, sparse drafts, and squads with unresolved assistant references currently require manual action. HIPAA requirements include the organization and assistant settings, including HIPAA with data retention. Recommendations reflect the response-time decision; they do not confirm a swap or authorize future execution. Examples: an available recommendation includes `{"replacementStatus":"available","replacementModel":"gpt-5"}`; a blocked recommendation includes `{"replacementStatus":"manual-action-required"}`. Ignored if sent back in a create or update request. */ - modelDeprecations?: ModelDeprecationNotice[]; /** * This is the name of the assistant. * @@ -21028,6 +20424,24 @@ export interface UpdateAssistantVersionMetadataDTO { versionDescription?: string | null; } +export interface VersionPinReference { + /** Kind of source row the pin originates from. */ + sourceType: "assistant_version" | "squad" | "tool_version"; + /** + * UUID of the source row (polymorphic, not FK-enforced). + * @format uuid + */ + sourceId: string; +} + +export interface VersionPinConflictResponseDTO { + error: "version_pinned"; + /** Human-readable reason the delete was rejected. */ + message: string; + /** Pins that block the delete. */ + pinnedBy: VersionPinReference[]; +} + export interface CreateAssistantDraftDTO { /** These are the options for the assistant's transcriber. */ transcriber?: @@ -22395,15 +21809,13 @@ export interface UpdateAssistantDTO { keypadInputPlan?: KeypadInputPlan; } +export interface AssistantPinnedConflictResponseDTO { + error: "assistant_pinned"; + /** Human-readable reason the parent-assistant delete was rejected. */ + message: string; +} + export interface Squad { - /** - * This is the latest version label (e.g. `v3`) of the squad in the version - * history. `null` while the org is not yet onboarded to versioning, or for - * squads that have not yet been published under it. - */ - latestVersion?: string | null; - /** Read-only. Present only when a model this configuration uses is deprecated or retired in Vapi's model deprecation registry, judged on the day of the response. Each entry names the slot (for example `model` or `model.fallbackModels[1]`), provider, stored model, and deprecation and retirement dates as `YYYY-MM-DD` in UTC. `replacementStatus` is `available` with a `replacementModel` when a replacement can be recommended, or `manual-action-required` with no replacement model when eligibility is unknown or no eligible replacement exists. `manual-action-required` can be transient when compliance context is unavailable; re-fetch before acting. HIPAA-required configurations, sparse drafts, and squads with unresolved assistant references currently require manual action. HIPAA requirements include the organization and assistant settings, including HIPAA with data retention. Recommendations reflect the response-time decision; they do not confirm a swap or authorize future execution. Examples: an available recommendation includes `{"replacementStatus":"available","replacementModel":"gpt-5"}`; a blocked recommendation includes `{"replacementStatus":"manual-action-required"}`. Ignored if sent back in a create or update request. */ - modelDeprecations?: ModelDeprecationNotice[]; /** This is the name of the squad. */ name?: string; /** @@ -22434,86 +21846,6 @@ export interface Squad { updatedAt: string; } -export interface SquadVersion { - /** - * Optional human-readable label for this version. Set when the version is published. - * @maxLength 80 - */ - versionName?: string | null; - /** - * Optional description for this version. Set when the version is published. - * @maxLength 500 - */ - versionDescription?: string | null; - /** - * This is the unique identifier for the version row. - * @format uuid - */ - id: string; - /** - * This is the unique identifier for the org that owns this version. - * @format uuid - */ - orgId: string; - /** - * This is the unique identifier for the squad this version was snapshotted from. - * @format uuid - */ - squadId: string; - /** - * This is the public monotonic version label, e.g. "v1". - * System-owned and incremented per squad; never user-supplied. - * @example "v1" - */ - version: string; - /** This is the SHA-256 hex of the snapshotted content used for no-op detection. */ - configHash: string; - /** This is the prior version label (vN-1). Null on v1 or for branch roots. */ - parentVersion?: string | null; - /** The version this version was restored from. Null when it was not restored. */ - restoredFromVersion?: string | null; - /** - * This is the actor that wrote this version. Email when created via JWT; null - * when created via API key, and null for a baseline version authored by nobody. - */ - createdBy?: string | null; - /** - * This is the soft-delete timestamp. Null when active. - * @format date-time - */ - deletedAt?: string | null; - /** - * This is the ISO 8601 date-time string of when the version was created. - * @format date-time - */ - createdAt: string; - /** This is the name of the squad. */ - name?: string; - /** - * This is the list of assistants that make up the squad. - * - * The call will start with the first assistant in the list. - */ - members: SquadMemberDTO[]; - /** - * This can be used to override all the assistants' settings and provide values for their template variables. - * - * Both `membersOverrides` and `members[n].assistantOverrides` can be used together. First, `members[n].assistantOverrides` is applied. Then, `membersOverrides` is applied as a global override. - */ - membersOverrides?: AssistantOverrides; -} - -export interface SquadVersionPaginatedMetadata { - nextCursor?: string | null; - hasNextPage: boolean; - limit: number; -} - -export interface SquadVersionPaginatedResponse { - results: SquadVersion[]; - metadata: SquadVersionPaginatedMetadata; -} - export interface UpdateSquadDTO { /** This is the name of the squad. */ name?: string; @@ -23584,67 +22916,6 @@ export interface SubscriptionLimits { remainingConcurrentCalls?: number; } -export interface TranscriptWordConfidence { - /** The word as the transcriber recognised it. */ - word: string; - /** - * Offset at which the word begins, measured from the start of the - * transcriber stream (ElevenLabs, which transcribes each utterance as its - * own request, measures from the start of that utterance's audio). The unit - * is transcriber-specific today: seconds for Deepgram, Soniox, Gladia and - * ElevenLabs realtime (`scribe_v2_realtime`); milliseconds for AssemblyAI, - * ElevenLabs HTTP Scribe and Google. Transcribers without per-word timing - * emit a placeholder, typically `0`. - */ - start: number; - /** Offset at which the word ends, with the same origin and unit as `start`. */ - end: number; - /** - * The transcriber's confidence for this word, in [0, 1]. Transcribers that - * report no per-word score, or whose stream does not map one (Cartesia, - * ElevenLabs HTTP Scribe, Google, Talkscriber and custom transcribers), emit - * `1` for every word; that placeholder is not a measurement. ElevenLabs - * realtime passes through its token log-probability, which is not a [0, 1] - * confidence. - * @min 0 - * @max 1 - */ - confidence: number; - /** - * The word with punctuation and casing applied, when the transcriber - * reports a punctuated form. The snake_case name deliberately mirrors the - * transcriber wire spelling already stored on every existing message; - * renaming it would break stored data. - */ - punctuated_word?: string; - /** The language the transcriber detected for this word, when it reports one. */ - language?: string; - /** - * The diarized speaker index this word was attributed to, when the - * transcriber reports one. - */ - speaker?: number; -} - -export interface UserMessageMetadata { - /** - * Per-word confidence scores from the transcriber. After consecutive - * transcript fragments are merged into one message the list covers the whole - * merged message, or is absent when any fragment lacked word scores. - */ - wordLevelConfidence?: TranscriptWordConfidence[]; - /** - * Marks a message injected out-of-band rather than produced by the - * transcriber (e.g. an inbound SMS relayed into the conversation). - */ - type?: string; - /** - * The channel or address the out-of-band message arrived from (e.g. the - * sender's phone number for an SMS). - */ - source?: string; -} - export interface UserMessage { /** The role of the user in the conversation. */ role: string; @@ -23664,32 +22935,8 @@ export interface UserMessage { detectedThreats?: string[]; /** The original message before filtering (only included if content was filtered). */ originalMessage?: string; - /** - * The transcriber's confidence score for this message, in [0, 1]. Only - * ever set alongside `confidenceSource` — see there for why an unmarked - * or out-of-range score is never stored. - * @min 0 - * @max 1 - */ - confidence?: number; - /** - * Whether `confidence` came directly from the transcriber ('provider') or - * was computed by Vapi ('derived'). - * - * 'derived' means Vapi computed the score from the transcriber's per-word - * scores; the exact aggregation is provider-specific (an average, a median - * or a minimum, depending on the transcriber). It is also 'derived' when - * consecutive transcript fragments were merged into one message, where the - * score is the minimum across the fragments. - * - * Absent means no trustworthy score was available for this message: either - * the transcriber does not report one, or the value it reported was invalid - * and was dropped. A merged message is unmarked whenever any fragment it - * contains was unmarked. - */ - confidenceSource?: "provider" | "derived"; /** The metadata associated with the message. Currently used to store the transcriber's word level confidence. */ - metadata?: UserMessageMetadata; + metadata?: object; /** Stable speaker label for diarized user speakers (e.g., "Speaker 1"). */ speakerLabel?: string; } @@ -23819,28 +23066,9 @@ export interface TranscriberCost { cost: number; } -export interface ModelCostServiceTierBreakdown { - /** This is the service tier OpenAI reported serving a request that asked for Fast mode, in Vapi's names: `fast` when Fast mode was served, otherwise the tier served, such as `default`. It is absent on the row for usage with no reported tier: requests that did not ask for Fast mode, requests that ended before OpenAI reported a tier, and other providers. */ - serviceTier?: string; - /** This is the cost in USD of the usage at this tier, rounded to 8 decimal places. */ - cost: number; - /** This is the number of prompt tokens used at this tier. */ - promptTokens: number; - /** This is the number of completion tokens generated at this tier. */ - completionTokens: number; - /** This is the number of cached prompt tokens used at this tier. This is a subset of `promptTokens`, not an addition to it. */ - cachedPromptTokens?: number; - /** This is the number of reasoning tokens generated at this tier. This is a subset of `completionTokens`, not an addition to it. */ - reasoningTokens?: number; -} - export interface ModelCost { /** This is the type of cost, always 'model' for this class. */ type: "model"; - /** Provider-reported billable duration in seconds. Currently supplied for GPT-Live; omitted for token-billed models. */ - seconds?: number; - /** Whether the reported usage is complete. False means the cost reflects missing or partial usage and may understate provider spend. Omitted when the provider integration does not report completeness. */ - usageComplete?: boolean; /** * This is the model that was used during the call. * @@ -23865,12 +23093,6 @@ export interface ModelCost { * This is a **subset of `completionTokens`**, not an addition to it: reasoning tokens are already counted in `completionTokens` and are already billed at the output-token rate. It is reported separately for visibility only and does not affect `cost`. */ reasoningTokens?: number; - /** - * This is the cost split by OpenAI service tier. It is only set on call costs, and only when OpenAI reported the tier it served for a request that asked for Fast mode. - * - * There is one row per reported tier, plus one row without `serviceTier` for usage with no reported tier. The rows add up to the token counts above, and to `cost` within rounding. - */ - serviceTierBreakdown?: ModelCostServiceTierBreakdown[]; /** This is the cost of the component in USD. */ cost: number; } @@ -24008,13 +23230,7 @@ export interface VapiWebsocketTransport { conversationType?: "voice"; /** Vapi websocket transport provider */ provider: "vapi.websocket"; - /** - * This is the audio format of the call. Defaults to 16KHz raw pcm_s16le. - * - * For GPT-Live calls using Vapi's custom WebSocket transport, explicitly set - * `{ format: pcm_s16le, sampleRate: 24000 }`. This requirement is specific - * to Vapi's WebSocket transport and does not apply to phone or web calls. - */ + /** This is the audio format of the call. Defaults to 16KHz raw pcm_s16le */ audioFormat?: AudioFormat; } @@ -24036,14 +23252,6 @@ export interface VapiWebCallTransport { * @example true */ roomDeleteOnUserLeaveEnabled?: boolean; - /** - * This is the meeting token the web client should join the call with. - * When video recording is enabled, joining with this token starts the cloud - * recording automatically server-side, which is more reliable than the - * client starting it after joining. Set by the server; only present when - * video recording is enabled. - */ - callToken?: string; /** This is the URL of the web call. */ callUrl?: string; /** This is the SIP URI of the web call. */ @@ -24124,70 +23332,6 @@ export interface VonageTransport { callUUID?: string; } -export interface TransientTwilioPhoneNumber { - /** - * This is the fallback destination an inbound call will be transferred to if: - * 1. `assistantId` is not set - * 2. `squadId` is not set - * 3. and, `assistant-request` message to the `serverUrl` fails - * - * If this is not set and above conditions are met, the inbound call is hung up with an error message. - */ - fallbackDestination?: TransferDestinationNumber | TransferDestinationSip; - /** This is the hooks that will be used for incoming calls to this phone number. */ - hooks?: (PhoneNumberHookCallRinging | PhoneNumberHookCallEnding)[]; - /** - * Controls whether Vapi sets the messaging webhook URL on the Twilio number during import. - * - * If set to `false`, Vapi will not update the Twilio messaging URL, leaving it as is. - * If `true` or omitted (default), Vapi will configure both the voice and messaging URLs. - * - * @default true - * @default true - */ - smsEnabled?: boolean; - /** - * This is the name of the phone number. This is just for your own reference. - * @maxLength 40 - */ - name?: string; - /** - * This is the assistant that will be used for incoming calls to this phone number. - * - * If neither `assistantId`, `squadId` nor `workflowId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected. - */ - assistantId?: string; - /** - * This is the workflow that will be used for incoming calls to this phone number. - * - * If neither `assistantId`, `squadId`, nor `workflowId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected. - */ - workflowId?: string; - /** - * This is the squad that will be used for incoming calls to this phone number. - * - * If neither `assistantId`, `squadId`, nor `workflowId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected. - */ - squadId?: string; - /** - * This is where Vapi will send webhooks. You can find all webhooks available along with their shape in ServerMessage schema. - * - * The order of precedence is: - * - * 1. assistant.server - * 2. phoneNumber.server - * 3. org.server - */ - server?: Server; - /** - * These are the digits of the phone number you own on your Twilio. - * @deprecated - */ - twilioPhoneNumber: string; - /** This is your Twilio Account SID that will be used to handle this phone number. */ - twilioAccountSid: string; -} - export interface AnalysisCostBreakdown { /** This is the cost to summarize the call. */ summary?: number; @@ -24362,18 +23506,11 @@ export interface NodeArtifact { export interface AssistantActivation { /** * This is the version label (e.g. `v3`) of the assistant active when - * the activation row was recorded. Absent for inline assistants, + * the activation row was recorded. `null` for inline assistants, * orgs not on assistant versioning, and parent assistants that have * not yet been published under it. */ assistantVersion?: string | null; - /** - * This is the version label (e.g. `v3`) of the squad that was governing the - * call when this activation was recorded. Absent for activations that no - * squad version governs: standalone-assistant calls, flag-off orgs, squads - * with no published version, and hops to an assistant outside the squad. - */ - squadVersion?: string | null; /** This is the name of the assistant that was active during the call. */ assistantName: string; /** This is the ID of the assistant that was active during the call. */ @@ -24562,6 +23699,157 @@ export interface WorkflowOverrides { variableValues?: object; } +export interface TransferPhoneNumberHookAction { + /** This is the type of action - must be "transfer" */ + type: "transfer"; + /** This is the destination details for the transfer - can be a phone number or SIP URI */ + destination?: TransferDestinationNumber | TransferDestinationSip; +} + +export interface SayPhoneNumberHookAction { + /** This is the type of action - must be "say" */ + type: "say"; + /** + * This is the message to say + * @maxLength 4000 + */ + exact: string; +} + +export interface PhoneNumberCallRingingHookFilter { + /** + * This is the type of filter - matches when the specified field starts with any of the given prefixes + * @maxLength 1000 + */ + type: "startsWith"; + /** + * The field to check. Currently only "number" (the caller's phone number) is supported. + * @maxLength 1000 + */ + key: "number"; + /** + * Array of prefixes to match. Do not include the + prefix. Inbound calls from numbers starting with any of these prefixes will trigger the hook actions. + * @maxLength 20 + * @example ["91","86","7"] + */ + startsWith: string[]; +} + +export interface PhoneNumberHookCallRinging { + /** + * This is the event to trigger the hook on + * @maxLength 1000 + */ + on: "call.ringing"; + /** Optional filters to decide when to trigger the hook. Currently supports filtering by caller country code. */ + filters?: PhoneNumberCallRingingHookFilter[]; + /** Only the first action will be executed. Additional actions will be ignored. */ + do: (TransferPhoneNumberHookAction | SayPhoneNumberHookAction)[]; +} + +export interface PhoneNumberCallEndingHookFilter { + /** + * This is the type of filter - currently only "oneOf" is supported + * @maxLength 1000 + */ + type: "oneOf"; + /** + * This is the key to filter on - only "call.endedReason" is allowed for phone number call ending hooks + * @maxLength 1000 + */ + key: "call.endedReason"; + /** This is the array of assistant-request related ended reasons to match against */ + oneOf: + | "assistant-request-failed" + | "assistant-request-returned-error" + | "assistant-request-returned-unspeakable-error" + | "assistant-request-returned-invalid-assistant" + | "assistant-request-returned-no-assistant" + | "assistant-request-returned-forwarding-phone-number"; +} + +export interface PhoneNumberHookCallEnding { + /** + * This is the event to trigger the hook on + * @maxLength 1000 + */ + on: "call.ending"; + /** Optional filters to decide when to trigger - restricted to assistant-request related ended reasons */ + filters?: PhoneNumberCallEndingHookFilter[]; + /** This is the action to perform when the hook triggers */ + do?: TransferPhoneNumberHookAction | SayPhoneNumberHookAction; +} + +export interface ImportTwilioPhoneNumberDTO { + /** + * This is the fallback destination an inbound call will be transferred to if: + * 1. `assistantId` is not set + * 2. `squadId` is not set + * 3. and, `assistant-request` message to the `serverUrl` fails + * + * If this is not set and above conditions are met, the inbound call is hung up with an error message. + */ + fallbackDestination?: TransferDestinationNumber | TransferDestinationSip; + /** This is the hooks that will be used for incoming calls to this phone number. */ + hooks?: (PhoneNumberHookCallRinging | PhoneNumberHookCallEnding)[]; + /** + * Controls whether Vapi sets the messaging webhook URL on the Twilio number during import. + * + * If set to `false`, Vapi will not update the Twilio messaging URL, leaving it as is. + * If `true` or omitted (default), Vapi will configure both the voice and messaging URLs. + * + * @default true + * @default true + */ + smsEnabled?: boolean; + /** + * These are the digits of the phone number you own on your Twilio. + * @deprecated + */ + twilioPhoneNumber: string; + /** This is your Twilio Account SID that will be used to handle this phone number. */ + twilioAccountSid: string; + /** This is the Twilio Auth Token that will be used to handle this phone number. */ + twilioAuthToken?: string; + /** This is the Twilio API Key that will be used to handle this phone number. If AuthToken is provided, this will be ignored. */ + twilioApiKey?: string; + /** This is the Twilio API Secret that will be used to handle this phone number. If AuthToken is provided, this will be ignored. */ + twilioApiSecret?: string; + /** + * This is the name of the phone number. This is just for your own reference. + * @maxLength 40 + */ + name?: string; + /** + * This is the assistant that will be used for incoming calls to this phone number. + * + * If neither `assistantId`, `squadId` nor `workflowId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected. + */ + assistantId?: string; + /** + * This is the workflow that will be used for incoming calls to this phone number. + * + * If neither `assistantId`, `squadId`, nor `workflowId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected. + */ + workflowId?: string; + /** + * This is the squad that will be used for incoming calls to this phone number. + * + * If neither `assistantId`, `squadId`, nor `workflowId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected. + */ + squadId?: string; + /** + * This is where Vapi will send webhooks. You can find all webhooks available along with their shape in ServerMessage schema. + * + * The order of precedence is: + * + * 1. assistant.server + * 2. phoneNumber.server + * 3. org.server + */ + server?: Server; +} + export interface CreateCustomerDTO { /** * This is the flag to toggle the E164 check for the `number` field. This is an advanced property which should be used if you know your use case requires it. @@ -24708,7 +23996,6 @@ export interface Call { | "call.start.error-subscription-concurrency-limit-reached" | "call.start.error-enterprise-feature-not-available-recording-consent" | "call.start.assistant-version-error-validation" - | "call.start.squad-version-error-validation" | "assistant-not-valid" | "call.start.error-vapifault-database-error" | "assistant-not-found" @@ -24828,7 +24115,6 @@ export interface Call { | "vonage-completed" | "phone-call-provider-bypass-enabled-but-no-call-received" | "call.in-progress.error-providerfault-transport-never-connected" - | "call.start.error-vapifault-worker-not-available" | "call.in-progress.error-vapifault-worker-not-available" | "call.in-progress.error-vapifault-transport-never-connected" | "call.in-progress.error-vapifault-transport-connected-but-call-not-active" @@ -24852,8 +24138,6 @@ export interface Call { | "call.in-progress.error-providerfault-deep-seek-llm-failed" | "call.in-progress.error-providerfault-baseten-llm-failed" | "call.in-progress.error-vapifault-chat-pipeline-failed-to-start" - | "call.in-progress.error-configfault-model-unsupported-in-squad" - | "call.in-progress.error-configfault-transport-unsupported-for-model" | "pipeline-error-openai-400-bad-request-validation-failed" | "pipeline-error-openai-401-unauthorized" | "pipeline-error-openai-401-incorrect-api-key" @@ -25200,9 +24484,6 @@ export interface Call { | "call.in-progress.error-vapifault-eleven-labs-max-character-limit-exceeded" | "call.in-progress.error-vapifault-eleven-labs-blocked-voice-potentially-against-terms-of-service-and-awaiting-verification" | "call.in-progress.error-providerfault-eleven-labs-system-busy-and-requested-upgrade" - | "call.in-progress.error-providerfault-eleven-labs-blocked-concurrent-requests-and-requested-upgrade" - | "call.in-progress.error-providerfault-eleven-labs-voice-disabled-by-owner" - | "call.in-progress.error-providerfault-eleven-labs-vapi-voice-disabled-by-owner" | "call.in-progress.error-providerfault-eleven-labs-500-server-error" | "call.in-progress.error-providerfault-eleven-labs-503-server-error" | "pipeline-error-playht-request-timed-out" @@ -25275,8 +24556,6 @@ export interface Call { | "call.in-progress.error-providerfault-outbound-sip-407-proxy-authentication-required" | "call.in-progress.error-providerfault-outbound-sip-408-request-timeout" | "call.in-progress.error-providerfault-outbound-sip-480-temporarily-unavailable" - | "sip-outbound-unallocated-number" - | "sip-outbound-carrier-released-call" | "call.ringing.hook-executed-say" | "call.ringing.hook-executed-transfer" | "call.ending.hook-executed-say" @@ -25296,11 +24575,6 @@ export interface Call { * direct `assistantId`. Omit to follow the latest version. */ assistantVersion?: string | null; - /** - * This is the squad version to use for this call. Supported only with - * direct `squadId`. Omit to follow the latest version. - */ - squadVersion?: string | null; /** This is the transport of the call. */ transport?: | VapiWebsocketTransport @@ -25309,12 +24583,6 @@ export interface Call { | VapiSipTransport | TelnyxTransport | VapiWebCallTransport; - /** - * This is the phone number that will be used for the call. To use an existing number, use `phoneNumberId` instead. - * - * Only relevant for `outboundPhoneCall` and `inboundPhoneCall` type. - */ - phoneNumber?: TransientTwilioPhoneNumber; /** This is the unique identifier for the call. */ id: string; /** This is the unique identifier for the org that this call belongs to. */ @@ -25431,6 +24699,12 @@ export interface Call { * Only relevant for `outboundPhoneCall` and `inboundPhoneCall` type. */ phoneNumberId?: string; + /** + * This is the phone number that will be used for the call. To use an existing number, use `phoneNumberId` instead. + * + * Only relevant for `outboundPhoneCall` and `inboundPhoneCall` type. + */ + phoneNumber?: ImportTwilioPhoneNumberDTO; /** * This is the customer that will be called. To call a transient customer , use `customer` instead. * @@ -25534,313 +24808,12 @@ export interface AssistantSpeechWordProgressTiming { words?: AssistantSpeechWordTimestamp[]; } -export interface TransferPhoneNumberHookAction { - /** This is the type of action - must be "transfer" */ - type: "transfer"; - /** This is the destination details for the transfer - can be a phone number or SIP URI */ - destination?: TransferDestinationNumber | TransferDestinationSip; -} - -export interface SayPhoneNumberHookAction { - /** This is the type of action - must be "say" */ - type: "say"; - /** - * This is the message to say - * @maxLength 4000 - */ - exact: string; -} - -export interface PhoneNumberCallRingingHookFilter { - /** - * This is the type of filter - matches when the specified field starts with any of the given prefixes - * @maxLength 1000 - */ - type: "startsWith"; - /** - * The field to check. Currently only "number" (the caller's phone number) is supported. - * @maxLength 1000 - */ - key: "number"; - /** - * Array of prefixes to match. Do not include the + prefix. Inbound calls from numbers starting with any of these prefixes will trigger the hook actions. - * @maxLength 20 - * @example ["91","86","7"] - */ - startsWith: string[]; -} - -export interface PhoneNumberHookCallRinging { - /** - * This is the event to trigger the hook on - * @maxLength 1000 - */ - on: "call.ringing"; - /** Optional filters to decide when to trigger the hook. Currently supports filtering by caller country code. */ - filters?: PhoneNumberCallRingingHookFilter[]; - /** Only the first action will be executed. Additional actions will be ignored. */ - do: (TransferPhoneNumberHookAction | SayPhoneNumberHookAction)[]; -} - -export interface PhoneNumberCallEndingHookFilter { - /** - * This is the type of filter - currently only "oneOf" is supported - * @maxLength 1000 - */ - type: "oneOf"; - /** - * This is the key to filter on - only "call.endedReason" is allowed for phone number call ending hooks - * @maxLength 1000 - */ - key: "call.endedReason"; - /** This is the array of assistant-request related ended reasons to match against */ - oneOf: - | "assistant-request-failed" - | "assistant-request-returned-error" - | "assistant-request-returned-unspeakable-error" - | "assistant-request-returned-invalid-assistant" - | "assistant-request-returned-no-assistant" - | "assistant-request-returned-forwarding-phone-number"; -} - -export interface PhoneNumberHookCallEnding { - /** - * This is the event to trigger the hook on - * @maxLength 1000 - */ - on: "call.ending"; - /** Optional filters to decide when to trigger - restricted to assistant-request related ended reasons */ - filters?: PhoneNumberCallEndingHookFilter[]; - /** This is the action to perform when the hook triggers */ - do?: TransferPhoneNumberHookAction | SayPhoneNumberHookAction; -} - -export interface ImportTwilioPhoneNumberDTO { - /** - * This is the fallback destination an inbound call will be transferred to if: - * 1. `assistantId` is not set - * 2. `squadId` is not set - * 3. and, `assistant-request` message to the `serverUrl` fails - * - * If this is not set and above conditions are met, the inbound call is hung up with an error message. - */ - fallbackDestination?: TransferDestinationNumber | TransferDestinationSip; - /** This is the hooks that will be used for incoming calls to this phone number. */ - hooks?: (PhoneNumberHookCallRinging | PhoneNumberHookCallEnding)[]; - /** - * Controls whether Vapi sets the messaging webhook URL on the Twilio number during import. - * - * If set to `false`, Vapi will not update the Twilio messaging URL, leaving it as is. - * If `true` or omitted (default), Vapi will configure both the voice and messaging URLs. - * - * @default true - * @default true - */ - smsEnabled?: boolean; - /** - * These are the digits of the phone number you own on your Twilio. - * @deprecated - */ - twilioPhoneNumber: string; - /** This is your Twilio Account SID that will be used to handle this phone number. */ - twilioAccountSid: string; - /** This is the Twilio Auth Token that will be used to handle this phone number. */ - twilioAuthToken?: string; - /** This is the Twilio API Key that will be used to handle this phone number. If AuthToken is provided, this will be ignored. */ - twilioApiKey?: string; - /** This is the Twilio API Secret that will be used to handle this phone number. If AuthToken is provided, this will be ignored. */ - twilioApiSecret?: string; - /** - * This is the name of the phone number. This is just for your own reference. - * @maxLength 40 - */ - name?: string; - /** - * This is the assistant that will be used for incoming calls to this phone number. - * - * If neither `assistantId`, `squadId` nor `workflowId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected. - */ - assistantId?: string; - /** - * This is the workflow that will be used for incoming calls to this phone number. - * - * If neither `assistantId`, `squadId`, nor `workflowId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected. - */ - workflowId?: string; - /** - * This is the squad that will be used for incoming calls to this phone number. - * - * If neither `assistantId`, `squadId`, nor `workflowId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected. - */ - squadId?: string; - /** - * This is where Vapi will send webhooks. You can find all webhooks available along with their shape in ServerMessage schema. - * - * The order of precedence is: - * - * 1. assistant.server - * 2. phoneNumber.server - * 3. org.server - */ - server?: Server; -} - export interface CreateCallDTO { /** * This is the assistant version to use for this call. Supported only with * direct `assistantId`. Omit to follow the latest version. */ assistantVersion?: string | null; - /** - * This is the squad version to use for this call. Supported only with - * direct `squadId`. Omit to follow the latest version. - */ - squadVersion?: string | null; - /** This is the transport of the call. */ - transport?: - | VapiWebsocketTransport - | VonageTransport - | TwilioTransport - | VapiSipTransport - | TelnyxTransport - | VapiWebCallTransport; - /** - * This is used to issue batch calls to multiple customers. - * - * Only relevant for `outboundPhoneCall`. To call a single customer, use `customer` instead. - */ - customers?: CreateCustomerDTO[]; - /** - * This is the name of the call. This is just for your own reference. - * @maxLength 40 - */ - name?: string; - /** This is the schedule plan of the call. */ - schedulePlan?: SchedulePlan; - /** - * This is the assistant ID that will be used for the call. To use a transient assistant, use `assistant` instead. - * - * To start a call with: - * - Assistant, use `assistantId` or `assistant` - * - Squad, use `squadId` or `squad` - * - Workflow, use `workflowId` or `workflow` - */ - assistantId?: string; - /** - * This is the assistant that will be used for the call. To use an existing assistant, use `assistantId` instead. - * - * To start a call with: - * - Assistant, use `assistant` - * - Squad, use `squad` - * - Workflow, use `workflow` - */ - assistant?: CreateAssistantDTO; - /** These are the overrides for the `assistant` or `assistantId`'s settings and template variables. */ - assistantOverrides?: AssistantOverrides; - /** - * This is the squad that will be used for the call. To use a transient squad, use `squad` instead. - * - * To start a call with: - * - Assistant, use `assistant` or `assistantId` - * - Squad, use `squad` or `squadId` - * - Workflow, use `workflow` or `workflowId` - */ - squadId?: string; - /** - * This is a squad that will be used for the call. To use an existing squad, use `squadId` instead. - * - * To start a call with: - * - Assistant, use `assistant` or `assistantId` - * - Squad, use `squad` or `squadId` - * - Workflow, use `workflow` or `workflowId` - */ - squad?: CreateSquadDTO; - /** - * These are the overrides for the `squad` or `squadId`'s member settings and template variables. - * This will apply to all members of the squad. - */ - squadOverrides?: AssistantOverrides; - /** - * This is the workflow that will be used for the call. To use a transient workflow, use `workflow` instead. - * - * To start a call with: - * - Assistant, use `assistant` or `assistantId` - * - Squad, use `squad` or `squadId` - * - Workflow, use `workflow` or `workflowId` - */ - workflowId?: string; - /** - * This is a workflow that will be used for the call. To use an existing workflow, use `workflowId` instead. - * - * To start a call with: - * - Assistant, use `assistant` or `assistantId` - * - Squad, use `squad` or `squadId` - * - Workflow, use `workflow` or `workflowId` - */ - workflow?: CreateWorkflowDTO; - /** These are the overrides for the `workflow` or `workflowId`'s settings and template variables. */ - workflowOverrides?: WorkflowOverrides; - /** - * This is the phone number that will be used for the call. To use a transient number, use `phoneNumber` instead. - * - * Only relevant for `outboundPhoneCall` and `inboundPhoneCall` type. - */ - phoneNumberId?: string; - /** - * This is the phone number that will be used for the call. To use an existing number, use `phoneNumberId` instead. - * - * Only relevant for `outboundPhoneCall` and `inboundPhoneCall` type. - */ - phoneNumber?: ImportTwilioPhoneNumberDTO; - /** - * This is the customer that will be called. To call a transient customer , use `customer` instead. - * - * Only relevant for `outboundPhoneCall` and `inboundPhoneCall` type. - */ - customerId?: string; - /** - * This is the customer that will be called. To call an existing customer, use `customerId` instead. - * - * Only relevant for `outboundPhoneCall` and `inboundPhoneCall` type. - */ - customer?: CreateCustomerDTO; -} - -export interface StructuredOutputFilterDTO { - /** Equal to */ - eq?: string; - /** Not equal to */ - neq?: string; - /** Greater than */ - gt?: string; - /** Greater than or equal to */ - gte?: string; - /** Less than */ - lt?: string; - /** Less than or equal to */ - lte?: string; - /** Contains */ - contains?: string; - /** Not contains */ - notContains?: string; -} - -export interface CallPaginatedResponse { - results: Call[]; - metadata: PaginationMeta; -} - -export interface CreateOutboundCallDTO { - /** - * This is the assistant version to use for this call. Supported only with - * direct `assistantId`. Omit to follow the latest version. - */ - assistantVersion?: string | null; - /** - * This is the squad version to use for this call. Supported only with - * direct `squadId`. Omit to follow the latest version. - */ - squadVersion?: string | null; /** This is the transport of the call. */ transport?: | VapiWebsocketTransport @@ -25951,17 +24924,152 @@ export interface CreateOutboundCallDTO { customer?: CreateCustomerDTO; } -export interface CreateWebCallDTO { +export interface StructuredOutputFilterDTO { + /** Equal to */ + eq?: string; + /** Not equal to */ + neq?: string; + /** Greater than */ + gt?: string; + /** Greater than or equal to */ + gte?: string; + /** Less than */ + lt?: string; + /** Less than or equal to */ + lte?: string; + /** Contains */ + contains?: string; + /** Not contains */ + notContains?: string; +} + +export interface CallPaginatedResponse { + results: Call[]; + metadata: PaginationMeta; +} + +export interface CreateOutboundCallDTO { /** * This is the assistant version to use for this call. Supported only with * direct `assistantId`. Omit to follow the latest version. */ assistantVersion?: string | null; + /** This is the transport of the call. */ + transport?: + | VapiWebsocketTransport + | VonageTransport + | TwilioTransport + | VapiSipTransport + | TelnyxTransport + | VapiWebCallTransport; + /** + * This is used to issue batch calls to multiple customers. + * + * Only relevant for `outboundPhoneCall`. To call a single customer, use `customer` instead. + */ + customers?: CreateCustomerDTO[]; + /** + * This is the name of the call. This is just for your own reference. + * @maxLength 40 + */ + name?: string; + /** This is the schedule plan of the call. */ + schedulePlan?: SchedulePlan; + /** + * This is the assistant ID that will be used for the call. To use a transient assistant, use `assistant` instead. + * + * To start a call with: + * - Assistant, use `assistantId` or `assistant` + * - Squad, use `squadId` or `squad` + * - Workflow, use `workflowId` or `workflow` + */ + assistantId?: string; + /** + * This is the assistant that will be used for the call. To use an existing assistant, use `assistantId` instead. + * + * To start a call with: + * - Assistant, use `assistant` + * - Squad, use `squad` + * - Workflow, use `workflow` + */ + assistant?: CreateAssistantDTO; + /** These are the overrides for the `assistant` or `assistantId`'s settings and template variables. */ + assistantOverrides?: AssistantOverrides; + /** + * This is the squad that will be used for the call. To use a transient squad, use `squad` instead. + * + * To start a call with: + * - Assistant, use `assistant` or `assistantId` + * - Squad, use `squad` or `squadId` + * - Workflow, use `workflow` or `workflowId` + */ + squadId?: string; + /** + * This is a squad that will be used for the call. To use an existing squad, use `squadId` instead. + * + * To start a call with: + * - Assistant, use `assistant` or `assistantId` + * - Squad, use `squad` or `squadId` + * - Workflow, use `workflow` or `workflowId` + */ + squad?: CreateSquadDTO; + /** + * These are the overrides for the `squad` or `squadId`'s member settings and template variables. + * This will apply to all members of the squad. + */ + squadOverrides?: AssistantOverrides; + /** + * This is the workflow that will be used for the call. To use a transient workflow, use `workflow` instead. + * + * To start a call with: + * - Assistant, use `assistant` or `assistantId` + * - Squad, use `squad` or `squadId` + * - Workflow, use `workflow` or `workflowId` + */ + workflowId?: string; + /** + * This is a workflow that will be used for the call. To use an existing workflow, use `workflowId` instead. + * + * To start a call with: + * - Assistant, use `assistant` or `assistantId` + * - Squad, use `squad` or `squadId` + * - Workflow, use `workflow` or `workflowId` + */ + workflow?: CreateWorkflowDTO; + /** These are the overrides for the `workflow` or `workflowId`'s settings and template variables. */ + workflowOverrides?: WorkflowOverrides; + /** + * This is the phone number that will be used for the call. To use a transient number, use `phoneNumber` instead. + * + * Only relevant for `outboundPhoneCall` and `inboundPhoneCall` type. + */ + phoneNumberId?: string; + /** + * This is the phone number that will be used for the call. To use an existing number, use `phoneNumberId` instead. + * + * Only relevant for `outboundPhoneCall` and `inboundPhoneCall` type. + */ + phoneNumber?: ImportTwilioPhoneNumberDTO; + /** + * This is the customer that will be called. To call a transient customer , use `customer` instead. + * + * Only relevant for `outboundPhoneCall` and `inboundPhoneCall` type. + */ + customerId?: string; + /** + * This is the customer that will be called. To call an existing customer, use `customerId` instead. + * + * Only relevant for `outboundPhoneCall` and `inboundPhoneCall` type. + */ + customer?: CreateCustomerDTO; +} + +export interface CreateWebCallDTO { /** - * This is the squad version to use for this call. Supported only with - * direct `squadId`. Omit to follow the latest version. + * This is the assistant version to use for this call. Supported only with + * direct `assistantId`. Omit to follow the latest version. */ - squadVersion?: string | null; + assistantVersion?: string | null; /** @default true */ roomDeleteOnUserLeaveEnabled?: boolean; /** @@ -26925,9 +26033,8 @@ export interface CreateCampaignDTO { /** These are the customers that will be called in the campaign. Required if dialPlan is not provided. Maximum of 10000 customers per campaign. */ customers?: CreateCustomerDTO[]; /** - * This is the maximum number of concurrent calls that will be made for the campaign. Defaults to 10. Maximum of 500, and may not exceed your organization's concurrency limit. + * This is the maximum number of concurrent calls that will be made for the campaign. Defaults to 10. * @min 1 - * @max 500 */ maxConcurrency?: number; /** These are the overrides for the assistant's settings and template variables for the campaign. Use this when the campaign targets an `assistantId`. */ @@ -26986,9 +26093,8 @@ export interface Campaign { /** These are the customers that will be called in the campaign. Required if dialPlan is not provided. Maximum of 10000 customers per campaign. */ customers?: CreateCustomerDTO[]; /** - * This is the maximum number of concurrent calls that will be made for the campaign. Defaults to 10. Maximum of 500, and may not exceed your organization's concurrency limit. + * This is the maximum number of concurrent calls that will be made for the campaign. Defaults to 10. * @min 1 - * @max 500 */ maxConcurrency?: number; /** These are the overrides for the assistant's settings and template variables for the campaign. Use this when the campaign targets an `assistantId`. */ @@ -27093,9 +26199,8 @@ export interface CampaignSummary { /** This is the schedule plan for the campaign. Calls will start at startedAt and continue until your organization’s concurrency limit is reached. Any remaining calls will be retried for up to one hour as capacity becomes available. After that hour or after latestAt, whichever comes first, any calls that couldn’t be placed won’t be retried. */ schedulePlan?: SchedulePlan; /** - * This is the maximum number of concurrent calls that will be made for the campaign. Defaults to 10. Maximum of 500, and may not exceed your organization's concurrency limit. + * This is the maximum number of concurrent calls that will be made for the campaign. Defaults to 10. * @min 1 - * @max 500 */ maxConcurrency?: number; /** These are the overrides for the assistant's settings and template variables for the campaign. Use this when the campaign targets an `assistantId`. */ @@ -27638,124 +26743,6 @@ export interface ExportSessionDTO { updatedAtLe?: string; } -export interface TrafficAllocationTarget { - /** The assistant version this target sends calls to, such as "v7". */ - assistantVersion: string; - /** - * The target's place in the split, starting at 0. Set from the order of the targets array. - * @min 0 - */ - position: number; - /** - * Share of calls sent to this version, from 0 to 100 with up to three decimal places. Targets add up to exactly 100. A 0% target keeps the version in the split without sending it calls. - * @min 0 - * @max 100 - */ - percentage: number; -} - -export interface TrafficAllocation { - /** Unique identifier. The most recently created allocation for an assistant is the one in effect. */ - id: string; - orgId: string; - /** The assistant this allocation splits calls for. */ - assistantId?: string; - /** 'explicit' splits calls across this allocation's targets. 'follow-latest' sends every call to the newest published version. */ - allocationIntent: "follow-latest" | "explicit"; - /** - * When this allocation was created, which is also when it took effect. - * @format date-time - */ - createdAt: string; - /** Who created this allocation. 'system' means Vapi created it automatically, for example when a publish advances a follow-latest allocation. */ - actorType: "user" | "api-key" | "system"; - /** The user id or API key id that created this allocation. Absent for system rows. */ - actorId?: string; - /** Email of the user who created this allocation, as of that time. */ - actorEmail?: string; - /** The note given when this allocation was created, if any. */ - description?: string; - /** The versions this allocation splits calls across, in position order. Empty for follow-latest allocations. */ - targets: TrafficAllocationTarget[]; -} - -export interface CreateTrafficAllocationTargetDTO { - /** A published version of this assistant, such as "v7". To split onto a new version, publish it first, then create the allocation. */ - assistantVersion: string; - /** - * Share of calls sent to this version, from 0 to 100 with up to three decimal places. Finer values are rejected, not rounded. All targets together add up to exactly 100. Position is taken from array order. - * @min 0 - * @max 100 - */ - percentage: number; -} - -export interface CreateTrafficAllocationDTO { - /** The assistant whose calls this allocation splits. */ - assistantId: string; - /** 'explicit' splits calls across targets, and is inferred when targets is sent. 'follow-latest' sends every call to the newest published version and is how you stop splitting; it must be sent explicitly. */ - allocationIntent?: "follow-latest" | "explicit"; - /** - * The versions to split calls across. Omit to stop splitting (with allocationIntent 'follow-latest'). Order in this array is the selection order (position). - * @maxItems 5 - */ - targets?: CreateTrafficAllocationTargetDTO[]; - /** - * Optional concurrency guard. Omit it and the write applies unconditionally (last write wins, matching every other Vapi update surface). Provide the id of the allocation you last read and the write applies only while that allocation is still governing; any mismatch is a 409 carrying the actual current id. - * @format uuid - */ - expectedCurrentAllocationId?: string; - /** - * An optional note explaining why you made this change. - * @maxLength 1000 - */ - description?: string; -} - -export interface GetTrafficAllocationLatestDTO { - /** The assistant whose latest allocation to return. */ - assistantId: string; -} - -export interface GetTrafficAllocationPaginatedDTO { - /** Filter to allocations for this assistant. */ - assistantId?: string; - /** - * The page number to return. Defaults to 1. - * @min 1 - */ - page?: number; - /** - * The maximum number of items to return. Defaults to 100. - * @min 0 - * @max 1000 - */ - limit?: number; - /** The sort order for pagination. Defaults to 'DESC'. */ - sortOrder?: "ASC" | "DESC"; -} - -export interface TrafficAllocationPaginatedResponse { - results: TrafficAllocation[]; - metadata: PaginationMeta; -} - -export interface TrafficAllocationLatestResponseDTO { - /** The source's current configuration: the newest allocation row with its targets. Absent when the source has never been configured. */ - allocation?: TrafficAllocation; -} - -export interface TrafficAllocationStaleConflictResponseDTO { - error: "stale_allocation"; - /** Human-readable reason the create was rejected. */ - message: string; - /** - * The allocation currently in effect. Null if none exists yet. - * @format uuid - */ - currentAllocationId?: string | null; -} - export interface ByoPhoneNumber { /** * This is the fallback destination an inbound call will be transferred to if: @@ -28865,8 +27852,6 @@ export interface PhoneNumberPaginatedResponse { export interface ApiRequestTool { latestVersion?: string | null; - /** Display-only baseline label returned by the tool list before a version is stored. Fetch version history to initialize it before using it as a pin. */ - baselineVersion?: string | null; /** Messages spoken while the tool is running. Multiple request-start messages are variants. For request-response-delayed, same timing means variants and different timings mean staged updates. */ messages?: ( | ToolMessageStart @@ -29188,8 +28173,6 @@ export interface CodeToolEnvironmentVariable { export interface CodeTool { latestVersion?: string | null; - /** Display-only baseline label returned by the tool list before a version is stored. Fetch version history to initialize it before using it as a pin. */ - baselineVersion?: string | null; /** Messages spoken while the tool is running. Multiple request-start messages are variants. For request-response-delayed, same timing means variants and different timings mean staged updates. */ messages?: ( | ToolMessageStart @@ -29352,8 +28335,6 @@ export interface CodeTool { export interface DtmfTool { latestVersion?: string | null; - /** Display-only baseline label returned by the tool list before a version is stored. Fetch version history to initialize it before using it as a pin. */ - baselineVersion?: string | null; /** Messages spoken while the tool is running. Multiple request-start messages are variants. For request-response-delayed, same timing means variants and different timings mean staged updates. */ messages?: ( | ToolMessageStart @@ -29467,8 +28448,6 @@ export interface DtmfTool { export interface EndCallTool { latestVersion?: string | null; - /** Display-only baseline label returned by the tool list before a version is stored. Fetch version history to initialize it before using it as a pin. */ - baselineVersion?: string | null; /** Messages spoken while the tool is running. Multiple request-start messages are variants. For request-response-delayed, same timing means variants and different timings mean staged updates. */ messages?: ( | ToolMessageStart @@ -29577,8 +28556,6 @@ export interface EndCallTool { export interface FunctionTool { latestVersion?: string | null; - /** Display-only baseline label returned by the tool list before a version is stored. Fetch version history to initialize it before using it as a pin. */ - baselineVersion?: string | null; /** Messages spoken while the tool is running. Multiple request-start messages are variants. For request-response-delayed, same timing means variants and different timings mean staged updates. */ messages?: ( | ToolMessageStart @@ -29744,8 +28721,6 @@ export interface KnowledgeBaseToolFunction { export interface KnowledgeBaseTool { latestVersion?: string | null; - /** Display-only baseline label returned by the tool list before a version is stored. Fetch version history to initialize it before using it as a pin. */ - baselineVersion?: string | null; /** Messages spoken while the tool is running. Multiple request-start messages are variants. For request-response-delayed, same timing means variants and different timings mean staged updates. */ messages?: ( | ToolMessageStart @@ -29860,8 +28835,6 @@ export interface KnowledgeBaseTool { export interface GhlTool { latestVersion?: string | null; - /** Display-only baseline label returned by the tool list before a version is stored. Fetch version history to initialize it before using it as a pin. */ - baselineVersion?: string | null; /** Messages spoken while the tool is running. Multiple request-start messages are variants. For request-response-delayed, same timing means variants and different timings mean staged updates. */ messages?: ( | ToolMessageStart @@ -29971,8 +28944,6 @@ export interface GhlTool { export interface MakeTool { latestVersion?: string | null; - /** Display-only baseline label returned by the tool list before a version is stored. Fetch version history to initialize it before using it as a pin. */ - baselineVersion?: string | null; /** Messages spoken while the tool is running. Multiple request-start messages are variants. For request-response-delayed, same timing means variants and different timings mean staged updates. */ messages?: ( | ToolMessageStart @@ -30082,8 +29053,6 @@ export interface MakeTool { export interface TransferCallTool { latestVersion?: string | null; - /** Display-only baseline label returned by the tool list before a version is stored. Fetch version history to initialize it before using it as a pin. */ - baselineVersion?: string | null; /** Messages spoken while the tool is running. Multiple request-start messages are variants. For request-response-delayed, same timing means variants and different timings mean staged updates. */ messages?: ( | ToolMessageStart @@ -30197,8 +29166,6 @@ export interface TransferCallTool { export interface HandoffTool { latestVersion?: string | null; - /** Display-only baseline label returned by the tool list before a version is stored. Fetch version history to initialize it before using it as a pin. */ - baselineVersion?: string | null; /** Messages spoken while the tool is running. Multiple request-start messages are variants. For request-response-delayed, same timing means variants and different timings mean staged updates. */ messages?: ( | ToolMessageStart @@ -30597,8 +29564,6 @@ export interface HandoffTool { export interface OutputTool { latestVersion?: string | null; - /** Display-only baseline label returned by the tool list before a version is stored. Fetch version history to initialize it before using it as a pin. */ - baselineVersion?: string | null; /** Messages spoken while the tool is running. Multiple request-start messages are variants. For request-response-delayed, same timing means variants and different timings mean staged updates. */ messages?: ( | ToolMessageStart @@ -30707,8 +29672,6 @@ export interface OutputTool { export interface BashTool { latestVersion?: string | null; - /** Display-only baseline label returned by the tool list before a version is stored. Fetch version history to initialize it before using it as a pin. */ - baselineVersion?: string | null; /** Messages spoken while the tool is running. Multiple request-start messages are variants. For request-response-delayed, same timing means variants and different timings mean staged updates. */ messages?: ( | ToolMessageStart @@ -30836,8 +29799,6 @@ export interface BashTool { export interface ComputerTool { latestVersion?: string | null; - /** Display-only baseline label returned by the tool list before a version is stored. Fetch version history to initialize it before using it as a pin. */ - baselineVersion?: string | null; /** Messages spoken while the tool is running. Multiple request-start messages are variants. For request-response-delayed, same timing means variants and different timings mean staged updates. */ messages?: ( | ToolMessageStart @@ -30971,8 +29932,6 @@ export interface ComputerTool { export interface TextEditorTool { latestVersion?: string | null; - /** Display-only baseline label returned by the tool list before a version is stored. Fetch version history to initialize it before using it as a pin. */ - baselineVersion?: string | null; /** Messages spoken while the tool is running. Multiple request-start messages are variants. For request-response-delayed, same timing means variants and different timings mean staged updates. */ messages?: ( | ToolMessageStart @@ -31100,8 +30059,6 @@ export interface TextEditorTool { export interface QueryTool { latestVersion?: string | null; - /** Display-only baseline label returned by the tool list before a version is stored. Fetch version history to initialize it before using it as a pin. */ - baselineVersion?: string | null; /** Messages spoken while the tool is running. Multiple request-start messages are variants. For request-response-delayed, same timing means variants and different timings mean staged updates. */ messages?: ( | ToolMessageStart @@ -31212,8 +30169,6 @@ export interface QueryTool { export interface GoogleCalendarCreateEventTool { latestVersion?: string | null; - /** Display-only baseline label returned by the tool list before a version is stored. Fetch version history to initialize it before using it as a pin. */ - baselineVersion?: string | null; /** Messages spoken while the tool is running. Multiple request-start messages are variants. For request-response-delayed, same timing means variants and different timings mean staged updates. */ messages?: ( | ToolMessageStart @@ -31322,8 +30277,6 @@ export interface GoogleCalendarCreateEventTool { export interface GoogleSheetsRowAppendTool { latestVersion?: string | null; - /** Display-only baseline label returned by the tool list before a version is stored. Fetch version history to initialize it before using it as a pin. */ - baselineVersion?: string | null; /** Messages spoken while the tool is running. Multiple request-start messages are variants. For request-response-delayed, same timing means variants and different timings mean staged updates. */ messages?: ( | ToolMessageStart @@ -31432,8 +30385,6 @@ export interface GoogleSheetsRowAppendTool { export interface GoogleCalendarCheckAvailabilityTool { latestVersion?: string | null; - /** Display-only baseline label returned by the tool list before a version is stored. Fetch version history to initialize it before using it as a pin. */ - baselineVersion?: string | null; /** Messages spoken while the tool is running. Multiple request-start messages are variants. For request-response-delayed, same timing means variants and different timings mean staged updates. */ messages?: ( | ToolMessageStart @@ -31542,8 +30493,6 @@ export interface GoogleCalendarCheckAvailabilityTool { export interface SlackSendMessageTool { latestVersion?: string | null; - /** Display-only baseline label returned by the tool list before a version is stored. Fetch version history to initialize it before using it as a pin. */ - baselineVersion?: string | null; /** Messages spoken while the tool is running. Multiple request-start messages are variants. For request-response-delayed, same timing means variants and different timings mean staged updates. */ messages?: ( | ToolMessageStart @@ -31652,8 +30601,6 @@ export interface SlackSendMessageTool { export interface SmsTool { latestVersion?: string | null; - /** Display-only baseline label returned by the tool list before a version is stored. Fetch version history to initialize it before using it as a pin. */ - baselineVersion?: string | null; /** Messages spoken while the tool is running. Multiple request-start messages are variants. For request-response-delayed, same timing means variants and different timings mean staged updates. */ messages?: ( | ToolMessageStart @@ -31762,8 +30709,6 @@ export interface SmsTool { export interface McpTool { latestVersion?: string | null; - /** Display-only baseline label returned by the tool list before a version is stored. Fetch version history to initialize it before using it as a pin. */ - baselineVersion?: string | null; /** Messages spoken while the tool is running. Multiple request-start messages are variants. For request-response-delayed, same timing means variants and different timings mean staged updates. */ messages?: ( | ToolMessageStart @@ -31887,8 +30832,6 @@ export interface McpTool { export interface GoHighLevelCalendarAvailabilityTool { latestVersion?: string | null; - /** Display-only baseline label returned by the tool list before a version is stored. Fetch version history to initialize it before using it as a pin. */ - baselineVersion?: string | null; /** Messages spoken while the tool is running. Multiple request-start messages are variants. For request-response-delayed, same timing means variants and different timings mean staged updates. */ messages?: ( | ToolMessageStart @@ -31997,8 +30940,6 @@ export interface GoHighLevelCalendarAvailabilityTool { export interface GoHighLevelCalendarEventCreateTool { latestVersion?: string | null; - /** Display-only baseline label returned by the tool list before a version is stored. Fetch version history to initialize it before using it as a pin. */ - baselineVersion?: string | null; /** Messages spoken while the tool is running. Multiple request-start messages are variants. For request-response-delayed, same timing means variants and different timings mean staged updates. */ messages?: ( | ToolMessageStart @@ -32107,8 +31048,6 @@ export interface GoHighLevelCalendarEventCreateTool { export interface GoHighLevelContactCreateTool { latestVersion?: string | null; - /** Display-only baseline label returned by the tool list before a version is stored. Fetch version history to initialize it before using it as a pin. */ - baselineVersion?: string | null; /** Messages spoken while the tool is running. Multiple request-start messages are variants. For request-response-delayed, same timing means variants and different timings mean staged updates. */ messages?: ( | ToolMessageStart @@ -32217,8 +31156,6 @@ export interface GoHighLevelContactCreateTool { export interface GoHighLevelContactGetTool { latestVersion?: string | null; - /** Display-only baseline label returned by the tool list before a version is stored. Fetch version history to initialize it before using it as a pin. */ - baselineVersion?: string | null; /** Messages spoken while the tool is running. Multiple request-start messages are variants. For request-response-delayed, same timing means variants and different timings mean staged updates. */ messages?: ( | ToolMessageStart @@ -32327,8 +31264,6 @@ export interface GoHighLevelContactGetTool { export interface SipRequestTool { latestVersion?: string | null; - /** Display-only baseline label returned by the tool list before a version is stored. Fetch version history to initialize it before using it as a pin. */ - baselineVersion?: string | null; /** Messages spoken while the tool is running. Multiple request-start messages are variants. For request-response-delayed, same timing means variants and different timings mean staged updates. */ messages?: ( | ToolMessageStart @@ -32443,8 +31378,6 @@ export interface SipRequestTool { export interface VoicemailTool { latestVersion?: string | null; - /** Display-only baseline label returned by the tool list before a version is stored. Fetch version history to initialize it before using it as a pin. */ - baselineVersion?: string | null; /** Messages spoken while the tool is running. Multiple request-start messages are variants. For request-response-delayed, same timing means variants and different timings mean staged updates. */ messages?: ( | ToolMessageStart @@ -37548,18 +36481,6 @@ export interface GetToolDraftsDTO { createdBy?: string; } -export interface ToolPinnedConflictResponseDTO { - error: "tool_pinned"; - /** Human-readable reason the parent-tool delete was rejected. */ - message: string; -} - -export interface ToolWriteConflictResponseDTO { - error: "tool_write_conflict"; - /** Human-readable reason the tool write was rejected. */ - message: string; -} - export interface UpdateToolVersionMetadataDTO { /** * Optional human-readable label for this version. Pass `null` to clear. @@ -37573,6 +36494,12 @@ export interface UpdateToolVersionMetadataDTO { versionDescription?: string | null; } +export interface ToolPinnedConflictResponseDTO { + error: "tool_pinned"; + /** Human-readable reason the parent-tool delete was rejected. */ + message: string; +} + export interface CreateFileDTO { /** * The file to upload. @@ -37632,11 +36559,6 @@ export interface UpdateFileDTO { name?: string; } -export interface FilePaginatedResponse { - results: File[]; - metadata: PaginationMeta; -} - export interface CustomKnowledgeBase { /** This knowledge base is bring your own knowledge base implementation. */ provider: "custom-knowledge-base"; @@ -37842,15 +36764,6 @@ export interface StructuredOutput { /** * This is the regex pattern to match against the transcript. * - * Simulation evaluations use a canonical transcript built from recorded messages: - * User: and AI: dialogue, AI: tool_calls: JSON name/arguments records, and - * AI: tool_call_results: JSON results. System messages are excluded. These - * fixed labels apply even when custom artifact transcript labels are configured. - * Tool payloads participate in first-match and all-match extraction in event order. - * An empty message array falls back to the supplied transcript verbatim. - * Production-call extraction and call preview use their existing transcripts, - * so previewing the same output on a simulation's call can return a different result. - * * Only used when type is 'regex'. Supports both raw patterns (e.g. '\d+') and * regex literal format (e.g. '/\d+/gi'). Uses RE2 syntax for safety. * @@ -37867,8 +36780,7 @@ export interface StructuredOutput { * This is the model that will be used to extract the structured output. * * To provide your own custom system and user prompts for structured output extraction, populate the messages array with your system and user messages. You can specify liquid templating in your system and user messages. - * For text extraction, you must reference 'transcript', 'messages', or 'messagesWithConfidence' with the `{{}}` syntax to access the conversation history. - * In structured outputs, `{{messages}}` includes conversation text and tool calls/results but omits caller transcription-confidence fields. Text extraction can use `{{messagesWithConfidence}}` when the output needs the original message history with transcription confidence. These variables also apply in structured-output schema descriptions. Audio-targeted (`messages-with-audio`) extraction ignores custom messages. Stored call artifacts and API messages retain their confidence data. + * Between the system or user messages, you must reference either 'transcript' or 'messages' with the `{{}}` syntax to access the conversation history. * Between the system or user messages, you must reference a variation of the structured output with the `{{}}` syntax to access the structured output definition. * i.e.: * `{{structuredOutput}}` @@ -37965,15 +36877,6 @@ export interface UpdateStructuredOutputDTO { /** * This is the regex pattern to match against the transcript. * - * Simulation evaluations use a canonical transcript built from recorded messages: - * User: and AI: dialogue, AI: tool_calls: JSON name/arguments records, and - * AI: tool_call_results: JSON results. System messages are excluded. These - * fixed labels apply even when custom artifact transcript labels are configured. - * Tool payloads participate in first-match and all-match extraction in event order. - * An empty message array falls back to the supplied transcript verbatim. - * Production-call extraction and call preview use their existing transcripts, - * so previewing the same output on a simulation's call can return a different result. - * * Only used when type is 'regex'. Supports both raw patterns (e.g. '\d+') and * regex literal format (e.g. '/\d+/gi'). Uses RE2 syntax for safety. * @@ -37986,24 +36889,11 @@ export interface UpdateStructuredOutputDTO { * @maxLength 1000 */ regex?: string; - /** - * Compliance configuration for this output. Only enable overrides if no sensitive data will be stored. - * @example {"forceStoreOnHipaaEnabled":false} - */ - compliancePlan?: ComplianceOverride; - /** - * These are the conditions that gate the execution of this structured output. Every condition must pass for the structured output to run (AND semantics). When omitted or empty, no user-defined conditions gate this output. Send null to clear a previously saved gate. - * @example [{"type":"minMessages","count":4},{"type":"minCallDuration","seconds":10}] - */ - conditions?: - | (MinMessagesCondition | MinCallDurationCondition | EndedReasonCondition)[] - | null; /** * This is the model that will be used to extract the structured output. * * To provide your own custom system and user prompts for structured output extraction, populate the messages array with your system and user messages. You can specify liquid templating in your system and user messages. - * For text extraction, you must reference 'transcript', 'messages', or 'messagesWithConfidence' with the `{{}}` syntax to access the conversation history. - * In structured outputs, `{{messages}}` includes conversation text and tool calls/results but omits caller transcription-confidence fields. Text extraction can use `{{messagesWithConfidence}}` when the output needs the original message history with transcription confidence. These variables also apply in structured-output schema descriptions. Audio-targeted (`messages-with-audio`) extraction ignores custom messages. Stored call artifacts and API messages retain their confidence data. + * Between the system or user messages, you must reference either 'transcript' or 'messages' with the `{{}}` syntax to access the conversation history. * Between the system or user messages, you must reference a variation of the structured output with the `{{}}` syntax to access the structured output definition. * i.e.: * `{{structuredOutput}}` @@ -38020,6 +36910,18 @@ export interface UpdateStructuredOutputDTO { | WorkflowAnthropicBedrockModel | WorkflowGoogleModel | WorkflowCustomModel; + /** + * Compliance configuration for this output. Only enable overrides if no sensitive data will be stored. + * @example {"forceStoreOnHipaaEnabled":false} + */ + compliancePlan?: ComplianceOverride; + /** + * These are the conditions that gate the execution of this structured output. Every condition must pass for the structured output to run (AND semantics). When omitted or empty, no user-defined conditions gate this output. Send null to clear a previously saved gate. + * @example [{"type":"minMessages","count":4},{"type":"minCallDuration","seconds":10}] + */ + conditions?: + | (MinMessagesCondition | MinCallDurationCondition | EndedReasonCondition)[] + | null; /** * This is the name of the structured output. * @minLength 1 @@ -38596,7 +37498,7 @@ export interface UpdatePersonalityDTO { * @maxLength 80 */ name?: string; - /** Complete assistant replacement. Omitted credentials and redacted server secrets are preserved when their endpoint URL is unchanged. Send credentials: [] to clear credentials; omit a server container to remove it. */ + /** This is the full assistant configuration for this personality. */ assistant?: CreateAssistantDTO; /** * Optional folder path for organizing personalities. @@ -38608,12 +37510,6 @@ export interface UpdatePersonalityDTO { path?: string | null; } -export interface PersonalityInUseConflictResponseDTO { - error: "personality_in_use"; - /** Human-readable reason the personality cannot be deleted. */ - message: string; -} - export interface SimulationHookInclude { /** * Include transcript in the hook payload @@ -38707,40 +37603,6 @@ export interface ScenarioToolMock { enabled?: boolean; } -export interface LatencyExpectation { - /** - * This is the latency component to measure. - * - turn: total time from the end of user speech to the start of assistant speech - * - model: LLM time to first token - * - voice: TTS time to first audio - * @example "turn" - */ - metric: "turn" | "model" | "voice"; - /** - * This is how the call's per-turn latencies are aggregated before comparing. - * p95 uses the nearest-rank method, so on calls with fewer than 20 turns it - * equals the max. - * @example "median" - */ - aggregation: "mean" | "median" | "p95" | "max"; - /** - * This is the ceiling in milliseconds. The expectation passes when the - * aggregated latency is less than or equal to this value. - * @min 1 - * @max 60000 - * @example 1200 - */ - thresholdMs: number; - /** - * This is whether this expectation must pass for the simulation to pass. - * Defaults to true. If false, the result is informational only. - * On a voice simulation, a metric that no turn measured fails the expectation. - * GPT Live targets are skipped, because their latency is not measured yet. - * @default true - */ - required?: boolean; -} - export interface CreateScenarioDTO { /** * This is the name of the scenario. @@ -38768,15 +37630,6 @@ export interface CreateScenarioDTO { targetOverrides?: AssistantOverrides; /** Scenario-level tool call mocks to use during simulations. */ toolMocks?: ScenarioToolMock[]; - /** - * Latency ceilings for voice simulations. Each expectation aggregates the - * target call's per-turn latencies and fails the simulation (when required) - * if the aggregated value exceeds its threshold. Skipped for chat simulations - * and GPT Live targets; on any other voice simulation, a metric that no turn - * measured fails. - * @maxItems 20 - */ - latencyExpectations?: LatencyExpectation[]; /** * Optional folder path for organizing scenarios. * Supports up to 3 levels (e.g., "dept/feature/variant"). @@ -38834,15 +37687,6 @@ export interface Scenario { targetOverrides?: AssistantOverrides; /** Scenario-level tool call mocks to use during simulations. */ toolMocks?: ScenarioToolMock[]; - /** - * Latency ceilings for voice simulations. Each expectation aggregates the - * target call's per-turn latencies and fails the simulation (when required) - * if the aggregated value exceeds its threshold. Skipped for chat simulations - * and GPT Live targets; on any other voice simulation, a metric that no turn - * measured fails. - * @maxItems 20 - */ - latencyExpectations?: LatencyExpectation[]; /** * Optional folder path for organizing scenarios. * Supports up to 3 levels (e.g., "dept/feature/variant"). @@ -38872,17 +37716,11 @@ export interface UpdateScenarioDTO { /** Hooks to run on simulation lifecycle events */ hooks?: (SimulationHookCallStarted | SimulationHookCallEnded)[]; /** - * Complete override replacement. Omitted credentials and redacted server secrets are preserved when their endpoint URL is unchanged. Send credentials: [] to clear credentials; omit a server container to remove it. + * Overrides to inject into the simulated target assistant or squad * @example {"variableValues":{"customerName":"Alice","orderId":"12345"}} */ targetOverrides?: AssistantOverrides; toolMocks?: ScenarioToolMock[]; - /** - * Latency ceilings for voice simulations. Omit to leave unchanged; send an - * empty array to remove all latency expectations. - * @maxItems 20 - */ - latencyExpectations?: LatencyExpectation[]; /** * Optional folder path for organizing scenarios. * Supports up to 3 levels (e.g., "dept/feature/variant"). @@ -38893,12 +37731,6 @@ export interface UpdateScenarioDTO { path?: string | null; } -export interface ScenarioInUseConflictResponseDTO { - error: "scenario_in_use"; - /** Human-readable reason the scenario cannot be deleted. */ - message: string; -} - export interface SimulationRunSimulationEntry { /** Type discriminator */ type: "simulation"; @@ -39072,8 +37904,6 @@ export interface CreateSimulationRunResponse { * @format uri */ url: string; - /** True when the request carried an `Idempotency-Key` that an earlier request already used with the same body: this is the run that request created, and no new run was started. False or absent when this request created the run. */ - reused?: boolean; } export interface SimulationRunPaymentRequiredResponse { @@ -39301,46 +38131,13 @@ export interface LatencyMetrics { avgEndpointing?: number; } -export interface LatencyEvaluationResult { - /** This is the latency component that was measured. */ - metric: "turn" | "model" | "voice"; - /** This is how the per-turn latencies were aggregated. */ - aggregation: "mean" | "median" | "p95" | "max"; - /** This is the ceiling in milliseconds the aggregated latency was compared against. */ - thresholdMs: number; - /** - * This is the aggregated latency in milliseconds, rounded to the nearest - * millisecond. The pass/fail verdict is decided on this rounded value. - * Absent when the expectation was skipped or no turn measured this metric. - */ - actualMs?: number; - /** This is the number of turns that contributed a value for this metric. */ - sampleCount: number; - /** This indicates whether the aggregated latency was at or below the threshold. */ - passed: boolean; - /** This indicates whether this expectation was required for the simulation to pass. */ - required: boolean; - /** - * This indicates whether this expectation was skipped. Expectations are only - * skipped on chat simulations and GPT Live targets, which record no latency. - */ - isSkipped?: boolean; - /** This contains the reason for skipping the expectation. */ - skipReason?: string; -} - export interface SimulationRunItemResults { /** This is the list of results from structured output evaluations. */ evaluations: StructuredOutputEvaluationResult[]; - /** This indicates whether all required, non-skipped structured output evaluations and latency expectations passed. */ + /** This indicates whether all required evaluations passed. */ passed: boolean; /** This contains the latency metrics collected from the call. */ latencyMetrics?: LatencyMetrics; - /** - * This is the list of results from the scenario's latency expectations. - * Absent when the scenario has no latency expectations. - */ - latencyEvaluations?: LatencyEvaluationResult[]; } export interface SimulationRunItemImprovementSuggestion { @@ -39671,22 +38468,6 @@ export interface Simulation { path?: string | null; } -export interface SimulationConcurrencyResponse { - orgId: string; - /** Max call slots for simulations (each voice simulation uses 2 call slots: tester + target) */ - concurrencyLimit: number; - /** Number of call slots currently in use by running simulations */ - activeSimulations: number; - /** Number of voice simulations that can start now (available call slots / 2) */ - availableToStart: number; - /** @format date-time */ - createdAt: string | null; - /** @format date-time */ - updatedAt: string | null; - /** True if org is using platform default concurrency limit */ - isDefault: boolean; -} - export interface UpdateSimulationDTO { /** * This is an optional friendly name for the simulation. @@ -39713,6 +38494,22 @@ export interface UpdateSimulationDTO { path?: string | null; } +export interface SimulationConcurrencyResponse { + orgId: string; + /** Max call slots for simulations (each voice simulation uses 2 call slots: tester + target) */ + concurrencyLimit: number; + /** Number of call slots currently in use by running simulations */ + activeSimulations: number; + /** Number of voice simulations that can start now (available call slots / 2) */ + availableToStart: number; + /** @format date-time */ + createdAt: string | null; + /** @format date-time */ + updatedAt: string | null; + /** True if org is using platform default concurrency limit */ + isDefault: boolean; +} + export interface BarInsightMetadata { /** * @minLength 1 @@ -40728,8 +39525,6 @@ export interface JSONQueryOnEventsTable { | "call.hookTriggered" | "call.hookSucceeded" | "call.hookFailed" - | "serverMessage.requestSucceeded" - | "serverMessage.requestFailed" | "call.statusReceived" | "call.silenceTimeout" | "call.microphoneTimeout" @@ -40754,14 +39549,12 @@ export interface JSONQueryOnEventsTable { | "assistant.model.requestAttemptStarted" | "assistant.model.requestAttemptSucceeded" | "assistant.model.requestAttemptFailed" - | "assistant.knowledgeBase.requestSucceeded" | "assistant.model.connectionOpened" | "assistant.model.connectionClosed" | "assistant.model.firstTokenReceived" | "assistant.model.tokenReceived" | "assistant.model.responseSucceeded" | "assistant.model.responseFailed" - | "assistant.model.responseEmpty" | "assistant.model.toolCallsReceived" | "assistant.model.reconnecting" | "assistant.model.cleanup" @@ -40798,8 +39591,7 @@ export interface JSONQueryOnEventsTable { | "pipeline.userSpeechStopped" | "pipeline.endpointingTriggered" | "pipeline.firstMessageStarted" - | "pipeline.firstMessageCompleted" - | "pipeline.denoiserFailed"; + | "pipeline.firstMessageCompleted"; /** * This is the operation to perform on matching events. * - "count": Returns the raw count of matching events @@ -41741,7 +40533,6 @@ export interface EvalOpenAIModel { * @maxLength 100 */ model: - | "gpt-6-luna" | "gpt-5.6-sol" | "gpt-5.6-terra" | "gpt-5.6-luna" @@ -41940,8 +40731,7 @@ export interface EvalAnthropicModel { | "claude-sonnet-4-5-20250929" | "claude-sonnet-4-6" | "claude-sonnet-5" - | "claude-haiku-4-5-20251001" - | "claude-haiku-5-5"; + | "claude-haiku-4-5-20251001"; /** * This is the optional configuration for Anthropic's thinking feature. * @@ -41982,7 +40772,6 @@ export interface EvalGoogleModel { * @maxLength 100 */ model: - | "gemini-3.8-flash" | "gemini-3.5-flash" | "gemini-3.1-flash-lite" | "gemini-3-flash-preview" @@ -42458,13 +41247,16 @@ export interface EvalRunPaginatedResponse { } export interface GetEvalRunPaginatedDTO { - sortBy?: "createdAt"; + id?: string; /** - * Literal, case-insensitive search across eval and assistant names. - * @maxLength 256 + * This is the page number to return. Defaults to 1. + * @min 1 */ - search?: string; - id?: string; + page?: number; + /** This is the sort order for pagination. Defaults to 'DESC'. */ + sortOrder?: "ASC" | "DESC"; + /** This is the column to sort by. Defaults to 'createdAt'. */ + sortBy?: "createdAt" | "duration" | "cost"; /** * This is the maximum number of items to return. Defaults to 100. * @min 0 @@ -42511,13 +41303,6 @@ export interface GetEvalRunPaginatedDTO { * @format date-time */ updatedAtLe?: string; - /** - * This is the page number to return. Defaults to 1. - * @min 1 - */ - page?: number; - /** This is the sort order for pagination. Defaults to 'DESC'. */ - sortOrder?: "ASC" | "DESC"; } export interface EvalRunTargetAssistant { @@ -42709,12 +41494,6 @@ export interface Subscription { * @format date-time */ updatedAt: string; - /** - * This is the display name for the subscription, used to tell subscriptions - * apart in the dashboard. It is unique across all subscriptions and does not - * appear on invoices, which use the company details on the invoice plan. - */ - name?: string | null; /** This is the type / tier of the subscription. */ type: | "pay-as-you-go" @@ -42770,6 +41549,10 @@ export interface Subscription { stripeCustomerId?: string; /** This is the Stripe payment ID. */ stripePaymentMethodId?: string; + /** If this flag is true, then the user has purchased slack support. */ + slackSupportEnabled?: boolean; + /** If this subscription has a slack support subscription, the slack channel's ID will be stored here. */ + slackChannelId?: string; /** * This is the HIPAA enabled flag for the subscription. It determines whether orgs under this * subscription have the option to enable HIPAA compliance. @@ -42855,11 +41638,6 @@ export interface Subscription { rbacEnabled?: boolean; /** This is the platform fee for the subscription. */ platformFee?: number; - /** - * This is how payment is collected for the subscription: charged to the card - * on file, or invoiced. - */ - billingCollectionMethod?: "charge_automatically" | "send_invoice" | null; } export interface Org { @@ -42948,29 +41726,6 @@ export interface Org { compliancePlan?: CompliancePlan; } -export interface OrgConcurrencyLimitsDTO { - /** True when the org is at or over its concurrency limit at the time of the read. This is a status read, not an admission decision: no call was evaluated and no slot is reserved. */ - concurrencyBlocked: boolean; - /** Maximum number of concurrent calls the subscription allows, at the time of the read. Computed as the subscription's included plus purchased concurrency, defaulting to the initial allowance when either is unset; call create derives its own figure and can differ for subscriptions with an unset allowance. */ - concurrencyLimit: number; - /** Plain concurrent-call headroom at the time of the read, floored at zero. Unlike the call create response, this does not include or reserve a slot for a new call. */ - remainingConcurrentCalls: number; -} - -export interface OrgApiLimitsDTO { - /** Approximate number of API requests counted against the rate limit in the current minute, in the region that served this request. The count lives in a tumbling one-minute window aligned to the UTC clock (unix seconds / 60), so it resets to zero at the top of every minute; there is no reset header — the next boundary is (floor(now / 60) + 1) * 60. */ - rateLimitUsage: number; - /** Maximum number of standard API requests allowed per minute, in the region that served this request. Live call media traffic is limited separately and is not reflected here. */ - rateLimitMax: number; -} - -export interface OrgLimitsResponseDTO { - /** Call concurrency limits for the subscription. Unlike the call create response, remainingConcurrentCalls does not reserve a slot for a new call: it is the plain headroom at the time of the read. Covers the concurrency gate only — credits, frozen subscriptions, included minutes, and the billing limit are not reflected here, so call create can still refuse. Omitted when the limits could not be computed, and for an org with no subscription at all (legacy ungated orgs), which has no concurrency ceiling. */ - subscriptionLimits?: OrgConcurrencyLimitsDTO; - /** API rate limit usage for the org. Approximate, per region, and scoped to the current minute. Omitted when the limit information is unavailable. */ - apiLimits?: OrgApiLimitsDTO; -} - export interface UpdateOrgDTO { /** * When this is enabled, logs, recordings, and transcriptions will be stored in HIPAA-compliant storage. Defaults to false. @@ -43022,14 +41777,7 @@ export interface UpdateOrgDTO { compliancePlan?: CompliancePlan; } -export interface UserWithRole { - /** This is the user's role in the org: a built-in role, the HIPAA special role, or a custom WorkOS role slug prefixed with `org-`. */ - role: "admin" | "editor" | "viewer" | "hipaa-special" | string; - /** - * This is the ISO 8601 date-time string of the user's most recent sign-in to the org's identity provider (WorkOS). It is a property of the user, not of this org membership, so a sign-in to another WorkOS org counts. Only returned to org admins; absent when the requester is not an admin, no sign-in has been recorded, or the org is not linked to WorkOS. - * @format date-time - */ - lastActiveAt?: string; +export interface User { /** This is the unique identifier for the profile or user. */ id: string; /** @@ -43052,7 +41800,7 @@ export interface InviteUserDTO { /** @maxItems 100 */ emails: string[]; /** @pattern ORG_ROLE_OR_CUSTOM_ROLE_PATTERN */ - role: "admin" | "editor" | "viewer" | "hipaa-special" | string; + role: "admin" | "editor" | "viewer" | string; redirectTo?: string; } @@ -43072,7 +41820,7 @@ export interface RevokeInvitationResponseDTO { export interface UpdateUserRoleDTO { userId: string; /** @pattern ORG_ROLE_OR_CUSTOM_ROLE_PATTERN */ - role: "admin" | "editor" | "viewer" | "hipaa-special" | string; + role: "admin" | "editor" | "viewer" | string; } export interface JwtResponse { @@ -47213,33 +45961,6 @@ export interface ClientMessageTranscript { detectedThreats?: string[]; /** The original transcript before filtering (only included if content was filtered). */ originalTranscript?: string; - /** - * The transcriber's confidence score for this transcript, in [0, 1]. Only - * ever set alongside `confidenceSource` — see there for why an unmarked - * score is never included. Set only on final user-role transcripts: each - * live message carries the score of the one fragment it was built from, and - * `artifact.messages` agrees with it per fragment. A stored message built - * from several consecutive fragments reports the minimum across them as - * 'derived', so it can differ from the individual live messages that fed - * it. Partials never carry a score, because nothing stored exists for a - * partial's score to agree with. - * @min 0 - * @max 1 - */ - confidence?: number; - /** - * Whether `confidence` came directly from the transcriber ('provider') or - * was computed by Vapi ('derived'). - * - * 'derived' means Vapi computed the score from the transcriber's per-word - * scores; the exact aggregation is provider-specific (an average, a median - * or a minimum, depending on the transcriber). - * - * Absent means no trustworthy score was available for this transcript: - * either the transcriber does not report one, or the value it reported was - * invalid and was dropped. - */ - confidenceSource?: "provider" | "derived"; } export interface ClientMessageToolCalls { @@ -47848,7 +46569,6 @@ export interface ServerMessageEndOfCallReport { | "call.start.error-subscription-concurrency-limit-reached" | "call.start.error-enterprise-feature-not-available-recording-consent" | "call.start.assistant-version-error-validation" - | "call.start.squad-version-error-validation" | "assistant-not-valid" | "call.start.error-vapifault-database-error" | "assistant-not-found" @@ -47968,7 +46688,6 @@ export interface ServerMessageEndOfCallReport { | "vonage-completed" | "phone-call-provider-bypass-enabled-but-no-call-received" | "call.in-progress.error-providerfault-transport-never-connected" - | "call.start.error-vapifault-worker-not-available" | "call.in-progress.error-vapifault-worker-not-available" | "call.in-progress.error-vapifault-transport-never-connected" | "call.in-progress.error-vapifault-transport-connected-but-call-not-active" @@ -47992,8 +46711,6 @@ export interface ServerMessageEndOfCallReport { | "call.in-progress.error-providerfault-deep-seek-llm-failed" | "call.in-progress.error-providerfault-baseten-llm-failed" | "call.in-progress.error-vapifault-chat-pipeline-failed-to-start" - | "call.in-progress.error-configfault-model-unsupported-in-squad" - | "call.in-progress.error-configfault-transport-unsupported-for-model" | "pipeline-error-openai-400-bad-request-validation-failed" | "pipeline-error-openai-401-unauthorized" | "pipeline-error-openai-401-incorrect-api-key" @@ -48340,9 +47057,6 @@ export interface ServerMessageEndOfCallReport { | "call.in-progress.error-vapifault-eleven-labs-max-character-limit-exceeded" | "call.in-progress.error-vapifault-eleven-labs-blocked-voice-potentially-against-terms-of-service-and-awaiting-verification" | "call.in-progress.error-providerfault-eleven-labs-system-busy-and-requested-upgrade" - | "call.in-progress.error-providerfault-eleven-labs-blocked-concurrent-requests-and-requested-upgrade" - | "call.in-progress.error-providerfault-eleven-labs-voice-disabled-by-owner" - | "call.in-progress.error-providerfault-eleven-labs-vapi-voice-disabled-by-owner" | "call.in-progress.error-providerfault-eleven-labs-500-server-error" | "call.in-progress.error-providerfault-eleven-labs-503-server-error" | "pipeline-error-playht-request-timed-out" @@ -48415,8 +47129,6 @@ export interface ServerMessageEndOfCallReport { | "call.in-progress.error-providerfault-outbound-sip-407-proxy-authentication-required" | "call.in-progress.error-providerfault-outbound-sip-408-request-timeout" | "call.in-progress.error-providerfault-outbound-sip-480-temporarily-unavailable" - | "sip-outbound-unallocated-number" - | "sip-outbound-carrier-released-call" | "call.ringing.hook-executed-say" | "call.ringing.hook-executed-transfer" | "call.ending.hook-executed-say" @@ -48776,7 +47488,6 @@ export interface ServerMessageStatusUpdate { | "call.start.error-subscription-concurrency-limit-reached" | "call.start.error-enterprise-feature-not-available-recording-consent" | "call.start.assistant-version-error-validation" - | "call.start.squad-version-error-validation" | "assistant-not-valid" | "call.start.error-vapifault-database-error" | "assistant-not-found" @@ -48896,7 +47607,6 @@ export interface ServerMessageStatusUpdate { | "vonage-completed" | "phone-call-provider-bypass-enabled-but-no-call-received" | "call.in-progress.error-providerfault-transport-never-connected" - | "call.start.error-vapifault-worker-not-available" | "call.in-progress.error-vapifault-worker-not-available" | "call.in-progress.error-vapifault-transport-never-connected" | "call.in-progress.error-vapifault-transport-connected-but-call-not-active" @@ -48920,8 +47630,6 @@ export interface ServerMessageStatusUpdate { | "call.in-progress.error-providerfault-deep-seek-llm-failed" | "call.in-progress.error-providerfault-baseten-llm-failed" | "call.in-progress.error-vapifault-chat-pipeline-failed-to-start" - | "call.in-progress.error-configfault-model-unsupported-in-squad" - | "call.in-progress.error-configfault-transport-unsupported-for-model" | "pipeline-error-openai-400-bad-request-validation-failed" | "pipeline-error-openai-401-unauthorized" | "pipeline-error-openai-401-incorrect-api-key" @@ -49268,9 +47976,6 @@ export interface ServerMessageStatusUpdate { | "call.in-progress.error-vapifault-eleven-labs-max-character-limit-exceeded" | "call.in-progress.error-vapifault-eleven-labs-blocked-voice-potentially-against-terms-of-service-and-awaiting-verification" | "call.in-progress.error-providerfault-eleven-labs-system-busy-and-requested-upgrade" - | "call.in-progress.error-providerfault-eleven-labs-blocked-concurrent-requests-and-requested-upgrade" - | "call.in-progress.error-providerfault-eleven-labs-voice-disabled-by-owner" - | "call.in-progress.error-providerfault-eleven-labs-vapi-voice-disabled-by-owner" | "call.in-progress.error-providerfault-eleven-labs-500-server-error" | "call.in-progress.error-providerfault-eleven-labs-503-server-error" | "pipeline-error-playht-request-timed-out" @@ -49343,8 +48048,6 @@ export interface ServerMessageStatusUpdate { | "call.in-progress.error-providerfault-outbound-sip-407-proxy-authentication-required" | "call.in-progress.error-providerfault-outbound-sip-408-request-timeout" | "call.in-progress.error-providerfault-outbound-sip-480-temporarily-unavailable" - | "sip-outbound-unallocated-number" - | "sip-outbound-carrier-released-call" | "call.ringing.hook-executed-say" | "call.ringing.hook-executed-transfer" | "call.ending.hook-executed-say" @@ -49580,33 +48283,6 @@ export interface ServerMessageTranscript { detectedThreats?: string[]; /** The original transcript before filtering (only included if content was filtered). */ originalTranscript?: string; - /** - * The transcriber's confidence score for this transcript, in [0, 1]. Only - * ever set alongside `confidenceSource` — see there for why an unmarked - * score is never included. Set only on final user-role transcripts: each - * live message carries the score of the one fragment it was built from, and - * `artifact.messages` agrees with it per fragment. A stored message built - * from several consecutive fragments reports the minimum across them as - * 'derived', so it can differ from the individual live messages that fed - * it. Partials never carry a score, because nothing stored exists for a - * partial's score to agree with. - * @min 0 - * @max 1 - */ - confidence?: number; - /** - * Whether `confidence` came directly from the transcriber ('provider') or - * was computed by Vapi ('derived'). - * - * 'derived' means Vapi computed the score from the transcriber's per-word - * scores; the exact aggregation is provider-specific (an average, a median - * or a minimum, depending on the transcriber). - * - * Absent means no trustworthy score was available for this transcript: - * either the transcriber does not report one, or the value it reported was - * invalid and was dropped. - */ - confidenceSource?: "provider" | "derived"; } export interface ServerMessageUserInterrupted { @@ -50573,25 +49249,6 @@ export interface ClientInboundMessageAddMessage { triggerResponseEnabled?: boolean; } -export interface ClientInboundMessageAppendContext { - /** - * HTTP-only: append context to a GPT-Live call via `call.monitor.controlUrl`. - * Not supported on WebSocket text frames or SDK data channels. - */ - type: "append-context"; - /** - * Commentary is spoken in the model's own words; thinking is silent context; - * instructions steer the speaker, including requests to try saying something. - * Acceptance does not guarantee exact wording or speech completion. - */ - kind: "commentary" | "thinking" | "instructions"; - /** - * @maxLength 16000 - * @pattern /\S/ - */ - content: string; -} - export interface ClientInboundMessageControl { /** * This is the type of the message. Send "control" message to control the assistant. `control` options are: @@ -50654,7 +49311,6 @@ export interface ClientInboundMessage { /** These are the messages that can be sent from client-side SDKs to control the call. */ message: | ClientInboundMessageAddMessage - | ClientInboundMessageAppendContext | ClientInboundMessageControl | ClientInboundMessageSay | ClientInboundMessageEndCall @@ -52281,29 +50937,6 @@ export class Api< ...params, }), - /** - * No description - * - * @tags Assistants - * @name AssistantControllerValidateBackgroundSoundUrl - * @summary Validate Background Sound URL - * @request POST:/assistant/background-sound/validate - * @secure - */ - assistantControllerValidateBackgroundSoundUrl: ( - data: ValidateBackgroundSoundUrlDTO, - params: RequestParams = {}, - ) => - this.request({ - path: `/assistant/background-sound/validate`, - method: "POST", - body: data, - secure: true, - type: ContentType.Json, - format: "json", - ...params, - }), - /** * No description * @@ -52368,7 +51001,7 @@ export class Api< data: UpdateAssistantDTO, params: RequestParams = {}, ) => - this.request({ + this.request({ path: `/assistant/${id}`, method: "PATCH", body: data, @@ -52392,7 +51025,7 @@ export class Api< data: UpdateAssistantDTO, params: RequestParams = {}, ) => - this.request({ + this.request({ path: `/assistant/${id}`, method: "PUT", body: data, @@ -52412,15 +51045,7 @@ export class Api< * @secure */ assistantControllerRemove: (id: string, params: RequestParams = {}) => - this.request< - Assistant, - | ({ - error: "assistant_pinned"; - } & AssistantPinnedConflictResponseDTO) - | ({ - error: "assistant_managed_by_vapi_agents"; - } & AssistantManagedConflictResponseDTO) - >({ + this.request({ path: `/assistant/${id}`, method: "DELETE", secure: true, @@ -52555,23 +51180,12 @@ export class Api< id: string, version: string, query?: { - /** Force-delete the version even when it is pinned (overrides the pin 409). Does NOT override the traffic-allocation 409: a version referenced by the currently-governing allocation can never be deleted. Note: force-deleting a version that is still being served will hard-fail any in-progress calls running on it. */ + /** Force-delete the version even when it is pinned (overrides the 409). Note: force-deleting a version that is still being served will hard-fail any in-progress calls running on it. */ force?: boolean; }, params: RequestParams = {}, ) => - this.request< - AssistantVersion, - | ({ - error: "version_pinned"; - } & VersionPinConflictResponseDTO) - | ({ - error: "version_in_governing_allocation"; - } & TrafficAllocationVersionConflictResponseDTO) - | ({ - error: "assistant_managed_by_vapi_agents"; - } & AssistantManagedConflictResponseDTO) - >({ + this.request({ path: `/assistant/${id}/versions/${version}`, method: "DELETE", query: query, @@ -52594,7 +51208,7 @@ export class Api< version: string, params: RequestParams = {}, ) => - this.request({ + this.request({ path: `/assistant/${id}/restore/${version}`, method: "POST", secure: true, @@ -52659,30 +51273,6 @@ export class Api< ...params, }), - /** - * No description - * - * @tags Assistants - * @name AssistantControllerUpsertDraft - * @summary Upsert Assistant Draft - * @request PUT:/assistant/{id}/draft - * @secure - */ - assistantControllerUpsertDraft: ( - id: string, - data: CreateAssistantDraftDTO, - params: RequestParams = {}, - ) => - this.request({ - path: `/assistant/${id}/draft`, - method: "PUT", - body: data, - secure: true, - type: ContentType.Json, - format: "json", - ...params, - }), - /** * No description * @@ -52857,11 +51447,6 @@ export class Api< * @example "assistant-1,assistant-2,assistant-3" */ assistantIdAny?: string; - /** - * Filter by multiple assistant version IDs (the version `id` from the assistant versions API, not the `vN` label). Provide as comma-separated values. A call with no recorded version never matches, and neither does a squad call, whose version changes at every handoff. - * @example "3fa85f64-5717-4562-b3fc-2c963f66afa6,9b2d6f1e-8c4a-4e0b-9f3d-1a2b3c4d5e6f" - */ - assistantVersionIdAny?: string; /** * Filter by multiple squad IDs. Provide as comma-separated values. * @example "squad-1,squad-2,squad-3" @@ -52956,8 +51541,6 @@ export class Api< * @maxLength 1000 */ email?: string; - /** This will return only simulation calls when true and exclude simulation calls when false. */ - isSimulation?: boolean; /** This will return calls with the specified assistantId. */ assistantId?: string; /** @@ -53094,11 +51677,6 @@ export class Api< * @example "assistant-1,assistant-2,assistant-3" */ assistantIdAny?: string; - /** - * Filter by multiple assistant version IDs (the version `id` from the assistant versions API, not the `vN` label). Provide as comma-separated values. A call with no recorded version never matches, and neither does a squad call, whose version changes at every handoff. - * @example "3fa85f64-5717-4562-b3fc-2c963f66afa6,9b2d6f1e-8c4a-4e0b-9f3d-1a2b3c4d5e6f" - */ - assistantVersionIdAny?: string; /** * Filter by multiple squad IDs. Provide as comma-separated values. * @example "squad-1,squad-2,squad-3" @@ -53135,8 +51713,6 @@ export class Api< * @example "hello world" */ transcript?: string; - /** This will return only simulation calls when true and exclude simulation calls when false. */ - isSimulation?: boolean; /** This will return calls with the specified assistantId. */ assistantId?: string; /** @@ -53274,11 +51850,6 @@ export class Api< * @example "assistant-1,assistant-2,assistant-3" */ assistantIdAny?: string; - /** - * Filter by multiple assistant version IDs (the version `id` from the assistant versions API, not the `vN` label). Provide as comma-separated values. A call with no recorded version never matches, and neither does a squad call, whose version changes at every handoff. - * @example "3fa85f64-5717-4562-b3fc-2c963f66afa6,9b2d6f1e-8c4a-4e0b-9f3d-1a2b3c4d5e6f" - */ - assistantVersionIdAny?: string; /** * Filter by multiple squad IDs. Provide as comma-separated values. * @example "squad-1,squad-2,squad-3" @@ -53315,8 +51886,6 @@ export class Api< * @example "hello world" */ transcript?: string; - /** This will return only simulation calls when true and exclude simulation calls when false. */ - isSimulation?: boolean; /** This will return calls with the specified assistantId. */ assistantId?: string; /** @@ -53769,54 +52338,6 @@ export class Api< ...params, }), - /** - * No description - * - * @tags Files - * @name FileV2ControllerFindAllPaginated - * @summary List Files with pagination - * @request GET:/v2/file - * @secure - */ - fileV2ControllerFindAllPaginated: ( - query?: { - purpose?: "assistant" | "composer-attachment" | "knowledge-base-v2"; - /** - * Filter files by case-insensitive substring match on name. - * @maxLength 40 - */ - name?: string; - /** - * Comma-separated MIME types. Files matching any listed type are returned. - * @maxLength 128 - * @example "application/pdf,text/plain" - */ - mimetypes?: string; - /** - * This is the maximum number of items to return. Defaults to 100. - * @min 0 - * @max 1000 - */ - limit?: number; - /** - * This is the page number to return. Defaults to 1. - * @min 1 - */ - page?: number; - /** This is the sort order for pagination. Defaults to 'DESC'. */ - sortOrder?: "ASC" | "DESC"; - }, - params: RequestParams = {}, - ) => - this.request({ - path: `/v2/file`, - method: "GET", - query: query, - secure: true, - format: "json", - ...params, - }), - /** * No description * @@ -54174,89 +52695,6 @@ export class Api< format: "json", ...params, }), - - /** - * @description Returns the version history for the squad. - * - * @tags Squads - * @name SquadControllerFindAllVersions - * @summary List Squad Versions - * @request GET:/squad/{id}/versions - * @secure - */ - squadControllerFindAllVersions: ( - id: string, - query?: { - /** Opaque base64-encoded keyset cursor. Omit on first page. */ - cursor?: string; - /** - * Page size, defaults to 25, capped at 100. - * @min 1 - * @max 100 - */ - limit?: number; - /** When true, also returns soft-deleted versions. Defaults to false. */ - includeDeleted?: boolean; - }, - params: RequestParams = {}, - ) => - this.request({ - path: `/squad/${id}/versions`, - method: "GET", - query: query, - secure: true, - format: "json", - ...params, - }), - - /** - * No description - * - * @tags Squads - * @name SquadControllerFindOneVersion - * @summary Get Squad Version - * @request GET:/squad/{id}/versions/{version} - * @secure - */ - squadControllerFindOneVersion: ( - id: string, - version: string, - query?: { - /** When true, returns the version even if soft-deleted. Defaults to false. */ - includeDeleted?: boolean; - }, - params: RequestParams = {}, - ) => - this.request({ - path: `/squad/${id}/versions/${version}`, - method: "GET", - query: query, - secure: true, - format: "json", - ...params, - }), - - /** - * @description Deletes the selected version and rolls the squad back to the highest remaining live version. Deleting a version that is already deleted returns 200 with that version. - * - * @tags Squads - * @name SquadControllerSoftDeleteVersion - * @summary Delete Squad Version - * @request DELETE:/squad/{id}/versions/{version} - * @secure - */ - squadControllerSoftDeleteVersion: ( - id: string, - version: string, - params: RequestParams = {}, - ) => - this.request({ - path: `/squad/${id}/versions/${version}`, - method: "DELETE", - secure: true, - format: "json", - ...params, - }), }; workflow = { /** @@ -55662,125 +54100,6 @@ export class Api< ...params, }), }; - trafficAllocations = { - /** - * @description Creates a new traffic allocation for an assistant, replacing the one currently in effect. To start or adjust a split, send targets naming published versions (such as "v7") with percentages totaling 100; allocationIntent is inferred as 'explicit'. To stop splitting and send every call to the newest published version, send allocationIntent 'follow-latest' with no targets field; stopping always names its intent, so a dropped targets field can never end a split by accident. Traffic splitting is in beta, rolling out to select organizations; requests from organizations without access receive a 403. - * - * @tags Traffic Allocations - * @name TrafficAllocationControllerCreate - * @summary Create traffic allocation - * @request POST:/traffic-allocations - * @secure - */ - trafficAllocationControllerCreate: ( - data: CreateTrafficAllocationDTO, - params: RequestParams = {}, - ) => - this.request< - TrafficAllocation, - | void - | ( - | ({ - error: "stale_allocation"; - } & TrafficAllocationStaleConflictResponseDTO) - | ({ - error: "assistant_managed_by_vapi_agents"; - } & AssistantManagedConflictResponseDTO) - ) - >({ - path: `/traffic-allocations`, - method: "POST", - body: data, - secure: true, - type: ContentType.Json, - format: "json", - ...params, - }), - - /** - * @description The append-only history of an assistant's allocations, newest first. Traffic splitting is in beta, rolling out to select organizations; requests from organizations without access receive a 403. - * - * @tags Traffic Allocations - * @name TrafficAllocationControllerFindAllPaginated - * @summary List traffic allocations - * @request GET:/traffic-allocations - * @secure - */ - trafficAllocationControllerFindAllPaginated: ( - query?: { - /** Filter to allocations for this assistant. */ - assistantId?: string; - /** - * The page number to return. Defaults to 1. - * @min 1 - */ - page?: number; - /** - * The maximum number of items to return. Defaults to 100. - * @min 0 - * @max 1000 - */ - limit?: number; - /** The sort order for pagination. Defaults to 'DESC'. */ - sortOrder?: "ASC" | "DESC"; - }, - params: RequestParams = {}, - ) => - this.request({ - path: `/traffic-allocations`, - method: "GET", - query: query, - secure: true, - format: "json", - ...params, - }), - - /** - * @description The allocation currently in effect for the assistant, with its targets. The response carries no allocation field when traffic splitting has never been configured. Traffic splitting is in beta, rolling out to select organizations; requests from organizations without access receive a 403. - * - * @tags Traffic Allocations - * @name TrafficAllocationControllerLatestGet - * @summary Get latest traffic allocation - * @request GET:/traffic-allocations/latest - * @secure - */ - trafficAllocationControllerLatestGet: ( - query: { - /** The assistant whose latest allocation to return. */ - assistantId: string; - }, - params: RequestParams = {}, - ) => - this.request({ - path: `/traffic-allocations/latest`, - method: "GET", - query: query, - secure: true, - format: "json", - ...params, - }), - - /** - * @description Returns a single allocation by id, including its targets and actor attribution. Traffic splitting is in beta, rolling out to select organizations; requests from organizations without access receive a 403. - * - * @tags Traffic Allocations - * @name TrafficAllocationControllerFindOne - * @summary Get traffic allocation - * @request GET:/traffic-allocations/{id} - * @secure - */ - trafficAllocationControllerFindOne: ( - id: string, - params: RequestParams = {}, - ) => - this.request({ - path: `/traffic-allocations/${id}`, - method: "GET", - secure: true, - format: "json", - ...params, - }), - }; phoneNumber = { /** * @description Use POST /phone-number instead. @@ -56722,7 +55041,7 @@ export class Api< | ({ type: "voicemail"; } & VoicemailTool), - ToolWriteConflictResponseDTO + any >({ path: `/tool/${id}`, method: "PATCH", @@ -56816,12 +55135,7 @@ export class Api< | ({ type: "voicemail"; } & VoicemailTool), - | ({ - error: "tool_pinned"; - } & ToolPinnedConflictResponseDTO) - | ({ - error: "tool_write_conflict"; - } & ToolWriteConflictResponseDTO) + ToolPinnedConflictResponseDTO >({ path: `/tool/${id}`, method: "DELETE", @@ -56855,7 +55169,7 @@ export class Api< }, params: RequestParams = {}, ) => - this.request({ + this.request({ path: `/tool/${id}/versions`, method: "GET", query: query, @@ -56882,7 +55196,7 @@ export class Api< }, params: RequestParams = {}, ) => - this.request({ + this.request({ path: `/tool/${id}/versions/${version}`, method: "GET", query: query, @@ -56906,7 +55220,7 @@ export class Api< data: UpdateToolVersionMetadataDTO, params: RequestParams = {}, ) => - this.request({ + this.request({ path: `/tool/${id}/versions/${version}`, method: "PATCH", body: data, @@ -56934,15 +55248,7 @@ export class Api< }, params: RequestParams = {}, ) => - this.request< - ToolVersion, - | ({ - error: "version_pinned"; - } & VersionPinConflictResponseDTO) - | ({ - error: "tool_write_conflict"; - } & ToolWriteConflictResponseDTO) - >({ + this.request({ path: `/tool/${id}/versions/${version}`, method: "DELETE", query: query, @@ -56951,102 +55257,6 @@ export class Api< ...params, }), - /** - * @description Restores the selected version as the current configuration and publishes it as a new version. Deletes any drafts for this tool. - * - * @tags Tools - * @name ToolControllerToolVersionRestore - * @summary Restore Tool Version - * @request POST:/tool/{id}/restore/{version} - * @secure - */ - toolControllerToolVersionRestore: ( - id: string, - version: string, - params: RequestParams = {}, - ) => - this.request< - | ({ - type: "apiRequest"; - } & ApiRequestTool) - | ({ - type: "code"; - } & CodeTool) - | ({ - type: "dtmf"; - } & DtmfTool) - | ({ - type: "endCall"; - } & EndCallTool) - | ({ - type: "function"; - } & FunctionTool) - | ({ - type: "knowledgeBase"; - } & KnowledgeBaseTool) - | ({ - type: "transferCall"; - } & TransferCallTool) - | ({ - type: "handoff"; - } & HandoffTool) - | ({ - type: "bash"; - } & BashTool) - | ({ - type: "computer"; - } & ComputerTool) - | ({ - type: "textEditor"; - } & TextEditorTool) - | ({ - type: "query"; - } & QueryTool) - | ({ - type: "google.calendar.event.create"; - } & GoogleCalendarCreateEventTool) - | ({ - type: "google.sheets.row.append"; - } & GoogleSheetsRowAppendTool) - | ({ - type: "google.calendar.availability.check"; - } & GoogleCalendarCheckAvailabilityTool) - | ({ - type: "slack.message.send"; - } & SlackSendMessageTool) - | ({ - type: "sms"; - } & SmsTool) - | ({ - type: "mcp"; - } & McpTool) - | ({ - type: "gohighlevel.calendar.availability.check"; - } & GoHighLevelCalendarAvailabilityTool) - | ({ - type: "gohighlevel.calendar.event.create"; - } & GoHighLevelCalendarEventCreateTool) - | ({ - type: "gohighlevel.contact.create"; - } & GoHighLevelContactCreateTool) - | ({ - type: "gohighlevel.contact.get"; - } & GoHighLevelContactGetTool) - | ({ - type: "sipRequest"; - } & SipRequestTool) - | ({ - type: "voicemail"; - } & VoicemailTool), - void | ToolWriteConflictResponseDTO - >({ - path: `/tool/${id}/restore/${version}`, - method: "POST", - secure: true, - format: "json", - ...params, - }), - /** * No description * @@ -57094,15 +55304,7 @@ export class Api< data: CreateToolDraftDTO, params: RequestParams = {}, ) => - this.request< - ToolDraft, - | ({ - error: "draft_exists"; - } & ToolDraftConflictResponseDTO) - | ({ - error: "tool_write_conflict"; - } & ToolWriteConflictResponseDTO) - >({ + this.request({ path: `/tool/${id}/draft`, method: "POST", body: data, @@ -57236,9 +55438,8 @@ export class Api< * @secure */ fileControllerFindAll: ( - query?: { - /** Only return files with this purpose. When omitted, files of every purpose except composer attachments are returned. */ - purpose?: "assistant" | "composer-attachment" | "knowledge-base-v2"; + query: { + purpose: string; }, params: RequestParams = {}, ) => @@ -57589,7 +55790,7 @@ export class Api< data: CreateStructuredOutputDTO, params: RequestParams = {}, ) => - this.request({ + this.request({ path: `/structured-output`, method: "POST", body: data, @@ -57637,7 +55838,7 @@ export class Api< data: UpdateStructuredOutputDTO, params: RequestParams = {}, ) => - this.request({ + this.request({ path: `/structured-output/${id}`, method: "PATCH", query: query, @@ -57661,7 +55862,7 @@ export class Api< id: string, params: RequestParams = {}, ) => - this.request({ + this.request({ path: `/structured-output/${id}`, method: "DELETE", secure: true, @@ -57683,9 +55884,7 @@ export class Api< params: RequestParams = {}, ) => this.request< - | (StructuredOutputRunPreviewResponse & - Record) - | StructuredOutputRerunResponse, + StructuredOutputRunPreviewResponse | StructuredOutputRerunResponse, any >({ path: `/structured-output/run`, @@ -58401,7 +56600,7 @@ export class Api< * @secure */ personalityControllerRemove: (id: string, params: RequestParams = {}) => - this.request({ + this.request({ path: `/eval/simulation/personality/${id}`, method: "DELETE", secure: true, @@ -58569,7 +56768,7 @@ export class Api< * @secure */ scenarioControllerRemove: (id: string, params: RequestParams = {}) => - this.request({ + this.request({ path: `/eval/simulation/scenario/${id}`, method: "DELETE", secure: true, @@ -58592,7 +56791,7 @@ export class Api< ) => this.request< CreateSimulationRunResponse, - SimulationRunPaymentRequiredResponse | void + SimulationRunPaymentRequiredResponse >({ path: `/eval/simulation/run`, method: "POST", @@ -59001,27 +57200,6 @@ export class Api< ...params, }), - /** - * No description - * - * @tags Simulation Suites - * @name SimulationSuiteControllerDuplicate - * @summary Duplicate simulation suite - * @request POST:/eval/simulation/suite/{id}/duplicate - * @secure - */ - simulationSuiteControllerDuplicate: ( - id: string, - params: RequestParams = {}, - ) => - this.request({ - path: `/eval/simulation/suite/${id}/duplicate`, - method: "POST", - secure: true, - format: "json", - ...params, - }), - /** * No description * @@ -59216,24 +57394,6 @@ export class Api< ...params, }), - /** - * No description - * - * @tags Simulations - * @name SimulationControllerGetConcurrency - * @summary Get Simulation Concurrency - * @request GET:/eval/simulation/concurrency - * @secure - */ - simulationControllerGetConcurrency: (params: RequestParams = {}) => - this.request({ - path: `/eval/simulation/concurrency`, - method: "GET", - secure: true, - format: "json", - ...params, - }), - /** * No description * @@ -59294,6 +57454,24 @@ export class Api< ...params, }), + /** + * No description + * + * @tags Simulations + * @name SimulationControllerGetConcurrency + * @summary Get Simulation Concurrency + * @request GET:/eval/simulation/concurrency + * @secure + */ + simulationControllerGetConcurrency: (params: RequestParams = {}) => + this.request({ + path: `/eval/simulation/concurrency`, + method: "GET", + secure: true, + format: "json", + ...params, + }), + /** * No description * @@ -59304,7 +57482,7 @@ export class Api< * @secure */ evalControllerCreate: (data: CreateEvalDTO, params: RequestParams = {}) => - this.request({ + this.request({ path: `/eval`, method: "POST", body: data, @@ -59384,7 +57562,7 @@ export class Api< }, params: RequestParams = {}, ) => - this.request({ + this.request({ path: `/eval`, method: "GET", query: query, @@ -59407,7 +57585,7 @@ export class Api< data: UpdateEvalDTO, params: RequestParams = {}, ) => - this.request({ + this.request({ path: `/eval/${id}`, method: "PATCH", body: data, @@ -59427,7 +57605,7 @@ export class Api< * @secure */ evalControllerRemove: (id: string, params: RequestParams = {}) => - this.request({ + this.request({ path: `/eval/${id}`, method: "DELETE", secure: true, @@ -59445,7 +57623,7 @@ export class Api< * @secure */ evalControllerGet: (id: string, params: RequestParams = {}) => - this.request({ + this.request({ path: `/eval/${id}`, method: "GET", secure: true, @@ -59463,7 +57641,7 @@ export class Api< * @secure */ evalControllerRemoveRun: (id: string, params: RequestParams = {}) => - this.request({ + this.request({ path: `/eval/run/${id}`, method: "DELETE", secure: true, @@ -59481,7 +57659,7 @@ export class Api< * @secure */ evalControllerGetRun: (id: string, params: RequestParams = {}) => - this.request({ + this.request({ path: `/eval/run/${id}`, method: "GET", secure: true, @@ -59499,13 +57677,12 @@ export class Api< * @secure */ evalControllerRun: (data: CreateEvalRunDTO, params: RequestParams = {}) => - this.request({ + this.request({ path: `/eval/run`, method: "POST", body: data, secure: true, type: ContentType.Json, - format: "json", ...params, }), @@ -59520,13 +57697,16 @@ export class Api< */ evalControllerGetRunsPaginated: ( query?: { - sortBy?: "createdAt"; + id?: string; /** - * Literal, case-insensitive search across eval and assistant names. - * @maxLength 256 + * This is the page number to return. Defaults to 1. + * @min 1 */ - search?: string; - id?: string; + page?: number; + /** This is the sort order for pagination. Defaults to 'DESC'. */ + sortOrder?: "ASC" | "DESC"; + /** This is the column to sort by. Defaults to 'createdAt'. */ + sortBy?: "createdAt" | "duration" | "cost"; /** * This is the maximum number of items to return. Defaults to 100. * @min 0 @@ -59573,17 +57753,10 @@ export class Api< * @format date-time */ updatedAtLe?: string; - /** - * This is the page number to return. Defaults to 1. - * @min 1 - */ - page?: number; - /** This is the sort order for pagination. Defaults to 'DESC'. */ - sortOrder?: "ASC" | "DESC"; }, params: RequestParams = {}, ) => - this.request({ + this.request({ path: `/eval/run`, method: "GET", query: query, @@ -60297,24 +58470,6 @@ export class Api< ...params, }), - /** - * @description Returns the call concurrency limits and API rate limit usage for the authenticated org. Read-only and cheap enough to poll every few seconds. The X-RateLimit-* response headers describe this endpoint's own polling ceiling, not the API budget reported in apiLimits. - * - * @tags Orgs - * @name OrgControllerLimitsGet - * @summary Get org limits - * @request GET:/org/limits - * @secure - */ - orgControllerLimitsGet: (params: RequestParams = {}) => - this.request({ - path: `/org/limits`, - method: "GET", - secure: true, - format: "json", - ...params, - }), - /** * No description * @@ -60384,7 +58539,7 @@ export class Api< * @secure */ orgControllerFindAllUsers: (id: string, params: RequestParams = {}) => - this.request({ + this.request({ path: `/org/${id}/user`, method: "GET", secure: true, diff --git a/package-lock.json b/package-lock.json index 3b9563b8d..455cf31b0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -22,99 +22,17 @@ "ts-node": "^10.9.2" }, "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@apidevtools/json-schema-ref-parser": { - "version": "14.0.1", - "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-14.0.1.tgz", - "integrity": "sha512-Oc96zvmxx1fqoSEdUmfmvvb59/KDOnUoJ7s2t7bISyAn0XEz57LCCw8k2Y4Pf3mwKaZLMciESALORLgfe2frCw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.15", - "js-yaml": "^4.1.0" - }, - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://github.com/sponsors/philsturgeon" - } - }, - "node_modules/@apidevtools/json-schema-ref-parser/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/@apidevtools/json-schema-ref-parser/node_modules/js-yaml": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.2.tgz", - "integrity": "sha512-SFNOvSJ+Dgf/9An904Yx+CgSlIPCkIpao4qo51lpee25TIRejdH3rhR4EZMGoNx3/TP3O+wzWuiTFl4sqbltzA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/puzrin" - }, - { - "type": "github", - "url": "https://github.com/sponsors/nodeca" - } - ], - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/@apidevtools/openapi-schemas": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@apidevtools/openapi-schemas/-/openapi-schemas-2.1.0.tgz", - "integrity": "sha512-Zc1AlqrJlX3SlpupFGpiLi2EbteyP7fXmUOGup6/DnkRgjP9bgMM/ag+n91rsv0U1Gpz0H3VILA/o3bW7Ua6BQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/@apidevtools/swagger-methods": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@apidevtools/swagger-methods/-/swagger-methods-3.0.2.tgz", - "integrity": "sha512-QAkD5kK2b1WfjDS/UQn/qQkbwF31uqRjPTrsCs5ZG9BQGAkjwvqGFjjPqAuzac/IYzpPtRzjCP1WrTuAIjMrXg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@apidevtools/swagger-parser": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/@apidevtools/swagger-parser/-/swagger-parser-12.1.0.tgz", - "integrity": "sha512-e5mJoswsnAX0jG+J09xHFYQXb/bUc5S3pLpMxUuRUA2H8T2kni3yEoyz2R3Dltw5f4A6j6rPNMpWTK+iVDFlng==", - "dev": true, - "license": "MIT", - "dependencies": { - "@apidevtools/json-schema-ref-parser": "14.0.1", - "@apidevtools/openapi-schemas": "^2.1.0", - "@apidevtools/swagger-methods": "^3.0.2", - "ajv": "^8.17.1", - "ajv-draft-04": "^1.0.0", - "call-me-maybe": "^1.0.2" - }, - "peerDependencies": { - "openapi-types": ">=7" + "node": ">=22.14.0" } }, "node_modules/@babel/code-frame": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz", - "integrity": "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.29.7", + "@babel/helper-validator-identifier": "^7.27.1", "js-tokens": "^4.0.0", "picocolors": "^1.1.1" }, @@ -123,9 +41,9 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.7.tgz", - "integrity": "sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.4.tgz", + "integrity": "sha512-YsmSKC29MJwf0gF8Rjjrg5LQCmyh+j/nD8/eP7f+BeoQTKYqs9RoWbjGOdy0+1Ekr68RJZMUOPVQaQisnIo4Rw==", "dev": true, "license": "MIT", "engines": { @@ -133,21 +51,21 @@ } }, "node_modules/@babel/core": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.7.tgz", - "integrity": "sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.4.tgz", + "integrity": "sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.29.7", - "@babel/generator": "^7.29.7", - "@babel/helper-compilation-targets": "^7.29.7", - "@babel/helper-module-transforms": "^7.29.7", - "@babel/helpers": "^7.29.7", - "@babel/parser": "^7.29.7", - "@babel/template": "^7.29.7", - "@babel/traverse": "^7.29.7", - "@babel/types": "^7.29.7", + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.3", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-module-transforms": "^7.28.3", + "@babel/helpers": "^7.28.4", + "@babel/parser": "^7.28.4", + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.28.4", + "@babel/types": "^7.28.4", "@jridgewell/remapping": "^2.3.5", "convert-source-map": "^2.0.0", "debug": "^4.1.0", @@ -164,14 +82,14 @@ } }, "node_modules/@babel/generator": { - "version": "7.29.8", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.8.tgz", - "integrity": "sha512-gZbepsdh3WDtgZKWL+vTPh71LSBrm/Y4/QDZBVCcYfmeTEEuoOYwlSy+G1StfJg+/Zy550u/3TATbm7qDbbMtg==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.3.tgz", + "integrity": "sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/parser": "^7.29.8", - "@babel/types": "^7.29.8", + "@babel/parser": "^7.28.3", + "@babel/types": "^7.28.2", "@jridgewell/gen-mapping": "^0.3.12", "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" @@ -181,14 +99,14 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.29.7.tgz", - "integrity": "sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==", + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", + "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.29.7", - "@babel/helper-validator-option": "^7.29.7", + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" @@ -198,9 +116,9 @@ } }, "node_modules/@babel/helper-globals": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.29.7.tgz", - "integrity": "sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", "dev": true, "license": "MIT", "engines": { @@ -208,29 +126,29 @@ } }, "node_modules/@babel/helper-module-imports": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.29.7.tgz", - "integrity": "sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", + "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", "dev": true, "license": "MIT", "dependencies": { - "@babel/traverse": "^7.29.7", - "@babel/types": "^7.29.7" + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.29.7.tgz", - "integrity": "sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz", + "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.29.7", - "@babel/helper-validator-identifier": "^7.29.7", - "@babel/traverse": "^7.29.7" + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.28.3" }, "engines": { "node": ">=6.9.0" @@ -240,9 +158,9 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.29.7.tgz", - "integrity": "sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", + "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", "dev": true, "license": "MIT", "engines": { @@ -250,9 +168,9 @@ } }, "node_modules/@babel/helper-string-parser": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz", - "integrity": "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", "dev": true, "license": "MIT", "engines": { @@ -260,9 +178,9 @@ } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz", - "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", + "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", "dev": true, "license": "MIT", "engines": { @@ -270,9 +188,9 @@ } }, "node_modules/@babel/helper-validator-option": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.29.7.tgz", - "integrity": "sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", "dev": true, "license": "MIT", "engines": { @@ -280,27 +198,27 @@ } }, "node_modules/@babel/helpers": { - "version": "7.29.10", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.10.tgz", - "integrity": "sha512-EMCx3AGZ3WfAl6ht7AyQoPm2Lh+BGYEMdc4Q6Hf7uSCDOZFuLq44qNwL+iaim8VlyYhRAo4X43+weadK8ZB4Yg==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.4.tgz", + "integrity": "sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==", "dev": true, "license": "MIT", "dependencies": { - "@babel/template": "^7.29.7", - "@babel/types": "^7.29.8" + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.4" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.29.9", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.9.tgz", - "integrity": "sha512-CjXrNHTnvqBVqHgdBysY3vk2T8tpJHb5/RMeHJBTyVa9xgugCB0CJTx/3oO8RV2QRQP391RWpB7D6hLjm8V9uA==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.4.tgz", + "integrity": "sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.29.8" + "@babel/types": "^7.28.4" }, "bin": { "parser": "bin/babel-parser.js" @@ -365,13 +283,13 @@ } }, "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.29.7.tgz", - "integrity": "sha512-zGYcYfq/WmZ4V+kBIXQon9dSSc8ircGZqw9ZaNhhGj9nZkeBu1jHLBDQqYYi5WA9uawvA2sIMbry2nCFhf5Djg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz", + "integrity": "sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.29.7" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -407,13 +325,13 @@ } }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.29.7.tgz", - "integrity": "sha512-TSu8+mHCoEaaCDEZ0I3+6mvTBYR4PCxQwf2z9/r5Tbztv6NaLR3B9thGTTxX2WGuGHJqRiAbKPeGTJ5XWXVg6A==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.27.1.tgz", + "integrity": "sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.29.7" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -533,13 +451,13 @@ } }, "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.29.7.tgz", - "integrity": "sha512-ngr+82Sh0xMz25TPCZi+nC2iTzjfCdWS2ONXTp/PtSCHCgaCNBpdMqgvJ2ccdLlClVZ7sisIgB914j/JFe+RZA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.27.1.tgz", + "integrity": "sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.29.7" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -549,42 +467,42 @@ } }, "node_modules/@babel/runtime": { - "version": "7.29.10", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.29.10.tgz", - "integrity": "sha512-NpugTzbKgGrNe45Ui32cN8vCFFMxVtP/9rtfwv0nP5FRDAjvYBxJcLVpYA9mr1jxP6cnIT7x9LUzuDTbWYYNRA==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.4.tgz", + "integrity": "sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==", "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/template": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.29.7.tgz", - "integrity": "sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==", + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", + "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.29.7", - "@babel/parser": "^7.29.7", - "@babel/types": "^7.29.7" + "@babel/code-frame": "^7.27.1", + "@babel/parser": "^7.27.2", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.29.10", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.10.tgz", - "integrity": "sha512-B3lYAs2nkKskbgQ1nfy8Ma9ao9Q1rntTAQHrzzyDuj+TSO+X3le6PfWwqDvodsb+OumE10eMFfuMCTQSQ5iuIQ==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.4.tgz", + "integrity": "sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.29.7", - "@babel/generator": "^7.29.8", - "@babel/helper-globals": "^7.29.7", - "@babel/parser": "^7.29.9", - "@babel/template": "^7.29.7", - "@babel/types": "^7.29.8", + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.3", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.28.4", + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.4", "debug": "^4.3.1" }, "engines": { @@ -592,14 +510,14 @@ } }, "node_modules/@babel/types": { - "version": "7.29.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.8.tgz", - "integrity": "sha512-Vj1jF3cPfxg7OAfoI7QnVKLoILlm2JF9pnVHrX8qx7AHMiYWT+NDAA7jChlNgRS4WTLc/fD1lXLmPixluj+3Gg==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.4.tgz", + "integrity": "sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.29.7", - "@babel/helper-validator-identifier": "^7.29.7" + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -613,15 +531,15 @@ "license": "MIT" }, "node_modules/@biomejs/js-api": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@biomejs/js-api/-/js-api-6.0.0.tgz", - "integrity": "sha512-8HP7wexjQo5Np1J9h0B2x8L5G0GZpCacgjykxLHtvLPvF0hNqSG754oh8bxo+OSFDpVGMfSjmLO+ZY/5KbfjmQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@biomejs/js-api/-/js-api-3.0.0.tgz", + "integrity": "sha512-5QcGJFj9IO+yXl76ICjvkdE38uxRcTDsBzcCZHEZ+ma+Te/nbvJg4A3KtAds9HCrEF0JKLWiyjMhAbqazuJvYA==", "dev": true, "license": "MIT OR Apache-2.0", "peerDependencies": { - "@biomejs/wasm-bundler": "^2.5.0", - "@biomejs/wasm-nodejs": "^2.5.0", - "@biomejs/wasm-web": "^2.5.0" + "@biomejs/wasm-bundler": "^2.2.0", + "@biomejs/wasm-nodejs": "^2.2.0", + "@biomejs/wasm-web": "^2.2.0" }, "peerDependenciesMeta": { "@biomejs/wasm-bundler": { @@ -636,9 +554,9 @@ } }, "node_modules/@biomejs/wasm-nodejs": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/@biomejs/wasm-nodejs/-/wasm-nodejs-2.5.2.tgz", - "integrity": "sha512-B0r7jLdCmXhq4+jnx1oA0/SChLy5G283r35HJr276T+w6qgqAPAhqfnlKs+UobclAfidNDbfj9ZmcuCijaHDxQ==", + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/@biomejs/wasm-nodejs/-/wasm-nodejs-2.2.4.tgz", + "integrity": "sha512-ExHAa8W9uyinDhvxhe9CXA6V9bHka3RIs9jKQWlzOz7/LEt3IcFA+fo0O+9RdU30q7lmoo83VqUJwWPTLXeWiA==", "dev": true, "license": "MIT OR Apache-2.0" }, @@ -683,21 +601,21 @@ } }, "node_modules/@emnapi/core": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.10.0.tgz", - "integrity": "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.5.0.tgz", + "integrity": "sha512-sbP8GzB1WDzacS8fgNPpHlp6C9VZe+SJP3F90W9rLemaQj2PzIuTEl1qDOYQf58YIpyjViI24y9aPWCjEzY2cg==", "dev": true, "license": "MIT", "optional": true, "dependencies": { - "@emnapi/wasi-threads": "1.2.1", + "@emnapi/wasi-threads": "1.1.0", "tslib": "^2.4.0" } }, "node_modules/@emnapi/runtime": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.10.0.tgz", - "integrity": "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.5.0.tgz", + "integrity": "sha512-97/BJ3iXHww3djw6hYIfErCZFee7qCtrneuLa20UXFCOTCfBM2cvQHjWJ2EG0s0MtdNwInarqCTz35i4wWXHsQ==", "dev": true, "license": "MIT", "optional": true, @@ -706,9 +624,9 @@ } }, "node_modules/@emnapi/wasi-threads": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz", - "integrity": "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.1.0.tgz", + "integrity": "sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==", "dev": true, "license": "MIT", "optional": true, @@ -741,91 +659,6 @@ "node": ">=12" } }, - "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.4.0.tgz", - "integrity": "sha512-KzTVk2tCWAHtYrvvvaP8bJKJq2pVinhLcGEQdtLIYPbmNGNyYe8QwNaTUYQp2J7/vIsUKt5QCqAfUkYyG9DkOw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/ansi-styles": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", - "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "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, - "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", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", - "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.2.2" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "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", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, "node_modules/@istanbuljs/load-nyc-config": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", @@ -844,9 +677,9 @@ } }, "node_modules/@istanbuljs/schema": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.6.tgz", - "integrity": "sha512-+Sg6GCR/wy1oSmQDFq4LQDAhm3ETKnorxN+y5nbLULOR3P0c14f2Wurzj3/xqPXtasLFfHd5iRFQ7AJt4KH2cw==", + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "dev": true, "license": "MIT", "engines": { @@ -854,17 +687,17 @@ } }, "node_modules/@jest/console": { - "version": "30.5.2", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-30.5.2.tgz", - "integrity": "sha512-e8sQC4pCMHPBrPX7Hk8TJr+DM5dkUnImSTNag8SEWFAFAF6xIz4AJvCKapnrdHnZxep4bxw4PhG+ZbimYBMyKw==", + "version": "30.1.2", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-30.1.2.tgz", + "integrity": "sha512-BGMAxj8VRmoD0MoA/jo9alMXSRoqW8KPeqOfEo1ncxnRLatTBCpRoOwlwlEMdudp68Q6WSGwYrrLtTGOh8fLzw==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "30.5.1", + "@jest/types": "30.0.5", "@types/node": "*", "chalk": "^4.1.2", - "jest-message-util": "30.5.1", - "jest-util": "30.5.1", + "jest-message-util": "30.1.0", + "jest-util": "30.0.5", "slash": "^3.0.0" }, "engines": { @@ -872,39 +705,39 @@ } }, "node_modules/@jest/core": { - "version": "30.5.2", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-30.5.2.tgz", - "integrity": "sha512-/jqvFWoJF7LV1a6AUpYMbMm+2yIYsHJfR474H0SCzr9k8tnO/jl9wRg6zSG6lxgf6EozNlCG4amFzWsbZSvvZA==", + "version": "30.1.3", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-30.1.3.tgz", + "integrity": "sha512-LIQz7NEDDO1+eyOA2ZmkiAyYvZuo6s1UxD/e2IHldR6D7UYogVq3arTmli07MkENLq6/3JEQjp0mA8rrHHJ8KQ==", "dev": true, "license": "MIT", "dependencies": { - "@jest/console": "30.5.2", - "@jest/pattern": "30.5.0", - "@jest/reporters": "30.5.2", - "@jest/test-result": "30.5.2", - "@jest/transform": "30.5.2", - "@jest/types": "30.5.1", + "@jest/console": "30.1.2", + "@jest/pattern": "30.0.1", + "@jest/reporters": "30.1.3", + "@jest/test-result": "30.1.3", + "@jest/transform": "30.1.2", + "@jest/types": "30.0.5", "@types/node": "*", "ansi-escapes": "^4.3.2", "chalk": "^4.1.2", "ci-info": "^4.2.0", "exit-x": "^0.2.2", - "fast-json-stable-stringify": "^2.1.0", "graceful-fs": "^4.2.11", - "jest-changed-files": "30.5.1", - "jest-config": "30.5.2", - "jest-haste-map": "30.5.1", - "jest-message-util": "30.5.1", - "jest-regex-util": "30.5.0", - "jest-resolve": "30.5.1", - "jest-resolve-dependencies": "30.5.2", - "jest-runner": "30.5.2", - "jest-runtime": "30.5.2", - "jest-snapshot": "30.5.2", - "jest-util": "30.5.1", - "jest-validate": "30.5.1", - "jest-watcher": "30.5.2", - "pretty-format": "30.5.1", + "jest-changed-files": "30.0.5", + "jest-config": "30.1.3", + "jest-haste-map": "30.1.0", + "jest-message-util": "30.1.0", + "jest-regex-util": "30.0.1", + "jest-resolve": "30.1.3", + "jest-resolve-dependencies": "30.1.3", + "jest-runner": "30.1.3", + "jest-runtime": "30.1.3", + "jest-snapshot": "30.1.2", + "jest-util": "30.0.5", + "jest-validate": "30.1.0", + "jest-watcher": "30.1.3", + "micromatch": "^4.0.8", + "pretty-format": "30.0.5", "slash": "^3.0.0" }, "engines": { @@ -920,9 +753,9 @@ } }, "node_modules/@jest/diff-sequences": { - "version": "30.5.0", - "resolved": "https://registry.npmjs.org/@jest/diff-sequences/-/diff-sequences-30.5.0.tgz", - "integrity": "sha512-OsqBjHXCn8cadasoAZBP6nWYvMsRhpMzGXTpxJ5aO04NlbdhIz+FVe3q49l0AwVhsz/cEmIpBes6gAFl1/dWQg==", + "version": "30.0.1", + "resolved": "https://registry.npmjs.org/@jest/diff-sequences/-/diff-sequences-30.0.1.tgz", + "integrity": "sha512-n5H8QLDJ47QqbCNn5SuFjCRDrOLEZ0h8vAHCK5RL9Ls7Xa8AQLa/YxAc9UjFqoEDM48muwtBGjtMY5cr0PLDCw==", "dev": true, "license": "MIT", "engines": { @@ -930,70 +763,70 @@ } }, "node_modules/@jest/environment": { - "version": "30.5.2", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-30.5.2.tgz", - "integrity": "sha512-nwFPOUMbmsjNNRCpnJpB9HbSZu4C07wDDds++5j+j1MezzPLxMPDdbdUVjr2o4RULDOValnDd70taPFI1EtxAg==", + "version": "30.1.2", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-30.1.2.tgz", + "integrity": "sha512-N8t1Ytw4/mr9uN28OnVf0SYE2dGhaIxOVYcwsf9IInBKjvofAjbFRvedvBBlyTYk2knbJTiEjEJ2PyyDIBnd9w==", "dev": true, "license": "MIT", "dependencies": { - "@jest/fake-timers": "30.5.2", - "@jest/types": "30.5.1", + "@jest/fake-timers": "30.1.2", + "@jest/types": "30.0.5", "@types/node": "*", - "jest-mock": "30.5.2" + "jest-mock": "30.0.5" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/@jest/expect": { - "version": "30.5.2", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-30.5.2.tgz", - "integrity": "sha512-2E+1Pg6jJxbRjLNLpciC71iri/3qsKJL222/aXJEFwC0VdUSvfS+JZQQLEVjUYYc8t8pQu2MGE3cF2+bNTYRsg==", + "version": "30.1.2", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-30.1.2.tgz", + "integrity": "sha512-tyaIExOwQRCxPCGNC05lIjWJztDwk2gPDNSDGg1zitXJJ8dC3++G/CRjE5mb2wQsf89+lsgAgqxxNpDLiCViTA==", "dev": true, "license": "MIT", "dependencies": { - "expect": "30.5.2", - "jest-snapshot": "30.5.2" + "expect": "30.1.2", + "jest-snapshot": "30.1.2" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/@jest/expect-utils": { - "version": "30.5.2", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-30.5.2.tgz", - "integrity": "sha512-d/HOLSrJUlBIl6n3LzOa7cjW3xdePm5H5gQw2lixZ/0h157l9sw3mLblzFqnPcTbhDzhRQdBOX3A3KcG73nm5Q==", + "version": "30.1.2", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-30.1.2.tgz", + "integrity": "sha512-HXy1qT/bfdjCv7iC336ExbqqYtZvljrV8odNdso7dWK9bSeHtLlvwWWC3YSybSPL03Gg5rug6WLCZAZFH72m0A==", "dev": true, "license": "MIT", "dependencies": { - "@jest/get-type": "30.5.0" + "@jest/get-type": "30.1.0" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/@jest/fake-timers": { - "version": "30.5.2", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-30.5.2.tgz", - "integrity": "sha512-GKk0h0tKT5SpDPxDhPg3r9mm5s8/YCBzVNMOGdRiQXwUiMsjU10mVPlMaQstH6/cu50vOb8N9oQUMETHuwwxKw==", + "version": "30.1.2", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-30.1.2.tgz", + "integrity": "sha512-Beljfv9AYkr9K+ETX9tvV61rJTY706BhBUtiaepQHeEGfe0DbpvUA5Z3fomwc5Xkhns6NWrcFDZn+72fLieUnA==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "30.5.1", - "@sinonjs/fake-timers": "^15.4.0", + "@jest/types": "30.0.5", + "@sinonjs/fake-timers": "^13.0.0", "@types/node": "*", - "jest-message-util": "30.5.1", - "jest-mock": "30.5.2", - "jest-util": "30.5.1" + "jest-message-util": "30.1.0", + "jest-mock": "30.0.5", + "jest-util": "30.0.5" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/@jest/get-type": { - "version": "30.5.0", - "resolved": "https://registry.npmjs.org/@jest/get-type/-/get-type-30.5.0.tgz", - "integrity": "sha512-9/2VUPitAjmBzbvDvqrxmvB7BzWsBW0WmkkojX1ODuxX1NLGxx9gfaZpHB0z8DtJ9uhGNmZG/VXBhf8uO0OV8Q==", + "version": "30.1.0", + "resolved": "https://registry.npmjs.org/@jest/get-type/-/get-type-30.1.0.tgz", + "integrity": "sha512-eMbZE2hUnx1WV0pmURZY9XoXPkUYjpc55mb0CrhtdWLtzMQPFvu/rZkTLZFTsdaVQa+Tr4eWAteqcUzoawq/uA==", "dev": true, "license": "MIT", "engines": { @@ -1001,78 +834,62 @@ } }, "node_modules/@jest/globals": { - "version": "30.5.2", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-30.5.2.tgz", - "integrity": "sha512-62zfS+dL+M5aTNHXCNLyqD+j4oqxTIzDYrZbpqMP8Yn+gvlAGyzC6BSPNb1ZmFOakV1RtFYX/O3FCQXSWmQdgg==", + "version": "30.1.2", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-30.1.2.tgz", + "integrity": "sha512-teNTPZ8yZe3ahbYnvnVRDeOjr+3pu2uiAtNtrEsiMjVPPj+cXd5E/fr8BL7v/T7F31vYdEHrI5cC/2OoO/vM9A==", "dev": true, "license": "MIT", "dependencies": { - "@jest/environment": "30.5.2", - "@jest/expect": "30.5.2", - "@jest/types": "30.5.1", - "jest-mock": "30.5.2" + "@jest/environment": "30.1.2", + "@jest/expect": "30.1.2", + "@jest/types": "30.0.5", + "jest-mock": "30.0.5" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/@jest/pattern": { - "version": "30.5.0", - "resolved": "https://registry.npmjs.org/@jest/pattern/-/pattern-30.5.0.tgz", - "integrity": "sha512-HdNQYSdRTEBNrginaqzQtTjG0HRMfrra/z6Ok7uL3S87vSlarIVohEsJsSj5edu3MiHoHjAkvPROz5ZjoKai+w==", + "version": "30.0.1", + "resolved": "https://registry.npmjs.org/@jest/pattern/-/pattern-30.0.1.tgz", + "integrity": "sha512-gWp7NfQW27LaBQz3TITS8L7ZCQ0TLvtmI//4OwlQRx4rnWxcPNIYjxZpDcN4+UlGxgm3jS5QPz8IPTCkb59wZA==", "dev": true, "license": "MIT", "dependencies": { "@types/node": "*", - "jest-regex-util": "30.5.0" + "jest-regex-util": "30.0.1" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/@jest/react-is-18": { - "name": "react-is", - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@jest/react-is-19": { - "name": "react-is", - "version": "19.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.3.1.tgz", - "integrity": "sha512-RRieF6IyxQBkcK6pP8xOHprLTPW6QjRkbGdImtqNme+/hYVwCZkLQLdlZGOhUqXwkS9IEynaGvPJtv6XB/cz0Q==", - "dev": true, - "license": "MIT" - }, "node_modules/@jest/reporters": { - "version": "30.5.2", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-30.5.2.tgz", - "integrity": "sha512-ev6E9iG73twQcfAfoTnviuYkr3yOrYbzAtMFCimv2fxHXPIp9PBt2u1wNMt0aYWgl8FPwIcS8oqRJg6alnht4Q==", + "version": "30.1.3", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-30.1.3.tgz", + "integrity": "sha512-VWEQmJWfXMOrzdFEOyGjUEOuVXllgZsoPtEHZzfdNz18RmzJ5nlR6kp8hDdY8dDS1yGOXAY7DHT+AOHIPSBV0w==", "dev": true, "license": "MIT", "dependencies": { "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "30.5.2", - "@jest/test-result": "30.5.2", - "@jest/transform": "30.5.2", - "@jest/types": "30.5.1", - "@jridgewell/trace-mapping": "^0.3.31", + "@jest/console": "30.1.2", + "@jest/test-result": "30.1.3", + "@jest/transform": "30.1.2", + "@jest/types": "30.0.5", + "@jridgewell/trace-mapping": "^0.3.25", "@types/node": "*", "chalk": "^4.1.2", "collect-v8-coverage": "^1.0.2", "exit-x": "^0.2.2", - "glob": "^13.0.6", + "glob": "^10.3.10", "graceful-fs": "^4.2.11", "istanbul-lib-coverage": "^3.0.0", "istanbul-lib-instrument": "^6.0.0", "istanbul-lib-report": "^3.0.0", "istanbul-lib-source-maps": "^5.0.0", "istanbul-reports": "^3.1.3", - "jest-message-util": "30.5.1", - "jest-util": "30.5.1", - "jest-worker": "30.5.1", + "jest-message-util": "30.1.0", + "jest-util": "30.0.5", + "jest-worker": "30.1.0", "slash": "^3.0.0", "string-length": "^4.0.2", "v8-to-istanbul": "^9.0.1" @@ -1090,9 +907,9 @@ } }, "node_modules/@jest/schemas": { - "version": "30.5.0", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-30.5.0.tgz", - "integrity": "sha512-/hunigyNpc4RCjC0VaW3f5RCUZVM2+WQ65qP7z083Gmvac7or2LI50XVNOtE4YPgBpV0yxYiAgorAPGniCoJmg==", + "version": "30.0.5", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-30.0.5.tgz", + "integrity": "sha512-DmdYgtezMkh3cpU8/1uyXakv3tJRcmcXxBOcO0tbaozPwpmh4YMsnWrQm9ZmZMfa5ocbxzbFk6O4bDPEc/iAnA==", "dev": true, "license": "MIT", "dependencies": { @@ -1103,13 +920,13 @@ } }, "node_modules/@jest/snapshot-utils": { - "version": "30.5.1", - "resolved": "https://registry.npmjs.org/@jest/snapshot-utils/-/snapshot-utils-30.5.1.tgz", - "integrity": "sha512-V3wnxNtiVmw5PPVg433Cn3VdXnsOeu/ofLw3KC04Bn2y1wIlU5kozXQn48rhrgj/02LrCVtntTEF1yBha0XSUw==", + "version": "30.1.2", + "resolved": "https://registry.npmjs.org/@jest/snapshot-utils/-/snapshot-utils-30.1.2.tgz", + "integrity": "sha512-vHoMTpimcPSR7OxS2S0V1Cpg8eKDRxucHjoWl5u4RQcnxqQrV3avETiFpl8etn4dqxEGarBeHbIBety/f8mLXw==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "30.5.1", + "@jest/types": "30.0.5", "chalk": "^4.1.2", "graceful-fs": "^4.2.11", "natural-compare": "^1.4.0" @@ -1119,15 +936,14 @@ } }, "node_modules/@jest/source-map": { - "version": "30.5.2", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-30.5.2.tgz", - "integrity": "sha512-c5CehvkbfHX6yyNg7bMn2ylqlp9AHXuZ/3hPH/Lh5bxD/vefd/lV9HBjMqXef9yQNqkdwyZvkLSVSwB38hy8Qw==", + "version": "30.0.1", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-30.0.1.tgz", + "integrity": "sha512-MIRWMUUR3sdbP36oyNyhbThLHyJ2eEDClPCiHVbrYAe5g3CHRArIVpBw7cdSB5fr+ofSfIb2Tnsw8iEHL0PYQg==", "dev": true, "license": "MIT", "dependencies": { - "@jridgewell/trace-mapping": "^0.3.31", + "@jridgewell/trace-mapping": "^0.3.25", "callsites": "^3.1.0", - "convert-source-map": "^2.0.0", "graceful-fs": "^4.2.11" }, "engines": { @@ -1135,14 +951,14 @@ } }, "node_modules/@jest/test-result": { - "version": "30.5.2", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-30.5.2.tgz", - "integrity": "sha512-eO6YU5rsLfs60ne694e0IAmRgeBnoA8mu0nlxXDbl/1j5km0o2vO9/VbbUIKIH+WRKKEI+ELgwraRGn2Lhep8g==", + "version": "30.1.3", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-30.1.3.tgz", + "integrity": "sha512-P9IV8T24D43cNRANPPokn7tZh0FAFnYS2HIfi5vK18CjRkTDR9Y3e1BoEcAJnl4ghZZF4Ecda4M/k41QkvurEQ==", "dev": true, "license": "MIT", "dependencies": { - "@jest/console": "30.5.2", - "@jest/types": "30.5.1", + "@jest/console": "30.1.2", + "@jest/types": "30.0.5", "@types/istanbul-lib-coverage": "^2.0.6", "collect-v8-coverage": "^1.0.2" }, @@ -1151,15 +967,15 @@ } }, "node_modules/@jest/test-sequencer": { - "version": "30.5.2", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-30.5.2.tgz", - "integrity": "sha512-bmij8jZyYAC47ExT2GeP7PcrlwSNS+Bp3KeRuBH88gpcxqDv6fljN8PemS4J/lLZ79xb6mpaennQTTq0zUAVVg==", + "version": "30.1.3", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-30.1.3.tgz", + "integrity": "sha512-82J+hzC0qeQIiiZDThh+YUadvshdBswi5nuyXlEmXzrhw5ZQSRHeQ5LpVMD/xc8B3wPePvs6VMzHnntxL+4E3w==", "dev": true, "license": "MIT", "dependencies": { - "@jest/test-result": "30.5.2", + "@jest/test-result": "30.1.3", "graceful-fs": "^4.2.11", - "jest-haste-map": "30.5.1", + "jest-haste-map": "30.1.0", "slash": "^3.0.0" }, "engines": { @@ -1167,23 +983,24 @@ } }, "node_modules/@jest/transform": { - "version": "30.5.2", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-30.5.2.tgz", - "integrity": "sha512-LBGwmaE886C41jDZ65eqR1YbXM7642MK3ZhTowZd5+xDlrDLuf4ePuDdDmVSvcr8NTVJ3MqxLkMbUCzuigUaoQ==", + "version": "30.1.2", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-30.1.2.tgz", + "integrity": "sha512-UYYFGifSgfjujf1Cbd3iU/IQoSd6uwsj8XHj5DSDf5ERDcWMdJOPTkHWXj4U+Z/uMagyOQZ6Vne8C4nRIrCxqA==", "dev": true, "license": "MIT", "dependencies": { "@babel/core": "^7.27.4", - "@jest/types": "30.5.1", - "@jridgewell/trace-mapping": "^0.3.31", - "babel-plugin-istanbul": "^8.0.0", + "@jest/types": "30.0.5", + "@jridgewell/trace-mapping": "^0.3.25", + "babel-plugin-istanbul": "^7.0.0", "chalk": "^4.1.2", "convert-source-map": "^2.0.0", "fast-json-stable-stringify": "^2.1.0", "graceful-fs": "^4.2.11", - "jest-haste-map": "30.5.1", - "jest-regex-util": "30.5.0", - "jest-util": "30.5.1", + "jest-haste-map": "30.1.0", + "jest-regex-util": "30.0.1", + "jest-util": "30.0.5", + "micromatch": "^4.0.8", "pirates": "^4.0.7", "slash": "^3.0.0", "write-file-atomic": "^5.0.1" @@ -1193,14 +1010,14 @@ } }, "node_modules/@jest/types": { - "version": "30.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-30.5.1.tgz", - "integrity": "sha512-LvVYn83nnXPl+Rg98nvcFgjx6nRMTArhSn6RAX/w3ELn54S8A42TYZvsCMdGUqTM8S0wyXbtlQdU6Hi6dykj9g==", + "version": "30.0.5", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-30.0.5.tgz", + "integrity": "sha512-aREYa3aku9SSnea4aX6bhKn4bgv3AXkgijoQgbYV3yvbiGt6z+MQ85+6mIhx9DsKW2BuB/cLR/A+tcMThx+KLQ==", "dev": true, "license": "MIT", "dependencies": { - "@jest/pattern": "30.5.0", - "@jest/schemas": "30.5.0", + "@jest/pattern": "30.0.1", + "@jest/schemas": "30.0.5", "@types/istanbul-lib-coverage": "^2.0.6", "@types/istanbul-reports": "^3.0.4", "@types/node": "*", @@ -1244,9 +1061,9 @@ } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.6.0.tgz", - "integrity": "sha512-T7jf+5zgsZHwNJ4lvQ7/aezbyk0nNX+zJVWpmHA7VYsEx7a7qr5Rg5IbtJFqkgze5Y2sruq1RUY8Q837Od7iFw==", + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", "dev": true, "license": "MIT" }, @@ -1262,435 +1079,121 @@ } }, "node_modules/@napi-rs/wasm-runtime": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.2.5.tgz", - "integrity": "sha512-HshSvXzmBxNzqejd3k/KemgQ3hdREUYFRRrgxOZ+gPljDIsO2SDZrVZMd4Z/HsxudQbE62OVyVFE8z9BCurfjA==", + "version": "0.2.12", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.12.tgz", + "integrity": "sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==", "dev": true, "license": "MIT", "optional": true, "dependencies": { - "@tybys/wasm-util": "^0.10.3" - }, - "engines": { - "node": "^20.19.0 || ^22.13.0 || >=23.5.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Brooooooklyn" - }, - "peerDependencies": { - "@emnapi/core": "^1.7.1 || ^2.0.0-alpha.4", - "@emnapi/runtime": "^1.7.1 || ^2.0.0-alpha.4" + "@emnapi/core": "^1.4.3", + "@emnapi/runtime": "^1.4.3", + "@tybys/wasm-util": "^0.10.0" } }, - "node_modules/@parcel/watcher": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.6.0.tgz", - "integrity": "sha512-7FNeNl8NCE7aINx7WXiKQrPYZWC/hvrTsmk6zmxbI7LTXE7hVek/n8AfVgpe2y82zl3w0HvCHN0bVKMBoJcC0w==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "dependencies": { - "detect-libc": "^2.0.3", - "is-glob": "^4.0.3", - "node-addon-api": "^7.0.0", - "picomatch": "^4.0.4" - }, - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - }, - "optionalDependencies": { - "@parcel/watcher-android-arm64": "2.6.0", - "@parcel/watcher-darwin-arm64": "2.6.0", - "@parcel/watcher-darwin-x64": "2.6.0", - "@parcel/watcher-freebsd-x64": "2.6.0", - "@parcel/watcher-linux-arm-glibc": "2.6.0", - "@parcel/watcher-linux-arm-musl": "2.6.0", - "@parcel/watcher-linux-arm64-glibc": "2.6.0", - "@parcel/watcher-linux-arm64-musl": "2.6.0", - "@parcel/watcher-linux-x64-glibc": "2.6.0", - "@parcel/watcher-linux-x64-musl": "2.6.0", - "@parcel/watcher-win32-arm64": "2.6.0", - "@parcel/watcher-win32-x64": "2.6.0" - } - }, - "node_modules/@parcel/watcher-android-arm64": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.6.0.tgz", - "integrity": "sha512-trgpLSCKRC/huFjXX/Smh+0sWe4+YtKfktIToiMl59ghz7z+qkH6kMvNnUbLyRs9N11t8l4svSCs1+5B3rOAhA==", - "cpu": [ - "arm64" - ], + "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, - "os": [ - "android" - ], "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "node": ">=14" } }, - "node_modules/@parcel/watcher-darwin-arm64": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.6.0.tgz", - "integrity": "sha512-Y3QV0gl7Q1zbfueunkWIERICbEojQFCgpyG7YqOGNFLsckXyI1xu9mAIUpKY9QBYzBtSkN8dBPwd3yiAO9ovMw==", - "cpu": [ - "arm64" - ], + "node_modules/@pkgr/core": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.2.9.tgz", + "integrity": "sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], "engines": { - "node": ">= 10.0.0" + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "url": "https://opencollective.com/pkgr" } }, - "node_modules/@parcel/watcher-darwin-x64": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.6.0.tgz", - "integrity": "sha512-Ohv6OpzhUfKYD7Beb8kDvG0jbIxORCYY1JRdZnaBtnjjkJxgD7ZVL0nw2sCYd0yTMKTvz3nnTnOF3cDifK+kvw==", - "cpu": [ - "x64" - ], - "dev": true, + "node_modules/@sentry-internal/browser-utils": { + "version": "8.55.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/browser-utils/-/browser-utils-8.55.0.tgz", + "integrity": "sha512-ROgqtQfpH/82AQIpESPqPQe0UyWywKJsmVIqi3c5Fh+zkds5LUxnssTj3yNd1x+kxaPDVB023jAP+3ibNgeNDw==", "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10.0.0" + "dependencies": { + "@sentry/core": "8.55.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "engines": { + "node": ">=14.18" } }, - "node_modules/@parcel/watcher-freebsd-x64": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.6.0.tgz", - "integrity": "sha512-5HmXvDgs8VK+74jF9y9/2FE3/OnlcKmc56tjmSrEuZjpSZOGL+fvAu+HKJBdPs9uwoP2hE6TlSUpXZ/C5jUFmQ==", - "cpu": [ - "x64" - ], - "dev": true, + "node_modules/@sentry-internal/feedback": { + "version": "8.55.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/feedback/-/feedback-8.55.0.tgz", + "integrity": "sha512-cP3BD/Q6pquVQ+YL+rwCnorKuTXiS9KXW8HNKu4nmmBAyf7urjs+F6Hr1k9MXP5yQ8W3yK7jRWd09Yu6DHWOiw==", "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">= 10.0.0" + "dependencies": { + "@sentry/core": "8.55.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "engines": { + "node": ">=14.18" } }, - "node_modules/@parcel/watcher-linux-arm-glibc": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.6.0.tgz", - "integrity": "sha512-Ps/hui3A+vMbjdqlqAowK2ZL8+BO8dBjxeWXj6npTBs3jx4wWmbPpaLuqwrQrSqIVMCnpWo238bJ1U37GhQOYg==", - "cpu": [ - "arm" - ], - "dev": true, - "libc": [ - "glibc" - ], + "node_modules/@sentry-internal/replay": { + "version": "8.55.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/replay/-/replay-8.55.0.tgz", + "integrity": "sha512-roCDEGkORwolxBn8xAKedybY+Jlefq3xYmgN2fr3BTnsXjSYOPC7D1/mYqINBat99nDtvgFvNfRcZPiwwZ1hSw==", "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" + "dependencies": { + "@sentry-internal/browser-utils": "8.55.0", + "@sentry/core": "8.55.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "engines": { + "node": ">=14.18" } }, - "node_modules/@parcel/watcher-linux-arm-musl": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.6.0.tgz", - "integrity": "sha512-9c6AUHgHoG+IY88MRIHupztQiQnrbqHYQjkM2btA+Bf/wQnQMuiD0Wfk1EVv3TlNT3x41uU71rn6E4xh/+zvkw==", - "cpu": [ - "arm" - ], - "dev": true, - "libc": [ - "musl" - ], + "node_modules/@sentry-internal/replay-canvas": { + "version": "8.55.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/replay-canvas/-/replay-canvas-8.55.0.tgz", + "integrity": "sha512-nIkfgRWk1091zHdu4NbocQsxZF1rv1f7bbp3tTIlZYbrH62XVZosx5iHAuZG0Zc48AETLE7K4AX9VGjvQj8i9w==", "license": "MIT", - "optional": true, - "os": [ - "linux" - ], + "dependencies": { + "@sentry-internal/replay": "8.55.0", + "@sentry/core": "8.55.0" + }, "engines": { - "node": ">= 10.0.0" + "node": ">=14.18" + } + }, + "node_modules/@sentry/browser": { + "version": "8.55.0", + "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-8.55.0.tgz", + "integrity": "sha512-1A31mCEWCjaMxJt6qGUK+aDnLDcK6AwLAZnqpSchNysGni1pSn1RWSmk9TBF8qyTds5FH8B31H480uxMPUJ7Cw==", + "license": "MIT", + "dependencies": { + "@sentry-internal/browser-utils": "8.55.0", + "@sentry-internal/feedback": "8.55.0", + "@sentry-internal/replay": "8.55.0", + "@sentry-internal/replay-canvas": "8.55.0", + "@sentry/core": "8.55.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-arm64-glibc": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.6.0.tgz", - "integrity": "sha512-yHRqS2owEXe6Hic9z6Mh1ECsCd+ODVOGvZDyciqRd21+v+o+DnXMOrw50DSpIG2sb8GPEaPPmfeCAWKPJdq46g==", - "cpu": [ - "arm64" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-arm64-musl": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.6.0.tgz", - "integrity": "sha512-WhB2e/V7rqdHHWZusBSPuy5Ei8S6lSz6FE5TKKQz5h3a0O+C+mhY7vxU9b/stqvMb8beLnPY82ZrFTLKs+SrKA==", - "cpu": [ - "arm64" - ], - "dev": true, - "libc": [ - "musl" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-x64-glibc": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.6.0.tgz", - "integrity": "sha512-ulGE6x6Oz6iAwg75T8YQSoguBWasniIbX+QWpaYPcCnDOpdWX3k+4xbEYPZVLxOuoJI+svJJPD3sEj8G7lrQ3A==", - "cpu": [ - "x64" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-x64-musl": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.6.0.tgz", - "integrity": "sha512-tkBYKt7YQrjIJWYDnto2YgO8MRkjlMTSNoRHzsXinBqbLdeOM3L32wPZJvIZxqaLMfSlS/4sUjH/6STVP/XDLw==", - "cpu": [ - "x64" - ], - "dev": true, - "libc": [ - "musl" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-win32-arm64": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.6.0.tgz", - "integrity": "sha512-gIZAP23jaHjGWasY/TY6yL7NHFClf0Ga7FN+iINvk+KN94rhm94lYZhFsbYFNcA04/onvGD9kKmiJLJB2HbNwQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-win32-x64": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.6.0.tgz", - "integrity": "sha512-cA+/pXV2YkfxlIcXOQ5fSWqAzzPyD78/x5qbK/I0vUkrlYHA8TIz+MXjAbGouguKVSI4bOmkTSJ1/poVSsgt+A==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "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" - } - }, - "node_modules/@pkgr/core": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.3.6.tgz", - "integrity": "sha512-SEeaJLb3qBNF/OaXnaR1NmmBbFYk1zC0ZH/52fATcRPLFg/p791YrcyFFy44Bo9sLaGuSuLp5Q6axbb/O+v/RA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/pkgr" - } - }, - "node_modules/@sentry-internal/browser-utils": { - "version": "8.55.2", - "resolved": "https://registry.npmjs.org/@sentry-internal/browser-utils/-/browser-utils-8.55.2.tgz", - "integrity": "sha512-GnKod+gL/Y+1FUM/RGV8q6le1CoyiGbT40MitEK7eVwWe+bfTRq1gN7ioupyHFMUg1RlQkDQ4/sENmio/uow5A==", - "license": "MIT", - "dependencies": { - "@sentry/core": "8.55.2" - }, - "engines": { - "node": ">=14.18" - } - }, - "node_modules/@sentry-internal/feedback": { - "version": "8.55.2", - "resolved": "https://registry.npmjs.org/@sentry-internal/feedback/-/feedback-8.55.2.tgz", - "integrity": "sha512-XQy//NWbL0mLLM5w8wNDWMNpXz39VUyW2397dUrH8++kR63WhUVAvTOtL0o0GMVadSAzl1b08oHP9zSUNFQwcg==", - "license": "MIT", - "dependencies": { - "@sentry/core": "8.55.2" - }, - "engines": { - "node": ">=14.18" - } - }, - "node_modules/@sentry-internal/replay": { - "version": "8.55.2", - "resolved": "https://registry.npmjs.org/@sentry-internal/replay/-/replay-8.55.2.tgz", - "integrity": "sha512-+W43Z697EVe/OgpGW07B773sa8xO1UbpnW0Cr+E+3FMDb6ZbXlaBUoagPTUkkQPdwBe35SDh6r8y2M3EOPGbxg==", - "license": "MIT", - "dependencies": { - "@sentry-internal/browser-utils": "8.55.2", - "@sentry/core": "8.55.2" - }, - "engines": { - "node": ">=14.18" - } - }, - "node_modules/@sentry-internal/replay-canvas": { - "version": "8.55.2", - "resolved": "https://registry.npmjs.org/@sentry-internal/replay-canvas/-/replay-canvas-8.55.2.tgz", - "integrity": "sha512-P/jGiuR7dRLG9IzD/463fLgiibyYceauav/9prRG0ZxJm1AtuO02OKball2Fs3bbzdzwHCTlcsUuL2ivDF4b5A==", - "license": "MIT", - "dependencies": { - "@sentry-internal/replay": "8.55.2", - "@sentry/core": "8.55.2" - }, - "engines": { - "node": ">=14.18" - } - }, - "node_modules/@sentry/browser": { - "version": "8.55.2", - "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-8.55.2.tgz", - "integrity": "sha512-xHuPIEKhx9zw5quWvv4YgZprnwoVMCfxIhmOIf6KJ9iizyUHeUDcKpLS59xERroqwX4RpvK+l/27AZu4zfZlzQ==", - "license": "MIT", - "dependencies": { - "@sentry-internal/browser-utils": "8.55.2", - "@sentry-internal/feedback": "8.55.2", - "@sentry-internal/replay": "8.55.2", - "@sentry-internal/replay-canvas": "8.55.2", - "@sentry/core": "8.55.2" - }, - "engines": { - "node": ">=14.18" + "engines": { + "node": ">=14.18" } }, "node_modules/@sentry/core": { - "version": "8.55.2", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-8.55.2.tgz", - "integrity": "sha512-YlEBwybUcOQ/KjMHDmof1vwweVnBtBxYlQp7DE3fOdtW4pqqdHWTnTntQs4VgYfxzjJYgtkd9LHlGtg8qy+JVQ==", + "version": "8.55.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-8.55.0.tgz", + "integrity": "sha512-6g7jpbefjHYs821Z+EBJ8r4Z7LT5h80YSWRJaylGS4nW5W5Z2KXzpdnyFarv37O7QjauzVC2E+PABmpkw5/JGA==", "license": "MIT", "engines": { "node": ">=14.18" } }, "node_modules/@sinclair/typebox": { - "version": "0.34.52", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.52.tgz", - "integrity": "sha512-XiMQh7qqVlxZzcVD+kkGMNGMzcTrDMLWI7S4x7z1MkCkbDPrekpZXEUK0eZqZFMuHQg2a2DZOcDIh9o5v3Gonw==", + "version": "0.34.41", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.41.tgz", + "integrity": "sha512-6gS8pZzSXdyRHTIqoqSVknxolr1kzfy4/CeDnrzsVz8TTIWUbOBr6gnzOmTYJ3eXQNh4IYHIGi5aIL7sOZ2G/g==", "dev": true, "license": "MIT" }, @@ -1705,9 +1208,9 @@ } }, "node_modules/@sinonjs/fake-timers": { - "version": "15.4.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-15.4.0.tgz", - "integrity": "sha512-DsG+8/LscQIQg68J6Ef3dv10u6nVyetYn923s3/sus5eaGfTo1of5WMZSLf0UJc9KDuKPilPH0UDJCjvNbDNCA==", + "version": "13.0.5", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-13.0.5.tgz", + "integrity": "sha512-36/hTbH2uaWuGVERyC6da9YwGWnzUZXuPro/F2LfsdOsLnCojz/iSH8MxUt/FD2S5XBSVPhmArFUXcpCQ2Hkiw==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -1715,9 +1218,9 @@ } }, "node_modules/@tsconfig/node10": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.13.tgz", - "integrity": "sha512-gcLdvR9HO1ZJBypsOGqaP6TFEzb6vIta0KSTLt9NAQ6pXQO3cRgSVyCN6pzYqI9DlJgY71XKO0dpDhCf08b3pg==", + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", + "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==", "dev": true, "license": "MIT" }, @@ -1743,9 +1246,9 @@ "license": "MIT" }, "node_modules/@tybys/wasm-util": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.4.tgz", - "integrity": "sha512-W3c4gRigFS0T/Ma4qIYF3GDAc5AQdHb1yL5znJT1Zv1YaD9Kitx656wBjvr19qbiosmZT8lWDM5BEMynUqX65A==", + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz", + "integrity": "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==", "dev": true, "license": "MIT", "optional": true, @@ -1836,21 +1339,21 @@ "pretty-format": "^30.0.0" } }, - "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==", + "node_modules/@types/lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-H3MHACvFUEiujabxhaI/ImO6gUrd8oOurg7LQtS7mbwIXA/cUqWrvBsaeJ23aZEPk1TAYkurjfMbSELfoCXlGA==", "dev": true, "license": "MIT" }, "node_modules/@types/node": { - "version": "24.19.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-24.19.2.tgz", - "integrity": "sha512-93d49wCWJkCyN87MxLpNN6KXPCwFw7bVUg79mGUV1OS40JGWwVCr8n61DXCSqz7CV6/VfPkb7xec7uP2M+QHWQ==", + "version": "24.5.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.5.2.tgz", + "integrity": "sha512-FYxk1I7wPv3K2XBaoyH2cTnocQEu8AOZ60hPbsyukMPLv5/5qr7V1i8PLHdl6Zf87I+xZXFvPCXYjiTFq+YSDQ==", "dev": true, "license": "MIT", "dependencies": { - "undici-types": ">=7.24.0 <7.24.7" + "undici-types": "~7.12.0" } }, "node_modules/@types/stack-utils": { @@ -1867,18 +1370,10 @@ "dev": true, "license": "MIT" }, - "node_modules/@types/trusted-types": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", - "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", - "dev": true, - "license": "MIT", - "optional": true - }, "node_modules/@types/yargs": { - "version": "17.0.35", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.35.tgz", - "integrity": "sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==", + "version": "17.0.33", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", + "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==", "dev": true, "license": "MIT", "dependencies": { @@ -1893,16 +1388,16 @@ "license": "MIT" }, "node_modules/@ungap/structured-clone": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.4.0.tgz", - "integrity": "sha512-1mEZtMKPM09vDmQt5y7YvmN2+DFTP7Tg0EWXdic8/C6VRnpb33e4ghisCIE3WZjsE2N8mf+QV1Zqh7ZFYLWInQ==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", + "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", "dev": true, "license": "ISC" }, "node_modules/@unrs/resolver-binding-android-arm-eabi": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm-eabi/-/resolver-binding-android-arm-eabi-1.12.2.tgz", - "integrity": "sha512-g5T90pqg1bo/7mytQx6F4iBNC0Wsh9cu+z9veDbFjc7HjpesJFWD7QMS0NGStXM075+7dJPPVvBbpZlnrdpi/w==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm-eabi/-/resolver-binding-android-arm-eabi-1.11.1.tgz", + "integrity": "sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==", "cpu": [ "arm" ], @@ -1914,9 +1409,9 @@ ] }, "node_modules/@unrs/resolver-binding-android-arm64": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm64/-/resolver-binding-android-arm64-1.12.2.tgz", - "integrity": "sha512-YGCRZv/9GLhwmz6mYDeTsm/92BAyR28l6c2ReweVW5pWgfsitWLY8upvfRlGdoyD8HjeTHSYJWyZGD4KJA/nFQ==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm64/-/resolver-binding-android-arm64-1.11.1.tgz", + "integrity": "sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g==", "cpu": [ "arm64" ], @@ -1928,9 +1423,9 @@ ] }, "node_modules/@unrs/resolver-binding-darwin-arm64": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.12.2.tgz", - "integrity": "sha512-u9DiNT1auQMO20A9SyTuG3wUgQWB9Z7KjAg0uFuCDR1FsAY8A0CG2S6JpHS1xwm/w1G08bjXZDcyOCjv1WAm2w==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.11.1.tgz", + "integrity": "sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g==", "cpu": [ "arm64" ], @@ -1942,9 +1437,9 @@ ] }, "node_modules/@unrs/resolver-binding-darwin-x64": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.12.2.tgz", - "integrity": "sha512-f7rPLi/T1HVKZu/u6t87lroib16n8vrSzcyxI7lg4BGO9UF26KhQL44sd9eOUgrTYhvRXtWOIZT5PejdPyJfUA==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.11.1.tgz", + "integrity": "sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ==", "cpu": [ "x64" ], @@ -1956,9 +1451,9 @@ ] }, "node_modules/@unrs/resolver-binding-freebsd-x64": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.12.2.tgz", - "integrity": "sha512-BpcOjWCJub6nRZUS2zA20pmLvjtqAtGejETaIyRLiZiQf++cbrjltLA5NN/xaXfqeOBOSlMFbemIl5/S5tljmg==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.11.1.tgz", + "integrity": "sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw==", "cpu": [ "x64" ], @@ -1970,9 +1465,9 @@ ] }, "node_modules/@unrs/resolver-binding-linux-arm-gnueabihf": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.12.2.tgz", - "integrity": "sha512-vZTDvdSISZjJx66OzJqtsOhzifbqRjbmI1Mnu49fQDwog5GtDI4QidRiEAYbZCRj9C8YZEW+3ZjqsyS9GR4k2A==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.11.1.tgz", + "integrity": "sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw==", "cpu": [ "arm" ], @@ -1984,9 +1479,9 @@ ] }, "node_modules/@unrs/resolver-binding-linux-arm-musleabihf": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.12.2.tgz", - "integrity": "sha512-BiPI+IrIlwcW4nLLMM21+B1dFPzd55yAVgVGrdgDjNef+ch03GdxrcyaIz8X9SsQirh/kCQ7mviyWlMxdh2D7g==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.11.1.tgz", + "integrity": "sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw==", "cpu": [ "arm" ], @@ -1998,16 +1493,13 @@ ] }, "node_modules/@unrs/resolver-binding-linux-arm64-gnu": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.12.2.tgz", - "integrity": "sha512-zJc0H99FEPoFfSrNpa91HYfxzfAJCr502oxNK1cfdC9hlaFI43RT+JFCann9JUgZmLzzntChHyn13Sgn9ljHNg==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.11.1.tgz", + "integrity": "sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==", "cpu": [ "arm64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -2015,50 +1507,13 @@ ] }, "node_modules/@unrs/resolver-binding-linux-arm64-musl": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.12.2.tgz", - "integrity": "sha512-KQ3Lki6l+Pz1k/eBipN41ES+YUK30beLGb9YqcB1O542cyLCNE6GaxrfcY3T6EezmGGk84wb5XyO9loTM9tkcA==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.11.1.tgz", + "integrity": "sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==", "cpu": [ "arm64" ], "dev": true, - "libc": [ - "musl" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@unrs/resolver-binding-linux-loong64-gnu": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-loong64-gnu/-/resolver-binding-linux-loong64-gnu-1.12.2.tgz", - "integrity": "sha512-3SJGEh1DborhG6pyxvhPzCT4bbSIVihsvgJc13P1bHG7KLdNDaF9T3gsTwFc7Jw/5Y5/iWOjkEx7Zy0NvCGX3Q==", - "cpu": [ - "loong64" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@unrs/resolver-binding-linux-loong64-musl": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-loong64-musl/-/resolver-binding-linux-loong64-musl-1.12.2.tgz", - "integrity": "sha512-jiuG/Obbel7uw1PwHNFfrkiKhLAF6mnyZ6aWlOAVN9WqKm8v0OFGnciJIHu8+CMvXLQ8AD51LPzAoUfT21D5Ew==", - "cpu": [ - "loong64" - ], - "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -2066,16 +1521,13 @@ ] }, "node_modules/@unrs/resolver-binding-linux-ppc64-gnu": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.12.2.tgz", - "integrity": "sha512-q7xRvVpmcfeL+LlZg8Pbbo6QaTZwDU5BaGZbwfhkEsXJn3Was8xYfE0RBH266xZt0rM6B7i8xAYIvjthuUIWHg==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.11.1.tgz", + "integrity": "sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==", "cpu": [ "ppc64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -2083,16 +1535,13 @@ ] }, "node_modules/@unrs/resolver-binding-linux-riscv64-gnu": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.12.2.tgz", - "integrity": "sha512-0CVdx6lcnT3Q9inOH8tsMIOJ6ImndllMjqJHg8RLVdB7Vq4SfkEXl9mCSsVNuNA4MCYycRicCUxPCabVHJRr6A==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.11.1.tgz", + "integrity": "sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==", "cpu": [ "riscv64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -2100,16 +1549,13 @@ ] }, "node_modules/@unrs/resolver-binding-linux-riscv64-musl": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-1.12.2.tgz", - "integrity": "sha512-iOwlRo9vnp6R6ohHQS11n0NnfdXx/omhkocmIfaPRpQhKZ+3BDMkkdRVh53qjkFkpPddf+FETA28NwGN7l5l+w==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-1.11.1.tgz", + "integrity": "sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==", "cpu": [ "riscv64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -2117,16 +1563,13 @@ ] }, "node_modules/@unrs/resolver-binding-linux-s390x-gnu": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.12.2.tgz", - "integrity": "sha512-HYJtLfXq94q8iZNFT1lknx258wlkkWhZeUXJRqzKBBUJ00CvZ+N33zgbCqimLjsyw5Va6uUxhVa12mI+kaveEw==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.11.1.tgz", + "integrity": "sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==", "cpu": [ "s390x" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -2134,16 +1577,13 @@ ] }, "node_modules/@unrs/resolver-binding-linux-x64-gnu": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.12.2.tgz", - "integrity": "sha512-mPsUhunKKDih5O96Y6enDQyHc1SqBPlY1E/SfMWDM3EdJ95Z9CArPeCVwCCqbP45ljvivdEk8Fxn+SIb1rDAJQ==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.11.1.tgz", + "integrity": "sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==", "cpu": [ "x64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -2151,40 +1591,23 @@ ] }, "node_modules/@unrs/resolver-binding-linux-x64-musl": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.12.2.tgz", - "integrity": "sha512-azrt6+5ydLd8Vt210AAFis/lZevSfPw93EJRIJG+xPu4WCJ8K0kppCTpMyLPcKT7H15M4Jnt2tMp5bOvCkRC6A==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.11.1.tgz", + "integrity": "sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==", "cpu": [ "x64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ "linux" ] }, - "node_modules/@unrs/resolver-binding-openharmony-arm64": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-openharmony-arm64/-/resolver-binding-openharmony-arm64-1.12.2.tgz", - "integrity": "sha512-YZ9hP4O0X9PQb8eO980qmLNGH4zT3I9+SZTdt0Pr0YyuGQhYKoOZkV02VzrzyOZJ5xIJ3UFIenKkUkGg8GjgWQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openharmony" - ] - }, "node_modules/@unrs/resolver-binding-wasm32-wasi": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.12.2.tgz", - "integrity": "sha512-tYFDIkMxSflfEc/h92ZWNsZlHSwgimbNHSO3PL2JWQHfCuC2q316jMyYU9TIWZsFK2bQwyK5VAdYgn8ygPj69A==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.11.1.tgz", + "integrity": "sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==", "cpu": [ "wasm32" ], @@ -2192,18 +1615,16 @@ "license": "MIT", "optional": true, "dependencies": { - "@emnapi/core": "1.10.0", - "@emnapi/runtime": "1.10.0", - "@napi-rs/wasm-runtime": "^1.1.4" + "@napi-rs/wasm-runtime": "^0.2.11" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@unrs/resolver-binding-win32-arm64-msvc": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.12.2.tgz", - "integrity": "sha512-qzNyg3xL0VPQmCaUh+N5jSitce6k+uCBfMDesWRnlULOZaqUkaJ0ybdT+UqlAWJoQjuqfIU/0Ptx9bteN4D82g==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.11.1.tgz", + "integrity": "sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw==", "cpu": [ "arm64" ], @@ -2215,9 +1636,9 @@ ] }, "node_modules/@unrs/resolver-binding-win32-ia32-msvc": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.12.2.tgz", - "integrity": "sha512-WD9sY00OfpHVGfsnHZoA8jVT+esS/Bg8z8jzxp5BnDCjjwsuKsPQrzswwpFy4J1AUJbXPRfkpcX0mXrzeXW79g==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.11.1.tgz", + "integrity": "sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ==", "cpu": [ "ia32" ], @@ -2229,9 +1650,9 @@ ] }, "node_modules/@unrs/resolver-binding-win32-x64-msvc": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.12.2.tgz", - "integrity": "sha512-nAB74NfSNKknqQ1RrYj6uz8FcXEomu/MATJZxh/x+BArzN2U3JbOYC0APYzUIGhVY3m5hRxA8VPNdPBoG8txlA==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.11.1.tgz", + "integrity": "sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g==", "cpu": [ "x64" ], @@ -2243,9 +1664,9 @@ ] }, "node_modules/acorn": { - "version": "8.19.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.19.0.tgz", - "integrity": "sha512-oJlA3XiRm7Cyk6qFD2Jn8ak9B7jSy0qy00ADO3+8dpT0LSjFihQYv4C02LFCSYJV3Q37xYwwRy5m+IpIiUzqWw==", + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "dev": true, "license": "MIT", "bin": { @@ -2256,9 +1677,9 @@ } }, "node_modules/acorn-walk": { - "version": "8.3.5", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.5.tgz", - "integrity": "sha512-HEHNfbars9v4pgpW6SO1KSPkfoS0xVOM/9UzkJltjlsHZmJasxg8aXkuZa7SMf8vKGIBhpUsPluQSqhJFCqebw==", + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", + "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", "dev": true, "license": "MIT", "dependencies": { @@ -2268,38 +1689,6 @@ "node": ">=0.4.0" } }, - "node_modules/ajv": { - "version": "8.20.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz", - "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==", - "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" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "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==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "ajv": "^8.5.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, "node_modules/ansi-escapes": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", @@ -2317,13 +1706,16 @@ } }, "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==", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", "dev": true, "license": "MIT", "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, "node_modules/ansi-styles": { @@ -2356,19 +1748,6 @@ "node": ">= 8" } }, - "node_modules/anymatch/node_modules/picomatch": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", - "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, "node_modules/arg": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", @@ -2387,16 +1766,16 @@ } }, "node_modules/babel-jest": { - "version": "30.5.2", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-30.5.2.tgz", - "integrity": "sha512-ES8WeJ2fNWPEDunyAtUfJ12nHyaWUloCHdkfK2oW5uSoQSUmjNKdWiGaXJITJwvFEWoD/evHEg/QoCXAvLaQqQ==", + "version": "30.1.2", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-30.1.2.tgz", + "integrity": "sha512-IQCus1rt9kaSh7PQxLYRY5NmkNrNlU2TpabzwV7T2jljnpdHOcmnYYv8QmE04Li4S3a2Lj8/yXyET5pBarPr6g==", "dev": true, "license": "MIT", "dependencies": { - "@jest/transform": "30.5.2", + "@jest/transform": "30.1.2", "@types/babel__core": "^7.20.5", - "babel-plugin-istanbul": "^8.0.0", - "babel-preset-jest": "30.5.0", + "babel-plugin-istanbul": "^7.0.0", + "babel-preset-jest": "30.0.1", "chalk": "^4.1.2", "graceful-fs": "^4.2.11", "slash": "^3.0.0" @@ -2405,13 +1784,13 @@ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" }, "peerDependencies": { - "@babel/core": "^7.11.0 || ^8.0.0-0" + "@babel/core": "^7.11.0" } }, "node_modules/babel-plugin-istanbul": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-8.0.0.tgz", - "integrity": "sha512-18wCskrN3DgbuBmp1gr7LBGT8xdz5xhQQqFvFhVxbkl8VBCrMKQ2YtqBWtUal1Zrc1HTuX0011+Brjw78TCFkg==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-7.0.1.tgz", + "integrity": "sha512-D8Z6Qm8jCvVXtIRkBnqNHX0zJ37rQcFJ9u8WOS6tkYOsRdHBzypCstaxWiu5ZIlqQtviRYbgnRLSoCEvjqcqbA==", "dev": true, "license": "BSD-3-Clause", "workspaces": [ @@ -2422,19 +1801,21 @@ "@istanbuljs/load-nyc-config": "^1.0.0", "@istanbuljs/schema": "^0.1.3", "istanbul-lib-instrument": "^6.0.2", - "test-exclude": "^7.0.1" + "test-exclude": "^6.0.0" }, "engines": { - "node": ">=18" + "node": ">=12" } }, "node_modules/babel-plugin-jest-hoist": { - "version": "30.5.0", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-30.5.0.tgz", - "integrity": "sha512-gtGo1B+u14jrZQv6TdSWIWkTqclboo7Qn+dFAGUOIuXLFuJKAdg3U5MIWzZnW4vfUb4dX9skmAMiby86e/SF4A==", + "version": "30.0.1", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-30.0.1.tgz", + "integrity": "sha512-zTPME3pI50NsFW8ZBaVIOeAxzEY7XHlmWeXXu9srI+9kNfzCUTy8MFan46xOGZY8NZThMqq+e3qZUKsvXbasnQ==", "dev": true, "license": "MIT", "dependencies": { + "@babel/template": "^7.27.2", + "@babel/types": "^7.27.3", "@types/babel__core": "^7.20.5" }, "engines": { @@ -2469,68 +1850,72 @@ } }, "node_modules/babel-preset-jest": { - "version": "30.5.0", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-30.5.0.tgz", - "integrity": "sha512-ZGPn5ClP4lBDpuOK8W1yQIOy359HmbnZv3suucAlIe+SEE9yDsxV4S2PjSbH2Vc97U+WmzYD7vw3kr8NsQ/i6w==", + "version": "30.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-30.0.1.tgz", + "integrity": "sha512-+YHejD5iTWI46cZmcc/YtX4gaKBtdqCHCVfuVinizVpbmyjO3zYmeuyFdfA8duRqQZfgCAMlsfmkVbJ+e2MAJw==", "dev": true, "license": "MIT", "dependencies": { - "babel-plugin-jest-hoist": "30.5.0", - "babel-preset-current-node-syntax": "^1.2.0" + "babel-plugin-jest-hoist": "30.0.1", + "babel-preset-current-node-syntax": "^1.1.0" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" }, "peerDependencies": { - "@babel/core": "^7.11.0 || ^8.0.0-beta.1 || ^8.0.0" + "@babel/core": "^7.11.0" } }, "node_modules/balanced-match": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", - "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "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", - "engines": { - "node": "18 || 20 || >=22" - } + "license": "MIT" }, "node_modules/baseline-browser-mapping": { - "version": "2.11.29", - "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.11.29.tgz", - "integrity": "sha512-YeesxhUmR4h5y5V8KF8iBCqJb8YFrBJ++XBTeGcWIaQOYXGN19JM0FoiOjAhwuDoln8owMgXcWBmgHtYSkky2w==", + "version": "2.8.6", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.6.tgz", + "integrity": "sha512-wrH5NNqren/QMtKUEEJf7z86YjfqW/2uw3IL3/xpqZUC95SSVIFXYQeeGjL6FT/X68IROu6RMehZQS5foy2BXw==", "dev": true, "license": "Apache-2.0", "bin": { - "baseline-browser-mapping": "dist/cli.cjs" - }, - "engines": { - "node": ">=6.0.0" + "baseline-browser-mapping": "dist/cli.js" } }, "node_modules/bowser": { - "version": "2.14.1", - "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.14.1.tgz", - "integrity": "sha512-tzPjzCxygAKWFOJP011oxFHs57HzIhOEracIgAePE4pqB3LikALKnSzUyU4MGs9/iCEUuHlAJTjTc5M+u7YEGg==", + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.12.1.tgz", + "integrity": "sha512-z4rE2Gxh7tvshQ4hluIT7XcFrgLIQaw9X3A+kTTRdovCz5PMukm/0QC/BKSYPj3omF5Qfypn9O/c5kgpmvYUCw==", "license": "MIT" }, "node_modules/brace-expansion": { - "version": "5.0.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.12.tgz", - "integrity": "sha512-YovQ3rzhaLMIrDjNDMkNS01tea93qhEhG5xy8f6+R0l+dw3Ki+5sCoIoI942iuLZTHWogWktgwVDhU09iNEimQ==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "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": { - "balanced-match": "^4.0.2" + "fill-range": "^7.1.1" }, "engines": { - "node": "20 || >=22" + "node": ">=8" } }, "node_modules/browserslist": { - "version": "4.29.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.29.3.tgz", - "integrity": "sha512-1R4kiYKXGViqEN0CnoDrXc1StD9niAwu+j2dukWzrD4bJgsD4lDmEp0CRbc6E/vYJIfTHwPmwyaKtVSudICdPA==", + "version": "4.26.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.26.2.tgz", + "integrity": "sha512-ECFzp6uFOSB+dcZ5BK/IBaGWssbSYBHvuMeMt3MMFyhI0Z8SqGgEkBLARgpRH3hutIgPVsALcMwbDrJqPxQ65A==", "dev": true, "funding": [ { @@ -2548,11 +1933,11 @@ ], "license": "MIT", "dependencies": { - "baseline-browser-mapping": "^2.11.26", - "caniuse-lite": "^1.0.30001813", - "electron-to-chromium": "^1.5.439", - "node-releases": "^2.0.57", - "update-browserslist-db": "^1.3.3" + "baseline-browser-mapping": "^2.8.3", + "caniuse-lite": "^1.0.30001741", + "electron-to-chromium": "^1.5.218", + "node-releases": "^2.0.21", + "update-browserslist-db": "^1.1.3" }, "bin": { "browserslist": "cli.js" @@ -2575,37 +1960,44 @@ } }, "node_modules/bser": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.2.tgz", - "integrity": "sha512-V2o8YS2EhrKMO9AumnkK0ynynfFlsajpYupwq7S46H5mhcanwxDkNTw3K67wPIcKTH1ffkA4vhMOtAc7gRmPZw==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", "dev": true, - "license": "MIT", + "license": "Apache-2.0", "dependencies": { "node-int64": "^0.4.0" } }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "license": "MIT" + }, "node_modules/c12": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/c12/-/c12-3.3.4.tgz", - "integrity": "sha512-cM0ApFQSBXuourJejzwv/AuPRvAxordTyParRVcHjjtXirtkzM0uK2L9TTn9s0cXZbG7E55jCivRQzoxYmRAlA==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/c12/-/c12-3.3.0.tgz", + "integrity": "sha512-K9ZkuyeJQeqLEyqldbYLG3wjqwpw4BVaAqvmxq3GYKK0b1A/yYQdIcJxkzAOWcNVWhJpRXAPfZFueekiY/L8Dw==", "dev": true, "license": "MIT", "dependencies": { - "chokidar": "^5.0.0", - "confbox": "^0.2.4", - "defu": "^6.1.6", - "dotenv": "^17.3.1", - "exsolve": "^1.0.8", - "giget": "^3.2.0", - "jiti": "^2.6.1", + "chokidar": "^4.0.3", + "confbox": "^0.2.2", + "defu": "^6.1.4", + "dotenv": "^17.2.2", + "exsolve": "^1.0.7", + "giget": "^2.0.0", + "jiti": "^2.5.1", "ohash": "^2.0.11", "pathe": "^2.0.3", - "perfect-debounce": "^2.1.0", + "perfect-debounce": "^2.0.0", "pkg-types": "^2.3.0", - "rc9": "^3.0.1" + "rc9": "^2.1.2" }, "peerDependencies": { - "magicast": "*" + "magicast": "^0.3.5" }, "peerDependenciesMeta": { "magicast": { @@ -2641,9 +2033,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001816", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001816.tgz", - "integrity": "sha512-+8Yx7BXCoqk6IF8yTicjfUR6D/ldJzdlsodlEOiOSPmhK844WIgk67/zIQaGAOxNkZyyvBlrRFnLvqKIoqbAFw==", + "version": "1.0.30001743", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001743.tgz", + "integrity": "sha512-e6Ojr7RV14Un7dz6ASD0aZDmQPT/A+eZU+nuTNfjqmRrmkmQlnTNWH0SKmqagx9PeW87UVqapSurtAXifmtdmw==", "dev": true, "funding": [ { @@ -2689,25 +2081,25 @@ } }, "node_modules/chokidar": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-5.0.0.tgz", - "integrity": "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", "dev": true, "license": "MIT", "dependencies": { - "readdirp": "^5.0.0" + "readdirp": "^4.0.1" }, "engines": { - "node": ">= 20.19.0" + "node": ">= 14.16.0" }, "funding": { "url": "https://paulmillr.com/funding/" } }, "node_modules/ci-info": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.4.0.tgz", - "integrity": "sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.3.0.tgz", + "integrity": "sha512-l+2bNRMiQgcfILUi33labAZYIWlH1kWDp+ecNo5iisRKrbm0xcRyCww71/YU0Fkw0mAFpz9bJayXPjey6vkmaQ==", "dev": true, "funding": [ { @@ -2721,32 +2113,22 @@ } }, "node_modules/citty": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/citty/-/citty-0.2.2.tgz", - "integrity": "sha512-+6vJA3L98yv+IdfKGZHBNiGW5KHn22e/JwID0Strsz8h4S/csAu/OuICwxrg44k5MRiZHWIo8XXuJgQTriRP4w==", + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/citty/-/citty-0.1.6.tgz", + "integrity": "sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==", "dev": true, - "license": "MIT" + "license": "MIT", + "dependencies": { + "consola": "^3.2.3" + } }, "node_modules/cjs-module-lexer": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-2.3.0.tgz", - "integrity": "sha512-lmNyBzi6iYiqyrExTctfmjd8tInx+dHu9PBomTfH5RXS53c27JMFJgzNv5TyAnm3PgGf+MLy0+Ws41/HlVxdKQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-2.1.0.tgz", + "integrity": "sha512-UX0OwmYRYQQetfrLEZeewIFFI+wSTofC+pMBLNuH3RUuu/xzG1oz84UCEDOSoQlN3fZ4+AzmV50ZYvGqkMh9yA==", "dev": true, "license": "MIT" }, - "node_modules/class-variance-authority": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.1.tgz", - "integrity": "sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "clsx": "^2.1.1" - }, - "funding": { - "url": "https://polar.sh/cva" - } - }, "node_modules/cliui": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", @@ -2762,14 +2144,67 @@ "node": ">=12" } }, - "node_modules/clsx": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", - "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "node_modules/cliui/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": { - "node": ">=6" + "node": ">=8" + } + }, + "node_modules/cliui/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, + "license": "MIT" + }, + "node_modules/cliui/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", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/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": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/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, + "license": "MIT", + "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/co": { @@ -2784,9 +2219,9 @@ } }, "node_modules/collect-v8-coverage": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.3.tgz", - "integrity": "sha512-1L5aqIkwPfiodaMgQunkF1zRhNqifHBmtbbbxcr6yVxxBnliw4TDOW6NxpO8DJLgJ16OT+Y4ztZqP6p/FtXnAw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", "dev": true, "license": "MIT" }, @@ -2810,10 +2245,17 @@ "dev": true, "license": "MIT" }, + "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.2.4", - "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.2.4.tgz", - "integrity": "sha512-ysOGlgTFbN2/Y6Cg3Iye8YKulHw+R2fNXHrgSmXISQdMnomY6eNDprVdW9R5xBguEqI954+S6709UyiO7B+6OQ==", + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.2.2.tgz", + "integrity": "sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==", "dev": true, "license": "MIT" }, @@ -2856,13 +2298,6 @@ "node": ">= 8" } }, - "node_modules/dayjs": { - "version": "1.11.23", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.23.tgz", - "integrity": "sha512-QDTCU0M0MxR3hQfnlDJfwekQiaanm1ubOD231u73WBckQ/fsamwRLiE2GBz6D3a/xF1NgfiDLJjXBa1hYOYTtQ==", - "dev": true, - "license": "MIT" - }, "node_modules/debug": { "version": "4.4.3", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", @@ -2882,9 +2317,9 @@ } }, "node_modules/dedent": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.7.2.tgz", - "integrity": "sha512-WzMx3mW98SN+zn3hgemf4OzdmyNhhhKz5Ay0pUfQiMQ3e1g+xmTJWp/pKdwKVXhdSkAEGIIzqeuWrL3mV/AXbA==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.7.0.tgz", + "integrity": "sha512-HGFtf8yhuhGhqO07SV79tRp+br4MnbdjeVxotpn1QBl30pcLLCQjX5b2295ll0fv8RKDKsmWYrl05usHM9CewQ==", "dev": true, "license": "MIT", "peerDependencies": { @@ -2907,9 +2342,9 @@ } }, "node_modules/defu": { - "version": "6.1.7", - "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.7.tgz", - "integrity": "sha512-7z22QmUWiQ/2d0KkdYmANbRUVABpZ9SNYyH5vx6PZ+nE5bcC0l7uFvEfHlyld/HcGBFTL536ClDt3DEcSlEJAQ==", + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.4.tgz", + "integrity": "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==", "dev": true, "license": "MIT" }, @@ -2929,16 +2364,6 @@ "dev": true, "license": "MIT" }, - "node_modules/detect-libc": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", - "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=8" - } - }, "node_modules/detect-newline": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", @@ -2950,29 +2375,19 @@ } }, "node_modules/diff": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.4.tgz", - "integrity": "sha512-X07nttJQkwkfKfvTPG/KSnE2OMdcUCao6+eXF3wmnIQRn2aPAHH3VxDbDOdegkd6JbPsXqShpvEOHfAT+nCNwQ==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "dev": true, "license": "BSD-3-Clause", "engines": { "node": ">=0.3.1" } }, - "node_modules/dompurify": { - "version": "3.4.17", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.4.17.tgz", - "integrity": "sha512-B/pSlYVHQ58kqISD/yDjuJ1yfzI34m1gF4lAod2bwSRhiN4K5Cl3H8Af7hqB2PmTL911tdEudnnXn5FnhRoz0w==", - "dev": true, - "license": "(MPL-2.0 OR Apache-2.0)", - "optionalDependencies": { - "@types/trusted-types": "^2.0.7" - } - }, "node_modules/dotenv": { - "version": "17.4.2", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.4.2.tgz", - "integrity": "sha512-nI4U3TottKAcAD9LLud4Cb7b2QztQMUEfHbvhTH09bqXTxnSie8WnjPALV/WMCrJZ6UV/qHJ6L03OqO3LcdYZw==", + "version": "17.2.2", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.2.2.tgz", + "integrity": "sha512-Sf2LSQP+bOlhKWWyhFsn0UsfdK/kCWRv1iuA2gXAwt3dyNabr6QSj00I2V10pidqz69soatm9ZwZvpQMTIOd5Q==", "dev": true, "license": "BSD-2-Clause", "engines": { @@ -2990,9 +2405,9 @@ "license": "MIT" }, "node_modules/electron-to-chromium": { - "version": "1.5.457", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.457.tgz", - "integrity": "sha512-RNKsgErRmkzRgC8nOV1wzFhSbfGlYJ6k4LT/aE7oFrDYaQgHhTh5oTp0ZgSbRRybKR8HlZIdCWc38Y+CDTk1Jw==", + "version": "1.5.223", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.223.tgz", + "integrity": "sha512-qKm55ic6nbEmagFlTFczML33rF90aU+WtrJ9MdTCThrcvDNdUHN4p6QfVN78U06ZmguqXIyMPyYhw2TrbDUwPQ==", "dev": true, "license": "ISC" }, @@ -3010,9 +2425,9 @@ } }, "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==", + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", "dev": true, "license": "MIT" }, @@ -3026,26 +2441,6 @@ "is-arrayish": "^0.2.1" } }, - "node_modules/es-module-lexer": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.3.2.tgz", - "integrity": "sha512-poHGpORABojJJucnV9KbOavETW8lBVnphkW77ER5/BQ5Fz7oXSoCNek7IH3vR5nRjdsEz926ibFYX8KtLQmdyw==", - "dev": true, - "license": "MIT" - }, - "node_modules/es-toolkit": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/es-toolkit/-/es-toolkit-1.52.0.tgz", - "integrity": "sha512-XTNEJQh1tY1ZJVcf6ayP/2n4ZPyaHlW2FWs7xvw5ddPuhUVjLD3olQVQS7kf58JbAB48iL0uL/jerTrjtV3lDA==", - "dev": true, - "license": "MIT", - "workspaces": [ - "docs", - "benchmarks", - "tests/types", - "tests/browser-compat" - ] - }, "node_modules/es6-promise": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz", @@ -3088,16 +2483,16 @@ } }, "node_modules/eta": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/eta/-/eta-3.5.0.tgz", - "integrity": "sha512-e3x3FBvGzeCIHhF+zhK8FZA2vC5uFn6b4HJjegUbIWrDb4mJ7JjTGMJY9VGIbRVpmSwHopNiaJibhjIr+HfLug==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/eta/-/eta-4.0.1.tgz", + "integrity": "sha512-0h0oBEsF6qAJU7eu9ztvJoTo8D2PAq/4FvXVIQA1fek3WOTe6KPsVJycekG1+g1N6mfpblkheoGwaUhMtnlH4A==", "dev": true, "license": "MIT", "engines": { - "node": ">=6.0.0" + "node": ">=20" }, "funding": { - "url": "https://github.com/eta-dev/eta?sponsor=1" + "url": "https://github.com/bgub/eta?sponsor=1" } }, "node_modules/events": { @@ -3133,6 +2528,13 @@ "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, + "node_modules/execa/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true, + "license": "ISC" + }, "node_modules/exit-x": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/exit-x/-/exit-x-0.2.2.tgz", @@ -3144,34 +2546,27 @@ } }, "node_modules/expect": { - "version": "30.5.2", - "resolved": "https://registry.npmjs.org/expect/-/expect-30.5.2.tgz", - "integrity": "sha512-0LNuMvs8/5mRYhnCR4k+lGV7fqPMs6Bnksda4S3zsCUmdxBpAn4zU4NNzXdq1pMKe/H4W5t/zVIDSJ/H3e0vDA==", + "version": "30.1.2", + "resolved": "https://registry.npmjs.org/expect/-/expect-30.1.2.tgz", + "integrity": "sha512-xvHszRavo28ejws8FpemjhwswGj4w/BetHIL8cU49u4sGyXDw2+p3YbeDbj6xzlxi6kWTjIRSTJ+9sNXPnF0Zg==", "dev": true, "license": "MIT", "dependencies": { - "@jest/expect-utils": "30.5.2", - "@jest/get-type": "30.5.0", - "jest-matcher-utils": "30.5.2", - "jest-message-util": "30.5.1", - "jest-mock": "30.5.2", - "jest-util": "30.5.1" + "@jest/expect-utils": "30.1.2", + "@jest/get-type": "30.1.0", + "jest-matcher-utils": "30.1.2", + "jest-message-util": "30.1.0", + "jest-mock": "30.0.5", + "jest-util": "30.0.5" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/exsolve": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/exsolve/-/exsolve-1.1.3.tgz", - "integrity": "sha512-kuzL9zherLQoqDeQaS55AiiIg1kb4KYXaSusTtgZTPlvKP2gGCI82LNmBNh5RjDVUXIcmgx+/Mx7vPwRzBbhJA==", - "dev": true, - "license": "MIT" - }, - "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==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/exsolve/-/exsolve-1.0.7.tgz", + "integrity": "sha512-VO5fQUzZtI6C+vx4w/4BWJpg3s/5l+6pRQEHzFRM8WFi4XffSP1Z+4qi7GbjWbvRQEbdIco5mIMq+zX4rPuLrw==", "dev": true, "license": "MIT" }, @@ -3189,49 +2584,27 @@ "dev": true, "license": "MIT" }, - "node_modules/fast-uri": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.8.tgz", - "integrity": "sha512-GZMtZUTNRpOVIECoXwLNZS5xUGE+mVNbTB8h/7Rwh2TFWcBQiPzTgyZi05BF9UMZKkLJv8XBRJTlU7zg8+ZfMg==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fastify" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/fastify" - } - ], - "license": "BSD-3-Clause" - }, "node_modules/fb-watchman": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.4.tgz", - "integrity": "sha512-tGQtaoYisPDriJBN0mT5yZSyNETnJGA1gTYxaVRAE5KUO3LI9kPUc9WIu8JXcxaIci+faIKlzXqXyPgrmubtBQ==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", "dev": true, - "license": "MIT", + "license": "Apache-2.0", "dependencies": { - "bser": "2.1.2" + "bser": "2.1.1" } }, - "node_modules/fdir": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", - "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "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", - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "picomatch": "^3 || ^4" + "dependencies": { + "to-regex-range": "^5.0.1" }, - "peerDependenciesMeta": { - "picomatch": { - "optional": true - } + "engines": { + "node": ">=8" } }, "node_modules/find-up": { @@ -3265,17 +2638,26 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/foreground-child/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==", + "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, - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "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" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, "node_modules/gensync": { @@ -3322,28 +2704,39 @@ } }, "node_modules/giget": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/giget/-/giget-3.3.1.tgz", - "integrity": "sha512-r+mvuDjrjMpsdw46Kmeydb8bdHm7wOKw8wNBtTndkjbPjgAp5oUJUxRE76wZFknxIPokfWvep2qSXK37aXE6zg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/giget/-/giget-2.0.0.tgz", + "integrity": "sha512-L5bGsVkxJbJgdnwyuheIunkGatUF/zssUoxxjACCseZYAVbaqdh9Tsmmlkl8vYan09H7sbvKt4pS8GqKLBrEzA==", "dev": true, "license": "MIT", + "dependencies": { + "citty": "^0.1.6", + "consola": "^3.4.0", + "defu": "^6.1.4", + "node-fetch-native": "^1.6.6", + "nypm": "^0.6.0", + "pathe": "^2.0.3" + }, "bin": { "giget": "dist/cli.mjs" } }, "node_modules/glob": { - "version": "13.0.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.6.tgz", - "integrity": "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==", + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "dev": true, - "license": "BlueOak-1.0.0", + "license": "ISC", "dependencies": { - "minimatch": "^10.2.2", - "minipass": "^7.1.3", - "path-scurry": "^2.0.2" + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" }, - "engines": { - "node": "18 || 20 || >=22" + "bin": { + "glob": "dist/esm/bin.mjs" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -3357,13 +2750,13 @@ "license": "ISC" }, "node_modules/handlebars": { - "version": "4.7.10", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.10.tgz", - "integrity": "sha512-P5VJMVM7qgBn6vjXMw8WG9uVI+ncf2pi72j4de4yz5ZULLj2RGqLYaKOYGsgyrViQ0tePOVlN1tDCCXXtFqXKg==", + "version": "4.7.8", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", + "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", "dev": true, "license": "MIT", "dependencies": { - "minimist": "^1.2.8", + "minimist": "^1.2.5", "neo-async": "^2.6.2", "source-map": "^0.6.1", "wordwrap": "^1.0.0" @@ -3442,6 +2835,25 @@ "node": ">=0.8.19" } }, + "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" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", @@ -3449,16 +2861,6 @@ "dev": true, "license": "MIT" }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "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", @@ -3479,17 +2881,14 @@ "node": ">=6" } }, - "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==", + "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", - "dependencies": { - "is-extglob": "^2.1.1" - }, "engines": { - "node": ">=0.10.0" + "node": ">=0.12.0" } }, "node_modules/is-stream": { @@ -3540,9 +2939,9 @@ } }, "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "7.8.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", - "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", "dev": true, "license": "ISC", "bin": { @@ -3613,16 +3012,16 @@ } }, "node_modules/jest": { - "version": "30.5.2", - "resolved": "https://registry.npmjs.org/jest/-/jest-30.5.2.tgz", - "integrity": "sha512-3gnpdBIza8ijCl3iMV9ChE3hSt1+46865qqod863gQtJr1DixOkAU5DoGbi3u+XlRcw++BhZQMu/y4xBdHBvSQ==", + "version": "30.1.3", + "resolved": "https://registry.npmjs.org/jest/-/jest-30.1.3.tgz", + "integrity": "sha512-Ry+p2+NLk6u8Agh5yVqELfUJvRfV51hhVBRIB5yZPY7mU0DGBmOuFG5GebZbMbm86cdQNK0fhJuDX8/1YorISQ==", "dev": true, "license": "MIT", "dependencies": { - "@jest/core": "30.5.2", - "@jest/types": "30.5.1", + "@jest/core": "30.1.3", + "@jest/types": "30.0.5", "import-local": "^3.2.0", - "jest-cli": "30.5.2" + "jest-cli": "30.1.3" }, "bin": { "jest": "bin/jest.js" @@ -3640,14 +3039,14 @@ } }, "node_modules/jest-changed-files": { - "version": "30.5.1", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-30.5.1.tgz", - "integrity": "sha512-0+bvMM/ENhDI29Z8q1r4HxiDIi4G5tnBmSw4esfPQoj9q8Nik7KIyuxHkTVnnniJQf05SxpGaKDQ+4h28ynGPg==", + "version": "30.0.5", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-30.0.5.tgz", + "integrity": "sha512-bGl2Ntdx0eAwXuGpdLdVYVr5YQHnSZlQ0y9HVDu565lCUAe9sj6JOtBbMmBBikGIegne9piDDIOeiLVoqTkz4A==", "dev": true, "license": "MIT", "dependencies": { "execa": "^5.1.1", - "jest-util": "30.5.1", + "jest-util": "30.0.5", "p-limit": "^3.1.0" }, "engines": { @@ -3655,29 +3054,29 @@ } }, "node_modules/jest-circus": { - "version": "30.5.2", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-30.5.2.tgz", - "integrity": "sha512-vffFgjs5JSJ9q4ds1vNW3klKYPJfYfIY61LT/zaZgvTeASJOWZUt8LBfHgIcV4rwxlPBLl/ePBGccHEclS4PlQ==", + "version": "30.1.3", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-30.1.3.tgz", + "integrity": "sha512-Yf3dnhRON2GJT4RYzM89t/EXIWNxKTpWTL9BfF3+geFetWP4XSvJjiU1vrWplOiUkmq8cHLiwuhz+XuUp9DscA==", "dev": true, "license": "MIT", "dependencies": { - "@jest/environment": "30.5.2", - "@jest/expect": "30.5.2", - "@jest/test-result": "30.5.2", - "@jest/types": "30.5.1", + "@jest/environment": "30.1.2", + "@jest/expect": "30.1.2", + "@jest/test-result": "30.1.3", + "@jest/types": "30.0.5", "@types/node": "*", "chalk": "^4.1.2", "co": "^4.6.0", "dedent": "^1.6.0", "is-generator-fn": "^2.1.0", - "jest-each": "30.5.2", - "jest-matcher-utils": "30.5.2", - "jest-message-util": "30.5.1", - "jest-runtime": "30.5.2", - "jest-snapshot": "30.5.2", - "jest-util": "30.5.1", + "jest-each": "30.1.0", + "jest-matcher-utils": "30.1.2", + "jest-message-util": "30.1.0", + "jest-runtime": "30.1.3", + "jest-snapshot": "30.1.2", + "jest-util": "30.0.5", "p-limit": "^3.1.0", - "pretty-format": "30.5.1", + "pretty-format": "30.0.5", "pure-rand": "^7.0.0", "slash": "^3.0.0", "stack-utils": "^2.0.6" @@ -3687,21 +3086,21 @@ } }, "node_modules/jest-cli": { - "version": "30.5.2", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-30.5.2.tgz", - "integrity": "sha512-YYYxUUVjFgPvgEleKNKMaYGIFgR3l3832Cl0kRL/oCiDZ03v7wImUtquHl2OOBCCNgprjZgBN5bczS/JklPBDg==", + "version": "30.1.3", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-30.1.3.tgz", + "integrity": "sha512-G8E2Ol3OKch1DEeIBl41NP7OiC6LBhfg25Btv+idcusmoUSpqUkbrneMqbW9lVpI/rCKb/uETidb7DNteheuAQ==", "dev": true, "license": "MIT", "dependencies": { - "@jest/core": "30.5.2", - "@jest/test-result": "30.5.2", - "@jest/types": "30.5.1", + "@jest/core": "30.1.3", + "@jest/test-result": "30.1.3", + "@jest/types": "30.0.5", "chalk": "^4.1.2", "exit-x": "^0.2.2", "import-local": "^3.2.0", - "jest-config": "30.5.2", - "jest-util": "30.5.1", - "jest-validate": "30.5.1", + "jest-config": "30.1.3", + "jest-util": "30.0.5", + "jest-validate": "30.1.0", "yargs": "^17.7.2" }, "bin": { @@ -3720,33 +3119,34 @@ } }, "node_modules/jest-config": { - "version": "30.5.2", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-30.5.2.tgz", - "integrity": "sha512-U6221OZekabePvGcGPf4raIBKMvYQWFHvhobDJRojOYaFMj2HaGytAdknjDhYc6JTz2fdHW9+6k0wWUDaNeOFQ==", + "version": "30.1.3", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-30.1.3.tgz", + "integrity": "sha512-M/f7gqdQEPgZNA181Myz+GXCe8jXcJsGjCMXUzRj22FIXsZOyHNte84e0exntOvdPaeh9tA0w+B8qlP2fAezfw==", "dev": true, "license": "MIT", "dependencies": { "@babel/core": "^7.27.4", - "@jest/get-type": "30.5.0", - "@jest/pattern": "30.5.0", - "@jest/test-sequencer": "30.5.2", - "@jest/types": "30.5.1", - "babel-jest": "30.5.2", + "@jest/get-type": "30.1.0", + "@jest/pattern": "30.0.1", + "@jest/test-sequencer": "30.1.3", + "@jest/types": "30.0.5", + "babel-jest": "30.1.2", "chalk": "^4.1.2", "ci-info": "^4.2.0", "deepmerge": "^4.3.1", - "glob": "^13.0.6", + "glob": "^10.3.10", "graceful-fs": "^4.2.11", - "jest-circus": "30.5.2", - "jest-docblock": "30.5.0", - "jest-environment-node": "30.5.2", - "jest-regex-util": "30.5.0", - "jest-resolve": "30.5.1", - "jest-runner": "30.5.2", - "jest-util": "30.5.1", - "jest-validate": "30.5.1", + "jest-circus": "30.1.3", + "jest-docblock": "30.0.1", + "jest-environment-node": "30.1.2", + "jest-regex-util": "30.0.1", + "jest-resolve": "30.1.3", + "jest-runner": "30.1.3", + "jest-util": "30.0.5", + "jest-validate": "30.1.0", + "micromatch": "^4.0.8", "parse-json": "^5.2.0", - "pretty-format": "30.5.1", + "pretty-format": "30.0.5", "slash": "^3.0.0", "strip-json-comments": "^3.1.1" }, @@ -3771,25 +3171,25 @@ } }, "node_modules/jest-diff": { - "version": "30.5.2", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-30.5.2.tgz", - "integrity": "sha512-rBtHnI6BWTiWj3lM7fOLVfChx7R9B0u9VV3PRHawKs79x6ZjW1QoSrKenaigNGWlvhtoi2BqvDbABDie+Os3xQ==", + "version": "30.1.2", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-30.1.2.tgz", + "integrity": "sha512-4+prq+9J61mOVXCa4Qp8ZjavdxzrWQXrI80GNxP8f4tkI2syPuPrJgdRPZRrfUTRvIoUwcmNLbqEJy9W800+NQ==", "dev": true, "license": "MIT", "dependencies": { - "@jest/diff-sequences": "30.5.0", - "@jest/get-type": "30.5.0", + "@jest/diff-sequences": "30.0.1", + "@jest/get-type": "30.1.0", "chalk": "^4.1.2", - "pretty-format": "30.5.1" + "pretty-format": "30.0.5" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-docblock": { - "version": "30.5.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-30.5.0.tgz", - "integrity": "sha512-NwDqcxtoZi33RhuW+zJS/RVA3rmheQ8BnwpYZuc/Eruaz6seQb7+aoCeDZu/3X7W2XmD8DbSo9Pn72DbKsBFYw==", + "version": "30.0.1", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-30.0.1.tgz", + "integrity": "sha512-/vF78qn3DYphAaIc3jy4gA7XSAz167n9Bm/wn/1XhTLW7tTBIzXtCJpb/vcmc73NIIeeohCbdL94JasyXUZsGA==", "dev": true, "license": "MIT", "dependencies": { @@ -3800,110 +3200,110 @@ } }, "node_modules/jest-each": { - "version": "30.5.2", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-30.5.2.tgz", - "integrity": "sha512-GRrW+7fmmgmkvyfEBqc1QFdWnF1Ex5yG6Y6AWL4TTxnkWlKIT98dsKh3P3UuWm6v4XsQwVE6DEzXIPMzWJ3ZbA==", + "version": "30.1.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-30.1.0.tgz", + "integrity": "sha512-A+9FKzxPluqogNahpCv04UJvcZ9B3HamqpDNWNKDjtxVRYB8xbZLFuCr8JAJFpNp83CA0anGQFlpQna9Me+/tQ==", "dev": true, "license": "MIT", "dependencies": { - "@jest/get-type": "30.5.0", - "@jest/types": "30.5.1", + "@jest/get-type": "30.1.0", + "@jest/types": "30.0.5", "chalk": "^4.1.2", - "jest-regex-util": "30.5.0", - "jest-util": "30.5.1", - "pretty-format": "30.5.1" + "jest-util": "30.0.5", + "pretty-format": "30.0.5" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-environment-node": { - "version": "30.5.2", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-30.5.2.tgz", - "integrity": "sha512-Ciz4KgTGIbojxSKpuFImgWJj5EyqfE8xMq9NxWmOXnQywHHS03H9Mv+vaCB29J5pr3JBrY27WbRV18rBdjh8Dg==", + "version": "30.1.2", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-30.1.2.tgz", + "integrity": "sha512-w8qBiXtqGWJ9xpJIA98M0EIoq079GOQRQUyse5qg1plShUCQ0Ek1VTTcczqKrn3f24TFAgFtT+4q3aOXvjbsuA==", "dev": true, "license": "MIT", "dependencies": { - "@jest/environment": "30.5.2", - "@jest/fake-timers": "30.5.2", - "@jest/types": "30.5.1", + "@jest/environment": "30.1.2", + "@jest/fake-timers": "30.1.2", + "@jest/types": "30.0.5", "@types/node": "*", - "jest-mock": "30.5.2", - "jest-util": "30.5.1", - "jest-validate": "30.5.1" + "jest-mock": "30.0.5", + "jest-util": "30.0.5", + "jest-validate": "30.1.0" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-haste-map": { - "version": "30.5.1", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-30.5.1.tgz", - "integrity": "sha512-VIFgt67jW480YDxKfEv9IYQKrFpYt7bOCMn3VsnjK7AK9qo7p6acpnA1DHwsVOULE3dTaYew/6JaTD/d0VDHoQ==", + "version": "30.1.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-30.1.0.tgz", + "integrity": "sha512-JLeM84kNjpRkggcGpQLsV7B8W4LNUWz7oDNVnY1Vjj22b5/fAb3kk3htiD+4Na8bmJmjJR7rBtS2Rmq/NEcADg==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "30.5.1", - "@parcel/watcher": "^2.6.0", + "@jest/types": "30.0.5", "@types/node": "*", "anymatch": "^3.1.3", "fb-watchman": "^2.0.2", - "fdir": "^6.5.0", "graceful-fs": "^4.2.11", - "jest-regex-util": "30.5.0", - "jest-util": "30.5.1", - "jest-worker": "30.5.1", - "picomatch": "^4.0.3" + "jest-regex-util": "30.0.1", + "jest-util": "30.0.5", + "jest-worker": "30.1.0", + "micromatch": "^4.0.8", + "walker": "^1.0.8" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.3" } }, "node_modules/jest-leak-detector": { - "version": "30.5.1", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-30.5.1.tgz", - "integrity": "sha512-gt4GT2aWgEoCNTcBe4rqS74xTIUJxi+UD9SNSu9aOk5LmTEd6fS5KSTmAKAfitCCktQHNN+upUuL6EkBfFbMDQ==", + "version": "30.1.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-30.1.0.tgz", + "integrity": "sha512-AoFvJzwxK+4KohH60vRuHaqXfWmeBATFZpzpmzNmYTtmRMiyGPVhkXpBqxUQunw+dQB48bDf4NpUs6ivVbRv1g==", "dev": true, "license": "MIT", "dependencies": { - "@jest/get-type": "30.5.0", - "pretty-format": "30.5.1" + "@jest/get-type": "30.1.0", + "pretty-format": "30.0.5" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-matcher-utils": { - "version": "30.5.2", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-30.5.2.tgz", - "integrity": "sha512-lFkB365PTIHOhPzwrb9T6gvlDnPpOZ7/c3ewOKKB7bzztqjVrtlyRL2MkyfJXpyY2u2SKw001JKrTx14fBUFcQ==", + "version": "30.1.2", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-30.1.2.tgz", + "integrity": "sha512-7ai16hy4rSbDjvPTuUhuV8nyPBd6EX34HkBsBcBX2lENCuAQ0qKCPb/+lt8OSWUa9WWmGYLy41PrEzkwRwoGZQ==", "dev": true, "license": "MIT", "dependencies": { - "@jest/get-type": "30.5.0", + "@jest/get-type": "30.1.0", "chalk": "^4.1.2", - "jest-diff": "30.5.2", - "pretty-format": "30.5.1" + "jest-diff": "30.1.2", + "pretty-format": "30.0.5" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-message-util": { - "version": "30.5.1", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-30.5.1.tgz", - "integrity": "sha512-UdQlLdd9wL/Ys7xRErckqwD6wPlSZYueosSWuHc1r2ztGLwlgPvtSJq2+BPEgaEY13WLvfFbmhTj8pba0Sd1jg==", + "version": "30.1.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-30.1.0.tgz", + "integrity": "sha512-HizKDGG98cYkWmaLUHChq4iN+oCENohQLb7Z5guBPumYs+/etonmNFlg1Ps6yN9LTPyZn+M+b/9BbnHx3WTMDg==", "dev": true, "license": "MIT", "dependencies": { "@babel/code-frame": "^7.27.1", - "@jest/types": "30.5.1", + "@jest/types": "30.0.5", "@types/stack-utils": "^2.0.3", "chalk": "^4.1.2", "graceful-fs": "^4.2.11", - "jest-util": "30.5.1", - "picomatch": "^4.0.3", - "pretty-format": "30.5.1", + "micromatch": "^4.0.8", + "pretty-format": "30.0.5", "slash": "^3.0.0", "stack-utils": "^2.0.6" }, @@ -3912,25 +3312,42 @@ } }, "node_modules/jest-mock": { - "version": "30.5.2", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-30.5.2.tgz", - "integrity": "sha512-KTHb37Fhj8xY8qPFvTFaFJHcdsumQp+ExsUlgoX232Agmc706gagBs53+CYvulV7MVQo9AgXOUxsqzzVBoJlrA==", + "version": "30.0.5", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-30.0.5.tgz", + "integrity": "sha512-Od7TyasAAQX/6S+QCbN6vZoWOMwlTtzzGuxJku1GhGanAjz9y+QsQkpScDmETvdc9aSXyJ/Op4rhpMYBWW91wQ==", "dev": true, "license": "MIT", "dependencies": { - "@jest/expect-utils": "30.5.2", - "@jest/types": "30.5.1", + "@jest/types": "30.0.5", "@types/node": "*", - "jest-util": "30.5.1" + "jest-util": "30.0.5" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, "node_modules/jest-regex-util": { - "version": "30.5.0", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-30.5.0.tgz", - "integrity": "sha512-Mg0WK7A6xRHLSA1udJ8y9f3lM0uUhFTBnLKzwPmqB9AylvpleJ6BLemR8K9dK27DY+cesDryoA7yLZCAHsPG1A==", + "version": "30.0.1", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-30.0.1.tgz", + "integrity": "sha512-jHEQgBXAgc+Gh4g0p3bCevgRCVRkB4VB70zhoAE48gxeSr1hfUOsM/C2WoJgVL7Eyg//hudYENbm3Ne+/dRVVA==", "dev": true, "license": "MIT", "engines": { @@ -3938,100 +3355,100 @@ } }, "node_modules/jest-resolve": { - "version": "30.5.1", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-30.5.1.tgz", - "integrity": "sha512-wprhLejRtwN6h8ZgaqC0eYjGJ1uMdGPT/+b3eFncbG4NWuuP9QL+vWwRinu9waw7hkOLcpMJGVJAMgBwsPssMQ==", + "version": "30.1.3", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-30.1.3.tgz", + "integrity": "sha512-DI4PtTqzw9GwELFS41sdMK32Ajp3XZQ8iygeDMWkxlRhm7uUTOFSZFVZABFuxr0jvspn8MAYy54NxZCsuCTSOw==", "dev": true, "license": "MIT", "dependencies": { "chalk": "^4.1.2", "graceful-fs": "^4.2.11", - "jest-haste-map": "30.5.1", - "jest-util": "30.5.1", - "jest-validate": "30.5.1", + "jest-haste-map": "30.1.0", + "jest-pnp-resolver": "^1.2.3", + "jest-util": "30.0.5", + "jest-validate": "30.1.0", "slash": "^3.0.0", - "unrs-resolver": "^1.12.1" + "unrs-resolver": "^1.7.11" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-resolve-dependencies": { - "version": "30.5.2", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-30.5.2.tgz", - "integrity": "sha512-GMI0DP5enX9Z2qW2zFy1bOkrCfWAOPRJQ7qHt0pdfrxBPsgWxglMPrRSK2TX/wRWYxcPRSLFg3Z88qPOzHx7FQ==", + "version": "30.1.3", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-30.1.3.tgz", + "integrity": "sha512-DNfq3WGmuRyHRHfEet+Zm3QOmVFtIarUOQHHryKPc0YL9ROfgWZxl4+aZq/VAzok2SS3gZdniP+dO4zgo59hBg==", "dev": true, "license": "MIT", "dependencies": { - "jest-regex-util": "30.5.0", - "jest-snapshot": "30.5.2" + "jest-regex-util": "30.0.1", + "jest-snapshot": "30.1.2" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-runner": { - "version": "30.5.2", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-30.5.2.tgz", - "integrity": "sha512-/B6px7hiiNhVSRwuv9AGn0nawYvwsHeQZ3ItTd5Gp2diFd0EOKaWVeWqcbw3L88vx1GfpCKjQkxWItZCTl11Rw==", + "version": "30.1.3", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-30.1.3.tgz", + "integrity": "sha512-dd1ORcxQraW44Uz029TtXj85W11yvLpDuIzNOlofrC8GN+SgDlgY4BvyxJiVeuabA1t6idjNbX59jLd2oplOGQ==", "dev": true, "license": "MIT", "dependencies": { - "@jest/console": "30.5.2", - "@jest/environment": "30.5.2", - "@jest/source-map": "30.5.2", - "@jest/test-result": "30.5.2", - "@jest/transform": "30.5.2", - "@jest/types": "30.5.1", + "@jest/console": "30.1.2", + "@jest/environment": "30.1.2", + "@jest/test-result": "30.1.3", + "@jest/transform": "30.1.2", + "@jest/types": "30.0.5", "@types/node": "*", "chalk": "^4.1.2", "emittery": "^0.13.1", "exit-x": "^0.2.2", "graceful-fs": "^4.2.11", - "jest-docblock": "30.5.0", - "jest-environment-node": "30.5.2", - "jest-haste-map": "30.5.1", - "jest-leak-detector": "30.5.1", - "jest-message-util": "30.5.1", - "jest-resolve": "30.5.1", - "jest-runtime": "30.5.2", - "jest-util": "30.5.1", - "jest-watcher": "30.5.2", - "jest-worker": "30.5.1", - "p-limit": "^3.1.0" + "jest-docblock": "30.0.1", + "jest-environment-node": "30.1.2", + "jest-haste-map": "30.1.0", + "jest-leak-detector": "30.1.0", + "jest-message-util": "30.1.0", + "jest-resolve": "30.1.3", + "jest-runtime": "30.1.3", + "jest-util": "30.0.5", + "jest-watcher": "30.1.3", + "jest-worker": "30.1.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-runtime": { - "version": "30.5.2", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-30.5.2.tgz", - "integrity": "sha512-0paUAHBlheai10A3XSy9Xh+YBG0IROy+/qzcDPzQ/nbbXrznQzeWy5qniICWK6d3W3scaRQCVAbXdcK0ibBq4w==", + "version": "30.1.3", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-30.1.3.tgz", + "integrity": "sha512-WS8xgjuNSphdIGnleQcJ3AKE4tBKOVP+tKhCD0u+Tb2sBmsU8DxfbBpZX7//+XOz81zVs4eFpJQwBNji2Y07DA==", "dev": true, "license": "MIT", "dependencies": { - "@jest/environment": "30.5.2", - "@jest/fake-timers": "30.5.2", - "@jest/globals": "30.5.2", - "@jest/source-map": "30.5.2", - "@jest/test-result": "30.5.2", - "@jest/transform": "30.5.2", - "@jest/types": "30.5.1", + "@jest/environment": "30.1.2", + "@jest/fake-timers": "30.1.2", + "@jest/globals": "30.1.2", + "@jest/source-map": "30.0.1", + "@jest/test-result": "30.1.3", + "@jest/transform": "30.1.2", + "@jest/types": "30.0.5", "@types/node": "*", "chalk": "^4.1.2", - "cjs-module-lexer": "^2.2.0", + "cjs-module-lexer": "^2.1.0", "collect-v8-coverage": "^1.0.2", - "es-module-lexer": "^2.1.0", - "glob": "^13.0.6", + "glob": "^10.3.10", "graceful-fs": "^4.2.11", - "jest-haste-map": "30.5.1", - "jest-message-util": "30.5.1", - "jest-mock": "30.5.2", - "jest-regex-util": "30.5.0", - "jest-resolve": "30.5.1", - "jest-snapshot": "30.5.2", - "jest-util": "30.5.1", + "jest-haste-map": "30.1.0", + "jest-message-util": "30.1.0", + "jest-mock": "30.0.5", + "jest-regex-util": "30.0.1", + "jest-resolve": "30.1.3", + "jest-snapshot": "30.1.2", + "jest-util": "30.0.5", "slash": "^3.0.0", "strip-bom": "^4.0.0" }, @@ -4040,9 +3457,9 @@ } }, "node_modules/jest-snapshot": { - "version": "30.5.2", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-30.5.2.tgz", - "integrity": "sha512-jKIdes25AnAH73dOCi2qE6J6vHJ6L2vyBS11M89kT50DVJcLTf2AOjvcc+2vVaN8lUbY5v2R83aqXo3Ro9fqYA==", + "version": "30.1.2", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-30.1.2.tgz", + "integrity": "sha512-4q4+6+1c8B6Cy5pGgFvjDy/Pa6VYRiGu0yQafKkJ9u6wQx4G5PqI2QR6nxTl43yy7IWsINwz6oT4o6tD12a8Dg==", "dev": true, "license": "MIT", "dependencies": { @@ -4051,20 +3468,20 @@ "@babel/plugin-syntax-jsx": "^7.27.1", "@babel/plugin-syntax-typescript": "^7.27.1", "@babel/types": "^7.27.3", - "@jest/expect-utils": "30.5.2", - "@jest/get-type": "30.5.0", - "@jest/snapshot-utils": "30.5.1", - "@jest/transform": "30.5.2", - "@jest/types": "30.5.1", - "babel-preset-current-node-syntax": "^1.2.0", + "@jest/expect-utils": "30.1.2", + "@jest/get-type": "30.1.0", + "@jest/snapshot-utils": "30.1.2", + "@jest/transform": "30.1.2", + "@jest/types": "30.0.5", + "babel-preset-current-node-syntax": "^1.1.0", "chalk": "^4.1.2", - "expect": "30.5.2", + "expect": "30.1.2", "graceful-fs": "^4.2.11", - "jest-diff": "30.5.2", - "jest-matcher-utils": "30.5.2", - "jest-message-util": "30.5.1", - "jest-util": "30.5.1", - "pretty-format": "30.5.1", + "jest-diff": "30.1.2", + "jest-matcher-utils": "30.1.2", + "jest-message-util": "30.1.0", + "jest-util": "30.0.5", + "pretty-format": "30.0.5", "semver": "^7.7.2", "synckit": "^0.11.8" }, @@ -4073,9 +3490,9 @@ } }, "node_modules/jest-snapshot/node_modules/semver": { - "version": "7.8.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", - "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", "dev": true, "license": "ISC", "bin": { @@ -4086,36 +3503,49 @@ } }, "node_modules/jest-util": { - "version": "30.5.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.5.1.tgz", - "integrity": "sha512-yKuxmNy2rSbTXw+3SIPanJo+nV4/BS1p26v44IYBFMsswSQySfMMcPHErnOncda7i9HEz0q605rIhSTBVgrZTg==", + "version": "30.0.5", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.0.5.tgz", + "integrity": "sha512-pvyPWssDZR0FlfMxCBoc0tvM8iUEskaRFALUtGQYzVEAqisAztmy+R8LnU14KT4XA0H/a5HMVTXat1jLne010g==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "30.5.1", + "@jest/types": "30.0.5", "@types/node": "*", "chalk": "^4.1.2", "ci-info": "^4.2.0", "graceful-fs": "^4.2.11", - "picomatch": "^4.0.3" + "picomatch": "^4.0.2" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, + "node_modules/jest-util/node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/jest-validate": { - "version": "30.5.1", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-30.5.1.tgz", - "integrity": "sha512-i/buJ56wTpxihE93hQYNMfdOThS87+HGvLZzZJmU4xggPcdTYQq051iwALLCHp3q+SkCGH+EFejQZz5EbBSkkg==", + "version": "30.1.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-30.1.0.tgz", + "integrity": "sha512-7P3ZlCFW/vhfQ8pE7zW6Oi4EzvuB4sgR72Q1INfW9m0FGo0GADYlPwIkf4CyPq7wq85g+kPMtPOHNAdWHeBOaA==", "dev": true, "license": "MIT", "dependencies": { - "@jest/get-type": "30.5.0", - "@jest/types": "30.5.1", + "@jest/get-type": "30.1.0", + "@jest/types": "30.0.5", "camelcase": "^6.3.0", "chalk": "^4.1.2", "leven": "^3.1.0", - "pretty-format": "30.5.1" + "pretty-format": "30.0.5" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" @@ -4135,19 +3565,19 @@ } }, "node_modules/jest-watcher": { - "version": "30.5.2", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-30.5.2.tgz", - "integrity": "sha512-rqRgg4R11GA9m1UsEZwQeixHsgZReCn6TOHAHtIH33yXrIvoX0OGPA20Yzzjkz7X40fZvcRSxEpQppYPcWzmcQ==", + "version": "30.1.3", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-30.1.3.tgz", + "integrity": "sha512-6jQUZCP1BTL2gvG9E4YF06Ytq4yMb4If6YoQGRR6PpjtqOXSP3sKe2kqwB6SQ+H9DezOfZaSLnmka1NtGm3fCQ==", "dev": true, "license": "MIT", "dependencies": { - "@jest/test-result": "30.5.2", - "@jest/types": "30.5.1", + "@jest/test-result": "30.1.3", + "@jest/types": "30.0.5", "@types/node": "*", "ansi-escapes": "^4.3.2", "chalk": "^4.1.2", "emittery": "^0.13.1", - "jest-util": "30.5.1", + "jest-util": "30.0.5", "string-length": "^4.0.2" }, "engines": { @@ -4155,15 +3585,15 @@ } }, "node_modules/jest-worker": { - "version": "30.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-30.5.1.tgz", - "integrity": "sha512-Cbxh5v7AoLuFRmFJSM4/aHdQ68rjXvUWr716EE0Dh3I7T+T/3FgFKhOERGXHcU2Meftq9+9zxPM3TSNyI9D+HA==", + "version": "30.1.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-30.1.0.tgz", + "integrity": "sha512-uvWcSjlwAAgIu133Tt77A05H7RIk3Ho8tZL50bQM2AkvLdluw9NG48lRCl3Dt+MOH719n/0nnb5YxUwcuJiKRA==", "dev": true, "license": "MIT", "dependencies": { "@types/node": "*", "@ungap/structured-clone": "^1.3.0", - "jest-util": "30.5.1", + "jest-util": "30.0.5", "merge-stream": "^2.0.0", "supports-color": "^8.1.1" }, @@ -4188,9 +3618,9 @@ } }, "node_modules/jiti": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.7.0.tgz", - "integrity": "sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.0.tgz", + "integrity": "sha512-VXe6RjJkBPj0ohtqaO8vSWP3ZhAKo66fKrFNCll4BTcwljPLz03pCbaNKfzGP5MbrCYcbJ7v0nOYYwUzTEIdXQ==", "dev": true, "license": "MIT", "bin": { @@ -4205,9 +3635,9 @@ "license": "MIT" }, "node_modules/js-yaml": { - "version": "3.15.2", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.15.2.tgz", - "integrity": "sha512-6EuL879VkRA+1Cz578mKMiKvjPNEuk6+r1JaFzoSWejZmtf7xWbIyw1e3KkxlkzTIt9Taw6JBhEppG7utc1P+w==", + "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, "license": "MIT", "dependencies": { @@ -4238,13 +3668,6 @@ "dev": true, "license": "MIT" }, - "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, - "license": "MIT" - }, "node_modules/json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", @@ -4288,6 +3711,13 @@ "node": ">=8" } }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true, + "license": "MIT" + }, "node_modules/lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", @@ -4322,9 +3752,9 @@ } }, "node_modules/make-dir/node_modules/semver": { - "version": "7.8.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", - "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", "dev": true, "license": "ISC", "bin": { @@ -4341,6 +3771,16 @@ "dev": true, "license": "ISC" }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "tmpl": "1.0.5" + } + }, "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", @@ -4348,6 +3788,20 @@ "dev": true, "license": "MIT" }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, "node_modules/mimic-fn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", @@ -4359,16 +3813,16 @@ } }, "node_modules/minimatch": { - "version": "10.2.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.6.tgz", - "integrity": "sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, - "license": "BlueOak-1.0.0", + "license": "ISC", "dependencies": { - "brace-expansion": "^5.0.8" + "brace-expansion": "^2.0.1" }, "engines": { - "node": "18 || 20 || >=22" + "node": ">=16 || 14 >=14.17" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -4385,11 +3839,11 @@ } }, "node_modules/minipass": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz", - "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "dev": true, - "license": "BlueOak-1.0.0", + "license": "ISC", "engines": { "node": ">=16 || 14 >=14.17" } @@ -4402,9 +3856,9 @@ "license": "MIT" }, "node_modules/nanoid": { - "version": "5.1.16", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-5.1.16.tgz", - "integrity": "sha512-kVrnsrJqMR8+oLJnGEmSWw9BivK5mt7H3FZatVRjrc5wGqFYuBxX1yG7+A7Gi5AefkX6t/oCkizcQgpu0cY1dQ==", + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-5.1.6.tgz", + "integrity": "sha512-c7+7RQ+dMB5dPwwCp4ee1/iV/q2P6aK1mTZcfr1BTuVlyW9hJYiMPybJCcnBlQtuSmTIWNeazm/zqNoZSSElBg==", "dev": true, "funding": [ { @@ -4421,9 +3875,9 @@ } }, "node_modules/napi-postinstall": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/napi-postinstall/-/napi-postinstall-0.3.4.tgz", - "integrity": "sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==", + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/napi-postinstall/-/napi-postinstall-0.3.3.tgz", + "integrity": "sha512-uTp172LLXSxuSYHv/kou+f6KW3SMppU9ivthaVTXian9sOt3XM/zHYHpRZiLgQoxeWfYUnslNWQHF1+G71xcow==", "dev": true, "license": "MIT", "bin": { @@ -4450,13 +3904,6 @@ "dev": true, "license": "MIT" }, - "node_modules/node-addon-api": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", - "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", - "dev": true, - "license": "MIT" - }, "node_modules/node-fetch": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", @@ -4491,6 +3938,13 @@ "node": "4.x || >=6.0.0" } }, + "node_modules/node-fetch-native": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.6.7.tgz", + "integrity": "sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==", + "dev": true, + "license": "MIT" + }, "node_modules/node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", @@ -4509,14 +3963,11 @@ } }, "node_modules/node-releases": { - "version": "2.0.59", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.59.tgz", - "integrity": "sha512-5qr2okC4ItAI0hG5SaV0HoYMpnM/Y6+Oqr7AmPYy/2uEoGvS+GbSKLeRxSS1uAdu59yz0ouzcuXievSgg///WA==", + "version": "2.0.21", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.21.tgz", + "integrity": "sha512-5b0pgg78U3hwXkCM8Z9b2FJdPZlr9Psr9V2gQPESdGHqbntyFJKFW4r5TeWGFzafGY3hzs1JC62VEQMbl1JFkw==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - } + "license": "MIT" }, "node_modules/normalize-path": { "version": "3.0.0", @@ -4541,6 +3992,26 @@ "node": ">=8" } }, + "node_modules/nypm": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/nypm/-/nypm-0.6.2.tgz", + "integrity": "sha512-7eM+hpOtrKrBDCh7Ypu2lJ9Z7PNZBdi/8AT3AX8xoCj43BBVHD0hPSTEvMtkMpfs8FCqBGhxB+uToIQimA111g==", + "dev": true, + "license": "MIT", + "dependencies": { + "citty": "^0.1.6", + "consola": "^3.4.2", + "pathe": "^2.0.3", + "pkg-types": "^2.3.0", + "tinyexec": "^1.0.1" + }, + "bin": { + "nypm": "dist/cli.mjs" + }, + "engines": { + "node": "^14.16.0 || >=16.10.0" + } + }, "node_modules/oas-kit-common": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/oas-kit-common/-/oas-kit-common-1.0.8.tgz", @@ -4567,9 +4038,9 @@ } }, "node_modules/oas-linter/node_modules/yaml": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.3.tgz", - "integrity": "sha512-vIYeF1u3CjlhAFekPPAk2h/Kv4T3mAkMox5OymRiJQB0spDP10LHvt+K7G9Ny6NuuMAb25/6n1qyUjAcGNf/AA==", + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", "dev": true, "license": "ISC", "engines": { @@ -4597,9 +4068,9 @@ } }, "node_modules/oas-resolver/node_modules/yaml": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.3.tgz", - "integrity": "sha512-vIYeF1u3CjlhAFekPPAk2h/Kv4T3mAkMox5OymRiJQB0spDP10LHvt+K7G9Ny6NuuMAb25/6n1qyUjAcGNf/AA==", + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", "dev": true, "license": "ISC", "engines": { @@ -4637,9 +4108,9 @@ } }, "node_modules/oas-validator/node_modules/yaml": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.3.tgz", - "integrity": "sha512-vIYeF1u3CjlhAFekPPAk2h/Kv4T3mAkMox5OymRiJQB0spDP10LHvt+K7G9Ny6NuuMAb25/6n1qyUjAcGNf/AA==", + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", "dev": true, "license": "ISC", "engines": { @@ -4647,12 +4118,22 @@ } }, "node_modules/ohash": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/ohash/-/ohash-2.0.12.tgz", - "integrity": "sha512-65S/5gk9YSsaRjcyf7Nfa6h/d3E8/1gslpXfI4W7Dxn/oap8IKRuNT5VXkLQ1YFKIEg4apRY4Pj6aiwFzrDdmw==", + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/ohash/-/ohash-2.0.11.tgz", + "integrity": "sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==", "dev": true, "license": "MIT" }, + "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": "5.1.2", "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", @@ -4670,9 +4151,9 @@ } }, "node_modules/openai": { - "version": "5.23.2", - "resolved": "https://registry.npmjs.org/openai/-/openai-5.23.2.tgz", - "integrity": "sha512-MQBzmTulj+MM5O8SKEk/gL8a7s5mktS9zUtAkU257WjvobGc9nKcBuVwjyEEcb9SI8a8Y2G/mzn3vm9n1Jlleg==", + "version": "5.23.0", + "resolved": "https://registry.npmjs.org/openai/-/openai-5.23.0.tgz", + "integrity": "sha512-Cfq155NHzI7VWR67LUNJMIgPZy2oSh7Fld/OKhxq648BiUjELAvcge7g30xJ6vAfwwXf6TVK0KKuN+3nmIJG/A==", "dev": true, "license": "Apache-2.0", "bin": { @@ -4789,6 +4270,16 @@ "node": ">=8" } }, + "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", @@ -4800,31 +4291,28 @@ } }, "node_modules/path-scurry": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.2.tgz", - "integrity": "sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { - "lru-cache": "^11.0.0", - "minipass": "^7.1.2" + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" }, "engines": { - "node": "18 || 20 || >=22" + "node": ">=16 || 14 >=14.18" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/path-scurry/node_modules/lru-cache": { - "version": "11.5.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.3.tgz", - "integrity": "sha512-U4N8FgzmWxc8k1VH8Kr6lQg18U7Fjvby6wXHVRX/ZZ7IwWbRMgrRbP0Wrb5q5NVinryp4SQampHKdvtecItxUg==", + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", "dev": true, - "license": "BlueOak-1.0.0", - "engines": { - "node": "20 || >=22" - } + "license": "ISC" }, "node_modules/pathe": { "version": "2.0.3", @@ -4834,9 +4322,9 @@ "license": "MIT" }, "node_modules/perfect-debounce": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-2.1.0.tgz", - "integrity": "sha512-LjgdTytVFXeUgtHZr9WYViYSM/g8MkcTPYDlPa3cDqMirHjKiSZPYd6DoL7pK8AJQr+uWkQvCjHNdiMqsrJs+g==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-2.0.0.tgz", + "integrity": "sha512-fkEH/OBiKrqqI/yIgjR92lMfs2K8105zt/VT6+7eTjNwisrsh47CeIED9z58zI7DfKdH3uHAn25ziRZn3kgAow==", "dev": true, "license": "MIT" }, @@ -4848,13 +4336,13 @@ "license": "ISC" }, "node_modules/picomatch": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.7.tgz", - "integrity": "sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, "license": "MIT", "engines": { - "node": ">=12" + "node": ">=8.6" }, "funding": { "url": "https://github.com/sponsors/jonschlinkert" @@ -4884,35 +4372,27 @@ } }, "node_modules/pkg-types": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-2.3.3.tgz", - "integrity": "sha512-j/lCFdcppV0JxWpCEITdbDltBxPP6cHT+yNJ6Go2OgoSA9518X847X9z0p6LtA4Nc16+eQzCZjRrWanTGvHJ5w==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-2.3.0.tgz", + "integrity": "sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==", "dev": true, "license": "MIT", "dependencies": { - "confbox": "^0.3.1", - "exsolve": "^1.1.1", + "confbox": "^0.2.2", + "exsolve": "^1.0.7", "pathe": "^2.0.3" } }, - "node_modules/pkg-types/node_modules/confbox": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.3.1.tgz", - "integrity": "sha512-cKUSoKa8YxFZZSmraVi7onONx3amu77ngK3kGpsYHDH7drPwCRkQE1RYMPlLRrMtnciRj274XNRxcHxnKmDSnA==", - "dev": true, - "license": "MIT" - }, "node_modules/pretty-format": { - "version": "30.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.5.1.tgz", - "integrity": "sha512-byhRAPguVKMQIj4kjJwJ5lAskVhfuiSdiYl/aLTWpgkGEmic2jYhJh1yE9ih8Ox44Xg9ccCT11/S6QrzSJuNrg==", + "version": "30.0.5", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.0.5.tgz", + "integrity": "sha512-D1tKtYvByrBkFLe2wHJl2bwMJIiT8rW+XA+TiataH79/FszLQMrpGEvzUVkzPau7OCO0Qnrhpe87PqtOAIB8Yw==", "dev": true, "license": "MIT", "dependencies": { - "@jest/react-is-18": "npm:react-is@^18.3.1", - "@jest/react-is-19": "npm:react-is@^19.2.5", - "@jest/schemas": "30.5.0", - "ansi-styles": "^5.2.0" + "@jest/schemas": "30.0.5", + "ansi-styles": "^5.2.0", + "react-is": "^18.3.1" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" @@ -4949,24 +4429,31 @@ "license": "MIT" }, "node_modules/rc9": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/rc9/-/rc9-3.1.0.tgz", - "integrity": "sha512-ufjkNVzbRHKcCOmTahZkmVsyc3W+MSk3jY03m+a7tGHkIsdVMG9l10/3HvFbWkkKzY5VFp3pkRsIo/UYgmFL7Q==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/rc9/-/rc9-2.1.2.tgz", + "integrity": "sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg==", "dev": true, "license": "MIT", "dependencies": { - "defu": "^6.1.7", - "destr": "^2.0.5" + "defu": "^6.1.4", + "destr": "^2.0.3" } }, + "node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT" + }, "node_modules/readdirp": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-5.1.1.tgz", - "integrity": "sha512-Kko+Y5XQ6fM+Ce3dq3m9YGxnacYZYl9cA1wZjaF3Vbry2L3i1qVg8+CAgNPsXRArPMUMCaOR7oa9Nqntc43JKA==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", "dev": true, "license": "MIT", "engines": { - "node": ">= 20.19.0" + "node": ">= 14.18.0" }, "funding": { "type": "individual", @@ -4993,16 +4480,6 @@ "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, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/resolve-cwd": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", @@ -5120,11 +4597,17 @@ "license": "MIT" }, "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "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" + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } }, "node_modules/slash": { "version": "3.0.0", @@ -5146,6 +4629,17 @@ "node": ">=0.10.0" } }, + "node_modules/source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -5180,38 +4674,111 @@ "node": ">=10" } }, + "node_modules/string-length/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": { + "node": ">=8" + } + }, + "node_modules/string-length/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": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "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", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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", - "strip-ansi": "^6.0.1" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/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": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/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, + "license": "MIT" + }, + "node_modules/string-width-cjs/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": { + "ansi-regex": "^5.0.1" }, "engines": { "node": ">=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==", + "node_modules/strip-ansi": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", + "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", "dev": true, "license": "MIT", "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "ansi-regex": "^6.0.1" }, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/strip-ansi": { + "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==", @@ -5224,16 +4791,12 @@ "node": ">=8" } }, - "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==", + "node_modules/strip-ansi-cjs/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", - "dependencies": { - "ansi-regex": "^5.0.1" - }, "engines": { "node": ">=8" } @@ -5292,51 +4855,34 @@ "license": "ISC" }, "node_modules/swagger-typescript-api": { - "version": "13.13.0", - "resolved": "https://registry.npmjs.org/swagger-typescript-api/-/swagger-typescript-api-13.13.0.tgz", - "integrity": "sha512-4CEj48R1Kk3Zvul4c8NVeLOUQ86WIRq1MgqRaB12jKI70IT/UUc4/xn+vd9pWK+I8eRALX2UnUI1ld0YQHn16A==", + "version": "13.2.13", + "resolved": "https://registry.npmjs.org/swagger-typescript-api/-/swagger-typescript-api-13.2.13.tgz", + "integrity": "sha512-d4Ri5iOxCFB8VeTyosuzKnW8jtRBUFZC+XZthFiH78CwNrkMKAzyuSs0YGUZlHtm60VtkZBNxZkp71BHShJ8HQ==", "dev": true, "license": "MIT", "dependencies": { - "@apidevtools/swagger-parser": "12.1.0", - "@biomejs/js-api": "6.0.0", - "@biomejs/wasm-nodejs": "2.5.2", + "@biomejs/js-api": "3.0.0", + "@biomejs/wasm-nodejs": "2.2.4", + "@types/lodash": "^4.17.20", "@types/swagger-schema-official": "^2.0.25", - "c12": "^3.3.4", - "citty": "^0.2.2", + "c12": "^3.3.0", + "citty": "^0.1.6", "consola": "^3.4.2", - "es-toolkit": "^1.49.0", - "eta": "^3.5.0", - "nanoid": "^5.1.16", + "eta": "^4.0.1", + "lodash": "^4.17.21", + "nanoid": "^5.1.5", "openapi-types": "^12.1.3", "swagger-schema-official": "2.0.0-bab6bed", "swagger2openapi": "^7.0.8", - "type-fest": "^5.7.0", - "typescript": "^6.0.3", - "yaml": "^2.9.0", - "yummies": "7.20.1" + "typescript": "~5.9.2", + "yaml": "^2.8.1" }, "bin": { - "swagger-typescript-api": "dist/cli.mjs" - }, - "engines": { - "node": ">=20" - } - }, - "node_modules/swagger-typescript-api/node_modules/type-fest": { - "version": "5.10.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-5.10.0.tgz", - "integrity": "sha512-NoSdpq/WEiAg5sjmBkmV/hfxv6HJH4NqPNrqjtSO5CwRmpsDfaf4begxW34KdJykH/l1yHtwBWQkCRdoXO8mPA==", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "dependencies": { - "tagged-tag": "^1.0.0" + "sta": "dist/cli.js", + "swagger-typescript-api": "dist/cli.js" }, "engines": { "node": ">=20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/swagger2openapi": { @@ -5368,9 +4914,9 @@ } }, "node_modules/swagger2openapi/node_modules/yaml": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.3.tgz", - "integrity": "sha512-vIYeF1u3CjlhAFekPPAk2h/Kv4T3mAkMox5OymRiJQB0spDP10LHvt+K7G9Ny6NuuMAb25/6n1qyUjAcGNf/AA==", + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", "dev": true, "license": "ISC", "engines": { @@ -5378,13 +4924,13 @@ } }, "node_modules/synckit": { - "version": "0.11.13", - "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.13.tgz", - "integrity": "sha512-eNRKgb3z66Yp3D2CixVujOUvXLFUTij/zVnV8KRyvFdQwpz7I5DS8UfRkTeLzb64u+dkzDSdelE24izu+zSSUg==", + "version": "0.11.11", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.11.tgz", + "integrity": "sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==", "dev": true, "license": "MIT", "dependencies": { - "@pkgr/core": "^0.3.6" + "@pkgr/core": "^0.2.9" }, "engines": { "node": "^14.18.0 || >=16.0.0" @@ -5393,122 +4939,92 @@ "url": "https://opencollective.com/synckit" } }, - "node_modules/tagged-tag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/tagged-tag/-/tagged-tag-1.0.0.tgz", - "integrity": "sha512-yEFYrVhod+hdNyx7g5Bnkkb0G6si8HJurOoOEgC8B/O0uXLHlaey/65KRv6cuWBNhBgHKAROVpc7QyYqE5gFng==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/tailwind-merge": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-3.7.0.tgz", - "integrity": "sha512-XPPUyAc+cvspz3lHTcR/QgPfW2A0lv/xQNIjX3HGhLR+Nq2lHaLq5MtTesHn8GUr3W3DguT2KT5x3NVgRtYwmA==", - "dev": true, - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/dcastil" - } - }, "node_modules/test-exclude": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-7.0.2.tgz", - "integrity": "sha512-u9E6A+ZDYdp7a4WnarkXPZOx8Ilz46+kby6p1yZ8zsGTz9gYa6FIS7lj2oezzNKmtdyyJNNmmXDppga5GB7kSw==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", "dev": true, "license": "ISC", "dependencies": { "@istanbuljs/schema": "^0.1.2", - "glob": "^10.4.1", - "minimatch": "^10.2.2" + "glob": "^7.1.4", + "minimatch": "^3.0.4" }, "engines": { - "node": ">=18" + "node": ">=8" } }, - "node_modules/test-exclude/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/test-exclude/node_modules/brace-expansion": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.7.tgz", - "integrity": "sha512-uZbew1NqdmPDTMJ8ah1y+b+9QEJrfkXFk3RcTQw3X0jW/xRUvFKsg1CfQdSYGdTbXZWExtU3J3ccxtnfw1Fi0g==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, "node_modules/test-exclude/node_modules/glob": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", - "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", - "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", + "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, "license": "ISC", "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" + "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" }, - "bin": { - "glob": "dist/esm/bin.mjs" + "engines": { + "node": "*" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/test-exclude/node_modules/glob/node_modules/minimatch": { - "version": "9.0.9", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", - "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", + "node_modules/test-exclude/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": { - "brace-expansion": "^2.0.2" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": "*" } }, - "node_modules/test-exclude/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "node_modules/tinyexec": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.0.1.tgz", + "integrity": "sha512-5uC6DDlmeqiOwCPmK9jMSdOuZTh8bU39Ys6yidB+UTt5hfZUPGAypSgFRiEp+jbi9qH40BLDvy85jIU88wKSqw==", "dev": true, - "license": "ISC" + "license": "MIT" }, - "node_modules/test-exclude/node_modules/path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", "dev": true, - "license": "BlueOak-1.0.0", + "license": "BSD-3-Clause" + }, + "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": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + "is-number": "^7.0.0" }, "engines": { - "node": ">=16 || 14 >=14.18" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=8.0" } }, "node_modules/tr46": { @@ -5519,19 +5035,19 @@ "license": "MIT" }, "node_modules/ts-jest": { - "version": "29.4.15", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.4.15.tgz", - "integrity": "sha512-s2qmEUYFRqbjz1wv0EmccNPVOb45HOFpFuhzQJLKShYVisuTbCFPIIAIV2EuK5rIxb4BejLDbH7dnBZfYjybUQ==", + "version": "29.4.4", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.4.4.tgz", + "integrity": "sha512-ccVcRABct5ZELCT5U0+DZwkXMCcOCLi2doHRrKy1nK/s7J7bch6TzJMsrY09WxgUUIP/ITfmcDS8D2yl63rnXw==", "dev": true, "license": "MIT", "dependencies": { "bs-logger": "^0.2.6", "fast-json-stable-stringify": "^2.1.0", - "handlebars": "^4.7.10", + "handlebars": "^4.7.8", "json5": "^2.2.3", "lodash.memoize": "^4.1.2", "make-error": "^1.3.6", - "semver": "^7.8.5", + "semver": "^7.7.2", "type-fest": "^4.41.0", "yargs-parser": "^21.1.1" }, @@ -5542,13 +5058,13 @@ "node": "^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.0 <9", + "@babel/core": ">=7.0.0-beta.0 <8", "@jest/transform": "^29.0.0 || ^30.0.0", "@jest/types": "^29.0.0 || ^30.0.0", "babel-jest": "^29.0.0 || ^30.0.0", "jest": "^29.0.0 || ^30.0.0", "jest-util": "^29.0.0 || ^30.0.0", - "typescript": ">=4.3 <7" + "typescript": ">=4.3 <6" }, "peerDependenciesMeta": { "@babel/core": { @@ -5572,9 +5088,9 @@ } }, "node_modules/ts-jest/node_modules/semver": { - "version": "7.8.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", - "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", "dev": true, "license": "ISC", "bin": { @@ -5673,9 +5189,9 @@ } }, "node_modules/typescript": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz", - "integrity": "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==", + "version": "5.9.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.2.tgz", + "integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==", "dev": true, "license": "Apache-2.0", "bin": { @@ -5701,54 +5217,51 @@ } }, "node_modules/undici-types": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.24.6.tgz", - "integrity": "sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg==", + "version": "7.12.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.12.0.tgz", + "integrity": "sha512-goOacqME2GYyOZZfb5Lgtu+1IDmAlAEu5xnD3+xTzS10hT0vzpf0SPjkXwAw9Jm+4n/mQGDP3LO8CPbYROeBfQ==", "dev": true, "license": "MIT" }, "node_modules/unrs-resolver": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.12.2.tgz", - "integrity": "sha512-dmlRxBJJayXjqTwC+JtF1HhJmgf3ftQ3YejFcZrf4+KKtJv0qDsK1pjqaaVjG7wJ5NJ6UVP1OqRMQ71Z4C3rxQ==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.11.1.tgz", + "integrity": "sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==", "dev": true, "hasInstallScript": true, "license": "MIT", "dependencies": { - "napi-postinstall": "^0.3.4" + "napi-postinstall": "^0.3.0" }, "funding": { "url": "https://opencollective.com/unrs-resolver" }, "optionalDependencies": { - "@unrs/resolver-binding-android-arm-eabi": "1.12.2", - "@unrs/resolver-binding-android-arm64": "1.12.2", - "@unrs/resolver-binding-darwin-arm64": "1.12.2", - "@unrs/resolver-binding-darwin-x64": "1.12.2", - "@unrs/resolver-binding-freebsd-x64": "1.12.2", - "@unrs/resolver-binding-linux-arm-gnueabihf": "1.12.2", - "@unrs/resolver-binding-linux-arm-musleabihf": "1.12.2", - "@unrs/resolver-binding-linux-arm64-gnu": "1.12.2", - "@unrs/resolver-binding-linux-arm64-musl": "1.12.2", - "@unrs/resolver-binding-linux-loong64-gnu": "1.12.2", - "@unrs/resolver-binding-linux-loong64-musl": "1.12.2", - "@unrs/resolver-binding-linux-ppc64-gnu": "1.12.2", - "@unrs/resolver-binding-linux-riscv64-gnu": "1.12.2", - "@unrs/resolver-binding-linux-riscv64-musl": "1.12.2", - "@unrs/resolver-binding-linux-s390x-gnu": "1.12.2", - "@unrs/resolver-binding-linux-x64-gnu": "1.12.2", - "@unrs/resolver-binding-linux-x64-musl": "1.12.2", - "@unrs/resolver-binding-openharmony-arm64": "1.12.2", - "@unrs/resolver-binding-wasm32-wasi": "1.12.2", - "@unrs/resolver-binding-win32-arm64-msvc": "1.12.2", - "@unrs/resolver-binding-win32-ia32-msvc": "1.12.2", - "@unrs/resolver-binding-win32-x64-msvc": "1.12.2" + "@unrs/resolver-binding-android-arm-eabi": "1.11.1", + "@unrs/resolver-binding-android-arm64": "1.11.1", + "@unrs/resolver-binding-darwin-arm64": "1.11.1", + "@unrs/resolver-binding-darwin-x64": "1.11.1", + "@unrs/resolver-binding-freebsd-x64": "1.11.1", + "@unrs/resolver-binding-linux-arm-gnueabihf": "1.11.1", + "@unrs/resolver-binding-linux-arm-musleabihf": "1.11.1", + "@unrs/resolver-binding-linux-arm64-gnu": "1.11.1", + "@unrs/resolver-binding-linux-arm64-musl": "1.11.1", + "@unrs/resolver-binding-linux-ppc64-gnu": "1.11.1", + "@unrs/resolver-binding-linux-riscv64-gnu": "1.11.1", + "@unrs/resolver-binding-linux-riscv64-musl": "1.11.1", + "@unrs/resolver-binding-linux-s390x-gnu": "1.11.1", + "@unrs/resolver-binding-linux-x64-gnu": "1.11.1", + "@unrs/resolver-binding-linux-x64-musl": "1.11.1", + "@unrs/resolver-binding-wasm32-wasi": "1.11.1", + "@unrs/resolver-binding-win32-arm64-msvc": "1.11.1", + "@unrs/resolver-binding-win32-ia32-msvc": "1.11.1", + "@unrs/resolver-binding-win32-x64-msvc": "1.11.1" } }, "node_modules/update-browserslist-db": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.3.4.tgz", - "integrity": "sha512-t8wonIOdQyOjtPd2VktlBu6QjTVTks6v8bSi7kd0r2Vll8TK1JYDZtRRdbmCHOAMphkZgrzK+L+vXK4pyZ8t4A==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", + "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", "dev": true, "funding": [ { @@ -5798,6 +5311,16 @@ "node": ">=10.12.0" } }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "makeerror": "1.0.12" + } + }, "node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", @@ -5840,18 +5363,18 @@ "license": "MIT" }, "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==", + "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": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" }, "engines": { - "node": ">=10" + "node": ">=12" }, "funding": { "url": "https://github.com/chalk/wrap-ansi?sponsor=1" @@ -5876,6 +5399,71 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/wrap-ansi-cjs/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": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/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, + "license": "MIT" + }, + "node_modules/wrap-ansi-cjs/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", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/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": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "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, + "license": "ISC" + }, "node_modules/write-file-atomic": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", @@ -5890,19 +5478,6 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/write-file-atomic/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" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", @@ -5921,9 +5496,9 @@ "license": "ISC" }, "node_modules/yaml": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.9.1.tgz", - "integrity": "sha512-3NxN8+78OdzbT7C/WjGsyfPAtJaN3FNDsWxv7Y7mcDsT/oOmgW8BpyQQFFBnvZE3j9Y2Sdz1ULFLezL7Eb2yFw==", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.1.tgz", + "integrity": "sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==", "dev": true, "license": "ISC", "bin": { @@ -5931,15 +5506,12 @@ }, "engines": { "node": ">= 14.6" - }, - "funding": { - "url": "https://github.com/sponsors/eemeli" } }, "node_modules/yargs": { - "version": "17.7.3", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.3.tgz", - "integrity": "sha512-GZtjxm/J/4TSxuL3FNYjCmLktBTnIw/rVmKSIyKeYAZpmJB2ig9VauCC5xsa82GNKVKDAqpOn3KVzNt0zmrU0g==", + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, "license": "MIT", "dependencies": { @@ -5965,6 +5537,51 @@ "node": ">=12" } }, + "node_modules/yargs/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": { + "node": ">=8" + } + }, + "node_modules/yargs/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, + "license": "MIT" + }, + "node_modules/yargs/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", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/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": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/yn": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", @@ -5987,33 +5604,6 @@ "funding": { "url": "https://github.com/sponsors/sindresorhus" } - }, - "node_modules/yummies": { - "version": "7.20.1", - "resolved": "https://registry.npmjs.org/yummies/-/yummies-7.20.1.tgz", - "integrity": "sha512-H/AxRy+SjVlfpeI0TkiVkU/M2n+XpR1XGt5yS5r7GsP9Iz3mr17dbq9DLW18PmMlyKO78+yvH/9Z9VAnVuV3og==", - "dev": true, - "license": "MIT", - "dependencies": { - "class-variance-authority": "^0.7.1", - "clsx": "^2.1.1", - "dayjs": "^1.11.21", - "dompurify": "^3.4.11", - "nanoid": "^5.1.15", - "tailwind-merge": "^3.6.0" - }, - "peerDependencies": { - "mobx": "^6.12.4", - "react": "^18 || ^19" - }, - "peerDependenciesMeta": { - "mobx": { - "optional": true - }, - "react": { - "optional": true - } - } } } } diff --git a/package.json b/package.json index e00688444..8d93701f8 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ }, "homepage": "https://github.com/VapiAI/client-sdk-web#readme", "engines": { - "node": ">=18.0.0" + "node": ">=22.14.0" }, "dependencies": { "@daily-co/daily-js": "^0.93.0",