@affinidi-tdk/iota-browser
Version:
Browser module to fetch data through Affinidi Iota Framework
47 lines • 1.47 kB
JavaScript
import { z } from 'zod';
export const EventTypes = {
PrepareRequest: 'prepareRequest',
SignedRequest: 'signedRequest',
ResponseCallback: 'response-callback',
Error: 'error',
};
const BaseEvent = z.object({
eventType: z.nativeEnum(EventTypes),
correlationId: z.string().uuid(),
});
const prepareRequestEventSchema = BaseEvent.extend({
eventType: z.literal(EventTypes.PrepareRequest),
queryId: z.string(),
tokenMaxAge: z.number().optional(),
audience: z.string().optional(),
});
export const signedRequestEventSchema = BaseEvent.extend({
eventType: z.literal(EventTypes.SignedRequest),
data: z.object({
jwt: z.string(),
}),
});
export const signedRequestJWTSchema = z.object({
client_id: z.string(),
});
export const responseCallbackEventSchema = BaseEvent.extend({
eventType: z.literal(EventTypes.ResponseCallback),
vpToken: z.string(),
presentationSubmission: z.string(),
});
const ERROR_LOCATION = ['body', 'path', 'query'];
const ErrorDetailItem = z.object({
issue: z.string().optional(),
field: z.string().optional(),
value: z.string().optional(),
location: z.enum(ERROR_LOCATION).optional(),
});
export const errorEventSchema = BaseEvent.extend({
eventType: z.literal(EventTypes.Error),
error: z.object({
message: z.string(),
httpStatusCode: z.number(),
details: z.array(ErrorDetailItem).optional(),
}),
});
//# sourceMappingURL=events.js.map