{ "version": 3, "sources": ["../node_modules/secure-json-parse/index.js", "../node_modules/@ai-sdk/provider/src/errors/ai-sdk-error.ts", "../node_modules/@ai-sdk/provider/src/errors/api-call-error.ts", "../node_modules/@ai-sdk/provider/src/errors/empty-response-body-error.ts", "../node_modules/@ai-sdk/provider/src/errors/get-error-message.ts", "../node_modules/@ai-sdk/provider/src/errors/invalid-argument-error.ts", "../node_modules/@ai-sdk/provider/src/errors/invalid-prompt-error.ts", "../node_modules/@ai-sdk/provider/src/errors/invalid-response-data-error.ts", "../node_modules/@ai-sdk/provider/src/errors/json-parse-error.ts", "../node_modules/@ai-sdk/provider/src/errors/load-api-key-error.ts", "../node_modules/@ai-sdk/provider/src/errors/load-setting-error.ts", "../node_modules/@ai-sdk/provider/src/errors/no-content-generated-error.ts", "../node_modules/@ai-sdk/provider/src/errors/no-such-model-error.ts", "../node_modules/@ai-sdk/provider/src/errors/too-many-embedding-values-for-call-error.ts", "../node_modules/@ai-sdk/provider/src/errors/type-validation-error.ts", "../node_modules/@ai-sdk/provider/src/errors/unsupported-functionality-error.ts", "../node_modules/@ai-sdk/provider/src/json-value/is-json.ts", "../node_modules/nanoid/non-secure/index.js", "../node_modules/@ai-sdk/provider-utils/src/combine-headers.ts", "../node_modules/@ai-sdk/provider-utils/src/convert-async-iterator-to-readable-stream.ts", "../node_modules/@ai-sdk/provider-utils/src/delay.ts", "../node_modules/@ai-sdk/provider-utils/src/extract-response-headers.ts", "../node_modules/@ai-sdk/provider-utils/src/generate-id.ts", "../node_modules/@ai-sdk/provider-utils/src/get-error-message.ts", "../node_modules/@ai-sdk/provider-utils/src/get-from-api.ts", "../node_modules/@ai-sdk/provider-utils/src/remove-undefined-entries.ts", "../node_modules/@ai-sdk/provider-utils/src/is-abort-error.ts", "../node_modules/@ai-sdk/provider-utils/src/load-api-key.ts", "../node_modules/@ai-sdk/provider-utils/src/load-optional-setting.ts", "../node_modules/@ai-sdk/provider-utils/src/load-setting.ts", "../node_modules/@ai-sdk/provider-utils/src/parse-json.ts", "../node_modules/@ai-sdk/provider-utils/src/validate-types.ts", "../node_modules/@ai-sdk/provider-utils/src/validator.ts", "../node_modules/@ai-sdk/provider-utils/src/post-to-api.ts", "../node_modules/@ai-sdk/provider-utils/src/resolve.ts", "../node_modules/@ai-sdk/provider-utils/src/response-handler.ts", "../node_modules/@ai-sdk/provider-utils/src/uint8-utils.ts", "../node_modules/@ai-sdk/provider-utils/src/without-trailing-slash.ts", "../node_modules/zod-to-json-schema/dist/esm/Options.js", "../node_modules/zod-to-json-schema/dist/esm/Refs.js", "../node_modules/zod-to-json-schema/dist/esm/errorMessages.js", "../node_modules/zod/lib/index.mjs", "../node_modules/zod-to-json-schema/dist/esm/parsers/any.js", "../node_modules/zod-to-json-schema/dist/esm/parsers/array.js", "../node_modules/zod-to-json-schema/dist/esm/parsers/bigint.js", "../node_modules/zod-to-json-schema/dist/esm/parsers/boolean.js", "../node_modules/zod-to-json-schema/dist/esm/parsers/branded.js", "../node_modules/zod-to-json-schema/dist/esm/parsers/catch.js", "../node_modules/zod-to-json-schema/dist/esm/parsers/date.js", "../node_modules/zod-to-json-schema/dist/esm/parsers/default.js", "../node_modules/zod-to-json-schema/dist/esm/parsers/effects.js", "../node_modules/zod-to-json-schema/dist/esm/parsers/enum.js", "../node_modules/zod-to-json-schema/dist/esm/parsers/intersection.js", "../node_modules/zod-to-json-schema/dist/esm/parsers/literal.js", "../node_modules/zod-to-json-schema/dist/esm/parsers/string.js", "../node_modules/zod-to-json-schema/dist/esm/parsers/record.js", "../node_modules/zod-to-json-schema/dist/esm/parsers/map.js", "../node_modules/zod-to-json-schema/dist/esm/parsers/nativeEnum.js", "../node_modules/zod-to-json-schema/dist/esm/parsers/never.js", "../node_modules/zod-to-json-schema/dist/esm/parsers/null.js", "../node_modules/zod-to-json-schema/dist/esm/parsers/union.js", "../node_modules/zod-to-json-schema/dist/esm/parsers/nullable.js", "../node_modules/zod-to-json-schema/dist/esm/parsers/number.js", "../node_modules/zod-to-json-schema/dist/esm/parsers/object.js", "../node_modules/zod-to-json-schema/dist/esm/parsers/optional.js", "../node_modules/zod-to-json-schema/dist/esm/parsers/pipeline.js", "../node_modules/zod-to-json-schema/dist/esm/parsers/promise.js", "../node_modules/zod-to-json-schema/dist/esm/parsers/set.js", "../node_modules/zod-to-json-schema/dist/esm/parsers/tuple.js", "../node_modules/zod-to-json-schema/dist/esm/parsers/undefined.js", "../node_modules/zod-to-json-schema/dist/esm/parsers/unknown.js", "../node_modules/zod-to-json-schema/dist/esm/parsers/readonly.js", "../node_modules/zod-to-json-schema/dist/esm/selectParser.js", "../node_modules/zod-to-json-schema/dist/esm/parseDef.js", "../node_modules/zod-to-json-schema/dist/esm/zodToJsonSchema.js", "../node_modules/zod-to-json-schema/dist/esm/index.js", "../node_modules/@ai-sdk/ui-utils/src/index.ts", "../node_modules/@ai-sdk/ui-utils/src/assistant-stream-parts.ts", "../node_modules/@ai-sdk/ui-utils/src/process-chat-response.ts", "../node_modules/@ai-sdk/ui-utils/src/duplicated/usage.ts", "../node_modules/@ai-sdk/ui-utils/src/parse-partial-json.ts", "../node_modules/@ai-sdk/ui-utils/src/fix-json.ts", "../node_modules/@ai-sdk/ui-utils/src/data-stream-parts.ts", "../node_modules/@ai-sdk/ui-utils/src/process-data-stream.ts", "../node_modules/@ai-sdk/ui-utils/src/process-chat-text-response.ts", "../node_modules/@ai-sdk/ui-utils/src/process-text-stream.ts", "../node_modules/@ai-sdk/ui-utils/src/call-chat-api.ts", "../node_modules/@ai-sdk/ui-utils/src/call-completion-api.ts", "../node_modules/@ai-sdk/ui-utils/src/data-url.ts", "../node_modules/@ai-sdk/ui-utils/src/extract-max-tool-invocation-step.ts", "../node_modules/@ai-sdk/ui-utils/src/get-message-parts.ts", "../node_modules/@ai-sdk/ui-utils/src/fill-message-parts.ts", "../node_modules/@ai-sdk/ui-utils/src/is-deep-equal-data.ts", "../node_modules/@ai-sdk/ui-utils/src/prepare-attachments-for-request.ts", "../node_modules/@ai-sdk/ui-utils/src/process-assistant-stream.ts", "../node_modules/@ai-sdk/ui-utils/src/schema.ts", "../node_modules/@ai-sdk/ui-utils/src/zod-schema.ts", "../node_modules/@ai-sdk/ui-utils/src/should-resubmit-messages.ts", "../node_modules/@ai-sdk/ui-utils/src/update-tool-call-result.ts", "../node_modules/@opentelemetry/api/src/platform/browser/globalThis.ts", "../node_modules/@opentelemetry/api/src/version.ts", "../node_modules/@opentelemetry/api/src/internal/semver.ts", "../node_modules/@opentelemetry/api/src/internal/global-utils.ts", "../node_modules/@opentelemetry/api/src/diag/ComponentLogger.ts", "../node_modules/@opentelemetry/api/src/diag/types.ts", "../node_modules/@opentelemetry/api/src/diag/internal/logLevelLogger.ts", "../node_modules/@opentelemetry/api/src/api/diag.ts", "../node_modules/@opentelemetry/api/src/context/context.ts", "../node_modules/@opentelemetry/api/src/context/NoopContextManager.ts", "../node_modules/@opentelemetry/api/src/api/context.ts", "../node_modules/@opentelemetry/api/src/trace/trace_flags.ts", "../node_modules/@opentelemetry/api/src/trace/invalid-span-constants.ts", "../node_modules/@opentelemetry/api/src/trace/NonRecordingSpan.ts", "../node_modules/@opentelemetry/api/src/trace/context-utils.ts", "../node_modules/@opentelemetry/api/src/trace/spancontext-utils.ts", "../node_modules/@opentelemetry/api/src/trace/NoopTracer.ts", "../node_modules/@opentelemetry/api/src/trace/ProxyTracer.ts", "../node_modules/@opentelemetry/api/src/trace/NoopTracerProvider.ts", "../node_modules/@opentelemetry/api/src/trace/ProxyTracerProvider.ts", "../node_modules/@opentelemetry/api/src/trace/status.ts", "../node_modules/@opentelemetry/api/src/api/trace.ts", "../node_modules/@opentelemetry/api/src/trace-api.ts", "../convex/getTasks.js"], "sourcesContent": ["'use strict'\n\nconst hasBuffer = typeof Buffer !== 'undefined'\nconst suspectProtoRx = /\"(?:_|\\\\u005[Ff])(?:_|\\\\u005[Ff])(?:p|\\\\u0070)(?:r|\\\\u0072)(?:o|\\\\u006[Ff])(?:t|\\\\u0074)(?:o|\\\\u006[Ff])(?:_|\\\\u005[Ff])(?:_|\\\\u005[Ff])\"\\s*:/\nconst suspectConstructorRx = /\"(?:c|\\\\u0063)(?:o|\\\\u006[Ff])(?:n|\\\\u006[Ee])(?:s|\\\\u0073)(?:t|\\\\u0074)(?:r|\\\\u0072)(?:u|\\\\u0075)(?:c|\\\\u0063)(?:t|\\\\u0074)(?:o|\\\\u006[Ff])(?:r|\\\\u0072)\"\\s*:/\n\nfunction _parse (text, reviver, options) {\n // Normalize arguments\n if (options == null) {\n if (reviver !== null && typeof reviver === 'object') {\n options = reviver\n reviver = undefined\n }\n }\n\n if (hasBuffer && Buffer.isBuffer(text)) {\n text = text.toString()\n }\n\n // BOM checker\n if (text && text.charCodeAt(0) === 0xFEFF) {\n text = text.slice(1)\n }\n\n // Parse normally, allowing exceptions\n const obj = JSON.parse(text, reviver)\n\n // Ignore null and non-objects\n if (obj === null || typeof obj !== 'object') {\n return obj\n }\n\n const protoAction = (options && options.protoAction) || 'error'\n const constructorAction = (options && options.constructorAction) || 'error'\n\n // options: 'error' (default) / 'remove' / 'ignore'\n if (protoAction === 'ignore' && constructorAction === 'ignore') {\n return obj\n }\n\n if (protoAction !== 'ignore' && constructorAction !== 'ignore') {\n if (suspectProtoRx.test(text) === false && suspectConstructorRx.test(text) === false) {\n return obj\n }\n } else if (protoAction !== 'ignore' && constructorAction === 'ignore') {\n if (suspectProtoRx.test(text) === false) {\n return obj\n }\n } else {\n if (suspectConstructorRx.test(text) === false) {\n return obj\n }\n }\n\n // Scan result for proto keys\n return filter(obj, { protoAction, constructorAction, safe: options && options.safe })\n}\n\nfunction filter (obj, { protoAction = 'error', constructorAction = 'error', safe } = {}) {\n let next = [obj]\n\n while (next.length) {\n const nodes = next\n next = []\n\n for (const node of nodes) {\n if (protoAction !== 'ignore' && Object.prototype.hasOwnProperty.call(node, '__proto__')) { // Avoid calling node.hasOwnProperty directly\n if (safe === true) {\n return null\n } else if (protoAction === 'error') {\n throw new SyntaxError('Object contains forbidden prototype property')\n }\n\n delete node.__proto__ // eslint-disable-line no-proto\n }\n\n if (constructorAction !== 'ignore' &&\n Object.prototype.hasOwnProperty.call(node, 'constructor') &&\n Object.prototype.hasOwnProperty.call(node.constructor, 'prototype')) { // Avoid calling node.hasOwnProperty directly\n if (safe === true) {\n return null\n } else if (constructorAction === 'error') {\n throw new SyntaxError('Object contains forbidden prototype property')\n }\n\n delete node.constructor\n }\n\n for (const key in node) {\n const value = node[key]\n if (value && typeof value === 'object') {\n next.push(value)\n }\n }\n }\n }\n return obj\n}\n\nfunction parse (text, reviver, options) {\n const stackTraceLimit = Error.stackTraceLimit\n Error.stackTraceLimit = 0\n try {\n return _parse(text, reviver, options)\n } finally {\n Error.stackTraceLimit = stackTraceLimit\n }\n}\n\nfunction safeParse (text, reviver) {\n const stackTraceLimit = Error.stackTraceLimit\n Error.stackTraceLimit = 0\n try {\n return _parse(text, reviver, { safe: true })\n } catch (_e) {\n return null\n } finally {\n Error.stackTraceLimit = stackTraceLimit\n }\n}\n\nmodule.exports = parse\nmodule.exports.default = parse\nmodule.exports.parse = parse\nmodule.exports.safeParse = safeParse\nmodule.exports.scan = filter\n", "/**\n * Symbol used for identifying AI SDK Error instances.\n * Enables checking if an error is an instance of AISDKError across package versions.\n */\nconst marker = 'vercel.ai.error';\nconst symbol = Symbol.for(marker);\n\n/**\n * Custom error class for AI SDK related errors.\n * @extends Error\n */\nexport class AISDKError extends Error {\n private readonly [symbol] = true; // used in isInstance\n\n /**\n * The underlying cause of the error, if any.\n */\n readonly cause?: unknown;\n\n /**\n * Creates an AI SDK Error.\n *\n * @param {Object} params - The parameters for creating the error.\n * @param {string} params.name - The name of the error.\n * @param {string} params.message - The error message.\n * @param {unknown} [params.cause] - The underlying cause of the error.\n */\n constructor({\n name,\n message,\n cause,\n }: {\n name: string;\n message: string;\n cause?: unknown;\n }) {\n super(message);\n\n this.name = name;\n this.cause = cause;\n }\n\n /**\n * Checks if the given error is an AI SDK Error.\n * @param {unknown} error - The error to check.\n * @returns {boolean} True if the error is an AI SDK Error, false otherwise.\n */\n static isInstance(error: unknown): error is AISDKError {\n return AISDKError.hasMarker(error, marker);\n }\n\n protected static hasMarker(error: unknown, marker: string): boolean {\n const markerSymbol = Symbol.for(marker);\n return (\n error != null &&\n typeof error === 'object' &&\n markerSymbol in error &&\n typeof error[markerSymbol] === 'boolean' &&\n error[markerSymbol] === true\n );\n }\n}\n", "import { AISDKError } from './ai-sdk-error';\n\nconst name = 'AI_APICallError';\nconst marker = `vercel.ai.error.${name}`;\nconst symbol = Symbol.for(marker);\n\nexport class APICallError extends AISDKError {\n private readonly [symbol] = true; // used in isInstance\n\n readonly url: string;\n readonly requestBodyValues: unknown;\n readonly statusCode?: number;\n\n readonly responseHeaders?: Record;\n readonly responseBody?: string;\n\n readonly isRetryable: boolean;\n readonly data?: unknown;\n\n constructor({\n message,\n url,\n requestBodyValues,\n statusCode,\n responseHeaders,\n responseBody,\n cause,\n isRetryable = statusCode != null &&\n (statusCode === 408 || // request timeout\n statusCode === 409 || // conflict\n statusCode === 429 || // too many requests\n statusCode >= 500), // server error\n data,\n }: {\n message: string;\n url: string;\n requestBodyValues: unknown;\n statusCode?: number;\n responseHeaders?: Record;\n responseBody?: string;\n cause?: unknown;\n isRetryable?: boolean;\n data?: unknown;\n }) {\n super({ name, message, cause });\n\n this.url = url;\n this.requestBodyValues = requestBodyValues;\n this.statusCode = statusCode;\n this.responseHeaders = responseHeaders;\n this.responseBody = responseBody;\n this.isRetryable = isRetryable;\n this.data = data;\n }\n\n static isInstance(error: unknown): error is APICallError {\n return AISDKError.hasMarker(error, marker);\n }\n}\n", "import { AISDKError } from './ai-sdk-error';\n\nconst name = 'AI_EmptyResponseBodyError';\nconst marker = `vercel.ai.error.${name}`;\nconst symbol = Symbol.for(marker);\n\nexport class EmptyResponseBodyError extends AISDKError {\n private readonly [symbol] = true; // used in isInstance\n\n constructor({ message = 'Empty response body' }: { message?: string } = {}) {\n super({ name, message });\n }\n\n static isInstance(error: unknown): error is EmptyResponseBodyError {\n return AISDKError.hasMarker(error, marker);\n }\n}\n", "export function getErrorMessage(error: unknown | undefined) {\n if (error == null) {\n return 'unknown error';\n }\n\n if (typeof error === 'string') {\n return error;\n }\n\n if (error instanceof Error) {\n return error.message;\n }\n\n return JSON.stringify(error);\n}\n", "import { AISDKError } from './ai-sdk-error';\n\nconst name = 'AI_InvalidArgumentError';\nconst marker = `vercel.ai.error.${name}`;\nconst symbol = Symbol.for(marker);\n\n/**\n * A function argument is invalid.\n */\nexport class InvalidArgumentError extends AISDKError {\n private readonly [symbol] = true; // used in isInstance\n\n readonly argument: string;\n\n constructor({\n message,\n cause,\n argument,\n }: {\n argument: string;\n message: string;\n cause?: unknown;\n }) {\n super({ name, message, cause });\n\n this.argument = argument;\n }\n\n static isInstance(error: unknown): error is InvalidArgumentError {\n return AISDKError.hasMarker(error, marker);\n }\n}\n", "import { AISDKError } from './ai-sdk-error';\n\nconst name = 'AI_InvalidPromptError';\nconst marker = `vercel.ai.error.${name}`;\nconst symbol = Symbol.for(marker);\n\n/**\n * A prompt is invalid. This error should be thrown by providers when they cannot\n * process a prompt.\n */\nexport class InvalidPromptError extends AISDKError {\n private readonly [symbol] = true; // used in isInstance\n\n readonly prompt: unknown;\n\n constructor({\n prompt,\n message,\n cause,\n }: {\n prompt: unknown;\n message: string;\n cause?: unknown;\n }) {\n super({ name, message: `Invalid prompt: ${message}`, cause });\n\n this.prompt = prompt;\n }\n\n static isInstance(error: unknown): error is InvalidPromptError {\n return AISDKError.hasMarker(error, marker);\n }\n}\n", "import { AISDKError } from './ai-sdk-error';\n\nconst name = 'AI_InvalidResponseDataError';\nconst marker = `vercel.ai.error.${name}`;\nconst symbol = Symbol.for(marker);\n\n/**\n * Server returned a response with invalid data content.\n * This should be thrown by providers when they cannot parse the response from the API.\n */\nexport class InvalidResponseDataError extends AISDKError {\n private readonly [symbol] = true; // used in isInstance\n\n readonly data: unknown;\n\n constructor({\n data,\n message = `Invalid response data: ${JSON.stringify(data)}.`,\n }: {\n data: unknown;\n message?: string;\n }) {\n super({ name, message });\n\n this.data = data;\n }\n\n static isInstance(error: unknown): error is InvalidResponseDataError {\n return AISDKError.hasMarker(error, marker);\n }\n}\n", "import { AISDKError } from './ai-sdk-error';\nimport { getErrorMessage } from './get-error-message';\n\nconst name = 'AI_JSONParseError';\nconst marker = `vercel.ai.error.${name}`;\nconst symbol = Symbol.for(marker);\n\n// TODO v5: rename to ParseError\nexport class JSONParseError extends AISDKError {\n private readonly [symbol] = true; // used in isInstance\n\n readonly text: string;\n\n constructor({ text, cause }: { text: string; cause: unknown }) {\n super({\n name,\n message:\n `JSON parsing failed: ` +\n `Text: ${text}.\\n` +\n `Error message: ${getErrorMessage(cause)}`,\n cause,\n });\n\n this.text = text;\n }\n\n static isInstance(error: unknown): error is JSONParseError {\n return AISDKError.hasMarker(error, marker);\n }\n}\n", "import { AISDKError } from './ai-sdk-error';\n\nconst name = 'AI_LoadAPIKeyError';\nconst marker = `vercel.ai.error.${name}`;\nconst symbol = Symbol.for(marker);\n\nexport class LoadAPIKeyError extends AISDKError {\n private readonly [symbol] = true; // used in isInstance\n\n constructor({ message }: { message: string }) {\n super({ name, message });\n }\n\n static isInstance(error: unknown): error is LoadAPIKeyError {\n return AISDKError.hasMarker(error, marker);\n }\n}\n", "import { AISDKError } from './ai-sdk-error';\n\nconst name = 'AI_LoadSettingError';\nconst marker = `vercel.ai.error.${name}`;\nconst symbol = Symbol.for(marker);\n\nexport class LoadSettingError extends AISDKError {\n private readonly [symbol] = true; // used in isInstance\n\n constructor({ message }: { message: string }) {\n super({ name, message });\n }\n\n static isInstance(error: unknown): error is LoadSettingError {\n return AISDKError.hasMarker(error, marker);\n }\n}\n", "import { AISDKError } from './ai-sdk-error';\n\nconst name = 'AI_NoContentGeneratedError';\nconst marker = `vercel.ai.error.${name}`;\nconst symbol = Symbol.for(marker);\n\n/**\nThrown when the AI provider fails to generate any content.\n */\nexport class NoContentGeneratedError extends AISDKError {\n private readonly [symbol] = true; // used in isInstance\n\n constructor({\n message = 'No content generated.',\n }: { message?: string } = {}) {\n super({ name, message });\n }\n\n static isInstance(error: unknown): error is NoContentGeneratedError {\n return AISDKError.hasMarker(error, marker);\n }\n}\n", "import { AISDKError } from './ai-sdk-error';\n\nconst name = 'AI_NoSuchModelError';\nconst marker = `vercel.ai.error.${name}`;\nconst symbol = Symbol.for(marker);\n\nexport class NoSuchModelError extends AISDKError {\n private readonly [symbol] = true; // used in isInstance\n\n readonly modelId: string;\n readonly modelType: 'languageModel' | 'textEmbeddingModel' | 'imageModel';\n\n constructor({\n errorName = name,\n modelId,\n modelType,\n message = `No such ${modelType}: ${modelId}`,\n }: {\n errorName?: string;\n modelId: string;\n modelType: 'languageModel' | 'textEmbeddingModel' | 'imageModel';\n message?: string;\n }) {\n super({ name: errorName, message });\n\n this.modelId = modelId;\n this.modelType = modelType;\n }\n\n static isInstance(error: unknown): error is NoSuchModelError {\n return AISDKError.hasMarker(error, marker);\n }\n}\n", "import { AISDKError } from './ai-sdk-error';\n\nconst name = 'AI_TooManyEmbeddingValuesForCallError';\nconst marker = `vercel.ai.error.${name}`;\nconst symbol = Symbol.for(marker);\n\nexport class TooManyEmbeddingValuesForCallError extends AISDKError {\n private readonly [symbol] = true; // used in isInstance\n\n readonly provider: string;\n readonly modelId: string;\n readonly maxEmbeddingsPerCall: number;\n readonly values: Array;\n\n constructor(options: {\n provider: string;\n modelId: string;\n maxEmbeddingsPerCall: number;\n values: Array;\n }) {\n super({\n name,\n message:\n `Too many values for a single embedding call. ` +\n `The ${options.provider} model \"${options.modelId}\" can only embed up to ` +\n `${options.maxEmbeddingsPerCall} values per call, but ${options.values.length} values were provided.`,\n });\n\n this.provider = options.provider;\n this.modelId = options.modelId;\n this.maxEmbeddingsPerCall = options.maxEmbeddingsPerCall;\n this.values = options.values;\n }\n\n static isInstance(\n error: unknown,\n ): error is TooManyEmbeddingValuesForCallError {\n return AISDKError.hasMarker(error, marker);\n }\n}\n", "import { AISDKError } from './ai-sdk-error';\nimport { getErrorMessage } from './get-error-message';\n\nconst name = 'AI_TypeValidationError';\nconst marker = `vercel.ai.error.${name}`;\nconst symbol = Symbol.for(marker);\n\nexport class TypeValidationError extends AISDKError {\n private readonly [symbol] = true; // used in isInstance\n\n readonly value: unknown;\n\n constructor({ value, cause }: { value: unknown; cause: unknown }) {\n super({\n name,\n message:\n `Type validation failed: ` +\n `Value: ${JSON.stringify(value)}.\\n` +\n `Error message: ${getErrorMessage(cause)}`,\n cause,\n });\n\n this.value = value;\n }\n\n static isInstance(error: unknown): error is TypeValidationError {\n return AISDKError.hasMarker(error, marker);\n }\n\n /**\n * Wraps an error into a TypeValidationError.\n * If the cause is already a TypeValidationError with the same value, it returns the cause.\n * Otherwise, it creates a new TypeValidationError.\n *\n * @param {Object} params - The parameters for wrapping the error.\n * @param {unknown} params.value - The value that failed validation.\n * @param {unknown} params.cause - The original error or cause of the validation failure.\n * @returns {TypeValidationError} A TypeValidationError instance.\n */\n static wrap({\n value,\n cause,\n }: {\n value: unknown;\n cause: unknown;\n }): TypeValidationError {\n return TypeValidationError.isInstance(cause) && cause.value === value\n ? cause\n : new TypeValidationError({ value, cause });\n }\n}\n", "import { AISDKError } from './ai-sdk-error';\n\nconst name = 'AI_UnsupportedFunctionalityError';\nconst marker = `vercel.ai.error.${name}`;\nconst symbol = Symbol.for(marker);\n\nexport class UnsupportedFunctionalityError extends AISDKError {\n private readonly [symbol] = true; // used in isInstance\n\n readonly functionality: string;\n\n constructor({\n functionality,\n message = `'${functionality}' functionality not supported.`,\n }: {\n functionality: string;\n message?: string;\n }) {\n super({ name, message });\n this.functionality = functionality;\n }\n\n static isInstance(error: unknown): error is UnsupportedFunctionalityError {\n return AISDKError.hasMarker(error, marker);\n }\n}\n", "import { JSONArray, JSONObject, JSONValue } from './json-value';\n\nexport function isJSONValue(value: unknown): value is JSONValue {\n if (\n value === null ||\n typeof value === 'string' ||\n typeof value === 'number' ||\n typeof value === 'boolean'\n ) {\n return true;\n }\n\n if (Array.isArray(value)) {\n return value.every(isJSONValue);\n }\n\n if (typeof value === 'object') {\n return Object.entries(value).every(\n ([key, val]) => typeof key === 'string' && isJSONValue(val),\n );\n }\n\n return false;\n}\n\nexport function isJSONArray(value: unknown): value is JSONArray {\n return Array.isArray(value) && value.every(isJSONValue);\n}\n\nexport function isJSONObject(value: unknown): value is JSONObject {\n return (\n value != null &&\n typeof value === 'object' &&\n Object.entries(value).every(\n ([key, val]) => typeof key === 'string' && isJSONValue(val),\n )\n );\n}\n", "// This alphabet uses `A-Za-z0-9_-` symbols.\n// The order of characters is optimized for better gzip and brotli compression.\n// References to the same file (works both for gzip and brotli):\n// `'use`, `andom`, and `rict'`\n// References to the brotli default dictionary:\n// `-26T`, `1983`, `40px`, `75px`, `bush`, `jack`, `mind`, `very`, and `wolf`\nlet urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\n\nlet customAlphabet = (alphabet, defaultSize = 21) => {\n return (size = defaultSize) => {\n let id = ''\n // A compact alternative for `for (var i = 0; i < step; i++)`.\n let i = size | 0\n while (i--) {\n // `| 0` is more compact and faster than `Math.floor()`.\n id += alphabet[(Math.random() * alphabet.length) | 0]\n }\n return id\n }\n}\n\nlet nanoid = (size = 21) => {\n let id = ''\n // A compact alternative for `for (var i = 0; i < step; i++)`.\n let i = size | 0\n while (i--) {\n // `| 0` is more compact and faster than `Math.floor()`.\n id += urlAlphabet[(Math.random() * 64) | 0]\n }\n return id\n}\n\nexport { nanoid, customAlphabet }\n", "export function combineHeaders(\n ...headers: Array | undefined>\n): Record {\n return headers.reduce(\n (combinedHeaders, currentHeaders) => ({\n ...combinedHeaders,\n ...(currentHeaders ?? {}),\n }),\n {},\n ) as Record;\n}\n", "/**\n * Converts an AsyncIterator to a ReadableStream.\n *\n * @template T - The type of elements produced by the AsyncIterator.\n * @param { } iterator - The AsyncIterator to convert.\n * @returns {ReadableStream} - A ReadableStream that provides the same data as the AsyncIterator.\n */\nexport function convertAsyncIteratorToReadableStream(\n iterator: AsyncIterator,\n): ReadableStream {\n return new ReadableStream({\n /**\n * Called when the consumer wants to pull more data from the stream.\n *\n * @param {ReadableStreamDefaultController} controller - The controller to enqueue data into the stream.\n * @returns {Promise}\n */\n async pull(controller) {\n try {\n const { value, done } = await iterator.next();\n if (done) {\n controller.close();\n } else {\n controller.enqueue(value);\n }\n } catch (error) {\n controller.error(error);\n }\n },\n /**\n * Called when the consumer cancels the stream.\n */\n cancel() {},\n });\n}\n", "/**\n * Creates a Promise that resolves after a specified delay\n * @param delayInMs - The delay duration in milliseconds. If null or undefined, resolves immediately.\n * @returns A Promise that resolves after the specified delay\n */\nexport async function delay(delayInMs?: number | null): Promise {\n return delayInMs == null\n ? Promise.resolve()\n : new Promise(resolve => setTimeout(resolve, delayInMs));\n}\n", "/**\nExtracts the headers from a response object and returns them as a key-value object.\n\n@param response - The response object to extract headers from.\n@returns The headers as a key-value object.\n*/\nexport function extractResponseHeaders(\n response: Response,\n): Record {\n const headers: Record = {};\n response.headers.forEach((value, key) => {\n headers[key] = value;\n });\n return headers;\n}\n", "import { InvalidArgumentError } from '@ai-sdk/provider';\nimport { customAlphabet } from 'nanoid/non-secure';\n\n/**\nCreates an ID generator.\nThe total length of the ID is the sum of the prefix, separator, and random part length.\nNon-secure.\n\n@param alphabet - The alphabet to use for the ID. Default: '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.\n@param prefix - The prefix of the ID to generate. Default: ''.\n@param separator - The separator between the prefix and the random part of the ID. Default: '-'.\n@param size - The size of the random part of the ID to generate. Default: 16.\n */\n// TODO 5.0 breaking change: change the return type to IDGenerator\nexport const createIdGenerator = ({\n prefix,\n size: defaultSize = 16,\n alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz',\n separator = '-',\n}: {\n prefix?: string;\n separator?: string;\n size?: number;\n alphabet?: string;\n} = {}): ((size?: number) => string) => {\n const generator = customAlphabet(alphabet, defaultSize);\n\n if (prefix == null) {\n return generator;\n }\n\n // check that the prefix is not part of the alphabet (otherwise prefix checking can fail randomly)\n if (alphabet.includes(separator)) {\n throw new InvalidArgumentError({\n argument: 'separator',\n message: `The separator \"${separator}\" must not be part of the alphabet \"${alphabet}\".`,\n });\n }\n\n return size => `${prefix}${separator}${generator(size)}`;\n};\n\n/**\nA function that generates an ID.\n */\nexport type IDGenerator = () => string;\n\n/**\nGenerates a 16-character random string to use for IDs. Not secure.\n\n@param size - The size of the ID to generate. Default: 16.\n */\nexport const generateId = createIdGenerator();\n", "export function getErrorMessage(error: unknown | undefined) {\n if (error == null) {\n return 'unknown error';\n }\n\n if (typeof error === 'string') {\n return error;\n }\n\n if (error instanceof Error) {\n return error.message;\n }\n\n return JSON.stringify(error);\n}\n", "import { APICallError } from '@ai-sdk/provider';\nimport { FetchFunction } from './fetch-function';\nimport { removeUndefinedEntries } from './remove-undefined-entries';\nimport { ResponseHandler } from './response-handler';\nimport { isAbortError } from './is-abort-error';\nimport { extractResponseHeaders } from './extract-response-headers';\n\n// use function to allow for mocking in tests:\nconst getOriginalFetch = () => globalThis.fetch;\n\nexport const getFromApi = async ({\n url,\n headers = {},\n successfulResponseHandler,\n failedResponseHandler,\n abortSignal,\n fetch = getOriginalFetch(),\n}: {\n url: string;\n headers?: Record;\n failedResponseHandler: ResponseHandler;\n successfulResponseHandler: ResponseHandler;\n abortSignal?: AbortSignal;\n fetch?: FetchFunction;\n}) => {\n try {\n const response = await fetch(url, {\n method: 'GET',\n headers: removeUndefinedEntries(headers),\n signal: abortSignal,\n });\n\n const responseHeaders = extractResponseHeaders(response);\n\n if (!response.ok) {\n let errorInformation: {\n value: Error;\n responseHeaders?: Record | undefined;\n };\n\n try {\n errorInformation = await failedResponseHandler({\n response,\n url,\n requestBodyValues: {},\n });\n } catch (error) {\n if (isAbortError(error) || APICallError.isInstance(error)) {\n throw error;\n }\n\n throw new APICallError({\n message: 'Failed to process error response',\n cause: error,\n statusCode: response.status,\n url,\n responseHeaders,\n requestBodyValues: {},\n });\n }\n\n throw errorInformation.value;\n }\n\n try {\n return await successfulResponseHandler({\n response,\n url,\n requestBodyValues: {},\n });\n } catch (error) {\n if (error instanceof Error) {\n if (isAbortError(error) || APICallError.isInstance(error)) {\n throw error;\n }\n }\n\n throw new APICallError({\n message: 'Failed to process successful response',\n cause: error,\n statusCode: response.status,\n url,\n responseHeaders,\n requestBodyValues: {},\n });\n }\n } catch (error) {\n if (isAbortError(error)) {\n throw error;\n }\n\n if (error instanceof TypeError && error.message === 'fetch failed') {\n const cause = (error as any).cause;\n if (cause != null) {\n throw new APICallError({\n message: `Cannot connect to API: ${cause.message}`,\n cause,\n url,\n isRetryable: true,\n requestBodyValues: {},\n });\n }\n }\n\n throw error;\n }\n};\n", "/**\n * Removes entries from a record where the value is null or undefined.\n * @param record - The input object whose entries may be null or undefined.\n * @returns A new object containing only entries with non-null and non-undefined values.\n */\nexport function removeUndefinedEntries(\n record: Record,\n): Record {\n return Object.fromEntries(\n Object.entries(record).filter(([_key, value]) => value != null),\n ) as Record;\n}\n", "export function isAbortError(error: unknown): error is Error {\n return (\n error instanceof Error &&\n (error.name === 'AbortError' || error.name === 'TimeoutError')\n );\n}\n", "import { LoadAPIKeyError } from '@ai-sdk/provider';\n\nexport function loadApiKey({\n apiKey,\n environmentVariableName,\n apiKeyParameterName = 'apiKey',\n description,\n}: {\n apiKey: string | undefined;\n environmentVariableName: string;\n apiKeyParameterName?: string;\n description: string;\n}): string {\n if (typeof apiKey === 'string') {\n return apiKey;\n }\n\n if (apiKey != null) {\n throw new LoadAPIKeyError({\n message: `${description} API key must be a string.`,\n });\n }\n\n if (typeof process === 'undefined') {\n throw new LoadAPIKeyError({\n message: `${description} API key is missing. Pass it using the '${apiKeyParameterName}' parameter. Environment variables is not supported in this environment.`,\n });\n }\n\n apiKey = process.env[environmentVariableName];\n\n if (apiKey == null) {\n throw new LoadAPIKeyError({\n message: `${description} API key is missing. Pass it using the '${apiKeyParameterName}' parameter or the ${environmentVariableName} environment variable.`,\n });\n }\n\n if (typeof apiKey !== 'string') {\n throw new LoadAPIKeyError({\n message: `${description} API key must be a string. The value of the ${environmentVariableName} environment variable is not a string.`,\n });\n }\n\n return apiKey;\n}\n", "/**\n * Loads an optional `string` setting from the environment or a parameter.\n *\n * @param settingValue - The setting value.\n * @param environmentVariableName - The environment variable name.\n * @returns The setting value.\n */\nexport function loadOptionalSetting({\n settingValue,\n environmentVariableName,\n}: {\n settingValue: string | undefined;\n environmentVariableName: string;\n}): string | undefined {\n if (typeof settingValue === 'string') {\n return settingValue;\n }\n\n if (settingValue != null || typeof process === 'undefined') {\n return undefined;\n }\n\n settingValue = process.env[environmentVariableName];\n\n if (settingValue == null || typeof settingValue !== 'string') {\n return undefined;\n }\n\n return settingValue;\n}\n", "import { LoadSettingError } from '@ai-sdk/provider';\n\n/**\n * Loads a `string` setting from the environment or a parameter.\n *\n * @param settingValue - The setting value.\n * @param environmentVariableName - The environment variable name.\n * @param settingName - The setting name.\n * @param description - The description of the setting.\n * @returns The setting value.\n */\nexport function loadSetting({\n settingValue,\n environmentVariableName,\n settingName,\n description,\n}: {\n settingValue: string | undefined;\n environmentVariableName: string;\n settingName: string;\n description: string;\n}): string {\n if (typeof settingValue === 'string') {\n return settingValue;\n }\n\n if (settingValue != null) {\n throw new LoadSettingError({\n message: `${description} setting must be a string.`,\n });\n }\n\n if (typeof process === 'undefined') {\n throw new LoadSettingError({\n message:\n `${description} setting is missing. ` +\n `Pass it using the '${settingName}' parameter. ` +\n `Environment variables is not supported in this environment.`,\n });\n }\n\n settingValue = process.env[environmentVariableName];\n\n if (settingValue == null) {\n throw new LoadSettingError({\n message:\n `${description} setting is missing. ` +\n `Pass it using the '${settingName}' parameter ` +\n `or the ${environmentVariableName} environment variable.`,\n });\n }\n\n if (typeof settingValue !== 'string') {\n throw new LoadSettingError({\n message:\n `${description} setting must be a string. ` +\n `The value of the ${environmentVariableName} environment variable is not a string.`,\n });\n }\n\n return settingValue;\n}\n", "import {\n JSONParseError,\n JSONValue,\n TypeValidationError,\n} from '@ai-sdk/provider';\nimport SecureJSON from 'secure-json-parse';\nimport { ZodSchema } from 'zod';\nimport { safeValidateTypes, validateTypes } from './validate-types';\nimport { Validator } from './validator';\n\n/**\n * Parses a JSON string into an unknown object.\n *\n * @param text - The JSON string to parse.\n * @returns {JSONValue} - The parsed JSON object.\n */\nexport function parseJSON(options: {\n text: string;\n schema?: undefined;\n}): JSONValue;\n/**\n * Parses a JSON string into a strongly-typed object using the provided schema.\n *\n * @template T - The type of the object to parse the JSON into.\n * @param {string} text - The JSON string to parse.\n * @param {Validator} schema - The schema to use for parsing the JSON.\n * @returns {T} - The parsed object.\n */\nexport function parseJSON(options: {\n text: string;\n schema: ZodSchema | Validator;\n}): T;\nexport function parseJSON({\n text,\n schema,\n}: {\n text: string;\n schema?: ZodSchema | Validator;\n}): T {\n try {\n const value = SecureJSON.parse(text);\n\n if (schema == null) {\n return value;\n }\n\n return validateTypes({ value, schema });\n } catch (error) {\n if (\n JSONParseError.isInstance(error) ||\n TypeValidationError.isInstance(error)\n ) {\n throw error;\n }\n\n throw new JSONParseError({ text, cause: error });\n }\n}\n\nexport type ParseResult =\n | { success: true; value: T; rawValue: unknown }\n | { success: false; error: JSONParseError | TypeValidationError };\n\n/**\n * Safely parses a JSON string and returns the result as an object of type `unknown`.\n *\n * @param text - The JSON string to parse.\n * @returns {object} Either an object with `success: true` and the parsed data, or an object with `success: false` and the error that occurred.\n */\nexport function safeParseJSON(options: {\n text: string;\n schema?: undefined;\n}): ParseResult;\n/**\n * Safely parses a JSON string into a strongly-typed object, using a provided schema to validate the object.\n *\n * @template T - The type of the object to parse the JSON into.\n * @param {string} text - The JSON string to parse.\n * @param {Validator} schema - The schema to use for parsing the JSON.\n * @returns An object with either a `success` flag and the parsed and typed data, or a `success` flag and an error object.\n */\nexport function safeParseJSON(options: {\n text: string;\n schema: ZodSchema | Validator;\n}): ParseResult;\nexport function safeParseJSON({\n text,\n schema,\n}: {\n text: string;\n schema?: ZodSchema | Validator;\n}): ParseResult {\n try {\n const value = SecureJSON.parse(text);\n\n if (schema == null) {\n return { success: true, value: value as T, rawValue: value };\n }\n\n const validationResult = safeValidateTypes({ value, schema });\n\n return validationResult.success\n ? { ...validationResult, rawValue: value }\n : validationResult;\n } catch (error) {\n return {\n success: false,\n error: JSONParseError.isInstance(error)\n ? error\n : new JSONParseError({ text, cause: error }),\n };\n }\n}\n\nexport function isParsableJson(input: string): boolean {\n try {\n SecureJSON.parse(input);\n return true;\n } catch {\n return false;\n }\n}\n", "import { TypeValidationError } from '@ai-sdk/provider';\nimport { z } from 'zod';\nimport { Validator, asValidator } from './validator';\n\n/**\n * Validates the types of an unknown object using a schema and\n * return a strongly-typed object.\n *\n * @template T - The type of the object to validate.\n * @param {string} options.value - The object to validate.\n * @param {Validator} options.schema - The schema to use for validating the JSON.\n * @returns {T} - The typed object.\n */\nexport function validateTypes({\n value,\n schema: inputSchema,\n}: {\n value: unknown;\n schema: z.Schema | Validator;\n}): T {\n const result = safeValidateTypes({ value, schema: inputSchema });\n\n if (!result.success) {\n throw TypeValidationError.wrap({ value, cause: result.error });\n }\n\n return result.value;\n}\n\n/**\n * Safely validates the types of an unknown object using a schema and\n * return a strongly-typed object.\n *\n * @template T - The type of the object to validate.\n * @param {string} options.value - The JSON object to validate.\n * @param {Validator} options.schema - The schema to use for validating the JSON.\n * @returns An object with either a `success` flag and the parsed and typed data, or a `success` flag and an error object.\n */\nexport function safeValidateTypes({\n value,\n schema,\n}: {\n value: unknown;\n schema: z.Schema | Validator;\n}):\n | { success: true; value: T }\n | { success: false; error: TypeValidationError } {\n const validator = asValidator(schema);\n\n try {\n if (validator.validate == null) {\n return { success: true, value: value as T };\n }\n\n const result = validator.validate(value);\n\n if (result.success) {\n return result;\n }\n\n return {\n success: false,\n error: TypeValidationError.wrap({ value, cause: result.error }),\n };\n } catch (error) {\n return {\n success: false,\n error: TypeValidationError.wrap({ value, cause: error }),\n };\n }\n}\n", "import { z } from 'zod';\n\n/**\n * Used to mark validator functions so we can support both Zod and custom schemas.\n */\nexport const validatorSymbol = Symbol.for('vercel.ai.validator');\n\nexport type ValidationResult =\n | { success: true; value: OBJECT }\n | { success: false; error: Error };\n\nexport type Validator = {\n /**\n * Used to mark validator functions so we can support both Zod and custom schemas.\n */\n [validatorSymbol]: true;\n\n /**\n * Optional. Validates that the structure of a value matches this schema,\n * and returns a typed version of the value if it does.\n */\n readonly validate?: (value: unknown) => ValidationResult;\n};\n\n/**\n * Create a validator.\n *\n * @param validate A validation function for the schema.\n */\nexport function validator(\n validate?: undefined | ((value: unknown) => ValidationResult),\n): Validator {\n return { [validatorSymbol]: true, validate };\n}\n\nexport function isValidator(value: unknown): value is Validator {\n return (\n typeof value === 'object' &&\n value !== null &&\n validatorSymbol in value &&\n value[validatorSymbol] === true &&\n 'validate' in value\n );\n}\n\nexport function asValidator(\n value: Validator | z.Schema,\n): Validator {\n return isValidator(value) ? value : zodValidator(value);\n}\n\nexport function zodValidator(\n zodSchema: z.Schema,\n): Validator {\n return validator(value => {\n const result = zodSchema.safeParse(value);\n return result.success\n ? { success: true, value: result.data }\n : { success: false, error: result.error };\n });\n}\n", "import { APICallError } from '@ai-sdk/provider';\nimport { extractResponseHeaders } from './extract-response-headers';\nimport { FetchFunction } from './fetch-function';\nimport { isAbortError } from './is-abort-error';\nimport { removeUndefinedEntries } from './remove-undefined-entries';\nimport { ResponseHandler } from './response-handler';\n\n// use function to allow for mocking in tests:\nconst getOriginalFetch = () => globalThis.fetch;\n\nexport const postJsonToApi = async ({\n url,\n headers,\n body,\n failedResponseHandler,\n successfulResponseHandler,\n abortSignal,\n fetch,\n}: {\n url: string;\n headers?: Record;\n body: unknown;\n failedResponseHandler: ResponseHandler;\n successfulResponseHandler: ResponseHandler;\n abortSignal?: AbortSignal;\n fetch?: FetchFunction;\n}) =>\n postToApi({\n url,\n headers: {\n 'Content-Type': 'application/json',\n ...headers,\n },\n body: {\n content: JSON.stringify(body),\n values: body,\n },\n failedResponseHandler,\n successfulResponseHandler,\n abortSignal,\n fetch,\n });\n\nexport const postToApi = async ({\n url,\n headers = {},\n body,\n successfulResponseHandler,\n failedResponseHandler,\n abortSignal,\n fetch = getOriginalFetch(),\n}: {\n url: string;\n headers?: Record;\n body: {\n content: string | FormData | Uint8Array;\n values: unknown;\n };\n failedResponseHandler: ResponseHandler;\n successfulResponseHandler: ResponseHandler;\n abortSignal?: AbortSignal;\n fetch?: FetchFunction;\n}) => {\n try {\n const response = await fetch(url, {\n method: 'POST',\n headers: removeUndefinedEntries(headers),\n body: body.content,\n signal: abortSignal,\n });\n\n const responseHeaders = extractResponseHeaders(response);\n\n if (!response.ok) {\n let errorInformation: {\n value: Error;\n responseHeaders?: Record | undefined;\n };\n\n try {\n errorInformation = await failedResponseHandler({\n response,\n url,\n requestBodyValues: body.values,\n });\n } catch (error) {\n if (isAbortError(error) || APICallError.isInstance(error)) {\n throw error;\n }\n\n throw new APICallError({\n message: 'Failed to process error response',\n cause: error,\n statusCode: response.status,\n url,\n responseHeaders,\n requestBodyValues: body.values,\n });\n }\n\n throw errorInformation.value;\n }\n\n try {\n return await successfulResponseHandler({\n response,\n url,\n requestBodyValues: body.values,\n });\n } catch (error) {\n if (error instanceof Error) {\n if (isAbortError(error) || APICallError.isInstance(error)) {\n throw error;\n }\n }\n\n throw new APICallError({\n message: 'Failed to process successful response',\n cause: error,\n statusCode: response.status,\n url,\n responseHeaders,\n requestBodyValues: body.values,\n });\n }\n } catch (error) {\n if (isAbortError(error)) {\n throw error;\n }\n\n // unwrap original error when fetch failed (for easier debugging):\n if (error instanceof TypeError && error.message === 'fetch failed') {\n const cause = (error as any).cause;\n\n if (cause != null) {\n // Failed to connect to server:\n throw new APICallError({\n message: `Cannot connect to API: ${cause.message}`,\n cause,\n url,\n requestBodyValues: body.values,\n isRetryable: true, // retry when network error\n });\n }\n }\n\n throw error;\n }\n};\n", "export type Resolvable =\n | T // Raw value\n | Promise // Promise of value\n | (() => T) // Function returning value\n | (() => Promise); // Function returning promise of value\n\n/**\n * Resolves a value that could be a raw value, a Promise, a function returning a value,\n * or a function returning a Promise.\n */\nexport async function resolve(value: Resolvable): Promise {\n // If it's a function, call it to get the value/promise\n if (typeof value === 'function') {\n value = (value as Function)();\n }\n\n // Otherwise just resolve whatever we got (value or promise)\n return Promise.resolve(value as T);\n}\n", "import { APICallError, EmptyResponseBodyError } from '@ai-sdk/provider';\nimport {\n EventSourceParserStream,\n EventSourceMessage,\n} from 'eventsource-parser/stream';\nimport { ZodSchema } from 'zod';\nimport { extractResponseHeaders } from './extract-response-headers';\nimport { ParseResult, parseJSON, safeParseJSON } from './parse-json';\n\nexport type ResponseHandler = (options: {\n url: string;\n requestBodyValues: unknown;\n response: Response;\n}) => PromiseLike<{\n value: RETURN_TYPE;\n rawValue?: unknown;\n responseHeaders?: Record;\n}>;\n\nexport const createJsonErrorResponseHandler =\n ({\n errorSchema,\n errorToMessage,\n isRetryable,\n }: {\n errorSchema: ZodSchema;\n errorToMessage: (error: T) => string;\n isRetryable?: (response: Response, error?: T) => boolean;\n }): ResponseHandler =>\n async ({ response, url, requestBodyValues }) => {\n const responseBody = await response.text();\n const responseHeaders = extractResponseHeaders(response);\n\n // Some providers return an empty response body for some errors:\n if (responseBody.trim() === '') {\n return {\n responseHeaders,\n value: new APICallError({\n message: response.statusText,\n url,\n requestBodyValues,\n statusCode: response.status,\n responseHeaders,\n responseBody,\n isRetryable: isRetryable?.(response),\n }),\n };\n }\n\n // resilient parsing in case the response is not JSON or does not match the schema:\n try {\n const parsedError = parseJSON({\n text: responseBody,\n schema: errorSchema,\n });\n\n return {\n responseHeaders,\n value: new APICallError({\n message: errorToMessage(parsedError),\n url,\n requestBodyValues,\n statusCode: response.status,\n responseHeaders,\n responseBody,\n data: parsedError,\n isRetryable: isRetryable?.(response, parsedError),\n }),\n };\n } catch (parseError) {\n return {\n responseHeaders,\n value: new APICallError({\n message: response.statusText,\n url,\n requestBodyValues,\n statusCode: response.status,\n responseHeaders,\n responseBody,\n isRetryable: isRetryable?.(response),\n }),\n };\n }\n };\n\nexport const createEventSourceResponseHandler =\n (\n chunkSchema: ZodSchema,\n ): ResponseHandler>> =>\n async ({ response }: { response: Response }) => {\n const responseHeaders = extractResponseHeaders(response);\n\n if (response.body == null) {\n throw new EmptyResponseBodyError({});\n }\n\n return {\n responseHeaders,\n value: response.body\n .pipeThrough(new TextDecoderStream())\n .pipeThrough(new EventSourceParserStream())\n .pipeThrough(\n new TransformStream>({\n transform({ data }, controller) {\n // ignore the 'DONE' event that e.g. OpenAI sends:\n if (data === '[DONE]') {\n return;\n }\n\n controller.enqueue(\n safeParseJSON({\n text: data,\n schema: chunkSchema,\n }),\n );\n },\n }),\n ),\n };\n };\n\nexport const createJsonStreamResponseHandler =\n (\n chunkSchema: ZodSchema,\n ): ResponseHandler>> =>\n async ({ response }: { response: Response }) => {\n const responseHeaders = extractResponseHeaders(response);\n\n if (response.body == null) {\n throw new EmptyResponseBodyError({});\n }\n\n let buffer = '';\n\n return {\n responseHeaders,\n value: response.body.pipeThrough(new TextDecoderStream()).pipeThrough(\n new TransformStream>({\n transform(chunkText, controller) {\n if (chunkText.endsWith('\\n')) {\n controller.enqueue(\n safeParseJSON({\n text: buffer + chunkText,\n schema: chunkSchema,\n }),\n );\n buffer = '';\n } else {\n buffer += chunkText;\n }\n },\n }),\n ),\n };\n };\n\nexport const createJsonResponseHandler =\n (responseSchema: ZodSchema): ResponseHandler =>\n async ({ response, url, requestBodyValues }) => {\n const responseBody = await response.text();\n\n const parsedResult = safeParseJSON({\n text: responseBody,\n schema: responseSchema,\n });\n\n const responseHeaders = extractResponseHeaders(response);\n\n if (!parsedResult.success) {\n throw new APICallError({\n message: 'Invalid JSON response',\n cause: parsedResult.error,\n statusCode: response.status,\n responseHeaders,\n responseBody,\n url,\n requestBodyValues,\n });\n }\n\n return {\n responseHeaders,\n value: parsedResult.value,\n rawValue: parsedResult.rawValue,\n };\n };\n\nexport const createBinaryResponseHandler =\n (): ResponseHandler =>\n async ({ response, url, requestBodyValues }) => {\n const responseHeaders = extractResponseHeaders(response);\n\n if (!response.body) {\n throw new APICallError({\n message: 'Response body is empty',\n url,\n requestBodyValues,\n statusCode: response.status,\n responseHeaders,\n responseBody: undefined,\n });\n }\n\n try {\n const buffer = await response.arrayBuffer();\n return {\n responseHeaders,\n value: new Uint8Array(buffer),\n };\n } catch (error) {\n throw new APICallError({\n message: 'Failed to read response as array buffer',\n url,\n requestBodyValues,\n statusCode: response.status,\n responseHeaders,\n responseBody: undefined,\n cause: error,\n });\n }\n };\n\nexport const createStatusCodeErrorResponseHandler =\n (): ResponseHandler =>\n async ({ response, url, requestBodyValues }) => {\n const responseHeaders = extractResponseHeaders(response);\n const responseBody = await response.text();\n\n return {\n responseHeaders,\n value: new APICallError({\n message: response.statusText,\n url,\n requestBodyValues: requestBodyValues as Record,\n statusCode: response.status,\n responseHeaders,\n responseBody,\n }),\n };\n };\n", "// btoa and atob need to be invoked as a function call, not as a method call.\n// Otherwise CloudFlare will throw a\n// \"TypeError: Illegal invocation: function called with incorrect this reference\"\nconst { btoa, atob } = globalThis;\n\nexport function convertBase64ToUint8Array(base64String: string) {\n const base64Url = base64String.replace(/-/g, '+').replace(/_/g, '/');\n const latin1string = atob(base64Url);\n return Uint8Array.from(latin1string, byte => byte.codePointAt(0)!);\n}\n\nexport function convertUint8ArrayToBase64(array: Uint8Array): string {\n let latin1string = '';\n\n // Note: regular for loop to support older JavaScript versions that\n // do not support for..of on Uint8Array\n for (let i = 0; i < array.length; i++) {\n latin1string += String.fromCodePoint(array[i]);\n }\n\n return btoa(latin1string);\n}\n", "export function withoutTrailingSlash(url: string | undefined) {\n return url?.replace(/\\/$/, '');\n}\n", "export const ignoreOverride = Symbol(\"Let zodToJsonSchema decide on which parser to use\");\nexport const jsonDescription = (jsonSchema, def) => {\n if (def.description) {\n try {\n return {\n ...jsonSchema,\n ...JSON.parse(def.description),\n };\n }\n catch { }\n }\n return jsonSchema;\n};\nexport const defaultOptions = {\n name: undefined,\n $refStrategy: \"root\",\n basePath: [\"#\"],\n effectStrategy: \"input\",\n pipeStrategy: \"all\",\n dateStrategy: \"format:date-time\",\n mapStrategy: \"entries\",\n removeAdditionalStrategy: \"passthrough\",\n definitionPath: \"definitions\",\n target: \"jsonSchema7\",\n strictUnions: false,\n definitions: {},\n errorMessages: false,\n markdownDescription: false,\n patternStrategy: \"escape\",\n applyRegexFlags: false,\n emailStrategy: \"format:email\",\n base64Strategy: \"contentEncoding:base64\",\n nameStrategy: \"ref\",\n};\nexport const getDefaultOptions = (options) => (typeof options === \"string\"\n ? {\n ...defaultOptions,\n name: options,\n }\n : {\n ...defaultOptions,\n ...options,\n });\n", "import { getDefaultOptions } from \"./Options.js\";\nexport const getRefs = (options) => {\n const _options = getDefaultOptions(options);\n const currentPath = _options.name !== undefined\n ? [..._options.basePath, _options.definitionPath, _options.name]\n : _options.basePath;\n return {\n ..._options,\n currentPath: currentPath,\n propertyPath: undefined,\n seen: new Map(Object.entries(_options.definitions).map(([name, def]) => [\n def._def,\n {\n def: def._def,\n path: [..._options.basePath, _options.definitionPath, name],\n // Resolution of references will be forced even though seen, so it's ok that the schema is undefined here for now.\n jsonSchema: undefined,\n },\n ])),\n };\n};\n", "export function addErrorMessage(res, key, errorMessage, refs) {\n if (!refs?.errorMessages)\n return;\n if (errorMessage) {\n res.errorMessage = {\n ...res.errorMessage,\n [key]: errorMessage,\n };\n }\n}\nexport function setResponseValueAndErrors(res, key, value, errorMessage, refs) {\n res[key] = value;\n addErrorMessage(res, key, errorMessage, refs);\n}\n", "var util;\n(function (util) {\n util.assertEqual = (val) => val;\n function assertIs(_arg) { }\n util.assertIs = assertIs;\n function assertNever(_x) {\n throw new Error();\n }\n util.assertNever = assertNever;\n util.arrayToEnum = (items) => {\n const obj = {};\n for (const item of items) {\n obj[item] = item;\n }\n return obj;\n };\n util.getValidEnumValues = (obj) => {\n const validKeys = util.objectKeys(obj).filter((k) => typeof obj[obj[k]] !== \"number\");\n const filtered = {};\n for (const k of validKeys) {\n filtered[k] = obj[k];\n }\n return util.objectValues(filtered);\n };\n util.objectValues = (obj) => {\n return util.objectKeys(obj).map(function (e) {\n return obj[e];\n });\n };\n util.objectKeys = typeof Object.keys === \"function\" // eslint-disable-line ban/ban\n ? (obj) => Object.keys(obj) // eslint-disable-line ban/ban\n : (object) => {\n const keys = [];\n for (const key in object) {\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n keys.push(key);\n }\n }\n return keys;\n };\n util.find = (arr, checker) => {\n for (const item of arr) {\n if (checker(item))\n return item;\n }\n return undefined;\n };\n util.isInteger = typeof Number.isInteger === \"function\"\n ? (val) => Number.isInteger(val) // eslint-disable-line ban/ban\n : (val) => typeof val === \"number\" && isFinite(val) && Math.floor(val) === val;\n function joinValues(array, separator = \" | \") {\n return array\n .map((val) => (typeof val === \"string\" ? `'${val}'` : val))\n .join(separator);\n }\n util.joinValues = joinValues;\n util.jsonStringifyReplacer = (_, value) => {\n if (typeof value === \"bigint\") {\n return value.toString();\n }\n return value;\n };\n})(util || (util = {}));\nvar objectUtil;\n(function (objectUtil) {\n objectUtil.mergeShapes = (first, second) => {\n return {\n ...first,\n ...second, // second overwrites first\n };\n };\n})(objectUtil || (objectUtil = {}));\nconst ZodParsedType = util.arrayToEnum([\n \"string\",\n \"nan\",\n \"number\",\n \"integer\",\n \"float\",\n \"boolean\",\n \"date\",\n \"bigint\",\n \"symbol\",\n \"function\",\n \"undefined\",\n \"null\",\n \"array\",\n \"object\",\n \"unknown\",\n \"promise\",\n \"void\",\n \"never\",\n \"map\",\n \"set\",\n]);\nconst getParsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"undefined\":\n return ZodParsedType.undefined;\n case \"string\":\n return ZodParsedType.string;\n case \"number\":\n return isNaN(data) ? ZodParsedType.nan : ZodParsedType.number;\n case \"boolean\":\n return ZodParsedType.boolean;\n case \"function\":\n return ZodParsedType.function;\n case \"bigint\":\n return ZodParsedType.bigint;\n case \"symbol\":\n return ZodParsedType.symbol;\n case \"object\":\n if (Array.isArray(data)) {\n return ZodParsedType.array;\n }\n if (data === null) {\n return ZodParsedType.null;\n }\n if (data.then &&\n typeof data.then === \"function\" &&\n data.catch &&\n typeof data.catch === \"function\") {\n return ZodParsedType.promise;\n }\n if (typeof Map !== \"undefined\" && data instanceof Map) {\n return ZodParsedType.map;\n }\n if (typeof Set !== \"undefined\" && data instanceof Set) {\n return ZodParsedType.set;\n }\n if (typeof Date !== \"undefined\" && data instanceof Date) {\n return ZodParsedType.date;\n }\n return ZodParsedType.object;\n default:\n return ZodParsedType.unknown;\n }\n};\n\nconst ZodIssueCode = util.arrayToEnum([\n \"invalid_type\",\n \"invalid_literal\",\n \"custom\",\n \"invalid_union\",\n \"invalid_union_discriminator\",\n \"invalid_enum_value\",\n \"unrecognized_keys\",\n \"invalid_arguments\",\n \"invalid_return_type\",\n \"invalid_date\",\n \"invalid_string\",\n \"too_small\",\n \"too_big\",\n \"invalid_intersection_types\",\n \"not_multiple_of\",\n \"not_finite\",\n]);\nconst quotelessJson = (obj) => {\n const json = JSON.stringify(obj, null, 2);\n return json.replace(/\"([^\"]+)\":/g, \"$1:\");\n};\nclass ZodError extends Error {\n get errors() {\n return this.issues;\n }\n constructor(issues) {\n super();\n this.issues = [];\n this.addIssue = (sub) => {\n this.issues = [...this.issues, sub];\n };\n this.addIssues = (subs = []) => {\n this.issues = [...this.issues, ...subs];\n };\n const actualProto = new.target.prototype;\n if (Object.setPrototypeOf) {\n // eslint-disable-next-line ban/ban\n Object.setPrototypeOf(this, actualProto);\n }\n else {\n this.__proto__ = actualProto;\n }\n this.name = \"ZodError\";\n this.issues = issues;\n }\n format(_mapper) {\n const mapper = _mapper ||\n function (issue) {\n return issue.message;\n };\n const fieldErrors = { _errors: [] };\n const processError = (error) => {\n for (const issue of error.issues) {\n if (issue.code === \"invalid_union\") {\n issue.unionErrors.map(processError);\n }\n else if (issue.code === \"invalid_return_type\") {\n processError(issue.returnTypeError);\n }\n else if (issue.code === \"invalid_arguments\") {\n processError(issue.argumentsError);\n }\n else if (issue.path.length === 0) {\n fieldErrors._errors.push(mapper(issue));\n }\n else {\n let curr = fieldErrors;\n let i = 0;\n while (i < issue.path.length) {\n const el = issue.path[i];\n const terminal = i === issue.path.length - 1;\n if (!terminal) {\n curr[el] = curr[el] || { _errors: [] };\n // if (typeof el === \"string\") {\n // curr[el] = curr[el] || { _errors: [] };\n // } else if (typeof el === \"number\") {\n // const errorArray: any = [];\n // errorArray._errors = [];\n // curr[el] = curr[el] || errorArray;\n // }\n }\n else {\n curr[el] = curr[el] || { _errors: [] };\n curr[el]._errors.push(mapper(issue));\n }\n curr = curr[el];\n i++;\n }\n }\n }\n };\n processError(this);\n return fieldErrors;\n }\n static assert(value) {\n if (!(value instanceof ZodError)) {\n throw new Error(`Not a ZodError: ${value}`);\n }\n }\n toString() {\n return this.message;\n }\n get message() {\n return JSON.stringify(this.issues, util.jsonStringifyReplacer, 2);\n }\n get isEmpty() {\n return this.issues.length === 0;\n }\n flatten(mapper = (issue) => issue.message) {\n const fieldErrors = {};\n const formErrors = [];\n for (const sub of this.issues) {\n if (sub.path.length > 0) {\n fieldErrors[sub.path[0]] = fieldErrors[sub.path[0]] || [];\n fieldErrors[sub.path[0]].push(mapper(sub));\n }\n else {\n formErrors.push(mapper(sub));\n }\n }\n return { formErrors, fieldErrors };\n }\n get formErrors() {\n return this.flatten();\n }\n}\nZodError.create = (issues) => {\n const error = new ZodError(issues);\n return error;\n};\n\nconst errorMap = (issue, _ctx) => {\n let message;\n switch (issue.code) {\n case ZodIssueCode.invalid_type:\n if (issue.received === ZodParsedType.undefined) {\n message = \"Required\";\n }\n else {\n message = `Expected ${issue.expected}, received ${issue.received}`;\n }\n break;\n case ZodIssueCode.invalid_literal:\n message = `Invalid literal value, expected ${JSON.stringify(issue.expected, util.jsonStringifyReplacer)}`;\n break;\n case ZodIssueCode.unrecognized_keys:\n message = `Unrecognized key(s) in object: ${util.joinValues(issue.keys, \", \")}`;\n break;\n case ZodIssueCode.invalid_union:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_union_discriminator:\n message = `Invalid discriminator value. Expected ${util.joinValues(issue.options)}`;\n break;\n case ZodIssueCode.invalid_enum_value:\n message = `Invalid enum value. Expected ${util.joinValues(issue.options)}, received '${issue.received}'`;\n break;\n case ZodIssueCode.invalid_arguments:\n message = `Invalid function arguments`;\n break;\n case ZodIssueCode.invalid_return_type:\n message = `Invalid function return type`;\n break;\n case ZodIssueCode.invalid_date:\n message = `Invalid date`;\n break;\n case ZodIssueCode.invalid_string:\n if (typeof issue.validation === \"object\") {\n if (\"includes\" in issue.validation) {\n message = `Invalid input: must include \"${issue.validation.includes}\"`;\n if (typeof issue.validation.position === \"number\") {\n message = `${message} at one or more positions greater than or equal to ${issue.validation.position}`;\n }\n }\n else if (\"startsWith\" in issue.validation) {\n message = `Invalid input: must start with \"${issue.validation.startsWith}\"`;\n }\n else if (\"endsWith\" in issue.validation) {\n message = `Invalid input: must end with \"${issue.validation.endsWith}\"`;\n }\n else {\n util.assertNever(issue.validation);\n }\n }\n else if (issue.validation !== \"regex\") {\n message = `Invalid ${issue.validation}`;\n }\n else {\n message = \"Invalid\";\n }\n break;\n case ZodIssueCode.too_small:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `more than`} ${issue.minimum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `over`} ${issue.minimum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact\n ? `exactly equal to `\n : issue.inclusive\n ? `greater than or equal to `\n : `greater than `}${issue.minimum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact\n ? `exactly equal to `\n : issue.inclusive\n ? `greater than or equal to `\n : `greater than `}${new Date(Number(issue.minimum))}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.too_big:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `less than`} ${issue.maximum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `under`} ${issue.maximum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact\n ? `exactly`\n : issue.inclusive\n ? `less than or equal to`\n : `less than`} ${issue.maximum}`;\n else if (issue.type === \"bigint\")\n message = `BigInt must be ${issue.exact\n ? `exactly`\n : issue.inclusive\n ? `less than or equal to`\n : `less than`} ${issue.maximum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact\n ? `exactly`\n : issue.inclusive\n ? `smaller than or equal to`\n : `smaller than`} ${new Date(Number(issue.maximum))}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.custom:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_intersection_types:\n message = `Intersection results could not be merged`;\n break;\n case ZodIssueCode.not_multiple_of:\n message = `Number must be a multiple of ${issue.multipleOf}`;\n break;\n case ZodIssueCode.not_finite:\n message = \"Number must be finite\";\n break;\n default:\n message = _ctx.defaultError;\n util.assertNever(issue);\n }\n return { message };\n};\n\nlet overrideErrorMap = errorMap;\nfunction setErrorMap(map) {\n overrideErrorMap = map;\n}\nfunction getErrorMap() {\n return overrideErrorMap;\n}\n\nconst makeIssue = (params) => {\n const { data, path, errorMaps, issueData } = params;\n const fullPath = [...path, ...(issueData.path || [])];\n const fullIssue = {\n ...issueData,\n path: fullPath,\n };\n if (issueData.message !== undefined) {\n return {\n ...issueData,\n path: fullPath,\n message: issueData.message,\n };\n }\n let errorMessage = \"\";\n const maps = errorMaps\n .filter((m) => !!m)\n .slice()\n .reverse();\n for (const map of maps) {\n errorMessage = map(fullIssue, { data, defaultError: errorMessage }).message;\n }\n return {\n ...issueData,\n path: fullPath,\n message: errorMessage,\n };\n};\nconst EMPTY_PATH = [];\nfunction addIssueToContext(ctx, issueData) {\n const overrideMap = getErrorMap();\n const issue = makeIssue({\n issueData: issueData,\n data: ctx.data,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap, // contextual error map is first priority\n ctx.schemaErrorMap, // then schema-bound map if available\n overrideMap, // then global override map\n overrideMap === errorMap ? undefined : errorMap, // then global default map\n ].filter((x) => !!x),\n });\n ctx.common.issues.push(issue);\n}\nclass ParseStatus {\n constructor() {\n this.value = \"valid\";\n }\n dirty() {\n if (this.value === \"valid\")\n this.value = \"dirty\";\n }\n abort() {\n if (this.value !== \"aborted\")\n this.value = \"aborted\";\n }\n static mergeArray(status, results) {\n const arrayValue = [];\n for (const s of results) {\n if (s.status === \"aborted\")\n return INVALID;\n if (s.status === \"dirty\")\n status.dirty();\n arrayValue.push(s.value);\n }\n return { status: status.value, value: arrayValue };\n }\n static async mergeObjectAsync(status, pairs) {\n const syncPairs = [];\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n syncPairs.push({\n key,\n value,\n });\n }\n return ParseStatus.mergeObjectSync(status, syncPairs);\n }\n static mergeObjectSync(status, pairs) {\n const finalObject = {};\n for (const pair of pairs) {\n const { key, value } = pair;\n if (key.status === \"aborted\")\n return INVALID;\n if (value.status === \"aborted\")\n return INVALID;\n if (key.status === \"dirty\")\n status.dirty();\n if (value.status === \"dirty\")\n status.dirty();\n if (key.value !== \"__proto__\" &&\n (typeof value.value !== \"undefined\" || pair.alwaysSet)) {\n finalObject[key.value] = value.value;\n }\n }\n return { status: status.value, value: finalObject };\n }\n}\nconst INVALID = Object.freeze({\n status: \"aborted\",\n});\nconst DIRTY = (value) => ({ status: \"dirty\", value });\nconst OK = (value) => ({ status: \"valid\", value });\nconst isAborted = (x) => x.status === \"aborted\";\nconst isDirty = (x) => x.status === \"dirty\";\nconst isValid = (x) => x.status === \"valid\";\nconst isAsync = (x) => typeof Promise !== \"undefined\" && x instanceof Promise;\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nfunction __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\ntypeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\n\nvar errorUtil;\n(function (errorUtil) {\n errorUtil.errToObj = (message) => typeof message === \"string\" ? { message } : message || {};\n errorUtil.toString = (message) => typeof message === \"string\" ? message : message === null || message === void 0 ? void 0 : message.message;\n})(errorUtil || (errorUtil = {}));\n\nvar _ZodEnum_cache, _ZodNativeEnum_cache;\nclass ParseInputLazyPath {\n constructor(parent, value, path, key) {\n this._cachedPath = [];\n this.parent = parent;\n this.data = value;\n this._path = path;\n this._key = key;\n }\n get path() {\n if (!this._cachedPath.length) {\n if (this._key instanceof Array) {\n this._cachedPath.push(...this._path, ...this._key);\n }\n else {\n this._cachedPath.push(...this._path, this._key);\n }\n }\n return this._cachedPath;\n }\n}\nconst handleResult = (ctx, result) => {\n if (isValid(result)) {\n return { success: true, data: result.value };\n }\n else {\n if (!ctx.common.issues.length) {\n throw new Error(\"Validation failed but no issues detected.\");\n }\n return {\n success: false,\n get error() {\n if (this._error)\n return this._error;\n const error = new ZodError(ctx.common.issues);\n this._error = error;\n return this._error;\n },\n };\n }\n};\nfunction processCreateParams(params) {\n if (!params)\n return {};\n const { errorMap, invalid_type_error, required_error, description } = params;\n if (errorMap && (invalid_type_error || required_error)) {\n throw new Error(`Can't use \"invalid_type_error\" or \"required_error\" in conjunction with custom error map.`);\n }\n if (errorMap)\n return { errorMap: errorMap, description };\n const customMap = (iss, ctx) => {\n var _a, _b;\n const { message } = params;\n if (iss.code === \"invalid_enum_value\") {\n return { message: message !== null && message !== void 0 ? message : ctx.defaultError };\n }\n if (typeof ctx.data === \"undefined\") {\n return { message: (_a = message !== null && message !== void 0 ? message : required_error) !== null && _a !== void 0 ? _a : ctx.defaultError };\n }\n if (iss.code !== \"invalid_type\")\n return { message: ctx.defaultError };\n return { message: (_b = message !== null && message !== void 0 ? message : invalid_type_error) !== null && _b !== void 0 ? _b : ctx.defaultError };\n };\n return { errorMap: customMap, description };\n}\nclass ZodType {\n get description() {\n return this._def.description;\n }\n _getType(input) {\n return getParsedType(input.data);\n }\n _getOrReturnCtx(input, ctx) {\n return (ctx || {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n });\n }\n _processInputParams(input) {\n return {\n status: new ParseStatus(),\n ctx: {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n },\n };\n }\n _parseSync(input) {\n const result = this._parse(input);\n if (isAsync(result)) {\n throw new Error(\"Synchronous parse encountered promise.\");\n }\n return result;\n }\n _parseAsync(input) {\n const result = this._parse(input);\n return Promise.resolve(result);\n }\n parse(data, params) {\n const result = this.safeParse(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n safeParse(data, params) {\n var _a;\n const ctx = {\n common: {\n issues: [],\n async: (_a = params === null || params === void 0 ? void 0 : params.async) !== null && _a !== void 0 ? _a : false,\n contextualErrorMap: params === null || params === void 0 ? void 0 : params.errorMap,\n },\n path: (params === null || params === void 0 ? void 0 : params.path) || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n const result = this._parseSync({ data, path: ctx.path, parent: ctx });\n return handleResult(ctx, result);\n }\n \"~validate\"(data) {\n var _a, _b;\n const ctx = {\n common: {\n issues: [],\n async: !!this[\"~standard\"].async,\n },\n path: [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n if (!this[\"~standard\"].async) {\n try {\n const result = this._parseSync({ data, path: [], parent: ctx });\n return isValid(result)\n ? {\n value: result.value,\n }\n : {\n issues: ctx.common.issues,\n };\n }\n catch (err) {\n if ((_b = (_a = err === null || err === void 0 ? void 0 : err.message) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === null || _b === void 0 ? void 0 : _b.includes(\"encountered\")) {\n this[\"~standard\"].async = true;\n }\n ctx.common = {\n issues: [],\n async: true,\n };\n }\n }\n return this._parseAsync({ data, path: [], parent: ctx }).then((result) => isValid(result)\n ? {\n value: result.value,\n }\n : {\n issues: ctx.common.issues,\n });\n }\n async parseAsync(data, params) {\n const result = await this.safeParseAsync(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n async safeParseAsync(data, params) {\n const ctx = {\n common: {\n issues: [],\n contextualErrorMap: params === null || params === void 0 ? void 0 : params.errorMap,\n async: true,\n },\n path: (params === null || params === void 0 ? void 0 : params.path) || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n const maybeAsyncResult = this._parse({ data, path: ctx.path, parent: ctx });\n const result = await (isAsync(maybeAsyncResult)\n ? maybeAsyncResult\n : Promise.resolve(maybeAsyncResult));\n return handleResult(ctx, result);\n }\n refine(check, message) {\n const getIssueProperties = (val) => {\n if (typeof message === \"string\" || typeof message === \"undefined\") {\n return { message };\n }\n else if (typeof message === \"function\") {\n return message(val);\n }\n else {\n return message;\n }\n };\n return this._refinement((val, ctx) => {\n const result = check(val);\n const setError = () => ctx.addIssue({\n code: ZodIssueCode.custom,\n ...getIssueProperties(val),\n });\n if (typeof Promise !== \"undefined\" && result instanceof Promise) {\n return result.then((data) => {\n if (!data) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n if (!result) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n refinement(check, refinementData) {\n return this._refinement((val, ctx) => {\n if (!check(val)) {\n ctx.addIssue(typeof refinementData === \"function\"\n ? refinementData(val, ctx)\n : refinementData);\n return false;\n }\n else {\n return true;\n }\n });\n }\n _refinement(refinement) {\n return new ZodEffects({\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"refinement\", refinement },\n });\n }\n superRefine(refinement) {\n return this._refinement(refinement);\n }\n constructor(def) {\n /** Alias of safeParseAsync */\n this.spa = this.safeParseAsync;\n this._def = def;\n this.parse = this.parse.bind(this);\n this.safeParse = this.safeParse.bind(this);\n this.parseAsync = this.parseAsync.bind(this);\n this.safeParseAsync = this.safeParseAsync.bind(this);\n this.spa = this.spa.bind(this);\n this.refine = this.refine.bind(this);\n this.refinement = this.refinement.bind(this);\n this.superRefine = this.superRefine.bind(this);\n this.optional = this.optional.bind(this);\n this.nullable = this.nullable.bind(this);\n this.nullish = this.nullish.bind(this);\n this.array = this.array.bind(this);\n this.promise = this.promise.bind(this);\n this.or = this.or.bind(this);\n this.and = this.and.bind(this);\n this.transform = this.transform.bind(this);\n this.brand = this.brand.bind(this);\n this.default = this.default.bind(this);\n this.catch = this.catch.bind(this);\n this.describe = this.describe.bind(this);\n this.pipe = this.pipe.bind(this);\n this.readonly = this.readonly.bind(this);\n this.isNullable = this.isNullable.bind(this);\n this.isOptional = this.isOptional.bind(this);\n this[\"~standard\"] = {\n version: 1,\n vendor: \"zod\",\n validate: (data) => this[\"~validate\"](data),\n };\n }\n optional() {\n return ZodOptional.create(this, this._def);\n }\n nullable() {\n return ZodNullable.create(this, this._def);\n }\n nullish() {\n return this.nullable().optional();\n }\n array() {\n return ZodArray.create(this);\n }\n promise() {\n return ZodPromise.create(this, this._def);\n }\n or(option) {\n return ZodUnion.create([this, option], this._def);\n }\n and(incoming) {\n return ZodIntersection.create(this, incoming, this._def);\n }\n transform(transform) {\n return new ZodEffects({\n ...processCreateParams(this._def),\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"transform\", transform },\n });\n }\n default(def) {\n const defaultValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodDefault({\n ...processCreateParams(this._def),\n innerType: this,\n defaultValue: defaultValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n });\n }\n brand() {\n return new ZodBranded({\n typeName: ZodFirstPartyTypeKind.ZodBranded,\n type: this,\n ...processCreateParams(this._def),\n });\n }\n catch(def) {\n const catchValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodCatch({\n ...processCreateParams(this._def),\n innerType: this,\n catchValue: catchValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodCatch,\n });\n }\n describe(description) {\n const This = this.constructor;\n return new This({\n ...this._def,\n description,\n });\n }\n pipe(target) {\n return ZodPipeline.create(this, target);\n }\n readonly() {\n return ZodReadonly.create(this);\n }\n isOptional() {\n return this.safeParse(undefined).success;\n }\n isNullable() {\n return this.safeParse(null).success;\n }\n}\nconst cuidRegex = /^c[^\\s-]{8,}$/i;\nconst cuid2Regex = /^[0-9a-z]+$/;\nconst ulidRegex = /^[0-9A-HJKMNP-TV-Z]{26}$/i;\n// const uuidRegex =\n// /^([a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[a-f0-9]{4}-[a-f0-9]{12}|00000000-0000-0000-0000-000000000000)$/i;\nconst uuidRegex = /^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$/i;\nconst nanoidRegex = /^[a-z0-9_-]{21}$/i;\nconst jwtRegex = /^[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]*$/;\nconst durationRegex = /^[-+]?P(?!$)(?:(?:[-+]?\\d+Y)|(?:[-+]?\\d+[.,]\\d+Y$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:(?:[-+]?\\d+W)|(?:[-+]?\\d+[.,]\\d+W$))?(?:(?:[-+]?\\d+D)|(?:[-+]?\\d+[.,]\\d+D$))?(?:T(?=[\\d+-])(?:(?:[-+]?\\d+H)|(?:[-+]?\\d+[.,]\\d+H$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:[-+]?\\d+(?:[.,]\\d+)?S)?)??$/;\n// from https://stackoverflow.com/a/46181/1550155\n// old version: too slow, didn't support unicode\n// const emailRegex = /^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))$/i;\n//old email regex\n// const emailRegex = /^(([^<>()[\\].,;:\\s@\"]+(\\.[^<>()[\\].,;:\\s@\"]+)*)|(\".+\"))@((?!-)([^<>()[\\].,;:\\s@\"]+\\.)+[^<>()[\\].,;:\\s@\"]{1,})[^-<>()[\\].,;:\\s@\"]$/i;\n// eslint-disable-next-line\n// const emailRegex =\n// /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\])|(\\[IPv6:(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))\\])|([A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])*(\\.[A-Za-z]{2,})+))$/;\n// const emailRegex =\n// /^[a-zA-Z0-9\\.\\!\\#\\$\\%\\&\\'\\*\\+\\/\\=\\?\\^\\_\\`\\{\\|\\}\\~\\-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n// const emailRegex =\n// /^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])$/i;\nconst emailRegex = /^(?!\\.)(?!.*\\.\\.)([A-Z0-9_'+\\-\\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\\-]*\\.)+[A-Z]{2,}$/i;\n// const emailRegex =\n// /^[a-z0-9.!#$%&\u2019*+/=?^_`{|}~-]+@[a-z0-9-]+(?:\\.[a-z0-9\\-]+)*$/i;\n// from https://thekevinscott.com/emojis-in-javascript/#writing-a-regular-expression\nconst _emojiRegex = `^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$`;\nlet emojiRegex;\n// faster, simpler, safer\nconst ipv4Regex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/;\nconst ipv4CidrRegex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\/(3[0-2]|[12]?[0-9])$/;\n// const ipv6Regex =\n// /^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/;\nconst ipv6Regex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/;\nconst ipv6CidrRegex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/;\n// https://stackoverflow.com/questions/7860392/determine-if-string-is-in-base64-using-javascript\nconst base64Regex = /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/;\n// https://base64.guru/standards/base64url\nconst base64urlRegex = /^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/;\n// simple\n// const dateRegexSource = `\\\\d{4}-\\\\d{2}-\\\\d{2}`;\n// no leap year validation\n// const dateRegexSource = `\\\\d{4}-((0[13578]|10|12)-31|(0[13-9]|1[0-2])-30|(0[1-9]|1[0-2])-(0[1-9]|1\\\\d|2\\\\d))`;\n// with leap year validation\nconst dateRegexSource = `((\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\\\d|30)|(02)-(0[1-9]|1\\\\d|2[0-8])))`;\nconst dateRegex = new RegExp(`^${dateRegexSource}$`);\nfunction timeRegexSource(args) {\n // let regex = `\\\\d{2}:\\\\d{2}:\\\\d{2}`;\n let regex = `([01]\\\\d|2[0-3]):[0-5]\\\\d:[0-5]\\\\d`;\n if (args.precision) {\n regex = `${regex}\\\\.\\\\d{${args.precision}}`;\n }\n else if (args.precision == null) {\n regex = `${regex}(\\\\.\\\\d+)?`;\n }\n return regex;\n}\nfunction timeRegex(args) {\n return new RegExp(`^${timeRegexSource(args)}$`);\n}\n// Adapted from https://stackoverflow.com/a/3143231\nfunction datetimeRegex(args) {\n let regex = `${dateRegexSource}T${timeRegexSource(args)}`;\n const opts = [];\n opts.push(args.local ? `Z?` : `Z`);\n if (args.offset)\n opts.push(`([+-]\\\\d{2}:?\\\\d{2})`);\n regex = `${regex}(${opts.join(\"|\")})`;\n return new RegExp(`^${regex}$`);\n}\nfunction isValidIP(ip, version) {\n if ((version === \"v4\" || !version) && ipv4Regex.test(ip)) {\n return true;\n }\n if ((version === \"v6\" || !version) && ipv6Regex.test(ip)) {\n return true;\n }\n return false;\n}\nfunction isValidJWT(jwt, alg) {\n if (!jwtRegex.test(jwt))\n return false;\n try {\n const [header] = jwt.split(\".\");\n // Convert base64url to base64\n const base64 = header\n .replace(/-/g, \"+\")\n .replace(/_/g, \"/\")\n .padEnd(header.length + ((4 - (header.length % 4)) % 4), \"=\");\n const decoded = JSON.parse(atob(base64));\n if (typeof decoded !== \"object\" || decoded === null)\n return false;\n if (!decoded.typ || !decoded.alg)\n return false;\n if (alg && decoded.alg !== alg)\n return false;\n return true;\n }\n catch (_a) {\n return false;\n }\n}\nfunction isValidCidr(ip, version) {\n if ((version === \"v4\" || !version) && ipv4CidrRegex.test(ip)) {\n return true;\n }\n if ((version === \"v6\" || !version) && ipv6CidrRegex.test(ip)) {\n return true;\n }\n return false;\n}\nclass ZodString extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = String(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.string) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.string,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.length < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.length > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"length\") {\n const tooBig = input.data.length > check.value;\n const tooSmall = input.data.length < check.value;\n if (tooBig || tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n if (tooBig) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message,\n });\n }\n else if (tooSmall) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message,\n });\n }\n status.dirty();\n }\n }\n else if (check.kind === \"email\") {\n if (!emailRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"email\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"emoji\") {\n if (!emojiRegex) {\n emojiRegex = new RegExp(_emojiRegex, \"u\");\n }\n if (!emojiRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"emoji\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"uuid\") {\n if (!uuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"uuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"nanoid\") {\n if (!nanoidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"nanoid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cuid\") {\n if (!cuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cuid2\") {\n if (!cuid2Regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid2\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"ulid\") {\n if (!ulidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"ulid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"url\") {\n try {\n new URL(input.data);\n }\n catch (_a) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"url\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"regex\") {\n check.regex.lastIndex = 0;\n const testResult = check.regex.test(input.data);\n if (!testResult) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"regex\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"trim\") {\n input.data = input.data.trim();\n }\n else if (check.kind === \"includes\") {\n if (!input.data.includes(check.value, check.position)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { includes: check.value, position: check.position },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"toLowerCase\") {\n input.data = input.data.toLowerCase();\n }\n else if (check.kind === \"toUpperCase\") {\n input.data = input.data.toUpperCase();\n }\n else if (check.kind === \"startsWith\") {\n if (!input.data.startsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { startsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"endsWith\") {\n if (!input.data.endsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { endsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"datetime\") {\n const regex = datetimeRegex(check);\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"datetime\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"date\") {\n const regex = dateRegex;\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"date\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"time\") {\n const regex = timeRegex(check);\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"time\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"duration\") {\n if (!durationRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"duration\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"ip\") {\n if (!isValidIP(input.data, check.version)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"ip\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"jwt\") {\n if (!isValidJWT(input.data, check.alg)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"jwt\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cidr\") {\n if (!isValidCidr(input.data, check.version)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cidr\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"base64\") {\n if (!base64Regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"base64\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"base64url\") {\n if (!base64urlRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"base64url\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n _regex(regex, validation, message) {\n return this.refinement((data) => regex.test(data), {\n validation,\n code: ZodIssueCode.invalid_string,\n ...errorUtil.errToObj(message),\n });\n }\n _addCheck(check) {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n email(message) {\n return this._addCheck({ kind: \"email\", ...errorUtil.errToObj(message) });\n }\n url(message) {\n return this._addCheck({ kind: \"url\", ...errorUtil.errToObj(message) });\n }\n emoji(message) {\n return this._addCheck({ kind: \"emoji\", ...errorUtil.errToObj(message) });\n }\n uuid(message) {\n return this._addCheck({ kind: \"uuid\", ...errorUtil.errToObj(message) });\n }\n nanoid(message) {\n return this._addCheck({ kind: \"nanoid\", ...errorUtil.errToObj(message) });\n }\n cuid(message) {\n return this._addCheck({ kind: \"cuid\", ...errorUtil.errToObj(message) });\n }\n cuid2(message) {\n return this._addCheck({ kind: \"cuid2\", ...errorUtil.errToObj(message) });\n }\n ulid(message) {\n return this._addCheck({ kind: \"ulid\", ...errorUtil.errToObj(message) });\n }\n base64(message) {\n return this._addCheck({ kind: \"base64\", ...errorUtil.errToObj(message) });\n }\n base64url(message) {\n // base64url encoding is a modification of base64 that can safely be used in URLs and filenames\n return this._addCheck({\n kind: \"base64url\",\n ...errorUtil.errToObj(message),\n });\n }\n jwt(options) {\n return this._addCheck({ kind: \"jwt\", ...errorUtil.errToObj(options) });\n }\n ip(options) {\n return this._addCheck({ kind: \"ip\", ...errorUtil.errToObj(options) });\n }\n cidr(options) {\n return this._addCheck({ kind: \"cidr\", ...errorUtil.errToObj(options) });\n }\n datetime(options) {\n var _a, _b;\n if (typeof options === \"string\") {\n return this._addCheck({\n kind: \"datetime\",\n precision: null,\n offset: false,\n local: false,\n message: options,\n });\n }\n return this._addCheck({\n kind: \"datetime\",\n precision: typeof (options === null || options === void 0 ? void 0 : options.precision) === \"undefined\" ? null : options === null || options === void 0 ? void 0 : options.precision,\n offset: (_a = options === null || options === void 0 ? void 0 : options.offset) !== null && _a !== void 0 ? _a : false,\n local: (_b = options === null || options === void 0 ? void 0 : options.local) !== null && _b !== void 0 ? _b : false,\n ...errorUtil.errToObj(options === null || options === void 0 ? void 0 : options.message),\n });\n }\n date(message) {\n return this._addCheck({ kind: \"date\", message });\n }\n time(options) {\n if (typeof options === \"string\") {\n return this._addCheck({\n kind: \"time\",\n precision: null,\n message: options,\n });\n }\n return this._addCheck({\n kind: \"time\",\n precision: typeof (options === null || options === void 0 ? void 0 : options.precision) === \"undefined\" ? null : options === null || options === void 0 ? void 0 : options.precision,\n ...errorUtil.errToObj(options === null || options === void 0 ? void 0 : options.message),\n });\n }\n duration(message) {\n return this._addCheck({ kind: \"duration\", ...errorUtil.errToObj(message) });\n }\n regex(regex, message) {\n return this._addCheck({\n kind: \"regex\",\n regex: regex,\n ...errorUtil.errToObj(message),\n });\n }\n includes(value, options) {\n return this._addCheck({\n kind: \"includes\",\n value: value,\n position: options === null || options === void 0 ? void 0 : options.position,\n ...errorUtil.errToObj(options === null || options === void 0 ? void 0 : options.message),\n });\n }\n startsWith(value, message) {\n return this._addCheck({\n kind: \"startsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n endsWith(value, message) {\n return this._addCheck({\n kind: \"endsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n min(minLength, message) {\n return this._addCheck({\n kind: \"min\",\n value: minLength,\n ...errorUtil.errToObj(message),\n });\n }\n max(maxLength, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxLength,\n ...errorUtil.errToObj(message),\n });\n }\n length(len, message) {\n return this._addCheck({\n kind: \"length\",\n value: len,\n ...errorUtil.errToObj(message),\n });\n }\n /**\n * Equivalent to `.min(1)`\n */\n nonempty(message) {\n return this.min(1, errorUtil.errToObj(message));\n }\n trim() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"trim\" }],\n });\n }\n toLowerCase() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toLowerCase\" }],\n });\n }\n toUpperCase() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toUpperCase\" }],\n });\n }\n get isDatetime() {\n return !!this._def.checks.find((ch) => ch.kind === \"datetime\");\n }\n get isDate() {\n return !!this._def.checks.find((ch) => ch.kind === \"date\");\n }\n get isTime() {\n return !!this._def.checks.find((ch) => ch.kind === \"time\");\n }\n get isDuration() {\n return !!this._def.checks.find((ch) => ch.kind === \"duration\");\n }\n get isEmail() {\n return !!this._def.checks.find((ch) => ch.kind === \"email\");\n }\n get isURL() {\n return !!this._def.checks.find((ch) => ch.kind === \"url\");\n }\n get isEmoji() {\n return !!this._def.checks.find((ch) => ch.kind === \"emoji\");\n }\n get isUUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"uuid\");\n }\n get isNANOID() {\n return !!this._def.checks.find((ch) => ch.kind === \"nanoid\");\n }\n get isCUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid\");\n }\n get isCUID2() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid2\");\n }\n get isULID() {\n return !!this._def.checks.find((ch) => ch.kind === \"ulid\");\n }\n get isIP() {\n return !!this._def.checks.find((ch) => ch.kind === \"ip\");\n }\n get isCIDR() {\n return !!this._def.checks.find((ch) => ch.kind === \"cidr\");\n }\n get isBase64() {\n return !!this._def.checks.find((ch) => ch.kind === \"base64\");\n }\n get isBase64url() {\n // base64url encoding is a modification of base64 that can safely be used in URLs and filenames\n return !!this._def.checks.find((ch) => ch.kind === \"base64url\");\n }\n get minLength() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxLength() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nZodString.create = (params) => {\n var _a;\n return new ZodString({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodString,\n coerce: (_a = params === null || params === void 0 ? void 0 : params.coerce) !== null && _a !== void 0 ? _a : false,\n ...processCreateParams(params),\n });\n};\n// https://stackoverflow.com/questions/3966484/why-does-modulus-operator-return-fractional-number-in-javascript/31711034#31711034\nfunction floatSafeRemainder(val, step) {\n const valDecCount = (val.toString().split(\".\")[1] || \"\").length;\n const stepDecCount = (step.toString().split(\".\")[1] || \"\").length;\n const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount;\n const valInt = parseInt(val.toFixed(decCount).replace(\".\", \"\"));\n const stepInt = parseInt(step.toFixed(decCount).replace(\".\", \"\"));\n return (valInt % stepInt) / Math.pow(10, decCount);\n}\nclass ZodNumber extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n this.step = this.multipleOf;\n }\n _parse(input) {\n if (this._def.coerce) {\n input.data = Number(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.number) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.number,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n let ctx = undefined;\n const status = new ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"int\") {\n if (!util.isInteger(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: \"integer\",\n received: \"float\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"min\") {\n const tooSmall = check.inclusive\n ? input.data < check.value\n : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n const tooBig = check.inclusive\n ? input.data > check.value\n : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"multipleOf\") {\n if (floatSafeRemainder(input.data, check.value) !== 0) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"finite\") {\n if (!Number.isFinite(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_finite,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodNumber({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message),\n },\n ],\n });\n }\n _addCheck(check) {\n return new ZodNumber({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n int(message) {\n return this._addCheck({\n kind: \"int\",\n message: errorUtil.toString(message),\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value: value,\n message: errorUtil.toString(message),\n });\n }\n finite(message) {\n return this._addCheck({\n kind: \"finite\",\n message: errorUtil.toString(message),\n });\n }\n safe(message) {\n return this._addCheck({\n kind: \"min\",\n inclusive: true,\n value: Number.MIN_SAFE_INTEGER,\n message: errorUtil.toString(message),\n })._addCheck({\n kind: \"max\",\n inclusive: true,\n value: Number.MAX_SAFE_INTEGER,\n message: errorUtil.toString(message),\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n get isInt() {\n return !!this._def.checks.find((ch) => ch.kind === \"int\" ||\n (ch.kind === \"multipleOf\" && util.isInteger(ch.value)));\n }\n get isFinite() {\n let max = null, min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"finite\" ||\n ch.kind === \"int\" ||\n ch.kind === \"multipleOf\") {\n return true;\n }\n else if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n else if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return Number.isFinite(min) && Number.isFinite(max);\n }\n}\nZodNumber.create = (params) => {\n return new ZodNumber({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodNumber,\n coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false,\n ...processCreateParams(params),\n });\n};\nclass ZodBigInt extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n }\n _parse(input) {\n if (this._def.coerce) {\n try {\n input.data = BigInt(input.data);\n }\n catch (_a) {\n return this._getInvalidInput(input);\n }\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.bigint) {\n return this._getInvalidInput(input);\n }\n let ctx = undefined;\n const status = new ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n const tooSmall = check.inclusive\n ? input.data < check.value\n : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n type: \"bigint\",\n minimum: check.value,\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n const tooBig = check.inclusive\n ? input.data > check.value\n : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n type: \"bigint\",\n maximum: check.value,\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"multipleOf\") {\n if (input.data % check.value !== BigInt(0)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n _getInvalidInput(input) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.bigint,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodBigInt({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message),\n },\n ],\n });\n }\n _addCheck(check) {\n return new ZodBigInt({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value,\n message: errorUtil.toString(message),\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nZodBigInt.create = (params) => {\n var _a;\n return new ZodBigInt({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodBigInt,\n coerce: (_a = params === null || params === void 0 ? void 0 : params.coerce) !== null && _a !== void 0 ? _a : false,\n ...processCreateParams(params),\n });\n};\nclass ZodBoolean extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = Boolean(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.boolean) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.boolean,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodBoolean.create = (params) => {\n return new ZodBoolean({\n typeName: ZodFirstPartyTypeKind.ZodBoolean,\n coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false,\n ...processCreateParams(params),\n });\n};\nclass ZodDate extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = new Date(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.date) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.date,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (isNaN(input.data.getTime())) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_date,\n });\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.getTime() < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n message: check.message,\n inclusive: true,\n exact: false,\n minimum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.getTime() > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n message: check.message,\n inclusive: true,\n exact: false,\n maximum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return {\n status: status.value,\n value: new Date(input.data.getTime()),\n };\n }\n _addCheck(check) {\n return new ZodDate({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n min(minDate, message) {\n return this._addCheck({\n kind: \"min\",\n value: minDate.getTime(),\n message: errorUtil.toString(message),\n });\n }\n max(maxDate, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxDate.getTime(),\n message: errorUtil.toString(message),\n });\n }\n get minDate() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min != null ? new Date(min) : null;\n }\n get maxDate() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max != null ? new Date(max) : null;\n }\n}\nZodDate.create = (params) => {\n return new ZodDate({\n checks: [],\n coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false,\n typeName: ZodFirstPartyTypeKind.ZodDate,\n ...processCreateParams(params),\n });\n};\nclass ZodSymbol extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.symbol) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.symbol,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodSymbol.create = (params) => {\n return new ZodSymbol({\n typeName: ZodFirstPartyTypeKind.ZodSymbol,\n ...processCreateParams(params),\n });\n};\nclass ZodUndefined extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.undefined,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodUndefined.create = (params) => {\n return new ZodUndefined({\n typeName: ZodFirstPartyTypeKind.ZodUndefined,\n ...processCreateParams(params),\n });\n};\nclass ZodNull extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.null) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.null,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodNull.create = (params) => {\n return new ZodNull({\n typeName: ZodFirstPartyTypeKind.ZodNull,\n ...processCreateParams(params),\n });\n};\nclass ZodAny extends ZodType {\n constructor() {\n super(...arguments);\n // to prevent instances of other classes from extending ZodAny. this causes issues with catchall in ZodObject.\n this._any = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodAny.create = (params) => {\n return new ZodAny({\n typeName: ZodFirstPartyTypeKind.ZodAny,\n ...processCreateParams(params),\n });\n};\nclass ZodUnknown extends ZodType {\n constructor() {\n super(...arguments);\n // required\n this._unknown = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodUnknown.create = (params) => {\n return new ZodUnknown({\n typeName: ZodFirstPartyTypeKind.ZodUnknown,\n ...processCreateParams(params),\n });\n};\nclass ZodNever extends ZodType {\n _parse(input) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.never,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n}\nZodNever.create = (params) => {\n return new ZodNever({\n typeName: ZodFirstPartyTypeKind.ZodNever,\n ...processCreateParams(params),\n });\n};\nclass ZodVoid extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.void,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodVoid.create = (params) => {\n return new ZodVoid({\n typeName: ZodFirstPartyTypeKind.ZodVoid,\n ...processCreateParams(params),\n });\n};\nclass ZodArray extends ZodType {\n _parse(input) {\n const { ctx, status } = this._processInputParams(input);\n const def = this._def;\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (def.exactLength !== null) {\n const tooBig = ctx.data.length > def.exactLength.value;\n const tooSmall = ctx.data.length < def.exactLength.value;\n if (tooBig || tooSmall) {\n addIssueToContext(ctx, {\n code: tooBig ? ZodIssueCode.too_big : ZodIssueCode.too_small,\n minimum: (tooSmall ? def.exactLength.value : undefined),\n maximum: (tooBig ? def.exactLength.value : undefined),\n type: \"array\",\n inclusive: true,\n exact: true,\n message: def.exactLength.message,\n });\n status.dirty();\n }\n }\n if (def.minLength !== null) {\n if (ctx.data.length < def.minLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.minLength.message,\n });\n status.dirty();\n }\n }\n if (def.maxLength !== null) {\n if (ctx.data.length > def.maxLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.maxLength.message,\n });\n status.dirty();\n }\n }\n if (ctx.common.async) {\n return Promise.all([...ctx.data].map((item, i) => {\n return def.type._parseAsync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n })).then((result) => {\n return ParseStatus.mergeArray(status, result);\n });\n }\n const result = [...ctx.data].map((item, i) => {\n return def.type._parseSync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n });\n return ParseStatus.mergeArray(status, result);\n }\n get element() {\n return this._def.type;\n }\n min(minLength, message) {\n return new ZodArray({\n ...this._def,\n minLength: { value: minLength, message: errorUtil.toString(message) },\n });\n }\n max(maxLength, message) {\n return new ZodArray({\n ...this._def,\n maxLength: { value: maxLength, message: errorUtil.toString(message) },\n });\n }\n length(len, message) {\n return new ZodArray({\n ...this._def,\n exactLength: { value: len, message: errorUtil.toString(message) },\n });\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodArray.create = (schema, params) => {\n return new ZodArray({\n type: schema,\n minLength: null,\n maxLength: null,\n exactLength: null,\n typeName: ZodFirstPartyTypeKind.ZodArray,\n ...processCreateParams(params),\n });\n};\nfunction deepPartialify(schema) {\n if (schema instanceof ZodObject) {\n const newShape = {};\n for (const key in schema.shape) {\n const fieldSchema = schema.shape[key];\n newShape[key] = ZodOptional.create(deepPartialify(fieldSchema));\n }\n return new ZodObject({\n ...schema._def,\n shape: () => newShape,\n });\n }\n else if (schema instanceof ZodArray) {\n return new ZodArray({\n ...schema._def,\n type: deepPartialify(schema.element),\n });\n }\n else if (schema instanceof ZodOptional) {\n return ZodOptional.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodNullable) {\n return ZodNullable.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodTuple) {\n return ZodTuple.create(schema.items.map((item) => deepPartialify(item)));\n }\n else {\n return schema;\n }\n}\nclass ZodObject extends ZodType {\n constructor() {\n super(...arguments);\n this._cached = null;\n /**\n * @deprecated In most cases, this is no longer needed - unknown properties are now silently stripped.\n * If you want to pass through unknown properties, use `.passthrough()` instead.\n */\n this.nonstrict = this.passthrough;\n // extend<\n // Augmentation extends ZodRawShape,\n // NewOutput extends util.flatten<{\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // }>,\n // NewInput extends util.flatten<{\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }>\n // >(\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape,\n // UnknownKeys,\n // Catchall,\n // NewOutput,\n // NewInput\n // > {\n // return new ZodObject({\n // ...this._def,\n // shape: () => ({\n // ...this._def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // }\n /**\n * @deprecated Use `.extend` instead\n * */\n this.augment = this.extend;\n }\n _getCached() {\n if (this._cached !== null)\n return this._cached;\n const shape = this._def.shape();\n const keys = util.objectKeys(shape);\n return (this._cached = { shape, keys });\n }\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.object) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const { status, ctx } = this._processInputParams(input);\n const { shape, keys: shapeKeys } = this._getCached();\n const extraKeys = [];\n if (!(this._def.catchall instanceof ZodNever &&\n this._def.unknownKeys === \"strip\")) {\n for (const key in ctx.data) {\n if (!shapeKeys.includes(key)) {\n extraKeys.push(key);\n }\n }\n }\n const pairs = [];\n for (const key of shapeKeys) {\n const keyValidator = shape[key];\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: keyValidator._parse(new ParseInputLazyPath(ctx, value, ctx.path, key)),\n alwaysSet: key in ctx.data,\n });\n }\n if (this._def.catchall instanceof ZodNever) {\n const unknownKeys = this._def.unknownKeys;\n if (unknownKeys === \"passthrough\") {\n for (const key of extraKeys) {\n pairs.push({\n key: { status: \"valid\", value: key },\n value: { status: \"valid\", value: ctx.data[key] },\n });\n }\n }\n else if (unknownKeys === \"strict\") {\n if (extraKeys.length > 0) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.unrecognized_keys,\n keys: extraKeys,\n });\n status.dirty();\n }\n }\n else if (unknownKeys === \"strip\") ;\n else {\n throw new Error(`Internal ZodObject error: invalid unknownKeys value.`);\n }\n }\n else {\n // run catchall validation\n const catchall = this._def.catchall;\n for (const key of extraKeys) {\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: catchall._parse(new ParseInputLazyPath(ctx, value, ctx.path, key) //, ctx.child(key), value, getParsedType(value)\n ),\n alwaysSet: key in ctx.data,\n });\n }\n }\n if (ctx.common.async) {\n return Promise.resolve()\n .then(async () => {\n const syncPairs = [];\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n syncPairs.push({\n key,\n value,\n alwaysSet: pair.alwaysSet,\n });\n }\n return syncPairs;\n })\n .then((syncPairs) => {\n return ParseStatus.mergeObjectSync(status, syncPairs);\n });\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get shape() {\n return this._def.shape();\n }\n strict(message) {\n errorUtil.errToObj;\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strict\",\n ...(message !== undefined\n ? {\n errorMap: (issue, ctx) => {\n var _a, _b, _c, _d;\n const defaultError = (_c = (_b = (_a = this._def).errorMap) === null || _b === void 0 ? void 0 : _b.call(_a, issue, ctx).message) !== null && _c !== void 0 ? _c : ctx.defaultError;\n if (issue.code === \"unrecognized_keys\")\n return {\n message: (_d = errorUtil.errToObj(message).message) !== null && _d !== void 0 ? _d : defaultError,\n };\n return {\n message: defaultError,\n };\n },\n }\n : {}),\n });\n }\n strip() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strip\",\n });\n }\n passthrough() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"passthrough\",\n });\n }\n // const AugmentFactory =\n // (def: Def) =>\n // (\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape, Augmentation>,\n // Def[\"unknownKeys\"],\n // Def[\"catchall\"]\n // > => {\n // return new ZodObject({\n // ...def,\n // shape: () => ({\n // ...def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // };\n extend(augmentation) {\n return new ZodObject({\n ...this._def,\n shape: () => ({\n ...this._def.shape(),\n ...augmentation,\n }),\n });\n }\n /**\n * Prior to zod@1.0.12 there was a bug in the\n * inferred type of merged objects. Please\n * upgrade if you are experiencing issues.\n */\n merge(merging) {\n const merged = new ZodObject({\n unknownKeys: merging._def.unknownKeys,\n catchall: merging._def.catchall,\n shape: () => ({\n ...this._def.shape(),\n ...merging._def.shape(),\n }),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n });\n return merged;\n }\n // merge<\n // Incoming extends AnyZodObject,\n // Augmentation extends Incoming[\"shape\"],\n // NewOutput extends {\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // },\n // NewInput extends {\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }\n // >(\n // merging: Incoming\n // ): ZodObject<\n // extendShape>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"],\n // NewOutput,\n // NewInput\n // > {\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n setKey(key, schema) {\n return this.augment({ [key]: schema });\n }\n // merge(\n // merging: Incoming\n // ): //ZodObject = (merging) => {\n // ZodObject<\n // extendShape>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"]\n // > {\n // // const mergedShape = objectUtil.mergeShapes(\n // // this._def.shape(),\n // // merging._def.shape()\n // // );\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n catchall(index) {\n return new ZodObject({\n ...this._def,\n catchall: index,\n });\n }\n pick(mask) {\n const shape = {};\n util.objectKeys(mask).forEach((key) => {\n if (mask[key] && this.shape[key]) {\n shape[key] = this.shape[key];\n }\n });\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n omit(mask) {\n const shape = {};\n util.objectKeys(this.shape).forEach((key) => {\n if (!mask[key]) {\n shape[key] = this.shape[key];\n }\n });\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n /**\n * @deprecated\n */\n deepPartial() {\n return deepPartialify(this);\n }\n partial(mask) {\n const newShape = {};\n util.objectKeys(this.shape).forEach((key) => {\n const fieldSchema = this.shape[key];\n if (mask && !mask[key]) {\n newShape[key] = fieldSchema;\n }\n else {\n newShape[key] = fieldSchema.optional();\n }\n });\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n required(mask) {\n const newShape = {};\n util.objectKeys(this.shape).forEach((key) => {\n if (mask && !mask[key]) {\n newShape[key] = this.shape[key];\n }\n else {\n const fieldSchema = this.shape[key];\n let newField = fieldSchema;\n while (newField instanceof ZodOptional) {\n newField = newField._def.innerType;\n }\n newShape[key] = newField;\n }\n });\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n keyof() {\n return createZodEnum(util.objectKeys(this.shape));\n }\n}\nZodObject.create = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.strictCreate = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strict\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.lazycreate = (shape, params) => {\n return new ZodObject({\n shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nclass ZodUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const options = this._def.options;\n function handleResults(results) {\n // return first issue-free validation if it exists\n for (const result of results) {\n if (result.result.status === \"valid\") {\n return result.result;\n }\n }\n for (const result of results) {\n if (result.result.status === \"dirty\") {\n // add issues from dirty option\n ctx.common.issues.push(...result.ctx.common.issues);\n return result.result;\n }\n }\n // return invalid\n const unionErrors = results.map((result) => new ZodError(result.ctx.common.issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return Promise.all(options.map(async (option) => {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n return {\n result: await option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n }),\n ctx: childCtx,\n };\n })).then(handleResults);\n }\n else {\n let dirty = undefined;\n const issues = [];\n for (const option of options) {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n const result = option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n });\n if (result.status === \"valid\") {\n return result;\n }\n else if (result.status === \"dirty\" && !dirty) {\n dirty = { result, ctx: childCtx };\n }\n if (childCtx.common.issues.length) {\n issues.push(childCtx.common.issues);\n }\n }\n if (dirty) {\n ctx.common.issues.push(...dirty.ctx.common.issues);\n return dirty.result;\n }\n const unionErrors = issues.map((issues) => new ZodError(issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n }\n get options() {\n return this._def.options;\n }\n}\nZodUnion.create = (types, params) => {\n return new ZodUnion({\n options: types,\n typeName: ZodFirstPartyTypeKind.ZodUnion,\n ...processCreateParams(params),\n });\n};\n/////////////////////////////////////////////////////\n/////////////////////////////////////////////////////\n////////// //////////\n////////// ZodDiscriminatedUnion //////////\n////////// //////////\n/////////////////////////////////////////////////////\n/////////////////////////////////////////////////////\nconst getDiscriminator = (type) => {\n if (type instanceof ZodLazy) {\n return getDiscriminator(type.schema);\n }\n else if (type instanceof ZodEffects) {\n return getDiscriminator(type.innerType());\n }\n else if (type instanceof ZodLiteral) {\n return [type.value];\n }\n else if (type instanceof ZodEnum) {\n return type.options;\n }\n else if (type instanceof ZodNativeEnum) {\n // eslint-disable-next-line ban/ban\n return util.objectValues(type.enum);\n }\n else if (type instanceof ZodDefault) {\n return getDiscriminator(type._def.innerType);\n }\n else if (type instanceof ZodUndefined) {\n return [undefined];\n }\n else if (type instanceof ZodNull) {\n return [null];\n }\n else if (type instanceof ZodOptional) {\n return [undefined, ...getDiscriminator(type.unwrap())];\n }\n else if (type instanceof ZodNullable) {\n return [null, ...getDiscriminator(type.unwrap())];\n }\n else if (type instanceof ZodBranded) {\n return getDiscriminator(type.unwrap());\n }\n else if (type instanceof ZodReadonly) {\n return getDiscriminator(type.unwrap());\n }\n else if (type instanceof ZodCatch) {\n return getDiscriminator(type._def.innerType);\n }\n else {\n return [];\n }\n};\nclass ZodDiscriminatedUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const discriminator = this.discriminator;\n const discriminatorValue = ctx.data[discriminator];\n const option = this.optionsMap.get(discriminatorValue);\n if (!option) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union_discriminator,\n options: Array.from(this.optionsMap.keys()),\n path: [discriminator],\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n else {\n return option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n get discriminator() {\n return this._def.discriminator;\n }\n get options() {\n return this._def.options;\n }\n get optionsMap() {\n return this._def.optionsMap;\n }\n /**\n * The constructor of the discriminated union schema. Its behaviour is very similar to that of the normal z.union() constructor.\n * However, it only allows a union of objects, all of which need to share a discriminator property. This property must\n * have a different value for each object in the union.\n * @param discriminator the name of the discriminator property\n * @param types an array of object schemas\n * @param params\n */\n static create(discriminator, options, params) {\n // Get all the valid discriminator values\n const optionsMap = new Map();\n // try {\n for (const type of options) {\n const discriminatorValues = getDiscriminator(type.shape[discriminator]);\n if (!discriminatorValues.length) {\n throw new Error(`A discriminator value for key \\`${discriminator}\\` could not be extracted from all schema options`);\n }\n for (const value of discriminatorValues) {\n if (optionsMap.has(value)) {\n throw new Error(`Discriminator property ${String(discriminator)} has duplicate value ${String(value)}`);\n }\n optionsMap.set(value, type);\n }\n }\n return new ZodDiscriminatedUnion({\n typeName: ZodFirstPartyTypeKind.ZodDiscriminatedUnion,\n discriminator,\n options,\n optionsMap,\n ...processCreateParams(params),\n });\n }\n}\nfunction mergeValues(a, b) {\n const aType = getParsedType(a);\n const bType = getParsedType(b);\n if (a === b) {\n return { valid: true, data: a };\n }\n else if (aType === ZodParsedType.object && bType === ZodParsedType.object) {\n const bKeys = util.objectKeys(b);\n const sharedKeys = util\n .objectKeys(a)\n .filter((key) => bKeys.indexOf(key) !== -1);\n const newObj = { ...a, ...b };\n for (const key of sharedKeys) {\n const sharedValue = mergeValues(a[key], b[key]);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newObj[key] = sharedValue.data;\n }\n return { valid: true, data: newObj };\n }\n else if (aType === ZodParsedType.array && bType === ZodParsedType.array) {\n if (a.length !== b.length) {\n return { valid: false };\n }\n const newArray = [];\n for (let index = 0; index < a.length; index++) {\n const itemA = a[index];\n const itemB = b[index];\n const sharedValue = mergeValues(itemA, itemB);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newArray.push(sharedValue.data);\n }\n return { valid: true, data: newArray };\n }\n else if (aType === ZodParsedType.date &&\n bType === ZodParsedType.date &&\n +a === +b) {\n return { valid: true, data: a };\n }\n else {\n return { valid: false };\n }\n}\nclass ZodIntersection extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const handleParsed = (parsedLeft, parsedRight) => {\n if (isAborted(parsedLeft) || isAborted(parsedRight)) {\n return INVALID;\n }\n const merged = mergeValues(parsedLeft.value, parsedRight.value);\n if (!merged.valid) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_intersection_types,\n });\n return INVALID;\n }\n if (isDirty(parsedLeft) || isDirty(parsedRight)) {\n status.dirty();\n }\n return { status: status.value, value: merged.data };\n };\n if (ctx.common.async) {\n return Promise.all([\n this._def.left._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n this._def.right._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n ]).then(([left, right]) => handleParsed(left, right));\n }\n else {\n return handleParsed(this._def.left._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }), this._def.right._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }));\n }\n }\n}\nZodIntersection.create = (left, right, params) => {\n return new ZodIntersection({\n left: left,\n right: right,\n typeName: ZodFirstPartyTypeKind.ZodIntersection,\n ...processCreateParams(params),\n });\n};\nclass ZodTuple extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (ctx.data.length < this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\",\n });\n return INVALID;\n }\n const rest = this._def.rest;\n if (!rest && ctx.data.length > this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\",\n });\n status.dirty();\n }\n const items = [...ctx.data]\n .map((item, itemIndex) => {\n const schema = this._def.items[itemIndex] || this._def.rest;\n if (!schema)\n return null;\n return schema._parse(new ParseInputLazyPath(ctx, item, ctx.path, itemIndex));\n })\n .filter((x) => !!x); // filter nulls\n if (ctx.common.async) {\n return Promise.all(items).then((results) => {\n return ParseStatus.mergeArray(status, results);\n });\n }\n else {\n return ParseStatus.mergeArray(status, items);\n }\n }\n get items() {\n return this._def.items;\n }\n rest(rest) {\n return new ZodTuple({\n ...this._def,\n rest,\n });\n }\n}\nZodTuple.create = (schemas, params) => {\n if (!Array.isArray(schemas)) {\n throw new Error(\"You must pass an array of schemas to z.tuple([ ... ])\");\n }\n return new ZodTuple({\n items: schemas,\n typeName: ZodFirstPartyTypeKind.ZodTuple,\n rest: null,\n ...processCreateParams(params),\n });\n};\nclass ZodRecord extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const pairs = [];\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n for (const key in ctx.data) {\n pairs.push({\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, key)),\n value: valueType._parse(new ParseInputLazyPath(ctx, ctx.data[key], ctx.path, key)),\n alwaysSet: key in ctx.data,\n });\n }\n if (ctx.common.async) {\n return ParseStatus.mergeObjectAsync(status, pairs);\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get element() {\n return this._def.valueType;\n }\n static create(first, second, third) {\n if (second instanceof ZodType) {\n return new ZodRecord({\n keyType: first,\n valueType: second,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(third),\n });\n }\n return new ZodRecord({\n keyType: ZodString.create(),\n valueType: first,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(second),\n });\n }\n}\nclass ZodMap extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.map) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.map,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n const pairs = [...ctx.data.entries()].map(([key, value], index) => {\n return {\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, [index, \"key\"])),\n value: valueType._parse(new ParseInputLazyPath(ctx, value, ctx.path, [index, \"value\"])),\n };\n });\n if (ctx.common.async) {\n const finalMap = new Map();\n return Promise.resolve().then(async () => {\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n });\n }\n else {\n const finalMap = new Map();\n for (const pair of pairs) {\n const key = pair.key;\n const value = pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n }\n }\n}\nZodMap.create = (keyType, valueType, params) => {\n return new ZodMap({\n valueType,\n keyType,\n typeName: ZodFirstPartyTypeKind.ZodMap,\n ...processCreateParams(params),\n });\n};\nclass ZodSet extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.set) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.set,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const def = this._def;\n if (def.minSize !== null) {\n if (ctx.data.size < def.minSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.minSize.message,\n });\n status.dirty();\n }\n }\n if (def.maxSize !== null) {\n if (ctx.data.size > def.maxSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.maxSize.message,\n });\n status.dirty();\n }\n }\n const valueType = this._def.valueType;\n function finalizeSet(elements) {\n const parsedSet = new Set();\n for (const element of elements) {\n if (element.status === \"aborted\")\n return INVALID;\n if (element.status === \"dirty\")\n status.dirty();\n parsedSet.add(element.value);\n }\n return { status: status.value, value: parsedSet };\n }\n const elements = [...ctx.data.values()].map((item, i) => valueType._parse(new ParseInputLazyPath(ctx, item, ctx.path, i)));\n if (ctx.common.async) {\n return Promise.all(elements).then((elements) => finalizeSet(elements));\n }\n else {\n return finalizeSet(elements);\n }\n }\n min(minSize, message) {\n return new ZodSet({\n ...this._def,\n minSize: { value: minSize, message: errorUtil.toString(message) },\n });\n }\n max(maxSize, message) {\n return new ZodSet({\n ...this._def,\n maxSize: { value: maxSize, message: errorUtil.toString(message) },\n });\n }\n size(size, message) {\n return this.min(size, message).max(size, message);\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodSet.create = (valueType, params) => {\n return new ZodSet({\n valueType,\n minSize: null,\n maxSize: null,\n typeName: ZodFirstPartyTypeKind.ZodSet,\n ...processCreateParams(params),\n });\n};\nclass ZodFunction extends ZodType {\n constructor() {\n super(...arguments);\n this.validate = this.implement;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.function) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.function,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n function makeArgsIssue(args, error) {\n return makeIssue({\n data: args,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap,\n ctx.schemaErrorMap,\n getErrorMap(),\n errorMap,\n ].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_arguments,\n argumentsError: error,\n },\n });\n }\n function makeReturnsIssue(returns, error) {\n return makeIssue({\n data: returns,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap,\n ctx.schemaErrorMap,\n getErrorMap(),\n errorMap,\n ].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_return_type,\n returnTypeError: error,\n },\n });\n }\n const params = { errorMap: ctx.common.contextualErrorMap };\n const fn = ctx.data;\n if (this._def.returns instanceof ZodPromise) {\n // Would love a way to avoid disabling this rule, but we need\n // an alias (using an arrow function was what caused 2651).\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const me = this;\n return OK(async function (...args) {\n const error = new ZodError([]);\n const parsedArgs = await me._def.args\n .parseAsync(args, params)\n .catch((e) => {\n error.addIssue(makeArgsIssue(args, e));\n throw error;\n });\n const result = await Reflect.apply(fn, this, parsedArgs);\n const parsedReturns = await me._def.returns._def.type\n .parseAsync(result, params)\n .catch((e) => {\n error.addIssue(makeReturnsIssue(result, e));\n throw error;\n });\n return parsedReturns;\n });\n }\n else {\n // Would love a way to avoid disabling this rule, but we need\n // an alias (using an arrow function was what caused 2651).\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const me = this;\n return OK(function (...args) {\n const parsedArgs = me._def.args.safeParse(args, params);\n if (!parsedArgs.success) {\n throw new ZodError([makeArgsIssue(args, parsedArgs.error)]);\n }\n const result = Reflect.apply(fn, this, parsedArgs.data);\n const parsedReturns = me._def.returns.safeParse(result, params);\n if (!parsedReturns.success) {\n throw new ZodError([makeReturnsIssue(result, parsedReturns.error)]);\n }\n return parsedReturns.data;\n });\n }\n }\n parameters() {\n return this._def.args;\n }\n returnType() {\n return this._def.returns;\n }\n args(...items) {\n return new ZodFunction({\n ...this._def,\n args: ZodTuple.create(items).rest(ZodUnknown.create()),\n });\n }\n returns(returnType) {\n return new ZodFunction({\n ...this._def,\n returns: returnType,\n });\n }\n implement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n strictImplement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n static create(args, returns, params) {\n return new ZodFunction({\n args: (args\n ? args\n : ZodTuple.create([]).rest(ZodUnknown.create())),\n returns: returns || ZodUnknown.create(),\n typeName: ZodFirstPartyTypeKind.ZodFunction,\n ...processCreateParams(params),\n });\n }\n}\nclass ZodLazy extends ZodType {\n get schema() {\n return this._def.getter();\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const lazySchema = this._def.getter();\n return lazySchema._parse({ data: ctx.data, path: ctx.path, parent: ctx });\n }\n}\nZodLazy.create = (getter, params) => {\n return new ZodLazy({\n getter: getter,\n typeName: ZodFirstPartyTypeKind.ZodLazy,\n ...processCreateParams(params),\n });\n};\nclass ZodLiteral extends ZodType {\n _parse(input) {\n if (input.data !== this._def.value) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_literal,\n expected: this._def.value,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n get value() {\n return this._def.value;\n }\n}\nZodLiteral.create = (value, params) => {\n return new ZodLiteral({\n value: value,\n typeName: ZodFirstPartyTypeKind.ZodLiteral,\n ...processCreateParams(params),\n });\n};\nfunction createZodEnum(values, params) {\n return new ZodEnum({\n values,\n typeName: ZodFirstPartyTypeKind.ZodEnum,\n ...processCreateParams(params),\n });\n}\nclass ZodEnum extends ZodType {\n constructor() {\n super(...arguments);\n _ZodEnum_cache.set(this, void 0);\n }\n _parse(input) {\n if (typeof input.data !== \"string\") {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return INVALID;\n }\n if (!__classPrivateFieldGet(this, _ZodEnum_cache, \"f\")) {\n __classPrivateFieldSet(this, _ZodEnum_cache, new Set(this._def.values), \"f\");\n }\n if (!__classPrivateFieldGet(this, _ZodEnum_cache, \"f\").has(input.data)) {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get options() {\n return this._def.values;\n }\n get enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Values() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n extract(values, newDef = this._def) {\n return ZodEnum.create(values, {\n ...this._def,\n ...newDef,\n });\n }\n exclude(values, newDef = this._def) {\n return ZodEnum.create(this.options.filter((opt) => !values.includes(opt)), {\n ...this._def,\n ...newDef,\n });\n }\n}\n_ZodEnum_cache = new WeakMap();\nZodEnum.create = createZodEnum;\nclass ZodNativeEnum extends ZodType {\n constructor() {\n super(...arguments);\n _ZodNativeEnum_cache.set(this, void 0);\n }\n _parse(input) {\n const nativeEnumValues = util.getValidEnumValues(this._def.values);\n const ctx = this._getOrReturnCtx(input);\n if (ctx.parsedType !== ZodParsedType.string &&\n ctx.parsedType !== ZodParsedType.number) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return INVALID;\n }\n if (!__classPrivateFieldGet(this, _ZodNativeEnum_cache, \"f\")) {\n __classPrivateFieldSet(this, _ZodNativeEnum_cache, new Set(util.getValidEnumValues(this._def.values)), \"f\");\n }\n if (!__classPrivateFieldGet(this, _ZodNativeEnum_cache, \"f\").has(input.data)) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get enum() {\n return this._def.values;\n }\n}\n_ZodNativeEnum_cache = new WeakMap();\nZodNativeEnum.create = (values, params) => {\n return new ZodNativeEnum({\n values: values,\n typeName: ZodFirstPartyTypeKind.ZodNativeEnum,\n ...processCreateParams(params),\n });\n};\nclass ZodPromise extends ZodType {\n unwrap() {\n return this._def.type;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.promise &&\n ctx.common.async === false) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.promise,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const promisified = ctx.parsedType === ZodParsedType.promise\n ? ctx.data\n : Promise.resolve(ctx.data);\n return OK(promisified.then((data) => {\n return this._def.type.parseAsync(data, {\n path: ctx.path,\n errorMap: ctx.common.contextualErrorMap,\n });\n }));\n }\n}\nZodPromise.create = (schema, params) => {\n return new ZodPromise({\n type: schema,\n typeName: ZodFirstPartyTypeKind.ZodPromise,\n ...processCreateParams(params),\n });\n};\nclass ZodEffects extends ZodType {\n innerType() {\n return this._def.schema;\n }\n sourceType() {\n return this._def.schema._def.typeName === ZodFirstPartyTypeKind.ZodEffects\n ? this._def.schema.sourceType()\n : this._def.schema;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const effect = this._def.effect || null;\n const checkCtx = {\n addIssue: (arg) => {\n addIssueToContext(ctx, arg);\n if (arg.fatal) {\n status.abort();\n }\n else {\n status.dirty();\n }\n },\n get path() {\n return ctx.path;\n },\n };\n checkCtx.addIssue = checkCtx.addIssue.bind(checkCtx);\n if (effect.type === \"preprocess\") {\n const processed = effect.transform(ctx.data, checkCtx);\n if (ctx.common.async) {\n return Promise.resolve(processed).then(async (processed) => {\n if (status.value === \"aborted\")\n return INVALID;\n const result = await this._def.schema._parseAsync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n if (result.status === \"aborted\")\n return INVALID;\n if (result.status === \"dirty\")\n return DIRTY(result.value);\n if (status.value === \"dirty\")\n return DIRTY(result.value);\n return result;\n });\n }\n else {\n if (status.value === \"aborted\")\n return INVALID;\n const result = this._def.schema._parseSync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n if (result.status === \"aborted\")\n return INVALID;\n if (result.status === \"dirty\")\n return DIRTY(result.value);\n if (status.value === \"dirty\")\n return DIRTY(result.value);\n return result;\n }\n }\n if (effect.type === \"refinement\") {\n const executeRefinement = (acc) => {\n const result = effect.refinement(acc, checkCtx);\n if (ctx.common.async) {\n return Promise.resolve(result);\n }\n if (result instanceof Promise) {\n throw new Error(\"Async refinement encountered during synchronous parse operation. Use .parseAsync instead.\");\n }\n return acc;\n };\n if (ctx.common.async === false) {\n const inner = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n // return value is ignored\n executeRefinement(inner.value);\n return { status: status.value, value: inner.value };\n }\n else {\n return this._def.schema\n ._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx })\n .then((inner) => {\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n return executeRefinement(inner.value).then(() => {\n return { status: status.value, value: inner.value };\n });\n });\n }\n }\n if (effect.type === \"transform\") {\n if (ctx.common.async === false) {\n const base = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (!isValid(base))\n return base;\n const result = effect.transform(base.value, checkCtx);\n if (result instanceof Promise) {\n throw new Error(`Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.`);\n }\n return { status: status.value, value: result };\n }\n else {\n return this._def.schema\n ._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx })\n .then((base) => {\n if (!isValid(base))\n return base;\n return Promise.resolve(effect.transform(base.value, checkCtx)).then((result) => ({ status: status.value, value: result }));\n });\n }\n }\n util.assertNever(effect);\n }\n}\nZodEffects.create = (schema, effect, params) => {\n return new ZodEffects({\n schema,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect,\n ...processCreateParams(params),\n });\n};\nZodEffects.createWithPreprocess = (preprocess, schema, params) => {\n return new ZodEffects({\n schema,\n effect: { type: \"preprocess\", transform: preprocess },\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n ...processCreateParams(params),\n });\n};\nclass ZodOptional extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.undefined) {\n return OK(undefined);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodOptional.create = (type, params) => {\n return new ZodOptional({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodOptional,\n ...processCreateParams(params),\n });\n};\nclass ZodNullable extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.null) {\n return OK(null);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodNullable.create = (type, params) => {\n return new ZodNullable({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodNullable,\n ...processCreateParams(params),\n });\n};\nclass ZodDefault extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n let data = ctx.data;\n if (ctx.parsedType === ZodParsedType.undefined) {\n data = this._def.defaultValue();\n }\n return this._def.innerType._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n removeDefault() {\n return this._def.innerType;\n }\n}\nZodDefault.create = (type, params) => {\n return new ZodDefault({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n defaultValue: typeof params.default === \"function\"\n ? params.default\n : () => params.default,\n ...processCreateParams(params),\n });\n};\nclass ZodCatch extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n // newCtx is used to not collect issues from inner types in ctx\n const newCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n };\n const result = this._def.innerType._parse({\n data: newCtx.data,\n path: newCtx.path,\n parent: {\n ...newCtx,\n },\n });\n if (isAsync(result)) {\n return result.then((result) => {\n return {\n status: \"valid\",\n value: result.status === \"valid\"\n ? result.value\n : this._def.catchValue({\n get error() {\n return new ZodError(newCtx.common.issues);\n },\n input: newCtx.data,\n }),\n };\n });\n }\n else {\n return {\n status: \"valid\",\n value: result.status === \"valid\"\n ? result.value\n : this._def.catchValue({\n get error() {\n return new ZodError(newCtx.common.issues);\n },\n input: newCtx.data,\n }),\n };\n }\n }\n removeCatch() {\n return this._def.innerType;\n }\n}\nZodCatch.create = (type, params) => {\n return new ZodCatch({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodCatch,\n catchValue: typeof params.catch === \"function\" ? params.catch : () => params.catch,\n ...processCreateParams(params),\n });\n};\nclass ZodNaN extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.nan) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.nan,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n}\nZodNaN.create = (params) => {\n return new ZodNaN({\n typeName: ZodFirstPartyTypeKind.ZodNaN,\n ...processCreateParams(params),\n });\n};\nconst BRAND = Symbol(\"zod_brand\");\nclass ZodBranded extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const data = ctx.data;\n return this._def.type._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n unwrap() {\n return this._def.type;\n }\n}\nclass ZodPipeline extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.common.async) {\n const handleAsync = async () => {\n const inResult = await this._def.in._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inResult.status === \"aborted\")\n return INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return DIRTY(inResult.value);\n }\n else {\n return this._def.out._parseAsync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx,\n });\n }\n };\n return handleAsync();\n }\n else {\n const inResult = this._def.in._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inResult.status === \"aborted\")\n return INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return {\n status: \"dirty\",\n value: inResult.value,\n };\n }\n else {\n return this._def.out._parseSync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n }\n static create(a, b) {\n return new ZodPipeline({\n in: a,\n out: b,\n typeName: ZodFirstPartyTypeKind.ZodPipeline,\n });\n }\n}\nclass ZodReadonly extends ZodType {\n _parse(input) {\n const result = this._def.innerType._parse(input);\n const freeze = (data) => {\n if (isValid(data)) {\n data.value = Object.freeze(data.value);\n }\n return data;\n };\n return isAsync(result)\n ? result.then((data) => freeze(data))\n : freeze(result);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodReadonly.create = (type, params) => {\n return new ZodReadonly({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodReadonly,\n ...processCreateParams(params),\n });\n};\n////////////////////////////////////////\n////////////////////////////////////////\n////////// //////////\n////////// z.custom //////////\n////////// //////////\n////////////////////////////////////////\n////////////////////////////////////////\nfunction cleanParams(params, data) {\n const p = typeof params === \"function\"\n ? params(data)\n : typeof params === \"string\"\n ? { message: params }\n : params;\n const p2 = typeof p === \"string\" ? { message: p } : p;\n return p2;\n}\nfunction custom(check, _params = {}, \n/**\n * @deprecated\n *\n * Pass `fatal` into the params object instead:\n *\n * ```ts\n * z.string().custom((val) => val.length > 5, { fatal: false })\n * ```\n *\n */\nfatal) {\n if (check)\n return ZodAny.create().superRefine((data, ctx) => {\n var _a, _b;\n const r = check(data);\n if (r instanceof Promise) {\n return r.then((r) => {\n var _a, _b;\n if (!r) {\n const params = cleanParams(_params, data);\n const _fatal = (_b = (_a = params.fatal) !== null && _a !== void 0 ? _a : fatal) !== null && _b !== void 0 ? _b : true;\n ctx.addIssue({ code: \"custom\", ...params, fatal: _fatal });\n }\n });\n }\n if (!r) {\n const params = cleanParams(_params, data);\n const _fatal = (_b = (_a = params.fatal) !== null && _a !== void 0 ? _a : fatal) !== null && _b !== void 0 ? _b : true;\n ctx.addIssue({ code: \"custom\", ...params, fatal: _fatal });\n }\n return;\n });\n return ZodAny.create();\n}\nconst late = {\n object: ZodObject.lazycreate,\n};\nvar ZodFirstPartyTypeKind;\n(function (ZodFirstPartyTypeKind) {\n ZodFirstPartyTypeKind[\"ZodString\"] = \"ZodString\";\n ZodFirstPartyTypeKind[\"ZodNumber\"] = \"ZodNumber\";\n ZodFirstPartyTypeKind[\"ZodNaN\"] = \"ZodNaN\";\n ZodFirstPartyTypeKind[\"ZodBigInt\"] = \"ZodBigInt\";\n ZodFirstPartyTypeKind[\"ZodBoolean\"] = \"ZodBoolean\";\n ZodFirstPartyTypeKind[\"ZodDate\"] = \"ZodDate\";\n ZodFirstPartyTypeKind[\"ZodSymbol\"] = \"ZodSymbol\";\n ZodFirstPartyTypeKind[\"ZodUndefined\"] = \"ZodUndefined\";\n ZodFirstPartyTypeKind[\"ZodNull\"] = \"ZodNull\";\n ZodFirstPartyTypeKind[\"ZodAny\"] = \"ZodAny\";\n ZodFirstPartyTypeKind[\"ZodUnknown\"] = \"ZodUnknown\";\n ZodFirstPartyTypeKind[\"ZodNever\"] = \"ZodNever\";\n ZodFirstPartyTypeKind[\"ZodVoid\"] = \"ZodVoid\";\n ZodFirstPartyTypeKind[\"ZodArray\"] = \"ZodArray\";\n ZodFirstPartyTypeKind[\"ZodObject\"] = \"ZodObject\";\n ZodFirstPartyTypeKind[\"ZodUnion\"] = \"ZodUnion\";\n ZodFirstPartyTypeKind[\"ZodDiscriminatedUnion\"] = \"ZodDiscriminatedUnion\";\n ZodFirstPartyTypeKind[\"ZodIntersection\"] = \"ZodIntersection\";\n ZodFirstPartyTypeKind[\"ZodTuple\"] = \"ZodTuple\";\n ZodFirstPartyTypeKind[\"ZodRecord\"] = \"ZodRecord\";\n ZodFirstPartyTypeKind[\"ZodMap\"] = \"ZodMap\";\n ZodFirstPartyTypeKind[\"ZodSet\"] = \"ZodSet\";\n ZodFirstPartyTypeKind[\"ZodFunction\"] = \"ZodFunction\";\n ZodFirstPartyTypeKind[\"ZodLazy\"] = \"ZodLazy\";\n ZodFirstPartyTypeKind[\"ZodLiteral\"] = \"ZodLiteral\";\n ZodFirstPartyTypeKind[\"ZodEnum\"] = \"ZodEnum\";\n ZodFirstPartyTypeKind[\"ZodEffects\"] = \"ZodEffects\";\n ZodFirstPartyTypeKind[\"ZodNativeEnum\"] = \"ZodNativeEnum\";\n ZodFirstPartyTypeKind[\"ZodOptional\"] = \"ZodOptional\";\n ZodFirstPartyTypeKind[\"ZodNullable\"] = \"ZodNullable\";\n ZodFirstPartyTypeKind[\"ZodDefault\"] = \"ZodDefault\";\n ZodFirstPartyTypeKind[\"ZodCatch\"] = \"ZodCatch\";\n ZodFirstPartyTypeKind[\"ZodPromise\"] = \"ZodPromise\";\n ZodFirstPartyTypeKind[\"ZodBranded\"] = \"ZodBranded\";\n ZodFirstPartyTypeKind[\"ZodPipeline\"] = \"ZodPipeline\";\n ZodFirstPartyTypeKind[\"ZodReadonly\"] = \"ZodReadonly\";\n})(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {}));\nconst instanceOfType = (\n// const instanceOfType = any>(\ncls, params = {\n message: `Input not instance of ${cls.name}`,\n}) => custom((data) => data instanceof cls, params);\nconst stringType = ZodString.create;\nconst numberType = ZodNumber.create;\nconst nanType = ZodNaN.create;\nconst bigIntType = ZodBigInt.create;\nconst booleanType = ZodBoolean.create;\nconst dateType = ZodDate.create;\nconst symbolType = ZodSymbol.create;\nconst undefinedType = ZodUndefined.create;\nconst nullType = ZodNull.create;\nconst anyType = ZodAny.create;\nconst unknownType = ZodUnknown.create;\nconst neverType = ZodNever.create;\nconst voidType = ZodVoid.create;\nconst arrayType = ZodArray.create;\nconst objectType = ZodObject.create;\nconst strictObjectType = ZodObject.strictCreate;\nconst unionType = ZodUnion.create;\nconst discriminatedUnionType = ZodDiscriminatedUnion.create;\nconst intersectionType = ZodIntersection.create;\nconst tupleType = ZodTuple.create;\nconst recordType = ZodRecord.create;\nconst mapType = ZodMap.create;\nconst setType = ZodSet.create;\nconst functionType = ZodFunction.create;\nconst lazyType = ZodLazy.create;\nconst literalType = ZodLiteral.create;\nconst enumType = ZodEnum.create;\nconst nativeEnumType = ZodNativeEnum.create;\nconst promiseType = ZodPromise.create;\nconst effectsType = ZodEffects.create;\nconst optionalType = ZodOptional.create;\nconst nullableType = ZodNullable.create;\nconst preprocessType = ZodEffects.createWithPreprocess;\nconst pipelineType = ZodPipeline.create;\nconst ostring = () => stringType().optional();\nconst onumber = () => numberType().optional();\nconst oboolean = () => booleanType().optional();\nconst coerce = {\n string: ((arg) => ZodString.create({ ...arg, coerce: true })),\n number: ((arg) => ZodNumber.create({ ...arg, coerce: true })),\n boolean: ((arg) => ZodBoolean.create({\n ...arg,\n coerce: true,\n })),\n bigint: ((arg) => ZodBigInt.create({ ...arg, coerce: true })),\n date: ((arg) => ZodDate.create({ ...arg, coerce: true })),\n};\nconst NEVER = INVALID;\n\nvar z = /*#__PURE__*/Object.freeze({\n __proto__: null,\n defaultErrorMap: errorMap,\n setErrorMap: setErrorMap,\n getErrorMap: getErrorMap,\n makeIssue: makeIssue,\n EMPTY_PATH: EMPTY_PATH,\n addIssueToContext: addIssueToContext,\n ParseStatus: ParseStatus,\n INVALID: INVALID,\n DIRTY: DIRTY,\n OK: OK,\n isAborted: isAborted,\n isDirty: isDirty,\n isValid: isValid,\n isAsync: isAsync,\n get util () { return util; },\n get objectUtil () { return objectUtil; },\n ZodParsedType: ZodParsedType,\n getParsedType: getParsedType,\n ZodType: ZodType,\n datetimeRegex: datetimeRegex,\n ZodString: ZodString,\n ZodNumber: ZodNumber,\n ZodBigInt: ZodBigInt,\n ZodBoolean: ZodBoolean,\n ZodDate: ZodDate,\n ZodSymbol: ZodSymbol,\n ZodUndefined: ZodUndefined,\n ZodNull: ZodNull,\n ZodAny: ZodAny,\n ZodUnknown: ZodUnknown,\n ZodNever: ZodNever,\n ZodVoid: ZodVoid,\n ZodArray: ZodArray,\n ZodObject: ZodObject,\n ZodUnion: ZodUnion,\n ZodDiscriminatedUnion: ZodDiscriminatedUnion,\n ZodIntersection: ZodIntersection,\n ZodTuple: ZodTuple,\n ZodRecord: ZodRecord,\n ZodMap: ZodMap,\n ZodSet: ZodSet,\n ZodFunction: ZodFunction,\n ZodLazy: ZodLazy,\n ZodLiteral: ZodLiteral,\n ZodEnum: ZodEnum,\n ZodNativeEnum: ZodNativeEnum,\n ZodPromise: ZodPromise,\n ZodEffects: ZodEffects,\n ZodTransformer: ZodEffects,\n ZodOptional: ZodOptional,\n ZodNullable: ZodNullable,\n ZodDefault: ZodDefault,\n ZodCatch: ZodCatch,\n ZodNaN: ZodNaN,\n BRAND: BRAND,\n ZodBranded: ZodBranded,\n ZodPipeline: ZodPipeline,\n ZodReadonly: ZodReadonly,\n custom: custom,\n Schema: ZodType,\n ZodSchema: ZodType,\n late: late,\n get ZodFirstPartyTypeKind () { return ZodFirstPartyTypeKind; },\n coerce: coerce,\n any: anyType,\n array: arrayType,\n bigint: bigIntType,\n boolean: booleanType,\n date: dateType,\n discriminatedUnion: discriminatedUnionType,\n effect: effectsType,\n 'enum': enumType,\n 'function': functionType,\n 'instanceof': instanceOfType,\n intersection: intersectionType,\n lazy: lazyType,\n literal: literalType,\n map: mapType,\n nan: nanType,\n nativeEnum: nativeEnumType,\n never: neverType,\n 'null': nullType,\n nullable: nullableType,\n number: numberType,\n object: objectType,\n oboolean: oboolean,\n onumber: onumber,\n optional: optionalType,\n ostring: ostring,\n pipeline: pipelineType,\n preprocess: preprocessType,\n promise: promiseType,\n record: recordType,\n set: setType,\n strictObject: strictObjectType,\n string: stringType,\n symbol: symbolType,\n transformer: effectsType,\n tuple: tupleType,\n 'undefined': undefinedType,\n union: unionType,\n unknown: unknownType,\n 'void': voidType,\n NEVER: NEVER,\n ZodIssueCode: ZodIssueCode,\n quotelessJson: quotelessJson,\n ZodError: ZodError\n});\n\nexport { BRAND, DIRTY, EMPTY_PATH, INVALID, NEVER, OK, ParseStatus, ZodType as Schema, ZodAny, ZodArray, ZodBigInt, ZodBoolean, ZodBranded, ZodCatch, ZodDate, ZodDefault, ZodDiscriminatedUnion, ZodEffects, ZodEnum, ZodError, ZodFirstPartyTypeKind, ZodFunction, ZodIntersection, ZodIssueCode, ZodLazy, ZodLiteral, ZodMap, ZodNaN, ZodNativeEnum, ZodNever, ZodNull, ZodNullable, ZodNumber, ZodObject, ZodOptional, ZodParsedType, ZodPipeline, ZodPromise, ZodReadonly, ZodRecord, ZodType as ZodSchema, ZodSet, ZodString, ZodSymbol, ZodEffects as ZodTransformer, ZodTuple, ZodType, ZodUndefined, ZodUnion, ZodUnknown, ZodVoid, addIssueToContext, anyType as any, arrayType as array, bigIntType as bigint, booleanType as boolean, coerce, custom, dateType as date, datetimeRegex, z as default, errorMap as defaultErrorMap, discriminatedUnionType as discriminatedUnion, effectsType as effect, enumType as enum, functionType as function, getErrorMap, getParsedType, instanceOfType as instanceof, intersectionType as intersection, isAborted, isAsync, isDirty, isValid, late, lazyType as lazy, literalType as literal, makeIssue, mapType as map, nanType as nan, nativeEnumType as nativeEnum, neverType as never, nullType as null, nullableType as nullable, numberType as number, objectType as object, objectUtil, oboolean, onumber, optionalType as optional, ostring, pipelineType as pipeline, preprocessType as preprocess, promiseType as promise, quotelessJson, recordType as record, setType as set, setErrorMap, strictObjectType as strictObject, stringType as string, symbolType as symbol, effectsType as transformer, tupleType as tuple, undefinedType as undefined, unionType as union, unknownType as unknown, util, voidType as void, z };\n", "export function parseAnyDef() {\n return {};\n}\n", "import { ZodFirstPartyTypeKind } from \"zod\";\nimport { setResponseValueAndErrors } from \"../errorMessages.js\";\nimport { parseDef } from \"../parseDef.js\";\nexport function parseArrayDef(def, refs) {\n const res = {\n type: \"array\",\n };\n if (def.type?._def &&\n def.type?._def?.typeName !== ZodFirstPartyTypeKind.ZodAny) {\n res.items = parseDef(def.type._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"items\"],\n });\n }\n if (def.minLength) {\n setResponseValueAndErrors(res, \"minItems\", def.minLength.value, def.minLength.message, refs);\n }\n if (def.maxLength) {\n setResponseValueAndErrors(res, \"maxItems\", def.maxLength.value, def.maxLength.message, refs);\n }\n if (def.exactLength) {\n setResponseValueAndErrors(res, \"minItems\", def.exactLength.value, def.exactLength.message, refs);\n setResponseValueAndErrors(res, \"maxItems\", def.exactLength.value, def.exactLength.message, refs);\n }\n return res;\n}\n", "import { setResponseValueAndErrors } from \"../errorMessages.js\";\nexport function parseBigintDef(def, refs) {\n const res = {\n type: \"integer\",\n format: \"int64\",\n };\n if (!def.checks)\n return res;\n for (const check of def.checks) {\n switch (check.kind) {\n case \"min\":\n if (refs.target === \"jsonSchema7\") {\n if (check.inclusive) {\n setResponseValueAndErrors(res, \"minimum\", check.value, check.message, refs);\n }\n else {\n setResponseValueAndErrors(res, \"exclusiveMinimum\", check.value, check.message, refs);\n }\n }\n else {\n if (!check.inclusive) {\n res.exclusiveMinimum = true;\n }\n setResponseValueAndErrors(res, \"minimum\", check.value, check.message, refs);\n }\n break;\n case \"max\":\n if (refs.target === \"jsonSchema7\") {\n if (check.inclusive) {\n setResponseValueAndErrors(res, \"maximum\", check.value, check.message, refs);\n }\n else {\n setResponseValueAndErrors(res, \"exclusiveMaximum\", check.value, check.message, refs);\n }\n }\n else {\n if (!check.inclusive) {\n res.exclusiveMaximum = true;\n }\n setResponseValueAndErrors(res, \"maximum\", check.value, check.message, refs);\n }\n break;\n case \"multipleOf\":\n setResponseValueAndErrors(res, \"multipleOf\", check.value, check.message, refs);\n break;\n }\n }\n return res;\n}\n", "export function parseBooleanDef() {\n return {\n type: \"boolean\",\n };\n}\n", "import { parseDef } from \"../parseDef.js\";\nexport function parseBrandedDef(_def, refs) {\n return parseDef(_def.type._def, refs);\n}\n", "import { parseDef } from \"../parseDef.js\";\nexport const parseCatchDef = (def, refs) => {\n return parseDef(def.innerType._def, refs);\n};\n", "import { setResponseValueAndErrors } from \"../errorMessages.js\";\nexport function parseDateDef(def, refs, overrideDateStrategy) {\n const strategy = overrideDateStrategy ?? refs.dateStrategy;\n if (Array.isArray(strategy)) {\n return {\n anyOf: strategy.map((item, i) => parseDateDef(def, refs, item)),\n };\n }\n switch (strategy) {\n case \"string\":\n case \"format:date-time\":\n return {\n type: \"string\",\n format: \"date-time\",\n };\n case \"format:date\":\n return {\n type: \"string\",\n format: \"date\",\n };\n case \"integer\":\n return integerDateParser(def, refs);\n }\n}\nconst integerDateParser = (def, refs) => {\n const res = {\n type: \"integer\",\n format: \"unix-time\",\n };\n if (refs.target === \"openApi3\") {\n return res;\n }\n for (const check of def.checks) {\n switch (check.kind) {\n case \"min\":\n setResponseValueAndErrors(res, \"minimum\", check.value, // This is in milliseconds\n check.message, refs);\n break;\n case \"max\":\n setResponseValueAndErrors(res, \"maximum\", check.value, // This is in milliseconds\n check.message, refs);\n break;\n }\n }\n return res;\n};\n", "import { parseDef } from \"../parseDef.js\";\nexport function parseDefaultDef(_def, refs) {\n return {\n ...parseDef(_def.innerType._def, refs),\n default: _def.defaultValue(),\n };\n}\n", "import { parseDef } from \"../parseDef.js\";\nexport function parseEffectsDef(_def, refs) {\n return refs.effectStrategy === \"input\"\n ? parseDef(_def.schema._def, refs)\n : {};\n}\n", "export function parseEnumDef(def) {\n return {\n type: \"string\",\n enum: Array.from(def.values),\n };\n}\n", "import { parseDef } from \"../parseDef.js\";\nconst isJsonSchema7AllOfType = (type) => {\n if (\"type\" in type && type.type === \"string\")\n return false;\n return \"allOf\" in type;\n};\nexport function parseIntersectionDef(def, refs) {\n const allOf = [\n parseDef(def.left._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"allOf\", \"0\"],\n }),\n parseDef(def.right._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"allOf\", \"1\"],\n }),\n ].filter((x) => !!x);\n let unevaluatedProperties = refs.target === \"jsonSchema2019-09\"\n ? { unevaluatedProperties: false }\n : undefined;\n const mergedAllOf = [];\n // If either of the schemas is an allOf, merge them into a single allOf\n allOf.forEach((schema) => {\n if (isJsonSchema7AllOfType(schema)) {\n mergedAllOf.push(...schema.allOf);\n if (schema.unevaluatedProperties === undefined) {\n // If one of the schemas has no unevaluatedProperties set,\n // the merged schema should also have no unevaluatedProperties set\n unevaluatedProperties = undefined;\n }\n }\n else {\n let nestedSchema = schema;\n if (\"additionalProperties\" in schema &&\n schema.additionalProperties === false) {\n const { additionalProperties, ...rest } = schema;\n nestedSchema = rest;\n }\n else {\n // As soon as one of the schemas has additionalProperties set not to false, we allow unevaluatedProperties\n unevaluatedProperties = undefined;\n }\n mergedAllOf.push(nestedSchema);\n }\n });\n return mergedAllOf.length\n ? {\n allOf: mergedAllOf,\n ...unevaluatedProperties,\n }\n : undefined;\n}\n", "export function parseLiteralDef(def, refs) {\n const parsedType = typeof def.value;\n if (parsedType !== \"bigint\" &&\n parsedType !== \"number\" &&\n parsedType !== \"boolean\" &&\n parsedType !== \"string\") {\n return {\n type: Array.isArray(def.value) ? \"array\" : \"object\",\n };\n }\n if (refs.target === \"openApi3\") {\n return {\n type: parsedType === \"bigint\" ? \"integer\" : parsedType,\n enum: [def.value],\n };\n }\n return {\n type: parsedType === \"bigint\" ? \"integer\" : parsedType,\n const: def.value,\n };\n}\n", "import { setResponseValueAndErrors } from \"../errorMessages.js\";\nlet emojiRegex = undefined;\n/**\n * Generated from the regular expressions found here as of 2024-05-22:\n * https://github.com/colinhacks/zod/blob/master/src/types.ts.\n *\n * Expressions with /i flag have been changed accordingly.\n */\nexport const zodPatterns = {\n /**\n * `c` was changed to `[cC]` to replicate /i flag\n */\n cuid: /^[cC][^\\s-]{8,}$/,\n cuid2: /^[0-9a-z]+$/,\n ulid: /^[0-9A-HJKMNP-TV-Z]{26}$/,\n /**\n * `a-z` was added to replicate /i flag\n */\n email: /^(?!\\.)(?!.*\\.\\.)([a-zA-Z0-9_'+\\-\\.]*)[a-zA-Z0-9_+-]@([a-zA-Z0-9][a-zA-Z0-9\\-]*\\.)+[a-zA-Z]{2,}$/,\n /**\n * Constructed a valid Unicode RegExp\n *\n * Lazily instantiate since this type of regex isn't supported\n * in all envs (e.g. React Native).\n *\n * See:\n * https://github.com/colinhacks/zod/issues/2433\n * Fix in Zod:\n * https://github.com/colinhacks/zod/commit/9340fd51e48576a75adc919bff65dbc4a5d4c99b\n */\n emoji: () => {\n if (emojiRegex === undefined) {\n emojiRegex = RegExp(\"^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$\", \"u\");\n }\n return emojiRegex;\n },\n /**\n * Unused\n */\n uuid: /^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$/,\n /**\n * Unused\n */\n ipv4: /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,\n ipv4Cidr: /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\/(3[0-2]|[12]?[0-9])$/,\n /**\n * Unused\n */\n ipv6: /^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,\n ipv6Cidr: /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,\n base64: /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,\n base64url: /^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,\n nanoid: /^[a-zA-Z0-9_-]{21}$/,\n jwt: /^[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]*$/,\n};\nexport function parseStringDef(def, refs) {\n const res = {\n type: \"string\",\n };\n if (def.checks) {\n for (const check of def.checks) {\n switch (check.kind) {\n case \"min\":\n setResponseValueAndErrors(res, \"minLength\", typeof res.minLength === \"number\"\n ? Math.max(res.minLength, check.value)\n : check.value, check.message, refs);\n break;\n case \"max\":\n setResponseValueAndErrors(res, \"maxLength\", typeof res.maxLength === \"number\"\n ? Math.min(res.maxLength, check.value)\n : check.value, check.message, refs);\n break;\n case \"email\":\n switch (refs.emailStrategy) {\n case \"format:email\":\n addFormat(res, \"email\", check.message, refs);\n break;\n case \"format:idn-email\":\n addFormat(res, \"idn-email\", check.message, refs);\n break;\n case \"pattern:zod\":\n addPattern(res, zodPatterns.email, check.message, refs);\n break;\n }\n break;\n case \"url\":\n addFormat(res, \"uri\", check.message, refs);\n break;\n case \"uuid\":\n addFormat(res, \"uuid\", check.message, refs);\n break;\n case \"regex\":\n addPattern(res, check.regex, check.message, refs);\n break;\n case \"cuid\":\n addPattern(res, zodPatterns.cuid, check.message, refs);\n break;\n case \"cuid2\":\n addPattern(res, zodPatterns.cuid2, check.message, refs);\n break;\n case \"startsWith\":\n addPattern(res, RegExp(`^${escapeLiteralCheckValue(check.value, refs)}`), check.message, refs);\n break;\n case \"endsWith\":\n addPattern(res, RegExp(`${escapeLiteralCheckValue(check.value, refs)}$`), check.message, refs);\n break;\n case \"datetime\":\n addFormat(res, \"date-time\", check.message, refs);\n break;\n case \"date\":\n addFormat(res, \"date\", check.message, refs);\n break;\n case \"time\":\n addFormat(res, \"time\", check.message, refs);\n break;\n case \"duration\":\n addFormat(res, \"duration\", check.message, refs);\n break;\n case \"length\":\n setResponseValueAndErrors(res, \"minLength\", typeof res.minLength === \"number\"\n ? Math.max(res.minLength, check.value)\n : check.value, check.message, refs);\n setResponseValueAndErrors(res, \"maxLength\", typeof res.maxLength === \"number\"\n ? Math.min(res.maxLength, check.value)\n : check.value, check.message, refs);\n break;\n case \"includes\": {\n addPattern(res, RegExp(escapeLiteralCheckValue(check.value, refs)), check.message, refs);\n break;\n }\n case \"ip\": {\n if (check.version !== \"v6\") {\n addFormat(res, \"ipv4\", check.message, refs);\n }\n if (check.version !== \"v4\") {\n addFormat(res, \"ipv6\", check.message, refs);\n }\n break;\n }\n case \"base64url\":\n addPattern(res, zodPatterns.base64url, check.message, refs);\n break;\n case \"jwt\":\n addPattern(res, zodPatterns.jwt, check.message, refs);\n break;\n case \"cidr\": {\n if (check.version !== \"v6\") {\n addPattern(res, zodPatterns.ipv4Cidr, check.message, refs);\n }\n if (check.version !== \"v4\") {\n addPattern(res, zodPatterns.ipv6Cidr, check.message, refs);\n }\n break;\n }\n case \"emoji\":\n addPattern(res, zodPatterns.emoji(), check.message, refs);\n break;\n case \"ulid\": {\n addPattern(res, zodPatterns.ulid, check.message, refs);\n break;\n }\n case \"base64\": {\n switch (refs.base64Strategy) {\n case \"format:binary\": {\n addFormat(res, \"binary\", check.message, refs);\n break;\n }\n case \"contentEncoding:base64\": {\n setResponseValueAndErrors(res, \"contentEncoding\", \"base64\", check.message, refs);\n break;\n }\n case \"pattern:zod\": {\n addPattern(res, zodPatterns.base64, check.message, refs);\n break;\n }\n }\n break;\n }\n case \"nanoid\": {\n addPattern(res, zodPatterns.nanoid, check.message, refs);\n }\n case \"toLowerCase\":\n case \"toUpperCase\":\n case \"trim\":\n break;\n default:\n /* c8 ignore next */\n ((_) => { })(check);\n }\n }\n }\n return res;\n}\nfunction escapeLiteralCheckValue(literal, refs) {\n return refs.patternStrategy === \"escape\"\n ? escapeNonAlphaNumeric(literal)\n : literal;\n}\nconst ALPHA_NUMERIC = new Set(\"ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789\");\nfunction escapeNonAlphaNumeric(source) {\n let result = \"\";\n for (let i = 0; i < source.length; i++) {\n if (!ALPHA_NUMERIC.has(source[i])) {\n result += \"\\\\\";\n }\n result += source[i];\n }\n return result;\n}\n// Adds a \"format\" keyword to the schema. If a format exists, both formats will be joined in an allOf-node, along with subsequent ones.\nfunction addFormat(schema, value, message, refs) {\n if (schema.format || schema.anyOf?.some((x) => x.format)) {\n if (!schema.anyOf) {\n schema.anyOf = [];\n }\n if (schema.format) {\n schema.anyOf.push({\n format: schema.format,\n ...(schema.errorMessage &&\n refs.errorMessages && {\n errorMessage: { format: schema.errorMessage.format },\n }),\n });\n delete schema.format;\n if (schema.errorMessage) {\n delete schema.errorMessage.format;\n if (Object.keys(schema.errorMessage).length === 0) {\n delete schema.errorMessage;\n }\n }\n }\n schema.anyOf.push({\n format: value,\n ...(message &&\n refs.errorMessages && { errorMessage: { format: message } }),\n });\n }\n else {\n setResponseValueAndErrors(schema, \"format\", value, message, refs);\n }\n}\n// Adds a \"pattern\" keyword to the schema. If a pattern exists, both patterns will be joined in an allOf-node, along with subsequent ones.\nfunction addPattern(schema, regex, message, refs) {\n if (schema.pattern || schema.allOf?.some((x) => x.pattern)) {\n if (!schema.allOf) {\n schema.allOf = [];\n }\n if (schema.pattern) {\n schema.allOf.push({\n pattern: schema.pattern,\n ...(schema.errorMessage &&\n refs.errorMessages && {\n errorMessage: { pattern: schema.errorMessage.pattern },\n }),\n });\n delete schema.pattern;\n if (schema.errorMessage) {\n delete schema.errorMessage.pattern;\n if (Object.keys(schema.errorMessage).length === 0) {\n delete schema.errorMessage;\n }\n }\n }\n schema.allOf.push({\n pattern: stringifyRegExpWithFlags(regex, refs),\n ...(message &&\n refs.errorMessages && { errorMessage: { pattern: message } }),\n });\n }\n else {\n setResponseValueAndErrors(schema, \"pattern\", stringifyRegExpWithFlags(regex, refs), message, refs);\n }\n}\n// Mutate z.string.regex() in a best attempt to accommodate for regex flags when applyRegexFlags is true\nfunction stringifyRegExpWithFlags(regex, refs) {\n if (!refs.applyRegexFlags || !regex.flags) {\n return regex.source;\n }\n // Currently handled flags\n const flags = {\n i: regex.flags.includes(\"i\"),\n m: regex.flags.includes(\"m\"),\n s: regex.flags.includes(\"s\"), // `.` matches newlines\n };\n // The general principle here is to step through each character, one at a time, applying mutations as flags require. We keep track when the current character is escaped, and when it's inside a group /like [this]/ or (also) a range like /[a-z]/. The following is fairly brittle imperative code; edit at your peril!\n const source = flags.i ? regex.source.toLowerCase() : regex.source;\n let pattern = \"\";\n let isEscaped = false;\n let inCharGroup = false;\n let inCharRange = false;\n for (let i = 0; i < source.length; i++) {\n if (isEscaped) {\n pattern += source[i];\n isEscaped = false;\n continue;\n }\n if (flags.i) {\n if (inCharGroup) {\n if (source[i].match(/[a-z]/)) {\n if (inCharRange) {\n pattern += source[i];\n pattern += `${source[i - 2]}-${source[i]}`.toUpperCase();\n inCharRange = false;\n }\n else if (source[i + 1] === \"-\" && source[i + 2]?.match(/[a-z]/)) {\n pattern += source[i];\n inCharRange = true;\n }\n else {\n pattern += `${source[i]}${source[i].toUpperCase()}`;\n }\n continue;\n }\n }\n else if (source[i].match(/[a-z]/)) {\n pattern += `[${source[i]}${source[i].toUpperCase()}]`;\n continue;\n }\n }\n if (flags.m) {\n if (source[i] === \"^\") {\n pattern += `(^|(?<=[\\r\\n]))`;\n continue;\n }\n else if (source[i] === \"$\") {\n pattern += `($|(?=[\\r\\n]))`;\n continue;\n }\n }\n if (flags.s && source[i] === \".\") {\n pattern += inCharGroup ? `${source[i]}\\r\\n` : `[${source[i]}\\r\\n]`;\n continue;\n }\n pattern += source[i];\n if (source[i] === \"\\\\\") {\n isEscaped = true;\n }\n else if (inCharGroup && source[i] === \"]\") {\n inCharGroup = false;\n }\n else if (!inCharGroup && source[i] === \"[\") {\n inCharGroup = true;\n }\n }\n try {\n new RegExp(pattern);\n }\n catch {\n console.warn(`Could not convert regex pattern at ${refs.currentPath.join(\"/\")} to a flag-independent form! Falling back to the flag-ignorant source`);\n return regex.source;\n }\n return pattern;\n}\n", "import { ZodFirstPartyTypeKind, } from \"zod\";\nimport { parseDef } from \"../parseDef.js\";\nimport { parseStringDef } from \"./string.js\";\nimport { parseBrandedDef } from \"./branded.js\";\nexport function parseRecordDef(def, refs) {\n if (refs.target === \"openAi\") {\n console.warn(\"Warning: OpenAI may not support records in schemas! Try an array of key-value pairs instead.\");\n }\n if (refs.target === \"openApi3\" &&\n def.keyType?._def.typeName === ZodFirstPartyTypeKind.ZodEnum) {\n return {\n type: \"object\",\n required: def.keyType._def.values,\n properties: def.keyType._def.values.reduce((acc, key) => ({\n ...acc,\n [key]: parseDef(def.valueType._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"properties\", key],\n }) ?? {},\n }), {}),\n additionalProperties: false,\n };\n }\n const schema = {\n type: \"object\",\n additionalProperties: parseDef(def.valueType._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"additionalProperties\"],\n }) ?? {},\n };\n if (refs.target === \"openApi3\") {\n return schema;\n }\n if (def.keyType?._def.typeName === ZodFirstPartyTypeKind.ZodString &&\n def.keyType._def.checks?.length) {\n const { type, ...keyType } = parseStringDef(def.keyType._def, refs);\n return {\n ...schema,\n propertyNames: keyType,\n };\n }\n else if (def.keyType?._def.typeName === ZodFirstPartyTypeKind.ZodEnum) {\n return {\n ...schema,\n propertyNames: {\n enum: def.keyType._def.values,\n },\n };\n }\n else if (def.keyType?._def.typeName === ZodFirstPartyTypeKind.ZodBranded &&\n def.keyType._def.type._def.typeName === ZodFirstPartyTypeKind.ZodString &&\n def.keyType._def.type._def.checks?.length) {\n const { type, ...keyType } = parseBrandedDef(def.keyType._def, refs);\n return {\n ...schema,\n propertyNames: keyType,\n };\n }\n return schema;\n}\n", "import { parseDef } from \"../parseDef.js\";\nimport { parseRecordDef } from \"./record.js\";\nexport function parseMapDef(def, refs) {\n if (refs.mapStrategy === \"record\") {\n return parseRecordDef(def, refs);\n }\n const keys = parseDef(def.keyType._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"items\", \"items\", \"0\"],\n }) || {};\n const values = parseDef(def.valueType._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"items\", \"items\", \"1\"],\n }) || {};\n return {\n type: \"array\",\n maxItems: 125,\n items: {\n type: \"array\",\n items: [keys, values],\n minItems: 2,\n maxItems: 2,\n },\n };\n}\n", "export function parseNativeEnumDef(def) {\n const object = def.values;\n const actualKeys = Object.keys(def.values).filter((key) => {\n return typeof object[object[key]] !== \"number\";\n });\n const actualValues = actualKeys.map((key) => object[key]);\n const parsedTypes = Array.from(new Set(actualValues.map((values) => typeof values)));\n return {\n type: parsedTypes.length === 1\n ? parsedTypes[0] === \"string\"\n ? \"string\"\n : \"number\"\n : [\"string\", \"number\"],\n enum: actualValues,\n };\n}\n", "export function parseNeverDef() {\n return {\n not: {},\n };\n}\n", "export function parseNullDef(refs) {\n return refs.target === \"openApi3\"\n ? {\n enum: [\"null\"],\n nullable: true,\n }\n : {\n type: \"null\",\n };\n}\n", "import { parseDef } from \"../parseDef.js\";\nexport const primitiveMappings = {\n ZodString: \"string\",\n ZodNumber: \"number\",\n ZodBigInt: \"integer\",\n ZodBoolean: \"boolean\",\n ZodNull: \"null\",\n};\nexport function parseUnionDef(def, refs) {\n if (refs.target === \"openApi3\")\n return asAnyOf(def, refs);\n const options = def.options instanceof Map ? Array.from(def.options.values()) : def.options;\n // This blocks tries to look ahead a bit to produce nicer looking schemas with type array instead of anyOf.\n if (options.every((x) => x._def.typeName in primitiveMappings &&\n (!x._def.checks || !x._def.checks.length))) {\n // all types in union are primitive and lack checks, so might as well squash into {type: [...]}\n const types = options.reduce((types, x) => {\n const type = primitiveMappings[x._def.typeName]; //Can be safely casted due to row 43\n return type && !types.includes(type) ? [...types, type] : types;\n }, []);\n return {\n type: types.length > 1 ? types : types[0],\n };\n }\n else if (options.every((x) => x._def.typeName === \"ZodLiteral\" && !x.description)) {\n // all options literals\n const types = options.reduce((acc, x) => {\n const type = typeof x._def.value;\n switch (type) {\n case \"string\":\n case \"number\":\n case \"boolean\":\n return [...acc, type];\n case \"bigint\":\n return [...acc, \"integer\"];\n case \"object\":\n if (x._def.value === null)\n return [...acc, \"null\"];\n case \"symbol\":\n case \"undefined\":\n case \"function\":\n default:\n return acc;\n }\n }, []);\n if (types.length === options.length) {\n // all the literals are primitive, as far as null can be considered primitive\n const uniqueTypes = types.filter((x, i, a) => a.indexOf(x) === i);\n return {\n type: uniqueTypes.length > 1 ? uniqueTypes : uniqueTypes[0],\n enum: options.reduce((acc, x) => {\n return acc.includes(x._def.value) ? acc : [...acc, x._def.value];\n }, []),\n };\n }\n }\n else if (options.every((x) => x._def.typeName === \"ZodEnum\")) {\n return {\n type: \"string\",\n enum: options.reduce((acc, x) => [\n ...acc,\n ...x._def.values.filter((x) => !acc.includes(x)),\n ], []),\n };\n }\n return asAnyOf(def, refs);\n}\nconst asAnyOf = (def, refs) => {\n const anyOf = (def.options instanceof Map\n ? Array.from(def.options.values())\n : def.options)\n .map((x, i) => parseDef(x._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"anyOf\", `${i}`],\n }))\n .filter((x) => !!x &&\n (!refs.strictUnions ||\n (typeof x === \"object\" && Object.keys(x).length > 0)));\n return anyOf.length ? { anyOf } : undefined;\n};\n", "import { parseDef } from \"../parseDef.js\";\nimport { primitiveMappings } from \"./union.js\";\nexport function parseNullableDef(def, refs) {\n if ([\"ZodString\", \"ZodNumber\", \"ZodBigInt\", \"ZodBoolean\", \"ZodNull\"].includes(def.innerType._def.typeName) &&\n (!def.innerType._def.checks || !def.innerType._def.checks.length)) {\n if (refs.target === \"openApi3\") {\n return {\n type: primitiveMappings[def.innerType._def.typeName],\n nullable: true,\n };\n }\n return {\n type: [\n primitiveMappings[def.innerType._def.typeName],\n \"null\",\n ],\n };\n }\n if (refs.target === \"openApi3\") {\n const base = parseDef(def.innerType._def, {\n ...refs,\n currentPath: [...refs.currentPath],\n });\n if (base && \"$ref\" in base)\n return { allOf: [base], nullable: true };\n return base && { ...base, nullable: true };\n }\n const base = parseDef(def.innerType._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"anyOf\", \"0\"],\n });\n return base && { anyOf: [base, { type: \"null\" }] };\n}\n", "import { addErrorMessage, setResponseValueAndErrors, } from \"../errorMessages.js\";\nexport function parseNumberDef(def, refs) {\n const res = {\n type: \"number\",\n };\n if (!def.checks)\n return res;\n for (const check of def.checks) {\n switch (check.kind) {\n case \"int\":\n res.type = \"integer\";\n addErrorMessage(res, \"type\", check.message, refs);\n break;\n case \"min\":\n if (refs.target === \"jsonSchema7\") {\n if (check.inclusive) {\n setResponseValueAndErrors(res, \"minimum\", check.value, check.message, refs);\n }\n else {\n setResponseValueAndErrors(res, \"exclusiveMinimum\", check.value, check.message, refs);\n }\n }\n else {\n if (!check.inclusive) {\n res.exclusiveMinimum = true;\n }\n setResponseValueAndErrors(res, \"minimum\", check.value, check.message, refs);\n }\n break;\n case \"max\":\n if (refs.target === \"jsonSchema7\") {\n if (check.inclusive) {\n setResponseValueAndErrors(res, \"maximum\", check.value, check.message, refs);\n }\n else {\n setResponseValueAndErrors(res, \"exclusiveMaximum\", check.value, check.message, refs);\n }\n }\n else {\n if (!check.inclusive) {\n res.exclusiveMaximum = true;\n }\n setResponseValueAndErrors(res, \"maximum\", check.value, check.message, refs);\n }\n break;\n case \"multipleOf\":\n setResponseValueAndErrors(res, \"multipleOf\", check.value, check.message, refs);\n break;\n }\n }\n return res;\n}\n", "import { ZodOptional } from \"zod\";\nimport { parseDef } from \"../parseDef.js\";\nfunction decideAdditionalProperties(def, refs) {\n if (refs.removeAdditionalStrategy === \"strict\") {\n return def.catchall._def.typeName === \"ZodNever\"\n ? def.unknownKeys !== \"strict\"\n : parseDef(def.catchall._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"additionalProperties\"],\n }) ?? true;\n }\n else {\n return def.catchall._def.typeName === \"ZodNever\"\n ? def.unknownKeys === \"passthrough\"\n : parseDef(def.catchall._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"additionalProperties\"],\n }) ?? true;\n }\n}\nexport function parseObjectDef(def, refs) {\n const forceOptionalIntoNullable = refs.target === \"openAi\";\n const result = {\n type: \"object\",\n ...Object.entries(def.shape()).reduce((acc, [propName, propDef]) => {\n if (propDef === undefined || propDef._def === undefined)\n return acc;\n let propOptional = propDef.isOptional();\n if (propOptional && forceOptionalIntoNullable) {\n if (propDef instanceof ZodOptional) {\n propDef = propDef._def.innerType;\n }\n if (!propDef.isNullable()) {\n propDef = propDef.nullable();\n }\n propOptional = false;\n }\n const parsedDef = parseDef(propDef._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"properties\", propName],\n propertyPath: [...refs.currentPath, \"properties\", propName],\n });\n if (parsedDef === undefined)\n return acc;\n return {\n properties: { ...acc.properties, [propName]: parsedDef },\n required: propOptional ? acc.required : [...acc.required, propName],\n };\n }, { properties: {}, required: [] }),\n additionalProperties: decideAdditionalProperties(def, refs),\n };\n if (!result.required.length)\n delete result.required;\n return result;\n}\n", "import { parseDef } from \"../parseDef.js\";\nexport const parseOptionalDef = (def, refs) => {\n if (refs.currentPath.toString() === refs.propertyPath?.toString()) {\n return parseDef(def.innerType._def, refs);\n }\n const innerSchema = parseDef(def.innerType._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"anyOf\", \"1\"],\n });\n return innerSchema\n ? {\n anyOf: [\n {\n not: {},\n },\n innerSchema,\n ],\n }\n : {};\n};\n", "import { parseDef } from \"../parseDef.js\";\nexport const parsePipelineDef = (def, refs) => {\n if (refs.pipeStrategy === \"input\") {\n return parseDef(def.in._def, refs);\n }\n else if (refs.pipeStrategy === \"output\") {\n return parseDef(def.out._def, refs);\n }\n const a = parseDef(def.in._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"allOf\", \"0\"],\n });\n const b = parseDef(def.out._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"allOf\", a ? \"1\" : \"0\"],\n });\n return {\n allOf: [a, b].filter((x) => x !== undefined),\n };\n};\n", "import { parseDef } from \"../parseDef.js\";\nexport function parsePromiseDef(def, refs) {\n return parseDef(def.type._def, refs);\n}\n", "import { setResponseValueAndErrors } from \"../errorMessages.js\";\nimport { parseDef } from \"../parseDef.js\";\nexport function parseSetDef(def, refs) {\n const items = parseDef(def.valueType._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"items\"],\n });\n const schema = {\n type: \"array\",\n uniqueItems: true,\n items,\n };\n if (def.minSize) {\n setResponseValueAndErrors(schema, \"minItems\", def.minSize.value, def.minSize.message, refs);\n }\n if (def.maxSize) {\n setResponseValueAndErrors(schema, \"maxItems\", def.maxSize.value, def.maxSize.message, refs);\n }\n return schema;\n}\n", "import { parseDef } from \"../parseDef.js\";\nexport function parseTupleDef(def, refs) {\n if (def.rest) {\n return {\n type: \"array\",\n minItems: def.items.length,\n items: def.items\n .map((x, i) => parseDef(x._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"items\", `${i}`],\n }))\n .reduce((acc, x) => (x === undefined ? acc : [...acc, x]), []),\n additionalItems: parseDef(def.rest._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"additionalItems\"],\n }),\n };\n }\n else {\n return {\n type: \"array\",\n minItems: def.items.length,\n maxItems: def.items.length,\n items: def.items\n .map((x, i) => parseDef(x._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"items\", `${i}`],\n }))\n .reduce((acc, x) => (x === undefined ? acc : [...acc, x]), []),\n };\n }\n}\n", "export function parseUndefinedDef() {\n return {\n not: {},\n };\n}\n", "export function parseUnknownDef() {\n return {};\n}\n", "import { parseDef } from \"../parseDef.js\";\nexport const parseReadonlyDef = (def, refs) => {\n return parseDef(def.innerType._def, refs);\n};\n", "import { ZodFirstPartyTypeKind } from \"zod\";\nimport { parseAnyDef } from \"./parsers/any.js\";\nimport { parseArrayDef } from \"./parsers/array.js\";\nimport { parseBigintDef } from \"./parsers/bigint.js\";\nimport { parseBooleanDef } from \"./parsers/boolean.js\";\nimport { parseBrandedDef } from \"./parsers/branded.js\";\nimport { parseCatchDef } from \"./parsers/catch.js\";\nimport { parseDateDef } from \"./parsers/date.js\";\nimport { parseDefaultDef } from \"./parsers/default.js\";\nimport { parseEffectsDef } from \"./parsers/effects.js\";\nimport { parseEnumDef } from \"./parsers/enum.js\";\nimport { parseIntersectionDef } from \"./parsers/intersection.js\";\nimport { parseLiteralDef } from \"./parsers/literal.js\";\nimport { parseMapDef } from \"./parsers/map.js\";\nimport { parseNativeEnumDef } from \"./parsers/nativeEnum.js\";\nimport { parseNeverDef } from \"./parsers/never.js\";\nimport { parseNullDef } from \"./parsers/null.js\";\nimport { parseNullableDef } from \"./parsers/nullable.js\";\nimport { parseNumberDef } from \"./parsers/number.js\";\nimport { parseObjectDef } from \"./parsers/object.js\";\nimport { parseOptionalDef } from \"./parsers/optional.js\";\nimport { parsePipelineDef } from \"./parsers/pipeline.js\";\nimport { parsePromiseDef } from \"./parsers/promise.js\";\nimport { parseRecordDef } from \"./parsers/record.js\";\nimport { parseSetDef } from \"./parsers/set.js\";\nimport { parseStringDef } from \"./parsers/string.js\";\nimport { parseTupleDef } from \"./parsers/tuple.js\";\nimport { parseUndefinedDef } from \"./parsers/undefined.js\";\nimport { parseUnionDef } from \"./parsers/union.js\";\nimport { parseUnknownDef } from \"./parsers/unknown.js\";\nimport { parseReadonlyDef } from \"./parsers/readonly.js\";\nexport const selectParser = (def, typeName, refs) => {\n switch (typeName) {\n case ZodFirstPartyTypeKind.ZodString:\n return parseStringDef(def, refs);\n case ZodFirstPartyTypeKind.ZodNumber:\n return parseNumberDef(def, refs);\n case ZodFirstPartyTypeKind.ZodObject:\n return parseObjectDef(def, refs);\n case ZodFirstPartyTypeKind.ZodBigInt:\n return parseBigintDef(def, refs);\n case ZodFirstPartyTypeKind.ZodBoolean:\n return parseBooleanDef();\n case ZodFirstPartyTypeKind.ZodDate:\n return parseDateDef(def, refs);\n case ZodFirstPartyTypeKind.ZodUndefined:\n return parseUndefinedDef();\n case ZodFirstPartyTypeKind.ZodNull:\n return parseNullDef(refs);\n case ZodFirstPartyTypeKind.ZodArray:\n return parseArrayDef(def, refs);\n case ZodFirstPartyTypeKind.ZodUnion:\n case ZodFirstPartyTypeKind.ZodDiscriminatedUnion:\n return parseUnionDef(def, refs);\n case ZodFirstPartyTypeKind.ZodIntersection:\n return parseIntersectionDef(def, refs);\n case ZodFirstPartyTypeKind.ZodTuple:\n return parseTupleDef(def, refs);\n case ZodFirstPartyTypeKind.ZodRecord:\n return parseRecordDef(def, refs);\n case ZodFirstPartyTypeKind.ZodLiteral:\n return parseLiteralDef(def, refs);\n case ZodFirstPartyTypeKind.ZodEnum:\n return parseEnumDef(def);\n case ZodFirstPartyTypeKind.ZodNativeEnum:\n return parseNativeEnumDef(def);\n case ZodFirstPartyTypeKind.ZodNullable:\n return parseNullableDef(def, refs);\n case ZodFirstPartyTypeKind.ZodOptional:\n return parseOptionalDef(def, refs);\n case ZodFirstPartyTypeKind.ZodMap:\n return parseMapDef(def, refs);\n case ZodFirstPartyTypeKind.ZodSet:\n return parseSetDef(def, refs);\n case ZodFirstPartyTypeKind.ZodLazy:\n return () => def.getter()._def;\n case ZodFirstPartyTypeKind.ZodPromise:\n return parsePromiseDef(def, refs);\n case ZodFirstPartyTypeKind.ZodNaN:\n case ZodFirstPartyTypeKind.ZodNever:\n return parseNeverDef();\n case ZodFirstPartyTypeKind.ZodEffects:\n return parseEffectsDef(def, refs);\n case ZodFirstPartyTypeKind.ZodAny:\n return parseAnyDef();\n case ZodFirstPartyTypeKind.ZodUnknown:\n return parseUnknownDef();\n case ZodFirstPartyTypeKind.ZodDefault:\n return parseDefaultDef(def, refs);\n case ZodFirstPartyTypeKind.ZodBranded:\n return parseBrandedDef(def, refs);\n case ZodFirstPartyTypeKind.ZodReadonly:\n return parseReadonlyDef(def, refs);\n case ZodFirstPartyTypeKind.ZodCatch:\n return parseCatchDef(def, refs);\n case ZodFirstPartyTypeKind.ZodPipeline:\n return parsePipelineDef(def, refs);\n case ZodFirstPartyTypeKind.ZodFunction:\n case ZodFirstPartyTypeKind.ZodVoid:\n case ZodFirstPartyTypeKind.ZodSymbol:\n return undefined;\n default:\n /* c8 ignore next */\n return ((_) => undefined)(typeName);\n }\n};\n", "import { ignoreOverride } from \"./Options.js\";\nimport { selectParser } from \"./selectParser.js\";\nexport function parseDef(def, refs, forceResolution = false) {\n const seenItem = refs.seen.get(def);\n if (refs.override) {\n const overrideResult = refs.override?.(def, refs, seenItem, forceResolution);\n if (overrideResult !== ignoreOverride) {\n return overrideResult;\n }\n }\n if (seenItem && !forceResolution) {\n const seenSchema = get$ref(seenItem, refs);\n if (seenSchema !== undefined) {\n return seenSchema;\n }\n }\n const newItem = { def, path: refs.currentPath, jsonSchema: undefined };\n refs.seen.set(def, newItem);\n const jsonSchemaOrGetter = selectParser(def, def.typeName, refs);\n // If the return was a function, then the inner definition needs to be extracted before a call to parseDef (recursive)\n const jsonSchema = typeof jsonSchemaOrGetter === \"function\"\n ? parseDef(jsonSchemaOrGetter(), refs)\n : jsonSchemaOrGetter;\n if (jsonSchema) {\n addMeta(def, refs, jsonSchema);\n }\n if (refs.postProcess) {\n const postProcessResult = refs.postProcess(jsonSchema, def, refs);\n newItem.jsonSchema = jsonSchema;\n return postProcessResult;\n }\n newItem.jsonSchema = jsonSchema;\n return jsonSchema;\n}\nconst get$ref = (item, refs) => {\n switch (refs.$refStrategy) {\n case \"root\":\n return { $ref: item.path.join(\"/\") };\n case \"relative\":\n return { $ref: getRelativePath(refs.currentPath, item.path) };\n case \"none\":\n case \"seen\": {\n if (item.path.length < refs.currentPath.length &&\n item.path.every((value, index) => refs.currentPath[index] === value)) {\n console.warn(`Recursive reference detected at ${refs.currentPath.join(\"/\")}! Defaulting to any`);\n return {};\n }\n return refs.$refStrategy === \"seen\" ? {} : undefined;\n }\n }\n};\nconst getRelativePath = (pathA, pathB) => {\n let i = 0;\n for (; i < pathA.length && i < pathB.length; i++) {\n if (pathA[i] !== pathB[i])\n break;\n }\n return [(pathA.length - i).toString(), ...pathB.slice(i)].join(\"/\");\n};\nconst addMeta = (def, refs, jsonSchema) => {\n if (def.description) {\n jsonSchema.description = def.description;\n if (refs.markdownDescription) {\n jsonSchema.markdownDescription = def.description;\n }\n }\n return jsonSchema;\n};\n", "import { parseDef } from \"./parseDef.js\";\nimport { getRefs } from \"./Refs.js\";\nconst zodToJsonSchema = (schema, options) => {\n const refs = getRefs(options);\n const definitions = typeof options === \"object\" && options.definitions\n ? Object.entries(options.definitions).reduce((acc, [name, schema]) => ({\n ...acc,\n [name]: parseDef(schema._def, {\n ...refs,\n currentPath: [...refs.basePath, refs.definitionPath, name],\n }, true) ?? {},\n }), {})\n : undefined;\n const name = typeof options === \"string\"\n ? options\n : options?.nameStrategy === \"title\"\n ? undefined\n : options?.name;\n const main = parseDef(schema._def, name === undefined\n ? refs\n : {\n ...refs,\n currentPath: [...refs.basePath, refs.definitionPath, name],\n }, false) ?? {};\n const title = typeof options === \"object\" &&\n options.name !== undefined &&\n options.nameStrategy === \"title\"\n ? options.name\n : undefined;\n if (title !== undefined) {\n main.title = title;\n }\n const combined = name === undefined\n ? definitions\n ? {\n ...main,\n [refs.definitionPath]: definitions,\n }\n : main\n : {\n $ref: [\n ...(refs.$refStrategy === \"relative\" ? [] : refs.basePath),\n refs.definitionPath,\n name,\n ].join(\"/\"),\n [refs.definitionPath]: {\n ...definitions,\n [name]: main,\n },\n };\n if (refs.target === \"jsonSchema7\") {\n combined.$schema = \"http://json-schema.org/draft-07/schema#\";\n }\n else if (refs.target === \"jsonSchema2019-09\" || refs.target === \"openAi\") {\n combined.$schema = \"https://json-schema.org/draft/2019-09/schema#\";\n }\n if (refs.target === \"openAi\" &&\n (\"anyOf\" in combined ||\n \"oneOf\" in combined ||\n \"allOf\" in combined ||\n (\"type\" in combined && Array.isArray(combined.type)))) {\n console.warn(\"Warning: OpenAI may not support schemas with unions as roots! Try wrapping it in an object property.\");\n }\n return combined;\n};\nexport { zodToJsonSchema };\n", "export * from \"./Options.js\";\nexport * from \"./Refs.js\";\nexport * from \"./errorMessages.js\";\nexport * from \"./parseDef.js\";\nexport * from \"./parseTypes.js\";\nexport * from \"./parsers/any.js\";\nexport * from \"./parsers/array.js\";\nexport * from \"./parsers/bigint.js\";\nexport * from \"./parsers/boolean.js\";\nexport * from \"./parsers/branded.js\";\nexport * from \"./parsers/catch.js\";\nexport * from \"./parsers/date.js\";\nexport * from \"./parsers/default.js\";\nexport * from \"./parsers/effects.js\";\nexport * from \"./parsers/enum.js\";\nexport * from \"./parsers/intersection.js\";\nexport * from \"./parsers/literal.js\";\nexport * from \"./parsers/map.js\";\nexport * from \"./parsers/nativeEnum.js\";\nexport * from \"./parsers/never.js\";\nexport * from \"./parsers/null.js\";\nexport * from \"./parsers/nullable.js\";\nexport * from \"./parsers/number.js\";\nexport * from \"./parsers/object.js\";\nexport * from \"./parsers/optional.js\";\nexport * from \"./parsers/pipeline.js\";\nexport * from \"./parsers/promise.js\";\nexport * from \"./parsers/readonly.js\";\nexport * from \"./parsers/record.js\";\nexport * from \"./parsers/set.js\";\nexport * from \"./parsers/string.js\";\nexport * from \"./parsers/tuple.js\";\nexport * from \"./parsers/undefined.js\";\nexport * from \"./parsers/union.js\";\nexport * from \"./parsers/unknown.js\";\nexport * from \"./selectParser.js\";\nexport * from \"./zodToJsonSchema.js\";\nimport { zodToJsonSchema } from \"./zodToJsonSchema.js\";\nexport default zodToJsonSchema;\n", "export * from './types';\n\nexport { generateId } from '@ai-sdk/provider-utils';\n\n// Export stream data utilities for custom stream implementations,\n// both on the client and server side.\n// NOTE: this is experimental / internal and may change without notice\nexport {\n formatAssistantStreamPart,\n parseAssistantStreamPart,\n} from './assistant-stream-parts';\nexport type {\n AssistantStreamPart,\n AssistantStreamString,\n} from './assistant-stream-parts';\nexport { callChatApi } from './call-chat-api';\nexport { callCompletionApi } from './call-completion-api';\nexport { formatDataStreamPart, parseDataStreamPart } from './data-stream-parts';\nexport type { DataStreamPart, DataStreamString } from './data-stream-parts';\nexport { getTextFromDataUrl } from './data-url';\nexport type { DeepPartial } from './deep-partial';\nexport { extractMaxToolInvocationStep } from './extract-max-tool-invocation-step';\nexport { fillMessageParts } from './fill-message-parts';\nexport { getMessageParts } from './get-message-parts';\nexport { isDeepEqualData } from './is-deep-equal-data';\nexport { parsePartialJson } from './parse-partial-json';\nexport { prepareAttachmentsForRequest } from './prepare-attachments-for-request';\nexport { processAssistantStream } from './process-assistant-stream';\nexport { processDataStream } from './process-data-stream';\nexport { processTextStream } from './process-text-stream';\nexport { asSchema, jsonSchema } from './schema';\nexport type { Schema } from './schema';\nexport {\n isAssistantMessageWithCompletedToolCalls,\n shouldResubmitMessages,\n} from './should-resubmit-messages';\nexport { updateToolCallResult } from './update-tool-call-result';\nexport { zodSchema } from './zod-schema';\n", "import { AssistantMessage, DataMessage, JSONValue } from './types';\n\nexport type AssistantStreamString =\n `${(typeof StreamStringPrefixes)[keyof typeof StreamStringPrefixes]}:${string}\\n`;\n\nexport interface AssistantStreamPart<\n CODE extends string,\n NAME extends string,\n TYPE,\n> {\n code: CODE;\n name: NAME;\n parse: (value: JSONValue) => { type: NAME; value: TYPE };\n}\n\nconst textStreamPart: AssistantStreamPart<'0', 'text', string> = {\n code: '0',\n name: 'text',\n parse: (value: JSONValue) => {\n if (typeof value !== 'string') {\n throw new Error('\"text\" parts expect a string value.');\n }\n return { type: 'text', value };\n },\n};\n\nconst errorStreamPart: AssistantStreamPart<'3', 'error', string> = {\n code: '3',\n name: 'error',\n parse: (value: JSONValue) => {\n if (typeof value !== 'string') {\n throw new Error('\"error\" parts expect a string value.');\n }\n return { type: 'error', value };\n },\n};\n\nconst assistantMessageStreamPart: AssistantStreamPart<\n '4',\n 'assistant_message',\n AssistantMessage\n> = {\n code: '4',\n name: 'assistant_message',\n parse: (value: JSONValue) => {\n if (\n value == null ||\n typeof value !== 'object' ||\n !('id' in value) ||\n !('role' in value) ||\n !('content' in value) ||\n typeof value.id !== 'string' ||\n typeof value.role !== 'string' ||\n value.role !== 'assistant' ||\n !Array.isArray(value.content) ||\n !value.content.every(\n item =>\n item != null &&\n typeof item === 'object' &&\n 'type' in item &&\n item.type === 'text' &&\n 'text' in item &&\n item.text != null &&\n typeof item.text === 'object' &&\n 'value' in item.text &&\n typeof item.text.value === 'string',\n )\n ) {\n throw new Error(\n '\"assistant_message\" parts expect an object with an \"id\", \"role\", and \"content\" property.',\n );\n }\n\n return {\n type: 'assistant_message',\n value: value as AssistantMessage,\n };\n },\n};\n\nconst assistantControlDataStreamPart: AssistantStreamPart<\n '5',\n 'assistant_control_data',\n {\n threadId: string;\n messageId: string;\n }\n> = {\n code: '5',\n name: 'assistant_control_data',\n parse: (value: JSONValue) => {\n if (\n value == null ||\n typeof value !== 'object' ||\n !('threadId' in value) ||\n !('messageId' in value) ||\n typeof value.threadId !== 'string' ||\n typeof value.messageId !== 'string'\n ) {\n throw new Error(\n '\"assistant_control_data\" parts expect an object with a \"threadId\" and \"messageId\" property.',\n );\n }\n\n return {\n type: 'assistant_control_data',\n value: {\n threadId: value.threadId,\n messageId: value.messageId,\n },\n };\n },\n};\n\nconst dataMessageStreamPart: AssistantStreamPart<\n '6',\n 'data_message',\n DataMessage\n> = {\n code: '6',\n name: 'data_message',\n parse: (value: JSONValue) => {\n if (\n value == null ||\n typeof value !== 'object' ||\n !('role' in value) ||\n !('data' in value) ||\n typeof value.role !== 'string' ||\n value.role !== 'data'\n ) {\n throw new Error(\n '\"data_message\" parts expect an object with a \"role\" and \"data\" property.',\n );\n }\n\n return {\n type: 'data_message',\n value: value as DataMessage,\n };\n },\n};\n\nconst assistantStreamParts = [\n textStreamPart,\n errorStreamPart,\n assistantMessageStreamPart,\n assistantControlDataStreamPart,\n dataMessageStreamPart,\n] as const;\n\ntype AssistantStreamParts =\n | typeof textStreamPart\n | typeof errorStreamPart\n | typeof assistantMessageStreamPart\n | typeof assistantControlDataStreamPart\n | typeof dataMessageStreamPart;\n\ntype AssistantStreamPartValueType = {\n [P in AssistantStreamParts as P['name']]: ReturnType['value'];\n};\n\nexport type AssistantStreamPartType =\n | ReturnType\n | ReturnType\n | ReturnType\n | ReturnType\n | ReturnType;\n\nexport const assistantStreamPartsByCode = {\n [textStreamPart.code]: textStreamPart,\n [errorStreamPart.code]: errorStreamPart,\n [assistantMessageStreamPart.code]: assistantMessageStreamPart,\n [assistantControlDataStreamPart.code]: assistantControlDataStreamPart,\n [dataMessageStreamPart.code]: dataMessageStreamPart,\n} as const;\n\nexport const StreamStringPrefixes = {\n [textStreamPart.name]: textStreamPart.code,\n [errorStreamPart.name]: errorStreamPart.code,\n [assistantMessageStreamPart.name]: assistantMessageStreamPart.code,\n [assistantControlDataStreamPart.name]: assistantControlDataStreamPart.code,\n [dataMessageStreamPart.name]: dataMessageStreamPart.code,\n} as const;\n\nexport const validCodes = assistantStreamParts.map(part => part.code);\n\nexport const parseAssistantStreamPart = (\n line: string,\n): AssistantStreamPartType => {\n const firstSeparatorIndex = line.indexOf(':');\n\n if (firstSeparatorIndex === -1) {\n throw new Error('Failed to parse stream string. No separator found.');\n }\n\n const prefix = line.slice(0, firstSeparatorIndex);\n\n if (!validCodes.includes(prefix as keyof typeof assistantStreamPartsByCode)) {\n throw new Error(`Failed to parse stream string. Invalid code ${prefix}.`);\n }\n\n const code = prefix as keyof typeof assistantStreamPartsByCode;\n\n const textValue = line.slice(firstSeparatorIndex + 1);\n const jsonValue: JSONValue = JSON.parse(textValue);\n\n return assistantStreamPartsByCode[code].parse(jsonValue);\n};\n\nexport function formatAssistantStreamPart<\n T extends keyof AssistantStreamPartValueType,\n>(type: T, value: AssistantStreamPartValueType[T]): AssistantStreamString {\n const streamPart = assistantStreamParts.find(part => part.name === type);\n\n if (!streamPart) {\n throw new Error(`Invalid stream part type: ${type}`);\n }\n\n return `${streamPart.code}:${JSON.stringify(value)}\\n`;\n}\n", "import { LanguageModelV1FinishReason } from '@ai-sdk/provider';\nimport { generateId as generateIdFunction } from '@ai-sdk/provider-utils';\nimport {\n calculateLanguageModelUsage,\n LanguageModelUsage,\n} from './duplicated/usage';\nimport { parsePartialJson } from './parse-partial-json';\nimport { processDataStream } from './process-data-stream';\nimport type {\n JSONValue,\n ReasoningUIPart,\n TextUIPart,\n ToolInvocation,\n ToolInvocationUIPart,\n UIMessage,\n UseChatOptions,\n} from './types';\n\nexport async function processChatResponse({\n stream,\n update,\n onToolCall,\n onFinish,\n generateId = generateIdFunction,\n getCurrentDate = () => new Date(),\n lastMessage,\n}: {\n stream: ReadableStream;\n update: (options: {\n message: UIMessage;\n data: JSONValue[] | undefined;\n replaceLastMessage: boolean;\n }) => void;\n onToolCall?: UseChatOptions['onToolCall'];\n onFinish?: (options: {\n message: UIMessage | undefined;\n finishReason: LanguageModelV1FinishReason;\n usage: LanguageModelUsage;\n }) => void;\n generateId?: () => string;\n getCurrentDate?: () => Date;\n lastMessage: UIMessage | undefined;\n}) {\n const replaceLastMessage = lastMessage?.role === 'assistant';\n let step = replaceLastMessage\n ? 1 +\n // find max step in existing tool invocations:\n (lastMessage.toolInvocations?.reduce((max, toolInvocation) => {\n return Math.max(max, toolInvocation.step ?? 0);\n }, 0) ?? 0)\n : 0;\n\n const message: UIMessage = replaceLastMessage\n ? structuredClone(lastMessage)\n : {\n id: generateId(),\n createdAt: getCurrentDate(),\n role: 'assistant',\n content: '',\n parts: [],\n };\n\n let currentTextPart: TextUIPart | undefined = undefined;\n let currentReasoningPart: ReasoningUIPart | undefined = undefined;\n let currentReasoningTextDetail:\n | { type: 'text'; text: string; signature?: string }\n | undefined = undefined;\n\n function updateToolInvocationPart(\n toolCallId: string,\n invocation: ToolInvocation,\n ) {\n const part = message.parts.find(\n part =>\n part.type === 'tool-invocation' &&\n part.toolInvocation.toolCallId === toolCallId,\n ) as ToolInvocationUIPart | undefined;\n\n if (part != null) {\n part.toolInvocation = invocation;\n } else {\n message.parts.push({\n type: 'tool-invocation',\n toolInvocation: invocation,\n });\n }\n }\n\n const data: JSONValue[] = [];\n\n // keep list of current message annotations for message\n let messageAnnotations: JSONValue[] | undefined = replaceLastMessage\n ? lastMessage?.annotations\n : undefined;\n\n // keep track of partial tool calls\n const partialToolCalls: Record<\n string,\n { text: string; step: number; index: number; toolName: string }\n > = {};\n\n let usage: LanguageModelUsage = {\n completionTokens: NaN,\n promptTokens: NaN,\n totalTokens: NaN,\n };\n let finishReason: LanguageModelV1FinishReason = 'unknown';\n\n function execUpdate() {\n // make a copy of the data array to ensure UI is updated (SWR)\n const copiedData = [...data];\n\n // keeps the currentMessage up to date with the latest annotations,\n // even if annotations preceded the message creation\n if (messageAnnotations?.length) {\n message.annotations = messageAnnotations;\n }\n\n const copiedMessage = {\n // deep copy the message to ensure that deep changes (msg attachments) are updated\n // with SolidJS. SolidJS uses referential integration of sub-objects to detect changes.\n ...structuredClone(message),\n // add a revision id to ensure that the message is updated with SWR. SWR uses a\n // hashing approach by default to detect changes, but it only works for shallow\n // changes. This is why we need to add a revision id to ensure that the message\n // is updated with SWR (without it, the changes get stuck in SWR and are not\n // forwarded to rendering):\n revisionId: generateId(),\n } as UIMessage;\n\n update({\n message: copiedMessage,\n data: copiedData,\n replaceLastMessage,\n });\n }\n\n await processDataStream({\n stream,\n onTextPart(value) {\n if (currentTextPart == null) {\n currentTextPart = {\n type: 'text',\n text: value,\n };\n message.parts.push(currentTextPart);\n } else {\n currentTextPart.text += value;\n }\n\n message.content += value;\n execUpdate();\n },\n onReasoningPart(value) {\n if (currentReasoningTextDetail == null) {\n currentReasoningTextDetail = { type: 'text', text: value };\n if (currentReasoningPart != null) {\n currentReasoningPart.details.push(currentReasoningTextDetail);\n }\n } else {\n currentReasoningTextDetail.text += value;\n }\n\n if (currentReasoningPart == null) {\n currentReasoningPart = {\n type: 'reasoning',\n reasoning: value,\n details: [currentReasoningTextDetail],\n };\n message.parts.push(currentReasoningPart);\n } else {\n currentReasoningPart.reasoning += value;\n }\n\n message.reasoning = (message.reasoning ?? '') + value;\n\n execUpdate();\n },\n onReasoningSignaturePart(value) {\n if (currentReasoningTextDetail != null) {\n currentReasoningTextDetail.signature = value.signature;\n }\n },\n onRedactedReasoningPart(value) {\n if (currentReasoningPart == null) {\n currentReasoningPart = {\n type: 'reasoning',\n reasoning: '',\n details: [],\n };\n message.parts.push(currentReasoningPart);\n }\n\n currentReasoningPart.details.push({\n type: 'redacted',\n data: value.data,\n });\n\n currentReasoningTextDetail = undefined;\n\n execUpdate();\n },\n onSourcePart(value) {\n message.parts.push({\n type: 'source',\n source: value,\n });\n\n execUpdate();\n },\n onToolCallStreamingStartPart(value) {\n if (message.toolInvocations == null) {\n message.toolInvocations = [];\n }\n\n // add the partial tool call to the map\n partialToolCalls[value.toolCallId] = {\n text: '',\n step,\n toolName: value.toolName,\n index: message.toolInvocations.length,\n };\n\n const invocation = {\n state: 'partial-call',\n step,\n toolCallId: value.toolCallId,\n toolName: value.toolName,\n args: undefined,\n } as const;\n\n message.toolInvocations.push(invocation);\n\n updateToolInvocationPart(value.toolCallId, invocation);\n\n execUpdate();\n },\n onToolCallDeltaPart(value) {\n const partialToolCall = partialToolCalls[value.toolCallId];\n\n partialToolCall.text += value.argsTextDelta;\n\n const { value: partialArgs } = parsePartialJson(partialToolCall.text);\n\n const invocation = {\n state: 'partial-call',\n step: partialToolCall.step,\n toolCallId: value.toolCallId,\n toolName: partialToolCall.toolName,\n args: partialArgs,\n } as const;\n\n message.toolInvocations![partialToolCall.index] = invocation;\n\n updateToolInvocationPart(value.toolCallId, invocation);\n\n execUpdate();\n },\n async onToolCallPart(value) {\n const invocation = {\n state: 'call',\n step,\n ...value,\n } as const;\n\n if (partialToolCalls[value.toolCallId] != null) {\n // change the partial tool call to a full tool call\n message.toolInvocations![partialToolCalls[value.toolCallId].index] =\n invocation;\n } else {\n if (message.toolInvocations == null) {\n message.toolInvocations = [];\n }\n\n message.toolInvocations.push(invocation);\n }\n\n updateToolInvocationPart(value.toolCallId, invocation);\n\n execUpdate();\n\n // invoke the onToolCall callback if it exists. This is blocking.\n // In the future we should make this non-blocking, which\n // requires additional state management for error handling etc.\n if (onToolCall) {\n const result = await onToolCall({ toolCall: value });\n if (result != null) {\n const invocation = {\n state: 'result',\n step,\n ...value,\n result,\n } as const;\n\n // store the result in the tool invocation\n message.toolInvocations![message.toolInvocations!.length - 1] =\n invocation;\n\n updateToolInvocationPart(value.toolCallId, invocation);\n\n execUpdate();\n }\n }\n },\n onToolResultPart(value) {\n const toolInvocations = message.toolInvocations;\n\n if (toolInvocations == null) {\n throw new Error('tool_result must be preceded by a tool_call');\n }\n\n // find if there is any tool invocation with the same toolCallId\n // and replace it with the result\n const toolInvocationIndex = toolInvocations.findIndex(\n invocation => invocation.toolCallId === value.toolCallId,\n );\n\n if (toolInvocationIndex === -1) {\n throw new Error(\n 'tool_result must be preceded by a tool_call with the same toolCallId',\n );\n }\n\n const invocation = {\n ...toolInvocations[toolInvocationIndex],\n state: 'result' as const,\n ...value,\n } as const;\n\n toolInvocations[toolInvocationIndex] = invocation;\n\n updateToolInvocationPart(value.toolCallId, invocation);\n\n execUpdate();\n },\n onDataPart(value) {\n data.push(...value);\n execUpdate();\n },\n onMessageAnnotationsPart(value) {\n if (messageAnnotations == null) {\n messageAnnotations = [...value];\n } else {\n messageAnnotations.push(...value);\n }\n\n execUpdate();\n },\n onFinishStepPart(value) {\n step += 1;\n\n // reset the current text and reasoning parts\n currentTextPart = value.isContinued ? currentTextPart : undefined;\n currentReasoningPart = undefined;\n currentReasoningTextDetail = undefined;\n },\n onStartStepPart(value) {\n // keep message id stable when we are updating an existing message:\n if (!replaceLastMessage) {\n message.id = value.messageId;\n }\n },\n onFinishMessagePart(value) {\n finishReason = value.finishReason;\n if (value.usage != null) {\n usage = calculateLanguageModelUsage(value.usage);\n }\n },\n onErrorPart(error) {\n throw new Error(error);\n },\n });\n\n onFinish?.({ message, finishReason, usage });\n}\n", "/**\nRepresents the number of tokens used in a prompt and completion.\n */\nexport type LanguageModelUsage = {\n /**\nThe number of tokens used in the prompt.\n */\n promptTokens: number;\n\n /**\nThe number of tokens used in the completion.\n */\n completionTokens: number;\n\n /**\nThe total number of tokens used (promptTokens + completionTokens).\n */\n totalTokens: number;\n};\n\n/**\nRepresents the number of tokens used in an embedding.\n */\nexport type EmbeddingModelUsage = {\n /**\nThe number of tokens used in the embedding.\n */\n tokens: number;\n};\n\nexport function calculateLanguageModelUsage({\n promptTokens,\n completionTokens,\n}: {\n promptTokens: number;\n completionTokens: number;\n}): LanguageModelUsage {\n return {\n promptTokens,\n completionTokens,\n totalTokens: promptTokens + completionTokens,\n };\n}\n", "import { JSONValue } from '@ai-sdk/provider';\nimport { safeParseJSON } from '@ai-sdk/provider-utils';\nimport { fixJson } from './fix-json';\n\nexport function parsePartialJson(jsonText: string | undefined): {\n value: JSONValue | undefined;\n state:\n | 'undefined-input'\n | 'successful-parse'\n | 'repaired-parse'\n | 'failed-parse';\n} {\n if (jsonText === undefined) {\n return { value: undefined, state: 'undefined-input' };\n }\n\n let result = safeParseJSON({ text: jsonText });\n\n if (result.success) {\n return { value: result.value, state: 'successful-parse' };\n }\n\n result = safeParseJSON({ text: fixJson(jsonText) });\n\n if (result.success) {\n return { value: result.value, state: 'repaired-parse' };\n }\n\n return { value: undefined, state: 'failed-parse' };\n}\n", "type State =\n | 'ROOT'\n | 'FINISH'\n | 'INSIDE_STRING'\n | 'INSIDE_STRING_ESCAPE'\n | 'INSIDE_LITERAL'\n | 'INSIDE_NUMBER'\n | 'INSIDE_OBJECT_START'\n | 'INSIDE_OBJECT_KEY'\n | 'INSIDE_OBJECT_AFTER_KEY'\n | 'INSIDE_OBJECT_BEFORE_VALUE'\n | 'INSIDE_OBJECT_AFTER_VALUE'\n | 'INSIDE_OBJECT_AFTER_COMMA'\n | 'INSIDE_ARRAY_START'\n | 'INSIDE_ARRAY_AFTER_VALUE'\n | 'INSIDE_ARRAY_AFTER_COMMA';\n\n// Implemented as a scanner with additional fixing\n// that performs a single linear time scan pass over the partial JSON.\n//\n// The states should ideally match relevant states from the JSON spec:\n// https://www.json.org/json-en.html\n//\n// Please note that invalid JSON is not considered/covered, because it\n// is assumed that the resulting JSON will be processed by a standard\n// JSON parser that will detect any invalid JSON.\nexport function fixJson(input: string): string {\n const stack: State[] = ['ROOT'];\n let lastValidIndex = -1;\n let literalStart: number | null = null;\n\n function processValueStart(char: string, i: number, swapState: State) {\n {\n switch (char) {\n case '\"': {\n lastValidIndex = i;\n stack.pop();\n stack.push(swapState);\n stack.push('INSIDE_STRING');\n break;\n }\n\n case 'f':\n case 't':\n case 'n': {\n lastValidIndex = i;\n literalStart = i;\n stack.pop();\n stack.push(swapState);\n stack.push('INSIDE_LITERAL');\n break;\n }\n\n case '-': {\n stack.pop();\n stack.push(swapState);\n stack.push('INSIDE_NUMBER');\n break;\n }\n case '0':\n case '1':\n case '2':\n case '3':\n case '4':\n case '5':\n case '6':\n case '7':\n case '8':\n case '9': {\n lastValidIndex = i;\n stack.pop();\n stack.push(swapState);\n stack.push('INSIDE_NUMBER');\n break;\n }\n\n case '{': {\n lastValidIndex = i;\n stack.pop();\n stack.push(swapState);\n stack.push('INSIDE_OBJECT_START');\n break;\n }\n\n case '[': {\n lastValidIndex = i;\n stack.pop();\n stack.push(swapState);\n stack.push('INSIDE_ARRAY_START');\n break;\n }\n }\n }\n }\n\n function processAfterObjectValue(char: string, i: number) {\n switch (char) {\n case ',': {\n stack.pop();\n stack.push('INSIDE_OBJECT_AFTER_COMMA');\n break;\n }\n case '}': {\n lastValidIndex = i;\n stack.pop();\n break;\n }\n }\n }\n\n function processAfterArrayValue(char: string, i: number) {\n switch (char) {\n case ',': {\n stack.pop();\n stack.push('INSIDE_ARRAY_AFTER_COMMA');\n break;\n }\n case ']': {\n lastValidIndex = i;\n stack.pop();\n break;\n }\n }\n }\n\n for (let i = 0; i < input.length; i++) {\n const char = input[i];\n const currentState = stack[stack.length - 1];\n\n switch (currentState) {\n case 'ROOT':\n processValueStart(char, i, 'FINISH');\n break;\n\n case 'INSIDE_OBJECT_START': {\n switch (char) {\n case '\"': {\n stack.pop();\n stack.push('INSIDE_OBJECT_KEY');\n break;\n }\n case '}': {\n lastValidIndex = i;\n stack.pop();\n break;\n }\n }\n break;\n }\n\n case 'INSIDE_OBJECT_AFTER_COMMA': {\n switch (char) {\n case '\"': {\n stack.pop();\n stack.push('INSIDE_OBJECT_KEY');\n break;\n }\n }\n break;\n }\n\n case 'INSIDE_OBJECT_KEY': {\n switch (char) {\n case '\"': {\n stack.pop();\n stack.push('INSIDE_OBJECT_AFTER_KEY');\n break;\n }\n }\n break;\n }\n\n case 'INSIDE_OBJECT_AFTER_KEY': {\n switch (char) {\n case ':': {\n stack.pop();\n stack.push('INSIDE_OBJECT_BEFORE_VALUE');\n\n break;\n }\n }\n break;\n }\n\n case 'INSIDE_OBJECT_BEFORE_VALUE': {\n processValueStart(char, i, 'INSIDE_OBJECT_AFTER_VALUE');\n break;\n }\n\n case 'INSIDE_OBJECT_AFTER_VALUE': {\n processAfterObjectValue(char, i);\n break;\n }\n\n case 'INSIDE_STRING': {\n switch (char) {\n case '\"': {\n stack.pop();\n lastValidIndex = i;\n break;\n }\n\n case '\\\\': {\n stack.push('INSIDE_STRING_ESCAPE');\n break;\n }\n\n default: {\n lastValidIndex = i;\n }\n }\n\n break;\n }\n\n case 'INSIDE_ARRAY_START': {\n switch (char) {\n case ']': {\n lastValidIndex = i;\n stack.pop();\n break;\n }\n\n default: {\n lastValidIndex = i;\n processValueStart(char, i, 'INSIDE_ARRAY_AFTER_VALUE');\n break;\n }\n }\n break;\n }\n\n case 'INSIDE_ARRAY_AFTER_VALUE': {\n switch (char) {\n case ',': {\n stack.pop();\n stack.push('INSIDE_ARRAY_AFTER_COMMA');\n break;\n }\n\n case ']': {\n lastValidIndex = i;\n stack.pop();\n break;\n }\n\n default: {\n lastValidIndex = i;\n break;\n }\n }\n\n break;\n }\n\n case 'INSIDE_ARRAY_AFTER_COMMA': {\n processValueStart(char, i, 'INSIDE_ARRAY_AFTER_VALUE');\n break;\n }\n\n case 'INSIDE_STRING_ESCAPE': {\n stack.pop();\n lastValidIndex = i;\n\n break;\n }\n\n case 'INSIDE_NUMBER': {\n switch (char) {\n case '0':\n case '1':\n case '2':\n case '3':\n case '4':\n case '5':\n case '6':\n case '7':\n case '8':\n case '9': {\n lastValidIndex = i;\n break;\n }\n\n case 'e':\n case 'E':\n case '-':\n case '.': {\n break;\n }\n\n case ',': {\n stack.pop();\n\n if (stack[stack.length - 1] === 'INSIDE_ARRAY_AFTER_VALUE') {\n processAfterArrayValue(char, i);\n }\n\n if (stack[stack.length - 1] === 'INSIDE_OBJECT_AFTER_VALUE') {\n processAfterObjectValue(char, i);\n }\n\n break;\n }\n\n case '}': {\n stack.pop();\n\n if (stack[stack.length - 1] === 'INSIDE_OBJECT_AFTER_VALUE') {\n processAfterObjectValue(char, i);\n }\n\n break;\n }\n\n case ']': {\n stack.pop();\n\n if (stack[stack.length - 1] === 'INSIDE_ARRAY_AFTER_VALUE') {\n processAfterArrayValue(char, i);\n }\n\n break;\n }\n\n default: {\n stack.pop();\n break;\n }\n }\n\n break;\n }\n\n case 'INSIDE_LITERAL': {\n const partialLiteral = input.substring(literalStart!, i + 1);\n\n if (\n !'false'.startsWith(partialLiteral) &&\n !'true'.startsWith(partialLiteral) &&\n !'null'.startsWith(partialLiteral)\n ) {\n stack.pop();\n\n if (stack[stack.length - 1] === 'INSIDE_OBJECT_AFTER_VALUE') {\n processAfterObjectValue(char, i);\n } else if (stack[stack.length - 1] === 'INSIDE_ARRAY_AFTER_VALUE') {\n processAfterArrayValue(char, i);\n }\n } else {\n lastValidIndex = i;\n }\n\n break;\n }\n }\n }\n\n let result = input.slice(0, lastValidIndex + 1);\n\n for (let i = stack.length - 1; i >= 0; i--) {\n const state = stack[i];\n\n switch (state) {\n case 'INSIDE_STRING': {\n result += '\"';\n break;\n }\n\n case 'INSIDE_OBJECT_KEY':\n case 'INSIDE_OBJECT_AFTER_KEY':\n case 'INSIDE_OBJECT_AFTER_COMMA':\n case 'INSIDE_OBJECT_START':\n case 'INSIDE_OBJECT_BEFORE_VALUE':\n case 'INSIDE_OBJECT_AFTER_VALUE': {\n result += '}';\n break;\n }\n\n case 'INSIDE_ARRAY_START':\n case 'INSIDE_ARRAY_AFTER_COMMA':\n case 'INSIDE_ARRAY_AFTER_VALUE': {\n result += ']';\n break;\n }\n\n case 'INSIDE_LITERAL': {\n const partialLiteral = input.substring(literalStart!, input.length);\n\n if ('true'.startsWith(partialLiteral)) {\n result += 'true'.slice(partialLiteral.length);\n } else if ('false'.startsWith(partialLiteral)) {\n result += 'false'.slice(partialLiteral.length);\n } else if ('null'.startsWith(partialLiteral)) {\n result += 'null'.slice(partialLiteral.length);\n }\n }\n }\n }\n\n return result;\n}\n", "import {\n LanguageModelV1FinishReason,\n LanguageModelV1Source,\n} from '@ai-sdk/provider';\nimport { ToolCall, ToolResult } from '@ai-sdk/provider-utils';\nimport { JSONValue } from './types';\n\nexport type DataStreamString =\n `${(typeof DataStreamStringPrefixes)[keyof typeof DataStreamStringPrefixes]}:${string}\\n`;\n\nexport interface DataStreamPart<\n CODE extends string,\n NAME extends string,\n TYPE,\n> {\n code: CODE;\n name: NAME;\n parse: (value: JSONValue) => { type: NAME; value: TYPE };\n}\n\nconst textStreamPart: DataStreamPart<'0', 'text', string> = {\n code: '0',\n name: 'text',\n parse: (value: JSONValue) => {\n if (typeof value !== 'string') {\n throw new Error('\"text\" parts expect a string value.');\n }\n return { type: 'text', value };\n },\n};\n\nconst dataStreamPart: DataStreamPart<'2', 'data', Array> = {\n code: '2',\n name: 'data',\n parse: (value: JSONValue) => {\n if (!Array.isArray(value)) {\n throw new Error('\"data\" parts expect an array value.');\n }\n\n return { type: 'data', value };\n },\n};\n\nconst errorStreamPart: DataStreamPart<'3', 'error', string> = {\n code: '3',\n name: 'error',\n parse: (value: JSONValue) => {\n if (typeof value !== 'string') {\n throw new Error('\"error\" parts expect a string value.');\n }\n return { type: 'error', value };\n },\n};\n\nconst messageAnnotationsStreamPart: DataStreamPart<\n '8',\n 'message_annotations',\n Array\n> = {\n code: '8',\n name: 'message_annotations',\n parse: (value: JSONValue) => {\n if (!Array.isArray(value)) {\n throw new Error('\"message_annotations\" parts expect an array value.');\n }\n\n return { type: 'message_annotations', value };\n },\n};\n\nconst toolCallStreamPart: DataStreamPart<\n '9',\n 'tool_call',\n ToolCall\n> = {\n code: '9',\n name: 'tool_call',\n parse: (value: JSONValue) => {\n if (\n value == null ||\n typeof value !== 'object' ||\n !('toolCallId' in value) ||\n typeof value.toolCallId !== 'string' ||\n !('toolName' in value) ||\n typeof value.toolName !== 'string' ||\n !('args' in value) ||\n typeof value.args !== 'object'\n ) {\n throw new Error(\n '\"tool_call\" parts expect an object with a \"toolCallId\", \"toolName\", and \"args\" property.',\n );\n }\n\n return {\n type: 'tool_call',\n value: value as unknown as ToolCall,\n };\n },\n};\n\nconst toolResultStreamPart: DataStreamPart<\n 'a',\n 'tool_result',\n Omit, 'args' | 'toolName'>\n> = {\n code: 'a',\n name: 'tool_result',\n parse: (value: JSONValue) => {\n if (\n value == null ||\n typeof value !== 'object' ||\n !('toolCallId' in value) ||\n typeof value.toolCallId !== 'string' ||\n !('result' in value)\n ) {\n throw new Error(\n '\"tool_result\" parts expect an object with a \"toolCallId\" and a \"result\" property.',\n );\n }\n\n return {\n type: 'tool_result',\n value: value as unknown as Omit<\n ToolResult,\n 'args' | 'toolName'\n >,\n };\n },\n};\n\nconst toolCallStreamingStartStreamPart: DataStreamPart<\n 'b',\n 'tool_call_streaming_start',\n { toolCallId: string; toolName: string }\n> = {\n code: 'b',\n name: 'tool_call_streaming_start',\n parse: (value: JSONValue) => {\n if (\n value == null ||\n typeof value !== 'object' ||\n !('toolCallId' in value) ||\n typeof value.toolCallId !== 'string' ||\n !('toolName' in value) ||\n typeof value.toolName !== 'string'\n ) {\n throw new Error(\n '\"tool_call_streaming_start\" parts expect an object with a \"toolCallId\" and \"toolName\" property.',\n );\n }\n\n return {\n type: 'tool_call_streaming_start',\n value: value as unknown as { toolCallId: string; toolName: string },\n };\n },\n};\n\nconst toolCallDeltaStreamPart: DataStreamPart<\n 'c',\n 'tool_call_delta',\n { toolCallId: string; argsTextDelta: string }\n> = {\n code: 'c',\n name: 'tool_call_delta',\n parse: (value: JSONValue) => {\n if (\n value == null ||\n typeof value !== 'object' ||\n !('toolCallId' in value) ||\n typeof value.toolCallId !== 'string' ||\n !('argsTextDelta' in value) ||\n typeof value.argsTextDelta !== 'string'\n ) {\n throw new Error(\n '\"tool_call_delta\" parts expect an object with a \"toolCallId\" and \"argsTextDelta\" property.',\n );\n }\n\n return {\n type: 'tool_call_delta',\n value: value as unknown as {\n toolCallId: string;\n argsTextDelta: string;\n },\n };\n },\n};\n\nconst finishMessageStreamPart: DataStreamPart<\n 'd',\n 'finish_message',\n {\n finishReason: LanguageModelV1FinishReason;\n usage?: {\n promptTokens: number;\n completionTokens: number;\n };\n }\n> = {\n code: 'd',\n name: 'finish_message',\n parse: (value: JSONValue) => {\n if (\n value == null ||\n typeof value !== 'object' ||\n !('finishReason' in value) ||\n typeof value.finishReason !== 'string'\n ) {\n throw new Error(\n '\"finish_message\" parts expect an object with a \"finishReason\" property.',\n );\n }\n\n const result: {\n finishReason: LanguageModelV1FinishReason;\n usage?: {\n promptTokens: number;\n completionTokens: number;\n };\n } = {\n finishReason: value.finishReason as LanguageModelV1FinishReason,\n };\n\n if (\n 'usage' in value &&\n value.usage != null &&\n typeof value.usage === 'object' &&\n 'promptTokens' in value.usage &&\n 'completionTokens' in value.usage\n ) {\n result.usage = {\n promptTokens:\n typeof value.usage.promptTokens === 'number'\n ? value.usage.promptTokens\n : Number.NaN,\n completionTokens:\n typeof value.usage.completionTokens === 'number'\n ? value.usage.completionTokens\n : Number.NaN,\n };\n }\n\n return {\n type: 'finish_message',\n value: result,\n };\n },\n};\n\nconst finishStepStreamPart: DataStreamPart<\n 'e',\n 'finish_step',\n {\n isContinued: boolean;\n finishReason: LanguageModelV1FinishReason;\n usage?: {\n promptTokens: number;\n completionTokens: number;\n };\n }\n> = {\n code: 'e',\n name: 'finish_step',\n parse: (value: JSONValue) => {\n if (\n value == null ||\n typeof value !== 'object' ||\n !('finishReason' in value) ||\n typeof value.finishReason !== 'string'\n ) {\n throw new Error(\n '\"finish_step\" parts expect an object with a \"finishReason\" property.',\n );\n }\n\n const result: {\n isContinued: boolean;\n finishReason: LanguageModelV1FinishReason;\n usage?: {\n promptTokens: number;\n completionTokens: number;\n };\n } = {\n finishReason: value.finishReason as LanguageModelV1FinishReason,\n isContinued: false,\n };\n\n if (\n 'usage' in value &&\n value.usage != null &&\n typeof value.usage === 'object' &&\n 'promptTokens' in value.usage &&\n 'completionTokens' in value.usage\n ) {\n result.usage = {\n promptTokens:\n typeof value.usage.promptTokens === 'number'\n ? value.usage.promptTokens\n : Number.NaN,\n completionTokens:\n typeof value.usage.completionTokens === 'number'\n ? value.usage.completionTokens\n : Number.NaN,\n };\n }\n\n if ('isContinued' in value && typeof value.isContinued === 'boolean') {\n result.isContinued = value.isContinued;\n }\n\n return {\n type: 'finish_step',\n value: result,\n };\n },\n};\n\nconst startStepStreamPart: DataStreamPart<\n 'f',\n 'start_step',\n {\n messageId: string;\n }\n> = {\n code: 'f',\n name: 'start_step',\n parse: (value: JSONValue) => {\n if (\n value == null ||\n typeof value !== 'object' ||\n !('messageId' in value) ||\n typeof value.messageId !== 'string'\n ) {\n throw new Error(\n '\"start_step\" parts expect an object with an \"id\" property.',\n );\n }\n\n return {\n type: 'start_step',\n value: {\n messageId: value.messageId,\n },\n };\n },\n};\n\nconst reasoningStreamPart: DataStreamPart<'g', 'reasoning', string> = {\n code: 'g',\n name: 'reasoning',\n parse: (value: JSONValue) => {\n if (typeof value !== 'string') {\n throw new Error('\"reasoning\" parts expect a string value.');\n }\n return { type: 'reasoning', value };\n },\n};\n\nconst sourcePart: DataStreamPart<'h', 'source', LanguageModelV1Source> = {\n code: 'h',\n name: 'source',\n parse: (value: JSONValue) => {\n if (value == null || typeof value !== 'object') {\n throw new Error('\"source\" parts expect a Source object.');\n }\n\n return {\n type: 'source',\n value: value as LanguageModelV1Source,\n };\n },\n};\n\nconst redactedReasoningStreamPart: DataStreamPart<\n 'i',\n 'redacted_reasoning',\n { data: string }\n> = {\n code: 'i',\n name: 'redacted_reasoning',\n parse: (value: JSONValue) => {\n if (\n value == null ||\n typeof value !== 'object' ||\n !('data' in value) ||\n typeof value.data !== 'string'\n ) {\n throw new Error(\n '\"redacted_reasoning\" parts expect an object with a \"data\" property.',\n );\n }\n return { type: 'redacted_reasoning', value: { data: value.data } };\n },\n};\n\nconst reasoningSignatureStreamPart: DataStreamPart<\n 'j',\n 'reasoning_signature',\n { signature: string }\n> = {\n code: 'j',\n name: 'reasoning_signature',\n parse: (value: JSONValue) => {\n if (\n value == null ||\n typeof value !== 'object' ||\n !('signature' in value) ||\n typeof value.signature !== 'string'\n ) {\n throw new Error(\n '\"reasoning_signature\" parts expect an object with a \"signature\" property.',\n );\n }\n return {\n type: 'reasoning_signature',\n value: { signature: value.signature },\n };\n },\n};\n\nconst dataStreamParts = [\n textStreamPart,\n dataStreamPart,\n errorStreamPart,\n messageAnnotationsStreamPart,\n toolCallStreamPart,\n toolResultStreamPart,\n toolCallStreamingStartStreamPart,\n toolCallDeltaStreamPart,\n finishMessageStreamPart,\n finishStepStreamPart,\n startStepStreamPart,\n reasoningStreamPart,\n sourcePart,\n redactedReasoningStreamPart,\n reasoningSignatureStreamPart,\n] as const;\n\nexport const dataStreamPartsByCode = Object.fromEntries(\n dataStreamParts.map(part => [part.code, part]),\n) as {\n [K in (typeof dataStreamParts)[number]['code']]: (typeof dataStreamParts)[number];\n};\n\ntype DataStreamParts = (typeof dataStreamParts)[number];\n\n/**\n * Maps the type of a stream part to its value type.\n */\ntype DataStreamPartValueType = {\n [P in DataStreamParts as P['name']]: ReturnType['value'];\n};\n\nexport type DataStreamPartType = ReturnType;\n\n/**\n * The map of prefixes for data in the stream\n *\n * - 0: Text from the LLM response\n * - 1: (OpenAI) function_call responses\n * - 2: custom JSON added by the user using `Data`\n * - 6: (OpenAI) tool_call responses\n *\n * Example:\n * ```\n * 0:Vercel\n * 0:'s\n * 0: AI\n * 0: AI\n * 0: SDK\n * 0: is great\n * 0:!\n * 2: { \"someJson\": \"value\" }\n * 1: {\"function_call\": {\"name\": \"get_current_weather\", \"arguments\": \"{\\\\n\\\\\"location\\\\\": \\\\\"Charlottesville, Virginia\\\\\",\\\\n\\\\\"format\\\\\": \\\\\"celsius\\\\\"\\\\n}\"}}\n * 6: {\"tool_call\": {\"id\": \"tool_0\", \"type\": \"function\", \"function\": {\"name\": \"get_current_weather\", \"arguments\": \"{\\\\n\\\\\"location\\\\\": \\\\\"Charlottesville, Virginia\\\\\",\\\\n\\\\\"format\\\\\": \\\\\"celsius\\\\\"\\\\n}\"}}}\n *```\n */\nexport const DataStreamStringPrefixes = Object.fromEntries(\n dataStreamParts.map(part => [part.name, part.code]),\n) as {\n [K in DataStreamParts['name']]: (typeof dataStreamParts)[number]['code'];\n};\n\nexport const validCodes = dataStreamParts.map(part => part.code);\n\n/**\nParses a stream part from a string.\n\n@param line The string to parse.\n@returns The parsed stream part.\n@throws An error if the string cannot be parsed.\n */\nexport const parseDataStreamPart = (line: string): DataStreamPartType => {\n const firstSeparatorIndex = line.indexOf(':');\n\n if (firstSeparatorIndex === -1) {\n throw new Error('Failed to parse stream string. No separator found.');\n }\n\n const prefix = line.slice(0, firstSeparatorIndex);\n\n if (!validCodes.includes(prefix as keyof typeof dataStreamPartsByCode)) {\n throw new Error(`Failed to parse stream string. Invalid code ${prefix}.`);\n }\n\n const code = prefix as keyof typeof dataStreamPartsByCode;\n\n const textValue = line.slice(firstSeparatorIndex + 1);\n const jsonValue: JSONValue = JSON.parse(textValue);\n\n return dataStreamPartsByCode[code].parse(jsonValue);\n};\n\n/**\nPrepends a string with a prefix from the `StreamChunkPrefixes`, JSON-ifies it,\nand appends a new line.\n\nIt ensures type-safety for the part type and value.\n */\nexport function formatDataStreamPart(\n type: T,\n value: DataStreamPartValueType[T],\n): DataStreamString {\n const streamPart = dataStreamParts.find(part => part.name === type);\n\n if (!streamPart) {\n throw new Error(`Invalid stream part type: ${type}`);\n }\n\n return `${streamPart.code}:${JSON.stringify(value)}\\n`;\n}\n", "import { DataStreamPartType, parseDataStreamPart } from './data-stream-parts';\n\nconst NEWLINE = '\\n'.charCodeAt(0);\n\n// concatenates all the chunks into a single Uint8Array\nfunction concatChunks(chunks: Uint8Array[], totalLength: number) {\n const concatenatedChunks = new Uint8Array(totalLength);\n\n let offset = 0;\n for (const chunk of chunks) {\n concatenatedChunks.set(chunk, offset);\n offset += chunk.length;\n }\n chunks.length = 0;\n\n return concatenatedChunks;\n}\n\nexport async function processDataStream({\n stream,\n onTextPart,\n onReasoningPart,\n onReasoningSignaturePart,\n onRedactedReasoningPart,\n onSourcePart,\n onDataPart,\n onErrorPart,\n onToolCallStreamingStartPart,\n onToolCallDeltaPart,\n onToolCallPart,\n onToolResultPart,\n onMessageAnnotationsPart,\n onFinishMessagePart,\n onFinishStepPart,\n onStartStepPart,\n}: {\n stream: ReadableStream;\n onTextPart?: (\n streamPart: (DataStreamPartType & { type: 'text' })['value'],\n ) => Promise | void;\n onReasoningPart?: (\n streamPart: (DataStreamPartType & { type: 'reasoning' })['value'],\n ) => Promise | void;\n onReasoningSignaturePart?: (\n streamPart: (DataStreamPartType & { type: 'reasoning_signature' })['value'],\n ) => Promise | void;\n onRedactedReasoningPart?: (\n streamPart: (DataStreamPartType & { type: 'redacted_reasoning' })['value'],\n ) => Promise | void;\n onSourcePart?: (\n streamPart: (DataStreamPartType & { type: 'source' })['value'],\n ) => Promise | void;\n onDataPart?: (\n streamPart: (DataStreamPartType & { type: 'data' })['value'],\n ) => Promise | void;\n onErrorPart?: (\n streamPart: (DataStreamPartType & { type: 'error' })['value'],\n ) => Promise | void;\n onToolCallStreamingStartPart?: (\n streamPart: (DataStreamPartType & {\n type: 'tool_call_streaming_start';\n })['value'],\n ) => Promise | void;\n onToolCallDeltaPart?: (\n streamPart: (DataStreamPartType & { type: 'tool_call_delta' })['value'],\n ) => Promise | void;\n onToolCallPart?: (\n streamPart: (DataStreamPartType & { type: 'tool_call' })['value'],\n ) => Promise | void;\n onToolResultPart?: (\n streamPart: (DataStreamPartType & { type: 'tool_result' })['value'],\n ) => Promise | void;\n onMessageAnnotationsPart?: (\n streamPart: (DataStreamPartType & {\n type: 'message_annotations';\n })['value'],\n ) => Promise | void;\n onFinishMessagePart?: (\n streamPart: (DataStreamPartType & { type: 'finish_message' })['value'],\n ) => Promise | void;\n onFinishStepPart?: (\n streamPart: (DataStreamPartType & { type: 'finish_step' })['value'],\n ) => Promise | void;\n onStartStepPart?: (\n streamPart: (DataStreamPartType & { type: 'start_step' })['value'],\n ) => Promise | void;\n}): Promise {\n // implementation note: this slightly more complex algorithm is required\n // to pass the tests in the edge environment.\n\n const reader = stream.getReader();\n const decoder = new TextDecoder();\n const chunks: Uint8Array[] = [];\n let totalLength = 0;\n\n while (true) {\n const { value } = await reader.read();\n\n if (value) {\n chunks.push(value);\n totalLength += value.length;\n if (value[value.length - 1] !== NEWLINE) {\n // if the last character is not a newline, we have not read the whole JSON value\n continue;\n }\n }\n\n if (chunks.length === 0) {\n break; // we have reached the end of the stream\n }\n\n const concatenatedChunks = concatChunks(chunks, totalLength);\n totalLength = 0;\n\n const streamParts = decoder\n .decode(concatenatedChunks, { stream: true })\n .split('\\n')\n .filter(line => line !== '') // splitting leaves an empty string at the end\n .map(parseDataStreamPart);\n\n for (const { type, value } of streamParts) {\n switch (type) {\n case 'text':\n await onTextPart?.(value);\n break;\n case 'reasoning':\n await onReasoningPart?.(value);\n break;\n case 'reasoning_signature':\n await onReasoningSignaturePart?.(value);\n break;\n case 'redacted_reasoning':\n await onRedactedReasoningPart?.(value);\n break;\n case 'source':\n await onSourcePart?.(value);\n break;\n case 'data':\n await onDataPart?.(value);\n break;\n case 'error':\n await onErrorPart?.(value);\n break;\n case 'message_annotations':\n await onMessageAnnotationsPart?.(value);\n break;\n case 'tool_call_streaming_start':\n await onToolCallStreamingStartPart?.(value);\n break;\n case 'tool_call_delta':\n await onToolCallDeltaPart?.(value);\n break;\n case 'tool_call':\n await onToolCallPart?.(value);\n break;\n case 'tool_result':\n await onToolResultPart?.(value);\n break;\n case 'finish_message':\n await onFinishMessagePart?.(value);\n break;\n case 'finish_step':\n await onFinishStepPart?.(value);\n break;\n case 'start_step':\n await onStartStepPart?.(value);\n break;\n default: {\n const exhaustiveCheck: never = type;\n throw new Error(`Unknown stream part type: ${exhaustiveCheck}`);\n }\n }\n }\n }\n}\n", "import { JSONValue } from '@ai-sdk/provider';\nimport { generateId as generateIdFunction } from '@ai-sdk/provider-utils';\nimport { processTextStream } from './process-text-stream';\nimport { TextUIPart, UIMessage, UseChatOptions } from './types';\n\nexport async function processChatTextResponse({\n stream,\n update,\n onFinish,\n getCurrentDate = () => new Date(),\n generateId = generateIdFunction,\n}: {\n stream: ReadableStream;\n update: (options: {\n message: UIMessage;\n data: JSONValue[] | undefined;\n replaceLastMessage: boolean;\n }) => void;\n onFinish: UseChatOptions['onFinish'];\n getCurrentDate?: () => Date;\n generateId?: () => string;\n}) {\n const textPart: TextUIPart = { type: 'text', text: '' };\n\n const resultMessage: UIMessage = {\n id: generateId(),\n createdAt: getCurrentDate(),\n role: 'assistant' as const,\n content: '',\n parts: [textPart],\n };\n\n await processTextStream({\n stream,\n onTextPart: chunk => {\n resultMessage.content += chunk;\n textPart.text += chunk;\n\n // note: creating a new message object is required for Solid.js streaming\n update({\n message: { ...resultMessage },\n data: [],\n replaceLastMessage: false,\n });\n },\n });\n\n // in text mode, we don't have usage information or finish reason:\n onFinish?.(resultMessage, {\n usage: { completionTokens: NaN, promptTokens: NaN, totalTokens: NaN },\n finishReason: 'unknown',\n });\n}\n", "export async function processTextStream({\n stream,\n onTextPart,\n}: {\n stream: ReadableStream;\n onTextPart: (chunk: string) => Promise | void;\n}): Promise {\n const reader = stream.pipeThrough(new TextDecoderStream()).getReader();\n while (true) {\n const { done, value } = await reader.read();\n if (done) {\n break;\n }\n await onTextPart(value);\n }\n}\n", "import { processChatResponse } from './process-chat-response';\nimport { processChatTextResponse } from './process-chat-text-response';\nimport { IdGenerator, JSONValue, UIMessage, UseChatOptions } from './types';\n\n// use function to allow for mocking in tests:\nconst getOriginalFetch = () => fetch;\n\nexport async function callChatApi({\n api,\n body,\n streamProtocol = 'data',\n credentials,\n headers,\n abortController,\n restoreMessagesOnFailure,\n onResponse,\n onUpdate,\n onFinish,\n onToolCall,\n generateId,\n fetch = getOriginalFetch(),\n lastMessage,\n}: {\n api: string;\n body: Record;\n streamProtocol: 'data' | 'text' | undefined;\n credentials: RequestCredentials | undefined;\n headers: HeadersInit | undefined;\n abortController: (() => AbortController | null) | undefined;\n restoreMessagesOnFailure: () => void;\n onResponse: ((response: Response) => void | Promise) | undefined;\n onUpdate: (options: {\n message: UIMessage;\n data: JSONValue[] | undefined;\n replaceLastMessage: boolean;\n }) => void;\n onFinish: UseChatOptions['onFinish'];\n onToolCall: UseChatOptions['onToolCall'];\n generateId: IdGenerator;\n fetch: ReturnType | undefined;\n lastMessage: UIMessage | undefined;\n}) {\n const response = await fetch(api, {\n method: 'POST',\n body: JSON.stringify(body),\n headers: {\n 'Content-Type': 'application/json',\n ...headers,\n },\n signal: abortController?.()?.signal,\n credentials,\n }).catch(err => {\n restoreMessagesOnFailure();\n throw err;\n });\n\n if (onResponse) {\n try {\n await onResponse(response);\n } catch (err) {\n throw err;\n }\n }\n\n if (!response.ok) {\n restoreMessagesOnFailure();\n throw new Error(\n (await response.text()) ?? 'Failed to fetch the chat response.',\n );\n }\n\n if (!response.body) {\n throw new Error('The response body is empty.');\n }\n\n switch (streamProtocol) {\n case 'text': {\n await processChatTextResponse({\n stream: response.body,\n update: onUpdate,\n onFinish,\n generateId,\n });\n return;\n }\n\n case 'data': {\n await processChatResponse({\n stream: response.body,\n update: onUpdate,\n lastMessage,\n onToolCall,\n onFinish({ message, finishReason, usage }) {\n if (onFinish && message != null) {\n onFinish(message, { usage, finishReason });\n }\n },\n generateId,\n });\n return;\n }\n\n default: {\n const exhaustiveCheck: never = streamProtocol;\n throw new Error(`Unknown stream protocol: ${exhaustiveCheck}`);\n }\n }\n}\n", "import { processTextStream } from './process-text-stream';\nimport { processDataStream } from './process-data-stream';\nimport { JSONValue } from './types';\n\n// use function to allow for mocking in tests:\nconst getOriginalFetch = () => fetch;\n\nexport async function callCompletionApi({\n api,\n prompt,\n credentials,\n headers,\n body,\n streamProtocol = 'data',\n setCompletion,\n setLoading,\n setError,\n setAbortController,\n onResponse,\n onFinish,\n onError,\n onData,\n fetch = getOriginalFetch(),\n}: {\n api: string;\n prompt: string;\n credentials: RequestCredentials | undefined;\n headers: HeadersInit | undefined;\n body: Record;\n streamProtocol: 'data' | 'text' | undefined;\n setCompletion: (completion: string) => void;\n setLoading: (loading: boolean) => void;\n setError: (error: Error | undefined) => void;\n setAbortController: (abortController: AbortController | null) => void;\n onResponse: ((response: Response) => void | Promise) | undefined;\n onFinish: ((prompt: string, completion: string) => void) | undefined;\n onError: ((error: Error) => void) | undefined;\n onData: ((data: JSONValue[]) => void) | undefined;\n fetch: ReturnType | undefined;\n}) {\n try {\n setLoading(true);\n setError(undefined);\n\n const abortController = new AbortController();\n setAbortController(abortController);\n\n // Empty the completion immediately.\n setCompletion('');\n\n const response = await fetch(api, {\n method: 'POST',\n body: JSON.stringify({\n prompt,\n ...body,\n }),\n credentials,\n headers: {\n 'Content-Type': 'application/json',\n ...headers,\n },\n signal: abortController.signal,\n }).catch(err => {\n throw err;\n });\n\n if (onResponse) {\n try {\n await onResponse(response);\n } catch (err) {\n throw err;\n }\n }\n\n if (!response.ok) {\n throw new Error(\n (await response.text()) ?? 'Failed to fetch the chat response.',\n );\n }\n\n if (!response.body) {\n throw new Error('The response body is empty.');\n }\n\n let result = '';\n\n switch (streamProtocol) {\n case 'text': {\n await processTextStream({\n stream: response.body,\n onTextPart: chunk => {\n result += chunk;\n setCompletion(result);\n },\n });\n break;\n }\n case 'data': {\n await processDataStream({\n stream: response.body,\n onTextPart(value) {\n result += value;\n setCompletion(result);\n },\n onDataPart(value) {\n onData?.(value);\n },\n onErrorPart(value) {\n throw new Error(value);\n },\n });\n break;\n }\n default: {\n const exhaustiveCheck: never = streamProtocol;\n throw new Error(`Unknown stream protocol: ${exhaustiveCheck}`);\n }\n }\n\n if (onFinish) {\n onFinish(prompt, result);\n }\n\n setAbortController(null);\n return result;\n } catch (err) {\n // Ignore abort errors as they are expected.\n if ((err as any).name === 'AbortError') {\n setAbortController(null);\n return null;\n }\n\n if (err instanceof Error) {\n if (onError) {\n onError(err);\n }\n }\n\n setError(err as Error);\n } finally {\n setLoading(false);\n }\n}\n", "/**\n * Converts a data URL of type text/* to a text string.\n */\nexport function getTextFromDataUrl(dataUrl: string): string {\n const [header, base64Content] = dataUrl.split(',');\n const mimeType = header.split(';')[0].split(':')[1];\n\n if (mimeType == null || base64Content == null) {\n throw new Error('Invalid data URL format');\n }\n\n try {\n return window.atob(base64Content);\n } catch (error) {\n throw new Error(`Error decoding data URL`);\n }\n}\n", "import { ToolInvocation } from './types';\n\nexport function extractMaxToolInvocationStep(\n toolInvocations: ToolInvocation[] | undefined,\n): number | undefined {\n return toolInvocations?.reduce((max, toolInvocation) => {\n return Math.max(max, toolInvocation.step ?? 0);\n }, 0);\n}\n", "import {\n CreateMessage,\n Message,\n ReasoningUIPart,\n SourceUIPart,\n TextUIPart,\n ToolInvocationUIPart,\n UIMessage,\n} from './types';\n\nexport function getMessageParts(\n message: Message | CreateMessage | UIMessage,\n): (TextUIPart | ReasoningUIPart | ToolInvocationUIPart | SourceUIPart)[] {\n return (\n message.parts ?? [\n ...(message.toolInvocations\n ? message.toolInvocations.map(toolInvocation => ({\n type: 'tool-invocation' as const,\n toolInvocation,\n }))\n : []),\n ...(message.reasoning\n ? [\n {\n type: 'reasoning' as const,\n reasoning: message.reasoning,\n details: [{ type: 'text' as const, text: message.reasoning }],\n },\n ]\n : []),\n ...(message.content\n ? [{ type: 'text' as const, text: message.content }]\n : []),\n ]\n );\n}\n", "import { getMessageParts } from './get-message-parts';\nimport { Message, UIMessage } from './types';\n\nexport function fillMessageParts(messages: Message[]): UIMessage[] {\n return messages.map(message => ({\n ...message,\n parts: getMessageParts(message),\n }));\n}\n", "/**\n * Performs a deep-equal comparison of two parsed JSON objects.\n *\n * @param {any} obj1 - The first object to compare.\n * @param {any} obj2 - The second object to compare.\n * @returns {boolean} - Returns true if the two objects are deeply equal, false otherwise.\n */\nexport function isDeepEqualData(obj1: any, obj2: any): boolean {\n // Check for strict equality first\n if (obj1 === obj2) return true;\n\n // Check if either is null or undefined\n if (obj1 == null || obj2 == null) return false;\n\n // Check if both are objects\n if (typeof obj1 !== 'object' && typeof obj2 !== 'object')\n return obj1 === obj2;\n\n // If they are not strictly equal, they both need to be Objects\n if (obj1.constructor !== obj2.constructor) return false;\n\n // Special handling for Date objects\n if (obj1 instanceof Date && obj2 instanceof Date) {\n return obj1.getTime() === obj2.getTime();\n }\n\n // Handle arrays: compare length and then perform a recursive deep comparison on each item\n if (Array.isArray(obj1)) {\n if (obj1.length !== obj2.length) return false;\n for (let i = 0; i < obj1.length; i++) {\n if (!isDeepEqualData(obj1[i], obj2[i])) return false;\n }\n return true; // All array elements matched\n }\n\n // Compare the set of keys in each object\n const keys1 = Object.keys(obj1);\n const keys2 = Object.keys(obj2);\n if (keys1.length !== keys2.length) return false;\n\n // Check each key-value pair recursively\n for (const key of keys1) {\n if (!keys2.includes(key)) return false;\n if (!isDeepEqualData(obj1[key], obj2[key])) return false;\n }\n\n return true; // All keys and values matched\n}\n", "import { Attachment } from './types';\n\nexport async function prepareAttachmentsForRequest(\n attachmentsFromOptions: FileList | Array | undefined,\n) {\n if (!attachmentsFromOptions) {\n return [];\n }\n\n if (attachmentsFromOptions instanceof FileList) {\n return Promise.all(\n Array.from(attachmentsFromOptions).map(async attachment => {\n const { name, type } = attachment;\n\n const dataUrl = await new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onload = readerEvent => {\n resolve(readerEvent.target?.result as string);\n };\n reader.onerror = error => reject(error);\n reader.readAsDataURL(attachment);\n });\n\n return {\n name,\n contentType: type,\n url: dataUrl,\n };\n }),\n );\n }\n\n if (Array.isArray(attachmentsFromOptions)) {\n return attachmentsFromOptions;\n }\n\n throw new Error('Invalid attachments type');\n}\n", "import {\n AssistantStreamPartType,\n parseAssistantStreamPart,\n} from './assistant-stream-parts';\n\nconst NEWLINE = '\\n'.charCodeAt(0);\n\n// concatenates all the chunks into a single Uint8Array\nfunction concatChunks(chunks: Uint8Array[], totalLength: number) {\n const concatenatedChunks = new Uint8Array(totalLength);\n\n let offset = 0;\n for (const chunk of chunks) {\n concatenatedChunks.set(chunk, offset);\n offset += chunk.length;\n }\n chunks.length = 0;\n\n return concatenatedChunks;\n}\n\nexport async function processAssistantStream({\n stream,\n onTextPart,\n onErrorPart,\n onAssistantMessagePart,\n onAssistantControlDataPart,\n onDataMessagePart,\n}: {\n stream: ReadableStream;\n onTextPart?: (\n streamPart: (AssistantStreamPartType & { type: 'text' })['value'],\n ) => Promise | void;\n onErrorPart?: (\n streamPart: (AssistantStreamPartType & { type: 'error' })['value'],\n ) => Promise | void;\n onAssistantMessagePart?: (\n streamPart: (AssistantStreamPartType & {\n type: 'assistant_message';\n })['value'],\n ) => Promise | void;\n onAssistantControlDataPart?: (\n streamPart: (AssistantStreamPartType & {\n type: 'assistant_control_data';\n })['value'],\n ) => Promise | void;\n onDataMessagePart?: (\n streamPart: (AssistantStreamPartType & { type: 'data_message' })['value'],\n ) => Promise | void;\n}): Promise {\n // implementation note: this slightly more complex algorithm is required\n // to pass the tests in the edge environment.\n\n const reader = stream.getReader();\n const decoder = new TextDecoder();\n const chunks: Uint8Array[] = [];\n let totalLength = 0;\n\n while (true) {\n const { value } = await reader.read();\n\n if (value) {\n chunks.push(value);\n totalLength += value.length;\n if (value[value.length - 1] !== NEWLINE) {\n // if the last character is not a newline, we have not read the whole JSON value\n continue;\n }\n }\n\n if (chunks.length === 0) {\n break; // we have reached the end of the stream\n }\n\n const concatenatedChunks = concatChunks(chunks, totalLength);\n totalLength = 0;\n\n const streamParts = decoder\n .decode(concatenatedChunks, { stream: true })\n .split('\\n')\n .filter(line => line !== '')\n .map(parseAssistantStreamPart);\n\n for (const { type, value } of streamParts) {\n switch (type) {\n case 'text':\n await onTextPart?.(value);\n break;\n case 'error':\n await onErrorPart?.(value);\n break;\n case 'assistant_message':\n await onAssistantMessagePart?.(value);\n break;\n case 'assistant_control_data':\n await onAssistantControlDataPart?.(value);\n break;\n case 'data_message':\n await onDataMessagePart?.(value);\n break;\n default: {\n const exhaustiveCheck: never = type;\n throw new Error(`Unknown stream part type: ${exhaustiveCheck}`);\n }\n }\n }\n }\n}\n", "import { Validator, validatorSymbol } from '@ai-sdk/provider-utils';\nimport { JSONSchema7 } from 'json-schema';\nimport { z } from 'zod';\nimport { zodSchema } from './zod-schema';\n\n/**\n * Used to mark schemas so we can support both Zod and custom schemas.\n */\nconst schemaSymbol = Symbol.for('vercel.ai.schema');\n\nexport type Schema = Validator & {\n /**\n * Used to mark schemas so we can support both Zod and custom schemas.\n */\n [schemaSymbol]: true;\n\n /**\n * Schema type for inference.\n */\n _type: OBJECT;\n\n /**\n * The JSON Schema for the schema. It is passed to the providers.\n */\n readonly jsonSchema: JSONSchema7;\n};\n\n/**\n * Create a schema using a JSON Schema.\n *\n * @param jsonSchema The JSON Schema for the schema.\n * @param options.validate Optional. A validation function for the schema.\n */\nexport function jsonSchema(\n jsonSchema: JSONSchema7,\n {\n validate,\n }: {\n validate?: (\n value: unknown,\n ) => { success: true; value: OBJECT } | { success: false; error: Error };\n } = {},\n): Schema {\n return {\n [schemaSymbol]: true,\n _type: undefined as OBJECT, // should never be used directly\n [validatorSymbol]: true,\n jsonSchema,\n validate,\n };\n}\n\nfunction isSchema(value: unknown): value is Schema {\n return (\n typeof value === 'object' &&\n value !== null &&\n schemaSymbol in value &&\n value[schemaSymbol] === true &&\n 'jsonSchema' in value &&\n 'validate' in value\n );\n}\n\nexport function asSchema(\n schema: z.Schema | Schema,\n): Schema {\n return isSchema(schema) ? schema : zodSchema(schema);\n}\n", "import { JSONSchema7 } from 'json-schema';\nimport { z } from 'zod';\nimport zodToJsonSchema from 'zod-to-json-schema';\nimport { jsonSchema, Schema } from './schema';\n\nexport function zodSchema(\n zodSchema: z.Schema,\n options?: {\n /**\n * Enables support for references in the schema.\n * This is required for recursive schemas, e.g. with `z.lazy`.\n * However, not all language models and providers support such references.\n * Defaults to `false`.\n */\n useReferences?: boolean;\n },\n): Schema {\n // default to no references (to support openapi conversion for google)\n const useReferences = options?.useReferences ?? false;\n\n return jsonSchema(\n zodToJsonSchema(zodSchema, {\n $refStrategy: useReferences ? 'root' : 'none',\n target: 'jsonSchema7', // note: openai mode breaks various gemini conversions\n }) as JSONSchema7,\n {\n validate: value => {\n const result = zodSchema.safeParse(value);\n return result.success\n ? { success: true, value: result.data }\n : { success: false, error: result.error };\n },\n },\n );\n}\n", "import { extractMaxToolInvocationStep } from './extract-max-tool-invocation-step';\nimport { UIMessage } from './types';\n\nexport function shouldResubmitMessages({\n originalMaxToolInvocationStep,\n originalMessageCount,\n maxSteps,\n messages,\n}: {\n originalMaxToolInvocationStep: number | undefined;\n originalMessageCount: number;\n maxSteps: number;\n messages: UIMessage[];\n}) {\n const lastMessage = messages[messages.length - 1];\n return (\n // check if the feature is enabled:\n maxSteps > 1 &&\n // ensure there is a last message:\n lastMessage != null &&\n // ensure we actually have new steps (to prevent infinite loops in case of errors):\n (messages.length > originalMessageCount ||\n extractMaxToolInvocationStep(lastMessage.toolInvocations) !==\n originalMaxToolInvocationStep) &&\n // check that next step is possible:\n isAssistantMessageWithCompletedToolCalls(lastMessage) &&\n // check that assistant has not answered yet:\n !isLastToolInvocationFollowedByText(lastMessage) &&\n // limit the number of automatic steps:\n (extractMaxToolInvocationStep(lastMessage.toolInvocations) ?? 0) < maxSteps\n );\n}\n\nfunction isLastToolInvocationFollowedByText(message: UIMessage) {\n let isLastToolInvocationFollowedByText = false;\n\n message.parts.forEach(part => {\n if (part.type === 'text') {\n isLastToolInvocationFollowedByText = true;\n }\n if (part.type === 'tool-invocation') {\n isLastToolInvocationFollowedByText = false;\n }\n });\n return isLastToolInvocationFollowedByText;\n}\n\n/**\nCheck if the message is an assistant message with completed tool calls.\nThe message must have at least one tool invocation and all tool invocations\nmust have a result.\n */\nexport function isAssistantMessageWithCompletedToolCalls(\n message: UIMessage,\n): message is UIMessage & {\n role: 'assistant';\n} {\n return (\n message.role === 'assistant' &&\n message.parts\n .filter(part => part.type === 'tool-invocation')\n .every(part => 'result' in part.toolInvocation)\n );\n}\n", "import { ToolInvocationUIPart, UIMessage } from './types';\n\n/**\n * Updates the result of a specific tool invocation in the last message of the given messages array.\n *\n * @param {object} params - The parameters object.\n * @param {UIMessage[]} params.messages - An array of messages, from which the last one is updated.\n * @param {string} params.toolCallId - The unique identifier for the tool invocation to update.\n * @param {unknown} params.toolResult - The result object to attach to the tool invocation.\n * @returns {void} This function does not return anything.\n */\nexport function updateToolCallResult({\n messages,\n toolCallId,\n toolResult: result,\n}: {\n messages: UIMessage[];\n toolCallId: string;\n toolResult: unknown;\n}) {\n const lastMessage = messages[messages.length - 1];\n\n const invocationPart = lastMessage.parts.find(\n (part): part is ToolInvocationUIPart =>\n part.type === 'tool-invocation' &&\n part.toolInvocation.toolCallId === toolCallId,\n );\n\n if (invocationPart == null) {\n return;\n }\n\n const toolResult = {\n ...invocationPart.toolInvocation,\n state: 'result' as const,\n result,\n };\n\n invocationPart.toolInvocation = toolResult;\n\n lastMessage.toolInvocations = lastMessage.toolInvocations?.map(\n toolInvocation =>\n toolInvocation.toolCallId === toolCallId ? toolResult : toolInvocation,\n );\n}\n", "/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Updates to this file should also be replicated to @opentelemetry/core too.\n\n/**\n * - globalThis (New standard)\n * - self (Will return the current window instance for supported browsers)\n * - window (fallback for older browser implementations)\n * - global (NodeJS implementation)\n * - (When all else fails)\n */\n\n/** only globals that common to node and browsers are allowed */\n// eslint-disable-next-line node/no-unsupported-features/es-builtins, no-undef\nexport const _globalThis: typeof globalThis =\n typeof globalThis === 'object'\n ? globalThis\n : typeof self === 'object'\n ? self\n : typeof window === 'object'\n ? window\n : typeof global === 'object'\n ? global\n : ({} as typeof globalThis);\n", "/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// this is autogenerated file, see scripts/version-update.js\nexport const VERSION = '1.9.0';\n", "/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { VERSION } from '../version';\n\nconst re = /^(\\d+)\\.(\\d+)\\.(\\d+)(-(.+))?$/;\n\n/**\n * Create a function to test an API version to see if it is compatible with the provided ownVersion.\n *\n * The returned function has the following semantics:\n * - Exact match is always compatible\n * - Major versions must match exactly\n * - 1.x package cannot use global 2.x package\n * - 2.x package cannot use global 1.x package\n * - The minor version of the API module requesting access to the global API must be less than or equal to the minor version of this API\n * - 1.3 package may use 1.4 global because the later global contains all functions 1.3 expects\n * - 1.4 package may NOT use 1.3 global because it may try to call functions which don't exist on 1.3\n * - If the major version is 0, the minor version is treated as the major and the patch is treated as the minor\n * - Patch and build tag differences are not considered at this time\n *\n * @param ownVersion version which should be checked against\n */\nexport function _makeCompatibilityCheck(\n ownVersion: string\n): (globalVersion: string) => boolean {\n const acceptedVersions = new Set([ownVersion]);\n const rejectedVersions = new Set();\n\n const myVersionMatch = ownVersion.match(re);\n if (!myVersionMatch) {\n // we cannot guarantee compatibility so we always return noop\n return () => false;\n }\n\n const ownVersionParsed = {\n major: +myVersionMatch[1],\n minor: +myVersionMatch[2],\n patch: +myVersionMatch[3],\n prerelease: myVersionMatch[4],\n };\n\n // if ownVersion has a prerelease tag, versions must match exactly\n if (ownVersionParsed.prerelease != null) {\n return function isExactmatch(globalVersion: string): boolean {\n return globalVersion === ownVersion;\n };\n }\n\n function _reject(v: string) {\n rejectedVersions.add(v);\n return false;\n }\n\n function _accept(v: string) {\n acceptedVersions.add(v);\n return true;\n }\n\n return function isCompatible(globalVersion: string): boolean {\n if (acceptedVersions.has(globalVersion)) {\n return true;\n }\n\n if (rejectedVersions.has(globalVersion)) {\n return false;\n }\n\n const globalVersionMatch = globalVersion.match(re);\n if (!globalVersionMatch) {\n // cannot parse other version\n // we cannot guarantee compatibility so we always noop\n return _reject(globalVersion);\n }\n\n const globalVersionParsed = {\n major: +globalVersionMatch[1],\n minor: +globalVersionMatch[2],\n patch: +globalVersionMatch[3],\n prerelease: globalVersionMatch[4],\n };\n\n // if globalVersion has a prerelease tag, versions must match exactly\n if (globalVersionParsed.prerelease != null) {\n return _reject(globalVersion);\n }\n\n // major versions must match\n if (ownVersionParsed.major !== globalVersionParsed.major) {\n return _reject(globalVersion);\n }\n\n if (ownVersionParsed.major === 0) {\n if (\n ownVersionParsed.minor === globalVersionParsed.minor &&\n ownVersionParsed.patch <= globalVersionParsed.patch\n ) {\n return _accept(globalVersion);\n }\n\n return _reject(globalVersion);\n }\n\n if (ownVersionParsed.minor <= globalVersionParsed.minor) {\n return _accept(globalVersion);\n }\n\n return _reject(globalVersion);\n };\n}\n\n/**\n * Test an API version to see if it is compatible with this API.\n *\n * - Exact match is always compatible\n * - Major versions must match exactly\n * - 1.x package cannot use global 2.x package\n * - 2.x package cannot use global 1.x package\n * - The minor version of the API module requesting access to the global API must be less than or equal to the minor version of this API\n * - 1.3 package may use 1.4 global because the later global contains all functions 1.3 expects\n * - 1.4 package may NOT use 1.3 global because it may try to call functions which don't exist on 1.3\n * - If the major version is 0, the minor version is treated as the major and the patch is treated as the minor\n * - Patch and build tag differences are not considered at this time\n *\n * @param version version of the API requesting an instance of the global API\n */\nexport const isCompatible = _makeCompatibilityCheck(VERSION);\n", "/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { MeterProvider } from '../metrics/MeterProvider';\nimport { ContextManager } from '../context/types';\nimport { DiagLogger } from '../diag/types';\nimport { _globalThis } from '../platform';\nimport { TextMapPropagator } from '../propagation/TextMapPropagator';\nimport type { TracerProvider } from '../trace/tracer_provider';\nimport { VERSION } from '../version';\nimport { isCompatible } from './semver';\n\nconst major = VERSION.split('.')[0];\nconst GLOBAL_OPENTELEMETRY_API_KEY = Symbol.for(\n `opentelemetry.js.api.${major}`\n);\n\nconst _global = _globalThis as OTelGlobal;\n\nexport function registerGlobal(\n type: Type,\n instance: OTelGlobalAPI[Type],\n diag: DiagLogger,\n allowOverride = false\n): boolean {\n const api = (_global[GLOBAL_OPENTELEMETRY_API_KEY] = _global[\n GLOBAL_OPENTELEMETRY_API_KEY\n ] ?? {\n version: VERSION,\n });\n\n if (!allowOverride && api[type]) {\n // already registered an API of this type\n const err = new Error(\n `@opentelemetry/api: Attempted duplicate registration of API: ${type}`\n );\n diag.error(err.stack || err.message);\n return false;\n }\n\n if (api.version !== VERSION) {\n // All registered APIs must be of the same version exactly\n const err = new Error(\n `@opentelemetry/api: Registration of version v${api.version} for ${type} does not match previously registered API v${VERSION}`\n );\n diag.error(err.stack || err.message);\n return false;\n }\n\n api[type] = instance;\n diag.debug(\n `@opentelemetry/api: Registered a global for ${type} v${VERSION}.`\n );\n\n return true;\n}\n\nexport function getGlobal(\n type: Type\n): OTelGlobalAPI[Type] | undefined {\n const globalVersion = _global[GLOBAL_OPENTELEMETRY_API_KEY]?.version;\n if (!globalVersion || !isCompatible(globalVersion)) {\n return;\n }\n return _global[GLOBAL_OPENTELEMETRY_API_KEY]?.[type];\n}\n\nexport function unregisterGlobal(type: keyof OTelGlobalAPI, diag: DiagLogger) {\n diag.debug(\n `@opentelemetry/api: Unregistering a global for ${type} v${VERSION}.`\n );\n const api = _global[GLOBAL_OPENTELEMETRY_API_KEY];\n\n if (api) {\n delete api[type];\n }\n}\n\ntype OTelGlobal = {\n [GLOBAL_OPENTELEMETRY_API_KEY]?: OTelGlobalAPI;\n};\n\ntype OTelGlobalAPI = {\n version: string;\n\n diag?: DiagLogger;\n trace?: TracerProvider;\n context?: ContextManager;\n metrics?: MeterProvider;\n propagation?: TextMapPropagator;\n};\n", "/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { getGlobal } from '../internal/global-utils';\nimport { ComponentLoggerOptions, DiagLogger, DiagLogFunction } from './types';\n\n/**\n * Component Logger which is meant to be used as part of any component which\n * will add automatically additional namespace in front of the log message.\n * It will then forward all message to global diag logger\n * @example\n * const cLogger = diag.createComponentLogger({ namespace: '@opentelemetry/instrumentation-http' });\n * cLogger.debug('test');\n * // @opentelemetry/instrumentation-http test\n */\nexport class DiagComponentLogger implements DiagLogger {\n private _namespace: string;\n\n constructor(props: ComponentLoggerOptions) {\n this._namespace = props.namespace || 'DiagComponentLogger';\n }\n\n public debug(...args: any[]): void {\n return logProxy('debug', this._namespace, args);\n }\n\n public error(...args: any[]): void {\n return logProxy('error', this._namespace, args);\n }\n\n public info(...args: any[]): void {\n return logProxy('info', this._namespace, args);\n }\n\n public warn(...args: any[]): void {\n return logProxy('warn', this._namespace, args);\n }\n\n public verbose(...args: any[]): void {\n return logProxy('verbose', this._namespace, args);\n }\n}\n\nfunction logProxy(\n funcName: keyof DiagLogger,\n namespace: string,\n args: any\n): void {\n const logger = getGlobal('diag');\n // shortcut if logger not set\n if (!logger) {\n return;\n }\n\n args.unshift(namespace);\n return logger[funcName](...(args as Parameters));\n}\n", "/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport type DiagLogFunction = (message: string, ...args: unknown[]) => void;\n\n/**\n * Defines an internal diagnostic logger interface which is used to log internal diagnostic\n * messages, you can set the default diagnostic logger via the {@link DiagAPI} setLogger function.\n * API provided implementations include :-\n * - a No-Op {@link createNoopDiagLogger}\n * - a {@link DiagLogLevel} filtering wrapper {@link createLogLevelDiagLogger}\n * - a general Console {@link DiagConsoleLogger} version.\n */\nexport interface DiagLogger {\n /** Log an error scenario that was not expected and caused the requested operation to fail. */\n error: DiagLogFunction;\n\n /**\n * Log a warning scenario to inform the developer of an issues that should be investigated.\n * The requested operation may or may not have succeeded or completed.\n */\n warn: DiagLogFunction;\n\n /**\n * Log a general informational message, this should not affect functionality.\n * This is also the default logging level so this should NOT be used for logging\n * debugging level information.\n */\n info: DiagLogFunction;\n\n /**\n * Log a general debug message that can be useful for identifying a failure.\n * Information logged at this level may include diagnostic details that would\n * help identify a failure scenario.\n * For example: Logging the order of execution of async operations.\n */\n debug: DiagLogFunction;\n\n /**\n * Log a detailed (verbose) trace level logging that can be used to identify failures\n * where debug level logging would be insufficient, this level of tracing can include\n * input and output parameters and as such may include PII information passing through\n * the API. As such it is recommended that this level of tracing should not be enabled\n * in a production environment.\n */\n verbose: DiagLogFunction;\n}\n\n/**\n * Defines the available internal logging levels for the diagnostic logger, the numeric values\n * of the levels are defined to match the original values from the initial LogLevel to avoid\n * compatibility/migration issues for any implementation that assume the numeric ordering.\n */\nexport enum DiagLogLevel {\n /** Diagnostic Logging level setting to disable all logging (except and forced logs) */\n NONE = 0,\n\n /** Identifies an error scenario */\n ERROR = 30,\n\n /** Identifies a warning scenario */\n WARN = 50,\n\n /** General informational log message */\n INFO = 60,\n\n /** General debug log message */\n DEBUG = 70,\n\n /**\n * Detailed trace level logging should only be used for development, should only be set\n * in a development environment.\n */\n VERBOSE = 80,\n\n /** Used to set the logging level to include all logging */\n ALL = 9999,\n}\n\n/**\n * Defines options for ComponentLogger\n */\nexport interface ComponentLoggerOptions {\n namespace: string;\n}\n\nexport interface DiagLoggerOptions {\n /**\n * The {@link DiagLogLevel} used to filter logs sent to the logger.\n *\n * @defaultValue DiagLogLevel.INFO\n */\n logLevel?: DiagLogLevel;\n\n /**\n * Setting this value to `true` will suppress the warning message normally emitted when registering a logger when another logger is already registered.\n */\n suppressOverrideMessage?: boolean;\n}\n\nexport interface DiagLoggerApi {\n /**\n * Set the global DiagLogger and DiagLogLevel.\n * If a global diag logger is already set, this will override it.\n *\n * @param logger - The {@link DiagLogger} instance to set as the default logger.\n * @param options - A {@link DiagLoggerOptions} object. If not provided, default values will be set.\n * @returns `true` if the logger was successfully registered, else `false`\n */\n setLogger(logger: DiagLogger, options?: DiagLoggerOptions): boolean;\n\n /**\n *\n * @param logger - The {@link DiagLogger} instance to set as the default logger.\n * @param logLevel - The {@link DiagLogLevel} used to filter logs sent to the logger. If not provided it will default to {@link DiagLogLevel.INFO}.\n * @returns `true` if the logger was successfully registered, else `false`\n */\n setLogger(logger: DiagLogger, logLevel?: DiagLogLevel): boolean;\n}\n", "/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DiagLogFunction, DiagLogger, DiagLogLevel } from '../types';\n\nexport function createLogLevelDiagLogger(\n maxLevel: DiagLogLevel,\n logger: DiagLogger\n): DiagLogger {\n if (maxLevel < DiagLogLevel.NONE) {\n maxLevel = DiagLogLevel.NONE;\n } else if (maxLevel > DiagLogLevel.ALL) {\n maxLevel = DiagLogLevel.ALL;\n }\n\n // In case the logger is null or undefined\n logger = logger || {};\n\n function _filterFunc(\n funcName: keyof DiagLogger,\n theLevel: DiagLogLevel\n ): DiagLogFunction {\n const theFunc = logger[funcName];\n\n if (typeof theFunc === 'function' && maxLevel >= theLevel) {\n return theFunc.bind(logger);\n }\n return function () {};\n }\n\n return {\n error: _filterFunc('error', DiagLogLevel.ERROR),\n warn: _filterFunc('warn', DiagLogLevel.WARN),\n info: _filterFunc('info', DiagLogLevel.INFO),\n debug: _filterFunc('debug', DiagLogLevel.DEBUG),\n verbose: _filterFunc('verbose', DiagLogLevel.VERBOSE),\n };\n}\n", "/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DiagComponentLogger } from '../diag/ComponentLogger';\nimport { createLogLevelDiagLogger } from '../diag/internal/logLevelLogger';\nimport {\n ComponentLoggerOptions,\n DiagLogFunction,\n DiagLogger,\n DiagLoggerApi,\n DiagLogLevel,\n} from '../diag/types';\nimport {\n getGlobal,\n registerGlobal,\n unregisterGlobal,\n} from '../internal/global-utils';\n\nconst API_NAME = 'diag';\n\n/**\n * Singleton object which represents the entry point to the OpenTelemetry internal\n * diagnostic API\n */\nexport class DiagAPI implements DiagLogger, DiagLoggerApi {\n private static _instance?: DiagAPI;\n\n /** Get the singleton instance of the DiagAPI API */\n public static instance(): DiagAPI {\n if (!this._instance) {\n this._instance = new DiagAPI();\n }\n\n return this._instance;\n }\n\n /**\n * Private internal constructor\n * @private\n */\n private constructor() {\n function _logProxy(funcName: keyof DiagLogger): DiagLogFunction {\n return function (...args) {\n const logger = getGlobal('diag');\n // shortcut if logger not set\n if (!logger) return;\n return logger[funcName](...args);\n };\n }\n\n // Using self local variable for minification purposes as 'this' cannot be minified\n const self = this;\n\n // DiagAPI specific functions\n\n const setLogger: DiagLoggerApi['setLogger'] = (\n logger,\n optionsOrLogLevel = { logLevel: DiagLogLevel.INFO }\n ) => {\n if (logger === self) {\n // There isn't much we can do here.\n // Logging to the console might break the user application.\n // Try to log to self. If a logger was previously registered it will receive the log.\n const err = new Error(\n 'Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation'\n );\n self.error(err.stack ?? err.message);\n return false;\n }\n\n if (typeof optionsOrLogLevel === 'number') {\n optionsOrLogLevel = {\n logLevel: optionsOrLogLevel,\n };\n }\n\n const oldLogger = getGlobal('diag');\n const newLogger = createLogLevelDiagLogger(\n optionsOrLogLevel.logLevel ?? DiagLogLevel.INFO,\n logger\n );\n // There already is an logger registered. We'll let it know before overwriting it.\n if (oldLogger && !optionsOrLogLevel.suppressOverrideMessage) {\n const stack = new Error().stack ?? '';\n oldLogger.warn(`Current logger will be overwritten from ${stack}`);\n newLogger.warn(\n `Current logger will overwrite one already registered from ${stack}`\n );\n }\n\n return registerGlobal('diag', newLogger, self, true);\n };\n\n self.setLogger = setLogger;\n\n self.disable = () => {\n unregisterGlobal(API_NAME, self);\n };\n\n self.createComponentLogger = (options: ComponentLoggerOptions) => {\n return new DiagComponentLogger(options);\n };\n\n self.verbose = _logProxy('verbose');\n self.debug = _logProxy('debug');\n self.info = _logProxy('info');\n self.warn = _logProxy('warn');\n self.error = _logProxy('error');\n }\n\n public setLogger!: DiagLoggerApi['setLogger'];\n /**\n *\n */\n public createComponentLogger!: (\n options: ComponentLoggerOptions\n ) => DiagLogger;\n\n // DiagLogger implementation\n public verbose!: DiagLogFunction;\n public debug!: DiagLogFunction;\n public info!: DiagLogFunction;\n public warn!: DiagLogFunction;\n public error!: DiagLogFunction;\n\n /**\n * Unregister the global logger and return to Noop\n */\n public disable!: () => void;\n}\n", "/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Context } from './types';\n\n/** Get a key to uniquely identify a context value */\nexport function createContextKey(description: string) {\n // The specification states that for the same input, multiple calls should\n // return different keys. Due to the nature of the JS dependency management\n // system, this creates problems where multiple versions of some package\n // could hold different keys for the same property.\n //\n // Therefore, we use Symbol.for which returns the same key for the same input.\n return Symbol.for(description);\n}\n\nclass BaseContext implements Context {\n private _currentContext!: Map;\n\n /**\n * Construct a new context which inherits values from an optional parent context.\n *\n * @param parentContext a context from which to inherit values\n */\n constructor(parentContext?: Map) {\n // for minification\n const self = this;\n\n self._currentContext = parentContext ? new Map(parentContext) : new Map();\n\n self.getValue = (key: symbol) => self._currentContext.get(key);\n\n self.setValue = (key: symbol, value: unknown): Context => {\n const context = new BaseContext(self._currentContext);\n context._currentContext.set(key, value);\n return context;\n };\n\n self.deleteValue = (key: symbol): Context => {\n const context = new BaseContext(self._currentContext);\n context._currentContext.delete(key);\n return context;\n };\n }\n\n /**\n * Get a value from the context.\n *\n * @param key key which identifies a context value\n */\n public getValue!: (key: symbol) => unknown;\n\n /**\n * Create a new context which inherits from this context and has\n * the given key set to the given value.\n *\n * @param key context key for which to set the value\n * @param value value to set for the given key\n */\n public setValue!: (key: symbol, value: unknown) => Context;\n\n /**\n * Return a new context which inherits from this context but does\n * not contain a value for the given key.\n *\n * @param key context key for which to clear a value\n */\n public deleteValue!: (key: symbol) => Context;\n}\n\n/** The root context is used as the default parent context when there is no active context */\nexport const ROOT_CONTEXT: Context = new BaseContext();\n", "/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ROOT_CONTEXT } from './context';\nimport * as types from './types';\n\nexport class NoopContextManager implements types.ContextManager {\n active(): types.Context {\n return ROOT_CONTEXT;\n }\n\n with ReturnType>(\n _context: types.Context,\n fn: F,\n thisArg?: ThisParameterType,\n ...args: A\n ): ReturnType {\n return fn.call(thisArg, ...args);\n }\n\n bind(_context: types.Context, target: T): T {\n return target;\n }\n\n enable(): this {\n return this;\n }\n\n disable(): this {\n return this;\n }\n}\n", "/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { NoopContextManager } from '../context/NoopContextManager';\nimport { Context, ContextManager } from '../context/types';\nimport {\n getGlobal,\n registerGlobal,\n unregisterGlobal,\n} from '../internal/global-utils';\nimport { DiagAPI } from './diag';\n\nconst API_NAME = 'context';\nconst NOOP_CONTEXT_MANAGER = new NoopContextManager();\n\n/**\n * Singleton object which represents the entry point to the OpenTelemetry Context API\n */\nexport class ContextAPI {\n private static _instance?: ContextAPI;\n\n /** Empty private constructor prevents end users from constructing a new instance of the API */\n private constructor() {}\n\n /** Get the singleton instance of the Context API */\n public static getInstance(): ContextAPI {\n if (!this._instance) {\n this._instance = new ContextAPI();\n }\n\n return this._instance;\n }\n\n /**\n * Set the current context manager.\n *\n * @returns true if the context manager was successfully registered, else false\n */\n public setGlobalContextManager(contextManager: ContextManager): boolean {\n return registerGlobal(API_NAME, contextManager, DiagAPI.instance());\n }\n\n /**\n * Get the currently active context\n */\n public active(): Context {\n return this._getContextManager().active();\n }\n\n /**\n * Execute a function with an active context\n *\n * @param context context to be active during function execution\n * @param fn function to execute in a context\n * @param thisArg optional receiver to be used for calling fn\n * @param args optional arguments forwarded to fn\n */\n public with ReturnType>(\n context: Context,\n fn: F,\n thisArg?: ThisParameterType,\n ...args: A\n ): ReturnType {\n return this._getContextManager().with(context, fn, thisArg, ...args);\n }\n\n /**\n * Bind a context to a target function or event emitter\n *\n * @param context context to bind to the event emitter or function. Defaults to the currently active context\n * @param target function or event emitter to bind\n */\n public bind(context: Context, target: T): T {\n return this._getContextManager().bind(context, target);\n }\n\n private _getContextManager(): ContextManager {\n return getGlobal(API_NAME) || NOOP_CONTEXT_MANAGER;\n }\n\n /** Disable and remove the global context manager */\n public disable() {\n this._getContextManager().disable();\n unregisterGlobal(API_NAME, DiagAPI.instance());\n }\n}\n", "/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport enum TraceFlags {\n /** Represents no flag set. */\n NONE = 0x0,\n /** Bit to represent whether trace is sampled in trace flags. */\n SAMPLED = 0x1 << 0,\n}\n", "/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { SpanContext } from './span_context';\nimport { TraceFlags } from './trace_flags';\n\nexport const INVALID_SPANID = '0000000000000000';\nexport const INVALID_TRACEID = '00000000000000000000000000000000';\nexport const INVALID_SPAN_CONTEXT: SpanContext = {\n traceId: INVALID_TRACEID,\n spanId: INVALID_SPANID,\n traceFlags: TraceFlags.NONE,\n};\n", "/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Exception } from '../common/Exception';\nimport { TimeInput } from '../common/Time';\nimport { SpanAttributes } from './attributes';\nimport { INVALID_SPAN_CONTEXT } from './invalid-span-constants';\nimport { Span } from './span';\nimport { SpanContext } from './span_context';\nimport { SpanStatus } from './status';\nimport { Link } from './link';\n\n/**\n * The NonRecordingSpan is the default {@link Span} that is used when no Span\n * implementation is available. All operations are no-op including context\n * propagation.\n */\nexport class NonRecordingSpan implements Span {\n constructor(\n private readonly _spanContext: SpanContext = INVALID_SPAN_CONTEXT\n ) {}\n\n // Returns a SpanContext.\n spanContext(): SpanContext {\n return this._spanContext;\n }\n\n // By default does nothing\n setAttribute(_key: string, _value: unknown): this {\n return this;\n }\n\n // By default does nothing\n setAttributes(_attributes: SpanAttributes): this {\n return this;\n }\n\n // By default does nothing\n addEvent(_name: string, _attributes?: SpanAttributes): this {\n return this;\n }\n\n addLink(_link: Link): this {\n return this;\n }\n\n addLinks(_links: Link[]): this {\n return this;\n }\n\n // By default does nothing\n setStatus(_status: SpanStatus): this {\n return this;\n }\n\n // By default does nothing\n updateName(_name: string): this {\n return this;\n }\n\n // By default does nothing\n end(_endTime?: TimeInput): void {}\n\n // isRecording always returns false for NonRecordingSpan.\n isRecording(): boolean {\n return false;\n }\n\n // By default does nothing\n recordException(_exception: Exception, _time?: TimeInput): void {}\n}\n", "/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { createContextKey } from '../context/context';\nimport { Context } from '../context/types';\nimport { Span } from './span';\nimport { SpanContext } from './span_context';\nimport { NonRecordingSpan } from './NonRecordingSpan';\nimport { ContextAPI } from '../api/context';\n\n/**\n * span key\n */\nconst SPAN_KEY = createContextKey('OpenTelemetry Context Key SPAN');\n\n/**\n * Return the span if one exists\n *\n * @param context context to get span from\n */\nexport function getSpan(context: Context): Span | undefined {\n return (context.getValue(SPAN_KEY) as Span) || undefined;\n}\n\n/**\n * Gets the span from the current context, if one exists.\n */\nexport function getActiveSpan(): Span | undefined {\n return getSpan(ContextAPI.getInstance().active());\n}\n\n/**\n * Set the span on a context\n *\n * @param context context to use as parent\n * @param span span to set active\n */\nexport function setSpan(context: Context, span: Span): Context {\n return context.setValue(SPAN_KEY, span);\n}\n\n/**\n * Remove current span stored in the context\n *\n * @param context context to delete span from\n */\nexport function deleteSpan(context: Context): Context {\n return context.deleteValue(SPAN_KEY);\n}\n\n/**\n * Wrap span context in a NoopSpan and set as span in a new\n * context\n *\n * @param context context to set active span on\n * @param spanContext span context to be wrapped\n */\nexport function setSpanContext(\n context: Context,\n spanContext: SpanContext\n): Context {\n return setSpan(context, new NonRecordingSpan(spanContext));\n}\n\n/**\n * Get the span context of the span if it exists.\n *\n * @param context context to get values from\n */\nexport function getSpanContext(context: Context): SpanContext | undefined {\n return getSpan(context)?.spanContext();\n}\n", "/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { INVALID_SPANID, INVALID_TRACEID } from './invalid-span-constants';\nimport { NonRecordingSpan } from './NonRecordingSpan';\nimport { Span } from './span';\nimport { SpanContext } from './span_context';\n\nconst VALID_TRACEID_REGEX = /^([0-9a-f]{32})$/i;\nconst VALID_SPANID_REGEX = /^[0-9a-f]{16}$/i;\n\nexport function isValidTraceId(traceId: string): boolean {\n return VALID_TRACEID_REGEX.test(traceId) && traceId !== INVALID_TRACEID;\n}\n\nexport function isValidSpanId(spanId: string): boolean {\n return VALID_SPANID_REGEX.test(spanId) && spanId !== INVALID_SPANID;\n}\n\n/**\n * Returns true if this {@link SpanContext} is valid.\n * @return true if this {@link SpanContext} is valid.\n */\nexport function isSpanContextValid(spanContext: SpanContext): boolean {\n return (\n isValidTraceId(spanContext.traceId) && isValidSpanId(spanContext.spanId)\n );\n}\n\n/**\n * Wrap the given {@link SpanContext} in a new non-recording {@link Span}\n *\n * @param spanContext span context to be wrapped\n * @returns a new non-recording {@link Span} with the provided context\n */\nexport function wrapSpanContext(spanContext: SpanContext): Span {\n return new NonRecordingSpan(spanContext);\n}\n", "/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ContextAPI } from '../api/context';\nimport { Context } from '../context/types';\nimport { getSpanContext, setSpan } from '../trace/context-utils';\nimport { NonRecordingSpan } from './NonRecordingSpan';\nimport { Span } from './span';\nimport { isSpanContextValid } from './spancontext-utils';\nimport { SpanOptions } from './SpanOptions';\nimport { SpanContext } from './span_context';\nimport { Tracer } from './tracer';\n\nconst contextApi = ContextAPI.getInstance();\n\n/**\n * No-op implementations of {@link Tracer}.\n */\nexport class NoopTracer implements Tracer {\n // startSpan starts a noop span.\n startSpan(\n name: string,\n options?: SpanOptions,\n context = contextApi.active()\n ): Span {\n const root = Boolean(options?.root);\n if (root) {\n return new NonRecordingSpan();\n }\n\n const parentFromContext = context && getSpanContext(context);\n\n if (\n isSpanContext(parentFromContext) &&\n isSpanContextValid(parentFromContext)\n ) {\n return new NonRecordingSpan(parentFromContext);\n } else {\n return new NonRecordingSpan();\n }\n }\n\n startActiveSpan ReturnType>(\n name: string,\n fn: F\n ): ReturnType;\n startActiveSpan ReturnType>(\n name: string,\n opts: SpanOptions | undefined,\n fn: F\n ): ReturnType;\n startActiveSpan ReturnType>(\n name: string,\n opts: SpanOptions | undefined,\n ctx: Context | undefined,\n fn: F\n ): ReturnType;\n startActiveSpan ReturnType>(\n name: string,\n arg2?: F | SpanOptions,\n arg3?: F | Context,\n arg4?: F\n ): ReturnType | undefined {\n let opts: SpanOptions | undefined;\n let ctx: Context | undefined;\n let fn: F;\n\n if (arguments.length < 2) {\n return;\n } else if (arguments.length === 2) {\n fn = arg2 as F;\n } else if (arguments.length === 3) {\n opts = arg2 as SpanOptions | undefined;\n fn = arg3 as F;\n } else {\n opts = arg2 as SpanOptions | undefined;\n ctx = arg3 as Context | undefined;\n fn = arg4 as F;\n }\n\n const parentContext = ctx ?? contextApi.active();\n const span = this.startSpan(name, opts, parentContext);\n const contextWithSpanSet = setSpan(parentContext, span);\n\n return contextApi.with(contextWithSpanSet, fn, undefined, span);\n }\n}\n\nfunction isSpanContext(spanContext: any): spanContext is SpanContext {\n return (\n typeof spanContext === 'object' &&\n typeof spanContext['spanId'] === 'string' &&\n typeof spanContext['traceId'] === 'string' &&\n typeof spanContext['traceFlags'] === 'number'\n );\n}\n", "/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Context } from '../context/types';\nimport { NoopTracer } from './NoopTracer';\nimport { Span } from './span';\nimport { SpanOptions } from './SpanOptions';\nimport { Tracer } from './tracer';\nimport { TracerOptions } from './tracer_options';\n\nconst NOOP_TRACER = new NoopTracer();\n\n/**\n * Proxy tracer provided by the proxy tracer provider\n */\nexport class ProxyTracer implements Tracer {\n // When a real implementation is provided, this will be it\n private _delegate?: Tracer;\n\n constructor(\n private _provider: TracerDelegator,\n public readonly name: string,\n public readonly version?: string,\n public readonly options?: TracerOptions\n ) {}\n\n startSpan(name: string, options?: SpanOptions, context?: Context): Span {\n return this._getTracer().startSpan(name, options, context);\n }\n\n startActiveSpan unknown>(\n _name: string,\n _options: F | SpanOptions,\n _context?: F | Context,\n _fn?: F\n ): ReturnType {\n const tracer = this._getTracer();\n return Reflect.apply(tracer.startActiveSpan, tracer, arguments);\n }\n\n /**\n * Try to get a tracer from the proxy tracer provider.\n * If the proxy tracer provider has no delegate, return a noop tracer.\n */\n private _getTracer() {\n if (this._delegate) {\n return this._delegate;\n }\n\n const tracer = this._provider.getDelegateTracer(\n this.name,\n this.version,\n this.options\n );\n\n if (!tracer) {\n return NOOP_TRACER;\n }\n\n this._delegate = tracer;\n return this._delegate;\n }\n}\n\nexport interface TracerDelegator {\n getDelegateTracer(\n name: string,\n version?: string,\n options?: TracerOptions\n ): Tracer | undefined;\n}\n", "/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { NoopTracer } from './NoopTracer';\nimport { Tracer } from './tracer';\nimport { TracerOptions } from './tracer_options';\nimport { TracerProvider } from './tracer_provider';\n\n/**\n * An implementation of the {@link TracerProvider} which returns an impotent\n * Tracer for all calls to `getTracer`.\n *\n * All operations are no-op.\n */\nexport class NoopTracerProvider implements TracerProvider {\n getTracer(\n _name?: string,\n _version?: string,\n _options?: TracerOptions\n ): Tracer {\n return new NoopTracer();\n }\n}\n", "/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Tracer } from './tracer';\nimport { TracerProvider } from './tracer_provider';\nimport { ProxyTracer } from './ProxyTracer';\nimport { NoopTracerProvider } from './NoopTracerProvider';\nimport { TracerOptions } from './tracer_options';\n\nconst NOOP_TRACER_PROVIDER = new NoopTracerProvider();\n\n/**\n * Tracer provider which provides {@link ProxyTracer}s.\n *\n * Before a delegate is set, tracers provided are NoOp.\n * When a delegate is set, traces are provided from the delegate.\n * When a delegate is set after tracers have already been provided,\n * all tracers already provided will use the provided delegate implementation.\n */\nexport class ProxyTracerProvider implements TracerProvider {\n private _delegate?: TracerProvider;\n\n /**\n * Get a {@link ProxyTracer}\n */\n getTracer(name: string, version?: string, options?: TracerOptions): Tracer {\n return (\n this.getDelegateTracer(name, version, options) ??\n new ProxyTracer(this, name, version, options)\n );\n }\n\n getDelegate(): TracerProvider {\n return this._delegate ?? NOOP_TRACER_PROVIDER;\n }\n\n /**\n * Set the delegate tracer provider\n */\n setDelegate(delegate: TracerProvider) {\n this._delegate = delegate;\n }\n\n getDelegateTracer(\n name: string,\n version?: string,\n options?: TracerOptions\n ): Tracer | undefined {\n return this._delegate?.getTracer(name, version, options);\n }\n}\n", "/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport interface SpanStatus {\n /** The status code of this message. */\n code: SpanStatusCode;\n /** A developer-facing error message. */\n message?: string;\n}\n\n/**\n * An enumeration of status codes.\n */\nexport enum SpanStatusCode {\n /**\n * The default status.\n */\n UNSET = 0,\n /**\n * The operation has been validated by an Application developer or\n * Operator to have completed successfully.\n */\n OK = 1,\n /**\n * The operation contains an error.\n */\n ERROR = 2,\n}\n", "/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n getGlobal,\n registerGlobal,\n unregisterGlobal,\n} from '../internal/global-utils';\nimport { ProxyTracerProvider } from '../trace/ProxyTracerProvider';\nimport {\n isSpanContextValid,\n wrapSpanContext,\n} from '../trace/spancontext-utils';\nimport { Tracer } from '../trace/tracer';\nimport { TracerProvider } from '../trace/tracer_provider';\nimport {\n deleteSpan,\n getActiveSpan,\n getSpan,\n getSpanContext,\n setSpan,\n setSpanContext,\n} from '../trace/context-utils';\nimport { DiagAPI } from './diag';\n\nconst API_NAME = 'trace';\n\n/**\n * Singleton object which represents the entry point to the OpenTelemetry Tracing API\n */\nexport class TraceAPI {\n private static _instance?: TraceAPI;\n\n private _proxyTracerProvider = new ProxyTracerProvider();\n\n /** Empty private constructor prevents end users from constructing a new instance of the API */\n private constructor() {}\n\n /** Get the singleton instance of the Trace API */\n public static getInstance(): TraceAPI {\n if (!this._instance) {\n this._instance = new TraceAPI();\n }\n\n return this._instance;\n }\n\n /**\n * Set the current global tracer.\n *\n * @returns true if the tracer provider was successfully registered, else false\n */\n public setGlobalTracerProvider(provider: TracerProvider): boolean {\n const success = registerGlobal(\n API_NAME,\n this._proxyTracerProvider,\n DiagAPI.instance()\n );\n if (success) {\n this._proxyTracerProvider.setDelegate(provider);\n }\n return success;\n }\n\n /**\n * Returns the global tracer provider.\n */\n public getTracerProvider(): TracerProvider {\n return getGlobal(API_NAME) || this._proxyTracerProvider;\n }\n\n /**\n * Returns a tracer from the global tracer provider.\n */\n public getTracer(name: string, version?: string): Tracer {\n return this.getTracerProvider().getTracer(name, version);\n }\n\n /** Remove the global tracer provider */\n public disable() {\n unregisterGlobal(API_NAME, DiagAPI.instance());\n this._proxyTracerProvider = new ProxyTracerProvider();\n }\n\n public wrapSpanContext = wrapSpanContext;\n\n public isSpanContextValid = isSpanContextValid;\n\n public deleteSpan = deleteSpan;\n\n public getSpan = getSpan;\n\n public getActiveSpan = getActiveSpan;\n\n public getSpanContext = getSpanContext;\n\n public setSpan = setSpan;\n\n public setSpanContext = setSpanContext;\n}\n", "/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Split module-level variable definition into separate files to allow\n// tree-shaking on each api instance.\nimport { TraceAPI } from './api/trace';\n/** Entrypoint for trace API */\nexport const trace = TraceAPI.getInstance();\n", "import { streamText } from \"ai\";\nconsole.log(streamText);\n"], "mappings": "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", "names": ["text", "_AISDKError", "name", "marker", "symbol", "_a", "_a", "symbol", "name", "marker", "_a", "symbol", "name", "marker", "text", "_a", "symbol", "name", "marker", "_a", "symbol", "name", "marker", "_a", "symbol", "name", "marker", "_a", "symbol", "name", "marker", "_a", "symbol", "name", "marker", "_TypeValidationError", "_a", "symbol", "resolve", "getErrorMessage", "zodSchema", "validator", "text", "SecureJSON", "atob", "name", "util", "object", "objectUtil", "errorUtil", "errorMap", "_a", "ctx", "result", "issues", "elements", "processed", "r", "_b", "ZodFirstPartyTypeKind", "emojiRegex", "object", "types", "x", "base", "jsonSchema", "name", "schema", "textStreamPart", "errorStreamPart", "validCodes", "NEWLINE", "zodSchema", "_a", "jsonSchema", "isCompatible", "_a", "DiagComponentLogger", "DiagLogLevel", "DiagAPI", "__spreadArray", "__read", "self", "_a", "BaseContext", "self", "NoopContextManager", "__spreadArray", "__read", "API_NAME", "ContextAPI", "_a", "__spreadArray", "__read", "TraceFlags", "NonRecordingSpan", "_a", "NoopTracer", "name", "ProxyTracer", "name", "NoopTracerProvider", "ProxyTracerProvider", "name", "_a", "SpanStatusCode", "API_NAME", "TraceAPI", "name", "name", "marker", "symbol", "_a", "InvalidArgumentError", "AISDKError", "getErrorMessage", "attributes", "name", "marker", "symbol", "_a", "_a", "symbol", "name", "marker", "symbol", "_a", "AISDKError", "text", "convertUint8ArrayToBase64", "convertBase64ToUint8Array", "InvalidArgumentError", "processBlock", "content", "tool", "i", "z", "_a", "originalGenerateId", "createIdGenerator", "name", "marker", "symbol", "_a", "AISDKError", "getErrorMessage", "object", "tool", "asSchema", "text", "name", "marker", "symbol", "_a", "AISDKError", "getErrorMessage", "asSchema", "tool", "safeValidateTypes", "safeParseJSON", "text", "originalGenerateId", "createIdGenerator", "name", "marker", "symbol", "_a", "AISDKError", "text", "asSchema", "parsePartialJson", "safeParseJSON", "safeValidateTypes", "result", "tool", "originalGenerateId", "createIdGenerator", "originalGenerateMessageId", "now", "generateId", "text", "_a", "InvalidArgumentError", "AISDKError", "self", "stepType", "stream", "doStreamSpan", "stepReasoning", "activeReasoningText", "getErrorMessage", "formatDataStreamPart", "name", "marker", "symbol", "_a", "_a", "symbol", "_a", "formatDataStreamPart", "mergeIntoDataStream", "toDataStream", "toDataStreamResponse", "toDataStreamInternal", "text"] }