@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
30 lines (29 loc) • 1.57 kB
JavaScript
//#region src/modules/mdoc/utils/deviceRequestDefinition.ts
/**
* Create the device request definition stored on a verification session from the doc requests a
* verifier passed, with every requested element in its object form.
*/
const createDeviceRequestDefinition = (docRequests, treatAmbiguousMultipleDocRequestsAsAlternatives) => ({
treatAmbiguousMultipleDocRequestsAsAlternatives,
docRequests: docRequests.map(({ docType, nameSpaces }) => ({
docType,
nameSpaces: Object.fromEntries(Object.entries(nameSpaces).map(([nameSpace, elements]) => [nameSpace, Object.fromEntries(Object.entries(elements).map(([elementIdentifier, element]) => [elementIdentifier, typeof element === "boolean" ? { intentToRetain: element } : element]))]))
}))
});
/**
* The options `@owf/mdoc` matches a device response against the device request with, from the
* device request definition of a verification session.
*/
const getDeviceRequestMatchOptions = (definition) => ({
treatAmbiguousMultipleDocRequestsAsAlternatives: definition.treatAmbiguousMultipleDocRequestsAsAlternatives,
docRequests: definition.docRequests.map(({ nameSpaces }, docRequestIndex) => ({
docRequestIndex,
elements: Object.fromEntries(Object.entries(nameSpaces).map(([nameSpace, elements]) => [nameSpace, Object.fromEntries(Object.entries(elements).map(([elementIdentifier, { optional, source }]) => [elementIdentifier, {
optional,
source
}]))]))
}))
});
//#endregion
export { createDeviceRequestDefinition, getDeviceRequestMatchOptions };
//# sourceMappingURL=deviceRequestDefinition.mjs.map