@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
@@ -1 +1 @@
1
- {"version":3,"names":["getParsedCredentialClaimKey","namespace","key","exports"],"sourceRoot":"../../../src","sources":["mdoc/utils.ts"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACO,MAAMA,2BAA2B,GAAGA,CAACC,SAAiB,EAAEC,GAAW,KACvE,GAAED,SAAU,IAAGC,GAAI,EAAC;AAACC,OAAA,CAAAH,2BAAA,GAAAA,2BAAA"}
1
+ {"version":3,"names":["_ioReactNativeIso","require","_types","_const","getParsedCredentialClaimKey","namespace","key","exports","getVerificationFromParsedCredential","parsedCredential","_parsedCredential$ver","verificationKey","MDOC_DEFAULT_NAMESPACE","verification","value","Verification","parse","undefined","getVerification","token","_namespace$find","issuerSigned","CBOR","decodeIssuerSigned","nameSpaces","find","x","elementIdentifier","elementValue"],"sourceRoot":"../../../src","sources":["mdoc/utils.ts"],"mappings":";;;;;;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAGA,IAAAE,MAAA,GAAAF,OAAA;AAEA;AACA;AACA;AACA;AACA;AACO,MAAMG,2BAA2B,GAAGA,CAACC,SAAiB,EAAEC,GAAW,KACvE,GAAED,SAAU,IAAGC,GAAI,EAAC;;AAEvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAPAC,OAAA,CAAAH,2BAAA,GAAAA,2BAAA;AAQO,MAAMI,mCAAmC,GAC9CC,gBAAmE,IAChE;EAAA,IAAAC,qBAAA;EACH,MAAMC,eAAe,GAAGP,2BAA2B,CAChD,GAAEQ,6BAAuB,KAAI,EAC9B,cACF,CAAC;EACD,MAAMC,YAAY,IAAAH,qBAAA,GAAGD,gBAAgB,CAACE,eAAe,CAAC,cAAAD,qBAAA,uBAAjCA,qBAAA,CAAmCI,KAAK;EAC7D,OAAOD,YAAY,GAAGE,mBAAY,CAACC,KAAK,CAACH,YAAY,CAAC,GAAGI,SAAS;AACpE,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAPAV,OAAA,CAAAC,mCAAA,GAAAA,mCAAA;AAQO,MAAMU,eAAe,GAAG,MAAOC,KAAa,IAAK;EAAA,IAAAC,eAAA;EACtD,MAAMC,YAAY,GAAG,MAAMC,sBAAI,CAACC,kBAAkB,CAACJ,KAAK,CAAC;EACzD,MAAMd,SAAS,GAAGgB,YAAY,CAACG,UAAU,CAAE,GAAEZ,6BAAuB,KAAI,CAAC;EACzE,MAAMC,YAAY,GAAGR,SAAS,aAATA,SAAS,gBAAAe,eAAA,GAATf,SAAS,CAAEoB,IAAI,CACjCC,CAAC,IAAKA,CAAC,CAACC,iBAAiB,KAAK,cACjC,CAAC,cAAAP,eAAA,uBAFoBA,eAAA,CAElBQ,YAAY;EAEf,OAAOf,YAAY,GAAGE,mBAAY,CAACC,KAAK,CAACH,YAAY,CAAC,GAAGI,SAAS;AACpE,CAAC;AAACV,OAAA,CAAAW,eAAA,GAAAA,eAAA"}
@@ -27,14 +27,17 @@ const buildName = display => display.reduce((names, _ref) => {
27
27
  };
28
28
  }, {});
29
29
 
30
- // Handles the case where the path key is `null`
30
+ // Handles the case where the path key is `null` (indicating an array)
31
31
  const handleNullKeyCase = (currentObject, rest, sourceValue, displayData) => {
32
32
  if (!Array.isArray(sourceValue)) return currentObject;
33
33
 
34
34
  // We assert the type here because we know this branch handles PropertyNodes
35
35
  const node = currentObject;
36
36
  const existingValue = Array.isArray(node.value) ? node.value : [];
37
- const mappedArray = sourceValue.map((item, idx) => createNestedProperty(existingValue[idx] || {}, rest, item, displayData));
37
+ const mappedArray = sourceValue.map((item, idx) =>
38
+ // When mapping over an array, recursively call with `skipMissingLeaves` set to `true`.
39
+ // This tells the function to skip optional keys inside these array objects.
40
+ createNestedProperty(existingValue[idx] || {}, rest, item, displayData, true));
38
41
  return {
39
42
  ...node,
40
43
  value: mappedArray,
@@ -43,7 +46,7 @@ const handleNullKeyCase = (currentObject, rest, sourceValue, displayData) => {
43
46
  };
44
47
 
45
48
  // Handles the case where the path key is a string
46
- const handleStringKeyCase = (currentObject, key, rest, sourceValue, displayData) => {
49
+ const handleStringKeyCase = (currentObject, key, rest, sourceValue, displayData, skipMissingLeaves) => {
47
50
  let nextSourceValue = sourceValue;
48
51
  const isLeaf = rest.length === 0;
49
52
  if ((0, _misc.isObject)(sourceValue)) {
@@ -56,7 +59,13 @@ const handleStringKeyCase = (currentObject, key, rest, sourceValue, displayData)
56
59
 
57
60
  // Skip processing when the key is not found within the claim object
58
61
  if (!(key in sourceValue)) {
59
- // Leaf node: create a node with an empty value and display name
62
+ // If the flag is set (we're inside an array), skip the missing key completely.
63
+ if (skipMissingLeaves) {
64
+ return currentObject;
65
+ }
66
+
67
+ // If the flag is NOT set, create the empty placeholder
68
+ // so that its children can be attached later.
60
69
  if (isLeaf) {
61
70
  return {
62
71
  ...currentObject,
@@ -87,7 +96,7 @@ const handleStringKeyCase = (currentObject, key, rest, sourceValue, displayData)
87
96
  const nextObject = currentObject[key] || {};
88
97
  return {
89
98
  ...currentObject,
90
- [key]: createNestedProperty(nextObject, rest, nextSourceValue, displayData)
99
+ [key]: createNestedProperty(nextObject, rest, nextSourceValue, displayData, skipMissingLeaves)
91
100
  };
92
101
  };
93
102
 
@@ -106,15 +115,17 @@ const handleNumberKeyCase = (currentObject, key, rest, sourceValue, displayData)
106
115
  * @param path - The path segments to follow.
107
116
  * @param sourceValue - The raw value to place at the end of the path.
108
117
  * @param displayData - The data for generating localized names.
118
+ * @param skipMissingLeaves - If true, skips optional keys when mapping over arrays.
109
119
  * @returns The new object or array structure.
110
120
  */
111
- const createNestedProperty = (currentObject, path, sourceValue, displayData) => {
121
+ const createNestedProperty = function (currentObject, path, sourceValue, displayData) {
122
+ let skipMissingLeaves = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
112
123
  const [key, ...rest] = path;
113
124
  switch (true) {
114
125
  case key === null:
115
126
  return handleNullKeyCase(currentObject, rest, sourceValue, displayData);
116
127
  case typeof key === "string":
117
- return handleStringKeyCase(currentObject, key, rest, sourceValue, displayData);
128
+ return handleStringKeyCase(currentObject, key, rest, sourceValue, displayData, skipMissingLeaves);
118
129
  case typeof key === "number":
119
130
  return handleNumberKeyCase(currentObject, key, rest, sourceValue, displayData);
120
131
  default:
@@ -126,11 +137,11 @@ const createNestedProperty = (currentObject, path, sourceValue, displayData) =>
126
137
  exports.createNestedProperty = createNestedProperty;
127
138
  const handleRestKey = (currentObject, key, rest, sourceValue, displayData) => {
128
139
  const currentNode = currentObject[key] ?? {};
129
- // Take the first key in the remaining path
130
140
  const restKey = rest[0];
131
141
  const nextSourceValue = sourceValue[restKey];
132
-
133
- // Merge the current node with the updated nested property for the remaining path.
142
+ if (typeof nextSourceValue === "undefined") {
143
+ return currentObject;
144
+ }
134
145
  return {
135
146
  ...currentObject,
136
147
  [key]: {
@@ -1 +1 @@
1
- {"version":3,"names":["_misc","require","buildName","display","reduce","names","_ref","locale","name","handleNullKeyCase","currentObject","rest","sourceValue","displayData","Array","isArray","node","existingValue","value","mappedArray","map","item","idx","createNestedProperty","handleStringKeyCase","key","nextSourceValue","isLeaf","length","isObject","hasRestKey","some","r","handleRestKey","nextObject","handleNumberKeyCase","newArray","nextValue","undefined","path","exports","currentNode","restKey"],"sourceRoot":"../../../src","sources":["utils/nestedProperty.ts"],"mappings":"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"}
1
+ {"version":3,"names":["_misc","require","buildName","display","reduce","names","_ref","locale","name","handleNullKeyCase","currentObject","rest","sourceValue","displayData","Array","isArray","node","existingValue","value","mappedArray","map","item","idx","createNestedProperty","handleStringKeyCase","key","skipMissingLeaves","nextSourceValue","isLeaf","length","isObject","hasRestKey","some","r","handleRestKey","nextObject","handleNumberKeyCase","newArray","nextValue","undefined","path","arguments","exports","currentNode","restKey"],"sourceRoot":"../../../src","sources":["utils/nestedProperty.ts"],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.stringToJSONSchema = exports.json = void 0;
7
+ var _zod = require("zod");
8
+ /**
9
+ * @see https://github.com/JacobWeisenburger/zod_utilz/blob/main/src/stringToJSON.ts
10
+ */
11
+
12
+ const literalSchema = _zod.z.union([_zod.z.string(), _zod.z.number(), _zod.z.boolean(), _zod.z.null()]);
13
+ const jsonSchema = _zod.z.lazy(() => _zod.z.union([literalSchema, _zod.z.array(jsonSchema), _zod.z.record(jsonSchema)]));
14
+ const json = () => jsonSchema;
15
+ exports.json = json;
16
+ const stringToJSONSchema = _zod.z.string().transform((str, ctx) => {
17
+ try {
18
+ return JSON.parse(str);
19
+ } catch (e) {
20
+ ctx.addIssue({
21
+ code: "custom",
22
+ message: "Invalid JSON"
23
+ });
24
+ return _zod.z.NEVER;
25
+ }
26
+ });
27
+ exports.stringToJSONSchema = stringToJSONSchema;
28
+ //# sourceMappingURL=zod.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_zod","require","literalSchema","z","union","string","number","boolean","null","jsonSchema","lazy","array","record","json","exports","stringToJSONSchema","transform","str","ctx","JSON","parse","e","addIssue","code","message","NEVER"],"sourceRoot":"../../../src","sources":["utils/zod.ts"],"mappings":";;;;;;AAIA,IAAAA,IAAA,GAAAC,OAAA;AAJA;AACA;AACA;;AAIA,MAAMC,aAAa,GAAGC,MAAC,CAACC,KAAK,CAAC,CAACD,MAAC,CAACE,MAAM,CAAC,CAAC,EAAEF,MAAC,CAACG,MAAM,CAAC,CAAC,EAAEH,MAAC,CAACI,OAAO,CAAC,CAAC,EAAEJ,MAAC,CAACK,IAAI,CAAC,CAAC,CAAC,CAAC;AAM9E,MAAMC,UAA2B,GAAGN,MAAC,CAACO,IAAI,CAAC,MACzCP,MAAC,CAACC,KAAK,CAAC,CAACF,aAAa,EAAEC,MAAC,CAACQ,KAAK,CAACF,UAAU,CAAC,EAAEN,MAAC,CAACS,MAAM,CAACH,UAAU,CAAC,CAAC,CACpE,CAAC;AAEM,MAAMI,IAAI,GAAGA,CAAA,KAAMJ,UAAU;AAACK,OAAA,CAAAD,IAAA,GAAAA,IAAA;AAE9B,MAAME,kBAAkB,GAAGZ,MAAC,CAChCE,MAAM,CAAC,CAAC,CACRW,SAAS,CAAC,CAACC,GAAG,EAAEC,GAAG,KAAuC;EACzD,IAAI;IACF,OAAOC,IAAI,CAACC,KAAK,CAACH,GAAG,CAAC;EACxB,CAAC,CAAC,OAAOI,CAAC,EAAE;IACVH,GAAG,CAACI,QAAQ,CAAC;MAAEC,IAAI,EAAE,QAAQ;MAAEC,OAAO,EAAE;IAAe,CAAC,CAAC;IACzD,OAAOrB,MAAC,CAACsB,KAAK;EAChB;AACF,CAAC,CAAC;AAACX,OAAA,CAAAC,kBAAA,GAAAA,kBAAA"}
@@ -2,5 +2,6 @@ import * as Issuance from "./issuance";
2
2
  import * as Presentation from "./presentation";
3
3
  import * as Status from "./status";
4
4
  import * as Trustmark from "./trustmark";
5
- export { Issuance, Presentation, Status, Trustmark };
5
+ import * as Offer from "./offer";
6
+ export { Issuance, Presentation, Status, Trustmark, Offer };
6
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Issuance","Presentation","Status","Trustmark"],"sourceRoot":"../../../src","sources":["credential/index.ts"],"mappings":"AAAA,OAAO,KAAKA,QAAQ,MAAM,YAAY;AACtC,OAAO,KAAKC,YAAY,MAAM,gBAAgB;AAC9C,OAAO,KAAKC,MAAM,MAAM,UAAU;AAClC,OAAO,KAAKC,SAAS,MAAM,aAAa;AAExC,SAASH,QAAQ,EAAEC,YAAY,EAAEC,MAAM,EAAEC,SAAS"}
1
+ {"version":3,"names":["Issuance","Presentation","Status","Trustmark","Offer"],"sourceRoot":"../../../src","sources":["credential/index.ts"],"mappings":"AAAA,OAAO,KAAKA,QAAQ,MAAM,YAAY;AACtC,OAAO,KAAKC,YAAY,MAAM,gBAAgB;AAC9C,OAAO,KAAKC,MAAM,MAAM,UAAU;AAClC,OAAO,KAAKC,SAAS,MAAM,aAAa;AACxC,OAAO,KAAKC,KAAK,MAAM,SAAS;AAEhC,SAASJ,QAAQ,EAAEC,YAAY,EAAEC,MAAM,EAAEC,SAAS,EAAEC,KAAK"}
@@ -5,7 +5,7 @@ import { isSameThumbprint } from "../../utils/jwk";
5
5
  import { verify as verifyMdoc } from "../../mdoc";
6
6
  import { MDOC_DEFAULT_NAMESPACE } from "../../mdoc/const";
7
7
  import { getParsedCredentialClaimKey } from "../../mdoc/utils";
8
- import { LogLevel, Logger } from "../../utils/logging";
8
+ import { Logger, LogLevel } from "../../utils/logging";
9
9
  import { extractElementValueAsDate } from "../../mdoc/converter";
10
10
  import { createNestedProperty } from "../../utils/nestedProperty";
11
11
 
@@ -32,39 +32,63 @@ const parseCredentialSdJwt = function (credentialConfig, _ref) {
32
32
 
33
33
  const attrDefinitions = credentialConfig.claims;
34
34
 
35
- // Validate that all attributes from the config exist in the disclosures
36
- const attrsNotInDisclosures = attrDefinitions.filter(definition => !disclosures.some(_ref2 => {
37
- let [, name] = _ref2;
38
- return name === definition.path[0];
39
- }));
40
- if (attrsNotInDisclosures.length > 0 && !ignoreMissingAttributes) {
41
- const missing = attrsNotInDisclosures.map(_ => _.path[0]).join(", ");
42
- const received = disclosures.map(_ => _[1]).join(", ");
43
- const message = `Some attributes are missing in the credential. Missing: [${missing}], received: [${received}]`;
44
- Logger.log(LogLevel.ERROR, message);
45
- throw new IoWalletError(message);
35
+ // Validate that all attributes from the config exist in either disclosures OR payload
36
+ if (!ignoreMissingAttributes) {
37
+ const disclosedKeys = new Set(disclosures.map(_ref2 => {
38
+ let [, name] = _ref2;
39
+ return name;
40
+ }));
41
+ const payloadKeys = new Set(Object.keys(sdJwt.payload ?? {}));
42
+ const definedTopLevelKeys = new Set(attrDefinitions.map(def => def.path[0]));
43
+ const missingKeys = [...definedTopLevelKeys].filter(key => !disclosedKeys.has(key) && !payloadKeys.has(key));
44
+ if (missingKeys.length > 0) {
45
+ throw new IoWalletError(`Some attributes are missing in the credential. Missing: [${missingKeys.join(", ")}]`);
46
+ }
46
47
  }
47
48
  const definedValues = {};
48
- for (const {
49
- path,
50
- display
51
- } of attrDefinitions) {
52
- var _disclosures$find;
53
- const attrKey = path[0];
54
- const disclosureValue = (_disclosures$find = disclosures.find(_ref3 => {
49
+
50
+ // Group all schema definitions by their top-level key
51
+ const groupedDefinitions = attrDefinitions.reduce((acc, def) => {
52
+ const key = def.path[0];
53
+ const group = acc[key];
54
+ if (group) {
55
+ group.push(def);
56
+ } else {
57
+ acc[key] = [def];
58
+ }
59
+ return acc;
60
+ }, {});
61
+
62
+ // Loop through each group
63
+ for (const topLevelKey in groupedDefinitions) {
64
+ const definitionsForThisKey = groupedDefinitions[topLevelKey];
65
+ if (!definitionsForThisKey) {
66
+ continue;
67
+ }
68
+ const disclosureForThisKey = disclosures.find(_ref3 => {
55
69
  let [, name] = _ref3;
56
- return name === attrKey;
57
- })) === null || _disclosures$find === void 0 ? void 0 : _disclosures$find[2];
58
- if (disclosureValue !== undefined) {
59
- const enriched = createNestedProperty(definedValues, path, disclosureValue, display);
60
- Object.assign(definedValues, enriched);
70
+ return name === topLevelKey;
71
+ });
72
+ if (!disclosureForThisKey) {
73
+ continue;
61
74
  }
75
+ const disclosureValue = disclosureForThisKey[2];
76
+ const tempObjectForGroup = definitionsForThisKey.reduce((acc, _ref4) => {
77
+ let {
78
+ path,
79
+ display
80
+ } = _ref4;
81
+ return createNestedProperty(acc, path, disclosureValue, display);
82
+ }, {});
83
+
84
+ // Merge the fully constructed object into the final result
85
+ Object.assign(definedValues, tempObjectForGroup);
62
86
  }
63
87
  if (includeUndefinedAttributes) {
64
88
  // attributes that are in the disclosure set
65
89
  // but are not defined in the issuer configuration
66
- const undefinedValues = Object.fromEntries(disclosures.filter(_ => !Object.keys(definedValues).includes(_[1])).map(_ref4 => {
67
- let [, key, value] = _ref4;
90
+ const undefinedValues = Object.fromEntries(disclosures.filter(_ => !Object.keys(definedValues).includes(_[1])).map(_ref5 => {
91
+ let [, key, value] = _ref5;
68
92
  return [key, {
69
93
  value,
70
94
  name: key
@@ -77,10 +101,10 @@ const parseCredentialSdJwt = function (credentialConfig, _ref) {
77
101
  }
78
102
  return definedValues;
79
103
  };
80
- const parseCredentialMDoc = function (credentialConfig, _ref5) {
104
+ const parseCredentialMDoc = function (credentialConfig, _ref6) {
81
105
  let {
82
106
  issuerSigned
83
- } = _ref5;
107
+ } = _ref6;
84
108
  let ignoreMissingAttributes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
85
109
  let includeUndefinedAttributes = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
86
110
  if (!credentialConfig) {
@@ -89,37 +113,37 @@ const parseCredentialMDoc = function (credentialConfig, _ref5) {
89
113
  if (!credentialConfig.claims) {
90
114
  throw new IoWalletError("Missing claims in the credential subject");
91
115
  }
92
- const attrDefinitions = credentialConfig.claims.map(_ref6 => {
116
+ const attrDefinitions = credentialConfig.claims.map(_ref7 => {
93
117
  let {
94
118
  path: [namespace, attribute],
95
119
  display
96
- } = _ref6;
120
+ } = _ref7;
97
121
  return [namespace, attribute, display];
98
122
  });
99
123
  if (!issuerSigned.nameSpaces) {
100
124
  throw new IoWalletError("Missing claims in the credential");
101
125
  }
102
- const flatNamespaces = Object.entries(issuerSigned.nameSpaces).flatMap(_ref7 => {
103
- let [namespace, values] = _ref7;
126
+ const flatNamespaces = Object.entries(issuerSigned.nameSpaces).flatMap(_ref8 => {
127
+ let [namespace, values] = _ref8;
104
128
  return values.map(v => [namespace, v.elementIdentifier, v.elementValue]);
105
129
  });
106
130
 
107
131
  // Check that all mandatory attributes defined in the issuer configuration are present in the disclosure set
108
132
  // and filter the non present ones
109
- const attrsNotInDisclosures = attrDefinitions.filter(_ref8 => {
110
- let [attrDefNamespace, attrKey] = _ref8;
111
- return !flatNamespaces.some(_ref9 => {
112
- let [namespace, claim] = _ref9;
133
+ const attrsNotInDisclosures = attrDefinitions.filter(_ref9 => {
134
+ let [attrDefNamespace, attrKey] = _ref9;
135
+ return !flatNamespaces.some(_ref10 => {
136
+ let [namespace, claim] = _ref10;
113
137
  return attrDefNamespace === namespace && attrKey === claim;
114
138
  });
115
139
  });
116
140
  if (attrsNotInDisclosures.length > 0) {
117
- const missing = attrsNotInDisclosures.map(_ref10 => {
118
- let [, attrKey] = _ref10;
141
+ const missing = attrsNotInDisclosures.map(_ref11 => {
142
+ let [, attrKey] = _ref11;
119
143
  return attrKey;
120
144
  }).join(", ");
121
- const received = flatNamespaces.map(_ref11 => {
122
- let [, attrKey] = _ref11;
145
+ const received = flatNamespaces.map(_ref12 => {
146
+ let [, attrKey] = _ref12;
123
147
  return attrKey;
124
148
  }).join(", ");
125
149
  if (!ignoreMissingAttributes) {
@@ -130,38 +154,38 @@ const parseCredentialMDoc = function (credentialConfig, _ref5) {
130
154
  // Attributes defined in the issuer configuration and present in the disclosure set
131
155
  const definedValues = attrDefinitions
132
156
  // Retrieve the value from the corresponding disclosure
133
- .map(_ref12 => {
157
+ .map(_ref13 => {
134
158
  var _flatNamespaces$find;
135
- let [attrDefNamespace, attrKey, display] = _ref12;
159
+ let [attrDefNamespace, attrKey, display] = _ref13;
136
160
  return [attrDefNamespace, attrKey, {
137
161
  display,
138
- value: (_flatNamespaces$find = flatNamespaces.find(_ref13 => {
139
- let [namespace, name] = _ref13;
162
+ value: (_flatNamespaces$find = flatNamespaces.find(_ref14 => {
163
+ let [namespace, name] = _ref14;
140
164
  return attrDefNamespace === namespace && name === attrKey;
141
165
  })) === null || _flatNamespaces$find === void 0 ? void 0 : _flatNamespaces$find[2]
142
166
  }];
143
167
  })
144
168
  //filter the not found elements
145
- .filter(_ref14 => {
146
- let [_, __, definition] = _ref14;
169
+ .filter(_ref15 => {
170
+ let [_, __, definition] = _ref15;
147
171
  return definition.value !== undefined;
148
172
  })
149
173
  // Add a human-readable attribute name, with i18n, in the form { locale: name }
150
174
  // Example: { "it-IT": "Nome", "en-EN": "Name", "es-ES": "Nombre" }
151
- .reduce((acc, _ref15) => {
175
+ .reduce((acc, _ref16) => {
152
176
  let [attrDefNamespace, attrKey, {
153
177
  display,
154
178
  value
155
- }] = _ref15;
179
+ }] = _ref16;
156
180
  return {
157
181
  ...acc,
158
182
  [getParsedCredentialClaimKey(attrDefNamespace, attrKey)]: {
159
183
  value,
160
- name: display.reduce((names, _ref16) => {
184
+ name: display.reduce((names, _ref17) => {
161
185
  let {
162
186
  locale,
163
187
  name
164
- } = _ref16;
188
+ } = _ref17;
165
189
  return {
166
190
  ...names,
167
191
  [locale]: name
@@ -171,11 +195,11 @@ const parseCredentialMDoc = function (credentialConfig, _ref5) {
171
195
  };
172
196
  }, {});
173
197
  if (includeUndefinedAttributes) {
174
- const undefinedValues = Object.fromEntries(Object.values(flatNamespaces).filter(_ref17 => {
175
- let [namespace, key] = _ref17;
198
+ const undefinedValues = Object.fromEntries(Object.values(flatNamespaces).filter(_ref18 => {
199
+ let [namespace, key] = _ref18;
176
200
  return !definedValues[getParsedCredentialClaimKey(namespace, key)];
177
- }).map(_ref18 => {
178
- let [namespace, key, value] = _ref18;
201
+ }).map(_ref19 => {
202
+ let [namespace, key, value] = _ref19;
179
203
  return [getParsedCredentialClaimKey(namespace, key), {
180
204
  value,
181
205
  name: key
@@ -223,7 +247,7 @@ async function verifyCredentialSdJwt(rawCredential, issuerKeys, holderBindingCon
223
247
  * and it's bound to the given key
224
248
  *
225
249
  * @param rawCredential The received credential
226
- * @param issuerKeys The set of public keys of the issuer,
250
+ * @param x509CertRoot The root certificate of the issuer,
227
251
  * which will be used to verify the signature
228
252
  * @param holderBindingContext The access to the holder's key
229
253
  *
@@ -245,12 +269,12 @@ async function verifyCredentialMDoc(rawCredential, x509CertRoot, holderBindingCo
245
269
  }
246
270
  return decodedCredential;
247
271
  }
248
- const verifyAndParseCredentialSdJwt = async (issuerConf, credential, credentialConfigurationId, _ref19) => {
272
+ const verifyAndParseCredentialSdJwt = async (issuerConf, credential, credentialConfigurationId, _ref20) => {
249
273
  let {
250
274
  credentialCryptoContext,
251
275
  ignoreMissingAttributes,
252
276
  includeUndefinedAttributes
253
- } = _ref19;
277
+ } = _ref20;
254
278
  const decoded = await verifyCredentialSdJwt(credential, issuerConf.openid_credential_issuer.jwks.keys, credentialCryptoContext);
255
279
  Logger.log(LogLevel.DEBUG, `Decoded credential: ${JSON.stringify(decoded)}`);
256
280
  const credentialConfig = issuerConf.openid_credential_issuer.credential_configurations_supported[credentialConfigurationId];
@@ -267,12 +291,12 @@ const verifyAndParseCredentialSdJwt = async (issuerConf, credential, credentialC
267
291
  issuedAt: typeof maybeIssuedAt === "number" ? new Date(maybeIssuedAt * 1000) : undefined
268
292
  };
269
293
  };
270
- const verifyAndParseCredentialMDoc = async (issuerConf, credential, credentialConfigurationId, _ref20, x509CertRoot) => {
294
+ const verifyAndParseCredentialMDoc = async (issuerConf, credential, credentialConfigurationId, _ref21, x509CertRoot) => {
271
295
  var _parsedCredential$get, _parsedCredential$get2;
272
296
  let {
273
297
  credentialCryptoContext,
274
298
  ignoreMissingAttributes
275
- } = _ref20;
299
+ } = _ref21;
276
300
  if (!x509CertRoot) {
277
301
  throw new IoWalletError("Missing x509CertRoot");
278
302
  }
@@ -1 +1 @@
1
- {"version":3,"names":["IoWalletError","SdJwt4VC","verify","verifySdJwt","getValueFromDisclosures","isSameThumbprint","verifyMdoc","MDOC_DEFAULT_NAMESPACE","getParsedCredentialClaimKey","LogLevel","Logger","extractElementValueAsDate","createNestedProperty","parseCredentialSdJwt","credentialConfig","_ref","sdJwt","disclosures","ignoreMissingAttributes","arguments","length","undefined","includeUndefinedAttributes","format","header","typ","message","log","ERROR","claims","attrDefinitions","attrsNotInDisclosures","filter","definition","some","_ref2","name","path","missing","map","_","join","received","definedValues","display","_disclosures$find","attrKey","disclosureValue","find","_ref3","enriched","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","names","_ref16","locale","_ref17","_ref18","verifyCredentialSdJwt","rawCredential","issuerKeys","holderBindingContext","decodedCredential","holderBindingKey","Promise","all","getPublicKey","cnf","payload","jwk","kid","verifyCredentialMDoc","x509CertRoot","issuerAuth","deviceKeyInfo","deviceKey","verifyAndParseCredentialSdJwt","issuerConf","credential","credentialConfigurationId","_ref19","credentialCryptoContext","decoded","openid_credential_issuer","jwks","DEBUG","JSON","stringify","credential_configurations_supported","parsedCredential","maybeIssuedAt","expiration","Date","exp","issuedAt","verifyAndParseCredentialMDoc","_ref20","_parsedCredential$get","_parsedCredential$get2","expirationDate","setDate","getDate","verifyAndParseCredential","context","_issuerConf$openid_cr"],"sourceRoot":"../../../../src","sources":["credential/issuance/07-verify-and-parse-credential.ts"],"mappings":"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"}
1
+ {"version":3,"names":["IoWalletError","SdJwt4VC","verify","verifySdJwt","getValueFromDisclosures","isSameThumbprint","verifyMdoc","MDOC_DEFAULT_NAMESPACE","getParsedCredentialClaimKey","Logger","LogLevel","extractElementValueAsDate","createNestedProperty","parseCredentialSdJwt","credentialConfig","_ref","sdJwt","disclosures","ignoreMissingAttributes","arguments","length","undefined","includeUndefinedAttributes","format","header","typ","message","log","ERROR","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","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","names","_ref17","locale","_ref18","_ref19","verifyCredentialSdJwt","rawCredential","issuerKeys","holderBindingContext","decodedCredential","holderBindingKey","Promise","all","getPublicKey","cnf","jwk","kid","verifyCredentialMDoc","x509CertRoot","issuerAuth","deviceKeyInfo","deviceKey","verifyAndParseCredentialSdJwt","issuerConf","credential","credentialConfigurationId","_ref20","credentialCryptoContext","decoded","openid_credential_issuer","jwks","DEBUG","JSON","stringify","credential_configurations_supported","parsedCredential","maybeIssuedAt","expiration","Date","exp","issuedAt","verifyAndParseCredentialMDoc","_ref21","_parsedCredential$get","_parsedCredential$get2","expirationDate","setDate","getDate","verifyAndParseCredential","context","_issuerConf$openid_cr"],"sourceRoot":"../../../../src","sources":["credential/issuance/07-verify-and-parse-credential.ts"],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ import * as z from "zod";
2
+ import { Logger, LogLevel } from "../../utils/logging";
3
+ import { stringToJSONSchema } from "../../utils/zod";
4
+ import { InvalidQRCodeError } from "./errors";
5
+ import { CredentialOfferSchema } from "./types";
6
+ const CREDENTIAL_OFFER_SCHEMES = ["openid-credential-offer://", "haip://"];
7
+ const CREDENTIAL_OFFER_PARAM = "credential_offer";
8
+ const CREDENTIAL_OFFER_URI_PARAM = "credential_offer_uri";
9
+ const CredentialOfferParams = z.union([z.object({
10
+ credential_offer: stringToJSONSchema.pipe(CredentialOfferSchema),
11
+ credential_offer_uri: z.undefined()
12
+ }), z.object({
13
+ credential_offer: z.undefined(),
14
+ credential_offer_uri: z.string().url()
15
+ })]);
16
+
17
+ /**
18
+ * The beginning of the credential offer flow.
19
+ * To be implemented according to the user touchpoint
20
+ *
21
+ * @param params Credential offer encoded url
22
+ * @returns Object containing the credential offer by reference or by value
23
+ */
24
+
25
+ /**
26
+ * Start a credential offer flow by validating and parse an encoded url
27
+ * extracted from a QR code or a deep link.
28
+ *
29
+ * @param params The encoded url to be validated and parsed
30
+ * @returns Object containing the credential offer by reference or by value
31
+ * @throws If the provided encoded url is not valid
32
+ */
33
+ export const startFlowFromQR = encodedUrl => {
34
+ const hasValidScheme = CREDENTIAL_OFFER_SCHEMES.some(prefix => encodedUrl.startsWith(prefix));
35
+ if (!hasValidScheme) {
36
+ throw new InvalidQRCodeError("Url must have one of the supported schemes");
37
+ }
38
+ const url = new URL(encodedUrl);
39
+ const offerParam = url.searchParams.get(CREDENTIAL_OFFER_PARAM);
40
+ const offerUriParam = url.searchParams.get(CREDENTIAL_OFFER_URI_PARAM);
41
+ if (offerParam) {
42
+ const decoded = decodeURIComponent(offerParam);
43
+ const result = CredentialOfferParams.safeParse({
44
+ credential_offer: decoded
45
+ });
46
+ if (result.success) {
47
+ return result.data;
48
+ }
49
+ Logger.log(LogLevel.ERROR, `Invalid credential offer object found in QR Code: ${result.error.message}`);
50
+ throw new InvalidQRCodeError(result.error.message);
51
+ }
52
+ if (offerUriParam) {
53
+ const decoded = decodeURIComponent(offerUriParam);
54
+ const result = CredentialOfferParams.safeParse({
55
+ credential_offer_uri: decoded
56
+ });
57
+ if (result.success) {
58
+ return result.data;
59
+ }
60
+ Logger.log(LogLevel.ERROR, `Invalid credential offer URI found in QR Code: ${result.error.message}`);
61
+ throw new InvalidQRCodeError(result.error.message);
62
+ }
63
+ Logger.log(LogLevel.ERROR, `Invalid credential offer QR Code:`);
64
+ throw new InvalidQRCodeError("QR Code does not contain valid params");
65
+ };
66
+ //# sourceMappingURL=01-start-flow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["z","Logger","LogLevel","stringToJSONSchema","InvalidQRCodeError","CredentialOfferSchema","CREDENTIAL_OFFER_SCHEMES","CREDENTIAL_OFFER_PARAM","CREDENTIAL_OFFER_URI_PARAM","CredentialOfferParams","union","object","credential_offer","pipe","credential_offer_uri","undefined","string","url","startFlowFromQR","encodedUrl","hasValidScheme","some","prefix","startsWith","URL","offerParam","searchParams","get","offerUriParam","decoded","decodeURIComponent","result","safeParse","success","data","log","ERROR","error","message"],"sourceRoot":"../../../../src","sources":["credential/offer/01-start-flow.ts"],"mappings":"AAAA,OAAO,KAAKA,CAAC,MAAM,KAAK;AACxB,SAASC,MAAM,EAAEC,QAAQ,QAAQ,qBAAqB;AACtD,SAASC,kBAAkB,QAAQ,iBAAiB;AACpD,SAASC,kBAAkB,QAAQ,UAAU;AAC7C,SAASC,qBAAqB,QAAQ,SAAS;AAE/C,MAAMC,wBAAwB,GAAG,CAAC,4BAA4B,EAAE,SAAS,CAAC;AAC1E,MAAMC,sBAAsB,GAAG,kBAAkB;AACjD,MAAMC,0BAA0B,GAAG,sBAAsB;AAEzD,MAAMC,qBAAqB,GAAGT,CAAC,CAACU,KAAK,CAAC,CACpCV,CAAC,CAACW,MAAM,CAAC;EACPC,gBAAgB,EAAET,kBAAkB,CAACU,IAAI,CAACR,qBAAqB,CAAC;EAChES,oBAAoB,EAAEd,CAAC,CAACe,SAAS,CAAC;AACpC,CAAC,CAAC,EACFf,CAAC,CAACW,MAAM,CAAC;EACPC,gBAAgB,EAAEZ,CAAC,CAACe,SAAS,CAAC,CAAC;EAC/BD,oBAAoB,EAAEd,CAAC,CAACgB,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;AACA,OAAO,MAAMC,eAA0B,GAAIC,UAAU,IAAK;EACxD,MAAMC,cAAc,GAAGd,wBAAwB,CAACe,IAAI,CAAEC,MAAM,IAC1DH,UAAU,CAACI,UAAU,CAACD,MAAM,CAC9B,CAAC;EAED,IAAI,CAACF,cAAc,EAAE;IACnB,MAAM,IAAIhB,kBAAkB,CAAC,4CAA4C,CAAC;EAC5E;EAEA,MAAMa,GAAG,GAAG,IAAIO,GAAG,CAACL,UAAU,CAAC;EAC/B,MAAMM,UAAU,GAAGR,GAAG,CAACS,YAAY,CAACC,GAAG,CAACpB,sBAAsB,CAAC;EAC/D,MAAMqB,aAAa,GAAGX,GAAG,CAACS,YAAY,CAACC,GAAG,CAACnB,0BAA0B,CAAC;EAEtE,IAAIiB,UAAU,EAAE;IACd,MAAMI,OAAO,GAAGC,kBAAkB,CAACL,UAAU,CAAC;IAC9C,MAAMM,MAAM,GAAGtB,qBAAqB,CAACuB,SAAS,CAAC;MAC7CpB,gBAAgB,EAAEiB;IACpB,CAAC,CAAC;IAEF,IAAIE,MAAM,CAACE,OAAO,EAAE;MAClB,OAAOF,MAAM,CAACG,IAAI;IACpB;IAEAjC,MAAM,CAACkC,GAAG,CACRjC,QAAQ,CAACkC,KAAK,EACb,qDAAoDL,MAAM,CAACM,KAAK,CAACC,OAAQ,EAC5E,CAAC;IACD,MAAM,IAAIlC,kBAAkB,CAAC2B,MAAM,CAACM,KAAK,CAACC,OAAO,CAAC;EACpD;EAEA,IAAIV,aAAa,EAAE;IACjB,MAAMC,OAAO,GAAGC,kBAAkB,CAACF,aAAa,CAAC;IACjD,MAAMG,MAAM,GAAGtB,qBAAqB,CAACuB,SAAS,CAAC;MAC7ClB,oBAAoB,EAAEe;IACxB,CAAC,CAAC;IAEF,IAAIE,MAAM,CAACE,OAAO,EAAE;MAClB,OAAOF,MAAM,CAACG,IAAI;IACpB;IAEAjC,MAAM,CAACkC,GAAG,CACRjC,QAAQ,CAACkC,KAAK,EACb,kDAAiDL,MAAM,CAACM,KAAK,CAACC,OAAQ,EACzE,CAAC;IACD,MAAM,IAAIlC,kBAAkB,CAAC2B,MAAM,CAACM,KAAK,CAACC,OAAO,CAAC;EACpD;EAEArC,MAAM,CAACkC,GAAG,CAACjC,QAAQ,CAACkC,KAAK,EAAG,mCAAkC,CAAC;EAC/D,MAAM,IAAIhC,kBAAkB,CAAC,uCAAuC,CAAC;AACvE,CAAC"}
@@ -0,0 +1,38 @@
1
+ import { IssuerResponseError } from "../../utils/errors";
2
+ import { Logger, LogLevel } from "../../utils/logging";
3
+ import { hasStatusOrThrow } from "../../utils/misc";
4
+ import { InvalidCredentialOfferError } from "./errors";
5
+ import { CredentialOfferSchema } from "./types";
6
+ /**
7
+ * Fetches and validates a credential offer from a given URI.
8
+ *
9
+ * This function performs an HTTP GET request to the specified `credentialOfferUri`,
10
+ * expecting a JSON response that matches the `CredentialOfferSchema`. If the response
11
+ * is invalid or does not conform to the schema, an error is logged and an
12
+ * `InvalidCredentialOfferError` is thrown.
13
+ *
14
+ * @param credentialOfferUri - The URI from which to fetch the credential offer.
15
+ * @param context - Optional context object that may provide a custom `appFetch` implementation.
16
+ * @returns The validated credential offer data.
17
+ * @throws {IssuerResponseError} If the HTTP response status is not 200.
18
+ * @throws {InvalidCredentialOfferError} If the response does not match the expected schema.
19
+ */
20
+ export const fetchCredentialOffer = async function (uri) {
21
+ let context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
22
+ const {
23
+ appFetch = fetch
24
+ } = context;
25
+ const response = await appFetch(uri, {
26
+ method: "GET",
27
+ headers: {
28
+ Accept: "application/json"
29
+ }
30
+ }).then(hasStatusOrThrow(200, IssuerResponseError)).then(reqUri => reqUri.json());
31
+ const credentialOffer = CredentialOfferSchema.safeParse(response);
32
+ if (!credentialOffer.success) {
33
+ Logger.log(LogLevel.ERROR, `Invalid credential offer fetched from URI: ${uri} - ${credentialOffer.error.message}`);
34
+ throw new InvalidCredentialOfferError(`Invalid credential offer fetched from URI: ${uri} - ${credentialOffer.error.message}`);
35
+ }
36
+ return credentialOffer.data;
37
+ };
38
+ //# sourceMappingURL=02-fetch-credential-offer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["IssuerResponseError","Logger","LogLevel","hasStatusOrThrow","InvalidCredentialOfferError","CredentialOfferSchema","fetchCredentialOffer","uri","context","arguments","length","undefined","appFetch","fetch","response","method","headers","Accept","then","reqUri","json","credentialOffer","safeParse","success","log","ERROR","error","message","data"],"sourceRoot":"../../../../src","sources":["credential/offer/02-fetch-credential-offer.ts"],"mappings":"AAAA,SAASA,mBAAmB,QAAQ,oBAAoB;AACxD,SAASC,MAAM,EAAEC,QAAQ,QAAQ,qBAAqB;AACtD,SAASC,gBAAgB,QAAQ,kBAAkB;AACnD,SAASC,2BAA2B,QAAQ,UAAU;AAEtD,SAASC,qBAAqB,QAAQ,SAAS;AAS/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,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,CAACf,gBAAgB,CAAC,GAAG,EAAEH,mBAAmB,CAAC,CAAC,CAChDkB,IAAI,CAAEC,MAAM,IAAKA,MAAM,CAACC,IAAI,CAAC,CAAC,CAAC;EAElC,MAAMC,eAAe,GAAGhB,qBAAqB,CAACiB,SAAS,CAACR,QAAQ,CAAC;EACjE,IAAI,CAACO,eAAe,CAACE,OAAO,EAAE;IAC5BtB,MAAM,CAACuB,GAAG,CACRtB,QAAQ,CAACuB,KAAK,EACb,8CAA6ClB,GAAI,MAAKc,eAAe,CAACK,KAAK,CAACC,OAAQ,EACvF,CAAC;IACD,MAAM,IAAIvB,2BAA2B,CAClC,8CAA6CG,GAAI,MAAKc,eAAe,CAACK,KAAK,CAACC,OAAQ,EACvF,CAAC;EACH;EAEA,OAAON,eAAe,CAACO,IAAI;AAC7B,CAAC"}