{"version":3,"file":"deviceRequestDefinition.mjs","names":[],"sources":["../../../../src/modules/mdoc/utils/deviceRequestDefinition.ts"],"sourcesContent":["import type { DeviceRequestMatchOptions } from '@owf/mdoc'\nimport type { MdocDcApiDocRequest, MdocDeviceRequestDefinition } from '../MdocOptions'\n\n/**\n * Create the device request definition stored on a verification session from the doc requests a\n * verifier passed, with every requested element in its object form.\n */\nexport const createDeviceRequestDefinition = (\n  docRequests: MdocDcApiDocRequest[],\n  treatAmbiguousMultipleDocRequestsAsAlternatives?: boolean\n): MdocDeviceRequestDefinition => ({\n  treatAmbiguousMultipleDocRequestsAsAlternatives,\n  docRequests: docRequests.map(({ docType, nameSpaces }) => ({\n    docType,\n    nameSpaces: Object.fromEntries(\n      Object.entries(nameSpaces).map(([nameSpace, elements]) => [\n        nameSpace,\n        Object.fromEntries(\n          Object.entries(elements).map(([elementIdentifier, element]) => [\n            elementIdentifier,\n            typeof element === 'boolean' ? { intentToRetain: element } : element,\n          ])\n        ),\n      ])\n    ),\n  })),\n})\n\n/**\n * The options `@owf/mdoc` matches a device response against the device request with, from the\n * device request definition of a verification session.\n */\nexport const getDeviceRequestMatchOptions = (definition: MdocDeviceRequestDefinition): DeviceRequestMatchOptions => ({\n  treatAmbiguousMultipleDocRequestsAsAlternatives: definition.treatAmbiguousMultipleDocRequestsAsAlternatives,\n  docRequests: definition.docRequests.map(({ nameSpaces }, docRequestIndex) => ({\n    docRequestIndex,\n    elements: Object.fromEntries(\n      Object.entries(nameSpaces).map(([nameSpace, elements]) => [\n        nameSpace,\n        Object.fromEntries(\n          Object.entries(elements).map(([elementIdentifier, { optional, source }]) => [\n            elementIdentifier,\n            { optional, source },\n          ])\n        ),\n      ])\n    ),\n  })),\n})\n"],"mappings":";;;;;AAOA,MAAa,iCACX,aACA,qDACiC;CACjC;CACA,aAAa,YAAY,KAAK,EAAE,SAAS,kBAAkB;EACzD;EACA,YAAY,OAAO,YACjB,OAAO,QAAQ,UAAU,CAAC,CAAC,KAAK,CAAC,WAAW,cAAc,CACxD,WACA,OAAO,YACL,OAAO,QAAQ,QAAQ,CAAC,CAAC,KAAK,CAAC,mBAAmB,aAAa,CAC7D,mBACA,OAAO,YAAY,YAAY,EAAE,gBAAgB,QAAQ,IAAI,OAC/D,CAAC,CACH,CACF,CAAC,CACH;CACF,EAAE;AACJ;;;;;AAMA,MAAa,gCAAgC,gBAAwE;CACnH,iDAAiD,WAAW;CAC5D,aAAa,WAAW,YAAY,KAAK,EAAE,cAAc,qBAAqB;EAC5E;EACA,UAAU,OAAO,YACf,OAAO,QAAQ,UAAU,CAAC,CAAC,KAAK,CAAC,WAAW,cAAc,CACxD,WACA,OAAO,YACL,OAAO,QAAQ,QAAQ,CAAC,CAAC,KAAK,CAAC,mBAAmB,EAAE,UAAU,cAAc,CAC1E,mBACA;GAAE;GAAU;EAAO,CACrB,CAAC,CACH,CACF,CAAC,CACH;CACF,EAAE;AACJ"}