ai 5.1.0-beta.0 → 5.1.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # ai
2
2
 
3
+ ## 5.1.0-beta.1
4
+
5
+ ### Patch Changes
6
+
7
+ - a7f6f81: Add safeValidateUIMessages utility to validate UI messages without throwing, returning a success/failure result object like Zod’s safeParse
8
+
3
9
  ## 5.1.0-beta.0
4
10
 
5
11
  ### Minor Changes
package/dist/index.d.mts CHANGED
@@ -4450,6 +4450,28 @@ type UseCompletionOptions = {
4450
4450
  fetch?: FetchFunction;
4451
4451
  };
4452
4452
 
4453
+ type SafeValidateUIMessagesResult<UI_MESSAGE extends UIMessage> = {
4454
+ success: true;
4455
+ data: Array<UI_MESSAGE>;
4456
+ } | {
4457
+ success: false;
4458
+ error: Error;
4459
+ };
4460
+ /**
4461
+ * Validates a list of UI messages like `validateUIMessages`,
4462
+ * but instead of throwing it returns `{ success: true, data }`
4463
+ * or `{ success: false, error }`.
4464
+ */
4465
+ declare function safeValidateUIMessages<UI_MESSAGE extends UIMessage>({ messages, metadataSchema, dataSchemas, tools, }: {
4466
+ messages: unknown;
4467
+ metadataSchema?: Validator<UIMessage['metadata']> | StandardSchemaV1<unknown, UI_MESSAGE['metadata']>;
4468
+ dataSchemas?: {
4469
+ [NAME in keyof InferUIMessageData<UI_MESSAGE> & string]?: Validator<InferUIMessageData<UI_MESSAGE>[NAME]> | StandardSchemaV1<unknown, InferUIMessageData<UI_MESSAGE>[NAME]>;
4470
+ };
4471
+ tools?: {
4472
+ [NAME in keyof InferUIMessageTools<UI_MESSAGE> & string]?: Tool<InferUIMessageTools<UI_MESSAGE>[NAME]['input'], InferUIMessageTools<UI_MESSAGE>[NAME]['output']>;
4473
+ };
4474
+ }): Promise<SafeValidateUIMessagesResult<UI_MESSAGE>>;
4453
4475
  /**
4454
4476
  * Validates a list of UI messages.
4455
4477
  *
@@ -4488,4 +4510,4 @@ declare global {
4488
4510
  var AI_SDK_LOG_WARNINGS: LogWarningsFunction | undefined | false;
4489
4511
  }
4490
4512
 
4491
- export { AbstractChat, AsyncIterableStream, CallSettings, CallWarning, ChatInit, ChatOnDataCallback, ChatOnErrorCallback, ChatOnFinishCallback, ChatOnToolCallCallback, ChatRequestOptions, ChatState, ChatStatus, ChatTransport, ChunkDetector, CompletionRequestOptions, CoreAssistantMessage, CoreMessage, CoreSystemMessage, CoreToolMessage, CoreUserMessage, CreateUIMessage, DataUIPart, DeepPartial, DefaultChatTransport, DownloadError, DynamicToolCall, DynamicToolError, DynamicToolResult, DynamicToolUIPart, EmbedManyResult, EmbedResult, Embedding, EmbeddingModel, EmbeddingModelUsage, ErrorHandler, Agent as Experimental_Agent, AgentSettings as Experimental_AgentSettings, DownloadFunction as Experimental_DownloadFunction, GenerateImageResult as Experimental_GenerateImageResult, GeneratedFile as Experimental_GeneratedImage, InferAgentUIMessage as Experimental_InferAgentUIMessage, LogWarningsFunction as Experimental_LogWarningsFunction, SpeechResult as Experimental_SpeechResult, TranscriptionResult as Experimental_TranscriptionResult, Warning as Experimental_Warning, FileUIPart, FinishReason, GenerateObjectResult, GenerateTextOnStepFinishCallback, GenerateTextResult, GeneratedAudioFile, GeneratedFile, HttpChatTransport, HttpChatTransportInitOptions, ImageModel, ImageGenerationWarning as ImageModelCallWarning, ImageModelProviderMetadata, ImageModelResponseMetadata, InferUIDataParts, InferUIMessageChunk, InferUITool, InferUITools, InvalidArgumentError, InvalidDataContentError, InvalidMessageRoleError, InvalidStreamPartError, InvalidToolInputError, JSONRPCError, JSONRPCMessage, JSONRPCNotification, JSONRPCRequest, JSONRPCResponse, JSONValue, JsonToSseTransformStream, LanguageModel, LanguageModelMiddleware, LanguageModelRequestMetadata, LanguageModelResponseMetadata, LanguageModelUsage, MCPClientError, MCPTransport, MessageConversionError, NoImageGeneratedError, NoObjectGeneratedError, NoOutputGeneratedError, NoOutputSpecifiedError, NoSuchProviderError, NoSuchToolError, ObjectStreamPart, output as Output, PrepareReconnectToStreamRequest, PrepareSendMessagesRequest, PrepareStepFunction, PrepareStepResult, Prompt, Provider, ProviderMetadata, ProviderRegistryProvider, ReasoningOutput, ReasoningUIPart, RepairTextFunction, RetryError, SerialJobExecutor, SourceDocumentUIPart, SourceUrlUIPart, SpeechModel, SpeechModelResponseMetadata, SpeechWarning, StaticToolCall, StaticToolError, StaticToolResult, StepResult, StepStartUIPart, StopCondition, StreamObjectOnFinishCallback, StreamObjectResult, StreamTextOnChunkCallback, StreamTextOnErrorCallback, StreamTextOnFinishCallback, StreamTextOnStepFinishCallback, StreamTextResult, StreamTextTransform, TelemetrySettings, TextStreamChatTransport, TextStreamPart, TextUIPart, ToolCallRepairError, ToolCallRepairFunction, ToolChoice, ToolSet, ToolUIPart, TranscriptionModel, TranscriptionModelResponseMetadata, TranscriptionWarning, TypedToolCall, TypedToolError, TypedToolResult, UIDataPartSchemas, UIDataTypes, UIMessage, UIMessageChunk, UIMessagePart, UIMessageStreamOnFinishCallback, UIMessageStreamOptions, UIMessageStreamWriter, UITool, UIToolInvocation, UITools, UI_MESSAGE_STREAM_HEADERS, UnsupportedModelVersionError, UseCompletionOptions, assistantModelMessageSchema, callCompletionApi, consumeStream, convertFileListToFileUIParts, convertToCoreMessages, convertToModelMessages, coreAssistantMessageSchema, coreMessageSchema, coreSystemMessageSchema, coreToolMessageSchema, coreUserMessageSchema, cosineSimilarity, createProviderRegistry, createTextStreamResponse, createUIMessageStream, createUIMessageStreamResponse, customProvider, defaultSettingsMiddleware, embed, embedMany, MCPClient as experimental_MCPClient, MCPClientConfig as experimental_MCPClientConfig, createMCPClient as experimental_createMCPClient, experimental_createProviderRegistry, experimental_customProvider, generateImage as experimental_generateImage, generateSpeech as experimental_generateSpeech, transcribe as experimental_transcribe, extractReasoningMiddleware, generateObject, generateText, getTextFromDataUrl, getToolName, getToolOrDynamicToolName, hasToolCall, isDeepEqualData, isToolOrDynamicToolUIPart, isToolUIPart, lastAssistantMessageIsCompleteWithToolCalls, modelMessageSchema, parsePartialJson, pipeTextStreamToResponse, pipeUIMessageStreamToResponse, readUIMessageStream, simulateReadableStream, simulateStreamingMiddleware, smoothStream, stepCountIs, streamObject, streamText, systemModelMessageSchema, toolModelMessageSchema, userModelMessageSchema, validateUIMessages, wrapLanguageModel, wrapProvider };
4513
+ export { AbstractChat, AsyncIterableStream, CallSettings, CallWarning, ChatInit, ChatOnDataCallback, ChatOnErrorCallback, ChatOnFinishCallback, ChatOnToolCallCallback, ChatRequestOptions, ChatState, ChatStatus, ChatTransport, ChunkDetector, CompletionRequestOptions, CoreAssistantMessage, CoreMessage, CoreSystemMessage, CoreToolMessage, CoreUserMessage, CreateUIMessage, DataUIPart, DeepPartial, DefaultChatTransport, DownloadError, DynamicToolCall, DynamicToolError, DynamicToolResult, DynamicToolUIPart, EmbedManyResult, EmbedResult, Embedding, EmbeddingModel, EmbeddingModelUsage, ErrorHandler, Agent as Experimental_Agent, AgentSettings as Experimental_AgentSettings, DownloadFunction as Experimental_DownloadFunction, GenerateImageResult as Experimental_GenerateImageResult, GeneratedFile as Experimental_GeneratedImage, InferAgentUIMessage as Experimental_InferAgentUIMessage, LogWarningsFunction as Experimental_LogWarningsFunction, SpeechResult as Experimental_SpeechResult, TranscriptionResult as Experimental_TranscriptionResult, Warning as Experimental_Warning, FileUIPart, FinishReason, GenerateObjectResult, GenerateTextOnStepFinishCallback, GenerateTextResult, GeneratedAudioFile, GeneratedFile, HttpChatTransport, HttpChatTransportInitOptions, ImageModel, ImageGenerationWarning as ImageModelCallWarning, ImageModelProviderMetadata, ImageModelResponseMetadata, InferUIDataParts, InferUIMessageChunk, InferUITool, InferUITools, InvalidArgumentError, InvalidDataContentError, InvalidMessageRoleError, InvalidStreamPartError, InvalidToolInputError, JSONRPCError, JSONRPCMessage, JSONRPCNotification, JSONRPCRequest, JSONRPCResponse, JSONValue, JsonToSseTransformStream, LanguageModel, LanguageModelMiddleware, LanguageModelRequestMetadata, LanguageModelResponseMetadata, LanguageModelUsage, MCPClientError, MCPTransport, MessageConversionError, NoImageGeneratedError, NoObjectGeneratedError, NoOutputGeneratedError, NoOutputSpecifiedError, NoSuchProviderError, NoSuchToolError, ObjectStreamPart, output as Output, PrepareReconnectToStreamRequest, PrepareSendMessagesRequest, PrepareStepFunction, PrepareStepResult, Prompt, Provider, ProviderMetadata, ProviderRegistryProvider, ReasoningOutput, ReasoningUIPart, RepairTextFunction, RetryError, SafeValidateUIMessagesResult, SerialJobExecutor, SourceDocumentUIPart, SourceUrlUIPart, SpeechModel, SpeechModelResponseMetadata, SpeechWarning, StaticToolCall, StaticToolError, StaticToolResult, StepResult, StepStartUIPart, StopCondition, StreamObjectOnFinishCallback, StreamObjectResult, StreamTextOnChunkCallback, StreamTextOnErrorCallback, StreamTextOnFinishCallback, StreamTextOnStepFinishCallback, StreamTextResult, StreamTextTransform, TelemetrySettings, TextStreamChatTransport, TextStreamPart, TextUIPart, ToolCallRepairError, ToolCallRepairFunction, ToolChoice, ToolSet, ToolUIPart, TranscriptionModel, TranscriptionModelResponseMetadata, TranscriptionWarning, TypedToolCall, TypedToolError, TypedToolResult, UIDataPartSchemas, UIDataTypes, UIMessage, UIMessageChunk, UIMessagePart, UIMessageStreamOnFinishCallback, UIMessageStreamOptions, UIMessageStreamWriter, UITool, UIToolInvocation, UITools, UI_MESSAGE_STREAM_HEADERS, UnsupportedModelVersionError, UseCompletionOptions, assistantModelMessageSchema, callCompletionApi, consumeStream, convertFileListToFileUIParts, convertToCoreMessages, convertToModelMessages, coreAssistantMessageSchema, coreMessageSchema, coreSystemMessageSchema, coreToolMessageSchema, coreUserMessageSchema, cosineSimilarity, createProviderRegistry, createTextStreamResponse, createUIMessageStream, createUIMessageStreamResponse, customProvider, defaultSettingsMiddleware, embed, embedMany, MCPClient as experimental_MCPClient, MCPClientConfig as experimental_MCPClientConfig, createMCPClient as experimental_createMCPClient, experimental_createProviderRegistry, experimental_customProvider, generateImage as experimental_generateImage, generateSpeech as experimental_generateSpeech, transcribe as experimental_transcribe, extractReasoningMiddleware, generateObject, generateText, getTextFromDataUrl, getToolName, getToolOrDynamicToolName, hasToolCall, isDeepEqualData, isToolOrDynamicToolUIPart, isToolUIPart, lastAssistantMessageIsCompleteWithToolCalls, modelMessageSchema, parsePartialJson, pipeTextStreamToResponse, pipeUIMessageStreamToResponse, readUIMessageStream, safeValidateUIMessages, simulateReadableStream, simulateStreamingMiddleware, smoothStream, stepCountIs, streamObject, streamText, systemModelMessageSchema, toolModelMessageSchema, userModelMessageSchema, validateUIMessages, wrapLanguageModel, wrapProvider };
package/dist/index.d.ts CHANGED
@@ -4450,6 +4450,28 @@ type UseCompletionOptions = {
4450
4450
  fetch?: FetchFunction;
4451
4451
  };
4452
4452
 
4453
+ type SafeValidateUIMessagesResult<UI_MESSAGE extends UIMessage> = {
4454
+ success: true;
4455
+ data: Array<UI_MESSAGE>;
4456
+ } | {
4457
+ success: false;
4458
+ error: Error;
4459
+ };
4460
+ /**
4461
+ * Validates a list of UI messages like `validateUIMessages`,
4462
+ * but instead of throwing it returns `{ success: true, data }`
4463
+ * or `{ success: false, error }`.
4464
+ */
4465
+ declare function safeValidateUIMessages<UI_MESSAGE extends UIMessage>({ messages, metadataSchema, dataSchemas, tools, }: {
4466
+ messages: unknown;
4467
+ metadataSchema?: Validator<UIMessage['metadata']> | StandardSchemaV1<unknown, UI_MESSAGE['metadata']>;
4468
+ dataSchemas?: {
4469
+ [NAME in keyof InferUIMessageData<UI_MESSAGE> & string]?: Validator<InferUIMessageData<UI_MESSAGE>[NAME]> | StandardSchemaV1<unknown, InferUIMessageData<UI_MESSAGE>[NAME]>;
4470
+ };
4471
+ tools?: {
4472
+ [NAME in keyof InferUIMessageTools<UI_MESSAGE> & string]?: Tool<InferUIMessageTools<UI_MESSAGE>[NAME]['input'], InferUIMessageTools<UI_MESSAGE>[NAME]['output']>;
4473
+ };
4474
+ }): Promise<SafeValidateUIMessagesResult<UI_MESSAGE>>;
4453
4475
  /**
4454
4476
  * Validates a list of UI messages.
4455
4477
  *
@@ -4488,4 +4510,4 @@ declare global {
4488
4510
  var AI_SDK_LOG_WARNINGS: LogWarningsFunction | undefined | false;
4489
4511
  }
4490
4512
 
4491
- export { AbstractChat, AsyncIterableStream, CallSettings, CallWarning, ChatInit, ChatOnDataCallback, ChatOnErrorCallback, ChatOnFinishCallback, ChatOnToolCallCallback, ChatRequestOptions, ChatState, ChatStatus, ChatTransport, ChunkDetector, CompletionRequestOptions, CoreAssistantMessage, CoreMessage, CoreSystemMessage, CoreToolMessage, CoreUserMessage, CreateUIMessage, DataUIPart, DeepPartial, DefaultChatTransport, DownloadError, DynamicToolCall, DynamicToolError, DynamicToolResult, DynamicToolUIPart, EmbedManyResult, EmbedResult, Embedding, EmbeddingModel, EmbeddingModelUsage, ErrorHandler, Agent as Experimental_Agent, AgentSettings as Experimental_AgentSettings, DownloadFunction as Experimental_DownloadFunction, GenerateImageResult as Experimental_GenerateImageResult, GeneratedFile as Experimental_GeneratedImage, InferAgentUIMessage as Experimental_InferAgentUIMessage, LogWarningsFunction as Experimental_LogWarningsFunction, SpeechResult as Experimental_SpeechResult, TranscriptionResult as Experimental_TranscriptionResult, Warning as Experimental_Warning, FileUIPart, FinishReason, GenerateObjectResult, GenerateTextOnStepFinishCallback, GenerateTextResult, GeneratedAudioFile, GeneratedFile, HttpChatTransport, HttpChatTransportInitOptions, ImageModel, ImageGenerationWarning as ImageModelCallWarning, ImageModelProviderMetadata, ImageModelResponseMetadata, InferUIDataParts, InferUIMessageChunk, InferUITool, InferUITools, InvalidArgumentError, InvalidDataContentError, InvalidMessageRoleError, InvalidStreamPartError, InvalidToolInputError, JSONRPCError, JSONRPCMessage, JSONRPCNotification, JSONRPCRequest, JSONRPCResponse, JSONValue, JsonToSseTransformStream, LanguageModel, LanguageModelMiddleware, LanguageModelRequestMetadata, LanguageModelResponseMetadata, LanguageModelUsage, MCPClientError, MCPTransport, MessageConversionError, NoImageGeneratedError, NoObjectGeneratedError, NoOutputGeneratedError, NoOutputSpecifiedError, NoSuchProviderError, NoSuchToolError, ObjectStreamPart, output as Output, PrepareReconnectToStreamRequest, PrepareSendMessagesRequest, PrepareStepFunction, PrepareStepResult, Prompt, Provider, ProviderMetadata, ProviderRegistryProvider, ReasoningOutput, ReasoningUIPart, RepairTextFunction, RetryError, SerialJobExecutor, SourceDocumentUIPart, SourceUrlUIPart, SpeechModel, SpeechModelResponseMetadata, SpeechWarning, StaticToolCall, StaticToolError, StaticToolResult, StepResult, StepStartUIPart, StopCondition, StreamObjectOnFinishCallback, StreamObjectResult, StreamTextOnChunkCallback, StreamTextOnErrorCallback, StreamTextOnFinishCallback, StreamTextOnStepFinishCallback, StreamTextResult, StreamTextTransform, TelemetrySettings, TextStreamChatTransport, TextStreamPart, TextUIPart, ToolCallRepairError, ToolCallRepairFunction, ToolChoice, ToolSet, ToolUIPart, TranscriptionModel, TranscriptionModelResponseMetadata, TranscriptionWarning, TypedToolCall, TypedToolError, TypedToolResult, UIDataPartSchemas, UIDataTypes, UIMessage, UIMessageChunk, UIMessagePart, UIMessageStreamOnFinishCallback, UIMessageStreamOptions, UIMessageStreamWriter, UITool, UIToolInvocation, UITools, UI_MESSAGE_STREAM_HEADERS, UnsupportedModelVersionError, UseCompletionOptions, assistantModelMessageSchema, callCompletionApi, consumeStream, convertFileListToFileUIParts, convertToCoreMessages, convertToModelMessages, coreAssistantMessageSchema, coreMessageSchema, coreSystemMessageSchema, coreToolMessageSchema, coreUserMessageSchema, cosineSimilarity, createProviderRegistry, createTextStreamResponse, createUIMessageStream, createUIMessageStreamResponse, customProvider, defaultSettingsMiddleware, embed, embedMany, MCPClient as experimental_MCPClient, MCPClientConfig as experimental_MCPClientConfig, createMCPClient as experimental_createMCPClient, experimental_createProviderRegistry, experimental_customProvider, generateImage as experimental_generateImage, generateSpeech as experimental_generateSpeech, transcribe as experimental_transcribe, extractReasoningMiddleware, generateObject, generateText, getTextFromDataUrl, getToolName, getToolOrDynamicToolName, hasToolCall, isDeepEqualData, isToolOrDynamicToolUIPart, isToolUIPart, lastAssistantMessageIsCompleteWithToolCalls, modelMessageSchema, parsePartialJson, pipeTextStreamToResponse, pipeUIMessageStreamToResponse, readUIMessageStream, simulateReadableStream, simulateStreamingMiddleware, smoothStream, stepCountIs, streamObject, streamText, systemModelMessageSchema, toolModelMessageSchema, userModelMessageSchema, validateUIMessages, wrapLanguageModel, wrapProvider };
4513
+ export { AbstractChat, AsyncIterableStream, CallSettings, CallWarning, ChatInit, ChatOnDataCallback, ChatOnErrorCallback, ChatOnFinishCallback, ChatOnToolCallCallback, ChatRequestOptions, ChatState, ChatStatus, ChatTransport, ChunkDetector, CompletionRequestOptions, CoreAssistantMessage, CoreMessage, CoreSystemMessage, CoreToolMessage, CoreUserMessage, CreateUIMessage, DataUIPart, DeepPartial, DefaultChatTransport, DownloadError, DynamicToolCall, DynamicToolError, DynamicToolResult, DynamicToolUIPart, EmbedManyResult, EmbedResult, Embedding, EmbeddingModel, EmbeddingModelUsage, ErrorHandler, Agent as Experimental_Agent, AgentSettings as Experimental_AgentSettings, DownloadFunction as Experimental_DownloadFunction, GenerateImageResult as Experimental_GenerateImageResult, GeneratedFile as Experimental_GeneratedImage, InferAgentUIMessage as Experimental_InferAgentUIMessage, LogWarningsFunction as Experimental_LogWarningsFunction, SpeechResult as Experimental_SpeechResult, TranscriptionResult as Experimental_TranscriptionResult, Warning as Experimental_Warning, FileUIPart, FinishReason, GenerateObjectResult, GenerateTextOnStepFinishCallback, GenerateTextResult, GeneratedAudioFile, GeneratedFile, HttpChatTransport, HttpChatTransportInitOptions, ImageModel, ImageGenerationWarning as ImageModelCallWarning, ImageModelProviderMetadata, ImageModelResponseMetadata, InferUIDataParts, InferUIMessageChunk, InferUITool, InferUITools, InvalidArgumentError, InvalidDataContentError, InvalidMessageRoleError, InvalidStreamPartError, InvalidToolInputError, JSONRPCError, JSONRPCMessage, JSONRPCNotification, JSONRPCRequest, JSONRPCResponse, JSONValue, JsonToSseTransformStream, LanguageModel, LanguageModelMiddleware, LanguageModelRequestMetadata, LanguageModelResponseMetadata, LanguageModelUsage, MCPClientError, MCPTransport, MessageConversionError, NoImageGeneratedError, NoObjectGeneratedError, NoOutputGeneratedError, NoOutputSpecifiedError, NoSuchProviderError, NoSuchToolError, ObjectStreamPart, output as Output, PrepareReconnectToStreamRequest, PrepareSendMessagesRequest, PrepareStepFunction, PrepareStepResult, Prompt, Provider, ProviderMetadata, ProviderRegistryProvider, ReasoningOutput, ReasoningUIPart, RepairTextFunction, RetryError, SafeValidateUIMessagesResult, SerialJobExecutor, SourceDocumentUIPart, SourceUrlUIPart, SpeechModel, SpeechModelResponseMetadata, SpeechWarning, StaticToolCall, StaticToolError, StaticToolResult, StepResult, StepStartUIPart, StopCondition, StreamObjectOnFinishCallback, StreamObjectResult, StreamTextOnChunkCallback, StreamTextOnErrorCallback, StreamTextOnFinishCallback, StreamTextOnStepFinishCallback, StreamTextResult, StreamTextTransform, TelemetrySettings, TextStreamChatTransport, TextStreamPart, TextUIPart, ToolCallRepairError, ToolCallRepairFunction, ToolChoice, ToolSet, ToolUIPart, TranscriptionModel, TranscriptionModelResponseMetadata, TranscriptionWarning, TypedToolCall, TypedToolError, TypedToolResult, UIDataPartSchemas, UIDataTypes, UIMessage, UIMessageChunk, UIMessagePart, UIMessageStreamOnFinishCallback, UIMessageStreamOptions, UIMessageStreamWriter, UITool, UIToolInvocation, UITools, UI_MESSAGE_STREAM_HEADERS, UnsupportedModelVersionError, UseCompletionOptions, assistantModelMessageSchema, callCompletionApi, consumeStream, convertFileListToFileUIParts, convertToCoreMessages, convertToModelMessages, coreAssistantMessageSchema, coreMessageSchema, coreSystemMessageSchema, coreToolMessageSchema, coreUserMessageSchema, cosineSimilarity, createProviderRegistry, createTextStreamResponse, createUIMessageStream, createUIMessageStreamResponse, customProvider, defaultSettingsMiddleware, embed, embedMany, MCPClient as experimental_MCPClient, MCPClientConfig as experimental_MCPClientConfig, createMCPClient as experimental_createMCPClient, experimental_createProviderRegistry, experimental_customProvider, generateImage as experimental_generateImage, generateSpeech as experimental_generateSpeech, transcribe as experimental_transcribe, extractReasoningMiddleware, generateObject, generateText, getTextFromDataUrl, getToolName, getToolOrDynamicToolName, hasToolCall, isDeepEqualData, isToolOrDynamicToolUIPart, isToolUIPart, lastAssistantMessageIsCompleteWithToolCalls, modelMessageSchema, parsePartialJson, pipeTextStreamToResponse, pipeUIMessageStreamToResponse, readUIMessageStream, safeValidateUIMessages, simulateReadableStream, simulateStreamingMiddleware, smoothStream, stepCountIs, streamObject, streamText, systemModelMessageSchema, toolModelMessageSchema, userModelMessageSchema, validateUIMessages, wrapLanguageModel, wrapProvider };
package/dist/index.js CHANGED
@@ -107,6 +107,7 @@ __export(src_exports, {
107
107
  pipeTextStreamToResponse: () => pipeTextStreamToResponse,
108
108
  pipeUIMessageStreamToResponse: () => pipeUIMessageStreamToResponse,
109
109
  readUIMessageStream: () => readUIMessageStream,
110
+ safeValidateUIMessages: () => safeValidateUIMessages,
110
111
  simulateReadableStream: () => simulateReadableStream,
111
112
  simulateStreamingMiddleware: () => simulateStreamingMiddleware,
112
113
  smoothStream: () => smoothStream,
@@ -765,7 +766,7 @@ function detectMediaType({
765
766
  var import_provider_utils2 = require("@ai-sdk/provider-utils");
766
767
 
767
768
  // src/version.ts
768
- var VERSION = true ? "5.1.0-beta.0" : "0.0.0-test";
769
+ var VERSION = true ? "5.1.0-beta.1" : "0.0.0-test";
769
770
 
770
771
  // src/util/download/download.ts
771
772
  var download = async ({ url }) => {
@@ -10137,82 +10138,118 @@ var uiMessageSchema = import_v410.z.object({
10137
10138
  ])
10138
10139
  )
10139
10140
  });
10140
- async function validateUIMessages({
10141
+ async function safeValidateUIMessages({
10141
10142
  messages,
10142
10143
  metadataSchema,
10143
10144
  dataSchemas,
10144
10145
  tools
10145
10146
  }) {
10146
- if (messages == null) {
10147
- throw new InvalidArgumentError({
10148
- parameter: "messages",
10147
+ try {
10148
+ if (messages == null) {
10149
+ return {
10150
+ success: false,
10151
+ error: new InvalidArgumentError({
10152
+ parameter: "messages",
10153
+ value: messages,
10154
+ message: "messages parameter must be provided"
10155
+ })
10156
+ };
10157
+ }
10158
+ const validatedMessages = await (0, import_provider_utils33.validateTypes)({
10149
10159
  value: messages,
10150
- message: "messages parameter must be provided"
10160
+ schema: import_v410.z.array(uiMessageSchema)
10151
10161
  });
10152
- }
10153
- const validatedMessages = await (0, import_provider_utils33.validateTypes)({
10154
- value: messages,
10155
- schema: import_v410.z.array(uiMessageSchema)
10156
- });
10157
- if (metadataSchema) {
10158
- for (const message of validatedMessages) {
10159
- await (0, import_provider_utils33.validateTypes)({
10160
- value: message.metadata,
10161
- schema: metadataSchema
10162
- });
10163
- }
10164
- }
10165
- if (dataSchemas) {
10166
- for (const message of validatedMessages) {
10167
- const dataParts = message.parts.filter(
10168
- (part) => part.type.startsWith("data-")
10169
- );
10170
- for (const dataPart of dataParts) {
10171
- const dataName = dataPart.type.slice(5);
10172
- const dataSchema = dataSchemas[dataName];
10173
- if (!dataSchema) {
10174
- throw new import_provider32.TypeValidationError({
10175
- value: dataPart.data,
10176
- cause: `No data schema found for data part ${dataName}`
10177
- });
10178
- }
10162
+ if (metadataSchema) {
10163
+ for (const message of validatedMessages) {
10179
10164
  await (0, import_provider_utils33.validateTypes)({
10180
- value: dataPart.data,
10181
- schema: dataSchema
10165
+ value: message.metadata,
10166
+ schema: metadataSchema
10182
10167
  });
10183
10168
  }
10184
10169
  }
10185
- }
10186
- if (tools) {
10187
- for (const message of validatedMessages) {
10188
- const toolParts = message.parts.filter(
10189
- (part) => part.type.startsWith("tool-")
10190
- );
10191
- for (const toolPart of toolParts) {
10192
- const toolName = toolPart.type.slice(5);
10193
- const tool3 = tools[toolName];
10194
- if (!tool3) {
10195
- throw new import_provider32.TypeValidationError({
10196
- value: toolPart.input,
10197
- cause: `No tool schema found for tool part ${toolName}`
10198
- });
10199
- }
10200
- if (toolPart.state === "input-available" || toolPart.state === "output-available" || toolPart.state === "output-error") {
10170
+ if (dataSchemas) {
10171
+ for (const message of validatedMessages) {
10172
+ const dataParts = message.parts.filter(
10173
+ (part) => part.type.startsWith("data-")
10174
+ );
10175
+ for (const dataPart of dataParts) {
10176
+ const dataName = dataPart.type.slice(5);
10177
+ const dataSchema = dataSchemas[dataName];
10178
+ if (!dataSchema) {
10179
+ return {
10180
+ success: false,
10181
+ error: new import_provider32.TypeValidationError({
10182
+ value: dataPart.data,
10183
+ cause: `No data schema found for data part ${dataName}`
10184
+ })
10185
+ };
10186
+ }
10201
10187
  await (0, import_provider_utils33.validateTypes)({
10202
- value: toolPart.input,
10203
- schema: tool3.inputSchema
10188
+ value: dataPart.data,
10189
+ schema: dataSchema
10204
10190
  });
10205
10191
  }
10206
- if (toolPart.state === "output-available" && tool3.outputSchema) {
10207
- await (0, import_provider_utils33.validateTypes)({
10208
- value: toolPart.output,
10209
- schema: tool3.outputSchema
10210
- });
10192
+ }
10193
+ }
10194
+ if (tools) {
10195
+ for (const message of validatedMessages) {
10196
+ const toolParts = message.parts.filter(
10197
+ (part) => part.type.startsWith("tool-")
10198
+ );
10199
+ for (const toolPart of toolParts) {
10200
+ const toolName = toolPart.type.slice(5);
10201
+ const tool3 = tools[toolName];
10202
+ if (!tool3) {
10203
+ return {
10204
+ success: false,
10205
+ error: new import_provider32.TypeValidationError({
10206
+ value: toolPart.input,
10207
+ cause: `No tool schema found for tool part ${toolName}`
10208
+ })
10209
+ };
10210
+ }
10211
+ if (toolPart.state === "input-available" || toolPart.state === "output-available" || toolPart.state === "output-error") {
10212
+ await (0, import_provider_utils33.validateTypes)({
10213
+ value: toolPart.input,
10214
+ schema: tool3.inputSchema
10215
+ });
10216
+ }
10217
+ if (toolPart.state === "output-available" && tool3.outputSchema) {
10218
+ await (0, import_provider_utils33.validateTypes)({
10219
+ value: toolPart.output,
10220
+ schema: tool3.outputSchema
10221
+ });
10222
+ }
10211
10223
  }
10212
10224
  }
10213
10225
  }
10226
+ return {
10227
+ success: true,
10228
+ data: validatedMessages
10229
+ };
10230
+ } catch (error) {
10231
+ const err = error;
10232
+ return {
10233
+ success: false,
10234
+ error: err
10235
+ };
10214
10236
  }
10215
- return validatedMessages;
10237
+ }
10238
+ async function validateUIMessages({
10239
+ messages,
10240
+ metadataSchema,
10241
+ dataSchemas,
10242
+ tools
10243
+ }) {
10244
+ const response = await safeValidateUIMessages({
10245
+ messages,
10246
+ metadataSchema,
10247
+ dataSchemas,
10248
+ tools
10249
+ });
10250
+ if (!response.success)
10251
+ throw response.error;
10252
+ return response.data;
10216
10253
  }
10217
10254
 
10218
10255
  // src/ui-message-stream/create-ui-message-stream.ts
@@ -10437,6 +10474,7 @@ function readUIMessageStream({
10437
10474
  pipeTextStreamToResponse,
10438
10475
  pipeUIMessageStreamToResponse,
10439
10476
  readUIMessageStream,
10477
+ safeValidateUIMessages,
10440
10478
  simulateReadableStream,
10441
10479
  simulateStreamingMiddleware,
10442
10480
  smoothStream,