@sd-jwt/core 0.2.0 → 0.2.1
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/build/base64url.d.ts +28 -0
- package/build/base64url.js +40 -0
- package/build/base64url.js.map +1 -0
- package/build/hasherAlgorithm.d.ts +70 -0
- package/build/hasherAlgorithm.js +75 -0
- package/build/hasherAlgorithm.js.map +1 -0
- package/build/index.d.ts +3 -3
- package/build/index.js +2 -3
- package/build/index.js.map +1 -1
- package/build/jwt/compact.d.ts +6 -0
- package/build/jwt/compact.js +27 -0
- package/build/jwt/compact.js.map +1 -0
- package/build/jwt/jwt.d.ts +4 -0
- package/build/jwt/jwt.js +1 -0
- package/build/jwt/jwt.js.map +1 -1
- package/build/keyBinding/keyBinding.d.ts +10 -2
- package/build/keyBinding/keyBinding.js +21 -2
- package/build/keyBinding/keyBinding.js.map +1 -1
- package/build/sdJwt/compact.d.ts +8 -0
- package/build/sdJwt/compact.js +39 -0
- package/build/sdJwt/compact.js.map +1 -0
- package/build/sdJwt/decoys.d.ts +2 -1
- package/build/sdJwt/decoys.js.map +1 -1
- package/build/sdJwt/disclosureFrame.d.ts +2 -1
- package/build/sdJwt/disclosureFrame.js.map +1 -1
- package/build/sdJwt/disclosureMapping.d.ts +43 -0
- package/build/sdJwt/disclosureMapping.js +278 -0
- package/build/sdJwt/disclosureMapping.js.map +1 -0
- package/build/sdJwt/disclosures.d.ts +2 -2
- package/build/sdJwt/disclosures.js.map +1 -1
- package/build/sdJwt/presentationFrame.d.ts +3 -0
- package/build/sdJwt/presentationFrame.js +64 -0
- package/build/sdJwt/presentationFrame.js.map +1 -0
- package/build/sdJwt/sdJwt.d.ts +5 -4
- package/build/sdJwt/sdJwt.js +46 -8
- package/build/sdJwt/sdJwt.js.map +1 -1
- package/build/sdJwt/swapClaim.d.ts +2 -0
- package/build/sdJwt/swapClaim.js +79 -0
- package/build/sdJwt/swapClaim.js.map +1 -0
- package/build/sdJwtVc/sdJwtVc.d.ts +1 -1
- package/build/sdJwtVc/sdJwtVc.js +4 -3
- package/build/sdJwtVc/sdJwtVc.js.map +1 -1
- package/build/types/frame.d.ts +5 -0
- package/build/types/frame.js +3 -0
- package/build/types/frame.js.map +1 -0
- package/build/types/hasher.d.ts +8 -4
- package/build/types/index.d.ts +0 -1
- package/build/types/index.js +0 -1
- package/build/types/index.js.map +1 -1
- package/build/types/present.d.ts +2 -0
- package/build/types/present.js +3 -0
- package/build/types/present.js.map +1 -0
- package/build/utils/index.d.ts +2 -0
- package/build/utils/index.js +19 -0
- package/build/utils/index.js.map +1 -0
- package/build/utils/traverse.d.ts +8 -0
- package/build/utils/traverse.js +29 -0
- package/build/utils/traverse.js.map +1 -0
- package/build/utils/utils.d.ts +8 -0
- package/build/utils/utils.js +118 -0
- package/build/utils/utils.js.map +1 -0
- package/package.json +6 -6
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.swapClaims = void 0;
|
|
4
|
+
const shouldInsertDisclosure = (key, value, disclosures) => {
|
|
5
|
+
if (key !== '_sd')
|
|
6
|
+
return [];
|
|
7
|
+
if (!Array.isArray(value))
|
|
8
|
+
return [];
|
|
9
|
+
const filteredDisclosures = [];
|
|
10
|
+
for (const d of disclosures) {
|
|
11
|
+
if (value.includes(d.digest)) {
|
|
12
|
+
filteredDisclosures.push(d);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
return filteredDisclosures;
|
|
16
|
+
};
|
|
17
|
+
const shouldIncludeCleartextClaim = (key, value) => key !== '_sd' && key !== '_sd_alg' && typeof value !== 'object';
|
|
18
|
+
const swapClaims = (payload, disclosures, newPayload = {}) => {
|
|
19
|
+
const entries = Object.entries(payload);
|
|
20
|
+
// Loop over de payload
|
|
21
|
+
for (let i = 0; i < entries.length; i++) {
|
|
22
|
+
const [key, value] = entries[i];
|
|
23
|
+
// See whether we have an `_sd` key with an array of disclosures.
|
|
24
|
+
const foundDisclosures = shouldInsertDisclosure(key, value, disclosures);
|
|
25
|
+
// Add the disclosed items to the pretty payload
|
|
26
|
+
foundDisclosures.forEach((d) => {
|
|
27
|
+
const [, disclosureKey, disclosureValue] = d.decoded;
|
|
28
|
+
newPayload[disclosureKey] = disclosureValue;
|
|
29
|
+
});
|
|
30
|
+
// Skip the rest as `_sd` is a special case
|
|
31
|
+
if (key === '_sd') {
|
|
32
|
+
continue;
|
|
33
|
+
}
|
|
34
|
+
// Include all the primitive claims into the new payload
|
|
35
|
+
if (shouldIncludeCleartextClaim(key, value)) {
|
|
36
|
+
newPayload[key] = value;
|
|
37
|
+
continue;
|
|
38
|
+
}
|
|
39
|
+
if (typeof value === 'object' && Array.isArray(value)) {
|
|
40
|
+
newPayload[key] = swapClaimsInsideArray(value, disclosures);
|
|
41
|
+
continue;
|
|
42
|
+
}
|
|
43
|
+
if (typeof value === 'object' &&
|
|
44
|
+
value !== null &&
|
|
45
|
+
!Array.isArray(value)) {
|
|
46
|
+
newPayload[key] = (0, exports.swapClaims)(value, disclosures);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
return newPayload;
|
|
50
|
+
};
|
|
51
|
+
exports.swapClaims = swapClaims;
|
|
52
|
+
const swapClaimsInsideArray = (array, disclosures) => {
|
|
53
|
+
const processedArray = [];
|
|
54
|
+
for (const el of array) {
|
|
55
|
+
if (typeof el === 'object' && el !== null && '...' in el) {
|
|
56
|
+
const hash = el['...'];
|
|
57
|
+
let disclosureFound = false;
|
|
58
|
+
let disclosureValue;
|
|
59
|
+
for (const d of disclosures) {
|
|
60
|
+
if (d.digest === hash && d.decoded[2] === undefined) {
|
|
61
|
+
disclosureValue = d.decoded[1];
|
|
62
|
+
disclosureFound = true;
|
|
63
|
+
break;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
if (disclosureFound) {
|
|
67
|
+
processedArray.push(disclosureValue);
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
processedArray.push(el);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
processedArray.push(el);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return processedArray;
|
|
78
|
+
};
|
|
79
|
+
//# sourceMappingURL=swapClaim.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"swapClaim.js","sourceRoot":"","sources":["../../src/sdJwt/swapClaim.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,7 +29,7 @@ export declare class SdJwtVc<Header extends Record<string, unknown> = Record<str
|
|
|
29
29
|
* - Whether the required sd-jwt-vc properties are included
|
|
30
30
|
*
|
|
31
31
|
*/
|
|
32
|
-
verify(verifier: Verifier<Header>, requiredClaimKeys?: Array<keyof Payload | string>, expectedCnfClaim?: Record<string, unknown>): Promise<SdJwtVcVerificationResult>;
|
|
32
|
+
verify(verifier: Verifier<Header>, requiredClaimKeys?: Array<keyof Payload | string>, expectedCnfClaim?: Record<string, unknown>, kbJwtPublicKeyJwk?: Record<string, unknown>, issuerPublicKeyJwk?: Record<string, unknown>): Promise<SdJwtVcVerificationResult>;
|
|
33
33
|
/**
|
|
34
34
|
*
|
|
35
35
|
* Create a compact format of the sd-jwt-vc.
|
package/build/sdJwtVc/sdJwtVc.js
CHANGED
|
@@ -76,6 +76,7 @@ class SdJwtVc extends sdJwt_2.SdJwt {
|
|
|
76
76
|
disclosures,
|
|
77
77
|
keyBinding
|
|
78
78
|
});
|
|
79
|
+
sdJwtVc.compact = compact;
|
|
79
80
|
return sdJwtVc;
|
|
80
81
|
}
|
|
81
82
|
/**
|
|
@@ -91,14 +92,14 @@ class SdJwtVc extends sdJwt_2.SdJwt {
|
|
|
91
92
|
* - Whether the required sd-jwt-vc properties are included
|
|
92
93
|
*
|
|
93
94
|
*/
|
|
94
|
-
verify(verifier, requiredClaimKeys, expectedCnfClaim) {
|
|
95
|
+
verify(verifier, requiredClaimKeys, expectedCnfClaim, kbJwtPublicKeyJwk, issuerPublicKeyJwk) {
|
|
95
96
|
const _super = Object.create(null, {
|
|
96
97
|
verify: { get: () => super.verify }
|
|
97
98
|
});
|
|
98
99
|
var _a, _b;
|
|
99
100
|
return __awaiter(this, void 0, void 0, function* () {
|
|
100
|
-
const
|
|
101
|
-
const sdJwtVerificationResult = (yield _super.verify.call(this, verifier, requiredClaimKeys,
|
|
101
|
+
const kbJwtPublicKeyJwkToUse = kbJwtPublicKeyJwk !== null && kbJwtPublicKeyJwk !== void 0 ? kbJwtPublicKeyJwk : (_b = (_a = this.payload) === null || _a === void 0 ? void 0 : _a.cnf) === null || _b === void 0 ? void 0 : _b.jwk;
|
|
102
|
+
const sdJwtVerificationResult = (yield _super.verify.call(this, verifier, requiredClaimKeys, kbJwtPublicKeyJwkToUse, issuerPublicKeyJwk));
|
|
102
103
|
try {
|
|
103
104
|
sdJwtVerificationResult.containsRequiredVcProperties = true;
|
|
104
105
|
this.validateSdJwtVc(expectedCnfClaim);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdJwtVc.js","sourceRoot":"","sources":["../../src/sdJwtVc/sdJwtVc.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oCAAsE;AACtE,oCAAyD;AACzD,gCAAiC;AAEjC,2CAAmD;AACnD,8CAA0C;AAO1C,MAAa,OAGX,SAAQ,aAAsB;IACrB,qCAAqC;QACxC,IAAI,CAAC,IAAI,CAAC,eAAe;YAAE,OAAM;QAEjC,MAAM,+BAA+B,GAAG;YACpC,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;YACL,QAAQ;SACF,CAAA;QAEV,KAAK,MAAM,QAAQ,IAAI,+BAA+B,EAAE,CAAC;YACrD,IAAI,CAAC,oCAAoC,CAAC,QAAQ,CAAC,CAAA;QACvD,CAAC;IACL,CAAC;IAEO,eAAe,CAAC,gBAA0C;QAC9D,IAAI,CAAC;YACD,IAAI,CAAC,qCAAqC,EAAE,CAAA;YAC5C,IAAI,CAAC,YAAY,EAAE,CAAA;YACnB,IAAI,CAAC,aAAa,EAAE,CAAA;YAEpB,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAA;YAC5C,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAA;YAE/B,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAA;YAChC,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAA;YAChC,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAA;YAEhC,IAAI,gBAAgB,EAAE,CAAC;gBACnB,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAA;YACtD,CAAC;QACL,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,IAAI,CAAC,YAAY,KAAK,EAAE,CAAC;gBACrB,CAAC,CAAC,OAAO,GAAG,qDAAqD,CAAC,CAAC,OAAO,EAAE,CAAA;YAChF,CAAC;YAED,MAAM,CAAC,CAAA;QACX,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACI,MAAM,CAAU,WAAW,CAGhC,OAAe;QACb,MAAM,EACF,WAAW,EAAE,CAAC,EACd,UAAU,EAAE,EAAE,EACd,SAAS,EACT,OAAO,EACP,MAAM,EACT,GAAG,IAAA,2BAAkB,EAAkB,OAAO,CAAC,CAAA;QAEhD,MAAM,WAAW,GAAG,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,GAAG,CACtB,CAAC,UAAU,EAAE,EAAE,CACX,IAAI,kBAAU,CACV,UAAU,CAAC,IAAI,EACf,UAAU,CAAC,KAAK,EAChB,UAAU,CAAC,GAAG,CACjB,CACR,CAAA;QAED,MAAM,UAAU,GAAG,EAAE;YACjB,CAAC,CAAC,IAAI,uBAAU,EAAE;iBACX,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC;iBACrB,WAAW,CAAC,EAAE,CAAC,OAAO,CAAC;iBACvB,aAAa,CAAC,EAAE,CAAC,SAAS,CAAC;YAClC,CAAC,CAAC,SAAS,CAAA;QAEf,MAAM,OAAO,GAAG,IAAI,OAAO,CAAkB;YACzC,MAAM;YACN,OAAO;YACP,SAAS;YACT,WAAW;YACX,UAAU;SACb,CAAC,CAAA;QAEF,OAAO,OAIN,CAAA;IACL,CAAC;IAED;;;;;;;;;;;;OAYG;IACmB,MAAM,CACxB,QAA0B,EAC1B,iBAAiD,EACjD,gBAA0C;;;;;;
|
|
1
|
+
{"version":3,"file":"sdJwtVc.js","sourceRoot":"","sources":["../../src/sdJwtVc/sdJwtVc.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export type BaseFrame<Payload, ExtraProperties> = Payload extends Array<unknown> ? {
|
|
2
|
+
[K in keyof Payload]?: Payload[K] extends Record<string | number, unknown> ? BaseFrame<Payload[K], ExtraProperties> | boolean : boolean;
|
|
3
|
+
} : Payload extends Record<string, unknown> ? {
|
|
4
|
+
[K in keyof Payload]?: Payload[K] extends Array<unknown> ? BaseFrame<Payload[K], ExtraProperties> | boolean : Payload[K] extends Record<string, unknown> ? (ExtraProperties & BaseFrame<Payload[K], ExtraProperties>) | boolean : boolean;
|
|
5
|
+
} & ExtraProperties & Record<string, unknown> : boolean;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"frame.js","sourceRoot":"","sources":["../../src/types/frame.ts"],"names":[],"mappings":""}
|
package/build/types/hasher.d.ts
CHANGED
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
import { HasherAlgorithm } from '@sd-jwt/utils';
|
|
2
|
-
import {
|
|
2
|
+
import { OrPromise } from './utils';
|
|
3
|
+
/**
|
|
4
|
+
* A simple hash function that takes the base64url encoded variant of the disclosure and returns the digest as a byte array
|
|
5
|
+
*/
|
|
6
|
+
export type Hasher = (input: string) => OrPromise<Uint8Array>;
|
|
3
7
|
/**
|
|
4
8
|
* hasher: A simple hash function that takes the base64url encoded variant of the disclosure and returns the digest as a byte array
|
|
5
9
|
* algorithm: IANA defined string for the hashing algorithm used
|
|
6
10
|
*/
|
|
7
|
-
export type HasherAndAlgorithm
|
|
8
|
-
hasher:
|
|
9
|
-
algorithm:
|
|
11
|
+
export type HasherAndAlgorithm = {
|
|
12
|
+
hasher: Hasher;
|
|
13
|
+
algorithm: string | HasherAlgorithm;
|
|
10
14
|
};
|
package/build/types/index.d.ts
CHANGED
package/build/types/index.js
CHANGED
|
@@ -15,7 +15,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./utils"), exports);
|
|
18
|
-
__exportStar(require("./hasher"), exports);
|
|
19
18
|
__exportStar(require("./signer"), exports);
|
|
20
19
|
__exportStar(require("./verifier"), exports);
|
|
21
20
|
__exportStar(require("./disclosure"), exports);
|
package/build/types/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAuB;AACvB,2CAAwB;AACxB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAuB;AACvB,2CAAwB;AACxB,6CAA0B;AAC1B,+CAA4B;AAC5B,kDAA+B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"present.js","sourceRoot":"","sources":["../../src/types/present.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./traverse"), exports);
|
|
18
|
+
__exportStar(require("./utils"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA0B;AAC1B,0CAAuB"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.traverseNodes = void 0;
|
|
4
|
+
const traverseNodes = (object, path = []) => {
|
|
5
|
+
const result = [];
|
|
6
|
+
if (typeof object !== 'object' || object === null) {
|
|
7
|
+
return [{ path: [], value: object, isLeaf: true }];
|
|
8
|
+
}
|
|
9
|
+
for (const key in object) {
|
|
10
|
+
if (object.hasOwnProperty(key)) {
|
|
11
|
+
const currentPath = [...path, key];
|
|
12
|
+
const value = object[key];
|
|
13
|
+
// Value must be object / array, and have at least some values in it
|
|
14
|
+
if (typeof value === 'object' &&
|
|
15
|
+
value !== null &&
|
|
16
|
+
Object.keys(value).length > 0) {
|
|
17
|
+
// Recursively traverse nested objects or arrays
|
|
18
|
+
result.push(...(0, exports.traverseNodes)(value, currentPath));
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
// Leaf node found
|
|
22
|
+
result.push({ path: currentPath, value, isLeaf: true });
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return result;
|
|
27
|
+
};
|
|
28
|
+
exports.traverseNodes = traverseNodes;
|
|
29
|
+
//# sourceMappingURL=traverse.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"traverse.js","sourceRoot":"","sources":["../../src/utils/traverse.ts"],"names":[],"mappings":";;;AAAO,MAAM,aAAa,GAAG,CACzB,MAAW,EACX,OAAmB,EAAE,EACX,EAAE;IACZ,MAAM,MAAM,GAAe,EAAE,CAAA;IAE7B,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QAChD,OAAO,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;IACtD,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QACvB,IAAI,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,CAAA;YAClC,MAAM,KAAK,GAAG,MAAM,CAAC,GAA0B,CAAC,CAAA;YAEhD,oEAAoE;YACpE,IACI,OAAO,KAAK,KAAK,QAAQ;gBACzB,KAAK,KAAK,IAAI;gBACd,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,EAC/B,CAAC;gBACC,gDAAgD;gBAChD,MAAM,CAAC,IAAI,CAAC,GAAG,IAAA,qBAAa,EAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAA;YACrD,CAAC;iBAAM,CAAC;gBACJ,kBAAkB;gBAClB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;YAC3D,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAA;AACjB,CAAC,CAAA;AA/BY,QAAA,aAAa,iBA+BzB"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare const getAllKeys: (object: unknown, keys?: Array<string>) => Array<string>;
|
|
2
|
+
export declare const getValueByKeyAnyLevel: <T = unknown>(obj: Record<string, unknown>, key: string) => T | undefined;
|
|
3
|
+
export declare const simpleDeepEqual: (lhs: unknown, rhs: unknown) => boolean;
|
|
4
|
+
export declare const deleteByPath: (object: Record<string, unknown>, path: string[]) => void;
|
|
5
|
+
export declare const getByPath: (item: any[] | Record<string, unknown>, path: Array<string | number>) => unknown;
|
|
6
|
+
export declare const hasByPath: (item: any[] | Record<string, unknown>, path: Array<string | number>) => boolean;
|
|
7
|
+
export declare function isObject(input: any): boolean;
|
|
8
|
+
export declare function isPromise<T>(value: Promise<T> | T): value is Promise<T>;
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isPromise = exports.isObject = exports.hasByPath = exports.getByPath = exports.deleteByPath = exports.simpleDeepEqual = exports.getValueByKeyAnyLevel = exports.getAllKeys = void 0;
|
|
4
|
+
const sdJwt_1 = require("../sdJwt");
|
|
5
|
+
const getAllKeys = (object, keys = []) => {
|
|
6
|
+
if (typeof object !== 'object' || typeof object === null)
|
|
7
|
+
return keys;
|
|
8
|
+
const record = object;
|
|
9
|
+
const objectKeys = Object.keys(record);
|
|
10
|
+
const objectValues = Object.values(record);
|
|
11
|
+
keys.push(...objectKeys);
|
|
12
|
+
for (const objectValue of objectValues) {
|
|
13
|
+
if (typeof objectValue === 'object' &&
|
|
14
|
+
objectValue !== null &&
|
|
15
|
+
!Array.isArray(objectValue)) {
|
|
16
|
+
(0, exports.getAllKeys)(objectValue, keys);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
return keys;
|
|
20
|
+
};
|
|
21
|
+
exports.getAllKeys = getAllKeys;
|
|
22
|
+
const getValueByKeyAnyLevel = (obj, key) => {
|
|
23
|
+
// Check if the current object has the key
|
|
24
|
+
if (obj && obj.hasOwnProperty(key)) {
|
|
25
|
+
return obj[key];
|
|
26
|
+
}
|
|
27
|
+
// If not found in the current object, iterate over its properties
|
|
28
|
+
for (const prop in obj) {
|
|
29
|
+
if (obj.hasOwnProperty(prop) && typeof obj[prop] === 'object') {
|
|
30
|
+
const result = (0, exports.getValueByKeyAnyLevel)(obj[prop], key);
|
|
31
|
+
if (result !== undefined) {
|
|
32
|
+
return result;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
exports.getValueByKeyAnyLevel = getValueByKeyAnyLevel;
|
|
38
|
+
const simpleDeepEqual = (lhs, rhs) => {
|
|
39
|
+
if (lhs === rhs)
|
|
40
|
+
return true;
|
|
41
|
+
if (typeof lhs !== 'object' || typeof rhs !== 'object')
|
|
42
|
+
return false;
|
|
43
|
+
const l = Object.assign({}, lhs);
|
|
44
|
+
const r = Object.assign({}, rhs);
|
|
45
|
+
Object.keys(l).forEach((key) => l[key] === undefined && delete l[key]);
|
|
46
|
+
Object.keys(r).forEach((key) => r[key] === undefined && delete r[key]);
|
|
47
|
+
const keys1 = Object.keys(l);
|
|
48
|
+
const keys2 = Object.keys(r);
|
|
49
|
+
if (keys1.length !== keys2.length)
|
|
50
|
+
return false;
|
|
51
|
+
return keys1.every((key) => (0, exports.simpleDeepEqual)(l[key], r[key]));
|
|
52
|
+
};
|
|
53
|
+
exports.simpleDeepEqual = simpleDeepEqual;
|
|
54
|
+
const deleteByPath = (object, path) => {
|
|
55
|
+
let currentObject = object;
|
|
56
|
+
const parts = [...path];
|
|
57
|
+
const last = parts.pop();
|
|
58
|
+
for (const part of parts) {
|
|
59
|
+
currentObject = currentObject[part];
|
|
60
|
+
if (!currentObject) {
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
if (last) {
|
|
65
|
+
delete currentObject[last];
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
exports.deleteByPath = deleteByPath;
|
|
69
|
+
const getByPath = (item, path) => {
|
|
70
|
+
let current = item;
|
|
71
|
+
for (const key of path) {
|
|
72
|
+
if (Array.isArray(current)) {
|
|
73
|
+
const keyAsNumber = Number(key);
|
|
74
|
+
if (isNaN(keyAsNumber)) {
|
|
75
|
+
throw new sdJwt_1.SdJwtError(`Unable to get ${path.join('.')} from array ${item}. ${key} is not a number.`);
|
|
76
|
+
}
|
|
77
|
+
if (keyAsNumber >= current.length) {
|
|
78
|
+
throw new sdJwt_1.SdJwtError(`Unable to get ${path.join('.')} from array ${item}. ${key} is out of bounds.`);
|
|
79
|
+
}
|
|
80
|
+
current = current[keyAsNumber];
|
|
81
|
+
}
|
|
82
|
+
else if (typeof current === 'object' && current !== null) {
|
|
83
|
+
if (!(key in current)) {
|
|
84
|
+
throw new sdJwt_1.SdJwtError(`Unable to get ${path.join('.')} from ${item}. ${key} does not exists in ${current}.`);
|
|
85
|
+
}
|
|
86
|
+
current = current[key];
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
throw new sdJwt_1.SdJwtError(`Unable to get ${path.join('.')} from ${item}. ${key} is not an object or array.`);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
return current;
|
|
93
|
+
};
|
|
94
|
+
exports.getByPath = getByPath;
|
|
95
|
+
const hasByPath = (item, path) => {
|
|
96
|
+
try {
|
|
97
|
+
(0, exports.getByPath)(item, path);
|
|
98
|
+
return true;
|
|
99
|
+
}
|
|
100
|
+
catch (_a) {
|
|
101
|
+
return false;
|
|
102
|
+
}
|
|
103
|
+
};
|
|
104
|
+
exports.hasByPath = hasByPath;
|
|
105
|
+
function isObject(input) {
|
|
106
|
+
return typeof input === 'object' && input !== null && !Array.isArray(input);
|
|
107
|
+
}
|
|
108
|
+
exports.isObject = isObject;
|
|
109
|
+
function isPromise(value) {
|
|
110
|
+
return (value instanceof Promise ||
|
|
111
|
+
(value &&
|
|
112
|
+
typeof value === 'object' &&
|
|
113
|
+
value !== null &&
|
|
114
|
+
'then' in value &&
|
|
115
|
+
value.then === 'function'));
|
|
116
|
+
}
|
|
117
|
+
exports.isPromise = isPromise;
|
|
118
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils/utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sd-jwt/core",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"description": "Core implementation of sd-jwt Draft 06 and sd-jwt-vc Draft 01",
|
|
5
5
|
"license": "(MIT OR Apache-2.0)",
|
|
6
6
|
"author": "Berend Sliedrecht <sliedrecht@berend.io>",
|
|
@@ -37,15 +37,15 @@
|
|
|
37
37
|
"test": "node --require ts-node/register --test ./tests/*.test.ts"
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@sd-jwt/decode": "0.2.
|
|
41
|
-
"@sd-jwt/present": "0.2.
|
|
42
|
-
"@sd-jwt/types": "0.2.
|
|
43
|
-
"@sd-jwt/utils": "0.2.
|
|
40
|
+
"@sd-jwt/decode": "0.2.1",
|
|
41
|
+
"@sd-jwt/present": "0.2.1",
|
|
42
|
+
"@sd-jwt/types": "0.2.1",
|
|
43
|
+
"@sd-jwt/utils": "0.2.1"
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
46
|
"@types/node": "*",
|
|
47
47
|
"ts-node": "*",
|
|
48
48
|
"typescript": "*"
|
|
49
49
|
},
|
|
50
|
-
"gitHead": "
|
|
50
|
+
"gitHead": "a1fb5fad0b938081e033233bae5569ae3b9fe8cb"
|
|
51
51
|
}
|