/* * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ import * as z from "zod/v3"; import { safeParse } from "../../lib/schemas.js"; import { Result as SafeParseResult } from "../../types/fp.js"; import { SDKValidationError } from "../errors/sdkvalidationerror.js"; import { DocumentType, DocumentType$inboundSchema, DocumentType$outboundSchema, } from "./documenttype.js"; export type Document = { documentID: string; /** * Types of documents that can be uploaded. */ type: DocumentType; /** * The document's MIME type. */ contentType: string; /** * Optional array of errors encountered during automated parsing. */ parseErrors?: Array | undefined; uploadedAt: Date; }; /** @internal */ export const Document$inboundSchema: z.ZodType< Document, z.ZodTypeDef, unknown > = z.object({ documentID: z.string(), type: DocumentType$inboundSchema, contentType: z.string(), parseErrors: z.array(z.string()).optional(), uploadedAt: z.string().datetime({ offset: true }).transform(v => new Date(v)), }); /** @internal */ export type Document$Outbound = { documentID: string; type: string; contentType: string; parseErrors?: Array | undefined; uploadedAt: string; }; /** @internal */ export const Document$outboundSchema: z.ZodType< Document$Outbound, z.ZodTypeDef, Document > = z.object({ documentID: z.string(), type: DocumentType$outboundSchema, contentType: z.string(), parseErrors: z.array(z.string()).optional(), uploadedAt: z.date().transform(v => v.toISOString()), }); export function documentToJSON(document: Document): string { return JSON.stringify(Document$outboundSchema.parse(document)); } export function documentFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => Document$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'Document' from JSON`, ); }