@sphereon/ssi-sdk.presentation-exchange
Version:
84 lines (78 loc) • 4.25 kB
text/typescript
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 };