{"version":3,"sources":["../plugin.schema.json","../src/index.ts","../src/agent/PresentationExchange.ts","../src/functions.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","/**\n * @public\n */\nconst schema = require('../plugin.schema.json')\nexport { schema }\nexport { PresentationExchange } from './agent/PresentationExchange'\nexport * from './types/IPresentationExchange'\nexport * from './functions'\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"],"mappings":"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","names":["module","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","import_ssi_sdk_ext","import_ssi_types","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"]}