@vecrea/oid4vc-prex
Version:
A TypeScript library for handling OpenID for Verifiable Credentials (OID4VC) Presentation Exchange operations
78 lines (77 loc) • 2.98 kB
TypeScript
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;
}