UNPKG

@veramo/data-store-json

Version:
91 lines 3.61 kB
import { IIdentifier, IMessage, ManagedKeyInfo, VerifiableCredential, VerifiablePresentation, W3CVerifiableCredential, W3CVerifiablePresentation } from '@veramo/core-types'; import { ManagedPrivateKey } from '@veramo/key-manager'; /** * This is used internally by {@link @veramo/data-store-json#DataStoreJson | DataStoreJson} to represent a Verifiable * Credential in a way that facilitates querying using the {@link @veramo/core-types#IDataStoreORM} interface. * * @beta This API may change in future versions without a BREAKING CHANGE notice. */ export interface CredentialTableEntry { hash: string; issuer: string; subject?: string; id?: string; issuanceDate?: Date; expirationDate?: Date; context: string[]; type: string[]; parsedCredential: VerifiableCredential; canonicalCredential: W3CVerifiableCredential; } /** * This is used internally by {@link @veramo/data-store-json#DataStoreJson | DataStoreJson} to represent the claims * contained in a Verifiable Credential in a way that facilitates querying using the {@link @veramo/core-types#IDataStoreORM} * interface. * * @beta This API may change in future versions without a BREAKING CHANGE notice. */ export interface ClaimTableEntry { hash: string; issuer: string; subject?: string; credentialHash: string; issuanceDate?: Date; expirationDate?: Date; context: string[]; credentialType: string[]; type: string; value: any; } /** * This is used internally by {@link @veramo/data-store-json#DataStoreJson | DataStoreJson} to represent a Verifiable * Presentation in a way that facilitates querying using the {@link @veramo/core-types#IDataStoreORM} interface. * * @beta This API may change in future versions without a BREAKING CHANGE notice. */ export interface PresentationTableEntry { hash: string; holder: string; verifier: string[]; parsedPresentation: VerifiablePresentation; canonicalPresentation: W3CVerifiablePresentation; id?: String; issuanceDate?: Date; expirationDate?: Date; context: string[]; type: string[]; credentials: VerifiableCredential[]; } /** * A JSON data layout for data-store-json implementations. * * @beta This API may change in future versions without a BREAKING CHANGE notice. */ export interface VeramoJsonCache { dids?: Record<string, IIdentifier>; keys?: Record<string, ManagedKeyInfo>; privateKeys?: Record<string, ManagedPrivateKey>; credentials?: Record<string, CredentialTableEntry>; claims?: Record<string, ClaimTableEntry>; presentations?: Record<string, PresentationTableEntry>; messages?: Record<string, IMessage>; } /** * An extension to {@link VeramoJsonCache} that bundles an update notification callback that allows implementors to * persist the {@link VeramoJsonCache} and any other data it may contain to another storage medium. * * @beta This API may change in future versions without a BREAKING CHANGE notice. */ export interface VeramoJsonStore extends VeramoJsonCache { notifyUpdate: DiffCallback; } /** * A callback method that is called when the data stored in a {@link VeramoJsonCache} is updated. * * @param oldState - The snapshot of the cache before the update. * @param newState - The new cache object, after the update. This object may reference the underlying storage. * * @beta This API may change in future versions without a BREAKING CHANGE notice. */ export type DiffCallback = (oldState: Partial<VeramoJsonCache>, newState: Partial<VeramoJsonCache>) => Promise<void>; //# sourceMappingURL=types.d.ts.map