src/verifier/presentations/dto/vp-request.dto.ts

Index

Properties

Properties

content
Type : string
lang
Type : string
import { createZodDto } from "nestjs-zod";
import { z } from "zod";

const RegistrationCertificatePurposeSchema = z
    .object({
        lang: z.string(),
        content: z.string(),
    })
    .strict();

const RegistrationCertificateBodySchema = z
    .object({
        privacy_policy: z.string().optional(),
        support_uri: z.string().optional(),
        intermediary: z.string().optional(),
        purpose: z.array(RegistrationCertificatePurposeSchema).optional(),
        credentials: z.array(z.record(z.string(), z.unknown())).optional(),
        provided_attestations: z
            .array(z.record(z.string(), z.unknown()))
            .optional(),
    })
    .strict();

export const RegistrationCertificateRequestSchema = z
    .object({
        id: z.string().optional(),
        body: RegistrationCertificateBodySchema.optional(),
        jwt: z.string().optional(),
    })
    .strict();

export class RegistrationCertificatePurpose extends createZodDto(
    RegistrationCertificatePurposeSchema,
) {
    lang!: string;

    content!: string;
}

export class RegistrationCertificateBody extends createZodDto(
    RegistrationCertificateBodySchema,
) {
    privacy_policy?: string;

    support_uri?: string;

    intermediary?: string;

    purpose?: RegistrationCertificatePurpose[];

    credentials?: Record<string, unknown>[];

    provided_attestations?: Record<string, unknown>[];
}

/**
 * RegistrationCertificateRequest DTO
 */
export class RegistrationCertificateRequest extends createZodDto(
    RegistrationCertificateRequestSchema,
) {
    /**
     * Optional registrar-side certificate identifier.
     * If provided and still valid, EUDIPLO reuses it instead of creating a new certificate.
     */
    id?: string;

    /**
     * Registration certificate creation payload.
     * This is merged with tenant-level registrar defaults when a certificate is created.
     */
    body?: RegistrationCertificateBody;

    /**
     * Optional pre-existing registration certificate JWT.
     * If provided, EUDIPLO forwards it as-is and does not create a new one.
     */
    jwt?: string;
}

results matching ""

    No results matching ""