UNPKG

@sphereon/pex

Version:

A Typescript implementation of the v1 and v2 DIF Presentation Exchange specification

40 lines 5.28 kB
import { CredentialMapper, } from '@sphereon/ssi-types'; import { definitionVersionDiscovery, JsonPathUtils } from '../utils'; import { InternalPresentationDefinitionV1, InternalPresentationDefinitionV2, PEVersion, } from './Internal.types'; 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, hasher) { return CredentialMapper.toWrappedVerifiablePresentation(presentation, { hasher }); } static mapExternalVerifiableCredentialsToWrappedVcs(verifiableCredentials, hasher) { return CredentialMapper.toWrappedVerifiableCredentials(Array.isArray(verifiableCredentials) ? verifiableCredentials : [verifiableCredentials], { hasher, }); } 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU1NJVHlwZXNCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGliL3R5cGVzL1NTSVR5cGVzQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSxPQUFPLEVBQ0wsZ0JBQWdCLEdBT2pCLE1BQU0scUJBQXFCLENBQUM7QUFFN0IsT0FBTyxFQUFFLDBCQUEwQixFQUFFLGFBQWEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUVyRSxPQUFPLEVBR0wsZ0NBQWdDLEVBQ2hDLGdDQUFnQyxFQUVoQyxTQUFTLEdBQ1YsTUFBTSxrQkFBa0IsQ0FBQztBQUUxQixNQUFNLE9BQU8sZUFBZTtJQUNuQixNQUFNLENBQUMsNkNBQTZDLENBQUMsQ0FBTztRQUNqRSxNQUFNLEVBQUUsR0FBUyxlQUFlLENBQUMseUNBQXlDLENBQUMsQ0FBQyxDQUFTLENBQUM7UUFDdEYsT0FBTyxJQUFJLGdDQUFnQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLGlCQUFpQixFQUFFLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBQ3ZJLENBQUM7SUFFTSxNQUFNLENBQUMsMkNBQTJDLENBQUMsQ0FBTztRQUMvRCxNQUFNLEVBQUUsR0FBUyxlQUFlLENBQUMseUNBQXlDLENBQUMsQ0FBQyxDQUE2QixDQUFDO1FBQzFHLE9BQU8sSUFBSSxnQ0FBZ0MsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBQ2pKLENBQUM7SUFFRCxNQUFNLENBQUMseUNBQXlDLENBQUMsQ0FBMEI7UUFDekUsTUFBTSxFQUFFLEdBQTRCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xFLGFBQWEsQ0FBQyw2QkFBNkIsQ0FBQyxFQUFFLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ25FLGFBQWEsQ0FBQyw2QkFBNkIsQ0FBQyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ2pFLGFBQWEsQ0FBQyw2QkFBNkIsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNoRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxNQUFNLENBQUMsNENBQTRDLENBQ2pELFlBQStFLEVBQy9FLE1BQWU7UUFFZixPQUFPLGdCQUFnQixDQUFDLCtCQUErQixDQUFDLFlBQVksRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDcEYsQ0FBQztJQUVELE1BQU0sQ0FBQyw0Q0FBNEMsQ0FDakQscUJBQW9GLEVBQ3BGLE1BQWU7UUFFZixPQUFPLGdCQUFnQixDQUFDLDhCQUE4QixDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQUMsRUFBRTtZQUM3SSxNQUFNO1NBQ1AsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE1BQU0sQ0FBQyxnQ0FBZ0MsQ0FBQyxzQkFBK0M7UUFDckYsTUFBTSwwQkFBMEIsR0FBNEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQztRQUMvRyxNQUFNLGFBQWEsR0FBc0IsMEJBQTBCLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUNoRyxJQUFJLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN4QixNQUFNLElBQUksS0FBSyxDQUNiLEdBQUcsYUFBYSxDQUFDLEtBQUssa0JBQWtCLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLG9CQUFvQixJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQzdKLENBQUM7UUFDSixDQUFDO1FBQ0QsSUFBSSxhQUFhLENBQUMsT0FBTyxJQUFJLFNBQVMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUMxQyxPQUFPLGVBQWUsQ0FBQyw2Q0FBNkMsQ0FBQywwQkFBc0QsQ0FBQyxDQUFDO1FBQy9ILENBQUM7UUFDRCxPQUFPLGVBQWUsQ0FBQywyQ0FBMkMsQ0FBQywwQkFBc0QsQ0FBQyxDQUFDO0lBQzdILENBQUM7Q0FDRiJ9