UNPKG

@credo-ts/core

Version:

<p align="center"> <br /> <img alt="Credo Logo" src="https://github.com/openwallet-foundation/credo-ts/blob/c7886cb8377ceb8ee4efe8d264211e561a75072d/images/credo-logo.png" height="250px" /> </p> <h1 align="center"><b>Credo - Core</b></h1

48 lines (47 loc) • 1.92 kB
import "../../vc/models/ClaimFormat.mjs"; import "../../vc/index.mjs"; import { MdocRecord } from "../../mdoc/repository/MdocRecord.mjs"; import "../../mdoc/index.mjs"; import "../../sd-jwt-vc/index.mjs"; //#region src/modules/dif-presentation-exchange/utils/presentationsToCreate.ts function getPresentationsToCreate(credentialsForInputDescriptor) { const presentationsToCreate = []; for (const [inputDescriptorId, credentials] of Object.entries(credentialsForInputDescriptor)) for (const credential of credentials) if (credential.claimFormat === "dc+sd-jwt") presentationsToCreate.push({ claimFormat: "dc+sd-jwt", subjectIds: [], verifiableCredentials: [{ inputDescriptorId, credential: credential.credentialRecord, additionalPayload: credential.additionalPayload }] }); else if (credential.credentialRecord instanceof MdocRecord) presentationsToCreate.push({ claimFormat: "mso_mdoc", verifiableCredentials: [{ inputDescriptorId, credential: credential.credentialRecord }], subjectIds: [] }); else { const subjectId = credential.credentialRecord.firstCredential.credentialSubjectIds[0]; const expectedClaimFormat = credential.credentialRecord.firstCredential.claimFormat === "ldp_vc" ? "ldp_vp" : "jwt_vp"; const matchingClaimFormatAndSubject = presentationsToCreate.find((p) => p.claimFormat === expectedClaimFormat && Boolean(p.subjectIds?.includes(subjectId))); if (matchingClaimFormatAndSubject) matchingClaimFormatAndSubject.verifiableCredentials.push({ inputDescriptorId, credential: credential.credentialRecord }); else presentationsToCreate.push({ claimFormat: expectedClaimFormat, subjectIds: [subjectId], verifiableCredentials: [{ credential: credential.credentialRecord, inputDescriptorId }] }); } return presentationsToCreate; } //#endregion export { getPresentationsToCreate }; //# sourceMappingURL=presentationsToCreate.mjs.map