@pagopa/io-react-native-wallet 2.1.1 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (118) hide show
  1. package/README.md +4 -3
  2. package/lib/commonjs/credential/index.js +3 -1
  3. package/lib/commonjs/credential/index.js.map +1 -1
  4. package/lib/commonjs/credential/issuance/07-verify-and-parse-credential.js +82 -58
  5. package/lib/commonjs/credential/issuance/07-verify-and-parse-credential.js.map +1 -1
  6. package/lib/commonjs/credential/offer/01-start-flow.js +75 -0
  7. package/lib/commonjs/credential/offer/01-start-flow.js.map +1 -0
  8. package/lib/commonjs/credential/offer/02-fetch-credential-offer.js +45 -0
  9. package/lib/commonjs/credential/offer/02-fetch-credential-offer.js.map +1 -0
  10. package/lib/commonjs/credential/offer/README.md +174 -0
  11. package/lib/commonjs/credential/offer/errors.js +22 -0
  12. package/lib/commonjs/credential/offer/errors.js.map +1 -0
  13. package/lib/commonjs/credential/offer/index.js +25 -0
  14. package/lib/commonjs/credential/offer/index.js.map +1 -0
  15. package/lib/commonjs/credential/offer/types.js +51 -0
  16. package/lib/commonjs/credential/offer/types.js.map +1 -0
  17. package/lib/commonjs/credential/presentation/01-start-flow.js +1 -1
  18. package/lib/commonjs/credentials-catalogue/README.md +15 -0
  19. package/lib/commonjs/credentials-catalogue/fetch-and-parse-catalogue.js +42 -0
  20. package/lib/commonjs/credentials-catalogue/fetch-and-parse-catalogue.js.map +1 -0
  21. package/lib/commonjs/credentials-catalogue/index.js +13 -0
  22. package/lib/commonjs/credentials-catalogue/index.js.map +1 -0
  23. package/lib/commonjs/credentials-catalogue/types.js +99 -0
  24. package/lib/commonjs/credentials-catalogue/types.js.map +1 -0
  25. package/lib/commonjs/index.js +5 -1
  26. package/lib/commonjs/index.js.map +1 -1
  27. package/lib/commonjs/mdoc/index.js +15 -0
  28. package/lib/commonjs/mdoc/index.js.map +1 -1
  29. package/lib/commonjs/mdoc/utils.js +37 -1
  30. package/lib/commonjs/mdoc/utils.js.map +1 -1
  31. package/lib/commonjs/utils/nestedProperty.js +21 -10
  32. package/lib/commonjs/utils/nestedProperty.js.map +1 -1
  33. package/lib/commonjs/utils/zod.js +28 -0
  34. package/lib/commonjs/utils/zod.js.map +1 -0
  35. package/lib/module/credential/index.js +2 -1
  36. package/lib/module/credential/index.js.map +1 -1
  37. package/lib/module/credential/issuance/07-verify-and-parse-credential.js +83 -59
  38. package/lib/module/credential/issuance/07-verify-and-parse-credential.js.map +1 -1
  39. package/lib/module/credential/offer/01-start-flow.js +66 -0
  40. package/lib/module/credential/offer/01-start-flow.js.map +1 -0
  41. package/lib/module/credential/offer/02-fetch-credential-offer.js +38 -0
  42. package/lib/module/credential/offer/02-fetch-credential-offer.js.map +1 -0
  43. package/lib/module/credential/offer/README.md +174 -0
  44. package/lib/module/credential/offer/errors.js +14 -0
  45. package/lib/module/credential/offer/errors.js.map +1 -0
  46. package/lib/module/credential/offer/index.js +5 -0
  47. package/lib/module/credential/offer/index.js.map +1 -0
  48. package/lib/module/credential/offer/types.js +41 -0
  49. package/lib/module/credential/offer/types.js.map +1 -0
  50. package/lib/module/credential/presentation/01-start-flow.js +1 -1
  51. package/lib/module/credentials-catalogue/README.md +15 -0
  52. package/lib/module/credentials-catalogue/fetch-and-parse-catalogue.js +35 -0
  53. package/lib/module/credentials-catalogue/fetch-and-parse-catalogue.js.map +1 -0
  54. package/lib/module/credentials-catalogue/index.js +2 -0
  55. package/lib/module/credentials-catalogue/index.js.map +1 -0
  56. package/lib/module/credentials-catalogue/types.js +89 -0
  57. package/lib/module/credentials-catalogue/types.js.map +1 -0
  58. package/lib/module/index.js +3 -1
  59. package/lib/module/index.js.map +1 -1
  60. package/lib/module/mdoc/index.js +1 -0
  61. package/lib/module/mdoc/index.js.map +1 -1
  62. package/lib/module/mdoc/utils.js +35 -0
  63. package/lib/module/mdoc/utils.js.map +1 -1
  64. package/lib/module/utils/nestedProperty.js +21 -10
  65. package/lib/module/utils/nestedProperty.js.map +1 -1
  66. package/lib/module/utils/zod.js +20 -0
  67. package/lib/module/utils/zod.js.map +1 -0
  68. package/lib/typescript/credential/index.d.ts +2 -1
  69. package/lib/typescript/credential/index.d.ts.map +1 -1
  70. package/lib/typescript/credential/issuance/01-start-flow.d.ts +1 -1
  71. package/lib/typescript/credential/issuance/07-verify-and-parse-credential.d.ts.map +1 -1
  72. package/lib/typescript/credential/offer/01-start-flow.d.ts +172 -0
  73. package/lib/typescript/credential/offer/01-start-flow.d.ts.map +1 -0
  74. package/lib/typescript/credential/offer/02-fetch-credential-offer.d.ts +20 -0
  75. package/lib/typescript/credential/offer/02-fetch-credential-offer.d.ts.map +1 -0
  76. package/lib/typescript/credential/offer/errors.d.ts +10 -0
  77. package/lib/typescript/credential/offer/errors.d.ts.map +1 -0
  78. package/lib/typescript/credential/offer/index.d.ts +7 -0
  79. package/lib/typescript/credential/offer/index.d.ts.map +1 -0
  80. package/lib/typescript/credential/offer/types.d.ts +264 -0
  81. package/lib/typescript/credential/offer/types.d.ts.map +1 -0
  82. package/lib/typescript/credential/presentation/01-start-flow.d.ts +1 -1
  83. package/lib/typescript/credentials-catalogue/fetch-and-parse-catalogue.d.ts +15 -0
  84. package/lib/typescript/credentials-catalogue/fetch-and-parse-catalogue.d.ts.map +1 -0
  85. package/lib/typescript/credentials-catalogue/index.d.ts +3 -0
  86. package/lib/typescript/credentials-catalogue/index.d.ts.map +1 -0
  87. package/lib/typescript/credentials-catalogue/types.d.ts +844 -0
  88. package/lib/typescript/credentials-catalogue/types.d.ts.map +1 -0
  89. package/lib/typescript/index.d.ts +3 -1
  90. package/lib/typescript/index.d.ts.map +1 -1
  91. package/lib/typescript/mdoc/index.d.ts +1 -0
  92. package/lib/typescript/mdoc/index.d.ts.map +1 -1
  93. package/lib/typescript/mdoc/utils.d.ts +50 -0
  94. package/lib/typescript/mdoc/utils.d.ts.map +1 -1
  95. package/lib/typescript/utils/nestedProperty.d.ts +2 -1
  96. package/lib/typescript/utils/nestedProperty.d.ts.map +1 -1
  97. package/lib/typescript/utils/zod.d.ts +15 -0
  98. package/lib/typescript/utils/zod.d.ts.map +1 -0
  99. package/package.json +21 -2
  100. package/src/credential/index.ts +2 -1
  101. package/src/credential/issuance/01-start-flow.ts +1 -1
  102. package/src/credential/issuance/07-verify-and-parse-credential.ts +60 -26
  103. package/src/credential/offer/01-start-flow.ts +89 -0
  104. package/src/credential/offer/02-fetch-credential-offer.ts +54 -0
  105. package/src/credential/offer/README.md +174 -0
  106. package/src/credential/offer/errors.ts +17 -0
  107. package/src/credential/offer/index.ts +16 -0
  108. package/src/credential/offer/types.ts +59 -0
  109. package/src/credential/presentation/01-start-flow.ts +1 -1
  110. package/src/credentials-catalogue/README.md +15 -0
  111. package/src/credentials-catalogue/fetch-and-parse-catalogue.ts +54 -0
  112. package/src/credentials-catalogue/index.ts +2 -0
  113. package/src/credentials-catalogue/types.ts +97 -0
  114. package/src/index.ts +4 -0
  115. package/src/mdoc/index.ts +1 -0
  116. package/src/mdoc/utils.ts +43 -0
  117. package/src/utils/nestedProperty.ts +35 -10
  118. package/src/utils/zod.ts +28 -0
package/README.md CHANGED
@@ -154,6 +154,7 @@ Different flows are provided to perform common operations. Each flow is a set of
154
154
  - [Attestation](./src/wallet-instance-attestation/README.md)
155
155
  - Credentail
156
156
  - [Issuance](./src/credential/issuance/README.md)
157
+ - [Offer](./src/credential/offer/README.md)
157
158
  - [Presentation](./src/credential/presentation/README.md) (TODO)
158
159
  - [Status](./src/credential/status/README.md)
159
160
  - [Trustmark](./src/credential/trustmark/README.md)
@@ -183,12 +184,12 @@ graph TD;
183
184
  iorni[io-react-native-integrity]
184
185
  iornss[io-react-native-secure-storage]
185
186
  iornjwt[io-react-native-jwt]
186
- rncie[react-native-cie]
187
+ iorncie[io-react-native-cie]
187
188
  rnw(react-native-webview)
188
189
 
189
190
  ioa --> iornw
190
191
  iornw --> iornjwt
191
- iornw --> rncie
192
+ iornw --> iorncie
192
193
  iornw --> rnw
193
194
 
194
195
  subgraph IoApp Deps
@@ -201,7 +202,7 @@ graph TD;
201
202
 
202
203
  subgraph IoRnWallet Deps
203
204
  iornjwt
204
- rncie
205
+ iorncie
205
206
  rnw
206
207
  end
207
208
 
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.Trustmark = exports.Status = exports.Presentation = exports.Issuance = void 0;
6
+ exports.Trustmark = exports.Status = exports.Presentation = exports.Offer = exports.Issuance = void 0;
7
7
  var Issuance = _interopRequireWildcard(require("./issuance"));
8
8
  exports.Issuance = Issuance;
9
9
  var Presentation = _interopRequireWildcard(require("./presentation"));
@@ -12,6 +12,8 @@ var Status = _interopRequireWildcard(require("./status"));
12
12
  exports.Status = Status;
13
13
  var Trustmark = _interopRequireWildcard(require("./trustmark"));
14
14
  exports.Trustmark = Trustmark;
15
+ var Offer = _interopRequireWildcard(require("./offer"));
16
+ exports.Offer = Offer;
15
17
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
16
18
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
17
19
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Issuance","_interopRequireWildcard","require","exports","Presentation","Status","Trustmark","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set"],"sourceRoot":"../../../src","sources":["credential/index.ts"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,uBAAA,CAAAC,OAAA;AAAuCC,OAAA,CAAAH,QAAA,GAAAA,QAAA;AACvC,IAAAI,YAAA,GAAAH,uBAAA,CAAAC,OAAA;AAA+CC,OAAA,CAAAC,YAAA,GAAAA,YAAA;AAC/C,IAAAC,MAAA,GAAAJ,uBAAA,CAAAC,OAAA;AAAmCC,OAAA,CAAAE,MAAA,GAAAA,MAAA;AACnC,IAAAC,SAAA,GAAAL,uBAAA,CAAAC,OAAA;AAAyCC,OAAA,CAAAG,SAAA,GAAAA,SAAA;AAAA,SAAAC,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAP,wBAAAW,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,oBAAAA,GAAA,wBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAG,KAAA,GAAAR,wBAAA,CAAAC,WAAA,OAAAO,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAJ,GAAA,YAAAG,KAAA,CAAAE,GAAA,CAAAL,GAAA,SAAAM,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAX,GAAA,QAAAW,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAd,GAAA,EAAAW,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAV,GAAA,EAAAW,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAX,GAAA,CAAAW,GAAA,SAAAL,MAAA,CAAAJ,OAAA,GAAAF,GAAA,MAAAG,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAhB,GAAA,EAAAM,MAAA,YAAAA,MAAA"}
1
+ {"version":3,"names":["Issuance","_interopRequireWildcard","require","exports","Presentation","Status","Trustmark","Offer","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set"],"sourceRoot":"../../../src","sources":["credential/index.ts"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,uBAAA,CAAAC,OAAA;AAAuCC,OAAA,CAAAH,QAAA,GAAAA,QAAA;AACvC,IAAAI,YAAA,GAAAH,uBAAA,CAAAC,OAAA;AAA+CC,OAAA,CAAAC,YAAA,GAAAA,YAAA;AAC/C,IAAAC,MAAA,GAAAJ,uBAAA,CAAAC,OAAA;AAAmCC,OAAA,CAAAE,MAAA,GAAAA,MAAA;AACnC,IAAAC,SAAA,GAAAL,uBAAA,CAAAC,OAAA;AAAyCC,OAAA,CAAAG,SAAA,GAAAA,SAAA;AACzC,IAAAC,KAAA,GAAAN,uBAAA,CAAAC,OAAA;AAAiCC,OAAA,CAAAI,KAAA,GAAAA,KAAA;AAAA,SAAAC,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAR,wBAAAY,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,oBAAAA,GAAA,wBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAG,KAAA,GAAAR,wBAAA,CAAAC,WAAA,OAAAO,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAJ,GAAA,YAAAG,KAAA,CAAAE,GAAA,CAAAL,GAAA,SAAAM,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAX,GAAA,QAAAW,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAd,GAAA,EAAAW,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAV,GAAA,EAAAW,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAX,GAAA,CAAAW,GAAA,SAAAL,MAAA,CAAAJ,OAAA,GAAAF,GAAA,MAAAG,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAhB,GAAA,EAAAM,MAAA,YAAAA,MAAA"}
@@ -37,39 +37,63 @@ const parseCredentialSdJwt = function (credentialConfig, _ref) {
37
37
 
38
38
  const attrDefinitions = credentialConfig.claims;
39
39
 
40
- // Validate that all attributes from the config exist in the disclosures
41
- const attrsNotInDisclosures = attrDefinitions.filter(definition => !disclosures.some(_ref2 => {
42
- let [, name] = _ref2;
43
- return name === definition.path[0];
44
- }));
45
- if (attrsNotInDisclosures.length > 0 && !ignoreMissingAttributes) {
46
- const missing = attrsNotInDisclosures.map(_ => _.path[0]).join(", ");
47
- const received = disclosures.map(_ => _[1]).join(", ");
48
- const message = `Some attributes are missing in the credential. Missing: [${missing}], received: [${received}]`;
49
- _logging.Logger.log(_logging.LogLevel.ERROR, message);
50
- throw new _errors.IoWalletError(message);
40
+ // Validate that all attributes from the config exist in either disclosures OR payload
41
+ if (!ignoreMissingAttributes) {
42
+ const disclosedKeys = new Set(disclosures.map(_ref2 => {
43
+ let [, name] = _ref2;
44
+ return name;
45
+ }));
46
+ const payloadKeys = new Set(Object.keys(sdJwt.payload ?? {}));
47
+ const definedTopLevelKeys = new Set(attrDefinitions.map(def => def.path[0]));
48
+ const missingKeys = [...definedTopLevelKeys].filter(key => !disclosedKeys.has(key) && !payloadKeys.has(key));
49
+ if (missingKeys.length > 0) {
50
+ throw new _errors.IoWalletError(`Some attributes are missing in the credential. Missing: [${missingKeys.join(", ")}]`);
51
+ }
51
52
  }
52
53
  const definedValues = {};
53
- for (const {
54
- path,
55
- display
56
- } of attrDefinitions) {
57
- var _disclosures$find;
58
- const attrKey = path[0];
59
- const disclosureValue = (_disclosures$find = disclosures.find(_ref3 => {
54
+
55
+ // Group all schema definitions by their top-level key
56
+ const groupedDefinitions = attrDefinitions.reduce((acc, def) => {
57
+ const key = def.path[0];
58
+ const group = acc[key];
59
+ if (group) {
60
+ group.push(def);
61
+ } else {
62
+ acc[key] = [def];
63
+ }
64
+ return acc;
65
+ }, {});
66
+
67
+ // Loop through each group
68
+ for (const topLevelKey in groupedDefinitions) {
69
+ const definitionsForThisKey = groupedDefinitions[topLevelKey];
70
+ if (!definitionsForThisKey) {
71
+ continue;
72
+ }
73
+ const disclosureForThisKey = disclosures.find(_ref3 => {
60
74
  let [, name] = _ref3;
61
- return name === attrKey;
62
- })) === null || _disclosures$find === void 0 ? void 0 : _disclosures$find[2];
63
- if (disclosureValue !== undefined) {
64
- const enriched = (0, _nestedProperty.createNestedProperty)(definedValues, path, disclosureValue, display);
65
- Object.assign(definedValues, enriched);
75
+ return name === topLevelKey;
76
+ });
77
+ if (!disclosureForThisKey) {
78
+ continue;
66
79
  }
80
+ const disclosureValue = disclosureForThisKey[2];
81
+ const tempObjectForGroup = definitionsForThisKey.reduce((acc, _ref4) => {
82
+ let {
83
+ path,
84
+ display
85
+ } = _ref4;
86
+ return (0, _nestedProperty.createNestedProperty)(acc, path, disclosureValue, display);
87
+ }, {});
88
+
89
+ // Merge the fully constructed object into the final result
90
+ Object.assign(definedValues, tempObjectForGroup);
67
91
  }
68
92
  if (includeUndefinedAttributes) {
69
93
  // attributes that are in the disclosure set
70
94
  // but are not defined in the issuer configuration
71
- const undefinedValues = Object.fromEntries(disclosures.filter(_ => !Object.keys(definedValues).includes(_[1])).map(_ref4 => {
72
- let [, key, value] = _ref4;
95
+ const undefinedValues = Object.fromEntries(disclosures.filter(_ => !Object.keys(definedValues).includes(_[1])).map(_ref5 => {
96
+ let [, key, value] = _ref5;
73
97
  return [key, {
74
98
  value,
75
99
  name: key
@@ -82,10 +106,10 @@ const parseCredentialSdJwt = function (credentialConfig, _ref) {
82
106
  }
83
107
  return definedValues;
84
108
  };
85
- const parseCredentialMDoc = function (credentialConfig, _ref5) {
109
+ const parseCredentialMDoc = function (credentialConfig, _ref6) {
86
110
  let {
87
111
  issuerSigned
88
- } = _ref5;
112
+ } = _ref6;
89
113
  let ignoreMissingAttributes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
90
114
  let includeUndefinedAttributes = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
91
115
  if (!credentialConfig) {
@@ -94,37 +118,37 @@ const parseCredentialMDoc = function (credentialConfig, _ref5) {
94
118
  if (!credentialConfig.claims) {
95
119
  throw new _errors.IoWalletError("Missing claims in the credential subject");
96
120
  }
97
- const attrDefinitions = credentialConfig.claims.map(_ref6 => {
121
+ const attrDefinitions = credentialConfig.claims.map(_ref7 => {
98
122
  let {
99
123
  path: [namespace, attribute],
100
124
  display
101
- } = _ref6;
125
+ } = _ref7;
102
126
  return [namespace, attribute, display];
103
127
  });
104
128
  if (!issuerSigned.nameSpaces) {
105
129
  throw new _errors.IoWalletError("Missing claims in the credential");
106
130
  }
107
- const flatNamespaces = Object.entries(issuerSigned.nameSpaces).flatMap(_ref7 => {
108
- let [namespace, values] = _ref7;
131
+ const flatNamespaces = Object.entries(issuerSigned.nameSpaces).flatMap(_ref8 => {
132
+ let [namespace, values] = _ref8;
109
133
  return values.map(v => [namespace, v.elementIdentifier, v.elementValue]);
110
134
  });
111
135
 
112
136
  // Check that all mandatory attributes defined in the issuer configuration are present in the disclosure set
113
137
  // and filter the non present ones
114
- const attrsNotInDisclosures = attrDefinitions.filter(_ref8 => {
115
- let [attrDefNamespace, attrKey] = _ref8;
116
- return !flatNamespaces.some(_ref9 => {
117
- let [namespace, claim] = _ref9;
138
+ const attrsNotInDisclosures = attrDefinitions.filter(_ref9 => {
139
+ let [attrDefNamespace, attrKey] = _ref9;
140
+ return !flatNamespaces.some(_ref10 => {
141
+ let [namespace, claim] = _ref10;
118
142
  return attrDefNamespace === namespace && attrKey === claim;
119
143
  });
120
144
  });
121
145
  if (attrsNotInDisclosures.length > 0) {
122
- const missing = attrsNotInDisclosures.map(_ref10 => {
123
- let [, attrKey] = _ref10;
146
+ const missing = attrsNotInDisclosures.map(_ref11 => {
147
+ let [, attrKey] = _ref11;
124
148
  return attrKey;
125
149
  }).join(", ");
126
- const received = flatNamespaces.map(_ref11 => {
127
- let [, attrKey] = _ref11;
150
+ const received = flatNamespaces.map(_ref12 => {
151
+ let [, attrKey] = _ref12;
128
152
  return attrKey;
129
153
  }).join(", ");
130
154
  if (!ignoreMissingAttributes) {
@@ -135,38 +159,38 @@ const parseCredentialMDoc = function (credentialConfig, _ref5) {
135
159
  // Attributes defined in the issuer configuration and present in the disclosure set
136
160
  const definedValues = attrDefinitions
137
161
  // Retrieve the value from the corresponding disclosure
138
- .map(_ref12 => {
162
+ .map(_ref13 => {
139
163
  var _flatNamespaces$find;
140
- let [attrDefNamespace, attrKey, display] = _ref12;
164
+ let [attrDefNamespace, attrKey, display] = _ref13;
141
165
  return [attrDefNamespace, attrKey, {
142
166
  display,
143
- value: (_flatNamespaces$find = flatNamespaces.find(_ref13 => {
144
- let [namespace, name] = _ref13;
167
+ value: (_flatNamespaces$find = flatNamespaces.find(_ref14 => {
168
+ let [namespace, name] = _ref14;
145
169
  return attrDefNamespace === namespace && name === attrKey;
146
170
  })) === null || _flatNamespaces$find === void 0 ? void 0 : _flatNamespaces$find[2]
147
171
  }];
148
172
  })
149
173
  //filter the not found elements
150
- .filter(_ref14 => {
151
- let [_, __, definition] = _ref14;
174
+ .filter(_ref15 => {
175
+ let [_, __, definition] = _ref15;
152
176
  return definition.value !== undefined;
153
177
  })
154
178
  // Add a human-readable attribute name, with i18n, in the form { locale: name }
155
179
  // Example: { "it-IT": "Nome", "en-EN": "Name", "es-ES": "Nombre" }
156
- .reduce((acc, _ref15) => {
180
+ .reduce((acc, _ref16) => {
157
181
  let [attrDefNamespace, attrKey, {
158
182
  display,
159
183
  value
160
- }] = _ref15;
184
+ }] = _ref16;
161
185
  return {
162
186
  ...acc,
163
187
  [(0, _utils.getParsedCredentialClaimKey)(attrDefNamespace, attrKey)]: {
164
188
  value,
165
- name: display.reduce((names, _ref16) => {
189
+ name: display.reduce((names, _ref17) => {
166
190
  let {
167
191
  locale,
168
192
  name
169
- } = _ref16;
193
+ } = _ref17;
170
194
  return {
171
195
  ...names,
172
196
  [locale]: name
@@ -176,11 +200,11 @@ const parseCredentialMDoc = function (credentialConfig, _ref5) {
176
200
  };
177
201
  }, {});
178
202
  if (includeUndefinedAttributes) {
179
- const undefinedValues = Object.fromEntries(Object.values(flatNamespaces).filter(_ref17 => {
180
- let [namespace, key] = _ref17;
203
+ const undefinedValues = Object.fromEntries(Object.values(flatNamespaces).filter(_ref18 => {
204
+ let [namespace, key] = _ref18;
181
205
  return !definedValues[(0, _utils.getParsedCredentialClaimKey)(namespace, key)];
182
- }).map(_ref18 => {
183
- let [namespace, key, value] = _ref18;
206
+ }).map(_ref19 => {
207
+ let [namespace, key, value] = _ref19;
184
208
  return [(0, _utils.getParsedCredentialClaimKey)(namespace, key), {
185
209
  value,
186
210
  name: key
@@ -228,7 +252,7 @@ async function verifyCredentialSdJwt(rawCredential, issuerKeys, holderBindingCon
228
252
  * and it's bound to the given key
229
253
  *
230
254
  * @param rawCredential The received credential
231
- * @param issuerKeys The set of public keys of the issuer,
255
+ * @param x509CertRoot The root certificate of the issuer,
232
256
  * which will be used to verify the signature
233
257
  * @param holderBindingContext The access to the holder's key
234
258
  *
@@ -250,12 +274,12 @@ async function verifyCredentialMDoc(rawCredential, x509CertRoot, holderBindingCo
250
274
  }
251
275
  return decodedCredential;
252
276
  }
253
- const verifyAndParseCredentialSdJwt = async (issuerConf, credential, credentialConfigurationId, _ref19) => {
277
+ const verifyAndParseCredentialSdJwt = async (issuerConf, credential, credentialConfigurationId, _ref20) => {
254
278
  let {
255
279
  credentialCryptoContext,
256
280
  ignoreMissingAttributes,
257
281
  includeUndefinedAttributes
258
- } = _ref19;
282
+ } = _ref20;
259
283
  const decoded = await verifyCredentialSdJwt(credential, issuerConf.openid_credential_issuer.jwks.keys, credentialCryptoContext);
260
284
  _logging.Logger.log(_logging.LogLevel.DEBUG, `Decoded credential: ${JSON.stringify(decoded)}`);
261
285
  const credentialConfig = issuerConf.openid_credential_issuer.credential_configurations_supported[credentialConfigurationId];
@@ -272,12 +296,12 @@ const verifyAndParseCredentialSdJwt = async (issuerConf, credential, credentialC
272
296
  issuedAt: typeof maybeIssuedAt === "number" ? new Date(maybeIssuedAt * 1000) : undefined
273
297
  };
274
298
  };
275
- const verifyAndParseCredentialMDoc = async (issuerConf, credential, credentialConfigurationId, _ref20, x509CertRoot) => {
299
+ const verifyAndParseCredentialMDoc = async (issuerConf, credential, credentialConfigurationId, _ref21, x509CertRoot) => {
276
300
  var _parsedCredential$get, _parsedCredential$get2;
277
301
  let {
278
302
  credentialCryptoContext,
279
303
  ignoreMissingAttributes
280
- } = _ref20;
304
+ } = _ref21;
281
305
  if (!x509CertRoot) {
282
306
  throw new _errors.IoWalletError("Missing x509CertRoot");
283
307
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_errors","require","_sdJwt","_converters","_jwk","_mdoc","_const","_utils","_logging","_converter","_nestedProperty","parseCredentialSdJwt","credentialConfig","_ref","sdJwt","disclosures","ignoreMissingAttributes","arguments","length","undefined","includeUndefinedAttributes","format","header","typ","message","Logger","log","LogLevel","ERROR","IoWalletError","claims","attrDefinitions","attrsNotInDisclosures","filter","definition","some","_ref2","name","path","missing","map","_","join","received","definedValues","display","_disclosures$find","attrKey","disclosureValue","find","_ref3","enriched","createNestedProperty","Object","assign","undefinedValues","fromEntries","keys","includes","_ref4","key","value","parseCredentialMDoc","_ref5","issuerSigned","_ref6","namespace","attribute","nameSpaces","flatNamespaces","entries","flatMap","_ref7","values","v","elementIdentifier","elementValue","_ref8","attrDefNamespace","_ref9","claim","_ref10","_ref11","_ref12","_flatNamespaces$find","_ref13","_ref14","__","reduce","acc","_ref15","getParsedCredentialClaimKey","names","_ref16","locale","_ref17","_ref18","verifyCredentialSdJwt","rawCredential","issuerKeys","holderBindingContext","decodedCredential","holderBindingKey","Promise","all","verifySdJwt","SdJwt4VC","getPublicKey","cnf","payload","isSameThumbprint","jwk","kid","verifyCredentialMDoc","x509CertRoot","verifyMdoc","issuerAuth","deviceKeyInfo","deviceKey","verifyAndParseCredentialSdJwt","issuerConf","credential","credentialConfigurationId","_ref19","credentialCryptoContext","decoded","openid_credential_issuer","jwks","DEBUG","JSON","stringify","credential_configurations_supported","parsedCredential","maybeIssuedAt","getValueFromDisclosures","expiration","Date","exp","issuedAt","verifyAndParseCredentialMDoc","_ref20","_parsedCredential$get","_parsedCredential$get2","expirationDate","extractElementValueAsDate","MDOC_DEFAULT_NAMESPACE","setDate","getDate","verifyAndParseCredential","context","_issuerConf$openid_cr","exports"],"sourceRoot":"../../../../src","sources":["credential/issuance/07-verify-and-parse-credential.ts"],"mappings":";;;;;;AAGA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AACA,IAAAG,IAAA,GAAAH,OAAA;AAEA,IAAAI,KAAA,GAAAJ,OAAA;AACA,IAAAK,MAAA,GAAAL,OAAA;AACA,IAAAM,MAAA,GAAAN,OAAA;AACA,IAAAO,QAAA,GAAAP,OAAA;AACA,IAAAQ,UAAA,GAAAR,OAAA;AAGA,IAAAS,eAAA,GAAAT,OAAA;AAgCA;;AAeA;;AAKA,MAAMU,oBAAoB,GAAG,SAAAA,CAE3BC,gBAAgC,EAAAC,IAAA,EAIX;EAAA,IAHrB;IAAEC,KAAK;IAAEC;EAAoC,CAAC,GAAAF,IAAA;EAAA,IAC9CG,uBAAgC,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,KAAK;EAAA,IACxCG,0BAAmC,GAAAH,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,KAAK;EAE3C,IAAIL,gBAAgB,CAACS,MAAM,KAAKP,KAAK,CAACQ,MAAM,CAACC,GAAG,EAAE;IAChD,MAAMC,OAAO,GAAI,+DAA8DZ,gBAAgB,CAACS,MAAO,gBAAeP,KAAK,CAACQ,MAAM,CAACC,GAAI,GAAE;IACzIE,eAAM,CAACC,GAAG,CAACC,iBAAQ,CAACC,KAAK,EAAEJ,OAAO,CAAC;IACnC,MAAM,IAAIK,qBAAa,CAACL,OAAO,CAAC;EAClC;EAEA,IAAI,CAACZ,gBAAgB,CAACkB,MAAM,EAAE;IAC5BL,eAAM,CAACC,GAAG,CAACC,iBAAQ,CAACC,KAAK,EAAE,0CAA0C,CAAC;IACtE,MAAM,IAAIC,qBAAa,CAAC,0CAA0C,CAAC,CAAC,CAAC;EACvE;;EAEA,MAAME,eAAe,GAAGnB,gBAAgB,CAACkB,MAAM;;EAE/C;EACA,MAAME,qBAAqB,GAAGD,eAAe,CAACE,MAAM,CACjDC,UAAU,IAAK,CAACnB,WAAW,CAACoB,IAAI,CAACC,KAAA;IAAA,IAAC,GAAGC,IAAI,CAAC,GAAAD,KAAA;IAAA,OAAKC,IAAI,KAAKH,UAAU,CAACI,IAAI,CAAC,CAAC,CAAC;EAAA,EAC7E,CAAC;EAED,IAAIN,qBAAqB,CAACd,MAAM,GAAG,CAAC,IAAI,CAACF,uBAAuB,EAAE;IAChE,MAAMuB,OAAO,GAAGP,qBAAqB,CAACQ,GAAG,CAAEC,CAAC,IAAKA,CAAC,CAACH,IAAI,CAAC,CAAC,CAAC,CAAC,CAACI,IAAI,CAAC,IAAI,CAAC;IACtE,MAAMC,QAAQ,GAAG5B,WAAW,CAACyB,GAAG,CAAEC,CAAC,IAAKA,CAAC,CAAC,CAAC,CAAC,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC;IACxD,MAAMlB,OAAO,GAAI,4DAA2De,OAAQ,iBAAgBI,QAAS,GAAE;IAC/GlB,eAAM,CAACC,GAAG,CAACC,iBAAQ,CAACC,KAAK,EAAEJ,OAAO,CAAC;IACnC,MAAM,IAAIK,qBAAa,CAACL,OAAO,CAAC;EAClC;EAEA,MAAMoB,aAA+B,GAAG,CAAC,CAAC;EAE1C,KAAK,MAAM;IAAEN,IAAI;IAAEO;EAAQ,CAAC,IAAId,eAAe,EAAE;IAAA,IAAAe,iBAAA;IAC/C,MAAMC,OAAO,GAAGT,IAAI,CAAC,CAAC,CAAC;IACvB,MAAMU,eAAe,IAAAF,iBAAA,GAAG/B,WAAW,CAACkC,IAAI,CACtCC,KAAA;MAAA,IAAC,GAAGb,IAAI,CAAC,GAAAa,KAAA;MAAA,OAAKb,IAAI,KAAKU,OAAO;IAAA,CAChC,CAAC,cAAAD,iBAAA,uBAFuBA,iBAAA,CAEpB,CAAC,CAAC;IAEN,IAAIE,eAAe,KAAK7B,SAAS,EAAE;MACjC,MAAMgC,QAAQ,GAAG,IAAAC,oCAAoB,EACnCR,aAAa,EACbN,IAAI,EACJU,eAAe,EACfH,OACF,CAAC;MACDQ,MAAM,CAACC,MAAM,CAACV,aAAa,EAAEO,QAAQ,CAAC;IACxC;EACF;EAEA,IAAI/B,0BAA0B,EAAE;IAC9B;IACA;IACA,MAAMmC,eAAe,GAAGF,MAAM,CAACG,WAAW,CACxCzC,WAAW,CACRkB,MAAM,CAAEQ,CAAC,IAAK,CAACY,MAAM,CAACI,IAAI,CAACb,aAAa,CAAC,CAACc,QAAQ,CAACjB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACzDD,GAAG,CAACmB,KAAA;MAAA,IAAC,GAAGC,GAAG,EAAEC,KAAK,CAAC,GAAAF,KAAA;MAAA,OAAK,CAACC,GAAG,EAAE;QAAEC,KAAK;QAAExB,IAAI,EAAEuB;MAAI,CAAC,CAAC;IAAA,EACxD,CAAC;IAED,OAAO;MACL,GAAGhB,aAAa;MAChB,GAAGW;IACL,CAAC;EACH;EAEA,OAAOX,aAAa;AACtB,CAAC;AACD,MAAMkB,mBAAmB,GAAG,SAAAA,CAE1BlD,gBAAgC,EAAAmD,KAAA,EAKX;EAAA,IAHrB;IAAEC;EAAoC,CAAC,GAAAD,KAAA;EAAA,IACvC/C,uBAAgC,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,KAAK;EAAA,IACxCG,0BAAmC,GAAAH,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,KAAK;EAE3C,IAAI,CAACL,gBAAgB,EAAE;IACrB,MAAM,IAAIiB,qBAAa,CAAC,6CAA6C,CAAC;EACxE;EAEA,IAAI,CAACjB,gBAAgB,CAACkB,MAAM,EAAE;IAC5B,MAAM,IAAID,qBAAa,CAAC,0CAA0C,CAAC;EACrE;EAEA,MAAME,eAAe,GAAGnB,gBAAgB,CAACkB,MAAM,CAACU,GAAG,CAEjDyB,KAAA;IAAA,IAAC;MAAE3B,IAAI,EAAE,CAAC4B,SAAS,EAAEC,SAAS,CAAC;MAAEtB;IAAQ,CAAC,GAAAoB,KAAA;IAAA,OAAK,CAC/CC,SAAS,EACTC,SAAS,EACTtB,OAAO,CACR;EAAA,EAAC;EAEF,IAAI,CAACmB,YAAY,CAACI,UAAU,EAAE;IAC5B,MAAM,IAAIvC,qBAAa,CAAC,kCAAkC,CAAC;EAC7D;EAEA,MAAMwC,cAAc,GAAGhB,MAAM,CAACiB,OAAO,CAACN,YAAY,CAACI,UAAU,CAAC,CAACG,OAAO,CACpEC,KAAA;IAAA,IAAC,CAACN,SAAS,EAAEO,MAAM,CAAC,GAAAD,KAAA;IAAA,OAClBC,MAAM,CAACjC,GAAG,CAA4BkC,CAAC,IAAK,CAC1CR,SAAS,EACTQ,CAAC,CAACC,iBAAiB,EACnBD,CAAC,CAACE,YAAY,CACf,CAAC;EAAA,CACN,CAAC;;EAED;EACA;EACA,MAAM5C,qBAAqB,GAAGD,eAAe,CAACE,MAAM,CAClD4C,KAAA;IAAA,IAAC,CAACC,gBAAgB,EAAE/B,OAAO,CAAC,GAAA8B,KAAA;IAAA,OAC1B,CAACR,cAAc,CAAClC,IAAI,CAClB4C,KAAA;MAAA,IAAC,CAACb,SAAS,EAAEc,KAAK,CAAC,GAAAD,KAAA;MAAA,OACjBD,gBAAgB,KAAKZ,SAAS,IAAInB,OAAO,KAAKiC,KAAK;IAAA,CACvD,CAAC;EAAA,CACL,CAAC;EAED,IAAIhD,qBAAqB,CAACd,MAAM,GAAG,CAAC,EAAE;IACpC,MAAMqB,OAAO,GAAGP,qBAAqB,CAClCQ,GAAG,CAACyC,MAAA;MAAA,IAAC,GAAGlC,OAAO,CAAC,GAAAkC,MAAA;MAAA,OAAKlC,OAAO;IAAA,EAAC,CAC7BL,IAAI,CAAC,IAAI,CAAC;IACb,MAAMC,QAAQ,GAAG0B,cAAc,CAAC7B,GAAG,CAAC0C,MAAA;MAAA,IAAC,GAAGnC,OAAO,CAAC,GAAAmC,MAAA;MAAA,OAAKnC,OAAO;IAAA,EAAC,CAACL,IAAI,CAAC,IAAI,CAAC;IAExE,IAAI,CAAC1B,uBAAuB,EAAE;MAC5B,MAAM,IAAIa,qBAAa,CACpB,4DAA2DU,OAAQ,iBAAgBI,QAAS,GAC/F,CAAC;IACH;EACF;;EAEA;EACA,MAAMC,aAAa,GAAGb;EACpB;EAAA,CACCS,GAAG,CACF2C,MAAA;IAAA,IAAAC,oBAAA;IAAA,IAAC,CAACN,gBAAgB,EAAE/B,OAAO,EAAEF,OAAO,CAAC,GAAAsC,MAAA;IAAA,OACnC,CACEL,gBAAgB,EAChB/B,OAAO,EACP;MACEF,OAAO;MACPgB,KAAK,GAAAuB,oBAAA,GAAEf,cAAc,CAACpB,IAAI,CACxBoC,MAAA;QAAA,IAAC,CAACnB,SAAS,EAAE7B,IAAI,CAAC,GAAAgD,MAAA;QAAA,OAChBP,gBAAgB,KAAKZ,SAAS,IAAI7B,IAAI,KAAKU,OAAO;MAAA,CACtD,CAAC,cAAAqC,oBAAA,uBAHMA,oBAAA,CAGH,CAAC;IACP,CAAC,CACF;EAAA,CACL;EACA;EAAA,CACCnD,MAAM,CAACqD,MAAA;IAAA,IAAC,CAAC7C,CAAC,EAAE8C,EAAE,EAAErD,UAAU,CAAC,GAAAoD,MAAA;IAAA,OAAKpD,UAAU,CAAC2B,KAAK,KAAK1C,SAAS;EAAA;EAC/D;EACA;EAAA,CACCqE,MAAM,CACL,CAACC,GAAG,EAAAC,MAAA;IAAA,IAAE,CAACZ,gBAAgB,EAAE/B,OAAO,EAAE;MAAEF,OAAO;MAAEgB;IAAM,CAAC,CAAC,GAAA6B,MAAA;IAAA,OAAM;MACzD,GAAGD,GAAG;MACN,CAAC,IAAAE,kCAA2B,EAACb,gBAAgB,EAAE/B,OAAO,CAAC,GAAG;QACxDc,KAAK;QACLxB,IAAI,EAAEQ,OAAO,CAAC2C,MAAM,CAClB,CAACI,KAAK,EAAAC,MAAA;UAAA,IAAE;YAAEC,MAAM;YAAEzD;UAAK,CAAC,GAAAwD,MAAA;UAAA,OAAM;YAC5B,GAAGD,KAAK;YACR,CAACE,MAAM,GAAGzD;UACZ,CAAC;QAAA,CAAC,EACF,CAAC,CACH;MACF;IACF,CAAC;EAAA,CAAC,EACF,CAAC,CACH,CAAC;EAEH,IAAIjB,0BAA0B,EAAE;IAC9B,MAAMmC,eAAiC,GAAGF,MAAM,CAACG,WAAW,CAC1DH,MAAM,CAACoB,MAAM,CAACJ,cAAc,CAAC,CAC1BpC,MAAM,CACL8D,MAAA;MAAA,IAAC,CAAC7B,SAAS,EAAEN,GAAG,CAAC,GAAAmC,MAAA;MAAA,OACf,CAACnD,aAAa,CAAC,IAAA+C,kCAA2B,EAACzB,SAAS,EAAEN,GAAG,CAAC,CAAC;IAAA,CAC/D,CAAC,CACApB,GAAG,CAACwD,MAAA;MAAA,IAAC,CAAC9B,SAAS,EAAEN,GAAG,EAAEC,KAAK,CAAC,GAAAmC,MAAA;MAAA,OAAK,CAChC,IAAAL,kCAA2B,EAACzB,SAAS,EAAEN,GAAG,CAAC,EAC3C;QAAEC,KAAK;QAAExB,IAAI,EAAEuB;MAAI,CAAC,CACrB;IAAA,EACL,CAAC;IACD,OAAO;MACL,GAAGhB,aAAa;MAChB,GAAGW;IACL,CAAC;EACH;EAEA,OAAOX,aAAa;AACtB,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAeqD,qBAAqBA,CAClCC,aAAqB,EACrBC,UAAiB,EACjBC,oBAAmC,EACF;EACjC,MAAM,CAACC,iBAAiB,EAAEC,gBAAgB,CAAC;EACzC;EACA,MAAMC,OAAO,CAACC,GAAG,CAAC,CAChB,IAAAC,aAAW,EAACP,aAAa,EAAEC,UAAU,EAAEO,eAAQ,CAAC,EAChDN,oBAAoB,CAACO,YAAY,CAAC,CAAC,CACpC,CAAC;EAEJ,MAAM;IAAEC;EAAI,CAAC,GAAGP,iBAAiB,CAACvF,KAAK,CAAC+F,OAAO;EAC/C,IAAI,EAAE,MAAM,IAAAC,qBAAgB,EAACF,GAAG,CAACG,GAAG,EAAET,gBAAuB,CAAC,CAAC,EAAE;IAC/D,MAAM9E,OAAO,GAAI,kDAAiD8E,gBAAgB,CAACU,GAAI,UAASX,iBAAiB,CAACvF,KAAK,CAAC+F,OAAO,CAACD,GAAG,CAACG,GAAG,CAACC,GAAI,EAAC;IAC7IvF,eAAM,CAACC,GAAG,CAACC,iBAAQ,CAACC,KAAK,EAAEJ,OAAO,CAAC;IACnC,MAAM,IAAIK,qBAAa,CAACL,OAAO,CAAC;EAClC;EAEA,OAAO6E,iBAAiB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAeY,oBAAoBA,CACjCf,aAAqB,EACrBgB,YAAoB,EACpBd,oBAAmC,EACH;EAChC,MAAM,CAACC,iBAAiB,EAAEC,gBAAgB,CAAC;EACzC;EACA,MAAMC,OAAO,CAACC,GAAG,CAAC,CAChB,IAAAW,YAAU,EAACjB,aAAa,EAAEgB,YAAY,CAAC,EACvCd,oBAAoB,CAACO,YAAY,CAAC,CAAC,CACpC,CAAC;EAEJ,IAAI,CAACN,iBAAiB,EAAE;IACtB,MAAM,IAAIxE,qBAAa,CAAC,4BAA4B,CAAC;EACvD;EAEA,MAAM+B,GAAG,GACPyC,iBAAiB,CAACrC,YAAY,CAACoD,UAAU,CAACP,OAAO,CAACQ,aAAa,CAACC,SAAS;EAE3E,IAAI,EAAE,MAAM,IAAAR,qBAAgB,EAAClD,GAAG,EAAE0C,gBAA6B,CAAC,CAAC,EAAE;IACjE,MAAM,IAAIzE,qBAAa,CACpB,oFACH,CAAC;EACH;EAEA,OAAOwE,iBAAiB;AAC1B;AAEA,MAAMkB,6BAAuD,GAAG,MAAAA,CAC9DC,UAAU,EACVC,UAAU,EACVC,yBAAyB,EAAAC,MAAA,KAMtB;EAAA,IALH;IACEC,uBAAuB;IACvB5G,uBAAuB;IACvBI;EACF,CAAC,GAAAuG,MAAA;EAED,MAAME,OAAO,GAAG,MAAM5B,qBAAqB,CACzCwB,UAAU,EACVD,UAAU,CAACM,wBAAwB,CAACC,IAAI,CAACtE,IAAI,EAC7CmE,uBACF,CAAC;EAEDnG,eAAM,CAACC,GAAG,CAACC,iBAAQ,CAACqG,KAAK,EAAG,uBAAsBC,IAAI,CAACC,SAAS,CAACL,OAAO,CAAE,EAAC,CAAC;EAE5E,MAAMjH,gBAAgB,GACpB4G,UAAU,CAACM,wBAAwB,CAACK,mCAAmC,CACrET,yBAAyB,CAC1B;EAEH,IAAI,CAAC9G,gBAAgB,EAAE;IACrBa,eAAM,CAACC,GAAG,CACRC,iBAAQ,CAACC,KAAK,EACb,gDAA+C8F,yBAA0B,EAC5E,CAAC;IACD,MAAM,IAAI7F,qBAAa,CAAC,6CAA6C,CAAC;EACxE;EAEA,MAAMuG,gBAAgB,GAAGzH,oBAAoB,CAC3CC,gBAAgB,EAChBiH,OAAO,EACP7G,uBAAuB,EACvBI,0BACF,CAAC;EACD,MAAMiH,aAAa,GAAG,IAAAC,mCAAuB,EAACT,OAAO,CAAC9G,WAAW,EAAE,KAAK,CAAC;EAEzEU,eAAM,CAACC,GAAG,CACRC,iBAAQ,CAACqG,KAAK,EACb,sBAAqBC,IAAI,CAACC,SAAS,CAACE,gBAAgB,CAAE,gBAAeC,aAAc,EACtF,CAAC;EAED,OAAO;IACLD,gBAAgB;IAChBG,UAAU,EAAE,IAAIC,IAAI,CAACX,OAAO,CAAC/G,KAAK,CAAC+F,OAAO,CAAC4B,GAAG,GAAG,IAAI,CAAC;IACtDC,QAAQ,EACN,OAAOL,aAAa,KAAK,QAAQ,GAC7B,IAAIG,IAAI,CAACH,aAAa,GAAG,IAAI,CAAC,GAC9BlH;EACR,CAAC;AACH,CAAC;AAED,MAAMwH,4BAAsD,GAAG,MAAAA,CAC7DnB,UAAU,EACVC,UAAU,EACVC,yBAAyB,EAAAkB,MAAA,EAEzB1B,YAAY,KACT;EAAA,IAAA2B,qBAAA,EAAAC,sBAAA;EAAA,IAFH;IAAElB,uBAAuB;IAAE5G;EAAwB,CAAC,GAAA4H,MAAA;EAGpD,IAAI,CAAC1B,YAAY,EAAE;IACjB,MAAM,IAAIrF,qBAAa,CAAC,sBAAsB,CAAC;EACjD;EAEA,MAAMgG,OAAO,GAAG,MAAMZ,oBAAoB,CACxCQ,UAAU,EACVP,YAAY,EACZU,uBACF,CAAC;EAED,MAAMhH,gBAAgB,GACpB4G,UAAU,CAACM,wBAAwB,CAACK,mCAAmC,CACrET,yBAAyB,CACzB;EACJ,MAAMU,gBAAgB,GAAGtE,mBAAmB,CAC1ClD,gBAAgB,EAChBiH,OAAO,EACP7G,uBAAuB,EACvBA,uBACF,CAAC;EAED,MAAM+H,cAAc,GAAG,IAAAC,oCAAyB,EAC9CZ,gBAAgB,aAAhBA,gBAAgB,gBAAAS,qBAAA,GAAhBT,gBAAgB,CACd,IAAAzC,kCAA2B,EAACsD,6BAAsB,EAAE,aAAa,CAAC,CACnE,cAAAJ,qBAAA,uBAFDA,qBAAA,CAEGhF,KACL,CAAC;EACD,IAAI,CAACkF,cAAc,EAAE;IACnB,MAAM,IAAIlH,qBAAa,CAAE,kCAAiC,CAAC;EAC7D;EACAkH,cAAc,CAACG,OAAO,CAACH,cAAc,CAACI,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC;EAEpD,MAAMd,aAAa,GAAG,IAAAW,oCAAyB,EAC7CZ,gBAAgB,aAAhBA,gBAAgB,gBAAAU,sBAAA,GAAhBV,gBAAgB,CACd,IAAAzC,kCAA2B,EAACsD,6BAAsB,EAAE,YAAY,CAAC,CAClE,cAAAH,sBAAA,uBAFDA,sBAAA,CAEGjF,KACL,CAAC;EACDwE,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEa,OAAO,CAACb,aAAa,CAACc,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC;EAEnD,OAAO;IACLf,gBAAgB;IAChBX,UAAU;IACVC,yBAAyB;IACzBa,UAAU,EAAEQ,cAAc;IAC1BL,QAAQ,EAAEL,aAAa,IAAIlH;EAC7B,CAAC;AACH,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMiI,wBAAkD,GAAG,MAAAA,CAChE5B,UAAU,EACVC,UAAU,EACVC,yBAAyB,EACzB2B,OAAO,EACPnC,YAAY,KACT;EAAA,IAAAoC,qBAAA;EACH,MAAMjI,MAAM,IAAAiI,qBAAA,GACV9B,UAAU,CAACM,wBAAwB,CAACK,mCAAmC,CACrET,yBAAyB,CAC1B,cAAA4B,qBAAA,uBAFDA,qBAAA,CAEGjI,MAAM;EAEX,QAAQA,MAAM;IACZ,KAAK,WAAW;MAAE;QAChBI,eAAM,CAACC,GAAG,CAACC,iBAAQ,CAACqG,KAAK,EAAE,wCAAwC,CAAC;QACpE,OAAOT,6BAA6B,CAClCC,UAAU,EACVC,UAAU,EACVC,yBAAyB,EACzB2B,OACF,CAAC;MACH;IACA,KAAK,UAAU;MAAE;QACf5H,eAAM,CAACC,GAAG,CAACC,iBAAQ,CAACqG,KAAK,EAAE,uCAAuC,CAAC;QACnE,OAAOW,4BAA4B,CACjCnB,UAAU,EACVC,UAAU,EACVC,yBAAyB,EACzB2B,OAAO,EACPnC,YACF,CAAC;MACH;IAEA;MAAS;QACP,MAAM1F,OAAO,GAAI,kCAAiCH,MAAO,EAAC;QAC1DI,eAAM,CAACC,GAAG,CAACC,iBAAQ,CAACC,KAAK,EAAEJ,OAAO,CAAC;QACnC,MAAM,IAAIK,qBAAa,CAACL,OAAO,CAAC;MAClC;EACF;AACF,CAAC;AAAC+H,OAAA,CAAAH,wBAAA,GAAAA,wBAAA"}
1
+ {"version":3,"names":["_errors","require","_sdJwt","_converters","_jwk","_mdoc","_const","_utils","_logging","_converter","_nestedProperty","parseCredentialSdJwt","credentialConfig","_ref","sdJwt","disclosures","ignoreMissingAttributes","arguments","length","undefined","includeUndefinedAttributes","format","header","typ","message","Logger","log","LogLevel","ERROR","IoWalletError","claims","attrDefinitions","disclosedKeys","Set","map","_ref2","name","payloadKeys","Object","keys","payload","definedTopLevelKeys","def","path","missingKeys","filter","key","has","join","definedValues","groupedDefinitions","reduce","acc","group","push","topLevelKey","definitionsForThisKey","disclosureForThisKey","find","_ref3","disclosureValue","tempObjectForGroup","_ref4","display","createNestedProperty","assign","undefinedValues","fromEntries","_","includes","_ref5","value","parseCredentialMDoc","_ref6","issuerSigned","_ref7","namespace","attribute","nameSpaces","flatNamespaces","entries","flatMap","_ref8","values","v","elementIdentifier","elementValue","attrsNotInDisclosures","_ref9","attrDefNamespace","attrKey","some","_ref10","claim","missing","_ref11","received","_ref12","_ref13","_flatNamespaces$find","_ref14","_ref15","__","definition","_ref16","getParsedCredentialClaimKey","names","_ref17","locale","_ref18","_ref19","verifyCredentialSdJwt","rawCredential","issuerKeys","holderBindingContext","decodedCredential","holderBindingKey","Promise","all","verifySdJwt","SdJwt4VC","getPublicKey","cnf","isSameThumbprint","jwk","kid","verifyCredentialMDoc","x509CertRoot","verifyMdoc","issuerAuth","deviceKeyInfo","deviceKey","verifyAndParseCredentialSdJwt","issuerConf","credential","credentialConfigurationId","_ref20","credentialCryptoContext","decoded","openid_credential_issuer","jwks","DEBUG","JSON","stringify","credential_configurations_supported","parsedCredential","maybeIssuedAt","getValueFromDisclosures","expiration","Date","exp","issuedAt","verifyAndParseCredentialMDoc","_ref21","_parsedCredential$get","_parsedCredential$get2","expirationDate","extractElementValueAsDate","MDOC_DEFAULT_NAMESPACE","setDate","getDate","verifyAndParseCredential","context","_issuerConf$openid_cr","exports"],"sourceRoot":"../../../../src","sources":["credential/issuance/07-verify-and-parse-credential.ts"],"mappings":"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"}
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.startFlowFromQR = void 0;
7
+ var z = _interopRequireWildcard(require("zod"));
8
+ var _logging = require("../../utils/logging");
9
+ var _zod2 = require("../../utils/zod");
10
+ var _errors = require("./errors");
11
+ var _types = require("./types");
12
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
13
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
14
+ const CREDENTIAL_OFFER_SCHEMES = ["openid-credential-offer://", "haip://"];
15
+ const CREDENTIAL_OFFER_PARAM = "credential_offer";
16
+ const CREDENTIAL_OFFER_URI_PARAM = "credential_offer_uri";
17
+ const CredentialOfferParams = z.union([z.object({
18
+ credential_offer: _zod2.stringToJSONSchema.pipe(_types.CredentialOfferSchema),
19
+ credential_offer_uri: z.undefined()
20
+ }), z.object({
21
+ credential_offer: z.undefined(),
22
+ credential_offer_uri: z.string().url()
23
+ })]);
24
+
25
+ /**
26
+ * The beginning of the credential offer flow.
27
+ * To be implemented according to the user touchpoint
28
+ *
29
+ * @param params Credential offer encoded url
30
+ * @returns Object containing the credential offer by reference or by value
31
+ */
32
+
33
+ /**
34
+ * Start a credential offer flow by validating and parse an encoded url
35
+ * extracted from a QR code or a deep link.
36
+ *
37
+ * @param params The encoded url to be validated and parsed
38
+ * @returns Object containing the credential offer by reference or by value
39
+ * @throws If the provided encoded url is not valid
40
+ */
41
+ const startFlowFromQR = encodedUrl => {
42
+ const hasValidScheme = CREDENTIAL_OFFER_SCHEMES.some(prefix => encodedUrl.startsWith(prefix));
43
+ if (!hasValidScheme) {
44
+ throw new _errors.InvalidQRCodeError("Url must have one of the supported schemes");
45
+ }
46
+ const url = new URL(encodedUrl);
47
+ const offerParam = url.searchParams.get(CREDENTIAL_OFFER_PARAM);
48
+ const offerUriParam = url.searchParams.get(CREDENTIAL_OFFER_URI_PARAM);
49
+ if (offerParam) {
50
+ const decoded = decodeURIComponent(offerParam);
51
+ const result = CredentialOfferParams.safeParse({
52
+ credential_offer: decoded
53
+ });
54
+ if (result.success) {
55
+ return result.data;
56
+ }
57
+ _logging.Logger.log(_logging.LogLevel.ERROR, `Invalid credential offer object found in QR Code: ${result.error.message}`);
58
+ throw new _errors.InvalidQRCodeError(result.error.message);
59
+ }
60
+ if (offerUriParam) {
61
+ const decoded = decodeURIComponent(offerUriParam);
62
+ const result = CredentialOfferParams.safeParse({
63
+ credential_offer_uri: decoded
64
+ });
65
+ if (result.success) {
66
+ return result.data;
67
+ }
68
+ _logging.Logger.log(_logging.LogLevel.ERROR, `Invalid credential offer URI found in QR Code: ${result.error.message}`);
69
+ throw new _errors.InvalidQRCodeError(result.error.message);
70
+ }
71
+ _logging.Logger.log(_logging.LogLevel.ERROR, `Invalid credential offer QR Code:`);
72
+ throw new _errors.InvalidQRCodeError("QR Code does not contain valid params");
73
+ };
74
+ exports.startFlowFromQR = startFlowFromQR;
75
+ //# sourceMappingURL=01-start-flow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["z","_interopRequireWildcard","require","_logging","_zod2","_errors","_types","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","CREDENTIAL_OFFER_SCHEMES","CREDENTIAL_OFFER_PARAM","CREDENTIAL_OFFER_URI_PARAM","CredentialOfferParams","union","object","credential_offer","stringToJSONSchema","pipe","CredentialOfferSchema","credential_offer_uri","undefined","string","url","startFlowFromQR","encodedUrl","hasValidScheme","some","prefix","startsWith","InvalidQRCodeError","URL","offerParam","searchParams","offerUriParam","decoded","decodeURIComponent","result","safeParse","success","data","Logger","log","LogLevel","ERROR","error","message","exports"],"sourceRoot":"../../../../src","sources":["credential/offer/01-start-flow.ts"],"mappings":";;;;;;AAAA,IAAAA,CAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AAAgD,SAAAK,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAP,wBAAAW,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,oBAAAA,GAAA,wBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAG,KAAA,GAAAR,wBAAA,CAAAC,WAAA,OAAAO,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAJ,GAAA,YAAAG,KAAA,CAAAE,GAAA,CAAAL,GAAA,SAAAM,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAX,GAAA,QAAAW,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAd,GAAA,EAAAW,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAV,GAAA,EAAAW,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAX,GAAA,CAAAW,GAAA,SAAAL,MAAA,CAAAJ,OAAA,GAAAF,GAAA,MAAAG,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAhB,GAAA,EAAAM,MAAA,YAAAA,MAAA;AAEhD,MAAMW,wBAAwB,GAAG,CAAC,4BAA4B,EAAE,SAAS,CAAC;AAC1E,MAAMC,sBAAsB,GAAG,kBAAkB;AACjD,MAAMC,0BAA0B,GAAG,sBAAsB;AAEzD,MAAMC,qBAAqB,GAAGhC,CAAC,CAACiC,KAAK,CAAC,CACpCjC,CAAC,CAACkC,MAAM,CAAC;EACPC,gBAAgB,EAAEC,wBAAkB,CAACC,IAAI,CAACC,4BAAqB,CAAC;EAChEC,oBAAoB,EAAEvC,CAAC,CAACwC,SAAS,CAAC;AACpC,CAAC,CAAC,EACFxC,CAAC,CAACkC,MAAM,CAAC;EACPC,gBAAgB,EAAEnC,CAAC,CAACwC,SAAS,CAAC,CAAC;EAC/BD,oBAAoB,EAAEvC,CAAC,CAACyC,MAAM,CAAC,CAAC,CAACC,GAAG,CAAC;AACvC,CAAC,CAAC,CACH,CAAC;;AAGF;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,eAA0B,GAAIC,UAAU,IAAK;EACxD,MAAMC,cAAc,GAAGhB,wBAAwB,CAACiB,IAAI,CAAEC,MAAM,IAC1DH,UAAU,CAACI,UAAU,CAACD,MAAM,CAC9B,CAAC;EAED,IAAI,CAACF,cAAc,EAAE;IACnB,MAAM,IAAII,0BAAkB,CAAC,4CAA4C,CAAC;EAC5E;EAEA,MAAMP,GAAG,GAAG,IAAIQ,GAAG,CAACN,UAAU,CAAC;EAC/B,MAAMO,UAAU,GAAGT,GAAG,CAACU,YAAY,CAACnC,GAAG,CAACa,sBAAsB,CAAC;EAC/D,MAAMuB,aAAa,GAAGX,GAAG,CAACU,YAAY,CAACnC,GAAG,CAACc,0BAA0B,CAAC;EAEtE,IAAIoB,UAAU,EAAE;IACd,MAAMG,OAAO,GAAGC,kBAAkB,CAACJ,UAAU,CAAC;IAC9C,MAAMK,MAAM,GAAGxB,qBAAqB,CAACyB,SAAS,CAAC;MAC7CtB,gBAAgB,EAAEmB;IACpB,CAAC,CAAC;IAEF,IAAIE,MAAM,CAACE,OAAO,EAAE;MAClB,OAAOF,MAAM,CAACG,IAAI;IACpB;IAEAC,eAAM,CAACC,GAAG,CACRC,iBAAQ,CAACC,KAAK,EACb,qDAAoDP,MAAM,CAACQ,KAAK,CAACC,OAAQ,EAC5E,CAAC;IACD,MAAM,IAAIhB,0BAAkB,CAACO,MAAM,CAACQ,KAAK,CAACC,OAAO,CAAC;EACpD;EAEA,IAAIZ,aAAa,EAAE;IACjB,MAAMC,OAAO,GAAGC,kBAAkB,CAACF,aAAa,CAAC;IACjD,MAAMG,MAAM,GAAGxB,qBAAqB,CAACyB,SAAS,CAAC;MAC7ClB,oBAAoB,EAAEe;IACxB,CAAC,CAAC;IAEF,IAAIE,MAAM,CAACE,OAAO,EAAE;MAClB,OAAOF,MAAM,CAACG,IAAI;IACpB;IAEAC,eAAM,CAACC,GAAG,CACRC,iBAAQ,CAACC,KAAK,EACb,kDAAiDP,MAAM,CAACQ,KAAK,CAACC,OAAQ,EACzE,CAAC;IACD,MAAM,IAAIhB,0BAAkB,CAACO,MAAM,CAACQ,KAAK,CAACC,OAAO,CAAC;EACpD;EAEAL,eAAM,CAACC,GAAG,CAACC,iBAAQ,CAACC,KAAK,EAAG,mCAAkC,CAAC;EAC/D,MAAM,IAAId,0BAAkB,CAAC,uCAAuC,CAAC;AACvE,CAAC;AAACiB,OAAA,CAAAvB,eAAA,GAAAA,eAAA"}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.fetchCredentialOffer = void 0;
7
+ var _errors = require("../../utils/errors");
8
+ var _logging = require("../../utils/logging");
9
+ var _misc = require("../../utils/misc");
10
+ var _errors2 = require("./errors");
11
+ var _types = require("./types");
12
+ /**
13
+ * Fetches and validates a credential offer from a given URI.
14
+ *
15
+ * This function performs an HTTP GET request to the specified `credentialOfferUri`,
16
+ * expecting a JSON response that matches the `CredentialOfferSchema`. If the response
17
+ * is invalid or does not conform to the schema, an error is logged and an
18
+ * `InvalidCredentialOfferError` is thrown.
19
+ *
20
+ * @param credentialOfferUri - The URI from which to fetch the credential offer.
21
+ * @param context - Optional context object that may provide a custom `appFetch` implementation.
22
+ * @returns The validated credential offer data.
23
+ * @throws {IssuerResponseError} If the HTTP response status is not 200.
24
+ * @throws {InvalidCredentialOfferError} If the response does not match the expected schema.
25
+ */
26
+ const fetchCredentialOffer = async function (uri) {
27
+ let context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
28
+ const {
29
+ appFetch = fetch
30
+ } = context;
31
+ const response = await appFetch(uri, {
32
+ method: "GET",
33
+ headers: {
34
+ Accept: "application/json"
35
+ }
36
+ }).then((0, _misc.hasStatusOrThrow)(200, _errors.IssuerResponseError)).then(reqUri => reqUri.json());
37
+ const credentialOffer = _types.CredentialOfferSchema.safeParse(response);
38
+ if (!credentialOffer.success) {
39
+ _logging.Logger.log(_logging.LogLevel.ERROR, `Invalid credential offer fetched from URI: ${uri} - ${credentialOffer.error.message}`);
40
+ throw new _errors2.InvalidCredentialOfferError(`Invalid credential offer fetched from URI: ${uri} - ${credentialOffer.error.message}`);
41
+ }
42
+ return credentialOffer.data;
43
+ };
44
+ exports.fetchCredentialOffer = fetchCredentialOffer;
45
+ //# sourceMappingURL=02-fetch-credential-offer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_errors","require","_logging","_misc","_errors2","_types","fetchCredentialOffer","uri","context","arguments","length","undefined","appFetch","fetch","response","method","headers","Accept","then","hasStatusOrThrow","IssuerResponseError","reqUri","json","credentialOffer","CredentialOfferSchema","safeParse","success","Logger","log","LogLevel","ERROR","error","message","InvalidCredentialOfferError","data","exports"],"sourceRoot":"../../../../src","sources":["credential/offer/02-fetch-credential-offer.ts"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AAEA,IAAAI,MAAA,GAAAJ,OAAA;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMK,oBAAwC,GAAG,eAAAA,CACtDC,GAAW,EAER;EAAA,IADHC,OAAO,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAEZ,MAAM;IAAEG,QAAQ,GAAGC;EAAM,CAAC,GAAGL,OAAO;EAEpC,MAAMM,QAAQ,GAAG,MAAMF,QAAQ,CAACL,GAAG,EAAE;IACnCQ,MAAM,EAAE,KAAK;IACbC,OAAO,EAAE;MAAEC,MAAM,EAAE;IAAmB;EACxC,CAAC,CAAC,CACCC,IAAI,CAAC,IAAAC,sBAAgB,EAAC,GAAG,EAAEC,2BAAmB,CAAC,CAAC,CAChDF,IAAI,CAAEG,MAAM,IAAKA,MAAM,CAACC,IAAI,CAAC,CAAC,CAAC;EAElC,MAAMC,eAAe,GAAGC,4BAAqB,CAACC,SAAS,CAACX,QAAQ,CAAC;EACjE,IAAI,CAACS,eAAe,CAACG,OAAO,EAAE;IAC5BC,eAAM,CAACC,GAAG,CACRC,iBAAQ,CAACC,KAAK,EACb,8CAA6CvB,GAAI,MAAKgB,eAAe,CAACQ,KAAK,CAACC,OAAQ,EACvF,CAAC;IACD,MAAM,IAAIC,oCAA2B,CAClC,8CAA6C1B,GAAI,MAAKgB,eAAe,CAACQ,KAAK,CAACC,OAAQ,EACvF,CAAC;EACH;EAEA,OAAOT,eAAe,CAACW,IAAI;AAC7B,CAAC;AAACC,OAAA,CAAA7B,oBAAA,GAAAA,oBAAA"}