@opentdf/sdk 0.9.0-beta.92 → 0.9.0-beta.94

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 (187) hide show
  1. package/README.md +2 -2
  2. package/dist/cjs/src/access/access-fetch.js +1 -2
  3. package/dist/cjs/src/access/access-rpc.js +1 -3
  4. package/dist/cjs/src/access.js +1 -14
  5. package/dist/cjs/src/auth/auth.js +13 -10
  6. package/dist/cjs/src/auth/dpop.js +121 -0
  7. package/dist/cjs/src/auth/oidc-clientcredentials-provider.js +37 -3
  8. package/dist/cjs/src/auth/oidc-externaljwt-provider.js +37 -3
  9. package/dist/cjs/src/auth/oidc-refreshtoken-provider.js +37 -3
  10. package/dist/cjs/src/auth/oidc.js +10 -8
  11. package/dist/cjs/src/auth/providers.js +35 -12
  12. package/dist/cjs/src/crypto/index.js +16 -2
  13. package/dist/cjs/src/crypto/pemPublicToCrypto.js +17 -11
  14. package/dist/cjs/src/opentdf.js +50 -13
  15. package/dist/cjs/src/policy/discovery.js +2 -2
  16. package/dist/cjs/tdf3/index.js +4 -2
  17. package/dist/cjs/tdf3/src/assertions.js +71 -31
  18. package/dist/cjs/tdf3/src/ciphers/aes-gcm-cipher.js +1 -1
  19. package/dist/cjs/tdf3/src/ciphers/symmetric-cipher-base.js +4 -2
  20. package/dist/cjs/tdf3/src/client/index.js +23 -33
  21. package/dist/cjs/tdf3/src/crypto/crypto-utils.js +12 -5
  22. package/dist/cjs/tdf3/src/crypto/declarations.js +1 -1
  23. package/dist/cjs/tdf3/src/crypto/index.js +849 -88
  24. package/dist/cjs/tdf3/src/crypto/jose/jwt-claims-set.js +11 -0
  25. package/dist/cjs/tdf3/src/crypto/jose/validate-crit.js +8 -0
  26. package/dist/cjs/tdf3/src/crypto/jose/vendor/lib/buffer_utils.js +41 -0
  27. package/dist/cjs/tdf3/src/crypto/jose/vendor/lib/epoch.js +6 -0
  28. package/dist/cjs/tdf3/src/crypto/jose/vendor/lib/is_object.js +21 -0
  29. package/dist/cjs/tdf3/src/crypto/jose/vendor/lib/jwt_claims_set.js +112 -0
  30. package/dist/cjs/tdf3/src/crypto/jose/vendor/lib/secs.js +60 -0
  31. package/dist/cjs/tdf3/src/crypto/jose/vendor/lib/validate_crit.js +38 -0
  32. package/dist/cjs/tdf3/src/crypto/jose/vendor/util/errors.js +135 -0
  33. package/dist/cjs/tdf3/src/crypto/jwt.js +183 -0
  34. package/dist/cjs/tdf3/src/crypto/salt.js +14 -8
  35. package/dist/cjs/tdf3/src/models/encryption-information.js +17 -20
  36. package/dist/cjs/tdf3/src/models/key-access.js +43 -63
  37. package/dist/cjs/tdf3/src/tdf.js +75 -75
  38. package/dist/cjs/tdf3/src/utils/index.js +5 -39
  39. package/dist/types/src/access/access-fetch.d.ts.map +1 -1
  40. package/dist/types/src/access/access-rpc.d.ts.map +1 -1
  41. package/dist/types/src/access.d.ts +0 -5
  42. package/dist/types/src/access.d.ts.map +1 -1
  43. package/dist/types/src/auth/auth.d.ts +9 -6
  44. package/dist/types/src/auth/auth.d.ts.map +1 -1
  45. package/dist/types/src/auth/dpop.d.ts +60 -0
  46. package/dist/types/src/auth/dpop.d.ts.map +1 -0
  47. package/dist/types/src/auth/oidc-clientcredentials-provider.d.ts +3 -2
  48. package/dist/types/src/auth/oidc-clientcredentials-provider.d.ts.map +1 -1
  49. package/dist/types/src/auth/oidc-externaljwt-provider.d.ts +3 -2
  50. package/dist/types/src/auth/oidc-externaljwt-provider.d.ts.map +1 -1
  51. package/dist/types/src/auth/oidc-refreshtoken-provider.d.ts +3 -2
  52. package/dist/types/src/auth/oidc-refreshtoken-provider.d.ts.map +1 -1
  53. package/dist/types/src/auth/oidc.d.ts +6 -4
  54. package/dist/types/src/auth/oidc.d.ts.map +1 -1
  55. package/dist/types/src/auth/providers.d.ts +5 -4
  56. package/dist/types/src/auth/providers.d.ts.map +1 -1
  57. package/dist/types/src/crypto/index.d.ts +2 -1
  58. package/dist/types/src/crypto/index.d.ts.map +1 -1
  59. package/dist/types/src/crypto/pemPublicToCrypto.d.ts +18 -0
  60. package/dist/types/src/crypto/pemPublicToCrypto.d.ts.map +1 -1
  61. package/dist/types/src/opentdf.d.ts +26 -7
  62. package/dist/types/src/opentdf.d.ts.map +1 -1
  63. package/dist/types/src/policy/discovery.d.ts +2 -2
  64. package/dist/types/tdf3/index.d.ts +3 -3
  65. package/dist/types/tdf3/index.d.ts.map +1 -1
  66. package/dist/types/tdf3/src/assertions.d.ts +23 -8
  67. package/dist/types/tdf3/src/assertions.d.ts.map +1 -1
  68. package/dist/types/tdf3/src/ciphers/aes-gcm-cipher.d.ts +3 -3
  69. package/dist/types/tdf3/src/ciphers/aes-gcm-cipher.d.ts.map +1 -1
  70. package/dist/types/tdf3/src/ciphers/symmetric-cipher-base.d.ts +4 -4
  71. package/dist/types/tdf3/src/ciphers/symmetric-cipher-base.d.ts.map +1 -1
  72. package/dist/types/tdf3/src/client/builders.d.ts +2 -2
  73. package/dist/types/tdf3/src/client/builders.d.ts.map +1 -1
  74. package/dist/types/tdf3/src/client/index.d.ts +6 -5
  75. package/dist/types/tdf3/src/client/index.d.ts.map +1 -1
  76. package/dist/types/tdf3/src/crypto/crypto-utils.d.ts +14 -4
  77. package/dist/types/tdf3/src/crypto/crypto-utils.d.ts.map +1 -1
  78. package/dist/types/tdf3/src/crypto/declarations.d.ts +283 -18
  79. package/dist/types/tdf3/src/crypto/declarations.d.ts.map +1 -1
  80. package/dist/types/tdf3/src/crypto/index.d.ts +105 -28
  81. package/dist/types/tdf3/src/crypto/index.d.ts.map +1 -1
  82. package/dist/types/tdf3/src/crypto/jose/jwt-claims-set.d.ts +3 -0
  83. package/dist/types/tdf3/src/crypto/jose/jwt-claims-set.d.ts.map +1 -0
  84. package/dist/types/tdf3/src/crypto/jose/validate-crit.d.ts +5 -0
  85. package/dist/types/tdf3/src/crypto/jose/validate-crit.d.ts.map +1 -0
  86. package/dist/types/tdf3/src/crypto/jose/vendor/lib/buffer_utils.d.ts +6 -0
  87. package/dist/types/tdf3/src/crypto/jose/vendor/lib/buffer_utils.d.ts.map +1 -0
  88. package/dist/types/tdf3/src/crypto/jose/vendor/lib/epoch.d.ts +3 -0
  89. package/dist/types/tdf3/src/crypto/jose/vendor/lib/epoch.d.ts.map +1 -0
  90. package/dist/types/tdf3/src/crypto/jose/vendor/lib/is_object.d.ts +3 -0
  91. package/dist/types/tdf3/src/crypto/jose/vendor/lib/is_object.d.ts.map +1 -0
  92. package/dist/types/tdf3/src/crypto/jose/vendor/lib/jwt_claims_set.d.ts +3 -0
  93. package/dist/types/tdf3/src/crypto/jose/vendor/lib/jwt_claims_set.d.ts.map +1 -0
  94. package/dist/types/tdf3/src/crypto/jose/vendor/lib/secs.d.ts +3 -0
  95. package/dist/types/tdf3/src/crypto/jose/vendor/lib/secs.d.ts.map +1 -0
  96. package/dist/types/tdf3/src/crypto/jose/vendor/lib/validate_crit.d.ts +3 -0
  97. package/dist/types/tdf3/src/crypto/jose/vendor/lib/validate_crit.d.ts.map +1 -0
  98. package/dist/types/tdf3/src/crypto/jose/vendor/util/errors.d.ts +76 -0
  99. package/dist/types/tdf3/src/crypto/jose/vendor/util/errors.d.ts.map +1 -0
  100. package/dist/types/tdf3/src/crypto/jwt.d.ts +76 -0
  101. package/dist/types/tdf3/src/crypto/jwt.d.ts.map +1 -0
  102. package/dist/types/tdf3/src/crypto/salt.d.ts +6 -1
  103. package/dist/types/tdf3/src/crypto/salt.d.ts.map +1 -1
  104. package/dist/types/tdf3/src/models/encryption-information.d.ts +4 -4
  105. package/dist/types/tdf3/src/models/encryption-information.d.ts.map +1 -1
  106. package/dist/types/tdf3/src/models/key-access.d.ts +8 -5
  107. package/dist/types/tdf3/src/models/key-access.d.ts.map +1 -1
  108. package/dist/types/tdf3/src/tdf.d.ts +8 -8
  109. package/dist/types/tdf3/src/tdf.d.ts.map +1 -1
  110. package/dist/types/tdf3/src/utils/index.d.ts +4 -3
  111. package/dist/types/tdf3/src/utils/index.d.ts.map +1 -1
  112. package/dist/web/src/access/access-fetch.js +3 -4
  113. package/dist/web/src/access/access-rpc.js +3 -5
  114. package/dist/web/src/access.js +1 -13
  115. package/dist/web/src/auth/auth.js +13 -10
  116. package/dist/web/src/auth/dpop.js +118 -0
  117. package/dist/web/src/auth/oidc-clientcredentials-provider.js +4 -3
  118. package/dist/web/src/auth/oidc-externaljwt-provider.js +4 -3
  119. package/dist/web/src/auth/oidc-refreshtoken-provider.js +4 -3
  120. package/dist/web/src/auth/oidc.js +11 -9
  121. package/dist/web/src/auth/providers.js +13 -12
  122. package/dist/web/src/crypto/index.js +4 -2
  123. package/dist/web/src/crypto/pemPublicToCrypto.js +11 -9
  124. package/dist/web/src/opentdf.js +17 -13
  125. package/dist/web/src/policy/discovery.js +2 -2
  126. package/dist/web/tdf3/index.js +3 -2
  127. package/dist/web/tdf3/src/assertions.js +71 -31
  128. package/dist/web/tdf3/src/ciphers/aes-gcm-cipher.js +1 -1
  129. package/dist/web/tdf3/src/ciphers/symmetric-cipher-base.js +4 -2
  130. package/dist/web/tdf3/src/client/index.js +25 -35
  131. package/dist/web/tdf3/src/crypto/crypto-utils.js +12 -5
  132. package/dist/web/tdf3/src/crypto/declarations.js +1 -1
  133. package/dist/web/tdf3/src/crypto/index.js +830 -84
  134. package/dist/web/tdf3/src/crypto/jose/jwt-claims-set.js +5 -0
  135. package/dist/web/tdf3/src/crypto/jose/validate-crit.js +3 -0
  136. package/dist/web/tdf3/src/crypto/jose/vendor/lib/buffer_utils.js +35 -0
  137. package/dist/web/tdf3/src/crypto/jose/vendor/lib/epoch.js +4 -0
  138. package/dist/web/tdf3/src/crypto/jose/vendor/lib/is_object.js +19 -0
  139. package/dist/web/tdf3/src/crypto/jose/vendor/lib/jwt_claims_set.js +107 -0
  140. package/dist/web/tdf3/src/crypto/jose/vendor/lib/secs.js +58 -0
  141. package/dist/web/tdf3/src/crypto/jose/vendor/lib/validate_crit.js +36 -0
  142. package/dist/web/tdf3/src/crypto/jose/vendor/util/errors.js +117 -0
  143. package/dist/web/tdf3/src/crypto/jwt.js +174 -0
  144. package/dist/web/tdf3/src/crypto/salt.js +13 -7
  145. package/dist/web/tdf3/src/models/encryption-information.js +11 -14
  146. package/dist/web/tdf3/src/models/key-access.js +44 -31
  147. package/dist/web/tdf3/src/tdf.js +71 -71
  148. package/dist/web/tdf3/src/utils/index.js +5 -6
  149. package/package.json +11 -4
  150. package/src/access/access-fetch.ts +2 -8
  151. package/src/access/access-rpc.ts +0 -7
  152. package/src/access.ts +0 -17
  153. package/src/auth/auth.ts +21 -12
  154. package/src/auth/dpop.ts +222 -0
  155. package/src/auth/oidc-clientcredentials-provider.ts +23 -15
  156. package/src/auth/oidc-externaljwt-provider.ts +23 -15
  157. package/src/auth/oidc-refreshtoken-provider.ts +23 -15
  158. package/src/auth/oidc.ts +21 -10
  159. package/src/auth/providers.ts +46 -29
  160. package/src/crypto/index.ts +21 -1
  161. package/src/crypto/pemPublicToCrypto.ts +11 -9
  162. package/src/opentdf.ts +36 -17
  163. package/src/policy/discovery.ts +2 -2
  164. package/tdf3/index.ts +32 -5
  165. package/tdf3/src/assertions.ts +99 -30
  166. package/tdf3/src/ciphers/aes-gcm-cipher.ts +7 -2
  167. package/tdf3/src/ciphers/symmetric-cipher-base.ts +7 -4
  168. package/tdf3/src/client/builders.ts +2 -2
  169. package/tdf3/src/client/index.ts +60 -59
  170. package/tdf3/src/crypto/crypto-utils.ts +15 -8
  171. package/tdf3/src/crypto/declarations.ts +338 -22
  172. package/tdf3/src/crypto/index.ts +1021 -118
  173. package/tdf3/src/crypto/jose/jwt-claims-set.ts +10 -0
  174. package/tdf3/src/crypto/jose/validate-crit.ts +9 -0
  175. package/tdf3/src/crypto/jose/vendor/lib/buffer_utils.ts +34 -0
  176. package/tdf3/src/crypto/jose/vendor/lib/epoch.ts +3 -0
  177. package/tdf3/src/crypto/jose/vendor/lib/is_object.ts +18 -0
  178. package/tdf3/src/crypto/jose/vendor/lib/jwt_claims_set.ts +106 -0
  179. package/tdf3/src/crypto/jose/vendor/lib/secs.ts +57 -0
  180. package/tdf3/src/crypto/jose/vendor/lib/validate_crit.ts +35 -0
  181. package/tdf3/src/crypto/jose/vendor/util/errors.ts +101 -0
  182. package/tdf3/src/crypto/jwt.ts +256 -0
  183. package/tdf3/src/crypto/salt.ts +16 -8
  184. package/tdf3/src/models/encryption-information.ts +14 -21
  185. package/tdf3/src/models/key-access.ts +57 -41
  186. package/tdf3/src/tdf.ts +110 -93
  187. package/tdf3/src/utils/index.ts +5 -6
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.default = joseJwtClaimsSet;
7
+ const jwt_claims_set_js_1 = __importDefault(require("./vendor/lib/jwt_claims_set.js"));
8
+ function joseJwtClaimsSet(protectedHeader, encodedPayload, options) {
9
+ return (0, jwt_claims_set_js_1.default)(protectedHeader, encodedPayload, options);
10
+ }
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiand0LWNsYWltcy1zZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi90ZGYzL3NyYy9jcnlwdG8vam9zZS9qd3QtY2xhaW1zLXNldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUdBLG1DQU1DO0FBUkQsdUZBQTBEO0FBRTFELFNBQXdCLGdCQUFnQixDQUN0QyxlQUFvQyxFQUNwQyxjQUEwQixFQUMxQixPQUEwQjtJQUUxQixPQUFPLElBQUEsMkJBQVksRUFBQyxlQUFlLEVBQUUsY0FBYyxFQUFFLE9BQU8sQ0FBZSxDQUFDO0FBQzlFLENBQUMifQ==
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const validate_crit_js_1 = __importDefault(require("./vendor/lib/validate_crit.js"));
7
+ exports.default = validate_crit_js_1.default;
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUtY3JpdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3RkZjMvc3JjL2NyeXB0by9qb3NlL3ZhbGlkYXRlLWNyaXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxxRkFBeUQ7QUFFekQsa0JBQWUsMEJBTUMsQ0FBQyJ9
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.decoder = exports.encoder = void 0;
4
+ exports.concat = concat;
5
+ exports.uint64be = uint64be;
6
+ exports.uint32be = uint32be;
7
+ // @ts-nocheck
8
+ // Generated from jose@6.0.8. Do not edit directly.
9
+ exports.encoder = new TextEncoder();
10
+ exports.decoder = new TextDecoder();
11
+ const MAX_INT32 = 2 ** 32;
12
+ function concat(...buffers) {
13
+ const size = buffers.reduce((acc, { length }) => acc + length, 0);
14
+ const buf = new Uint8Array(size);
15
+ let i = 0;
16
+ for (const buffer of buffers) {
17
+ buf.set(buffer, i);
18
+ i += buffer.length;
19
+ }
20
+ return buf;
21
+ }
22
+ function writeUInt32BE(buf, value, offset) {
23
+ if (value < 0 || value >= MAX_INT32) {
24
+ throw new RangeError(`value must be >= 0 and <= ${MAX_INT32 - 1}. Received ${value}`);
25
+ }
26
+ buf.set([value >>> 24, value >>> 16, value >>> 8, value & 0xff], offset);
27
+ }
28
+ function uint64be(value) {
29
+ const high = Math.floor(value / MAX_INT32);
30
+ const low = value % MAX_INT32;
31
+ const buf = new Uint8Array(8);
32
+ writeUInt32BE(buf, high, 0);
33
+ writeUInt32BE(buf, low, 4);
34
+ return buf;
35
+ }
36
+ function uint32be(value) {
37
+ const buf = new Uint8Array(4);
38
+ writeUInt32BE(buf, value);
39
+ return buf;
40
+ }
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVmZmVyX3V0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vdGRmMy9zcmMvY3J5cHRvL2pvc2UvdmVuZG9yL2xpYi9idWZmZXJfdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBS0Esd0JBU0M7QUFPRCw0QkFPQztBQUNELDRCQUlDO0FBakNELGNBQWM7QUFDZCxtREFBbUQ7QUFDdEMsUUFBQSxPQUFPLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztBQUM1QixRQUFBLE9BQU8sR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO0FBQ3pDLE1BQU0sU0FBUyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7QUFDMUIsU0FBZ0IsTUFBTSxDQUFDLEdBQUcsT0FBTztJQUM3QixNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbEUsTUFBTSxHQUFHLEdBQUcsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDakMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ1YsS0FBSyxNQUFNLE1BQU0sSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUMzQixHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNuQixDQUFDLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDZixDQUFDO0FBQ0QsU0FBUyxhQUFhLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNO0lBQ3JDLElBQUksS0FBSyxHQUFHLENBQUMsSUFBSSxLQUFLLElBQUksU0FBUyxFQUFFLENBQUM7UUFDbEMsTUFBTSxJQUFJLFVBQVUsQ0FBQyw2QkFBNkIsU0FBUyxHQUFHLENBQUMsY0FBYyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzFGLENBQUM7SUFDRCxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxLQUFLLEVBQUUsRUFBRSxLQUFLLEtBQUssRUFBRSxFQUFFLEtBQUssS0FBSyxDQUFDLEVBQUUsS0FBSyxHQUFHLElBQUksQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQzdFLENBQUM7QUFDRCxTQUFnQixRQUFRLENBQUMsS0FBSztJQUMxQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxTQUFTLENBQUMsQ0FBQztJQUMzQyxNQUFNLEdBQUcsR0FBRyxLQUFLLEdBQUcsU0FBUyxDQUFDO0lBQzlCLE1BQU0sR0FBRyxHQUFHLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzlCLGFBQWEsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzVCLGFBQWEsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzNCLE9BQU8sR0FBRyxDQUFDO0FBQ2YsQ0FBQztBQUNELFNBQWdCLFFBQVEsQ0FBQyxLQUFLO0lBQzFCLE1BQU0sR0FBRyxHQUFHLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzlCLGFBQWEsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDMUIsT0FBTyxHQUFHLENBQUM7QUFDZixDQUFDIn0=
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ // @ts-nocheck
4
+ // Generated from jose@6.0.8. Do not edit directly.
5
+ exports.default = (date) => Math.floor(date.getTime() / 1000);
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXBvY2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi90ZGYzL3NyYy9jcnlwdG8vam9zZS92ZW5kb3IvbGliL2Vwb2NoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsY0FBYztBQUNkLG1EQUFtRDtBQUNuRCxrQkFBZSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUMifQ==
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ // @ts-nocheck
4
+ // Generated from jose@6.0.8. Do not edit directly.
5
+ function isObjectLike(value) {
6
+ return typeof value === 'object' && value !== null;
7
+ }
8
+ exports.default = (input) => {
9
+ if (!isObjectLike(input) || Object.prototype.toString.call(input) !== '[object Object]') {
10
+ return false;
11
+ }
12
+ if (Object.getPrototypeOf(input) === null) {
13
+ return true;
14
+ }
15
+ let proto = input;
16
+ while (Object.getPrototypeOf(proto) !== null) {
17
+ proto = Object.getPrototypeOf(proto);
18
+ }
19
+ return Object.getPrototypeOf(input) === proto;
20
+ };
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNfb2JqZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vdGRmMy9zcmMvY3J5cHRvL2pvc2UvdmVuZG9yL2xpYi9pc19vYmplY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxjQUFjO0FBQ2QsbURBQW1EO0FBQ25ELFNBQVMsWUFBWSxDQUFDLEtBQUs7SUFDdkIsT0FBTyxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxLQUFLLElBQUksQ0FBQztBQUN2RCxDQUFDO0FBQ0Qsa0JBQWUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtJQUNyQixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3RGLE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFDRCxJQUFJLE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDeEMsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUNELElBQUksS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNsQixPQUFPLE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDM0MsS0FBSyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsS0FBSyxLQUFLLENBQUM7QUFDbEQsQ0FBQyxDQUFDIn0=
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ // @ts-nocheck
7
+ // Generated from jose@6.0.8. Do not edit directly.
8
+ const errors_js_1 = require("../util/errors.js");
9
+ const buffer_utils_js_1 = require("./buffer_utils.js");
10
+ const epoch_js_1 = __importDefault(require("./epoch.js"));
11
+ const secs_js_1 = __importDefault(require("./secs.js"));
12
+ const is_object_js_1 = __importDefault(require("./is_object.js"));
13
+ const normalizeTyp = (value) => value.toLowerCase().replace(/^application\//, '');
14
+ const checkAudiencePresence = (audPayload, audOption) => {
15
+ if (typeof audPayload === 'string') {
16
+ return audOption.includes(audPayload);
17
+ }
18
+ if (Array.isArray(audPayload)) {
19
+ return audOption.some(Set.prototype.has.bind(new Set(audPayload)));
20
+ }
21
+ return false;
22
+ };
23
+ exports.default = (protectedHeader, encodedPayload, options = {}) => {
24
+ let payload;
25
+ try {
26
+ payload = JSON.parse(buffer_utils_js_1.decoder.decode(encodedPayload));
27
+ }
28
+ catch {
29
+ }
30
+ if (!(0, is_object_js_1.default)(payload)) {
31
+ throw new errors_js_1.JWTInvalid('JWT Claims Set must be a top-level JSON object');
32
+ }
33
+ const { typ } = options;
34
+ if (typ &&
35
+ (typeof protectedHeader.typ !== 'string' ||
36
+ normalizeTyp(protectedHeader.typ) !== normalizeTyp(typ))) {
37
+ throw new errors_js_1.JWTClaimValidationFailed('unexpected "typ" JWT header value', payload, 'typ', 'check_failed');
38
+ }
39
+ const { requiredClaims = [], issuer, subject, audience, maxTokenAge } = options;
40
+ const presenceCheck = [...requiredClaims];
41
+ if (maxTokenAge !== undefined)
42
+ presenceCheck.push('iat');
43
+ if (audience !== undefined)
44
+ presenceCheck.push('aud');
45
+ if (subject !== undefined)
46
+ presenceCheck.push('sub');
47
+ if (issuer !== undefined)
48
+ presenceCheck.push('iss');
49
+ for (const claim of new Set(presenceCheck.reverse())) {
50
+ if (!(claim in payload)) {
51
+ throw new errors_js_1.JWTClaimValidationFailed(`missing required "${claim}" claim`, payload, claim, 'missing');
52
+ }
53
+ }
54
+ if (issuer &&
55
+ !(Array.isArray(issuer) ? issuer : [issuer]).includes(payload.iss)) {
56
+ throw new errors_js_1.JWTClaimValidationFailed('unexpected "iss" claim value', payload, 'iss', 'check_failed');
57
+ }
58
+ if (subject && payload.sub !== subject) {
59
+ throw new errors_js_1.JWTClaimValidationFailed('unexpected "sub" claim value', payload, 'sub', 'check_failed');
60
+ }
61
+ if (audience &&
62
+ !checkAudiencePresence(payload.aud, typeof audience === 'string' ? [audience] : audience)) {
63
+ throw new errors_js_1.JWTClaimValidationFailed('unexpected "aud" claim value', payload, 'aud', 'check_failed');
64
+ }
65
+ let tolerance;
66
+ switch (typeof options.clockTolerance) {
67
+ case 'string':
68
+ tolerance = (0, secs_js_1.default)(options.clockTolerance);
69
+ break;
70
+ case 'number':
71
+ tolerance = options.clockTolerance;
72
+ break;
73
+ case 'undefined':
74
+ tolerance = 0;
75
+ break;
76
+ default:
77
+ throw new TypeError('Invalid clockTolerance option type');
78
+ }
79
+ const { currentDate } = options;
80
+ const now = (0, epoch_js_1.default)(currentDate || new Date());
81
+ if ((payload.iat !== undefined || maxTokenAge) && typeof payload.iat !== 'number') {
82
+ throw new errors_js_1.JWTClaimValidationFailed('"iat" claim must be a number', payload, 'iat', 'invalid');
83
+ }
84
+ if (payload.nbf !== undefined) {
85
+ if (typeof payload.nbf !== 'number') {
86
+ throw new errors_js_1.JWTClaimValidationFailed('"nbf" claim must be a number', payload, 'nbf', 'invalid');
87
+ }
88
+ if (payload.nbf > now + tolerance) {
89
+ throw new errors_js_1.JWTClaimValidationFailed('"nbf" claim timestamp check failed', payload, 'nbf', 'check_failed');
90
+ }
91
+ }
92
+ if (payload.exp !== undefined) {
93
+ if (typeof payload.exp !== 'number') {
94
+ throw new errors_js_1.JWTClaimValidationFailed('"exp" claim must be a number', payload, 'exp', 'invalid');
95
+ }
96
+ if (payload.exp <= now - tolerance) {
97
+ throw new errors_js_1.JWTExpired('"exp" claim timestamp check failed', payload, 'exp', 'check_failed');
98
+ }
99
+ }
100
+ if (maxTokenAge) {
101
+ const age = now - payload.iat;
102
+ const max = typeof maxTokenAge === 'number' ? maxTokenAge : (0, secs_js_1.default)(maxTokenAge);
103
+ if (age - tolerance > max) {
104
+ throw new errors_js_1.JWTExpired('"iat" claim timestamp check failed (too far in the past)', payload, 'iat', 'check_failed');
105
+ }
106
+ if (age < 0 - tolerance) {
107
+ throw new errors_js_1.JWTClaimValidationFailed('"iat" claim timestamp check failed (it should be in the past)', payload, 'iat', 'check_failed');
108
+ }
109
+ }
110
+ return payload;
111
+ };
112
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiand0X2NsYWltc19zZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi90ZGYzL3NyYy9jcnlwdG8vam9zZS92ZW5kb3IvbGliL2p3dF9jbGFpbXNfc2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsY0FBYztBQUNkLG1EQUFtRDtBQUNuRCxpREFBcUY7QUFDckYsdURBQTRDO0FBQzVDLDBEQUErQjtBQUMvQix3REFBNkI7QUFDN0Isa0VBQXNDO0FBQ3RDLE1BQU0sWUFBWSxHQUFHLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUMsT0FBTyxDQUFDLGdCQUFnQixFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ2xGLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxVQUFVLEVBQUUsU0FBUyxFQUFFLEVBQUU7SUFDcEQsSUFBSSxPQUFPLFVBQVUsS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUNqQyxPQUFPLFNBQVMsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUNELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1FBQzVCLE9BQU8sU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNqQixDQUFDLENBQUM7QUFDRixrQkFBZSxDQUFDLGVBQWUsRUFBRSxjQUFjLEVBQUUsT0FBTyxHQUFHLEVBQUUsRUFBRSxFQUFFO0lBQzdELElBQUksT0FBTyxDQUFDO0lBQ1osSUFBSSxDQUFDO1FBQ0QsT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMseUJBQU8sQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztJ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
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ // @ts-nocheck
4
+ // Generated from jose@6.0.8. Do not edit directly.
5
+ const minute = 60;
6
+ const hour = minute * 60;
7
+ const day = hour * 24;
8
+ const week = day * 7;
9
+ const year = day * 365.25;
10
+ const REGEX = /^(\+|\-)? ?(\d+|\d+\.\d+) ?(seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)(?: (ago|from now))?$/i;
11
+ exports.default = (str) => {
12
+ const matched = REGEX.exec(str);
13
+ if (!matched || (matched[4] && matched[1])) {
14
+ throw new TypeError('Invalid time period format');
15
+ }
16
+ const value = parseFloat(matched[2]);
17
+ const unit = matched[3].toLowerCase();
18
+ let numericDate;
19
+ switch (unit) {
20
+ case 'sec':
21
+ case 'secs':
22
+ case 'second':
23
+ case 'seconds':
24
+ case 's':
25
+ numericDate = Math.round(value);
26
+ break;
27
+ case 'minute':
28
+ case 'minutes':
29
+ case 'min':
30
+ case 'mins':
31
+ case 'm':
32
+ numericDate = Math.round(value * minute);
33
+ break;
34
+ case 'hour':
35
+ case 'hours':
36
+ case 'hr':
37
+ case 'hrs':
38
+ case 'h':
39
+ numericDate = Math.round(value * hour);
40
+ break;
41
+ case 'day':
42
+ case 'days':
43
+ case 'd':
44
+ numericDate = Math.round(value * day);
45
+ break;
46
+ case 'week':
47
+ case 'weeks':
48
+ case 'w':
49
+ numericDate = Math.round(value * week);
50
+ break;
51
+ default:
52
+ numericDate = Math.round(value * year);
53
+ break;
54
+ }
55
+ if (matched[1] === '-' || matched[4] === 'ago') {
56
+ return -numericDate;
57
+ }
58
+ return numericDate;
59
+ };
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vjcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3RkZjMvc3JjL2NyeXB0by9qb3NlL3ZlbmRvci9saWIvc2Vjcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLGNBQWM7QUFDZCxtREFBbUQ7QUFDbkQsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDO0FBQ2xCLE1BQU0sSUFBSSxHQUFHLE1BQU0sR0FBRyxFQUFFLENBQUM7QUFDekIsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztBQUN0QixNQUFNLElBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDO0FBQ3JCLE1BQU0sSUFBSSxHQUFHLEdBQUcsR0FBRyxNQUFNLENBQUM7QUFDMUIsTUFBTSxLQUFLLEdBQUcsbUlBQW1JLENBQUM7QUFDbEosa0JBQWUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtJQUNuQixNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2hDLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUN6QyxNQUFNLElBQUksU0FBUyxDQUFDLDRCQUE0QixDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUNELE1BQU0sS0FBSyxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNyQyxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDdEMsSUFBSSxXQUFXLENBQUM7SUFDaEIsUUFBUSxJQUFJLEVBQUUsQ0FBQztRQUNYLEtBQUssS0FBSyxDQUFDO1FBQ1gsS0FBSyxNQUFNLENBQUM7UUFDWixLQUFLLFFBQVEsQ0FBQztRQUNkLEtBQUssU0FBUyxDQUFDO1FBQ2YsS0FBSyxHQUFHO1lBQ0osV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDaEMsTUFBTTtRQUNWLEtBQUssUUFBUSxDQUFDO1FBQ2QsS0FBSyxTQUFTLENBQUM7UUFDZixLQUFLLEtBQUssQ0FBQztRQUNYLEtBQUssTUFBTSxDQUFDO1FBQ1osS0FBSyxHQUFHO1lBQ0osV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxDQUFDO1lBQ3pDLE1BQU07UUFDVixLQUFLLE1BQU0sQ0FBQztRQUNaLEtBQUssT0FBTyxDQUFDO1FBQ2IsS0FBSyxJQUFJLENBQUM7UUFDVixLQUFLLEtBQUssQ0FBQztRQUNYLEtBQUssR0FBRztZQUNKLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQztZQUN2QyxNQUFNO1FBQ1YsS0FBSyxLQUFLLENBQUM7UUFDWCxLQUFLLE1BQU0sQ0FBQztRQUNaLEtBQUssR0FBRztZQUNKLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsQ0FBQztZQUN0QyxNQUFNO1FBQ1YsS0FBSyxNQUFNLENBQUM7UUFDWixLQUFLLE9BQU8sQ0FBQztRQUNiLEtBQUssR0FBRztZQUNKLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQztZQUN2QyxNQUFNO1FBQ1Y7WUFDSSxXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUM7WUFDdkMsTUFBTTtJQUNkLENBQUM7SUFDRCxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssRUFBRSxDQUFDO1FBQzdDLE9BQU8sQ0FBQyxXQUFXLENBQUM7SUFDeEIsQ0FBQztJQUNELE9BQU8sV0FBVyxDQUFDO0FBQ3ZCLENBQUMsQ0FBQyJ9
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ // @ts-nocheck
4
+ // Generated from jose@6.0.8. Do not edit directly.
5
+ const errors_js_1 = require("../util/errors.js");
6
+ exports.default = (Err, recognizedDefault, recognizedOption, protectedHeader, joseHeader) => {
7
+ if (joseHeader.crit !== undefined && protectedHeader?.crit === undefined) {
8
+ throw new Err('"crit" (Critical) Header Parameter MUST be integrity protected');
9
+ }
10
+ if (!protectedHeader || protectedHeader.crit === undefined) {
11
+ return new Set();
12
+ }
13
+ if (!Array.isArray(protectedHeader.crit) ||
14
+ protectedHeader.crit.length === 0 ||
15
+ protectedHeader.crit.some((input) => typeof input !== 'string' || input.length === 0)) {
16
+ throw new Err('"crit" (Critical) Header Parameter MUST be an array of non-empty strings when present');
17
+ }
18
+ let recognized;
19
+ if (recognizedOption !== undefined) {
20
+ recognized = new Map([...Object.entries(recognizedOption), ...recognizedDefault.entries()]);
21
+ }
22
+ else {
23
+ recognized = recognizedDefault;
24
+ }
25
+ for (const parameter of protectedHeader.crit) {
26
+ if (!recognized.has(parameter)) {
27
+ throw new errors_js_1.JOSENotSupported(`Extension Header Parameter "${parameter}" is not recognized`);
28
+ }
29
+ if (joseHeader[parameter] === undefined) {
30
+ throw new Err(`Extension Header Parameter "${parameter}" is missing`);
31
+ }
32
+ if (recognized.get(parameter) && protectedHeader[parameter] === undefined) {
33
+ throw new Err(`Extension Header Parameter "${parameter}" MUST be integrity protected`);
34
+ }
35
+ }
36
+ return new Set(protectedHeader.crit);
37
+ };
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGVfY3JpdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3RkZjMvc3JjL2NyeXB0by9qb3NlL3ZlbmRvci9saWIvdmFsaWRhdGVfY3JpdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLGNBQWM7QUFDZCxtREFBbUQ7QUFDbkQsaURBQTZFO0FBQzdFLGtCQUFlLENBQUMsR0FBRyxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsRUFBRTtJQUNyRixJQUFJLFVBQVUsQ0FBQyxJQUFJLEtBQUssU0FBUyxJQUFJLGVBQWUsRUFBRSxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDdkUsTUFBTSxJQUFJLEdBQUcsQ0FBQyxnRUFBZ0UsQ0FBQyxDQUFDO0lBQ3BGLENBQUM7SUFDRCxJQUFJLENBQUMsZUFBZSxJQUFJLGVBQWUsQ0FBQyxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDekQsT0FBTyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDO1FBQ3BDLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUM7UUFDakMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDeEYsTUFBTSxJQUFJLEdBQUcsQ0FBQyx1RkFBdUYsQ0FBQyxDQUFDO0lBQzNHLENBQUM7SUFDRCxJQUFJLFVBQVUsQ0FBQztJQUNmLElBQUksZ0JBQWdCLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDakMsVUFBVSxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsR0FBRyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDaEcsQ0FBQztTQUNJLENBQUM7UUFDRixVQUFVLEdBQUcsaUJBQWlCLENBQUM7SUFDbkMsQ0FBQztJQUNELEtBQUssTUFBTSxTQUFTLElBQUksZUFBZSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzNDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDN0IsTUFBTSxJQUFJLDRCQUFnQixDQUFDLCtCQUErQixTQUFTLHFCQUFxQixDQUFDLENBQUM7UUFDOUYsQ0FBQztRQUNELElBQUksVUFBVSxDQUFDLFNBQVMsQ0FBQyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3RDLE1BQU0sSUFBSSxHQUFHLENBQUMsK0JBQStCLFNBQVMsY0FBYyxDQUFDLENBQUM7UUFDMUUsQ0FBQztRQUNELElBQUksVUFBVSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxlQUFlLENBQUMsU0FBUyxDQUFDLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDeEUsTUFBTSxJQUFJLEdBQUcsQ0FBQywrQkFBK0IsU0FBUywrQkFBK0IsQ0FBQyxDQUFDO1FBQzNGLENBQUM7SUFDTCxDQUFDO0lBQ0QsT0FBTyxJQUFJLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDekMsQ0FBQyxDQUFDIn0=
@@ -0,0 +1,135 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.JWSSignatureVerificationFailed = exports.JWKSTimeout = exports.JWKSMultipleMatchingKeys = exports.JWKSNoMatchingKey = exports.JWKSInvalid = exports.JWKInvalid = exports.JWTInvalid = exports.JWSInvalid = exports.JWEInvalid = exports.JWEDecryptionFailed = exports.JOSENotSupported = exports.JOSEAlgNotAllowed = exports.JWTExpired = exports.JWTClaimValidationFailed = exports.JOSEError = void 0;
4
+ // @ts-nocheck
5
+ // Generated from jose@6.0.8. Do not edit directly.
6
+ class JOSEError extends Error {
7
+ constructor(message, options) {
8
+ super(message, options);
9
+ this.code = 'ERR_JOSE_GENERIC';
10
+ this.name = this.constructor.name;
11
+ Error.captureStackTrace?.(this, this.constructor);
12
+ }
13
+ }
14
+ exports.JOSEError = JOSEError;
15
+ JOSEError.code = 'ERR_JOSE_GENERIC';
16
+ class JWTClaimValidationFailed extends JOSEError {
17
+ constructor(message, payload, claim = 'unspecified', reason = 'unspecified') {
18
+ super(message, { cause: { claim, reason, payload } });
19
+ this.code = 'ERR_JWT_CLAIM_VALIDATION_FAILED';
20
+ this.claim = claim;
21
+ this.reason = reason;
22
+ this.payload = payload;
23
+ }
24
+ }
25
+ exports.JWTClaimValidationFailed = JWTClaimValidationFailed;
26
+ JWTClaimValidationFailed.code = 'ERR_JWT_CLAIM_VALIDATION_FAILED';
27
+ class JWTExpired extends JOSEError {
28
+ constructor(message, payload, claim = 'unspecified', reason = 'unspecified') {
29
+ super(message, { cause: { claim, reason, payload } });
30
+ this.code = 'ERR_JWT_EXPIRED';
31
+ this.claim = claim;
32
+ this.reason = reason;
33
+ this.payload = payload;
34
+ }
35
+ }
36
+ exports.JWTExpired = JWTExpired;
37
+ JWTExpired.code = 'ERR_JWT_EXPIRED';
38
+ class JOSEAlgNotAllowed extends JOSEError {
39
+ constructor() {
40
+ super(...arguments);
41
+ this.code = 'ERR_JOSE_ALG_NOT_ALLOWED';
42
+ }
43
+ }
44
+ exports.JOSEAlgNotAllowed = JOSEAlgNotAllowed;
45
+ JOSEAlgNotAllowed.code = 'ERR_JOSE_ALG_NOT_ALLOWED';
46
+ class JOSENotSupported extends JOSEError {
47
+ constructor() {
48
+ super(...arguments);
49
+ this.code = 'ERR_JOSE_NOT_SUPPORTED';
50
+ }
51
+ }
52
+ exports.JOSENotSupported = JOSENotSupported;
53
+ JOSENotSupported.code = 'ERR_JOSE_NOT_SUPPORTED';
54
+ class JWEDecryptionFailed extends JOSEError {
55
+ constructor(message = 'decryption operation failed', options) {
56
+ super(message, options);
57
+ this.code = 'ERR_JWE_DECRYPTION_FAILED';
58
+ }
59
+ }
60
+ exports.JWEDecryptionFailed = JWEDecryptionFailed;
61
+ JWEDecryptionFailed.code = 'ERR_JWE_DECRYPTION_FAILED';
62
+ class JWEInvalid extends JOSEError {
63
+ constructor() {
64
+ super(...arguments);
65
+ this.code = 'ERR_JWE_INVALID';
66
+ }
67
+ }
68
+ exports.JWEInvalid = JWEInvalid;
69
+ JWEInvalid.code = 'ERR_JWE_INVALID';
70
+ class JWSInvalid extends JOSEError {
71
+ constructor() {
72
+ super(...arguments);
73
+ this.code = 'ERR_JWS_INVALID';
74
+ }
75
+ }
76
+ exports.JWSInvalid = JWSInvalid;
77
+ JWSInvalid.code = 'ERR_JWS_INVALID';
78
+ class JWTInvalid extends JOSEError {
79
+ constructor() {
80
+ super(...arguments);
81
+ this.code = 'ERR_JWT_INVALID';
82
+ }
83
+ }
84
+ exports.JWTInvalid = JWTInvalid;
85
+ JWTInvalid.code = 'ERR_JWT_INVALID';
86
+ class JWKInvalid extends JOSEError {
87
+ constructor() {
88
+ super(...arguments);
89
+ this.code = 'ERR_JWK_INVALID';
90
+ }
91
+ }
92
+ exports.JWKInvalid = JWKInvalid;
93
+ JWKInvalid.code = 'ERR_JWK_INVALID';
94
+ class JWKSInvalid extends JOSEError {
95
+ constructor() {
96
+ super(...arguments);
97
+ this.code = 'ERR_JWKS_INVALID';
98
+ }
99
+ }
100
+ exports.JWKSInvalid = JWKSInvalid;
101
+ JWKSInvalid.code = 'ERR_JWKS_INVALID';
102
+ class JWKSNoMatchingKey extends JOSEError {
103
+ constructor(message = 'no applicable key found in the JSON Web Key Set', options) {
104
+ super(message, options);
105
+ this.code = 'ERR_JWKS_NO_MATCHING_KEY';
106
+ }
107
+ }
108
+ exports.JWKSNoMatchingKey = JWKSNoMatchingKey;
109
+ JWKSNoMatchingKey.code = 'ERR_JWKS_NO_MATCHING_KEY';
110
+ class JWKSMultipleMatchingKeys extends JOSEError {
111
+ constructor(message = 'multiple matching keys found in the JSON Web Key Set', options) {
112
+ super(message, options);
113
+ this.code = 'ERR_JWKS_MULTIPLE_MATCHING_KEYS';
114
+ }
115
+ }
116
+ exports.JWKSMultipleMatchingKeys = JWKSMultipleMatchingKeys;
117
+ Symbol.asyncIterator;
118
+ JWKSMultipleMatchingKeys.code = 'ERR_JWKS_MULTIPLE_MATCHING_KEYS';
119
+ class JWKSTimeout extends JOSEError {
120
+ constructor(message = 'request timed out', options) {
121
+ super(message, options);
122
+ this.code = 'ERR_JWKS_TIMEOUT';
123
+ }
124
+ }
125
+ exports.JWKSTimeout = JWKSTimeout;
126
+ JWKSTimeout.code = 'ERR_JWKS_TIMEOUT';
127
+ class JWSSignatureVerificationFailed extends JOSEError {
128
+ constructor(message = 'signature verification failed', options) {
129
+ super(message, options);
130
+ this.code = 'ERR_JWS_SIGNATURE_VERIFICATION_FAILED';
131
+ }
132
+ }
133
+ exports.JWSSignatureVerificationFailed = JWSSignatureVerificationFailed;
134
+ JWSSignatureVerificationFailed.code = 'ERR_JWS_SIGNATURE_VERIFICATION_FAILED';
135
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vdGRmMy9zcmMvY3J5cHRvL2pvc2UvdmVuZG9yL3V0aWwvZXJyb3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGNBQWM7QUFDZCxtREFBbUQ7QUFDbkQsTUFBYSxTQUFVLFNBQVEsS0FBSztJQUdoQyxZQUFZLE9BQU8sRUFBRSxPQUFPO1FBQ3hCLEtBQUssQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFGNUIsU0FBSSxHQUFHLGtCQUFrQixDQUFDO1FBR3RCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7UUFDbEMsS0FBSyxDQUFDLGlCQUFpQixFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN0RCxDQUFDOztBQVBMLDhCQVFDO0FBUFUsY0FBSSxHQUFHLGtCQUFrQixBQUFyQixDQUFzQjtBQVFyQyxNQUFhLHdCQUF5QixTQUFRLFNBQVM7SUFNbkQsWUFBWSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssR0FBRyxhQUFhLEVBQUUsTUFBTSxHQUFHLGFBQWE7UUFDdkUsS0FBSyxDQUFDLE9BQU8sRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBTDFELFNBQUksR0FBRyxpQ0FBaUMsQ0FBQztRQU1yQyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztJQUMzQixDQUFDOztBQVhMLDREQVlDO0FBWFUsNkJBQUksR0FBRyxpQ0FBaUMsQUFBcEMsQ0FBcUM7QUFZcEQsTUFBYSxVQUFXLFNBQVEsU0FBUztJQU1yQyxZQUFZLE9BQU8s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