@sphereon/ssi-sdk.oid4vci-issuer-store
Version:
144 lines (139 loc) • 6.87 kB
TypeScript
import { IPluginMethodMap, IAgentPlugin } from '@veramo/core';
import { ClientMetadata, IssuerMetadata, AuthorizationServerMetadata, CredentialIssuerMetadataOpts } from '@sphereon/oid4vci-common';
import { ResolveOpts, IDIDOptions } from '@sphereon/ssi-sdk-ext.did-utils';
import { ManagedIdentifierOptsOrResult } from '@sphereon/ssi-sdk-ext.identifier-resolution';
import { IKeyValueStore, IValueData } from '@sphereon/ssi-sdk.kv-store-temp';
import { CreateNewStatusListArgs } from '@sphereon/ssi-sdk.vc-status-list';
type MetadataTypeMap = {
issuer: IssuerMetadata;
authorizationServer: AuthorizationServerMetadata;
};
type OptionalIssuerMetadata = IssuerMetadata | AuthorizationServerMetadata | undefined;
type OptionalIssuerMetadataValue = IValueData<IssuerMetadata | AuthorizationServerMetadata> | undefined;
interface IOID4VCIStore extends IPluginMethodMap {
oid4vciStoreDefaultMetadata(): Promise<IKeyValueStore<IssuerMetadata>>;
oid4vciStoreDefaultIssuerOptions(): Promise<IKeyValueStore<IIssuerOptions>>;
oid4vciStoreDefaultStoreId(): Promise<string>;
oid4vciStoreDefaultNamespace(): Promise<string>;
oid4vciStoreGetIssuerOpts({ correlationId, storeId, namespace }: IOid4vciStoreGetArgs): Promise<IIssuerOptions | undefined>;
oid4vciStoreHasIssuerOpts({ correlationId, storeId, namespace }: Ioid4vciStoreExistsArgs): Promise<boolean>;
oid4vciStorePersistIssuerOpts(args: IIssuerOptsPersistArgs): Promise<IValueData<IIssuerOptions>>;
oid4vciStoreRemoveIssuerOpts({ storeId, correlationId, namespace }: Ioid4vciStoreRemoveArgs): Promise<boolean>;
oid4vciStoreClearAllIssuerOpts({ storeId }: Ioid4vciStoreClearArgs): Promise<boolean>;
oid4vciStoreGetMetadata({ metadataType, correlationId, storeId, namespace, }: IOid4vciStoreGetArgs): Promise<IssuerMetadata | AuthorizationServerMetadata | undefined>;
oid4vciStoreListMetadata({ metadataType, storeId, namespace }: IOid4vciStoreListArgs): Promise<Array<OptionalIssuerMetadata>>;
oid4vciStoreHasMetadata({ metadataType, correlationId, storeId, namespace }: Ioid4vciStoreExistsArgs): Promise<boolean>;
oid4vciStorePersistMetadata(args: IMetadataPersistArgs): Promise<OptionalIssuerMetadataValue>;
oid4vciStoreRemoveMetadata({ metadataType, storeId, correlationId, namespace }: Ioid4vciStoreRemoveArgs): Promise<boolean>;
oid4vciStoreClearAllMetadata({ metadataType, storeId }: Ioid4vciStoreClearArgs): Promise<boolean>;
}
interface IOID4VCIStoreOpts {
defaultStore?: string;
defaultNamespace?: string;
issuerMetadataStores?: Map<string, IKeyValueStore<IssuerMetadata>> | IKeyValueStore<IssuerMetadata>;
authorizationServerMetadataStores?: Map<string, IKeyValueStore<AuthorizationServerMetadata>> | IKeyValueStore<AuthorizationServerMetadata>;
issuerOptsStores?: Map<string, IKeyValueStore<IIssuerOptions>> | IKeyValueStore<IIssuerOptions>;
importMetadatas?: IMetadataImportArgs[];
importIssuerOpts?: IIssuerOptsImportArgs[];
defaultOpts?: IIssuerDefaultOpts;
instanceOpts?: IIssuerInstanceOptions[];
}
interface IIssuerDefaultOpts extends IIssuerOptions {
}
interface IIssuerInstanceOptions extends IMetadataOptions {
issuerOpts?: IIssuerOptions;
metadata?: CredentialIssuerMetadataOpts;
}
interface IIssuerOptions {
asClientOpts?: ClientMetadata;
idOpts?: ManagedIdentifierOptsOrResult;
resolveOpts?: ResolveOpts;
/**
* @deprecated use idOpts which is more capable and supports x5c and jwks next to dids
*/
didOpts?: IDIDOptions;
userPinRequired?: boolean;
cNonceExpiresIn?: number;
/**
* Used in the callbacks for the first party flow
*/
presentationDefinitionId?: string;
}
interface IMetadataOptions {
credentialIssuer: string;
storeId?: string;
storeNamespace?: string;
}
type MetadataType = 'issuer' | 'authorizationServer' | 'openidFederation';
interface IOid4vciStoreListArgs {
metadataType: MetadataType;
storeId?: string;
namespace?: string;
}
interface IOid4vciStoreGetArgs extends IOid4vciStoreListArgs {
correlationId: string;
}
type Ioid4vciStoreExistsArgs = IOid4vciStoreGetArgs;
type Ioid4vciStoreRemoveArgs = IOid4vciStoreGetArgs;
interface IMetadataImportArgs {
metadataType: MetadataType;
}
type IIssuerMetadataImportArgs = IMetadataPersistArgs;
type IIssuerOptsImportArgs = IIssuerOptsPersistArgs;
interface IMetadataPersistArgs extends Ioid4vciStorePersistArgs, IMetadataImportArgs {
metadata: IssuerMetadata | AuthorizationServerMetadata;
}
interface IIssuerOptsPersistArgs extends Ioid4vciStorePersistArgs {
issuerOpts: IIssuerOptions;
endpointOpts: unknown;
statusLists: Array<CreateNewStatusListArgs>;
}
interface Ioid4vciStorePersistArgs {
correlationId: string;
overwriteExisting?: boolean;
validation?: boolean;
ttl?: number;
storeId?: string;
namespace?: string;
}
interface Ioid4vciStoreClearArgs {
metadataType: MetadataType;
storeId?: string;
}
declare class OID4VCIStore implements IAgentPlugin {
get defaultOpts(): IIssuerDefaultOpts | undefined;
set defaultOpts(value: IIssuerDefaultOpts | undefined);
private readonly _issuerMetadataStores;
private readonly _authorizationServerMetadataStores;
private readonly _optionStores;
private readonly defaultStoreId;
private readonly defaultNamespace;
private _defaultOpts?;
readonly methods: IOID4VCIStore;
constructor(opts: IOID4VCIStoreOpts);
private oid4vciStoreGetIssuerOpts;
importIssuerOpts(importOpts: IIssuerOptsImportArgs[]): void;
private oid4vciStoreHasIssuerOpts;
private oid4vciStorePersistIssuerOpts;
private oid4vciStoreRemoveIssuerOpts;
private oid4vciStoreClearAllIssuerOpts;
private oid4vciStoreGetMetadata;
private oid4vciStoreListMetadata;
private oid4vciStoreHasMetadata;
private oid4vciStorePersistMetadata;
private oid4vciStoreRemoveMetadata;
private oid4vciStoreClearAllMetadata;
private oid4vciStoreIssuerOptions;
private oid4vciStoreDefaultMetadata;
private oid4vciStoreDefaultStoreId;
private oid4vciStoreDefaultNamespace;
private store;
private storeIdStr;
private namespaceStr;
private prefix;
}
/**
* @public
*/
declare const schema: any;
export { type IIssuerDefaultOpts, type IIssuerInstanceOptions, type IIssuerMetadataImportArgs, type IIssuerOptions, type IIssuerOptsImportArgs, type IIssuerOptsPersistArgs, type IMetadataImportArgs, type IMetadataOptions, type IMetadataPersistArgs, type IOID4VCIStore, type IOID4VCIStoreOpts, type IOid4vciStoreGetArgs, type IOid4vciStoreListArgs, type Ioid4vciStoreClearArgs, type Ioid4vciStoreExistsArgs, type Ioid4vciStorePersistArgs, type Ioid4vciStoreRemoveArgs, type MetadataType, type MetadataTypeMap, OID4VCIStore, type OptionalIssuerMetadata, type OptionalIssuerMetadataValue, schema };