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

68 lines (67 loc) • 2.55 kB
import "../../../utils/credentialUseTypes.mjs"; import "../../vc/models/ClaimFormat.mjs"; import "../../vc/index.mjs"; import { canUseInstanceFromCredentialRecord } from "../../../utils/credentialUse.mjs"; import "../../mdoc/index.mjs"; import "../../sd-jwt-vc/index.mjs"; import { DcqlError } from "../DcqlError.mjs"; //#region src/modules/dcql/utils/DcqlPresentationsToCreate.ts function dcqlGetPresentationsToCreate(credentialsForInputDescriptor) { const presentationsToCreate = {}; for (const [credentialQueryId, matches] of Object.entries(credentialsForInputDescriptor)) for (const match of matches) { const matchIndex = matches.indexOf(match); let presentationToCreate; const useMode = match.useMode ?? "NewOrFirst"; if (!canUseInstanceFromCredentialRecord({ credentialRecord: match.credentialRecord, useMode })) throw new DcqlError(`Unable to prepare presentation for credential at index ${matchIndex} for query credential '${credentialQueryId}'. No new credential instance available on the credential record.`); switch (match.claimFormat) { case "dc+sd-jwt": presentationToCreate = { claimFormat: "dc+sd-jwt", credentialRecord: match.credentialRecord, disclosedPayload: match.disclosedPayload, disclosedPaths: match.disclosedPaths, additionalPayload: match.additionalPayload, useMode }; break; case "mso_mdoc": presentationToCreate = { claimFormat: "mso_mdoc", credentialRecord: match.credentialRecord, disclosedPayload: match.disclosedPayload, useMode }; break; case "vc+jwt": presentationToCreate = { claimFormat: "vp+jwt", credentialRecord: match.credentialRecord, disclosedPayload: match.disclosedPayload }; break; case "vc+sd-jwt": presentationToCreate = { claimFormat: "vp+sd-jwt", credentialRecord: match.credentialRecord, disclosedPayload: match.disclosedPayload, disclosedPaths: match.disclosedPaths }; break; default: presentationToCreate = { claimFormat: match.claimFormat === "ldp_vc" ? "ldp_vp" : "jwt_vp", credentialRecord: match.credentialRecord, disclosedPayload: match.disclosedPayload, useMode }; } if (!presentationsToCreate[credentialQueryId]) presentationsToCreate[credentialQueryId] = [presentationToCreate]; else presentationsToCreate[credentialQueryId].push(presentationToCreate); } return presentationsToCreate; } //#endregion export { dcqlGetPresentationsToCreate }; //# sourceMappingURL=DcqlPresentationsToCreate.mjs.map