@sphereon/ssi-sdk.oid4vci-issuer-store
Version:
103 lines • 5.16 kB
TypeScript
import { AuthorizationServerMetadata, ClientMetadata, CredentialIssuerMetadataOpts, IssuerMetadata } from '@sphereon/oid4vci-common';
import { IDIDOptions, ResolveOpts } 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 { IPluginMethodMap } from '@veramo/core';
import { CreateNewStatusListArgs } from '@sphereon/ssi-sdk.vc-status-list';
export type MetadataTypeMap = {
issuer: IssuerMetadata;
authorizationServer: AuthorizationServerMetadata;
};
export type OptionalIssuerMetadata = IssuerMetadata | AuthorizationServerMetadata | undefined;
export type OptionalIssuerMetadataValue = IValueData<IssuerMetadata | AuthorizationServerMetadata> | undefined;
export 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>;
}
export 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[];
}
export interface IIssuerDefaultOpts extends IIssuerOptions {
}
export interface IIssuerInstanceOptions extends IMetadataOptions {
issuerOpts?: IIssuerOptions;
metadata?: CredentialIssuerMetadataOpts;
}
export 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;
}
export interface IMetadataOptions {
credentialIssuer: string;
storeId?: string;
storeNamespace?: string;
}
export type MetadataType = 'issuer' | 'authorizationServer' | 'openidFederation';
export interface IOid4vciStoreListArgs {
metadataType: MetadataType;
storeId?: string;
namespace?: string;
}
export interface IOid4vciStoreGetArgs extends IOid4vciStoreListArgs {
correlationId: string;
}
export type Ioid4vciStoreExistsArgs = IOid4vciStoreGetArgs;
export type Ioid4vciStoreRemoveArgs = IOid4vciStoreGetArgs;
export interface IMetadataImportArgs {
metadataType: MetadataType;
}
export type IIssuerMetadataImportArgs = IMetadataPersistArgs;
export type IIssuerOptsImportArgs = IIssuerOptsPersistArgs;
export interface IMetadataPersistArgs extends Ioid4vciStorePersistArgs, IMetadataImportArgs {
metadata: IssuerMetadata | AuthorizationServerMetadata;
}
export interface IIssuerOptsPersistArgs extends Ioid4vciStorePersistArgs {
issuerOpts: IIssuerOptions;
endpointOpts: unknown;
statusLists: Array<CreateNewStatusListArgs>;
}
export interface Ioid4vciStorePersistArgs {
correlationId: string;
overwriteExisting?: boolean;
validation?: boolean;
ttl?: number;
storeId?: string;
namespace?: string;
}
export interface Ioid4vciStoreClearArgs {
metadataType: MetadataType;
storeId?: string;
}
//# sourceMappingURL=IOID4VCIStore.d.ts.map