/* * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ import * as z from "zod/v3"; import { remap as remap$ } from "../../lib/primitives.js"; import { safeParse } from "../../lib/schemas.js"; import { blobLikeSchema } from "../../types/blobs.js"; import { Result as SafeParseResult } from "../../types/fp.js"; import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type ExtractFile = { fileName: string; content: ReadableStream | Blob | ArrayBuffer | Uint8Array; }; export type ExtractRequestBody = { /** * ID of the model to use for extraction */ model: string; /** * JSON Schema object or JSON string defining the structure of data to extract */ schema: string; /** * Optional metadata as JSON object or JSON string */ metadata?: string | undefined; /** * The file to extract structured data from */ file: ExtractFile | Blob; /** * Optional custom system prompt to guide extraction */ prompt?: string | undefined; }; export type ExtractRequest = { /** * Optional external end-user identifier forwarded by the API gateway. */ xOnBehalfOf?: string | undefined; requestBody: ExtractRequestBody; }; /** @internal */ export const ExtractFile$inboundSchema: z.ZodType< ExtractFile, z.ZodTypeDef, unknown > = z.object({ fileName: z.string(), content: z.union([ z.instanceof(ReadableStream), z.instanceof(Blob), z.instanceof(ArrayBuffer), z.instanceof(Uint8Array), ]), }); /** @internal */ export type ExtractFile$Outbound = { fileName: string; content: ReadableStream | Blob | ArrayBuffer | Uint8Array; }; /** @internal */ export const ExtractFile$outboundSchema: z.ZodType< ExtractFile$Outbound, z.ZodTypeDef, ExtractFile > = z.object({ fileName: z.string(), content: z.union([ z.instanceof(ReadableStream), z.instanceof(Blob), z.instanceof(ArrayBuffer), z.instanceof(Uint8Array), ]), }); export function extractFileToJSON(extractFile: ExtractFile): string { return JSON.stringify(ExtractFile$outboundSchema.parse(extractFile)); } export function extractFileFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => ExtractFile$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'ExtractFile' from JSON`, ); } /** @internal */ export const ExtractRequestBody$inboundSchema: z.ZodType< ExtractRequestBody, z.ZodTypeDef, unknown > = z.object({ model: z.string(), schema: z.string(), metadata: z.string().optional(), file: z.lazy(() => ExtractFile$inboundSchema), prompt: z.string().optional(), }); /** @internal */ export type ExtractRequestBody$Outbound = { model: string; schema: string; metadata?: string | undefined; file: ExtractFile$Outbound | Blob; prompt?: string | undefined; }; /** @internal */ export const ExtractRequestBody$outboundSchema: z.ZodType< ExtractRequestBody$Outbound, z.ZodTypeDef, ExtractRequestBody > = z.object({ model: z.string(), schema: z.string(), metadata: z.string().optional(), file: z.lazy(() => ExtractFile$outboundSchema).or(blobLikeSchema), prompt: z.string().optional(), }); export function extractRequestBodyToJSON( extractRequestBody: ExtractRequestBody, ): string { return JSON.stringify( ExtractRequestBody$outboundSchema.parse(extractRequestBody), ); } export function extractRequestBodyFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => ExtractRequestBody$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'ExtractRequestBody' from JSON`, ); } /** @internal */ export const ExtractRequest$inboundSchema: z.ZodType< ExtractRequest, z.ZodTypeDef, unknown > = z.object({ "X-On-Behalf-Of": z.string().optional(), RequestBody: z.lazy(() => ExtractRequestBody$inboundSchema), }).transform((v) => { return remap$(v, { "X-On-Behalf-Of": "xOnBehalfOf", "RequestBody": "requestBody", }); }); /** @internal */ export type ExtractRequest$Outbound = { "X-On-Behalf-Of"?: string | undefined; RequestBody: ExtractRequestBody$Outbound; }; /** @internal */ export const ExtractRequest$outboundSchema: z.ZodType< ExtractRequest$Outbound, z.ZodTypeDef, ExtractRequest > = z.object({ xOnBehalfOf: z.string().optional(), requestBody: z.lazy(() => ExtractRequestBody$outboundSchema), }).transform((v) => { return remap$(v, { xOnBehalfOf: "X-On-Behalf-Of", requestBody: "RequestBody", }); }); export function extractRequestToJSON(extractRequest: ExtractRequest): string { return JSON.stringify(ExtractRequest$outboundSchema.parse(extractRequest)); } export function extractRequestFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => ExtractRequest$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'ExtractRequest' from JSON`, ); }