@sd-jwt/core 0.2.1 → 2.0.2-next.26

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 (146) hide show
  1. package/LICENSE +201 -0
  2. package/dist/index.d.mts +106 -0
  3. package/dist/index.d.ts +106 -0
  4. package/dist/index.js +606 -0
  5. package/dist/index.mjs +586 -0
  6. package/package.json +60 -48
  7. package/src/decoy.ts +15 -0
  8. package/src/index.ts +235 -0
  9. package/src/jwt.ts +107 -0
  10. package/src/kbjwt.ts +45 -0
  11. package/src/sdjwt.ts +318 -0
  12. package/src/test/decoy.spec.ts +30 -0
  13. package/src/test/index.spec.ts +379 -0
  14. package/src/test/jwt.spec.ts +141 -0
  15. package/src/test/kbjwt.spec.ts +275 -0
  16. package/src/test/pass.spec.ts +6 -0
  17. package/src/test/sdjwt.spec.ts +382 -0
  18. package/test/app-e2e.spec.ts +248 -0
  19. package/test/array_data_types.json +29 -0
  20. package/test/array_full_sd.json +21 -0
  21. package/test/array_in_sd.json +13 -0
  22. package/test/array_nested_in_plain.json +20 -0
  23. package/test/array_none_disclosed.json +17 -0
  24. package/test/array_of_nulls.json +15 -0
  25. package/test/array_of_objects.json +58 -0
  26. package/test/array_of_scalars.json +15 -0
  27. package/test/array_recursive_sd.json +35 -0
  28. package/test/array_recursive_sd_some_disclosed.json +55 -0
  29. package/test/complex.json +43 -0
  30. package/test/header_mod.json +44 -0
  31. package/test/json_serialization.json +44 -0
  32. package/test/key_binding.json +44 -0
  33. package/test/no_sd.json +36 -0
  34. package/test/object_data_types.json +60 -0
  35. package/test/recursions.json +98 -0
  36. package/tsconfig.json +7 -0
  37. package/vitest.config.mts +4 -0
  38. package/README.md +0 -97
  39. package/build/base64url.d.ts +0 -28
  40. package/build/base64url.js +0 -40
  41. package/build/base64url.js.map +0 -1
  42. package/build/hasherAlgorithm.d.ts +0 -70
  43. package/build/hasherAlgorithm.js +0 -75
  44. package/build/hasherAlgorithm.js.map +0 -1
  45. package/build/index.d.ts +0 -13
  46. package/build/index.js +0 -20
  47. package/build/index.js.map +0 -1
  48. package/build/jwt/compact.d.ts +0 -6
  49. package/build/jwt/compact.js +0 -27
  50. package/build/jwt/compact.js.map +0 -1
  51. package/build/jwt/error.d.ts +0 -2
  52. package/build/jwt/error.js +0 -7
  53. package/build/jwt/error.js.map +0 -1
  54. package/build/jwt/index.d.ts +0 -2
  55. package/build/jwt/index.js +0 -19
  56. package/build/jwt/index.js.map +0 -1
  57. package/build/jwt/jwt.d.ts +0 -208
  58. package/build/jwt/jwt.js +0 -325
  59. package/build/jwt/jwt.js.map +0 -1
  60. package/build/keyBinding/index.d.ts +0 -1
  61. package/build/keyBinding/index.js +0 -18
  62. package/build/keyBinding/index.js.map +0 -1
  63. package/build/keyBinding/keyBinding.d.ts +0 -64
  64. package/build/keyBinding/keyBinding.js +0 -119
  65. package/build/keyBinding/keyBinding.js.map +0 -1
  66. package/build/sdJwt/compact.d.ts +0 -8
  67. package/build/sdJwt/compact.js +0 -39
  68. package/build/sdJwt/compact.js.map +0 -1
  69. package/build/sdJwt/decoys.d.ts +0 -3
  70. package/build/sdJwt/decoys.js +0 -35
  71. package/build/sdJwt/decoys.js.map +0 -1
  72. package/build/sdJwt/disclosureFrame.d.ts +0 -8
  73. package/build/sdJwt/disclosureFrame.js +0 -87
  74. package/build/sdJwt/disclosureFrame.js.map +0 -1
  75. package/build/sdJwt/disclosureMapping.d.ts +0 -43
  76. package/build/sdJwt/disclosureMapping.js +0 -278
  77. package/build/sdJwt/disclosureMapping.js.map +0 -1
  78. package/build/sdJwt/disclosures.d.ts +0 -33
  79. package/build/sdJwt/disclosures.js +0 -114
  80. package/build/sdJwt/disclosures.js.map +0 -1
  81. package/build/sdJwt/error.d.ts +0 -2
  82. package/build/sdJwt/error.js +0 -7
  83. package/build/sdJwt/error.js.map +0 -1
  84. package/build/sdJwt/index.d.ts +0 -6
  85. package/build/sdJwt/index.js +0 -23
  86. package/build/sdJwt/index.js.map +0 -1
  87. package/build/sdJwt/presentationFrame.d.ts +0 -3
  88. package/build/sdJwt/presentationFrame.js +0 -64
  89. package/build/sdJwt/presentationFrame.js.map +0 -1
  90. package/build/sdJwt/sdJwt.d.ts +0 -206
  91. package/build/sdJwt/sdJwt.js +0 -442
  92. package/build/sdJwt/sdJwt.js.map +0 -1
  93. package/build/sdJwt/swapClaim.d.ts +0 -2
  94. package/build/sdJwt/swapClaim.js +0 -79
  95. package/build/sdJwt/swapClaim.js.map +0 -1
  96. package/build/sdJwt/types.d.ts +0 -5
  97. package/build/sdJwt/types.js +0 -3
  98. package/build/sdJwt/types.js.map +0 -1
  99. package/build/sdJwtVc/error.d.ts +0 -2
  100. package/build/sdJwtVc/error.js +0 -7
  101. package/build/sdJwtVc/error.js.map +0 -1
  102. package/build/sdJwtVc/index.d.ts +0 -2
  103. package/build/sdJwtVc/index.js +0 -19
  104. package/build/sdJwtVc/index.js.map +0 -1
  105. package/build/sdJwtVc/sdJwtVc.d.ts +0 -47
  106. package/build/sdJwtVc/sdJwtVc.js +0 -149
  107. package/build/sdJwtVc/sdJwtVc.js.map +0 -1
  108. package/build/signatureAndEncryptionAlgorithm.d.ts +0 -105
  109. package/build/signatureAndEncryptionAlgorithm.js +0 -110
  110. package/build/signatureAndEncryptionAlgorithm.js.map +0 -1
  111. package/build/types/disclosure.d.ts +0 -5
  112. package/build/types/disclosure.js +0 -3
  113. package/build/types/disclosure.js.map +0 -1
  114. package/build/types/frame.d.ts +0 -5
  115. package/build/types/frame.js +0 -3
  116. package/build/types/frame.js.map +0 -1
  117. package/build/types/hasher.d.ts +0 -14
  118. package/build/types/hasher.js +0 -3
  119. package/build/types/hasher.js.map +0 -1
  120. package/build/types/index.d.ts +0 -5
  121. package/build/types/index.js +0 -22
  122. package/build/types/index.js.map +0 -1
  123. package/build/types/present.d.ts +0 -2
  124. package/build/types/present.js +0 -3
  125. package/build/types/present.js.map +0 -1
  126. package/build/types/saltGenerator.d.ts +0 -17
  127. package/build/types/saltGenerator.js +0 -3
  128. package/build/types/saltGenerator.js.map +0 -1
  129. package/build/types/signer.d.ts +0 -2
  130. package/build/types/signer.js +0 -3
  131. package/build/types/signer.js.map +0 -1
  132. package/build/types/utils.d.ts +0 -2
  133. package/build/types/utils.js +0 -3
  134. package/build/types/utils.js.map +0 -1
  135. package/build/types/verifier.d.ts +0 -14
  136. package/build/types/verifier.js +0 -3
  137. package/build/types/verifier.js.map +0 -1
  138. package/build/utils/index.d.ts +0 -2
  139. package/build/utils/index.js +0 -19
  140. package/build/utils/index.js.map +0 -1
  141. package/build/utils/traverse.d.ts +0 -8
  142. package/build/utils/traverse.js +0 -29
  143. package/build/utils/traverse.js.map +0 -1
  144. package/build/utils/utils.d.ts +0 -8
  145. package/build/utils/utils.js +0 -118
  146. package/build/utils/utils.js.map +0 -1
@@ -1,118 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils/utils.ts"],"names":[],"mappings":"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"}