diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index a5a57c7ed..cb8381d47 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -3,8 +3,9 @@ # @temporalio/sdk will be requested for review when # someone opens a pull request. * @temporalio/sdk -/ai-sdk/ @temporalio/sdk @temporalio/ai-sdk -/langsmith/ @temporalio/sdk @temporalio/ai-sdk -/openai-agents/ @temporalio/sdk @temporalio/ai-sdk -/strands-agents/ @temporalio/sdk @temporalio/ai-sdk -/workflow-streams/ @temporalio/sdk @temporalio/ai-sdk +/ai-sdk/ @temporalio/sdk @temporalio/ai-sdk +/google-adk-agents/ @temporalio/sdk @temporalio/ai-sdk +/langsmith/ @temporalio/sdk @temporalio/ai-sdk +/openai-agents/ @temporalio/sdk @temporalio/ai-sdk +/strands-agents/ @temporalio/sdk @temporalio/ai-sdk +/workflow-streams/ @temporalio/sdk @temporalio/ai-sdk diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5e79c09b2..71da49cf4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -22,10 +22,6 @@ jobs: matrix: os: [ ubuntu-latest, windows-latest, macos-latest ] node: [ 20, 22, 24 ] - include: - - os: windows-latest - node: 22 - node-release-override: 22.11.0 steps: - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 @@ -38,11 +34,7 @@ jobs: - uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6 with: - # Node 22.12.0 on Windows incorrectly resolves `localhost` to `::1`, rather than both `::1` and `127.0.0.1`. - # THis causes errors when executing tests. So until this gets fixed upstream, we force the last known good - # version of Node on Windows. - # See https://github.com/nodejs/node/issues/56137 (_resolved_ already, but not yet released). - node-version: ${{ matrix.node-release-override || matrix.node }} + node-version: ${{ matrix.node }} # Comment out cache line when testing with act: # (Test command is: act --platform ubuntu-latest=lucasalt/act_base:latest) cache: 'pnpm' @@ -60,6 +52,7 @@ jobs: eager-workflow-start early-return empty + google-adk-agents hello-world langsmith mutex diff --git a/.scripts/copy-shared-files.mjs b/.scripts/copy-shared-files.mjs index 8cb77b4b7..19fa5928a 100644 --- a/.scripts/copy-shared-files.mjs +++ b/.scripts/copy-shared-files.mjs @@ -62,6 +62,7 @@ const ESLINTIGNORE_EXCLUDE = [ const POST_CREATE_EXCLUDE = [ 'openai-agents', + 'google-adk-agents', 'env-config', 'dsl-interpreter', 'eager-workflow-start', diff --git a/.scripts/list-of-samples.json b/.scripts/list-of-samples.json index 56d850fe2..f0f769a6d 100644 --- a/.scripts/list-of-samples.json +++ b/.scripts/list-of-samples.json @@ -19,6 +19,7 @@ "expense", "fetch-esm", "food-delivery", + "google-adk-agents", "grpc-calls", "hello-world", "hello-world-js", diff --git a/README.md b/README.md index 34d6a84de..aa82892ca 100644 --- a/README.md +++ b/README.md @@ -181,6 +181,15 @@ and you'll be given the list of sample options. - [**Customer Service**](./openai-agents/customer-service): A long-running, multi-turn Workflow driven by Updates and Queries, with triage handoffs and `continueAsNew` to bound history. - [**Nexus Tools**](./openai-agents/nexus-tools): Expose a Nexus Operation as an agent tool with `nexusOperationAsTool`. - [**Streaming**](./openai-agents/src/streaming): Run an agent in streaming mode over a Workflow Stream, with an external client subscribing to the model's deltas live. +- [**Google ADK Agents**](./google-adk-agents): Run [Google Agent Development Kit](https://github.com/google/adk-js) (`@google/adk`) agents as Temporal Workflows with the `@temporalio/google-adk-agents` integration. The [`google-adk-agents/`](./google-adk-agents) directory contains eight samples: + - [**Agent Chat**](./google-adk-agents/src/agent-chat): Multi-turn agent chat with Updates, queryable history, and Continue-As-New. + - [**Tools**](./google-adk-agents/src/tools): An existing Temporal Activity exposed to the agent as an ADK tool with `activityAsTool`. + - [**Multi-Agent**](./google-adk-agents/src/multi-agent): A coordinator `LlmAgent` starts an ADK `transfer_to_agent` relay through a researcher and a writer, each with its own `TemporalModel`. + - [**MCP**](./google-adk-agents/src/mcp): A `TemporalMCPToolset` backed by a filesystem MCP server the Worker opens over stdio. + - [**Streaming**](./google-adk-agents/src/streaming): Token streaming from a direct `TemporalModel` call — no agent loop — over a Workflow Stream, with an external client printing the deltas as they arrive. + - [**Human in the Loop**](./google-adk-agents/src/human-in-the-loop): A `LongRunningFunctionTool` whose completion is gated by a Temporal Signal or Update. + - [**Structured Output**](./google-adk-agents/src/structured-output): Schema-constrained agent output validated at the Workflow boundary. + - [**Observability**](./google-adk-agents/src/observability): Token usage, latency, and call counts from the agent loop's OpenTelemetry spans, by composing `OpenTelemetryPlugin` onto the Worker alongside `GoogleAdkPlugin`. ### Full-stack apps diff --git a/google-adk-agents/.eslintignore b/google-adk-agents/.eslintignore new file mode 100644 index 000000000..7bd99a41b --- /dev/null +++ b/google-adk-agents/.eslintignore @@ -0,0 +1,3 @@ +node_modules +lib +.eslintrc.js \ No newline at end of file diff --git a/google-adk-agents/.eslintrc.js b/google-adk-agents/.eslintrc.js new file mode 100644 index 000000000..9f199cd97 --- /dev/null +++ b/google-adk-agents/.eslintrc.js @@ -0,0 +1,48 @@ +const { builtinModules } = require('module'); + +const ALLOWED_NODE_BUILTINS = new Set(['assert']); + +module.exports = { + root: true, + parser: '@typescript-eslint/parser', + parserOptions: { + project: './tsconfig.json', + tsconfigRootDir: __dirname, + }, + plugins: ['@typescript-eslint', 'deprecation'], + extends: [ + 'eslint:recommended', + 'plugin:@typescript-eslint/eslint-recommended', + 'plugin:@typescript-eslint/recommended', + 'prettier', + ], + rules: { + // recommended for safety + '@typescript-eslint/no-floating-promises': 'error', // forgetting to await Activities and Workflow APIs is bad + 'deprecation/deprecation': 'warn', + + // code style preference + 'object-shorthand': ['error', 'always'], + + // relaxed rules, for convenience + '@typescript-eslint/no-unused-vars': [ + 'warn', + { + argsIgnorePattern: '^_', + varsIgnorePattern: '^_', + }, + ], + '@typescript-eslint/no-explicit-any': 'off', + }, + overrides: [ + { + files: ['src/**/workflows.ts', 'src/**/workflows-*.ts', 'src/**/workflows/*.ts'], + rules: { + 'no-restricted-imports': [ + 'error', + ...builtinModules.filter((m) => !ALLOWED_NODE_BUILTINS.has(m)).flatMap((m) => [m, `node:${m}`]), + ], + }, + }, + ], +}; diff --git a/google-adk-agents/.gitignore b/google-adk-agents/.gitignore new file mode 100644 index 000000000..a9f4ed545 --- /dev/null +++ b/google-adk-agents/.gitignore @@ -0,0 +1,2 @@ +lib +node_modules \ No newline at end of file diff --git a/google-adk-agents/.npmrc b/google-adk-agents/.npmrc new file mode 100644 index 000000000..9cf949503 --- /dev/null +++ b/google-adk-agents/.npmrc @@ -0,0 +1 @@ +package-lock=false \ No newline at end of file diff --git a/google-adk-agents/.nvmrc b/google-adk-agents/.nvmrc new file mode 100644 index 000000000..2bd5a0a98 --- /dev/null +++ b/google-adk-agents/.nvmrc @@ -0,0 +1 @@ +22 diff --git a/google-adk-agents/.post-create b/google-adk-agents/.post-create new file mode 100644 index 000000000..1542def55 --- /dev/null +++ b/google-adk-agents/.post-create @@ -0,0 +1,20 @@ +To begin development, install the Temporal CLI: + +Mac: {cyan brew install temporal} +Other: Download and extract the latest release from https://github.com/temporalio/cli/releases/latest + +Start Temporal Server: + +{cyan temporal server start-dev} + +Use Node version 22 or later: + +Mac: {cyan brew install node@22} +Other: https://nodejs.org/en/download/ + +This sample has several scenarios under {cyan src/}. Using two other shells, start a Worker for one scenario and run its client (example: {cyan agent-chat}): + +{cyan GEMINI_API_KEY= npx ts-node src/agent-chat/worker.ts} +{cyan npx ts-node src/agent-chat/client.ts} + +See README.md for the full list of scenarios. diff --git a/google-adk-agents/.prettierignore b/google-adk-agents/.prettierignore new file mode 100644 index 000000000..7951405f8 --- /dev/null +++ b/google-adk-agents/.prettierignore @@ -0,0 +1 @@ +lib \ No newline at end of file diff --git a/google-adk-agents/.prettierrc b/google-adk-agents/.prettierrc new file mode 100644 index 000000000..965d50bff --- /dev/null +++ b/google-adk-agents/.prettierrc @@ -0,0 +1,2 @@ +printWidth: 120 +singleQuote: true diff --git a/google-adk-agents/README.md b/google-adk-agents/README.md new file mode 100644 index 000000000..b8ccd1f96 --- /dev/null +++ b/google-adk-agents/README.md @@ -0,0 +1,31 @@ +# Google ADK Agents + +These samples use the `@temporalio/google-adk-agents` integration to run [Google Agent Development Kit](https://github.com/google/adk-js) (`@google/adk`) agents as durable Temporal Workflows. The ADK agent graph — the `Runner` loop, `LlmAgent`s, tools, and MCP toolsets — runs inside the Workflow and replays deterministically, while its non-deterministic I/O — model calls, MCP tool calls, and Activities exposed as tools — runs as durable Activities, so they retry on failure and are not repeated during Workflow replay. + +This is a single project: one `package.json` and one set of configs at the `google-adk-agents/` root, with each scenario in its own subdirectory under `src/`. Run `npm install` once here, then run any scenario by path (see each scenario's README). The integration package itself is documented in the [`@temporalio/google-adk-agents` README](https://github.com/temporalio/sdk-typescript/tree/main/contrib/google-adk-agents). + +## Prerequisites + +These apply to every sample in this directory: + +- A running Temporal dev server: `temporal server start-dev`. +- Node 22 or later. +- A Gemini API key for live runs: `export GEMINI_API_KEY=...`. Each scenario also documents a credential-free local mode. +- Dependencies installed once at the `google-adk-agents/` root: `npm install`. + +Each scenario's README describes how to start its Worker and run its scenarios by path. + +## Samples + +| Sample | Demonstrates | +| :--------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------ | +| [`agent-chat`](./src/agent-chat) | Multi-turn chat through Updates, inspectable state through a Query, and Continue-As-New with conversation history. | +| [`tools`](./src/tools) | An existing Temporal Activity exposed to the agent as an ADK tool via `activityAsTool`. | +| [`multi-agent`](./src/multi-agent) | A `transfer_to_agent` relay from a coordinator `LlmAgent` through a researcher and a writer, each with its own `TemporalModel`. | +| [`mcp`](./src/mcp) | A `TemporalMCPToolset` backed by an `mcpToolsets` factory on the plugin (a filesystem MCP server over stdio). | +| [`streaming`](./src/streaming) | Token streaming from a direct `TemporalModel` call — no agent loop — over the Workflow streams API. | +| [`human-in-the-loop`](./src/human-in-the-loop) | A `LongRunningFunctionTool` whose completion is gated by a Temporal Signal or Update. | +| [`structured-output`](./src/structured-output) | An agent constrained by an output schema, with validation at the Workflow boundary. | +| [`observability`](./src/observability) | Token usage, latency, and call counts, by composing `OpenTelemetryPlugin` onto the Worker alongside `GoogleAdkPlugin`. | + +ADK code executors are not included because the integration does not provide a durable Activity boundary for sandbox execution. diff --git a/google-adk-agents/package.json b/google-adk-agents/package.json new file mode 100644 index 000000000..cdb0519c9 --- /dev/null +++ b/google-adk-agents/package.json @@ -0,0 +1,44 @@ +{ + "name": "temporal-google-adk-agents", + "version": "0.1.0", + "private": true, + "scripts": { + "build": "tsc --build", + "build.watch": "tsc --build --watch", + "format": "prettier --write .", + "format:check": "prettier --check .", + "lint": "eslint .", + "test": "mocha --exit --require ts-node/register --require source-map-support/register \"src/*/mocha/*.test.ts\"" + }, + "dependencies": { + "@temporalio/client": "^1.23.0", + "@temporalio/common": "^1.23.0", + "@temporalio/google-adk-agents": "^1.23.0", + "@temporalio/interceptors-opentelemetry": "^1.23.0", + "@temporalio/worker": "^1.23.0", + "@temporalio/workflow": "^1.23.0", + "@temporalio/workflow-streams": "^1.23.0", + "@google/adk": ">=1.5.0 <1.6.0", + "@google/genai": "^2.9.0", + "@opentelemetry/api": "^1.9.0", + "@opentelemetry/resources": "^1.25.1", + "@opentelemetry/sdk-trace-base": "^1.25.1", + "nanoid": "3.x" + }, + "devDependencies": { + "@temporalio/testing": "^1.23.0", + "@tsconfig/node22": "^22.0.0", + "@types/mocha": "8.x", + "@types/node": "^22.9.1", + "@typescript-eslint/eslint-plugin": "^8.18.0", + "@typescript-eslint/parser": "^8.18.0", + "eslint": "^8.57.1", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-deprecation": "^3.0.0", + "mocha": "8.x", + "prettier": "^3.4.2", + "ts-node": "^10.9.2", + "typescript": "^5.6.3", + "source-map-support": "^0.5.21" + } +} diff --git a/google-adk-agents/src/agent-chat/README.md b/google-adk-agents/src/agent-chat/README.md new file mode 100644 index 000000000..f27309d9c --- /dev/null +++ b/google-adk-agents/src/agent-chat/README.md @@ -0,0 +1,13 @@ +# Agent chat + +This sample accepts messages through a Workflow Update, exposes conversation history through a Query, and carries that history across Continue-As-New runs. + +Start a live Worker with `GEMINI_API_KEY=... npx ts-node src/agent-chat/worker.ts` or a credential-free Worker with `MODEL_PROVIDER=fake npx ts-node src/agent-chat/worker.ts`. + +Run `npx ts-node src/agent-chat/client.ts`. Enter `/history` to query state and `/quit` to stop. + +Run its API-key-free test with: + +```sh +npx mocha --exit --require ts-node/register --require source-map-support/register "src/agent-chat/mocha/*.test.ts" +``` diff --git a/google-adk-agents/src/agent-chat/client.ts b/google-adk-agents/src/agent-chat/client.ts new file mode 100644 index 000000000..e8a7ab664 --- /dev/null +++ b/google-adk-agents/src/agent-chat/client.ts @@ -0,0 +1,31 @@ +import { createInterface } from 'readline/promises'; +import { Connection, Client } from '@temporalio/client'; +import { nanoid } from 'nanoid'; +import { agentChat, getChatState, sendMessage } from './workflows'; + +async function run() { + const connection = await Connection.connect(); + const client = new Client({ connection }); + const handle = await client.workflow.start(agentChat, { + taskQueue: 'google-adk-agent-chat', + workflowId: 'google-adk-agent-chat-' + nanoid(), + }); + const input = createInterface({ input: process.stdin, output: process.stdout }); + for (;;) { + const prompt = await input.question('you> '); + if (prompt === '/quit') break; + if (prompt === '/history') { + console.log((await handle.query(getChatState)).messages); + continue; + } + console.log(`assistant> ${await handle.executeUpdate(sendMessage, { args: [prompt] })}`); + } + input.close(); + await handle.terminate(); + await connection.close(); +} + +run().catch((err) => { + console.error(err); + process.exit(1); +}); diff --git a/google-adk-agents/src/agent-chat/mocha/workflows.test.ts b/google-adk-agents/src/agent-chat/mocha/workflows.test.ts new file mode 100644 index 000000000..435ceee0a --- /dev/null +++ b/google-adk-agents/src/agent-chat/mocha/workflows.test.ts @@ -0,0 +1,95 @@ +import type { LlmRequest, LlmResponse } from '@google/adk'; +import { TestWorkflowEnvironment } from '@temporalio/testing'; +import { Worker } from '@temporalio/worker'; +import { GoogleAdkPlugin } from '@temporalio/google-adk-agents'; +import { FakeLlm } from '@temporalio/google-adk-agents/testing'; +import { after, before, describe, it } from 'mocha'; +import assert from 'assert'; +import { offlineModelProvider } from '../offline-model'; +import { agentChat, getChatState, sendMessage } from '../workflows'; + +describe('google-adk-agents/agent-chat', function () { + this.timeout(30_000); + let testEnv: TestWorkflowEnvironment; + before(async () => (testEnv = await TestWorkflowEnvironment.createLocal())); + after(async () => testEnv?.teardown()); + + it('accepts multiple turns and continues as new with conversation state', async () => { + const requests: LlmRequest[] = []; + const taskQueue = `test-google-adk-agent-chat-${Date.now()}`; + const worker = await Worker.create({ + connection: testEnv.nativeConnection, + taskQueue, + workflowsPath: require.resolve('../workflows'), + plugins: [new GoogleAdkPlugin({ modelProvider: offlineModelProvider((request) => requests.push(request)) })], + }); + await worker.runUntil(async () => { + const handle = await testEnv.client.workflow.start(agentChat, { + args: [[], 0, 1, 2], + workflowId: taskQueue, + taskQueue, + }); + assert.strictEqual(await handle.executeUpdate(sendMessage, { args: ['My name is Ada.'] }), 'Hello, Ada.'); + assert.strictEqual(await handle.executeUpdate(sendMessage, { args: ['What is my name?'] }), 'Your name is Ada.'); + await testEnv.sleep(100); + const state = await handle.query(getChatState); + assert.deepStrictEqual(state.messages, [ + { role: 'user', text: 'My name is Ada.' }, + { role: 'assistant', text: 'Hello, Ada.' }, + { role: 'user', text: 'What is my name?' }, + { role: 'assistant', text: 'Your name is Ada.' }, + ]); + assert.strictEqual(requests.length, 2); + const requestText = (requests[1].contents ?? []) + .flatMap((content) => content.parts ?? []) + .map((part) => part.text ?? '') + .join('\n'); + assert.ok(requestText.includes('user: My name is Ada.\nassistant: Hello, Ada.\nuser: What is my name?')); + assert.ok(state.runs >= 2); + await handle.terminate(); + }); + }); + + it('serializes concurrent updates with shared conversation context', async () => { + const requests: LlmRequest[] = []; + class InspectingLlm extends FakeLlm { + override async *generateContentAsync(request: LlmRequest): AsyncGenerator { + requests.push(request); + yield { + content: { role: 'model', parts: [{ text: requests.length === 1 ? 'First answer.' : 'Second answer.' }] }, + turnComplete: true, + }; + } + } + const taskQueue = `test-google-adk-agent-chat-concurrent-${Date.now()}`; + const worker = await Worker.create({ + connection: testEnv.nativeConnection, + taskQueue, + workflowsPath: require.resolve('../workflows'), + plugins: [new GoogleAdkPlugin({ modelProvider: () => new InspectingLlm() })], + }); + await worker.runUntil(async () => { + const handle = await testEnv.client.workflow.start(agentChat, { + args: [[], 0, 1, 3], + workflowId: taskQueue, + taskQueue, + }); + const first = handle.executeUpdate(sendMessage, { args: ['First prompt.'] }); + const second = handle.executeUpdate(sendMessage, { args: ['Second prompt.'] }); + assert.deepStrictEqual((await Promise.all([first, second])).sort(), ['First answer.', 'Second answer.']); + assert.strictEqual(requests.length, 2); + const firstPrompt = JSON.stringify(requests[0]).includes('First prompt.') ? 'First prompt.' : 'Second prompt.'; + const secondPrompt = firstPrompt === 'First prompt.' ? 'Second prompt.' : 'First prompt.'; + assert.ok(JSON.stringify(requests[1]).includes(firstPrompt)); + assert.match(JSON.stringify(requests[1]), /First answer\./); + const state = await handle.query(getChatState); + assert.deepStrictEqual(state.messages, [ + { role: 'user', text: firstPrompt }, + { role: 'assistant', text: 'First answer.' }, + { role: 'user', text: secondPrompt }, + { role: 'assistant', text: 'Second answer.' }, + ]); + await handle.terminate(); + }); + }); +}); diff --git a/google-adk-agents/src/agent-chat/offline-model.ts b/google-adk-agents/src/agent-chat/offline-model.ts new file mode 100644 index 000000000..91d5f3d40 --- /dev/null +++ b/google-adk-agents/src/agent-chat/offline-model.ts @@ -0,0 +1,23 @@ +import { BaseLlm } from '@google/adk'; +import type { BaseLlmConnection, LlmRequest, LlmResponse } from '@google/adk'; + +export function offlineModelProvider(onRequest?: (request: LlmRequest) => void): (model: string) => BaseLlm { + class OfflineLlm extends BaseLlm { + override async *generateContentAsync(request: LlmRequest): AsyncGenerator { + onRequest?.(request); + const text = (request.contents ?? []) + .flatMap((content) => content.parts ?? []) + .map((part) => part.text ?? '') + .join('\n'); + const answer = text.includes('user: My name is Ada.\nassistant: Hello, Ada.\nuser: What is my name?') + ? 'Your name is Ada.' + : 'Hello, Ada.'; + yield { content: { role: 'model', parts: [{ text: answer }] }, turnComplete: true }; + } + + override async connect(): Promise { + throw new Error('OfflineLlm does not support connect().'); + } + } + return (model) => new OfflineLlm({ model }); +} diff --git a/google-adk-agents/src/agent-chat/worker.ts b/google-adk-agents/src/agent-chat/worker.ts new file mode 100644 index 000000000..43e536c52 --- /dev/null +++ b/google-adk-agents/src/agent-chat/worker.ts @@ -0,0 +1,25 @@ +import { NativeConnection, Worker } from '@temporalio/worker'; +import { GoogleAdkPlugin } from '@temporalio/google-adk-agents'; +import { offlineModelProvider } from './offline-model'; + +async function run() { + const connection = await NativeConnection.connect({ address: 'localhost:7233' }); + try { + const worker = await Worker.create({ + connection, + taskQueue: 'google-adk-agent-chat', + workflowsPath: require.resolve('./workflows'), + plugins: [ + new GoogleAdkPlugin(process.env.MODEL_PROVIDER === 'fake' ? { modelProvider: offlineModelProvider() } : {}), + ], + }); + await worker.run(); + } finally { + await connection.close(); + } +} + +run().catch((err) => { + console.error(err); + process.exit(1); +}); diff --git a/google-adk-agents/src/agent-chat/workflows.ts b/google-adk-agents/src/agent-chat/workflows.ts new file mode 100644 index 000000000..7d89720b2 --- /dev/null +++ b/google-adk-agents/src/agent-chat/workflows.ts @@ -0,0 +1,57 @@ +import { InMemoryRunner, LlmAgent, isFinalResponse, stringifyContent } from '@google/adk'; +import { TemporalModel } from '@temporalio/google-adk-agents/workflow'; +import { condition, continueAsNew, defineQuery, defineUpdate, setHandler } from '@temporalio/workflow'; + +export interface Message { + role: 'user' | 'assistant'; + text: string; +} + +export interface ChatState { + messages: Message[]; + turns: number; + runs: number; +} + +export const sendMessage = defineUpdate('sendMessage'); +export const getChatState = defineQuery('getChatState'); + +export async function agentChat(messages: Message[] = [], turns = 0, runs = 1, turnsPerRun = 3): Promise { + let processing = 0; + let nextUpdate = 0; + let currentUpdate = 0; + const agent = new LlmAgent({ + name: 'assistant', + model: new TemporalModel('gemini-2.5-flash'), + instruction: 'Continue the conversation using its prior context. Respond in one sentence.', + }); + const runner = new InMemoryRunner({ agent, appName: 'agent-chat' }); + const sessionId = `run-${runs}`; + await runner.sessionService.createSession({ appName: runner.appName, userId: 'user', sessionId }); + setHandler(getChatState, () => ({ messages, turns, runs })); + setHandler(sendMessage, async (prompt) => { + const update = nextUpdate++; + processing++; + try { + await condition(() => update === currentUpdate); + const transcript = messages.map((message) => `${message.role}: ${message.text}`).join('\n'); + let answer = ''; + for await (const event of runner.runAsync({ + userId: 'user', + sessionId, + newMessage: { role: 'user', parts: [{ text: `${transcript}${transcript ? '\n' : ''}user: ${prompt}` }] }, + })) { + if (isFinalResponse(event)) answer = stringifyContent(event); + } + messages = [...messages, { role: 'user', text: prompt }, { role: 'assistant', text: answer }]; + turns++; + return answer; + } finally { + currentUpdate++; + processing--; + } + }); + + await condition(() => turns >= turnsPerRun && processing === 0); + await continueAsNew(messages, 0, runs + 1, turnsPerRun); +} diff --git a/google-adk-agents/src/human-in-the-loop/README.md b/google-adk-agents/src/human-in-the-loop/README.md new file mode 100644 index 000000000..30450eaf8 --- /dev/null +++ b/google-adk-agents/src/human-in-the-loop/README.md @@ -0,0 +1,24 @@ +# Google ADK Agents: Human in the Loop + +A human-in-the-loop flow. The Workflow body invokes an ADK `LongRunningFunctionTool` whose `execute` blocks on a Temporal `condition` until a human's decision arrives, then returns it. The `approve` Signal and the `approveUpdate` Update each have their own handler; what they share is the variable the tool's `condition` is waiting on, so either one releases it (the Update handler additionally echoes the decision back to its caller). + +## Run + +Run these from the `google-adk-agents/` root (run `npm install` there once first). + +```bash +# In one terminal, start the Worker (requires a local Temporal server): +npx ts-node src/human-in-the-loop/worker.ts + +# In another terminal, start the Workflow and send the approval Signal: +temporal workflow start --type humanApproval --task-queue google-adk-human-in-the-loop --workflow-id google-adk-human-in-the-loop-1 +temporal workflow signal --workflow-id google-adk-human-in-the-loop-1 --name approve --input '"approved-by-operator"' +``` + +## Test + +```bash +npx mocha --exit --require ts-node/register --require source-map-support/register "src/human-in-the-loop/mocha/*.test.ts" +``` + +The tests run a real Worker against `TestWorkflowEnvironment`: two release the tool, one through the `approve` Signal and one through the `approveUpdate` Update, asserting it resumes with the supplied value; the third cancels the Workflow and asserts it ends CANCELLED. No `GEMINI_API_KEY` is required. diff --git a/google-adk-agents/src/human-in-the-loop/mocha/workflows.test.ts b/google-adk-agents/src/human-in-the-loop/mocha/workflows.test.ts new file mode 100644 index 000000000..cc7b06cf1 --- /dev/null +++ b/google-adk-agents/src/human-in-the-loop/mocha/workflows.test.ts @@ -0,0 +1,70 @@ +import { TestWorkflowEnvironment } from '@temporalio/testing'; +import { Worker } from '@temporalio/worker'; +import { GoogleAdkPlugin } from '@temporalio/google-adk-agents'; +import { after, before, describe, it } from 'mocha'; +import assert from 'assert'; +import { humanApproval, approveSignal, approveUpdate } from '../workflows'; + +describe('google-adk-agents/human-in-the-loop workflow scenarios', function () { + this.timeout(30_000); + + let testEnv: TestWorkflowEnvironment; + + before(async () => { + testEnv = await TestWorkflowEnvironment.createLocal(); + }); + + after(async () => { + await testEnv?.teardown(); + }); + + async function makeWorker(taskQueue: string) { + return Worker.create({ + connection: testEnv.nativeConnection, + taskQueue, + workflowsPath: require.resolve('../workflows'), + plugins: [new GoogleAdkPlugin()], + }); + } + + it('humanApproval: long-running tool resumes on the approve Signal', async () => { + const taskQueue = 'test-google-adk-human-in-the-loop-signal'; + const worker = await makeWorker(taskQueue); + await worker.runUntil(async () => { + const handle = await testEnv.client.workflow.start(humanApproval, { + workflowId: taskQueue + '-' + Date.now(), + taskQueue, + }); + await handle.signal(approveSignal, 'approved-via-signal'); + assert.strictEqual(await handle.result(), 'approved-via-signal'); + }); + }); + + it('humanApproval: long-running tool resumes on the approve Update', async () => { + const taskQueue = 'test-google-adk-human-in-the-loop-update'; + const worker = await makeWorker(taskQueue); + await worker.runUntil(async () => { + const handle = await testEnv.client.workflow.start(humanApproval, { + workflowId: taskQueue + '-' + Date.now(), + taskQueue, + }); + const updateResult = await handle.executeUpdate(approveUpdate, { args: ['approved-via-update'] }); + assert.strictEqual(updateResult, 'approved-via-update'); + assert.strictEqual(await handle.result(), 'approved-via-update'); + }); + }); + + it('humanApproval: cancelling the Workflow ends it as CANCELLED', async () => { + const taskQueue = 'test-google-adk-human-in-the-loop-cancel'; + const worker = await makeWorker(taskQueue); + await worker.runUntil(async () => { + const handle = await testEnv.client.workflow.start(humanApproval, { + workflowId: taskQueue + '-' + Date.now(), + taskQueue, + }); + await handle.cancel(); + await assert.rejects(handle.result()); + assert.strictEqual((await handle.describe()).status.name, 'CANCELLED'); + }); + }); +}); diff --git a/google-adk-agents/src/human-in-the-loop/worker.ts b/google-adk-agents/src/human-in-the-loop/worker.ts new file mode 100644 index 000000000..4eb1daa24 --- /dev/null +++ b/google-adk-agents/src/human-in-the-loop/worker.ts @@ -0,0 +1,22 @@ +import { NativeConnection, Worker } from '@temporalio/worker'; +import { GoogleAdkPlugin } from '@temporalio/google-adk-agents'; + +async function run() { + const connection = await NativeConnection.connect({ address: 'localhost:7233' }); + try { + const worker = await Worker.create({ + connection, + taskQueue: 'google-adk-human-in-the-loop', + workflowsPath: require.resolve('./workflows'), + plugins: [new GoogleAdkPlugin()], + }); + await worker.run(); + } finally { + await connection.close(); + } +} + +run().catch((err) => { + console.error(err); + process.exit(1); +}); diff --git a/google-adk-agents/src/human-in-the-loop/workflows.ts b/google-adk-agents/src/human-in-the-loop/workflows.ts new file mode 100644 index 000000000..ed5e9a3f5 --- /dev/null +++ b/google-adk-agents/src/human-in-the-loop/workflows.ts @@ -0,0 +1,42 @@ +import { LongRunningFunctionTool } from '@google/adk'; +import { + CancellationScope, + CancelledFailure, + condition, + defineSignal, + defineUpdate, + setHandler, +} from '@temporalio/workflow'; + +export const approveSignal = defineSignal<[string]>('approve'); +export const approveUpdate = defineUpdate('approveUpdate'); + +export async function humanApproval(): Promise { + let result: string | undefined; + + setHandler(approveSignal, (value) => { + result = value; + }); + setHandler(approveUpdate, (value) => { + result = value; + return value; + }); + + const tool = new LongRunningFunctionTool({ + name: 'humanApproval', + description: 'Wait for a human approval.', + execute: async () => { + await condition(() => result !== undefined); + return result; + }, + }); + + try { + return (await tool.runAsync({ args: {}, toolContext: {} as never })) as string; + } catch (err) { + if (CancellationScope.current().consideredCancelled) { + throw new CancelledFailure('Workflow cancelled'); + } + throw err; + } +} diff --git a/google-adk-agents/src/mcp/README.md b/google-adk-agents/src/mcp/README.md new file mode 100644 index 000000000..274eec7d2 --- /dev/null +++ b/google-adk-agents/src/mcp/README.md @@ -0,0 +1,9 @@ +# MCP + +This stateless MCP sample lets an agent read a sample file. Live mode starts the filesystem MCP server over stdio; offline mode registers an in-memory MCP toolset and needs no network access. + +Start a live Worker with `GEMINI_API_KEY=... npx ts-node src/mcp/worker.ts` or a credential-free Worker with `MODEL_PROVIDER=fake npx ts-node src/mcp/worker.ts`. + +```sh +temporal workflow start --type filesystemAgent --task-queue google-adk-mcp --workflow-id google-adk-mcp-1 --input '"Read hello.txt."' +``` diff --git a/google-adk-agents/src/mcp/mocha/workflows.test.ts b/google-adk-agents/src/mcp/mocha/workflows.test.ts new file mode 100644 index 000000000..c7a596a87 --- /dev/null +++ b/google-adk-agents/src/mcp/mocha/workflows.test.ts @@ -0,0 +1,92 @@ +import { BaseLlm } from '@google/adk'; +import type { BaseLlmConnection, LlmRequest, LlmResponse } from '@google/adk'; +import { TestWorkflowEnvironment } from '@temporalio/testing'; +import { Worker } from '@temporalio/worker'; +import { Type } from '@google/genai'; +import { GoogleAdkPlugin } from '@temporalio/google-adk-agents'; +import { mockMCPToolset, type MockMCPToolDefinition } from '@temporalio/google-adk-agents/testing'; +import { after, before, describe, it } from 'mocha'; +import assert from 'assert'; +import { filesystemAgent } from '../workflows'; + +const readFileDef: MockMCPToolDefinition = { + declaration: { + name: 'read_file', + description: 'Read a file.', + parameters: { type: Type.OBJECT, properties: { path: { type: Type.STRING } }, required: ['path'] }, + }, + handler: (args) => ({ contents: `contents of ${String(args.path)}` }), +}; + +function readFileModelProvider(): (model: string) => BaseLlm { + class ReadFileLlm extends BaseLlm { + override async *generateContentAsync( + llmRequest: LlmRequest, + _stream = false, + _abortSignal?: AbortSignal, + ): AsyncGenerator { + const toolResponse = (llmRequest.contents ?? []) + .flatMap((content) => content.parts ?? []) + .find((part) => part.functionResponse?.name === 'read_file')?.functionResponse?.response; + if (toolResponse === undefined) { + yield { + content: { + role: 'model', + parts: [{ functionCall: { name: 'read_file', args: { path: 'hello.txt' } } }], + }, + turnComplete: true, + }; + return; + } + const text = String((toolResponse as { contents?: unknown }).contents); + yield { content: { role: 'model', parts: [{ text }] }, turnComplete: true }; + } + + override async connect(_llmRequest: LlmRequest): Promise { + throw new Error('ReadFileLlm does not support connect().'); + } + } + return (model: string) => new ReadFileLlm({ model }); +} + +describe('google-adk-agents/mcp workflow scenarios', function () { + this.timeout(30_000); + + let testEnv: TestWorkflowEnvironment; + + before(async () => { + testEnv = await TestWorkflowEnvironment.createLocal(); + }); + + after(async () => { + await testEnv?.teardown(); + }); + + it('filesystemAgent: the model calls an MCP tool and its result reaches the next turn', async () => { + const taskQueue = 'test-google-adk-mcp-agent'; + const workflowId = taskQueue + '-' + Date.now(); + const worker = await Worker.create({ + connection: testEnv.nativeConnection, + taskQueue, + workflowsPath: require.resolve('../workflows'), + plugins: [ + new GoogleAdkPlugin({ + modelProvider: readFileModelProvider(), + mcpToolsets: { filesystem: mockMCPToolset([readFileDef]) }, + }), + ], + }); + const result = await worker.runUntil( + testEnv.client.workflow.execute(filesystemAgent, { + args: ['Summarize hello.txt.'], + workflowId, + taskQueue, + }), + ); + assert.strictEqual(result, 'contents of hello.txt'); + + const { events } = await testEnv.client.workflow.getHandle(workflowId).fetchHistory(); + const scheduled = (events ?? []).map((e) => e.activityTaskScheduledEventAttributes?.activityType?.name); + assert.strictEqual(scheduled.filter((name) => name === 'filesystem-callTool').length, 1); + }); +}); diff --git a/google-adk-agents/src/mcp/offline-model.ts b/google-adk-agents/src/mcp/offline-model.ts new file mode 100644 index 000000000..eebbd038b --- /dev/null +++ b/google-adk-agents/src/mcp/offline-model.ts @@ -0,0 +1,28 @@ +import { BaseLlm } from '@google/adk'; +import type { BaseLlmConnection, LlmRequest, LlmResponse } from '@google/adk'; + +export function offlineModelProvider(): (model: string) => BaseLlm { + class OfflineLlm extends BaseLlm { + override async *generateContentAsync(request: LlmRequest): AsyncGenerator { + const response = (request.contents ?? []) + .flatMap((content) => content.parts ?? []) + .find((part) => part.functionResponse?.name === 'read_file')?.functionResponse; + if (response === undefined) { + yield { + content: { role: 'model', parts: [{ functionCall: { name: 'read_file', args: { path: 'hello.txt' } } }] }, + turnComplete: true, + }; + return; + } + yield { + content: { role: 'model', parts: [{ text: String((response.response as { contents: unknown }).contents) }] }, + turnComplete: true, + }; + } + + override async connect(): Promise { + throw new Error('OfflineLlm does not support connect().'); + } + } + return (model) => new OfflineLlm({ model }); +} diff --git a/google-adk-agents/src/mcp/sample-files/hello.txt b/google-adk-agents/src/mcp/sample-files/hello.txt new file mode 100644 index 000000000..18f9f10c2 --- /dev/null +++ b/google-adk-agents/src/mcp/sample-files/hello.txt @@ -0,0 +1,2 @@ +Hello from the Temporal Google ADK filesystem MCP sample. +This file is exposed to the agent through the filesystem MCP server. diff --git a/google-adk-agents/src/mcp/worker.ts b/google-adk-agents/src/mcp/worker.ts new file mode 100644 index 000000000..72ac62105 --- /dev/null +++ b/google-adk-agents/src/mcp/worker.ts @@ -0,0 +1,55 @@ +import * as path from 'path'; +import { NativeConnection, Worker } from '@temporalio/worker'; +import { GoogleAdkPlugin } from '@temporalio/google-adk-agents'; +import { mockMCPToolset } from '@temporalio/google-adk-agents/testing'; +import { Type } from '@google/genai'; +import { offlineModelProvider } from './offline-model'; + +async function run() { + const exposedDir = path.resolve(__dirname, 'sample-files'); + const offline = process.env.MODEL_PROVIDER === 'fake'; + + const connection = await NativeConnection.connect({ address: 'localhost:7233' }); + try { + const worker = await Worker.create({ + connection, + taskQueue: 'google-adk-mcp', + workflowsPath: require.resolve('./workflows'), + plugins: [ + new GoogleAdkPlugin({ + ...(offline ? { modelProvider: offlineModelProvider() } : {}), + mcpToolsets: { + filesystem: offline + ? mockMCPToolset([ + { + declaration: { + name: 'read_file', + description: 'Read a file.', + parameters: { type: Type.OBJECT, properties: { path: { type: Type.STRING } } }, + }, + handler: ({ path: file }) => ({ + contents: file === 'hello.txt' ? 'Hello from the Temporal Google ADK sample.' : 'File not found.', + }), + }, + ]) + : () => ({ + type: 'StdioConnectionParams', + serverParams: { + command: 'npx', + args: ['-y', '@modelcontextprotocol/server-filesystem', exposedDir], + }, + }), + }, + }), + ], + }); + await worker.run(); + } finally { + await connection.close(); + } +} + +run().catch((err) => { + console.error(err); + process.exit(1); +}); diff --git a/google-adk-agents/src/mcp/workflows.ts b/google-adk-agents/src/mcp/workflows.ts new file mode 100644 index 000000000..e8de68e70 --- /dev/null +++ b/google-adk-agents/src/mcp/workflows.ts @@ -0,0 +1,24 @@ +import { InMemoryRunner, LlmAgent, isFinalResponse, stringifyContent } from '@google/adk'; +import { TemporalMCPToolset, TemporalModel } from '@temporalio/google-adk-agents/workflow'; + +export async function filesystemAgent(prompt: string): Promise { + const agent = new LlmAgent({ + name: 'filesystem_agent', + model: new TemporalModel('gemini-2.5-flash'), + instruction: 'Use your tools to answer questions about files.', + tools: [new TemporalMCPToolset({ name: 'filesystem' })], + }); + + const runner = new InMemoryRunner({ agent }); + + let finalText = ''; + for await (const event of runner.runEphemeral({ + userId: 'user', + newMessage: { role: 'user', parts: [{ text: prompt }] }, + })) { + if (isFinalResponse(event)) { + finalText = stringifyContent(event); + } + } + return finalText; +} diff --git a/google-adk-agents/src/multi-agent/README.md b/google-adk-agents/src/multi-agent/README.md new file mode 100644 index 000000000..ea0ecd88c --- /dev/null +++ b/google-adk-agents/src/multi-agent/README.md @@ -0,0 +1,9 @@ +# Multi-agent + +A coordinator transfers the request to a researcher, which transfers it to a writer. + +Start a live Worker with `GEMINI_API_KEY=... npx ts-node src/multi-agent/worker.ts` or a credential-free Worker with `MODEL_PROVIDER=fake npx ts-node src/multi-agent/worker.ts`. + +```sh +temporal workflow start --type multiAgent --task-queue google-adk-multi-agent --workflow-id google-adk-multi-agent-1 --input '"durable execution"' +``` diff --git a/google-adk-agents/src/multi-agent/mocha/workflows.test.ts b/google-adk-agents/src/multi-agent/mocha/workflows.test.ts new file mode 100644 index 000000000..948381b61 --- /dev/null +++ b/google-adk-agents/src/multi-agent/mocha/workflows.test.ts @@ -0,0 +1,79 @@ +import { TestWorkflowEnvironment } from '@temporalio/testing'; +import { Worker } from '@temporalio/worker'; +import { GoogleAdkPlugin } from '@temporalio/google-adk-agents'; +import { BaseLlm } from '@google/adk'; +import type { BaseLlmConnection, LlmRequest, LlmResponse } from '@google/adk'; +import { after, before, describe, it } from 'mocha'; +import assert from 'assert'; +import { multiAgent } from '../workflows'; + +function text(s: string): LlmResponse { + return { content: { role: 'model', parts: [{ text: s }] }, turnComplete: true }; +} + +function transferTo(agentName: string): LlmResponse { + return { + content: { role: 'model', parts: [{ functionCall: { name: 'transfer_to_agent', args: { agentName } } }] }, + turnComplete: true, + }; +} + +function scriptedModelProvider(script: Record): (model: string) => BaseLlm { + class ScriptedLlm extends BaseLlm { + override async *generateContentAsync( + llmRequest: LlmRequest, + _stream = false, + _abortSignal?: AbortSignal, + ): AsyncGenerator { + const asking = llmRequest.config?.labels?.['adk_agent_name']; + const next = asking === undefined ? undefined : script[asking]; + if (next === undefined) { + throw new Error(`scripted model has no turn for agent '${asking}'`); + } + yield next; + } + + override async connect(_llmRequest: LlmRequest): Promise { + throw new Error('ScriptedLlm does not support connect().'); + } + } + return (model: string) => new ScriptedLlm({ model }); +} + +describe('google-adk-agents/multi-agent workflow scenarios', function () { + this.timeout(30_000); + + let testEnv: TestWorkflowEnvironment; + + before(async () => { + testEnv = await TestWorkflowEnvironment.createLocal(); + }); + + after(async () => { + await testEnv?.teardown(); + }); + + it('multiAgent: the relay reaches the writer, and only the writer produces the final text', async () => { + const modelProvider = scriptedModelProvider({ + coordinator: transferTo('researcher'), + researcher: transferTo('writer'), + writer: text('snow on the mountain'), + }); + + const taskQueue = 'test-google-adk-multi-agent'; + const worker = await Worker.create({ + connection: testEnv.nativeConnection, + taskQueue, + workflowsPath: require.resolve('../workflows'), + plugins: [new GoogleAdkPlugin({ modelProvider })], + }); + const result = await worker.runUntil( + testEnv.client.workflow.execute(multiAgent, { + args: ['mountains'], + workflowId: 'test-google-adk-multi-agent-' + Date.now(), + taskQueue, + }), + ); + assert.strictEqual(result, 'snow on the mountain'); + }); +}); diff --git a/google-adk-agents/src/multi-agent/offline-model.ts b/google-adk-agents/src/multi-agent/offline-model.ts new file mode 100644 index 000000000..ff3d7e425 --- /dev/null +++ b/google-adk-agents/src/multi-agent/offline-model.ts @@ -0,0 +1,39 @@ +import { BaseLlm } from '@google/adk'; +import type { BaseLlmConnection, LlmRequest, LlmResponse } from '@google/adk'; + +export function offlineModelProvider(): (model: string) => BaseLlm { + class OfflineLlm extends BaseLlm { + override async *generateContentAsync(request: LlmRequest): AsyncGenerator { + const agent = request.config?.labels?.['adk_agent_name']; + if (agent === 'coordinator' || agent === 'researcher') { + yield { + content: { + role: 'model', + parts: [ + { + functionCall: { + name: 'transfer_to_agent', + args: { agentName: agent === 'coordinator' ? 'researcher' : 'writer' }, + }, + }, + ], + }, + turnComplete: true, + }; + return; + } + yield { + content: { + role: 'model', + parts: [{ text: 'Retries fade away\nDurable words cross the years\nWorkflows remember' }], + }, + turnComplete: true, + }; + } + + override async connect(): Promise { + throw new Error('OfflineLlm does not support connect().'); + } + } + return (model) => new OfflineLlm({ model }); +} diff --git a/google-adk-agents/src/multi-agent/worker.ts b/google-adk-agents/src/multi-agent/worker.ts new file mode 100644 index 000000000..797065f56 --- /dev/null +++ b/google-adk-agents/src/multi-agent/worker.ts @@ -0,0 +1,25 @@ +import { NativeConnection, Worker } from '@temporalio/worker'; +import { GoogleAdkPlugin } from '@temporalio/google-adk-agents'; +import { offlineModelProvider } from './offline-model'; + +async function run() { + const connection = await NativeConnection.connect({ address: 'localhost:7233' }); + try { + const worker = await Worker.create({ + connection, + taskQueue: 'google-adk-multi-agent', + workflowsPath: require.resolve('./workflows'), + plugins: [ + new GoogleAdkPlugin(process.env.MODEL_PROVIDER === 'fake' ? { modelProvider: offlineModelProvider() } : {}), + ], + }); + await worker.run(); + } finally { + await connection.close(); + } +} + +run().catch((err) => { + console.error(err); + process.exit(1); +}); diff --git a/google-adk-agents/src/multi-agent/workflows.ts b/google-adk-agents/src/multi-agent/workflows.ts new file mode 100644 index 000000000..b1bd5a5bb --- /dev/null +++ b/google-adk-agents/src/multi-agent/workflows.ts @@ -0,0 +1,40 @@ +import { InMemoryRunner, LlmAgent, isFinalResponse, stringifyContent } from '@google/adk'; +import { TemporalModel } from '@temporalio/google-adk-agents/workflow'; + +export async function multiAgent(topic: string): Promise { + const researcher = new LlmAgent({ + name: 'researcher', + description: 'Reads a topic and hands it to whoever should write about it.', + model: new TemporalModel('gemini-2.5-flash', { summary: 'Researcher Agent' }), + instruction: 'You are a researcher. You write nothing yourself. Transfer the topic to the writer.', + }); + + const writer = new LlmAgent({ + name: 'writer', + description: 'Turns a topic into a haiku.', + model: new TemporalModel('gemini-2.5-flash', { summary: 'Writer Agent' }), + instruction: 'You are a poet. Write a haiku about the topic in the conversation.', + }); + + const coordinator = new LlmAgent({ + name: 'coordinator', + description: + 'Starts the relay by handing the incoming request to the first agent. Researches nothing and writes nothing.', + model: new TemporalModel('gemini-2.5-flash', { summary: 'Coordinator Agent' }), + instruction: 'You are a coordinator. Transfer the request to the researcher.', + subAgents: [researcher, writer], + }); + + const runner = new InMemoryRunner({ agent: coordinator }); + + let finalText = ''; + for await (const event of runner.runEphemeral({ + userId: 'user', + newMessage: { role: 'user', parts: [{ text: `Write a haiku about ${topic}.` }] }, + })) { + if (isFinalResponse(event)) { + finalText = stringifyContent(event); + } + } + return finalText; +} diff --git a/google-adk-agents/src/observability/README.md b/google-adk-agents/src/observability/README.md new file mode 100644 index 000000000..309695427 --- /dev/null +++ b/google-adk-agents/src/observability/README.md @@ -0,0 +1,39 @@ +# Google ADK Agents: Observability + +Where an agent's token usage, latency, and call counts come from once `OpenTelemetryPlugin` is composed onto the Worker alongside `GoogleAdkPlugin`, as this sample's `worker.ts` does. Without it, ADK's agent-loop spans are created inside the Workflow sandbox and dropped; the [`@temporalio/google-adk-agents` README](https://github.com/temporalio/sdk-typescript/tree/main/contrib/google-adk-agents#telemetry-and-observability) covers why, and the caveats that come with exporting them. + +Everything here is traces. ADK defines no OpenTelemetry metric instruments, so there is no metric stream to scrape — the numbers below are span attributes. + +## What the spans carry + +`call_llm`, one per model call: + +- `gen_ai.usage.input_tokens` and `gen_ai.usage.output_tokens`. There is no total; add the two, as this sample's Worker does when it prints each call. +- `gen_ai.request.model`. +- Latency is the span's own duration. ADK records no latency attribute, on this span or any other. + +`invoke_agent ` carries nothing numeric, so a call count means counting `call_llm` spans. + +## Run + +Run these from the `google-adk-agents/` root (run `npm install` there once first). + +```bash +# In one terminal, start the Worker (requires a local Temporal server and GEMINI_API_KEY): +GEMINI_API_KEY=... npx ts-node src/observability/worker.ts + +# In another terminal, run the scenario: +temporal workflow start --type observedAgent --task-queue google-adk-observability --workflow-id google-adk-observability-1 --input '["Write a haiku about durable execution.","Write a haiku about replay."]' +``` + +For a credential-free local run, start the Worker with `MODEL_PROVIDER=fake npx ts-node src/observability/worker.ts`. + +The per-call token, model, and latency lines print in the Worker's terminal. + +## Test + +```bash +npx mocha --exit --require ts-node/register --require source-map-support/register "src/observability/mocha/*.test.ts" +``` + +The test runs a real Worker against `TestWorkflowEnvironment` with `fakeModelProvider`, asserting that ADK's `call_llm` spans reach the span processor carrying their model name and token counts. No `GEMINI_API_KEY` is required. diff --git a/google-adk-agents/src/observability/adk-usage-span-processor.ts b/google-adk-agents/src/observability/adk-usage-span-processor.ts new file mode 100644 index 000000000..c4265873c --- /dev/null +++ b/google-adk-agents/src/observability/adk-usage-span-processor.ts @@ -0,0 +1,32 @@ +import type { Context } from '@opentelemetry/api'; +import type { ReadableSpan, Span, SpanProcessor } from '@opentelemetry/sdk-trace-base'; + +const ADK_TRACER = 'gcp.vertex.agent'; + +export interface ModelCall { + model: string; + inputTokens: number; + outputTokens: number; + durationMs: number; +} + +export class AdkUsageSpanProcessor implements SpanProcessor { + constructor(private readonly onModelCall: (call: ModelCall) => void) {} + + onStart(_span: Span, _parentContext: Context): void {} + + onEnd(span: ReadableSpan): void { + if (span.instrumentationLibrary.name !== ADK_TRACER || span.name !== 'call_llm') return; + + this.onModelCall({ + model: String(span.attributes['gen_ai.request.model'] ?? ''), + inputTokens: Number(span.attributes['gen_ai.usage.input_tokens'] ?? 0), + outputTokens: Number(span.attributes['gen_ai.usage.output_tokens'] ?? 0), + durationMs: span.duration[0] * 1e3 + span.duration[1] / 1e6, + }); + } + + async forceFlush(): Promise {} + + async shutdown(): Promise {} +} diff --git a/google-adk-agents/src/observability/mocha/workflows.test.ts b/google-adk-agents/src/observability/mocha/workflows.test.ts new file mode 100644 index 000000000..854bb87d0 --- /dev/null +++ b/google-adk-agents/src/observability/mocha/workflows.test.ts @@ -0,0 +1,72 @@ +import type { LlmResponse } from '@google/adk'; +import { Resource } from '@opentelemetry/resources'; +import { TestWorkflowEnvironment } from '@temporalio/testing'; +import { Worker } from '@temporalio/worker'; +import { GoogleAdkPlugin } from '@temporalio/google-adk-agents'; +import { fakeModelProvider } from '@temporalio/google-adk-agents/testing'; +import { OpenTelemetryPlugin } from '@temporalio/interceptors-opentelemetry'; +import { after, before, describe, it } from 'mocha'; +import assert from 'assert'; +import { AdkUsageSpanProcessor, type ModelCall } from '../adk-usage-span-processor'; +import { observedAgent } from '../workflows'; + +const prompts = ['Write a haiku about durable execution.', 'Write a haiku about workflow replay.']; + +const responses: LlmResponse[] = [ + { + content: { role: 'model', parts: [{ text: 'snow on the mountain' }] }, + usageMetadata: { promptTokenCount: 11, candidatesTokenCount: 7 }, + turnComplete: true, + }, +]; + +describe('google-adk-agents/observability workflow scenarios', function () { + this.timeout(30_000); + + let testEnv: TestWorkflowEnvironment; + + before(async () => { + testEnv = await TestWorkflowEnvironment.createLocal(); + }); + + after(async () => { + await testEnv?.teardown(); + }); + + it('observedAgent: composing OpenTelemetryPlugin exports the ADK spans and their token usage', async () => { + const taskQueue = 'test-google-adk-observability'; + const modelCalls: ModelCall[] = []; + const worker = await Worker.create({ + connection: testEnv.nativeConnection, + taskQueue, + workflowsPath: require.resolve('../workflows'), + plugins: [ + new OpenTelemetryPlugin({ + resource: new Resource({ 'service.name': 'test-google-adk-observability' }), + spanProcessor: new AdkUsageSpanProcessor((call) => modelCalls.push(call)), + }), + new GoogleAdkPlugin({ modelProvider: fakeModelProvider(responses) }), + ], + }); + const result = await worker.runUntil( + testEnv.client.workflow.execute(observedAgent, { + args: [prompts], + workflowId: `${taskQueue}-${Date.now()}`, + taskQueue, + }), + ); + assert.deepStrictEqual(result, ['snow on the mountain', 'snow on the mountain']); + + assert.ok( + modelCalls.length >= prompts.length, + `expected at least ${prompts.length} call_llm spans, got ${modelCalls.length}`, + ); + for (const call of modelCalls) { + assert.deepStrictEqual( + { model: call.model, inputTokens: call.inputTokens, outputTokens: call.outputTokens }, + { model: 'gemini-2.5-flash', inputTokens: 11, outputTokens: 7 }, + ); + assert.ok(call.durationMs > 0, 'each call_llm span should have a duration'); + } + }); +}); diff --git a/google-adk-agents/src/observability/worker.ts b/google-adk-agents/src/observability/worker.ts new file mode 100644 index 000000000..fce0cec0e --- /dev/null +++ b/google-adk-agents/src/observability/worker.ts @@ -0,0 +1,51 @@ +import { Resource } from '@opentelemetry/resources'; +import { NativeConnection, Worker } from '@temporalio/worker'; +import { GoogleAdkPlugin } from '@temporalio/google-adk-agents'; +import { fakeModelProvider } from '@temporalio/google-adk-agents/testing'; +import { OpenTelemetryPlugin } from '@temporalio/interceptors-opentelemetry'; +import { AdkUsageSpanProcessor } from './adk-usage-span-processor'; + +async function run() { + const spanProcessor = new AdkUsageSpanProcessor((call) => + console.log( + `call_llm ${call.model}: ${call.inputTokens} in + ${call.outputTokens} out = ` + + `${call.inputTokens + call.outputTokens} tokens in ${call.durationMs.toFixed(0)}ms`, + ), + ); + + const connection = await NativeConnection.connect({ address: 'localhost:7233' }); + try { + const worker = await Worker.create({ + connection, + taskQueue: 'google-adk-observability', + workflowsPath: require.resolve('./workflows'), + plugins: [ + new OpenTelemetryPlugin({ + resource: new Resource({ 'service.name': 'google-adk-observability' }), + spanProcessor, + }), + new GoogleAdkPlugin( + process.env.MODEL_PROVIDER === 'fake' + ? { + modelProvider: fakeModelProvider([ + { + content: { role: 'model', parts: [{ text: 'Workflows remember.' }] }, + usageMetadata: { promptTokenCount: 6, candidatesTokenCount: 3 }, + turnComplete: true, + }, + ]), + } + : {}, + ), + ], + }); + await worker.run(); + } finally { + await connection.close(); + } +} + +run().catch((err) => { + console.error(err); + process.exit(1); +}); diff --git a/google-adk-agents/src/observability/workflows.ts b/google-adk-agents/src/observability/workflows.ts new file mode 100644 index 000000000..34a7f8227 --- /dev/null +++ b/google-adk-agents/src/observability/workflows.ts @@ -0,0 +1,27 @@ +import { InMemoryRunner, LlmAgent, isFinalResponse, stringifyContent } from '@google/adk'; +import { TemporalModel } from '@temporalio/google-adk-agents/workflow'; + +export async function observedAgent(prompts: string[]): Promise { + const agent = new LlmAgent({ + name: 'assistant', + model: new TemporalModel('gemini-2.5-flash'), + instruction: 'You are a helpful assistant. Respond in a single sentence.', + }); + + const runner = new InMemoryRunner({ agent }); + + const answers: string[] = []; + for (const prompt of prompts) { + let finalText = ''; + for await (const event of runner.runEphemeral({ + userId: 'user', + newMessage: { role: 'user', parts: [{ text: prompt }] }, + })) { + if (isFinalResponse(event)) { + finalText = stringifyContent(event); + } + } + answers.push(finalText); + } + return answers; +} diff --git a/google-adk-agents/src/streaming/README.md b/google-adk-agents/src/streaming/README.md new file mode 100644 index 000000000..0b715e88f --- /dev/null +++ b/google-adk-agents/src/streaming/README.md @@ -0,0 +1,31 @@ +# Google ADK Agents: Streaming + +Token streaming over a Workflow Stream. Unlike the agent scenarios, the Workflow here calls a `TemporalModel` directly — no `LlmAgent`, no `Runner` — so the streaming path stands on its own. + +Streaming is requested by `generateContentAsync`'s `stream` argument, not by configuration; a streaming call additionally needs a `streamingTopic` on the `TemporalModel` to publish to, and fails without one. Together they route the call to an `adk-invokeModelStreaming` Activity, which publishes every `LlmResponse` the model yields to that topic via the Workflow streams API while still returning the same ordered sequence to the Workflow — the deterministic, replay-safe channel. Deltas arrive as `partial` responses and the turn ends with one non-partial response carrying its whole text; the Workflow returns that text and a count of the deltas. + +The Workflow hosts the [Workflow Stream](https://github.com/temporalio/sdk-typescript/tree/main/contrib/workflow-streams) with `new WorkflowStream()` and, once the model turn is done, waits up to 10 seconds for a `consumer-done` Signal before returning — completing would discard the log out from under a subscriber's final poll, and the bound keeps the Workflow from hanging when nobody is subscribed. The client subscribes to the topic from outside with `WorkflowStreamClient.create(client, workflowId).topic(streamingTopic).subscribe()`, prints each delta's text as it arrives, and stops at the non-partial response, at which point it Signals the Workflow. + +## Run + +Run these from the `google-adk-agents/` root (run `npm install` there once first). + +```bash +# In one terminal, start the Worker (requires a local Temporal server and GEMINI_API_KEY): +GEMINI_API_KEY=... npx ts-node src/streaming/worker.ts + +# In another terminal, run the scenario: +npx ts-node src/streaming/client.ts +``` + +For a credential-free local run, start the Worker with `MODEL_PROVIDER=fake npx ts-node src/streaming/worker.ts`. + +The story prints token by token as the model produces it. In the Temporal UI the history shows a single `adk-invokeModelStreaming` Activity. + +## Test + +```bash +npx mocha --exit --require ts-node/register --require source-map-support/register "src/streaming/mocha/*.test.ts" +``` + +The test runs a real Worker against `TestWorkflowEnvironment` with a `BaseLlm` double scripted as a real text turn — three `partial` deltas then the non-partial whole-turn response. The double holds each response back until an external subscriber has taken the one before it, so the deltas reach the subscriber while the model call is still in flight. It asserts the subscriber receives all four in order, and that the Workflow returns the turn's text once and a count of three chunks. No `GEMINI_API_KEY` is required. diff --git a/google-adk-agents/src/streaming/client.ts b/google-adk-agents/src/streaming/client.ts new file mode 100644 index 000000000..64486542f --- /dev/null +++ b/google-adk-agents/src/streaming/client.ts @@ -0,0 +1,35 @@ +import type { LlmResponse } from '@google/adk'; +import { Connection, Client } from '@temporalio/client'; +import { WorkflowStreamClient } from '@temporalio/workflow-streams/client'; +import { nanoid } from 'nanoid'; +import { consumerDoneSignal, streamingModelCall, streamingTopic } from './workflows'; + +async function run() { + const connection = await Connection.connect(); + const client = new Client({ connection }); + + const workflowId = 'google-adk-streaming-' + nanoid(); + const handle = await client.workflow.start(streamingModelCall, { + taskQueue: 'google-adk-streaming', + workflowId, + args: ['Tell me a short story about a robot learning to paint.'], + }); + console.log(`Started workflow ${handle.workflowId}`); + + const streamClient = WorkflowStreamClient.create(client, workflowId); + for await (const item of streamClient.topic(streamingTopic).subscribe()) { + if (item.data.partial !== true) break; + for (const part of item.data.content?.parts ?? []) { + if (part.text) process.stdout.write(part.text); + } + } + await handle.signal(consumerDoneSignal); + + const result = await handle.result(); + console.log(`\n---\nReceived ${result.chunks} chunk(s).`); +} + +run().catch((err) => { + console.error(err); + process.exit(1); +}); diff --git a/google-adk-agents/src/streaming/mocha/workflows.test.ts b/google-adk-agents/src/streaming/mocha/workflows.test.ts new file mode 100644 index 000000000..a9dd2b3a6 --- /dev/null +++ b/google-adk-agents/src/streaming/mocha/workflows.test.ts @@ -0,0 +1,88 @@ +import { BaseLlm } from '@google/adk'; +import type { BaseLlmConnection, LlmResponse } from '@google/adk'; +import { TestWorkflowEnvironment } from '@temporalio/testing'; +import { Worker } from '@temporalio/worker'; +import { GoogleAdkPlugin } from '@temporalio/google-adk-agents'; +import { WorkflowStreamClient } from '@temporalio/workflow-streams/client'; +import { after, before, describe, it } from 'mocha'; +import assert from 'assert'; +import { consumerDoneSignal, streamingModelCall, streamingTopic } from '../workflows'; + +const turn: LlmResponse[] = [ + { content: { role: 'model', parts: [{ text: 'Hello ' }] }, partial: true }, + { content: { role: 'model', parts: [{ text: 'streaming ' }] }, partial: true }, + { content: { role: 'model', parts: [{ text: 'world' }] }, partial: true }, + { content: { role: 'model', parts: [{ text: 'Hello streaming world' }] }, partial: false, turnComplete: true }, +]; + +function gatedModelProvider(taken: () => number): (model: string) => BaseLlm { + class GatedLlm extends BaseLlm { + override async *generateContentAsync(): AsyncGenerator { + for (const [index, response] of turn.entries()) { + while (taken() < index) { + await new Promise((resolve) => setTimeout(resolve, 10)); + } + yield response; + } + } + + override async connect(): Promise { + throw new Error('GatedLlm does not support connect().'); + } + } + return (model: string) => new GatedLlm({ model }); +} + +describe('google-adk-agents/streaming workflow scenarios', function () { + this.timeout(30_000); + + let testEnv: TestWorkflowEnvironment; + + before(async () => { + testEnv = await TestWorkflowEnvironment.createLocal(); + }); + + after(async () => { + await testEnv?.teardown(); + }); + + it('streamingModelCall: an external subscriber receives the chunks while the call is in flight', async () => { + const taskQueue = 'test-google-adk-streaming'; + const received: LlmResponse[] = []; + const worker = await Worker.create({ + connection: testEnv.nativeConnection, + taskQueue, + workflowsPath: require.resolve('../workflows'), + plugins: [new GoogleAdkPlugin({ modelProvider: gatedModelProvider(() => received.length) })], + }); + + const workflowId = 'test-google-adk-streaming-' + Date.now(); + const result = await worker.runUntil(async () => { + const handle = await testEnv.client.workflow.start(streamingModelCall, { + args: ['stream please'], + workflowId, + taskQueue, + }); + + const streamClient = WorkflowStreamClient.create(testEnv.client, workflowId); + const gen = streamClient.topic(streamingTopic).subscribe(0, { pollCooldown: 0 }); + for await (const item of gen) { + received.push(item.data); + if (received.length >= turn.length) { + await gen.return(); + break; + } + } + await handle.signal(consumerDoneSignal); + + assert.deepStrictEqual( + received.map((response) => response.content?.parts?.[0]?.text), + ['Hello ', 'streaming ', 'world', 'Hello streaming world'], + ); + return handle.result(); + }); + + assert.strictEqual(result.text, 'Hello streaming world'); + assert.strictEqual(result.chunks, 3); + }); +}); diff --git a/google-adk-agents/src/streaming/worker.ts b/google-adk-agents/src/streaming/worker.ts new file mode 100644 index 000000000..2a30005ed --- /dev/null +++ b/google-adk-agents/src/streaming/worker.ts @@ -0,0 +1,25 @@ +import { NativeConnection, Worker } from '@temporalio/worker'; +import { GoogleAdkPlugin } from '@temporalio/google-adk-agents'; +import { fakeModelProvider } from '@temporalio/google-adk-agents/testing'; + +async function run() { + const connection = await NativeConnection.connect({ address: 'localhost:7233' }); + try { + const worker = await Worker.create({ + connection, + taskQueue: 'google-adk-streaming', + workflowsPath: require.resolve('./workflows'), + plugins: [ + new GoogleAdkPlugin(process.env.MODEL_PROVIDER === 'fake' ? { modelProvider: fakeModelProvider() } : {}), + ], + }); + await worker.run(); + } finally { + await connection.close(); + } +} + +run().catch((err) => { + console.error(err); + process.exit(1); +}); diff --git a/google-adk-agents/src/streaming/workflows.ts b/google-adk-agents/src/streaming/workflows.ts new file mode 100644 index 000000000..2d362912e --- /dev/null +++ b/google-adk-agents/src/streaming/workflows.ts @@ -0,0 +1,42 @@ +import type { LlmRequest } from '@google/adk'; +import { TemporalModel } from '@temporalio/google-adk-agents/workflow'; +import { condition, defineSignal, setHandler } from '@temporalio/workflow'; +import { WorkflowStream } from '@temporalio/workflow-streams/workflow'; + +export const streamingTopic = 'responses'; + +export const consumerDoneSignal = defineSignal('consumer-done'); + +export async function streamingModelCall(prompt: string): Promise<{ text: string; chunks: number }> { + new WorkflowStream(); + + let consumerDone = false; + setHandler(consumerDoneSignal, () => { + consumerDone = true; + }); + + const model = new TemporalModel('gemini-2.5-flash', { + streamingTopic, + activity: { heartbeatTimeout: '5 seconds' }, + }); + + const request = { + model: 'gemini-2.5-flash', + contents: [{ role: 'user', parts: [{ text: prompt }] }], + config: {}, + toolsDict: {}, + liveConnectConfig: {}, + } as LlmRequest; + + let text = ''; + let chunks = 0; + for await (const response of model.generateContentAsync(request, true)) { + if (response.partial === true) { + chunks++; + continue; + } + text = (response.content?.parts ?? []).map((part) => part.text ?? '').join(''); + } + await condition(() => consumerDone, '10 seconds'); + return { text, chunks }; +} diff --git a/google-adk-agents/src/structured-output/README.md b/google-adk-agents/src/structured-output/README.md new file mode 100644 index 000000000..eebf10d5e --- /dev/null +++ b/google-adk-agents/src/structured-output/README.md @@ -0,0 +1,13 @@ +# Structured output + +This Workflow asks an ADK agent for an incident summary constrained by a schema and validates the result before returning it. + +Start a live Worker with `npx ts-node src/structured-output/worker.ts`. Set `GEMINI_API_KEY` first. + +For a credential-free local run, start it with `MODEL_PROVIDER=fake npx ts-node src/structured-output/worker.ts`. + +Start the Workflow with: + +```sh +temporal workflow start --type summarizeIncident --task-queue google-adk-structured-output --workflow-id google-adk-structured-output-1 --input '"The primary database is timing out."' +``` diff --git a/google-adk-agents/src/structured-output/mocha/workflows.test.ts b/google-adk-agents/src/structured-output/mocha/workflows.test.ts new file mode 100644 index 000000000..3f6696b0b --- /dev/null +++ b/google-adk-agents/src/structured-output/mocha/workflows.test.ts @@ -0,0 +1,74 @@ +import type { LlmResponse } from '@google/adk'; +import { WorkflowFailedError } from '@temporalio/client'; +import { ApplicationFailure } from '@temporalio/common'; +import { TestWorkflowEnvironment } from '@temporalio/testing'; +import { Worker } from '@temporalio/worker'; +import { GoogleAdkPlugin } from '@temporalio/google-adk-agents'; +import { fakeModelProvider } from '@temporalio/google-adk-agents/testing'; +import { after, before, describe, it } from 'mocha'; +import assert from 'assert'; +import { summarizeIncident } from '../workflows'; + +describe('google-adk-agents/structured-output', function () { + this.timeout(30_000); + let testEnv: TestWorkflowEnvironment; + before(async () => (testEnv = await TestWorkflowEnvironment.createLocal())); + after(async () => testEnv?.teardown()); + + async function execute(text: string) { + const response: LlmResponse = { content: { role: 'model', parts: [{ text }] }, turnComplete: true }; + const taskQueue = `test-structured-output-${Date.now()}-${Math.random()}`; + const worker = await Worker.create({ + connection: testEnv.nativeConnection, + taskQueue, + workflowsPath: require.resolve('../workflows'), + plugins: [new GoogleAdkPlugin({ modelProvider: fakeModelProvider([response]) })], + }); + return worker.runUntil( + testEnv.client.workflow.execute(summarizeIncident, { + args: ['The database is timing out.'], + workflowId: taskQueue, + taskQueue, + }), + ); + } + + it('returns a typed incident summary', async () => { + assert.deepStrictEqual(await execute('{"title":"Database outage","severity":"high","actions":["Fail over"]}'), { + title: 'Database outage', + severity: 'high', + actions: ['Fail over'], + }); + }); + + it('omits properties outside the schema', async () => { + assert.deepStrictEqual( + await execute('{"title":"Database outage","severity":"high","actions":["Fail over"],"extra":"ignore"}'), + { + title: 'Database outage', + severity: 'high', + actions: ['Fail over'], + }, + ); + }); + + it('rejects output outside the schema', async () => { + await assert.rejects(execute('{"title":"Database outage","severity":"urgent","actions":[]}'), (error) => { + assert(error instanceof WorkflowFailedError); + assert(error.cause instanceof ApplicationFailure); + assert.strictEqual(error.cause.nonRetryable, true); + assert.strictEqual(error.cause.type, 'InvalidIncidentSummary'); + return true; + }); + }); + + it('rejects malformed JSON', async () => { + await assert.rejects(execute('{"title":'), (error) => { + assert(error instanceof WorkflowFailedError); + assert(error.cause instanceof ApplicationFailure); + assert.strictEqual(error.cause.nonRetryable, true); + assert.strictEqual(error.cause.type, 'InvalidIncidentSummary'); + return true; + }); + }); +}); diff --git a/google-adk-agents/src/structured-output/worker.ts b/google-adk-agents/src/structured-output/worker.ts new file mode 100644 index 000000000..da5e31398 --- /dev/null +++ b/google-adk-agents/src/structured-output/worker.ts @@ -0,0 +1,37 @@ +import type { LlmResponse } from '@google/adk'; +import { NativeConnection, Worker } from '@temporalio/worker'; +import { GoogleAdkPlugin } from '@temporalio/google-adk-agents'; +import { fakeModelProvider } from '@temporalio/google-adk-agents/testing'; + +async function run() { + const offline: LlmResponse[] = [ + { + content: { + role: 'model', + parts: [ + { text: JSON.stringify({ title: 'Database latency', severity: 'high', actions: ['Inspect slow queries'] }) }, + ], + }, + turnComplete: true, + }, + ]; + const connection = await NativeConnection.connect({ address: 'localhost:7233' }); + try { + const worker = await Worker.create({ + connection, + taskQueue: 'google-adk-structured-output', + workflowsPath: require.resolve('./workflows'), + plugins: [ + new GoogleAdkPlugin(process.env.MODEL_PROVIDER === 'fake' ? { modelProvider: fakeModelProvider(offline) } : {}), + ], + }); + await worker.run(); + } finally { + await connection.close(); + } +} + +run().catch((err) => { + console.error(err); + process.exit(1); +}); diff --git a/google-adk-agents/src/structured-output/workflows.ts b/google-adk-agents/src/structured-output/workflows.ts new file mode 100644 index 000000000..76fd8b1b6 --- /dev/null +++ b/google-adk-agents/src/structured-output/workflows.ts @@ -0,0 +1,59 @@ +import { InMemoryRunner, LlmAgent, isFinalResponse, stringifyContent } from '@google/adk'; +import { Type } from '@google/genai'; +import { TemporalModel } from '@temporalio/google-adk-agents/workflow'; +import { ApplicationFailure } from '@temporalio/workflow'; + +export interface IncidentSummary { + title: string; + severity: 'low' | 'medium' | 'high'; + actions: string[]; +} + +export async function summarizeIncident(description: string): Promise { + const agent = new LlmAgent({ + name: 'incident_summarizer', + model: new TemporalModel('gemini-2.5-flash'), + instruction: 'Summarize the incident using the requested schema.', + outputSchema: { + type: Type.OBJECT, + properties: { + title: { type: Type.STRING }, + severity: { type: Type.STRING, enum: ['low', 'medium', 'high'] }, + actions: { type: Type.ARRAY, items: { type: Type.STRING } }, + }, + required: ['title', 'severity', 'actions'], + }, + }); + const runner = new InMemoryRunner({ agent }); + let text = ''; + for await (const event of runner.runEphemeral({ + userId: 'user', + newMessage: { role: 'user', parts: [{ text: description }] }, + })) { + if (isFinalResponse(event)) text = stringifyContent(event); + } + let value: unknown; + try { + value = JSON.parse(text) as unknown; + } catch { + throw ApplicationFailure.nonRetryable('Model returned malformed JSON', 'InvalidIncidentSummary'); + } + if (value === null || typeof value !== 'object' || Array.isArray(value)) { + throw ApplicationFailure.nonRetryable('Model returned an invalid incident summary', 'InvalidIncidentSummary'); + } + const result = value as Record; + if ( + typeof result.title !== 'string' || + typeof result.severity !== 'string' || + !['low', 'medium', 'high'].includes(result.severity) || + !Array.isArray(result.actions) || + !result.actions.every((action) => typeof action === 'string') + ) { + throw ApplicationFailure.nonRetryable('Model returned an invalid incident summary', 'InvalidIncidentSummary'); + } + return { + title: result.title, + severity: result.severity, + actions: result.actions, + } as IncidentSummary; +} diff --git a/google-adk-agents/src/tools/README.md b/google-adk-agents/src/tools/README.md new file mode 100644 index 000000000..23a76dd7d --- /dev/null +++ b/google-adk-agents/src/tools/README.md @@ -0,0 +1,11 @@ +# Tools + +The agent can call a deterministic Celsius conversion `FunctionTool` in the Workflow and an Activity-backed weather tool for non-deterministic work. + +Start a live Worker with `GEMINI_API_KEY=... npx ts-node src/tools/worker.ts` or a credential-free Worker with `MODEL_PROVIDER=fake npx ts-node src/tools/worker.ts`. + +```sh +temporal workflow start --type weatherAgent --task-queue google-adk-tools --workflow-id google-adk-tools-1 --input '"What is 17 Celsius in Fahrenheit, and what is the weather in Tokyo?"' +``` + +The API-key-free test verifies that only `getWeather` schedules a tool Activity. diff --git a/google-adk-agents/src/tools/activities.ts b/google-adk-agents/src/tools/activities.ts new file mode 100644 index 000000000..6b4c9fe02 --- /dev/null +++ b/google-adk-agents/src/tools/activities.ts @@ -0,0 +1,3 @@ +export async function getWeather(args: { city: string }): Promise { + return `The weather in ${args.city} is warm and sunny, 17 degrees.`; +} diff --git a/google-adk-agents/src/tools/mocha/workflows.test.ts b/google-adk-agents/src/tools/mocha/workflows.test.ts new file mode 100644 index 000000000..5834e64db --- /dev/null +++ b/google-adk-agents/src/tools/mocha/workflows.test.ts @@ -0,0 +1,106 @@ +import { BaseLlm } from '@google/adk'; +import type { BaseLlmConnection, LlmRequest, LlmResponse } from '@google/adk'; +import { TestWorkflowEnvironment } from '@temporalio/testing'; +import { ApplicationFailure } from '@temporalio/common'; +import { Worker } from '@temporalio/worker'; +import { GoogleAdkPlugin } from '@temporalio/google-adk-agents'; +import { after, before, describe, it } from 'mocha'; +import assert from 'assert'; +import * as activities from '../activities'; +import { weatherAgent } from '../workflows'; + +function weatherModelProvider(): (model: string) => BaseLlm { + class WeatherLlm extends BaseLlm { + override async *generateContentAsync( + llmRequest: LlmRequest, + _stream = false, + _abortSignal?: AbortSignal, + ): AsyncGenerator { + const parts = (llmRequest.contents ?? []).flatMap((content) => content.parts ?? []); + const conversion = parts.find((part) => part.functionResponse?.name === 'celsiusToFahrenheit'); + const toolResponse = parts.find((part) => part.functionResponse?.name === 'getWeather')?.functionResponse + ?.response as { result?: unknown; error?: unknown } | undefined; + if (toolResponse === undefined) { + if (conversion === undefined) { + yield { + content: { + role: 'model', + parts: [{ functionCall: { name: 'celsiusToFahrenheit', args: { celsius: 17 } } }], + }, + turnComplete: true, + }; + return; + } + yield { + content: { role: 'model', parts: [{ functionCall: { name: 'getWeather', args: { city: 'Tokyo' } } }] }, + turnComplete: true, + }; + return; + } + const text = + toolResponse.error === undefined + ? String(toolResponse.result) + : `I could not look up the weather: ${String(toolResponse.error)}`; + yield { content: { role: 'model', parts: [{ text }] }, turnComplete: true }; + } + + override async connect(_llmRequest: LlmRequest): Promise { + throw new Error('WeatherLlm does not support connect().'); + } + } + return (model: string) => new WeatherLlm({ model }); +} + +describe('google-adk-agents/tools workflow scenarios', function () { + this.timeout(30_000); + + let testEnv: TestWorkflowEnvironment; + + before(async () => { + testEnv = await TestWorkflowEnvironment.createLocal(); + }); + + after(async () => { + await testEnv?.teardown(); + }); + + async function runWeatherAgent(taskQueue: string, workflowId: string, workerActivities: typeof activities) { + const worker = await Worker.create({ + connection: testEnv.nativeConnection, + taskQueue, + workflowsPath: require.resolve('../workflows'), + activities: workerActivities, + plugins: [new GoogleAdkPlugin({ modelProvider: weatherModelProvider() })], + }); + return worker.runUntil( + testEnv.client.workflow.execute(weatherAgent, { + args: ['What is the weather in Tokyo?'], + workflowId, + taskQueue, + }), + ); + } + + it('weatherAgent: the model calls the tool, the Activity runs, and its result reaches the next turn', async () => { + const taskQueue = 'test-google-adk-tools-agent'; + const workflowId = taskQueue + '-' + Date.now(); + const result = await runWeatherAgent(taskQueue, workflowId, activities); + assert.strictEqual(result, 'The weather in Tokyo is warm and sunny, 17 degrees.'); + + const { events } = await testEnv.client.workflow.getHandle(workflowId).fetchHistory(); + const scheduled = (events ?? []).map((e) => e.activityTaskScheduledEventAttributes?.activityType?.name); + assert.strictEqual(scheduled.filter((name) => name === 'getWeather').length, 1); + assert.strictEqual(scheduled.filter((name) => name === 'celsiusToFahrenheit').length, 0); + assert.strictEqual(scheduled.filter((name) => name === 'adk-invokeModel').length, 3); + }); + + it('weatherAgent: a failed tool Activity reaches the model as the tool response, and the agent answers from it', async () => { + const taskQueue = 'test-google-adk-tools-agent-failure'; + const result = await runWeatherAgent(taskQueue, taskQueue + '-' + Date.now(), { + getWeather: async () => { + throw ApplicationFailure.nonRetryable('the weather service is down'); + }, + }); + assert.strictEqual(result, 'I could not look up the weather: Activity task failed'); + }); +}); diff --git a/google-adk-agents/src/tools/offline-model.ts b/google-adk-agents/src/tools/offline-model.ts new file mode 100644 index 000000000..e489813be --- /dev/null +++ b/google-adk-agents/src/tools/offline-model.ts @@ -0,0 +1,36 @@ +import { BaseLlm } from '@google/adk'; +import type { BaseLlmConnection, LlmRequest, LlmResponse } from '@google/adk'; + +export function offlineModelProvider(): (model: string) => BaseLlm { + class OfflineLlm extends BaseLlm { + override async *generateContentAsync(request: LlmRequest): AsyncGenerator { + const responses = (request.contents ?? []) + .flatMap((content) => content.parts ?? []) + .map((part) => part.functionResponse) + .filter((response) => response !== undefined); + if (!responses.some((response) => response.name === 'celsiusToFahrenheit')) { + yield { + content: { role: 'model', parts: [{ functionCall: { name: 'celsiusToFahrenheit', args: { celsius: 17 } } }] }, + turnComplete: true, + }; + return; + } + if (!responses.some((response) => response.name === 'getWeather')) { + yield { + content: { role: 'model', parts: [{ functionCall: { name: 'getWeather', args: { city: 'Tokyo' } } }] }, + turnComplete: true, + }; + return; + } + yield { + content: { role: 'model', parts: [{ text: 'Tokyo is 17°C (62.6°F), warm and sunny.' }] }, + turnComplete: true, + }; + } + + override async connect(): Promise { + throw new Error('OfflineLlm does not support connect().'); + } + } + return (model) => new OfflineLlm({ model }); +} diff --git a/google-adk-agents/src/tools/worker.ts b/google-adk-agents/src/tools/worker.ts new file mode 100644 index 000000000..4695822b8 --- /dev/null +++ b/google-adk-agents/src/tools/worker.ts @@ -0,0 +1,27 @@ +import { NativeConnection, Worker } from '@temporalio/worker'; +import { GoogleAdkPlugin } from '@temporalio/google-adk-agents'; +import { offlineModelProvider } from './offline-model'; +import * as activities from './activities'; + +async function run() { + const connection = await NativeConnection.connect({ address: 'localhost:7233' }); + try { + const worker = await Worker.create({ + connection, + taskQueue: 'google-adk-tools', + workflowsPath: require.resolve('./workflows'), + activities, + plugins: [ + new GoogleAdkPlugin(process.env.MODEL_PROVIDER === 'fake' ? { modelProvider: offlineModelProvider() } : {}), + ], + }); + await worker.run(); + } finally { + await connection.close(); + } +} + +run().catch((err) => { + console.error(err); + process.exit(1); +}); diff --git a/google-adk-agents/src/tools/workflows.ts b/google-adk-agents/src/tools/workflows.ts new file mode 100644 index 000000000..94afc5d11 --- /dev/null +++ b/google-adk-agents/src/tools/workflows.ts @@ -0,0 +1,48 @@ +import { FunctionTool, InMemoryRunner, LlmAgent, isFinalResponse, stringifyContent } from '@google/adk'; +import { Type } from '@google/genai'; +import { activityAsTool, TemporalModel } from '@temporalio/google-adk-agents/workflow'; + +export async function weatherAgent(prompt: string): Promise { + const agent = new LlmAgent({ + name: 'weather_agent', + model: new TemporalModel('gemini-2.5-flash'), + instruction: 'Use both tools to convert the reported Celsius temperature and answer the weather question.', + tools: [ + new FunctionTool({ + name: 'celsiusToFahrenheit', + description: 'Convert a Celsius temperature to Fahrenheit.', + parameters: { + type: Type.OBJECT, + properties: { celsius: { type: Type.NUMBER } }, + required: ['celsius'], + }, + execute: (input) => { + const { celsius } = input as { celsius: number }; + return { fahrenheit: (celsius * 9) / 5 + 32 }; + }, + }), + activityAsTool({ + name: 'getWeather', + description: 'Get the current weather for a city.', + parameters: { + type: Type.OBJECT, + properties: { city: { type: Type.STRING, description: 'The city name' } }, + required: ['city'], + }, + }), + ], + }); + + const runner = new InMemoryRunner({ agent }); + + let finalText = ''; + for await (const event of runner.runEphemeral({ + userId: 'user', + newMessage: { role: 'user', parts: [{ text: prompt }] }, + })) { + if (isFinalResponse(event)) { + finalText = stringifyContent(event); + } + } + return finalText; +} diff --git a/google-adk-agents/tsconfig.json b/google-adk-agents/tsconfig.json new file mode 100644 index 000000000..2be94fba2 --- /dev/null +++ b/google-adk-agents/tsconfig.json @@ -0,0 +1,15 @@ +{ + "extends": "@tsconfig/node22/tsconfig.json", + "version": "5.6.3", + "compilerOptions": { + "lib": ["es2021"], + "module": "commonjs", + "moduleResolution": "node", + "declaration": true, + "declarationMap": true, + "sourceMap": true, + "rootDir": "./src", + "outDir": "./lib" + }, + "include": ["src/**/*.ts"] +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9be139708..1397bf9a7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -158,7 +158,7 @@ importers: version: 0.28.0 node-fetch: specifier: 2.x - version: 2.7.0 + version: 2.7.0(encoding@0.1.13) devDependencies: '@temporalio/nyc-test-coverage': specifier: ^1.23.0 @@ -225,7 +225,7 @@ importers: version: 0.5.21 ts-jest: specifier: ^28.0.2 - version: 28.0.8(@babel/core@7.26.7)(@jest/types@28.1.3)(babel-jest@28.1.3(@babel/core@7.26.7))(jest@28.1.3(@types/node@22.12.0)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3)))(typescript@5.7.3) + version: 28.0.8(@babel/core@7.29.7)(@jest/types@28.1.3)(babel-jest@28.1.3(@babel/core@7.29.7))(jest@28.1.3(@types/node@22.12.0)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3)))(typescript@5.7.3) ts-node: specifier: ^10.9.2 version: 10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3) @@ -1197,7 +1197,7 @@ importers: version: 0.1.13(prettier@3.4.2) vercel: specifier: ^29.0.3 - version: 29.4.0(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(babel-plugin-macros@3.1.0)(terser@5.37.0)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3)) + version: 29.4.0(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(babel-plugin-macros@3.1.0)(encoding@0.1.13)(terser@5.37.0)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3)) food-delivery/apps/driver: dependencies: @@ -1227,7 +1227,7 @@ importers: version: 10.45.2(@trpc/server@10.45.2) '@trpc/next': specifier: ^10.0.0-rc.8 - version: 10.45.2(@tanstack/react-query@4.36.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@trpc/client@10.45.2(@trpc/server@10.45.2))(@trpc/react-query@10.45.2(@tanstack/react-query@4.36.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@trpc/client@10.45.2(@trpc/server@10.45.2))(@trpc/server@10.45.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@trpc/server@10.45.2)(next@15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 10.45.2(@tanstack/react-query@4.36.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@trpc/client@10.45.2(@trpc/server@10.45.2))(@trpc/react-query@10.45.2(@tanstack/react-query@4.36.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@trpc/client@10.45.2(@trpc/server@10.45.2))(@trpc/server@10.45.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@trpc/server@10.45.2)(next@15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@trpc/react-query': specifier: ^10.0.0-rc.8 version: 10.45.2(@tanstack/react-query@4.36.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@trpc/client@10.45.2(@trpc/server@10.45.2))(@trpc/server@10.45.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1248,7 +1248,7 @@ importers: version: 0.32.6 vercel: specifier: ^29.0.3 - version: 29.4.0(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(babel-plugin-macros@3.1.0)(terser@5.37.0)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3)) + version: 29.4.0(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(babel-plugin-macros@3.1.0)(encoding@0.1.13)(terser@5.37.0)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3)) zod: specifier: ^3.19.1 version: 3.24.1 @@ -1315,7 +1315,7 @@ importers: version: 10.45.2(@trpc/server@10.45.2) '@trpc/next': specifier: ^10.0.0-rc.8 - version: 10.45.2(@tanstack/react-query@4.36.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@trpc/client@10.45.2(@trpc/server@10.45.2))(@trpc/react-query@10.45.2(@tanstack/react-query@4.36.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@trpc/client@10.45.2(@trpc/server@10.45.2))(@trpc/server@10.45.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@trpc/server@10.45.2)(next@15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 10.45.2(@tanstack/react-query@4.36.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@trpc/client@10.45.2(@trpc/server@10.45.2))(@trpc/react-query@10.45.2(@tanstack/react-query@4.36.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@trpc/client@10.45.2(@trpc/server@10.45.2))(@trpc/server@10.45.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@trpc/server@10.45.2)(next@15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@trpc/react-query': specifier: ^10.0.0-rc.8 version: 10.45.2(@tanstack/react-query@4.36.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@trpc/client@10.45.2(@trpc/server@10.45.2))(@trpc/server@10.45.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1544,6 +1544,91 @@ importers: specifier: ^5.6.3 version: 5.7.3 + google-adk-agents: + dependencies: + '@google/adk': + specifier: '>=1.5.0 <1.6.0' + version: 1.5.0(@grpc/grpc-js@1.14.4)(@mikro-orm/mariadb@6.6.16(@mikro-orm/core@6.6.16)(pg@8.20.0))(@mikro-orm/mssql@6.6.16(@mikro-orm/core@6.6.16)(mariadb@3.4.5)(pg@8.20.0))(@mikro-orm/mysql@6.6.16(@mikro-orm/core@6.6.16)(@types/node@22.12.0)(mariadb@3.4.5)(pg@8.20.0))(@mikro-orm/postgresql@6.6.16(@mikro-orm/core@6.6.16)(mariadb@3.4.5))(@mikro-orm/sqlite@6.6.16(@mikro-orm/core@6.6.16)(mariadb@3.4.5)(pg@8.20.0))(@opentelemetry/core@2.9.0(@opentelemetry/api@1.9.0))(encoding@0.1.13) + '@google/genai': + specifier: ^2.9.0 + version: 2.19.0(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3)) + '@opentelemetry/api': + specifier: ^1.9.0 + version: 1.9.0 + '@opentelemetry/resources': + specifier: ^1.25.1 + version: 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': + specifier: ^1.25.1 + version: 1.30.1(@opentelemetry/api@1.9.0) + '@temporalio/client': + specifier: ^1.23.0 + version: 1.23.0 + '@temporalio/common': + specifier: ^1.23.0 + version: 1.23.0 + '@temporalio/google-adk-agents': + specifier: ^1.23.0 + version: 1.23.0(@google/adk@1.5.0(@grpc/grpc-js@1.14.4)(@mikro-orm/mariadb@6.6.16(@mikro-orm/core@6.6.16)(pg@8.20.0))(@mikro-orm/mssql@6.6.16(@mikro-orm/core@6.6.16)(mariadb@3.4.5)(pg@8.20.0))(@mikro-orm/mysql@6.6.16(@mikro-orm/core@6.6.16)(@types/node@22.12.0)(mariadb@3.4.5)(pg@8.20.0))(@mikro-orm/postgresql@6.6.16(@mikro-orm/core@6.6.16)(mariadb@3.4.5))(@mikro-orm/sqlite@6.6.16(@mikro-orm/core@6.6.16)(mariadb@3.4.5)(pg@8.20.0))(@opentelemetry/core@2.9.0(@opentelemetry/api@1.9.0))(encoding@0.1.13))(@google/genai@2.19.0(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))) + '@temporalio/interceptors-opentelemetry': + specifier: ^1.23.0 + version: 1.23.0(@temporalio/common@1.23.0)(@temporalio/workflow@1.23.0) + '@temporalio/worker': + specifier: ^1.23.0 + version: 1.23.0(@swc/helpers@0.5.15) + '@temporalio/workflow': + specifier: ^1.23.0 + version: 1.23.0 + '@temporalio/workflow-streams': + specifier: ^1.23.0 + version: 1.23.0 + nanoid: + specifier: 3.x + version: 3.3.12 + devDependencies: + '@temporalio/testing': + specifier: ^1.23.0 + version: 1.23.0(@swc/helpers@0.5.15) + '@tsconfig/node22': + specifier: ^22.0.0 + version: 22.0.5 + '@types/mocha': + specifier: 8.x + version: 8.2.3 + '@types/node': + specifier: ^22.9.1 + version: 22.12.0 + '@typescript-eslint/eslint-plugin': + specifier: ^8.18.0 + version: 8.22.0(@typescript-eslint/parser@8.22.0(eslint@8.57.1)(typescript@5.7.3))(eslint@8.57.1)(typescript@5.7.3) + '@typescript-eslint/parser': + specifier: ^8.18.0 + version: 8.22.0(eslint@8.57.1)(typescript@5.7.3) + eslint: + specifier: ^8.57.1 + version: 8.57.1 + eslint-config-prettier: + specifier: ^9.1.0 + version: 9.1.0(eslint@8.57.1) + eslint-plugin-deprecation: + specifier: ^3.0.0 + version: 3.0.0(eslint@8.57.1)(typescript@5.7.3) + mocha: + specifier: 8.x + version: 8.4.0(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3)) + prettier: + specifier: ^3.4.2 + version: 3.4.2 + source-map-support: + specifier: ^0.5.21 + version: 0.5.21 + ts-node: + specifier: ^10.9.2 + version: 10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3) + typescript: + specifier: ^5.6.3 + version: 5.7.3 + grpc-calls: dependencies: '@temporalio/activity': @@ -2265,7 +2350,7 @@ importers: version: 10.4.20(postcss@8.5.1) eslint-config-react-app: specifier: ^7.0.0 - version: 7.0.1(@babel/plugin-syntax-flow@7.26.0(@babel/core@7.26.7))(@babel/plugin-transform-react-jsx@7.25.9(@babel/core@7.26.7))(eslint@8.57.1)(jest@27.5.1(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3)))(typescript@5.7.3) + version: 7.0.1(@babel/plugin-syntax-flow@7.26.0(@babel/core@7.26.7))(@babel/plugin-transform-react-jsx@7.25.9(@babel/core@7.26.7))(eslint@8.57.1)(jest@27.5.1(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@24.13.3)(typescript@5.7.3)))(typescript@5.7.3) postcss: specifier: ^8.1.0 version: 8.5.1 @@ -2277,7 +2362,7 @@ importers: version: 17.0.2(react@17.0.2) react-scripts: specifier: ^5.0.0 - version: 5.0.1(@babel/plugin-syntax-flow@7.26.0(@babel/core@7.26.7))(@babel/plugin-transform-react-jsx@7.25.9(@babel/core@7.26.7))(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/babel__core@7.20.5)(eslint@8.57.1)(react@17.0.2)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3))(type-fest@0.21.3)(typescript@5.7.3) + version: 5.0.1(@babel/plugin-syntax-flow@7.26.0(@babel/core@7.26.7))(@babel/plugin-transform-react-jsx@7.25.9(@babel/core@7.26.7))(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/babel__core@7.20.5)(eslint@8.57.1)(react@17.0.2)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@24.13.3)(typescript@5.7.3))(type-fest@0.21.3)(typescript@5.7.3) web-vitals: specifier: ^1.0.1 version: 1.1.2 @@ -2413,7 +2498,7 @@ importers: version: 3.3.0(@nestjs/common@10.4.15(reflect-metadata@0.2.2)(rxjs@7.8.1))(rxjs@7.8.1) '@nestjs/core': specifier: ^10.4.8 - version: 10.4.15(@nestjs/common@10.4.15(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.15)(reflect-metadata@0.2.2)(rxjs@7.8.1) + version: 10.4.15(@nestjs/common@10.4.15(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.15)(encoding@0.1.13)(reflect-metadata@0.2.2)(rxjs@7.8.1) '@nestjs/platform-express': specifier: ^10.4.8 version: 10.4.15(@nestjs/common@10.4.15(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.15) @@ -2981,7 +3066,7 @@ importers: version: 8.57.1 node-fetch: specifier: 2.x - version: 2.7.0 + version: 2.7.0(encoding@0.1.13) devDependencies: '@tsconfig/node22': specifier: ^22.0.0 @@ -3860,7 +3945,7 @@ importers: version: 1.29.0(zod@4.4.3) '@strands-agents/sdk': specifier: ^1.3.0 - version: 1.11.0(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(@opentelemetry/api@1.9.0)(@opentelemetry/resources@2.9.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-metrics@2.9.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.9.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-node@2.9.0(@opentelemetry/api@1.9.0))(@smithy/types@4.16.1)(express@5.2.1)(openai@6.45.0(@aws-sdk/credential-provider-node@3.972.71)(@smithy/signature-v4@5.6.9)(ws@8.18.0)(zod@4.4.3))(zod@4.4.3) + version: 1.11.0(@a2a-js/sdk@0.3.14(@grpc/grpc-js@1.14.4)(express@5.2.1))(@google/genai@2.19.0(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3)))(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(@opentelemetry/api@1.9.0)(@opentelemetry/resources@2.9.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-metrics@2.9.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.9.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-node@2.9.0(@opentelemetry/api@1.9.0))(@smithy/types@4.16.1)(express@5.2.1)(openai@6.45.0(@aws-sdk/credential-provider-node@3.972.71)(@smithy/signature-v4@5.6.9)(ws@8.18.0)(zod@4.4.3))(zod@4.4.3) '@temporalio/activity': specifier: ^1.23.0 version: 1.23.0 @@ -3875,7 +3960,7 @@ importers: version: 1.23.0 '@temporalio/strands-agents': specifier: ^1.23.0 - version: 1.23.0(@strands-agents/sdk@1.11.0(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(@opentelemetry/api@1.9.0)(@opentelemetry/resources@2.9.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-metrics@2.9.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.9.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-node@2.9.0(@opentelemetry/api@1.9.0))(@smithy/types@4.16.1)(express@5.2.1)(openai@6.45.0(@aws-sdk/credential-provider-node@3.972.71)(@smithy/signature-v4@5.6.9)(ws@8.18.0)(zod@4.4.3))(zod@4.4.3))(zod@4.4.3) + version: 1.23.0(@strands-agents/sdk@1.11.0(@a2a-js/sdk@0.3.14(@grpc/grpc-js@1.14.4)(express@5.2.1))(@google/genai@2.19.0(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3)))(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(@opentelemetry/api@1.9.0)(@opentelemetry/resources@2.9.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-metrics@2.9.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.9.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-node@2.9.0(@opentelemetry/api@1.9.0))(@smithy/types@4.16.1)(express@5.2.1)(openai@6.45.0(@aws-sdk/credential-provider-node@3.972.71)(@smithy/signature-v4@5.6.9)(ws@8.18.0)(zod@4.4.3))(zod@4.4.3))(zod@4.4.3) '@temporalio/worker': specifier: ^1.23.0 version: 1.23.0(@swc/helpers@0.5.15) @@ -4256,7 +4341,7 @@ importers: version: 3.3.12 openai: specifier: ^4.77.0 - version: 4.104.0(ws@8.18.0)(zod@3.24.1) + version: 4.104.0(encoding@0.1.13)(ws@8.18.0)(zod@3.24.1) devDependencies: '@temporalio/testing': specifier: ^1.23.0 @@ -4306,6 +4391,21 @@ importers: packages: + '@a2a-js/sdk@0.3.14': + resolution: {integrity: sha512-F6Ew1AtPzCLhTn8h9yiqTe7DiDf6XVrSnq9V1YqSl9eWqPm6anMveTiKdCSb/76cW0YiJc24rNaUrVezFFHbqQ==} + engines: {node: '>=18'} + peerDependencies: + '@bufbuild/protobuf': ^2.10.2 + '@grpc/grpc-js': ^1.11.0 + express: ^4.21.2 || ^5.1.0 + peerDependenciesMeta: + '@bufbuild/protobuf': + optional: true + '@grpc/grpc-js': + optional: true + express: + optional: true + '@adobe/css-tools@4.4.1': resolution: {integrity: sha512-12WGKBQzjUAI4ayyF4IAtfw2QR/IDoqk6jTddXDhtYTJF9ASmoE1zst7cVtP0aL/F1jUJL5r+JxKXKEgHNbEUQ==} @@ -4477,6 +4577,74 @@ packages: resolution: {integrity: sha512-sl4Bm6yiMNYrZKkqqDFWN0UfnWhlS8ivKxrYl+6t0gCLrqr8y3B2IqZZbFRkfaVVp7C/baApyh71P+LeE1A2sQ==} engines: {node: '>=18.0.0'} + '@azure-rest/core-client@2.8.0': + resolution: {integrity: sha512-F1ybHeN+++QhyFCF/ehLUEvrOB6fehPdFBFtGdj0C3B2lpQ9zkPiO5JDgsqc6IfjuUe6b3dAbXK0a7+VgSGfhw==} + engines: {node: '>=22.0.0'} + + '@azure/abort-controller@2.2.0': + resolution: {integrity: sha512-fNAjWnA/nZ2jz31kxR/AqRaUT8ewHBw/WuBIosK0moMy1C9e5ValbDfFdIxJzVOOYaYkV/b2F1S4H/aHiqfVQg==} + engines: {node: '>=22.0.0'} + + '@azure/core-auth@1.11.0': + resolution: {integrity: sha512-IUZydyTUkDnYdstOW9pFOOUQlBjAepK5teihDE3x6yxsPJs/hsAaaYpeGxdxrgtOiJbBKSjKW7MDk7AEhb4LRg==} + engines: {node: '>=22.0.0'} + + '@azure/core-client@1.11.0': + resolution: {integrity: sha512-JjQWO6akOck45PH/XBrxzsQGAiKrfFl4m5iggJ0ItMIz5omRufOXWpqCPpdjKN3vKDzlSUvFjaMb7Zwf0gvAdA==} + engines: {node: '>=22.0.0'} + + '@azure/core-lro@2.7.2': + resolution: {integrity: sha512-0YIpccoX8m/k00O7mDDMdJpbr6mf1yWo2dfmxt5A8XVZVVMz2SSKaEbMCeJRvgQ0IaSlqhjT47p4hVIRRy90xw==} + engines: {node: '>=18.0.0'} + + '@azure/core-paging@1.7.0': + resolution: {integrity: sha512-7GEAoIsaoBr6KELNRb8nypowCqvk8dnCHFCYg4XD4lOQGY2GqjQg5IhkRjyBFRO18CGSMq05PaNqSOE9GQro3g==} + engines: {node: '>=22.0.0'} + + '@azure/core-process@1.0.0': + resolution: {integrity: sha512-/shnJ+ooO8WPxDhPEeI/2oRQuubn16gZ6CvlbpWbEswZfzwI9tI/sMAHmF3x1LuQ9yZYXfLW3TjzGMLEC5blKg==} + engines: {node: '>=22.0.0'} + + '@azure/core-rest-pipeline@1.25.0': + resolution: {integrity: sha512-bMs8ekJLjX8wPV+9IPBges1SLPyuDtE9g5gLDWOpxzKcoOFQnpLGkbcT1tdw3FaAmDS1gnPmMmJ6y/T5B96kIA==} + engines: {node: '>=22.0.0'} + + '@azure/core-tracing@1.4.0': + resolution: {integrity: sha512-eGwxD0AtncrxeBM4tG8R55Pc3rdX1hNW2WibJAgYpCVA6E93mvvVH+LcssoVjOBrSKWS55yEIHsk0X8ctHmfOQ==} + engines: {node: '>=22.0.0'} + + '@azure/core-util@1.14.0': + resolution: {integrity: sha512-9n2pWK61veAuN0V20t9lOuoV4CFMdyAZ1ygZzvBGk/pBBJRib/PjL9PLXa/aI2CcPpyHfqVsxxqLCYl6uZlfDw==} + engines: {node: '>=22.0.0'} + + '@azure/identity@4.13.2': + resolution: {integrity: sha512-NXL2/pCJctLxgw8bvrwwgge743kEq8LBT+O1pmV0vyUwetzFPH9auP6jhkU/cgZCPPtWoewAe3ncaGCgPo07fA==} + engines: {node: '>=22.0.0'} + + '@azure/keyvault-common@2.1.0': + resolution: {integrity: sha512-aCDidWuKY06LWQ4x7/8TIXK6iRqTaRWRL3t7T+LC+j1b07HtoIsOxP/tU90G4jCSBn5TAyUTCtA4MS/y5Hudaw==} + engines: {node: '>=20.0.0'} + + '@azure/keyvault-keys@4.10.2': + resolution: {integrity: sha512-VmUSLbXRAbSzDD8grXHGPaknYs0SKr3yuf6U+d4XMpX4XuVYskNqbTTwXce0zR1LyxfTZm9rWEBcvs3vdYwCmQ==} + engines: {node: '>=20.0.0'} + + '@azure/logger@1.4.0': + resolution: {integrity: sha512-rbAE25KUfjU/s3XHUdJgceoCP5dEOpMx85J04kF+QMdta73XkuG9JGHHinch+XIoKpBdqljin+KqURpJriSzLA==} + engines: {node: '>=22.0.0'} + + '@azure/msal-browser@5.19.0': + resolution: {integrity: sha512-DHe9iRcyByGJuLPkl0K31a1JjOdRY2zX38Q07mQpSbR8zOj1EIgsWfTXhSQVyyijUxlcofVy/br7qWJbrMwVXQ==} + engines: {node: '>=0.8.0'} + + '@azure/msal-common@16.13.0': + resolution: {integrity: sha512-rOAy0KUcyBbdwVJ+f3uPpthXatFLLZN+/KWAsTLzk1aB23Xl9DRmmXYwSvBFOZyXj4jUQQ5FKxxRkhAFW1fOow==} + engines: {node: '>=0.8.0'} + + '@azure/msal-node@5.6.0': + resolution: {integrity: sha512-uFY9NxrWHw8PwZx7gAX6PDn+9vdfS05+levc/kwkx77IkjfaldnQbbcQzzDIZ5Hq5Zdr6/z92oAIoRWKp6MnOA==} + engines: {node: '>=20'} + '@babel/code-frame@7.26.2': resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} engines: {node: '>=6.9.0'} @@ -4544,12 +4712,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-create-regexp-features-plugin@7.26.3': - resolution: {integrity: sha512-G7ZRb40uUgdKOQqPLjfD12ZmGA54PzqDFUv2BKImnC9QIfGhIHKvVML0oN8IUiDq4iRqpq74ABpvOaerfWdong==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - '@babel/helper-create-regexp-features-plugin@7.29.7': resolution: {integrity: sha512-907Uymvqgg1dwUA+7IGwFAOSYzQOuzPXKNJ1yxzwPffzkYFg2q2eHi1fIOs6sXkG9NbIUMunnUlkYsfRFNvomg==} engines: {node: '>=6.9.0'} @@ -4614,12 +4776,6 @@ packages: resolution: {integrity: sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==} engines: {node: '>=6.9.0'} - '@babel/helper-remap-async-to-generator@7.25.9': - resolution: {integrity: sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - '@babel/helper-remap-async-to-generator@7.29.7': resolution: {integrity: sha512-16AMiW26DbXWBbr3B8wNozKM0ydMLB892vaOaJW/fPJdnT8vJk5sdkQcU/isqUxyCE0cEoa8wZOcbgDuC4b6Og==} engines: {node: '>=6.9.0'} @@ -4670,10 +4826,6 @@ packages: resolution: {integrity: sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==} engines: {node: '>=6.9.0'} - '@babel/helper-wrap-function@7.25.9': - resolution: {integrity: sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==} - engines: {node: '>=6.9.0'} - '@babel/helper-wrap-function@7.29.7': resolution: {integrity: sha512-iES0Skag9ERIF68aXadpO6dbXa03mNWK3sEqJaMnLNs/eC3l0lkImdfoy6Y09/SfkpawdAB4RjQ7PVA7TcVGdw==} engines: {node: '>=6.9.0'} @@ -5800,6 +5952,9 @@ packages: '@dabh/diagnostics@2.0.3': resolution: {integrity: sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==} + '@dabh/diagnostics@2.0.8': + resolution: {integrity: sha512-R4MSXTVnuMzGD7bzHdW2ZhhdPC/igELENcq5IjEverBvq5hn1SXCWcsi6eSsdWP0/Ur+SItRRjAktmdoX/8R/Q==} + '@edge-runtime/format@2.0.1': resolution: {integrity: sha512-aE+9DtBvQyg349srixtXEUNauWtIv5HTKPy8Q9dvG1NvpldVIvvhcDBI+SuvDVM8kQl8phbYnp2NTNloBCn/Yg==} engines: {node: '>=14'} @@ -6274,6 +6429,86 @@ packages: '@gar/promisify@1.1.3': resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} + '@google-cloud/opentelemetry-cloud-monitoring-exporter@0.21.0': + resolution: {integrity: sha512-+lAew44pWt6rA4l8dQ1gGhH7Uo95wZKfq/GBf9aEyuNDDLQ2XppGEEReu6ujesSqTtZ8ueQFt73+7SReSHbwqg==} + engines: {node: '>=18'} + deprecated: Google Cloud Platform now supports native OpenTelemetry Protocol (OTLP) endpoints via the Telemetry API. Please follow https://github.com/GoogleCloudPlatform/opentelemetry-operations-js/blob/main/MIGRATION.md + peerDependencies: + '@opentelemetry/api': ^1.9.0 + '@opentelemetry/core': ^2.0.0 + '@opentelemetry/resources': ^2.0.0 + '@opentelemetry/sdk-metrics': ^2.0.0 + + '@google-cloud/opentelemetry-cloud-trace-exporter@3.1.0': + resolution: {integrity: sha512-O7tpsMYLcZA7eE+y5ZpLBYHZfruvnYhmh4RLI2xTelVMsmR2JJolQCi3gk6dlDo58QDh7UzmX48X8TeNG1oG2g==} + engines: {node: '>=18'} + deprecated: Google Cloud Platform now supports native OpenTelemetry Protocol (OTLP) endpoints via the Telemetry API. Please follow https://github.com/GoogleCloudPlatform/opentelemetry-operations-js/blob/main/MIGRATION.md + peerDependencies: + '@opentelemetry/api': ^1.0.0 + '@opentelemetry/core': ^2.0.0 + '@opentelemetry/resources': ^2.0.0 + '@opentelemetry/sdk-trace-base': ^2.0.0 + + '@google-cloud/opentelemetry-resource-util@3.1.0': + resolution: {integrity: sha512-dTvbFl+q9ac0Me8+GaDrFdwDBia/L8Qxxi/NY/jeHaUogDIpqOtLoqcXV9HdgiLxy5vjEGaJMqir1nVra1qG7w==} + engines: {node: '>=18'} + deprecated: Google Cloud Platform now supports native OpenTelemetry Protocol (OTLP) endpoints via the Telemetry API. Please follow https://github.com/GoogleCloudPlatform/opentelemetry-operations-js/blob/main/MIGRATION.md + peerDependencies: + '@opentelemetry/api': ^1.0.0 + '@opentelemetry/core': ^2.0.0 + '@opentelemetry/resources': ^2.0.0 + + '@google-cloud/paginator@5.0.2': + resolution: {integrity: sha512-DJS3s0OVH4zFDB1PzjxAsHqJT6sKVbRwwML0ZBP9PbU7Yebtu/7SWMRzvO2J3nUi9pRNITCfu4LJeooM2w4pjg==} + engines: {node: '>=14.0.0'} + + '@google-cloud/precise-date@4.0.0': + resolution: {integrity: sha512-1TUx3KdaU3cN7nfCdNf+UVqA/PSX29Cjcox3fZZBtINlRrXVTmUkQnCKv2MbBUbCopbK4olAT1IHl76uZyCiVA==} + engines: {node: '>=14.0.0'} + + '@google-cloud/projectify@4.0.0': + resolution: {integrity: sha512-MmaX6HeSvyPbWGwFq7mXdo0uQZLGBYCwziiLIGq5JVX+/bdI3SAq6bP98trV5eTWfLuvsMcIC1YJOF2vfteLFA==} + engines: {node: '>=14.0.0'} + + '@google-cloud/promisify@4.0.0': + resolution: {integrity: sha512-Orxzlfb9c67A15cq2JQEyVc7wEsmFBmHjZWZYQMUyJ1qivXyMwdyNOs9odi79hze+2zqdTtu1E19IM/FtqZ10g==} + engines: {node: '>=14'} + + '@google-cloud/storage@7.22.0': + resolution: {integrity: sha512-W98gTQOAntEeEQ7/pZxSQXxfUO5CiQcXJRsxBpUa6UU25n8YN/VtogPBi0H+MAmUrn/6bY/sBhFansoWEsr2/g==} + engines: {node: '>=18'} + + '@google-cloud/vertexai@1.12.0': + resolution: {integrity: sha512-XMJIk7GIeavFLP5A3YEUlowKa5Y5PZRrnnuTJcqR0k+lFKkv7+IWpdRp+Xbqb8xNDrvQaE2hP2RYPUylyD5EdA==} + engines: {node: '>=18.0.0'} + + '@google/adk@1.5.0': + resolution: {integrity: sha512-DwgdpKeDJ7V+VQK9VZNpvYVXLLJ7xURfvA3nq5zWkwlioFUEbNwh0STDnLmJy0swmqKXgEeymjKNMrlc3eVY9g==} + peerDependencies: + '@mikro-orm/mariadb': ^6.6.6 + '@mikro-orm/mssql': ^6.6.6 + '@mikro-orm/mysql': ^6.6.6 + '@mikro-orm/postgresql': ^6.6.6 + '@mikro-orm/sqlite': ^6.6.6 + + '@google/genai@1.52.0': + resolution: {integrity: sha512-gwSvbpiN/17O9TbsqSsE/OzZcpv5Fo4RQjdngGgogtuB9RsyJ8ZHhX5KjHj1bp5N9snN2eK8LDGXSaWW2hof8Q==} + engines: {node: '>=20.0.0'} + peerDependencies: + '@modelcontextprotocol/sdk': ^1.25.2 + peerDependenciesMeta: + '@modelcontextprotocol/sdk': + optional: true + + '@google/genai@2.19.0': + resolution: {integrity: sha512-IM3u1FjpOLyOPsPh0smGA6Ntj2olUWCPbTs/WQj7cA/2AKCGw/652W7IaySx0XtwuscFnMYBoraebQusSZ0zSQ==} + engines: {node: '>=20.0.0'} + peerDependencies: + '@modelcontextprotocol/sdk': ^1.25.2 + peerDependenciesMeta: + '@modelcontextprotocol/sdk': + optional: true + '@grpc/grpc-js@1.12.5': resolution: {integrity: sha512-d3iiHxdpg5+ZcJ6jnDSOT8Z0O0VMVGy34jAnYLUX8yd36b1qn8f1TwOA/Lc7TsOh03IkPJ38eGI5qD2EjNkoEA==} engines: {node: '>=12.10.0'} @@ -6380,183 +6615,155 @@ packages: resolution: {integrity: sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==} cpu: [arm64] os: [linux] - libc: [glibc] '@img/sharp-libvips-linux-arm64@1.2.4': resolution: {integrity: sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==} cpu: [arm64] os: [linux] - libc: [glibc] '@img/sharp-libvips-linux-arm@1.0.5': resolution: {integrity: sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==} cpu: [arm] os: [linux] - libc: [glibc] '@img/sharp-libvips-linux-arm@1.2.4': resolution: {integrity: sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==} cpu: [arm] os: [linux] - libc: [glibc] '@img/sharp-libvips-linux-ppc64@1.2.4': resolution: {integrity: sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==} cpu: [ppc64] os: [linux] - libc: [glibc] '@img/sharp-libvips-linux-riscv64@1.2.4': resolution: {integrity: sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==} cpu: [riscv64] os: [linux] - libc: [glibc] '@img/sharp-libvips-linux-s390x@1.0.4': resolution: {integrity: sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==} cpu: [s390x] os: [linux] - libc: [glibc] '@img/sharp-libvips-linux-s390x@1.2.4': resolution: {integrity: sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==} cpu: [s390x] os: [linux] - libc: [glibc] '@img/sharp-libvips-linux-x64@1.0.4': resolution: {integrity: sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==} cpu: [x64] os: [linux] - libc: [glibc] '@img/sharp-libvips-linux-x64@1.2.4': resolution: {integrity: sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==} cpu: [x64] os: [linux] - libc: [glibc] '@img/sharp-libvips-linuxmusl-arm64@1.0.4': resolution: {integrity: sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==} cpu: [arm64] os: [linux] - libc: [musl] '@img/sharp-libvips-linuxmusl-arm64@1.2.4': resolution: {integrity: sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==} cpu: [arm64] os: [linux] - libc: [musl] '@img/sharp-libvips-linuxmusl-x64@1.0.4': resolution: {integrity: sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==} cpu: [x64] os: [linux] - libc: [musl] '@img/sharp-libvips-linuxmusl-x64@1.2.4': resolution: {integrity: sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==} cpu: [x64] os: [linux] - libc: [musl] '@img/sharp-linux-arm64@0.33.5': resolution: {integrity: sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] - libc: [glibc] '@img/sharp-linux-arm64@0.34.5': resolution: {integrity: sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] - libc: [glibc] '@img/sharp-linux-arm@0.33.5': resolution: {integrity: sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm] os: [linux] - libc: [glibc] '@img/sharp-linux-arm@0.34.5': resolution: {integrity: sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm] os: [linux] - libc: [glibc] '@img/sharp-linux-ppc64@0.34.5': resolution: {integrity: sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [ppc64] os: [linux] - libc: [glibc] '@img/sharp-linux-riscv64@0.34.5': resolution: {integrity: sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [riscv64] os: [linux] - libc: [glibc] '@img/sharp-linux-s390x@0.33.5': resolution: {integrity: sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [s390x] os: [linux] - libc: [glibc] '@img/sharp-linux-s390x@0.34.5': resolution: {integrity: sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [s390x] os: [linux] - libc: [glibc] '@img/sharp-linux-x64@0.33.5': resolution: {integrity: sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] - libc: [glibc] '@img/sharp-linux-x64@0.34.5': resolution: {integrity: sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] - libc: [glibc] '@img/sharp-linuxmusl-arm64@0.33.5': resolution: {integrity: sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] - libc: [musl] '@img/sharp-linuxmusl-arm64@0.34.5': resolution: {integrity: sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] - libc: [musl] '@img/sharp-linuxmusl-x64@0.33.5': resolution: {integrity: sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] - libc: [musl] '@img/sharp-linuxmusl-x64@0.34.5': resolution: {integrity: sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] - libc: [musl] '@img/sharp-wasm32@0.33.5': resolution: {integrity: sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==} @@ -6830,9 +7037,6 @@ packages: '@jridgewell/source-map@0.3.6': resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} - '@jridgewell/sourcemap-codec@1.5.0': - resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} - '@jridgewell/sourcemap-codec@1.5.5': resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} @@ -6845,6 +7049,9 @@ packages: '@jridgewell/trace-mapping@0.3.9': resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + '@js-joda/core@5.7.0': + resolution: {integrity: sha512-WBu4ULVVxySLLzK1Ppq+OdfP+adRS4ntmDQT915rzDJ++i95gc2jZkM5B6LWEAwN3lGXpfie3yPABozdD3K3Vg==} + '@js-sdsl/ordered-map@4.4.2': resolution: {integrity: sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==} @@ -6852,6 +7059,18 @@ packages: resolution: {integrity: sha512-yYxMVH7Dqw6nO0d5NIV8OQWnitU8k6vXH8NtgqAfIa/IUqRMxRv/NUJJ08VEKbAakwxlgBl5PJdrU0dMPStsnw==} engines: {node: '>=v12.0.0'} + '@jsep-plugin/assignment@1.3.0': + resolution: {integrity: sha512-VVgV+CXrhbMI3aSusQyclHkenWSAm95WaiKrMxRFam3JSUiIaQjoMIw2sEs/OX4XifnqeQUN4DYbJjlA8EfktQ==} + engines: {node: '>= 10.16.0'} + peerDependencies: + jsep: ^0.4.0||^1.0.0 + + '@jsep-plugin/regex@1.0.4': + resolution: {integrity: sha512-q7qL4Mgjs1vByCaTnDFcBnV9HS7GVPJX5vyVoCgZHNSC9rjwIlmbXG5sUuorR5ndfHAIlJ8pVStxvjXHbNvtUg==} + engines: {node: '>= 10.16.0'} + peerDependencies: + jsep: ^0.4.0||^1.0.0 + '@jsonjoy.com/base64@1.1.2': resolution: {integrity: sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==} engines: {node: '>=10.0'} @@ -6888,6 +7107,62 @@ packages: resolution: {integrity: sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==} hasBin: true + '@mikro-orm/core@6.6.16': + resolution: {integrity: sha512-ym26fbhTti7Zh6oN1y74byoUoMEq1ahckiV7BZX5pHU/0OaUESiQA+Zar2Tv2ZFuZA9946XQ805F7/4NH6oDUQ==} + engines: {node: '>= 18.12.0'} + + '@mikro-orm/knex@6.6.16': + resolution: {integrity: sha512-H0fYK4vSe2mtmfBDDNsOw5Z56JDYEzbaoIo24JhkzmoGna85ddwyYzYB289DMS8Ukn7qZKhfR2pn2kQDRSJiyw==} + engines: {node: '>= 18.12.0'} + peerDependencies: + '@mikro-orm/core': ^6.0.0 + better-sqlite3: '*' + libsql: '*' + mariadb: '*' + peerDependenciesMeta: + better-sqlite3: + optional: true + libsql: + optional: true + mariadb: + optional: true + + '@mikro-orm/mariadb@6.6.16': + resolution: {integrity: sha512-4BPpR6KYzMvByp9sJg5MlXrKxoDPrFDtnYku+swzXDgcyCNZwBJisRf0hkSXd3xL7JSV5yrsg+vZY+KjKO0ECQ==} + engines: {node: '>= 18.12.0'} + peerDependencies: + '@mikro-orm/core': ^6.0.0 + + '@mikro-orm/mssql@6.6.16': + resolution: {integrity: sha512-NEAB5Tf7HppmzNBg0+w+OOgkWtzDRJKXQFkMBvTFZXDmXZ/mx0vJom+PsGCU0PK4qFtrRVHIKG2F5qO2YRaTzQ==} + engines: {node: '>= 18.12.0'} + peerDependencies: + '@mikro-orm/core': ^6.0.0 + + '@mikro-orm/mysql@6.6.16': + resolution: {integrity: sha512-l0g9XD8nY1pXUF5PdXgpUPOyT4Cu32WRSB3kxcfeFgWA9BfuzEmQYU+8SeKxrJAkQo82tFe+h0mCkVcxs12Ffw==} + engines: {node: '>= 18.12.0'} + peerDependencies: + '@mikro-orm/core': ^6.0.0 + + '@mikro-orm/postgresql@6.6.16': + resolution: {integrity: sha512-9MwmbnF+nuX5i/I4YClOLkYGoN2omY6Z5LA1rJHNs+5P3BDYSxR9dZk9kuPJ+g9GJXAx/gKKJzKgp7Wv4G65fA==} + engines: {node: '>= 18.12.0'} + peerDependencies: + '@mikro-orm/core': ^6.0.0 + + '@mikro-orm/reflection@6.6.16': + resolution: {integrity: sha512-OXMhyWOag3Fyz+RyvptHKmwIPXE++5k7aFEt8JVK7YfEjqTvuB9Y7N3jQH08HQXe8VPsYs4RjAKz7DEk5E6JAA==} + engines: {node: '>= 18.12.0'} + peerDependencies: + '@mikro-orm/core': ^6.0.0 + + '@mikro-orm/sqlite@6.6.16': + resolution: {integrity: sha512-MOewRLJHEiRzD0AGUzRHj6oa5TElw5owYfwbuGEVp83bPInEosk4AOOp9yMhTn9WHtuAuAs7xF/l2p5LIZxgxA==} + engines: {node: '>= 18.12.0'} + peerDependencies: + '@mikro-orm/core': ^6.0.0 + '@modelcontextprotocol/sdk@1.29.0': resolution: {integrity: sha512-zo37mZA9hJWpULgkRpowewez1y6ML5GsXJPY8FI0tBBCd77HEvza4jDqRKOXgHNn867PVGCyTdzqpz0izu5ZjQ==} engines: {node: '>=18'} @@ -7016,56 +7291,48 @@ packages: engines: {node: '>= 10'} cpu: [arm64] os: [linux] - libc: [glibc] '@next/swc-linux-arm64-gnu@16.2.9': resolution: {integrity: sha512-hBD75iWpUtkL9SmQmcRhmLomn9jgkPzCEkbOcLgHymPEKzv+6ONy13RRiIEz/iEObjkS2Jlb5gYS2XGoS3X4rw==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - libc: [glibc] '@next/swc-linux-arm64-musl@15.1.6': resolution: {integrity: sha512-+n3u//bfsrIaZch4cgOJ3tXCTbSxz0s6brJtU3SzLOvkJlPQMJ+eHVRi6qM2kKKKLuMY+tcau8XD9CJ1OjeSQQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - libc: [musl] '@next/swc-linux-arm64-musl@16.2.9': resolution: {integrity: sha512-qZTI3pf9SGc/obr8NkQAekBxmp1QK+kVm+VAf3BALLfFAj+1kUhkTxmrWpVos9R/UYIA8AWX2p6cGI5WdwzVUA==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - libc: [musl] '@next/swc-linux-x64-gnu@15.1.6': resolution: {integrity: sha512-SpuDEXixM3PycniL4iVCLyUyvcl6Lt0mtv3am08sucskpG0tYkW1KlRhTgj4LI5ehyxriVVcfdoxuuP8csi3kQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - libc: [glibc] '@next/swc-linux-x64-gnu@16.2.9': resolution: {integrity: sha512-xm0HfRNX+UkH4R3c18ynswjj5o5uEj/7iI9p9omdtTSIsRCzQqkGMA+10nzJ4EHnYC3as65IMhbbl5fWRUWHYg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - libc: [glibc] '@next/swc-linux-x64-musl@15.1.6': resolution: {integrity: sha512-L4druWmdFSZIIRhF+G60API5sFB7suTbDRhYWSjiw0RbE+15igQvE2g2+S973pMGvwN3guw7cJUjA/TmbPWTHQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - libc: [musl] '@next/swc-linux-x64-musl@16.2.9': resolution: {integrity: sha512-QumimHkGEG6vM3PfEDWKyKen03NcqLOkeKB1EfcPe7VxzmEiCa4jNnMyBn/US5zcd/VE1CI+O8Ovb3lfjVHfGw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - libc: [musl] '@next/swc-win32-arm64-msvc@15.1.6': resolution: {integrity: sha512-s8w6EeqNmi6gdvM19tqKKWbCyOBvXFbndkGHl+c9YrzsLARRdCHsD9S1fMj8gsXm9v8vhC8s3N8rjuC/XrtkEg==} @@ -7094,6 +7361,9 @@ packages: '@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1': resolution: {integrity: sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==} + '@nodable/entities@3.0.0': + resolution: {integrity: sha512-8L9xFeTYKhm49xfIypoe2W5wV1m/3Z58kT+7kR9A8OyFxcPduI4VmxaUMQyKYrRjUoLLSXv6EKKID5Tvj9cUVw==} + '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -7140,6 +7410,10 @@ packages: peerDependencies: zod: ^4.0.0 + '@opentelemetry/api-logs@0.205.0': + resolution: {integrity: sha512-wBlPk1nFB37Hsm+3Qy73yQSobVn28F4isnWIBvKpd5IUH/eat8bwcL02H9yzmHyyPmukeccSl2mbN5sDQZYnPg==} + engines: {node: '>=8.0.0'} + '@opentelemetry/api-logs@0.220.0': resolution: {integrity: sha512-CmVa4ImJ+ynfrPMNaAXHET6Bhb44SwzmfyVJFq9ni2jgXJR/l7C6gfVFddNmHP+ZOkP9cf4f9DBe68qVLTHc9w==} engines: {node: '>=8.0.0'} @@ -7183,6 +7457,12 @@ packages: peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' + '@opentelemetry/core@2.1.0': + resolution: {integrity: sha512-RMEtHsxJs/GiHHxYT58IY57UXAQTuUnZVco6ymDEqTNlJKTimM4qPUPVe8InNFyBjhHBEAx4k3Q8LtNayBsbUQ==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + '@opentelemetry/core@2.9.0': resolution: {integrity: sha512-m2nckMT80NnmjTYSPjJQObBJ+8dgkoajEOUbznL8AHZ3T3yHRk2P7gI1PhEBc1+lOnrYE9UWrWHqJDsmqjmNbw==} engines: {node: ^18.19.0 || >=20.6.0} @@ -7195,6 +7475,12 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 + '@opentelemetry/exporter-logs-otlp-http@0.205.0': + resolution: {integrity: sha512-5JteMyVWiro4ghF0tHQjfE6OJcF7UBUcoEqX3UIQ5jutKP1H+fxFdyhqjjpmeHMFxzOHaYuLlNR1Bn7FOjGyJg==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + '@opentelemetry/exporter-logs-otlp-http@0.220.0': resolution: {integrity: sha512-8186thl+pTw64iz/qEEen5oJZoZ/gO73XruChdaGlYdWOdBIQ42r+vHLf6a7vIDqTD4b8ZOoMlyxptanECaI9A==} engines: {node: ^18.19.0 || >=20.6.0} @@ -7213,6 +7499,12 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 + '@opentelemetry/exporter-metrics-otlp-http@0.205.0': + resolution: {integrity: sha512-fFxNQ/HbbpLmh1pgU6HUVbFD1kNIjrkoluoKJkh88+gnmpFD92kMQ8WFNjPnSbjg2mNVnEkeKXgCYEowNW+p1w==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + '@opentelemetry/exporter-metrics-otlp-http@0.220.0': resolution: {integrity: sha512-Yqt3RBw/bRVncaE9qIIhk4WfjbAQqXuP9FgAaU+IKPndnLEp/cUqZlSC324+bpmduRz7DoTjig8Ub0PeILWXUA==} engines: {node: ^18.19.0 || >=20.6.0} @@ -7243,6 +7535,12 @@ packages: peerDependencies: '@opentelemetry/api': ^1.0.0 + '@opentelemetry/exporter-trace-otlp-http@0.205.0': + resolution: {integrity: sha512-vr2bwwPCSc9u7rbKc74jR+DXFvyMFQo9o5zs+H/fgbK672Whw/1izUKVf+xfWOdJOvuwTnfWxy+VAY+4TSo74Q==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + '@opentelemetry/exporter-trace-otlp-http@0.220.0': resolution: {integrity: sha512-/+ExB3lRkf+erv4PnoywyL7RHKITidxtUpUTS55k7OQ0dB42S7gEF1gry7swb9MSm1hYLUhJg4QQh9W8SpwwqA==} engines: {node: ^18.19.0 || >=20.6.0} @@ -7513,6 +7811,12 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 + '@opentelemetry/otlp-exporter-base@0.205.0': + resolution: {integrity: sha512-2MN0C1IiKyo34M6NZzD6P9Nv9Dfuz3OJ3rkZwzFmF6xzjDfqqCTatc9v1EpNfaP55iDOCLHFyYNCgs61FFgtUQ==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + '@opentelemetry/otlp-exporter-base@0.220.0': resolution: {integrity: sha512-CXYo8UD5Mn9YbgebO2EL4wejtA+gxLmLiu6HCk2KH2BR7XhFN6/6p1UlCb23DYCjeYkndevLHuejCCN1yx4+OQ==} engines: {node: ^18.19.0 || >=20.6.0} @@ -7537,6 +7841,12 @@ packages: peerDependencies: '@opentelemetry/api': ^1.0.0 + '@opentelemetry/otlp-transformer@0.205.0': + resolution: {integrity: sha512-KmObgqPtk9k/XTlWPJHdMbGCylRAmMJNXIRh6VYJmvlRDMfe+DonH41G7eenG8t4FXn3fxOGh14o/WiMRR6vPg==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + '@opentelemetry/otlp-transformer@0.220.0': resolution: {integrity: sha512-lXGrv7KXZ0gNH9SVNUaa6vv6phVYGvJxfXAlMbzbakiXru75f5MZl8Z7oqiMMQD77riVHJCFlQvbZs/VVN2/4A==} engines: {node: ^18.19.0 || >=20.6.0} @@ -7595,6 +7905,12 @@ packages: peerDependencies: '@opentelemetry/api': ^1.0.0 + '@opentelemetry/resource-detector-gcp@0.40.3': + resolution: {integrity: sha512-C796YjBA5P1JQldovApYfFA/8bQwFfpxjUbOtGhn1YZkVTLoNQN+kvBwgALfTPWzug6fWsd0xhn9dzeiUcndag==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.0.0 + '@opentelemetry/resource-detector-gcp@0.55.0': resolution: {integrity: sha512-uWU27lJcTbeXDY+uWEapsIyMx8mKi14/IGvUY1DkmMmLQnKRibnbpZEsRVeWBPdjOWSjH9LfWTXp9yDcBHZOeg==} engines: {node: ^18.19.0 || >=20.6.0} @@ -7613,12 +7929,24 @@ packages: peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' + '@opentelemetry/resources@2.1.0': + resolution: {integrity: sha512-1CJjf3LCvoefUOgegxi8h6r4B/wLSzInyhGP2UmIBYNlo4Qk5CZ73e1eEyWmfXvFtm1ybkmfb2DqWvspsYLrWw==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.3.0 <1.10.0' + '@opentelemetry/resources@2.9.0': resolution: {integrity: sha512-jyA5MBLQ+Dkl3+JsZkUoUvL7yHvU64kLsvpXKarWm6347Sl1t1bXFTFykUePNpT5WH5pm9a2Qtt03iIYQhZ1Fg==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': '>=1.3.0 <1.10.0' + '@opentelemetry/sdk-logs@0.205.0': + resolution: {integrity: sha512-nyqhNQ6eEzPWQU60Nc7+A5LIq8fz3UeIzdEVBQYefB4+msJZ2vuVtRuk9KxPMw1uHoHDtYEwkr2Ct0iG29jU8w==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.4.0 <1.10.0' + '@opentelemetry/sdk-logs@0.220.0': resolution: {integrity: sha512-WywcTkQtv2iNmt+6y5Kcd4rzvx9bLVsBa2Nwcmg01IUaBTkTow3W4d9KE5vNBpEDtb9tp21WcRBY/lANRrApYA==} engines: {node: ^18.19.0 || >=20.6.0} @@ -7637,6 +7965,12 @@ packages: peerDependencies: '@opentelemetry/api': '>=1.3.0 <1.10.0' + '@opentelemetry/sdk-metrics@2.1.0': + resolution: {integrity: sha512-J9QX459mzqHLL9Y6FZ4wQPRZG4TOpMCyPOh6mkr/humxE1W2S3Bvf4i75yiMW9uyed2Kf5rxmLhTm/UK8vNkAw==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.9.0 <1.10.0' + '@opentelemetry/sdk-metrics@2.9.0': resolution: {integrity: sha512-Xx8RGS4H5XEBl01WuCreMIpiah9cCXMbSkeuIePPdD2cUpq/vUzYmj8E/MK1OsbOc93FuAD4jfn2WOacKwLn7Q==} engines: {node: ^18.19.0 || >=20.6.0} @@ -7661,6 +7995,12 @@ packages: peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' + '@opentelemetry/sdk-trace-base@2.1.0': + resolution: {integrity: sha512-uTX9FBlVQm4S2gVQO1sb5qyBLq/FPjbp+tmGoxu4tIgtYGmBYB44+KX/725RFDe30yBSaA9Ml9fqphe1hbUyLQ==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.3.0 <1.10.0' + '@opentelemetry/sdk-trace-base@2.9.0': resolution: {integrity: sha512-cp9zmTl62R8PJrpvFcmc8N2JQU/xfa0S+61q511Nji+QxCfZ8Ifvg7H27G8cANe4crg4RTrWsVvanHiXjSp6ag==} engines: {node: ^18.19.0 || >=20.6.0} @@ -7850,79 +8190,66 @@ packages: resolution: {integrity: sha512-Q8CBCCQtDFrYtXoeUXSrnFXKOnyUhx6bz+SkL6A0E7V8kAiCJ5pamq1WtbfpVGhR5TSpXY6ak3avmDc5fHTyJA==} cpu: [arm] os: [linux] - libc: [glibc] '@rollup/rollup-linux-arm-musleabihf@4.61.1': resolution: {integrity: sha512-nwnhk1581l0FBVellGcVCAT0Oi06onEA3WB53sf01VO3I0UPBkMH9sXONYME2K0ovXcNayJfNtHfm6mpJElatQ==} cpu: [arm] os: [linux] - libc: [musl] '@rollup/rollup-linux-arm64-gnu@4.61.1': resolution: {integrity: sha512-x5Xr49hwt3hdW75UOZm3395YwwzPyauktslv29KpWL/T+vVAzoT3azLcTWv0eMciBNrx+DYjH4paehHoLpPvpg==} cpu: [arm64] os: [linux] - libc: [glibc] '@rollup/rollup-linux-arm64-musl@4.61.1': resolution: {integrity: sha512-unMS3H73DpaoPyyEVPjGKleM/s0mkmsauTENpw4INQY8y4+IuLNjkueQ5QCtC0D3N38Y38yhAU8OoZ20S2Tm6w==} cpu: [arm64] os: [linux] - libc: [musl] '@rollup/rollup-linux-loong64-gnu@4.61.1': resolution: {integrity: sha512-zNZzGRnAhwjFEYmvphJRV5XaQGjs62cCmeYYHUT//NbvEnHauw+I85nGG+SiVg5ld4GX8D1IbKIX+ozITQnhMQ==} cpu: [loong64] os: [linux] - libc: [glibc] '@rollup/rollup-linux-loong64-musl@4.61.1': resolution: {integrity: sha512-LdpWGL8X209B2SIvWjqlc8VZgM6PKfontSerGepuldQmHYrAOtnMCXeJkxXGbC+PPZVOuu5czJo7fNV6aeW8rQ==} cpu: [loong64] os: [linux] - libc: [musl] '@rollup/rollup-linux-ppc64-gnu@4.61.1': resolution: {integrity: sha512-EC5kTtNaNGOmbMGqar8dvJy6y/hg99GAwjfBz++pxZhQATXGcRjd6c5en5wcbru0vkRmiMGsQKdMJOOf6sza4g==} cpu: [ppc64] os: [linux] - libc: [glibc] '@rollup/rollup-linux-ppc64-musl@4.61.1': resolution: {integrity: sha512-8hiwp6D4acEcNK78I4rP0/XtS1sknWIAMJBPdR4l6zUtyTm5KiTDr5bXmWt4foY7nAN7AThDHgkLIEZOWKbzWw==} cpu: [ppc64] os: [linux] - libc: [musl] '@rollup/rollup-linux-riscv64-gnu@4.61.1': resolution: {integrity: sha512-10dh/h/BqA7DuMPWSxkR8uks18FRwnwOEqr5zOTEl+NOwP/OMzKX8OFR/Of9xxDA7D5qef1Nzar5WDD2kCCr1g==} cpu: [riscv64] os: [linux] - libc: [glibc] '@rollup/rollup-linux-riscv64-musl@4.61.1': resolution: {integrity: sha512-YKJ5lg35DP17gcAOggnihe+APw9HLyj1Xn7gsmGumBJAUDa6NGXNixJzmkWLhcK9TOuuyQjdamzvJefkO7qHZQ==} cpu: [riscv64] os: [linux] - libc: [musl] '@rollup/rollup-linux-s390x-gnu@4.61.1': resolution: {integrity: sha512-Mlil5G2Jj6a7B3LWGctg+XPL9vdXYuzCtNXfxOQ0nPjc2m6ueUktocPGH9bnAM0bNRKb/bAWTujUU7IJQdQA+g==} cpu: [s390x] os: [linux] - libc: [glibc] '@rollup/rollup-linux-x64-gnu@4.61.1': resolution: {integrity: sha512-bVWIOIk6pV01p4CdUbPP7CJ/434z+OooYjDuFcR+44N35YvKUC66G8MGnvcWx5mWKW3g61J+t74l3Kj15Kwn2Q==} cpu: [x64] os: [linux] - libc: [glibc] '@rollup/rollup-linux-x64-musl@4.61.1': resolution: {integrity: sha512-qy5pBvZbqNFheBz61R1rzsezjm0J7O2oNGoWtGoY89SZYLUfxAJTBAqDChqAIdB4rCiIbi9nF7yZ83GnNiLwSw==} cpu: [x64] os: [linux] - libc: [musl] '@rollup/rollup-openbsd-x64@4.61.1': resolution: {integrity: sha512-E83TXjI4zm0+5f2qO+UOudaCYIhYwpJ5jq6YCZNIZ+6CbfhKrkAGezeiASBL9ElxAxFsRS9ZhESv8mfnj6TKeg==} @@ -8027,6 +8354,9 @@ packages: resolution: {integrity: sha512-0JFs3V2y2M9tKW5na/qxe69Zv+uxLMO7QBbhxF/FHu/Gp2NFZAAL9tWl9PU02xxo07pb3G9FTyjNc6D5uZrJIg==} engines: {node: '>=18.0.0'} + '@so-ric/colorspace@1.1.6': + resolution: {integrity: sha512-/KiKkpHNOBgkFJwu9sh48LkHSMYGyuTcSFK/qMBdnOAlrRJzRSXAOFB5qwzaVQuDl8wAvHVMkaASQDReTahxuw==} + '@standard-schema/spec@1.1.0': resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==} @@ -8178,28 +8508,24 @@ packages: engines: {node: '>=10'} cpu: [arm64] os: [linux] - libc: [glibc] '@swc/core-linux-arm64-musl@1.10.11': resolution: {integrity: sha512-2mMscXe/ivq8c4tO3eQSbQDFBvagMJGlalXCspn0DgDImLYTEnt/8KHMUMGVfh0gMJTZ9q4FlGLo7mlnbx99MQ==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - libc: [musl] '@swc/core-linux-x64-gnu@1.10.11': resolution: {integrity: sha512-eu2apgDbC4xwsigpl6LS+iyw6a3mL6kB4I+6PZMbFF2nIb1Dh7RGnu70Ai6mMn1o80fTmRSKsCT3CKMfVdeNFg==} engines: {node: '>=10'} cpu: [x64] os: [linux] - libc: [glibc] '@swc/core-linux-x64-musl@1.10.11': resolution: {integrity: sha512-0n+wPWpDigwqRay4IL2JIvAqSKCXv6nKxPig9M7+epAlEQlqX+8Oq/Ap3yHtuhjNPb7HmnqNJLCXT1Wx+BZo0w==} engines: {node: '>=10'} cpu: [x64] os: [linux] - libc: [musl] '@swc/core-win32-arm64-msvc@1.10.11': resolution: {integrity: sha512-7+bMSIoqcbXKosIVd314YjckDRPneA4OpG1cb3/GrkQTEDXmWT3pFBBlJf82hzJfw7b6lfv6rDVEFBX7/PJoLA==} @@ -8303,6 +8629,13 @@ packages: resolution: {integrity: sha512-R/flff9BnEDjOS73w1A5zfz/kmB+fuBWWPvmxi/bTSNorgHfJasNIB9ncefuxSbaDDdN1CZrOqtC8IY7eMXygA==} engines: {node: '>= 20.3.0'} + '@temporalio/google-adk-agents@1.23.0': + resolution: {integrity: sha512-oPbs6ohRDtQ6B9fx3SBVicngTd3gj9hLJs8MQKSiV3Yypcvx0QI6xX17fEMQ60Y5ZsmtJ22suTbwEhhNmJECGw==} + engines: {node: '>= 20.3.0'} + peerDependencies: + '@google/adk': '>=1.5.0 <1.6.0' + '@google/genai': ^2.9.0 + '@temporalio/interceptors-opentelemetry-v2@1.23.0': resolution: {integrity: sha512-vlKjPXnmNlNxz6QXwRi7wgOcEROW6ceMJxgXSLXfIt/8+P1BMPFfvKqtFNZLOT+JOsuewG5vEfcgHRumkmaHaQ==} engines: {node: '>= 20.0.0'} @@ -8444,6 +8777,10 @@ packages: resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==} engines: {node: '>= 6'} + '@tootallnate/once@2.0.1': + resolution: {integrity: sha512-HqmEUIGRJ5fSXchkVgR5F7qn48bDBzv0kWj/Kfu5e6uci4UlEeng4331LnBkWffb++Ei3FOVLxo8JJWMFBDMeQ==} + engines: {node: '>= 10'} + '@trpc/client@10.45.2': resolution: {integrity: sha512-ykALM5kYWTLn1zYuUOZ2cPWlVfrXhc18HzBDyRhoPYN0jey4iQHEFSEowfnhg1RvYnrAVjNBgHNeSAXjrDbGwg==} peerDependencies: @@ -8479,6 +8816,9 @@ packages: '@ts-morph/common@0.11.1': resolution: {integrity: sha512-7hWZS0NRpEsNV8vWJzg7FEz6V8MaLNeJOmwmghqUXTpzk16V1LLZhdo+4QvE/+zv4cVci0OviuJFnqhEfoV3+g==} + '@ts-morph/common@0.28.1': + resolution: {integrity: sha512-W74iWf7ILp1ZKNYXY5qbddNaml7e9Sedv5lvU1V8lftlitkc9Pq1A+jlH23ltDgWYeZFFEqGCD1Ies9hqu3O+g==} + '@tsconfig/node10@1.0.11': resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} @@ -8530,6 +8870,9 @@ packages: '@types/cacheable-request@6.0.3': resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==} + '@types/caseless@0.12.5': + resolution: {integrity: sha512-hWtVTC2q7hc7xZ/RLbxapMvDMgUnDvKvMOpKal4DrMyfGBUfB1oKaZlIRr6mJL+If3bAP6sV/QneGzF6tJjZDg==} + '@types/connect-history-api-fallback@1.5.4': resolution: {integrity: sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==} @@ -8566,9 +8909,6 @@ packages: '@types/estree@0.0.39': resolution: {integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==} - '@types/estree@1.0.6': - resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} - '@types/estree@1.0.9': resolution: {integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==} @@ -8584,6 +8924,9 @@ packages: '@types/express@5.0.0': resolution: {integrity: sha512-DvZriSMehGHL1ZNLzi6MidnsDhUZM/x2pRdDIKdwbUNqqwHxMlRdkxtn6/EPKyqKpHqTl/4nRZsRNLpZxZRpPQ==} + '@types/geojson@7946.0.16': + resolution: {integrity: sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==} + '@types/glob@7.2.0': resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} @@ -8702,6 +9045,9 @@ packages: '@types/node@22.12.0': resolution: {integrity: sha512-Fll2FZ1riMjNmlmJOdAyY5pUbkftXslB5DgEzlIuNaiWhXd00FhWxVC/r4yV/4wBb9JfImTu+jiSvXTkJ7F/gA==} + '@types/node@24.13.3': + resolution: {integrity: sha512-Dh8vAsV36ig5wa9OX4pXvMc9D3Veibfw2wix0CUwYODLD8nkj9UsLjASr49nPg+2eKzxhBV+v7L8pXvT4e639Q==} + '@types/oracledb@6.5.2': resolution: {integrity: sha512-kK1eBS/Adeyis+3OlBDMeQQuasIDLUYXsi2T15ccNJ0iyUpQ4xDF7svFu3+bGVrI0CMBUclPciz+lsQR3JX3TQ==} @@ -8737,6 +9083,12 @@ packages: '@types/react@18.3.18': resolution: {integrity: sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ==} + '@types/readable-stream@4.0.24': + resolution: {integrity: sha512-NRvUNC/JFGPJvqdAfEve8oginbM6V08u5NzLWpG8MwA2kTPOLnqk+wpwuPT+mp3aUsxyuT6m2gnrPuHYCruzEg==} + + '@types/request@2.48.13': + resolution: {integrity: sha512-FGJ6udDNUCjd19pp0Q3iTiDkwhYup7J8hpMW9c4k53NrccQFFWKRho6hvtPPEhnXWKvukfwAlB6DbDz4yhH5Gg==} + '@types/resolve@1.17.1': resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==} @@ -8782,6 +9134,9 @@ packages: '@types/testing-library__jest-dom@5.14.9': resolution: {integrity: sha512-FSYhIjFlfOpGSRyVoMBMuS3ws5ehFQODymf3vlI7U1K8c7PHwWwFY7VREfmsuzHSOnoKs/9/Y983ayOs7eRzqw==} + '@types/tough-cookie@4.0.5': + resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==} + '@types/triple-beam@1.3.5': resolution: {integrity: sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==} @@ -8950,13 +9305,13 @@ packages: resolution: {integrity: sha512-AWpYAXnUgvLNabGTy3uBylkgZoosva/miNd1I8Bz3SjotmQPbVqhO4Cczo8AsZ44XVErEBPr/CRSgaj8sG7g0w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typespec/ts-http-runtime@0.3.8': + resolution: {integrity: sha512-bLMpVcWZNzq6lYOybwFwOAR1IXKcHnhUNqYeHjl1bET/qE3jFPFH+p8Wrh3rU4xwdnifPxmKNESBYnvnmc75aA==} + engines: {node: '>=22.0.0'} + '@ungap/promise-all-settled@1.1.2': resolution: {integrity: sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==} - '@ungap/structured-clone@1.3.0': - resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} - deprecated: Potential CWE-502 - Update to 1.3.1 or higher - '@ungap/structured-clone@1.3.2': resolution: {integrity: sha512-5jsZFwgR5rTdKwidH9Qmat75RKwqfpKlWWB1frDkljN127mwqBu8K0PYo7/hFpF03IEJpfVPpCQDY/eDx3iHvA==} @@ -9133,10 +9488,6 @@ packages: resolution: {integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==} engines: {node: '>=0.4.0'} - acorn-walk@8.3.4: - resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} - engines: {node: '>=0.4.0'} - acorn-walk@8.3.5: resolution: {integrity: sha512-HEHNfbars9v4pgpW6SO1KSPkfoS0xVOM/9UzkJltjlsHZmJasxg8aXkuZa7SMf8vKGIBhpUsPluQSqhJFCqebw==} engines: {node: '>=0.4.0'} @@ -9146,11 +9497,6 @@ packages: engines: {node: '>=0.4.0'} hasBin: true - acorn@8.14.0: - resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} - engines: {node: '>=0.4.0'} - hasBin: true - acorn@8.15.0: resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} engines: {node: '>=0.4.0'} @@ -9169,6 +9515,10 @@ packages: resolution: {integrity: sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==} engines: {node: '>=8.9'} + adm-zip@0.5.18: + resolution: {integrity: sha512-ufJnssQGbxzLNS1Ho9bCtX4rQKCCvoVuDLHoJyc3F9dOGDB4BkWs2Ci0kv53lqocAEQ/Cbi+I2XCsNYGqVYqng==} + engines: {node: '>=12.0'} + agent-base@6.0.2: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} @@ -9289,6 +9639,9 @@ packages: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} + anynum@1.0.1: + resolution: {integrity: sha512-N6//FLET/tXYNM/F6ABca1oH6fWB+KlTt909Le28WMDBk8oaT4vY17DCrwg2MvmuqUKt3Ni4N5dGJ/EoBgcO6A==} + append-field@1.0.0: resolution: {integrity: sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw==} @@ -9307,6 +9660,11 @@ packages: engines: {node: '>=10'} deprecated: This package is no longer supported. + are-we-there-yet@3.0.1: + resolution: {integrity: sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + deprecated: This package is no longer supported. + arg@4.1.3: resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} @@ -9376,6 +9734,10 @@ packages: resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==} engines: {node: '>= 0.4'} + arrify@2.0.1: + resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==} + engines: {node: '>=8'} + asap@2.0.6: resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} @@ -9409,6 +9771,9 @@ packages: async-mutex@0.5.0: resolution: {integrity: sha512-1A94B18jkJ3DYq284ohPxoXbfTA5HsQ7/Mf4DEhcyLx3Bz27Rh59iScbB6EPiP+B+joue6YCxcMXSbFC1tZKwA==} + async-retry@1.3.3: + resolution: {integrity: sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==} + async-sema@3.1.1: resolution: {integrity: sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==} @@ -9433,6 +9798,10 @@ packages: resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} + aws-ssl-profiles@1.1.2: + resolution: {integrity: sha512-NZKeq9AfyQvEeNlN0zSYAaWrmBffJh3IELMZfRpJVWgrpEbtEpnjvzqBPf+mxoI287JohRDoa+/nsfqqiZmF6g==} + engines: {node: '>= 6.0.0'} + axe-core@4.10.2: resolution: {integrity: sha512-RE3mdQ7P3FRSe7eqCWoeQ/Z9QXrtniSjp1wUjt5nRC3WIpz5rSCve6o3fsZ2aCpJtrZjSZgjwXAoTO5k4tEI0w==} engines: {node: '>=4'} @@ -9635,6 +10004,9 @@ packages: bl@4.1.0: resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + bl@6.1.6: + resolution: {integrity: sha512-jLsPgN/YSvPUg9UX0Kd73CXpm2Psg9FxMeCSXnk3WBO3CMT10JMwijubhGfHCnFu6TPn1ei3b975dxv7K2pWVg==} + bluebird@3.7.2: resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} @@ -9642,6 +10014,10 @@ packages: resolution: {integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + body-parser@1.20.6: + resolution: {integrity: sha512-p5tAzS57i5MV9fZFDj9LeIiTZEufbSe2eDozP+ElheSUq1m74CRq1jI4mYNDdVs9vQztXFLuk/Gd6BWTdwRJ5g==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + body-parser@2.2.1: resolution: {integrity: sha512-nfDwkulwiZYQIGwxdy0RUmowMhKcFVcYXUU7m4QlKYim1rUtg83xm2yjZ40QjDuc291AJjjeSc9b++AWHSgSHw==} engines: {node: '>=18'} @@ -9694,16 +10070,26 @@ packages: bser@2.1.1: resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} + buffer-equal-constant-time@1.0.1: + resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==} + buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} buffer@5.7.1: resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + buffer@6.0.3: + resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} + builtin-modules@3.3.0: resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} engines: {node: '>=6'} + bundle-name@4.1.0: + resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} + engines: {node: '>=18'} + busboy@1.6.0: resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} engines: {node: '>=10.16.0'} @@ -9944,6 +10330,9 @@ packages: code-block-writer@10.1.1: resolution: {integrity: sha512-67ueh2IRGst/51p0n6FvPrnRjAGHY5F8xdjkgrYE7DDzpJe6qA07RYQ9VcoUeo5ATOjSOiWpSL3SWBRRbempMw==} + code-block-writer@13.0.3: + resolution: {integrity: sha512-Oofo0pq3IKnsFtuHqSF7TqBfr71aeyZDVJ0HpmqB7FBM2qEigL0iPONSCZSO9pE9dZTAxANe5XHG9Uy0YMv8cg==} + collect-v8-coverage@1.0.2: resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==} @@ -9954,15 +10343,27 @@ packages: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} + color-convert@3.1.3: + resolution: {integrity: sha512-fasDH2ont2GqF5HpyO4w0+BcewlhHEZOFn9c1ckZdHpJ56Qb7MHhH/IcJZbBGgvdtwdwNbLvxiBEdg336iA9Sg==} + engines: {node: '>=14.6'} + color-name@1.1.3: resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + color-name@2.1.1: + resolution: {integrity: sha512-p2FdgwVx1a9yWBHP2wI0VgShkDpgN4kZISkxdNipGBJWpa5G6b04OINlVWCyJj0JmfvcPrgqt95E9k8yvaOJFg==} + engines: {node: '>=12.20'} + color-string@1.9.1: resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} + color-string@2.1.4: + resolution: {integrity: sha512-Bb6Cq8oq0IjDOe8wJmi4JeNn763Xs9cfrBcaylK1tPypWzyoy2G3l90v9k64kjphl/ZJjPIShFztenRomi8WTg==} + engines: {node: '>=18'} + color-support@1.1.3: resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} hasBin: true @@ -9974,9 +10375,16 @@ packages: resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} engines: {node: '>=12.5.0'} + color@5.0.3: + resolution: {integrity: sha512-ezmVcLR3xAVp8kYOm4GS45ZLLgIE6SPAFoduLr6hTDajwb3KZ2F46gulK3XpcwRFb5KKGCSezCBAY4Dw4HsyXA==} + engines: {node: '>=18'} + colord@2.9.3: resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} + colorette@2.0.19: + resolution: {integrity: sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==} + colorette@2.0.20: resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} @@ -9990,6 +10398,10 @@ packages: comma-separated-tokens@2.0.3: resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} + commander@10.0.1: + resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} + engines: {node: '>=14'} + commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} @@ -10245,10 +10657,6 @@ packages: resolution: {integrity: sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==} engines: {node: '>= 6'} - css-what@6.1.0: - resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} - engines: {node: '>= 6'} - css-what@6.2.2: resolution: {integrity: sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==} engines: {node: '>= 6'} @@ -10333,6 +10741,9 @@ packages: resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==} engines: {node: '>= 0.4'} + dataloader@2.2.3: + resolution: {integrity: sha512-y2krtASINtPFS1rSDjacrFgn1dcUuoREVabwlOGOe4SdxenREqwjwjElAdwvbGM7kgZz9a3KVicWR7vcz8rnzA==} + date-fns@2.30.0: resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==} engines: {node: '>=0.11'} @@ -10452,6 +10863,14 @@ packages: resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} engines: {node: '>=0.10.0'} + default-browser-id@5.0.1: + resolution: {integrity: sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==} + engines: {node: '>=18'} + + default-browser@5.5.1: + resolution: {integrity: sha512-m1pAzaJgZ/gssEqlOhJkPJp8Xly7QyW6xcrkUa2KKcDeDSEMP7X8xipU3snUcfisTQx0w1AGae+9UtJSfVnXGw==} + engines: {node: '>=18'} + default-gateway@6.0.3: resolution: {integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==} engines: {node: '>= 10'} @@ -10475,6 +10894,10 @@ packages: resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} engines: {node: '>=8'} + define-lazy-prop@3.0.0: + resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} + engines: {node: '>=12'} + define-properties@1.2.1: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} @@ -10497,6 +10920,10 @@ packages: resolution: {integrity: sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw==} engines: {node: '>=0.10'} + denque@2.1.0: + resolution: {integrity: sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==} + engines: {node: '>=0.10'} + depd@1.1.2: resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} engines: {node: '>= 0.6'} @@ -10662,6 +11089,10 @@ packages: resolution: {integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==} engines: {node: '>=12'} + dotenv@17.3.1: + resolution: {integrity: sha512-IO8C/dzEb6O3F9/twg6ZLXz164a2fhTnEWb95H23Dm4OuN+92NmEAlTrupP9VW6Jm3sO26tQlqyvyi4CsnY9GA==} + engines: {node: '>=12'} + dunder-proto@1.0.1: resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} engines: {node: '>= 0.4'} @@ -10672,9 +11103,15 @@ packages: duplexify@3.7.1: resolution: {integrity: sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==} + duplexify@4.1.3: + resolution: {integrity: sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA==} + eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + ecdsa-sig-formatter@1.0.11: + resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==} + edge-runtime@2.1.4: resolution: {integrity: sha512-SertKByzAmjm+MkLbFl1q0ko+/90V24dhZgQM8fcdguQaDYVEVtb6okEBGeg8IQgL1/JUP8oSlUIxSI/bvsVRQ==} engines: {node: '>=14'} @@ -10733,6 +11170,9 @@ packages: resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} engines: {node: '>= 0.8'} + encoding@0.1.13: + resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} + end-of-stream@1.4.4: resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} @@ -10761,6 +11201,13 @@ packages: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} + env-paths@2.2.1: + resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} + engines: {node: '>=6'} + + err-code@2.0.3: + resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} + error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} @@ -11178,6 +11625,10 @@ packages: deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. hasBin: true + esm@3.2.25: + resolution: {integrity: sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==} + engines: {node: '>=6'} + espree@9.6.1: resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -11309,6 +11760,10 @@ packages: resolution: {integrity: sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==} engines: {node: '>= 0.10.0'} + express@4.22.2: + resolution: {integrity: sha512-IuL+Elrou2ZvCFHs18/CIzy2Nzvo25nZ1/D2eIZlz7c+QUayAcYoiM2BthCjs+EBHVpjYjcuLDAiCWgeIX3X1Q==} + engines: {node: '>= 0.10.0'} + express@5.2.1: resolution: {integrity: sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==} engines: {node: '>= 18'} @@ -11353,6 +11808,13 @@ packages: fast-uri@3.0.6: resolution: {integrity: sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==} + fast-xml-builder@1.3.1: + resolution: {integrity: sha512-pIM/1n3ntFXKYrUZwW7QCK0gAW7XY+wzj1YMIV3tLDvPj/V+zTGJK5e3/4WJfwj0qWw2ElNXiTixda/R+3YSug==} + + fast-xml-parser@5.11.1: + resolution: {integrity: sha512-TBw6K/fxoQGGjCmZDw9w/ZwP3uDcnTM4YH/g+PFRWr8sbe5idXtxNN6vITh4+1ruCZaho6uBFurElsA7F0zzgw==} + hasBin: true + fastq@1.18.0: resolution: {integrity: sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==} @@ -11369,6 +11831,15 @@ packages: fb-watchman@2.0.2: resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} + fdir@6.5.0: + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} + engines: {node: '>=12.0.0'} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + fecha@4.2.3: resolution: {integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==} @@ -11495,6 +11966,10 @@ packages: form-data-encoder@1.7.2: resolution: {integrity: sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==} + form-data@2.5.6: + resolution: {integrity: sha512-Ogz/E85h9tlfJzpI6TuFpGcHZFhLrb9Gw8wq9v40CxSCPnv7ahKr6Xgtkn0KYCDQJ8DNn5VoMO8EXr9V5PadyA==} + engines: {node: '>= 0.12'} + form-data@3.0.2: resolution: {integrity: sha512-sJe+TQb2vIaIyO783qN6BlMYWMw3WBOHA1Ay2qxsnjuafEOQFJ2JakedOQirT6D5XPRxDvS7AHYyem9fTpb4LQ==} engines: {node: '>= 6'} @@ -11551,6 +12026,10 @@ packages: resolution: {integrity: sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==} engines: {node: '>=14.14'} + fs-extra@11.3.3: + resolution: {integrity: sha512-VWSRii4t0AFm6ixFFmLLx1t7wS1gh+ckoa84aOeapGum0h+EZd1EhEumSB+ZdDLnEPuucsVB9oB7cxJHap6Afg==} + engines: {node: '>=14.14'} + fs-extra@8.1.0: resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} engines: {node: '>=6 <7 || >=8'} @@ -11593,14 +12072,42 @@ packages: engines: {node: '>=10'} deprecated: This package is no longer supported. + gauge@4.0.4: + resolution: {integrity: sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + deprecated: This package is no longer supported. + + gaxios@6.7.1: + resolution: {integrity: sha512-LDODD4TMYx7XXdpwxAVRAIAuB0bzv0s+ywFonY46k126qzQHT9ygyoa9tncmOiQmmDrik65UYsEkv3lbfqQ3yQ==} + engines: {node: '>=14'} + gaxios@7.1.3: resolution: {integrity: sha512-YGGyuEdVIjqxkxVH1pUTMY/XtmmsApXrCVv5EU25iX6inEPbV+VakJfLealkBtJN69AQmh1eGOdCl9Sm1UP6XQ==} engines: {node: '>=18'} + gaxios@7.3.1: + resolution: {integrity: sha512-kB3rzJV7d9juLZh8/56QTXCwQfxyhdOMdyYk1HdQKFtF8TJTDTZQJtixWIwXdE9Jji91mC41DUNpjleo4L4eAQ==} + engines: {node: '>=18'} + + gcp-metadata@6.1.1: + resolution: {integrity: sha512-a4tiq7E0/5fTjxPAaH4jpjkSv/uCaU2p5KC6HVGrvl0cDjA8iBZv4vv1gyzlmK0ZUKqwpOyQMKzZQe3lTit77A==} + engines: {node: '>=14'} + + gcp-metadata@8.1.2: + resolution: {integrity: sha512-zV/5HKTfCeKWnxG0Dmrw51hEWFGfcF2xiXqcA3+J90WDuP0SvoiSO5ORvcBsifmx/FoIjgQN3oNOGaQ5PhLFkg==} + engines: {node: '>=18'} + gcp-metadata@8.1.3: resolution: {integrity: sha512-ziTrzUhhpL9Zk5k0HHzgP/KIpWDJT0VMBC/ynt/QIBvTW+UUcSivQRl6VlwTf/EilDxtSWklHoRsKy1c4k+59w==} engines: {node: '>=18'} + gcp-metadata@9.0.3: + resolution: {integrity: sha512-2YYnIlHaKBGT2IPg3G2M57hia9Galz15zsEOvw9T3oRf0lSn6KN6VcHQLqby7x8ksYKnjXvp3rp2KJyLCN6zfQ==} + engines: {node: '>=22'} + + generate-function@2.3.1: + resolution: {integrity: sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==} + generic-names@4.0.0: resolution: {integrity: sha512-ySFolZQfw9FoDb3ed9d80Cm9f0+r7qj+HJkWjeD9RBfpxEVTlVhol+gvaQB/78WbwYfbnNh8nWHHBSlg072y6A==} @@ -11650,6 +12157,9 @@ packages: resolution: {integrity: sha512-+5s0SJbGoyiJTZZ2JTpFPLMPSch72KEqGOTvQsBqg0RBWvwhWUSYZFAtz3TPW0GXJuLBJPts1E241iHg+VRfhg==} engines: {node: '>= 6'} + getopts@2.3.0: + resolution: {integrity: sha512-5eDf9fuSXwxBL6q5HX+dhDj+dslFGWzU5thZ9kNKUkcPtaPdatmUFKwHFrLb/uf/WpA4BHET+AX3Scl56cAjpA==} + git-hooks-list@1.0.3: resolution: {integrity: sha512-Y7wLWcrLUXwk2noSka166byGCvhMtDRpgHdzCno1UQv/n/Hegp++a2xBWJL1lJarnKD3SWaljD+0z1ztqxuKyQ==} @@ -11723,10 +12233,34 @@ packages: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} + google-auth-library@10.9.1: + resolution: {integrity: sha512-i1ydyHrqcIxXkWh/uBmVkzCvIuq5yiK2ATndIe5XxKholrG/MTYP9xGYka4sQhrbIAgGjL2B6NOE7rFaiF3fXw==} + engines: {node: '>=18'} + + google-auth-library@9.15.1: + resolution: {integrity: sha512-Jb6Z0+nvECVz+2lzSMt9u98UsoakXxA2HGHMCxh+so3n90XgYWkq5dur19JAJV7ONiJY22yBTyJB1TSkvPq9Ng==} + engines: {node: '>=14'} + + google-logging-utils@0.0.2: + resolution: {integrity: sha512-NEgUnEcBiP5HrPzufUkBzJOD/Sxsco3rLNo1F1TNf7ieU8ryUzBhqba8r756CjLX7rn3fHl6iLEwPYuqpoKgQQ==} + engines: {node: '>=14'} + google-logging-utils@1.1.3: resolution: {integrity: sha512-eAmLkjDjAFCVXg7A1unxHsLf961m6y17QFqXqAXGj/gVkKFrEICfStRfwUlGNfeCEjNRa32JEWOUTlYXPyyKvA==} engines: {node: '>=14'} + google-logging-utils@2.0.1: + resolution: {integrity: sha512-HMhaQghlOTvbcb3c4T5jmmOMtG3JUF1iOQMezaJXL86CDS+Tm2vHd0IeLFRAx3+ewd+bo9E1HFHoy17X5aJa9A==} + engines: {node: '>=22'} + + googleapis-common@7.2.0: + resolution: {integrity: sha512-/fhDZEJZvOV3X5jmD+fKxMqma5q2Q9nZNSF3kn1F18tpxmA86BcTxAGBQdM0N89Z3bEaIs+HVznSmFJEAmMTjA==} + engines: {node: '>=14.0.0'} + + googleapis@137.1.0: + resolution: {integrity: sha512-2L7SzN0FLHyQtFmyIxrcXhgust77067pkkduqkbIpDuj9JzVnByxsRrcRfUMFQam3rQkWW2B0f1i40IwKDWIVQ==} + engines: {node: '>=14.0.0'} + gopd@1.2.0: resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} engines: {node: '>= 0.4'} @@ -11745,6 +12279,10 @@ packages: resolution: {integrity: sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==} engines: {node: '>=4.x'} + gtoken@7.1.0: + resolution: {integrity: sha512-pCcEwRi+TKpMlxAQObHDQ56KawURgyAf6jtIY046fJ5tIv3zDe/LEIubckAO8fj6JnAxLdmWkUfNyulQ2iKdEw==} + engines: {node: '>=14.0.0'} + gunzip-maybe@1.4.2: resolution: {integrity: sha512-4haO1M4mLO91PW57BMsDFf75UmwoRX0GkdD+Faw+Lr+r/OZrOCS0pIBwOL1xCKQqnQzbNFGgK2V2CpBUPeFNTw==} hasBin: true @@ -11911,6 +12449,14 @@ packages: resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==} engines: {node: '>= 6'} + http-proxy-agent@5.0.0: + resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} + engines: {node: '>= 6'} + + http-proxy-agent@7.0.2: + resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} + engines: {node: '>= 14'} + http-proxy-middleware@2.0.7: resolution: {integrity: sha512-fgVY8AV7qU7z/MmXJ/rxwbrtQH4jBQ9m7kp3llF0liB7glmFeVZFBepQb32T3y8n8k2+AEYuMPCpinYW+/CuRA==} engines: {node: '>=12.0.0'} @@ -12056,6 +12602,10 @@ packages: resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} engines: {node: '>= 0.4'} + interpret@2.2.0: + resolution: {integrity: sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==} + engines: {node: '>= 0.10'} + ioredis@4.28.5: resolution: {integrity: sha512-3GYo0GJtLqgNXj4YhrisLaNNvWSNwSS2wS4OELGfGxH8I69+XfNdnmV1AyN+ZqMh0i7eX+SWjrwFKDBDgfBC1A==} engines: {node: '>=6'} @@ -12161,6 +12711,11 @@ packages: engines: {node: '>=8'} hasBin: true + is-docker@3.0.0: + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true + is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} @@ -12199,10 +12754,18 @@ packages: is-hexadecimal@2.0.1: resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} + is-inside-container@1.0.0: + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} + engines: {node: '>=14.16'} + hasBin: true + is-interactive@1.0.0: resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} engines: {node: '>=8'} + is-lambda@1.0.1: + resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==} + is-map@2.0.3: resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} engines: {node: '>= 0.4'} @@ -12244,6 +12807,9 @@ packages: is-promise@4.0.0: resolution: {integrity: sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==} + is-property@1.0.2: + resolution: {integrity: sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==} + is-reference@3.0.3: resolution: {integrity: sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==} @@ -12290,6 +12856,9 @@ packages: resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} engines: {node: '>=10'} + is-unsafe@2.0.2: + resolution: {integrity: sha512-HgbIHPBH0KHHCcjLfGsCvhtPTVxjaAZlXjwdz7/GQC40SjSe4sfQsar8J5VFo8JOSbarkpV0OLG95bbaNd9aAQ==} + is-weakmap@2.0.2: resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} engines: {node: '>= 0.4'} @@ -12310,6 +12879,10 @@ packages: resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} engines: {node: '>=8'} + is-wsl@3.1.1: + resolution: {integrity: sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==} + engines: {node: '>=16'} + isarray@0.0.1: resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==} @@ -12776,6 +13349,9 @@ packages: jose@6.1.3: resolution: {integrity: sha512-0TpaTfihd4QMNwrz/ob2Bp7X04yuxJkjRGi4aKmOqwhov54i6u79oCv7T+C7lo70MKH6BesI3vscD1yb/yzKXQ==} + js-md4@0.3.2: + resolution: {integrity: sha512-/GDnfQYsltsjRswQhN9fhv3EMw2sCpUdrdxyWDOUK7eyD++r3gRhzgiQgc/x4MAv2i1iuQ4lxO5mvqM3vj4bwA==} + js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} @@ -12817,6 +13393,10 @@ packages: canvas: optional: true + jsep@1.4.0: + resolution: {integrity: sha512-B7qPcEVE3NVkmSJbaYxvv4cHkVW7DQsZz13pUMrfS8z8Q/BuShN+gcTXrUlPiGqM2/t/EEaI030bpxMqY8gMlw==} + engines: {node: '>= 10.16.0'} + jsesc@3.0.2: resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} engines: {node: '>=6'} @@ -12878,6 +13458,11 @@ packages: jsonfile@6.1.0: resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + jsonpath-plus@10.4.0: + resolution: {integrity: sha512-T92WWatJXmhBbKsgH/0hl+jxjdXrifi5IKeMY02DWggRxX0UElcbVzPlmgLTbvsPeW1PasQ6xE2Q75stkhGbsA==} + engines: {node: '>=18.0.0'} + hasBin: true + jsonpath@1.1.1: resolution: {integrity: sha512-l6Cg7jRpixfbgoWgkrl77dgEj8RPvND0wMH6TwQmi9Qs4TFfS9u5cUFnbeKTwj5ga5Y3BTGGNI28k117LJ009w==} @@ -12885,6 +13470,10 @@ packages: resolution: {integrity: sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==} engines: {node: '>=0.10.0'} + jsonwebtoken@9.0.3: + resolution: {integrity: sha512-MT/xP0CrubFRNLNKvxJ2BYfy53Zkm++5bX9dtuPbqAeQpTVe0MQTFhao8+Cp//EmJp244xt6Drw/GVEGCUj40g==} + engines: {node: '>=12', npm: '>=6'} + jsx-ast-utils@3.3.5: resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} engines: {node: '>=4.0'} @@ -12892,6 +13481,12 @@ packages: just-extend@6.2.0: resolution: {integrity: sha512-cYofQu2Xpom82S6qD778jBDpwvvy39s1l/hrYij2u9AMdQcGRpaBu6kY4mVhuno5kJVi1DAz4aiphA2WI1/OAw==} + jwa@2.0.1: + resolution: {integrity: sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==} + + jws@4.0.1: + resolution: {integrity: sha512-EKI/M/yqPncGUUh44xz0PxSidXFr/+r0pA70+gIYhjv+et7yxM+s29Y+VGDkovRofQem0fs7Uvf4+YmAdyRduA==} + keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} @@ -12914,6 +13509,37 @@ packages: resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==} engines: {node: '>= 8'} + knex@3.2.10: + resolution: {integrity: sha512-oypTHfrc9i72iyxaUQBKHOxhcr0xM65MPf6FpN02nimsftXwzXprIkLjfXdubvhbu4PMWLp023q8o8CYvHSuZw==} + engines: {node: '>=16'} + hasBin: true + peerDependencies: + better-sqlite3: '*' + mysql: '*' + mysql2: '*' + pg: '*' + pg-native: '*' + pg-query-stream: ^4.14.0 + sqlite3: '*' + tedious: '*' + peerDependenciesMeta: + better-sqlite3: + optional: true + mysql: + optional: true + mysql2: + optional: true + pg: + optional: true + pg-native: + optional: true + pg-query-stream: + optional: true + sqlite3: + optional: true + tedious: + optional: true + kuler@2.0.0: resolution: {integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==} @@ -12980,10 +13606,6 @@ packages: resolution: {integrity: sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==} engines: {node: '>=4'} - loader-runner@4.3.0: - resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} - engines: {node: '>=6.11.5'} - loader-runner@4.3.2: resolution: {integrity: sha512-DFEqQ3ihfS9blba08cLfYf1NRAIEm+dDjic073DRDc3/JspI/8wYmtDsHwd3+4hwvdxSK7PGaElfTmm0awWJ4w==} engines: {node: '>=6.11.5'} @@ -13008,6 +13630,9 @@ packages: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} engines: {node: '>=10'} + lodash-es@4.18.1: + resolution: {integrity: sha512-J8xewKD/Gk22OZbhpOVSwcs60zhd95ESDwezOFuA3/099925PdHJ7OFHNTGtajL3AlZkykD32HykiMo+BIBI8A==} + lodash.camelcase@4.3.0: resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} @@ -13027,15 +13652,36 @@ packages: resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} deprecated: This package is deprecated. Use the optional chaining (?.) operator instead. + lodash.includes@4.3.0: + resolution: {integrity: sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==} + lodash.isarguments@3.1.0: resolution: {integrity: sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==} + lodash.isboolean@3.0.3: + resolution: {integrity: sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==} + + lodash.isinteger@4.0.4: + resolution: {integrity: sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==} + + lodash.isnumber@3.0.3: + resolution: {integrity: sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==} + + lodash.isplainobject@4.0.6: + resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} + + lodash.isstring@4.0.1: + resolution: {integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==} + lodash.memoize@4.1.2: resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + lodash.once@4.1.1: + resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==} + lodash.sortby@4.7.0: resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} @@ -13104,6 +13750,10 @@ packages: resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} engines: {node: '>=12'} + lru.min@1.1.4: + resolution: {integrity: sha512-DqC6n3QQ77zdFpCMASA1a3Jlb64Hv2N2DciFGkO/4L9+q/IpIAuRlKOvCXabtRW6cQf8usbmM6BE/TOPysCdIA==} + engines: {bun: '>=1.0.0', deno: '>=1.30.0', node: '>=8.0.0'} + lz-string@1.5.0: resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} hasBin: true @@ -13126,9 +13776,17 @@ packages: make-error@1.3.6: resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + make-fetch-happen@9.1.0: + resolution: {integrity: sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==} + engines: {node: '>= 10'} + makeerror@1.0.12: resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} + mariadb@3.4.5: + resolution: {integrity: sha512-gThTYkhIS5rRqkVr+Y0cIdzr+GRqJ9sA2Q34e0yzmyhMCwyApf3OKAC1jnF23aSlIOqJuyaUFUcj7O1qZslmmQ==} + engines: {node: '>= 14'} + markdown-extensions@1.1.1: resolution: {integrity: sha512-WWC0ZuMzCyDHYCasEGs4IPvLyTGftYwh6wIEOULOF0HXcqZlhwRzrK0w2VUlxWA98xnvb/jszw4ZSkJ6ADpM6Q==} engines: {node: '>=0.10.0'} @@ -13396,6 +14054,10 @@ packages: resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} engines: {node: '>=8.6'} + mikro-orm@6.6.16: + resolution: {integrity: sha512-42bvve+XSzvBpOuZeZxJsM5aW4DQnDn23E5to4cvEjUdaPX7jg1bRh+l8f/8/WJJNzG1T05V5vHSe+SHzqN87A==} + engines: {node: '>= 18.12.0'} + mime-db@1.52.0: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} @@ -13422,6 +14084,11 @@ packages: engines: {node: '>=4.0.0'} hasBin: true + mime@3.0.0: + resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} + engines: {node: '>=10.0.0'} + hasBin: true + mimic-fn@2.1.0: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} @@ -13523,6 +14190,10 @@ packages: resolution: {integrity: sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==} engines: {node: '>= 8'} + minipass-fetch@1.4.1: + resolution: {integrity: sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==} + engines: {node: '>=8'} + minipass-flush@1.0.7: resolution: {integrity: sha512-TbqTz9cUwWyHS2Dy89P3ocAGUGxKjjLuR9z8w4WUTGAVgEj17/4nhgo2Du56i0Fm3Pm30g4iA8Lcqctc76jCzA==} engines: {node: '>= 8'} @@ -13531,6 +14202,10 @@ packages: resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==} engines: {node: '>=8'} + minipass-sized@1.0.3: + resolution: {integrity: sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==} + engines: {node: '>=8'} + minipass@3.3.6: resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} engines: {node: '>=8'} @@ -13629,9 +14304,19 @@ packages: resolution: {integrity: sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + mysql2@3.20.0: + resolution: {integrity: sha512-eCLUs7BNbgA6nf/MZXsaBO1SfGs0LtLVrJD3WeWq+jPLDWkSufTD+aGMwykfUVPdZnblaUK1a8G/P63cl9FkKg==} + engines: {node: '>= 8.0'} + peerDependencies: + '@types/node': '>= 8' + mz@2.7.0: resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + named-placeholders@1.1.6: + resolution: {integrity: sha512-Tz09sEL2EEuv5fFowm419c1+a/jSMiBjI9gHxVLrVdbUkkNUUfjsVYs9pVZu5oCon/kmRh9TfLEObFtkVxmY0w==} + engines: {node: '>=8.0.0'} + nanoid@3.1.20: resolution: {integrity: sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -13655,6 +14340,9 @@ packages: napi-build-utils@2.0.0: resolution: {integrity: sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==} + native-duplexpair@1.0.0: + resolution: {integrity: sha512-E7QQoM+3jvNtlmyfqRZ0/U75VFgCls+fSkbml2MpgWkWyz3ox8Y58gNhfuziuQYGNNQAbFZJQck55LHCnCK6CA==} + natural-compare-lite@1.4.0: resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} @@ -13749,6 +14437,9 @@ packages: node-addon-api@6.1.0: resolution: {integrity: sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==} + node-addon-api@7.1.1: + resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} + node-domexception@1.0.0: resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} engines: {node: '>=10.5.0'} @@ -13787,6 +14478,11 @@ packages: resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} hasBin: true + node-gyp@8.4.1: + resolution: {integrity: sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==} + engines: {node: '>= 10.12.0'} + hasBin: true + node-int64@0.4.0: resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} @@ -13839,6 +14535,11 @@ packages: resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==} deprecated: This package is no longer supported. + npmlog@6.0.2: + resolution: {integrity: sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + deprecated: This package is no longer supported. + nth-check@1.0.2: resolution: {integrity: sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==} @@ -13869,6 +14570,10 @@ packages: resolution: {integrity: sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==} engines: {node: '>= 0.4'} + object-inspect@1.13.4: + resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} + engines: {node: '>= 0.4'} + object-is@1.1.6: resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==} engines: {node: '>= 0.4'} @@ -13926,6 +14631,10 @@ packages: resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} engines: {node: '>=6'} + open@10.2.0: + resolution: {integrity: sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==} + engines: {node: '>=18'} + open@8.4.2: resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} engines: {node: '>=12'} @@ -14105,6 +14814,10 @@ packages: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} + path-expression-matcher@1.6.2: + resolution: {integrity: sha512-enSlaiat05iasnzmgNxRj8reFdj3puY2QpNgP1aPIaVfT6nn9ICuPoFlKHk8EN22HcwewshO+mN2DGbkCEOtqQ==} + engines: {node: '>=14.0.0'} + path-is-absolute@1.0.1: resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} engines: {node: '>=0.10.0'} @@ -14172,10 +14885,27 @@ packages: periscopic@3.1.0: resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} + pg-cloudflare@1.4.0: + resolution: {integrity: sha512-Vo7z/6rrQYxpNRylp4Tlob2elzbh+N/MOQbxFVWCxS7oEx6jF53GTJFxK2WWpKuBRkmiin4Mt+xofFDjx09R0A==} + + pg-connection-string@2.14.0: + resolution: {integrity: sha512-XwWDGcLRGCXAR8F/AM5bG7Q+A3Wm2s6QeEjlOKZLlH3UYcguiqCWKyWXVag5TLTIjR7oOJUY8kcADaZgWPyLeg==} + + pg-connection-string@2.6.2: + resolution: {integrity: sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA==} + pg-int8@1.0.1: resolution: {integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==} engines: {node: '>=4.0.0'} + pg-pool@3.14.0: + resolution: {integrity: sha512-gKtPkFdQPU3DksooVLi9LsjZxrsBUZIpa+7aVx+LV5pNh0KzP4Zleud2po+ConrxbuXGBJ6Hfer6hdgpIBpBaw==} + peerDependencies: + pg: '>=8.0' + + pg-protocol@1.16.0: + resolution: {integrity: sha512-sILXutLVjCLjcDuOmvhX5e2Z4cS5qG/6Bu3VkpFwdf/633ElGLpEh9bgmuI5I4sqKqkifQiGyiCcx1HdtrK7tg==} + pg-protocol@1.7.0: resolution: {integrity: sha512-hTK/mE36i8fDDhgDFjy6xNOG+LCorxLG3WO17tku+ij6sVHXh1jQUJ8hYAnRhNla4QVD2H8er/FOjc/+EgC6yQ==} @@ -14183,6 +14913,18 @@ packages: resolution: {integrity: sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==} engines: {node: '>=4'} + pg@8.20.0: + resolution: {integrity: sha512-ldhMxz2r8fl/6QkXnBD3CR9/xg694oT6DZQ2s6c/RI28OjtSOpxnPrUCGOBJ46RCUxcWdx3p6kw/xnDHjKvaRA==} + engines: {node: '>= 16.0.0'} + peerDependencies: + pg-native: '>=3.0.1' + peerDependenciesMeta: + pg-native: + optional: true + + pgpass@1.0.5: + resolution: {integrity: sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==} + picocolors@0.2.1: resolution: {integrity: sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==} @@ -14200,6 +14942,10 @@ packages: resolution: {integrity: sha512-xUXwsxNjwTQ8K3GnT4pCJm+xq3RUPQbmkYJTP5aFIfNIvbcc/4MUxgBaaRSZJ6yGJZiGSyYlM6MzwTsRk8SYCg==} engines: {node: '>=12'} + picomatch@4.0.7: + resolution: {integrity: sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==} + engines: {node: '>=12'} + pidtree@0.3.1: resolution: {integrity: sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==} engines: {node: '>=0.10'} @@ -14717,6 +15463,10 @@ packages: resolution: {integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==} engines: {node: '>=4'} + postgres-array@3.0.4: + resolution: {integrity: sha512-nAUSGfSDGOaOAEGwqsRY27GPOea7CNipJPOA7lPbdEpx5Kg3qzdP0AaWC5MlhTWV9s4hFX39nomVZ+C4tnGOJQ==} + engines: {node: '>=12'} + postgres-bytea@1.0.0: resolution: {integrity: sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==} engines: {node: '>=0.10.0'} @@ -14725,10 +15475,18 @@ packages: resolution: {integrity: sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==} engines: {node: '>=0.10.0'} + postgres-date@2.1.0: + resolution: {integrity: sha512-K7Juri8gtgXVcDfZttFKVmhglp7epKb1K4pgrkLxehjqkrgPhfG6OO8LHLkfaqkbpjNRnra018XwAr1yQFWGcA==} + engines: {node: '>=12'} + postgres-interval@1.2.0: resolution: {integrity: sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==} engines: {node: '>=0.10.0'} + postgres-interval@4.0.2: + resolution: {integrity: sha512-EMsphSQ1YkQqKZL2cuG0zHkmjCCzQqQ71l2GXITqRwjhRleCdv00bDk/ktaSi0LnlaPzAc3535KTrjXsTdtx7A==} + engines: {node: '>=12'} + prebuild-install@7.1.3: resolution: {integrity: sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==} engines: {node: '>=10'} @@ -14801,6 +15559,10 @@ packages: resolution: {integrity: sha512-JOnOPQ/8TZgjs1JIH/m9ni7FfimjNa/PRx7y/Wb5qdItsnhO0jE4AT7fC0HjC28DUQWDr50dwSYZLdRMlqDq3Q==} engines: {node: '>=8'} + process@0.11.10: + resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} + engines: {node: '>= 0.6.0'} + promise-inflight@1.0.1: resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} peerDependencies: @@ -14809,6 +15571,10 @@ packages: bluebird: optional: true + promise-retry@2.0.1: + resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} + engines: {node: '>=10'} + promise@8.3.0: resolution: {integrity: sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==} @@ -14905,6 +15671,10 @@ packages: resolution: {integrity: sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==} engines: {node: '>=0.6'} + qs@6.15.3: + resolution: {integrity: sha512-O9gl3zCl5h5blw1KGUzQKhA5oUXSl8rwUIM5o0S3nCXMliSvy5Dzx7/DJcI+SwgICv+IneSZwhBh1oSyEHA71A==} + engines: {node: '>=0.6'} + querystringify@2.2.0: resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} @@ -15031,6 +15801,10 @@ packages: resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} engines: {node: '>= 6'} + readable-stream@4.7.0: + resolution: {integrity: sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + readdirp@3.5.0: resolution: {integrity: sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==} engines: {node: '>=8.10.0'} @@ -15047,6 +15821,10 @@ packages: resolution: {integrity: sha512-hjMmLaUXAm1hIuTqOdeYObMslq/q+Xff6QE3Y2P+uoHAg2nmVlLBps2hzh1UJDdMtDTMXOFewK6ky51JQIeECg==} engines: {node: '>= 4'} + rechoir@0.8.0: + resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==} + engines: {node: '>= 10.13.0'} + recursive-readdir@2.2.3: resolution: {integrity: sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==} engines: {node: '>=6.0.0'} @@ -15076,10 +15854,6 @@ packages: resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} engines: {node: '>= 0.4'} - regenerate-unicode-properties@10.2.0: - resolution: {integrity: sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==} - engines: {node: '>=4'} - regenerate-unicode-properties@10.2.2: resolution: {integrity: sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==} engines: {node: '>=4'} @@ -15103,10 +15877,6 @@ packages: resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} engines: {node: '>= 0.4'} - regexpu-core@6.2.0: - resolution: {integrity: sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA==} - engines: {node: '>=4'} - regexpu-core@6.4.0: resolution: {integrity: sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==} engines: {node: '>=4'} @@ -15114,10 +15884,6 @@ packages: regjsgen@0.8.0: resolution: {integrity: sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==} - regjsparser@0.12.0: - resolution: {integrity: sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==} - hasBin: true - regjsparser@0.13.1: resolution: {integrity: sha512-dLsljMd9sqwRkby8zhO1gSg3PnJIBFid8f4CQj/sXx+7cKx+E7u0PKhZ+U4wmhx7EfmtvnA318oVaIkAB1lRJw==} hasBin: true @@ -15245,6 +16011,14 @@ packages: resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} engines: {node: '>=8'} + retry-request@7.0.2: + resolution: {integrity: sha512-dUOvLMJ0/JJYEn8NrpOaGNE7X3vpI5XlZS/u0ANjqtcZVKnIxP7IgCFwrKTxENw29emmwug53awKtaMm4i9g5w==} + engines: {node: '>=14'} + + retry@0.12.0: + resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} + engines: {node: '>= 4'} + retry@0.13.1: resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} engines: {node: '>= 4'} @@ -15288,6 +16062,10 @@ packages: resolution: {integrity: sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==} engines: {node: '>= 18'} + run-applescript@7.1.0: + resolution: {integrity: sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==} + engines: {node: '>=18'} + run-async@2.4.1: resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} engines: {node: '>=0.12.0'} @@ -15385,10 +16163,6 @@ packages: resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} engines: {node: '>= 10.13.0'} - schema-utils@4.3.0: - resolution: {integrity: sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g==} - engines: {node: '>= 10.13.0'} - schema-utils@4.3.3: resolution: {integrity: sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==} engines: {node: '>= 10.13.0'} @@ -15527,6 +16301,10 @@ packages: resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} engines: {node: '>= 0.4'} + side-channel-list@1.0.1: + resolution: {integrity: sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==} + engines: {node: '>= 0.4'} + side-channel-map@1.0.1: resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} engines: {node: '>= 0.4'} @@ -15539,6 +16317,10 @@ packages: resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} engines: {node: '>= 0.4'} + side-channel@1.1.1: + resolution: {integrity: sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ==} + engines: {node: '>= 0.4'} + signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} @@ -15589,6 +16371,10 @@ packages: resolution: {integrity: sha512-vZdmnjb9a2Tz6WEQVIurybSwElwPxMZaIc7PzqbJTrezcKNznv6giT7J7tZDZ1BojVaa1jvO/UiUdhDVB0ACoQ==} engines: {node: '>= 6'} + socks-proxy-agent@6.2.1: + resolution: {integrity: sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==} + engines: {node: '>= 10'} + socks@2.8.9: resolution: {integrity: sha512-LJhUYUvItdQ0LkJTmPeaEObWXAqFyfmP85x0tch/ez9cahmhlBBLbIqDFnvBnUJGagb0JbIQrkBs1wJ+yRYpEw==} engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} @@ -15675,9 +16461,31 @@ packages: resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==} engines: {node: '>=6.0.0'} + split2@4.2.0: + resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} + engines: {node: '>= 10.x'} + sprintf-js@1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + sprintf-js@1.1.3: + resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} + + sql-escaper@1.5.1: + resolution: {integrity: sha512-4toX5E1fQbBrpfXidaHnF0669nkAdETeIPTs2SUjxxD7RRIs9ICG4gtpmfc68JCEKehsdwLFqBu9VlQqZ1P1gg==} + engines: {bun: '>=1.0.0', deno: '>=2.0.0', node: '>=12.0.0'} + + sqlite3@5.1.7: + resolution: {integrity: sha512-GGIyOiFaG+TUra3JIfkI/zGP8yZYLPQ0pl1bH+ODjiX57sPhrLU5sQJn1y9bDKZUFYkX1crlrPfSYt0BKKdkog==} + + sqlstring-sqlite@0.1.1: + resolution: {integrity: sha512-9CAYUJ0lEUPYJrswqiqdINNSfq3jqWo/bFJ7tufdoNeSK0Fy+d1kFTxjqO9PIqza0Kri+ZtYMfPVf1aZaFOvrQ==} + engines: {node: '>= 0.6'} + + sqlstring@2.3.3: + resolution: {integrity: sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==} + engines: {node: '>= 0.6'} + ssri@8.0.1: resolution: {integrity: sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==} engines: {node: '>= 8'} @@ -15721,6 +16529,9 @@ packages: resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==} engines: {node: '>= 0.4'} + stream-events@1.0.5: + resolution: {integrity: sha512-E1GUzBSgvct8Jsb3v2X15pjzN1tYebtbLaMg+eBOUOAxgbLoSbT2NS91ckc5lJD1KfLjId+jXJRgo0qnV5Nerg==} + stream-shift@1.0.3: resolution: {integrity: sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==} @@ -15840,6 +16651,12 @@ packages: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} + strnum@2.4.2: + resolution: {integrity: sha512-rDG3Ah4TV0k1hWvLSzkZtMmLN9+eS+h3knq4MP6A42Y3Yh5qGNnOUs1jJkoSr8FG5dsL28c7KgkIBzSEykqtuw==} + + stubs@3.0.0: + resolution: {integrity: sha512-PdHt7hHUJKxvTCgbKX9C1V/ftOcjJQgz8BZwNfV5c4B6dcGqlpelTbJ999jBGZ2jYiPAwcX5dP6oBwVlBlUbxw==} + style-loader@3.3.4: resolution: {integrity: sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==} engines: {node: '>= 12.13.0'} @@ -15994,6 +16811,18 @@ packages: engines: {node: '>=10'} deprecated: Old versions of tar 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 + tarn@3.1.2: + resolution: {integrity: sha512-3RTvqKZcK/17jnJ8rMKFXbyNogywTs1z0gVPPwFsJGX46rkmUHOdIaSQ/aVO1rS7nH+soiXiWk7rvUXxndm8Dg==} + engines: {node: '>=8.0.0'} + + tedious@19.2.1: + resolution: {integrity: sha512-pk1Q16Yl62iocuQB+RWbg6rFUFkIyzqOFQ6NfysCltRvQqKwfurgj8v/f2X+CKvDhSL4IJ0cCOfCHDg9PWEEYA==} + engines: {node: '>=18.17'} + + teeny-request@9.0.0: + resolution: {integrity: sha512-resvxdc6Mgb7YEThw6G6bExlXKkv6+YbuzGg9xuXxSgxJF7Ozs+o8Y9+2R3sArdWdW8nOokoQb1yrpFB0pQK2g==} + engines: {node: '>=14'} + temp-dir@2.0.0: resolution: {integrity: sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==} engines: {node: '>=8'} @@ -16065,10 +16894,18 @@ packages: thunky@1.1.0: resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==} + tildify@2.0.0: + resolution: {integrity: sha512-Cc+OraorugtXNfs50hU9KS369rFXCfgGLpfCfvlc+Ud5u6VWmUQsOAa9HbTvheQdYnrdJqqv1e5oIqXppMYnSw==} + engines: {node: '>=8'} + time-span@4.0.0: resolution: {integrity: sha512-MyqZCTGLDZ77u4k+jqg4UlrzPTPZ49NDlaekU6uuFaJLzPIN1woaRXCbGeqOfxwc3Y37ZROGAJ614Rdv7Olt+g==} engines: {node: '>=10'} + tinyglobby@0.2.17: + resolution: {integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==} + engines: {node: '>=12.0.0'} + tmp@0.0.33: resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} engines: {node: '>=0.6.0'} @@ -16206,6 +17043,9 @@ packages: ts-morph@12.0.0: resolution: {integrity: sha512-VHC8XgU2fFW7yO1f/b3mxKDje1vmyzFXHWzOYmKEkCEwcLjDtbdLgBQviqj4ZwP4MJkQtRo6Ha2I29lq/B+VxA==} + ts-morph@27.0.2: + resolution: {integrity: sha512-fhUhgeljcrdZ+9DZND1De1029PrE+cMkIP7ooqkLRTrRLTqcki2AstsyJm0vRNbTbVCNJ0idGlbBrfqc7/nA8w==} + ts-node@10.9.1: resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true @@ -16254,6 +17094,10 @@ packages: tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + tsqlstring@1.0.1: + resolution: {integrity: sha512-6Nzj/SrVg1SF+egwP4OMAgEa83nLKXIE3EHn+6YKinMUeMj8bGIeLuDCkDC3Cc4OIM+xhw4CD0oXKxal8J/Y6A==} + engines: {node: '>= 8.0'} + tsutils@3.21.0: resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} @@ -16386,6 +17230,9 @@ packages: undici-types@6.20.0: resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==} + undici-types@7.18.2: + resolution: {integrity: sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==} + unicode-canonical-property-names-ecmascript@2.0.1: resolution: {integrity: sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==} engines: {node: '>=4'} @@ -16394,10 +17241,6 @@ packages: resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} engines: {node: '>=4'} - unicode-match-property-value-ecmascript@2.2.0: - resolution: {integrity: sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==} - engines: {node: '>=4'} - unicode-match-property-value-ecmascript@2.2.1: resolution: {integrity: sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg==} engines: {node: '>=4'} @@ -16505,6 +17348,9 @@ packages: url-parse@1.5.10: resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} + url-template@2.0.8: + resolution: {integrity: sha512-XdVKMF4SJ0nP/O7XIPB0JwAEuT9lDIYnNsK8yGVe43y0AWoKeJNdv3ZNWh7ksJ6KqQFjOO6ox/VEitLnaVNufw==} + use-sync-external-store@1.4.0: resolution: {integrity: sha512-9WXSPC5fMv61vaupRkCKCxsPxBocVnwakBEkMIHHpkTTg6icbJtg6jzgtLDm4bl3cSHAca52rYWih0k4K3PfHw==} peerDependencies: @@ -16636,10 +17482,6 @@ packages: walker@1.0.8: resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} - watchpack@2.4.2: - resolution: {integrity: sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==} - engines: {node: '>=10.13.0'} - watchpack@2.5.2: resolution: {integrity: sha512-6i/00NBjP4yGPs+caKSyRfpTF/8Torsu0MOW3mMzIbhgISFder8i7xbqgHlLMwJrdiN8ndBV3UA1/AfzPSr+jg==} engines: {node: '>=10.13.0'} @@ -16718,10 +17560,6 @@ packages: resolution: {integrity: sha512-y9EI9AO42JjEcrTJFOYmVywVZdKVUfOvDUPsJea5GIr1JOEGFVqwlY2K098fFoIjOkDzHn2AjRvM8dsBZu+gCA==} engines: {node: '>=10.13.0'} - webpack-sources@3.2.3: - resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} - engines: {node: '>=10.13.0'} - webpack-sources@3.5.0: resolution: {integrity: sha512-HPuy+uuoTCaaoEoI1LQ3JN9+vrPBvEesnnX1jADHy728cHSMlq4wUc4afYqahq2B1mhQVZxCXOkNTnXltr+2vQ==} engines: {node: '>=10.13.0'} @@ -16836,6 +17674,10 @@ packages: resolution: {integrity: sha512-DLiFIXYC5fMPxaRg832S6F5mJYvePtmO5G9v9IgUFPhXm9/GkXarH/TUrBAVzhTCzAj9anE/+GjrgXp/54nOgw==} engines: {node: '>= 12.0.0'} + winston@3.19.0: + resolution: {integrity: sha512-LZNJgPzfKR+/J3cHkxcpHKpKKvGfDZVPS4hfJCc4cCG0CgYzvlD6yE/S3CIL/Yt91ak327YCpiF/0MyeZHEHKA==} + engines: {node: '>= 12.0.0'} + word-wrap@1.2.5: resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} engines: {node: '>=0.10.0'} @@ -16964,12 +17806,20 @@ packages: utf-8-validate: optional: true + wsl-utils@0.1.0: + resolution: {integrity: sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==} + engines: {node: '>=18'} + xdm@2.1.0: resolution: {integrity: sha512-3LxxbxKcRogYY7cQSMy1tUuU1zKNK9YPqMT7/S0r7Cz2QpyF8O9yFySGD7caOZt+LWUOQioOIX+6ZzCoBCpcAA==} xml-name-validator@3.0.0: resolution: {integrity: sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==} + xml-naming@0.3.0: + resolution: {integrity: sha512-ghig2TBE/H11aOVgmahA3MhimvkBr6JIYknH/Dhdk10nXwdbIqBJsbfMxpvFPG8bAw77gN29aQWvKpmVoPlvPQ==} + engines: {node: '>=16.0.0'} + xmlchars@2.2.0: resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} @@ -17074,6 +17924,21 @@ packages: snapshots: + '@a2a-js/sdk@0.3.14(@grpc/grpc-js@1.14.4)(express@4.22.2)': + dependencies: + uuid: 11.1.0 + optionalDependencies: + '@grpc/grpc-js': 1.14.4 + express: 4.22.2 + + '@a2a-js/sdk@0.3.14(@grpc/grpc-js@1.14.4)(express@5.2.1)': + dependencies: + uuid: 11.1.0 + optionalDependencies: + '@grpc/grpc-js': 1.14.4 + express: 5.2.1 + optional: true + '@adobe/css-tools@4.4.1': {} '@ai-sdk/gateway@4.0.31(zod@4.4.3)': @@ -17359,6 +18224,144 @@ snapshots: '@aws/lambda-invoke-store@0.3.0': {} + '@azure-rest/core-client@2.8.0': + dependencies: + '@azure/abort-controller': 2.2.0 + '@azure/core-auth': 1.11.0 + '@azure/core-rest-pipeline': 1.25.0 + '@azure/core-tracing': 1.4.0 + '@typespec/ts-http-runtime': 0.3.8 + tslib: 2.8.1 + transitivePeerDependencies: + - supports-color + + '@azure/abort-controller@2.2.0': + dependencies: + tslib: 2.8.1 + + '@azure/core-auth@1.11.0': + dependencies: + '@azure/abort-controller': 2.2.0 + '@azure/core-util': 1.14.0 + tslib: 2.8.1 + transitivePeerDependencies: + - supports-color + + '@azure/core-client@1.11.0': + dependencies: + '@azure/abort-controller': 2.2.0 + '@azure/core-auth': 1.11.0 + '@azure/core-rest-pipeline': 1.25.0 + '@azure/core-tracing': 1.4.0 + '@azure/core-util': 1.14.0 + '@azure/logger': 1.4.0 + tslib: 2.8.1 + transitivePeerDependencies: + - supports-color + + '@azure/core-lro@2.7.2': + dependencies: + '@azure/abort-controller': 2.2.0 + '@azure/core-util': 1.14.0 + '@azure/logger': 1.4.0 + tslib: 2.8.1 + transitivePeerDependencies: + - supports-color + + '@azure/core-paging@1.7.0': + dependencies: + tslib: 2.8.1 + + '@azure/core-process@1.0.0': {} + + '@azure/core-rest-pipeline@1.25.0': + dependencies: + '@azure/abort-controller': 2.2.0 + '@azure/core-auth': 1.11.0 + '@azure/core-tracing': 1.4.0 + '@azure/core-util': 1.14.0 + '@azure/logger': 1.4.0 + '@typespec/ts-http-runtime': 0.3.8 + tslib: 2.8.1 + transitivePeerDependencies: + - supports-color + + '@azure/core-tracing@1.4.0': + dependencies: + tslib: 2.8.1 + + '@azure/core-util@1.14.0': + dependencies: + '@azure/abort-controller': 2.2.0 + '@typespec/ts-http-runtime': 0.3.8 + tslib: 2.8.1 + transitivePeerDependencies: + - supports-color + + '@azure/identity@4.13.2': + dependencies: + '@azure/abort-controller': 2.2.0 + '@azure/core-auth': 1.11.0 + '@azure/core-client': 1.11.0 + '@azure/core-process': 1.0.0 + '@azure/core-rest-pipeline': 1.25.0 + '@azure/core-tracing': 1.4.0 + '@azure/core-util': 1.14.0 + '@azure/logger': 1.4.0 + '@azure/msal-browser': 5.19.0 + '@azure/msal-node': 5.6.0 + open: 10.2.0 + tslib: 2.8.1 + transitivePeerDependencies: + - supports-color + + '@azure/keyvault-common@2.1.0': + dependencies: + '@azure-rest/core-client': 2.8.0 + '@azure/abort-controller': 2.2.0 + '@azure/core-auth': 1.11.0 + '@azure/core-rest-pipeline': 1.25.0 + '@azure/core-tracing': 1.4.0 + '@azure/core-util': 1.14.0 + '@azure/logger': 1.4.0 + tslib: 2.8.1 + transitivePeerDependencies: + - supports-color + + '@azure/keyvault-keys@4.10.2': + dependencies: + '@azure-rest/core-client': 2.8.0 + '@azure/abort-controller': 2.2.0 + '@azure/core-auth': 1.11.0 + '@azure/core-lro': 2.7.2 + '@azure/core-paging': 1.7.0 + '@azure/core-rest-pipeline': 1.25.0 + '@azure/core-tracing': 1.4.0 + '@azure/core-util': 1.14.0 + '@azure/keyvault-common': 2.1.0 + '@azure/logger': 1.4.0 + tslib: 2.8.1 + transitivePeerDependencies: + - supports-color + + '@azure/logger@1.4.0': + dependencies: + '@typespec/ts-http-runtime': 0.3.8 + tslib: 2.8.1 + transitivePeerDependencies: + - supports-color + + '@azure/msal-browser@5.19.0': + dependencies: + '@azure/msal-common': 16.13.0 + + '@azure/msal-common@16.13.0': {} + + '@azure/msal-node@5.6.0': + dependencies: + '@azure/msal-common': 16.13.0 + jsonwebtoken: 9.0.3 + '@babel/code-frame@7.26.2': dependencies: '@babel/helper-validator-identifier': 7.25.9 @@ -17476,15 +18479,15 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-create-class-features-plugin@7.25.9(@babel/core@7.29.7)': + '@babel/helper-create-class-features-plugin@7.29.7(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-member-expression-to-functions': 7.25.9 - '@babel/helper-optimise-call-expression': 7.25.9 - '@babel/helper-replace-supers': 7.26.5(@babel/core@7.29.7) - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 - '@babel/traverse': 7.26.7 + '@babel/core': 7.26.7 + '@babel/helper-annotate-as-pure': 7.29.7 + '@babel/helper-member-expression-to-functions': 7.29.7 + '@babel/helper-optimise-call-expression': 7.29.7 + '@babel/helper-replace-supers': 7.29.7(@babel/core@7.26.7) + '@babel/helper-skip-transparent-expression-wrappers': 7.29.7 + '@babel/traverse': 7.29.7 semver: 6.3.1 transitivePeerDependencies: - supports-color @@ -17502,18 +18505,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-create-regexp-features-plugin@7.26.3(@babel/core@7.26.7)': + '@babel/helper-create-regexp-features-plugin@7.29.7(@babel/core@7.26.7)': dependencies: '@babel/core': 7.26.7 - '@babel/helper-annotate-as-pure': 7.25.9 - regexpu-core: 6.2.0 - semver: 6.3.1 - - '@babel/helper-create-regexp-features-plugin@7.26.3(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-annotate-as-pure': 7.25.9 - regexpu-core: 6.2.0 + '@babel/helper-annotate-as-pure': 7.29.7 + regexpu-core: 6.4.0 semver: 6.3.1 '@babel/helper-create-regexp-features-plugin@7.29.7(@babel/core@7.29.7)': @@ -17534,17 +18530,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-define-polyfill-provider@0.6.3(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-compilation-targets': 7.26.5 - '@babel/helper-plugin-utils': 7.26.5 - debug: 4.4.3(supports-color@8.1.1) - lodash.debounce: 4.0.8 - resolve: 1.22.10 - transitivePeerDependencies: - - supports-color - '@babel/helper-define-polyfill-provider@0.6.8(@babel/core@7.29.7)': dependencies: '@babel/core': 7.29.7 @@ -17595,12 +18580,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.26.0(@babel/core@7.29.7)': + '@babel/helper-module-transforms@7.29.7(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-module-imports': 7.25.9 - '@babel/helper-validator-identifier': 7.25.9 - '@babel/traverse': 7.26.7 + '@babel/core': 7.26.7 + '@babel/helper-module-imports': 7.29.7 + '@babel/helper-validator-identifier': 7.29.7 + '@babel/traverse': 7.29.7 transitivePeerDependencies: - supports-color @@ -17625,20 +18610,11 @@ snapshots: '@babel/helper-plugin-utils@7.29.7': {} - '@babel/helper-remap-async-to-generator@7.25.9(@babel/core@7.26.7)': + '@babel/helper-remap-async-to-generator@7.29.7(@babel/core@7.26.7)': dependencies: '@babel/core': 7.26.7 - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-wrap-function': 7.25.9 - '@babel/traverse': 7.29.7 - transitivePeerDependencies: - - supports-color - - '@babel/helper-remap-async-to-generator@7.25.9(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-wrap-function': 7.25.9 + '@babel/helper-annotate-as-pure': 7.29.7 + '@babel/helper-wrap-function': 7.29.7 '@babel/traverse': 7.29.7 transitivePeerDependencies: - supports-color @@ -17661,12 +18637,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-replace-supers@7.26.5(@babel/core@7.29.7)': + '@babel/helper-replace-supers@7.29.7(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-member-expression-to-functions': 7.25.9 - '@babel/helper-optimise-call-expression': 7.25.9 - '@babel/traverse': 7.26.7 + '@babel/core': 7.26.7 + '@babel/helper-member-expression-to-functions': 7.29.7 + '@babel/helper-optimise-call-expression': 7.29.7 + '@babel/traverse': 7.29.7 transitivePeerDependencies: - supports-color @@ -17705,14 +18681,6 @@ snapshots: '@babel/helper-validator-option@7.29.7': {} - '@babel/helper-wrap-function@7.25.9': - dependencies: - '@babel/template': 7.29.7 - '@babel/traverse': 7.29.7 - '@babel/types': 7.29.7 - transitivePeerDependencies: - - supports-color - '@babel/helper-wrap-function@7.29.7': dependencies: '@babel/template': 7.29.7 @@ -17742,16 +18710,8 @@ snapshots: '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.9(@babel/core@7.26.7)': dependencies: '@babel/core': 7.26.7 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/traverse': 7.26.7 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.9(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/traverse': 7.26.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/traverse': 7.29.7 transitivePeerDependencies: - supports-color @@ -17766,12 +18726,7 @@ snapshots: '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.9(@babel/core@7.26.7)': dependencies: '@babel/core': 7.26.7 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.9(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.29.7(@babel/core@7.29.7)': dependencies: @@ -17781,12 +18736,7 @@ snapshots: '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.9(@babel/core@7.26.7)': dependencies: '@babel/core': 7.26.7 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.9(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.29.7(@babel/core@7.29.7)': dependencies: @@ -17804,18 +18754,9 @@ snapshots: '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.25.9(@babel/core@7.26.7)': dependencies: '@babel/core': 7.26.7 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 - '@babel/plugin-transform-optional-chaining': 7.25.9(@babel/core@7.26.7) - transitivePeerDependencies: - - supports-color - - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.25.9(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 - '@babel/plugin-transform-optional-chaining': 7.25.9(@babel/core@7.29.7) + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-skip-transparent-expression-wrappers': 7.29.7 + '@babel/plugin-transform-optional-chaining': 7.29.7(@babel/core@7.26.7) transitivePeerDependencies: - supports-color @@ -17831,16 +18772,8 @@ snapshots: '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.9(@babel/core@7.26.7)': dependencies: '@babel/core': 7.26.7 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/traverse': 7.26.7 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.9(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/traverse': 7.26.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/traverse': 7.29.7 transitivePeerDependencies: - supports-color @@ -17969,12 +18902,7 @@ snapshots: '@babel/plugin-syntax-import-assertions@7.26.0(@babel/core@7.26.7)': dependencies: '@babel/core': 7.26.7 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-syntax-import-assertions@7.26.0(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-import-assertions@7.29.7(@babel/core@7.29.7)': dependencies: @@ -17984,12 +18912,12 @@ snapshots: '@babel/plugin-syntax-import-attributes@7.26.0(@babel/core@7.26.7)': dependencies: '@babel/core': 7.26.7 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-import-attributes@7.26.0(@babel/core@7.29.7)': dependencies: '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-import-attributes@7.29.7(@babel/core@7.29.7)': dependencies: @@ -18021,6 +18949,11 @@ snapshots: '@babel/core': 7.26.7 '@babel/helper-plugin-utils': 7.26.5 + '@babel/plugin-syntax-jsx@7.25.9(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.7)': dependencies: '@babel/core': 7.29.7 @@ -18111,11 +19044,6 @@ snapshots: '@babel/core': 7.26.7 '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-typescript@7.25.9(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.29.7)': dependencies: '@babel/core': 7.29.7 @@ -18124,24 +19052,19 @@ snapshots: '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.26.7)': dependencies: '@babel/core': 7.26.7 - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.7) - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.26.7) + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.29.7)': dependencies: '@babel/core': 7.29.7 - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.29.7) - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.29.7) + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-transform-arrow-functions@7.25.9(@babel/core@7.26.7)': dependencies: '@babel/core': 7.26.7 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-transform-arrow-functions@7.25.9(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-transform-arrow-functions@7.29.7(@babel/core@7.29.7)': dependencies: @@ -18151,18 +19074,9 @@ snapshots: '@babel/plugin-transform-async-generator-functions@7.25.9(@babel/core@7.26.7)': dependencies: '@babel/core': 7.26.7 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/helper-remap-async-to-generator': 7.25.9(@babel/core@7.26.7) - '@babel/traverse': 7.26.7 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-async-generator-functions@7.25.9(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/helper-remap-async-to-generator': 7.25.9(@babel/core@7.29.7) - '@babel/traverse': 7.26.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-remap-async-to-generator': 7.29.7(@babel/core@7.26.7) + '@babel/traverse': 7.29.7 transitivePeerDependencies: - supports-color @@ -18178,18 +19092,9 @@ snapshots: '@babel/plugin-transform-async-to-generator@7.25.9(@babel/core@7.26.7)': dependencies: '@babel/core': 7.26.7 - '@babel/helper-module-imports': 7.25.9 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/helper-remap-async-to-generator': 7.25.9(@babel/core@7.26.7) - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-async-to-generator@7.25.9(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-module-imports': 7.25.9 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/helper-remap-async-to-generator': 7.25.9(@babel/core@7.29.7) + '@babel/helper-module-imports': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-remap-async-to-generator': 7.29.7(@babel/core@7.26.7) transitivePeerDependencies: - supports-color @@ -18205,12 +19110,7 @@ snapshots: '@babel/plugin-transform-block-scoped-functions@7.26.5(@babel/core@7.26.7)': dependencies: '@babel/core': 7.26.7 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-transform-block-scoped-functions@7.26.5(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-transform-block-scoped-functions@7.29.7(@babel/core@7.29.7)': dependencies: @@ -18220,12 +19120,7 @@ snapshots: '@babel/plugin-transform-block-scoping@7.25.9(@babel/core@7.26.7)': dependencies: '@babel/core': 7.26.7 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-transform-block-scoping@7.25.9(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-transform-block-scoping@7.29.7(@babel/core@7.29.7)': dependencies: @@ -18235,16 +19130,8 @@ snapshots: '@babel/plugin-transform-class-properties@7.25.9(@babel/core@7.26.7)': dependencies: '@babel/core': 7.26.7 - '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.7) - '@babel/helper-plugin-utils': 7.26.5 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-class-properties@7.25.9(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.29.7) - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-create-class-features-plugin': 7.29.7(@babel/core@7.26.7) + '@babel/helper-plugin-utils': 7.29.7 transitivePeerDependencies: - supports-color @@ -18259,16 +19146,8 @@ snapshots: '@babel/plugin-transform-class-static-block@7.26.0(@babel/core@7.26.7)': dependencies: '@babel/core': 7.26.7 - '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.7) - '@babel/helper-plugin-utils': 7.26.5 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-class-static-block@7.26.0(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.29.7) - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-create-class-features-plugin': 7.29.7(@babel/core@7.26.7) + '@babel/helper-plugin-utils': 7.29.7 transitivePeerDependencies: - supports-color @@ -18283,23 +19162,11 @@ snapshots: '@babel/plugin-transform-classes@7.25.9(@babel/core@7.26.7)': dependencies: '@babel/core': 7.26.7 - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-compilation-targets': 7.26.5 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/helper-replace-supers': 7.26.5(@babel/core@7.26.7) - '@babel/traverse': 7.26.7 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-classes@7.25.9(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-compilation-targets': 7.26.5 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/helper-replace-supers': 7.26.5(@babel/core@7.29.7) - '@babel/traverse': 7.26.7 + '@babel/helper-annotate-as-pure': 7.29.7 + '@babel/helper-compilation-targets': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-replace-supers': 7.29.7(@babel/core@7.26.7) + '@babel/traverse': 7.29.7 globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -18319,14 +19186,8 @@ snapshots: '@babel/plugin-transform-computed-properties@7.25.9(@babel/core@7.26.7)': dependencies: '@babel/core': 7.26.7 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/template': 7.25.9 - - '@babel/plugin-transform-computed-properties@7.25.9(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/template': 7.25.9 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/template': 7.29.7 '@babel/plugin-transform-computed-properties@7.29.7(@babel/core@7.29.7)': dependencies: @@ -18337,12 +19198,7 @@ snapshots: '@babel/plugin-transform-destructuring@7.25.9(@babel/core@7.26.7)': dependencies: '@babel/core': 7.26.7 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-transform-destructuring@7.25.9(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-transform-destructuring@7.29.7(@babel/core@7.29.7)': dependencies: @@ -18355,14 +19211,8 @@ snapshots: '@babel/plugin-transform-dotall-regex@7.25.9(@babel/core@7.26.7)': dependencies: '@babel/core': 7.26.7 - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.7) - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-transform-dotall-regex@7.25.9(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.29.7) - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.26.7) + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-transform-dotall-regex@7.29.7(@babel/core@7.29.7)': dependencies: @@ -18373,12 +19223,7 @@ snapshots: '@babel/plugin-transform-duplicate-keys@7.25.9(@babel/core@7.26.7)': dependencies: '@babel/core': 7.26.7 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-transform-duplicate-keys@7.25.9(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-transform-duplicate-keys@7.29.7(@babel/core@7.29.7)': dependencies: @@ -18388,14 +19233,8 @@ snapshots: '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.9(@babel/core@7.26.7)': dependencies: '@babel/core': 7.26.7 - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.7) - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.9(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.29.7) - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.26.7) + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.29.7(@babel/core@7.29.7)': dependencies: @@ -18406,12 +19245,7 @@ snapshots: '@babel/plugin-transform-dynamic-import@7.25.9(@babel/core@7.26.7)': dependencies: '@babel/core': 7.26.7 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-transform-dynamic-import@7.25.9(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-transform-dynamic-import@7.29.7(@babel/core@7.29.7)': dependencies: @@ -18429,12 +19263,7 @@ snapshots: '@babel/plugin-transform-exponentiation-operator@7.26.3(@babel/core@7.26.7)': dependencies: '@babel/core': 7.26.7 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-transform-exponentiation-operator@7.26.3(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-transform-exponentiation-operator@7.29.7(@babel/core@7.29.7)': dependencies: @@ -18444,12 +19273,7 @@ snapshots: '@babel/plugin-transform-export-namespace-from@7.25.9(@babel/core@7.26.7)': dependencies: '@babel/core': 7.26.7 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-transform-export-namespace-from@7.25.9(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-transform-export-namespace-from@7.29.7(@babel/core@7.29.7)': dependencies: @@ -18465,16 +19289,8 @@ snapshots: '@babel/plugin-transform-for-of@7.25.9(@babel/core@7.26.7)': dependencies: '@babel/core': 7.26.7 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-for-of@7.25.9(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-skip-transparent-expression-wrappers': 7.29.7 transitivePeerDependencies: - supports-color @@ -18489,18 +19305,9 @@ snapshots: '@babel/plugin-transform-function-name@7.25.9(@babel/core@7.26.7)': dependencies: '@babel/core': 7.26.7 - '@babel/helper-compilation-targets': 7.26.5 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/traverse': 7.26.7 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-function-name@7.25.9(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-compilation-targets': 7.26.5 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/traverse': 7.26.7 + '@babel/helper-compilation-targets': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/traverse': 7.29.7 transitivePeerDependencies: - supports-color @@ -18516,12 +19323,7 @@ snapshots: '@babel/plugin-transform-json-strings@7.25.9(@babel/core@7.26.7)': dependencies: '@babel/core': 7.26.7 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-transform-json-strings@7.25.9(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-transform-json-strings@7.29.7(@babel/core@7.29.7)': dependencies: @@ -18531,12 +19333,7 @@ snapshots: '@babel/plugin-transform-literals@7.25.9(@babel/core@7.26.7)': dependencies: '@babel/core': 7.26.7 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-transform-literals@7.25.9(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-transform-literals@7.29.7(@babel/core@7.29.7)': dependencies: @@ -18546,12 +19343,7 @@ snapshots: '@babel/plugin-transform-logical-assignment-operators@7.25.9(@babel/core@7.26.7)': dependencies: '@babel/core': 7.26.7 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-transform-logical-assignment-operators@7.25.9(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-transform-logical-assignment-operators@7.29.7(@babel/core@7.29.7)': dependencies: @@ -18561,12 +19353,7 @@ snapshots: '@babel/plugin-transform-member-expression-literals@7.25.9(@babel/core@7.26.7)': dependencies: '@babel/core': 7.26.7 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-transform-member-expression-literals@7.25.9(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-transform-member-expression-literals@7.29.7(@babel/core@7.29.7)': dependencies: @@ -18576,16 +19363,8 @@ snapshots: '@babel/plugin-transform-modules-amd@7.25.9(@babel/core@7.26.7)': dependencies: '@babel/core': 7.26.7 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.7) - '@babel/helper-plugin-utils': 7.26.5 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-modules-amd@7.25.9(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.29.7) - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-module-transforms': 7.29.7(@babel/core@7.26.7) + '@babel/helper-plugin-utils': 7.29.7 transitivePeerDependencies: - supports-color @@ -18605,14 +19384,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-commonjs@7.26.3(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.29.7) - '@babel/helper-plugin-utils': 7.26.5 - transitivePeerDependencies: - - supports-color - '@babel/plugin-transform-modules-commonjs@7.29.7(@babel/core@7.29.7)': dependencies: '@babel/core': 7.29.7 @@ -18624,20 +19395,10 @@ snapshots: '@babel/plugin-transform-modules-systemjs@7.25.9(@babel/core@7.26.7)': dependencies: '@babel/core': 7.26.7 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.7) - '@babel/helper-plugin-utils': 7.26.5 - '@babel/helper-validator-identifier': 7.25.9 - '@babel/traverse': 7.26.7 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-modules-systemjs@7.25.9(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.29.7) - '@babel/helper-plugin-utils': 7.26.5 - '@babel/helper-validator-identifier': 7.25.9 - '@babel/traverse': 7.26.7 + '@babel/helper-module-transforms': 7.29.7(@babel/core@7.26.7) + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-validator-identifier': 7.29.7 + '@babel/traverse': 7.29.7 transitivePeerDependencies: - supports-color @@ -18654,16 +19415,8 @@ snapshots: '@babel/plugin-transform-modules-umd@7.25.9(@babel/core@7.26.7)': dependencies: '@babel/core': 7.26.7 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.7) - '@babel/helper-plugin-utils': 7.26.5 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-modules-umd@7.25.9(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.29.7) - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-module-transforms': 7.29.7(@babel/core@7.26.7) + '@babel/helper-plugin-utils': 7.29.7 transitivePeerDependencies: - supports-color @@ -18678,14 +19431,8 @@ snapshots: '@babel/plugin-transform-named-capturing-groups-regex@7.25.9(@babel/core@7.26.7)': dependencies: '@babel/core': 7.26.7 - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.7) - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-transform-named-capturing-groups-regex@7.25.9(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.29.7) - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.26.7) + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-transform-named-capturing-groups-regex@7.29.7(@babel/core@7.29.7)': dependencies: @@ -18696,12 +19443,7 @@ snapshots: '@babel/plugin-transform-new-target@7.25.9(@babel/core@7.26.7)': dependencies: '@babel/core': 7.26.7 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-transform-new-target@7.25.9(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-transform-new-target@7.29.7(@babel/core@7.29.7)': dependencies: @@ -18711,12 +19453,7 @@ snapshots: '@babel/plugin-transform-nullish-coalescing-operator@7.26.6(@babel/core@7.26.7)': dependencies: '@babel/core': 7.26.7 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-transform-nullish-coalescing-operator@7.26.6(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-transform-nullish-coalescing-operator@7.29.7(@babel/core@7.29.7)': dependencies: @@ -18726,12 +19463,7 @@ snapshots: '@babel/plugin-transform-numeric-separator@7.25.9(@babel/core@7.26.7)': dependencies: '@babel/core': 7.26.7 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-transform-numeric-separator@7.25.9(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-transform-numeric-separator@7.29.7(@babel/core@7.29.7)': dependencies: @@ -18741,16 +19473,9 @@ snapshots: '@babel/plugin-transform-object-rest-spread@7.25.9(@babel/core@7.26.7)': dependencies: '@babel/core': 7.26.7 - '@babel/helper-compilation-targets': 7.26.5 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.26.7) - - '@babel/plugin-transform-object-rest-spread@7.25.9(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-compilation-targets': 7.26.5 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.29.7) + '@babel/helper-compilation-targets': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/plugin-transform-parameters': 7.29.7(@babel/core@7.26.7) '@babel/plugin-transform-object-rest-spread@7.29.7(@babel/core@7.29.7)': dependencies: @@ -18766,16 +19491,8 @@ snapshots: '@babel/plugin-transform-object-super@7.25.9(@babel/core@7.26.7)': dependencies: '@babel/core': 7.26.7 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/helper-replace-supers': 7.26.5(@babel/core@7.26.7) - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-object-super@7.25.9(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/helper-replace-supers': 7.26.5(@babel/core@7.29.7) + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-replace-supers': 7.29.7(@babel/core@7.26.7) transitivePeerDependencies: - supports-color @@ -18790,12 +19507,7 @@ snapshots: '@babel/plugin-transform-optional-catch-binding@7.25.9(@babel/core@7.26.7)': dependencies: '@babel/core': 7.26.7 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-transform-optional-catch-binding@7.25.9(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-transform-optional-catch-binding@7.29.7(@babel/core@7.29.7)': dependencies: @@ -18805,16 +19517,16 @@ snapshots: '@babel/plugin-transform-optional-chaining@7.25.9(@babel/core@7.26.7)': dependencies: '@babel/core': 7.26.7 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-skip-transparent-expression-wrappers': 7.29.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-optional-chaining@7.25.9(@babel/core@7.29.7)': + '@babel/plugin-transform-optional-chaining@7.29.7(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 + '@babel/core': 7.26.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-skip-transparent-expression-wrappers': 7.29.7 transitivePeerDependencies: - supports-color @@ -18829,12 +19541,12 @@ snapshots: '@babel/plugin-transform-parameters@7.25.9(@babel/core@7.26.7)': dependencies: '@babel/core': 7.26.7 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-parameters@7.25.9(@babel/core@7.29.7)': + '@babel/plugin-transform-parameters@7.29.7(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.26.7 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-transform-parameters@7.29.7(@babel/core@7.29.7)': dependencies: @@ -18844,16 +19556,8 @@ snapshots: '@babel/plugin-transform-private-methods@7.25.9(@babel/core@7.26.7)': dependencies: '@babel/core': 7.26.7 - '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.7) - '@babel/helper-plugin-utils': 7.26.5 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-private-methods@7.25.9(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.29.7) - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-create-class-features-plugin': 7.29.7(@babel/core@7.26.7) + '@babel/helper-plugin-utils': 7.29.7 transitivePeerDependencies: - supports-color @@ -18868,18 +19572,9 @@ snapshots: '@babel/plugin-transform-private-property-in-object@7.25.9(@babel/core@7.26.7)': dependencies: '@babel/core': 7.26.7 - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.7) - '@babel/helper-plugin-utils': 7.26.5 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-private-property-in-object@7.25.9(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.29.7) - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-annotate-as-pure': 7.29.7 + '@babel/helper-create-class-features-plugin': 7.29.7(@babel/core@7.26.7) + '@babel/helper-plugin-utils': 7.29.7 transitivePeerDependencies: - supports-color @@ -18895,26 +19590,26 @@ snapshots: '@babel/plugin-transform-property-literals@7.25.9(@babel/core@7.26.7)': dependencies: '@babel/core': 7.26.7 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-property-literals@7.25.9(@babel/core@7.29.7)': + '@babel/plugin-transform-property-literals@7.29.7(@babel/core@7.29.7)': dependencies: '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-property-literals@7.29.7(@babel/core@7.29.7)': + '@babel/plugin-transform-react-constant-elements@7.25.9(@babel/core@7.29.7)': dependencies: '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-react-constant-elements@7.25.9(@babel/core@7.26.7)': + '@babel/plugin-transform-react-display-name@7.25.9(@babel/core@7.26.7)': dependencies: '@babel/core': 7.26.7 '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-transform-react-display-name@7.25.9(@babel/core@7.26.7)': + '@babel/plugin-transform-react-display-name@7.25.9(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.26.7 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.26.5 '@babel/plugin-transform-react-jsx-development@7.25.9(@babel/core@7.26.7)': @@ -18924,6 +19619,13 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-react-jsx-development@7.25.9(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/plugin-transform-react-jsx': 7.25.9(@babel/core@7.29.7) + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-react-jsx@7.25.9(@babel/core@7.26.7)': dependencies: '@babel/core': 7.26.7 @@ -18935,22 +19637,33 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-transform-react-pure-annotations@7.25.9(@babel/core@7.26.7)': + '@babel/plugin-transform-react-jsx@7.25.9(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.26.7 + '@babel/core': 7.29.7 '@babel/helper-annotate-as-pure': 7.25.9 + '@babel/helper-module-imports': 7.25.9 '@babel/helper-plugin-utils': 7.26.5 + '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.29.7) + '@babel/types': 7.26.7 + transitivePeerDependencies: + - supports-color - '@babel/plugin-transform-regenerator@7.25.9(@babel/core@7.26.7)': + '@babel/plugin-transform-react-pure-annotations@7.25.9(@babel/core@7.26.7)': dependencies: '@babel/core': 7.26.7 + '@babel/helper-annotate-as-pure': 7.25.9 '@babel/helper-plugin-utils': 7.26.5 - regenerator-transform: 0.15.2 - '@babel/plugin-transform-regenerator@7.25.9(@babel/core@7.29.7)': + '@babel/plugin-transform-react-pure-annotations@7.25.9(@babel/core@7.29.7)': dependencies: '@babel/core': 7.29.7 + '@babel/helper-annotate-as-pure': 7.25.9 '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-transform-regenerator@7.25.9(@babel/core@7.26.7)': + dependencies: + '@babel/core': 7.26.7 + '@babel/helper-plugin-utils': 7.29.7 regenerator-transform: 0.15.2 '@babel/plugin-transform-regenerator@7.29.7(@babel/core@7.29.7)': @@ -18961,14 +19674,8 @@ snapshots: '@babel/plugin-transform-regexp-modifiers@7.26.0(@babel/core@7.26.7)': dependencies: '@babel/core': 7.26.7 - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.7) - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-transform-regexp-modifiers@7.26.0(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.29.7) - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.26.7) + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-transform-regexp-modifiers@7.29.7(@babel/core@7.29.7)': dependencies: @@ -18979,12 +19686,7 @@ snapshots: '@babel/plugin-transform-reserved-words@7.25.9(@babel/core@7.26.7)': dependencies: '@babel/core': 7.26.7 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-transform-reserved-words@7.25.9(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-transform-reserved-words@7.29.7(@babel/core@7.29.7)': dependencies: @@ -19006,12 +19708,7 @@ snapshots: '@babel/plugin-transform-shorthand-properties@7.25.9(@babel/core@7.26.7)': dependencies: '@babel/core': 7.26.7 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-transform-shorthand-properties@7.25.9(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-transform-shorthand-properties@7.29.7(@babel/core@7.29.7)': dependencies: @@ -19021,16 +19718,8 @@ snapshots: '@babel/plugin-transform-spread@7.25.9(@babel/core@7.26.7)': dependencies: '@babel/core': 7.26.7 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-spread@7.25.9(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-skip-transparent-expression-wrappers': 7.29.7 transitivePeerDependencies: - supports-color @@ -19045,12 +19734,7 @@ snapshots: '@babel/plugin-transform-sticky-regex@7.25.9(@babel/core@7.26.7)': dependencies: '@babel/core': 7.26.7 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-transform-sticky-regex@7.25.9(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-transform-sticky-regex@7.29.7(@babel/core@7.29.7)': dependencies: @@ -19060,12 +19744,7 @@ snapshots: '@babel/plugin-transform-template-literals@7.25.9(@babel/core@7.26.7)': dependencies: '@babel/core': 7.26.7 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-transform-template-literals@7.25.9(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-transform-template-literals@7.29.7(@babel/core@7.29.7)': dependencies: @@ -19075,12 +19754,7 @@ snapshots: '@babel/plugin-transform-typeof-symbol@7.26.7(@babel/core@7.26.7)': dependencies: '@babel/core': 7.26.7 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-transform-typeof-symbol@7.26.7(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-transform-typeof-symbol@7.29.7(@babel/core@7.29.7)': dependencies: @@ -19112,12 +19786,7 @@ snapshots: '@babel/plugin-transform-unicode-escapes@7.25.9(@babel/core@7.26.7)': dependencies: '@babel/core': 7.26.7 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-transform-unicode-escapes@7.25.9(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-transform-unicode-escapes@7.29.7(@babel/core@7.29.7)': dependencies: @@ -19127,14 +19796,8 @@ snapshots: '@babel/plugin-transform-unicode-property-regex@7.25.9(@babel/core@7.26.7)': dependencies: '@babel/core': 7.26.7 - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.7) - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-transform-unicode-property-regex@7.25.9(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.29.7) - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.26.7) + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-transform-unicode-property-regex@7.29.7(@babel/core@7.29.7)': dependencies: @@ -19145,14 +19808,8 @@ snapshots: '@babel/plugin-transform-unicode-regex@7.25.9(@babel/core@7.26.7)': dependencies: '@babel/core': 7.26.7 - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.7) - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-transform-unicode-regex@7.25.9(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.29.7) - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.26.7) + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-transform-unicode-regex@7.29.7(@babel/core@7.29.7)': dependencies: @@ -19163,14 +19820,8 @@ snapshots: '@babel/plugin-transform-unicode-sets-regex@7.25.9(@babel/core@7.26.7)': dependencies: '@babel/core': 7.26.7 - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.7) - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-transform-unicode-sets-regex@7.25.9(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.29.7) - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.26.7) + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-transform-unicode-sets-regex@7.29.7(@babel/core@7.29.7)': dependencies: @@ -19253,81 +19904,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/preset-env@7.26.7(@babel/core@7.29.7)': - dependencies: - '@babel/compat-data': 7.26.5 - '@babel/core': 7.29.7 - '@babel/helper-compilation-targets': 7.26.5 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/helper-validator-option': 7.25.9 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.25.9(@babel/core@7.29.7) - '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.25.9(@babel/core@7.29.7) - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.25.9(@babel/core@7.29.7) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.25.9(@babel/core@7.29.7) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.25.9(@babel/core@7.29.7) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.29.7) - '@babel/plugin-syntax-import-assertions': 7.26.0(@babel/core@7.29.7) - '@babel/plugin-syntax-import-attributes': 7.26.0(@babel/core@7.29.7) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.29.7) - '@babel/plugin-transform-arrow-functions': 7.25.9(@babel/core@7.29.7) - '@babel/plugin-transform-async-generator-functions': 7.25.9(@babel/core@7.29.7) - '@babel/plugin-transform-async-to-generator': 7.25.9(@babel/core@7.29.7) - '@babel/plugin-transform-block-scoped-functions': 7.26.5(@babel/core@7.29.7) - '@babel/plugin-transform-block-scoping': 7.25.9(@babel/core@7.29.7) - '@babel/plugin-transform-class-properties': 7.25.9(@babel/core@7.29.7) - '@babel/plugin-transform-class-static-block': 7.26.0(@babel/core@7.29.7) - '@babel/plugin-transform-classes': 7.25.9(@babel/core@7.29.7) - '@babel/plugin-transform-computed-properties': 7.25.9(@babel/core@7.29.7) - '@babel/plugin-transform-destructuring': 7.25.9(@babel/core@7.29.7) - '@babel/plugin-transform-dotall-regex': 7.25.9(@babel/core@7.29.7) - '@babel/plugin-transform-duplicate-keys': 7.25.9(@babel/core@7.29.7) - '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.25.9(@babel/core@7.29.7) - '@babel/plugin-transform-dynamic-import': 7.25.9(@babel/core@7.29.7) - '@babel/plugin-transform-exponentiation-operator': 7.26.3(@babel/core@7.29.7) - '@babel/plugin-transform-export-namespace-from': 7.25.9(@babel/core@7.29.7) - '@babel/plugin-transform-for-of': 7.25.9(@babel/core@7.29.7) - '@babel/plugin-transform-function-name': 7.25.9(@babel/core@7.29.7) - '@babel/plugin-transform-json-strings': 7.25.9(@babel/core@7.29.7) - '@babel/plugin-transform-literals': 7.25.9(@babel/core@7.29.7) - '@babel/plugin-transform-logical-assignment-operators': 7.25.9(@babel/core@7.29.7) - '@babel/plugin-transform-member-expression-literals': 7.25.9(@babel/core@7.29.7) - '@babel/plugin-transform-modules-amd': 7.25.9(@babel/core@7.29.7) - '@babel/plugin-transform-modules-commonjs': 7.26.3(@babel/core@7.29.7) - '@babel/plugin-transform-modules-systemjs': 7.25.9(@babel/core@7.29.7) - '@babel/plugin-transform-modules-umd': 7.25.9(@babel/core@7.29.7) - '@babel/plugin-transform-named-capturing-groups-regex': 7.25.9(@babel/core@7.29.7) - '@babel/plugin-transform-new-target': 7.25.9(@babel/core@7.29.7) - '@babel/plugin-transform-nullish-coalescing-operator': 7.26.6(@babel/core@7.29.7) - '@babel/plugin-transform-numeric-separator': 7.25.9(@babel/core@7.29.7) - '@babel/plugin-transform-object-rest-spread': 7.25.9(@babel/core@7.29.7) - '@babel/plugin-transform-object-super': 7.25.9(@babel/core@7.29.7) - '@babel/plugin-transform-optional-catch-binding': 7.25.9(@babel/core@7.29.7) - '@babel/plugin-transform-optional-chaining': 7.25.9(@babel/core@7.29.7) - '@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.29.7) - '@babel/plugin-transform-private-methods': 7.25.9(@babel/core@7.29.7) - '@babel/plugin-transform-private-property-in-object': 7.25.9(@babel/core@7.29.7) - '@babel/plugin-transform-property-literals': 7.25.9(@babel/core@7.29.7) - '@babel/plugin-transform-regenerator': 7.25.9(@babel/core@7.29.7) - '@babel/plugin-transform-regexp-modifiers': 7.26.0(@babel/core@7.29.7) - '@babel/plugin-transform-reserved-words': 7.25.9(@babel/core@7.29.7) - '@babel/plugin-transform-shorthand-properties': 7.25.9(@babel/core@7.29.7) - '@babel/plugin-transform-spread': 7.25.9(@babel/core@7.29.7) - '@babel/plugin-transform-sticky-regex': 7.25.9(@babel/core@7.29.7) - '@babel/plugin-transform-template-literals': 7.25.9(@babel/core@7.29.7) - '@babel/plugin-transform-typeof-symbol': 7.26.7(@babel/core@7.29.7) - '@babel/plugin-transform-unicode-escapes': 7.25.9(@babel/core@7.29.7) - '@babel/plugin-transform-unicode-property-regex': 7.25.9(@babel/core@7.29.7) - '@babel/plugin-transform-unicode-regex': 7.25.9(@babel/core@7.29.7) - '@babel/plugin-transform-unicode-sets-regex': 7.25.9(@babel/core@7.29.7) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.29.7) - babel-plugin-polyfill-corejs2: 0.4.12(@babel/core@7.29.7) - babel-plugin-polyfill-corejs3: 0.10.6(@babel/core@7.29.7) - babel-plugin-polyfill-regenerator: 0.6.3(@babel/core@7.29.7) - core-js-compat: 3.40.0 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - '@babel/preset-env@7.29.7(@babel/core@7.29.7)': dependencies: '@babel/compat-data': 7.29.7 @@ -19408,15 +19984,15 @@ snapshots: '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.26.7)': dependencies: '@babel/core': 7.26.7 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/types': 7.26.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/types': 7.29.7 esutils: 2.0.3 '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.29.7)': dependencies: '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/types': 7.26.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/types': 7.29.7 esutils: 2.0.3 '@babel/preset-react@7.26.3(@babel/core@7.26.7)': @@ -19431,6 +20007,18 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/preset-react@7.26.3(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-validator-option': 7.25.9 + '@babel/plugin-transform-react-display-name': 7.25.9(@babel/core@7.29.7) + '@babel/plugin-transform-react-jsx': 7.25.9(@babel/core@7.29.7) + '@babel/plugin-transform-react-jsx-development': 7.25.9(@babel/core@7.29.7) + '@babel/plugin-transform-react-pure-annotations': 7.25.9(@babel/core@7.29.7) + transitivePeerDependencies: + - supports-color + '@babel/preset-typescript@7.26.0(@babel/core@7.26.7)': dependencies: '@babel/core': 7.26.7 @@ -19611,6 +20199,12 @@ snapshots: enabled: 2.0.0 kuler: 2.0.0 + '@dabh/diagnostics@2.0.8': + dependencies: + '@so-ric/colorspace': 1.1.6 + enabled: 2.0.0 + kuler: 2.0.0 + '@edge-runtime/format@2.0.1': {} '@edge-runtime/primitives@2.0.0': {} @@ -19865,7 +20459,7 @@ snapshots: globals: 13.24.0 ignore: 5.3.2 import-fresh: 3.3.0 - js-yaml: 4.1.0 + js-yaml: 4.2.0 minimatch: 3.1.2 strip-json-comments: 3.1.1 transitivePeerDependencies: @@ -19875,6 +20469,157 @@ snapshots: '@gar/promisify@1.1.3': {} + '@google-cloud/opentelemetry-cloud-monitoring-exporter@0.21.0(@opentelemetry/api@1.9.0)(@opentelemetry/core@2.9.0(@opentelemetry/api@1.9.0))(@opentelemetry/resources@2.9.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-metrics@2.9.0(@opentelemetry/api@1.9.0))(encoding@0.1.13)': + dependencies: + '@google-cloud/opentelemetry-resource-util': 3.1.0(@opentelemetry/api@1.9.0)(@opentelemetry/core@2.9.0(@opentelemetry/api@1.9.0))(@opentelemetry/resources@2.9.0(@opentelemetry/api@1.9.0)) + '@google-cloud/precise-date': 4.0.0 + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.9.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.9.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-metrics': 2.9.0(@opentelemetry/api@1.9.0) + google-auth-library: 9.15.1(encoding@0.1.13) + googleapis: 137.1.0(encoding@0.1.13) + transitivePeerDependencies: + - encoding + - supports-color + + '@google-cloud/opentelemetry-cloud-trace-exporter@3.1.0(@opentelemetry/api@1.9.0)(@opentelemetry/core@2.9.0(@opentelemetry/api@1.9.0))(@opentelemetry/resources@2.9.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.9.0(@opentelemetry/api@1.9.0))': + dependencies: + '@google-cloud/opentelemetry-resource-util': 3.1.0(@opentelemetry/api@1.9.0)(@opentelemetry/core@2.9.0(@opentelemetry/api@1.9.0))(@opentelemetry/resources@2.9.0(@opentelemetry/api@1.9.0)) + '@grpc/grpc-js': 1.14.4 + '@grpc/proto-loader': 0.8.1 + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.9.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.9.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 2.9.0(@opentelemetry/api@1.9.0) + google-auth-library: 10.9.1 + transitivePeerDependencies: + - supports-color + + '@google-cloud/opentelemetry-resource-util@3.1.0(@opentelemetry/api@1.9.0)(@opentelemetry/core@2.9.0(@opentelemetry/api@1.9.0))(@opentelemetry/resources@2.9.0(@opentelemetry/api@1.9.0))': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.9.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.9.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.42.0 + gcp-metadata: 9.0.3 + transitivePeerDependencies: + - supports-color + + '@google-cloud/paginator@5.0.2': + dependencies: + arrify: 2.0.1 + extend: 3.0.2 + + '@google-cloud/precise-date@4.0.0': {} + + '@google-cloud/projectify@4.0.0': {} + + '@google-cloud/promisify@4.0.0': {} + + '@google-cloud/storage@7.22.0(encoding@0.1.13)': + dependencies: + '@google-cloud/paginator': 5.0.2 + '@google-cloud/projectify': 4.0.0 + '@google-cloud/promisify': 4.0.0 + abort-controller: 3.0.0 + async-retry: 1.3.3 + duplexify: 4.1.3 + fast-xml-parser: 5.11.1 + gaxios: 6.7.1(encoding@0.1.13) + google-auth-library: 9.15.1(encoding@0.1.13) + html-entities: 2.5.2 + mime: 3.0.0 + p-limit: 3.1.0 + retry-request: 7.0.2(encoding@0.1.13) + teeny-request: 9.0.0(encoding@0.1.13) + transitivePeerDependencies: + - encoding + - supports-color + + '@google-cloud/vertexai@1.12.0(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(encoding@0.1.13)': + dependencies: + '@google/genai': 1.52.0(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3)) + google-auth-library: 9.15.1(encoding@0.1.13) + transitivePeerDependencies: + - '@modelcontextprotocol/sdk' + - bufferutil + - encoding + - supports-color + - utf-8-validate + + '@google/adk@1.5.0(@grpc/grpc-js@1.14.4)(@mikro-orm/mariadb@6.6.16(@mikro-orm/core@6.6.16)(pg@8.20.0))(@mikro-orm/mssql@6.6.16(@mikro-orm/core@6.6.16)(mariadb@3.4.5)(pg@8.20.0))(@mikro-orm/mysql@6.6.16(@mikro-orm/core@6.6.16)(@types/node@22.12.0)(mariadb@3.4.5)(pg@8.20.0))(@mikro-orm/postgresql@6.6.16(@mikro-orm/core@6.6.16)(mariadb@3.4.5))(@mikro-orm/sqlite@6.6.16(@mikro-orm/core@6.6.16)(mariadb@3.4.5)(pg@8.20.0))(@opentelemetry/core@2.9.0(@opentelemetry/api@1.9.0))(encoding@0.1.13)': + dependencies: + '@a2a-js/sdk': 0.3.14(@grpc/grpc-js@1.14.4)(express@4.22.2) + '@google-cloud/opentelemetry-cloud-monitoring-exporter': 0.21.0(@opentelemetry/api@1.9.0)(@opentelemetry/core@2.9.0(@opentelemetry/api@1.9.0))(@opentelemetry/resources@2.9.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-metrics@2.9.0(@opentelemetry/api@1.9.0))(encoding@0.1.13) + '@google-cloud/opentelemetry-cloud-trace-exporter': 3.1.0(@opentelemetry/api@1.9.0)(@opentelemetry/core@2.9.0(@opentelemetry/api@1.9.0))(@opentelemetry/resources@2.9.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.9.0(@opentelemetry/api@1.9.0)) + '@google-cloud/storage': 7.22.0(encoding@0.1.13) + '@google-cloud/vertexai': 1.12.0(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(encoding@0.1.13) + '@google/genai': 2.19.0(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3)) + '@mikro-orm/core': 6.6.16 + '@mikro-orm/mariadb': 6.6.16(@mikro-orm/core@6.6.16)(pg@8.20.0) + '@mikro-orm/mssql': 6.6.16(@mikro-orm/core@6.6.16)(mariadb@3.4.5)(pg@8.20.0) + '@mikro-orm/mysql': 6.6.16(@mikro-orm/core@6.6.16)(@types/node@22.12.0)(mariadb@3.4.5)(pg@8.20.0) + '@mikro-orm/postgresql': 6.6.16(@mikro-orm/core@6.6.16)(mariadb@3.4.5) + '@mikro-orm/reflection': 6.6.16(@mikro-orm/core@6.6.16) + '@mikro-orm/sqlite': 6.6.16(@mikro-orm/core@6.6.16)(mariadb@3.4.5)(pg@8.20.0) + '@modelcontextprotocol/sdk': 1.29.0(zod@4.4.3) + '@opentelemetry/api': 1.9.0 + '@opentelemetry/api-logs': 0.205.0 + '@opentelemetry/exporter-logs-otlp-http': 0.205.0(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-metrics-otlp-http': 0.205.0(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-trace-otlp-http': 0.205.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resource-detector-gcp': 0.40.3(@opentelemetry/api@1.9.0)(encoding@0.1.13) + '@opentelemetry/resources': 2.9.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-logs': 0.205.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-metrics': 2.9.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 2.9.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-node': 2.9.0(@opentelemetry/api@1.9.0) + adm-zip: 0.5.18 + express: 4.22.2 + google-auth-library: 10.9.1 + js-yaml: 4.2.0 + jsonpath-plus: 10.4.0 + lodash-es: 4.18.1 + winston: 3.19.0 + zod: 4.4.3 + zod-to-json-schema: 3.25.2(zod@4.4.3) + transitivePeerDependencies: + - '@bufbuild/protobuf' + - '@cfworker/json-schema' + - '@grpc/grpc-js' + - '@opentelemetry/core' + - bufferutil + - encoding + - supports-color + - utf-8-validate + + '@google/genai@1.52.0(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))': + dependencies: + google-auth-library: 10.9.1 + p-retry: 4.6.2 + protobufjs: 7.6.5 + ws: 8.18.0 + optionalDependencies: + '@modelcontextprotocol/sdk': 1.29.0(zod@4.4.3) + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + '@google/genai@2.19.0(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))': + dependencies: + google-auth-library: 10.9.1 + p-retry: 4.6.2 + protobufjs: 7.6.5 + ws: 8.18.0 + optionalDependencies: + '@modelcontextprotocol/sdk': 1.29.0(zod@4.4.3) + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + '@grpc/grpc-js@1.12.5': dependencies: '@grpc/proto-loader': 0.7.13 @@ -20155,7 +20900,7 @@ snapshots: jest-util: 29.7.0 slash: 3.0.0 - '@jest/core@27.5.1(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3))': + '@jest/core@27.5.1(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@24.13.3)(typescript@5.7.3))': dependencies: '@jest/console': 27.5.1 '@jest/reporters': 27.5.1 @@ -20169,7 +20914,7 @@ snapshots: exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 27.5.1 - jest-config: 27.5.1(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3)) + jest-config: 27.5.1(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@24.13.3)(typescript@5.7.3)) jest-haste-map: 27.5.1 jest-message-util: 27.5.1 jest-regex-util: 27.5.1 @@ -20392,7 +21137,7 @@ snapshots: '@jest/test-result': 28.1.3 '@jest/transform': 28.1.3 '@jest/types': 28.1.3 - '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/trace-mapping': 0.3.31 '@types/node': 22.12.0 chalk: 4.1.2 collect-v8-coverage: 1.0.2 @@ -20422,7 +21167,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/trace-mapping': 0.3.31 '@types/node': 22.12.0 chalk: 4.1.2 collect-v8-coverage: 1.0.2 @@ -20460,13 +21205,13 @@ snapshots: '@jest/source-map@28.1.2': dependencies: - '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/trace-mapping': 0.3.31 callsites: 3.1.0 graceful-fs: 4.2.11 '@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 @@ -20536,9 +21281,9 @@ snapshots: '@jest/transform@28.1.3': dependencies: - '@babel/core': 7.26.7 + '@babel/core': 7.29.7 '@jest/types': 28.1.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: 1.9.0 @@ -20556,9 +21301,9 @@ snapshots: '@jest/transform@29.7.0': dependencies: - '@babel/core': 7.26.7 + '@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 @@ -20616,8 +21361,8 @@ snapshots: '@jridgewell/gen-mapping@0.3.8': 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: @@ -20631,16 +21376,14 @@ snapshots: '@jridgewell/source-map@0.3.6': dependencies: '@jridgewell/gen-mapping': 0.3.8 - '@jridgewell/trace-mapping': 0.3.25 - - '@jridgewell/sourcemap-codec@1.5.0': {} + '@jridgewell/trace-mapping': 0.3.31 '@jridgewell/sourcemap-codec@1.5.5': {} '@jridgewell/trace-mapping@0.3.25': dependencies: '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/sourcemap-codec': 1.5.5 '@jridgewell/trace-mapping@0.3.31': dependencies: @@ -20650,7 +21393,9 @@ snapshots: '@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 + + '@js-joda/core@5.7.0': {} '@js-sdsl/ordered-map@4.4.2': {} @@ -20658,6 +21403,14 @@ snapshots: dependencies: lodash: 4.17.21 + '@jsep-plugin/assignment@1.3.0(jsep@1.4.0)': + dependencies: + jsep: 1.4.0 + + '@jsep-plugin/regex@1.0.4(jsep@1.4.0)': + dependencies: + jsep: 1.4.0 + '@jsonjoy.com/base64@1.1.2(tslib@2.8.1)': dependencies: tslib: 2.8.1 @@ -20684,12 +21437,12 @@ snapshots: '@lukeed/csprng@1.1.0': {} - '@mapbox/node-pre-gyp@1.0.11': + '@mapbox/node-pre-gyp@1.0.11(encoding@0.1.13)': dependencies: detect-libc: 2.0.3 https-proxy-agent: 5.0.1 make-dir: 3.1.0 - node-fetch: 2.7.0 + node-fetch: 2.7.0(encoding@0.1.13) nopt: 5.0.0 npmlog: 5.0.1 rimraf: 3.0.2 @@ -20699,6 +21452,169 @@ snapshots: - encoding - supports-color + '@mikro-orm/core@6.6.16': + dependencies: + dataloader: 2.2.3 + dotenv: 17.3.1 + esprima: 4.0.1 + fs-extra: 11.3.3 + globby: 11.1.0 + mikro-orm: 6.6.16 + reflect-metadata: 0.2.2 + + '@mikro-orm/knex@6.6.16(@mikro-orm/core@6.6.16)(mariadb@3.4.5)(mysql2@3.20.0(@types/node@22.12.0))(pg@8.20.0)': + dependencies: + '@mikro-orm/core': 6.6.16 + fs-extra: 11.3.3 + knex: 3.2.10(mysql2@3.20.0(@types/node@22.12.0))(pg@8.20.0) + sqlstring: 2.3.3 + optionalDependencies: + mariadb: 3.4.5 + transitivePeerDependencies: + - mysql + - mysql2 + - pg + - pg-native + - pg-query-stream + - sqlite3 + - supports-color + - tedious + + '@mikro-orm/knex@6.6.16(@mikro-orm/core@6.6.16)(mariadb@3.4.5)(pg@8.20.0)(sqlite3@5.1.7)': + dependencies: + '@mikro-orm/core': 6.6.16 + fs-extra: 11.3.3 + knex: 3.2.10(pg@8.20.0)(sqlite3@5.1.7) + sqlstring: 2.3.3 + optionalDependencies: + mariadb: 3.4.5 + transitivePeerDependencies: + - mysql + - mysql2 + - pg + - pg-native + - pg-query-stream + - sqlite3 + - supports-color + - tedious + + '@mikro-orm/knex@6.6.16(@mikro-orm/core@6.6.16)(mariadb@3.4.5)(pg@8.20.0)(tedious@19.2.1)': + dependencies: + '@mikro-orm/core': 6.6.16 + fs-extra: 11.3.3 + knex: 3.2.10(pg@8.20.0)(tedious@19.2.1) + sqlstring: 2.3.3 + optionalDependencies: + mariadb: 3.4.5 + transitivePeerDependencies: + - mysql + - mysql2 + - pg + - pg-native + - pg-query-stream + - sqlite3 + - supports-color + - tedious + + '@mikro-orm/mariadb@6.6.16(@mikro-orm/core@6.6.16)(pg@8.20.0)': + dependencies: + '@mikro-orm/core': 6.6.16 + '@mikro-orm/knex': 6.6.16(@mikro-orm/core@6.6.16)(mariadb@3.4.5)(mysql2@3.20.0(@types/node@22.12.0))(pg@8.20.0) + mariadb: 3.4.5 + transitivePeerDependencies: + - better-sqlite3 + - libsql + - mysql + - mysql2 + - pg + - pg-native + - pg-query-stream + - sqlite3 + - supports-color + - tedious + + '@mikro-orm/mssql@6.6.16(@mikro-orm/core@6.6.16)(mariadb@3.4.5)(pg@8.20.0)': + dependencies: + '@mikro-orm/core': 6.6.16 + '@mikro-orm/knex': 6.6.16(@mikro-orm/core@6.6.16)(mariadb@3.4.5)(pg@8.20.0)(tedious@19.2.1) + tedious: 19.2.1 + tsqlstring: 1.0.1 + transitivePeerDependencies: + - better-sqlite3 + - libsql + - mariadb + - mysql + - mysql2 + - pg + - pg-native + - pg-query-stream + - sqlite3 + - supports-color + + '@mikro-orm/mysql@6.6.16(@mikro-orm/core@6.6.16)(@types/node@22.12.0)(mariadb@3.4.5)(pg@8.20.0)': + dependencies: + '@mikro-orm/core': 6.6.16 + '@mikro-orm/knex': 6.6.16(@mikro-orm/core@6.6.16)(mariadb@3.4.5)(mysql2@3.20.0(@types/node@22.12.0))(pg@8.20.0) + mysql2: 3.20.0(@types/node@22.12.0) + transitivePeerDependencies: + - '@types/node' + - better-sqlite3 + - libsql + - mariadb + - mysql + - pg + - pg-native + - pg-query-stream + - sqlite3 + - supports-color + - tedious + + '@mikro-orm/postgresql@6.6.16(@mikro-orm/core@6.6.16)(mariadb@3.4.5)': + dependencies: + '@mikro-orm/core': 6.6.16 + '@mikro-orm/knex': 6.6.16(@mikro-orm/core@6.6.16)(mariadb@3.4.5)(mysql2@3.20.0(@types/node@22.12.0))(pg@8.20.0) + pg: 8.20.0 + postgres-array: 3.0.4 + postgres-date: 2.1.0 + postgres-interval: 4.0.2 + transitivePeerDependencies: + - better-sqlite3 + - libsql + - mariadb + - mysql + - mysql2 + - pg-native + - pg-query-stream + - sqlite3 + - supports-color + - tedious + + '@mikro-orm/reflection@6.6.16(@mikro-orm/core@6.6.16)': + dependencies: + '@mikro-orm/core': 6.6.16 + globby: 11.1.0 + ts-morph: 27.0.2 + + '@mikro-orm/sqlite@6.6.16(@mikro-orm/core@6.6.16)(mariadb@3.4.5)(pg@8.20.0)': + dependencies: + '@mikro-orm/core': 6.6.16 + '@mikro-orm/knex': 6.6.16(@mikro-orm/core@6.6.16)(mariadb@3.4.5)(pg@8.20.0)(sqlite3@5.1.7) + fs-extra: 11.3.3 + sqlite3: 5.1.7 + sqlstring-sqlite: 0.1.1 + transitivePeerDependencies: + - better-sqlite3 + - bluebird + - libsql + - mariadb + - mysql + - mysql2 + - pg + - pg-native + - pg-query-stream + - supports-color + - tedious + '@modelcontextprotocol/sdk@1.29.0(zod@4.4.3)': dependencies: '@hono/node-server': 1.19.14(hono@4.12.27) @@ -20771,10 +21687,10 @@ snapshots: lodash: 4.17.21 rxjs: 7.8.1 - '@nestjs/core@10.4.15(@nestjs/common@10.4.15(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.15)(reflect-metadata@0.2.2)(rxjs@7.8.1)': + '@nestjs/core@10.4.15(@nestjs/common@10.4.15(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.15)(encoding@0.1.13)(reflect-metadata@0.2.2)(rxjs@7.8.1)': dependencies: '@nestjs/common': 10.4.15(reflect-metadata@0.2.2)(rxjs@7.8.1) - '@nuxtjs/opencollective': 0.3.2 + '@nuxtjs/opencollective': 0.3.2(encoding@0.1.13) fast-safe-stringify: 2.1.1 iterare: 1.2.1 path-to-regexp: 3.3.0 @@ -20790,7 +21706,7 @@ snapshots: '@nestjs/platform-express@10.4.15(@nestjs/common@10.4.15(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.15)': dependencies: '@nestjs/common': 10.4.15(reflect-metadata@0.2.2)(rxjs@7.8.1) - '@nestjs/core': 10.4.15(@nestjs/common@10.4.15(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.15)(reflect-metadata@0.2.2)(rxjs@7.8.1) + '@nestjs/core': 10.4.15(@nestjs/common@10.4.15(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.15)(encoding@0.1.13)(reflect-metadata@0.2.2)(rxjs@7.8.1) body-parser: 1.20.3 cors: 2.8.5 express: 4.21.2 @@ -20824,7 +21740,7 @@ snapshots: '@nestjs/testing@10.4.15(@nestjs/common@10.4.15(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.15)(@nestjs/platform-express@10.4.15)': dependencies: '@nestjs/common': 10.4.15(reflect-metadata@0.2.2)(rxjs@7.8.1) - '@nestjs/core': 10.4.15(@nestjs/common@10.4.15(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.15)(reflect-metadata@0.2.2)(rxjs@7.8.1) + '@nestjs/core': 10.4.15(@nestjs/common@10.4.15(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.15)(encoding@0.1.13)(reflect-metadata@0.2.2)(rxjs@7.8.1) tslib: 2.8.1 optionalDependencies: '@nestjs/platform-express': 10.4.15(@nestjs/common@10.4.15(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.15) @@ -20889,6 +21805,8 @@ snapshots: dependencies: eslint-scope: 5.1.1 + '@nodable/entities@3.0.0': {} + '@nodelib/fs.scandir@2.1.5': dependencies: '@nodelib/fs.stat': 2.0.5 @@ -20917,11 +21835,11 @@ snapshots: dependencies: json-parse-even-better-errors: 2.3.1 - '@nuxtjs/opencollective@0.3.2': + '@nuxtjs/opencollective@0.3.2(encoding@0.1.13)': dependencies: chalk: 4.1.2 consola: 2.15.3 - node-fetch: 2.7.0 + node-fetch: 2.7.0(encoding@0.1.13) transitivePeerDependencies: - encoding @@ -20954,6 +21872,10 @@ snapshots: - supports-color - ws + '@opentelemetry/api-logs@0.205.0': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/api-logs@0.220.0': dependencies: '@opentelemetry/api': 1.9.0 @@ -21040,6 +21962,11 @@ snapshots: '@opentelemetry/api': 1.9.0 '@opentelemetry/semantic-conventions': 1.28.0 + '@opentelemetry/core@2.1.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/semantic-conventions': 1.42.0 + '@opentelemetry/core@2.9.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -21055,6 +21982,15 @@ snapshots: '@opentelemetry/otlp-transformer': 0.220.0(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-logs': 0.220.0(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-logs-otlp-http@0.205.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/api-logs': 0.205.0 + '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-exporter-base': 0.205.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-transformer': 0.205.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-logs': 0.205.0(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-logs-otlp-http@0.220.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -21083,6 +22019,15 @@ snapshots: '@opentelemetry/resources': 2.9.0(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-metrics': 2.9.0(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-metrics-otlp-http@0.205.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-exporter-base': 0.205.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-transformer': 0.205.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-metrics': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-metrics-otlp-http@0.220.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -21129,6 +22074,15 @@ snapshots: '@opentelemetry/resources': 1.25.1(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-trace-base': 1.25.1(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-trace-otlp-http@0.205.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-exporter-base': 0.205.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-transformer': 0.205.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-trace-otlp-http@0.220.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -21517,6 +22471,12 @@ snapshots: transitivePeerDependencies: - supports-color + '@opentelemetry/otlp-exporter-base@0.205.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-transformer': 0.205.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-exporter-base@0.220.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -21545,6 +22505,17 @@ snapshots: '@opentelemetry/otlp-exporter-base': 0.52.1(@opentelemetry/api@1.9.0) '@opentelemetry/otlp-transformer': 0.52.1(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-transformer@0.205.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/api-logs': 0.205.0 + '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-logs': 0.205.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-metrics': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 2.1.0(@opentelemetry/api@1.9.0) + protobufjs: 7.6.5 + '@opentelemetry/otlp-transformer@0.220.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -21608,6 +22579,16 @@ snapshots: '@opentelemetry/core': 2.9.0(@opentelemetry/api@1.9.0) '@opentelemetry/resources': 2.9.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resource-detector-gcp@0.40.3(@opentelemetry/api@1.9.0)(encoding@0.1.13)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.9.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.9.0(@opentelemetry/api@1.9.0) + gcp-metadata: 6.1.1(encoding@0.1.13) + transitivePeerDependencies: + - encoding + - supports-color + '@opentelemetry/resource-detector-gcp@0.55.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -21629,12 +22610,25 @@ snapshots: '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.28.0 + '@opentelemetry/resources@2.1.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.42.0 + '@opentelemetry/resources@2.9.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 2.9.0(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.42.0 + '@opentelemetry/sdk-logs@0.205.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/api-logs': 0.205.0 + '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-logs@0.220.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -21657,6 +22651,12 @@ snapshots: '@opentelemetry/resources': 1.25.1(@opentelemetry/api@1.9.0) lodash.merge: 4.6.2 + '@opentelemetry/sdk-metrics@2.1.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-metrics@2.9.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -21710,6 +22710,13 @@ snapshots: '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.28.0 + '@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.42.0 + '@opentelemetry/sdk-trace-base@2.9.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -21756,7 +22763,7 @@ snapshots: html-entities: 2.5.2 loader-utils: 2.0.4 react-refresh: 0.11.0 - schema-utils: 4.3.0 + schema-utils: 4.3.3 source-map: 0.7.6 webpack: 5.96.1(@swc/core@1.10.11(@swc/helpers@0.5.15)) optionalDependencies: @@ -21811,7 +22818,7 @@ snapshots: '@rollup/plugin-babel@5.3.1(@babel/core@7.29.7)(@types/babel__core@7.20.5)(rollup@2.79.2)': dependencies: '@babel/core': 7.29.7 - '@babel/helper-module-imports': 7.25.9 + '@babel/helper-module-imports': 7.29.7 '@rollup/pluginutils': 3.1.0(rollup@2.79.2) rollup: 2.79.2 optionalDependencies: @@ -21826,7 +22833,7 @@ snapshots: builtin-modules: 3.3.0 deepmerge: 4.3.1 is-module: 1.0.0 - resolve: 1.22.10 + resolve: 1.22.12 rollup: 2.79.2 '@rollup/plugin-replace@2.4.2(rollup@2.79.2)': @@ -22003,9 +23010,14 @@ snapshots: dependencies: tslib: 2.8.1 + '@so-ric/colorspace@1.1.6': + dependencies: + color: 5.0.3 + text-hex: 1.0.0 + '@standard-schema/spec@1.1.0': {} - '@strands-agents/sdk@1.11.0(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(@opentelemetry/api@1.9.0)(@opentelemetry/resources@2.9.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-metrics@2.9.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.9.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-node@2.9.0(@opentelemetry/api@1.9.0))(@smithy/types@4.16.1)(express@5.2.1)(openai@6.45.0(@aws-sdk/credential-provider-node@3.972.71)(@smithy/signature-v4@5.6.9)(ws@8.18.0)(zod@4.4.3))(zod@4.4.3)': + '@strands-agents/sdk@1.11.0(@a2a-js/sdk@0.3.14(@grpc/grpc-js@1.14.4)(express@5.2.1))(@google/genai@2.19.0(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3)))(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(@opentelemetry/api@1.9.0)(@opentelemetry/resources@2.9.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-metrics@2.9.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.9.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-node@2.9.0(@opentelemetry/api@1.9.0))(@smithy/types@4.16.1)(express@5.2.1)(openai@6.45.0(@aws-sdk/credential-provider-node@3.972.71)(@smithy/signature-v4@5.6.9)(ws@8.18.0)(zod@4.4.3))(zod@4.4.3)': dependencies: '@aws-sdk/client-bedrock-runtime': 3.1094.0 '@modelcontextprotocol/sdk': 1.29.0(zod@4.4.3) @@ -22015,6 +23027,8 @@ snapshots: yaml: 2.9.0 zod: 4.4.3 optionalDependencies: + '@a2a-js/sdk': 0.3.14(@grpc/grpc-js@1.14.4)(express@5.2.1) + '@google/genai': 2.19.0(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3)) '@opentelemetry/resources': 2.9.0(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-metrics': 2.9.0(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-trace-base': 2.9.0(@opentelemetry/api@1.9.0) @@ -22086,10 +23100,10 @@ snapshots: '@svgr/webpack@5.5.0': dependencies: - '@babel/core': 7.26.7 - '@babel/plugin-transform-react-constant-elements': 7.25.9(@babel/core@7.26.7) - '@babel/preset-env': 7.26.7(@babel/core@7.26.7) - '@babel/preset-react': 7.26.3(@babel/core@7.26.7) + '@babel/core': 7.29.7 + '@babel/plugin-transform-react-constant-elements': 7.25.9(@babel/core@7.29.7) + '@babel/preset-env': 7.29.7(@babel/core@7.29.7) + '@babel/preset-react': 7.26.3(@babel/core@7.29.7) '@svgr/core': 5.5.0 '@svgr/plugin-jsx': 5.5.0 '@svgr/plugin-svgo': 5.5.0 @@ -22233,6 +23247,19 @@ snapshots: '@temporalio/common': 1.23.0 smol-toml: 1.6.1 + '@temporalio/google-adk-agents@1.23.0(@google/adk@1.5.0(@grpc/grpc-js@1.14.4)(@mikro-orm/mariadb@6.6.16(@mikro-orm/core@6.6.16)(pg@8.20.0))(@mikro-orm/mssql@6.6.16(@mikro-orm/core@6.6.16)(mariadb@3.4.5)(pg@8.20.0))(@mikro-orm/mysql@6.6.16(@mikro-orm/core@6.6.16)(@types/node@22.12.0)(mariadb@3.4.5)(pg@8.20.0))(@mikro-orm/postgresql@6.6.16(@mikro-orm/core@6.6.16)(mariadb@3.4.5))(@mikro-orm/sqlite@6.6.16(@mikro-orm/core@6.6.16)(mariadb@3.4.5)(pg@8.20.0))(@opentelemetry/core@2.9.0(@opentelemetry/api@1.9.0))(encoding@0.1.13))(@google/genai@2.19.0(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3)))': + dependencies: + '@google/adk': 1.5.0(@grpc/grpc-js@1.14.4)(@mikro-orm/mariadb@6.6.16(@mikro-orm/core@6.6.16)(pg@8.20.0))(@mikro-orm/mssql@6.6.16(@mikro-orm/core@6.6.16)(mariadb@3.4.5)(pg@8.20.0))(@mikro-orm/mysql@6.6.16(@mikro-orm/core@6.6.16)(@types/node@22.12.0)(mariadb@3.4.5)(pg@8.20.0))(@mikro-orm/postgresql@6.6.16(@mikro-orm/core@6.6.16)(mariadb@3.4.5))(@mikro-orm/sqlite@6.6.16(@mikro-orm/core@6.6.16)(mariadb@3.4.5)(pg@8.20.0))(@opentelemetry/core@2.9.0(@opentelemetry/api@1.9.0))(encoding@0.1.13) + '@google/genai': 2.19.0(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3)) + '@temporalio/activity': 1.23.0 + '@temporalio/common': 1.23.0 + '@temporalio/plugin': 1.23.0 + '@temporalio/workflow': 1.23.0 + '@temporalio/workflow-streams': 1.23.0 + '@ungap/structured-clone': 1.3.2 + headers-polyfill: 4.0.3 + web-streams-polyfill: 4.2.0 + '@temporalio/interceptors-opentelemetry-v2@1.23.0(@temporalio/common@1.23.0)(@temporalio/workflow@1.23.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -22367,9 +23394,9 @@ snapshots: long: 5.3.2 protobufjs: 8.7.2 - '@temporalio/strands-agents@1.23.0(@strands-agents/sdk@1.11.0(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(@opentelemetry/api@1.9.0)(@opentelemetry/resources@2.9.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-metrics@2.9.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.9.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-node@2.9.0(@opentelemetry/api@1.9.0))(@smithy/types@4.16.1)(express@5.2.1)(openai@6.45.0(@aws-sdk/credential-provider-node@3.972.71)(@smithy/signature-v4@5.6.9)(ws@8.18.0)(zod@4.4.3))(zod@4.4.3))(zod@4.4.3)': + '@temporalio/strands-agents@1.23.0(@strands-agents/sdk@1.11.0(@a2a-js/sdk@0.3.14(@grpc/grpc-js@1.14.4)(express@5.2.1))(@google/genai@2.19.0(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3)))(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(@opentelemetry/api@1.9.0)(@opentelemetry/resources@2.9.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-metrics@2.9.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.9.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-node@2.9.0(@opentelemetry/api@1.9.0))(@smithy/types@4.16.1)(express@5.2.1)(openai@6.45.0(@aws-sdk/credential-provider-node@3.972.71)(@smithy/signature-v4@5.6.9)(ws@8.18.0)(zod@4.4.3))(zod@4.4.3))(zod@4.4.3)': dependencies: - '@strands-agents/sdk': 1.11.0(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(@opentelemetry/api@1.9.0)(@opentelemetry/resources@2.9.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-metrics@2.9.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.9.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-node@2.9.0(@opentelemetry/api@1.9.0))(@smithy/types@4.16.1)(express@5.2.1)(openai@6.45.0(@aws-sdk/credential-provider-node@3.972.71)(@smithy/signature-v4@5.6.9)(ws@8.18.0)(zod@4.4.3))(zod@4.4.3) + '@strands-agents/sdk': 1.11.0(@a2a-js/sdk@0.3.14(@grpc/grpc-js@1.14.4)(express@5.2.1))(@google/genai@2.19.0(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3)))(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(@opentelemetry/api@1.9.0)(@opentelemetry/resources@2.9.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-metrics@2.9.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.9.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-node@2.9.0(@opentelemetry/api@1.9.0))(@smithy/types@4.16.1)(express@5.2.1)(openai@6.45.0(@aws-sdk/credential-provider-node@3.972.71)(@smithy/signature-v4@5.6.9)(ws@8.18.0)(zod@4.4.3))(zod@4.4.3) '@temporalio/activity': 1.23.0 '@temporalio/common': 1.23.0 '@temporalio/plugin': 1.23.0 @@ -22556,11 +23583,13 @@ snapshots: '@tootallnate/once@1.1.2': {} + '@tootallnate/once@2.0.1': {} + '@trpc/client@10.45.2(@trpc/server@10.45.2)': dependencies: '@trpc/server': 10.45.2 - '@trpc/next@10.45.2(@tanstack/react-query@4.36.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@trpc/client@10.45.2(@trpc/server@10.45.2))(@trpc/react-query@10.45.2(@tanstack/react-query@4.36.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@trpc/client@10.45.2(@trpc/server@10.45.2))(@trpc/server@10.45.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@trpc/server@10.45.2)(next@15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@trpc/next@10.45.2(@tanstack/react-query@4.36.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@trpc/client@10.45.2(@trpc/server@10.45.2))(@trpc/react-query@10.45.2(@tanstack/react-query@4.36.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@trpc/client@10.45.2(@trpc/server@10.45.2))(@trpc/server@10.45.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@trpc/server@10.45.2)(next@15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@tanstack/react-query': 4.36.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@trpc/client': 10.45.2(@trpc/server@10.45.2) @@ -22589,6 +23618,12 @@ snapshots: mkdirp: 1.0.4 path-browserify: 1.0.1 + '@ts-morph/common@0.28.1': + dependencies: + minimatch: 10.0.1 + path-browserify: 1.0.1 + tinyglobby: 0.2.17 + '@tsconfig/node10@1.0.11': {} '@tsconfig/node12@1.0.11': {} @@ -22650,6 +23685,8 @@ snapshots: '@types/node': 22.12.0 '@types/responselike': 1.0.3 + '@types/caseless@0.12.5': {} + '@types/connect-history-api-fallback@1.5.4': dependencies: '@types/express-serve-static-core': 5.0.6 @@ -22696,8 +23733,6 @@ snapshots: '@types/estree@0.0.39': {} - '@types/estree@1.0.6': {} - '@types/estree@1.0.9': {} '@types/express-serve-static-core@4.19.6': @@ -22728,6 +23763,8 @@ snapshots: '@types/qs': 6.9.18 '@types/serve-static': 1.15.7 + '@types/geojson@7946.0.16': {} + '@types/glob@7.2.0': dependencies: '@types/minimatch': 6.0.0 @@ -22855,6 +23892,10 @@ snapshots: dependencies: undici-types: 6.20.0 + '@types/node@24.13.3': + dependencies: + undici-types: 7.18.2 + '@types/oracledb@6.5.2': dependencies: '@types/node': 22.12.0 @@ -22890,6 +23931,17 @@ snapshots: '@types/prop-types': 15.7.14 csstype: 3.1.3 + '@types/readable-stream@4.0.24': + dependencies: + '@types/node': 22.12.0 + + '@types/request@2.48.13': + dependencies: + '@types/caseless': 0.12.5 + '@types/node': 22.12.0 + '@types/tough-cookie': 4.0.5 + form-data: 2.5.6 + '@types/resolve@1.17.1': dependencies: '@types/node': 22.12.0 @@ -22949,6 +24001,8 @@ snapshots: dependencies: '@types/jest': 29.5.14 + '@types/tough-cookie@4.0.5': {} + '@types/triple-beam@1.3.5': {} '@types/trusted-types@2.0.7': {} @@ -23184,9 +24238,15 @@ snapshots: '@typescript-eslint/types': 8.22.0 eslint-visitor-keys: 4.2.0 - '@ungap/promise-all-settled@1.1.2': {} + '@typespec/ts-http-runtime@0.3.8': + dependencies: + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.6 + tslib: 2.8.1 + transitivePeerDependencies: + - supports-color - '@ungap/structured-clone@1.3.0': {} + '@ungap/promise-all-settled@1.1.2': {} '@ungap/structured-clone@1.3.2': {} @@ -23250,11 +24310,11 @@ snapshots: '@babel/runtime': 7.12.1 web-vitals: 0.2.4 - '@vercel/gatsby-plugin-vercel-builder@1.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))': + '@vercel/gatsby-plugin-vercel-builder@1.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(encoding@0.1.13)': dependencies: '@sinclair/typebox': 0.25.24 '@vercel/build-utils': 6.7.3 - '@vercel/node': 2.14.3(@swc/core@1.10.11(@swc/helpers@0.5.15)) + '@vercel/node': 2.14.3(@swc/core@1.10.11(@swc/helpers@0.5.15))(encoding@0.1.13) '@vercel/routing-utils': 2.2.1 esbuild: 0.14.47 etag: 1.8.1 @@ -23272,9 +24332,9 @@ snapshots: '@vercel/next@3.8.5': {} - '@vercel/nft@0.22.5': + '@vercel/nft@0.22.5(encoding@0.1.13)': dependencies: - '@mapbox/node-pre-gyp': 1.0.11 + '@mapbox/node-pre-gyp': 1.0.11(encoding@0.1.13) '@rollup/pluginutils': 4.2.1 acorn: 8.15.0 async-sema: 3.1.1 @@ -23289,7 +24349,7 @@ snapshots: - encoding - supports-color - '@vercel/node@2.14.3(@swc/core@1.10.11(@swc/helpers@0.5.15))': + '@vercel/node@2.14.3(@swc/core@1.10.11(@swc/helpers@0.5.15))(encoding@0.1.13)': dependencies: '@edge-runtime/vm': 2.0.0 '@types/node': 14.18.33 @@ -23301,7 +24361,7 @@ snapshots: edge-runtime: 2.1.4 esbuild: 0.14.47 exit-hook: 2.2.1 - node-fetch: 2.6.9 + node-fetch: 2.6.9(encoding@0.1.13) path-to-regexp: 6.2.1 ts-morph: 12.0.0 ts-node: 10.9.1(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@14.18.33)(typescript@4.9.5) @@ -23318,20 +24378,20 @@ snapshots: '@vercel/python@3.1.60': {} - '@vercel/redwood@1.1.15': + '@vercel/redwood@1.1.15(encoding@0.1.13)': dependencies: - '@vercel/nft': 0.22.5 + '@vercel/nft': 0.22.5(encoding@0.1.13) '@vercel/routing-utils': 2.2.1 semver: 6.1.1 transitivePeerDependencies: - encoding - supports-color - '@vercel/remix-builder@1.8.10(@types/node@22.12.0)(babel-plugin-macros@3.1.0)(terser@5.37.0)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3))': + '@vercel/remix-builder@1.8.10(@types/node@22.12.0)(babel-plugin-macros@3.1.0)(encoding@0.1.13)(terser@5.37.0)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3))': dependencies: - '@remix-run/dev': '@vercel/remix-run-dev@1.16.1(@types/node@22.12.0)(babel-plugin-macros@3.1.0)(terser@5.37.0)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3))' + '@remix-run/dev': '@vercel/remix-run-dev@1.16.1(@types/node@22.12.0)(babel-plugin-macros@3.1.0)(encoding@0.1.13)(terser@5.37.0)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3))' '@vercel/build-utils': 6.7.3 - '@vercel/nft': 0.22.5 + '@vercel/nft': 0.22.5(encoding@0.1.13) '@vercel/static-config': 2.0.17 path-to-regexp: 6.2.1 semver: 7.3.8 @@ -23354,7 +24414,7 @@ snapshots: - ts-node - utf-8-validate - '@vercel/remix-run-dev@1.16.1(@types/node@22.12.0)(babel-plugin-macros@3.1.0)(terser@5.37.0)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3))': + '@vercel/remix-run-dev@1.16.1(@types/node@22.12.0)(babel-plugin-macros@3.1.0)(encoding@0.1.13)(terser@5.37.0)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3))': dependencies: '@babel/core': 7.29.7 '@babel/generator': 7.29.7 @@ -23389,7 +24449,7 @@ snapshots: lodash.debounce: 4.0.8 lru-cache: 7.18.3 minimatch: 9.0.9 - node-fetch: 2.7.0 + node-fetch: 2.7.0(encoding@0.1.13) ora: 5.4.1 postcss: 8.5.15 postcss-discard-duplicates: 5.1.0(postcss@8.5.15) @@ -23433,10 +24493,10 @@ snapshots: '@vercel/ruby@1.3.76': {} - '@vercel/static-build@1.3.32(@swc/core@1.10.11(@swc/helpers@0.5.15))': + '@vercel/static-build@1.3.32(@swc/core@1.10.11(@swc/helpers@0.5.15))(encoding@0.1.13)': dependencies: '@vercel/gatsby-plugin-vercel-analytics': 1.0.10 - '@vercel/gatsby-plugin-vercel-builder': 1.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15)) + '@vercel/gatsby-plugin-vercel-builder': 1.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(encoding@0.1.13) transitivePeerDependencies: - '@swc/core' - '@swc/wasm' @@ -23561,10 +24621,6 @@ snapshots: dependencies: acorn: 8.16.0 - acorn-jsx@5.3.2(acorn@8.15.0): - dependencies: - acorn: 8.15.0 - acorn-jsx@5.3.2(acorn@8.16.0): dependencies: acorn: 8.16.0 @@ -23577,18 +24633,12 @@ snapshots: acorn-walk@7.2.0: {} - acorn-walk@8.3.4: - dependencies: - acorn: 8.15.0 - acorn-walk@8.3.5: dependencies: acorn: 8.16.0 acorn@7.4.1: {} - acorn@8.14.0: {} - acorn@8.15.0: {} acorn@8.16.0: {} @@ -23600,6 +24650,8 @@ snapshots: loader-utils: 2.0.4 regex-parser: 2.3.0 + adm-zip@0.5.18: {} + agent-base@6.0.2: dependencies: debug: 4.4.3(supports-color@8.1.1) @@ -23714,6 +24766,8 @@ snapshots: normalize-path: 3.0.0 picomatch: 2.3.1 + anynum@1.0.1: {} + append-field@1.0.0: {} append-transform@2.0.0: @@ -23729,6 +24783,12 @@ snapshots: delegates: 1.0.0 readable-stream: 3.6.2 + are-we-there-yet@3.0.1: + dependencies: + delegates: 1.0.0 + readable-stream: 3.6.2 + optional: true + arg@4.1.3: {} arg@5.0.2: {} @@ -23830,6 +24890,8 @@ snapshots: get-intrinsic: 1.2.7 is-array-buffer: 3.0.5 + arrify@2.0.1: {} + asap@2.0.6: {} ast-types-flow@0.0.8: {} @@ -23854,6 +24916,10 @@ snapshots: dependencies: tslib: 2.8.1 + async-retry@1.3.3: + dependencies: + retry: 0.13.1 + async-sema@3.1.1: {} async@3.2.6: {} @@ -23876,6 +24942,8 @@ snapshots: dependencies: possible-typed-array-names: 1.0.0 + aws-ssl-profiles@1.1.2: {} + axe-core@4.10.2: {} axios@0.28.0: @@ -23951,6 +25019,20 @@ snapshots: transitivePeerDependencies: - supports-color + babel-jest@28.1.3(@babel/core@7.29.7): + dependencies: + '@babel/core': 7.29.7 + '@jest/transform': 28.1.3 + '@types/babel__core': 7.20.5 + babel-plugin-istanbul: 6.1.1 + babel-preset-jest: 28.1.3(@babel/core@7.29.7) + chalk: 4.1.2 + graceful-fs: 4.2.11 + slash: 3.0.0 + transitivePeerDependencies: + - supports-color + optional: true + babel-jest@29.7.0(@babel/core@7.26.7): dependencies: '@babel/core': 7.26.7 @@ -23999,7 +25081,7 @@ snapshots: babel-plugin-jest-hoist@27.5.1: dependencies: - '@babel/template': 7.25.9 + '@babel/template': 7.29.7 '@babel/types': 7.29.7 '@types/babel__core': 7.20.5 '@types/babel__traverse': 7.20.6 @@ -24037,15 +25119,6 @@ snapshots: transitivePeerDependencies: - supports-color - babel-plugin-polyfill-corejs2@0.4.12(@babel/core@7.29.7): - dependencies: - '@babel/compat-data': 7.26.5 - '@babel/core': 7.29.7 - '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.29.7) - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - babel-plugin-polyfill-corejs2@0.4.17(@babel/core@7.29.7): dependencies: '@babel/compat-data': 7.29.7 @@ -24063,14 +25136,6 @@ snapshots: transitivePeerDependencies: - supports-color - babel-plugin-polyfill-corejs3@0.10.6(@babel/core@7.29.7): - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.29.7) - core-js-compat: 3.40.0 - transitivePeerDependencies: - - supports-color - babel-plugin-polyfill-corejs3@0.14.2(@babel/core@7.29.7): dependencies: '@babel/core': 7.29.7 @@ -24086,13 +25151,6 @@ snapshots: transitivePeerDependencies: - supports-color - babel-plugin-polyfill-regenerator@0.6.3(@babel/core@7.29.7): - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.29.7) - transitivePeerDependencies: - - supports-color - babel-plugin-polyfill-regenerator@0.6.8(@babel/core@7.29.7): dependencies: '@babel/core': 7.29.7 @@ -24158,6 +25216,13 @@ snapshots: babel-plugin-jest-hoist: 28.1.3 babel-preset-current-node-syntax: 1.1.0(@babel/core@7.26.7) + babel-preset-jest@28.1.3(@babel/core@7.29.7): + dependencies: + '@babel/core': 7.29.7 + babel-plugin-jest-hoist: 28.1.3 + babel-preset-current-node-syntax: 1.1.0(@babel/core@7.29.7) + optional: true + babel-preset-jest@29.6.3(@babel/core@7.26.7): dependencies: '@babel/core': 7.26.7 @@ -24258,6 +25323,13 @@ snapshots: inherits: 2.0.4 readable-stream: 3.6.2 + bl@6.1.6: + dependencies: + '@types/readable-stream': 4.0.24 + buffer: 6.0.3 + inherits: 2.0.4 + readable-stream: 4.7.0 + bluebird@3.7.2: {} body-parser@1.20.3: @@ -24277,6 +25349,23 @@ snapshots: transitivePeerDependencies: - supports-color + body-parser@1.20.6: + dependencies: + bytes: 3.1.2 + content-type: 1.0.5 + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + http-errors: 2.0.1 + iconv-lite: 0.4.24 + on-finished: 2.4.1 + qs: 6.15.3 + raw-body: 2.5.3 + type-is: 1.6.18 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + body-parser@2.2.1: dependencies: bytes: 3.1.2 @@ -24348,6 +25437,8 @@ snapshots: dependencies: node-int64: 0.4.0 + buffer-equal-constant-time@1.0.1: {} + buffer-from@1.1.2: {} buffer@5.7.1: @@ -24355,8 +25446,17 @@ snapshots: base64-js: 1.5.1 ieee754: 1.2.1 + buffer@6.0.3: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + builtin-modules@3.3.0: {} + bundle-name@4.1.0: + dependencies: + run-applescript: 7.1.0 + busboy@1.6.0: dependencies: streamsearch: 1.1.0 @@ -24614,6 +25714,8 @@ snapshots: code-block-writer@10.1.1: {} + code-block-writer@13.0.3: {} + collect-v8-coverage@1.0.2: {} color-convert@1.9.3: @@ -24624,15 +25726,25 @@ snapshots: dependencies: color-name: 1.1.4 + color-convert@3.1.3: + dependencies: + color-name: 2.1.1 + color-name@1.1.3: {} color-name@1.1.4: {} + color-name@2.1.1: {} + color-string@1.9.1: dependencies: color-name: 1.1.4 simple-swizzle: 0.2.2 + color-string@2.1.4: + dependencies: + color-name: 2.1.1 + color-support@1.1.3: {} color@3.2.1: @@ -24645,8 +25757,15 @@ snapshots: color-convert: 2.0.1 color-string: 1.9.1 + color@5.0.3: + dependencies: + color-convert: 3.1.3 + color-string: 2.1.4 + colord@2.9.3: {} + colorette@2.0.19: {} + colorette@2.0.20: {} colorspace@1.1.4: @@ -24660,6 +25779,8 @@ snapshots: comma-separated-tokens@2.0.3: {} + commander@10.0.1: {} + commander@2.20.3: {} commander@4.1.1: {} @@ -24850,9 +25971,9 @@ snapshots: css-color-names@0.0.4: {} - css-declaration-sorter@6.4.1(postcss@8.5.1): + css-declaration-sorter@6.4.1(postcss@8.5.15): dependencies: - postcss: 8.5.1 + postcss: 8.5.15 css-has-pseudo@3.0.4(postcss@8.5.1): dependencies: @@ -24861,12 +25982,12 @@ snapshots: css-loader@6.11.0(webpack@5.96.1(@swc/core@1.10.11(@swc/helpers@0.5.15))): dependencies: - icss-utils: 5.1.0(postcss@8.5.1) - postcss: 8.5.1 - postcss-modules-extract-imports: 3.1.0(postcss@8.5.1) - postcss-modules-local-by-default: 4.2.0(postcss@8.5.1) - postcss-modules-scope: 3.2.1(postcss@8.5.1) - postcss-modules-values: 4.0.0(postcss@8.5.1) + icss-utils: 5.1.0(postcss@8.5.15) + postcss: 8.5.15 + postcss-modules-extract-imports: 3.1.0(postcss@8.5.15) + postcss-modules-local-by-default: 4.2.0(postcss@8.5.15) + postcss-modules-scope: 3.2.1(postcss@8.5.15) + postcss-modules-values: 4.0.0(postcss@8.5.15) postcss-value-parser: 4.2.0 semver: 7.6.3 optionalDependencies: @@ -24874,10 +25995,10 @@ snapshots: css-minimizer-webpack-plugin@3.4.1(webpack@5.96.1(@swc/core@1.10.11(@swc/helpers@0.5.15))): dependencies: - cssnano: 5.1.15(postcss@8.5.1) + cssnano: 5.1.15(postcss@8.5.15) jest-worker: 27.5.1 - postcss: 8.5.1 - schema-utils: 4.3.0 + postcss: 8.5.15 + schema-utils: 4.3.3 serialize-javascript: 6.0.2 source-map: 0.6.1 webpack: 5.96.1(@swc/core@1.10.11(@swc/helpers@0.5.15)) @@ -24898,7 +26019,7 @@ snapshots: css-select@4.3.0: dependencies: boolbase: 1.0.0 - css-what: 6.1.0 + css-what: 6.2.2 domhandler: 4.3.1 domutils: 2.8.0 nth-check: 2.1.1 @@ -24917,8 +26038,6 @@ snapshots: css-what@3.4.2: {} - css-what@6.1.0: {} - css-what@6.2.2: {} css.escape@1.5.1: {} @@ -24927,48 +26046,48 @@ snapshots: cssesc@3.0.0: {} - cssnano-preset-default@5.2.14(postcss@8.5.1): + cssnano-preset-default@5.2.14(postcss@8.5.15): dependencies: - css-declaration-sorter: 6.4.1(postcss@8.5.1) - cssnano-utils: 3.1.0(postcss@8.5.1) - postcss: 8.5.1 - postcss-calc: 8.2.4(postcss@8.5.1) - postcss-colormin: 5.3.1(postcss@8.5.1) - postcss-convert-values: 5.1.3(postcss@8.5.1) - postcss-discard-comments: 5.1.2(postcss@8.5.1) - postcss-discard-duplicates: 5.1.0(postcss@8.5.1) - postcss-discard-empty: 5.1.1(postcss@8.5.1) - postcss-discard-overridden: 5.1.0(postcss@8.5.1) - postcss-merge-longhand: 5.1.7(postcss@8.5.1) - postcss-merge-rules: 5.1.4(postcss@8.5.1) - postcss-minify-font-values: 5.1.0(postcss@8.5.1) - postcss-minify-gradients: 5.1.1(postcss@8.5.1) - postcss-minify-params: 5.1.4(postcss@8.5.1) - postcss-minify-selectors: 5.2.1(postcss@8.5.1) - postcss-normalize-charset: 5.1.0(postcss@8.5.1) - postcss-normalize-display-values: 5.1.0(postcss@8.5.1) - postcss-normalize-positions: 5.1.1(postcss@8.5.1) - postcss-normalize-repeat-style: 5.1.1(postcss@8.5.1) - postcss-normalize-string: 5.1.0(postcss@8.5.1) - postcss-normalize-timing-functions: 5.1.0(postcss@8.5.1) - postcss-normalize-unicode: 5.1.1(postcss@8.5.1) - postcss-normalize-url: 5.1.0(postcss@8.5.1) - postcss-normalize-whitespace: 5.1.1(postcss@8.5.1) - postcss-ordered-values: 5.1.3(postcss@8.5.1) - postcss-reduce-initial: 5.1.2(postcss@8.5.1) - postcss-reduce-transforms: 5.1.0(postcss@8.5.1) - postcss-svgo: 5.1.0(postcss@8.5.1) - postcss-unique-selectors: 5.1.1(postcss@8.5.1) - - cssnano-utils@3.1.0(postcss@8.5.1): + css-declaration-sorter: 6.4.1(postcss@8.5.15) + cssnano-utils: 3.1.0(postcss@8.5.15) + postcss: 8.5.15 + postcss-calc: 8.2.4(postcss@8.5.15) + postcss-colormin: 5.3.1(postcss@8.5.15) + postcss-convert-values: 5.1.3(postcss@8.5.15) + postcss-discard-comments: 5.1.2(postcss@8.5.15) + postcss-discard-duplicates: 5.1.0(postcss@8.5.15) + postcss-discard-empty: 5.1.1(postcss@8.5.15) + postcss-discard-overridden: 5.1.0(postcss@8.5.15) + postcss-merge-longhand: 5.1.7(postcss@8.5.15) + postcss-merge-rules: 5.1.4(postcss@8.5.15) + postcss-minify-font-values: 5.1.0(postcss@8.5.15) + postcss-minify-gradients: 5.1.1(postcss@8.5.15) + postcss-minify-params: 5.1.4(postcss@8.5.15) + postcss-minify-selectors: 5.2.1(postcss@8.5.15) + postcss-normalize-charset: 5.1.0(postcss@8.5.15) + postcss-normalize-display-values: 5.1.0(postcss@8.5.15) + postcss-normalize-positions: 5.1.1(postcss@8.5.15) + postcss-normalize-repeat-style: 5.1.1(postcss@8.5.15) + postcss-normalize-string: 5.1.0(postcss@8.5.15) + postcss-normalize-timing-functions: 5.1.0(postcss@8.5.15) + postcss-normalize-unicode: 5.1.1(postcss@8.5.15) + postcss-normalize-url: 5.1.0(postcss@8.5.15) + postcss-normalize-whitespace: 5.1.1(postcss@8.5.15) + postcss-ordered-values: 5.1.3(postcss@8.5.15) + postcss-reduce-initial: 5.1.2(postcss@8.5.15) + postcss-reduce-transforms: 5.1.0(postcss@8.5.15) + postcss-svgo: 5.1.0(postcss@8.5.15) + postcss-unique-selectors: 5.1.1(postcss@8.5.15) + + cssnano-utils@3.1.0(postcss@8.5.15): dependencies: - postcss: 8.5.1 + postcss: 8.5.15 - cssnano@5.1.15(postcss@8.5.1): + cssnano@5.1.15(postcss@8.5.15): dependencies: - cssnano-preset-default: 5.2.14(postcss@8.5.1) + cssnano-preset-default: 5.2.14(postcss@8.5.15) lilconfig: 2.1.0 - postcss: 8.5.1 + postcss: 8.5.15 yaml: 1.10.2 csso@4.2.0: @@ -25019,6 +26138,8 @@ snapshots: es-errors: 1.3.0 is-data-view: 1.0.2 + dataloader@2.2.3: {} + date-fns@2.30.0: dependencies: '@babel/runtime': 7.26.7 @@ -25120,6 +26241,13 @@ snapshots: deepmerge@4.3.1: {} + default-browser-id@5.0.1: {} + + default-browser@5.5.1: + dependencies: + bundle-name: 4.1.0 + default-browser-id: 5.0.1 + default-gateway@6.0.3: dependencies: execa: 5.1.1 @@ -25142,6 +26270,8 @@ snapshots: define-lazy-prop@2.0.0: {} + define-lazy-prop@3.0.0: {} + define-properties@1.2.1: dependencies: define-data-property: 1.1.4 @@ -25163,6 +26293,8 @@ snapshots: denque@1.5.1: {} + denque@2.1.0: {} + depd@1.1.2: {} depd@2.0.0: {} @@ -25304,6 +26436,8 @@ snapshots: dotenv@16.6.1: {} + dotenv@17.3.1: {} + dunder-proto@1.0.1: dependencies: call-bind-apply-helpers: 1.0.1 @@ -25319,8 +26453,19 @@ snapshots: readable-stream: 2.3.8 stream-shift: 1.0.3 + duplexify@4.1.3: + dependencies: + end-of-stream: 1.4.5 + inherits: 2.0.4 + readable-stream: 3.6.2 + stream-shift: 1.0.3 + eastasianwidth@0.2.0: {} + ecdsa-sig-formatter@1.0.11: + dependencies: + safe-buffer: 5.2.1 + edge-runtime@2.1.4: dependencies: '@edge-runtime/format': 2.0.1 @@ -25365,6 +26510,11 @@ snapshots: encodeurl@2.0.0: {} + encoding@0.1.13: + dependencies: + iconv-lite: 0.6.3 + optional: true + end-of-stream@1.4.4: dependencies: once: 1.4.0 @@ -25391,6 +26541,12 @@ snapshots: entities@4.5.0: {} + env-paths@2.2.1: + optional: true + + err-code@2.0.3: + optional: true + error-ex@1.3.2: dependencies: is-arrayish: 0.2.1 @@ -25423,7 +26579,7 @@ snapshots: has-property-descriptors: 1.0.2 has-proto: 1.2.0 has-symbols: 1.1.0 - hasown: 2.0.2 + hasown: 2.0.4 internal-slot: 1.1.0 is-array-buffer: 3.0.5 is-callable: 1.2.7 @@ -25505,11 +26661,11 @@ snapshots: es-errors: 1.3.0 get-intrinsic: 1.2.7 has-tostringtag: 1.0.2 - hasown: 2.0.2 + hasown: 2.0.4 es-shim-unscopables@1.0.2: dependencies: - hasown: 2.0.2 + hasown: 2.0.4 es-to-primitive@1.3.0: dependencies: @@ -25740,7 +26896,7 @@ snapshots: dependencies: eslint: 8.57.1 - eslint-config-react-app@7.0.1(@babel/plugin-syntax-flow@7.26.0(@babel/core@7.26.7))(@babel/plugin-transform-react-jsx@7.25.9(@babel/core@7.26.7))(eslint@8.57.1)(jest@27.5.1(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3)))(typescript@5.7.3): + eslint-config-react-app@7.0.1(@babel/plugin-syntax-flow@7.26.0(@babel/core@7.26.7))(@babel/plugin-transform-react-jsx@7.25.9(@babel/core@7.26.7))(eslint@8.57.1)(jest@27.5.1(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@24.13.3)(typescript@5.7.3)))(typescript@5.7.3): dependencies: '@babel/core': 7.26.7 '@babel/eslint-parser': 7.26.5(@babel/core@7.26.7)(eslint@8.57.1) @@ -25752,7 +26908,7 @@ snapshots: eslint: 8.57.1 eslint-plugin-flowtype: 8.0.3(@babel/plugin-syntax-flow@7.26.0(@babel/core@7.26.7))(@babel/plugin-transform-react-jsx@7.25.9(@babel/core@7.26.7))(eslint@8.57.1) eslint-plugin-import: 2.31.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.7.3))(eslint@8.57.1) - eslint-plugin-jest: 25.7.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.7.3))(eslint@8.57.1)(typescript@5.7.3))(eslint@8.57.1)(jest@27.5.1(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3)))(typescript@5.7.3) + eslint-plugin-jest: 25.7.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.7.3))(eslint@8.57.1)(typescript@5.7.3))(eslint@8.57.1)(jest@27.5.1(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@24.13.3)(typescript@5.7.3)))(typescript@5.7.3) eslint-plugin-jsx-a11y: 6.10.2(eslint@8.57.1) eslint-plugin-react: 7.31.8(eslint@8.57.1) eslint-plugin-react-hooks: 4.6.2(eslint@8.57.1) @@ -25888,13 +27044,13 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-plugin-jest@25.7.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.7.3))(eslint@8.57.1)(typescript@5.7.3))(eslint@8.57.1)(jest@27.5.1(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3)))(typescript@5.7.3): + eslint-plugin-jest@25.7.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.7.3))(eslint@8.57.1)(typescript@5.7.3))(eslint@8.57.1)(jest@27.5.1(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@24.13.3)(typescript@5.7.3)))(typescript@5.7.3): dependencies: '@typescript-eslint/experimental-utils': 5.62.0(eslint@8.57.1)(typescript@5.7.3) eslint: 8.57.1 optionalDependencies: '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.7.3))(eslint@8.57.1)(typescript@5.7.3) - jest: 27.5.1(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3)) + jest: 27.5.1(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@24.13.3)(typescript@5.7.3)) transitivePeerDependencies: - supports-color - typescript @@ -26009,7 +27165,7 @@ snapshots: jest-worker: 28.1.3 micromatch: 4.0.8 normalize-path: 3.0.0 - schema-utils: 4.3.0 + schema-utils: 4.3.3 webpack: 5.96.1(@swc/core@1.10.11(@swc/helpers@0.5.15)) eslint@8.57.1: @@ -26021,7 +27177,7 @@ snapshots: '@humanwhocodes/config-array': 0.13.0 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 - '@ungap/structured-clone': 1.3.0 + '@ungap/structured-clone': 1.3.2 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.6 @@ -26043,7 +27199,7 @@ snapshots: imurmurhash: 0.1.4 is-glob: 4.0.3 is-path-inside: 3.0.3 - js-yaml: 4.1.0 + js-yaml: 4.2.0 json-stable-stringify-without-jsonify: 1.0.1 levn: 0.4.1 lodash.merge: 4.6.2 @@ -26055,10 +27211,12 @@ snapshots: transitivePeerDependencies: - supports-color + esm@3.2.25: {} + espree@9.6.1: dependencies: - acorn: 8.15.0 - acorn-jsx: 5.3.2(acorn@8.15.0) + acorn: 8.16.0 + acorn-jsx: 5.3.2(acorn@8.16.0) eslint-visitor-keys: 3.4.3 esprima@1.2.2: {} @@ -26247,6 +27405,42 @@ snapshots: transitivePeerDependencies: - supports-color + express@4.22.2: + dependencies: + accepts: 1.3.8 + array-flatten: 1.1.1 + body-parser: 1.20.6 + content-disposition: 0.5.4 + content-type: 1.0.5 + cookie: 0.7.1 + cookie-signature: 1.0.6 + debug: 2.6.9 + depd: 2.0.0 + encodeurl: 2.0.0 + escape-html: 1.0.3 + etag: 1.8.1 + finalhandler: 1.3.1 + fresh: 0.5.2 + http-errors: 2.0.1 + merge-descriptors: 1.0.3 + methods: 1.1.2 + on-finished: 2.4.1 + parseurl: 1.3.3 + path-to-regexp: 0.1.12 + proxy-addr: 2.0.7 + qs: 6.15.3 + range-parser: 1.2.1 + safe-buffer: 5.2.1 + send: 0.19.0 + serve-static: 1.16.2 + setprototypeof: 1.2.0 + statuses: 2.0.2 + type-is: 1.6.18 + utils-merge: 1.0.1 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + express@5.2.1: dependencies: accepts: 2.0.0 @@ -26326,6 +27520,20 @@ snapshots: fast-uri@3.0.6: {} + fast-xml-builder@1.3.1: + dependencies: + path-expression-matcher: 1.6.2 + xml-naming: 0.3.0 + + fast-xml-parser@5.11.1: + dependencies: + '@nodable/entities': 3.0.0 + fast-xml-builder: 1.3.1 + is-unsafe: 2.0.2 + path-expression-matcher: 1.6.2 + strnum: 2.4.2 + xml-naming: 0.3.0 + fastq@1.18.0: dependencies: reusify: 1.0.4 @@ -26346,6 +27554,10 @@ snapshots: dependencies: bser: 2.1.1 + fdir@6.5.0(picomatch@4.0.7): + optionalDependencies: + picomatch: 4.0.7 + fecha@4.2.3: {} fetch-blob@3.2.0: @@ -26497,12 +27709,21 @@ snapshots: node-abort-controller: 3.1.1 schema-utils: 3.3.0 semver: 7.6.3 - tapable: 2.2.1 + tapable: 2.3.3 typescript: 5.7.2 webpack: 5.97.1(@swc/core@1.10.11(@swc/helpers@0.5.15)) form-data-encoder@1.7.2: {} + form-data@2.5.6: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + es-set-tostringtag: 2.1.0 + hasown: 2.0.4 + mime-types: 2.1.35 + safe-buffer: 5.2.1 + form-data@3.0.2: dependencies: asynckit: 0.4.0 @@ -26559,6 +27780,12 @@ snapshots: jsonfile: 6.1.0 universalify: 2.0.1 + fs-extra@11.3.3: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + fs-extra@8.1.0: dependencies: graceful-fs: 4.2.11 @@ -26596,7 +27823,7 @@ snapshots: call-bound: 1.0.3 define-properties: 1.2.1 functions-have-names: 1.2.3 - hasown: 2.0.2 + hasown: 2.0.4 is-callable: 1.2.7 functions-have-names@1.2.3: {} @@ -26613,6 +27840,29 @@ snapshots: strip-ansi: 6.0.1 wide-align: 1.1.5 + gauge@4.0.4: + dependencies: + aproba: 2.0.0 + color-support: 1.1.3 + console-control-strings: 1.1.0 + has-unicode: 2.0.1 + signal-exit: 3.0.7 + string-width: 4.2.3 + strip-ansi: 6.0.1 + wide-align: 1.1.5 + optional: true + + gaxios@6.7.1(encoding@0.1.13): + dependencies: + extend: 3.0.2 + https-proxy-agent: 7.0.6 + is-stream: 2.0.1 + node-fetch: 2.7.0(encoding@0.1.13) + uuid: 9.0.1 + transitivePeerDependencies: + - encoding + - supports-color + gaxios@7.1.3: dependencies: extend: 3.0.2 @@ -26622,6 +27872,31 @@ snapshots: transitivePeerDependencies: - supports-color + gaxios@7.3.1: + dependencies: + extend: 3.0.2 + https-proxy-agent: 7.0.6 + node-fetch: 3.3.2 + transitivePeerDependencies: + - supports-color + + gcp-metadata@6.1.1(encoding@0.1.13): + dependencies: + gaxios: 6.7.1(encoding@0.1.13) + google-logging-utils: 0.0.2 + json-bigint: 1.0.0 + transitivePeerDependencies: + - encoding + - supports-color + + gcp-metadata@8.1.2: + dependencies: + gaxios: 7.3.1 + google-logging-utils: 1.1.3 + json-bigint: 1.0.0 + transitivePeerDependencies: + - supports-color + gcp-metadata@8.1.3: dependencies: gaxios: 7.1.3 @@ -26630,6 +27905,18 @@ snapshots: transitivePeerDependencies: - supports-color + gcp-metadata@9.0.3: + dependencies: + gaxios: 7.1.3 + google-logging-utils: 2.0.1 + json-bigint: 1.0.0 + transitivePeerDependencies: + - supports-color + + generate-function@2.3.1: + dependencies: + is-property: 1.0.2 + generic-names@4.0.0: dependencies: loader-utils: 3.3.1 @@ -26648,7 +27935,7 @@ snapshots: get-proto: 1.0.1 gopd: 1.2.0 has-symbols: 1.1.0 - hasown: 2.0.2 + hasown: 2.0.4 math-intrinsics: 1.1.0 get-own-enumerable-property-symbols@3.0.2: {} @@ -26689,6 +27976,8 @@ snapshots: transitivePeerDependencies: - supports-color + getopts@2.3.0: {} + git-hooks-list@1.0.3: {} github-from-package@0.0.0: {} @@ -26797,8 +28086,55 @@ snapshots: merge2: 1.4.1 slash: 3.0.0 + google-auth-library@10.9.1: + dependencies: + base64-js: 1.5.1 + ecdsa-sig-formatter: 1.0.11 + gaxios: 7.3.1 + gcp-metadata: 8.1.2 + google-logging-utils: 1.1.3 + jws: 4.0.1 + transitivePeerDependencies: + - supports-color + + google-auth-library@9.15.1(encoding@0.1.13): + dependencies: + base64-js: 1.5.1 + ecdsa-sig-formatter: 1.0.11 + gaxios: 6.7.1(encoding@0.1.13) + gcp-metadata: 6.1.1(encoding@0.1.13) + gtoken: 7.1.0(encoding@0.1.13) + jws: 4.0.1 + transitivePeerDependencies: + - encoding + - supports-color + + google-logging-utils@0.0.2: {} + google-logging-utils@1.1.3: {} + google-logging-utils@2.0.1: {} + + googleapis-common@7.2.0(encoding@0.1.13): + dependencies: + extend: 3.0.2 + gaxios: 6.7.1(encoding@0.1.13) + google-auth-library: 9.15.1(encoding@0.1.13) + qs: 6.14.0 + url-template: 2.0.8 + uuid: 9.0.1 + transitivePeerDependencies: + - encoding + - supports-color + + googleapis@137.1.0(encoding@0.1.13): + dependencies: + google-auth-library: 9.15.1(encoding@0.1.13) + googleapis-common: 7.2.0(encoding@0.1.13) + transitivePeerDependencies: + - encoding + - supports-color + gopd@1.2.0: {} got@11.8.6: @@ -26821,6 +28157,14 @@ snapshots: growl@1.10.5: {} + gtoken@7.1.0(encoding@0.1.13): + dependencies: + gaxios: 6.7.1(encoding@0.1.13) + jws: 4.0.1 + transitivePeerDependencies: + - encoding + - supports-color + gunzip-maybe@1.4.2: dependencies: browserify-zlib: 0.1.4 @@ -26948,9 +28292,9 @@ snapshots: dependencies: '@types/html-minifier-terser': 6.1.0 html-minifier-terser: 6.1.0 - lodash: 4.17.21 + lodash: 4.18.1 pretty-error: 4.0.0 - tapable: 2.2.1 + tapable: 2.3.3 optionalDependencies: webpack: 5.96.1(@swc/core@1.10.11(@swc/helpers@0.5.15)) @@ -27005,6 +28349,21 @@ snapshots: transitivePeerDependencies: - supports-color + http-proxy-agent@5.0.0: + dependencies: + '@tootallnate/once': 2.0.1 + agent-base: 6.0.2 + debug: 4.4.3(supports-color@8.1.1) + transitivePeerDependencies: + - supports-color + + http-proxy-agent@7.0.2: + dependencies: + agent-base: 7.1.3 + debug: 4.4.3(supports-color@8.1.1) + transitivePeerDependencies: + - supports-color + http-proxy-middleware@2.0.7(@types/express@4.17.13): dependencies: '@types/http-proxy': 1.17.15 @@ -27070,10 +28429,6 @@ snapshots: dependencies: safer-buffer: 2.1.2 - icss-utils@5.1.0(postcss@8.5.1): - dependencies: - postcss: 8.5.1 - icss-utils@5.1.0(postcss@8.5.15): dependencies: postcss: 8.5.15 @@ -27137,7 +28492,7 @@ snapshots: cli-width: 3.0.0 external-editor: 3.1.0 figures: 3.2.0 - lodash: 4.17.21 + lodash: 4.18.1 mute-stream: 0.0.8 ora: 5.4.1 run-async: 2.4.1 @@ -27176,7 +28531,7 @@ snapshots: cli-width: 4.1.0 external-editor: 3.1.0 figures: 3.2.0 - lodash: 4.17.21 + lodash: 4.18.1 mute-stream: 1.0.0 ora: 5.4.1 run-async: 3.0.0 @@ -27190,9 +28545,11 @@ snapshots: internal-slot@1.1.0: dependencies: es-errors: 1.3.0 - hasown: 2.0.2 + hasown: 2.0.4 side-channel: 1.1.0 + interpret@2.2.0: {} + ioredis@4.28.5: dependencies: cluster-key-slot: 1.1.2 @@ -27311,6 +28668,8 @@ snapshots: is-docker@2.2.1: {} + is-docker@3.0.0: {} + is-extglob@2.1.1: {} is-finalizationregistry@1.1.1: @@ -27340,8 +28699,15 @@ snapshots: is-hexadecimal@2.0.1: {} + is-inside-container@1.0.0: + dependencies: + is-docker: 3.0.0 + is-interactive@1.0.0: {} + is-lambda@1.0.1: + optional: true + is-map@2.0.3: {} is-module@1.0.0: {} @@ -27367,6 +28733,8 @@ snapshots: is-promise@4.0.0: {} + is-property@1.0.2: {} + is-reference@3.0.3: dependencies: '@types/estree': 1.0.9 @@ -27409,6 +28777,8 @@ snapshots: is-unicode-supported@0.1.0: {} + is-unsafe@2.0.2: {} + is-weakmap@2.0.2: {} is-weakref@1.1.0: @@ -27426,6 +28796,10 @@ snapshots: dependencies: is-docker: 2.2.1 + is-wsl@3.1.1: + dependencies: + is-inside-container: 1.0.0 + isarray@0.0.1: {} isarray@1.0.0: {} @@ -27442,7 +28816,7 @@ snapshots: istanbul-lib-instrument@4.0.3: dependencies: - '@babel/core': 7.26.7 + '@babel/core': 7.29.7 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 6.3.1 @@ -27618,16 +28992,16 @@ snapshots: - babel-plugin-macros - supports-color - jest-cli@27.5.1(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3)): + jest-cli@27.5.1(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@24.13.3)(typescript@5.7.3)): dependencies: - '@jest/core': 27.5.1(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3)) + '@jest/core': 27.5.1(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@24.13.3)(typescript@5.7.3)) '@jest/test-result': 27.5.1 '@jest/types': 27.5.1 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 import-local: 3.2.0 - jest-config: 27.5.1(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3)) + jest-config: 27.5.1(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@24.13.3)(typescript@5.7.3)) jest-util: 27.5.1 jest-validate: 27.5.1 prompts: 2.4.2 @@ -27677,7 +29051,7 @@ snapshots: - supports-color - ts-node - jest-config@27.5.1(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3)): + jest-config@27.5.1(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@24.13.3)(typescript@5.7.3)): dependencies: '@babel/core': 7.29.7 '@jest/test-sequencer': 27.5.1 @@ -27704,7 +29078,7 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - ts-node: 10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3) + ts-node: 10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@24.13.3)(typescript@5.7.3) transitivePeerDependencies: - bufferutil - canvas @@ -28085,7 +29459,7 @@ snapshots: jest-pnp-resolver: 1.2.3(jest-resolve@27.5.1) jest-util: 27.5.1 jest-validate: 27.5.1 - resolve: 1.22.10 + resolve: 1.22.12 resolve.exports: 1.1.1 slash: 3.0.0 @@ -28097,7 +29471,7 @@ snapshots: jest-pnp-resolver: 1.2.3(jest-resolve@28.1.3) jest-util: 28.1.3 jest-validate: 28.1.3 - resolve: 1.22.10 + resolve: 1.22.12 resolve.exports: 1.1.1 slash: 3.0.0 @@ -28109,7 +29483,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 @@ -28283,9 +29657,9 @@ snapshots: jest-snapshot@27.5.1: dependencies: '@babel/core': 7.29.7 - '@babel/generator': 7.26.5 - '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.29.7) - '@babel/traverse': 7.26.7 + '@babel/generator': 7.29.7 + '@babel/plugin-syntax-typescript': 7.29.7(@babel/core@7.29.7) + '@babel/traverse': 7.29.7 '@babel/types': 7.29.7 '@jest/transform': 27.5.1 '@jest/types': 27.5.1 @@ -28309,17 +29683,17 @@ snapshots: jest-snapshot@28.1.3: dependencies: - '@babel/core': 7.26.7 - '@babel/generator': 7.26.5 - '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.7) - '@babel/traverse': 7.26.7 - '@babel/types': 7.26.7 + '@babel/core': 7.29.7 + '@babel/generator': 7.29.7 + '@babel/plugin-syntax-typescript': 7.29.7(@babel/core@7.29.7) + '@babel/traverse': 7.29.7 + '@babel/types': 7.29.7 '@jest/expect-utils': 28.1.3 '@jest/transform': 28.1.3 '@jest/types': 28.1.3 '@types/babel__traverse': 7.20.6 '@types/prettier': 2.7.3 - babel-preset-current-node-syntax: 1.1.0(@babel/core@7.26.7) + babel-preset-current-node-syntax: 1.1.0(@babel/core@7.29.7) chalk: 4.1.2 expect: 28.1.3 graceful-fs: 4.2.11 @@ -28337,15 +29711,15 @@ snapshots: jest-snapshot@29.7.0: dependencies: - '@babel/core': 7.26.7 - '@babel/generator': 7.26.5 - '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.7) - '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.7) - '@babel/types': 7.26.7 + '@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.7) + babel-preset-current-node-syntax: 1.1.0(@babel/core@7.29.7) chalk: 4.1.2 expect: 29.7.0 graceful-fs: 4.2.11 @@ -28414,11 +29788,11 @@ snapshots: leven: 3.1.0 pretty-format: 29.7.0 - jest-watch-typeahead@1.1.0(jest@27.5.1(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3))): + jest-watch-typeahead@1.1.0(jest@27.5.1(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@24.13.3)(typescript@5.7.3))): dependencies: ansi-escapes: 4.3.2 chalk: 4.1.2 - jest: 27.5.1(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3)) + jest: 27.5.1(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@24.13.3)(typescript@5.7.3)) jest-regex-util: 28.0.2 jest-watcher: 28.1.3 slash: 4.0.0 @@ -28482,11 +29856,11 @@ snapshots: merge-stream: 2.0.0 supports-color: 8.1.1 - jest@27.5.1(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3)): + jest@27.5.1(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@24.13.3)(typescript@5.7.3)): dependencies: - '@jest/core': 27.5.1(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3)) + '@jest/core': 27.5.1(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@24.13.3)(typescript@5.7.3)) import-local: 3.2.0 - jest-cli: 27.5.1(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3)) + jest-cli: 27.5.1(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@24.13.3)(typescript@5.7.3)) transitivePeerDependencies: - bufferutil - canvas @@ -28521,6 +29895,8 @@ snapshots: jose@6.1.3: {} + js-md4@0.3.2: {} + js-tokens@4.0.0: {} js-yaml@3.14.1: @@ -28614,6 +29990,8 @@ snapshots: - supports-color - utf-8-validate + jsep@1.4.0: {} + jsesc@3.0.2: {} jsesc@3.1.0: {} @@ -28663,6 +30041,12 @@ snapshots: optionalDependencies: graceful-fs: 4.2.11 + jsonpath-plus@10.4.0: + dependencies: + '@jsep-plugin/assignment': 1.3.0(jsep@1.4.0) + '@jsep-plugin/regex': 1.0.4(jsep@1.4.0) + jsep: 1.4.0 + jsonpath@1.1.1: dependencies: esprima: 1.2.2 @@ -28671,6 +30055,19 @@ snapshots: jsonpointer@5.0.1: {} + jsonwebtoken@9.0.3: + dependencies: + jws: 4.0.1 + lodash.includes: 4.3.0 + lodash.isboolean: 3.0.3 + lodash.isinteger: 4.0.4 + lodash.isnumber: 3.0.3 + lodash.isplainobject: 4.0.6 + lodash.isstring: 4.0.1 + lodash.once: 4.1.1 + ms: 2.1.3 + semver: 7.6.3 + jsx-ast-utils@3.3.5: dependencies: array-includes: 3.1.8 @@ -28680,6 +30077,17 @@ snapshots: just-extend@6.2.0: {} + jwa@2.0.1: + dependencies: + buffer-equal-constant-time: 1.0.1 + ecdsa-sig-formatter: 1.0.11 + safe-buffer: 5.2.1 + + jws@4.0.1: + dependencies: + jwa: 2.0.1 + safe-buffer: 5.2.1 + keyv@4.5.4: dependencies: json-buffer: 3.0.1 @@ -28696,6 +30104,72 @@ snapshots: klona@2.0.6: {} + knex@3.2.10(mysql2@3.20.0(@types/node@22.12.0))(pg@8.20.0): + dependencies: + colorette: 2.0.19 + commander: 10.0.1 + debug: 4.3.4(supports-color@8.1.1) + escalade: 3.2.0 + esm: 3.2.25 + get-package-type: 0.1.0 + getopts: 2.3.0 + interpret: 2.2.0 + lodash: 4.18.1 + pg-connection-string: 2.6.2 + rechoir: 0.8.0 + resolve-from: 5.0.0 + tarn: 3.1.2 + tildify: 2.0.0 + optionalDependencies: + mysql2: 3.20.0(@types/node@22.12.0) + pg: 8.20.0 + transitivePeerDependencies: + - supports-color + + knex@3.2.10(pg@8.20.0)(sqlite3@5.1.7): + dependencies: + colorette: 2.0.19 + commander: 10.0.1 + debug: 4.3.4(supports-color@8.1.1) + escalade: 3.2.0 + esm: 3.2.25 + get-package-type: 0.1.0 + getopts: 2.3.0 + interpret: 2.2.0 + lodash: 4.18.1 + pg-connection-string: 2.6.2 + rechoir: 0.8.0 + resolve-from: 5.0.0 + tarn: 3.1.2 + tildify: 2.0.0 + optionalDependencies: + pg: 8.20.0 + sqlite3: 5.1.7 + transitivePeerDependencies: + - supports-color + + knex@3.2.10(pg@8.20.0)(tedious@19.2.1): + dependencies: + colorette: 2.0.19 + commander: 10.0.1 + debug: 4.3.4(supports-color@8.1.1) + escalade: 3.2.0 + esm: 3.2.25 + get-package-type: 0.1.0 + getopts: 2.3.0 + interpret: 2.2.0 + lodash: 4.18.1 + pg-connection-string: 2.6.2 + rechoir: 0.8.0 + resolve-from: 5.0.0 + tarn: 3.1.2 + tildify: 2.0.0 + optionalDependencies: + pg: 8.20.0 + tedious: 19.2.1 + transitivePeerDependencies: + - supports-color + kuler@2.0.0: {} langsmith@0.7.17(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.220.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.9.0(@opentelemetry/api@1.9.0))(openai@6.45.0(@aws-sdk/credential-provider-node@3.972.71)(@smithy/signature-v4@5.6.9)(ws@8.18.0)(zod@4.4.3))(ws@8.18.0): @@ -28752,8 +30226,6 @@ snapshots: pify: 3.0.0 strip-bom: 3.0.0 - loader-runner@4.3.0: {} - loader-runner@4.3.2: {} loader-utils@2.0.4: @@ -28777,6 +30249,8 @@ snapshots: dependencies: p-locate: 5.0.0 + lodash-es@4.18.1: {} + lodash.camelcase@4.3.0: {} lodash.debounce@4.0.8: {} @@ -28789,12 +30263,26 @@ snapshots: lodash.get@4.4.2: {} + lodash.includes@4.3.0: {} + lodash.isarguments@3.1.0: {} + lodash.isboolean@3.0.3: {} + + lodash.isinteger@4.0.4: {} + + lodash.isnumber@3.0.3: {} + + lodash.isplainobject@4.0.6: {} + + lodash.isstring@4.0.1: {} + lodash.memoize@4.1.2: {} lodash.merge@4.6.2: {} + lodash.once@4.1.1: {} + lodash.sortby@4.7.0: {} lodash.topath@4.5.2: {} @@ -28855,6 +30343,8 @@ snapshots: lru-cache@7.18.3: {} + lru.min@1.1.4: {} + lz-string@1.5.0: {} magic-string@0.25.9: @@ -28863,7 +30353,7 @@ snapshots: magic-string@0.30.8: dependencies: - '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/sourcemap-codec': 1.5.5 make-dir@3.1.0: dependencies: @@ -28875,10 +30365,41 @@ snapshots: make-error@1.3.6: {} + make-fetch-happen@9.1.0: + dependencies: + agentkeepalive: 4.6.0 + cacache: 15.3.0 + http-cache-semantics: 4.2.0 + http-proxy-agent: 4.0.1 + https-proxy-agent: 5.0.1 + is-lambda: 1.0.1 + lru-cache: 6.0.0 + minipass: 3.3.6 + minipass-collect: 1.0.2 + minipass-fetch: 1.4.1 + minipass-flush: 1.0.7 + minipass-pipeline: 1.2.4 + negotiator: 0.6.4 + promise-retry: 2.0.1 + socks-proxy-agent: 6.2.1 + ssri: 8.0.1 + transitivePeerDependencies: + - bluebird + - supports-color + optional: true + makeerror@1.0.12: dependencies: tmpl: 1.0.5 + mariadb@3.4.5: + dependencies: + '@types/geojson': 7946.0.16 + '@types/node': 24.13.3 + denque: 2.1.0 + iconv-lite: 0.6.3 + lru-cache: 10.4.3 + markdown-extensions@1.1.1: {} markdown-it-anchor@8.6.7(@types/markdown-it@12.2.3)(markdown-it@12.3.2): @@ -29396,6 +30917,8 @@ snapshots: braces: 3.0.3 picomatch: 2.3.1 + mikro-orm@6.6.16: {} + mime-db@1.52.0: {} mime-db@1.54.0: {} @@ -29412,6 +30935,8 @@ snapshots: mime@2.6.0: {} + mime@3.0.0: {} + mimic-fn@2.1.0: {} mimic-response@1.0.1: {} @@ -29422,8 +30947,8 @@ snapshots: mini-css-extract-plugin@2.9.2(webpack@5.96.1(@swc/core@1.10.11(@swc/helpers@0.5.15))): dependencies: - schema-utils: 4.3.0 - tapable: 2.2.1 + schema-utils: 4.3.3 + tapable: 2.3.3 webpack: 5.96.1(@swc/core@1.10.11(@swc/helpers@0.5.15)) mini-svg-data-uri@1.4.4: {} @@ -29499,6 +31024,15 @@ snapshots: dependencies: minipass: 3.3.6 + minipass-fetch@1.4.1: + dependencies: + minipass: 3.3.6 + minipass-sized: 1.0.3 + minizlib: 2.1.2 + optionalDependencies: + encoding: 0.1.13 + optional: true + minipass-flush@1.0.7: dependencies: minipass: 3.3.6 @@ -29507,6 +31041,11 @@ snapshots: dependencies: minipass: 3.3.6 + minipass-sized@1.0.3: + dependencies: + minipass: 3.3.6 + optional: true + minipass@3.3.6: dependencies: yallist: 4.0.0 @@ -29651,12 +31190,28 @@ snapshots: mute-stream@1.0.0: {} + mysql2@3.20.0(@types/node@22.12.0): + dependencies: + '@types/node': 22.12.0 + aws-ssl-profiles: 1.1.2 + denque: 2.1.0 + generate-function: 2.3.1 + iconv-lite: 0.7.2 + long: 5.3.2 + lru.min: 1.1.4 + named-placeholders: 1.1.6 + sql-escaper: 1.5.1 + mz@2.7.0: dependencies: any-promise: 1.3.0 object-assign: 4.1.1 thenify-all: 1.6.0 + named-placeholders@1.1.6: + dependencies: + lru.min: 1.1.4 + nanoid@3.1.20: {} nanoid@3.3.12: {} @@ -29667,6 +31222,8 @@ snapshots: napi-build-utils@2.0.0: {} + native-duplexpair@1.0.0: {} + natural-compare-lite@1.4.0: {} natural-compare@1.4.0: {} @@ -29760,19 +31317,25 @@ snapshots: node-addon-api@6.1.0: {} + node-addon-api@7.1.1: {} + node-domexception@1.0.0: {} node-emoji@1.11.0: dependencies: - lodash: 4.17.21 + lodash: 4.18.1 - node-fetch@2.6.9: + node-fetch@2.6.9(encoding@0.1.13): dependencies: whatwg-url: 5.0.0 + optionalDependencies: + encoding: 0.1.13 - node-fetch@2.7.0: + node-fetch@2.7.0(encoding@0.1.13): dependencies: whatwg-url: 5.0.0 + optionalDependencies: + encoding: 0.1.13 node-fetch@3.3.2: dependencies: @@ -29784,6 +31347,23 @@ snapshots: node-gyp-build@4.8.4: {} + node-gyp@8.4.1: + dependencies: + env-paths: 2.2.1 + glob: 7.2.3 + graceful-fs: 4.2.11 + make-fetch-happen: 9.1.0 + nopt: 5.0.0 + npmlog: 6.0.2 + rimraf: 3.0.2 + semver: 7.6.3 + tar: 6.2.1 + which: 2.0.2 + transitivePeerDependencies: + - bluebird + - supports-color + optional: true + node-int64@0.4.0: {} node-preload@0.2.1: @@ -29847,6 +31427,14 @@ snapshots: gauge: 3.0.2 set-blocking: 2.0.0 + npmlog@6.0.2: + dependencies: + are-we-there-yet: 3.0.1 + console-control-strings: 1.1.0 + gauge: 4.0.4 + set-blocking: 2.0.0 + optional: true + nth-check@1.0.2: dependencies: boolbase: 1.0.0 @@ -29897,6 +31485,8 @@ snapshots: object-inspect@1.13.3: {} + object-inspect@1.13.4: {} + object-is@1.1.6: dependencies: call-bind: 1.0.8 @@ -29975,13 +31565,20 @@ snapshots: dependencies: mimic-fn: 2.1.0 + open@10.2.0: + dependencies: + default-browser: 5.5.1 + define-lazy-prop: 3.0.0 + is-inside-container: 1.0.0 + wsl-utils: 0.1.0 + open@8.4.2: dependencies: define-lazy-prop: 2.0.0 is-docker: 2.2.1 is-wsl: 2.2.0 - openai@4.104.0(ws@8.18.0)(zod@3.24.1): + openai@4.104.0(encoding@0.1.13)(ws@8.18.0)(zod@3.24.1): dependencies: '@types/node': 18.19.130 '@types/node-fetch': 2.6.12 @@ -29989,7 +31586,7 @@ snapshots: agentkeepalive: 4.6.0 form-data-encoder: 1.7.2 formdata-node: 4.4.1 - node-fetch: 2.7.0 + node-fetch: 2.7.0(encoding@0.1.13) optionalDependencies: ws: 8.18.0 zod: 3.24.1 @@ -30181,6 +31778,8 @@ snapshots: path-exists@4.0.0: {} + path-expression-matcher@1.6.2: {} + path-is-absolute@1.0.1: {} path-key@2.0.1: {} @@ -30237,8 +31836,21 @@ snapshots: estree-walker: 3.0.3 is-reference: 3.0.3 + pg-cloudflare@1.4.0: + optional: true + + pg-connection-string@2.14.0: {} + + pg-connection-string@2.6.2: {} + pg-int8@1.0.1: {} + pg-pool@3.14.0(pg@8.20.0): + dependencies: + pg: 8.20.0 + + pg-protocol@1.16.0: {} + pg-protocol@1.7.0: {} pg-types@2.2.0: @@ -30249,6 +31861,20 @@ snapshots: postgres-date: 1.0.7 postgres-interval: 1.2.0 + pg@8.20.0: + dependencies: + pg-connection-string: 2.14.0 + pg-pool: 3.14.0(pg@8.20.0) + pg-protocol: 1.16.0 + pg-types: 2.2.0 + pgpass: 1.0.5 + optionalDependencies: + pg-cloudflare: 1.4.0 + + pgpass@1.0.5: + dependencies: + split2: 4.2.0 + picocolors@0.2.1: {} picocolors@1.0.0: {} @@ -30259,6 +31885,8 @@ snapshots: picomatch@4.0.1: {} + picomatch@4.0.7: {} + pidtree@0.3.1: {} pify@2.3.0: {} @@ -30299,9 +31927,9 @@ snapshots: browserslist: 4.24.4 postcss: 8.5.1 - postcss-calc@8.2.4(postcss@8.5.1): + postcss-calc@8.2.4(postcss@8.5.15): dependencies: - postcss: 8.5.1 + postcss: 8.5.15 postcss-selector-parser: 6.1.2 postcss-value-parser: 4.2.0 @@ -30325,18 +31953,18 @@ snapshots: postcss: 8.5.1 postcss-value-parser: 4.2.0 - postcss-colormin@5.3.1(postcss@8.5.1): + postcss-colormin@5.3.1(postcss@8.5.15): dependencies: browserslist: 4.28.2 caniuse-api: 3.0.0 colord: 2.9.3 - postcss: 8.5.1 + postcss: 8.5.15 postcss-value-parser: 4.2.0 - postcss-convert-values@5.1.3(postcss@8.5.1): + postcss-convert-values@5.1.3(postcss@8.5.15): dependencies: browserslist: 4.28.2 - postcss: 8.5.1 + postcss: 8.5.15 postcss-value-parser: 4.2.0 postcss-custom-media@8.0.2(postcss@8.5.1): @@ -30359,25 +31987,21 @@ snapshots: postcss: 8.5.1 postcss-selector-parser: 6.1.2 - postcss-discard-comments@5.1.2(postcss@8.5.1): - dependencies: - postcss: 8.5.1 - - postcss-discard-duplicates@5.1.0(postcss@8.5.1): + postcss-discard-comments@5.1.2(postcss@8.5.15): dependencies: - postcss: 8.5.1 + postcss: 8.5.15 postcss-discard-duplicates@5.1.0(postcss@8.5.15): dependencies: postcss: 8.5.15 - postcss-discard-empty@5.1.1(postcss@8.5.1): + postcss-discard-empty@5.1.1(postcss@8.5.15): dependencies: - postcss: 8.5.1 + postcss: 8.5.15 - postcss-discard-overridden@5.1.0(postcss@8.5.1): + postcss-discard-overridden@5.1.0(postcss@8.5.15): dependencies: - postcss: 8.5.1 + postcss: 8.5.15 postcss-double-position-gradients@3.1.2(postcss@8.5.1): dependencies: @@ -30422,7 +32046,7 @@ snapshots: postcss: 8.5.1 postcss-value-parser: 4.2.0 read-cache: 1.0.0 - resolve: 1.22.10 + resolve: 1.22.12 postcss-initial@4.0.1(postcss@8.5.1): dependencies: @@ -30431,7 +32055,7 @@ snapshots: postcss-js@3.0.3: dependencies: camelcase-css: 2.0.1 - postcss: 8.5.1 + postcss: 8.5.15 postcss-js@4.0.1(postcss@8.5.1): dependencies: @@ -30460,6 +32084,14 @@ snapshots: postcss: 8.5.1 ts-node: 10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3) + postcss-load-config@4.0.2(postcss@8.5.1)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@24.13.3)(typescript@5.7.3)): + dependencies: + lilconfig: 3.1.3 + yaml: 2.7.0 + optionalDependencies: + postcss: 8.5.1 + ts-node: 10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@24.13.3)(typescript@5.7.3) + postcss-load-config@4.0.2(postcss@8.5.15)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3)): dependencies: lilconfig: 3.1.3 @@ -30484,59 +32116,48 @@ snapshots: dependencies: postcss: 8.5.1 - postcss-merge-longhand@5.1.7(postcss@8.5.1): + postcss-merge-longhand@5.1.7(postcss@8.5.15): dependencies: - postcss: 8.5.1 + postcss: 8.5.15 postcss-value-parser: 4.2.0 - stylehacks: 5.1.1(postcss@8.5.1) + stylehacks: 5.1.1(postcss@8.5.15) - postcss-merge-rules@5.1.4(postcss@8.5.1): + postcss-merge-rules@5.1.4(postcss@8.5.15): dependencies: browserslist: 4.28.2 caniuse-api: 3.0.0 - cssnano-utils: 3.1.0(postcss@8.5.1) - postcss: 8.5.1 + cssnano-utils: 3.1.0(postcss@8.5.15) + postcss: 8.5.15 postcss-selector-parser: 6.1.2 - postcss-minify-font-values@5.1.0(postcss@8.5.1): + postcss-minify-font-values@5.1.0(postcss@8.5.15): dependencies: - postcss: 8.5.1 + postcss: 8.5.15 postcss-value-parser: 4.2.0 - postcss-minify-gradients@5.1.1(postcss@8.5.1): + postcss-minify-gradients@5.1.1(postcss@8.5.15): dependencies: colord: 2.9.3 - cssnano-utils: 3.1.0(postcss@8.5.1) - postcss: 8.5.1 + cssnano-utils: 3.1.0(postcss@8.5.15) + postcss: 8.5.15 postcss-value-parser: 4.2.0 - postcss-minify-params@5.1.4(postcss@8.5.1): + postcss-minify-params@5.1.4(postcss@8.5.15): dependencies: browserslist: 4.28.2 - cssnano-utils: 3.1.0(postcss@8.5.1) - postcss: 8.5.1 + cssnano-utils: 3.1.0(postcss@8.5.15) + postcss: 8.5.15 postcss-value-parser: 4.2.0 - postcss-minify-selectors@5.2.1(postcss@8.5.1): + postcss-minify-selectors@5.2.1(postcss@8.5.15): dependencies: - postcss: 8.5.1 + postcss: 8.5.15 postcss-selector-parser: 6.1.2 - postcss-modules-extract-imports@3.1.0(postcss@8.5.1): - dependencies: - postcss: 8.5.1 - postcss-modules-extract-imports@3.1.0(postcss@8.5.15): dependencies: postcss: 8.5.15 - postcss-modules-local-by-default@4.2.0(postcss@8.5.1): - dependencies: - icss-utils: 5.1.0(postcss@8.5.1) - postcss: 8.5.1 - postcss-selector-parser: 7.0.0 - postcss-value-parser: 4.2.0 - postcss-modules-local-by-default@4.2.0(postcss@8.5.15): dependencies: icss-utils: 5.1.0(postcss@8.5.15) @@ -30544,21 +32165,11 @@ snapshots: postcss-selector-parser: 7.0.0 postcss-value-parser: 4.2.0 - postcss-modules-scope@3.2.1(postcss@8.5.1): - dependencies: - postcss: 8.5.1 - postcss-selector-parser: 7.0.0 - postcss-modules-scope@3.2.1(postcss@8.5.15): dependencies: postcss: 8.5.15 postcss-selector-parser: 7.0.0 - postcss-modules-values@4.0.0(postcss@8.5.1): - dependencies: - icss-utils: 5.1.0(postcss@8.5.1) - postcss: 8.5.1 - postcss-modules-values@4.0.0(postcss@8.5.15): dependencies: icss-utils: 5.1.0(postcss@8.5.15) @@ -30592,50 +32203,50 @@ snapshots: postcss: 8.5.1 postcss-selector-parser: 6.1.2 - postcss-normalize-charset@5.1.0(postcss@8.5.1): + postcss-normalize-charset@5.1.0(postcss@8.5.15): dependencies: - postcss: 8.5.1 + postcss: 8.5.15 - postcss-normalize-display-values@5.1.0(postcss@8.5.1): + postcss-normalize-display-values@5.1.0(postcss@8.5.15): dependencies: - postcss: 8.5.1 + postcss: 8.5.15 postcss-value-parser: 4.2.0 - postcss-normalize-positions@5.1.1(postcss@8.5.1): + postcss-normalize-positions@5.1.1(postcss@8.5.15): dependencies: - postcss: 8.5.1 + postcss: 8.5.15 postcss-value-parser: 4.2.0 - postcss-normalize-repeat-style@5.1.1(postcss@8.5.1): + postcss-normalize-repeat-style@5.1.1(postcss@8.5.15): dependencies: - postcss: 8.5.1 + postcss: 8.5.15 postcss-value-parser: 4.2.0 - postcss-normalize-string@5.1.0(postcss@8.5.1): + postcss-normalize-string@5.1.0(postcss@8.5.15): dependencies: - postcss: 8.5.1 + postcss: 8.5.15 postcss-value-parser: 4.2.0 - postcss-normalize-timing-functions@5.1.0(postcss@8.5.1): + postcss-normalize-timing-functions@5.1.0(postcss@8.5.15): dependencies: - postcss: 8.5.1 + postcss: 8.5.15 postcss-value-parser: 4.2.0 - postcss-normalize-unicode@5.1.1(postcss@8.5.1): + postcss-normalize-unicode@5.1.1(postcss@8.5.15): dependencies: browserslist: 4.28.2 - postcss: 8.5.1 + postcss: 8.5.15 postcss-value-parser: 4.2.0 - postcss-normalize-url@5.1.0(postcss@8.5.1): + postcss-normalize-url@5.1.0(postcss@8.5.15): dependencies: normalize-url: 6.1.0 - postcss: 8.5.1 + postcss: 8.5.15 postcss-value-parser: 4.2.0 - postcss-normalize-whitespace@5.1.1(postcss@8.5.1): + postcss-normalize-whitespace@5.1.1(postcss@8.5.15): dependencies: - postcss: 8.5.1 + postcss: 8.5.15 postcss-value-parser: 4.2.0 postcss-normalize@10.0.1(browserslist@4.24.4)(postcss@8.5.1): @@ -30650,10 +32261,10 @@ snapshots: dependencies: postcss: 8.5.1 - postcss-ordered-values@5.1.3(postcss@8.5.1): + postcss-ordered-values@5.1.3(postcss@8.5.15): dependencies: - cssnano-utils: 3.1.0(postcss@8.5.1) - postcss: 8.5.1 + cssnano-utils: 3.1.0(postcss@8.5.15) + postcss: 8.5.15 postcss-value-parser: 4.2.0 postcss-overflow-shorthand@3.0.4(postcss@8.5.1): @@ -30687,7 +32298,7 @@ snapshots: '@csstools/postcss-trigonometric-functions': 1.0.2(postcss@8.5.1) '@csstools/postcss-unset-value': 1.0.2(postcss@8.5.1) autoprefixer: 10.4.20(postcss@8.5.1) - browserslist: 4.24.4 + browserslist: 4.28.2 css-blank-pseudo: 3.0.3(postcss@8.5.1) css-has-pseudo: 3.0.4(postcss@8.5.1) css-prefers-color-scheme: 6.0.3(postcss@8.5.1) @@ -30728,15 +32339,15 @@ snapshots: postcss: 8.5.1 postcss-selector-parser: 6.1.2 - postcss-reduce-initial@5.1.2(postcss@8.5.1): + postcss-reduce-initial@5.1.2(postcss@8.5.15): dependencies: browserslist: 4.28.2 caniuse-api: 3.0.0 - postcss: 8.5.1 + postcss: 8.5.15 - postcss-reduce-transforms@5.1.0(postcss@8.5.1): + postcss-reduce-transforms@5.1.0(postcss@8.5.15): dependencies: - postcss: 8.5.1 + postcss: 8.5.15 postcss-value-parser: 4.2.0 postcss-replace-overflow-wrap@4.0.0(postcss@8.5.1): @@ -30758,15 +32369,15 @@ snapshots: cssesc: 3.0.0 util-deprecate: 1.0.2 - postcss-svgo@5.1.0(postcss@8.5.1): + postcss-svgo@5.1.0(postcss@8.5.15): dependencies: - postcss: 8.5.1 + postcss: 8.5.15 postcss-value-parser: 4.2.0 svgo: 2.8.0 - postcss-unique-selectors@5.1.1(postcss@8.5.1): + postcss-unique-selectors@5.1.1(postcss@8.5.15): dependencies: - postcss: 8.5.1 + postcss: 8.5.15 postcss-selector-parser: 6.1.2 postcss-value-parser@3.3.1: {} @@ -30798,14 +32409,20 @@ snapshots: postgres-array@2.0.0: {} + postgres-array@3.0.4: {} + postgres-bytea@1.0.0: {} postgres-date@1.0.7: {} + postgres-date@2.1.0: {} + postgres-interval@1.2.0: dependencies: xtend: 4.0.2 + postgres-interval@4.0.2: {} + prebuild-install@7.1.3: dependencies: detect-libc: 2.0.3 @@ -30841,7 +32458,7 @@ snapshots: pretty-error@4.0.0: dependencies: - lodash: 4.17.21 + lodash: 4.18.1 renderkid: 3.0.0 pretty-format@26.6.2: @@ -30882,8 +32499,16 @@ snapshots: dependencies: fromentries: 1.3.2 + process@0.11.10: {} + promise-inflight@1.0.1: {} + promise-retry@2.0.1: + dependencies: + err-code: 2.0.3 + retry: 0.12.0 + optional: true + promise@8.3.0: dependencies: asap: 2.0.6 @@ -31005,7 +32630,7 @@ snapshots: dependencies: commander: 8.3.0 glob: 7.2.3 - postcss: 8.5.1 + postcss: 8.5.15 postcss-selector-parser: 6.1.2 q@1.5.1: {} @@ -31022,6 +32647,11 @@ snapshots: dependencies: side-channel: 1.1.0 + qs@6.15.3: + dependencies: + es-define-property: 1.0.1 + side-channel: 1.1.1 + querystringify@2.2.0: {} queue-microtask@1.2.3: {} @@ -31081,7 +32711,7 @@ snapshots: dependencies: '@babel/code-frame': 7.26.2 address: 1.2.2 - browserslist: 4.24.4 + browserslist: 4.28.2 chalk: 4.1.2 cross-spawn: 7.0.6 detect-port-alt: 1.1.6 @@ -31136,7 +32766,7 @@ snapshots: react-refresh@0.14.2: {} - react-scripts@5.0.1(@babel/plugin-syntax-flow@7.26.0(@babel/core@7.26.7))(@babel/plugin-transform-react-jsx@7.25.9(@babel/core@7.26.7))(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/babel__core@7.20.5)(eslint@8.57.1)(react@17.0.2)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3))(type-fest@0.21.3)(typescript@5.7.3): + react-scripts@5.0.1(@babel/plugin-syntax-flow@7.26.0(@babel/core@7.26.7))(@babel/plugin-transform-react-jsx@7.25.9(@babel/core@7.26.7))(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/babel__core@7.20.5)(eslint@8.57.1)(react@17.0.2)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@24.13.3)(typescript@5.7.3))(type-fest@0.21.3)(typescript@5.7.3): dependencies: '@babel/core': 7.26.7 '@pmmmwh/react-refresh-webpack-plugin': 0.5.15(react-refresh@0.11.0)(type-fest@0.21.3)(webpack-dev-server@4.15.2(webpack@5.96.1(@swc/core@1.10.11(@swc/helpers@0.5.15))))(webpack@5.96.1(@swc/core@1.10.11(@swc/helpers@0.5.15))) @@ -31154,15 +32784,15 @@ snapshots: dotenv: 10.0.0 dotenv-expand: 5.1.0 eslint: 8.57.1 - eslint-config-react-app: 7.0.1(@babel/plugin-syntax-flow@7.26.0(@babel/core@7.26.7))(@babel/plugin-transform-react-jsx@7.25.9(@babel/core@7.26.7))(eslint@8.57.1)(jest@27.5.1(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3)))(typescript@5.7.3) + eslint-config-react-app: 7.0.1(@babel/plugin-syntax-flow@7.26.0(@babel/core@7.26.7))(@babel/plugin-transform-react-jsx@7.25.9(@babel/core@7.26.7))(eslint@8.57.1)(jest@27.5.1(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@24.13.3)(typescript@5.7.3)))(typescript@5.7.3) eslint-webpack-plugin: 3.2.0(eslint@8.57.1)(webpack@5.96.1(@swc/core@1.10.11(@swc/helpers@0.5.15))) file-loader: 6.2.0(webpack@5.96.1(@swc/core@1.10.11(@swc/helpers@0.5.15))) fs-extra: 10.1.0 html-webpack-plugin: 5.6.3(webpack@5.96.1(@swc/core@1.10.11(@swc/helpers@0.5.15))) identity-obj-proxy: 3.0.0 - jest: 27.5.1(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3)) + jest: 27.5.1(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@24.13.3)(typescript@5.7.3)) jest-resolve: 27.5.1 - jest-watch-typeahead: 1.1.0(jest@27.5.1(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3))) + jest-watch-typeahead: 1.1.0(jest@27.5.1(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@24.13.3)(typescript@5.7.3))) mini-css-extract-plugin: 2.9.2(webpack@5.96.1(@swc/core@1.10.11(@swc/helpers@0.5.15))) postcss: 8.5.1 postcss-flexbugs-fixes: 5.0.2(postcss@8.5.1) @@ -31180,7 +32810,7 @@ snapshots: semver: 7.6.3 source-map-loader: 3.0.2(webpack@5.96.1(@swc/core@1.10.11(@swc/helpers@0.5.15))) style-loader: 3.3.4(webpack@5.96.1(@swc/core@1.10.11(@swc/helpers@0.5.15))) - tailwindcss: 3.4.17(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3)) + tailwindcss: 3.4.17(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@24.13.3)(typescript@5.7.3)) terser-webpack-plugin: 5.3.11(@swc/core@1.10.11(@swc/helpers@0.5.15))(webpack@5.96.1(@swc/core@1.10.11(@swc/helpers@0.5.15))) webpack: 5.96.1(@swc/core@1.10.11(@swc/helpers@0.5.15)) webpack-dev-server: 4.15.2(webpack@5.96.1(@swc/core@1.10.11(@swc/helpers@0.5.15))) @@ -31271,6 +32901,14 @@ snapshots: string_decoder: 1.3.0 util-deprecate: 1.0.2 + readable-stream@4.7.0: + dependencies: + abort-controller: 3.0.0 + buffer: 6.0.3 + events: 3.3.0 + process: 0.11.10 + string_decoder: 1.3.0 + readdirp@3.5.0: dependencies: picomatch: 2.3.1 @@ -31288,6 +32926,10 @@ snapshots: source-map: 0.6.1 tslib: 2.8.1 + rechoir@0.8.0: + dependencies: + resolve: 1.22.12 + recursive-readdir@2.2.3: dependencies: minimatch: 3.1.2 @@ -31323,10 +32965,6 @@ snapshots: get-proto: 1.0.1 which-builtin-type: 1.2.1 - regenerate-unicode-properties@10.2.0: - dependencies: - regenerate: 1.4.2 - regenerate-unicode-properties@10.2.2: dependencies: regenerate: 1.4.2 @@ -31339,7 +32977,7 @@ snapshots: regenerator-transform@0.15.2: dependencies: - '@babel/runtime': 7.26.7 + '@babel/runtime': 7.29.7 regex-parser@2.3.0: {} @@ -31352,15 +32990,6 @@ snapshots: gopd: 1.2.0 set-function-name: 2.0.2 - regexpu-core@6.2.0: - dependencies: - regenerate: 1.4.2 - regenerate-unicode-properties: 10.2.0 - regjsgen: 0.8.0 - regjsparser: 0.12.0 - unicode-match-property-ecmascript: 2.0.0 - unicode-match-property-value-ecmascript: 2.2.0 - regexpu-core@6.4.0: dependencies: regenerate: 1.4.2 @@ -31372,10 +33001,6 @@ snapshots: regjsgen@0.8.0: {} - regjsparser@0.12.0: - dependencies: - jsesc: 3.0.2 - regjsparser@0.13.1: dependencies: jsesc: 3.1.0 @@ -31445,7 +33070,7 @@ snapshots: css-select: 4.3.0 dom-converter: 0.2.0 htmlparser2: 6.1.0 - lodash: 4.17.21 + lodash: 4.18.1 strip-ansi: 6.0.1 repeat-string@1.6.1: {} @@ -31497,7 +33122,7 @@ snapshots: resolve@1.22.10: dependencies: - is-core-module: 2.16.1 + is-core-module: 2.16.2 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 @@ -31523,6 +33148,18 @@ snapshots: onetime: 5.1.2 signal-exit: 3.0.7 + retry-request@7.0.2(encoding@0.1.13): + dependencies: + '@types/request': 2.48.13 + extend: 3.0.2 + teeny-request: 9.0.0(encoding@0.1.13) + transitivePeerDependencies: + - encoding + - supports-color + + retry@0.12.0: + optional: true + retry@0.13.1: {} reusify@1.0.4: {} @@ -31592,6 +33229,8 @@ snapshots: transitivePeerDependencies: - supports-color + run-applescript@7.1.0: {} + run-async@2.4.1: {} run-async@3.0.0: {} @@ -31684,13 +33323,6 @@ snapshots: ajv: 6.12.6 ajv-keywords: 3.5.2(ajv@6.12.6) - schema-utils@4.3.0: - dependencies: - '@types/json-schema': 7.0.15 - ajv: 8.17.1 - ajv-formats: 2.1.1(ajv@8.17.1) - ajv-keywords: 5.1.0(ajv@8.17.1) - schema-utils@4.3.3: dependencies: '@types/json-schema': 7.0.15 @@ -31948,19 +33580,24 @@ snapshots: es-errors: 1.3.0 object-inspect: 1.13.3 + side-channel-list@1.0.1: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.4 + side-channel-map@1.0.1: dependencies: call-bound: 1.0.3 es-errors: 1.3.0 get-intrinsic: 1.2.7 - object-inspect: 1.13.3 + object-inspect: 1.13.4 side-channel-weakmap@1.0.2: dependencies: call-bound: 1.0.3 es-errors: 1.3.0 get-intrinsic: 1.2.7 - object-inspect: 1.13.3 + object-inspect: 1.13.4 side-channel-map: 1.0.1 side-channel@1.1.0: @@ -31971,6 +33608,14 @@ snapshots: side-channel-map: 1.0.1 side-channel-weakmap: 1.0.2 + side-channel@1.1.1: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.4 + side-channel-list: 1.0.1 + side-channel-map: 1.0.1 + side-channel-weakmap: 1.0.2 + signal-exit@3.0.7: {} signal-exit@4.1.0: {} @@ -32024,6 +33669,15 @@ snapshots: transitivePeerDependencies: - supports-color + socks-proxy-agent@6.2.1: + dependencies: + agent-base: 6.0.2 + debug: 4.4.3(supports-color@8.1.1) + socks: 2.8.9 + transitivePeerDependencies: + - supports-color + optional: true + socks@2.8.9: dependencies: ip-address: 10.2.0 @@ -32133,8 +33787,30 @@ snapshots: transitivePeerDependencies: - supports-color + split2@4.2.0: {} + sprintf-js@1.0.3: {} + sprintf-js@1.1.3: {} + + sql-escaper@1.5.1: {} + + sqlite3@5.1.7: + dependencies: + bindings: 1.5.0 + node-addon-api: 7.1.1 + prebuild-install: 7.1.3 + tar: 6.2.1 + optionalDependencies: + node-gyp: 8.4.1 + transitivePeerDependencies: + - bluebird + - supports-color + + sqlstring-sqlite@0.1.1: {} + + sqlstring@2.3.3: {} + ssri@8.0.1: dependencies: minipass: 3.3.6 @@ -32168,6 +33844,10 @@ snapshots: es-errors: 1.3.0 internal-slot: 1.1.0 + stream-events@1.0.5: + dependencies: + stubs: 3.0.0 + stream-shift@1.0.3: {} streamsearch@1.1.0: {} @@ -32317,6 +33997,12 @@ snapshots: strip-json-comments@3.1.1: {} + strnum@2.4.2: + dependencies: + anynum: 1.0.1 + + stubs@3.0.0: {} + style-loader@3.3.4(webpack@5.96.1(@swc/core@1.10.11(@swc/helpers@0.5.15))): dependencies: webpack: 5.96.1(@swc/core@1.10.11(@swc/helpers@0.5.15)) @@ -32333,10 +34019,10 @@ snapshots: '@babel/core': 7.26.7 babel-plugin-macros: 3.1.0 - stylehacks@5.1.1(postcss@8.5.1): + stylehacks@5.1.1(postcss@8.5.15): dependencies: browserslist: 4.28.2 - postcss: 8.5.1 + postcss: 8.5.15 postcss-selector-parser: 6.1.2 sucrase@3.35.0: @@ -32513,6 +34199,33 @@ snapshots: transitivePeerDependencies: - ts-node + tailwindcss@3.4.17(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@24.13.3)(typescript@5.7.3)): + dependencies: + '@alloc/quick-lru': 5.2.0 + arg: 5.0.2 + chokidar: 3.6.0 + didyoumean: 1.2.2 + dlv: 1.1.3 + fast-glob: 3.3.3 + glob-parent: 6.0.2 + is-glob: 4.0.3 + jiti: 1.21.7 + lilconfig: 3.1.3 + micromatch: 4.0.8 + normalize-path: 3.0.0 + object-hash: 3.0.0 + picocolors: 1.1.1 + postcss: 8.5.1 + postcss-import: 15.1.0(postcss@8.5.1) + postcss-js: 4.0.1(postcss@8.5.1) + postcss-load-config: 4.0.2(postcss@8.5.1)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@24.13.3)(typescript@5.7.3)) + postcss-nested: 6.2.0(postcss@8.5.1) + postcss-selector-parser: 6.1.2 + resolve: 1.22.10 + sucrase: 3.35.0 + transitivePeerDependencies: + - ts-node + tapable@1.1.3: {} tapable@2.2.1: {} @@ -32566,6 +34279,34 @@ snapshots: mkdirp: 1.0.4 yallist: 4.0.0 + tarn@3.1.2: {} + + tedious@19.2.1: + dependencies: + '@azure/core-auth': 1.11.0 + '@azure/identity': 4.13.2 + '@azure/keyvault-keys': 4.10.2 + '@js-joda/core': 5.7.0 + '@types/node': 22.12.0 + bl: 6.1.6 + iconv-lite: 0.7.2 + js-md4: 0.3.2 + native-duplexpair: 1.0.0 + sprintf-js: 1.1.3 + transitivePeerDependencies: + - supports-color + + teeny-request@9.0.0(encoding@0.1.13): + dependencies: + http-proxy-agent: 5.0.0 + https-proxy-agent: 5.0.1 + node-fetch: 2.7.0(encoding@0.1.13) + stream-events: 1.0.5 + uuid: 9.0.1 + transitivePeerDependencies: + - encoding + - supports-color + temp-dir@2.0.0: {} tempy@0.6.0: @@ -32582,9 +34323,9 @@ snapshots: terser-webpack-plugin@5.3.11(@swc/core@1.10.11(@swc/helpers@0.5.15))(webpack@5.96.1(@swc/core@1.10.11(@swc/helpers@0.5.15))): dependencies: - '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/trace-mapping': 0.3.31 jest-worker: 27.5.1 - schema-utils: 4.3.0 + schema-utils: 4.3.3 serialize-javascript: 6.0.2 terser: 5.37.0 webpack: 5.96.1(@swc/core@1.10.11(@swc/helpers@0.5.15)) @@ -32593,9 +34334,9 @@ snapshots: terser-webpack-plugin@5.3.11(@swc/core@1.10.11(@swc/helpers@0.5.15))(webpack@5.97.1(@swc/core@1.10.11(@swc/helpers@0.5.15))): dependencies: - '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/trace-mapping': 0.3.31 jest-worker: 27.5.1 - schema-utils: 4.3.0 + schema-utils: 4.3.3 serialize-javascript: 6.0.2 terser: 5.37.0 webpack: 5.97.1(@swc/core@1.10.11(@swc/helpers@0.5.15)) @@ -32646,10 +34387,17 @@ snapshots: thunky@1.1.0: {} + tildify@2.0.0: {} + time-span@4.0.0: dependencies: convert-hrtime: 3.0.0 + tinyglobby@0.2.17: + dependencies: + fdir: 6.5.0(picomatch@4.0.7) + picomatch: 4.0.7 + tmp@0.0.33: dependencies: os-tmpdir: 1.0.2 @@ -32715,7 +34463,7 @@ snapshots: ts-interface-checker@0.1.13: {} - ts-jest@28.0.8(@babel/core@7.26.7)(@jest/types@28.1.3)(babel-jest@28.1.3(@babel/core@7.26.7))(jest@28.1.3(@types/node@22.12.0)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3)))(typescript@5.7.3): + ts-jest@28.0.8(@babel/core@7.29.7)(@jest/types@28.1.3)(babel-jest@28.1.3(@babel/core@7.29.7))(jest@28.1.3(@types/node@22.12.0)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3)))(typescript@5.7.3): dependencies: bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 @@ -32728,9 +34476,9 @@ snapshots: typescript: 5.7.3 yargs-parser: 21.1.1 optionalDependencies: - '@babel/core': 7.26.7 + '@babel/core': 7.29.7 '@jest/types': 28.1.3 - babel-jest: 28.1.3(@babel/core@7.26.7) + babel-jest: 28.1.3(@babel/core@7.29.7) ts-jest@29.2.5(@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))(jest@29.7.0(@types/node@22.12.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3)))(typescript@5.7.3): dependencies: @@ -32786,6 +34534,11 @@ snapshots: '@ts-morph/common': 0.11.1 code-block-writer: 10.1.1 + ts-morph@27.0.2: + dependencies: + '@ts-morph/common': 0.28.1 + code-block-writer: 13.0.3 + ts-node@10.9.1(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@14.18.33)(typescript@4.9.5): dependencies: '@cspotcode/source-map-support': 0.8.1 @@ -32794,8 +34547,8 @@ snapshots: '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 '@types/node': 14.18.33 - acorn: 8.15.0 - acorn-walk: 8.3.4 + acorn: 8.16.0 + acorn-walk: 8.3.5 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 @@ -32814,8 +34567,8 @@ snapshots: '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 '@types/node': 22.12.0 - acorn: 8.15.0 - acorn-walk: 8.3.4 + acorn: 8.16.0 + acorn-walk: 8.3.5 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 @@ -32826,13 +34579,34 @@ snapshots: optionalDependencies: '@swc/core': 1.10.11(@swc/helpers@0.5.15) + ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@24.13.3)(typescript@5.7.3): + dependencies: + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node10': 1.0.11 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.4 + '@types/node': 24.13.3 + acorn: 8.16.0 + acorn-walk: 8.3.5 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 5.7.3 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + optionalDependencies: + '@swc/core': 1.10.11(@swc/helpers@0.5.15) + optional: true + ts-toolbelt@6.15.5: {} tsconfig-paths-webpack-plugin@4.2.0: dependencies: chalk: 4.1.2 - enhanced-resolve: 5.18.0 - tapable: 2.2.1 + enhanced-resolve: 5.23.0 + tapable: 2.3.3 tsconfig-paths: 4.2.0 tsconfig-paths@3.15.0: @@ -32852,6 +34626,8 @@ snapshots: tslib@2.8.1: {} + tsqlstring@1.0.1: {} + tsutils@3.21.0(typescript@5.7.3): dependencies: tslib: 1.14.1 @@ -32984,6 +34760,8 @@ snapshots: undici-types@6.20.0: {} + undici-types@7.18.2: {} + unicode-canonical-property-names-ecmascript@2.0.1: {} unicode-match-property-ecmascript@2.0.0: @@ -32991,8 +34769,6 @@ snapshots: unicode-canonical-property-names-ecmascript: 2.0.1 unicode-property-aliases-ecmascript: 2.1.0 - unicode-match-property-value-ecmascript@2.2.0: {} - unicode-match-property-value-ecmascript@2.2.1: {} unicode-property-aliases-ecmascript@2.1.0: {} @@ -33117,6 +34893,8 @@ snapshots: querystringify: 2.2.0 requires-port: 1.0.0 + url-template@2.0.8: {} + use-sync-external-store@1.4.0(react@18.3.1): dependencies: react: 18.3.1 @@ -33159,7 +34937,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 @@ -33170,18 +34948,18 @@ snapshots: vary@1.1.2: {} - vercel@29.4.0(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(babel-plugin-macros@3.1.0)(terser@5.37.0)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3)): + vercel@29.4.0(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(babel-plugin-macros@3.1.0)(encoding@0.1.13)(terser@5.37.0)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3)): dependencies: '@vercel/build-utils': 6.7.3 '@vercel/go': 2.5.1 '@vercel/hydrogen': 0.0.64 '@vercel/next': 3.8.5 - '@vercel/node': 2.14.3(@swc/core@1.10.11(@swc/helpers@0.5.15)) + '@vercel/node': 2.14.3(@swc/core@1.10.11(@swc/helpers@0.5.15))(encoding@0.1.13) '@vercel/python': 3.1.60 - '@vercel/redwood': 1.1.15 - '@vercel/remix-builder': 1.8.10(@types/node@22.12.0)(babel-plugin-macros@3.1.0)(terser@5.37.0)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3)) + '@vercel/redwood': 1.1.15(encoding@0.1.13) + '@vercel/remix-builder': 1.8.10(@types/node@22.12.0)(babel-plugin-macros@3.1.0)(encoding@0.1.13)(terser@5.37.0)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3)) '@vercel/ruby': 1.3.76 - '@vercel/static-build': 1.3.32(@swc/core@1.10.11(@swc/helpers@0.5.15)) + '@vercel/static-build': 1.3.32(@swc/core@1.10.11(@swc/helpers@0.5.15))(encoding@0.1.13) transitivePeerDependencies: - '@remix-run/serve' - '@swc/core' @@ -33273,11 +35051,6 @@ snapshots: dependencies: makeerror: 1.0.12 - watchpack@2.4.2: - dependencies: - glob-to-regexp: 0.4.1 - graceful-fs: 4.2.11 - watchpack@2.5.2: dependencies: graceful-fs: 4.2.11 @@ -33342,7 +35115,7 @@ snapshots: open: 8.4.2 p-retry: 4.6.2 rimraf: 3.0.2 - schema-utils: 4.3.0 + schema-utils: 4.3.3 selfsigned: 2.4.1 serve-index: 1.9.1 sockjs: 0.3.24 @@ -33359,7 +35132,7 @@ snapshots: webpack-manifest-plugin@4.1.1(webpack@5.96.1(@swc/core@1.10.11(@swc/helpers@0.5.15))): dependencies: - tapable: 2.2.1 + tapable: 2.3.3 webpack: 5.96.1(@swc/core@1.10.11(@swc/helpers@0.5.15)) webpack-sources: 2.3.1 @@ -33375,8 +35148,6 @@ snapshots: source-list-map: 2.0.1 source-map: 0.6.1 - webpack-sources@3.2.3: {} - webpack-sources@3.5.0: {} webpack@5.108.3(@swc/core@1.10.11(@swc/helpers@0.5.15)): @@ -33534,28 +35305,28 @@ snapshots: webpack@5.96.1(@swc/core@1.10.11(@swc/helpers@0.5.15)): dependencies: '@types/eslint-scope': 3.7.7 - '@types/estree': 1.0.6 + '@types/estree': 1.0.9 '@webassemblyjs/ast': 1.14.1 '@webassemblyjs/wasm-edit': 1.14.1 '@webassemblyjs/wasm-parser': 1.14.1 - acorn: 8.14.0 - browserslist: 4.24.4 + acorn: 8.16.0 + browserslist: 4.28.2 chrome-trace-event: 1.0.4 - enhanced-resolve: 5.18.0 + enhanced-resolve: 5.23.0 es-module-lexer: 1.6.0 eslint-scope: 5.1.1 events: 3.3.0 glob-to-regexp: 0.4.1 graceful-fs: 4.2.11 json-parse-even-better-errors: 2.3.1 - loader-runner: 4.3.0 + loader-runner: 4.3.2 mime-types: 2.1.35 neo-async: 2.6.2 schema-utils: 3.3.0 - tapable: 2.2.1 + tapable: 2.3.3 terser-webpack-plugin: 5.3.11(@swc/core@1.10.11(@swc/helpers@0.5.15))(webpack@5.96.1(@swc/core@1.10.11(@swc/helpers@0.5.15))) - watchpack: 2.4.2 - webpack-sources: 3.2.3 + watchpack: 2.5.2 + webpack-sources: 3.5.0 transitivePeerDependencies: - '@swc/core' - esbuild @@ -33564,28 +35335,28 @@ snapshots: webpack@5.97.1(@swc/core@1.10.11(@swc/helpers@0.5.15)): dependencies: '@types/eslint-scope': 3.7.7 - '@types/estree': 1.0.6 + '@types/estree': 1.0.9 '@webassemblyjs/ast': 1.14.1 '@webassemblyjs/wasm-edit': 1.14.1 '@webassemblyjs/wasm-parser': 1.14.1 - acorn: 8.14.0 - browserslist: 4.24.4 + acorn: 8.16.0 + browserslist: 4.28.2 chrome-trace-event: 1.0.4 - enhanced-resolve: 5.18.0 + enhanced-resolve: 5.23.0 es-module-lexer: 1.6.0 eslint-scope: 5.1.1 events: 3.3.0 glob-to-regexp: 0.4.1 graceful-fs: 4.2.11 json-parse-even-better-errors: 2.3.1 - loader-runner: 4.3.0 + loader-runner: 4.3.2 mime-types: 2.1.35 neo-async: 2.6.2 schema-utils: 3.3.0 - tapable: 2.2.1 + tapable: 2.3.3 terser-webpack-plugin: 5.3.11(@swc/core@1.10.11(@swc/helpers@0.5.15))(webpack@5.97.1(@swc/core@1.10.11(@swc/helpers@0.5.15))) - watchpack: 2.4.2 - webpack-sources: 3.2.3 + watchpack: 2.5.2 + webpack-sources: 3.5.0 transitivePeerDependencies: - '@swc/core' - esbuild @@ -33702,6 +35473,20 @@ snapshots: triple-beam: 1.4.1 winston-transport: 4.9.0 + winston@3.19.0: + dependencies: + '@colors/colors': 1.6.0 + '@dabh/diagnostics': 2.0.8 + async: 3.2.6 + is-stream: 2.0.1 + logform: 2.7.0 + one-time: 1.0.0 + readable-stream: 3.6.2 + safe-stable-stringify: 2.5.0 + stack-trace: 0.0.10 + triple-beam: 1.4.1 + winston-transport: 4.9.0 + word-wrap@1.2.5: {} workbox-background-sync@6.6.0: @@ -33717,8 +35502,8 @@ snapshots: dependencies: '@apideck/better-ajv-errors': 0.3.6(ajv@8.17.1) '@babel/core': 7.29.7 - '@babel/preset-env': 7.26.7(@babel/core@7.29.7) - '@babel/runtime': 7.26.7 + '@babel/preset-env': 7.29.7(@babel/core@7.29.7) + '@babel/runtime': 7.29.7 '@rollup/plugin-babel': 5.3.1(@babel/core@7.29.7)(@types/babel__core@7.20.5)(rollup@2.79.2) '@rollup/plugin-node-resolve': 11.2.1(rollup@2.79.2) '@rollup/plugin-replace': 2.4.2(rollup@2.79.2) @@ -33728,7 +35513,7 @@ snapshots: fast-json-stable-stringify: 2.1.0 fs-extra: 9.1.0 glob: 7.2.3 - lodash: 4.17.21 + lodash: 4.18.1 pretty-bytes: 5.6.0 rollup: 2.79.2 rollup-plugin-terser: 7.0.2(rollup@2.79.2) @@ -33873,6 +35658,10 @@ snapshots: ws@8.18.0: {} + wsl-utils@0.1.0: + dependencies: + is-wsl: 3.1.1 + xdm@2.1.0: dependencies: '@rollup/pluginutils': 4.2.1 @@ -33903,6 +35692,8 @@ snapshots: xml-name-validator@3.0.0: {} + xml-naming@0.3.0: {} + xmlchars@2.2.0: {} xmlcreate@2.0.4: {}