@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
134 lines (133 loc) • 4.96 kB
text/typescript
import { JsonObject } from "../../../types.mjs";
import { ClaimFormat } from "../../vc/models/ClaimFormat.mjs";
import { SdJwtVcRecord } from "../../sd-jwt-vc/repository/SdJwtVcRecord.mjs";
import "../../sd-jwt-vc/index.mjs";
import { MdocRecord } from "../../mdoc/repository/MdocRecord.mjs";
import { MdocNameSpaces } from "../../mdoc/MdocOptions.mjs";
import "../../mdoc/index.mjs";
import { W3cCredentialRecord } from "../../vc/repository/W3cCredentialRecord.mjs";
import "../../vc/index.mjs";
//#region src/modules/dif-presentation-exchange/models/DifPexCredentialsForRequest.d.ts
interface DifPexCredentialsForRequest {
/**
* Whether all requirements have been satisfied by the credentials in the wallet.
*/
areRequirementsSatisfied: boolean;
/**
* The requirements for the presentation definition. If the `areRequirementsSatisfied` value
* is `false`, this list will still be populated with requirements, but won't contain credentials
* for all requirements. This can be useful to display the missing credentials for a presentation
* definition to be satisfied.
*
* NOTE: Presentation definition requirements can be really complex as there's a lot of different
* combinations that are possible. The structure doesn't include all possible combinations yet that
* could satisfy a presentation definition.
*/
requirements: DifPexCredentialsForRequestRequirement[];
/**
* Name of the presentation definition
*/
name?: string;
/**
* Purpose of the presentation definition.
*/
purpose?: string;
}
/**
* A requirement for the presentation submission. A requirement
* is a group of input descriptors that together fulfill a requirement
* from the presentation definition.
*
* Each submission represents a input descriptor.
*/
interface DifPexCredentialsForRequestRequirement {
/**
* Whether the requirement is satisfied.
*
* If the requirement is not satisfied, the submission will still contain
* entries, but the `verifiableCredentials` list will be empty.
*/
isRequirementSatisfied: boolean;
/**
* Name of the requirement
*/
name?: string;
/**
* Purpose of the requirement
*/
purpose?: string;
/**
* Array of objects, where each entry contains one or more credentials that will be part
* of the submission.
*
* NOTE: Make sure to check the `needsCount` value
* to see how many of those submissions needed. if the `isRequirementSatisfied` is `false` the submission list will
* contain entries where the verifiable credential list is empty. It could also
* contain more entries than are actually needed (as you sometimes can choose from
* e.g. 4 types of credentials and need to submit at least two).
*/
submissionEntry: DifPexCredentialsForRequestSubmissionEntry[];
/**
* The number of submission entries that are needed to fulfill the requirement.
*/
needsCount: number;
/**
* The rule that is used to select the credentials for the submission.
* If the rule is `pick`, the user can select which credentials to use for the submission.
* If the rule is `all`, all credentials that satisfy the input descriptor will be used.
*/
rule: 'pick' | 'all';
}
/**
* A submission entry that satisfies a specific input descriptor from the
* presentation definition.
*/
interface DifPexCredentialsForRequestSubmissionEntry {
/**
* The id of the input descriptor
*/
inputDescriptorId: string;
/**
* Name of the input descriptor
*/
name?: string;
/**
* Purpose of the input descriptor
*/
purpose?: string;
/**
* The verifiable credentials that satisfy the input descriptor.
*
* If the value is an empty list, it means the input descriptor could
* not be satisfied.
*/
verifiableCredentials: SubmissionEntryCredential[];
}
type SubmissionEntryCredential = {
claimFormat: ClaimFormat.SdJwtDc;
credentialRecord: SdJwtVcRecord;
/**
* The payload that will be disclosed, including always disclosed attributes
* and disclosures for the presentation definition
*/
disclosedPayload: JsonObject;
/**
* Additional payload that will be added to the Key Binding JWT. This can overwrite
* existing parameters for KB-JWT so ensure you are only using this for non-default properties.
*/
additionalPayload?: JsonObject;
} | {
claimFormat: ClaimFormat.JwtVc | ClaimFormat.LdpVc;
credentialRecord: W3cCredentialRecord;
} | {
claimFormat: ClaimFormat.MsoMdoc;
credentialRecord: MdocRecord;
disclosedPayload: MdocNameSpaces;
};
/**
* Mapping of selected credentials for an input descriptor
*/
type DifPexInputDescriptorToCredentials = Record<string, SubmissionEntryCredential[]>;
//#endregion
export { DifPexCredentialsForRequest, DifPexCredentialsForRequestRequirement, DifPexCredentialsForRequestSubmissionEntry, DifPexInputDescriptorToCredentials, SubmissionEntryCredential };
//# sourceMappingURL=DifPexCredentialsForRequest.d.mts.map