@ai-sdk/provider-utils 2.0.0-canary.0 → 2.0.0-canary.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/combine-headers.ts","../src/convert-async-generator-to-readable-stream.ts","../src/extract-response-headers.ts","../src/generate-id.ts","../src/get-error-message.ts","../src/is-abort-error.ts","../src/load-api-key.ts","../src/load-setting.ts","../src/load-optional-setting.ts","../src/parse-json.ts","../src/validate-types.ts","../src/validator.ts","../src/post-to-api.ts","../src/remove-undefined-entries.ts","../src/response-handler.ts","../src/uint8-utils.ts","../src/without-trailing-slash.ts"],"sourcesContent":["export function combineHeaders(\n ...headers: Array<Record<string, string | undefined> | undefined>\n): Record<string, string | undefined> {\n return headers.reduce(\n (combinedHeaders, currentHeaders) => ({\n ...combinedHeaders,\n ...(currentHeaders ?? {}),\n }),\n {},\n ) as Record<string, string | undefined>;\n}\n","/**\n * Converts an AsyncGenerator to a ReadableStream.\n *\n * @template T - The type of elements produced by the AsyncGenerator.\n * @param {AsyncGenerator<T>} stream - The AsyncGenerator to convert.\n * @returns {ReadableStream<T>} - A ReadableStream that provides the same data as the AsyncGenerator.\n */\nexport function convertAsyncGeneratorToReadableStream<T>(\n stream: AsyncGenerator<T>,\n): ReadableStream<T> {\n return new ReadableStream<T>({\n /**\n * Called when the consumer wants to pull more data from the stream.\n *\n * @param {ReadableStreamDefaultController<T>} controller - The controller to enqueue data into the stream.\n * @returns {Promise<void>}\n */\n async pull(controller) {\n try {\n const { value, done } = await stream.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","/**\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<string, string> {\n const headers: Record<string, string> = {};\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/**\n * Creates an ID generator. The total length of the ID is the sum of the prefix, separator, and random part length.\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: 7.\n */\n//TODO change default size to 16 in 4.0\nexport const createIdGenerator = ({\n prefix,\n size: defaultSize = 7,\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/**\n * Generates a 7-character random string to use for IDs. Not secure.\n *\n * @param size - The size of the ID to generate. Default: 7.\n */\n//TODO change default size to 16 in 4.0\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","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","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","/**\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 {\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<T>} schema - The schema to use for parsing the JSON.\n * @returns {T} - The parsed object.\n */\nexport function parseJSON<T>(options: {\n text: string;\n schema: ZodSchema<T> | Validator<T>;\n}): T;\nexport function parseJSON<T>({\n text,\n schema,\n}: {\n text: string;\n schema?: ZodSchema<T> | Validator<T>;\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<T> =\n | { success: true; value: T }\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<JSONValue>;\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<T>} 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<T>(options: {\n text: string;\n schema: ZodSchema<T> | Validator<T>;\n}): ParseResult<T>;\nexport function safeParseJSON<T>({\n text,\n schema,\n}: {\n text: string;\n schema?: ZodSchema<T> | Validator<T>;\n}):\n | { success: true; value: T }\n | { success: false; error: JSONParseError | TypeValidationError } {\n try {\n const value = SecureJSON.parse(text);\n\n if (schema == null) {\n return {\n success: true,\n value: value as T,\n };\n }\n\n return safeValidateTypes({ value, schema });\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<T>} options.schema - The schema to use for validating the JSON.\n * @returns {T} - The typed object.\n */\nexport function validateTypes<T>({\n value,\n schema: inputSchema,\n}: {\n value: unknown;\n schema: z.Schema<T, z.ZodTypeDef, any> | Validator<T>;\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<T>} 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<T>({\n value,\n schema,\n}: {\n value: unknown;\n schema: z.Schema<T, z.ZodTypeDef, any> | Validator<T>;\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<OBJECT> =\n | { success: true; value: OBJECT }\n | { success: false; error: Error };\n\nexport type Validator<OBJECT = unknown> = {\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<OBJECT>;\n};\n\n/**\n * Create a validator.\n *\n * @param validate A validation function for the schema.\n */\nexport function validator<OBJECT>(\n validate?: undefined | ((value: unknown) => ValidationResult<OBJECT>),\n): Validator<OBJECT> {\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<OBJECT>(\n value: Validator<OBJECT> | z.Schema<OBJECT, z.ZodTypeDef, any>,\n): Validator<OBJECT> {\n return isValidator(value) ? value : zodValidator(value);\n}\n\nexport function zodValidator<OBJECT>(\n zodSchema: z.Schema<OBJECT, z.ZodTypeDef, any>,\n): Validator<OBJECT> {\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 <T>({\n url,\n headers,\n body,\n failedResponseHandler,\n successfulResponseHandler,\n abortSignal,\n fetch,\n}: {\n url: string;\n headers?: Record<string, string | undefined>;\n body: unknown;\n failedResponseHandler: ResponseHandler<APICallError>;\n successfulResponseHandler: ResponseHandler<T>;\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 <T>({\n url,\n headers = {},\n body,\n successfulResponseHandler,\n failedResponseHandler,\n abortSignal,\n fetch = getOriginalFetch(),\n}: {\n url: string;\n headers?: Record<string, string | undefined>;\n body: {\n content: string | FormData | Uint8Array;\n values: unknown;\n };\n failedResponseHandler: ResponseHandler<Error>;\n successfulResponseHandler: ResponseHandler<T>;\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<string, string> | 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 function removeUndefinedEntries<T>(\n record: Record<string, T | undefined>,\n): Record<string, T> {\n return Object.fromEntries(\n Object.entries(record).filter(([_key, value]) => value != null),\n ) as Record<string, T>;\n}\n","import { APICallError, EmptyResponseBodyError } from '@ai-sdk/provider';\nimport {\n EventSourceParserStream,\n ParsedEvent,\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<RETURN_TYPE> = (options: {\n url: string;\n requestBodyValues: unknown;\n response: Response;\n}) => PromiseLike<{\n value: RETURN_TYPE;\n responseHeaders?: Record<string, string>;\n}>;\n\nexport const createJsonErrorResponseHandler =\n <T>({\n errorSchema,\n errorToMessage,\n isRetryable,\n }: {\n errorSchema: ZodSchema<T>;\n errorToMessage: (error: T) => string;\n isRetryable?: (response: Response, error?: T) => boolean;\n }): ResponseHandler<APICallError> =>\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 <T>(\n chunkSchema: ZodSchema<T>,\n ): ResponseHandler<ReadableStream<ParseResult<T>>> =>\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<ParsedEvent, ParseResult<T>>({\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 <T>(\n chunkSchema: ZodSchema<T>,\n ): ResponseHandler<ReadableStream<ParseResult<T>>> =>\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<string, ParseResult<T>>({\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 <T>(responseSchema: ZodSchema<T>): ResponseHandler<T> =>\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 };\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"],"mappings":"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","names":["TypeValidationError","validator","TypeValidationError","APICallError","APICallError"]}
1
+ {"version":3,"sources":["../src/combine-headers.ts","../src/convert-async-iterator-to-readable-stream.ts","../src/extract-response-headers.ts","../src/generate-id.ts","../src/get-error-message.ts","../src/is-abort-error.ts","../src/load-api-key.ts","../src/load-optional-setting.ts","../src/load-setting.ts","../src/parse-json.ts","../src/validate-types.ts","../src/validator.ts","../src/post-to-api.ts","../src/remove-undefined-entries.ts","../src/response-handler.ts","../src/uint8-utils.ts","../src/without-trailing-slash.ts"],"sourcesContent":["export function combineHeaders(\n ...headers: Array<Record<string, string | undefined> | undefined>\n): Record<string, string | undefined> {\n return headers.reduce(\n (combinedHeaders, currentHeaders) => ({\n ...combinedHeaders,\n ...(currentHeaders ?? {}),\n }),\n {},\n ) as Record<string, string | undefined>;\n}\n","/**\n * Converts an AsyncIterator to a ReadableStream.\n *\n * @template T - The type of elements produced by the AsyncIterator.\n * @param { <T>} iterator - The AsyncIterator to convert.\n * @returns {ReadableStream<T>} - A ReadableStream that provides the same data as the AsyncIterator.\n */\nexport function convertAsyncIteratorToReadableStream<T>(\n iterator: AsyncIterator<T>,\n): ReadableStream<T> {\n return new ReadableStream<T>({\n /**\n * Called when the consumer wants to pull more data from the stream.\n *\n * @param {ReadableStreamDefaultController<T>} controller - The controller to enqueue data into the stream.\n * @returns {Promise<void>}\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","/**\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<string, string> {\n const headers: Record<string, string> = {};\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/**\n * Creates an ID generator. The total length of the ID is the sum of the prefix, separator, and random part length.\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: 7.\n */\n//TODO change default size to 16 in 4.0\nexport const createIdGenerator = ({\n prefix,\n size: defaultSize = 7,\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/**\n * Generates a 7-character random string to use for IDs. Not secure.\n *\n * @param size - The size of the ID to generate. Default: 7.\n */\n//TODO change default size to 16 in 4.0\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","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<T>} schema - The schema to use for parsing the JSON.\n * @returns {T} - The parsed object.\n */\nexport function parseJSON<T>(options: {\n text: string;\n schema: ZodSchema<T> | Validator<T>;\n}): T;\nexport function parseJSON<T>({\n text,\n schema,\n}: {\n text: string;\n schema?: ZodSchema<T> | Validator<T>;\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<T> =\n | { success: true; value: T }\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<JSONValue>;\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<T>} 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<T>(options: {\n text: string;\n schema: ZodSchema<T> | Validator<T>;\n}): ParseResult<T>;\nexport function safeParseJSON<T>({\n text,\n schema,\n}: {\n text: string;\n schema?: ZodSchema<T> | Validator<T>;\n}):\n | { success: true; value: T }\n | { success: false; error: JSONParseError | TypeValidationError } {\n try {\n const value = SecureJSON.parse(text);\n\n if (schema == null) {\n return {\n success: true,\n value: value as T,\n };\n }\n\n return safeValidateTypes({ value, schema });\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<T>} options.schema - The schema to use for validating the JSON.\n * @returns {T} - The typed object.\n */\nexport function validateTypes<T>({\n value,\n schema: inputSchema,\n}: {\n value: unknown;\n schema: z.Schema<T, z.ZodTypeDef, any> | Validator<T>;\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<T>} 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<T>({\n value,\n schema,\n}: {\n value: unknown;\n schema: z.Schema<T, z.ZodTypeDef, any> | Validator<T>;\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<OBJECT> =\n | { success: true; value: OBJECT }\n | { success: false; error: Error };\n\nexport type Validator<OBJECT = unknown> = {\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<OBJECT>;\n};\n\n/**\n * Create a validator.\n *\n * @param validate A validation function for the schema.\n */\nexport function validator<OBJECT>(\n validate?: undefined | ((value: unknown) => ValidationResult<OBJECT>),\n): Validator<OBJECT> {\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<OBJECT>(\n value: Validator<OBJECT> | z.Schema<OBJECT, z.ZodTypeDef, any>,\n): Validator<OBJECT> {\n return isValidator(value) ? value : zodValidator(value);\n}\n\nexport function zodValidator<OBJECT>(\n zodSchema: z.Schema<OBJECT, z.ZodTypeDef, any>,\n): Validator<OBJECT> {\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 <T>({\n url,\n headers,\n body,\n failedResponseHandler,\n successfulResponseHandler,\n abortSignal,\n fetch,\n}: {\n url: string;\n headers?: Record<string, string | undefined>;\n body: unknown;\n failedResponseHandler: ResponseHandler<APICallError>;\n successfulResponseHandler: ResponseHandler<T>;\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 <T>({\n url,\n headers = {},\n body,\n successfulResponseHandler,\n failedResponseHandler,\n abortSignal,\n fetch = getOriginalFetch(),\n}: {\n url: string;\n headers?: Record<string, string | undefined>;\n body: {\n content: string | FormData | Uint8Array;\n values: unknown;\n };\n failedResponseHandler: ResponseHandler<Error>;\n successfulResponseHandler: ResponseHandler<T>;\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<string, string> | 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 function removeUndefinedEntries<T>(\n record: Record<string, T | undefined>,\n): Record<string, T> {\n return Object.fromEntries(\n Object.entries(record).filter(([_key, value]) => value != null),\n ) as Record<string, 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<RETURN_TYPE> = (options: {\n url: string;\n requestBodyValues: unknown;\n response: Response;\n}) => PromiseLike<{\n value: RETURN_TYPE;\n responseHeaders?: Record<string, string>;\n}>;\n\nexport const createJsonErrorResponseHandler =\n <T>({\n errorSchema,\n errorToMessage,\n isRetryable,\n }: {\n errorSchema: ZodSchema<T>;\n errorToMessage: (error: T) => string;\n isRetryable?: (response: Response, error?: T) => boolean;\n }): ResponseHandler<APICallError> =>\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 <T>(\n chunkSchema: ZodSchema<T>,\n ): ResponseHandler<ReadableStream<ParseResult<T>>> =>\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<EventSourceMessage, ParseResult<T>>({\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 <T>(\n chunkSchema: ZodSchema<T>,\n ): ResponseHandler<ReadableStream<ParseResult<T>>> =>\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<string, ParseResult<T>>({\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 <T>(responseSchema: ZodSchema<T>): ResponseHandler<T> =>\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 };\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"],"mappings":"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","names":["TypeValidationError","validator","TypeValidationError","APICallError","APICallError"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ai-sdk/provider-utils",
3
- "version": "2.0.0-canary.0",
3
+ "version": "2.0.0-canary.2",
4
4
  "license": "Apache-2.0",
5
5
  "sideEffects": false,
6
6
  "main": "./dist/index.js",
@@ -27,15 +27,15 @@
27
27
  },
28
28
  "dependencies": {
29
29
  "@ai-sdk/provider": "1.0.0-canary.0",
30
- "eventsource-parser": "^1.1.2",
31
- "nanoid": "^3.3.7",
30
+ "eventsource-parser": "^3.0.0",
31
+ "nanoid": "^5.0.8",
32
32
  "secure-json-parse": "^2.7.0"
33
33
  },
34
34
  "devDependencies": {
35
35
  "@types/node": "^18",
36
36
  "msw": "2.3.1",
37
37
  "tsup": "^8",
38
- "typescript": "5.5.4",
38
+ "typescript": "5.6.3",
39
39
  "zod": "3.23.8",
40
40
  "@vercel/ai-tsconfig": "0.0.0"
41
41
  },
@@ -74,9 +74,4 @@ declare function describeWithTestServer(description: string, responses: Array<Te
74
74
  streamController: ReadableStreamDefaultController<string>;
75
75
  }) => void): void;
76
76
 
77
- /**
78
- * @deprecated Use `convertReadableStreamToArray` instead.
79
- */
80
- declare const convertStreamToArray: typeof convertReadableStreamToArray;
81
-
82
- export { JsonTestServer, StreamingTestServer, type TestServerJsonBodyType, type TestServerResponse, convertArrayToAsyncIterable, convertArrayToReadableStream, convertAsyncIterableToArray, convertReadableStreamToArray, convertResponseStreamToArray, convertStreamToArray, describeWithTestServer, withTestServer };
77
+ export { JsonTestServer, StreamingTestServer, type TestServerJsonBodyType, type TestServerResponse, convertArrayToAsyncIterable, convertArrayToReadableStream, convertAsyncIterableToArray, convertReadableStreamToArray, convertResponseStreamToArray, describeWithTestServer, withTestServer };
@@ -74,9 +74,4 @@ declare function describeWithTestServer(description: string, responses: Array<Te
74
74
  streamController: ReadableStreamDefaultController<string>;
75
75
  }) => void): void;
76
76
 
77
- /**
78
- * @deprecated Use `convertReadableStreamToArray` instead.
79
- */
80
- declare const convertStreamToArray: typeof convertReadableStreamToArray;
81
-
82
- export { JsonTestServer, StreamingTestServer, type TestServerJsonBodyType, type TestServerResponse, convertArrayToAsyncIterable, convertArrayToReadableStream, convertAsyncIterableToArray, convertReadableStreamToArray, convertResponseStreamToArray, convertStreamToArray, describeWithTestServer, withTestServer };
77
+ export { JsonTestServer, StreamingTestServer, type TestServerJsonBodyType, type TestServerResponse, convertArrayToAsyncIterable, convertArrayToReadableStream, convertAsyncIterableToArray, convertReadableStreamToArray, convertResponseStreamToArray, describeWithTestServer, withTestServer };
@@ -64,7 +64,6 @@ __export(test_exports, {
64
64
  convertAsyncIterableToArray: () => convertAsyncIterableToArray,
65
65
  convertReadableStreamToArray: () => convertReadableStreamToArray,
66
66
  convertResponseStreamToArray: () => convertResponseStreamToArray,
67
- convertStreamToArray: () => convertStreamToArray,
68
67
  describeWithTestServer: () => describeWithTestServer,
69
68
  withTestServer: () => withTestServer
70
69
  });
@@ -209,7 +208,7 @@ invariant.as = (ErrorConstructor, predicate, message3, ...positionals) => {
209
208
  }
210
209
  };
211
210
 
212
- // ../../node_modules/.pnpm/msw@2.3.1_typescript@5.5.4/node_modules/msw/lib/core/utils/internal/devUtils.mjs
211
+ // ../../node_modules/.pnpm/msw@2.3.1_typescript@5.6.3/node_modules/msw/lib/core/utils/internal/devUtils.mjs
213
212
  var LIBRARY_PREFIX = "[MSW]";
214
213
  function formatMessage(message3, ...positionals) {
215
214
  const interpolatedMessage = format(message3, ...positionals);
@@ -233,7 +232,7 @@ var InternalError = class extends Error {
233
232
  }
234
233
  };
235
234
 
236
- // ../../node_modules/.pnpm/msw@2.3.1_typescript@5.5.4/node_modules/msw/lib/core/utils/internal/checkGlobals.mjs
235
+ // ../../node_modules/.pnpm/msw@2.3.1_typescript@5.6.3/node_modules/msw/lib/core/utils/internal/checkGlobals.mjs
237
236
  function checkGlobals() {
238
237
  invariant(
239
238
  typeof URL !== "undefined",
@@ -408,7 +407,7 @@ var _Emitter = class {
408
407
  var Emitter = _Emitter;
409
408
  Emitter.defaultMaxListeners = 10;
410
409
 
411
- // ../../node_modules/.pnpm/msw@2.3.1_typescript@5.5.4/node_modules/msw/lib/core/utils/internal/pipeEvents.mjs
410
+ // ../../node_modules/.pnpm/msw@2.3.1_typescript@5.6.3/node_modules/msw/lib/core/utils/internal/pipeEvents.mjs
412
411
  function pipeEvents(source, destination) {
413
412
  const rawEmit = source.emit;
414
413
  if (rawEmit._isPiped) {
@@ -422,14 +421,14 @@ function pipeEvents(source, destination) {
422
421
  source.emit = sourceEmit;
423
422
  }
424
423
 
425
- // ../../node_modules/.pnpm/msw@2.3.1_typescript@5.5.4/node_modules/msw/lib/core/utils/internal/toReadonlyArray.mjs
424
+ // ../../node_modules/.pnpm/msw@2.3.1_typescript@5.6.3/node_modules/msw/lib/core/utils/internal/toReadonlyArray.mjs
426
425
  function toReadonlyArray(source) {
427
426
  const clone = [...source];
428
427
  Object.freeze(clone);
429
428
  return clone;
430
429
  }
431
430
 
432
- // ../../node_modules/.pnpm/msw@2.3.1_typescript@5.5.4/node_modules/msw/lib/core/utils/internal/Disposable.mjs
431
+ // ../../node_modules/.pnpm/msw@2.3.1_typescript@5.6.3/node_modules/msw/lib/core/utils/internal/Disposable.mjs
433
432
  var Disposable = class {
434
433
  constructor() {
435
434
  __publicField(this, "subscriptions", []);
@@ -442,7 +441,7 @@ var Disposable = class {
442
441
  }
443
442
  };
444
443
 
445
- // ../../node_modules/.pnpm/msw@2.3.1_typescript@5.5.4/node_modules/msw/lib/core/SetupApi.mjs
444
+ // ../../node_modules/.pnpm/msw@2.3.1_typescript@5.6.3/node_modules/msw/lib/core/SetupApi.mjs
446
445
  var InMemoryHandlersController = class {
447
446
  constructor(initialHandlers) {
448
447
  __publicField(this, "handlers");
@@ -520,7 +519,7 @@ var SetupApi = class extends Disposable {
520
519
  }
521
520
  };
522
521
 
523
- // ../../node_modules/.pnpm/msw@2.3.1_typescript@5.5.4/node_modules/msw/lib/core/utils/internal/getCallFrame.mjs
522
+ // ../../node_modules/.pnpm/msw@2.3.1_typescript@5.6.3/node_modules/msw/lib/core/utils/internal/getCallFrame.mjs
524
523
  var SOURCE_FRAME = /[\/\\]msw[\/\\]src[\/\\](.+)/;
525
524
  var BUILD_FRAME = /(node_modules)?[\/\\]lib[\/\\](core|browser|node|native|iife)[\/\\]|^[^\/\\]*$/;
526
525
  function getCallFrame(error3) {
@@ -539,7 +538,7 @@ function getCallFrame(error3) {
539
538
  return declarationPath;
540
539
  }
541
540
 
542
- // ../../node_modules/.pnpm/msw@2.3.1_typescript@5.5.4/node_modules/msw/lib/core/utils/internal/isIterable.mjs
541
+ // ../../node_modules/.pnpm/msw@2.3.1_typescript@5.6.3/node_modules/msw/lib/core/utils/internal/isIterable.mjs
543
542
  function isIterable(fn) {
544
543
  if (!fn) {
545
544
  return false;
@@ -547,7 +546,7 @@ function isIterable(fn) {
547
546
  return typeof fn[Symbol.iterator] == "function";
548
547
  }
549
548
 
550
- // ../../node_modules/.pnpm/msw@2.3.1_typescript@5.5.4/node_modules/msw/lib/core/handlers/RequestHandler.mjs
549
+ // ../../node_modules/.pnpm/msw@2.3.1_typescript@5.6.3/node_modules/msw/lib/core/handlers/RequestHandler.mjs
551
550
  var _RequestHandler = class _RequestHandler {
552
551
  constructor(args) {
553
552
  __publicField(this, "info");
@@ -702,12 +701,12 @@ var _RequestHandler = class _RequestHandler {
702
701
  __publicField(_RequestHandler, "cache", /* @__PURE__ */ new WeakMap());
703
702
  var RequestHandler = _RequestHandler;
704
703
 
705
- // ../../node_modules/.pnpm/msw@2.3.1_typescript@5.5.4/node_modules/msw/lib/core/utils/internal/isStringEqual.mjs
704
+ // ../../node_modules/.pnpm/msw@2.3.1_typescript@5.6.3/node_modules/msw/lib/core/utils/internal/isStringEqual.mjs
706
705
  function isStringEqual(actual, expected) {
707
706
  return actual.toLowerCase() === expected.toLowerCase();
708
707
  }
709
708
 
710
- // ../../node_modules/.pnpm/msw@2.3.1_typescript@5.5.4/node_modules/msw/lib/core/utils/logging/getStatusCodeColor.mjs
709
+ // ../../node_modules/.pnpm/msw@2.3.1_typescript@5.6.3/node_modules/msw/lib/core/utils/logging/getStatusCodeColor.mjs
711
710
  function getStatusCodeColor(status) {
712
711
  if (status < 300) {
713
712
  return "#69AB32";
@@ -718,13 +717,13 @@ function getStatusCodeColor(status) {
718
717
  return "#E95F5D";
719
718
  }
720
719
 
721
- // ../../node_modules/.pnpm/msw@2.3.1_typescript@5.5.4/node_modules/msw/lib/core/utils/logging/getTimestamp.mjs
720
+ // ../../node_modules/.pnpm/msw@2.3.1_typescript@5.6.3/node_modules/msw/lib/core/utils/logging/getTimestamp.mjs
722
721
  function getTimestamp() {
723
722
  const now = /* @__PURE__ */ new Date();
724
723
  return [now.getHours(), now.getMinutes(), now.getSeconds()].map(String).map((chunk) => chunk.slice(0, 2)).map((chunk) => chunk.padStart(2, "0")).join(":");
725
724
  }
726
725
 
727
- // ../../node_modules/.pnpm/msw@2.3.1_typescript@5.5.4/node_modules/msw/lib/core/utils/logging/serializeRequest.mjs
726
+ // ../../node_modules/.pnpm/msw@2.3.1_typescript@5.6.3/node_modules/msw/lib/core/utils/logging/serializeRequest.mjs
728
727
  async function serializeRequest(request2) {
729
728
  const requestClone = request2.clone();
730
729
  const requestText = await requestClone.text();
@@ -903,7 +902,7 @@ var require_statuses = __commonJS({
903
902
  var import_statuses = __toESM2(require_statuses(), 1);
904
903
  var source_default = import_statuses.default;
905
904
 
906
- // ../../node_modules/.pnpm/msw@2.3.1_typescript@5.5.4/node_modules/msw/lib/core/utils/logging/serializeResponse.mjs
905
+ // ../../node_modules/.pnpm/msw@2.3.1_typescript@5.6.3/node_modules/msw/lib/core/utils/logging/serializeResponse.mjs
907
906
  var { message } = source_default;
908
907
  async function serializeResponse(response) {
909
908
  const responseClone = response.clone();
@@ -1849,7 +1848,7 @@ function getCleanUrl(url, isAbsolute = true) {
1849
1848
  return [isAbsolute && url.origin, url.pathname].filter(Boolean).join("");
1850
1849
  }
1851
1850
 
1852
- // ../../node_modules/.pnpm/msw@2.3.1_typescript@5.5.4/node_modules/msw/lib/core/utils/url/cleanUrl.mjs
1851
+ // ../../node_modules/.pnpm/msw@2.3.1_typescript@5.6.3/node_modules/msw/lib/core/utils/url/cleanUrl.mjs
1853
1852
  var REDUNDANT_CHARACTERS_EXP = /[\?|#].*$/g;
1854
1853
  function getSearchParams(path) {
1855
1854
  return new URL(`/${path}`, "http://localhost").searchParams;
@@ -1861,12 +1860,12 @@ function cleanUrl(path) {
1861
1860
  return path.replace(REDUNDANT_CHARACTERS_EXP, "");
1862
1861
  }
1863
1862
 
1864
- // ../../node_modules/.pnpm/msw@2.3.1_typescript@5.5.4/node_modules/msw/lib/core/utils/url/isAbsoluteUrl.mjs
1863
+ // ../../node_modules/.pnpm/msw@2.3.1_typescript@5.6.3/node_modules/msw/lib/core/utils/url/isAbsoluteUrl.mjs
1865
1864
  function isAbsoluteUrl(url) {
1866
1865
  return /^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(url);
1867
1866
  }
1868
1867
 
1869
- // ../../node_modules/.pnpm/msw@2.3.1_typescript@5.5.4/node_modules/msw/lib/core/utils/url/getAbsoluteUrl.mjs
1868
+ // ../../node_modules/.pnpm/msw@2.3.1_typescript@5.6.3/node_modules/msw/lib/core/utils/url/getAbsoluteUrl.mjs
1870
1869
  function getAbsoluteUrl(path, baseUrl) {
1871
1870
  if (isAbsoluteUrl(path)) {
1872
1871
  return path;
@@ -1881,7 +1880,7 @@ function getAbsoluteUrl(path, baseUrl) {
1881
1880
  ) : path;
1882
1881
  }
1883
1882
 
1884
- // ../../node_modules/.pnpm/msw@2.3.1_typescript@5.5.4/node_modules/msw/lib/core/utils/matching/normalizePath.mjs
1883
+ // ../../node_modules/.pnpm/msw@2.3.1_typescript@5.6.3/node_modules/msw/lib/core/utils/matching/normalizePath.mjs
1885
1884
  function normalizePath(path, baseUrl) {
1886
1885
  if (path instanceof RegExp) {
1887
1886
  return path;
@@ -1890,7 +1889,7 @@ function normalizePath(path, baseUrl) {
1890
1889
  return cleanUrl(maybeAbsoluteUrl);
1891
1890
  }
1892
1891
 
1893
- // ../../node_modules/.pnpm/msw@2.3.1_typescript@5.5.4/node_modules/msw/lib/core/utils/matching/matchRequestUrl.mjs
1892
+ // ../../node_modules/.pnpm/msw@2.3.1_typescript@5.6.3/node_modules/msw/lib/core/utils/matching/matchRequestUrl.mjs
1894
1893
  function coercePath(path) {
1895
1894
  return path.replace(
1896
1895
  /([:a-zA-Z_-]*)(\*{1,2})+/g,
@@ -1915,7 +1914,7 @@ function matchRequestUrl(url, path, baseUrl) {
1915
1914
  };
1916
1915
  }
1917
1916
 
1918
- // ../../node_modules/.pnpm/msw@2.3.1_typescript@5.5.4/node_modules/msw/lib/core/utils/request/toPublicUrl.mjs
1917
+ // ../../node_modules/.pnpm/msw@2.3.1_typescript@5.6.3/node_modules/msw/lib/core/utils/request/toPublicUrl.mjs
1919
1918
  function toPublicUrl(url) {
1920
1919
  if (typeof location === "undefined") {
1921
1920
  return url.toString();
@@ -2430,7 +2429,7 @@ Invalid value has been removed from localStorage to prevent subsequent failed pa
2430
2429
  };
2431
2430
  var store = new CookieStore();
2432
2431
 
2433
- // ../../node_modules/.pnpm/msw@2.3.1_typescript@5.5.4/node_modules/msw/lib/core/utils/request/getRequestCookies.mjs
2432
+ // ../../node_modules/.pnpm/msw@2.3.1_typescript@5.6.3/node_modules/msw/lib/core/utils/request/getRequestCookies.mjs
2434
2433
  function getAllDocumentCookies() {
2435
2434
  return source_default2.parse(document.cookie);
2436
2435
  }
@@ -2473,7 +2472,7 @@ function getAllRequestCookies(request2) {
2473
2472
  };
2474
2473
  }
2475
2474
 
2476
- // ../../node_modules/.pnpm/msw@2.3.1_typescript@5.5.4/node_modules/msw/lib/core/handlers/HttpHandler.mjs
2475
+ // ../../node_modules/.pnpm/msw@2.3.1_typescript@5.6.3/node_modules/msw/lib/core/handlers/HttpHandler.mjs
2477
2476
  var HttpMethods = /* @__PURE__ */ ((HttpMethods2) => {
2478
2477
  HttpMethods2["HEAD"] = "HEAD";
2479
2478
  HttpMethods2["GET"] = "GET";
@@ -2563,7 +2562,7 @@ var HttpHandler = class extends RequestHandler {
2563
2562
  }
2564
2563
  };
2565
2564
 
2566
- // ../../node_modules/.pnpm/msw@2.3.1_typescript@5.5.4/node_modules/msw/lib/core/http.mjs
2565
+ // ../../node_modules/.pnpm/msw@2.3.1_typescript@5.6.3/node_modules/msw/lib/core/http.mjs
2567
2566
  function createHttpHandler(method) {
2568
2567
  return (path, resolver, options = {}) => {
2569
2568
  return new HttpHandler(method, path, resolver, options);
@@ -3006,7 +3005,7 @@ var until = async (promise) => {
3006
3005
  }
3007
3006
  };
3008
3007
 
3009
- // ../../node_modules/.pnpm/msw@2.3.1_typescript@5.5.4/node_modules/msw/lib/core/utils/executeHandlers.mjs
3008
+ // ../../node_modules/.pnpm/msw@2.3.1_typescript@5.6.3/node_modules/msw/lib/core/utils/executeHandlers.mjs
3010
3009
  var executeHandlers = async ({
3011
3010
  request: request2,
3012
3011
  requestId,
@@ -3034,7 +3033,7 @@ var executeHandlers = async ({
3034
3033
  return null;
3035
3034
  };
3036
3035
 
3037
- // ../../node_modules/.pnpm/msw@2.3.1_typescript@5.5.4/node_modules/msw/lib/core/utils/request/onUnhandledRequest.mjs
3036
+ // ../../node_modules/.pnpm/msw@2.3.1_typescript@5.6.3/node_modules/msw/lib/core/utils/request/onUnhandledRequest.mjs
3038
3037
  async function onUnhandledRequest(request2, strategy = "warn") {
3039
3038
  const url = new URL(request2.url);
3040
3039
  const publicUrl = toPublicUrl(url) + url.search;
@@ -3082,13 +3081,13 @@ Read more: https://mswjs.io/docs/getting-started/mocks`;
3082
3081
  applyStrategy(strategy);
3083
3082
  }
3084
3083
 
3085
- // ../../node_modules/.pnpm/msw@2.3.1_typescript@5.5.4/node_modules/msw/lib/core/utils/request/readResponseCookies.mjs
3084
+ // ../../node_modules/.pnpm/msw@2.3.1_typescript@5.6.3/node_modules/msw/lib/core/utils/request/readResponseCookies.mjs
3086
3085
  function readResponseCookies(request2, response) {
3087
3086
  store.add({ ...request2, url: request2.url.toString() }, response);
3088
3087
  store.persist();
3089
3088
  }
3090
3089
 
3091
- // ../../node_modules/.pnpm/msw@2.3.1_typescript@5.5.4/node_modules/msw/lib/core/utils/handleRequest.mjs
3090
+ // ../../node_modules/.pnpm/msw@2.3.1_typescript@5.6.3/node_modules/msw/lib/core/utils/handleRequest.mjs
3092
3091
  async function handleRequest(request2, requestId, handlers, options, emitter, handleRequestOptions) {
3093
3092
  var _a3, _b2, _c2, _d, _e, _f;
3094
3093
  emitter.emit("request:start", { request: request2, requestId });
@@ -3144,7 +3143,7 @@ async function handleRequest(request2, requestId, handlers, options, emitter, ha
3144
3143
  return transformedResponse;
3145
3144
  }
3146
3145
 
3147
- // ../../node_modules/.pnpm/msw@2.3.1_typescript@5.5.4/node_modules/msw/lib/core/utils/HttpResponse/decorators.mjs
3146
+ // ../../node_modules/.pnpm/msw@2.3.1_typescript@5.6.3/node_modules/msw/lib/core/utils/HttpResponse/decorators.mjs
3148
3147
  var { message: message2 } = source_default;
3149
3148
  function normalizeResponseInit(init = {}) {
3150
3149
  const status = (init == null ? void 0 : init.status) || 200;
@@ -3176,7 +3175,7 @@ function decorateResponse(response, init) {
3176
3175
  return response;
3177
3176
  }
3178
3177
 
3179
- // ../../node_modules/.pnpm/msw@2.3.1_typescript@5.5.4/node_modules/msw/lib/core/HttpResponse.mjs
3178
+ // ../../node_modules/.pnpm/msw@2.3.1_typescript@5.6.3/node_modules/msw/lib/core/HttpResponse.mjs
3180
3179
  var HttpResponse = class _HttpResponse extends Response {
3181
3180
  constructor(body, init) {
3182
3181
  const responseInit = normalizeResponseInit(init);
@@ -3267,10 +3266,10 @@ var HttpResponse = class _HttpResponse extends Response {
3267
3266
  }
3268
3267
  };
3269
3268
 
3270
- // ../../node_modules/.pnpm/msw@2.3.1_typescript@5.5.4/node_modules/msw/lib/core/index.mjs
3269
+ // ../../node_modules/.pnpm/msw@2.3.1_typescript@5.6.3/node_modules/msw/lib/core/index.mjs
3271
3270
  checkGlobals();
3272
3271
 
3273
- // ../../node_modules/.pnpm/msw@2.3.1_typescript@5.5.4/node_modules/msw/lib/node/index.mjs
3272
+ // ../../node_modules/.pnpm/msw@2.3.1_typescript@5.6.3/node_modules/msw/lib/node/index.mjs
3274
3273
  var import_node_async_hooks = require("async_hooks");
3275
3274
 
3276
3275
  // ../../node_modules/.pnpm/@open-draft+deferred-promise@2.2.0/node_modules/@open-draft/deferred-promise/build/index.mjs
@@ -5145,12 +5144,12 @@ function createNetworkError(cause) {
5145
5144
  });
5146
5145
  }
5147
5146
 
5148
- // ../../node_modules/.pnpm/msw@2.3.1_typescript@5.5.4/node_modules/msw/lib/core/utils/internal/isObject.mjs
5147
+ // ../../node_modules/.pnpm/msw@2.3.1_typescript@5.6.3/node_modules/msw/lib/core/utils/internal/isObject.mjs
5149
5148
  function isObject2(value) {
5150
5149
  return value != null && typeof value === "object" && !Array.isArray(value);
5151
5150
  }
5152
5151
 
5153
- // ../../node_modules/.pnpm/msw@2.3.1_typescript@5.5.4/node_modules/msw/lib/core/utils/internal/mergeRight.mjs
5152
+ // ../../node_modules/.pnpm/msw@2.3.1_typescript@5.6.3/node_modules/msw/lib/core/utils/internal/mergeRight.mjs
5154
5153
  function mergeRight(left, right) {
5155
5154
  return Object.entries(right).reduce(
5156
5155
  (result, [key, rightValue]) => {
@@ -5170,7 +5169,7 @@ function mergeRight(left, right) {
5170
5169
  );
5171
5170
  }
5172
5171
 
5173
- // ../../node_modules/.pnpm/msw@2.3.1_typescript@5.5.4/node_modules/msw/lib/node/index.mjs
5172
+ // ../../node_modules/.pnpm/msw@2.3.1_typescript@5.6.3/node_modules/msw/lib/node/index.mjs
5174
5173
  var DEFAULT_LISTEN_OPTIONS = {
5175
5174
  onUnhandledRequest: "warn"
5176
5175
  };
@@ -5578,9 +5577,6 @@ function describeWithTestServer(description, responses, testFunction) {
5578
5577
  });
5579
5578
  });
5580
5579
  }
5581
-
5582
- // src/test/index.ts
5583
- var convertStreamToArray = convertReadableStreamToArray;
5584
5580
  // Annotate the CommonJS export names for ESM import in node:
5585
5581
  0 && (module.exports = {
5586
5582
  JsonTestServer,
@@ -5590,7 +5586,6 @@ var convertStreamToArray = convertReadableStreamToArray;
5590
5586
  convertAsyncIterableToArray,
5591
5587
  convertReadableStreamToArray,
5592
5588
  convertResponseStreamToArray,
5593
- convertStreamToArray,
5594
5589
  describeWithTestServer,
5595
5590
  withTestServer
5596
5591
  });