@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
99 lines • 3.29 kB
text/typescript
import { KnownJwaSignatureAlgorithm } from "../kms/jwk/jwa.mjs";
import { SingleOrArray } from "../../types.mjs";
import { Jwt } from "../../crypto/jose/jwt/Jwt.mjs";
import "../../crypto/index.mjs";
import "../kms/index.mjs";
import { TokenStatusListSigner } from "./TokenStatusListSigner.mjs";
import { BitsPerStatus, StatusList, StatusListCwt } from "@owf/token-status-list";
//#region src/modules/token-status-list/TokenStatusListOptions.d.ts
export type TokenStatusListFormat = 'cwt' | 'jwt';
/**
* Options for specifying the status list contents either as a pre-built instance
* or as construction parameters.
*/
export type StatusListInput = StatusList | {
statusListLength: number;
bitsPerStatus: BitsPerStatus;
aggregationUri?: string;
};
type CreateBaseTokenStatusListOptions = {
statusList: StatusListInput;
statusListUri: string;
signer: TokenStatusListSigner;
alg: KnownJwaSignatureAlgorithm;
/**
* The issuance time of the status list token. Defaults to `now`.
*/
issuedAt?: Date;
/**
* Used to derive `issuedAt` when `issuedAt` is not provided. Defaults to the current time.
* Not included in the token itself.
*/
now?: Date;
/**
* The expiration time of the status list token.
*/
expiresAt?: Date;
/**
* Time-to-live in seconds. Instructs relying parties how long to cache the status list.
*/
timeToLive?: number;
};
type CreateCwtTokenStatusListOptions = {
format: 'cwt';
/**
* Additional claims to include in the token payload.
*/
additionalPayload?: Map<number | string, unknown>;
} & CreateBaseTokenStatusListOptions;
type CreateJwtTokenStatusListOptions = {
format: 'jwt';
statusList: StatusListInput;
statusListUri: string;
/**
* Additional claims to include in the token payload.
*/
additionalPayload?: Record<string, unknown>;
} & CreateBaseTokenStatusListOptions;
export type CreateTokenStatusListOptions = CreateJwtTokenStatusListOptions | CreateCwtTokenStatusListOptions;
export type TokenStatusListResult = {
format: 'cwt';
statusList: Uint8Array;
parsed: StatusListCwt;
} | {
format: 'jwt';
statusList: string;
parsed: Jwt;
};
type UpdateBaseTokenStatusListOptions = Omit<CreateBaseTokenStatusListOptions, 'statusList' | 'statusListUri'> & {
status: SingleOrArray<{
index: number;
status: number;
}>;
};
type UpdateCwtTokenStatusListOptions = {
format: 'cwt';
token: Uint8Array;
/**
* Additional claims to include in the token payload.
*/
additionalPayload?: Map<number | string, unknown>;
} & UpdateBaseTokenStatusListOptions;
type UpdateJwtTokenStatusListOptions = {
format: 'jwt';
token: string;
/**
* Additional claims to include in the token payload.
*/
additionalPayload?: Record<string, unknown>;
} & UpdateBaseTokenStatusListOptions;
export type UpdateTokenStatusListOptions = UpdateCwtTokenStatusListOptions | UpdateJwtTokenStatusListOptions;
export type FetchTokenStatusListOptions<AcceptedFormats extends TokenStatusListFormat = TokenStatusListFormat> = {
uri: string;
acceptedFormats?: AcceptedFormats[];
};
export type TokenStatusListResultFor<Format extends TokenStatusListFormat> = Extract<TokenStatusListResult, {
format: Format;
}>;
//#endregion
//# sourceMappingURL=TokenStatusListOptions.d.mts.map