@affinidi-tdk/iota-browser
Version:
Browser module to fetch data through Affinidi Iota Framework
67 lines • 1.77 kB
JavaScript
import { z } from 'zod';
const baseDescriptor = z
.object({
id: z.string(),
path: z.string(),
format: z.string(),
})
.passthrough();
const descriptorSchema = baseDescriptor
.extend({
path_nested: z.lazy(() => descriptorSchema.optional()),
})
.passthrough();
export const presentationSubmissionSchema = z
.object({
id: z.string(),
definition_id: z.string(),
descriptor_map: z.array(descriptorSchema),
})
.passthrough();
const verifiableCredentialSchema = z
.object({
'@context': z.array(z.string()),
credentialSchema: z
.object({
id: z.string(),
type: z.string(),
})
.passthrough()
.optional(),
credentialStatus: z
.object({ id: z.string(), type: z.string() })
.passthrough()
.optional(),
credentialSubject: z.any(),
expirationDate: z.string().optional(),
evidence: z.array(z.any()).optional(),
holder: z
.object({
id: z.string(),
})
.passthrough(),
id: z.string(),
issuanceDate: z.string(),
issuer: z.string(),
proof: z.any().optional(),
refreshService: z
.object({ id: z.string(), type: z.string() })
.passthrough()
.optional(),
termsOfUse: z.array(z.any()).optional(),
type: z.array(z.string()),
})
.passthrough();
export const verifiablePresentationSchema = z
.object({
'@context': z.array(z.string()),
id: z.string().optional(),
holder: z.object({ id: z.string() }).passthrough().optional(),
proof: z.any().optional(),
type: z.array(z.string()),
verifiableCredential: z
.array(verifiableCredentialSchema.passthrough())
.optional(),
})
.passthrough();
//# sourceMappingURL=ssi.js.map