@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.
- package/README.md +4 -3
- package/lib/commonjs/credential/index.js +3 -1
- package/lib/commonjs/credential/index.js.map +1 -1
- package/lib/commonjs/credential/issuance/07-verify-and-parse-credential.js +82 -58
- package/lib/commonjs/credential/issuance/07-verify-and-parse-credential.js.map +1 -1
- package/lib/commonjs/credential/offer/01-start-flow.js +75 -0
- package/lib/commonjs/credential/offer/01-start-flow.js.map +1 -0
- package/lib/commonjs/credential/offer/02-fetch-credential-offer.js +45 -0
- package/lib/commonjs/credential/offer/02-fetch-credential-offer.js.map +1 -0
- package/lib/commonjs/credential/offer/README.md +174 -0
- package/lib/commonjs/credential/offer/errors.js +22 -0
- package/lib/commonjs/credential/offer/errors.js.map +1 -0
- package/lib/commonjs/credential/offer/index.js +25 -0
- package/lib/commonjs/credential/offer/index.js.map +1 -0
- package/lib/commonjs/credential/offer/types.js +51 -0
- package/lib/commonjs/credential/offer/types.js.map +1 -0
- package/lib/commonjs/credential/presentation/01-start-flow.js +1 -1
- package/lib/commonjs/credentials-catalogue/README.md +15 -0
- package/lib/commonjs/credentials-catalogue/fetch-and-parse-catalogue.js +42 -0
- package/lib/commonjs/credentials-catalogue/fetch-and-parse-catalogue.js.map +1 -0
- package/lib/commonjs/credentials-catalogue/index.js +13 -0
- package/lib/commonjs/credentials-catalogue/index.js.map +1 -0
- package/lib/commonjs/credentials-catalogue/types.js +99 -0
- package/lib/commonjs/credentials-catalogue/types.js.map +1 -0
- package/lib/commonjs/index.js +5 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/mdoc/index.js +15 -0
- package/lib/commonjs/mdoc/index.js.map +1 -1
- package/lib/commonjs/mdoc/utils.js +37 -1
- package/lib/commonjs/mdoc/utils.js.map +1 -1
- package/lib/commonjs/utils/nestedProperty.js +21 -10
- package/lib/commonjs/utils/nestedProperty.js.map +1 -1
- package/lib/commonjs/utils/zod.js +28 -0
- package/lib/commonjs/utils/zod.js.map +1 -0
- package/lib/module/credential/index.js +2 -1
- package/lib/module/credential/index.js.map +1 -1
- package/lib/module/credential/issuance/07-verify-and-parse-credential.js +83 -59
- package/lib/module/credential/issuance/07-verify-and-parse-credential.js.map +1 -1
- package/lib/module/credential/offer/01-start-flow.js +66 -0
- package/lib/module/credential/offer/01-start-flow.js.map +1 -0
- package/lib/module/credential/offer/02-fetch-credential-offer.js +38 -0
- package/lib/module/credential/offer/02-fetch-credential-offer.js.map +1 -0
- package/lib/module/credential/offer/README.md +174 -0
- package/lib/module/credential/offer/errors.js +14 -0
- package/lib/module/credential/offer/errors.js.map +1 -0
- package/lib/module/credential/offer/index.js +5 -0
- package/lib/module/credential/offer/index.js.map +1 -0
- package/lib/module/credential/offer/types.js +41 -0
- package/lib/module/credential/offer/types.js.map +1 -0
- package/lib/module/credential/presentation/01-start-flow.js +1 -1
- package/lib/module/credentials-catalogue/README.md +15 -0
- package/lib/module/credentials-catalogue/fetch-and-parse-catalogue.js +35 -0
- package/lib/module/credentials-catalogue/fetch-and-parse-catalogue.js.map +1 -0
- package/lib/module/credentials-catalogue/index.js +2 -0
- package/lib/module/credentials-catalogue/index.js.map +1 -0
- package/lib/module/credentials-catalogue/types.js +89 -0
- package/lib/module/credentials-catalogue/types.js.map +1 -0
- package/lib/module/index.js +3 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/mdoc/index.js +1 -0
- package/lib/module/mdoc/index.js.map +1 -1
- package/lib/module/mdoc/utils.js +35 -0
- package/lib/module/mdoc/utils.js.map +1 -1
- package/lib/module/utils/nestedProperty.js +21 -10
- package/lib/module/utils/nestedProperty.js.map +1 -1
- package/lib/module/utils/zod.js +20 -0
- package/lib/module/utils/zod.js.map +1 -0
- package/lib/typescript/credential/index.d.ts +2 -1
- package/lib/typescript/credential/index.d.ts.map +1 -1
- package/lib/typescript/credential/issuance/01-start-flow.d.ts +1 -1
- package/lib/typescript/credential/issuance/07-verify-and-parse-credential.d.ts.map +1 -1
- package/lib/typescript/credential/offer/01-start-flow.d.ts +172 -0
- package/lib/typescript/credential/offer/01-start-flow.d.ts.map +1 -0
- package/lib/typescript/credential/offer/02-fetch-credential-offer.d.ts +20 -0
- package/lib/typescript/credential/offer/02-fetch-credential-offer.d.ts.map +1 -0
- package/lib/typescript/credential/offer/errors.d.ts +10 -0
- package/lib/typescript/credential/offer/errors.d.ts.map +1 -0
- package/lib/typescript/credential/offer/index.d.ts +7 -0
- package/lib/typescript/credential/offer/index.d.ts.map +1 -0
- package/lib/typescript/credential/offer/types.d.ts +264 -0
- package/lib/typescript/credential/offer/types.d.ts.map +1 -0
- package/lib/typescript/credential/presentation/01-start-flow.d.ts +1 -1
- package/lib/typescript/credentials-catalogue/fetch-and-parse-catalogue.d.ts +15 -0
- package/lib/typescript/credentials-catalogue/fetch-and-parse-catalogue.d.ts.map +1 -0
- package/lib/typescript/credentials-catalogue/index.d.ts +3 -0
- package/lib/typescript/credentials-catalogue/index.d.ts.map +1 -0
- package/lib/typescript/credentials-catalogue/types.d.ts +844 -0
- package/lib/typescript/credentials-catalogue/types.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +3 -1
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/mdoc/index.d.ts +1 -0
- package/lib/typescript/mdoc/index.d.ts.map +1 -1
- package/lib/typescript/mdoc/utils.d.ts +50 -0
- package/lib/typescript/mdoc/utils.d.ts.map +1 -1
- package/lib/typescript/utils/nestedProperty.d.ts +2 -1
- package/lib/typescript/utils/nestedProperty.d.ts.map +1 -1
- package/lib/typescript/utils/zod.d.ts +15 -0
- package/lib/typescript/utils/zod.d.ts.map +1 -0
- package/package.json +21 -2
- package/src/credential/index.ts +2 -1
- package/src/credential/issuance/01-start-flow.ts +1 -1
- package/src/credential/issuance/07-verify-and-parse-credential.ts +60 -26
- package/src/credential/offer/01-start-flow.ts +89 -0
- package/src/credential/offer/02-fetch-credential-offer.ts +54 -0
- package/src/credential/offer/README.md +174 -0
- package/src/credential/offer/errors.ts +17 -0
- package/src/credential/offer/index.ts +16 -0
- package/src/credential/offer/types.ts +59 -0
- package/src/credential/presentation/01-start-flow.ts +1 -1
- package/src/credentials-catalogue/README.md +15 -0
- package/src/credentials-catalogue/fetch-and-parse-catalogue.ts +54 -0
- package/src/credentials-catalogue/index.ts +2 -0
- package/src/credentials-catalogue/types.ts +97 -0
- package/src/index.ts +4 -0
- package/src/mdoc/index.ts +1 -0
- package/src/mdoc/utils.ts +43 -0
- package/src/utils/nestedProperty.ts +35 -10
- 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,
|
|
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) =>
|
|
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
|
-
//
|
|
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
|
-
|
|
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":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAEA;;AAGA;;AAGA;;AAMA;;AAGA;;AAGA;AACA,MAAMC,SAAS,GAAIC,OAAoB,IACrCA,OAAO,CAACC,MAAM,CACZ,CAACC,KAAK,EAAAC,IAAA;EAAA,IAAE;IAAEC,MAAM;IAAEC;EAAK,CAAC,GAAAF,IAAA;EAAA,OAAM;IAAE,GAAGD,KAAK;IAAE,CAACE,MAAM,GAAGC;EAAK,CAAC;AAAA,CAAC,EAC3D,CAAC,CACH,CAAC;;AAEH;AACA,MAAMC,iBAAiB,GAAGA,CACxBC,aAA8B,EAC9BC,IAAU,EACVC,WAAoB,EACpBC,WAAwB,KACJ;EACpB,IAAI,CAACC,KAAK,CAACC,OAAO,CAACH,WAAW,CAAC,EAAE,OAAOF,aAAa;;EAErD;EACA,MAAMM,IAAI,GAAGN,aAAiD;EAC9D,MAAMO,aAAa,GAAGH,KAAK,CAACC,OAAO,CAACC,IAAI,CAACE,KAAK,CAAC,GAAGF,IAAI,CAACE,KAAK,GAAG,EAAE;EAEjE,MAAMC,WAAW,GAAGP,WAAW,CAACQ,GAAG,CAAC,CAACC,IAAI,EAAEC,GAAG,
|
|
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
|
-
|
|
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;
|
|
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 {
|
|
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
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
const
|
|
42
|
-
const
|
|
43
|
-
const
|
|
44
|
-
|
|
45
|
-
|
|
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
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
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 ===
|
|
57
|
-
})
|
|
58
|
-
if (
|
|
59
|
-
|
|
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(
|
|
67
|
-
let [, key, value] =
|
|
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,
|
|
104
|
+
const parseCredentialMDoc = function (credentialConfig, _ref6) {
|
|
81
105
|
let {
|
|
82
106
|
issuerSigned
|
|
83
|
-
} =
|
|
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(
|
|
116
|
+
const attrDefinitions = credentialConfig.claims.map(_ref7 => {
|
|
93
117
|
let {
|
|
94
118
|
path: [namespace, attribute],
|
|
95
119
|
display
|
|
96
|
-
} =
|
|
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(
|
|
103
|
-
let [namespace, values] =
|
|
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(
|
|
110
|
-
let [attrDefNamespace, attrKey] =
|
|
111
|
-
return !flatNamespaces.some(
|
|
112
|
-
let [namespace, claim] =
|
|
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(
|
|
118
|
-
let [, attrKey] =
|
|
141
|
+
const missing = attrsNotInDisclosures.map(_ref11 => {
|
|
142
|
+
let [, attrKey] = _ref11;
|
|
119
143
|
return attrKey;
|
|
120
144
|
}).join(", ");
|
|
121
|
-
const received = flatNamespaces.map(
|
|
122
|
-
let [, attrKey] =
|
|
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(
|
|
157
|
+
.map(_ref13 => {
|
|
134
158
|
var _flatNamespaces$find;
|
|
135
|
-
let [attrDefNamespace, attrKey, display] =
|
|
159
|
+
let [attrDefNamespace, attrKey, display] = _ref13;
|
|
136
160
|
return [attrDefNamespace, attrKey, {
|
|
137
161
|
display,
|
|
138
|
-
value: (_flatNamespaces$find = flatNamespaces.find(
|
|
139
|
-
let [namespace, name] =
|
|
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(
|
|
146
|
-
let [_, __, definition] =
|
|
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,
|
|
175
|
+
.reduce((acc, _ref16) => {
|
|
152
176
|
let [attrDefNamespace, attrKey, {
|
|
153
177
|
display,
|
|
154
178
|
value
|
|
155
|
-
}] =
|
|
179
|
+
}] = _ref16;
|
|
156
180
|
return {
|
|
157
181
|
...acc,
|
|
158
182
|
[getParsedCredentialClaimKey(attrDefNamespace, attrKey)]: {
|
|
159
183
|
value,
|
|
160
|
-
name: display.reduce((names,
|
|
184
|
+
name: display.reduce((names, _ref17) => {
|
|
161
185
|
let {
|
|
162
186
|
locale,
|
|
163
187
|
name
|
|
164
|
-
} =
|
|
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(
|
|
175
|
-
let [namespace, key] =
|
|
198
|
+
const undefinedValues = Object.fromEntries(Object.values(flatNamespaces).filter(_ref18 => {
|
|
199
|
+
let [namespace, key] = _ref18;
|
|
176
200
|
return !definedValues[getParsedCredentialClaimKey(namespace, key)];
|
|
177
|
-
}).map(
|
|
178
|
-
let [namespace, key, value] =
|
|
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
|
|
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,
|
|
272
|
+
const verifyAndParseCredentialSdJwt = async (issuerConf, credential, credentialConfigurationId, _ref20) => {
|
|
249
273
|
let {
|
|
250
274
|
credentialCryptoContext,
|
|
251
275
|
ignoreMissingAttributes,
|
|
252
276
|
includeUndefinedAttributes
|
|
253
|
-
} =
|
|
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,
|
|
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
|
-
} =
|
|
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"}
|