UNPKG

@vecrea/oid4vc-prex

Version:

A TypeScript library for handling OpenID for Verifiable Credentials (OID4VC) Presentation Exchange operations

78 lines (77 loc) 2.98 kB
import { z } from 'zod'; import { Id } from './Id'; import { DescriptorMap } from './DescriptorMap'; /** * Zod schema for validating presentation submission values. * * This schema ensures that a presentation submission is an object with the following properties: * - id: A valid id. * - definition_id: A valid id. * - descriptor_map: An array of descriptor maps. * * @type {z.ZodObject} * * @example * // Valid usage * presentationSubmissionSchema.parse({ * id: 'abc123', * definition_id: 'def456', * descriptor_map: [{ ... }] * }); // Returns { id: 'abc123', definition_id: 'def456', descriptor_map: [{ ... }] } * * // Invalid usage (will throw ZodError) * presentationSubmissionSchema.parse({}); // Throws error: Object has missing required properties * presentationSubmissionSchema.parse({ id: 'abc123' }); // Throws error: Object has missing required properties * * @throws {z.ZodError} Throws a ZodError if the input fails validation */ export declare const presentationSubmissionSchema: z.ZodObject<{ id: z.ZodString; definition_id: z.ZodString; descriptor_map: z.ZodArray<z.ZodType<import("./DescriptorMap").DescriptorMapJSON, z.ZodTypeDef, import("./DescriptorMap").DescriptorMapJSON>, "many">; }, "strip", z.ZodTypeAny, { id: string; definition_id: string; descriptor_map: import("./DescriptorMap").DescriptorMapJSON[]; }, { id: string; definition_id: string; descriptor_map: import("./DescriptorMap").DescriptorMapJSON[]; }>; /** * Type of a presentation submission JSON object. */ export type PresentationSubmissionJSON = z.infer<typeof presentationSubmissionSchema>; /** * Represents a presentation submission. * * @class * * @property {Id} id - The id of the presentation submission. * @property {Id} definitionId - The id of the presentation definition. * @property {DescriptorMap[]} descriptorMaps - An array of descriptor maps. */ export declare class PresentationSubmission { id: Id; definitionId: Id; descriptorMaps: DescriptorMap[]; /** * Create a new PresentationSubmission instance. * * @param {Id} id - The id of the presentation submission. * @param {Id} definitionId - The id of the presentation definition. * @param {DescriptorMap[]} descriptorMaps - An array of descriptor maps. */ constructor(id: Id, definitionId: Id, descriptorMaps: DescriptorMap[]); /** * Convert a presentation submission JSON object to a PresentationSubmission instance. * @param {PresentationSubmissionJSON} json - The presentation submission JSON object. * @returns {PresentationSubmission} A new PresentationSubmission instance. */ static fromJSON(json: unknown): PresentationSubmission; /** * Convert this presentation submission instance to a presentation submission JSON object. * @returns {PresentationSubmissionJSON} A presentation submission JSON object. */ toJSON(): PresentationSubmissionJSON; }