diff --git a/apps/adk-ts/src/client/a2a/protocol/schemas.ts b/apps/adk-ts/src/client/a2a/protocol/schemas.ts index be533034..f5e1993e 100644 --- a/apps/adk-ts/src/client/a2a/protocol/schemas.ts +++ b/apps/adk-ts/src/client/a2a/protocol/schemas.ts @@ -7,71 +7,14 @@ import z from 'zod'; import { a2aSchema } from './utils'; -// --- Agent Card --- - -export const agentInterfaceSchema = a2aSchema( - z.object({ - url: z.string(), - protocolBinding: z.string().optional(), - tenant: z.string().optional(), - protocolVersion: z.string().optional(), - }), -); - -export const agentExtensionSchema = a2aSchema( - z.object({ - uri: z.string(), - description: z.string().optional(), - required: z.boolean().optional(), - params: z.record(z.string(), z.unknown()).optional(), - }), -); - -export const agentCapabilitiesSchema = a2aSchema( - z.object({ - streaming: z.boolean().optional(), - pushNotifications: z.boolean().optional(), - extensions: z.array(agentExtensionSchema).optional(), - extendedAgentCard: z.boolean().optional(), - }), -); - -export const agentProviderSchema = a2aSchema( - z.object({ - url: z.string(), - organization: z.string(), - }), -); - -export const agentCardSignatureSchema = a2aSchema( - z.object({ - protected: z.string(), - signature: z.string(), - header: z.record(z.string(), z.unknown()).optional(), - }), -); - -export const agentSkillSchema = a2aSchema( - z.object({ - id: z.string(), - name: z.string(), - description: z.string(), - tags: z.array(z.string()), - examples: z.array(z.string()).optional(), - inputModes: z.array(z.string()).optional(), - outputModes: z.array(z.string()).optional(), - securityRequirements: z.array(z.record(z.string(), z.unknown())).optional(), - }), -); - -// --- Security Schemes --- +// --- Security Objects --- export const authorizationCodeOAuthFlowSchema = a2aSchema( z.object({ authorizationUrl: z.string(), tokenUrl: z.string(), - refreshUrl: z.string().optional(), scopes: z.record(z.string(), z.string()), + refreshUrl: z.string().optional(), pkceRequired: z.boolean().optional(), }), ); @@ -79,24 +22,26 @@ export const authorizationCodeOAuthFlowSchema = a2aSchema( export const clientCredentialsOAuthFlowSchema = a2aSchema( z.object({ tokenUrl: z.string(), - refreshUrl: z.string().optional(), scopes: z.record(z.string(), z.string()), + refreshUrl: z.string().optional(), }), ); +// Deprecated: Use Authorization Code + PKCE instead. export const implicitOAuthFlowSchema = a2aSchema( z.object({ authorizationUrl: z.string(), - refreshUrl: z.string().optional(), scopes: z.record(z.string(), z.string()), + refreshUrl: z.string().optional(), }), ); +// Deprecated: Use Authorization Code + PKCE or Device Code. export const passwordOAuthFlowSchema = a2aSchema( z.object({ tokenUrl: z.string(), - refreshUrl: z.string().optional(), scopes: z.record(z.string(), z.string()), + refreshUrl: z.string().optional(), }), ); @@ -104,8 +49,8 @@ export const deviceCodeOAuthFlowSchema = a2aSchema( z.object({ deviceAuthorizationUrl: z.string(), tokenUrl: z.string(), - refreshUrl: z.string().optional(), scopes: z.record(z.string(), z.string()), + refreshUrl: z.string().optional(), }), ); @@ -121,32 +66,32 @@ export const oauthFlowsSchema = a2aSchema( export const apiKeySecuritySchemeSchema = a2aSchema( z.object({ - description: z.string().optional(), location: z.string(), name: z.string(), + description: z.string().optional(), }), ); export const httpAuthSecuritySchemeSchema = a2aSchema( z.object({ - description: z.string().optional(), scheme: z.string(), + description: z.string().optional(), bearerFormat: z.string().optional(), }), ); export const oauth2SecuritySchemeSchema = a2aSchema( z.object({ - description: z.string().optional(), flows: oauthFlowsSchema, + description: z.string().optional(), oauth2MetadataUrl: z.string().optional(), }), ); export const openIdConnectSecuritySchemeSchema = a2aSchema( z.object({ - description: z.string().optional(), openIdConnectUrl: z.string(), + description: z.string().optional(), }), ); @@ -156,7 +101,6 @@ export const mutualTlsSecuritySchemeSchema = a2aSchema( }), ); -// SecurityScheme uses protobuf oneof — exactly one key is present export const securitySchemeSchema = a2aSchema( z.object({ apiKeySecurityScheme: apiKeySecuritySchemeSchema.optional(), @@ -173,27 +117,85 @@ export const securityRequirementSchema = a2aSchema( }), ); +// --- Agent Discovery Objects --- + +export const agentInterfaceSchema = a2aSchema( + z.object({ + url: z.string(), + protocolBinding: z.string(), + protocolVersion: z.string(), + tenant: z.string().optional(), + }), +); + +export const agentExtensionSchema = a2aSchema( + z.object({ + uri: z.string().optional(), + description: z.string().optional(), + required: z.boolean().optional(), + params: z.record(z.string(), z.unknown()).optional(), + }), +); + +export const agentCapabilitiesSchema = a2aSchema( + z.object({ + streaming: z.boolean().optional(), + pushNotifications: z.boolean().optional(), + extensions: z.array(agentExtensionSchema).optional(), + extendedAgentCard: z.boolean().optional(), + }), +); + +export const agentProviderSchema = a2aSchema( + z.object({ + url: z.string(), + organization: z.string(), + }), +); + +export const agentCardSignatureSchema = a2aSchema( + z.object({ + protected: z.string(), + signature: z.string(), + header: z.record(z.string(), z.unknown()).optional(), + }), +); + +export const agentSkillSchema = a2aSchema( + z.object({ + id: z.string(), + name: z.string(), + description: z.string(), + tags: z.array(z.string()), + examples: z.array(z.string()).optional(), + inputModes: z.array(z.string()).optional(), + outputModes: z.array(z.string()).optional(), + securityRequirements: z.array(z.record(z.string(), z.unknown())).optional(), + }), +); + export const agentCardSchema = a2aSchema( z.object({ name: z.string(), description: z.string(), - supportedInterfaces: z.array(agentInterfaceSchema).optional(), - provider: agentProviderSchema.optional(), + supportedInterfaces: z.array(agentInterfaceSchema), version: z.string(), - documentationUrl: z.string().optional(), capabilities: agentCapabilitiesSchema, + defaultInputModes: z.array(z.string()), + defaultOutputModes: z.array(z.string()), + skills: z.array(agentSkillSchema), + provider: agentProviderSchema.optional(), + documentationUrl: z.string().optional(), securitySchemes: z.record(z.string(), securitySchemeSchema).optional(), securityRequirements: z.array(securityRequirementSchema).optional(), - defaultInputModes: z.array(z.string()).optional(), - defaultOutputModes: z.array(z.string()).optional(), - skills: z.array(agentSkillSchema).optional(), signatures: z.array(agentCardSignatureSchema).optional(), iconUrl: z.string().optional(), }), ); -// --- Parts --- +// --- Core Objects --- +// Deprecated export const textPartSchema = a2aSchema( z.object({ text: z.string(), @@ -203,6 +205,7 @@ export const textPartSchema = a2aSchema( }), ); +// Deprecated export const filePartSchema = a2aSchema( z.object({ url: z.string().optional(), @@ -213,6 +216,7 @@ export const filePartSchema = a2aSchema( }), ); +// Deprecated export const dataPartSchema = a2aSchema( z.object({ data: z.unknown(), @@ -222,75 +226,84 @@ export const dataPartSchema = a2aSchema( }), ); -// Part is a union — discriminated by presence of `text`, `url`/`raw`, or `data` -export const partSchema = a2aSchema(z.union([textPartSchema, filePartSchema, dataPartSchema])); - -// --- Artifacts --- +export const partSchema = a2aSchema( + z.object({ + text: z.string().optional(), + raw: z.string().optional(), + url: z.string().optional(), + data: z.unknown().optional(), + metadata: z.record(z.string(), z.unknown()).optional(), + filename: z.string().optional(), + mediaType: z.string().optional(), + }), +); export const artifactSchema = a2aSchema( z.object({ artifactId: z.string(), + parts: z.array(partSchema), name: z.string().optional(), description: z.string().optional(), - parts: z.array(partSchema).default([]), metadata: z.record(z.string(), z.unknown()).optional(), extensions: z.array(z.string()).optional(), }), ); -// --- Messages --- +export const roleSchema = a2aSchema(z.enum(['ROLE_UNSPECIFIED', 'ROLE_USER', 'ROLE_AGENT'])); export const messageSchema = a2aSchema( z.object({ messageId: z.string(), + role: roleSchema, + parts: z.array(partSchema), contextId: z.string().optional(), taskId: z.string().optional(), - role: z.enum(['ROLE_USER', 'ROLE_AGENT', 'ROLE_UNSPECIFIED']), - parts: z.array(partSchema).default([]), metadata: z.record(z.string(), z.unknown()).optional(), extensions: z.array(z.string()).optional(), referenceTaskIds: z.array(z.string()).optional(), }), ); -// --- Task Status --- +export const taskStateSchema = a2aSchema( + z.enum([ + 'TASK_STATE_UNSPECIFIED', + 'TASK_STATE_SUBMITTED', + 'TASK_STATE_WORKING', + 'TASK_STATE_COMPLETED', + 'TASK_STATE_FAILED', + 'TASK_STATE_CANCELED', + 'TASK_STATE_INPUT_REQUIRED', + 'TASK_STATE_REJECTED', + 'TASK_STATE_AUTH_REQUIRED', + ]), +); export const taskStatusSchema = a2aSchema( z.object({ - state: z.enum([ - 'TASK_STATE_UNSPECIFIED', - 'TASK_STATE_SUBMITTED', - 'TASK_STATE_WORKING', - 'TASK_STATE_COMPLETED', - 'TASK_STATE_FAILED', - 'TASK_STATE_CANCELED', - 'TASK_STATE_INPUT_REQUIRED', - 'TASK_STATE_REJECTED', - 'TASK_STATE_AUTH_REQUIRED', - ]), + state: taskStateSchema, message: messageSchema.optional(), timestamp: z.string().optional(), }), ); -// --- Events --- - -export const taskStatusUpdateEventSchema = a2aSchema( +export const taskSchema = a2aSchema( z.object({ - taskId: z.string(), - contextId: z.string(), + id: z.string(), status: taskStatusSchema, + contextId: z.string().optional(), + artifacts: z.array(artifactSchema).optional(), + history: z.array(messageSchema).optional(), metadata: z.record(z.string(), z.unknown()).optional(), }), ); -export const taskSchema = a2aSchema( +// --- Streaming Events --- + +export const taskStatusUpdateEventSchema = a2aSchema( z.object({ - id: z.string(), + taskId: z.string(), contextId: z.string(), status: taskStatusSchema, - artifacts: z.array(artifactSchema).optional(), - history: z.array(messageSchema).optional(), metadata: z.record(z.string(), z.unknown()).optional(), }), ); @@ -306,18 +319,18 @@ export const taskArtifactUpdateEventSchema = a2aSchema( }), ); -// --- Stream Response (oneof wrapper for streaming events) --- +// --- Operation Parameter Objects --- export const streamResponseSchema = a2aSchema( - z.union([ - z.object({ task: taskSchema }), - z.object({ statusUpdate: taskStatusUpdateEventSchema }), - z.object({ artifactUpdate: taskArtifactUpdateEventSchema }), - z.object({ message: messageSchema }), - ]), + z.object({ + task: taskSchema.optional(), + message: messageSchema.optional(), + statusUpdate: taskStatusUpdateEventSchema.optional(), + artifactUpdate: taskArtifactUpdateEventSchema.optional(), + }), ); -// --- JSONRPC Errors --- +// --- A2A Errors --- const errorBaseSchema = z.object({ message: z.string(), @@ -396,12 +409,24 @@ export const invalidAgentResponseErrorSchema = a2aSchema( }), ); -export const authenticatedExtendedCardNotConfiguredErrorSchema = a2aSchema( +export const extendedAgentCardNotConfiguredErrorSchema = a2aSchema( errorBaseSchema.extend({ code: z.literal(-32007), }), ); +export const extensionSupportRequiredErrorSchema = a2aSchema( + errorBaseSchema.extend({ + code: z.literal(-32008), + }), +); + +export const versionNotSupportedErrorSchema = a2aSchema( + errorBaseSchema.extend({ + code: z.literal(-32009), + }), +); + export const jsonRpcErrorResponseSchema = a2aSchema( z.object({ jsonrpc: z.literal('2.0'), @@ -419,17 +444,9 @@ export const jsonRpcErrorResponseSchema = a2aSchema( unsupportedOperationErrorSchema, contentTypeNotSupportedErrorSchema, invalidAgentResponseErrorSchema, - authenticatedExtendedCardNotConfiguredErrorSchema, + extendedAgentCardNotConfiguredErrorSchema, + extensionSupportRequiredErrorSchema, + versionNotSupportedErrorSchema, ]), }), ); - -export const getTaskSuccessResponseSchema = a2aSchema( - z.object({ - jsonrpc: z.literal('2.0'), - id: z.union([z.string(), z.number()]).nullable(), - result: taskSchema, - }), -); - -export const getTaskResponseSchema = a2aSchema(z.union([jsonRpcErrorResponseSchema, getTaskSuccessResponseSchema])); diff --git a/apps/adk-ts/src/client/a2a/protocol/tests.ts b/apps/adk-ts/src/client/a2a/protocol/tests.ts new file mode 100644 index 00000000..ff4903b5 --- /dev/null +++ b/apps/adk-ts/src/client/a2a/protocol/tests.ts @@ -0,0 +1,179 @@ +/** + * Copyright 2026 © IBM Corp. + * SPDX-License-Identifier: Apache-2.0 + */ + +// TODO: Enable test once a2a-js SDK v1 is released +// import type { +// AgentCapabilities, +// AgentCard, +// AgentCardSignature, +// AgentExtension, +// AgentInterface, +// AgentProvider, +// AgentSkill, +// APIKeySecurityScheme, +// Artifact, +// AuthorizationCodeOAuthFlow, +// ClientCredentialsOAuthFlow, +// ContentTypeNotSupportedError, +// DataPart, +// ExtendedAgentCardNotConfiguredError, +// ExtensionSupportRequiredError, +// FilePart, +// FileWithBytes, +// FileWithUri, +// HTTPAuthSecurityScheme, +// ImplicitOAuthFlow, +// InternalError, +// InvalidAgentResponseError, +// InvalidParamsError, +// InvalidRequestError, +// JSONParseError, +// JSONRPCError, +// JSONRPCErrorResponse, +// Message, +// MethodNotFoundError, +// MutualTLSSecurityScheme, +// OAuth2SecurityScheme, +// OAuthFlows, +// OpenIdConnectSecurityScheme, +// Part, +// PasswordOAuthFlow, +// PushNotificationNotSupportedError, +// Role, +// SecurityScheme, +// Task, +// TaskArtifactUpdateEvent, +// TaskNotCancelableError, +// TaskNotFoundError, +// TaskState, +// TaskStatus, +// TaskStatusUpdateEvent, +// TextPart, +// UnsupportedOperationError, +// VersionNotSupportedErrorm, +// } from '@a2a-js/sdk'; +// import type z from 'zod'; + +// import type { +// agentCapabilitiesSchema, +// agentCardSchema, +// agentCardSignatureSchema, +// agentExtensionSchema, +// agentInterfaceSchema, +// agentProviderSchema, +// agentSkillSchema, +// apiKeySecuritySchemeSchema, +// artifactSchema, +// authorizationCodeOAuthFlowSchema, +// clientCredentialsOAuthFlowSchema, +// contentTypeNotSupportedErrorSchema, +// dataPartSchema, +// extendedAgentCardNotConfiguredErrorSchema, +// extensionSupportRequiredErrorSchema, +// filePartSchema, +// fileWithBytesSchema, +// fileWithUriSchema, +// httpAuthSecuritySchemeSchema, +// implicitOAuthFlowSchema, +// internalErrorSchema, +// invalidAgentResponseErrorSchema, +// invalidParamsErrorSchema, +// invalidRequestErrorSchema, +// jsonParseErrorSchema, +// jsonRpcErrorResponseSchema, +// jsonRpcErrorSchema, +// messageSchema, +// methodNotFoundErrorSchema, +// mutualTlsSecuritySchemeSchema, +// oauth2SecuritySchemeSchema, +// oauthFlowsSchema, +// openIdConnectSecuritySchemeSchema, +// partSchema, +// passwordOAuthFlowSchema, +// pushNotificationNotSupportedErrorSchema, +// roleSchema, +// securitySchemeSchema, +// taskArtifactUpdateEventSchema, +// taskNotCancelableErrorSchema, +// taskNotFoundErrorSchema, +// taskSchema, +// taskStateSchema, +// taskStatusSchema, +// taskStatusUpdateEventSchema, +// textPartSchema, +// unsupportedOperationErrorSchema, +// versionNotSupportedErrorSchema, +// } from './schemas'; +// import type { VersionNotSupportedError } from './types'; + +// type Equals = (() => T extends X ? 1 : 2) extends () => T extends Y ? 1 : 2 ? true : false; + +// type Assert = T; + +// // eslint-disable-next-line @typescript-eslint/no-unused-vars +// type _ = { +// AgentCapabilities: Assert, AgentCapabilities>>; +// AgentCard: Assert, AgentCard>>; +// AgentCardSignature: Assert, AgentCardSignature>>; +// AgentExtension: Assert, AgentExtension>>; +// AgentInterface: Assert, AgentInterface>>; +// AgentProvider: Assert, AgentProvider>>; +// AgentSkill: Assert, AgentSkill>>; +// ApiKeySecurityScheme: Assert, APIKeySecurityScheme>>; +// Artifact: Assert, Artifact>>; +// AuthorizationCodeOAuthFlow: Assert< +// Equals, AuthorizationCodeOAuthFlow> +// >; +// ClientCredentialsOAuthFlow: Assert< +// Equals, ClientCredentialsOAuthFlow> +// >; +// ContentTypeNotSupportedError: Assert< +// Equals, ContentTypeNotSupportedError> +// >; +// DataPart: Assert, DataPart>>; +// ExtendedAgentCardNotConfiguredError: Assert< +// Equals, ExtendedAgentCardNotConfiguredError> +// >; +// ExtensionSupportRequiredError: Assert< +// Equals, ExtensionSupportRequiredError> +// >; +// FilePart: Assert, FilePart>>; +// FileWithBytes: Assert, FileWithBytes>>; +// FileWithUri: Assert, FileWithUri>>; +// HttpAuthSecurityScheme: Assert, HTTPAuthSecurityScheme>>; +// ImplicitOAuthFlow: Assert, ImplicitOAuthFlow>>; +// InternalError: Assert, InternalError>>; +// InvalidAgentResponseError: Assert, InvalidAgentResponseError>>; +// InvalidParamsError: Assert, InvalidParamsError>>; +// JSONParseError: Assert, JSONParseError>>; +// JSONRPCError: Assert, JSONRPCError>>; +// JSONRPCErrorResponse: Assert, JSONRPCErrorResponse>>; +// InvalidRequestError: Assert, InvalidRequestError>>; +// Message: Assert, Message>>; +// MethodNotFoundError: Assert, MethodNotFoundError>>; +// MutualTlsSecurityScheme: Assert, MutualTLSSecurityScheme>>; +// OAuth2SecurityScheme: Assert, OAuth2SecurityScheme>>; +// OAuthFlows: Assert, OAuthFlows>>; +// OpenIdConnectSecurityScheme: Assert< +// Equals, OpenIdConnectSecurityScheme> +// >; +// Part: Assert, Part>>; +// PasswordOAuthFlow: Assert, PasswordOAuthFlow>>; +// PushNotificationNotSupportedError: Assert< +// Equals, PushNotificationNotSupportedError> +// >; +// Role: Assert, Role>>; +// SecurityScheme: Assert, SecurityScheme>>; +// Task: Assert, Task>>; +// TaskArtifactUpdateEvent: Assert, TaskArtifactUpdateEvent>>; +// TaskNotCancelableError: Assert, TaskNotCancelableError>>; +// TaskNotFoundError: Assert, TaskNotFoundError>>; +// TaskState: Assert, TaskState>>; +// TaskStatus: Assert, TaskStatus>>; +// TaskStatusUpdateEvent: Assert, TaskStatusUpdateEvent>>; +// TextPart: Assert, TextPart>>; +// UnsupportedOperationError: Assert, UnsupportedOperationError>>; +// VersionNotSupportedError: Assert, VersionNotSupportedError>>; +// }; diff --git a/apps/adk-ts/src/client/a2a/protocol/types.ts b/apps/adk-ts/src/client/a2a/protocol/types.ts index 8804f83a..1d242312 100644 --- a/apps/adk-ts/src/client/a2a/protocol/types.ts +++ b/apps/adk-ts/src/client/a2a/protocol/types.ts @@ -15,15 +15,14 @@ import type { agentSkillSchema, apiKeySecuritySchemeSchema, artifactSchema, - authenticatedExtendedCardNotConfiguredErrorSchema, authorizationCodeOAuthFlowSchema, clientCredentialsOAuthFlowSchema, contentTypeNotSupportedErrorSchema, dataPartSchema, deviceCodeOAuthFlowSchema, + extendedAgentCardNotConfiguredErrorSchema, + extensionSupportRequiredErrorSchema, filePartSchema, - getTaskResponseSchema, - getTaskSuccessResponseSchema, httpAuthSecuritySchemeSchema, implicitOAuthFlowSchema, internalErrorSchema, @@ -42,6 +41,7 @@ import type { partSchema, passwordOAuthFlowSchema, pushNotificationNotSupportedErrorSchema, + roleSchema, securityRequirementSchema, securitySchemeSchema, streamResponseSchema, @@ -49,10 +49,12 @@ import type { taskNotCancelableErrorSchema, taskNotFoundErrorSchema, taskSchema, + taskStateSchema, taskStatusSchema, taskStatusUpdateEventSchema, textPartSchema, unsupportedOperationErrorSchema, + versionNotSupportedErrorSchema, } from './schemas'; export type AgentInterface = z.infer; @@ -67,6 +69,8 @@ export type AgentCardSignature = z.infer; export type AgentSkill = z.infer; +export type AgentCard = z.infer; + export type AuthorizationCodeOAuthFlow = z.infer; export type ClientCredentialsOAuthFlow = z.infer; export type ImplicitOAuthFlow = z.infer; @@ -84,8 +88,6 @@ export type MutualTLSSecurityScheme = z.infer; export type SecurityRequirement = z.infer; -export type AgentCard = z.infer; - export type TextPart = z.infer; export type FilePart = z.infer; export type DataPart = z.infer; @@ -94,8 +96,12 @@ export type Part = z.infer; export type Artifact = z.infer; +export type Role = z.infer; + export type Message = z.infer; +export type TaskState = z.infer; + export type TaskStatus = z.infer; export type TaskStatusUpdateEvent = z.infer; @@ -118,12 +124,8 @@ export type PushNotificationNotSupportedError = z.infer; export type ContentTypeNotSupportedError = z.infer; export type InvalidAgentResponseError = z.infer; -export type AuthenticatedExtendedCardNotConfiguredError = z.infer< - typeof authenticatedExtendedCardNotConfiguredErrorSchema ->; +export type ExtendedAgentCardNotConfiguredError = z.infer; +export type ExtensionSupportRequiredError = z.infer; +export type VersionNotSupportedError = z.infer; export type JSONRPCErrorResponse = z.infer; - -export type GetTaskSuccessResponse = z.infer; - -export type GetTaskResponse = z.infer; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 68cf242d..858f0e9b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -70,25 +70,6 @@ catalogs: specifier: ^3.1.1 version: 3.1.1 -overrides: - lodash@<4.17.23: 4.17.23 - dompurify@<3.3.2: 3.3.2 - express@>=4.0.0 <4.20.0: 4.21.2 - zod@<3.22.3: 3.22.3 - js-yaml@>=4.0.0 <4.1.1: 4.1.1 - qs@<6.14.2: 6.14.2 - send@>=0.0.0 <0.19.0: 0.19.0 - serve-static@>=1.0.0 <1.16.0: 1.16.0 - cookie@<0.7.0: 0.7.0 - path-to-regexp@<0.1.12: 0.1.12 - immutable@>=5.0.0 <5.1.5: 5.1.5 - minimatch@<3.1.5: 3.1.5 - axios@<1.13.5: 1.13.5 - svgo@>=3.0.0 <3.3.3: 3.3.3 - body-parser@<1.20.3: 1.20.3 - tar@<7.5.10: 7.5.10 - '@mintlify/previewing>tar': 6.2.1 - importers: apps/adk-ts: @@ -97,7 +78,7 @@ importers: specifier: ^0.3.10 version: 0.3.10(@bufbuild/protobuf@2.11.0)(express@4.21.2) express: - specifier: 4.21.2 + specifier: ^4.18.0 || ^5.0.0 version: 4.21.2 zod: specifier: ^4.3.6 @@ -3929,8 +3910,11 @@ packages: resolution: {integrity: sha512-BASOg+YwO2C+346x3LZOeoovTIoTrRqEsqMa6fmfAV0P+U9mFr9NsyOEpiYvFjbc64NMrSswhV50WdXzdb/Z5A==} engines: {node: '>=4'} - axios@1.13.5: - resolution: {integrity: sha512-cz4ur7Vb0xS4/KUN0tPWe44eqxrIu31me+fbang3ijiNscE129POzipJJA6zniq2C/Z6sJCjMimjS8Lc/GAs8Q==} + axios@1.10.0: + resolution: {integrity: sha512-/1xYAC4MP/HEG+3duIhFr4ZQXR4sQXOIe+o6sdqzeykGLx6Upp/1p8MHqhINOvGeP7xyNHe7tsiJByc4SSVUxw==} + + axios@1.13.2: + resolution: {integrity: sha512-VPk9ebNqPcy5lRGuSlKx752IlDatOjT9paPlm8A7yOuW2Fbvp4X3JznJtT4f0GzGLLiWE9W8onz51SqLYwzGaA==} axobject-query@4.1.0: resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} @@ -4034,6 +4018,10 @@ packages: resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} + body-parser@1.20.1: + resolution: {integrity: sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + body-parser@1.20.3: resolution: {integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} @@ -4324,8 +4312,12 @@ packages: cookie-signature@1.0.6: resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} - cookie@0.7.0: - resolution: {integrity: sha512-qCf+V4dtlNhSRXGAZatc1TasyFO6GjohcOul807YOb5ik3+kQSnb4d7iajeCL8QHaJ4uZEjCgiCJerKXwdRVlQ==} + cookie@0.4.2: + resolution: {integrity: sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==} + engines: {node: '>= 0.6'} + + cookie@0.5.0: + resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} engines: {node: '>= 0.6'} cookie@0.7.1: @@ -5081,6 +5073,10 @@ packages: resolution: {integrity: sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==} engines: {node: '>=12.0.0'} + express@4.18.2: + resolution: {integrity: sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==} + engines: {node: '>= 0.10.0'} + express@4.21.2: resolution: {integrity: sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==} engines: {node: '>= 0.10.0'} @@ -5163,6 +5159,10 @@ packages: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} + finalhandler@1.2.0: + resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} + engines: {node: '>= 0.8'} + finalhandler@1.3.1: resolution: {integrity: sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==} engines: {node: '>= 0.8'} @@ -5856,6 +5856,10 @@ packages: resolution: {integrity: sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==} hasBin: true + js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + js-yaml@4.1.1: resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} hasBin: true @@ -6001,6 +6005,9 @@ packages: lodash.truncate@4.4.2: resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==} + lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + lodash@4.17.23: resolution: {integrity: sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==} @@ -6133,6 +6140,9 @@ packages: resolution: {integrity: sha512-EDYo6VlmtnumlcBCbh1gLJ//9jvM/ndXHfVXIFrZVr6fGcwTUyCTFNTLCKuY3ffbK8L/+3Mzqnd58RojiZqHVw==} engines: {node: '>=20'} + merge-descriptors@1.0.1: + resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} + merge-descriptors@1.0.3: resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==} @@ -6291,6 +6301,9 @@ packages: resolution: {integrity: sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==} engines: {node: 18 || 20 || >=22} + minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + minimatch@3.1.5: resolution: {integrity: sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==} @@ -6646,6 +6659,9 @@ packages: path-to-regexp@0.1.12: resolution: {integrity: sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==} + path-to-regexp@0.1.7: + resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} + path-type@4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} @@ -6858,8 +6874,12 @@ packages: resolution: {integrity: sha512-tsSGN1x3h569ZSU1u6diwhltLyfUWDp3YbFHedapTmpBl0B3P6U3+Qptg7xu+v+1io1EwhdPyyRHYbEw0KN2FA==} engines: {node: '>=20'} - qs@6.14.2: - resolution: {integrity: sha512-V/yCWTTF7VJ9hIh18Ugr2zhJMP01MY7c5kh4J870L7imm6/DIzBsNLTXzMwUA3yZ5b/KBqLx8Kp3uRvd7xSe3Q==} + qs@6.11.0: + resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} + engines: {node: '>=0.6'} + + qs@6.13.0: + resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} engines: {node: '>=0.6'} queue-microtask@1.2.3: @@ -6873,6 +6893,10 @@ packages: resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} engines: {node: '>= 0.6'} + raw-body@2.5.1: + resolution: {integrity: sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==} + engines: {node: '>= 0.8'} + raw-body@2.5.2: resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} engines: {node: '>= 0.8'} @@ -7364,6 +7388,10 @@ packages: engines: {node: '>=10'} hasBin: true + send@0.18.0: + resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} + engines: {node: '>= 0.8.0'} + send@0.19.0: resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==} engines: {node: '>= 0.8.0'} @@ -7372,6 +7400,10 @@ packages: resolution: {integrity: sha512-bBZaRwLH9PN5HbLCjPId4dP5bNGEtumcErgOX952IsvOhVPrm3/AeK1y0UHA/QaPG701eg0yEnOKsCOC6X/kaA==} engines: {node: '>=20'} + serve-static@1.15.0: + resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} + engines: {node: '>= 0.8.0'} + serve-static@1.16.2: resolution: {integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==} engines: {node: '>= 0.8.0'} @@ -7719,8 +7751,8 @@ packages: tar-stream@3.1.8: resolution: {integrity: sha512-U6QpVRyCGHva435KoNWy9PRoi2IFYCgtEhq9nmrPPpbRacPs9IH4aJ3gbrFC8dPcXvdSZ4XXfXT5Fshbp2MtlQ==} - tar@6.2.1: - resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} + tar@6.1.15: + resolution: {integrity: sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A==} 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 @@ -8367,10 +8399,10 @@ packages: zod-to-json-schema@3.20.4: resolution: {integrity: sha512-Un9+kInJ2Zt63n6Z7mLqBifzzPcOyX+b+Exuzf7L1+xqck9Q2EPByyTRduV3kmSPaXaRer1JCsucubpgL1fipg==} peerDependencies: - zod: 3.22.3 + zod: ^3.20.0 - zod@3.22.3: - resolution: {integrity: sha512-EjIevzuJRiRPbVH4mGc8nApb/lVLKVpmUhAaR5R5doKGfAnGJ6Gr3CViAVjP+4FWSxCsybeWQdcgCtbX+7oZug==} + zod@3.21.4: + resolution: {integrity: sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==} zod@3.23.8: resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} @@ -10054,7 +10086,7 @@ snapshots: fs-extra: 11.2.0 ink: 6.3.0(@types/react@19.2.14)(react@19.2.3) inquirer: 12.3.0(@types/node@25.4.0) - js-yaml: 4.1.1 + js-yaml: 4.1.0 mdast-util-mdx-jsx: 3.2.0 react: 19.2.3 semver: 7.7.2 @@ -10097,8 +10129,8 @@ snapshots: hast-util-to-text: 4.0.2 hex-rgb: 5.0.0 ignore: 7.0.5 - js-yaml: 4.1.1 - lodash: 4.17.23 + js-yaml: 4.1.0 + lodash: 4.17.21 mdast-util-from-markdown: 2.0.2 mdast-util-gfm: 3.0.0 mdast-util-mdx: 3.0.0 @@ -10158,8 +10190,8 @@ snapshots: hast-util-to-text: 4.0.2 hex-rgb: 5.0.0 ignore: 7.0.5 - js-yaml: 4.1.1 - lodash: 4.17.23 + js-yaml: 4.1.0 + lodash: 4.17.21 mdast-util-from-markdown: 2.0.2 mdast-util-gfm: 3.0.0 mdast-util-mdx: 3.0.0 @@ -10254,14 +10286,14 @@ snapshots: '@mintlify/models@0.0.255': dependencies: - axios: 1.13.5 + axios: 1.10.0 openapi-types: 12.1.3 transitivePeerDependencies: - debug '@mintlify/models@0.0.283': dependencies: - axios: 1.13.5 + axios: 1.13.2 openapi-types: 12.1.3 transitivePeerDependencies: - debug @@ -10285,7 +10317,7 @@ snapshots: favicons: 7.2.0 front-matter: 4.0.2 fs-extra: 11.1.0 - js-yaml: 4.1.1 + js-yaml: 4.1.0 openapi-types: 12.1.3 sharp: 0.33.5 sharp-ico: 0.1.5 @@ -10315,18 +10347,18 @@ snapshots: better-opn: 3.0.2 chalk: 5.2.0 chokidar: 3.5.3 - express: 4.21.2 + express: 4.18.2 front-matter: 4.0.2 fs-extra: 11.1.0 got: 13.0.0 ink: 6.3.0(@types/react@19.2.14)(react@19.2.3) ink-spinner: 5.0.0(ink@6.3.0(@types/react@19.2.14)(react@19.2.3))(react@19.2.3) is-online: 10.0.0 - js-yaml: 4.1.1 + js-yaml: 4.1.0 openapi-types: 12.1.3 react: 19.2.3 socket.io: 4.7.2 - tar: 6.2.1 + tar: 6.1.15 unist-util-visit: 4.1.2 yargs: 17.7.1 transitivePeerDependencies: @@ -10351,7 +10383,7 @@ snapshots: '@mintlify/openapi-parser': 0.0.8 fs-extra: 11.1.1 hast-util-to-mdast: 10.1.0 - js-yaml: 4.1.1 + js-yaml: 4.1.0 mdast-util-mdx-jsx: 3.1.3 neotraverse: 0.6.18 puppeteer: 22.14.0(typescript@5.9.3) @@ -10363,7 +10395,7 @@ snapshots: unified: 11.0.5 unist-util-visit: 5.0.0 yargs: 17.7.1 - zod: 3.22.3 + zod: 3.21.4 transitivePeerDependencies: - '@radix-ui/react-popover' - '@types/react' @@ -10386,7 +10418,7 @@ snapshots: '@mintlify/openapi-parser': 0.0.8 fs-extra: 11.1.1 hast-util-to-mdast: 10.1.0 - js-yaml: 4.1.1 + js-yaml: 4.1.0 mdast-util-mdx-jsx: 3.1.3 neotraverse: 0.6.18 puppeteer: 22.14.0(typescript@5.9.3) @@ -10420,14 +10452,14 @@ snapshots: '@mintlify/mdx': 3.0.4(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(typescript@5.9.3) '@mintlify/models': 0.0.255 arktype: 2.1.27 - js-yaml: 4.1.1 + js-yaml: 4.1.0 lcm: 0.0.3 - lodash: 4.17.23 + lodash: 4.17.21 object-hash: 3.0.0 openapi-types: 12.1.3 uuid: 11.1.0 - zod: 3.22.3 - zod-to-json-schema: 3.20.4(zod@3.22.3) + zod: 3.21.4 + zod-to-json-schema: 3.20.4(zod@3.21.4) transitivePeerDependencies: - '@radix-ui/react-popover' - '@types/react' @@ -10442,9 +10474,9 @@ snapshots: '@mintlify/mdx': 3.0.4(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(typescript@5.9.3) '@mintlify/models': 0.0.283 arktype: 2.1.27 - js-yaml: 4.1.1 + js-yaml: 4.1.0 lcm: 0.0.3 - lodash: 4.17.23 + lodash: 4.17.21 object-hash: 3.0.0 openapi-types: 12.1.3 uuid: 11.1.0 @@ -11988,7 +12020,7 @@ snapshots: jsonpath-plus: 10.4.0 lodash: 4.17.23 lodash.topath: 4.5.2 - minimatch: 3.1.5 + minimatch: 3.1.2 nimma: 0.2.3 pony-cause: 1.1.1 simple-eval: 1.0.1 @@ -12876,7 +12908,15 @@ snapshots: axe-core@4.11.1: {} - axios@1.13.5: + axios@1.10.0: + dependencies: + follow-redirects: 1.15.11 + form-data: 4.0.5 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + + axios@1.13.2: dependencies: follow-redirects: 1.15.11 form-data: 4.0.5 @@ -12969,6 +13009,23 @@ snapshots: binary-extensions@2.3.0: {} + body-parser@1.20.1: + 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.0 + iconv-lite: 0.4.24 + on-finished: 2.4.1 + qs: 6.11.0 + raw-body: 2.5.1 + type-is: 1.6.18 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + body-parser@1.20.3: dependencies: bytes: 3.1.2 @@ -12979,7 +13036,7 @@ snapshots: http-errors: 2.0.0 iconv-lite: 0.4.24 on-finished: 2.4.1 - qs: 6.14.2 + qs: 6.13.0 raw-body: 2.5.2 type-is: 1.6.18 unpipe: 1.0.0 @@ -13257,7 +13314,9 @@ snapshots: cookie-signature@1.0.6: {} - cookie@0.7.0: {} + cookie@0.4.2: {} + + cookie@0.5.0: {} cookie@0.7.1: {} @@ -13750,7 +13809,7 @@ snapshots: '@types/node': 25.4.0 accepts: 1.3.8 base64id: 2.0.0 - cookie: 0.7.0 + cookie: 0.4.2 cors: 2.8.6 debug: 4.3.7 engine.io-parser: 5.2.3 @@ -13996,7 +14055,7 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.1(@typescript-eslint/parser@8.56.1(eslint@9.39.3(jiti@1.21.7))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.3(jiti@1.21.7)): + eslint-module-utils@2.12.1(@typescript-eslint/parser@8.56.1(eslint@9.39.3(jiti@1.21.7))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.3(jiti@1.21.7)))(eslint@9.39.3(jiti@1.21.7)): dependencies: debug: 3.2.7 optionalDependencies: @@ -14024,7 +14083,7 @@ snapshots: doctrine: 2.1.0 eslint: 9.39.3(jiti@1.21.7) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.56.1(eslint@9.39.3(jiti@1.21.7))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.3(jiti@1.21.7)) + eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.56.1(eslint@9.39.3(jiti@1.21.7))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.3(jiti@1.21.7)))(eslint@9.39.3(jiti@1.21.7)) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -14210,6 +14269,42 @@ snapshots: expect-type@1.3.0: {} + express@4.18.2: + dependencies: + accepts: 1.3.8 + array-flatten: 1.1.1 + body-parser: 1.20.1 + content-disposition: 0.5.4 + content-type: 1.0.5 + cookie: 0.5.0 + cookie-signature: 1.0.6 + debug: 2.6.9 + depd: 2.0.0 + encodeurl: 1.0.2 + escape-html: 1.0.3 + etag: 1.8.1 + finalhandler: 1.2.0 + fresh: 0.5.2 + http-errors: 2.0.0 + merge-descriptors: 1.0.1 + methods: 1.1.2 + on-finished: 2.4.1 + parseurl: 1.3.3 + path-to-regexp: 0.1.7 + proxy-addr: 2.0.7 + qs: 6.11.0 + range-parser: 1.2.1 + safe-buffer: 5.2.1 + send: 0.18.0 + serve-static: 1.15.0 + setprototypeof: 1.2.0 + statuses: 2.0.1 + type-is: 1.6.18 + utils-merge: 1.0.1 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + express@4.21.2: dependencies: accepts: 1.3.8 @@ -14233,7 +14328,7 @@ snapshots: parseurl: 1.3.3 path-to-regexp: 0.1.12 proxy-addr: 2.0.7 - qs: 6.14.2 + qs: 6.13.0 range-parser: 1.2.1 safe-buffer: 5.2.1 send: 0.19.0 @@ -14330,6 +14425,18 @@ snapshots: dependencies: to-regex-range: 5.0.1 + finalhandler@1.2.0: + dependencies: + debug: 2.6.9 + encodeurl: 1.0.2 + escape-html: 1.0.3 + on-finished: 2.4.1 + parseurl: 1.3.3 + statuses: 2.0.1 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + finalhandler@1.3.1: dependencies: debug: 2.6.9 @@ -15160,6 +15267,10 @@ snapshots: argparse: 1.0.10 esprima: 4.0.1 + js-yaml@4.1.0: + dependencies: + argparse: 2.0.1 + js-yaml@4.1.1: dependencies: argparse: 2.0.1 @@ -15280,6 +15391,8 @@ snapshots: lodash.truncate@4.4.2: {} + lodash@4.17.21: {} + lodash@4.17.23: {} longest-streak@3.1.0: {} @@ -15563,6 +15676,8 @@ snapshots: meow@14.1.0: {} + merge-descriptors@1.0.1: {} + merge-descriptors@1.0.3: {} merge2@1.4.1: {} @@ -15897,6 +16012,10 @@ snapshots: dependencies: brace-expansion: 5.0.4 + minimatch@3.1.2: + dependencies: + brace-expansion: 1.1.12 + minimatch@3.1.5: dependencies: brace-expansion: 1.1.12 @@ -16284,6 +16403,8 @@ snapshots: path-to-regexp@0.1.12: {} + path-to-regexp@0.1.7: {} + path-type@4.0.0: {} pathe@2.0.3: {} @@ -16487,7 +16608,11 @@ snapshots: dependencies: hookified: 1.15.1 - qs@6.14.2: + qs@6.11.0: + dependencies: + side-channel: 1.1.0 + + qs@6.13.0: dependencies: side-channel: 1.1.0 @@ -16497,6 +16622,13 @@ snapshots: range-parser@1.2.1: {} + raw-body@2.5.1: + dependencies: + bytes: 3.1.2 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + unpipe: 1.0.0 + raw-body@2.5.2: dependencies: bytes: 3.1.2 @@ -17168,6 +17300,24 @@ snapshots: semver@7.7.4: {} + send@0.18.0: + dependencies: + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + encodeurl: 1.0.2 + escape-html: 1.0.3 + etag: 1.8.1 + fresh: 0.5.2 + http-errors: 2.0.0 + mime: 1.6.0 + ms: 2.1.3 + on-finished: 2.4.1 + range-parser: 1.2.1 + statuses: 2.0.1 + transitivePeerDependencies: + - supports-color + send@0.19.0: dependencies: debug: 2.6.9 @@ -17191,6 +17341,15 @@ snapshots: non-error: 0.1.0 type-fest: 5.4.4 + serve-static@1.15.0: + dependencies: + encodeurl: 1.0.2 + escape-html: 1.0.3 + parseurl: 1.3.3 + send: 0.18.0 + transitivePeerDependencies: + - supports-color + serve-static@1.16.2: dependencies: encodeurl: 2.0.0 @@ -17753,7 +17912,7 @@ snapshots: - bare-buffer - react-native-b4a - tar@6.2.1: + tar@6.1.15: dependencies: chownr: 2.0.0 fs-minipass: 2.1.0 @@ -18433,15 +18592,15 @@ snapshots: yoga-layout@3.2.1: {} - zod-to-json-schema@3.20.4(zod@3.22.3): + zod-to-json-schema@3.20.4(zod@3.21.4): dependencies: - zod: 3.22.3 + zod: 3.21.4 zod-to-json-schema@3.20.4(zod@3.24.0): dependencies: zod: 3.24.0 - zod@3.22.3: {} + zod@3.21.4: {} zod@3.23.8: {}