@sphereon/ssi-sdk.presentation-exchange 0.33.1-feature.vcdm2.4 → 0.33.1-feature.vcdm2.tsup.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAA;AAC/C,OAAO,EAAE,MAAM,EAAE,CAAA;AACjB,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AACnE,cAAc,+BAA+B,CAAA;AAC7C,cAAc,aAAa,CAAA"}
1
+ {"version":3,"sources":["../plugin.schema.json","../src/agent/PresentationExchange.ts","../src/functions.ts","../src/index.ts"],"sourcesContent":["{\n \"IDidAuthSiopOpAuthenticator\": {\n \"components\": {\n \"schemas\": {\n \"IGetSiopSessionArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": false\n },\n \"required\": [\"sessionId\"],\n \"description\": \"Arguments needed for {@link DidAuthSiopOpAuthenticator.getSessionForSiop } \"\n },\n \"IRegisterSiopSessionArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"identifier\": {\n \"type\": \"object\",\n \"properties\": {\n \"did\": {\n \"type\": \"string\"\n },\n \"alias\": {\n \"type\": \"string\"\n },\n \"provider\": {\n \"type\": \"string\"\n },\n \"controllerKeyId\": {\n \"type\": \"string\"\n },\n \"keys\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n }\n },\n \"services\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n }\n }\n },\n \"additionalProperties\": false,\n \"required\": [\"did\", \"provider\", \"keys\", \"services\"]\n },\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"expiresIn\": {\n \"type\": \"number\"\n },\n \"additionalProperties\": false\n },\n \"required\": [\"identifier\"],\n \"description\": \"Arguments needed for {@link DidAuthSiopOpAuthenticator.registerSessionForSiop } \"\n },\n \"IRemoveSiopSessionArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": false\n },\n \"required\": [\"sessionId\"],\n \"description\": \"Arguments needed for {@link DidAuthSiopOpAuthenticator.removeSessionForSiop } \"\n },\n \"IAuthenticateWithSiopArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"stateId\": {\n \"type\": \"string\"\n },\n \"redirectUrl\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": false\n },\n \"required\": [\"sessionId\", \"stateId\", \"redirectUrl\"],\n \"description\": \"Arguments needed for {@link DidAuthSiopOpAuthenticator.authenticateWithSiop } \"\n },\n \"IResponse\": {\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"number\"\n },\n \"additionalProperties\": true\n },\n \"required\": [\"status\"],\n \"description\": \"Result of {@link DidAuthSiopOpAuthenticator.authenticateWithSiop & DidAuthSiopOpAuthenticator.sendSiopAuthenticationResponse } \"\n },\n \"IGetSiopAuthenticationRequestFromRpArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"stateId\": {\n \"type\": \"string\"\n },\n \"redirectUrl\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": false\n },\n \"required\": [\"sessionId\", \"stateId\", \"redirectUrl\"],\n \"description\": \"Arguments needed for {@link DidAuthSiopOpAuthenticator.getSiopAuthenticationRequestFromRP } \"\n },\n \"ParsedAuthenticationRequestURI\": {\n \"type\": \"object\",\n \"properties\": {\n \"jwt\": {\n \"type\": \"string\"\n },\n \"requestPayload\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"registration\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"additionalProperties\": false\n },\n \"required\": [\"jwt\", \"requestPayload\", \"registration\"],\n \"description\": \"Result of {@link DidAuthSiopOpAuthenticator.getSiopAuthenticationRequestFromRP } \"\n },\n \"IGetSiopAuthenticationRequestDetailsArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"verifiedAuthenticationRequest\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"credentialFilter\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"additionalProperties\": false\n },\n \"required\": [\"sessionId\", \"verifiedAuthenticationRequest\"],\n \"description\": \"Arguments needed for {@link DidAuthSiopOpAuthenticator.getSiopAuthenticationRequestDetails } \"\n },\n \"IAuthRequestDetails\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"alsoKnownAs\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"vpResponseOpts\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"additionalProperties\": false\n },\n \"required\": [\"id\", \"vpResponseOpts\"],\n \"description\": \"Result of {@link DidAuthSiopOpAuthenticator.getSiopAuthenticationRequestDetails } \"\n },\n \"IVerifySiopAuthenticationRequestUriArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"ParsedAuthenticationRequestURI\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"additionalProperties\": false\n },\n \"required\": [\"sessionId\", \"ParsedAuthenticationRequestURI\"],\n \"description\": \"Arguments needed for {@link DidAuthSiopOpAuthenticator.verifySiopAuthenticationRequestURI } \"\n },\n \"VerifiedAuthorizationRequest\": {\n \"type\": \"object\",\n \"properties\": {\n \"payload\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"presentationDefinitions\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"verifyOpts\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"additionalProperties\": false\n },\n \"required\": [\"payload\", \"verifyOpts\"],\n \"description\": \"Result of {@link DidAuthSiopOpAuthenticator.verifySiopAuthenticationRequestURI } \"\n },\n \"ISendSiopAuthenticationResponseArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"verifiedAuthenticationRequest\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"verifiablePresentationResponse\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"additionalProperties\": false\n },\n \"required\": [\"sessionId\", \"verifiedAuthenticationRequest\"],\n \"description\": \"Arguments needed for {@link DidAuthSiopOpAuthenticator.sendSiopAuthenticationResponse } \"\n }\n },\n \"methods\": {\n \"getSessionForSiop\": {\n \"description\": \"Get SIOP session\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IGetSiopSessionArgs\"\n },\n \"returnType\": \"object\"\n },\n \"registerSessionForSiop\": {\n \"description\": \"Register SIOP session\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IRegisterSiopSessionArgs\"\n },\n \"returnType\": \"object\"\n },\n \"removeSessionForSiop\": {\n \"description\": \"Remove SIOP session\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IRemoveSiopSessionArgs\"\n },\n \"returnType\": \"boolean\"\n },\n \"authenticateWithSiop\": {\n \"description\": \"Authenticate using DID Auth SIOP\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IAuthenticateWithSiopArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/Response\"\n }\n },\n \"getSiopAuthenticationRequestFromRP\": {\n \"description\": \"Get authentication request from RP\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IGetSiopAuthenticationRequestFromRpArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/ParsedAuthenticationRequestURI\"\n }\n },\n \"getSiopAuthenticationRequestDetails\": {\n \"description\": \"Get authentication request details\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IGetSiopAuthenticationRequestDetailsArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/IAuthRequestDetails\"\n }\n },\n \"verifySiopAuthenticationRequestURI\": {\n \"description\": \"Verify authentication request URI\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IVerifySiopAuthenticationRequestUriArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/VerifiedAuthorizationRequest\"\n }\n },\n \"sendSiopAuthenticationResponse\": {\n \"description\": \"Send authentication response\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/ISendSiopAuthenticationResponseArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/IRequiredContext\"\n }\n }\n }\n }\n }\n}\n","import {\n IDefinitionCredentialFilterArgs,\n IDefinitionValidateArgs,\n IPEXFilterResult,\n IPEXFilterResultWithInputDescriptor,\n IRequiredContext,\n PEXOpts,\n schema,\n VersionDiscoveryResult,\n} from '../index'\nimport { IAgentPlugin } from '@veramo/core'\n\nimport { IPresentationExchange } from '../types/IPresentationExchange'\nimport { Checked, IPresentationDefinition, PEX } from '@sphereon/pex'\nimport { CompactJWT, CredentialMapper, IProof, JWT_PROOF_TYPE_2020, W3CVerifiableCredential } from '@sphereon/ssi-types'\nimport { InputDescriptorV1, InputDescriptorV2 } from '@sphereon/pex-models'\nimport { toDIDs } from '@sphereon/ssi-sdk-ext.did-utils'\nimport { CredentialRole, UniqueDigitalCredential, verifiableCredentialForRoleFilter } from '@sphereon/ssi-sdk.credential-store'\nimport { FindDigitalCredentialArgs } from '@sphereon/ssi-sdk.data-store'\n\nexport class PresentationExchange implements IAgentPlugin {\n readonly schema = schema.IDidAuthSiopOpAuthenticator\n private readonly pex = new PEX()\n\n readonly methods: IPresentationExchange = {\n pexValidateDefinition: this.pexValidateDefinition.bind(this),\n pexDefinitionVersion: this.pexDefinitionVersion.bind(this),\n pexDefinitionFilterCredentials: this.pexDefinitionFilterCredentials.bind(this),\n pexDefinitionFilterCredentialsPerInputDescriptor: this.pexDefinitionFilterCredentialsPerInputDescriptor.bind(this),\n }\n\n constructor(opts?: PEXOpts) {}\n\n private async pexValidateDefinition(args: IDefinitionValidateArgs): Promise<boolean> {\n const { definition } = args\n const invalids: Checked[] = []\n\n try {\n const result = PEX.validateDefinition(definition)\n const validations = Array.isArray(result) ? result : [result]\n invalids.push(...validations.filter((v) => v.status === 'error'))\n } catch (error) {\n invalids.push({\n status: 'error',\n message:\n typeof error === 'string'\n ? error\n : typeof error === 'object' && 'message' in (error as object)\n ? (error as Error).message\n : 'unknown error',\n tag: 'validation',\n })\n }\n\n if (invalids.length > 0) {\n throw Error(`Invalid definition. ${invalids.map((v) => v.message).toString()}`)\n }\n return true // Never returns false, but REST API does not allow Promise<void>\n }\n\n async pexDefinitionVersion(presentationDefinition: IPresentationDefinition): Promise<VersionDiscoveryResult> {\n return PEX.definitionVersionDiscovery(presentationDefinition)\n }\n\n async pexDefinitionFilterCredentials(args: IDefinitionCredentialFilterArgs, context: IRequiredContext): Promise<IPEXFilterResult> {\n const credentials = await this.pexFilterCredentials(args.credentialFilterOpts, context)\n const holderDIDs = args.holderDIDs ? toDIDs(args.holderDIDs) : toDIDs(await context.agent.dataStoreORMGetIdentifiers())\n const selectResults = this.pex.selectFrom(args.presentationDefinition, credentials ?? [], {\n ...args,\n holderDIDs,\n limitDisclosureSignatureSuites: args.limitDisclosureSignatureSuites ?? ['BbsBlsSignature2020'],\n })\n return {\n id: args.presentationDefinition.id,\n selectResults,\n filteredCredentials: selectResults.verifiableCredential?.map((vc) => CredentialMapper.storedCredentialToOriginalFormat(vc)) ?? [],\n }\n }\n\n async pexDefinitionFilterCredentialsPerInputDescriptor(\n args: IDefinitionCredentialFilterArgs,\n context: IRequiredContext,\n ): Promise<IPEXFilterResultWithInputDescriptor[]> {\n const origDefinition = args.presentationDefinition\n const credentials = await this.pexFilterCredentials(args.credentialFilterOpts ?? {}, context)\n const holderDIDs = args.holderDIDs ? toDIDs(args.holderDIDs) : toDIDs(await context.agent.dataStoreORMGetIdentifiers())\n const limitDisclosureSignatureSuites = args.limitDisclosureSignatureSuites\n\n const promises = new Map<InputDescriptorV1 | InputDescriptorV2, Promise<IPEXFilterResult>>()\n origDefinition.input_descriptors.forEach((inputDescriptor) => {\n const presentationDefinition = {\n id: inputDescriptor.id,\n input_descriptors: [inputDescriptor],\n }\n\n const credentialRole = args.credentialFilterOpts.credentialRole\n\n promises.set(\n inputDescriptor,\n this.pexDefinitionFilterCredentials(\n {\n credentialFilterOpts: { credentialRole, verifiableCredentials: credentials },\n // @ts-ignore\n presentationDefinition,\n holderDIDs,\n limitDisclosureSignatureSuites,\n },\n context,\n ),\n )\n })\n await Promise.all(promises.values())\n const result: IPEXFilterResultWithInputDescriptor[] = []\n for (const entry of promises.entries()) {\n result.push({ ...(await entry[1]), inputDescriptor: entry[0] })\n }\n return result\n }\n\n private async pexFilterCredentials(\n filterOpts: {\n credentialRole: CredentialRole\n verifiableCredentials?: W3CVerifiableCredential[]\n filter?: FindDigitalCredentialArgs\n },\n context: IRequiredContext,\n ): Promise<W3CVerifiableCredential[]> {\n if (filterOpts.verifiableCredentials && filterOpts.verifiableCredentials.length > 0) {\n return filterOpts.verifiableCredentials as W3CVerifiableCredential[]\n }\n\n const filter = verifiableCredentialForRoleFilter(filterOpts.credentialRole, filterOpts.filter)\n const uniqueCredentials = await context.agent.crsGetUniqueCredentials({ filter })\n\n return uniqueCredentials.map((uniqueVC: UniqueDigitalCredential) => {\n const vc = uniqueVC.uniformVerifiableCredential!\n const proof = Array.isArray(vc.proof) ? vc.proof : [vc.proof]\n const jwtProof = proof.find((p: IProof) => p?.type === JWT_PROOF_TYPE_2020)\n return jwtProof ? (jwtProof.jwt as CompactJWT) : vc\n })\n }\n}\n","import { IPresentationDefinition } from '@sphereon/pex'\nimport { Format } from '@sphereon/pex-models'\nimport {\n isManagedIdentifierDidOpts,\n isManagedIdentifierDidResult,\n isManagedIdentifierX5cResult,\n ManagedIdentifierOptsOrResult,\n} from '@sphereon/ssi-sdk-ext.identifier-resolution'\nimport {\n CredentialMapper,\n Optional,\n OriginalVerifiablePresentation,\n SdJwtDecodedVerifiableCredential,\n W3CVerifiablePresentation,\n} from '@sphereon/ssi-types'\nimport { PresentationPayload, ProofFormat } from '@veramo/core'\nimport { IPEXPresentationSignCallback, IRequiredContext } from './types/IPresentationExchange'\n\nexport async function createPEXPresentationSignCallback(\n args: {\n idOpts: ManagedIdentifierOptsOrResult\n fetchRemoteContexts?: boolean\n skipDidResolution?: boolean\n format?: Format | ProofFormat\n domain?: string\n challenge?: string\n },\n context: IRequiredContext,\n): Promise<IPEXPresentationSignCallback> {\n function determineProofFormat(determineArgs: {\n format?: Format | 'jwt' | 'lds' | 'EthereumEip712Signature2021'\n presentationDefinition: IPresentationDefinition\n presentation: Optional<PresentationPayload, 'holder'> | SdJwtDecodedVerifiableCredential\n }): string {\n const { format, presentationDefinition, presentation } = determineArgs\n\n var formatOptions = format ?? presentationDefinition.format ?? args.format\n // TODO Refactor so it takes into account the Input Descriptors and we can lookup from there. Now we only do that if there is 1 descriptor\n if (!formatOptions && presentationDefinition.input_descriptors.length == 1 && 'format' in presentationDefinition.input_descriptors[0]) {\n formatOptions = presentationDefinition.input_descriptors[0].format\n }\n // All format arguments are optional. So if no format has been given we go for the most supported 'jwt'\n if (!formatOptions) {\n if (CredentialMapper.isSdJwtDecodedCredentialPayload(presentation.decodedPayload)) {\n return 'vc+sd-jwt'\n } else if (CredentialMapper.isMsoMdocDecodedPresentation(presentation.decodedPayload as OriginalVerifiablePresentation)) {\n return 'mso_mdoc'\n } else if (CredentialMapper.isW3cPresentation(presentation.decodedPayload)) {\n if (typeof presentation.signedPayload === 'string') {\n return 'jwt'\n }\n return 'lds'\n }\n return 'jwt'\n } else if (typeof formatOptions === 'string') {\n // if formatOptions is a singular string we can return that as the format\n return formatOptions\n }\n\n // here we transform all format options to either lds or jwt. but we also want to support sd-jwt, so we need to specifically check for this one. which is ['vc+sd-jwt']\n const formats = new Set(\n Object.keys(formatOptions).map((form) => (form.includes('ldp') ? 'lds' : form.includes('vc+sd-jwt') ? 'vc+sd-jwt' : 'jwt')),\n )\n\n // if we only have 1 format type we can return that\n if (formats.size === 1) {\n return formats.values().next().value!!\n }\n formats.keys().next()\n // if we can go for sd-jwt, we go for sd-jwt\n if (formats.has('vc+sd-jwt')) {\n return 'vc+sd-jwt'\n }\n // if it is not sd-jwt we would like to go for jwt\n else if (formats.has('jwt')) {\n return 'jwt'\n }\n\n // else we go for lds\n return 'lds'\n }\n\n return async ({\n presentation,\n domain,\n presentationDefinition,\n format,\n challenge,\n }: {\n presentation: Optional<PresentationPayload, 'holder'> | SdJwtDecodedVerifiableCredential\n presentationDefinition: IPresentationDefinition\n format?: Format | ProofFormat\n domain?: string\n challenge?: string\n }): Promise<W3CVerifiablePresentation> => {\n const proofFormat = determineProofFormat({ format, presentationDefinition, presentation })\n const { idOpts } = args\n const CLOCK_SKEW = 120\n if (args.skipDidResolution && isManagedIdentifierDidOpts(idOpts)) {\n idOpts.offlineWhenNoDIDRegistered = true\n }\n\n if ('compactSdJwtVc' in presentation) {\n if (proofFormat !== 'vc+sd-jwt') {\n return Promise.reject(Error(`presentation payload does not match proof format ${proofFormat}`))\n }\n\n const presentationResult = await context.agent.createSdJwtPresentation({\n ...(idOpts?.method === 'oid4vci-issuer' && { holder: idOpts?.issuer as string }),\n presentation: presentation.compactSdJwtVc,\n kb: {\n payload: {\n ...presentation.kbJwt?.payload,\n iat: presentation.kbJwt?.payload?.iat ?? Math.floor(Date.now() / 1000 - CLOCK_SKEW),\n nonce: challenge ?? presentation.kbJwt?.payload?.nonce,\n aud: presentation.kbJwt?.payload?.aud ?? domain ?? args.domain,\n },\n },\n })\n\n return CredentialMapper.storedPresentationToOriginalFormat(presentationResult.presentation as OriginalVerifiablePresentation)\n } else {\n const resolution = await context.agent.identifierManagedGet(idOpts)\n\n if (proofFormat === 'vc+sd-jwt') {\n return Promise.reject(Error(`presentation payload does not match proof format ${proofFormat}`))\n }\n let header\n if (!presentation.holder) {\n presentation.holder = resolution.issuer\n }\n if (proofFormat === 'jwt') {\n header = {\n ...((isManagedIdentifierDidResult(resolution) || isManagedIdentifierX5cResult(resolution)) && resolution.kid && { kid: resolution.kid }),\n ...(isManagedIdentifierX5cResult(resolution) && { jwk: resolution.jwk }),\n }\n if (presentation.verifier || !presentation.aud) {\n presentation.aud = Array.isArray(presentation.verifier) ? presentation.verifier : (presentation.verifier ?? domain ?? args.domain)\n delete presentation.verifier\n }\n\n if (!presentation.nbf) {\n if (presentation.issuanceDate) {\n const converted = Date.parse(presentation.issuanceDate)\n if (!isNaN(converted)) {\n presentation.nbf = Math.floor(converted / 1000) // no skew here, as an explicit value was given\n }\n } else {\n presentation.nbf = Math.floor(Date.now() / 1000 - CLOCK_SKEW)\n }\n }\n\n if (!presentation.iat) {\n presentation.iat = presentation.nbf\n }\n\n if (!presentation.exp) {\n if (presentation.expirationDate) {\n const converted = Date.parse(presentation.expirationDate)\n if (!isNaN(converted)) {\n presentation.exp = Math.floor(converted / 1000) // no skew here as an explicit value w as given\n }\n } else {\n presentation.exp = presentation.nbf + 600 + CLOCK_SKEW\n }\n }\n\n if (!presentation.vp) {\n presentation.vp = {}\n }\n /*if (!presentation.sub) {\n presentation.sub = id.did\n }*/\n if (!presentation.vp.holder) {\n presentation.vp.holder = presentation.holder\n }\n }\n\n // we ignore the alg / proof_format for now, as we already have the kid anyway at this point\n\n // todo: look for jwt_vc_json and remove types and @context\n\n const vp = await context.agent.createVerifiablePresentation({\n presentation: presentation as PresentationPayload,\n removeOriginalFields: false,\n keyRef: resolution.kmsKeyRef,\n // domain: domain ?? args.domain, // handled above, and did-jwt-vc creates an array even for 1 entry\n challenge: challenge ?? args.challenge,\n fetchRemoteContexts: args.fetchRemoteContexts !== false,\n proofFormat: proofFormat as ProofFormat,\n header,\n })\n\n // makes sure we extract an actual JWT from the internal representation in case it is a JWT\n return CredentialMapper.storedPresentationToOriginalFormat(vp as OriginalVerifiablePresentation)\n }\n }\n}\n","/**\n * @public\n */\nconst schema = require('../plugin.schema.json')\nexport { schema }\nexport { PresentationExchange } from './agent/PresentationExchange'\nexport * from './types/IPresentationExchange'\nexport * from './functions'\n"],"mappings":"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","names":["PEX","CredentialMapper","JWT_PROOF_TYPE_2020","toDIDs","verifiableCredentialForRoleFilter","PresentationExchange","schema","IDidAuthSiopOpAuthenticator","pex","PEX","methods","pexValidateDefinition","bind","pexDefinitionVersion","pexDefinitionFilterCredentials","pexDefinitionFilterCredentialsPerInputDescriptor","constructor","opts","args","definition","invalids","result","validateDefinition","validations","Array","isArray","push","filter","v","status","error","message","tag","length","Error","map","toString","presentationDefinition","definitionVersionDiscovery","context","credentials","pexFilterCredentials","credentialFilterOpts","holderDIDs","toDIDs","agent","dataStoreORMGetIdentifiers","selectResults","selectFrom","limitDisclosureSignatureSuites","id","filteredCredentials","verifiableCredential","vc","CredentialMapper","storedCredentialToOriginalFormat","origDefinition","promises","Map","input_descriptors","forEach","inputDescriptor","credentialRole","set","verifiableCredentials","Promise","all","values","entry","entries","filterOpts","verifiableCredentialForRoleFilter","uniqueCredentials","crsGetUniqueCredentials","uniqueVC","uniformVerifiableCredential","proof","jwtProof","find","p","type","JWT_PROOF_TYPE_2020","jwt","isManagedIdentifierDidOpts","isManagedIdentifierDidResult","isManagedIdentifierX5cResult","CredentialMapper","createPEXPresentationSignCallback","args","context","determineProofFormat","determineArgs","format","presentationDefinition","presentation","formatOptions","input_descriptors","length","CredentialMapper","isSdJwtDecodedCredentialPayload","decodedPayload","isMsoMdocDecodedPresentation","isW3cPresentation","signedPayload","formats","Set","Object","keys","map","form","includes","size","values","next","value","has","domain","challenge","proofFormat","idOpts","CLOCK_SKEW","skipDidResolution","isManagedIdentifierDidOpts","offlineWhenNoDIDRegistered","Promise","reject","Error","presentationResult","agent","createSdJwtPresentation","method","holder","issuer","compactSdJwtVc","kb","payload","kbJwt","iat","Math","floor","Date","now","nonce","aud","storedPresentationToOriginalFormat","resolution","identifierManagedGet","header","isManagedIdentifierDidResult","isManagedIdentifierX5cResult","kid","jwk","verifier","Array","isArray","nbf","issuanceDate","converted","parse","isNaN","exp","expirationDate","vp","createVerifiablePresentation","removeOriginalFields","keyRef","kmsKeyRef","fetchRemoteContexts","schema","require"]}
package/package.json CHANGED
@@ -1,32 +1,43 @@
1
1
  {
2
2
  "name": "@sphereon/ssi-sdk.presentation-exchange",
3
- "version": "0.33.1-feature.vcdm2.4+9f634bdb",
3
+ "version": "0.33.1-feature.vcdm2.tsup.19+db508b44",
4
4
  "source": "src/index.ts",
5
- "main": "dist/index.js",
6
- "types": "dist/index.d.ts",
5
+ "type": "module",
6
+ "main": "./dist/index.cjs",
7
+ "module": "./dist/index.js",
8
+ "types": "./dist/index.d.ts",
9
+ "exports": {
10
+ "import": {
11
+ "types": "./dist/index.d.ts",
12
+ "import": "./dist/index.js"
13
+ },
14
+ "require": {
15
+ "types": "./dist/index.d.cts",
16
+ "require": "./dist/index.cjs"
17
+ }
18
+ },
7
19
  "veramo": {
8
20
  "pluginInterfaces": {
9
21
  "IPresentationExchange": "./src/types/IPresentationExchange.ts"
10
22
  }
11
23
  },
12
24
  "scripts": {
13
- "build": "tsc --build",
14
- "build:clean": "tsc --build --clean && tsc --build"
25
+ "build": "tsup --config ../../tsup.config.ts --tsconfig ../../tsconfig.tsup.json"
15
26
  },
16
27
  "dependencies": {
17
28
  "@sphereon/pex": "5.0.0-unstable.28",
18
29
  "@sphereon/pex-models": "^2.3.2",
19
- "@sphereon/ssi-sdk-ext.did-utils": "0.28.0",
20
- "@sphereon/ssi-sdk-ext.identifier-resolution": "0.28.0",
21
- "@sphereon/ssi-sdk.credential-store": "0.33.1-feature.vcdm2.4+9f634bdb",
22
- "@sphereon/ssi-sdk.data-store": "0.33.1-feature.vcdm2.4+9f634bdb",
23
- "@sphereon/ssi-sdk.sd-jwt": "0.33.1-feature.vcdm2.4+9f634bdb",
24
- "@sphereon/ssi-types": "0.33.1-feature.vcdm2.4+9f634bdb",
30
+ "@sphereon/ssi-sdk-ext.did-utils": "0.28.1-feature.esm.cjs.11",
31
+ "@sphereon/ssi-sdk-ext.identifier-resolution": "0.28.1-feature.esm.cjs.11",
32
+ "@sphereon/ssi-sdk.credential-store": "^0.33.1-feature.vcdm2.tsup.19+db508b44",
33
+ "@sphereon/ssi-sdk.data-store": "^0.33.1-feature.vcdm2.tsup.19+db508b44",
34
+ "@sphereon/ssi-sdk.sd-jwt": "^0.33.1-feature.vcdm2.tsup.19+db508b44",
35
+ "@sphereon/ssi-types": "^0.33.1-feature.vcdm2.tsup.19+db508b44",
25
36
  "@veramo/core": "4.2.0"
26
37
  },
27
38
  "devDependencies": {
28
39
  "@sphereon/did-uni-client": "^0.6.3",
29
- "@sphereon/ssi-sdk.agent-config": "0.33.1-feature.vcdm2.4+9f634bdb",
40
+ "@sphereon/ssi-sdk.agent-config": "^0.33.1-feature.vcdm2.tsup.19+db508b44",
30
41
  "@types/json-buffer": "^3.0.2",
31
42
  "@veramo/did-provider-key": "4.2.0",
32
43
  "@veramo/did-resolver": "4.2.0",
@@ -37,9 +48,8 @@
37
48
  "nock": "^13.5.4"
38
49
  },
39
50
  "files": [
40
- ".yalc/**/*",
41
- "dist/**/*",
42
- "src/**/*",
51
+ "dist",
52
+ "src",
43
53
  "README.md",
44
54
  "plugin.schema.json",
45
55
  "LICENSE"
@@ -63,6 +73,5 @@
63
73
  "OpenID Connect",
64
74
  "Authenticator"
65
75
  ],
66
- "nx": {},
67
- "gitHead": "9f634bdb714061141e277508c124b08d626f6036"
76
+ "gitHead": "db508b447fb1f769700f1d5e7cd8196653f4f794"
68
77
  }
@@ -1,16 +0,0 @@
1
- import { IDefinitionCredentialFilterArgs, IPEXFilterResult, IPEXFilterResultWithInputDescriptor, IRequiredContext, PEXOpts, VersionDiscoveryResult } from '../index';
2
- import { IAgentPlugin } from '@veramo/core';
3
- import { IPresentationExchange } from '../types/IPresentationExchange';
4
- import { IPresentationDefinition } from '@sphereon/pex';
5
- export declare class PresentationExchange implements IAgentPlugin {
6
- readonly schema: any;
7
- private readonly pex;
8
- readonly methods: IPresentationExchange;
9
- constructor(opts?: PEXOpts);
10
- private pexValidateDefinition;
11
- pexDefinitionVersion(presentationDefinition: IPresentationDefinition): Promise<VersionDiscoveryResult>;
12
- pexDefinitionFilterCredentials(args: IDefinitionCredentialFilterArgs, context: IRequiredContext): Promise<IPEXFilterResult>;
13
- pexDefinitionFilterCredentialsPerInputDescriptor(args: IDefinitionCredentialFilterArgs, context: IRequiredContext): Promise<IPEXFilterResultWithInputDescriptor[]>;
14
- private pexFilterCredentials;
15
- }
16
- //# sourceMappingURL=PresentationExchange.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PresentationExchange.d.ts","sourceRoot":"","sources":["../../src/agent/PresentationExchange.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,+BAA+B,EAE/B,gBAAgB,EAChB,mCAAmC,EACnC,gBAAgB,EAChB,OAAO,EAEP,sBAAsB,EACvB,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAE3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAA;AACtE,OAAO,EAAW,uBAAuB,EAAO,MAAM,eAAe,CAAA;AAOrE,qBAAa,oBAAqB,YAAW,YAAY;IACvD,QAAQ,CAAC,MAAM,MAAqC;IACpD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAY;IAEhC,QAAQ,CAAC,OAAO,EAAE,qBAAqB,CAKtC;gBAEW,IAAI,CAAC,EAAE,OAAO;YAEZ,qBAAqB;IA2B7B,oBAAoB,CAAC,sBAAsB,EAAE,uBAAuB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAItG,8BAA8B,CAAC,IAAI,EAAE,+BAA+B,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAe3H,gDAAgD,CACpD,IAAI,EAAE,+BAA+B,EACrC,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,mCAAmC,EAAE,CAAC;YAqCnC,oBAAoB;CAsBnC"}
@@ -1,98 +0,0 @@
1
- import { schema, } from '../index';
2
- import { PEX } from '@sphereon/pex';
3
- import { CredentialMapper, JWT_PROOF_TYPE_2020 } from '@sphereon/ssi-types';
4
- import { toDIDs } from '@sphereon/ssi-sdk-ext.did-utils';
5
- import { verifiableCredentialForRoleFilter } from '@sphereon/ssi-sdk.credential-store';
6
- export class PresentationExchange {
7
- schema = schema.IDidAuthSiopOpAuthenticator;
8
- pex = new PEX();
9
- methods = {
10
- pexValidateDefinition: this.pexValidateDefinition.bind(this),
11
- pexDefinitionVersion: this.pexDefinitionVersion.bind(this),
12
- pexDefinitionFilterCredentials: this.pexDefinitionFilterCredentials.bind(this),
13
- pexDefinitionFilterCredentialsPerInputDescriptor: this.pexDefinitionFilterCredentialsPerInputDescriptor.bind(this),
14
- };
15
- constructor(opts) { }
16
- async pexValidateDefinition(args) {
17
- const { definition } = args;
18
- const invalids = [];
19
- try {
20
- const result = PEX.validateDefinition(definition);
21
- const validations = Array.isArray(result) ? result : [result];
22
- invalids.push(...validations.filter((v) => v.status === 'error'));
23
- }
24
- catch (error) {
25
- invalids.push({
26
- status: 'error',
27
- message: typeof error === 'string'
28
- ? error
29
- : typeof error === 'object' && 'message' in error
30
- ? error.message
31
- : 'unknown error',
32
- tag: 'validation',
33
- });
34
- }
35
- if (invalids.length > 0) {
36
- throw Error(`Invalid definition. ${invalids.map((v) => v.message).toString()}`);
37
- }
38
- return true; // Never returns false, but REST API does not allow Promise<void>
39
- }
40
- async pexDefinitionVersion(presentationDefinition) {
41
- return PEX.definitionVersionDiscovery(presentationDefinition);
42
- }
43
- async pexDefinitionFilterCredentials(args, context) {
44
- const credentials = await this.pexFilterCredentials(args.credentialFilterOpts, context);
45
- const holderDIDs = args.holderDIDs ? toDIDs(args.holderDIDs) : toDIDs(await context.agent.dataStoreORMGetIdentifiers());
46
- const selectResults = this.pex.selectFrom(args.presentationDefinition, credentials ?? [], {
47
- ...args,
48
- holderDIDs,
49
- limitDisclosureSignatureSuites: args.limitDisclosureSignatureSuites ?? ['BbsBlsSignature2020'],
50
- });
51
- return {
52
- id: args.presentationDefinition.id,
53
- selectResults,
54
- filteredCredentials: selectResults.verifiableCredential?.map((vc) => CredentialMapper.storedCredentialToOriginalFormat(vc)) ?? [],
55
- };
56
- }
57
- async pexDefinitionFilterCredentialsPerInputDescriptor(args, context) {
58
- const origDefinition = args.presentationDefinition;
59
- const credentials = await this.pexFilterCredentials(args.credentialFilterOpts ?? {}, context);
60
- const holderDIDs = args.holderDIDs ? toDIDs(args.holderDIDs) : toDIDs(await context.agent.dataStoreORMGetIdentifiers());
61
- const limitDisclosureSignatureSuites = args.limitDisclosureSignatureSuites;
62
- const promises = new Map();
63
- origDefinition.input_descriptors.forEach((inputDescriptor) => {
64
- const presentationDefinition = {
65
- id: inputDescriptor.id,
66
- input_descriptors: [inputDescriptor],
67
- };
68
- const credentialRole = args.credentialFilterOpts.credentialRole;
69
- promises.set(inputDescriptor, this.pexDefinitionFilterCredentials({
70
- credentialFilterOpts: { credentialRole, verifiableCredentials: credentials },
71
- // @ts-ignore
72
- presentationDefinition,
73
- holderDIDs,
74
- limitDisclosureSignatureSuites,
75
- }, context));
76
- });
77
- await Promise.all(promises.values());
78
- const result = [];
79
- for (const entry of promises.entries()) {
80
- result.push({ ...(await entry[1]), inputDescriptor: entry[0] });
81
- }
82
- return result;
83
- }
84
- async pexFilterCredentials(filterOpts, context) {
85
- if (filterOpts.verifiableCredentials && filterOpts.verifiableCredentials.length > 0) {
86
- return filterOpts.verifiableCredentials;
87
- }
88
- const filter = verifiableCredentialForRoleFilter(filterOpts.credentialRole, filterOpts.filter);
89
- const uniqueCredentials = await context.agent.crsGetUniqueCredentials({ filter });
90
- return uniqueCredentials.map((uniqueVC) => {
91
- const vc = uniqueVC.uniformVerifiableCredential;
92
- const proof = Array.isArray(vc.proof) ? vc.proof : [vc.proof];
93
- const jwtProof = proof.find((p) => p?.type === JWT_PROOF_TYPE_2020);
94
- return jwtProof ? jwtProof.jwt : vc;
95
- });
96
- }
97
- }
98
- //# sourceMappingURL=PresentationExchange.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PresentationExchange.js","sourceRoot":"","sources":["../../src/agent/PresentationExchange.ts"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- import { Format } from '@sphereon/pex-models';
2
- import { ManagedIdentifierOptsOrResult } from '@sphereon/ssi-sdk-ext.identifier-resolution';
3
- import { ProofFormat } from '@veramo/core';
4
- import { IPEXPresentationSignCallback, IRequiredContext } from './types/IPresentationExchange';
5
- export declare function createPEXPresentationSignCallback(args: {
6
- idOpts: ManagedIdentifierOptsOrResult;
7
- fetchRemoteContexts?: boolean;
8
- skipDidResolution?: boolean;
9
- format?: Format | ProofFormat;
10
- domain?: string;
11
- challenge?: string;
12
- }, context: IRequiredContext): Promise<IPEXPresentationSignCallback>;
13
- //# sourceMappingURL=functions.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../src/functions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAC7C,OAAO,EAIL,6BAA6B,EAC9B,MAAM,6CAA6C,CAAA;AAQpD,OAAO,EAAuB,WAAW,EAAE,MAAM,cAAc,CAAA;AAC/D,OAAO,EAAE,4BAA4B,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAE9F,wBAAsB,iCAAiC,CACrD,IAAI,EAAE;IACJ,MAAM,EAAE,6BAA6B,CAAA;IACrC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,MAAM,CAAC,EAAE,MAAM,GAAG,WAAW,CAAA;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,EACD,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,4BAA4B,CAAC,CAyKvC"}
package/dist/functions.js DELETED
@@ -1,144 +0,0 @@
1
- import { isManagedIdentifierDidOpts, isManagedIdentifierDidResult, isManagedIdentifierX5cResult, } from '@sphereon/ssi-sdk-ext.identifier-resolution';
2
- import { CredentialMapper, } from '@sphereon/ssi-types';
3
- export async function createPEXPresentationSignCallback(args, context) {
4
- function determineProofFormat(determineArgs) {
5
- const { format, presentationDefinition, presentation } = determineArgs;
6
- var formatOptions = format ?? presentationDefinition.format ?? args.format;
7
- // TODO Refactor so it takes into account the Input Descriptors and we can lookup from there. Now we only do that if there is 1 descriptor
8
- if (!formatOptions && presentationDefinition.input_descriptors.length == 1 && 'format' in presentationDefinition.input_descriptors[0]) {
9
- formatOptions = presentationDefinition.input_descriptors[0].format;
10
- }
11
- // All format arguments are optional. So if no format has been given we go for the most supported 'jwt'
12
- if (!formatOptions) {
13
- if (CredentialMapper.isSdJwtDecodedCredentialPayload(presentation.decodedPayload)) {
14
- return 'vc+sd-jwt';
15
- }
16
- else if (CredentialMapper.isMsoMdocDecodedPresentation(presentation.decodedPayload)) {
17
- return 'mso_mdoc';
18
- }
19
- else if (CredentialMapper.isW3cPresentation(presentation.decodedPayload)) {
20
- if (typeof presentation.signedPayload === 'string') {
21
- return 'jwt';
22
- }
23
- return 'lds';
24
- }
25
- return 'jwt';
26
- }
27
- else if (typeof formatOptions === 'string') {
28
- // if formatOptions is a singular string we can return that as the format
29
- return formatOptions;
30
- }
31
- // here we transform all format options to either lds or jwt. but we also want to support sd-jwt, so we need to specifically check for this one. which is ['vc+sd-jwt']
32
- const formats = new Set(Object.keys(formatOptions).map((form) => (form.includes('ldp') ? 'lds' : form.includes('vc+sd-jwt') ? 'vc+sd-jwt' : 'jwt')));
33
- // if we only have 1 format type we can return that
34
- if (formats.size === 1) {
35
- return formats.values().next().value;
36
- }
37
- formats.keys().next();
38
- // if we can go for sd-jwt, we go for sd-jwt
39
- if (formats.has('vc+sd-jwt')) {
40
- return 'vc+sd-jwt';
41
- }
42
- // if it is not sd-jwt we would like to go for jwt
43
- else if (formats.has('jwt')) {
44
- return 'jwt';
45
- }
46
- // else we go for lds
47
- return 'lds';
48
- }
49
- return async ({ presentation, domain, presentationDefinition, format, challenge, }) => {
50
- const proofFormat = determineProofFormat({ format, presentationDefinition, presentation });
51
- const { idOpts } = args;
52
- const CLOCK_SKEW = 120;
53
- if (args.skipDidResolution && isManagedIdentifierDidOpts(idOpts)) {
54
- idOpts.offlineWhenNoDIDRegistered = true;
55
- }
56
- if ('compactSdJwtVc' in presentation) {
57
- if (proofFormat !== 'vc+sd-jwt') {
58
- return Promise.reject(Error(`presentation payload does not match proof format ${proofFormat}`));
59
- }
60
- const presentationResult = await context.agent.createSdJwtPresentation({
61
- ...(idOpts?.method === 'oid4vci-issuer' && { holder: idOpts?.issuer }),
62
- presentation: presentation.compactSdJwtVc,
63
- kb: {
64
- payload: {
65
- ...presentation.kbJwt?.payload,
66
- iat: presentation.kbJwt?.payload?.iat ?? Math.floor(Date.now() / 1000 - CLOCK_SKEW),
67
- nonce: challenge ?? presentation.kbJwt?.payload?.nonce,
68
- aud: presentation.kbJwt?.payload?.aud ?? domain ?? args.domain,
69
- },
70
- },
71
- });
72
- return CredentialMapper.storedPresentationToOriginalFormat(presentationResult.presentation);
73
- }
74
- else {
75
- const resolution = await context.agent.identifierManagedGet(idOpts);
76
- if (proofFormat === 'vc+sd-jwt') {
77
- return Promise.reject(Error(`presentation payload does not match proof format ${proofFormat}`));
78
- }
79
- let header;
80
- if (!presentation.holder) {
81
- presentation.holder = resolution.issuer;
82
- }
83
- if (proofFormat === 'jwt') {
84
- header = {
85
- ...((isManagedIdentifierDidResult(resolution) || isManagedIdentifierX5cResult(resolution)) && resolution.kid && { kid: resolution.kid }),
86
- ...(isManagedIdentifierX5cResult(resolution) && { jwk: resolution.jwk }),
87
- };
88
- if (presentation.verifier || !presentation.aud) {
89
- presentation.aud = Array.isArray(presentation.verifier) ? presentation.verifier : (presentation.verifier ?? domain ?? args.domain);
90
- delete presentation.verifier;
91
- }
92
- if (!presentation.nbf) {
93
- if (presentation.issuanceDate) {
94
- const converted = Date.parse(presentation.issuanceDate);
95
- if (!isNaN(converted)) {
96
- presentation.nbf = Math.floor(converted / 1000); // no skew here, as an explicit value was given
97
- }
98
- }
99
- else {
100
- presentation.nbf = Math.floor(Date.now() / 1000 - CLOCK_SKEW);
101
- }
102
- }
103
- if (!presentation.iat) {
104
- presentation.iat = presentation.nbf;
105
- }
106
- if (!presentation.exp) {
107
- if (presentation.expirationDate) {
108
- const converted = Date.parse(presentation.expirationDate);
109
- if (!isNaN(converted)) {
110
- presentation.exp = Math.floor(converted / 1000); // no skew here as an explicit value w as given
111
- }
112
- }
113
- else {
114
- presentation.exp = presentation.nbf + 600 + CLOCK_SKEW;
115
- }
116
- }
117
- if (!presentation.vp) {
118
- presentation.vp = {};
119
- }
120
- /*if (!presentation.sub) {
121
- presentation.sub = id.did
122
- }*/
123
- if (!presentation.vp.holder) {
124
- presentation.vp.holder = presentation.holder;
125
- }
126
- }
127
- // we ignore the alg / proof_format for now, as we already have the kid anyway at this point
128
- // todo: look for jwt_vc_json and remove types and @context
129
- const vp = await context.agent.createVerifiablePresentation({
130
- presentation: presentation,
131
- removeOriginalFields: false,
132
- keyRef: resolution.kmsKeyRef,
133
- // domain: domain ?? args.domain, // handled above, and did-jwt-vc creates an array even for 1 entry
134
- challenge: challenge ?? args.challenge,
135
- fetchRemoteContexts: args.fetchRemoteContexts !== false,
136
- proofFormat: proofFormat,
137
- header,
138
- });
139
- // makes sure we extract an actual JWT from the internal representation in case it is a JWT
140
- return CredentialMapper.storedPresentationToOriginalFormat(vp);
141
- }
142
- };
143
- }
144
- //# sourceMappingURL=functions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"functions.js","sourceRoot":"","sources":["../src/functions.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,QAAA,MAAM,MAAM,KAAmC,CAAA;AAC/C,OAAO,EAAE,MAAM,EAAE,CAAA;AACjB,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AACnE,cAAc,+BAA+B,CAAA;AAC7C,cAAc,aAAa,CAAA"}
@@ -1,55 +0,0 @@
1
- import { IIdentifierResolution } from '@sphereon/ssi-sdk-ext.identifier-resolution';
2
- import { IAgentContext, ICredentialPlugin, IDataStoreORM, IDIDManager, IIdentifier, IPluginMethodMap, IResolver, PresentationPayload } from '@veramo/core';
3
- import { IPresentation, Optional, SdJwtDecodedVerifiableCredential, W3CVerifiableCredential, W3CVerifiablePresentation } from '@sphereon/ssi-types';
4
- import { IPresentationDefinition, PEVersion, SelectResults } from '@sphereon/pex';
5
- import { Format, InputDescriptorV1, InputDescriptorV2 } from '@sphereon/pex-models';
6
- import { CredentialRole, FindDigitalCredentialArgs } from '@sphereon/ssi-sdk.data-store';
7
- import { ISDJwtPlugin } from '@sphereon/ssi-sdk.sd-jwt';
8
- export interface IPresentationExchange extends IPluginMethodMap {
9
- pexValidateDefinition(args: IDefinitionValidateArgs): Promise<boolean>;
10
- pexDefinitionVersion(presentationDefinition: IPresentationDefinition): Promise<VersionDiscoveryResult>;
11
- pexDefinitionFilterCredentials(args: IDefinitionCredentialFilterArgs, context: IRequiredContext): Promise<IPEXFilterResult>;
12
- pexDefinitionFilterCredentialsPerInputDescriptor(args: IDefinitionCredentialFilterArgs, context: IRequiredContext): Promise<IPEXFilterResultWithInputDescriptor[]>;
13
- }
14
- export interface IDefinitionValidateArgs {
15
- definition: IPresentationDefinition;
16
- }
17
- export interface IDefinitionCredentialFilterArgs {
18
- presentationDefinition: IPresentationDefinition;
19
- credentialFilterOpts: {
20
- credentialRole: CredentialRole;
21
- verifiableCredentials?: W3CVerifiableCredential[];
22
- filter?: FindDigitalCredentialArgs;
23
- };
24
- holderDIDs?: (string | IIdentifier)[];
25
- limitDisclosureSignatureSuites?: string[];
26
- restrictToFormats?: Format;
27
- restrictToDIDMethods?: string[];
28
- }
29
- export interface PEXOpts {
30
- defaultStore?: string;
31
- defaultNamespace?: string;
32
- }
33
- export interface IPEXOptions {
34
- definition?: IPresentationDefinition;
35
- definitionId: string;
36
- }
37
- export interface IPEXFilterResultWithInputDescriptor extends IPEXFilterResult {
38
- inputDescriptor: InputDescriptorV1 | InputDescriptorV2;
39
- }
40
- export interface IPEXFilterResult {
41
- id: string;
42
- selectResults: SelectResults;
43
- filteredCredentials: W3CVerifiableCredential[];
44
- }
45
- export interface VersionDiscoveryResult {
46
- version?: PEVersion;
47
- error?: string;
48
- }
49
- export type IPEXPresentationSignCallback = (args: IPEXPresentationSignCallBackParams) => Promise<W3CVerifiablePresentation>;
50
- export interface IPEXPresentationSignCallBackParams {
51
- presentation: IPresentation | Optional<PresentationPayload, 'holder'> | SdJwtDecodedVerifiableCredential;
52
- presentationDefinition: IPresentationDefinition;
53
- }
54
- export type IRequiredContext = IAgentContext<IDataStoreORM & IResolver & IDIDManager & IIdentifierResolution & ICredentialPlugin & ISDJwtPlugin>;
55
- //# sourceMappingURL=IPresentationExchange.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"IPresentationExchange.d.ts","sourceRoot":"","sources":["../../src/types/IPresentationExchange.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAA;AACnF,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,WAAW,EACX,WAAW,EACX,gBAAgB,EAChB,SAAS,EACT,mBAAmB,EACpB,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,gCAAgC,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAA;AACnJ,OAAO,EAAE,uBAAuB,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AACjF,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AACnF,OAAO,EAAE,cAAc,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAA;AACxF,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAEvD,MAAM,WAAW,qBAAsB,SAAQ,gBAAgB;IAC7D,qBAAqB,CAAC,IAAI,EAAE,uBAAuB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAEtE,oBAAoB,CAAC,sBAAsB,EAAE,uBAAuB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAA;IAEtG,8BAA8B,CAAC,IAAI,EAAE,+BAA+B,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAA;IAE3H,gDAAgD,CAC9C,IAAI,EAAE,+BAA+B,EACrC,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,mCAAmC,EAAE,CAAC,CAAA;CAClD;AAED,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,uBAAuB,CAAA;CACpC;AAED,MAAM,WAAW,+BAA+B;IAC9C,sBAAsB,EAAE,uBAAuB,CAAA;IAC/C,oBAAoB,EAAE;QACpB,cAAc,EAAE,cAAc,CAAA;QAC9B,qBAAqB,CAAC,EAAE,uBAAuB,EAAE,CAAA;QACjD,MAAM,CAAC,EAAE,yBAAyB,CAAA;KACnC,CAAA;IACD,UAAU,CAAC,EAAE,CAAC,MAAM,GAAG,WAAW,CAAC,EAAE,CAAA;IACrC,8BAA8B,CAAC,EAAE,MAAM,EAAE,CAAA;IACzC,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAA;CAChC;AAED,MAAM,WAAW,OAAO;IACtB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAED,MAAM,WAAW,WAAW;IAE1B,UAAU,CAAC,EAAE,uBAAuB,CAAA;IACpC,YAAY,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,mCAAoC,SAAQ,gBAAgB;IAC3E,eAAe,EAAE,iBAAiB,GAAG,iBAAiB,CAAA;CACvD;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAA;IACV,aAAa,EAAE,aAAa,CAAA;IAC5B,mBAAmB,EAAE,uBAAuB,EAAE,CAAA;CAC/C;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,CAAC,EAAE,SAAS,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,MAAM,4BAA4B,GAAG,CAAC,IAAI,EAAE,kCAAkC,KAAK,OAAO,CAAC,yBAAyB,CAAC,CAAA;AAE3H,MAAM,WAAW,kCAAkC;IACjD,YAAY,EAAE,aAAa,GAAG,QAAQ,CAAC,mBAAmB,EAAE,QAAQ,CAAC,GAAG,gCAAgC,CAAA;IACxG,sBAAsB,EAAE,uBAAuB,CAAA;CAChD;AAED,MAAM,MAAM,gBAAgB,GAAG,aAAa,CAAC,aAAa,GAAG,SAAS,GAAG,WAAW,GAAG,qBAAqB,GAAG,iBAAiB,GAAG,YAAY,CAAC,CAAA"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=IPresentationExchange.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"IPresentationExchange.js","sourceRoot":"","sources":["../../src/types/IPresentationExchange.ts"],"names":[],"mappings":""}