@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.
Files changed (62) hide show
  1. package/build/base64url.d.ts +28 -0
  2. package/build/base64url.js +40 -0
  3. package/build/base64url.js.map +1 -0
  4. package/build/hasherAlgorithm.d.ts +70 -0
  5. package/build/hasherAlgorithm.js +75 -0
  6. package/build/hasherAlgorithm.js.map +1 -0
  7. package/build/index.d.ts +3 -3
  8. package/build/index.js +2 -3
  9. package/build/index.js.map +1 -1
  10. package/build/jwt/compact.d.ts +6 -0
  11. package/build/jwt/compact.js +27 -0
  12. package/build/jwt/compact.js.map +1 -0
  13. package/build/jwt/jwt.d.ts +4 -0
  14. package/build/jwt/jwt.js +1 -0
  15. package/build/jwt/jwt.js.map +1 -1
  16. package/build/keyBinding/keyBinding.d.ts +10 -2
  17. package/build/keyBinding/keyBinding.js +21 -2
  18. package/build/keyBinding/keyBinding.js.map +1 -1
  19. package/build/sdJwt/compact.d.ts +8 -0
  20. package/build/sdJwt/compact.js +39 -0
  21. package/build/sdJwt/compact.js.map +1 -0
  22. package/build/sdJwt/decoys.d.ts +2 -1
  23. package/build/sdJwt/decoys.js.map +1 -1
  24. package/build/sdJwt/disclosureFrame.d.ts +2 -1
  25. package/build/sdJwt/disclosureFrame.js.map +1 -1
  26. package/build/sdJwt/disclosureMapping.d.ts +43 -0
  27. package/build/sdJwt/disclosureMapping.js +278 -0
  28. package/build/sdJwt/disclosureMapping.js.map +1 -0
  29. package/build/sdJwt/disclosures.d.ts +2 -2
  30. package/build/sdJwt/disclosures.js.map +1 -1
  31. package/build/sdJwt/presentationFrame.d.ts +3 -0
  32. package/build/sdJwt/presentationFrame.js +64 -0
  33. package/build/sdJwt/presentationFrame.js.map +1 -0
  34. package/build/sdJwt/sdJwt.d.ts +5 -4
  35. package/build/sdJwt/sdJwt.js +46 -8
  36. package/build/sdJwt/sdJwt.js.map +1 -1
  37. package/build/sdJwt/swapClaim.d.ts +2 -0
  38. package/build/sdJwt/swapClaim.js +79 -0
  39. package/build/sdJwt/swapClaim.js.map +1 -0
  40. package/build/sdJwtVc/sdJwtVc.d.ts +1 -1
  41. package/build/sdJwtVc/sdJwtVc.js +4 -3
  42. package/build/sdJwtVc/sdJwtVc.js.map +1 -1
  43. package/build/types/frame.d.ts +5 -0
  44. package/build/types/frame.js +3 -0
  45. package/build/types/frame.js.map +1 -0
  46. package/build/types/hasher.d.ts +8 -4
  47. package/build/types/index.d.ts +0 -1
  48. package/build/types/index.js +0 -1
  49. package/build/types/index.js.map +1 -1
  50. package/build/types/present.d.ts +2 -0
  51. package/build/types/present.js +3 -0
  52. package/build/types/present.js.map +1 -0
  53. package/build/utils/index.d.ts +2 -0
  54. package/build/utils/index.js +19 -0
  55. package/build/utils/index.js.map +1 -0
  56. package/build/utils/traverse.d.ts +8 -0
  57. package/build/utils/traverse.js +29 -0
  58. package/build/utils/traverse.js.map +1 -0
  59. package/build/utils/utils.d.ts +8 -0
  60. package/build/utils/utils.js +118 -0
  61. package/build/utils/utils.js.map +1 -0
  62. 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.
@@ -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 publicKeyJwk = (_b = (_a = this.payload) === null || _a === void 0 ? void 0 : _a.cnf) === null || _b === void 0 ? void 0 : _b.jwk;
101
- const sdJwtVerificationResult = (yield _super.verify.call(this, verifier, requiredClaimKeys, publicKeyJwk));
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":"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"}
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,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=frame.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frame.js","sourceRoot":"","sources":["../../src/types/frame.ts"],"names":[],"mappings":""}
@@ -1,10 +1,14 @@
1
1
  import { HasherAlgorithm } from '@sd-jwt/utils';
2
- import { Hasher, AsyncHasher } from '@sd-jwt/types';
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<HasherImplementation extends Hasher | AsyncHasher = Hasher | AsyncHasher> = {
8
- hasher: HasherImplementation;
9
- algorithm: HasherAlgorithm | string;
11
+ export type HasherAndAlgorithm = {
12
+ hasher: Hasher;
13
+ algorithm: string | HasherAlgorithm;
10
14
  };
@@ -1,5 +1,4 @@
1
1
  export * from './utils';
2
- export * from './hasher';
3
2
  export * from './signer';
4
3
  export * from './verifier';
5
4
  export * from './disclosure';
@@ -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);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAuB;AACvB,2CAAwB;AACxB,2CAAwB;AACxB,6CAA0B;AAC1B,+CAA4B;AAC5B,kDAA+B"}
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,2 @@
1
+ import { BaseFrame } from './frame';
2
+ export type PresentationFrame<T> = BaseFrame<T, {}>;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=present.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"present.js","sourceRoot":"","sources":["../../src/types/present.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export * from './traverse';
2
+ export * from './utils';
@@ -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,8 @@
1
+ export declare const traverseNodes: (object: any, path?: PathNode[]) => LeafNode[];
2
+ type PathNode = string | number;
3
+ interface LeafNode {
4
+ path: PathNode[];
5
+ value: any;
6
+ isLeaf: boolean;
7
+ }
8
+ export {};
@@ -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.0",
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.0",
41
- "@sd-jwt/present": "0.2.0",
42
- "@sd-jwt/types": "0.2.0",
43
- "@sd-jwt/utils": "0.2.0"
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": "8fb68d5a23b2bf157949346a6603dc40b1594195"
50
+ "gitHead": "a1fb5fad0b938081e033233bae5569ae3b9fe8cb"
51
51
  }