@credo-ts/core
Version:
<p align="center"> <br /> <img alt="Credo Logo" src="https://github.com/openwallet-foundation/credo-ts/blob/c7886cb8377ceb8ee4efe8d264211e561a75072d/images/credo-logo.png" height="250px" /> </p> <h1 align="center"><b>Credo - Core</b></h1
75 lines • 4.04 kB
text/typescript
import { CredentialMultiInstanceState, CredentialMultiInstanceUseMode, CredentialMultiInstanceUseUpdateMode } from "./credentialUseTypes.mjs";
import { SdJwtVc } from "../modules/sd-jwt-vc/SdJwtVcService.mjs";
import { SdJwtVcRecord } from "../modules/sd-jwt-vc/repository/SdJwtVcRecord.mjs";
import "../modules/sd-jwt-vc/repository/index.mjs";
import { MdocRecord } from "../modules/mdoc/repository/MdocRecord.mjs";
import "../modules/mdoc/repository/index.mjs";
import { W3cVerifiableCredential } from "../modules/vc/models/credential/W3cVerifiableCredential.mjs";
import { W3cCredentialRecord } from "../modules/vc/repository/W3cCredentialRecord.mjs";
import { W3cV2CredentialRecord } from "../modules/vc/repository/W3cV2CredentialRecord.mjs";
import "../modules/vc/repository/index.mjs";
import { W3cV2VerifiableCredential } from "../modules/vc/models/credential/W3cV2VerifiableCredential.mjs";
import "../modules/vc/index.mjs";
import { Mdoc } from "../modules/mdoc/Mdoc.mjs";
import { AgentContext } from "../agent/context/AgentContext.mjs";
import "../agent/index.mjs";
//#region src/utils/credentialUse.d.ts
type CredentialRecord = W3cCredentialRecord | SdJwtVcRecord | MdocRecord | W3cV2CredentialRecord;
type CredentialInstanceReturnType<Record extends CredentialRecord> = Record extends W3cCredentialRecord ? W3cVerifiableCredential : Record extends W3cV2CredentialRecord ? W3cV2VerifiableCredential : Record extends SdJwtVcRecord ? SdJwtVc : Record extends MdocRecord ? Mdoc : CredentialRecord;
/**
* Checks whether an instance can be used from the provided record based on
* the required credential use mode.
*/
export declare function canUseInstanceFromCredentialRecord({ credentialRecord, useMode }: {
credentialRecord: CredentialRecord;
useMode: CredentialMultiInstanceUseMode;
}): boolean;
export interface UseInstanceFromCredentialRecordOptions<Record extends CredentialRecord> {
agentContext: AgentContext;
/**
* Which mode to use for usage of the credential instance. See {@link CredentialMultiInstanceUseMode} for
* more information on the available options
*/
useMode: CredentialMultiInstanceUseMode;
credentialRecord: Record;
/**
* The update mode for the credential record when a new instance is used.
*
* @default `CredentialMultiInstanceUseUpdateMode.RefetchAndUpdateWithLock`
*/
updateMode?: CredentialMultiInstanceUseUpdateMode;
}
export interface UseInstanceFromCredentialRecordReturn<Record extends CredentialRecord> {
/**
* The credential instance with the kms key id
*/
credentialInstance: CredentialInstanceReturnType<Record>;
/**
* If the first instance was used, this value will be `true`. The first time
* the first instance is used, technically the credential is not reused yet,
* but we make no distinction between this.
*/
isReused: boolean;
/**
* Whether the last new instance was used. If `isReused` is `true` this value will
* always be `false`.
*
* The last new instance is the second entry in the mdoc instances, since the first
* one is reserved for 'reused' usage.
*/
isLastNewInstance: boolean;
}
/**
* Extract an instance with the correct kms key id from the credential instances
* on the record. Note that if an instance is extracted (that is not reused) it
* will remove the instance from the record, and the record should be updated in
* storage after usage.
*
* Note that the last credential instance is never removed from the record. So if the
* method indicates the last instance has been used, you should remove the credential
* from storage if you don't want it to be used anymore in the future.
*/
export declare function useInstanceFromCredentialRecord<Record extends CredentialRecord>({ credentialRecord, useMode, agentContext, updateMode }: UseInstanceFromCredentialRecordOptions<Record>): Promise<UseInstanceFromCredentialRecordReturn<Record>>;
//#endregion
export { CredentialMultiInstanceUseMode, CredentialMultiInstanceUseUpdateMode };
//# sourceMappingURL=credentialUse.d.mts.map