UNPKG

@sphereon/ssi-sdk.presentation-exchange

Version:

84 lines (78 loc) 4.25 kB
import { IPluginMethodMap, IIdentifier, IAgentContext, IDataStoreORM, IResolver, IDIDManager, ICredentialPlugin, PresentationPayload, IAgentPlugin, ProofFormat } from '@veramo/core'; import { IIdentifierResolution, ManagedIdentifierOptsOrResult } from '@sphereon/ssi-sdk-ext.identifier-resolution'; import { CredentialRole, W3CVerifiableCredential, IPresentation, Optional, SdJwtDecodedVerifiableCredential, W3CVerifiablePresentation } from '@sphereon/ssi-types'; import { IPresentationDefinition, PEVersion, SelectResults } from '@sphereon/pex'; import { Format, InputDescriptorV1, InputDescriptorV2 } from '@sphereon/pex-models'; import { FindDigitalCredentialArgs } from '@sphereon/ssi-sdk.data-store-types'; import { ISDJwtPlugin } from '@sphereon/ssi-sdk.sd-jwt'; interface IPresentationExchange extends IPluginMethodMap { pexValidateDefinition(args: IDefinitionValidateArgs): Promise<boolean>; pexDefinitionVersion(presentationDefinition: IPresentationDefinition): Promise<VersionDiscoveryResult>; pexDefinitionFilterCredentials(args: IDefinitionCredentialFilterArgs, context: IRequiredContext): Promise<IPEXFilterResult>; pexDefinitionFilterCredentialsPerInputDescriptor(args: IDefinitionCredentialFilterArgs, context: IRequiredContext): Promise<IPEXFilterResultWithInputDescriptor[]>; } interface IDefinitionValidateArgs { definition: IPresentationDefinition; } interface IDefinitionCredentialFilterArgs { presentationDefinition: IPresentationDefinition; credentialFilterOpts: { credentialRole: CredentialRole; verifiableCredentials?: W3CVerifiableCredential[]; filter?: FindDigitalCredentialArgs; }; holderDIDs?: (string | IIdentifier)[]; limitDisclosureSignatureSuites?: string[]; restrictToFormats?: Format; restrictToDIDMethods?: string[]; } interface PEXOpts { defaultStore?: string; defaultNamespace?: string; } interface IPEXOptions { definition?: IPresentationDefinition; definitionId: string; } interface IPEXFilterResultWithInputDescriptor extends IPEXFilterResult { inputDescriptor: InputDescriptorV1 | InputDescriptorV2; } interface IPEXFilterResult { id: string; selectResults: SelectResults; filteredCredentials: W3CVerifiableCredential[]; } interface VersionDiscoveryResult { version?: PEVersion; error?: string; } type IPEXPresentationSignCallback = (args: IPEXPresentationSignCallBackParams) => Promise<W3CVerifiablePresentation>; interface IPEXPresentationSignCallBackParams { presentation: IPresentation | Optional<PresentationPayload, 'holder'> | SdJwtDecodedVerifiableCredential; presentationDefinition: IPresentationDefinition; } type IRequiredContext = IAgentContext<IDataStoreORM & IResolver & IDIDManager & IIdentifierResolution & ICredentialPlugin & ISDJwtPlugin>; declare class PresentationExchange implements IAgentPlugin { readonly schema: any; private readonly pex; readonly methods: IPresentationExchange; constructor(opts?: PEXOpts); private pexValidateDefinition; pexDefinitionVersion(presentationDefinition: IPresentationDefinition): Promise<VersionDiscoveryResult>; pexDefinitionFilterCredentials(args: IDefinitionCredentialFilterArgs, context: IRequiredContext): Promise<IPEXFilterResult>; pexDefinitionFilterCredentialsPerInputDescriptor(args: IDefinitionCredentialFilterArgs, context: IRequiredContext): Promise<IPEXFilterResultWithInputDescriptor[]>; private pexFilterCredentials; } declare function createPEXPresentationSignCallback(args: { idOpts: ManagedIdentifierOptsOrResult; fetchRemoteContexts?: boolean; skipDidResolution?: boolean; format?: Format | ProofFormat; domain?: string; challenge?: string; }, context: IRequiredContext): Promise<IPEXPresentationSignCallback>; /** * @public */ declare const schema: any; export { type IDefinitionCredentialFilterArgs, type IDefinitionValidateArgs, type IPEXFilterResult, type IPEXFilterResultWithInputDescriptor, type IPEXOptions, type IPEXPresentationSignCallBackParams, type IPEXPresentationSignCallback, type IPresentationExchange, type IRequiredContext, type PEXOpts, PresentationExchange, type VersionDiscoveryResult, createPEXPresentationSignCallback, schema };