diff --git a/docs/changelog/sdk.mdx b/docs/changelog/sdk.mdx
index 9cf797a27..36cc9520b 100644
--- a/docs/changelog/sdk.mdx
+++ b/docs/changelog/sdk.mdx
@@ -1489,6 +1489,29 @@ A full-featured command-line interface for Mem0, available in both Python and No
+
+
+**Major Release** — Migrated to Vercel AI SDK v6 (`LanguageModelV3` / `ProviderV3`) and Mem0 v3 API.
+
+**Breaking Changes:**
+- **AI SDK v6:** Upgraded from AI SDK v5 (`LanguageModelV2`) to v6 (`LanguageModelV3`). Users must upgrade `ai` to `^6.0.199` and all `@ai-sdk/*` provider packages to `^3.x` ([#4741](https://github.com/mem0ai/mem0/pull/4741))
+- **Mem0 v3 API:** Memory endpoints migrated from `/v1/memories/` and `/v2/memories/search/` to `/v3/memories/add/` and `/v3/memories/search/`. Entity IDs (`user_id`, `agent_id`, `run_id`) now go inside the `filters` object for search requests ([#4741](https://github.com/mem0ai/mem0/pull/4741))
+- **Graph memory removed:** All `enable_graph`, graph prompts, and relation-extraction code removed. Graph memory is now a project-level setting on the Platform ([#4741](https://github.com/mem0ai/mem0/pull/4741))
+- **Deprecated params removed:** `org_id`, `project_id`, `org_name`, `project_name`, `output_format`, `filter_memories`, `async_mode`, `enable_graph`, `version`, `api_version` removed from `Mem0ConfigSettings` ([#4741](https://github.com/mem0ai/mem0/pull/4741))
+
+**New Features:**
+- **V3 provider contract:** `specificationVersion: 'v3'`, `supportedUrls` property, V3 content array in `doGenerate`, V3 stream lifecycle events in `doStream` ([#4741](https://github.com/mem0ai/mem0/pull/4741))
+- **Mem0 source in responses:** Memories are attached as a `source` in `generateText`/`streamText` responses with `providerMetadata.mem0.memories` for programmatic access ([#4741](https://github.com/mem0ai/mem0/pull/4741))
+
+**Bug Fixes:**
+- **Async memory storage:** `addMemories` is now properly `await`ed — memories no longer silently fail to store ([#4741](https://github.com/mem0ai/mem0/pull/4741))
+- **Prompt mutation:** Prompt array is now cloned before injecting memory context, preventing side effects on the caller's array ([#4741](https://github.com/mem0ai/mem0/pull/4741))
+- **Null guard on content:** `doGenerate` guards against null `content` from upstream providers ([#4741](https://github.com/mem0ai/mem0/pull/4741))
+- **Stream response:** `doStream` now returns the full `LanguageModelV3StreamResult` object preserving all V3 fields ([#4741](https://github.com/mem0ai/mem0/pull/4741))
+- **Response normalization:** `getMemories` and `retrieveMemories` now handle both array and `{results: [...]}` envelope responses from the v3 API ([#4741](https://github.com/mem0ai/mem0/pull/4741))
+
+
+
**Security:**
diff --git a/docs/integrations/vercel-ai-sdk.mdx b/docs/integrations/vercel-ai-sdk.mdx
index cb0ae112f..0df6a85eb 100644
--- a/docs/integrations/vercel-ai-sdk.mdx
+++ b/docs/integrations/vercel-ai-sdk.mdx
@@ -6,25 +6,33 @@ description: "Use the Mem0 AI SDK Provider with Vercel AI SDK for persistent mem
The [**Mem0 AI SDK Provider**](https://www.npmjs.com/package/@mem0/vercel-ai-provider) is a library developed by **Mem0** to integrate with the Vercel AI SDK. This library brings enhanced AI interaction capabilities to your applications by introducing persistent memory functionality.
- Mem0 AI SDK now supports Vercel AI SDK V5.
+ Mem0 AI SDK Provider v3.0.0 supports Vercel AI SDK v6 (LanguageModelV3 / ProviderV3). If you are upgrading from v2.x, see the AI SDK v6 migration guide.
## Overview
1. Offers persistent memory storage for conversational AI
-2. Enables smooth integration with the Vercel AI SDK
-3. Ensures compatibility with multiple LLM providers
+2. Enables smooth integration with the Vercel AI SDK v6
+3. Ensures compatibility with multiple LLM providers (OpenAI, Anthropic, Google, Groq, Cohere)
4. Supports structured message formats for clarity
5. Facilitates streaming response capabilities
+6. Attaches Mem0 memories as sources in responses for programmatic access
## Setup and Configuration
-Install the SDK provider using npm:
+Install the SDK provider and AI SDK:
```bash
-npm install @mem0/vercel-ai-provider
+npm install @mem0/vercel-ai-provider ai@^6
```
+### Peer Dependencies
+
+`@mem0/vercel-ai-provider` v3.0.0 requires:
+- `ai` v6+ (`^6.0.199`)
+- `@ai-sdk/provider` v3+ (`^3.0.10`)
+- Provider packages at v3+: `@ai-sdk/openai@^3`, `@ai-sdk/anthropic@^3`, `@ai-sdk/google@^3`, `@ai-sdk/groq@^3`, `@ai-sdk/cohere@^3`
+
## Getting Started
### Setting Up Mem0
@@ -41,7 +49,7 @@ npm install @mem0/vercel-ai-provider
mem0ApiKey: "m0-xxx",
apiKey: "provider-api-key",
config: {
- // Options for LLM Provider
+ // Options for the upstream LLM provider (e.g. baseURL)
},
// Optional Mem0 Global Config
mem0Config: {
@@ -57,154 +65,153 @@ npm install @mem0/vercel-ai-provider
3. Add Memories to Enhance Context:
```typescript
- import { LanguageModelV2Prompt } from "@ai-sdk/provider";
import { addMemories } from "@mem0/vercel-ai-provider";
- const messages: LanguageModelV2Prompt = [
+ const messages = [
{ role: "user", content: [{ type: "text", text: "I love red cars." }] },
];
await addMemories(messages, { user_id: "borat" });
```
-### Standalone Features:
+### Standalone Features
- ```typescript
- await addMemories(messages, { user_id: "borat", mem0ApiKey: "m0-xxx" });
- await retrieveMemories(prompt, { user_id: "borat", mem0ApiKey: "m0-xxx" });
- await getMemories(prompt, { user_id: "borat", mem0ApiKey: "m0-xxx" });
- ```
- > For standalone features, such as `addMemories`, `retrieveMemories`, and `getMemories`, you must either set `MEM0_API_KEY` as an environment variable or pass it directly in the function call.
+```typescript
+await addMemories(messages, { user_id: "borat", mem0ApiKey: "m0-xxx" });
+await retrieveMemories(prompt, { user_id: "borat", mem0ApiKey: "m0-xxx" });
+await getMemories(prompt, { user_id: "borat", mem0ApiKey: "m0-xxx" });
+```
- > `getMemories` will return raw memories in the form of an array of objects, while `retrieveMemories` will return a response in string format with a system prompt ingested with the retrieved memories.
+> For standalone features, such as `addMemories`, `retrieveMemories`, and `getMemories`, you must either set `MEM0_API_KEY` as an environment variable or pass it directly in the function call.
- > `getMemories` returns an array of memory objects.
+> `getMemories` will return raw memories in the form of an array of objects, while `retrieveMemories` will return a response in string format with a system prompt ingested with the retrieved memories.
### 1. Basic Text Generation with Memory Context
- ```typescript
- import { generateText } from "ai";
- import { createMem0 } from "@mem0/vercel-ai-provider";
+```typescript
+import { generateText } from "ai";
+import { createMem0 } from "@mem0/vercel-ai-provider";
- const mem0 = createMem0();
+const mem0 = createMem0();
- const { text } = await generateText({
- model: mem0("gpt-4-turbo", { user_id: "borat" }),
- prompt: "Suggest me a good car to buy!",
- });
- ```
+const { text } = await generateText({
+ model: mem0("gpt-5-mini", { user_id: "borat" }),
+ prompt: "Suggest me a good car to buy!",
+});
+```
### 2. Combining OpenAI Provider with Memory Utils
- ```typescript
- import { generateText } from "ai";
- import { openai } from "@ai-sdk/openai";
- import { retrieveMemories } from "@mem0/vercel-ai-provider";
+```typescript
+import { generateText } from "ai";
+import { openai } from "@ai-sdk/openai";
+import { retrieveMemories } from "@mem0/vercel-ai-provider";
- const prompt = "Suggest me a good car to buy.";
- const memories = await retrieveMemories(prompt, { user_id: "borat" });
+const prompt = "Suggest me a good car to buy.";
+const memories = await retrieveMemories(prompt, { user_id: "borat" });
- const { text } = await generateText({
- model: openai("gpt-4-turbo"),
- prompt: prompt,
- system: memories,
- });
- ```
+const { text } = await generateText({
+ model: openai("gpt-5-mini"),
+ prompt: prompt,
+ system: memories,
+});
+```
### 3. Structured Message Format with Memory
- ```typescript
- import { generateText } from "ai";
- import { createMem0 } from "@mem0/vercel-ai-provider";
+```typescript
+import { generateText } from "ai";
+import { createMem0 } from "@mem0/vercel-ai-provider";
- const mem0 = createMem0();
+const mem0 = createMem0();
- const { text } = await generateText({
- model: mem0("gpt-4-turbo", { user_id: "borat" }),
- messages: [
- {
- role: "user",
- content: [
- { type: "text", text: "Suggest me a good car to buy." },
- { type: "text", text: "Why is it better than the other cars for me?" },
- ],
- },
+const { text } = await generateText({
+ model: mem0("gpt-5-mini", { user_id: "borat" }),
+ messages: [
+ {
+ role: "user",
+ content: [
+ { type: "text", text: "Suggest me a good car to buy." },
+ { type: "text", text: "Why is it better than the other cars for me?" },
],
- });
- ```
+ },
+ ],
+});
+```
-### 3. Streaming Responses with Memory Context
+### 4. Streaming Responses with Memory Context
- ```typescript
- import { streamText } from "ai";
- import { createMem0 } from "@mem0/vercel-ai-provider";
+```typescript
+import { streamText } from "ai";
+import { createMem0 } from "@mem0/vercel-ai-provider";
- const mem0 = createMem0();
+const mem0 = createMem0();
- const { textStream } = streamText({
- model: mem0("gpt-4-turbo", {
- user_id: "borat",
- }),
- prompt: "Suggest me a good car to buy! Why is it better than the other cars for me? Give options for every price range.",
- });
+const { textStream } = streamText({
+ model: mem0("gpt-5-mini", {
+ user_id: "borat",
+ }),
+ prompt: "Suggest me a good car to buy! Why is it better than the other cars for me? Give options for every price range.",
+});
- for await (const textPart of textStream) {
- process.stdout.write(textPart);
- }
- ```
+for await (const textPart of textStream) {
+ process.stdout.write(textPart);
+}
+```
-### 4. Generate Responses with Tools Call
+### 5. Generate Responses with Tools Call
- ```typescript
- import { generateText } from "ai";
- import { createMem0 } from "@mem0/vercel-ai-provider";
- import { z } from "zod";
+```typescript
+import { generateText, tool } from "ai";
+import { createMem0 } from "@mem0/vercel-ai-provider";
+import { z } from "zod";
- const mem0 = createMem0({
- provider: "anthropic",
- apiKey: "anthropic-api-key",
- mem0Config: {
- // Global User ID
- user_id: "borat"
- }
- });
+const mem0 = createMem0({
+ provider: "anthropic",
+ apiKey: "anthropic-api-key",
+ mem0Config: {
+ user_id: "borat"
+ }
+});
- const prompt = "What the temperature in the city that I live in?"
+const result = await generateText({
+ model: mem0('claude-sonnet-4-20250514'),
+ tools: {
+ weather: tool({
+ description: 'Get the weather in a location',
+ parameters: z.object({
+ location: z.string().describe('The location to get the weather for'),
+ }),
+ execute: async ({ location }) => ({
+ location,
+ temperature: 72 + Math.floor(Math.random() * 21) - 10,
+ }),
+ }),
+ },
+ prompt: "What the temperature in the city that I live in?",
+});
- const result = await generateText({
- model: mem0('claude-3-5-sonnet-20240620'),
- tools: {
- weather: tool({
- description: 'Get the weather in a location',
- parameters: z.object({
- location: z.string().describe('The location to get the weather for'),
- }),
- execute: async ({ location }) => ({
- location,
- temperature: 72 + Math.floor(Math.random() * 21) - 10,
- }),
- }),
- },
- prompt: prompt,
- });
+console.log(result);
+```
- console.log(result);
- ```
+### 6. Get Sources from Memory
-### 5. Get sources from memory
+`generateText` and `streamText` responses include Mem0 memories as a source, giving you programmatic access to the memories that influenced the response:
```typescript
const { text, sources } = await generateText({
- model: mem0("gpt-4-turbo"),
- prompt: "Suggest me a good car to buy!",
+ model: mem0("gpt-5-mini", { user_id: "borat" }),
+ prompt: "Suggest me a good car to buy!",
});
+// sources[0].title === "Mem0 Memories"
+// sources[0].providerMetadata.mem0.memories — array of memory objects
console.log(sources);
```
The same can be done for `streamText` as well.
-### 6. File Support with Memory Context
+### 7. File Support with Memory Context
Mem0 AI SDK supports file processing with memory context. Here's an example of analyzing a PDF file:
@@ -226,15 +233,11 @@ const mem0 = createMem0({
});
async function main() {
- // Read the PDF file
const filePath = join(process.cwd(), 'my_pdf.pdf');
const fileBuffer = readFileSync(filePath);
- // Convert the file's arrayBuffer to a Base64 data URL
const arrayBuffer = fileBuffer.buffer.slice(fileBuffer.byteOffset, fileBuffer.byteOffset + fileBuffer.byteLength);
const uint8Array = new Uint8Array(arrayBuffer);
-
- // Convert Uint8Array to an array of characters
const charArray = Array.from(uint8Array, byte => String.fromCharCode(byte));
const binaryString = charArray.join('');
const base64Data = Buffer.from(binaryString, 'binary').toString('base64');
@@ -274,24 +277,56 @@ main();
| Provider | Configuration Value |
|----------|-------------------|
-| OpenAI | openai |
-| Anthropic | anthropic |
-| Google | google |
-| Groq | groq |
+| OpenAI | `openai` |
+| Anthropic | `anthropic` |
+| Google / Gemini | `google` or `gemini` |
+| Groq | `groq` |
+| Cohere | `cohere` |
-> **Note**: You can use `google` as provider for Gemini (Google) models. They are same and internally they use `@ai-sdk/google` package.
+> **Note**: You can use either `google` or `gemini` as the provider value for Google Gemini models. Both map to the `@ai-sdk/google` package internally.
+
+## Configuration Options
+
+### Mem0ConfigSettings
+
+These options can be passed per-request when creating a model instance:
+
+| Option | Type | Description |
+|--------|------|-------------|
+| `user_id` | `string` | User identifier for memory scoping |
+| `agent_id` | `string` | Agent identifier |
+| `app_id` | `string` | Application identifier |
+| `run_id` | `string` | Run/session identifier |
+| `metadata` | `object` | Custom metadata for memories |
+| `filters` | `object` | Filters for memory search |
+| `infer` | `boolean` | Enable inference-based retrieval |
+| `top_k` | `number` | Number of memories to retrieve (default: 10) |
+| `threshold` | `number` | Relevance threshold for search |
+| `rerank` | `boolean` | Enable reranking of results |
+| `page` | `number` | Page number for pagination |
+| `page_size` | `number` | Results per page |
## Key Features
-- `createMem0()`: Initializes a new Mem0 provider instance.
-- `retrieveMemories()`: Retrieves memory context for prompts.
+- `createMem0()`: Initializes a new Mem0 provider instance implementing `ProviderV3`.
+- `retrieveMemories()`: Retrieves memory context for prompts as a formatted system prompt string.
- `getMemories()`: Get memories from your profile in array format.
- `addMemories()`: Adds user memories to enhance contextual responses.
+## Migrating from v2.x
+
+If you're upgrading from `@mem0/vercel-ai-provider` v2.x:
+
+1. **Upgrade AI SDK**: `npm install ai@^6` and update all `@ai-sdk/*` provider packages to `^3.x`
+2. **Remove deprecated params**: Remove `org_id`, `project_id`, `output_format`, `filter_memories`, `async_mode`, `enable_graph` from your config
+3. **Remove graph memory**: All graph-related options (`enable_graph`, graph prompts) have been removed. Graph memory is now a project-level setting on the Mem0 Platform
+4. **Update imports**: `LanguageModelV2Prompt` is now `LanguageModelV3Prompt` if you import types directly
+
## Best Practices
1. **User Identification**: Use a unique `user_id` for consistent memory retrieval.
2. **Memory Cleanup**: Regularly clean up unused memory data.
+3. **Sources**: Access `result.sources` to inspect which memories influenced the response.
> **Note**: We also have support for `agent_id`, `app_id`, and `run_id`. Refer [Docs](/api-reference/memory/add-memories).
diff --git a/vercel-ai-sdk/package.json b/vercel-ai-sdk/package.json
index a6c6f72f1..896c3ff1c 100644
--- a/vercel-ai-sdk/package.json
+++ b/vercel-ai-sdk/package.json
@@ -1,6 +1,6 @@
{
"name": "@mem0/vercel-ai-provider",
- "version": "2.0.6",
+ "version": "3.0.0",
"description": "Vercel AI Provider for providing memory to LLMs",
"main": "./dist/index.js",
"module": "./dist/index.mjs",
@@ -31,28 +31,28 @@
"author": "Saket Aryan ",
"license": "Apache-2.0",
"dependencies": {
- "@ai-sdk/anthropic": "2.0.0",
- "@ai-sdk/cohere": "2.0.0",
- "@ai-sdk/google": "2.0.1",
- "@ai-sdk/groq": "2.0.1",
- "@ai-sdk/openai": "2.0.2",
- "@ai-sdk/provider": "2.0.0",
- "@ai-sdk/provider-utils": "3.0.0",
- "ai": "5.0.2",
- "dotenv": "^16.4.5",
+ "@ai-sdk/anthropic": "^3.0.82",
+ "@ai-sdk/cohere": "^3.0.36",
+ "@ai-sdk/google": "^3.0.80",
+ "@ai-sdk/groq": "^3.0.39",
+ "@ai-sdk/openai": "^3.0.69",
+ "@ai-sdk/provider": "^3.0.10",
+ "@ai-sdk/provider-utils": "^4.0.27",
+ "ai": "^6.0.199",
+ "dotenv": "^16.6.1",
"partial-json": "0.1.7",
- "zod": "^3.25.0"
+ "zod": "^3.25.76"
},
"devDependencies": {
"@edge-runtime/vm": "^3.2.0",
"@types/jest": "^29.5.14",
- "@types/node": "^18.19.46",
+ "@types/node": "^18.19.130",
"jest": "^29.7.0",
- "nodemon": "^3.1.7",
- "ts-jest": "^29.2.5",
+ "nodemon": "^3.1.14",
+ "ts-jest": "^29.4.11",
"ts-node": "^10.9.2",
- "tsup": "^8.3.0",
- "typescript": "^5.5.4"
+ "tsup": "^8.5.1",
+ "typescript": "^5.9.3"
},
"peerDependencies": {
"zod": "^3.0.0"
diff --git a/vercel-ai-sdk/pnpm-lock.yaml b/vercel-ai-sdk/pnpm-lock.yaml
index 3c7f3c379..845f69c74 100644
--- a/vercel-ai-sdk/pnpm-lock.yaml
+++ b/vercel-ai-sdk/pnpm-lock.yaml
@@ -17,37 +17,37 @@ importers:
.:
dependencies:
'@ai-sdk/anthropic':
- specifier: 2.0.0
- version: 2.0.0(zod@3.25.76)
+ specifier: ^3.0.82
+ version: 3.0.82(zod@3.25.76)
'@ai-sdk/cohere':
- specifier: 2.0.0
- version: 2.0.0(zod@3.25.76)
+ specifier: ^3.0.36
+ version: 3.0.36(zod@3.25.76)
'@ai-sdk/google':
- specifier: 2.0.1
- version: 2.0.1(zod@3.25.76)
+ specifier: ^3.0.80
+ version: 3.0.80(zod@3.25.76)
'@ai-sdk/groq':
- specifier: 2.0.1
- version: 2.0.1(zod@3.25.76)
+ specifier: ^3.0.39
+ version: 3.0.39(zod@3.25.76)
'@ai-sdk/openai':
- specifier: 2.0.2
- version: 2.0.2(zod@3.25.76)
+ specifier: ^3.0.69
+ version: 3.0.69(zod@3.25.76)
'@ai-sdk/provider':
- specifier: 2.0.0
- version: 2.0.0
+ specifier: ^3.0.10
+ version: 3.0.10
'@ai-sdk/provider-utils':
- specifier: 3.0.0
- version: 3.0.0(zod@3.25.76)
+ specifier: ^4.0.27
+ version: 4.0.27(zod@3.25.76)
ai:
- specifier: 5.0.2
- version: 5.0.2(zod@3.25.76)
+ specifier: ^6.0.199
+ version: 6.0.199(zod@3.25.76)
dotenv:
- specifier: ^16.4.5
- version: 16.4.7
+ specifier: ^16.6.1
+ version: 16.6.1
partial-json:
specifier: 0.1.7
version: 0.1.7
zod:
- specifier: ^3.25.0
+ specifier: ^3.25.76
version: 3.25.76
devDependencies:
'@edge-runtime/vm':
@@ -57,131 +57,131 @@ importers:
specifier: ^29.5.14
version: 29.5.14
'@types/node':
- specifier: ^18.19.46
- version: 18.19.84
+ specifier: ^18.19.130
+ version: 18.19.130
jest:
specifier: ^29.7.0
- version: 29.7.0(@types/node@18.19.84)(ts-node@10.9.2(@types/node@18.19.84)(typescript@5.8.2))
+ version: 29.7.0(@types/node@18.19.130)(ts-node@10.9.2(@types/node@18.19.130)(typescript@5.9.3))
nodemon:
- specifier: ^3.1.7
- version: 3.1.9
+ specifier: ^3.1.14
+ version: 3.1.14
ts-jest:
- specifier: ^29.2.5
- version: 29.3.0(@babel/core@7.26.10)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.10))(esbuild@0.25.1)(jest@29.7.0(@types/node@18.19.84)(ts-node@10.9.2(@types/node@18.19.84)(typescript@5.8.2)))(typescript@5.8.2)
+ specifier: ^29.4.11
+ version: 29.4.11(@babel/core@7.29.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.29.7))(esbuild@0.27.7)(jest-util@29.7.0)(jest@29.7.0(@types/node@18.19.130)(ts-node@10.9.2(@types/node@18.19.130)(typescript@5.9.3)))(typescript@5.9.3)
ts-node:
specifier: ^10.9.2
- version: 10.9.2(@types/node@18.19.84)(typescript@5.8.2)
+ version: 10.9.2(@types/node@18.19.130)(typescript@5.9.3)
tsup:
- specifier: ^8.3.0
- version: 8.4.0(typescript@5.8.2)
+ specifier: ^8.5.1
+ version: 8.5.1(typescript@5.9.3)
typescript:
- specifier: ^5.5.4
- version: 5.8.2
+ specifier: ^5.9.3
+ version: 5.9.3
packages:
- '@ai-sdk/anthropic@2.0.0':
- resolution: {integrity: sha512-uyyaO4KhxoIKZztREqLPh+6/K3ZJx/rp72JKoUEL9/kC+vfQTThUfPnY/bUryUpcnawx8IY/tSoYNOi/8PCv7w==}
+ '@ai-sdk/anthropic@3.0.82':
+ resolution: {integrity: sha512-WKKou2wbhGGYV8PSALAPyV2YY4nfCqCPkyBzYtJtDA9yCcIFwsbtkTNgg7bqtLCVzeEsY7wwxRoCWy+EMfrw/A==}
engines: {node: '>=18'}
peerDependencies:
- zod: ^3.25.76 || ^4
+ zod: ^3.25.76 || ^4.1.8
- '@ai-sdk/cohere@2.0.0':
- resolution: {integrity: sha512-nn4iNkwYm3d32nYCpss+oS5urjxwyRXeqiBuONSYcIZ4VguLirykZ8cpl6ebtjaQJ08JKzljVf2xVHbPZw+rnw==}
+ '@ai-sdk/cohere@3.0.36':
+ resolution: {integrity: sha512-a3xUVhBYP5FuThYA3Q7NjuEyl/ObBhx9z0zFDRebW0UqEoExS3zJwtE9OB+gHc/uvwx93hNg5ZITAFAvqG3GMQ==}
engines: {node: '>=18'}
peerDependencies:
- zod: ^3.25.76 || ^4
+ zod: ^3.25.76 || ^4.1.8
- '@ai-sdk/gateway@1.0.0':
- resolution: {integrity: sha512-VEm87DyRx1yIPywbTy8ntoyh4jEDv1rJ88m+2I7zOm08jJI5BhFtAWh0OF6YzZu1Vu4NxhOWO4ssGdsqydDQ3A==}
+ '@ai-sdk/gateway@3.0.127':
+ resolution: {integrity: sha512-Obmw5hmE5x+ccRrMp/Djx5r0rpFVX87YqE6OY06g5fwYlRI30dA84ARfTzX45ivCvkW4eCnBpOVXVWQ/pjH85w==}
engines: {node: '>=18'}
peerDependencies:
- zod: ^3.25.76 || ^4
+ zod: ^3.25.76 || ^4.1.8
- '@ai-sdk/google@2.0.1':
- resolution: {integrity: sha512-GS9rE5/ayKU5vHKjNoksjoY8v5UfrsIy2PXFzx7CLdNvsVe1aZ8cu5m3W9ICIWPscgkN9fNa74CvF76qG6r4bw==}
+ '@ai-sdk/google@3.0.80':
+ resolution: {integrity: sha512-5ORbm/yFUPO0MEvZsxBMN0cdKw2+lwU/wVn5KN3KF8Dmk1LughuDuUohMh/7iU/XFTiyB0OvmTW/tdV/J7O9zg==}
engines: {node: '>=18'}
peerDependencies:
- zod: ^3.25.76 || ^4
+ zod: ^3.25.76 || ^4.1.8
- '@ai-sdk/groq@2.0.1':
- resolution: {integrity: sha512-gWhCWzio1nzAbOdX1fANl3kM0/QoFi3poI584gZoblHTQJxJEISoGb7ZwrIfrdcID/MR6Lyrxe6JjqK9CHeTDA==}
+ '@ai-sdk/groq@3.0.39':
+ resolution: {integrity: sha512-BZAr6DjCbzWQ0Qn1/TSsHo/bmCt4JaAMb4A7HCSUZBQCAcOjne/03D0sVjHnQhUC3TpwcmYiv7tHAviK7BluRw==}
engines: {node: '>=18'}
peerDependencies:
- zod: ^3.25.76 || ^4
+ zod: ^3.25.76 || ^4.1.8
- '@ai-sdk/openai@2.0.2':
- resolution: {integrity: sha512-D4zYz2uR90aooKQvX1XnS00Z7PkbrcY+snUvPfm5bCabTG7bzLrVtD56nJ5bSaZG8lmuOMfXpyiEEArYLyWPpw==}
+ '@ai-sdk/openai@3.0.69':
+ resolution: {integrity: sha512-T/J3ED6ERDsine+crkXHfraisSG20k6BkBdgjvXCvySYnnJ19IaLIOsQPYfvXdOsKrl0LVNghooTV/nKCA7SmQ==}
engines: {node: '>=18'}
peerDependencies:
- zod: ^3.25.76 || ^4
+ zod: ^3.25.76 || ^4.1.8
- '@ai-sdk/provider-utils@3.0.0':
- resolution: {integrity: sha512-BoQZtGcBxkeSH1zK+SRYNDtJPIPpacTeiMZqnG4Rv6xXjEwM0FH4MGs9c+PlhyEWmQCzjRM2HAotEydFhD4dYw==}
+ '@ai-sdk/provider-utils@4.0.27':
+ resolution: {integrity: sha512-ubkAJ+xODouwtmN1tYlvTPphH1hPOBfZaEQe8U7skGvFAnIRs9PPpsq57bC2+Ky/MB4yzhd6YOsxTAx9sGpazw==}
engines: {node: '>=18'}
peerDependencies:
- zod: ^3.25.76 || ^4
+ zod: ^3.25.76 || ^4.1.8
- '@ai-sdk/provider@2.0.0':
- resolution: {integrity: sha512-6o7Y2SeO9vFKB8lArHXehNuusnpddKPk7xqL7T2/b+OvXMRIXUO1rR4wcv1hAFUAT9avGZshty3Wlua/XA7TvA==}
+ '@ai-sdk/provider@3.0.10':
+ resolution: {integrity: sha512-Q3BZ27qfpYqnCYGvE3vt+Qi6LGOF9R5Nmzn+9JoM1lCRsD9mYaIhfJLkSunN48nfGXJ6n+XNV0J/XVpqGQl7Dw==}
engines: {node: '>=18'}
- '@ampproject/remapping@2.3.0':
- resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
- engines: {node: '>=6.0.0'}
-
- '@babel/code-frame@7.26.2':
- resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==}
+ '@babel/code-frame@7.29.7':
+ resolution: {integrity: sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==}
engines: {node: '>=6.9.0'}
- '@babel/compat-data@7.26.8':
- resolution: {integrity: sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==}
+ '@babel/compat-data@7.29.7':
+ resolution: {integrity: sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==}
engines: {node: '>=6.9.0'}
- '@babel/core@7.26.10':
- resolution: {integrity: sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ==}
+ '@babel/core@7.29.7':
+ resolution: {integrity: sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==}
engines: {node: '>=6.9.0'}
- '@babel/generator@7.27.0':
- resolution: {integrity: sha512-VybsKvpiN1gU1sdMZIp7FcqphVVKEwcuj02x73uvcHE0PTihx1nlBcowYWhDwjpoAXRv43+gDzyggGnn1XZhVw==}
+ '@babel/generator@7.29.7':
+ resolution: {integrity: sha512-DkXD5OJQaAQIdZ1bt3UZdEnHAn9Imd3IVBdX03UFe+ony9Ojw5pzr9YVKGDY1jt+Gcn/FnGkNf8r+Vj5NOJWtQ==}
engines: {node: '>=6.9.0'}
- '@babel/helper-compilation-targets@7.27.0':
- resolution: {integrity: sha512-LVk7fbXml0H2xH34dFzKQ7TDZ2G4/rVTOrq9V+icbbadjbVxxeFeDsNHv2SrZeWoA+6ZiTyWYWtScEIW07EAcA==}
+ '@babel/helper-compilation-targets@7.29.7':
+ resolution: {integrity: sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==}
engines: {node: '>=6.9.0'}
- '@babel/helper-module-imports@7.25.9':
- resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==}
+ '@babel/helper-globals@7.29.7':
+ resolution: {integrity: sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==}
engines: {node: '>=6.9.0'}
- '@babel/helper-module-transforms@7.26.0':
- resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==}
+ '@babel/helper-module-imports@7.29.7':
+ resolution: {integrity: sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-module-transforms@7.29.7':
+ resolution: {integrity: sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
- '@babel/helper-plugin-utils@7.26.5':
- resolution: {integrity: sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==}
+ '@babel/helper-plugin-utils@7.29.7':
+ resolution: {integrity: sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==}
engines: {node: '>=6.9.0'}
- '@babel/helper-string-parser@7.25.9':
- resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==}
+ '@babel/helper-string-parser@7.29.7':
+ resolution: {integrity: sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==}
engines: {node: '>=6.9.0'}
- '@babel/helper-validator-identifier@7.25.9':
- resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==}
+ '@babel/helper-validator-identifier@7.29.7':
+ resolution: {integrity: sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==}
engines: {node: '>=6.9.0'}
- '@babel/helper-validator-option@7.25.9':
- resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==}
+ '@babel/helper-validator-option@7.29.7':
+ resolution: {integrity: sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==}
engines: {node: '>=6.9.0'}
- '@babel/helpers@7.27.0':
- resolution: {integrity: sha512-U5eyP/CTFPuNE3qk+WZMxFkp/4zUzdceQlfzf7DdGdhp+Fezd7HD+i8Y24ZuTMKX3wQBld449jijbGq6OdGNQg==}
+ '@babel/helpers@7.29.7':
+ resolution: {integrity: sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg==}
engines: {node: '>=6.9.0'}
- '@babel/parser@7.27.0':
- resolution: {integrity: sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg==}
+ '@babel/parser@7.29.7':
+ resolution: {integrity: sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==}
engines: {node: '>=6.0.0'}
hasBin: true
@@ -206,8 +206,8 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-syntax-import-attributes@7.26.0':
- resolution: {integrity: sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==}
+ '@babel/plugin-syntax-import-attributes@7.29.7':
+ resolution: {integrity: sha512-zGYcYfq/WmZ4V+kBIXQon9dSSc8ircGZqw9ZaNhhGj9nZkeBu1jHLBDQqYYi5WA9uawvA2sIMbry2nCFhf5Djg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
@@ -222,8 +222,8 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-syntax-jsx@7.25.9':
- resolution: {integrity: sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==}
+ '@babel/plugin-syntax-jsx@7.29.7':
+ resolution: {integrity: sha512-TSu8+mHCoEaaCDEZ0I3+6mvTBYR4PCxQwf2z9/r5Tbztv6NaLR3B9thGTTxX2WGuGHJqRiAbKPeGTJ5XWXVg6A==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
@@ -270,22 +270,22 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-syntax-typescript@7.25.9':
- resolution: {integrity: sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==}
+ '@babel/plugin-syntax-typescript@7.29.7':
+ resolution: {integrity: sha512-ngr+82Sh0xMz25TPCZi+nC2iTzjfCdWS2ONXTp/PtSCHCgaCNBpdMqgvJ2ccdLlClVZ7sisIgB914j/JFe+RZA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/template@7.27.0':
- resolution: {integrity: sha512-2ncevenBqXI6qRMukPlXwHKHchC7RyMuu4xv5JBXRfOGVcTy1mXCD12qrp7Jsoxll1EV3+9sE4GugBVRjT2jFA==}
+ '@babel/template@7.29.7':
+ resolution: {integrity: sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==}
engines: {node: '>=6.9.0'}
- '@babel/traverse@7.27.0':
- resolution: {integrity: sha512-19lYZFzYVQkkHkl4Cy4WrAVcqBkgvV2YM2TU3xG6DIwO7O3ecbDPfW3yM3bjAGcqcQHi+CCtjMR3dIEHxsd6bA==}
+ '@babel/traverse@7.29.7':
+ resolution: {integrity: sha512-EhlfNQtZ+NK22w5BM61ciuiq1m58ed33Wr1Xan//ZRTy6hgjnwyCffRYwzsGXdASJSUJ1guZILsErh1eQcl+zw==}
engines: {node: '>=6.9.0'}
- '@babel/types@7.27.0':
- resolution: {integrity: sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg==}
+ '@babel/types@7.29.7':
+ resolution: {integrity: sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==}
engines: {node: '>=6.9.0'}
'@bcoe/v8-coverage@0.2.3':
@@ -303,166 +303,168 @@ packages:
resolution: {integrity: sha512-0dEVyRLM/lG4gp1R/Ik5bfPl/1wX00xFwd5KcNH602tzBa09oF7pbTKETEhR1GjZ75K6OJnYFu8II2dyMhONMw==}
engines: {node: '>=16'}
- '@esbuild/aix-ppc64@0.25.1':
- resolution: {integrity: sha512-kfYGy8IdzTGy+z0vFGvExZtxkFlA4zAxgKEahG9KE1ScBjpQnFsNOX8KTU5ojNru5ed5CVoJYXFtoxaq5nFbjQ==}
+ '@esbuild/aix-ppc64@0.27.7':
+ resolution: {integrity: sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg==}
engines: {node: '>=18'}
cpu: [ppc64]
os: [aix]
- '@esbuild/android-arm64@0.25.1':
- resolution: {integrity: sha512-50tM0zCJW5kGqgG7fQ7IHvQOcAn9TKiVRuQ/lN0xR+T2lzEFvAi1ZcS8DiksFcEpf1t/GYOeOfCAgDHFpkiSmA==}
+ '@esbuild/android-arm64@0.27.7':
+ resolution: {integrity: sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ==}
engines: {node: '>=18'}
cpu: [arm64]
os: [android]
- '@esbuild/android-arm@0.25.1':
- resolution: {integrity: sha512-dp+MshLYux6j/JjdqVLnMglQlFu+MuVeNrmT5nk6q07wNhCdSnB7QZj+7G8VMUGh1q+vj2Bq8kRsuyA00I/k+Q==}
+ '@esbuild/android-arm@0.27.7':
+ resolution: {integrity: sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ==}
engines: {node: '>=18'}
cpu: [arm]
os: [android]
- '@esbuild/android-x64@0.25.1':
- resolution: {integrity: sha512-GCj6WfUtNldqUzYkN/ITtlhwQqGWu9S45vUXs7EIYf+7rCiiqH9bCloatO9VhxsL0Pji+PF4Lz2XXCES+Q8hDw==}
+ '@esbuild/android-x64@0.27.7':
+ resolution: {integrity: sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg==}
engines: {node: '>=18'}
cpu: [x64]
os: [android]
- '@esbuild/darwin-arm64@0.25.1':
- resolution: {integrity: sha512-5hEZKPf+nQjYoSr/elb62U19/l1mZDdqidGfmFutVUjjUZrOazAtwK+Kr+3y0C/oeJfLlxo9fXb1w7L+P7E4FQ==}
+ '@esbuild/darwin-arm64@0.27.7':
+ resolution: {integrity: sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw==}
engines: {node: '>=18'}
cpu: [arm64]
os: [darwin]
- '@esbuild/darwin-x64@0.25.1':
- resolution: {integrity: sha512-hxVnwL2Dqs3fM1IWq8Iezh0cX7ZGdVhbTfnOy5uURtao5OIVCEyj9xIzemDi7sRvKsuSdtCAhMKarxqtlyVyfA==}
+ '@esbuild/darwin-x64@0.27.7':
+ resolution: {integrity: sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ==}
engines: {node: '>=18'}
cpu: [x64]
os: [darwin]
- '@esbuild/freebsd-arm64@0.25.1':
- resolution: {integrity: sha512-1MrCZs0fZa2g8E+FUo2ipw6jw5qqQiH+tERoS5fAfKnRx6NXH31tXBKI3VpmLijLH6yriMZsxJtaXUyFt/8Y4A==}
+ '@esbuild/freebsd-arm64@0.27.7':
+ resolution: {integrity: sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w==}
engines: {node: '>=18'}
cpu: [arm64]
os: [freebsd]
- '@esbuild/freebsd-x64@0.25.1':
- resolution: {integrity: sha512-0IZWLiTyz7nm0xuIs0q1Y3QWJC52R8aSXxe40VUxm6BB1RNmkODtW6LHvWRrGiICulcX7ZvyH6h5fqdLu4gkww==}
+ '@esbuild/freebsd-x64@0.27.7':
+ resolution: {integrity: sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ==}
engines: {node: '>=18'}
cpu: [x64]
os: [freebsd]
- '@esbuild/linux-arm64@0.25.1':
- resolution: {integrity: sha512-jaN3dHi0/DDPelk0nLcXRm1q7DNJpjXy7yWaWvbfkPvI+7XNSc/lDOnCLN7gzsyzgu6qSAmgSvP9oXAhP973uQ==}
+ '@esbuild/linux-arm64@0.27.7':
+ resolution: {integrity: sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A==}
engines: {node: '>=18'}
cpu: [arm64]
os: [linux]
- '@esbuild/linux-arm@0.25.1':
- resolution: {integrity: sha512-NdKOhS4u7JhDKw9G3cY6sWqFcnLITn6SqivVArbzIaf3cemShqfLGHYMx8Xlm/lBit3/5d7kXvriTUGa5YViuQ==}
+ '@esbuild/linux-arm@0.27.7':
+ resolution: {integrity: sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA==}
engines: {node: '>=18'}
cpu: [arm]
os: [linux]
- '@esbuild/linux-ia32@0.25.1':
- resolution: {integrity: sha512-OJykPaF4v8JidKNGz8c/q1lBO44sQNUQtq1KktJXdBLn1hPod5rE/Hko5ugKKZd+D2+o1a9MFGUEIUwO2YfgkQ==}
+ '@esbuild/linux-ia32@0.27.7':
+ resolution: {integrity: sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg==}
engines: {node: '>=18'}
cpu: [ia32]
os: [linux]
- '@esbuild/linux-loong64@0.25.1':
- resolution: {integrity: sha512-nGfornQj4dzcq5Vp835oM/o21UMlXzn79KobKlcs3Wz9smwiifknLy4xDCLUU0BWp7b/houtdrgUz7nOGnfIYg==}
+ '@esbuild/linux-loong64@0.27.7':
+ resolution: {integrity: sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q==}
engines: {node: '>=18'}
cpu: [loong64]
os: [linux]
- '@esbuild/linux-mips64el@0.25.1':
- resolution: {integrity: sha512-1osBbPEFYwIE5IVB/0g2X6i1qInZa1aIoj1TdL4AaAb55xIIgbg8Doq6a5BzYWgr+tEcDzYH67XVnTmUzL+nXg==}
+ '@esbuild/linux-mips64el@0.27.7':
+ resolution: {integrity: sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw==}
engines: {node: '>=18'}
cpu: [mips64el]
os: [linux]
- '@esbuild/linux-ppc64@0.25.1':
- resolution: {integrity: sha512-/6VBJOwUf3TdTvJZ82qF3tbLuWsscd7/1w+D9LH0W/SqUgM5/JJD0lrJ1fVIfZsqB6RFmLCe0Xz3fmZc3WtyVg==}
+ '@esbuild/linux-ppc64@0.27.7':
+ resolution: {integrity: sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ==}
engines: {node: '>=18'}
cpu: [ppc64]
os: [linux]
- '@esbuild/linux-riscv64@0.25.1':
- resolution: {integrity: sha512-nSut/Mx5gnilhcq2yIMLMe3Wl4FK5wx/o0QuuCLMtmJn+WeWYoEGDN1ipcN72g1WHsnIbxGXd4i/MF0gTcuAjQ==}
+ '@esbuild/linux-riscv64@0.27.7':
+ resolution: {integrity: sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ==}
engines: {node: '>=18'}
cpu: [riscv64]
os: [linux]
- '@esbuild/linux-s390x@0.25.1':
- resolution: {integrity: sha512-cEECeLlJNfT8kZHqLarDBQso9a27o2Zd2AQ8USAEoGtejOrCYHNtKP8XQhMDJMtthdF4GBmjR2au3x1udADQQQ==}
+ '@esbuild/linux-s390x@0.27.7':
+ resolution: {integrity: sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw==}
engines: {node: '>=18'}
cpu: [s390x]
os: [linux]
- '@esbuild/linux-x64@0.25.1':
- resolution: {integrity: sha512-xbfUhu/gnvSEg+EGovRc+kjBAkrvtk38RlerAzQxvMzlB4fXpCFCeUAYzJvrnhFtdeyVCDANSjJvOvGYoeKzFA==}
+ '@esbuild/linux-x64@0.27.7':
+ resolution: {integrity: sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA==}
engines: {node: '>=18'}
cpu: [x64]
os: [linux]
- '@esbuild/netbsd-arm64@0.25.1':
- resolution: {integrity: sha512-O96poM2XGhLtpTh+s4+nP7YCCAfb4tJNRVZHfIE7dgmax+yMP2WgMd2OecBuaATHKTHsLWHQeuaxMRnCsH8+5g==}
+ '@esbuild/netbsd-arm64@0.27.7':
+ resolution: {integrity: sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w==}
engines: {node: '>=18'}
cpu: [arm64]
os: [netbsd]
- '@esbuild/netbsd-x64@0.25.1':
- resolution: {integrity: sha512-X53z6uXip6KFXBQ+Krbx25XHV/NCbzryM6ehOAeAil7X7oa4XIq+394PWGnwaSQ2WRA0KI6PUO6hTO5zeF5ijA==}
+ '@esbuild/netbsd-x64@0.27.7':
+ resolution: {integrity: sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw==}
engines: {node: '>=18'}
cpu: [x64]
os: [netbsd]
- '@esbuild/openbsd-arm64@0.25.1':
- resolution: {integrity: sha512-Na9T3szbXezdzM/Kfs3GcRQNjHzM6GzFBeU1/6IV/npKP5ORtp9zbQjvkDJ47s6BCgaAZnnnu/cY1x342+MvZg==}
+ '@esbuild/openbsd-arm64@0.27.7':
+ resolution: {integrity: sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A==}
engines: {node: '>=18'}
cpu: [arm64]
os: [openbsd]
- '@esbuild/openbsd-x64@0.25.1':
- resolution: {integrity: sha512-T3H78X2h1tszfRSf+txbt5aOp/e7TAz3ptVKu9Oyir3IAOFPGV6O9c2naym5TOriy1l0nNf6a4X5UXRZSGX/dw==}
+ '@esbuild/openbsd-x64@0.27.7':
+ resolution: {integrity: sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg==}
engines: {node: '>=18'}
cpu: [x64]
os: [openbsd]
- '@esbuild/sunos-x64@0.25.1':
- resolution: {integrity: sha512-2H3RUvcmULO7dIE5EWJH8eubZAI4xw54H1ilJnRNZdeo8dTADEZ21w6J22XBkXqGJbe0+wnNJtw3UXRoLJnFEg==}
+ '@esbuild/openharmony-arm64@0.27.7':
+ resolution: {integrity: sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [openharmony]
+
+ '@esbuild/sunos-x64@0.27.7':
+ resolution: {integrity: sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA==}
engines: {node: '>=18'}
cpu: [x64]
os: [sunos]
- '@esbuild/win32-arm64@0.25.1':
- resolution: {integrity: sha512-GE7XvrdOzrb+yVKB9KsRMq+7a2U/K5Cf/8grVFRAGJmfADr/e/ODQ134RK2/eeHqYV5eQRFxb1hY7Nr15fv1NQ==}
+ '@esbuild/win32-arm64@0.27.7':
+ resolution: {integrity: sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA==}
engines: {node: '>=18'}
cpu: [arm64]
os: [win32]
- '@esbuild/win32-ia32@0.25.1':
- resolution: {integrity: sha512-uOxSJCIcavSiT6UnBhBzE8wy3n0hOkJsBOzy7HDAuTDE++1DJMRRVCPGisULScHL+a/ZwdXPpXD3IyFKjA7K8A==}
+ '@esbuild/win32-ia32@0.27.7':
+ resolution: {integrity: sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw==}
engines: {node: '>=18'}
cpu: [ia32]
os: [win32]
- '@esbuild/win32-x64@0.25.1':
- resolution: {integrity: sha512-Y1EQdcfwMSeQN/ujR5VayLOJ1BHaK+ssyk0AEzPjC+t1lITgsnccPqFjb6V+LsTp/9Iov4ysfjxLaGJ9RPtkVg==}
+ '@esbuild/win32-x64@0.27.7':
+ resolution: {integrity: sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg==}
engines: {node: '>=18'}
cpu: [x64]
os: [win32]
- '@isaacs/cliui@8.0.2':
- resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
- engines: {node: '>=12'}
-
'@istanbuljs/load-nyc-config@1.1.0':
resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==}
engines: {node: '>=8'}
- '@istanbuljs/schema@0.1.3':
- resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==}
+ '@istanbuljs/schema@0.1.6':
+ resolution: {integrity: sha512-+Sg6GCR/wy1oSmQDFq4LQDAhm3ETKnorxN+y5nbLULOR3P0c14f2Wurzj3/xqPXtasLFfHd5iRFQ7AJt4KH2cw==}
engines: {node: '>=8'}
'@jest/console@29.7.0':
@@ -531,162 +533,156 @@ packages:
resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
- '@jridgewell/gen-mapping@0.3.8':
- resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==}
- engines: {node: '>=6.0.0'}
+ '@jridgewell/gen-mapping@0.3.13':
+ resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==}
+
+ '@jridgewell/remapping@2.3.5':
+ resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==}
'@jridgewell/resolve-uri@3.1.2':
resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
engines: {node: '>=6.0.0'}
- '@jridgewell/set-array@1.2.1':
- resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==}
- engines: {node: '>=6.0.0'}
+ '@jridgewell/sourcemap-codec@1.5.5':
+ resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==}
- '@jridgewell/sourcemap-codec@1.5.0':
- resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==}
-
- '@jridgewell/trace-mapping@0.3.25':
- resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==}
+ '@jridgewell/trace-mapping@0.3.31':
+ resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==}
'@jridgewell/trace-mapping@0.3.9':
resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==}
- '@opentelemetry/api@1.9.0':
- resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==}
+ '@opentelemetry/api@1.9.1':
+ resolution: {integrity: sha512-gLyJlPHPZYdAk1JENA9LeHejZe1Ti77/pTeFm/nMXmQH/HFZlcS/O2XJB+L8fkbrNSqhdtlvjBVjxwUYanNH5Q==}
engines: {node: '>=8.0.0'}
- '@pkgjs/parseargs@0.11.0':
- resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
- engines: {node: '>=14'}
-
- '@rollup/rollup-android-arm-eabi@4.60.4':
- resolution: {integrity: sha512-F5QXMSiFebS9hKZj02XhWLLnRpJ3B3AROP0tWbFBSj+6kCbg5m9j5JoHKd4mmSVy5mS/IMQloYgYxCuJC0fxEQ==}
+ '@rollup/rollup-android-arm-eabi@4.61.1':
+ resolution: {integrity: sha512-JnBB8MdXj45cajvTuO5FmPlvFVJRQgvrz1uSEl3NwqFnReAPGwb8EanbGi4z2nRaqLzjJSv5/JmycoTKlRZxHA==}
cpu: [arm]
os: [android]
- '@rollup/rollup-android-arm64@4.60.4':
- resolution: {integrity: sha512-GxxTKApUpzRhof7poWvCJHRF51C67u1R7D6DiluBE8wKU1u5GWE8t+v81JvJYtbawoBFX1hLv5Ei4eVjkWokaw==}
+ '@rollup/rollup-android-arm64@4.61.1':
+ resolution: {integrity: sha512-Jx2g7iSjw4AOT0HDPHM9RV3GNjRXwybWtSFZiZAYUTjUwjVrYIwq3kBf+LnhqJlzXFAqTAh2F7IGI+O568exPw==}
cpu: [arm64]
os: [android]
- '@rollup/rollup-darwin-arm64@4.60.4':
- resolution: {integrity: sha512-tua0TaJxMOB1R0V0RS1jFZ/RpURFDJIOR2A6jWwQeawuFyS4gBW+rntLRaQd0EQ4bd6Vp44Z2rXW+YYDBsj6IA==}
+ '@rollup/rollup-darwin-arm64@4.61.1':
+ resolution: {integrity: sha512-0F1L/Z3Eqv8mT2n3dCpeO8GcTvHvVqkP5/t6DMsn0KzhYVcg+s7Ncl5DS8qjKYEeio6Az0Gt6nyBORay5qIlCA==}
cpu: [arm64]
os: [darwin]
- '@rollup/rollup-darwin-x64@4.60.4':
- resolution: {integrity: sha512-CSKq7MsP+5PFIcydhAiR1K0UhEI1A2jWXVKHPCBZ151yOutENwvnPocgVHkivu2kviURtCEB6zUQw0vs8RrhMg==}
+ '@rollup/rollup-darwin-x64@4.61.1':
+ resolution: {integrity: sha512-qLttcH871ujY4YcVfUSShhOw+CsoTatYz8gRbHO7Bb92QH059/P0y5do1KMs41fY0BpD2x4AJH/gID0zFiqVKQ==}
cpu: [x64]
os: [darwin]
- '@rollup/rollup-freebsd-arm64@4.60.4':
- resolution: {integrity: sha512-+O8OkVdyvXMtJEciu2wS/pzm1IxntEEQx3z5TAVy4l32G0etZn+RsA48ARRrFm6Ri8fvqPQfgrvNxSjKAbnd3g==}
+ '@rollup/rollup-freebsd-arm64@4.61.1':
+ resolution: {integrity: sha512-fUI4RapGE0Oh3mb8mgfvC1O2nU1RpDZUKnDQm3xB1Ipg7C2wTs5Kstz7G2uWK99a8S2yTMq8/P4uycwNa0nJyw==}
cpu: [arm64]
os: [freebsd]
- '@rollup/rollup-freebsd-x64@4.60.4':
- resolution: {integrity: sha512-Iw3oMskH3AfNuhU0MSN7vNbdi4me/NiYo2azqPz/Le16zHSa+3RRmliCMWWQmh4lcndccU40xcJuTYJZxNo/lw==}
+ '@rollup/rollup-freebsd-x64@4.61.1':
+ resolution: {integrity: sha512-H5YrdvJaDtI/U9/emrD4b++xkvp3y/JvOe4rizHbxvkyMfRS/CiRYdji+Pl8D0brEaNFWUh1drQxgAGIl6Xudw==}
cpu: [x64]
os: [freebsd]
- '@rollup/rollup-linux-arm-gnueabihf@4.60.4':
- resolution: {integrity: sha512-EIPRXTVQpHyF8WOo219AD2yEltPehLTcTMz2fn6JsatLYSzQf00hj3rulF+yauOlF9/FtM2WpkT/hJh/KJFGhA==}
+ '@rollup/rollup-linux-arm-gnueabihf@4.61.1':
+ resolution: {integrity: sha512-Q8CBCCQtDFrYtXoeUXSrnFXKOnyUhx6bz+SkL6A0E7V8kAiCJ5pamq1WtbfpVGhR5TSpXY6ak3avmDc5fHTyJA==}
cpu: [arm]
os: [linux]
- '@rollup/rollup-linux-arm-musleabihf@4.60.4':
- resolution: {integrity: sha512-J3Yh9PzzF1Ovah2At+lHiGQdsYgArxBbXv/zHfSyaiFQEqvNv7DcW98pCrmdjCZBrqBiKrKKe2V+aaSGWuBe/w==}
+ '@rollup/rollup-linux-arm-musleabihf@4.61.1':
+ resolution: {integrity: sha512-nwnhk1581l0FBVellGcVCAT0Oi06onEA3WB53sf01VO3I0UPBkMH9sXONYME2K0ovXcNayJfNtHfm6mpJElatQ==}
cpu: [arm]
os: [linux]
- '@rollup/rollup-linux-arm64-gnu@4.60.4':
- resolution: {integrity: sha512-BFDEZMYfUvLn37ONE1yMBojPxnMlTFsdyNoqncT0qFq1mAfllL+ATMMJd8TeuVMiX84s1KbcxcZbXInmcO2mRg==}
+ '@rollup/rollup-linux-arm64-gnu@4.61.1':
+ resolution: {integrity: sha512-x5Xr49hwt3hdW75UOZm3395YwwzPyauktslv29KpWL/T+vVAzoT3azLcTWv0eMciBNrx+DYjH4paehHoLpPvpg==}
cpu: [arm64]
os: [linux]
- '@rollup/rollup-linux-arm64-musl@4.60.4':
- resolution: {integrity: sha512-pc9EYOSlOgdQ2uPl1o9PF6/kLSgaUosia7gOuS8mB69IxJvlclko1MECXysjs5ryez1/5zjYqx3+xYU0TU6R1A==}
+ '@rollup/rollup-linux-arm64-musl@4.61.1':
+ resolution: {integrity: sha512-unMS3H73DpaoPyyEVPjGKleM/s0mkmsauTENpw4INQY8y4+IuLNjkueQ5QCtC0D3N38Y38yhAU8OoZ20S2Tm6w==}
cpu: [arm64]
os: [linux]
- '@rollup/rollup-linux-loong64-gnu@4.60.4':
- resolution: {integrity: sha512-NxnomyxYerDh5n4iLrNa+sH+Z+U4BMEE46V2PgQ/hoB909i8gV1M5wPojWg9fk1jWpO3IQnOs20K4wyZuFLEFQ==}
+ '@rollup/rollup-linux-loong64-gnu@4.61.1':
+ resolution: {integrity: sha512-zNZzGRnAhwjFEYmvphJRV5XaQGjs62cCmeYYHUT//NbvEnHauw+I85nGG+SiVg5ld4GX8D1IbKIX+ozITQnhMQ==}
cpu: [loong64]
os: [linux]
- '@rollup/rollup-linux-loong64-musl@4.60.4':
- resolution: {integrity: sha512-nbJnQ8a3z1mtmrwImCYhc6BGpThAyYVRQxw9uKSKG4wR6aAYno9sVjJ0zaZcW9BPJX1GbrDPf+SvdWjgTuDmnw==}
+ '@rollup/rollup-linux-loong64-musl@4.61.1':
+ resolution: {integrity: sha512-LdpWGL8X209B2SIvWjqlc8VZgM6PKfontSerGepuldQmHYrAOtnMCXeJkxXGbC+PPZVOuu5czJo7fNV6aeW8rQ==}
cpu: [loong64]
os: [linux]
- '@rollup/rollup-linux-ppc64-gnu@4.60.4':
- resolution: {integrity: sha512-2EU6acNrQLd8tYvo/LXW535wupT3m6fo7HKo6lr7ktQoItxTyOL1ZCR/GfGCuXl2vR+zmfI6eRXkSemafv+iVg==}
+ '@rollup/rollup-linux-ppc64-gnu@4.61.1':
+ resolution: {integrity: sha512-EC5kTtNaNGOmbMGqar8dvJy6y/hg99GAwjfBz++pxZhQATXGcRjd6c5en5wcbru0vkRmiMGsQKdMJOOf6sza4g==}
cpu: [ppc64]
os: [linux]
- '@rollup/rollup-linux-ppc64-musl@4.60.4':
- resolution: {integrity: sha512-WeBtoMuaMxiiIrO2IYP3xs6GMWkJP2C0EoT8beTLkUPmzV1i/UcOSVw1d5r9KBODtHKilG5yFxsGRnBbK3wJ4A==}
+ '@rollup/rollup-linux-ppc64-musl@4.61.1':
+ resolution: {integrity: sha512-8hiwp6D4acEcNK78I4rP0/XtS1sknWIAMJBPdR4l6zUtyTm5KiTDr5bXmWt4foY7nAN7AThDHgkLIEZOWKbzWw==}
cpu: [ppc64]
os: [linux]
- '@rollup/rollup-linux-riscv64-gnu@4.60.4':
- resolution: {integrity: sha512-FJHFfqpKUI3A10WrWKiFbBZ7yVbGT4q4B5o1qKFFojqpaYoh9LrQgqWCmmcxQzVSXYtyB5bzkXrYzlHTs21MYA==}
+ '@rollup/rollup-linux-riscv64-gnu@4.61.1':
+ resolution: {integrity: sha512-10dh/h/BqA7DuMPWSxkR8uks18FRwnwOEqr5zOTEl+NOwP/OMzKX8OFR/Of9xxDA7D5qef1Nzar5WDD2kCCr1g==}
cpu: [riscv64]
os: [linux]
- '@rollup/rollup-linux-riscv64-musl@4.60.4':
- resolution: {integrity: sha512-mcEl6CUT5IAUmQf1m9FYSmVqCJlpQ8r8eyftFUHG8i9OhY7BkBXSUdnLH5DOf0wCOjcP9v/QO93zpmF1SptCCw==}
+ '@rollup/rollup-linux-riscv64-musl@4.61.1':
+ resolution: {integrity: sha512-YKJ5lg35DP17gcAOggnihe+APw9HLyj1Xn7gsmGumBJAUDa6NGXNixJzmkWLhcK9TOuuyQjdamzvJefkO7qHZQ==}
cpu: [riscv64]
os: [linux]
- '@rollup/rollup-linux-s390x-gnu@4.60.4':
- resolution: {integrity: sha512-ynt3JxVd2w2buzoKDWIyiV1pJW93xlQic1THVLXilz429oijRpSHivZAgp65KBu+cMcgf1eVVjdnTLvPxgCuoQ==}
+ '@rollup/rollup-linux-s390x-gnu@4.61.1':
+ resolution: {integrity: sha512-Mlil5G2Jj6a7B3LWGctg+XPL9vdXYuzCtNXfxOQ0nPjc2m6ueUktocPGH9bnAM0bNRKb/bAWTujUU7IJQdQA+g==}
cpu: [s390x]
os: [linux]
- '@rollup/rollup-linux-x64-gnu@4.60.4':
- resolution: {integrity: sha512-Boiz5+MsaROEWDf+GGEwF8VMHGhlUoQMtIPjOgA5fv4osupqTVnJteQNKJwUcnUog2G55jYXH7KZFFiJe0TEzQ==}
+ '@rollup/rollup-linux-x64-gnu@4.61.1':
+ resolution: {integrity: sha512-bVWIOIk6pV01p4CdUbPP7CJ/434z+OooYjDuFcR+44N35YvKUC66G8MGnvcWx5mWKW3g61J+t74l3Kj15Kwn2Q==}
cpu: [x64]
os: [linux]
- '@rollup/rollup-linux-x64-musl@4.60.4':
- resolution: {integrity: sha512-+qfSY27qIrFfI/Hom04KYFw3GKZSGU4lXus51wsb5EuySfFlWRwjkKWoE9emgRw/ukoT4Udsj4W/+xxG8VbPKg==}
+ '@rollup/rollup-linux-x64-musl@4.61.1':
+ resolution: {integrity: sha512-qy5pBvZbqNFheBz61R1rzsezjm0J7O2oNGoWtGoY89SZYLUfxAJTBAqDChqAIdB4rCiIbi9nF7yZ83GnNiLwSw==}
cpu: [x64]
os: [linux]
- '@rollup/rollup-openbsd-x64@4.60.4':
- resolution: {integrity: sha512-VpTfOPHgVXEBeeR8hZ2O0F3aSso+JDWqTWmTmzcQKted54IAdUVbxE+j/MVxUsKa8L20HJhv3vUezVPoquqWjA==}
+ '@rollup/rollup-openbsd-x64@4.61.1':
+ resolution: {integrity: sha512-E83TXjI4zm0+5f2qO+UOudaCYIhYwpJ5jq6YCZNIZ+6CbfhKrkAGezeiASBL9ElxAxFsRS9ZhESv8mfnj6TKeg==}
cpu: [x64]
os: [openbsd]
- '@rollup/rollup-openharmony-arm64@4.60.4':
- resolution: {integrity: sha512-IPOsh5aRYuLv/nkU51X10Bf75Bsf6+gZdx1X+QP5QM6lIJFHHqbHLG0uJn/hWthzo13UAc2umiUorqZy3axoZg==}
+ '@rollup/rollup-openharmony-arm64@4.61.1':
+ resolution: {integrity: sha512-fbWnKqVkjrJN38vNe3ahkbk6iejS/3b0Nt7EEtPpE6RBacZcGXNKbzfHN3GUUlXOPghUg0j6XUGrtjX9z1sIvA==}
cpu: [arm64]
os: [openharmony]
- '@rollup/rollup-win32-arm64-msvc@4.60.4':
- resolution: {integrity: sha512-4QzE9E81OohJ/HKzHhsqU+zcYYojVOXlFMs1DdyMT6qXl/niOH7AVElmmEdUNHHS/oRkc++d5k6Vy85zFs0DEw==}
+ '@rollup/rollup-win32-arm64-msvc@4.61.1':
+ resolution: {integrity: sha512-ArMl38iVAbk0New1ogihQNY6iphLi4ZaRsa037gUzv5yeKPY8TD3Dmy4x2RNC1VztU/uqm+G+/RwFrSka3Oy2g==}
cpu: [arm64]
os: [win32]
- '@rollup/rollup-win32-ia32-msvc@4.60.4':
- resolution: {integrity: sha512-zTPgT1YuHHcd+Tmx7h8aml0FWFVelV5N54oHow9SLj+GfoDy/huQ+UV396N/C7KpMDMiPspRktzM1/0r1usYEA==}
+ '@rollup/rollup-win32-ia32-msvc@4.61.1':
+ resolution: {integrity: sha512-0mYtjHS9ucAbcATycCNK9IGBk/cCe/ma7EmSLGZdsxnOA8cjRIyU04wDpVAD9NiOfLUR9KTxdiO53uOkherqjQ==}
cpu: [ia32]
os: [win32]
- '@rollup/rollup-win32-x64-gnu@4.60.4':
- resolution: {integrity: sha512-DRS4G7mi9lJxqEDezIkKCaUIKCrLUUDCUaCsTPCi/rtqaC6D/jjwslMQyiDU50Ka0JKpeXeRBFBAXwArY52vBw==}
+ '@rollup/rollup-win32-x64-gnu@4.61.1':
+ resolution: {integrity: sha512-gK1iCEPfpoSG9wfBihXxvBMi8ZfcWffYkEsC/Eih+iFENTaewvNcrEQ69lIOWYO5pePHKLHHO7nq5AILGO/HQQ==}
cpu: [x64]
os: [win32]
- '@rollup/rollup-win32-x64-msvc@4.60.4':
- resolution: {integrity: sha512-QVTUovf40zgTqlFVrKA1uXMVvU2QWEFWfAH8Wdc48IxLvrJMQVMBRjuQyUpzZCDkakImib9eVazbWlC6ksWtJw==}
+ '@rollup/rollup-win32-x64-msvc@4.61.1':
+ resolution: {integrity: sha512-X+zaP2x+j4RXGfbp/seSoRHWnPxzApilDszisZxbYH5C/jTxFhCtDNdPGZb9lJyYPs24wGxruPF7Y+sIXt9Gzw==}
cpu: [x64]
os: [win32]
- '@sinclair/typebox@0.27.8':
- resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==}
+ '@sinclair/typebox@0.27.10':
+ resolution: {integrity: sha512-MTBk/3jGLNB2tVxv6uLlFh1iu64iYOQ2PbdOSK3NW8JZsmlaOh2q6sdtKowBhfw8QFLmYNzTW4/oK4uATIi6ZA==}
'@sinonjs/commons@3.0.1':
resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==}
@@ -694,11 +690,11 @@ packages:
'@sinonjs/fake-timers@10.3.0':
resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==}
- '@standard-schema/spec@1.0.0':
- resolution: {integrity: sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA==}
+ '@standard-schema/spec@1.1.0':
+ resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==}
- '@tsconfig/node10@1.0.11':
- resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==}
+ '@tsconfig/node10@1.0.12':
+ resolution: {integrity: sha512-UCYBaeFvM11aU2y3YPZ//O5Rhj+xKyzy7mvcIoAjASbigy8mHMryP5cK7dgjlz2hWxh1g5pLw084E0a/wlUSFQ==}
'@tsconfig/node12@1.0.11':
resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==}
@@ -712,17 +708,17 @@ packages:
'@types/babel__core@7.20.5':
resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==}
- '@types/babel__generator@7.6.8':
- resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==}
+ '@types/babel__generator@7.27.0':
+ resolution: {integrity: sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==}
'@types/babel__template@7.4.4':
resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==}
- '@types/babel__traverse@7.20.7':
- resolution: {integrity: sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==}
+ '@types/babel__traverse@7.28.0':
+ resolution: {integrity: sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==}
- '@types/estree@1.0.8':
- resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==}
+ '@types/estree@1.0.9':
+ resolution: {integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==}
'@types/graceful-fs@4.1.9':
resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==}
@@ -739,8 +735,8 @@ packages:
'@types/jest@29.5.14':
resolution: {integrity: sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==}
- '@types/node@18.19.84':
- resolution: {integrity: sha512-ACYy2HGcZPHxEeWTqowTF7dhXN+JU1o7Gr4b41klnn6pj2LD6rsiGqSZojMdk1Jh2ys3m76ap+ae1vvE4+5+vg==}
+ '@types/node@18.19.130':
+ resolution: {integrity: sha512-GRaXQx6jGfL8sKfaIDD6OupbIHBr9jv7Jnaml9tB7l4v068PAOXqfcujMMo5PhbIs6ggR1XODELqahT2R8v0fg==}
'@types/stack-utils@2.0.3':
resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==}
@@ -748,23 +744,27 @@ packages:
'@types/yargs-parser@21.0.3':
resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==}
- '@types/yargs@17.0.33':
- resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==}
+ '@types/yargs@17.0.35':
+ resolution: {integrity: sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==}
- acorn-walk@8.3.4:
- resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==}
+ '@vercel/oidc@3.2.0':
+ resolution: {integrity: sha512-UycprH3T6n3jH0k44NHMa7pnFHGu/N05MjojYr+Mc6I7obkoLIJujSWwin1pCvdy/eOxrI/l3uDLQsmcrOb4ug==}
+ engines: {node: '>= 20'}
+
+ acorn-walk@8.3.5:
+ resolution: {integrity: sha512-HEHNfbars9v4pgpW6SO1KSPkfoS0xVOM/9UzkJltjlsHZmJasxg8aXkuZa7SMf8vKGIBhpUsPluQSqhJFCqebw==}
engines: {node: '>=0.4.0'}
- acorn@8.14.1:
- resolution: {integrity: sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==}
+ acorn@8.16.0:
+ resolution: {integrity: sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==}
engines: {node: '>=0.4.0'}
hasBin: true
- ai@5.0.2:
- resolution: {integrity: sha512-Uk4lmwlr2b/4G9DUYCWYKcWz93xQ6p6AEeRZN+/AO9NbOyCm9axrDru26c83Ax8OB8IHUvoseA3CqaZkg9Z0Kg==}
+ ai@6.0.199:
+ resolution: {integrity: sha512-6H9RPEjzBQECM+eU1JxAh6jHcZPU/6q5QZ8D8QV8agubf0Mm/kcBlwqrFcFtup6RQzmEvMkVaQOoLCZ8bQ13lA==}
engines: {node: '>=18'}
peerDependencies:
- zod: ^3.25.76 || ^4
+ zod: ^3.25.76 || ^4.1.8
ansi-escapes@4.3.2:
resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==}
@@ -774,10 +774,6 @@ packages:
resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
engines: {node: '>=8'}
- ansi-regex@6.1.0:
- resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==}
- engines: {node: '>=12'}
-
ansi-styles@4.3.0:
resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
engines: {node: '>=8'}
@@ -786,10 +782,6 @@ packages:
resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==}
engines: {node: '>=10'}
- ansi-styles@6.2.1:
- resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
- engines: {node: '>=12'}
-
any-promise@1.3.0:
resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==}
@@ -803,9 +795,6 @@ packages:
argparse@1.0.10:
resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==}
- async@3.2.6:
- resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==}
-
babel-jest@29.7.0:
resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -820,10 +809,10 @@ packages:
resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
- babel-preset-current-node-syntax@1.1.0:
- resolution: {integrity: sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==}
+ babel-preset-current-node-syntax@1.2.0:
+ resolution: {integrity: sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==}
peerDependencies:
- '@babel/core': ^7.0.0
+ '@babel/core': ^7.0.0 || ^8.0.0-0
babel-preset-jest@29.6.3:
resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==}
@@ -834,25 +823,32 @@ packages:
balanced-match@1.0.2:
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
+ balanced-match@4.0.4:
+ resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==}
+ engines: {node: 18 || 20 || >=22}
+
+ baseline-browser-mapping@2.10.35:
+ resolution: {integrity: sha512-honAfLBde0HAFLdNyBEfuuENkF6zR+ozxqxa/2zJKHBe1qzLqyTSeRKpdPEHAP03rlDGyQOPnCSxnVpVqQo9Mg==}
+ engines: {node: '>=6.0.0'}
+ hasBin: true
+
binary-extensions@2.3.0:
resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
engines: {node: '>=8'}
- brace-expansion@1.1.11:
- resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
+ brace-expansion@1.1.15:
+ resolution: {integrity: sha512-EwOCDEex4quD37XhqM3omwtMoJjr//isUZz1JopUNWms+4Z2ViyM/k1YIRePpoVNnQhENnxtFjLaxNHrT7xIUg==}
- brace-expansion@2.0.1:
- resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
-
- brace-expansion@2.1.1:
- resolution: {integrity: sha512-WR1cURNjuvBLMZBMbqM0UoE+WAfdUcEV1ccD8PVBVOI+Z3ND4+SZbN8RsfT2bMuG1qwz5RFvPukSZm5fF2D5eA==}
+ brace-expansion@5.0.6:
+ resolution: {integrity: sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==}
+ engines: {node: 18 || 20 || >=22}
braces@3.0.3:
resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
engines: {node: '>=8'}
- browserslist@4.24.4:
- resolution: {integrity: sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==}
+ browserslist@4.28.2:
+ resolution: {integrity: sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==}
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
hasBin: true
@@ -888,8 +884,8 @@ packages:
resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==}
engines: {node: '>=10'}
- caniuse-lite@1.0.30001707:
- resolution: {integrity: sha512-3qtRjw/HQSMlDWf+X79N206fepf4SOOU6SQLMaq/0KkZLmSjPxAkBOQQ+FxbHKfHmYLZFfdWsO3KA90ceHPSnw==}
+ caniuse-lite@1.0.30001797:
+ resolution: {integrity: sha512-l8xKG+gwAIExZGl9FrF7KUwuOmk6wbEPC9Xoy/RtnWv1XG0Q4LFlagaLpUv3Kiza3W/wm27zy0yWJEieYKAP6w==}
chalk@4.1.2:
resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
@@ -922,8 +918,8 @@ packages:
resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==}
engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'}
- collect-v8-coverage@1.0.2:
- resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==}
+ collect-v8-coverage@1.0.3:
+ resolution: {integrity: sha512-1L5aqIkwPfiodaMgQunkF1zRhNqifHBmtbbbxcr6yVxxBnliw4TDOW6NxpO8DJLgJ16OT+Y4ztZqP6p/FtXnAw==}
color-convert@2.0.1:
resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
@@ -939,6 +935,9 @@ packages:
concat-map@0.0.1:
resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
+ confbox@0.1.8:
+ resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==}
+
consola@3.4.2:
resolution: {integrity: sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==}
engines: {node: ^14.18.0 || >=16.10.0}
@@ -958,8 +957,8 @@ packages:
resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==}
engines: {node: '>= 8'}
- debug@4.4.0:
- resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==}
+ debug@4.4.3:
+ resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==}
engines: {node: '>=6.0'}
peerDependencies:
supports-color: '*'
@@ -967,8 +966,8 @@ packages:
supports-color:
optional: true
- dedent@1.5.3:
- resolution: {integrity: sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==}
+ dedent@1.7.2:
+ resolution: {integrity: sha512-WzMx3mW98SN+zn3hgemf4OzdmyNhhhKz5Ay0pUfQiMQ3e1g+xmTJWp/pKdwKVXhdSkAEGIIzqeuWrL3mV/AXbA==}
peerDependencies:
babel-plugin-macros: ^3.1.0
peerDependenciesMeta:
@@ -987,24 +986,16 @@ packages:
resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
- diff@4.0.2:
- resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==}
+ diff@4.0.4:
+ resolution: {integrity: sha512-X07nttJQkwkfKfvTPG/KSnE2OMdcUCao6+eXF3wmnIQRn2aPAHH3VxDbDOdegkd6JbPsXqShpvEOHfAT+nCNwQ==}
engines: {node: '>=0.3.1'}
- dotenv@16.4.7:
- resolution: {integrity: sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==}
+ dotenv@16.6.1:
+ resolution: {integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==}
engines: {node: '>=12'}
- eastasianwidth@0.2.0:
- resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
-
- ejs@3.1.10:
- resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==}
- engines: {node: '>=0.10.0'}
- hasBin: true
-
- electron-to-chromium@1.5.128:
- resolution: {integrity: sha512-bo1A4HH/NS522Ws0QNFIzyPcyUUNV/yyy70Ho1xqfGYzPUme2F/xr4tlEOuM6/A538U1vDA7a4XfCd1CKRegKQ==}
+ electron-to-chromium@1.5.371:
+ resolution: {integrity: sha512-e9htk9mAYL6AzmkEhSvVVw7IWGSBJ/Bqdn2eRyRLrj1g6sncN4WbFt5qnILYoCktktr45pyjIrOiRvBThQ808w==}
emittery@0.13.1:
resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==}
@@ -1013,14 +1004,15 @@ packages:
emoji-regex@8.0.0:
resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
- emoji-regex@9.2.2:
- resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
+ error-ex@1.3.4:
+ resolution: {integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==}
- error-ex@1.3.2:
- resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==}
+ es-errors@1.3.0:
+ resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
+ engines: {node: '>= 0.4'}
- esbuild@0.25.1:
- resolution: {integrity: sha512-BGO5LtrGC7vxnqucAe/rmvKdJllfGaYWdyABvyMoXQlfYMb2bbRuReWR5tEGE//4LcNJj9XrkovTqNYRFZHAMQ==}
+ esbuild@0.27.7:
+ resolution: {integrity: sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w==}
engines: {node: '>=18'}
hasBin: true
@@ -1037,9 +1029,9 @@ packages:
engines: {node: '>=4'}
hasBin: true
- eventsource-parser@3.0.3:
- resolution: {integrity: sha512-nVpZkTMM9rF6AQ9gPJpFsNAMt48wIzB5TQgiTLdHiuO8XEDhUgZEhqKlZWXbIzo9VmJ/HvysHqEaVeD5v9TPvA==}
- engines: {node: '>=20.0.0'}
+ eventsource-parser@3.1.0:
+ resolution: {integrity: sha512-kJezFj9YFAMLeORyi7aCLxLbD5/qWMQnoMVlVPyHIll7lgRJCc3JVln9Vgl9nwQi0YkMnhdGTMNn7CkRRAptMg==}
+ engines: {node: '>=18.0.0'}
execa@5.1.1:
resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==}
@@ -1059,17 +1051,15 @@ packages:
fb-watchman@2.0.2:
resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==}
- fdir@6.4.3:
- resolution: {integrity: sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==}
+ fdir@6.5.0:
+ resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==}
+ engines: {node: '>=12.0.0'}
peerDependencies:
picomatch: ^3 || ^4
peerDependenciesMeta:
picomatch:
optional: true
- filelist@1.0.4:
- resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==}
-
fill-range@7.1.1:
resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
engines: {node: '>=8'}
@@ -1078,9 +1068,8 @@ packages:
resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==}
engines: {node: '>=8'}
- foreground-child@3.3.1:
- resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==}
- engines: {node: '>=14'}
+ fix-dts-default-cjs-exports@1.0.1:
+ resolution: {integrity: sha512-pVIECanWFC61Hzl2+oOCtoJ3F17kglZC/6N94eRWycFgBH35hHx0Li604ZIzhseh97mf2p0cv7vVrOZGoqhlEg==}
fs.realpath@1.0.0:
resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
@@ -1113,22 +1102,18 @@ packages:
resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
engines: {node: '>= 6'}
- glob@10.5.0:
- resolution: {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
- hasBin: true
-
glob@7.2.3:
resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
- deprecated: Glob versions prior to v9 are no longer supported
-
- globals@11.12.0:
- resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
- engines: {node: '>=4'}
+ 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
graceful-fs@4.2.11:
resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
+ handlebars@4.7.9:
+ resolution: {integrity: sha512-4E71E0rpOaQuJR2A3xDZ+GM1HyWYv1clR58tC8emQNeQe3RH7MAzSbat+V0wG78LQBo6m6bzSG/L4pBuCsgnUQ==}
+ engines: {node: '>=0.4.7'}
+ hasBin: true
+
has-flag@3.0.0:
resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==}
engines: {node: '>=4'}
@@ -1137,8 +1122,8 @@ packages:
resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
engines: {node: '>=8'}
- hasown@2.0.2:
- resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
+ hasown@2.0.4:
+ resolution: {integrity: sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==}
engines: {node: '>= 0.4'}
html-escaper@2.0.2:
@@ -1174,8 +1159,8 @@ packages:
resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
engines: {node: '>=8'}
- is-core-module@2.16.1:
- resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==}
+ is-core-module@2.16.2:
+ resolution: {integrity: sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==}
engines: {node: '>= 0.4'}
is-extglob@2.1.1:
@@ -1225,18 +1210,10 @@ packages:
resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==}
engines: {node: '>=10'}
- istanbul-reports@3.1.7:
- resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==}
+ istanbul-reports@3.2.0:
+ resolution: {integrity: sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==}
engines: {node: '>=8'}
- jackspeak@3.4.3:
- resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==}
-
- jake@10.9.2:
- resolution: {integrity: sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==}
- engines: {node: '>=10'}
- hasBin: true
-
jest-changed-files@29.7.0:
resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -1373,8 +1350,8 @@ packages:
js-tokens@4.0.0:
resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
- js-yaml@3.14.1:
- resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==}
+ js-yaml@3.14.2:
+ resolution: {integrity: sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==}
hasBin: true
jsesc@3.1.0:
@@ -1419,15 +1396,12 @@ packages:
lodash.memoize@4.1.2:
resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==}
- lodash.sortby@4.7.0:
- resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==}
-
- lru-cache@10.4.3:
- resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==}
-
lru-cache@5.1.1:
resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
+ magic-string@0.30.21:
+ resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==}
+
make-dir@4.0.0:
resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==}
engines: {node: '>=10'}
@@ -1449,20 +1423,18 @@ packages:
resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
engines: {node: '>=6'}
+ minimatch@10.2.5:
+ resolution: {integrity: sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==}
+ engines: {node: 18 || 20 || >=22}
+
minimatch@3.1.5:
resolution: {integrity: sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==}
- minimatch@5.1.9:
- resolution: {integrity: sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==}
- engines: {node: '>=10'}
+ minimist@1.2.8:
+ resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
- minimatch@9.0.9:
- resolution: {integrity: sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==}
- engines: {node: '>=16 || 14 >=14.17'}
-
- minipass@7.1.2:
- resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==}
- engines: {node: '>=16 || 14 >=14.17'}
+ mlly@1.8.2:
+ resolution: {integrity: sha512-d+ObxMQFmbt10sretNDytwt85VrbkhhUA/JBGm1MPaWJ65Cl4wOgLaB1NYvJSZ0Ef03MMEU/0xpPMXUIQ29UfA==}
ms@2.1.3:
resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
@@ -1473,14 +1445,18 @@ packages:
natural-compare@1.4.0:
resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
+ neo-async@2.6.2:
+ resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==}
+
node-int64@0.4.0:
resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==}
- node-releases@2.0.19:
- resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==}
+ node-releases@2.0.47:
+ resolution: {integrity: sha512-Uzmd6LXpouKo8EUK68IjH4+E01w/hXyV3R3g/geCJo+rXLNfh1xucB+LOzYEOQPSiUK3h/xZf0cQGcSsmyL2Og==}
+ engines: {node: '>=18'}
- nodemon@3.1.9:
- resolution: {integrity: sha512-hdr1oIb2p6ZSxu3PB2JWWYS7ZQ0qvaZsc3hK8DR8f02kRzc8rjYmxAIvdz+aYC+8F2IjNaB7HMcSDg8nQpJxyg==}
+ nodemon@3.1.14:
+ resolution: {integrity: sha512-jakjZi93UtB3jHMWsXL68FXSAosbLfY0In5gtKq3niLSkrWznrVBzXFNOEMJUfc9+Ke7SHWoAZsiMkNP3vq6Jw==}
engines: {node: '>=10'}
hasBin: true
@@ -1519,9 +1495,6 @@ packages:
resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==}
engines: {node: '>=6'}
- package-json-from-dist@1.0.1:
- resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==}
-
parse-json@5.2.0:
resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==}
engines: {node: '>=8'}
@@ -1544,9 +1517,8 @@ packages:
path-parse@1.0.7:
resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
- path-scurry@1.11.1:
- resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==}
- engines: {node: '>=16 || 14 >=14.18'}
+ pathe@2.0.3:
+ resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==}
picocolors@1.1.1:
resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
@@ -1555,8 +1527,8 @@ packages:
resolution: {integrity: sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==}
engines: {node: '>=8.6'}
- picomatch@4.0.2:
- resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==}
+ picomatch@4.0.4:
+ resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==}
engines: {node: '>=12'}
pirates@4.0.7:
@@ -1567,6 +1539,9 @@ packages:
resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==}
engines: {node: '>=8'}
+ pkg-types@1.3.1:
+ resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==}
+
postcss-load-config@6.0.1:
resolution: {integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==}
engines: {node: '>= 18'}
@@ -1596,10 +1571,6 @@ packages:
pstree.remy@1.1.8:
resolution: {integrity: sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==}
- punycode@2.3.1:
- resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
- engines: {node: '>=6'}
-
pure-rand@6.1.0:
resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==}
@@ -1630,13 +1601,13 @@ packages:
resolution: {integrity: sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==}
engines: {node: '>=10'}
- resolve@1.22.10:
- resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==}
+ resolve@1.22.12:
+ resolution: {integrity: sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==}
engines: {node: '>= 0.4'}
hasBin: true
- rollup@4.60.4:
- resolution: {integrity: sha512-WHeFSbZYsPu3+bLoNRUuAO+wavNlocOPf3wSHTP7hcFKVnJeWsYlCDbr3mTS14FCizf9ccIxXA8sGL8zKeQN3g==}
+ rollup@4.61.1:
+ resolution: {integrity: sha512-I4KW6iuRpuu2uHBLraZ1wNZe0DP7lnRha+VJ9tNaYVaVgKhW0aI3h4RYnoRPeql0flHm/Co55b7snEDcOfOJrA==}
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
hasBin: true
@@ -1644,8 +1615,8 @@ packages:
resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
hasBin: true
- semver@7.7.1:
- resolution: {integrity: sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==}
+ semver@7.8.4:
+ resolution: {integrity: sha512-rUCObTnP32Q08R2uuIrt7r9PlEonuTmtuXYcW6s5kjdlj3xbnwe+21yXptAUYcMAABLkYYTtnmzb3w3EDZfueA==}
engines: {node: '>=10'}
hasBin: true
@@ -1660,10 +1631,6 @@ packages:
signal-exit@3.0.7:
resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
- signal-exit@4.1.0:
- resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
- engines: {node: '>=14'}
-
simple-update-notifier@2.0.0:
resolution: {integrity: sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==}
engines: {node: '>=10'}
@@ -1682,9 +1649,9 @@ packages:
resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
engines: {node: '>=0.10.0'}
- source-map@0.8.0-beta.0:
- resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==}
- engines: {node: '>= 8'}
+ source-map@0.7.6:
+ resolution: {integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==}
+ engines: {node: '>= 12'}
sprintf-js@1.0.3:
resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
@@ -1701,18 +1668,10 @@ packages:
resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
engines: {node: '>=8'}
- string-width@5.1.2:
- resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
- engines: {node: '>=12'}
-
strip-ansi@6.0.1:
resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
engines: {node: '>=8'}
- strip-ansi@7.1.0:
- resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==}
- engines: {node: '>=12'}
-
strip-bom@4.0.0:
resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==}
engines: {node: '>=8'}
@@ -1725,8 +1684,8 @@ packages:
resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
engines: {node: '>=8'}
- sucrase@3.35.0:
- resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==}
+ sucrase@3.35.1:
+ resolution: {integrity: sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==}
engines: {node: '>=16 || 14 >=14.17'}
hasBin: true
@@ -1760,8 +1719,8 @@ packages:
tinyexec@0.3.2:
resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==}
- tinyglobby@0.2.12:
- resolution: {integrity: sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==}
+ tinyglobby@0.2.17:
+ resolution: {integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==}
engines: {node: '>=12.0.0'}
tmpl@1.0.5:
@@ -1775,9 +1734,6 @@ packages:
resolution: {integrity: sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==}
hasBin: true
- tr46@1.0.1:
- resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==}
-
tree-kill@1.2.2:
resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==}
hasBin: true
@@ -1785,18 +1741,19 @@ packages:
ts-interface-checker@0.1.13:
resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
- ts-jest@29.3.0:
- resolution: {integrity: sha512-4bfGBX7Gd1Aqz3SyeDS9O276wEU/BInZxskPrbhZLyv+c1wskDCqDFMJQJLWrIr/fKoAH4GE5dKUlrdyvo+39A==}
+ ts-jest@29.4.11:
+ resolution: {integrity: sha512-IrFl7l9AuB/qrNw5quqvAv/hmKMb8dhWOH4jQOGo0Oq8tCeo1O86/iTFG1FaRimgUkF13l4PcepO8ATFT6Ns4g==}
engines: {node: ^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0}
hasBin: true
peerDependencies:
'@babel/core': '>=7.0.0-beta.0 <8'
- '@jest/transform': ^29.0.0
- '@jest/types': ^29.0.0
- babel-jest: ^29.0.0
+ '@jest/transform': ^29.0.0 || ^30.0.0
+ '@jest/types': ^29.0.0 || ^30.0.0
+ babel-jest: ^29.0.0 || ^30.0.0
esbuild: '*'
- jest: ^29.0.0
- typescript: '>=4.3 <6'
+ jest: ^29.0.0 || ^30.0.0
+ jest-util: ^29.0.0 || ^30.0.0
+ typescript: '>=4.3 <7'
peerDependenciesMeta:
'@babel/core':
optional: true
@@ -1808,6 +1765,8 @@ packages:
optional: true
esbuild:
optional: true
+ jest-util:
+ optional: true
ts-node@10.9.2:
resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==}
@@ -1823,8 +1782,8 @@ packages:
'@swc/wasm':
optional: true
- tsup@8.4.0:
- resolution: {integrity: sha512-b+eZbPCjz10fRryaAA7C8xlIHnf8VnsaRqydheLIqwG/Mcpfk8Z5zp3HayX7GaTygkigHl5cBUs+IhcySiIexQ==}
+ tsup@8.5.1:
+ resolution: {integrity: sha512-xtgkqwdhpKWr3tKPmCkvYmS9xnQK3m3XgxZHwSUjvfTjp7YfXe5tT3GgWi0F2N+ZSMsOeWeZFh7ZZFg5iPhing==}
engines: {node: '>=18'}
hasBin: true
peerDependencies:
@@ -1850,23 +1809,31 @@ packages:
resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==}
engines: {node: '>=10'}
- type-fest@4.38.0:
- resolution: {integrity: sha512-2dBz5D5ycHIoliLYLi0Q2V7KRaDlH0uWIvmk7TYlAg5slqwiPv1ezJdZm1QEM0xgk29oYWMCbIG7E6gHpvChlg==}
+ type-fest@4.41.0:
+ resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==}
engines: {node: '>=16'}
- typescript@5.8.2:
- resolution: {integrity: sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==}
+ typescript@5.9.3:
+ resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==}
engines: {node: '>=14.17'}
hasBin: true
+ ufo@1.6.4:
+ resolution: {integrity: sha512-JFNbkD1Svwe0KvGi8GOeLcP4kAWQ609twvCdcHxq1oSL8svv39ZuSvajcD8B+5D0eL4+s1Is2D/O6KN3qcTeRA==}
+
+ uglify-js@3.19.3:
+ resolution: {integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==}
+ engines: {node: '>=0.8.0'}
+ hasBin: true
+
undefsafe@2.0.5:
resolution: {integrity: sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==}
undici-types@5.26.5:
resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==}
- update-browserslist-db@1.1.3:
- resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==}
+ update-browserslist-db@1.2.3:
+ resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==}
hasBin: true
peerDependencies:
browserslist: '>= 4.21.0'
@@ -1881,25 +1848,18 @@ packages:
walker@1.0.8:
resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==}
- webidl-conversions@4.0.2:
- resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==}
-
- whatwg-url@7.1.0:
- resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==}
-
which@2.0.2:
resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
engines: {node: '>= 8'}
hasBin: true
+ wordwrap@1.0.0:
+ resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==}
+
wrap-ansi@7.0.0:
resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
engines: {node: '>=10'}
- wrap-ansi@8.1.0:
- resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==}
- engines: {node: '>=12'}
-
wrappy@1.0.2:
resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
@@ -1930,253 +1890,245 @@ packages:
resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
engines: {node: '>=10'}
- zod-to-json-schema@3.24.5:
- resolution: {integrity: sha512-/AuWwMP+YqiPbsJx5D6TfgRTc4kTLjsh5SOcd4bLsfUg2RcEXrFMJl1DGgdHy2aCfsIA/cr/1JM0xcB2GZji8g==}
- peerDependencies:
- zod: ^3.24.1
-
zod@3.25.76:
resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==}
snapshots:
- '@ai-sdk/anthropic@2.0.0(zod@3.25.76)':
+ '@ai-sdk/anthropic@3.0.82(zod@3.25.76)':
dependencies:
- '@ai-sdk/provider': 2.0.0
- '@ai-sdk/provider-utils': 3.0.0(zod@3.25.76)
+ '@ai-sdk/provider': 3.0.10
+ '@ai-sdk/provider-utils': 4.0.27(zod@3.25.76)
zod: 3.25.76
- '@ai-sdk/cohere@2.0.0(zod@3.25.76)':
+ '@ai-sdk/cohere@3.0.36(zod@3.25.76)':
dependencies:
- '@ai-sdk/provider': 2.0.0
- '@ai-sdk/provider-utils': 3.0.0(zod@3.25.76)
+ '@ai-sdk/provider': 3.0.10
+ '@ai-sdk/provider-utils': 4.0.27(zod@3.25.76)
zod: 3.25.76
- '@ai-sdk/gateway@1.0.0(zod@3.25.76)':
+ '@ai-sdk/gateway@3.0.127(zod@3.25.76)':
dependencies:
- '@ai-sdk/provider': 2.0.0
- '@ai-sdk/provider-utils': 3.0.0(zod@3.25.76)
+ '@ai-sdk/provider': 3.0.10
+ '@ai-sdk/provider-utils': 4.0.27(zod@3.25.76)
+ '@vercel/oidc': 3.2.0
zod: 3.25.76
- '@ai-sdk/google@2.0.1(zod@3.25.76)':
+ '@ai-sdk/google@3.0.80(zod@3.25.76)':
dependencies:
- '@ai-sdk/provider': 2.0.0
- '@ai-sdk/provider-utils': 3.0.0(zod@3.25.76)
+ '@ai-sdk/provider': 3.0.10
+ '@ai-sdk/provider-utils': 4.0.27(zod@3.25.76)
zod: 3.25.76
- '@ai-sdk/groq@2.0.1(zod@3.25.76)':
+ '@ai-sdk/groq@3.0.39(zod@3.25.76)':
dependencies:
- '@ai-sdk/provider': 2.0.0
- '@ai-sdk/provider-utils': 3.0.0(zod@3.25.76)
+ '@ai-sdk/provider': 3.0.10
+ '@ai-sdk/provider-utils': 4.0.27(zod@3.25.76)
zod: 3.25.76
- '@ai-sdk/openai@2.0.2(zod@3.25.76)':
+ '@ai-sdk/openai@3.0.69(zod@3.25.76)':
dependencies:
- '@ai-sdk/provider': 2.0.0
- '@ai-sdk/provider-utils': 3.0.0(zod@3.25.76)
+ '@ai-sdk/provider': 3.0.10
+ '@ai-sdk/provider-utils': 4.0.27(zod@3.25.76)
zod: 3.25.76
- '@ai-sdk/provider-utils@3.0.0(zod@3.25.76)':
+ '@ai-sdk/provider-utils@4.0.27(zod@3.25.76)':
dependencies:
- '@ai-sdk/provider': 2.0.0
- '@standard-schema/spec': 1.0.0
- eventsource-parser: 3.0.3
+ '@ai-sdk/provider': 3.0.10
+ '@standard-schema/spec': 1.1.0
+ eventsource-parser: 3.1.0
zod: 3.25.76
- zod-to-json-schema: 3.24.5(zod@3.25.76)
- '@ai-sdk/provider@2.0.0':
+ '@ai-sdk/provider@3.0.10':
dependencies:
json-schema: 0.4.0
- '@ampproject/remapping@2.3.0':
+ '@babel/code-frame@7.29.7':
dependencies:
- '@jridgewell/gen-mapping': 0.3.8
- '@jridgewell/trace-mapping': 0.3.25
-
- '@babel/code-frame@7.26.2':
- dependencies:
- '@babel/helper-validator-identifier': 7.25.9
+ '@babel/helper-validator-identifier': 7.29.7
js-tokens: 4.0.0
picocolors: 1.1.1
- '@babel/compat-data@7.26.8': {}
+ '@babel/compat-data@7.29.7': {}
- '@babel/core@7.26.10':
+ '@babel/core@7.29.7':
dependencies:
- '@ampproject/remapping': 2.3.0
- '@babel/code-frame': 7.26.2
- '@babel/generator': 7.27.0
- '@babel/helper-compilation-targets': 7.27.0
- '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.10)
- '@babel/helpers': 7.27.0
- '@babel/parser': 7.27.0
- '@babel/template': 7.27.0
- '@babel/traverse': 7.27.0
- '@babel/types': 7.27.0
+ '@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/core@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.4.0(supports-color@5.5.0)
+ debug: 4.4.3(supports-color@5.5.0)
gensync: 1.0.0-beta.2
json5: 2.2.3
semver: 6.3.1
transitivePeerDependencies:
- supports-color
- '@babel/generator@7.27.0':
+ '@babel/generator@7.29.7':
dependencies:
- '@babel/parser': 7.27.0
- '@babel/types': 7.27.0
- '@jridgewell/gen-mapping': 0.3.8
- '@jridgewell/trace-mapping': 0.3.25
+ '@babel/parser': 7.29.7
+ '@babel/types': 7.29.7
+ '@jridgewell/gen-mapping': 0.3.13
+ '@jridgewell/trace-mapping': 0.3.31
jsesc: 3.1.0
- '@babel/helper-compilation-targets@7.27.0':
+ '@babel/helper-compilation-targets@7.29.7':
dependencies:
- '@babel/compat-data': 7.26.8
- '@babel/helper-validator-option': 7.25.9
- browserslist: 4.24.4
+ '@babel/compat-data': 7.29.7
+ '@babel/helper-validator-option': 7.29.7
+ browserslist: 4.28.2
lru-cache: 5.1.1
semver: 6.3.1
- '@babel/helper-module-imports@7.25.9':
+ '@babel/helper-globals@7.29.7': {}
+
+ '@babel/helper-module-imports@7.29.7':
dependencies:
- '@babel/traverse': 7.27.0
- '@babel/types': 7.27.0
+ '@babel/traverse': 7.29.7
+ '@babel/types': 7.29.7
transitivePeerDependencies:
- supports-color
- '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.10)':
+ '@babel/helper-module-transforms@7.29.7(@babel/core@7.29.7)':
dependencies:
- '@babel/core': 7.26.10
- '@babel/helper-module-imports': 7.25.9
- '@babel/helper-validator-identifier': 7.25.9
- '@babel/traverse': 7.27.0
+ '@babel/core': 7.29.7
+ '@babel/helper-module-imports': 7.29.7
+ '@babel/helper-validator-identifier': 7.29.7
+ '@babel/traverse': 7.29.7
transitivePeerDependencies:
- supports-color
- '@babel/helper-plugin-utils@7.26.5': {}
+ '@babel/helper-plugin-utils@7.29.7': {}
- '@babel/helper-string-parser@7.25.9': {}
+ '@babel/helper-string-parser@7.29.7': {}
- '@babel/helper-validator-identifier@7.25.9': {}
+ '@babel/helper-validator-identifier@7.29.7': {}
- '@babel/helper-validator-option@7.25.9': {}
+ '@babel/helper-validator-option@7.29.7': {}
- '@babel/helpers@7.27.0':
+ '@babel/helpers@7.29.7':
dependencies:
- '@babel/template': 7.27.0
- '@babel/types': 7.27.0
+ '@babel/template': 7.29.7
+ '@babel/types': 7.29.7
- '@babel/parser@7.27.0':
+ '@babel/parser@7.29.7':
dependencies:
- '@babel/types': 7.27.0
+ '@babel/types': 7.29.7
- '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.26.10)':
+ '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.29.7)':
dependencies:
- '@babel/core': 7.26.10
- '@babel/helper-plugin-utils': 7.26.5
+ '@babel/core': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
- '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.26.10)':
+ '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.29.7)':
dependencies:
- '@babel/core': 7.26.10
- '@babel/helper-plugin-utils': 7.26.5
+ '@babel/core': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
- '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.26.10)':
+ '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.29.7)':
dependencies:
- '@babel/core': 7.26.10
- '@babel/helper-plugin-utils': 7.26.5
+ '@babel/core': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
- '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.26.10)':
+ '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.29.7)':
dependencies:
- '@babel/core': 7.26.10
- '@babel/helper-plugin-utils': 7.26.5
+ '@babel/core': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
- '@babel/plugin-syntax-import-attributes@7.26.0(@babel/core@7.26.10)':
+ '@babel/plugin-syntax-import-attributes@7.29.7(@babel/core@7.29.7)':
dependencies:
- '@babel/core': 7.26.10
- '@babel/helper-plugin-utils': 7.26.5
+ '@babel/core': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
- '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.26.10)':
+ '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.29.7)':
dependencies:
- '@babel/core': 7.26.10
- '@babel/helper-plugin-utils': 7.26.5
+ '@babel/core': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
- '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.26.10)':
+ '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.29.7)':
dependencies:
- '@babel/core': 7.26.10
- '@babel/helper-plugin-utils': 7.26.5
+ '@babel/core': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
- '@babel/plugin-syntax-jsx@7.25.9(@babel/core@7.26.10)':
+ '@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.7)':
dependencies:
- '@babel/core': 7.26.10
- '@babel/helper-plugin-utils': 7.26.5
+ '@babel/core': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
- '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.26.10)':
+ '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.29.7)':
dependencies:
- '@babel/core': 7.26.10
- '@babel/helper-plugin-utils': 7.26.5
+ '@babel/core': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
- '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.26.10)':
+ '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.29.7)':
dependencies:
- '@babel/core': 7.26.10
- '@babel/helper-plugin-utils': 7.26.5
+ '@babel/core': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
- '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.26.10)':
+ '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.29.7)':
dependencies:
- '@babel/core': 7.26.10
- '@babel/helper-plugin-utils': 7.26.5
+ '@babel/core': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
- '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.26.10)':
+ '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.29.7)':
dependencies:
- '@babel/core': 7.26.10
- '@babel/helper-plugin-utils': 7.26.5
+ '@babel/core': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
- '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.26.10)':
+ '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.29.7)':
dependencies:
- '@babel/core': 7.26.10
- '@babel/helper-plugin-utils': 7.26.5
+ '@babel/core': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
- '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.26.10)':
+ '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.29.7)':
dependencies:
- '@babel/core': 7.26.10
- '@babel/helper-plugin-utils': 7.26.5
+ '@babel/core': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
- '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.26.10)':
+ '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.29.7)':
dependencies:
- '@babel/core': 7.26.10
- '@babel/helper-plugin-utils': 7.26.5
+ '@babel/core': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
- '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.26.10)':
+ '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.29.7)':
dependencies:
- '@babel/core': 7.26.10
- '@babel/helper-plugin-utils': 7.26.5
+ '@babel/core': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
- '@babel/plugin-syntax-typescript@7.25.9(@babel/core@7.26.10)':
+ '@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.29.7)':
dependencies:
- '@babel/core': 7.26.10
- '@babel/helper-plugin-utils': 7.26.5
+ '@babel/core': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
- '@babel/template@7.27.0':
+ '@babel/template@7.29.7':
dependencies:
- '@babel/code-frame': 7.26.2
- '@babel/parser': 7.27.0
- '@babel/types': 7.27.0
+ '@babel/code-frame': 7.29.7
+ '@babel/parser': 7.29.7
+ '@babel/types': 7.29.7
- '@babel/traverse@7.27.0':
+ '@babel/traverse@7.29.7':
dependencies:
- '@babel/code-frame': 7.26.2
- '@babel/generator': 7.27.0
- '@babel/parser': 7.27.0
- '@babel/template': 7.27.0
- '@babel/types': 7.27.0
- debug: 4.4.0(supports-color@5.5.0)
- globals: 11.12.0
+ '@babel/code-frame': 7.29.7
+ '@babel/generator': 7.29.7
+ '@babel/helper-globals': 7.29.7
+ '@babel/parser': 7.29.7
+ '@babel/template': 7.29.7
+ '@babel/types': 7.29.7
+ debug: 4.4.3(supports-color@5.5.0)
transitivePeerDependencies:
- supports-color
- '@babel/types@7.27.0':
+ '@babel/types@7.29.7':
dependencies:
- '@babel/helper-string-parser': 7.25.9
- '@babel/helper-validator-identifier': 7.25.9
+ '@babel/helper-string-parser': 7.29.7
+ '@babel/helper-validator-identifier': 7.29.7
'@bcoe/v8-coverage@0.2.3': {}
@@ -2190,124 +2142,118 @@ snapshots:
dependencies:
'@edge-runtime/primitives': 4.1.0
- '@esbuild/aix-ppc64@0.25.1':
+ '@esbuild/aix-ppc64@0.27.7':
optional: true
- '@esbuild/android-arm64@0.25.1':
+ '@esbuild/android-arm64@0.27.7':
optional: true
- '@esbuild/android-arm@0.25.1':
+ '@esbuild/android-arm@0.27.7':
optional: true
- '@esbuild/android-x64@0.25.1':
+ '@esbuild/android-x64@0.27.7':
optional: true
- '@esbuild/darwin-arm64@0.25.1':
+ '@esbuild/darwin-arm64@0.27.7':
optional: true
- '@esbuild/darwin-x64@0.25.1':
+ '@esbuild/darwin-x64@0.27.7':
optional: true
- '@esbuild/freebsd-arm64@0.25.1':
+ '@esbuild/freebsd-arm64@0.27.7':
optional: true
- '@esbuild/freebsd-x64@0.25.1':
+ '@esbuild/freebsd-x64@0.27.7':
optional: true
- '@esbuild/linux-arm64@0.25.1':
+ '@esbuild/linux-arm64@0.27.7':
optional: true
- '@esbuild/linux-arm@0.25.1':
+ '@esbuild/linux-arm@0.27.7':
optional: true
- '@esbuild/linux-ia32@0.25.1':
+ '@esbuild/linux-ia32@0.27.7':
optional: true
- '@esbuild/linux-loong64@0.25.1':
+ '@esbuild/linux-loong64@0.27.7':
optional: true
- '@esbuild/linux-mips64el@0.25.1':
+ '@esbuild/linux-mips64el@0.27.7':
optional: true
- '@esbuild/linux-ppc64@0.25.1':
+ '@esbuild/linux-ppc64@0.27.7':
optional: true
- '@esbuild/linux-riscv64@0.25.1':
+ '@esbuild/linux-riscv64@0.27.7':
optional: true
- '@esbuild/linux-s390x@0.25.1':
+ '@esbuild/linux-s390x@0.27.7':
optional: true
- '@esbuild/linux-x64@0.25.1':
+ '@esbuild/linux-x64@0.27.7':
optional: true
- '@esbuild/netbsd-arm64@0.25.1':
+ '@esbuild/netbsd-arm64@0.27.7':
optional: true
- '@esbuild/netbsd-x64@0.25.1':
+ '@esbuild/netbsd-x64@0.27.7':
optional: true
- '@esbuild/openbsd-arm64@0.25.1':
+ '@esbuild/openbsd-arm64@0.27.7':
optional: true
- '@esbuild/openbsd-x64@0.25.1':
+ '@esbuild/openbsd-x64@0.27.7':
optional: true
- '@esbuild/sunos-x64@0.25.1':
+ '@esbuild/openharmony-arm64@0.27.7':
optional: true
- '@esbuild/win32-arm64@0.25.1':
+ '@esbuild/sunos-x64@0.27.7':
optional: true
- '@esbuild/win32-ia32@0.25.1':
+ '@esbuild/win32-arm64@0.27.7':
optional: true
- '@esbuild/win32-x64@0.25.1':
+ '@esbuild/win32-ia32@0.27.7':
optional: true
- '@isaacs/cliui@8.0.2':
- dependencies:
- string-width: 5.1.2
- string-width-cjs: string-width@4.2.3
- strip-ansi: 7.1.0
- strip-ansi-cjs: strip-ansi@6.0.1
- wrap-ansi: 8.1.0
- wrap-ansi-cjs: wrap-ansi@7.0.0
+ '@esbuild/win32-x64@0.27.7':
+ optional: true
'@istanbuljs/load-nyc-config@1.1.0':
dependencies:
camelcase: 5.3.1
find-up: 4.1.0
get-package-type: 0.1.0
- js-yaml: 3.14.1
+ js-yaml: 3.14.2
resolve-from: 5.0.0
- '@istanbuljs/schema@0.1.3': {}
+ '@istanbuljs/schema@0.1.6': {}
'@jest/console@29.7.0':
dependencies:
'@jest/types': 29.6.3
- '@types/node': 18.19.84
+ '@types/node': 18.19.130
chalk: 4.1.2
jest-message-util: 29.7.0
jest-util: 29.7.0
slash: 3.0.0
- '@jest/core@29.7.0(ts-node@10.9.2(@types/node@18.19.84)(typescript@5.8.2))':
+ '@jest/core@29.7.0(ts-node@10.9.2(@types/node@18.19.130)(typescript@5.9.3))':
dependencies:
'@jest/console': 29.7.0
'@jest/reporters': 29.7.0
'@jest/test-result': 29.7.0
'@jest/transform': 29.7.0
'@jest/types': 29.6.3
- '@types/node': 18.19.84
+ '@types/node': 18.19.130
ansi-escapes: 4.3.2
chalk: 4.1.2
ci-info: 3.9.0
exit: 0.1.2
graceful-fs: 4.2.11
jest-changed-files: 29.7.0
- jest-config: 29.7.0(@types/node@18.19.84)(ts-node@10.9.2(@types/node@18.19.84)(typescript@5.8.2))
+ jest-config: 29.7.0(@types/node@18.19.130)(ts-node@10.9.2(@types/node@18.19.130)(typescript@5.9.3))
jest-haste-map: 29.7.0
jest-message-util: 29.7.0
jest-regex-util: 29.6.3
@@ -2332,7 +2278,7 @@ snapshots:
dependencies:
'@jest/fake-timers': 29.7.0
'@jest/types': 29.6.3
- '@types/node': 18.19.84
+ '@types/node': 18.19.130
jest-mock: 29.7.0
'@jest/expect-utils@29.7.0':
@@ -2350,7 +2296,7 @@ snapshots:
dependencies:
'@jest/types': 29.6.3
'@sinonjs/fake-timers': 10.3.0
- '@types/node': 18.19.84
+ '@types/node': 18.19.130
jest-message-util: 29.7.0
jest-mock: 29.7.0
jest-util: 29.7.0
@@ -2371,10 +2317,10 @@ snapshots:
'@jest/test-result': 29.7.0
'@jest/transform': 29.7.0
'@jest/types': 29.6.3
- '@jridgewell/trace-mapping': 0.3.25
- '@types/node': 18.19.84
+ '@jridgewell/trace-mapping': 0.3.31
+ '@types/node': 18.19.130
chalk: 4.1.2
- collect-v8-coverage: 1.0.2
+ collect-v8-coverage: 1.0.3
exit: 0.1.2
glob: 7.2.3
graceful-fs: 4.2.11
@@ -2382,7 +2328,7 @@ snapshots:
istanbul-lib-instrument: 6.0.3
istanbul-lib-report: 3.0.1
istanbul-lib-source-maps: 4.0.1
- istanbul-reports: 3.1.7
+ istanbul-reports: 3.2.0
jest-message-util: 29.7.0
jest-util: 29.7.0
jest-worker: 29.7.0
@@ -2395,11 +2341,11 @@ snapshots:
'@jest/schemas@29.6.3':
dependencies:
- '@sinclair/typebox': 0.27.8
+ '@sinclair/typebox': 0.27.10
'@jest/source-map@29.6.3':
dependencies:
- '@jridgewell/trace-mapping': 0.3.25
+ '@jridgewell/trace-mapping': 0.3.31
callsites: 3.1.0
graceful-fs: 4.2.11
@@ -2408,7 +2354,7 @@ snapshots:
'@jest/console': 29.7.0
'@jest/types': 29.6.3
'@types/istanbul-lib-coverage': 2.0.6
- collect-v8-coverage: 1.0.2
+ collect-v8-coverage: 1.0.3
'@jest/test-sequencer@29.7.0':
dependencies:
@@ -2419,9 +2365,9 @@ snapshots:
'@jest/transform@29.7.0':
dependencies:
- '@babel/core': 7.26.10
+ '@babel/core': 7.29.7
'@jest/types': 29.6.3
- '@jridgewell/trace-mapping': 0.3.25
+ '@jridgewell/trace-mapping': 0.3.31
babel-plugin-istanbul: 6.1.1
chalk: 4.1.2
convert-source-map: 2.0.0
@@ -2442,113 +2388,112 @@ snapshots:
'@jest/schemas': 29.6.3
'@types/istanbul-lib-coverage': 2.0.6
'@types/istanbul-reports': 3.0.4
- '@types/node': 18.19.84
- '@types/yargs': 17.0.33
+ '@types/node': 18.19.130
+ '@types/yargs': 17.0.35
chalk: 4.1.2
- '@jridgewell/gen-mapping@0.3.8':
+ '@jridgewell/gen-mapping@0.3.13':
dependencies:
- '@jridgewell/set-array': 1.2.1
- '@jridgewell/sourcemap-codec': 1.5.0
- '@jridgewell/trace-mapping': 0.3.25
+ '@jridgewell/sourcemap-codec': 1.5.5
+ '@jridgewell/trace-mapping': 0.3.31
+
+ '@jridgewell/remapping@2.3.5':
+ dependencies:
+ '@jridgewell/gen-mapping': 0.3.13
+ '@jridgewell/trace-mapping': 0.3.31
'@jridgewell/resolve-uri@3.1.2': {}
- '@jridgewell/set-array@1.2.1': {}
+ '@jridgewell/sourcemap-codec@1.5.5': {}
- '@jridgewell/sourcemap-codec@1.5.0': {}
-
- '@jridgewell/trace-mapping@0.3.25':
+ '@jridgewell/trace-mapping@0.3.31':
dependencies:
'@jridgewell/resolve-uri': 3.1.2
- '@jridgewell/sourcemap-codec': 1.5.0
+ '@jridgewell/sourcemap-codec': 1.5.5
'@jridgewell/trace-mapping@0.3.9':
dependencies:
'@jridgewell/resolve-uri': 3.1.2
- '@jridgewell/sourcemap-codec': 1.5.0
+ '@jridgewell/sourcemap-codec': 1.5.5
- '@opentelemetry/api@1.9.0': {}
+ '@opentelemetry/api@1.9.1': {}
- '@pkgjs/parseargs@0.11.0':
+ '@rollup/rollup-android-arm-eabi@4.61.1':
optional: true
- '@rollup/rollup-android-arm-eabi@4.60.4':
+ '@rollup/rollup-android-arm64@4.61.1':
optional: true
- '@rollup/rollup-android-arm64@4.60.4':
+ '@rollup/rollup-darwin-arm64@4.61.1':
optional: true
- '@rollup/rollup-darwin-arm64@4.60.4':
+ '@rollup/rollup-darwin-x64@4.61.1':
optional: true
- '@rollup/rollup-darwin-x64@4.60.4':
+ '@rollup/rollup-freebsd-arm64@4.61.1':
optional: true
- '@rollup/rollup-freebsd-arm64@4.60.4':
+ '@rollup/rollup-freebsd-x64@4.61.1':
optional: true
- '@rollup/rollup-freebsd-x64@4.60.4':
+ '@rollup/rollup-linux-arm-gnueabihf@4.61.1':
optional: true
- '@rollup/rollup-linux-arm-gnueabihf@4.60.4':
+ '@rollup/rollup-linux-arm-musleabihf@4.61.1':
optional: true
- '@rollup/rollup-linux-arm-musleabihf@4.60.4':
+ '@rollup/rollup-linux-arm64-gnu@4.61.1':
optional: true
- '@rollup/rollup-linux-arm64-gnu@4.60.4':
+ '@rollup/rollup-linux-arm64-musl@4.61.1':
optional: true
- '@rollup/rollup-linux-arm64-musl@4.60.4':
+ '@rollup/rollup-linux-loong64-gnu@4.61.1':
optional: true
- '@rollup/rollup-linux-loong64-gnu@4.60.4':
+ '@rollup/rollup-linux-loong64-musl@4.61.1':
optional: true
- '@rollup/rollup-linux-loong64-musl@4.60.4':
+ '@rollup/rollup-linux-ppc64-gnu@4.61.1':
optional: true
- '@rollup/rollup-linux-ppc64-gnu@4.60.4':
+ '@rollup/rollup-linux-ppc64-musl@4.61.1':
optional: true
- '@rollup/rollup-linux-ppc64-musl@4.60.4':
+ '@rollup/rollup-linux-riscv64-gnu@4.61.1':
optional: true
- '@rollup/rollup-linux-riscv64-gnu@4.60.4':
+ '@rollup/rollup-linux-riscv64-musl@4.61.1':
optional: true
- '@rollup/rollup-linux-riscv64-musl@4.60.4':
+ '@rollup/rollup-linux-s390x-gnu@4.61.1':
optional: true
- '@rollup/rollup-linux-s390x-gnu@4.60.4':
+ '@rollup/rollup-linux-x64-gnu@4.61.1':
optional: true
- '@rollup/rollup-linux-x64-gnu@4.60.4':
+ '@rollup/rollup-linux-x64-musl@4.61.1':
optional: true
- '@rollup/rollup-linux-x64-musl@4.60.4':
+ '@rollup/rollup-openbsd-x64@4.61.1':
optional: true
- '@rollup/rollup-openbsd-x64@4.60.4':
+ '@rollup/rollup-openharmony-arm64@4.61.1':
optional: true
- '@rollup/rollup-openharmony-arm64@4.60.4':
+ '@rollup/rollup-win32-arm64-msvc@4.61.1':
optional: true
- '@rollup/rollup-win32-arm64-msvc@4.60.4':
+ '@rollup/rollup-win32-ia32-msvc@4.61.1':
optional: true
- '@rollup/rollup-win32-ia32-msvc@4.60.4':
+ '@rollup/rollup-win32-x64-gnu@4.61.1':
optional: true
- '@rollup/rollup-win32-x64-gnu@4.60.4':
+ '@rollup/rollup-win32-x64-msvc@4.61.1':
optional: true
- '@rollup/rollup-win32-x64-msvc@4.60.4':
- optional: true
-
- '@sinclair/typebox@0.27.8': {}
+ '@sinclair/typebox@0.27.10': {}
'@sinonjs/commons@3.0.1':
dependencies:
@@ -2558,9 +2503,9 @@ snapshots:
dependencies:
'@sinonjs/commons': 3.0.1
- '@standard-schema/spec@1.0.0': {}
+ '@standard-schema/spec@1.1.0': {}
- '@tsconfig/node10@1.0.11': {}
+ '@tsconfig/node10@1.0.12': {}
'@tsconfig/node12@1.0.11': {}
@@ -2570,30 +2515,30 @@ snapshots:
'@types/babel__core@7.20.5':
dependencies:
- '@babel/parser': 7.27.0
- '@babel/types': 7.27.0
- '@types/babel__generator': 7.6.8
+ '@babel/parser': 7.29.7
+ '@babel/types': 7.29.7
+ '@types/babel__generator': 7.27.0
'@types/babel__template': 7.4.4
- '@types/babel__traverse': 7.20.7
+ '@types/babel__traverse': 7.28.0
- '@types/babel__generator@7.6.8':
+ '@types/babel__generator@7.27.0':
dependencies:
- '@babel/types': 7.27.0
+ '@babel/types': 7.29.7
'@types/babel__template@7.4.4':
dependencies:
- '@babel/parser': 7.27.0
- '@babel/types': 7.27.0
+ '@babel/parser': 7.29.7
+ '@babel/types': 7.29.7
- '@types/babel__traverse@7.20.7':
+ '@types/babel__traverse@7.28.0':
dependencies:
- '@babel/types': 7.27.0
+ '@babel/types': 7.29.7
- '@types/estree@1.0.8': {}
+ '@types/estree@1.0.9': {}
'@types/graceful-fs@4.1.9':
dependencies:
- '@types/node': 18.19.84
+ '@types/node': 18.19.130
'@types/istanbul-lib-coverage@2.0.6': {}
@@ -2610,7 +2555,7 @@ snapshots:
expect: 29.7.0
pretty-format: 29.7.0
- '@types/node@18.19.84':
+ '@types/node@18.19.130':
dependencies:
undici-types: 5.26.5
@@ -2618,22 +2563,24 @@ snapshots:
'@types/yargs-parser@21.0.3': {}
- '@types/yargs@17.0.33':
+ '@types/yargs@17.0.35':
dependencies:
'@types/yargs-parser': 21.0.3
- acorn-walk@8.3.4:
- dependencies:
- acorn: 8.14.1
+ '@vercel/oidc@3.2.0': {}
- acorn@8.14.1: {}
-
- ai@5.0.2(zod@3.25.76):
+ acorn-walk@8.3.5:
dependencies:
- '@ai-sdk/gateway': 1.0.0(zod@3.25.76)
- '@ai-sdk/provider': 2.0.0
- '@ai-sdk/provider-utils': 3.0.0(zod@3.25.76)
- '@opentelemetry/api': 1.9.0
+ acorn: 8.16.0
+
+ acorn@8.16.0: {}
+
+ ai@6.0.199(zod@3.25.76):
+ dependencies:
+ '@ai-sdk/gateway': 3.0.127(zod@3.25.76)
+ '@ai-sdk/provider': 3.0.10
+ '@ai-sdk/provider-utils': 4.0.27(zod@3.25.76)
+ '@opentelemetry/api': 1.9.1
zod: 3.25.76
ansi-escapes@4.3.2:
@@ -2642,16 +2589,12 @@ snapshots:
ansi-regex@5.0.1: {}
- ansi-regex@6.1.0: {}
-
ansi-styles@4.3.0:
dependencies:
color-convert: 2.0.1
ansi-styles@5.2.0: {}
- ansi-styles@6.2.1: {}
-
any-promise@1.3.0: {}
anymatch@3.1.3:
@@ -2665,15 +2608,13 @@ snapshots:
dependencies:
sprintf-js: 1.0.3
- async@3.2.6: {}
-
- babel-jest@29.7.0(@babel/core@7.26.10):
+ babel-jest@29.7.0(@babel/core@7.29.7):
dependencies:
- '@babel/core': 7.26.10
+ '@babel/core': 7.29.7
'@jest/transform': 29.7.0
'@types/babel__core': 7.20.5
babel-plugin-istanbul: 6.1.1
- babel-preset-jest: 29.6.3(@babel/core@7.26.10)
+ babel-preset-jest: 29.6.3(@babel/core@7.29.7)
chalk: 4.1.2
graceful-fs: 4.2.11
slash: 3.0.0
@@ -2682,9 +2623,9 @@ snapshots:
babel-plugin-istanbul@6.1.1:
dependencies:
- '@babel/helper-plugin-utils': 7.26.5
+ '@babel/helper-plugin-utils': 7.29.7
'@istanbuljs/load-nyc-config': 1.1.0
- '@istanbuljs/schema': 0.1.3
+ '@istanbuljs/schema': 0.1.6
istanbul-lib-instrument: 5.2.1
test-exclude: 6.0.0
transitivePeerDependencies:
@@ -2692,63 +2633,64 @@ snapshots:
babel-plugin-jest-hoist@29.6.3:
dependencies:
- '@babel/template': 7.27.0
- '@babel/types': 7.27.0
+ '@babel/template': 7.29.7
+ '@babel/types': 7.29.7
'@types/babel__core': 7.20.5
- '@types/babel__traverse': 7.20.7
+ '@types/babel__traverse': 7.28.0
- babel-preset-current-node-syntax@1.1.0(@babel/core@7.26.10):
+ babel-preset-current-node-syntax@1.2.0(@babel/core@7.29.7):
dependencies:
- '@babel/core': 7.26.10
- '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.26.10)
- '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.26.10)
- '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.26.10)
- '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.26.10)
- '@babel/plugin-syntax-import-attributes': 7.26.0(@babel/core@7.26.10)
- '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.26.10)
- '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.26.10)
- '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.26.10)
- '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.26.10)
- '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.26.10)
- '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.26.10)
- '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.26.10)
- '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.26.10)
- '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.26.10)
- '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.26.10)
+ '@babel/core': 7.29.7
+ '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.29.7)
+ '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.29.7)
+ '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.29.7)
+ '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.29.7)
+ '@babel/plugin-syntax-import-attributes': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.29.7)
+ '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.29.7)
+ '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.29.7)
+ '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.29.7)
+ '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.29.7)
+ '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.29.7)
+ '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.29.7)
+ '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.29.7)
+ '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.29.7)
+ '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.29.7)
- babel-preset-jest@29.6.3(@babel/core@7.26.10):
+ babel-preset-jest@29.6.3(@babel/core@7.29.7):
dependencies:
- '@babel/core': 7.26.10
+ '@babel/core': 7.29.7
babel-plugin-jest-hoist: 29.6.3
- babel-preset-current-node-syntax: 1.1.0(@babel/core@7.26.10)
+ babel-preset-current-node-syntax: 1.2.0(@babel/core@7.29.7)
balanced-match@1.0.2: {}
+ balanced-match@4.0.4: {}
+
+ baseline-browser-mapping@2.10.35: {}
+
binary-extensions@2.3.0: {}
- brace-expansion@1.1.11:
+ brace-expansion@1.1.15:
dependencies:
balanced-match: 1.0.2
concat-map: 0.0.1
- brace-expansion@2.0.1:
+ brace-expansion@5.0.6:
dependencies:
- balanced-match: 1.0.2
-
- brace-expansion@2.1.1:
- dependencies:
- balanced-match: 1.0.2
+ balanced-match: 4.0.4
braces@3.0.3:
dependencies:
fill-range: 7.1.1
- browserslist@4.24.4:
+ browserslist@4.28.2:
dependencies:
- caniuse-lite: 1.0.30001707
- electron-to-chromium: 1.5.128
- node-releases: 2.0.19
- update-browserslist-db: 1.1.3(browserslist@4.24.4)
+ baseline-browser-mapping: 2.10.35
+ caniuse-lite: 1.0.30001797
+ electron-to-chromium: 1.5.371
+ node-releases: 2.0.47
+ update-browserslist-db: 1.2.3(browserslist@4.28.2)
bs-logger@0.2.6:
dependencies:
@@ -2760,9 +2702,9 @@ snapshots:
buffer-from@1.1.2: {}
- bundle-require@5.1.0(esbuild@0.25.1):
+ bundle-require@5.1.0(esbuild@0.27.7):
dependencies:
- esbuild: 0.25.1
+ esbuild: 0.27.7
load-tsconfig: 0.2.5
cac@6.7.14: {}
@@ -2773,7 +2715,7 @@ snapshots:
camelcase@6.3.0: {}
- caniuse-lite@1.0.30001707: {}
+ caniuse-lite@1.0.30001797: {}
chalk@4.1.2:
dependencies:
@@ -2810,7 +2752,7 @@ snapshots:
co@4.6.0: {}
- collect-v8-coverage@1.0.2: {}
+ collect-v8-coverage@1.0.3: {}
color-convert@2.0.1:
dependencies:
@@ -2822,17 +2764,19 @@ snapshots:
concat-map@0.0.1: {}
+ confbox@0.1.8: {}
+
consola@3.4.2: {}
convert-source-map@2.0.0: {}
- create-jest@29.7.0(@types/node@18.19.84)(ts-node@10.9.2(@types/node@18.19.84)(typescript@5.8.2)):
+ create-jest@29.7.0(@types/node@18.19.130)(ts-node@10.9.2(@types/node@18.19.130)(typescript@5.9.3)):
dependencies:
'@jest/types': 29.6.3
chalk: 4.1.2
exit: 0.1.2
graceful-fs: 4.2.11
- jest-config: 29.7.0(@types/node@18.19.84)(ts-node@10.9.2(@types/node@18.19.84)(typescript@5.8.2))
+ jest-config: 29.7.0(@types/node@18.19.130)(ts-node@10.9.2(@types/node@18.19.130)(typescript@5.9.3))
jest-util: 29.7.0
prompts: 2.4.2
transitivePeerDependencies:
@@ -2849,13 +2793,13 @@ snapshots:
shebang-command: 2.0.0
which: 2.0.2
- debug@4.4.0(supports-color@5.5.0):
+ debug@4.4.3(supports-color@5.5.0):
dependencies:
ms: 2.1.3
optionalDependencies:
supports-color: 5.5.0
- dedent@1.5.3: {}
+ dedent@1.7.2: {}
deepmerge@4.3.1: {}
@@ -2863,55 +2807,50 @@ snapshots:
diff-sequences@29.6.3: {}
- diff@4.0.2: {}
+ diff@4.0.4: {}
- dotenv@16.4.7: {}
+ dotenv@16.6.1: {}
- eastasianwidth@0.2.0: {}
-
- ejs@3.1.10:
- dependencies:
- jake: 10.9.2
-
- electron-to-chromium@1.5.128: {}
+ electron-to-chromium@1.5.371: {}
emittery@0.13.1: {}
emoji-regex@8.0.0: {}
- emoji-regex@9.2.2: {}
-
- error-ex@1.3.2:
+ error-ex@1.3.4:
dependencies:
is-arrayish: 0.2.1
- esbuild@0.25.1:
+ es-errors@1.3.0: {}
+
+ esbuild@0.27.7:
optionalDependencies:
- '@esbuild/aix-ppc64': 0.25.1
- '@esbuild/android-arm': 0.25.1
- '@esbuild/android-arm64': 0.25.1
- '@esbuild/android-x64': 0.25.1
- '@esbuild/darwin-arm64': 0.25.1
- '@esbuild/darwin-x64': 0.25.1
- '@esbuild/freebsd-arm64': 0.25.1
- '@esbuild/freebsd-x64': 0.25.1
- '@esbuild/linux-arm': 0.25.1
- '@esbuild/linux-arm64': 0.25.1
- '@esbuild/linux-ia32': 0.25.1
- '@esbuild/linux-loong64': 0.25.1
- '@esbuild/linux-mips64el': 0.25.1
- '@esbuild/linux-ppc64': 0.25.1
- '@esbuild/linux-riscv64': 0.25.1
- '@esbuild/linux-s390x': 0.25.1
- '@esbuild/linux-x64': 0.25.1
- '@esbuild/netbsd-arm64': 0.25.1
- '@esbuild/netbsd-x64': 0.25.1
- '@esbuild/openbsd-arm64': 0.25.1
- '@esbuild/openbsd-x64': 0.25.1
- '@esbuild/sunos-x64': 0.25.1
- '@esbuild/win32-arm64': 0.25.1
- '@esbuild/win32-ia32': 0.25.1
- '@esbuild/win32-x64': 0.25.1
+ '@esbuild/aix-ppc64': 0.27.7
+ '@esbuild/android-arm': 0.27.7
+ '@esbuild/android-arm64': 0.27.7
+ '@esbuild/android-x64': 0.27.7
+ '@esbuild/darwin-arm64': 0.27.7
+ '@esbuild/darwin-x64': 0.27.7
+ '@esbuild/freebsd-arm64': 0.27.7
+ '@esbuild/freebsd-x64': 0.27.7
+ '@esbuild/linux-arm': 0.27.7
+ '@esbuild/linux-arm64': 0.27.7
+ '@esbuild/linux-ia32': 0.27.7
+ '@esbuild/linux-loong64': 0.27.7
+ '@esbuild/linux-mips64el': 0.27.7
+ '@esbuild/linux-ppc64': 0.27.7
+ '@esbuild/linux-riscv64': 0.27.7
+ '@esbuild/linux-s390x': 0.27.7
+ '@esbuild/linux-x64': 0.27.7
+ '@esbuild/netbsd-arm64': 0.27.7
+ '@esbuild/netbsd-x64': 0.27.7
+ '@esbuild/openbsd-arm64': 0.27.7
+ '@esbuild/openbsd-x64': 0.27.7
+ '@esbuild/openharmony-arm64': 0.27.7
+ '@esbuild/sunos-x64': 0.27.7
+ '@esbuild/win32-arm64': 0.27.7
+ '@esbuild/win32-ia32': 0.27.7
+ '@esbuild/win32-x64': 0.27.7
escalade@3.2.0: {}
@@ -2919,7 +2858,7 @@ snapshots:
esprima@4.0.1: {}
- eventsource-parser@3.0.3: {}
+ eventsource-parser@3.1.0: {}
execa@5.1.1:
dependencies:
@@ -2949,13 +2888,9 @@ snapshots:
dependencies:
bser: 2.1.1
- fdir@6.4.3(picomatch@4.0.2):
+ fdir@6.5.0(picomatch@4.0.4):
optionalDependencies:
- picomatch: 4.0.2
-
- filelist@1.0.4:
- dependencies:
- minimatch: 5.1.9
+ picomatch: 4.0.4
fill-range@7.1.1:
dependencies:
@@ -2966,10 +2901,11 @@ snapshots:
locate-path: 5.0.0
path-exists: 4.0.0
- foreground-child@3.3.1:
+ fix-dts-default-cjs-exports@1.0.1:
dependencies:
- cross-spawn: 7.0.6
- signal-exit: 4.1.0
+ magic-string: 0.30.21
+ mlly: 1.8.2
+ rollup: 4.61.1
fs.realpath@1.0.0: {}
@@ -2990,15 +2926,6 @@ snapshots:
dependencies:
is-glob: 4.0.3
- glob@10.5.0:
- dependencies:
- foreground-child: 3.3.1
- jackspeak: 3.4.3
- minimatch: 9.0.9
- minipass: 7.1.2
- package-json-from-dist: 1.0.1
- path-scurry: 1.11.1
-
glob@7.2.3:
dependencies:
fs.realpath: 1.0.0
@@ -3008,15 +2935,22 @@ snapshots:
once: 1.4.0
path-is-absolute: 1.0.1
- globals@11.12.0: {}
-
graceful-fs@4.2.11: {}
+ handlebars@4.7.9:
+ dependencies:
+ minimist: 1.2.8
+ neo-async: 2.6.2
+ source-map: 0.6.1
+ wordwrap: 1.0.0
+ optionalDependencies:
+ uglify-js: 3.19.3
+
has-flag@3.0.0: {}
has-flag@4.0.0: {}
- hasown@2.0.2:
+ hasown@2.0.4:
dependencies:
function-bind: 1.1.2
@@ -3046,9 +2980,9 @@ snapshots:
dependencies:
binary-extensions: 2.3.0
- is-core-module@2.16.1:
+ is-core-module@2.16.2:
dependencies:
- hasown: 2.0.2
+ hasown: 2.0.4
is-extglob@2.1.1: {}
@@ -3070,9 +3004,9 @@ snapshots:
istanbul-lib-instrument@5.2.1:
dependencies:
- '@babel/core': 7.26.10
- '@babel/parser': 7.27.0
- '@istanbuljs/schema': 0.1.3
+ '@babel/core': 7.29.7
+ '@babel/parser': 7.29.7
+ '@istanbuljs/schema': 0.1.6
istanbul-lib-coverage: 3.2.2
semver: 6.3.1
transitivePeerDependencies:
@@ -3080,11 +3014,11 @@ snapshots:
istanbul-lib-instrument@6.0.3:
dependencies:
- '@babel/core': 7.26.10
- '@babel/parser': 7.27.0
- '@istanbuljs/schema': 0.1.3
+ '@babel/core': 7.29.7
+ '@babel/parser': 7.29.7
+ '@istanbuljs/schema': 0.1.6
istanbul-lib-coverage: 3.2.2
- semver: 7.7.1
+ semver: 7.8.4
transitivePeerDependencies:
- supports-color
@@ -3096,30 +3030,17 @@ snapshots:
istanbul-lib-source-maps@4.0.1:
dependencies:
- debug: 4.4.0(supports-color@5.5.0)
+ debug: 4.4.3(supports-color@5.5.0)
istanbul-lib-coverage: 3.2.2
source-map: 0.6.1
transitivePeerDependencies:
- supports-color
- istanbul-reports@3.1.7:
+ istanbul-reports@3.2.0:
dependencies:
html-escaper: 2.0.2
istanbul-lib-report: 3.0.1
- jackspeak@3.4.3:
- dependencies:
- '@isaacs/cliui': 8.0.2
- optionalDependencies:
- '@pkgjs/parseargs': 0.11.0
-
- jake@10.9.2:
- dependencies:
- async: 3.2.6
- chalk: 4.1.2
- filelist: 1.0.4
- minimatch: 3.1.5
-
jest-changed-files@29.7.0:
dependencies:
execa: 5.1.1
@@ -3132,10 +3053,10 @@ snapshots:
'@jest/expect': 29.7.0
'@jest/test-result': 29.7.0
'@jest/types': 29.6.3
- '@types/node': 18.19.84
+ '@types/node': 18.19.130
chalk: 4.1.2
co: 4.6.0
- dedent: 1.5.3
+ dedent: 1.7.2
is-generator-fn: 2.1.0
jest-each: 29.7.0
jest-matcher-utils: 29.7.0
@@ -3152,16 +3073,16 @@ snapshots:
- babel-plugin-macros
- supports-color
- jest-cli@29.7.0(@types/node@18.19.84)(ts-node@10.9.2(@types/node@18.19.84)(typescript@5.8.2)):
+ jest-cli@29.7.0(@types/node@18.19.130)(ts-node@10.9.2(@types/node@18.19.130)(typescript@5.9.3)):
dependencies:
- '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@18.19.84)(typescript@5.8.2))
+ '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@18.19.130)(typescript@5.9.3))
'@jest/test-result': 29.7.0
'@jest/types': 29.6.3
chalk: 4.1.2
- create-jest: 29.7.0(@types/node@18.19.84)(ts-node@10.9.2(@types/node@18.19.84)(typescript@5.8.2))
+ create-jest: 29.7.0(@types/node@18.19.130)(ts-node@10.9.2(@types/node@18.19.130)(typescript@5.9.3))
exit: 0.1.2
import-local: 3.2.0
- jest-config: 29.7.0(@types/node@18.19.84)(ts-node@10.9.2(@types/node@18.19.84)(typescript@5.8.2))
+ jest-config: 29.7.0(@types/node@18.19.130)(ts-node@10.9.2(@types/node@18.19.130)(typescript@5.9.3))
jest-util: 29.7.0
jest-validate: 29.7.0
yargs: 17.7.2
@@ -3171,12 +3092,12 @@ snapshots:
- supports-color
- ts-node
- jest-config@29.7.0(@types/node@18.19.84)(ts-node@10.9.2(@types/node@18.19.84)(typescript@5.8.2)):
+ jest-config@29.7.0(@types/node@18.19.130)(ts-node@10.9.2(@types/node@18.19.130)(typescript@5.9.3)):
dependencies:
- '@babel/core': 7.26.10
+ '@babel/core': 7.29.7
'@jest/test-sequencer': 29.7.0
'@jest/types': 29.6.3
- babel-jest: 29.7.0(@babel/core@7.26.10)
+ babel-jest: 29.7.0(@babel/core@7.29.7)
chalk: 4.1.2
ci-info: 3.9.0
deepmerge: 4.3.1
@@ -3196,8 +3117,8 @@ snapshots:
slash: 3.0.0
strip-json-comments: 3.1.1
optionalDependencies:
- '@types/node': 18.19.84
- ts-node: 10.9.2(@types/node@18.19.84)(typescript@5.8.2)
+ '@types/node': 18.19.130
+ ts-node: 10.9.2(@types/node@18.19.130)(typescript@5.9.3)
transitivePeerDependencies:
- babel-plugin-macros
- supports-color
@@ -3226,7 +3147,7 @@ snapshots:
'@jest/environment': 29.7.0
'@jest/fake-timers': 29.7.0
'@jest/types': 29.6.3
- '@types/node': 18.19.84
+ '@types/node': 18.19.130
jest-mock: 29.7.0
jest-util: 29.7.0
@@ -3236,7 +3157,7 @@ snapshots:
dependencies:
'@jest/types': 29.6.3
'@types/graceful-fs': 4.1.9
- '@types/node': 18.19.84
+ '@types/node': 18.19.130
anymatch: 3.1.3
fb-watchman: 2.0.2
graceful-fs: 4.2.11
@@ -3262,7 +3183,7 @@ snapshots:
jest-message-util@29.7.0:
dependencies:
- '@babel/code-frame': 7.26.2
+ '@babel/code-frame': 7.29.7
'@jest/types': 29.6.3
'@types/stack-utils': 2.0.3
chalk: 4.1.2
@@ -3275,7 +3196,7 @@ snapshots:
jest-mock@29.7.0:
dependencies:
'@jest/types': 29.6.3
- '@types/node': 18.19.84
+ '@types/node': 18.19.130
jest-util: 29.7.0
jest-pnp-resolver@1.2.3(jest-resolve@29.7.0):
@@ -3299,7 +3220,7 @@ snapshots:
jest-pnp-resolver: 1.2.3(jest-resolve@29.7.0)
jest-util: 29.7.0
jest-validate: 29.7.0
- resolve: 1.22.10
+ resolve: 1.22.12
resolve.exports: 2.0.3
slash: 3.0.0
@@ -3310,7 +3231,7 @@ snapshots:
'@jest/test-result': 29.7.0
'@jest/transform': 29.7.0
'@jest/types': 29.6.3
- '@types/node': 18.19.84
+ '@types/node': 18.19.130
chalk: 4.1.2
emittery: 0.13.1
graceful-fs: 4.2.11
@@ -3338,10 +3259,10 @@ snapshots:
'@jest/test-result': 29.7.0
'@jest/transform': 29.7.0
'@jest/types': 29.6.3
- '@types/node': 18.19.84
+ '@types/node': 18.19.130
chalk: 4.1.2
cjs-module-lexer: 1.4.3
- collect-v8-coverage: 1.0.2
+ collect-v8-coverage: 1.0.3
glob: 7.2.3
graceful-fs: 4.2.11
jest-haste-map: 29.7.0
@@ -3358,15 +3279,15 @@ snapshots:
jest-snapshot@29.7.0:
dependencies:
- '@babel/core': 7.26.10
- '@babel/generator': 7.27.0
- '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.10)
- '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.10)
- '@babel/types': 7.27.0
+ '@babel/core': 7.29.7
+ '@babel/generator': 7.29.7
+ '@babel/plugin-syntax-jsx': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-syntax-typescript': 7.29.7(@babel/core@7.29.7)
+ '@babel/types': 7.29.7
'@jest/expect-utils': 29.7.0
'@jest/transform': 29.7.0
'@jest/types': 29.6.3
- babel-preset-current-node-syntax: 1.1.0(@babel/core@7.26.10)
+ babel-preset-current-node-syntax: 1.2.0(@babel/core@7.29.7)
chalk: 4.1.2
expect: 29.7.0
graceful-fs: 4.2.11
@@ -3377,14 +3298,14 @@ snapshots:
jest-util: 29.7.0
natural-compare: 1.4.0
pretty-format: 29.7.0
- semver: 7.7.1
+ semver: 7.8.4
transitivePeerDependencies:
- supports-color
jest-util@29.7.0:
dependencies:
'@jest/types': 29.6.3
- '@types/node': 18.19.84
+ '@types/node': 18.19.130
chalk: 4.1.2
ci-info: 3.9.0
graceful-fs: 4.2.11
@@ -3403,7 +3324,7 @@ snapshots:
dependencies:
'@jest/test-result': 29.7.0
'@jest/types': 29.6.3
- '@types/node': 18.19.84
+ '@types/node': 18.19.130
ansi-escapes: 4.3.2
chalk: 4.1.2
emittery: 0.13.1
@@ -3412,17 +3333,17 @@ snapshots:
jest-worker@29.7.0:
dependencies:
- '@types/node': 18.19.84
+ '@types/node': 18.19.130
jest-util: 29.7.0
merge-stream: 2.0.0
supports-color: 8.1.1
- jest@29.7.0(@types/node@18.19.84)(ts-node@10.9.2(@types/node@18.19.84)(typescript@5.8.2)):
+ jest@29.7.0(@types/node@18.19.130)(ts-node@10.9.2(@types/node@18.19.130)(typescript@5.9.3)):
dependencies:
- '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@18.19.84)(typescript@5.8.2))
+ '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@18.19.130)(typescript@5.9.3))
'@jest/types': 29.6.3
import-local: 3.2.0
- jest-cli: 29.7.0(@types/node@18.19.84)(ts-node@10.9.2(@types/node@18.19.84)(typescript@5.8.2))
+ jest-cli: 29.7.0(@types/node@18.19.130)(ts-node@10.9.2(@types/node@18.19.130)(typescript@5.9.3))
transitivePeerDependencies:
- '@types/node'
- babel-plugin-macros
@@ -3433,7 +3354,7 @@ snapshots:
js-tokens@4.0.0: {}
- js-yaml@3.14.1:
+ js-yaml@3.14.2:
dependencies:
argparse: 1.0.10
esprima: 4.0.1
@@ -3462,17 +3383,17 @@ snapshots:
lodash.memoize@4.1.2: {}
- lodash.sortby@4.7.0: {}
-
- lru-cache@10.4.3: {}
-
lru-cache@5.1.1:
dependencies:
yallist: 3.1.1
+ magic-string@0.30.21:
+ dependencies:
+ '@jridgewell/sourcemap-codec': 1.5.5
+
make-dir@4.0.0:
dependencies:
- semver: 7.7.1
+ semver: 7.8.4
make-error@1.3.6: {}
@@ -3489,19 +3410,22 @@ snapshots:
mimic-fn@2.1.0: {}
+ minimatch@10.2.5:
+ dependencies:
+ brace-expansion: 5.0.6
+
minimatch@3.1.5:
dependencies:
- brace-expansion: 1.1.11
+ brace-expansion: 1.1.15
- minimatch@5.1.9:
+ minimist@1.2.8: {}
+
+ mlly@1.8.2:
dependencies:
- brace-expansion: 2.0.1
-
- minimatch@9.0.9:
- dependencies:
- brace-expansion: 2.1.1
-
- minipass@7.1.2: {}
+ acorn: 8.16.0
+ pathe: 2.0.3
+ pkg-types: 1.3.1
+ ufo: 1.6.4
ms@2.1.3: {}
@@ -3513,18 +3437,20 @@ snapshots:
natural-compare@1.4.0: {}
+ neo-async@2.6.2: {}
+
node-int64@0.4.0: {}
- node-releases@2.0.19: {}
+ node-releases@2.0.47: {}
- nodemon@3.1.9:
+ nodemon@3.1.14:
dependencies:
chokidar: 3.6.0
- debug: 4.4.0(supports-color@5.5.0)
+ debug: 4.4.3(supports-color@5.5.0)
ignore-by-default: 1.0.1
- minimatch: 3.1.5
+ minimatch: 10.2.5
pstree.remy: 1.1.8
- semver: 7.7.1
+ semver: 7.8.4
simple-update-notifier: 2.0.0
supports-color: 5.5.0
touch: 3.1.1
@@ -3560,12 +3486,10 @@ snapshots:
p-try@2.2.0: {}
- package-json-from-dist@1.0.1: {}
-
parse-json@5.2.0:
dependencies:
- '@babel/code-frame': 7.26.2
- error-ex: 1.3.2
+ '@babel/code-frame': 7.29.7
+ error-ex: 1.3.4
json-parse-even-better-errors: 2.3.1
lines-and-columns: 1.2.4
@@ -3579,16 +3503,13 @@ snapshots:
path-parse@1.0.7: {}
- path-scurry@1.11.1:
- dependencies:
- lru-cache: 10.4.3
- minipass: 7.1.2
+ pathe@2.0.3: {}
picocolors@1.1.1: {}
picomatch@2.3.2: {}
- picomatch@4.0.2: {}
+ picomatch@4.0.4: {}
pirates@4.0.7: {}
@@ -3596,6 +3517,12 @@ snapshots:
dependencies:
find-up: 4.1.0
+ pkg-types@1.3.1:
+ dependencies:
+ confbox: 0.1.8
+ mlly: 1.8.2
+ pathe: 2.0.3
+
postcss-load-config@6.0.1:
dependencies:
lilconfig: 3.1.3
@@ -3613,8 +3540,6 @@ snapshots:
pstree.remy@1.1.8: {}
- punycode@2.3.1: {}
-
pure-rand@6.1.0: {}
react-is@18.3.1: {}
@@ -3635,46 +3560,47 @@ snapshots:
resolve.exports@2.0.3: {}
- resolve@1.22.10:
+ resolve@1.22.12:
dependencies:
- is-core-module: 2.16.1
+ es-errors: 1.3.0
+ is-core-module: 2.16.2
path-parse: 1.0.7
supports-preserve-symlinks-flag: 1.0.0
- rollup@4.60.4:
+ rollup@4.61.1:
dependencies:
- '@types/estree': 1.0.8
+ '@types/estree': 1.0.9
optionalDependencies:
- '@rollup/rollup-android-arm-eabi': 4.60.4
- '@rollup/rollup-android-arm64': 4.60.4
- '@rollup/rollup-darwin-arm64': 4.60.4
- '@rollup/rollup-darwin-x64': 4.60.4
- '@rollup/rollup-freebsd-arm64': 4.60.4
- '@rollup/rollup-freebsd-x64': 4.60.4
- '@rollup/rollup-linux-arm-gnueabihf': 4.60.4
- '@rollup/rollup-linux-arm-musleabihf': 4.60.4
- '@rollup/rollup-linux-arm64-gnu': 4.60.4
- '@rollup/rollup-linux-arm64-musl': 4.60.4
- '@rollup/rollup-linux-loong64-gnu': 4.60.4
- '@rollup/rollup-linux-loong64-musl': 4.60.4
- '@rollup/rollup-linux-ppc64-gnu': 4.60.4
- '@rollup/rollup-linux-ppc64-musl': 4.60.4
- '@rollup/rollup-linux-riscv64-gnu': 4.60.4
- '@rollup/rollup-linux-riscv64-musl': 4.60.4
- '@rollup/rollup-linux-s390x-gnu': 4.60.4
- '@rollup/rollup-linux-x64-gnu': 4.60.4
- '@rollup/rollup-linux-x64-musl': 4.60.4
- '@rollup/rollup-openbsd-x64': 4.60.4
- '@rollup/rollup-openharmony-arm64': 4.60.4
- '@rollup/rollup-win32-arm64-msvc': 4.60.4
- '@rollup/rollup-win32-ia32-msvc': 4.60.4
- '@rollup/rollup-win32-x64-gnu': 4.60.4
- '@rollup/rollup-win32-x64-msvc': 4.60.4
+ '@rollup/rollup-android-arm-eabi': 4.61.1
+ '@rollup/rollup-android-arm64': 4.61.1
+ '@rollup/rollup-darwin-arm64': 4.61.1
+ '@rollup/rollup-darwin-x64': 4.61.1
+ '@rollup/rollup-freebsd-arm64': 4.61.1
+ '@rollup/rollup-freebsd-x64': 4.61.1
+ '@rollup/rollup-linux-arm-gnueabihf': 4.61.1
+ '@rollup/rollup-linux-arm-musleabihf': 4.61.1
+ '@rollup/rollup-linux-arm64-gnu': 4.61.1
+ '@rollup/rollup-linux-arm64-musl': 4.61.1
+ '@rollup/rollup-linux-loong64-gnu': 4.61.1
+ '@rollup/rollup-linux-loong64-musl': 4.61.1
+ '@rollup/rollup-linux-ppc64-gnu': 4.61.1
+ '@rollup/rollup-linux-ppc64-musl': 4.61.1
+ '@rollup/rollup-linux-riscv64-gnu': 4.61.1
+ '@rollup/rollup-linux-riscv64-musl': 4.61.1
+ '@rollup/rollup-linux-s390x-gnu': 4.61.1
+ '@rollup/rollup-linux-x64-gnu': 4.61.1
+ '@rollup/rollup-linux-x64-musl': 4.61.1
+ '@rollup/rollup-openbsd-x64': 4.61.1
+ '@rollup/rollup-openharmony-arm64': 4.61.1
+ '@rollup/rollup-win32-arm64-msvc': 4.61.1
+ '@rollup/rollup-win32-ia32-msvc': 4.61.1
+ '@rollup/rollup-win32-x64-gnu': 4.61.1
+ '@rollup/rollup-win32-x64-msvc': 4.61.1
fsevents: 2.3.3
semver@6.3.1: {}
- semver@7.7.1: {}
+ semver@7.8.4: {}
shebang-command@2.0.0:
dependencies:
@@ -3684,11 +3610,9 @@ snapshots:
signal-exit@3.0.7: {}
- signal-exit@4.1.0: {}
-
simple-update-notifier@2.0.0:
dependencies:
- semver: 7.7.1
+ semver: 7.8.4
sisteransi@1.0.5: {}
@@ -3701,9 +3625,7 @@ snapshots:
source-map@0.6.1: {}
- source-map@0.8.0-beta.0:
- dependencies:
- whatwg-url: 7.1.0
+ source-map@0.7.6: {}
sprintf-js@1.0.3: {}
@@ -3722,34 +3644,24 @@ snapshots:
is-fullwidth-code-point: 3.0.0
strip-ansi: 6.0.1
- string-width@5.1.2:
- dependencies:
- eastasianwidth: 0.2.0
- emoji-regex: 9.2.2
- strip-ansi: 7.1.0
-
strip-ansi@6.0.1:
dependencies:
ansi-regex: 5.0.1
- strip-ansi@7.1.0:
- dependencies:
- ansi-regex: 6.1.0
-
strip-bom@4.0.0: {}
strip-final-newline@2.0.0: {}
strip-json-comments@3.1.1: {}
- sucrase@3.35.0:
+ sucrase@3.35.1:
dependencies:
- '@jridgewell/gen-mapping': 0.3.8
+ '@jridgewell/gen-mapping': 0.3.13
commander: 4.1.1
- glob: 10.5.0
lines-and-columns: 1.2.4
mz: 2.7.0
pirates: 4.0.7
+ tinyglobby: 0.2.17
ts-interface-checker: 0.1.13
supports-color@5.5.0:
@@ -3768,7 +3680,7 @@ snapshots:
test-exclude@6.0.0:
dependencies:
- '@istanbuljs/schema': 0.1.3
+ '@istanbuljs/schema': 0.1.6
glob: 7.2.3
minimatch: 3.1.5
@@ -3782,10 +3694,10 @@ snapshots:
tinyexec@0.3.2: {}
- tinyglobby@0.2.12:
+ tinyglobby@0.2.17:
dependencies:
- fdir: 6.4.3(picomatch@4.0.2)
- picomatch: 4.0.2
+ fdir: 6.5.0(picomatch@4.0.4)
+ picomatch: 4.0.4
tmpl@1.0.5: {}
@@ -3795,73 +3707,70 @@ snapshots:
touch@3.1.1: {}
- tr46@1.0.1:
- dependencies:
- punycode: 2.3.1
-
tree-kill@1.2.2: {}
ts-interface-checker@0.1.13: {}
- ts-jest@29.3.0(@babel/core@7.26.10)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.10))(esbuild@0.25.1)(jest@29.7.0(@types/node@18.19.84)(ts-node@10.9.2(@types/node@18.19.84)(typescript@5.8.2)))(typescript@5.8.2):
+ ts-jest@29.4.11(@babel/core@7.29.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.29.7))(esbuild@0.27.7)(jest-util@29.7.0)(jest@29.7.0(@types/node@18.19.130)(ts-node@10.9.2(@types/node@18.19.130)(typescript@5.9.3)))(typescript@5.9.3):
dependencies:
bs-logger: 0.2.6
- ejs: 3.1.10
fast-json-stable-stringify: 2.1.0
- jest: 29.7.0(@types/node@18.19.84)(ts-node@10.9.2(@types/node@18.19.84)(typescript@5.8.2))
- jest-util: 29.7.0
+ handlebars: 4.7.9
+ jest: 29.7.0(@types/node@18.19.130)(ts-node@10.9.2(@types/node@18.19.130)(typescript@5.9.3))
json5: 2.2.3
lodash.memoize: 4.1.2
make-error: 1.3.6
- semver: 7.7.1
- type-fest: 4.38.0
- typescript: 5.8.2
+ semver: 7.8.4
+ type-fest: 4.41.0
+ typescript: 5.9.3
yargs-parser: 21.1.1
optionalDependencies:
- '@babel/core': 7.26.10
+ '@babel/core': 7.29.7
'@jest/transform': 29.7.0
'@jest/types': 29.6.3
- babel-jest: 29.7.0(@babel/core@7.26.10)
- esbuild: 0.25.1
+ babel-jest: 29.7.0(@babel/core@7.29.7)
+ esbuild: 0.27.7
+ jest-util: 29.7.0
- ts-node@10.9.2(@types/node@18.19.84)(typescript@5.8.2):
+ ts-node@10.9.2(@types/node@18.19.130)(typescript@5.9.3):
dependencies:
'@cspotcode/source-map-support': 0.8.1
- '@tsconfig/node10': 1.0.11
+ '@tsconfig/node10': 1.0.12
'@tsconfig/node12': 1.0.11
'@tsconfig/node14': 1.0.3
'@tsconfig/node16': 1.0.4
- '@types/node': 18.19.84
- acorn: 8.14.1
- acorn-walk: 8.3.4
+ '@types/node': 18.19.130
+ acorn: 8.16.0
+ acorn-walk: 8.3.5
arg: 4.1.3
create-require: 1.1.1
- diff: 4.0.2
+ diff: 4.0.4
make-error: 1.3.6
- typescript: 5.8.2
+ typescript: 5.9.3
v8-compile-cache-lib: 3.0.1
yn: 3.1.1
- tsup@8.4.0(typescript@5.8.2):
+ tsup@8.5.1(typescript@5.9.3):
dependencies:
- bundle-require: 5.1.0(esbuild@0.25.1)
+ bundle-require: 5.1.0(esbuild@0.27.7)
cac: 6.7.14
chokidar: 4.0.3
consola: 3.4.2
- debug: 4.4.0(supports-color@5.5.0)
- esbuild: 0.25.1
+ debug: 4.4.3(supports-color@5.5.0)
+ esbuild: 0.27.7
+ fix-dts-default-cjs-exports: 1.0.1
joycon: 3.1.1
picocolors: 1.1.1
postcss-load-config: 6.0.1
resolve-from: 5.0.0
- rollup: 4.60.4
- source-map: 0.8.0-beta.0
- sucrase: 3.35.0
+ rollup: 4.61.1
+ source-map: 0.7.6
+ sucrase: 3.35.1
tinyexec: 0.3.2
- tinyglobby: 0.2.12
+ tinyglobby: 0.2.17
tree-kill: 1.2.2
optionalDependencies:
- typescript: 5.8.2
+ typescript: 5.9.3
transitivePeerDependencies:
- jiti
- supports-color
@@ -3872,17 +3781,22 @@ snapshots:
type-fest@0.21.3: {}
- type-fest@4.38.0: {}
+ type-fest@4.41.0: {}
- typescript@5.8.2: {}
+ typescript@5.9.3: {}
+
+ ufo@1.6.4: {}
+
+ uglify-js@3.19.3:
+ optional: true
undefsafe@2.0.5: {}
undici-types@5.26.5: {}
- update-browserslist-db@1.1.3(browserslist@4.24.4):
+ update-browserslist-db@1.2.3(browserslist@4.28.2):
dependencies:
- browserslist: 4.24.4
+ browserslist: 4.28.2
escalade: 3.2.0
picocolors: 1.1.1
@@ -3890,7 +3804,7 @@ snapshots:
v8-to-istanbul@9.3.0:
dependencies:
- '@jridgewell/trace-mapping': 0.3.25
+ '@jridgewell/trace-mapping': 0.3.31
'@types/istanbul-lib-coverage': 2.0.6
convert-source-map: 2.0.0
@@ -3898,30 +3812,18 @@ snapshots:
dependencies:
makeerror: 1.0.12
- webidl-conversions@4.0.2: {}
-
- whatwg-url@7.1.0:
- dependencies:
- lodash.sortby: 4.7.0
- tr46: 1.0.1
- webidl-conversions: 4.0.2
-
which@2.0.2:
dependencies:
isexe: 2.0.0
+ wordwrap@1.0.0: {}
+
wrap-ansi@7.0.0:
dependencies:
ansi-styles: 4.3.0
string-width: 4.2.3
strip-ansi: 6.0.1
- wrap-ansi@8.1.0:
- dependencies:
- ansi-styles: 6.2.1
- string-width: 5.1.2
- strip-ansi: 7.1.0
-
wrappy@1.0.2: {}
write-file-atomic@4.0.2:
@@ -3949,8 +3851,4 @@ snapshots:
yocto-queue@0.1.0: {}
- zod-to-json-schema@3.24.5(zod@3.25.76):
- dependencies:
- zod: 3.25.76
-
zod@3.25.76: {}
diff --git a/vercel-ai-sdk/src/mem0-facade.ts b/vercel-ai-sdk/src/mem0-facade.ts
index 211afaeb0..aea474f07 100644
--- a/vercel-ai-sdk/src/mem0-facade.ts
+++ b/vercel-ai-sdk/src/mem0-facade.ts
@@ -12,7 +12,7 @@ export class Mem0 {
provider: 'openai',
}) {
this.baseURL =
- withoutTrailingSlash(options.baseURL) ?? 'http://127.0.0.1:11434/api'
+ withoutTrailingSlash(options.baseURL) ?? 'https://api.openai.com'
this.headers = options.headers
}
diff --git a/vercel-ai-sdk/src/mem0-generic-language-model.ts b/vercel-ai-sdk/src/mem0-generic-language-model.ts
index 1b4a8181d..982725f09 100644
--- a/vercel-ai-sdk/src/mem0-generic-language-model.ts
+++ b/vercel-ai-sdk/src/mem0-generic-language-model.ts
@@ -1,14 +1,14 @@
/* eslint-disable camelcase */
import {
- LanguageModelV2CallOptions,
- LanguageModelV2Message,
- LanguageModelV2Source
+ LanguageModelV3,
+ LanguageModelV3CallOptions,
+ LanguageModelV3GenerateResult,
+ LanguageModelV3Message,
+ LanguageModelV3Source,
+ LanguageModelV3StreamResult,
} from '@ai-sdk/provider';
-import { LanguageModelV2 } from '@ai-sdk/provider';
-// streaming uses provider-native doStream; no middleware needed
-
-import { Mem0ChatConfig, Mem0ChatModelId, Mem0ChatSettings, Mem0ConfigSettings, Mem0StreamResponse } from "./mem0-types";
+import { Mem0ChatConfig, Mem0ChatModelId, Mem0ChatSettings, Mem0ConfigSettings } from "./mem0-types";
import { Mem0ClassSelector } from "./mem0-provider-selector";
import { Mem0ProviderSettings } from "./mem0-provider";
import { addMemories, getMemories } from "./mem0-utils";
@@ -17,12 +17,8 @@ const generateRandomId = () => {
return Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15);
}
-export class Mem0GenericLanguageModel implements LanguageModelV2 {
- readonly specificationVersion = "v2";
- readonly defaultObjectGenerationMode = "json";
- // We don't support images for now
- readonly supportsImageUrls = false;
- // Allow All Media Types for now
+export class Mem0GenericLanguageModel implements LanguageModelV3 {
+ readonly specificationVersion = "v3";
readonly supportedUrls: Record = {
'*': [/.*/]
};
@@ -38,148 +34,108 @@ export class Mem0GenericLanguageModel implements LanguageModelV2 {
provider: string;
- private async processMemories(messagesPrompts: LanguageModelV2Message[], mem0Config: Mem0ConfigSettings) {
+ private async processMemories(messagesPrompts: LanguageModelV3Message[], mem0Config: Mem0ConfigSettings) {
try {
- // Add New Memories
- addMemories(messagesPrompts, mem0Config).then((res) => {
- return res;
- }).catch((e) => {
- console.error("Error while adding memories");
- return { memories: [], messagesPrompts: [] };
+ // Add new memories — await to ensure writes complete before returning
+ try {
+ await addMemories(messagesPrompts, mem0Config);
+ } catch (e) {
+ console.error("Error while adding memories");
+ }
+
+ // Get memories (always returns an array since graph support is removed)
+ const memories: any[] = await getMemories(messagesPrompts, mem0Config) ?? [];
+
+ const mySystemPrompt = "These are the memories I have stored. Give more weightage to the question by users and try to answer that first. You have to modify your answer based on the memories I have provided. If the memories are irrelevant you can ignore them. Also don't reply to this section of the prompt, or the memories, they are only for your reference. The System prompt starts after text System Message: \n\n";
+
+ let memoriesText = "";
+ try {
+ memoriesText = memories
+ ?.map((memory: any) => `Memory: ${memory?.memory}\n\n`)
+ .join("\n\n");
+ } catch (e) {
+ console.error("Error while parsing memories");
+ }
+
+ const memoriesPrompt = `System Message: ${mySystemPrompt} ${memoriesText} `;
+
+ // Clone the prompt array to avoid mutating the caller's reference on retries
+ const updatedPrompts = [...messagesPrompts];
+
+ if (memories?.length > 0) {
+ const systemPrompt: LanguageModelV3Message = {
+ role: "system",
+ content: memoriesPrompt
+ };
+ updatedPrompts.unshift(systemPrompt);
+ }
+
+ return { memories, messagesPrompts: updatedPrompts };
+ } catch (e) {
+ console.error("Error while processing memories");
+ return { memories: [], messagesPrompts: [...messagesPrompts] };
+ }
+ }
+
+ async doGenerate(options: LanguageModelV3CallOptions): Promise {
+ const provider = this.config.provider;
+ const mem0_api_key = this.config.mem0ApiKey;
+
+ const settings: Mem0ProviderSettings = {
+ provider: provider,
+ mem0ApiKey: mem0_api_key,
+ apiKey: this.config.apiKey,
+ modelType: this.config.modelType,
+ }
+
+ const mem0Config: Mem0ConfigSettings = {
+ mem0ApiKey: mem0_api_key,
+ ...this.config.mem0Config,
+ ...this.settings,
+ }
+
+ const selector = new Mem0ClassSelector(this.modelId, settings, this.provider_config);
+
+ const { memories, messagesPrompts: updatedPrompts } = await this.processMemories(options.prompt, mem0Config);
+
+ const model = selector.createProvider();
+
+ const ans = await model.doGenerate({
+ ...options,
+ prompt: updatedPrompts,
});
- // Get Memories
- let memories = await getMemories(messagesPrompts, mem0Config);
-
- const mySystemPrompt = "These are the memories I have stored. Give more weightage to the question by users and try to answer that first. You have to modify your answer based on the memories I have provided. If the memories are irrelevant you can ignore them. Also don't reply to this section of the prompt, or the memories, they are only for your reference. The System prompt starts after text System Message: \n\n";
-
- const isGraphEnabled = mem0Config?.enable_graph;
-
- let memoriesText = "";
- let memoriesText2 = "";
- try {
- // @ts-ignore
- if (isGraphEnabled) {
- memoriesText = memories?.results?.map((memory: any) => {
- return `Memory: ${memory?.memory}\n\n`;
- }).join("\n\n");
-
- memoriesText2 = memories?.relations?.map((memory: any) => {
- return `Relation: ${memory?.source} -> ${memory?.relationship} -> ${memory?.target} \n\n`;
- }).join("\n\n");
- } else {
- memoriesText = memories?.map((memory: any) => {
- return `Memory: ${memory?.memory}\n\n`;
- }).join("\n\n");
- }
- } catch(e) {
- console.error("Error while parsing memories");
+ if (!memories || memories?.length === 0) {
+ return ans;
}
- let graphPrompt = "";
- if (isGraphEnabled) {
- graphPrompt = `HERE ARE THE GRAPHS RELATIONS FOR THE PREFERENCES OF THE USER:\n\n ${memoriesText2}`;
- }
-
- const memoriesPrompt = `System Message: ${mySystemPrompt} ${memoriesText} ${graphPrompt} `;
-
- // System Prompt - The memories go as a system prompt
- const systemPrompt: LanguageModelV2Message = {
- role: "system",
- content: memoriesPrompt
+ const mem0Source: LanguageModelV3Source = {
+ type: "source",
+ sourceType: "url",
+ id: "mem0-" + generateRandomId(),
+ url: "https://app.mem0.ai?utm_source=oss&utm_medium=vercel-ai-sdk-src",
+ title: "Mem0 Memories",
+ providerMetadata: {
+ mem0: {
+ memories: memories,
+ memoriesText: memories
+ ?.map((memory: any) => memory?.memory)
+ .join("\n\n"),
+ },
+ },
};
- // Add the system prompt to the beginning of the messages if there are memories
- if (memories?.length > 0) {
- messagesPrompts.unshift(systemPrompt);
- }
-
- if (isGraphEnabled) {
- memories = memories?.results;
- }
-
- return { memories, messagesPrompts };
- } catch(e) {
- console.error("Error while processing memories");
- return { memories: [], messagesPrompts };
- }
+ return {
+ ...ans,
+ content: [...(ans.content ?? []), mem0Source],
+ };
}
- async doGenerate(options: LanguageModelV2CallOptions): Promise>> {
- try {
- const provider = this.config.provider;
- const mem0_api_key = this.config.mem0ApiKey;
-
- const settings: Mem0ProviderSettings = {
- provider: provider,
- mem0ApiKey: mem0_api_key,
- apiKey: this.config.apiKey,
- }
-
- const mem0Config: Mem0ConfigSettings = {
- mem0ApiKey: mem0_api_key,
- ...this.config.mem0Config,
- ...this.settings,
- }
-
- const selector = new Mem0ClassSelector(this.modelId, settings, this.provider_config);
-
- let messagesPrompts = options.prompt;
-
- // Process memories and update prompts
- const { memories, messagesPrompts: updatedPrompts } = await this.processMemories(messagesPrompts, mem0Config);
-
- const model = selector.createProvider();
-
- const ans = await model.doGenerate({
- ...options,
- prompt: updatedPrompts,
- });
-
- // If there are no memories, return the original response
- if (!memories || memories?.length === 0) {
- return ans;
- }
-
- try {
- // Create sources array with existing sources
- const sources: LanguageModelV2Source[] = [
- {
- type: "source",
- title: "Mem0 Memories",
- sourceType: "url",
- id: "mem0-" + generateRandomId(),
- url: "https://app.mem0.ai?utm_source=oss&utm_medium=vercel-ai-sdk-src",
- providerMetadata: {
- mem0: {
- memories: memories,
- memoriesText: memories
- ?.map((memory: any) => memory?.memory)
- .join("\n\n"),
- },
- },
- },
- ];
- } catch (e) {
- console.error("Error while creating sources");
- }
-
- return {
- ...ans,
- // sources
- };
- } catch (error) {
- // Handle errors properly
- console.error("Error in doGenerate:", error);
- throw new Error("Failed to generate response.");
- }
- }
-
- async doStream(options: LanguageModelV2CallOptions): Promise>> {
+ async doStream(options: LanguageModelV3CallOptions): Promise {
try {
const provider = this.config.provider;
const mem0_api_key = this.config.mem0ApiKey;
-
+
const settings: Mem0ProviderSettings = {
provider: provider,
mem0ApiKey: mem0_api_key,
@@ -194,31 +150,18 @@ export class Mem0GenericLanguageModel implements LanguageModelV2 {
}
const selector = new Mem0ClassSelector(this.modelId, settings, this.provider_config);
-
- let messagesPrompts = options.prompt;
-
- // Process memories and update prompts
- const { memories, messagesPrompts: updatedPrompts } = await this.processMemories(messagesPrompts, mem0Config);
+
+ const { messagesPrompts: updatedPrompts } = await this.processMemories(options.prompt, mem0Config);
const baseModel = selector.createProvider();
- // Use the provider's native streaming directly to avoid buffering
const streamResponse = await baseModel.doStream({
...options,
prompt: updatedPrompts,
});
- // If there are no memories, return the original stream
- if (!memories || memories?.length === 0) {
- return streamResponse;
- }
-
- // Return stream untouched for true streaming behavior
- return {
- stream: streamResponse.stream,
- request: streamResponse.request,
- response: streamResponse.response,
- };
+ // Return the full stream response, preserving all V3 fields (warnings, etc.)
+ return streamResponse;
} catch (error) {
console.error("Error in doStream:", error);
throw new Error("Streaming failed or method not implemented.");
diff --git a/vercel-ai-sdk/src/mem0-provider-selector.ts b/vercel-ai-sdk/src/mem0-provider-selector.ts
index bdb3128f3..8b327e1e7 100644
--- a/vercel-ai-sdk/src/mem0-provider-selector.ts
+++ b/vercel-ai-sdk/src/mem0-provider-selector.ts
@@ -1,13 +1,13 @@
import { Mem0ProviderSettings } from "./mem0-provider";
import Mem0AITextGenerator, { ProviderSettings } from "./provider-response-provider";
-import { LanguageModelV2 } from '@ai-sdk/provider';
+import { LanguageModelV3 } from '@ai-sdk/provider';
class Mem0ClassSelector {
modelId: string;
provider_wrapper: string;
config: Mem0ProviderSettings;
provider_config?: ProviderSettings;
- static supportedProviders = ["openai", "anthropic", "cohere", "groq", "google"];
+ static supportedProviders = ["openai", "anthropic", "cohere", "groq", "google", "gemini"];
constructor(modelId: string, config: Mem0ProviderSettings, provider_config?: ProviderSettings) {
this.modelId = modelId;
@@ -24,7 +24,7 @@ class Mem0ClassSelector {
}
}
- createProvider(): LanguageModelV2 {
+ createProvider(): LanguageModelV3 {
return new Mem0AITextGenerator(this.modelId, this.config , this.provider_config || {});
}
}
diff --git a/vercel-ai-sdk/src/mem0-provider.ts b/vercel-ai-sdk/src/mem0-provider.ts
index 18de86369..4f043f030 100644
--- a/vercel-ai-sdk/src/mem0-provider.ts
+++ b/vercel-ai-sdk/src/mem0-provider.ts
@@ -1,20 +1,20 @@
-import { ProviderV2 } from '@ai-sdk/provider';
-import { LanguageModelV2 } from '@ai-sdk/provider';
+import { ProviderV3 } from '@ai-sdk/provider';
+import { LanguageModelV3 } from '@ai-sdk/provider';
import { withoutTrailingSlash } from "@ai-sdk/provider-utils";
import { Mem0ChatModelId, Mem0ChatSettings, Mem0Config } from "./mem0-types";
import { Mem0GenericLanguageModel } from "./mem0-generic-language-model";
import { LLMProviderSettings } from "./mem0-types";
-export interface Mem0Provider extends ProviderV2 {
- (modelId: Mem0ChatModelId, settings?: Mem0ChatSettings): LanguageModelV2;
+export interface Mem0Provider extends ProviderV3 {
+ (modelId: Mem0ChatModelId, settings?: Mem0ChatSettings): LanguageModelV3;
- chat(modelId: Mem0ChatModelId, settings?: Mem0ChatSettings): LanguageModelV2;
- completion(modelId: Mem0ChatModelId, settings?: Mem0ChatSettings): LanguageModelV2;
+ chat(modelId: Mem0ChatModelId, settings?: Mem0ChatSettings): LanguageModelV3;
+ completion(modelId: Mem0ChatModelId, settings?: Mem0ChatSettings): LanguageModelV3;
languageModel(
modelId: Mem0ChatModelId,
settings?: Mem0ChatSettings
- ): LanguageModelV2;
+ ): LanguageModelV3;
}
export interface Mem0ProviderSettings {
@@ -31,7 +31,7 @@ export interface Mem0ProviderSettings {
/**
* Custom headers to include in the requests.
*/
- headers?: Record;
+ headers?: Record;
name?: string;
mem0ApiKey?: string;
apiKey?: string;
@@ -51,7 +51,7 @@ export function createMem0(
}
): Mem0Provider {
const baseURL =
- withoutTrailingSlash(options.baseURL) ?? "http://api.openai.com";
+ withoutTrailingSlash(options.baseURL) ?? "https://api.openai.com";
const getHeaders = () => ({
...options.headers,
});
@@ -113,7 +113,7 @@ export function createMem0(
mem0ApiKey: options.mem0ApiKey,
apiKey: options.apiKey,
mem0Config: options.mem0Config,
- modelType: "completion",
+ modelType: "chat",
},
options.config
);
@@ -131,6 +131,7 @@ export function createMem0(
return createGenericModel(modelId, settings);
};
+ provider.specificationVersion = 'v3';
provider.languageModel = createGenericModel;
provider.completion = createCompletionModel;
provider.chat = createChatModel;
diff --git a/vercel-ai-sdk/src/mem0-types.ts b/vercel-ai-sdk/src/mem0-types.ts
index ed68aad0f..23fa0ed67 100644
--- a/vercel-ai-sdk/src/mem0-types.ts
+++ b/vercel-ai-sdk/src/mem0-types.ts
@@ -1,9 +1,9 @@
import { Mem0ProviderSettings } from "./mem0-provider";
import { OpenAIProviderSettings } from "@ai-sdk/openai";
import { AnthropicProviderSettings } from "@ai-sdk/anthropic";
-import { LanguageModelV2 } from '@ai-sdk/provider';
import { CohereProviderSettings } from "@ai-sdk/cohere";
import { GroqProviderSettings } from "@ai-sdk/groq";
+import { GoogleGenerativeAIProviderSettings } from "@ai-sdk/google";
export type Mem0ChatModelId =
| (string & NonNullable);
@@ -12,10 +12,6 @@ export interface Mem0ConfigSettings {
app_id?: string;
agent_id?: string;
run_id?: string;
- org_name?: string;
- project_name?: string;
- org_id?: string;
- project_id?: string;
metadata?: Record;
filters?: Record;
infer?: boolean;
@@ -25,20 +21,12 @@ export interface Mem0ConfigSettings {
top_k?: number;
threshold?: number;
rerank?: boolean;
- enable_graph?: boolean;
host?: string;
- output_format?: string;
- filter_memories?: boolean;
- async_mode?: boolean;
}
export interface Mem0ChatConfig extends Mem0ConfigSettings, Mem0ProviderSettings {}
-export interface LLMProviderSettings extends OpenAIProviderSettings, AnthropicProviderSettings, CohereProviderSettings, GroqProviderSettings {}
+export type LLMProviderSettings = OpenAIProviderSettings | AnthropicProviderSettings | CohereProviderSettings | GroqProviderSettings | GoogleGenerativeAIProviderSettings;
export interface Mem0Config extends Mem0ConfigSettings {}
export interface Mem0ChatSettings extends Mem0ConfigSettings {}
-
-export interface Mem0StreamResponse extends Awaited> {
- memories: any;
-}
diff --git a/vercel-ai-sdk/src/mem0-utils.ts b/vercel-ai-sdk/src/mem0-utils.ts
index 5601d5e53..55d485cbc 100644
--- a/vercel-ai-sdk/src/mem0-utils.ts
+++ b/vercel-ai-sdk/src/mem0-utils.ts
@@ -1,4 +1,4 @@
-import { LanguageModelV2Prompt } from '@ai-sdk/provider';
+import { LanguageModelV3Prompt } from '@ai-sdk/provider';
import { Mem0ConfigSettings } from './mem0-types';
import { loadApiKey } from '@ai-sdk/provider-utils';
interface MultimodalContent {
@@ -26,7 +26,7 @@ interface Message {
content: string | MultimodalContent | Array;
}
-const flattenPrompt = (prompt: LanguageModelV2Prompt) => {
+const flattenPrompt = (prompt: LanguageModelV3Prompt) => {
try {
return prompt.map((part) => {
if (part.role === "user") {
@@ -42,7 +42,6 @@ const flattenPrompt = (prompt: LanguageModelV2Prompt) => {
if (content.type === 'text' && content.text) {
return content.text;
} else if (content.type === 'file') {
- // For file content, we'll include a descriptive placeholder
if (content.mediaType === 'application/pdf') {
return '[PDF document]';
} else if (content.mediaType === 'text/markdown' || content.mediaType === 'application/mdx') {
@@ -54,8 +53,6 @@ const flattenPrompt = (prompt: LanguageModelV2Prompt) => {
}
}
}
- // For non-text content (images, pdfs, mdx), we'll include a placeholder
- // This helps maintain context for memory search while not breaking the text flow
return "[multimodal content]";
}
return "";
@@ -66,7 +63,7 @@ const flattenPrompt = (prompt: LanguageModelV2Prompt) => {
}
}
-const convertToMem0Format = (messages: LanguageModelV2Prompt) => {
+const convertToMem0Format = (messages: LanguageModelV3Prompt) => {
try {
return messages.flatMap((message: any) => {
try {
@@ -85,7 +82,6 @@ const convertToMem0Format = (messages: LanguageModelV2Prompt) => {
content: obj.text,
};
} else if (obj.type === "file") {
- // Handle LanguageModelV2Prompt file format
if (obj.mediaType === "application/pdf") {
return {
role: message.role,
@@ -155,7 +151,6 @@ const convertToMem0Format = (messages: LanguageModelV2Prompt) => {
}
}).filter((item: null) => item !== null);
} else {
- // Handle single multimodal content object
const obj = message.content;
if (obj.type === "text") {
return {
@@ -163,7 +158,6 @@ const convertToMem0Format = (messages: LanguageModelV2Prompt) => {
content: obj.text,
};
} else if (obj.type === "file") {
- // Handle LanguageModelV2Prompt file format
if (obj.mediaType === "application/pdf") {
return {
role: message.role,
@@ -239,63 +233,57 @@ const convertToMem0Format = (messages: LanguageModelV2Prompt) => {
}
}
-const searchInternalMemories = async (query: string, config?: Mem0ConfigSettings, top_k: number = 5) => {
+const searchInternalMemories = async (query: string, config?: Mem0ConfigSettings, top_k: number = 10) => {
try {
- const filters: { OR: Array<{ [key: string]: string | undefined }> } = {
- OR: [],
+ // v3: entity IDs go inside the filters object, not as top-level params
+ const filters: Record = {
+ ...(config?.filters ?? {}),
};
if (config?.user_id) {
- filters.OR.push({
- user_id: config.user_id,
- });
+ filters.user_id = config.user_id;
}
if (config?.app_id) {
- filters.OR.push({
- app_id: config.app_id,
- });
+ filters.app_id = config.app_id;
}
if (config?.agent_id) {
- filters.OR.push({
- agent_id: config.agent_id,
- });
+ filters.agent_id = config.agent_id;
}
if (config?.run_id) {
- filters.OR.push({
- run_id: config.run_id,
- });
- }
- const org_project_filters = {
- org_id: config&&config.org_id,
- project_id: config&&config.project_id,
- org_name: !config?.org_id ? config&&config.org_name : undefined,
- project_name: !config?.org_id ? config&&config.project_name : undefined,
+ filters.run_id = config.run_id;
}
const apiKey = loadApiKey({
- apiKey: (config&&config.mem0ApiKey),
+ apiKey: config?.mem0ApiKey,
environmentVariableName: "MEM0_API_KEY",
description: "Mem0",
});
+ const body: Record = {
+ query,
+ filters,
+ top_k: config?.top_k ?? top_k,
+ };
+ if (config?.threshold != null) {
+ body.threshold = config.threshold;
+ }
+ if (config?.rerank != null) {
+ body.rerank = config.rerank;
+ }
+ if (config?.metadata) {
+ body.metadata = config.metadata;
+ }
+
const options = {
method: 'POST',
headers: {
Authorization: `Token ${apiKey}`,
'Content-Type': 'application/json'
},
- body: JSON.stringify({
- query,
- filters,
- ...config,
- top_k: config&&config.top_k || top_k,
- version: "v2",
- output_format: "v1.1",
- ...org_project_filters
- }),
+ body: JSON.stringify(body),
};
const baseUrl = config?.host || 'https://api.mem0.ai';
- const response = await fetch(`${baseUrl}/v2/memories/search/`, options);
+ const response = await fetch(`${baseUrl}/v3/memories/search/`, options);
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
@@ -307,7 +295,7 @@ const searchInternalMemories = async (query: string, config?: Mem0ConfigSettings
}
}
-const addMemories = async (messages: LanguageModelV2Prompt, config?: Mem0ConfigSettings) => {
+const addMemories = async (messages: LanguageModelV3Prompt, config?: Mem0ConfigSettings) => {
try {
let finalMessages: Array = [];
if (typeof messages === "string") {
@@ -326,22 +314,30 @@ const addMemories = async (messages: LanguageModelV2Prompt, config?: Mem0ConfigS
const updateMemories = async (messages: Array, config?: Mem0ConfigSettings) => {
try {
const apiKey = loadApiKey({
- apiKey: (config&&config.mem0ApiKey),
+ apiKey: config?.mem0ApiKey,
environmentVariableName: "MEM0_API_KEY",
description: "Mem0",
});
+ const body: Record = { messages };
+ if (config?.user_id) body.user_id = config.user_id;
+ if (config?.app_id) body.app_id = config.app_id;
+ if (config?.agent_id) body.agent_id = config.agent_id;
+ if (config?.run_id) body.run_id = config.run_id;
+ if (config?.metadata) body.metadata = config.metadata;
+ if (config?.infer != null) body.infer = config.infer;
+
const options = {
method: 'POST',
headers: {
Authorization: `Token ${apiKey}`,
'Content-Type': 'application/json'
},
- body: JSON.stringify({messages, ...config, version: "v2"}),
+ body: JSON.stringify(body),
};
const baseUrl = config?.host || 'https://api.mem0.ai';
- const response = await fetch(`${baseUrl}/v1/memories/`, options);
+ const response = await fetch(`${baseUrl}/v3/memories/add/`, options);
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
@@ -353,58 +349,43 @@ const updateMemories = async (messages: Array, config?: Mem0ConfigSetti
}
}
-const retrieveMemories = async (prompt: LanguageModelV2Prompt | string, config?: Mem0ConfigSettings) => {
+const retrieveMemories = async (prompt: LanguageModelV3Prompt | string, config?: Mem0ConfigSettings) => {
try {
const message = typeof prompt === 'string' ? prompt : flattenPrompt(prompt);
const systemPrompt = "These are the memories I have stored. Give more weightage to the question by users and try to answer that first. You have to modify your answer based on the memories I have provided. If the memories are irrelevant you can ignore them. Also don't reply to this section of the prompt, or the memories, they are only for your reference. The System prompt starts after text System Message: \n\n";
-
- const memories = await searchInternalMemories(message, config);
- let memoriesText1 = "";
- let memoriesText2 = "";
- let graphPrompt = "";
- try {
- memoriesText1 = memories?.results?.map((memory: any) => {
- return `Memory: ${memory.memory}\n\n`;
- }).join("\n\n");
+ const data = await searchInternalMemories(message, config);
+ // The API response may be a flat array or an object with a results key
+ const memories: any[] = Array.isArray(data) ? data : (data?.results ?? []);
- if (config?.enable_graph) {
- memoriesText2 = memories?.relations?.map((memory: any) => {
- return `Relation: ${memory.source} -> ${memory.relationship} -> ${memory.target} \n\n`;
- }).join("\n\n");
- graphPrompt = `HERE ARE THE GRAPHS RELATIONS FOR THE PREFERENCES OF THE USER:\n\n ${memoriesText2}`;
- }
- } catch (error) {
- console.error("Error while parsing memories:", error);
- }
-
- if (!memories || memories?.length === 0) {
+ if (memories.length === 0) {
return "";
}
- return `System Message: ${systemPrompt} ${memoriesText1} ${graphPrompt}`;
+ const memoriesText = memories
+ .map((memory: any) => `Memory: ${memory.memory}\n\n`)
+ .join("\n\n");
+
+ return `System Message: ${systemPrompt} ${memoriesText}`;
} catch (error) {
console.error("Error in retrieveMemories:", error);
throw error;
}
}
-const getMemories = async (prompt: LanguageModelV2Prompt | string, config?: Mem0ConfigSettings) => {
+const getMemories = async (prompt: LanguageModelV3Prompt | string, config?: Mem0ConfigSettings) => {
try {
const message = typeof prompt === 'string' ? prompt : flattenPrompt(prompt);
- const memories = await searchInternalMemories(message, config);
-
- if (!config?.enable_graph) {
- return memories?.results;
- }
- return memories;
+ const data = await searchInternalMemories(message, config);
+ // Normalize: always return a flat array regardless of API response shape
+ return Array.isArray(data) ? data : (data?.results ?? []);
} catch (error) {
console.error("Error in getMemories:", error);
throw error;
}
}
-const searchMemories = async (prompt: LanguageModelV2Prompt | string, config?: Mem0ConfigSettings) => {
+const searchMemories = async (prompt: LanguageModelV3Prompt | string, config?: Mem0ConfigSettings) => {
try {
const message = typeof prompt === 'string' ? prompt : flattenPrompt(prompt);
const memories = await searchInternalMemories(message, config);
@@ -415,4 +396,4 @@ const searchMemories = async (prompt: LanguageModelV2Prompt | string, config?: M
}
}
-export {addMemories, updateMemories, retrieveMemories, flattenPrompt, searchMemories, getMemories};
\ No newline at end of file
+export {addMemories, updateMemories, retrieveMemories, flattenPrompt, searchMemories, getMemories};
diff --git a/vercel-ai-sdk/src/provider-response-provider.ts b/vercel-ai-sdk/src/provider-response-provider.ts
index c849bd289..1716d0b3a 100644
--- a/vercel-ai-sdk/src/provider-response-provider.ts
+++ b/vercel-ai-sdk/src/provider-response-provider.ts
@@ -1,4 +1,4 @@
-import { LanguageModelV2, LanguageModelV2CallOptions } from "@ai-sdk/provider";
+import { LanguageModelV3, LanguageModelV3CallOptions, LanguageModelV3GenerateResult, LanguageModelV3StreamResult } from "@ai-sdk/provider";
import { Mem0ProviderSettings } from "./mem0-provider";
import { createOpenAI, OpenAIProviderSettings } from "@ai-sdk/openai";
import { CohereProviderSettings, createCohere } from "@ai-sdk/cohere";
@@ -7,10 +7,8 @@ import { createGoogleGenerativeAI, GoogleGenerativeAIProviderSettings } from "@a
import { createGroq, GroqProviderSettings } from "@ai-sdk/groq";
// Define a private provider field
-class Mem0AITextGenerator implements LanguageModelV2 {
- readonly specificationVersion = "v2";
- readonly defaultObjectGenerationMode = "json";
- readonly supportsImageUrls = false;
+class Mem0AITextGenerator implements LanguageModelV3 {
+ readonly specificationVersion = "v3";
readonly modelId: string;
readonly provider = "mem0";
readonly supportedUrls: Record = {
@@ -59,11 +57,6 @@ class Mem0AITextGenerator implements LanguageModelV2 {
})(modelId);
break;
case "google":
- this.languageModel = createGoogleGenerativeAI({
- apiKey: config?.apiKey,
- ...provider_config as GoogleGenerativeAIProviderSettings,
- })(modelId);
- break;
case "gemini":
this.languageModel = createGoogleGenerativeAI({
apiKey: config?.apiKey,
@@ -74,15 +67,15 @@ class Mem0AITextGenerator implements LanguageModelV2 {
throw new Error("Invalid provider");
}
}
-
- async doGenerate(options: LanguageModelV2CallOptions): Promise>> {
+
+ async doGenerate(options: LanguageModelV3CallOptions): Promise {
const result = await this.languageModel.doGenerate(options);
- return result as Awaited>;
+ return result as LanguageModelV3GenerateResult;
}
- async doStream(options: LanguageModelV2CallOptions): Promise>> {
+ async doStream(options: LanguageModelV3CallOptions): Promise {
const result = await this.languageModel.doStream(options);
- return result as Awaited>;
+ return result as LanguageModelV3StreamResult;
}
}
diff --git a/vercel-ai-sdk/tests/generate-output.test.ts b/vercel-ai-sdk/tests/generate-output.test.ts
index 45d1b952f..b41c1da8a 100644
--- a/vercel-ai-sdk/tests/generate-output.test.ts
+++ b/vercel-ai-sdk/tests/generate-output.test.ts
@@ -1,5 +1,5 @@
import { generateText, streamText } from "ai";
-import { LanguageModelV2Prompt } from '@ai-sdk/provider';
+import { LanguageModelV3Prompt } from '@ai-sdk/provider';
import { simulateStreamingMiddleware, wrapLanguageModel } from 'ai';
import { addMemories } from "../src";
import { testConfig } from "../config/test-config";
@@ -21,7 +21,7 @@ describe.each(testConfig.providers)('TESTS: Generate/Stream Text with model %s',
beforeAll(async () => {
// Add some test memories before all tests
- const messages: LanguageModelV2Prompt = [
+ const messages: LanguageModelV3Prompt = [
{
role: "user",
content: [
diff --git a/vercel-ai-sdk/tests/mem0-provider-tests/mem0-cohere.test.ts b/vercel-ai-sdk/tests/mem0-provider-tests/mem0-cohere.test.ts
index a1a8cb4ec..db28723f4 100644
--- a/vercel-ai-sdk/tests/mem0-provider-tests/mem0-cohere.test.ts
+++ b/vercel-ai-sdk/tests/mem0-provider-tests/mem0-cohere.test.ts
@@ -3,7 +3,7 @@ dotenv.config();
import { createMem0, retrieveMemories } from "../../src";
import { generateText } from "ai";
-import { LanguageModelV2Prompt } from '@ai-sdk/provider';
+import { LanguageModelV3Prompt } from '@ai-sdk/provider';
import { testConfig } from "../../config/test-config";
import { createCohere } from "@ai-sdk/cohere";
@@ -23,7 +23,7 @@ describe("COHERE MEM0 Tests", () => {
});
it("should retrieve memories and generate text using COHERE provider", async () => {
- const messages: LanguageModelV2Prompt = [
+ const messages: LanguageModelV3Prompt = [
{
role: "user",
content: [
diff --git a/vercel-ai-sdk/tests/mem0-provider-tests/mem0-google.test.ts b/vercel-ai-sdk/tests/mem0-provider-tests/mem0-google.test.ts
index cc4196b83..d969feb6b 100644
--- a/vercel-ai-sdk/tests/mem0-provider-tests/mem0-google.test.ts
+++ b/vercel-ai-sdk/tests/mem0-provider-tests/mem0-google.test.ts
@@ -3,7 +3,7 @@ dotenv.config();
import { createMem0 } from "../../src";
import { generateText } from "ai";
-import { LanguageModelV2Prompt } from '@ai-sdk/provider';
+import { LanguageModelV3Prompt } from '@ai-sdk/provider';
import { testConfig } from "../../config/test-config";
describe("GOOGLE MEM0 Tests", () => {
@@ -23,7 +23,7 @@ describe("GOOGLE MEM0 Tests", () => {
});
it("should retrieve memories and generate text using Google provider", async () => {
- const messages: LanguageModelV2Prompt = [
+ const messages: LanguageModelV3Prompt = [
{
role: "user",
content: [
diff --git a/vercel-ai-sdk/tests/mem0-provider-tests/mem0-groq.test.ts b/vercel-ai-sdk/tests/mem0-provider-tests/mem0-groq.test.ts
index caa0d2bf1..9f6f3e7e2 100644
--- a/vercel-ai-sdk/tests/mem0-provider-tests/mem0-groq.test.ts
+++ b/vercel-ai-sdk/tests/mem0-provider-tests/mem0-groq.test.ts
@@ -3,7 +3,7 @@ dotenv.config();
import { createMem0, retrieveMemories } from "../../src";
import { generateText } from "ai";
-import { LanguageModelV2Prompt } from '@ai-sdk/provider';
+import { LanguageModelV3Prompt } from '@ai-sdk/provider';
import { testConfig } from "../../config/test-config";
import { createGroq } from "@ai-sdk/groq";
@@ -24,7 +24,7 @@ describe("GROQ MEM0 Tests", () => {
});
it("should retrieve memories and generate text using GROQ provider", async () => {
- const messages: LanguageModelV2Prompt = [
+ const messages: LanguageModelV3Prompt = [
{
role: "user",
content: [
diff --git a/vercel-ai-sdk/tests/mem0-provider-tests/mem0-openai.test.ts b/vercel-ai-sdk/tests/mem0-provider-tests/mem0-openai.test.ts
index 10d19f060..8a94d0607 100644
--- a/vercel-ai-sdk/tests/mem0-provider-tests/mem0-openai.test.ts
+++ b/vercel-ai-sdk/tests/mem0-provider-tests/mem0-openai.test.ts
@@ -3,7 +3,7 @@ dotenv.config();
import { createMem0 } from "../../src";
import { generateText } from "ai";
-import { LanguageModelV2Prompt } from '@ai-sdk/provider';
+import { LanguageModelV3Prompt } from '@ai-sdk/provider';
import { testConfig } from "../../config/test-config";
describe("OPENAI MEM0 Tests", () => {
@@ -22,7 +22,7 @@ describe("OPENAI MEM0 Tests", () => {
});
it("should retrieve memories and generate text using Mem0 OpenAI provider", async () => {
- const messages: LanguageModelV2Prompt = [
+ const messages: LanguageModelV3Prompt = [
{
role: "user",
content: [
diff --git a/vercel-ai-sdk/tests/mem0-provider-tests/mem0_anthropic.test.ts b/vercel-ai-sdk/tests/mem0-provider-tests/mem0_anthropic.test.ts
index 39034c11e..e3079bcfa 100644
--- a/vercel-ai-sdk/tests/mem0-provider-tests/mem0_anthropic.test.ts
+++ b/vercel-ai-sdk/tests/mem0-provider-tests/mem0_anthropic.test.ts
@@ -3,7 +3,7 @@ dotenv.config();
import { createMem0, retrieveMemories } from "../../src";
import { generateText } from "ai";
-import { LanguageModelV2Prompt } from '@ai-sdk/provider';
+import { LanguageModelV3Prompt } from '@ai-sdk/provider';
import { testConfig } from "../../config/test-config";
import { createAnthropic } from "@ai-sdk/anthropic";
@@ -24,7 +24,7 @@ describe("ANTHROPIC MEM0 Tests", () => {
});
it("should retrieve memories and generate text using ANTHROPIC provider", async () => {
- const messages: LanguageModelV2Prompt = [
+ const messages: LanguageModelV3Prompt = [
{
role: "user",
content: [
diff --git a/vercel-ai-sdk/tests/memory-core.test.ts b/vercel-ai-sdk/tests/memory-core.test.ts
index 5aa5493a0..4d6c7f392 100644
--- a/vercel-ai-sdk/tests/memory-core.test.ts
+++ b/vercel-ai-sdk/tests/memory-core.test.ts
@@ -1,5 +1,5 @@
import { addMemories, retrieveMemories } from "../src";
-import { LanguageModelV2Prompt } from '@ai-sdk/provider';
+import { LanguageModelV3Prompt } from '@ai-sdk/provider';
import { testConfig } from "../config/test-config";
describe("Memory Core Functions", () => {
@@ -8,7 +8,7 @@ describe("Memory Core Functions", () => {
describe("addMemories", () => {
it("should successfully add memories and return correct format", async () => {
- const messages: LanguageModelV2Prompt = [
+ const messages: LanguageModelV3Prompt = [
{
role: "user",
content: [
@@ -34,7 +34,7 @@ describe("Memory Core Functions", () => {
describe("retrieveMemories", () => {
beforeEach(async () => {
// Add some test memories before each retrieval test
- const messages: LanguageModelV2Prompt = [
+ const messages: LanguageModelV3Prompt = [
{
role: "user",
content: [
@@ -56,7 +56,7 @@ describe("Memory Core Functions", () => {
});
it("should retrieve memories with array of prompts", async () => {
- const messages: LanguageModelV2Prompt = [
+ const messages: LanguageModelV3Prompt = [
{
role: "user",
content: [
diff --git a/vercel-ai-sdk/tests/utils-test/anthropic-integration.test.ts b/vercel-ai-sdk/tests/utils-test/anthropic-integration.test.ts
index 8e0ccaf92..343335da7 100644
--- a/vercel-ai-sdk/tests/utils-test/anthropic-integration.test.ts
+++ b/vercel-ai-sdk/tests/utils-test/anthropic-integration.test.ts
@@ -3,7 +3,7 @@ dotenv.config();
import { retrieveMemories } from "../../src";
import { generateText } from "ai";
-import { LanguageModelV2Prompt } from '@ai-sdk/provider';
+import { LanguageModelV3Prompt } from '@ai-sdk/provider';
import { testConfig } from "../../config/test-config";
import { createAnthropic } from "@ai-sdk/anthropic";
@@ -20,7 +20,7 @@ describe("ANTHROPIC Integration Tests", () => {
});
it("should retrieve memories and generate text using ANTHROPIC provider", async () => {
- const messages: LanguageModelV2Prompt = [
+ const messages: LanguageModelV3Prompt = [
{
role: "user",
content: [
diff --git a/vercel-ai-sdk/tests/utils-test/cohere-integration.test.ts b/vercel-ai-sdk/tests/utils-test/cohere-integration.test.ts
index 2cd1f241a..7381c68e8 100644
--- a/vercel-ai-sdk/tests/utils-test/cohere-integration.test.ts
+++ b/vercel-ai-sdk/tests/utils-test/cohere-integration.test.ts
@@ -3,7 +3,7 @@ dotenv.config();
import { retrieveMemories } from "../../src";
import { generateText } from "ai";
-import { LanguageModelV2Prompt } from '@ai-sdk/provider';
+import { LanguageModelV3Prompt } from '@ai-sdk/provider';
import { testConfig } from "../../config/test-config";
import { createCohere } from "@ai-sdk/cohere";
@@ -19,7 +19,7 @@ describe("COHERE Integration Tests", () => {
});
it("should retrieve memories and generate text using COHERE provider", async () => {
- const messages: LanguageModelV2Prompt = [
+ const messages: LanguageModelV3Prompt = [
{
role: "user",
content: [
diff --git a/vercel-ai-sdk/tests/utils-test/google-integration.test.ts b/vercel-ai-sdk/tests/utils-test/google-integration.test.ts
index 05bd93e76..eeddaa802 100644
--- a/vercel-ai-sdk/tests/utils-test/google-integration.test.ts
+++ b/vercel-ai-sdk/tests/utils-test/google-integration.test.ts
@@ -3,7 +3,7 @@ dotenv.config();
import { retrieveMemories } from "../../src";
import { generateText } from "ai";
-import { LanguageModelV2Prompt } from '@ai-sdk/provider';
+import { LanguageModelV3Prompt } from '@ai-sdk/provider';
import { testConfig } from "../../config/test-config";
import { createGoogleGenerativeAI } from "@ai-sdk/google";
@@ -19,7 +19,7 @@ describe("GOOGLE Integration Tests", () => {
});
it("should retrieve memories and generate text using Google provider", async () => {
- const messages: LanguageModelV2Prompt = [
+ const messages: LanguageModelV3Prompt = [
{
role: "user",
content: [
diff --git a/vercel-ai-sdk/tests/utils-test/groq-integration.test.ts b/vercel-ai-sdk/tests/utils-test/groq-integration.test.ts
index 6e65e772d..715da1fb4 100644
--- a/vercel-ai-sdk/tests/utils-test/groq-integration.test.ts
+++ b/vercel-ai-sdk/tests/utils-test/groq-integration.test.ts
@@ -3,7 +3,7 @@ dotenv.config();
import { retrieveMemories } from "../../src";
import { generateText } from "ai";
-import { LanguageModelV2Prompt } from '@ai-sdk/provider';
+import { LanguageModelV3Prompt } from '@ai-sdk/provider';
import { testConfig } from "../../config/test-config";
import { createGroq } from "@ai-sdk/groq";
@@ -20,7 +20,7 @@ describe("GROQ Integration Tests", () => {
});
it("should retrieve memories and generate text using GROQ provider", async () => {
- const messages: LanguageModelV2Prompt = [
+ const messages: LanguageModelV3Prompt = [
{
role: "user",
content: [
diff --git a/vercel-ai-sdk/tests/utils-test/openai-integration.test.ts b/vercel-ai-sdk/tests/utils-test/openai-integration.test.ts
index 4cbadfbe1..f74211754 100644
--- a/vercel-ai-sdk/tests/utils-test/openai-integration.test.ts
+++ b/vercel-ai-sdk/tests/utils-test/openai-integration.test.ts
@@ -3,7 +3,7 @@ dotenv.config();
import { retrieveMemories } from "../../src";
import { generateText } from "ai";
-import { LanguageModelV2Prompt } from '@ai-sdk/provider';
+import { LanguageModelV3Prompt } from '@ai-sdk/provider';
import { testConfig } from "../../config/test-config";
import { createOpenAI } from "@ai-sdk/openai";
@@ -19,7 +19,7 @@ describe("OPENAI Integration Tests", () => {
});
it("should retrieve memories and generate text using OpenAI provider", async () => {
- const messages: LanguageModelV2Prompt = [
+ const messages: LanguageModelV3Prompt = [
{
role: "user",
content: [
diff --git a/vercel-ai-sdk/tests/v3-provider-contract.test.ts b/vercel-ai-sdk/tests/v3-provider-contract.test.ts
new file mode 100644
index 000000000..0ef9a2d90
--- /dev/null
+++ b/vercel-ai-sdk/tests/v3-provider-contract.test.ts
@@ -0,0 +1,486 @@
+import { createMem0, Mem0Provider } from "../src";
+import { Mem0GenericLanguageModel } from "../src/mem0-generic-language-model";
+import { Mem0ClassSelector } from "../src/mem0-provider-selector";
+import Mem0AITextGenerator from "../src/provider-response-provider";
+import { Mem0ConfigSettings } from "../src/mem0-types";
+
+// Mock fetch globally for memory API tests
+const mockFetch = jest.fn();
+global.fetch = mockFetch;
+
+describe("V3 Provider Contract", () => {
+ beforeEach(() => {
+ mockFetch.mockReset();
+ });
+
+ describe("Mem0Provider factory", () => {
+ let provider: Mem0Provider;
+
+ beforeEach(() => {
+ provider = createMem0({
+ provider: "openai",
+ mem0ApiKey: "test-key",
+ apiKey: "test-openai-key",
+ });
+ });
+
+ it("should have specificationVersion v3", () => {
+ expect(provider.specificationVersion).toBe("v3");
+ });
+
+ it("should expose languageModel, chat, and completion methods", () => {
+ expect(typeof provider.languageModel).toBe("function");
+ expect(typeof provider.chat).toBe("function");
+ expect(typeof provider.completion).toBe("function");
+ });
+
+ it("should be callable as a function", () => {
+ const model = provider("gpt-4o");
+ expect(model).toBeDefined();
+ expect(model.specificationVersion).toBe("v3");
+ });
+
+ it("should throw when called with new keyword", () => {
+ expect(() => new (provider as any)("gpt-4o")).toThrow(
+ "The Mem0 model function cannot be called with the new keyword."
+ );
+ });
+ });
+
+ describe("Mem0GenericLanguageModel V3 interface", () => {
+ let model: Mem0GenericLanguageModel;
+
+ beforeEach(() => {
+ model = new Mem0GenericLanguageModel(
+ "gpt-4o",
+ { user_id: "test-user" },
+ {
+ provider: "openai",
+ mem0ApiKey: "test-key",
+ apiKey: "test-openai-key",
+ }
+ );
+ });
+
+ it("should implement specificationVersion v3", () => {
+ expect(model.specificationVersion).toBe("v3");
+ });
+
+ it("should not have deprecated V2 properties", () => {
+ expect((model as any).defaultObjectGenerationMode).toBeUndefined();
+ expect((model as any).supportsImageUrls).toBeUndefined();
+ });
+
+ it("should have supportedUrls as a record", () => {
+ expect(model.supportedUrls).toBeDefined();
+ expect(typeof model.supportedUrls).toBe("object");
+ expect(model.supportedUrls["*"]).toBeDefined();
+ expect(Array.isArray(model.supportedUrls["*"])).toBe(true);
+ });
+
+ it("should have doGenerate and doStream methods", () => {
+ expect(typeof model.doGenerate).toBe("function");
+ expect(typeof model.doStream).toBe("function");
+ });
+
+ it("should have provider and modelId properties", () => {
+ expect(model.provider).toBe("openai");
+ expect(model.modelId).toBe("gpt-4o");
+ });
+ });
+
+ describe("Mem0ClassSelector", () => {
+ const supportedProviders = ["openai", "anthropic", "cohere", "groq", "google", "gemini"];
+
+ it.each(supportedProviders)("should accept %s as a valid provider", (providerName) => {
+ const selector = new Mem0ClassSelector(
+ "test-model",
+ { provider: providerName, apiKey: "test-key" }
+ );
+ expect(selector).toBeDefined();
+ });
+
+ it("should throw for unsupported provider", () => {
+ expect(
+ () => new Mem0ClassSelector("test-model", { provider: "invalid-provider" })
+ ).toThrow("Model not supported: invalid-provider");
+ });
+
+ it("should create a V3 provider instance", () => {
+ const selector = new Mem0ClassSelector(
+ "gpt-4o",
+ { provider: "openai", apiKey: "test-key" }
+ );
+ const provider = selector.createProvider();
+ expect(provider.specificationVersion).toBe("v3");
+ expect(typeof provider.doGenerate).toBe("function");
+ expect(typeof provider.doStream).toBe("function");
+ });
+ });
+
+ describe("Provider modelType routing", () => {
+ it("should create chat model with chat modelType", () => {
+ const provider = createMem0({
+ provider: "openai",
+ mem0ApiKey: "test-key",
+ apiKey: "test-openai-key",
+ });
+
+ const chatModel = provider.chat("gpt-4o");
+ expect(chatModel).toBeDefined();
+ expect(chatModel.specificationVersion).toBe("v3");
+ expect((chatModel as any).config.modelType).toBe("chat");
+ });
+
+ it("should create completion model with completion modelType", () => {
+ const provider = createMem0({
+ provider: "openai",
+ mem0ApiKey: "test-key",
+ apiKey: "test-openai-key",
+ });
+
+ const completionModel = provider.completion("gpt-4o");
+ expect(completionModel).toBeDefined();
+ expect(completionModel.specificationVersion).toBe("v3");
+ expect((completionModel as any).config.modelType).toBe("completion");
+ });
+ });
+
+ describe("Default baseURL", () => {
+ it("should default to https, not http", () => {
+ const provider = createMem0({
+ provider: "openai",
+ mem0ApiKey: "test-key",
+ });
+ const model = provider("gpt-4o") as Mem0GenericLanguageModel;
+ expect((model as any).config.baseURL).toMatch(/^https:\/\//);
+ });
+ });
+
+ describe("google/gemini alias routing", () => {
+ it("should route google and gemini to the same provider", () => {
+ const googleModel = new Mem0AITextGenerator(
+ "gemini-2.0-flash",
+ { provider: "google", apiKey: "test-key" },
+ {}
+ );
+ const geminiModel = new Mem0AITextGenerator(
+ "gemini-2.0-flash",
+ { provider: "gemini", apiKey: "test-key" },
+ {}
+ );
+ expect(googleModel.specificationVersion).toBe("v3");
+ expect(geminiModel.specificationVersion).toBe("v3");
+ expect(googleModel.modelId).toBe(geminiModel.modelId);
+ });
+ });
+
+ describe("Graph memory removal", () => {
+ it("should not have enable_graph in Mem0ConfigSettings type", () => {
+ const config: Mem0ConfigSettings = {
+ user_id: "test-user",
+ mem0ApiKey: "test-key",
+ };
+ expect((config as any).enable_graph).toBeUndefined();
+ });
+ });
+
+ describe("processMemories prompt cloning", () => {
+ it("should not mutate the original prompt array", async () => {
+ const model = new Mem0GenericLanguageModel(
+ "gpt-4o",
+ { user_id: "test-user" },
+ {
+ provider: "openai",
+ mem0ApiKey: "test-key",
+ apiKey: "test-openai-key",
+ }
+ );
+
+ const originalPrompt = [
+ { role: "user" as const, content: [{ type: "text" as const, text: "Hello" }] },
+ ];
+ const originalLength = originalPrompt.length;
+
+ // Mock both Mem0 API calls — addMemories (POST /v3/memories/add/) and getMemories (POST /v3/memories/search/)
+ mockFetch
+ .mockResolvedValueOnce({
+ ok: true,
+ json: async () => ({ results: [] }),
+ })
+ .mockResolvedValueOnce({
+ ok: true,
+ json: async () => [
+ { memory: "User likes TypeScript" },
+ ],
+ });
+
+ // Access processMemories via reflection
+ const processMemories = (model as any).processMemories.bind(model);
+ await processMemories(originalPrompt, { mem0ApiKey: "test-key", user_id: "test-user" });
+
+ // Original prompt should NOT have been mutated
+ expect(originalPrompt.length).toBe(originalLength);
+ });
+ });
+
+ describe("getMemories normalization", () => {
+ it("should return a flat array when API returns a flat array", async () => {
+ const { getMemories } = require("../src/mem0-utils");
+
+ mockFetch.mockResolvedValueOnce({
+ ok: true,
+ json: async () => [
+ { memory: "User prefers dark mode" },
+ { memory: "User likes React" },
+ ],
+ });
+
+ const result = await getMemories("test query", { mem0ApiKey: "test-key", user_id: "test-user" });
+ expect(Array.isArray(result)).toBe(true);
+ expect(result).toHaveLength(2);
+ expect(result[0].memory).toBe("User prefers dark mode");
+ });
+
+ it("should return a flat array when API returns { results: [...] }", async () => {
+ const { getMemories } = require("../src/mem0-utils");
+
+ mockFetch.mockResolvedValueOnce({
+ ok: true,
+ json: async () => ({
+ results: [
+ { memory: "User prefers dark mode" },
+ ],
+ }),
+ });
+
+ const result = await getMemories("test query", { mem0ApiKey: "test-key", user_id: "test-user" });
+ expect(Array.isArray(result)).toBe(true);
+ expect(result).toHaveLength(1);
+ });
+
+ it("should return empty array when API returns empty results", async () => {
+ const { getMemories } = require("../src/mem0-utils");
+
+ mockFetch.mockResolvedValueOnce({
+ ok: true,
+ json: async () => [],
+ });
+
+ const result = await getMemories("test query", { mem0ApiKey: "test-key", user_id: "test-user" });
+ expect(Array.isArray(result)).toBe(true);
+ expect(result).toHaveLength(0);
+ });
+ });
+
+ describe("retrieveMemories normalization", () => {
+ it("should return empty string when no memories exist", async () => {
+ const { retrieveMemories } = require("../src/mem0-utils");
+
+ mockFetch.mockResolvedValueOnce({
+ ok: true,
+ json: async () => [],
+ });
+
+ const result = await retrieveMemories("test query", { mem0ApiKey: "test-key", user_id: "test-user" });
+ expect(result).toBe("");
+ });
+
+ it("should return formatted string when memories exist as flat array", async () => {
+ const { retrieveMemories } = require("../src/mem0-utils");
+
+ mockFetch.mockResolvedValueOnce({
+ ok: true,
+ json: async () => [
+ { memory: "User likes pizza" },
+ ],
+ });
+
+ const result = await retrieveMemories("test query", { mem0ApiKey: "test-key", user_id: "test-user" });
+ expect(result).toContain("System Message:");
+ expect(result).toContain("User likes pizza");
+ });
+
+ it("should return formatted string when memories come as { results: [...] }", async () => {
+ const { retrieveMemories } = require("../src/mem0-utils");
+
+ mockFetch.mockResolvedValueOnce({
+ ok: true,
+ json: async () => ({
+ results: [{ memory: "User likes pizza" }],
+ }),
+ });
+
+ const result = await retrieveMemories("test query", { mem0ApiKey: "test-key", user_id: "test-user" });
+ expect(result).toContain("System Message:");
+ expect(result).toContain("User likes pizza");
+ });
+ });
+
+ describe("top_k zero handling", () => {
+ it("should respect top_k: 0 and not fall back to default", async () => {
+ const { searchMemories } = require("../src/mem0-utils");
+
+ mockFetch.mockResolvedValueOnce({
+ ok: true,
+ json: async () => [],
+ });
+
+ await searchMemories("test query", {
+ mem0ApiKey: "test-key",
+ user_id: "test-user",
+ top_k: 0,
+ });
+
+ const body = JSON.parse(mockFetch.mock.calls[0][1].body);
+ expect(body.top_k).toBe(0);
+ });
+ });
+
+ describe("Mem0 v3 API migration", () => {
+ it("should call /v3/memories/search/ endpoint for search", async () => {
+ const { searchMemories } = require("../src/mem0-utils");
+
+ mockFetch.mockResolvedValueOnce({
+ ok: true,
+ json: async () => [],
+ });
+
+ await searchMemories("test query", { mem0ApiKey: "test-key", user_id: "test-user" });
+
+ const url = mockFetch.mock.calls[0][0];
+ expect(url).toBe("https://api.mem0.ai/v3/memories/search/");
+ });
+
+ it("should call /v3/memories/add/ endpoint for add", async () => {
+ const { addMemories } = require("../src/mem0-utils");
+
+ mockFetch.mockResolvedValueOnce({
+ ok: true,
+ json: async () => ({ message: "ok", status: "PENDING", event_id: "test" }),
+ });
+
+ await addMemories(
+ [{ role: "user" as const, content: [{ type: "text" as const, text: "Hello" }] }],
+ { mem0ApiKey: "test-key", user_id: "test-user" }
+ );
+
+ const url = mockFetch.mock.calls[0][0];
+ expect(url).toBe("https://api.mem0.ai/v3/memories/add/");
+ });
+
+ it("should put entity IDs inside filters for search (not top-level)", async () => {
+ const { searchMemories } = require("../src/mem0-utils");
+
+ mockFetch.mockResolvedValueOnce({
+ ok: true,
+ json: async () => [],
+ });
+
+ await searchMemories("test query", {
+ mem0ApiKey: "test-key",
+ user_id: "user-123",
+ agent_id: "agent-456",
+ });
+
+ const body = JSON.parse(mockFetch.mock.calls[0][1].body);
+ expect(body.filters.user_id).toBe("user-123");
+ expect(body.filters.agent_id).toBe("agent-456");
+ // Should NOT be top-level
+ expect(body.user_id).toBeUndefined();
+ expect(body.agent_id).toBeUndefined();
+ });
+
+ it("should not send deprecated v2 params (version, output_format, org_id, etc.)", async () => {
+ const { searchMemories } = require("../src/mem0-utils");
+
+ mockFetch.mockResolvedValueOnce({
+ ok: true,
+ json: async () => [],
+ });
+
+ await searchMemories("test query", { mem0ApiKey: "test-key", user_id: "test-user" });
+
+ const body = JSON.parse(mockFetch.mock.calls[0][1].body);
+ expect(body.version).toBeUndefined();
+ expect(body.output_format).toBeUndefined();
+ expect(body.org_id).toBeUndefined();
+ expect(body.project_id).toBeUndefined();
+ expect(body.org_name).toBeUndefined();
+ expect(body.project_name).toBeUndefined();
+ });
+
+ it("should not send deprecated params in add body", async () => {
+ const { addMemories } = require("../src/mem0-utils");
+
+ mockFetch.mockResolvedValueOnce({
+ ok: true,
+ json: async () => ({ message: "ok", status: "PENDING", event_id: "test" }),
+ });
+
+ await addMemories(
+ [{ role: "user" as const, content: [{ type: "text" as const, text: "Hello" }] }],
+ { mem0ApiKey: "test-key", user_id: "test-user" }
+ );
+
+ const body = JSON.parse(mockFetch.mock.calls[0][1].body);
+ expect(body.version).toBeUndefined();
+ expect(body.async_mode).toBeUndefined();
+ expect(body.output_format).toBeUndefined();
+ expect(body.enable_graph).toBeUndefined();
+ expect(body.filter_memories).toBeUndefined();
+ expect(body.org_id).toBeUndefined();
+ expect(body.project_id).toBeUndefined();
+ // Should have entity ID at top-level for add endpoint
+ expect(body.user_id).toBe("test-user");
+ });
+
+ it("should not have deprecated fields in Mem0ConfigSettings type", () => {
+ const config: Mem0ConfigSettings = {
+ user_id: "test-user",
+ mem0ApiKey: "test-key",
+ };
+ expect((config as any).org_id).toBeUndefined();
+ expect((config as any).project_id).toBeUndefined();
+ expect((config as any).org_name).toBeUndefined();
+ expect((config as any).project_name).toBeUndefined();
+ expect((config as any).output_format).toBeUndefined();
+ expect((config as any).filter_memories).toBeUndefined();
+ expect((config as any).async_mode).toBeUndefined();
+ expect((config as any).enable_graph).toBeUndefined();
+ });
+
+ it("should default top_k to 10 (v3 default) when not provided", async () => {
+ const { searchMemories } = require("../src/mem0-utils");
+
+ mockFetch.mockResolvedValueOnce({
+ ok: true,
+ json: async () => [],
+ });
+
+ await searchMemories("test query", { mem0ApiKey: "test-key", user_id: "test-user" });
+
+ const body = JSON.parse(mockFetch.mock.calls[0][1].body);
+ expect(body.top_k).toBe(10);
+ });
+
+ it("should merge user-provided filters with entity ID filters", async () => {
+ const { searchMemories } = require("../src/mem0-utils");
+
+ mockFetch.mockResolvedValueOnce({
+ ok: true,
+ json: async () => [],
+ });
+
+ await searchMemories("test query", {
+ mem0ApiKey: "test-key",
+ user_id: "user-123",
+ filters: { category: "preferences" },
+ });
+
+ const body = JSON.parse(mockFetch.mock.calls[0][1].body);
+ expect(body.filters.user_id).toBe("user-123");
+ expect(body.filters.category).toBe("preferences");
+ });
+ });
+});