@sphereon/ssi-sdk.wellknown-did-issuer
Version:
117 lines (108 loc) • 5.52 kB
TypeScript
import { Credential } from '@veramo/data-store';
import { BaseEntity, Connection, MigrationInterface, QueryRunner } from 'typeorm';
import { IDidConfigurationResource, IIssueDomainLinkageCredentialOptions, IssuanceCallback, DomainLinkageCredential } from '@sphereon/wellknown-dids-client';
import { IPluginMethodMap, IAgentContext, IDIDManager, IAgentPlugin } from '@veramo/core';
import { OrPromise } from '@veramo/utils';
import { ICredentialStore } from '@sphereon/ssi-sdk.credential-store';
declare class DidConfigurationResourceEntity extends BaseEntity {
origin: string;
context: string;
linkedDids: Array<Credential>;
createdAt: Date;
lastUpdatedAt: Date;
}
interface IWellKnownDidIssuer extends IPluginMethodMap {
addLinkedDomainsService(args: IAddLinkedDomainsServiceArgs, context: RequiredContext): Promise<void>;
getDidConfigurationResource(args: IGetDidConfigurationResourceArgs, context: RequiredContext): Promise<IDidConfigurationResource>;
issueDidConfigurationResource(args: IIssueDidConfigurationResourceArgs, context: RequiredContext): Promise<IDidConfigurationResource>;
issueDomainLinkageCredential(args: IIssueDomainLinkageCredentialArgs, context: RequiredContext): Promise<DomainLinkageCredential>;
registerCredentialIssuance(args: IRegisterIssueCredentialArgs, context: RequiredContext): Promise<void>;
removeCredentialIssuance(args: IRemoveCredentialIssuanceArgs, context: RequiredContext): Promise<boolean>;
saveDidConfigurationResource(args: ISaveDidConfigurationResourceArgs, context: RequiredContext): Promise<void>;
}
interface IWellKnownDidIssuerOptionsArgs {
credentialIssuances?: Record<string, IssuanceCallback>;
}
interface IRegisterIssueCredentialArgs {
callbackName: string;
credentialIssuance: IssuanceCallback;
}
interface IRemoveCredentialIssuanceArgs {
callbackName: string;
}
interface IIssueDidConfigurationResourceArgs {
issuances: Array<IIssueDomainLinkageCredentialArgs>;
credentialIssuance?: string | IssuanceCallback;
save?: boolean;
}
interface IIssueDomainLinkageCredentialArgs {
did: string;
origin: string;
serviceId?: string;
issuanceDate?: string;
expirationDate: string;
save?: boolean;
options: IIssueDomainLinkageCredentialOptions;
credentialIssuance?: string | IssuanceCallback;
}
interface IGetDidConfigurationResourceArgs {
origin: string;
}
interface IAddLinkedDomainsServiceArgs {
did: string;
origin: string;
serviceId?: string;
}
interface ISaveDidConfigurationResourceArgs {
origin: string;
didConfigurationResource: IDidConfigurationResource;
}
type RequiredContext = IAgentContext<IDIDManager & ICredentialStore>;
/**
* {@inheritDoc IWellKnownDidIssuer}
*/
declare class WellKnownDidIssuer implements IAgentPlugin {
private dbConnection;
readonly schema: any;
readonly methods: IWellKnownDidIssuer;
private readonly credentialIssuances;
private readonly didConfigurationResourceRelations;
constructor(dbConnection: OrPromise<Connection>, args?: IWellKnownDidIssuerOptionsArgs);
/** {@inheritDoc IWellKnownDidIssuer.registerSignatureVerification} */
private registerCredentialIssuance;
/** {@inheritDoc IWellKnownDidIssuer.removeSignatureVerification} */
private removeCredentialIssuance;
/** {@inheritDoc IWellKnownDidIssuer.issueDidConfigurationResource} */
private issueDidConfigurationResource;
/** {@inheritDoc IWellKnownDidIssuer.saveDidConfigurationResource} */
saveDidConfigurationResource(args: ISaveDidConfigurationResourceArgs, context: RequiredContext): Promise<void>;
/** {@inheritDoc IWellKnownDidIssuer.getDidConfigurationResource} */
getDidConfigurationResource(args: IGetDidConfigurationResourceArgs, context: RequiredContext): Promise<IDidConfigurationResource>;
/** {@inheritDoc IWellKnownDidIssuer.issueDomainLinkageCredential} */
issueDomainLinkageCredential(args: IIssueDomainLinkageCredentialArgs, context: RequiredContext): Promise<DomainLinkageCredential>;
/** {@inheritDoc IWellKnownDidIssuer.addLinkedDomainsService} */
addLinkedDomainsService(args: IAddLinkedDomainsServiceArgs, context: RequiredContext): Promise<void>;
private getCredentialIssuance;
private saveDomainLinkageCredential;
private normalizeCredential;
private mapIssuances;
}
declare class CreateWellknownDidIssuer1661162010000 implements MigrationInterface {
name: string;
up(queryRunner: QueryRunner): Promise<void>;
down(queryRunner: QueryRunner): Promise<void>;
}
/**
* The migrations array that SHOULD be used when initializing a TypeORM database connection.
*
* These ensure the correct creation of tables and the proper migrations of data when tables change between versions.
*
* @public
*/
declare const WellknownDidIssuerMigrations: (typeof CreateWellknownDidIssuer1661162010000)[];
/**
* @public
*/
declare const schema: any;
declare const WellknownDidIssuerEntities: (typeof DidConfigurationResourceEntity)[];
export { DidConfigurationResourceEntity, type IAddLinkedDomainsServiceArgs, type IGetDidConfigurationResourceArgs, type IIssueDidConfigurationResourceArgs, type IIssueDomainLinkageCredentialArgs, type IRegisterIssueCredentialArgs, type IRemoveCredentialIssuanceArgs, type ISaveDidConfigurationResourceArgs, type IWellKnownDidIssuer, type IWellKnownDidIssuerOptionsArgs, type RequiredContext, WellKnownDidIssuer, WellknownDidIssuerEntities, WellknownDidIssuerMigrations, schema };