@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
457 lines • 17 kB
text/typescript
import { CredentialMultiInstanceUseMode } from "../../utils/credentialUseTypes.mjs";
import { MdocSessionTranscriptOptions } from "../mdoc/MdocOptions.mjs";
import "../mdoc/index.mjs";
import { VerifiablePresentation } from "../dif-presentation-exchange/models/index.mjs";
import "../dif-presentation-exchange/index.mjs";
import { AgentContext } from "../../agent/context/AgentContext.mjs";
import "../../agent/index.mjs";
import "../../utils/credentialUse.mjs";
import { DcqlCredentialsForRequest } from "./models/DcqlCredentialsForRequest.mjs";
import { DcqlEncodedPresentations, DcqlPresentation, DcqlQueryResult as DcqlQueryResult$1 } from "./models/index.mjs";
import { DcqlCredential, DcqlQuery } from "dcql";
//#region src/modules/dcql/DcqlService.d.ts
export interface DcqlSelectCredentialsForRequestOptions {
/**
* The usage mode to apply to the credentials when selecting credentials.
*
* If an usage mode is selected that require a new instance to be used, and there's no
* new instances available, an error will be thrown.
*
* It does not actually select the credential from the record yet, it just filters
* out records that don't match the filter.
*/
useMode?: CredentialMultiInstanceUseMode;
}
export declare class DcqlService {
/**
* Queries the wallet for credentials that match the given dcql query. This only does an initial query based on the
* schema of the input descriptors. It does not do any further filtering based on the constraints in the input descriptors.
*/
private queryCredentialsForDcqlQuery;
private getAuthorityForCredential;
getDcqlCredentialRepresentation(agentContext: AgentContext, presentation: VerifiablePresentation, queryCredential: DcqlQuery['credentials'][number]): Promise<DcqlCredential>;
getCredentialsForRequest(agentContext: AgentContext, dcqlQuery: DcqlQuery): Promise<DcqlQueryResult$1>;
/**
* What a selectively disclosable credential discloses for the output of a claim set.
*
* The output of DCQL only holds the requested claims, while a claim that is not selectively
* disclosable is always disclosed. So the output is replaced with the claims as the verifier receives
* them, and `disclosed_paths` added: the paths to those claims in the credential, which are what to
* disclose when presenting it.
*
* Other credentials disclose the output as it is.
*/
private getDisclosedClaimSetOutput;
assertValidDcqlPresentation(agentContext: AgentContext, dcqlPresentation: DcqlPresentation, dcqlQuery: DcqlQuery): Promise<{
credential_matches: {
[x: string]: {
success: true;
credential_query_id: string;
valid_credentials: import("dcql").NonEmptyArray<{
success: true;
input_credential_index: number;
trusted_authorities: {
success: true;
valid_trusted_authority?: undefined;
failed_trusted_authorities?: undefined;
} | {
success: true;
valid_trusted_authority: {
success: true;
trusted_authority_index: number;
output: {
type: "aki" | "etsi_tl" | "openid_federation";
value: string;
};
};
failed_trusted_authorities?: import("dcql").NonEmptyArray<{
success: false;
trusted_authority_index: number;
issues: {
[x: string]: unknown;
};
output: unknown;
}> | undefined;
};
claims: {
success: true;
valid_claims?: import("dcql").NonEmptyArray<{
success: true;
claim_index: number;
claim_id?: string | undefined;
output: {
[x: string]: {
[x: string]: unknown;
};
} | {
[x: string]: import("dcql").Json;
};
}> | undefined;
failed_claims?: import("dcql").NonEmptyArray<{
success: false;
claim_index: number;
claim_id?: string | undefined;
issues: {
[x: string]: unknown;
};
output: unknown;
}> | undefined;
valid_claim_sets: import("dcql").NonEmptyArray<{
success: true;
claim_set_index: number | undefined;
valid_claim_indexes?: import("dcql").NonEmptyArray<number> | undefined;
failed_claim_indexes?: undefined;
output: {
[x: string]: {
[x: string]: unknown;
};
} | {
[x: string]: import("dcql").Json;
};
}>;
failed_claim_sets?: import("dcql").NonEmptyArray<{
success: false;
claim_set_index: number | undefined;
valid_claim_indexes?: import("dcql").NonEmptyArray<number> | undefined;
failed_claim_indexes: import("dcql").NonEmptyArray<number>;
issues: {
[x: string]: unknown;
};
}> | undefined;
};
meta: {
success: true;
output: {
cryptographic_holder_binding: boolean;
credential_format: "mso_mdoc";
doctype: string;
} | {
cryptographic_holder_binding: boolean;
credential_format: "dc+sd-jwt" | "vc+sd-jwt";
vct: string;
} | {
cryptographic_holder_binding: boolean;
credential_format: "jwt_vc_json" | "ldp_vc" | "vc+sd-jwt";
type: string[];
};
};
}>;
failed_credentials?: import("dcql").NonEmptyArray<{
success: false;
input_credential_index: number;
trusted_authorities: {
success: true;
valid_trusted_authority?: undefined;
failed_trusted_authorities?: undefined;
} | {
success: true;
valid_trusted_authority: {
success: true;
trusted_authority_index: number;
output: {
type: "aki" | "etsi_tl" | "openid_federation";
value: string;
};
};
failed_trusted_authorities?: import("dcql").NonEmptyArray<{
success: false;
trusted_authority_index: number;
issues: {
[x: string]: unknown;
};
output: unknown;
}> | undefined;
} | {
success: false;
valid_trusted_authority?: undefined;
failed_trusted_authorities: import("dcql").NonEmptyArray<{
success: false;
trusted_authority_index: number;
issues: {
[x: string]: unknown;
};
output: unknown;
}>;
};
claims: {
success: true;
valid_claims?: import("dcql").NonEmptyArray<{
success: true;
claim_index: number;
claim_id?: string | undefined;
output: {
[x: string]: {
[x: string]: unknown;
};
} | {
[x: string]: import("dcql").Json;
};
}> | undefined;
failed_claims?: import("dcql").NonEmptyArray<{
success: false;
claim_index: number;
claim_id?: string | undefined;
issues: {
[x: string]: unknown;
};
output: unknown;
}> | undefined;
valid_claim_sets: import("dcql").NonEmptyArray<{
success: true;
claim_set_index: number | undefined;
valid_claim_indexes?: import("dcql").NonEmptyArray<number> | undefined;
failed_claim_indexes?: undefined;
output: {
[x: string]: {
[x: string]: unknown;
};
} | {
[x: string]: import("dcql").Json;
};
}>;
failed_claim_sets?: import("dcql").NonEmptyArray<{
success: false;
claim_set_index: number | undefined;
valid_claim_indexes?: import("dcql").NonEmptyArray<number> | undefined;
failed_claim_indexes: import("dcql").NonEmptyArray<number>;
issues: {
[x: string]: unknown;
};
}> | undefined;
} | {
success: false;
valid_claims?: import("dcql").NonEmptyArray<{
success: true;
claim_index: number;
claim_id?: string | undefined;
output: {
[x: string]: {
[x: string]: unknown;
};
} | {
[x: string]: import("dcql").Json;
};
}> | undefined;
failed_claims: import("dcql").NonEmptyArray<{
success: false;
claim_index: number;
claim_id?: string | undefined;
issues: {
[x: string]: unknown;
};
output: unknown;
}>;
valid_claim_sets?: undefined;
failed_claim_sets: import("dcql").NonEmptyArray<{
success: false;
claim_set_index: number | undefined;
valid_claim_indexes?: import("dcql").NonEmptyArray<number> | undefined;
failed_claim_indexes: import("dcql").NonEmptyArray<number>;
issues: {
[x: string]: unknown;
};
}>;
};
meta: {
success: true;
output: {
cryptographic_holder_binding: boolean;
credential_format: "mso_mdoc";
doctype: string;
} | {
cryptographic_holder_binding: boolean;
credential_format: "dc+sd-jwt" | "vc+sd-jwt";
vct: string;
} | {
cryptographic_holder_binding: boolean;
credential_format: "jwt_vc_json" | "ldp_vc" | "vc+sd-jwt";
type: string[];
};
} | {
success: false;
issues: {
[x: string]: unknown;
};
output: unknown;
};
}> | undefined;
} | {
success: false;
credential_query_id: string;
valid_credentials?: undefined;
failed_credentials?: import("dcql").NonEmptyArray<{
success: false;
input_credential_index: number;
trusted_authorities: {
success: true;
valid_trusted_authority?: undefined;
failed_trusted_authorities?: undefined;
} | {
success: true;
valid_trusted_authority: {
success: true;
trusted_authority_index: number;
output: {
type: "aki" | "etsi_tl" | "openid_federation";
value: string;
};
};
failed_trusted_authorities?: import("dcql").NonEmptyArray<{
success: false;
trusted_authority_index: number;
issues: {
[x: string]: unknown;
};
output: unknown;
}> | undefined;
} | {
success: false;
valid_trusted_authority?: undefined;
failed_trusted_authorities: import("dcql").NonEmptyArray<{
success: false;
trusted_authority_index: number;
issues: {
[x: string]: unknown;
};
output: unknown;
}>;
};
claims: {
success: true;
valid_claims?: import("dcql").NonEmptyArray<{
success: true;
claim_index: number;
claim_id?: string | undefined;
output: {
[x: string]: {
[x: string]: unknown;
};
} | {
[x: string]: import("dcql").Json;
};
}> | undefined;
failed_claims?: import("dcql").NonEmptyArray<{
success: false;
claim_index: number;
claim_id?: string | undefined;
issues: {
[x: string]: unknown;
};
output: unknown;
}> | undefined;
valid_claim_sets: import("dcql").NonEmptyArray<{
success: true;
claim_set_index: number | undefined;
valid_claim_indexes?: import("dcql").NonEmptyArray<number> | undefined;
failed_claim_indexes?: undefined;
output: {
[x: string]: {
[x: string]: unknown;
};
} | {
[x: string]: import("dcql").Json;
};
}>;
failed_claim_sets?: import("dcql").NonEmptyArray<{
success: false;
claim_set_index: number | undefined;
valid_claim_indexes?: import("dcql").NonEmptyArray<number> | undefined;
failed_claim_indexes: import("dcql").NonEmptyArray<number>;
issues: {
[x: string]: unknown;
};
}> | undefined;
} | {
success: false;
valid_claims?: import("dcql").NonEmptyArray<{
success: true;
claim_index: number;
claim_id?: string | undefined;
output: {
[x: string]: {
[x: string]: unknown;
};
} | {
[x: string]: import("dcql").Json;
};
}> | undefined;
failed_claims: import("dcql").NonEmptyArray<{
success: false;
claim_index: number;
claim_id?: string | undefined;
issues: {
[x: string]: unknown;
};
output: unknown;
}>;
valid_claim_sets?: undefined;
failed_claim_sets: import("dcql").NonEmptyArray<{
success: false;
claim_set_index: number | undefined;
valid_claim_indexes?: import("dcql").NonEmptyArray<number> | undefined;
failed_claim_indexes: import("dcql").NonEmptyArray<number>;
issues: {
[x: string]: unknown;
};
}>;
};
meta: {
success: true;
output: {
cryptographic_holder_binding: boolean;
credential_format: "mso_mdoc";
doctype: string;
} | {
cryptographic_holder_binding: boolean;
credential_format: "dc+sd-jwt" | "vc+sd-jwt";
vct: string;
} | {
cryptographic_holder_binding: boolean;
credential_format: "jwt_vc_json" | "ldp_vc" | "vc+sd-jwt";
type: string[];
};
} | {
success: false;
issues: {
[x: string]: unknown;
};
output: unknown;
};
}> | undefined;
};
};
credential_sets?: import("dcql").NonEmptyArray<{
options: import("dcql").NonEmptyArray<string[]>;
required: boolean;
purpose?: string | number | {
[x: string]: unknown;
} | undefined;
matching_options: import("dcql").NonEmptyArray<string[]> | undefined;
}> | undefined;
can_be_satisfied: boolean;
}>;
private getSelectiveDisclosure;
private dcqlCredentialForRequestForValidCredential;
/**
* Selects the credentials to use based on the output from `getCredentialsForRequest`
* Use this method if you don't want to manually select the credentials yourself.
*/
selectCredentialsForRequest(dcqlQueryResult: DcqlQueryResult$1, { useMode }?: DcqlSelectCredentialsForRequestOptions): DcqlCredentialsForRequest;
validateDcqlQuery(dcqlQuery: DcqlQuery | DcqlQuery.Input | unknown): DcqlQuery;
createPresentation(agentContext: AgentContext, options: {
credentialQueryToCredential: DcqlCredentialsForRequest;
challenge: string;
domain?: string;
mdocSessionTranscript?: MdocSessionTranscriptOptions;
}): Promise<{
dcqlPresentation: DcqlPresentation;
encodedDcqlPresentation: DcqlEncodedPresentations;
}>;
private getPresentationFrame;
private getSdJwtVcApi;
private getMdocApi;
private getVerificationMethodForSubjectId;
private getProofTypeForLdpVc;
}
//#endregion
//# sourceMappingURL=DcqlService.d.mts.map