@animo-id/pex
Version:
A Typescript implementation of the v1 and v2 DIF Presentation Exchange specification
39 lines • 5.3 kB
JavaScript
import { definitionVersionDiscovery, JsonPathUtils } from '../utils';
import { InternalPresentationDefinitionV1, InternalPresentationDefinitionV2, PEVersion, } from './Internal.types';
import { PexCredentialMapper, } from './PexCredentialMapper';
export class SSITypesBuilder {
static modelEntityToInternalPresentationDefinitionV1(p) {
const pd = SSITypesBuilder.createCopyAndModifyPresentationDefinition(p);
return new InternalPresentationDefinitionV1(pd.id, pd.input_descriptors, pd.format, pd.name, pd.purpose, pd.submission_requirements);
}
static modelEntityInternalPresentationDefinitionV2(p) {
const pd = SSITypesBuilder.createCopyAndModifyPresentationDefinition(p);
return new InternalPresentationDefinitionV2(pd.id, pd.input_descriptors, pd.format, pd.frame, pd.name, pd.purpose, pd.submission_requirements);
}
static createCopyAndModifyPresentationDefinition(p) {
const pd = JSON.parse(JSON.stringify(p));
JsonPathUtils.changePropertyNameRecursively(pd, '_const', 'const');
JsonPathUtils.changePropertyNameRecursively(pd, '_enum', 'enum');
JsonPathUtils.changeSpecialPathsRecursively(pd);
return pd;
}
static mapExternalVerifiablePresentationToWrappedVP(presentation) {
return PexCredentialMapper.toWrappedVerifiablePresentation(presentation);
}
static mapExternalVerifiableCredentialsToWrappedVcs(verifiableCredentials) {
const array = Array.isArray(verifiableCredentials) ? verifiableCredentials : [verifiableCredentials];
return array.map((c) => PexCredentialMapper.toWrappedVerifiableCredential(c));
}
static toInternalPresentationDefinition(presentationDefinition) {
const presentationDefinitionCopy = JSON.parse(JSON.stringify(presentationDefinition));
const versionResult = definitionVersionDiscovery(presentationDefinitionCopy);
if (versionResult.error) {
throw new Error(`${versionResult.error} \nv1 errors:\n${JSON.stringify(versionResult.v1Errors, null, 2)} \n\nv2 errors:\n${JSON.stringify(versionResult.v2Errors, null, 2)}`);
}
if (versionResult.version == PEVersion.v1) {
return SSITypesBuilder.modelEntityToInternalPresentationDefinitionV1(presentationDefinitionCopy);
}
return SSITypesBuilder.modelEntityInternalPresentationDefinitionV2(presentationDefinitionCopy);
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU1NJVHlwZXNCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGliL3R5cGVzL1NTSVR5cGVzQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsYUFBYSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRXJFLE9BQU8sRUFHTCxnQ0FBZ0MsRUFDaEMsZ0NBQWdDLEVBRWhDLFNBQVMsR0FDVixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFHTCxtQkFBbUIsR0FHcEIsTUFBTSx1QkFBdUIsQ0FBQztBQUUvQixNQUFNLE9BQU8sZUFBZTtJQUNuQixNQUFNLENBQUMsNkNBQTZDLENBQUMsQ0FBTztRQUNqRSxNQUFNLEVBQUUsR0FBUyxlQUFlLENBQUMseUNBQXlDLENBQUMsQ0FBQyxDQUFTLENBQUM7UUFDdEYsT0FBTyxJQUFJLGdDQUFnQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLGlCQUFpQixFQUFFLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBQ3ZJLENBQUM7SUFFTSxNQUFNLENBQUMsMkNBQTJDLENBQUMsQ0FBTztRQUMvRCxNQUFNLEVBQUUsR0FBUyxlQUFlLENBQUMseUNBQXlDLENBQUMsQ0FBQyxDQUE2QixDQUFDO1FBQzFHLE9BQU8sSUFBSSxnQ0FBZ0MsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBQ2pKLENBQUM7SUFFRCxNQUFNLENBQUMseUNBQXlDLENBQUMsQ0FBMEI7UUFDekUsTUFBTSxFQUFFLEdBQTRCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xFLGFBQWEsQ0FBQyw2QkFBNkIsQ0FBQyxFQUFFLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ25FLGFBQWEsQ0FBQyw2QkFBNkIsQ0FBQyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ2pFLGFBQWEsQ0FBQyw2QkFBNkIsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNoRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxNQUFNLENBQUMsNENBQTRDLENBQ2pELFlBQStFO1FBRS9FLE9BQU8sbUJBQW1CLENBQUMsK0JBQStCLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVELE1BQU0sQ0FBQyw0Q0FBNEMsQ0FDakQscUJBQW9GO1FBRXBGLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUVyRyxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLG1CQUFtQixDQUFDLDZCQUE2QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDaEYsQ0FBQztJQUVELE1BQU0sQ0FBQyxnQ0FBZ0MsQ0FBQyxzQkFBK0M7UUFDckYsTUFBTSwwQkFBMEIsR0FBNEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQztRQUMvRyxNQUFNLGFBQWEsR0FBc0IsMEJBQTBCLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUNoRyxJQUFJLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN4QixNQUFNLElBQUksS0FBSyxDQUNiLEdBQUcsYUFBYSxDQUFDLEtBQUssa0JBQWtCLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLG9CQUFvQixJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQzdKLENBQUM7UUFDSixDQUFDO1FBQ0QsSUFBSSxhQUFhLENBQUMsT0FBTyxJQUFJLFNBQVMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUMxQyxPQUFPLGVBQWUsQ0FBQyw2Q0FBNkMsQ0FBQywwQkFBc0QsQ0FBQyxDQUFDO1FBQy9ILENBQUM7UUFDRCxPQUFPLGVBQWUsQ0FBQywyQ0FBMkMsQ0FBQywwQkFBc0QsQ0FBQyxDQUFDO0lBQzdILENBQUM7Q0FDRiJ9