@suveren/gateway 0.7.6 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (161) hide show
  1. package/content/integrations/mollie.json +103 -28
  2. package/dist/mcp-server/http.mjs +228 -118
  3. package/dist/ui/assets/{index-CsrM6RQr.js → index-BFnSVa9N.js} +22 -22
  4. package/dist/ui/index.html +1 -1
  5. package/node_modules/@hap/core/dist/index.d.mts +29 -6
  6. package/node_modules/@hap/core/dist/index.d.ts +29 -6
  7. package/node_modules/@hap/core/dist/index.js +54 -8
  8. package/node_modules/@hap/core/dist/index.mjs +53 -8
  9. package/node_modules/@hap/core/package.json +2 -1
  10. package/node_modules/@hap/core/src/frame.ts +115 -14
  11. package/node_modules/@hap/core/src/gatekeeper.ts +26 -0
  12. package/node_modules/@hap/core/src/types.ts +7 -1
  13. package/node_modules/@types/node/README.md +1 -1
  14. package/node_modules/@types/node/buffer.buffer.d.ts +5 -0
  15. package/node_modules/@types/node/crypto.d.ts +0 -2
  16. package/node_modules/@types/node/dgram.d.ts +119 -4
  17. package/node_modules/@types/node/ffi.d.ts +1 -1
  18. package/node_modules/@types/node/fs/promises.d.ts +61 -65
  19. package/node_modules/@types/node/fs.d.ts +86 -76
  20. package/node_modules/@types/node/http.d.ts +1 -1
  21. package/node_modules/@types/node/http2.d.ts +2 -2
  22. package/node_modules/@types/node/index.d.ts +1 -0
  23. package/node_modules/@types/node/inspector.d.ts +2 -1
  24. package/node_modules/@types/node/net.d.ts +108 -16
  25. package/node_modules/@types/node/package.json +2 -2
  26. package/node_modules/@types/node/quic.d.ts +37 -11
  27. package/node_modules/@types/node/stream/iter.d.ts +4 -4
  28. package/node_modules/@types/node/tls.d.ts +24 -0
  29. package/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +5 -0
  30. package/node_modules/@types/node/ts5.6/index.d.ts +1 -0
  31. package/node_modules/@types/node/ts5.7/index.d.ts +1 -0
  32. package/node_modules/@types/node/tty.d.ts +4 -3
  33. package/node_modules/@types/node/vfs.d.ts +210 -0
  34. package/node_modules/@types/node/vm.d.ts +1 -1
  35. package/node_modules/express-rate-limit/dist/index.cjs +6 -3
  36. package/node_modules/express-rate-limit/dist/index.d.cts +11 -0
  37. package/node_modules/express-rate-limit/dist/index.d.mts +11 -0
  38. package/node_modules/express-rate-limit/dist/index.d.ts +11 -0
  39. package/node_modules/express-rate-limit/dist/index.mjs +6 -3
  40. package/node_modules/express-rate-limit/{license.md → license} +7 -6
  41. package/node_modules/express-rate-limit/package.json +5 -5
  42. package/node_modules/express-rate-limit/readme.md +1 -0
  43. package/node_modules/fast-uri/index.js +20 -5
  44. package/node_modules/fast-uri/lib/utils.js +8 -1
  45. package/node_modules/fast-uri/package.json +1 -1
  46. package/node_modules/fast-uri/test/component-safe-serialization.test.js +58 -0
  47. package/node_modules/fast-uri/test/ipv6-validation.test.js +34 -0
  48. package/node_modules/ip-address/README.md +92 -82
  49. package/node_modules/ip-address/dist/common.d.ts +20 -0
  50. package/node_modules/ip-address/dist/common.js +36 -0
  51. package/node_modules/ip-address/dist/common.js.map +1 -1
  52. package/node_modules/ip-address/dist/ipv4.d.ts +50 -0
  53. package/node_modules/ip-address/dist/ipv4.js +75 -0
  54. package/node_modules/ip-address/dist/ipv4.js.map +1 -1
  55. package/node_modules/ip-address/dist/ipv6.d.ts +79 -10
  56. package/node_modules/ip-address/dist/ipv6.js +120 -30
  57. package/node_modules/ip-address/dist/ipv6.js.map +1 -1
  58. package/node_modules/ip-address/dist/v4/constants.d.ts +12 -0
  59. package/node_modules/ip-address/dist/v4/constants.js +40 -1
  60. package/node_modules/ip-address/dist/v4/constants.js.map +1 -1
  61. package/node_modules/ip-address/dist/v6/constants.d.ts +14 -0
  62. package/node_modules/ip-address/dist/v6/constants.js +47 -1
  63. package/node_modules/ip-address/dist/v6/constants.js.map +1 -1
  64. package/node_modules/ip-address/package.json +1 -1
  65. package/node_modules/jose/dist/types/jwe/compact/decrypt.d.ts +7 -16
  66. package/node_modules/jose/dist/types/jwe/compact/encrypt.d.ts +6 -17
  67. package/node_modules/jose/dist/types/jwe/flattened/decrypt.d.ts +7 -16
  68. package/node_modules/jose/dist/types/jwe/flattened/encrypt.d.ts +11 -34
  69. package/node_modules/jose/dist/types/jwe/general/decrypt.d.ts +7 -16
  70. package/node_modules/jose/dist/types/jwe/general/encrypt.d.ts +15 -35
  71. package/node_modules/jose/dist/types/jwk/embedded.d.ts +3 -8
  72. package/node_modules/jose/dist/types/jwk/thumbprint.d.ts +5 -5
  73. package/node_modules/jose/dist/types/jwks/local.d.ts +6 -10
  74. package/node_modules/jose/dist/types/jwks/remote.d.ts +13 -24
  75. package/node_modules/jose/dist/types/jws/compact/sign.d.ts +5 -10
  76. package/node_modules/jose/dist/types/jws/compact/verify.d.ts +9 -18
  77. package/node_modules/jose/dist/types/jws/flattened/sign.d.ts +7 -16
  78. package/node_modules/jose/dist/types/jws/flattened/verify.d.ts +9 -18
  79. package/node_modules/jose/dist/types/jws/general/sign.d.ts +11 -21
  80. package/node_modules/jose/dist/types/jws/general/verify.d.ts +9 -18
  81. package/node_modules/jose/dist/types/jwt/decrypt.d.ts +10 -20
  82. package/node_modules/jose/dist/types/jwt/encrypt.d.ts +6 -13
  83. package/node_modules/jose/dist/types/jwt/sign.d.ts +5 -6
  84. package/node_modules/jose/dist/types/jwt/unsecured.d.ts +9 -14
  85. package/node_modules/jose/dist/types/jwt/verify.d.ts +9 -19
  86. package/node_modules/jose/dist/types/key/export.d.ts +4 -4
  87. package/node_modules/jose/dist/types/key/generate_key_pair.d.ts +6 -8
  88. package/node_modules/jose/dist/types/key/generate_secret.d.ts +4 -11
  89. package/node_modules/jose/dist/types/key/import.d.ts +10 -17
  90. package/node_modules/jose/dist/types/types.d.ts +44 -84
  91. package/node_modules/jose/dist/types/util/base64url.d.ts +2 -2
  92. package/node_modules/jose/dist/types/util/decode_jwt.d.ts +3 -10
  93. package/node_modules/jose/dist/types/util/decode_protected_header.d.ts +4 -4
  94. package/node_modules/jose/dist/types/util/errors.d.ts +26 -53
  95. package/node_modules/jose/dist/webapi/index.js +70 -32
  96. package/node_modules/jose/dist/webapi/jwe/compact/decrypt.js +7 -8
  97. package/node_modules/jose/dist/webapi/jwe/compact/encrypt.js +42 -48
  98. package/node_modules/jose/dist/webapi/jwe/flattened/decrypt.js +14 -14
  99. package/node_modules/jose/dist/webapi/jwe/flattened/encrypt.js +53 -64
  100. package/node_modules/jose/dist/webapi/jwe/general/decrypt.js +38 -49
  101. package/node_modules/jose/dist/webapi/jwe/general/encrypt.js +121 -169
  102. package/node_modules/jose/dist/webapi/jwk/embedded.js +30 -32
  103. package/node_modules/jose/dist/webapi/jwk/thumbprint.js +54 -70
  104. package/node_modules/jose/dist/webapi/jwks/local.js +47 -64
  105. package/node_modules/jose/dist/webapi/jwks/remote.js +88 -136
  106. package/node_modules/jose/dist/webapi/jws/compact/sign.js +21 -21
  107. package/node_modules/jose/dist/webapi/jws/compact/verify.js +7 -8
  108. package/node_modules/jose/dist/webapi/jws/flattened/sign.js +29 -31
  109. package/node_modules/jose/dist/webapi/jws/flattened/verify.js +21 -24
  110. package/node_modules/jose/dist/webapi/jws/general/sign.js +61 -72
  111. package/node_modules/jose/dist/webapi/jws/general/verify.js +45 -69
  112. package/node_modules/jose/dist/webapi/jwt/decrypt.js +13 -20
  113. package/node_modules/jose/dist/webapi/jwt/encrypt.js +57 -70
  114. package/node_modules/jose/dist/webapi/jwt/sign.js +17 -16
  115. package/node_modules/jose/dist/webapi/jwt/unsecured.js +32 -40
  116. package/node_modules/jose/dist/webapi/jwt/verify.js +12 -14
  117. package/node_modules/jose/dist/webapi/key/export.js +32 -37
  118. package/node_modules/jose/dist/webapi/key/generate_key_pair.js +40 -48
  119. package/node_modules/jose/dist/webapi/key/generate_secret.js +35 -40
  120. package/node_modules/jose/dist/webapi/key/import.js +52 -56
  121. package/node_modules/jose/dist/webapi/lib/asn1.js +130 -169
  122. package/node_modules/jose/dist/webapi/lib/base64.js +18 -20
  123. package/node_modules/jose/dist/webapi/lib/buffer_utils.js +34 -38
  124. package/node_modules/jose/dist/webapi/lib/content_encryption.js +79 -115
  125. package/node_modules/jose/dist/webapi/lib/crypto_key.js +24 -25
  126. package/node_modules/jose/dist/webapi/lib/deflate.js +45 -47
  127. package/node_modules/jose/dist/webapi/lib/helpers.js +40 -37
  128. package/node_modules/jose/dist/webapi/lib/invalid_key_input.js +10 -24
  129. package/node_modules/jose/dist/webapi/lib/is_key_like.js +17 -15
  130. package/node_modules/jose/dist/webapi/lib/jwe_algorithms.js +106 -93
  131. package/node_modules/jose/dist/webapi/lib/jwe_decrypt.js +207 -230
  132. package/node_modules/jose/dist/webapi/lib/jwe_encrypt.js +104 -138
  133. package/node_modules/jose/dist/webapi/lib/jwk_metadata.js +17 -18
  134. package/node_modules/jose/dist/webapi/lib/jwk_to_key.js +9 -16
  135. package/node_modules/jose/dist/webapi/lib/jws_algorithms.js +62 -61
  136. package/node_modules/jose/dist/webapi/lib/jws_sign.js +50 -75
  137. package/node_modules/jose/dist/webapi/lib/jws_verify.js +80 -125
  138. package/node_modules/jose/dist/webapi/lib/jwt_claims_set.js +123 -209
  139. package/node_modules/jose/dist/webapi/lib/key.js +84 -136
  140. package/node_modules/jose/dist/webapi/lib/key_algorithm.js +13 -8
  141. package/node_modules/jose/dist/webapi/lib/key_descriptor.js +8 -6
  142. package/node_modules/jose/dist/webapi/lib/key_management.js +200 -231
  143. package/node_modules/jose/dist/webapi/lib/key_options.js +7 -5
  144. package/node_modules/jose/dist/webapi/lib/options.js +55 -68
  145. package/node_modules/jose/dist/webapi/lib/signing.js +18 -22
  146. package/node_modules/jose/dist/webapi/lib/type_checks.js +26 -29
  147. package/node_modules/jose/dist/webapi/util/base64url.js +26 -35
  148. package/node_modules/jose/dist/webapi/util/decode_jwt.js +32 -31
  149. package/node_modules/jose/dist/webapi/util/decode_protected_header.js +18 -23
  150. package/node_modules/jose/dist/webapi/util/errors.js +94 -84
  151. package/node_modules/jose/package.json +17 -81
  152. package/package.json +2 -2
  153. package/profiles/calendar/0.5.profile.json +190 -0
  154. package/profiles/charge/0.5.profile.json +210 -0
  155. package/profiles/customers/0.7.profile.json +157 -0
  156. package/profiles/deploy/0.9.profile.json +176 -0
  157. package/profiles/email/0.6.profile.json +208 -0
  158. package/profiles/index.json +9 -1
  159. package/profiles/publish/0.5.profile.json +186 -0
  160. package/profiles/purchase/0.5.profile.json +231 -0
  161. package/profiles/records/0.5.profile.json +117 -0
@@ -1,134 +1,98 @@
1
- import { concat, uint64be } from './buffer_utils.js';
2
- import { checkCryptoKey } from './crypto_key.js';
3
- import { invalidKeyInput } from './invalid_key_input.js';
4
- import { JWEDecryptionFailed, JWEInvalid } from '../util/errors.js';
5
- import { isCryptoKey } from './is_key_like.js';
6
- export const generateCek = (enc) => crypto.getRandomValues(new Uint8Array(enc.cekBits >> 3));
1
+ import { concat, uint64be } from "./buffer_utils.js";
2
+ import { checkCryptoKey } from "./crypto_key.js";
3
+ import { invalidKeyInput } from "./invalid_key_input.js";
4
+ import { JWEDecryptionFailed, JWEInvalid } from "../util/errors.js";
5
+ import { isCryptoKey } from "./is_key_like.js";
6
+ const generateCek = (enc) => crypto.getRandomValues(new Uint8Array(enc.cekBits >> 3));
7
7
  function checkCekLength(cek, expected) {
8
- const actual = cek.byteLength << 3;
9
- if (actual !== expected) {
10
- throw new JWEInvalid(`Invalid Content Encryption Key length. Expected ${expected} bits, got ${actual} bits`);
11
- }
8
+ const actual = cek.byteLength << 3;
9
+ if (actual !== expected)
10
+ throw new JWEInvalid(`Invalid Content Encryption Key length. Expected ${expected} bits, got ${actual} bits`);
12
11
  }
13
- export const generateIv = (enc) => crypto.getRandomValues(new Uint8Array(enc.ivBits >> 3));
14
- export function checkIvLength(enc, iv) {
15
- if (iv.length << 3 !== enc.ivBits) {
16
- throw new JWEInvalid('Invalid Initialization Vector length');
17
- }
12
+ const generateIv = (enc) => crypto.getRandomValues(new Uint8Array(enc.ivBits >> 3));
13
+ function checkIvLength(enc, iv) {
14
+ if (iv.length << 3 !== enc.ivBits)
15
+ throw new JWEInvalid("Invalid Initialization Vector length");
18
16
  }
19
17
  async function cbcKeySetup(enc, cek, usage) {
20
- if (!(cek instanceof Uint8Array)) {
21
- throw new TypeError(invalidKeyInput(cek, 'Uint8Array'));
22
- }
23
- const keySize = enc.cekBits >> 1;
24
- const encKey = await crypto.subtle.importKey('raw', cek.subarray(keySize >> 3), 'AES-CBC', false, [usage]);
25
- const macKey = await crypto.subtle.importKey('raw', cek.subarray(0, keySize >> 3), {
26
- hash: `SHA-${keySize << 1}`,
27
- name: 'HMAC',
28
- }, false, ['sign']);
29
- return [encKey, macKey, keySize];
18
+ if (!(cek instanceof Uint8Array))
19
+ throw new TypeError(invalidKeyInput(cek, "Uint8Array"));
20
+ const keySize = enc.cekBits >> 1, encKey = await crypto.subtle.importKey("raw", cek.subarray(keySize >> 3), "AES-CBC", !1, [usage]), macKey = await crypto.subtle.importKey("raw", cek.subarray(0, keySize >> 3), {
21
+ hash: `SHA-${keySize << 1}`,
22
+ name: "HMAC"
23
+ }, !1, ["sign"]);
24
+ return [encKey, macKey, keySize];
30
25
  }
31
26
  async function cbcHmacTag(macKey, macData, keySize) {
32
- return new Uint8Array((await crypto.subtle.sign('HMAC', macKey, macData)).slice(0, keySize >> 3));
27
+ return new Uint8Array((await crypto.subtle.sign("HMAC", macKey, macData)).slice(0, keySize >> 3));
33
28
  }
34
29
  async function cbcEncrypt(enc, plaintext, cek, iv, aad) {
35
- const [encKey, macKey, keySize] = await cbcKeySetup(enc, cek, 'encrypt');
36
- const ciphertext = new Uint8Array(await crypto.subtle.encrypt({
37
- iv: iv,
38
- name: 'AES-CBC',
39
- }, encKey, plaintext));
40
- const macData = concat(aad, iv, ciphertext, uint64be(aad.length * 8));
41
- const tag = await cbcHmacTag(macKey, macData, keySize);
42
- return { ciphertext, tag, iv };
30
+ const [encKey, macKey, keySize] = await cbcKeySetup(enc, cek, "encrypt"), ciphertext = new Uint8Array(await crypto.subtle.encrypt({
31
+ iv,
32
+ name: "AES-CBC"
33
+ }, encKey, plaintext)), macData = concat(aad, iv, ciphertext, uint64be(aad.length * 8)), tag = await cbcHmacTag(macKey, macData, keySize);
34
+ return { ciphertext, tag, iv };
43
35
  }
44
36
  async function timingSafeEqual(a, b) {
45
- const algorithm = { name: 'HMAC', hash: 'SHA-256' };
46
- const key = (await crypto.subtle.generateKey(algorithm, false, ['sign', 'verify']));
47
- const aHmac = await crypto.subtle.sign(algorithm, key, a);
48
- return crypto.subtle.verify(algorithm, key, aHmac, b);
37
+ const algorithm = { name: "HMAC", hash: "SHA-256" }, key = await crypto.subtle.generateKey(algorithm, !1, ["sign", "verify"]), aHmac = await crypto.subtle.sign(algorithm, key, a);
38
+ return crypto.subtle.verify(algorithm, key, aHmac, b);
49
39
  }
50
40
  async function cbcDecrypt(enc, cek, ciphertext, iv, tag, aad) {
51
- const [encKey, macKey, keySize] = await cbcKeySetup(enc, cek, 'decrypt');
52
- const macData = concat(aad, iv, ciphertext, uint64be(aad.length * 8));
53
- const expectedTag = await cbcHmacTag(macKey, macData, keySize);
54
- try {
55
- if (await timingSafeEqual(tag, expectedTag)) {
56
- return new Uint8Array(await crypto.subtle.decrypt({ iv: iv, name: 'AES-CBC' }, encKey, ciphertext));
57
- }
58
- }
59
- catch {
60
- }
61
- throw new JWEDecryptionFailed();
41
+ const [encKey, macKey, keySize] = await cbcKeySetup(enc, cek, "decrypt"), macData = concat(aad, iv, ciphertext, uint64be(aad.length * 8)), expectedTag = await cbcHmacTag(macKey, macData, keySize);
42
+ try {
43
+ if (await timingSafeEqual(tag, expectedTag))
44
+ return new Uint8Array(await crypto.subtle.decrypt({ iv, name: "AES-CBC" }, encKey, ciphertext));
45
+ } catch {
46
+ }
47
+ throw new JWEDecryptionFailed();
62
48
  }
63
49
  async function gcmEncrypt(enc, plaintext, cek, iv, aad) {
64
- const encKey = cek instanceof Uint8Array
65
- ? await crypto.subtle.importKey('raw', cek, 'AES-GCM', false, [
66
- 'encrypt',
67
- ])
68
- : (checkCryptoKey(cek, enc.subtle, 'encrypt'), cek);
69
- const encrypted = new Uint8Array(await crypto.subtle.encrypt({
70
- additionalData: aad,
71
- iv: iv,
72
- name: 'AES-GCM',
73
- tagLength: 128,
74
- }, encKey, plaintext));
75
- const tag = encrypted.slice(-16);
76
- const ciphertext = encrypted.slice(0, -16);
77
- return { ciphertext, tag, iv };
50
+ const encKey = cek instanceof Uint8Array ? await crypto.subtle.importKey("raw", cek, "AES-GCM", !1, [
51
+ "encrypt"
52
+ ]) : (checkCryptoKey(cek, enc.subtle, "encrypt"), cek), encrypted = new Uint8Array(await crypto.subtle.encrypt({
53
+ additionalData: aad,
54
+ iv,
55
+ name: "AES-GCM",
56
+ tagLength: 128
57
+ }, encKey, plaintext)), tag = encrypted.slice(-16);
58
+ return { ciphertext: encrypted.slice(0, -16), tag, iv };
78
59
  }
79
60
  async function gcmDecrypt(enc, cek, ciphertext, iv, tag, aad) {
80
- const encKey = cek instanceof Uint8Array
81
- ? await crypto.subtle.importKey('raw', cek, 'AES-GCM', false, [
82
- 'decrypt',
83
- ])
84
- : (checkCryptoKey(cek, enc.subtle, 'decrypt'), cek);
85
- try {
86
- return new Uint8Array(await crypto.subtle.decrypt({
87
- additionalData: aad,
88
- iv: iv,
89
- name: 'AES-GCM',
90
- tagLength: 128,
91
- }, encKey, concat(ciphertext, tag)));
92
- }
93
- catch {
94
- throw new JWEDecryptionFailed();
95
- }
61
+ const encKey = cek instanceof Uint8Array ? await crypto.subtle.importKey("raw", cek, "AES-GCM", !1, [
62
+ "decrypt"
63
+ ]) : (checkCryptoKey(cek, enc.subtle, "decrypt"), cek);
64
+ try {
65
+ return new Uint8Array(await crypto.subtle.decrypt({
66
+ additionalData: aad,
67
+ iv,
68
+ name: "AES-GCM",
69
+ tagLength: 128
70
+ }, encKey, concat(ciphertext, tag)));
71
+ } catch {
72
+ throw new JWEDecryptionFailed();
73
+ }
96
74
  }
97
- export async function encrypt(enc, plaintext, cek, iv, aad) {
98
- if (!isCryptoKey(cek) && !(cek instanceof Uint8Array)) {
99
- throw new TypeError(invalidKeyInput(cek, 'CryptoKey', 'KeyObject', 'Uint8Array', 'JSON Web Key'));
100
- }
101
- if (iv) {
102
- checkIvLength(enc, iv);
103
- }
104
- else {
105
- iv = generateIv(enc);
106
- }
107
- if (cek instanceof Uint8Array) {
108
- checkCekLength(cek, enc.cekBits);
109
- }
110
- return enc.cbc
111
- ? cbcEncrypt(enc, plaintext, cek, iv, aad)
112
- : gcmEncrypt(enc, plaintext, cek, iv, aad);
75
+ async function encrypt(enc, plaintext, cek, iv, aad) {
76
+ if (!isCryptoKey(cek) && !(cek instanceof Uint8Array))
77
+ throw new TypeError(invalidKeyInput(cek, "CryptoKey", "KeyObject", "Uint8Array", "JSON Web Key"));
78
+ return iv ? checkIvLength(enc, iv) : iv = generateIv(enc), cek instanceof Uint8Array && checkCekLength(cek, enc.cekBits), enc.cbc ? cbcEncrypt(enc, plaintext, cek, iv, aad) : gcmEncrypt(enc, plaintext, cek, iv, aad);
113
79
  }
114
- export async function decrypt(enc, cek, ciphertext, iv, tag, aad) {
115
- if (!isCryptoKey(cek) && !(cek instanceof Uint8Array)) {
116
- throw new TypeError(invalidKeyInput(cek, 'CryptoKey', 'KeyObject', 'Uint8Array', 'JSON Web Key'));
117
- }
118
- if (!iv) {
119
- throw new JWEInvalid('JWE Initialization Vector missing');
120
- }
121
- if (!tag) {
122
- throw new JWEInvalid('JWE Authentication Tag missing');
123
- }
124
- if (!enc.cbc && tag.length !== 16) {
125
- throw new JWEInvalid('Invalid Authentication Tag length');
126
- }
127
- checkIvLength(enc, iv);
128
- if (cek instanceof Uint8Array) {
129
- checkCekLength(cek, enc.cekBits);
130
- }
131
- return enc.cbc
132
- ? cbcDecrypt(enc, cek, ciphertext, iv, tag, aad)
133
- : gcmDecrypt(enc, cek, ciphertext, iv, tag, aad);
80
+ async function decrypt(enc, cek, ciphertext, iv, tag, aad) {
81
+ if (!isCryptoKey(cek) && !(cek instanceof Uint8Array))
82
+ throw new TypeError(invalidKeyInput(cek, "CryptoKey", "KeyObject", "Uint8Array", "JSON Web Key"));
83
+ if (!iv)
84
+ throw new JWEInvalid("JWE Initialization Vector missing");
85
+ if (!tag)
86
+ throw new JWEInvalid("JWE Authentication Tag missing");
87
+ if (!enc.cbc && tag.length !== 16)
88
+ throw new JWEInvalid("Invalid Authentication Tag length");
89
+ return checkIvLength(enc, iv), cek instanceof Uint8Array && checkCekLength(cek, enc.cekBits), enc.cbc ? cbcDecrypt(enc, cek, ciphertext, iv, tag, aad) : gcmDecrypt(enc, cek, ciphertext, iv, tag, aad);
134
90
  }
91
+ export {
92
+ checkCekLength,
93
+ checkIvLength,
94
+ decrypt,
95
+ encrypt,
96
+ generateCek,
97
+ generateIv
98
+ };
@@ -1,28 +1,27 @@
1
- const unusable = (name, prop = 'algorithm.name') => new TypeError(`CryptoKey does not support this operation, its ${prop} must be ${name}`);
2
- export function checkUsage(key, usage) {
3
- if (usage && !key.usages.includes(usage)) {
4
- throw new TypeError(`CryptoKey does not support this operation, its usages must include ${usage}.`);
5
- }
1
+ const unusable = (name, prop = "algorithm.name") => new TypeError(`CryptoKey does not support this operation, its ${prop} must be ${name}`);
2
+ function checkUsage(key, usage) {
3
+ if (usage && !key.usages.includes(usage))
4
+ throw new TypeError(`CryptoKey does not support this operation, its usages must include ${usage}.`);
6
5
  }
7
- export function checkModulusLength(alg, key) {
8
- const { modulusLength } = key.algorithm;
9
- if (typeof modulusLength !== 'number' || modulusLength < 2048) {
10
- throw new TypeError(`${alg} requires key modulusLength to be 2048 bits or larger`);
11
- }
6
+ function checkModulusLength(alg, key) {
7
+ const { modulusLength } = key.algorithm;
8
+ if (typeof modulusLength != "number" || modulusLength < 2048)
9
+ throw new TypeError(`${alg} requires key modulusLength to be 2048 bits or larger`);
12
10
  }
13
- export function checkCryptoKey(key, expected, usage) {
14
- const algorithm = key.algorithm;
15
- if (algorithm.name !== expected.name) {
16
- throw unusable(expected.name);
17
- }
18
- if (expected.hash && algorithm.hash?.name !== expected.hash) {
19
- throw unusable(expected.hash, 'algorithm.hash');
20
- }
21
- if (expected.namedCurve && algorithm.namedCurve !== expected.namedCurve) {
22
- throw unusable(expected.namedCurve, 'algorithm.namedCurve');
23
- }
24
- if (expected.length !== undefined && algorithm.length !== expected.length) {
25
- throw unusable(expected.length, 'algorithm.length');
26
- }
27
- checkUsage(key, usage);
11
+ function checkCryptoKey(key, expected, usage) {
12
+ const algorithm = key.algorithm;
13
+ if (algorithm.name !== expected.name)
14
+ throw unusable(expected.name);
15
+ if (expected.hash && algorithm.hash?.name !== expected.hash)
16
+ throw unusable(expected.hash, "algorithm.hash");
17
+ if (expected.namedCurve && algorithm.namedCurve !== expected.namedCurve)
18
+ throw unusable(expected.namedCurve, "algorithm.namedCurve");
19
+ if (expected.length !== void 0 && algorithm.length !== expected.length)
20
+ throw unusable(expected.length, "algorithm.length");
21
+ checkUsage(key, usage);
28
22
  }
23
+ export {
24
+ checkCryptoKey,
25
+ checkModulusLength,
26
+ checkUsage
27
+ };
@@ -1,52 +1,50 @@
1
- import { JOSENotSupported, JWEInvalid } from '../util/errors.js';
2
- import { concat } from './buffer_utils.js';
3
- export function validateZip(joseHeader, protectedHeader) {
4
- if (joseHeader.zip !== undefined && joseHeader.zip !== 'DEF') {
5
- throw new JOSENotSupported('Unsupported JWE "zip" (Compression Algorithm) Header Parameter value.');
6
- }
7
- if (joseHeader.zip !== undefined && !protectedHeader?.zip) {
8
- throw new JWEInvalid('JWE "zip" (Compression Algorithm) Header Parameter MUST be in a protected header.');
9
- }
1
+ import { JOSENotSupported, JWEInvalid } from "../util/errors.js";
2
+ import { concat } from "./buffer_utils.js";
3
+ function validateZip(joseHeader, protectedHeader) {
4
+ if (joseHeader.zip !== void 0 && joseHeader.zip !== "DEF")
5
+ throw new JOSENotSupported('Unsupported JWE "zip" (Compression Algorithm) Header Parameter value.');
6
+ if (joseHeader.zip !== void 0 && !protectedHeader?.zip)
7
+ throw new JWEInvalid('JWE "zip" (Compression Algorithm) Header Parameter MUST be in a protected header.');
10
8
  }
11
9
  function supported(name) {
12
- if (typeof globalThis[name] === 'undefined') {
13
- throw new JOSENotSupported(`JWE "zip" (Compression Algorithm) Header Parameter requires the ${name} API.`);
14
- }
10
+ if (typeof globalThis[name] > "u")
11
+ throw new JOSENotSupported(`JWE "zip" (Compression Algorithm) Header Parameter requires the ${name} API.`);
15
12
  }
16
- export async function compress(input) {
17
- supported('CompressionStream');
18
- const cs = new CompressionStream('deflate-raw');
19
- const writer = cs.writable.getWriter();
20
- writer.write(input).catch(() => { });
21
- writer.close().catch(() => { });
22
- const chunks = [];
23
- const reader = cs.readable.getReader();
24
- for (;;) {
25
- const { value, done } = await reader.read();
26
- if (done)
27
- break;
28
- chunks.push(value);
29
- }
30
- return concat(...chunks);
13
+ async function compress(input) {
14
+ supported("CompressionStream");
15
+ const cs = new CompressionStream("deflate-raw"), writer = cs.writable.getWriter();
16
+ writer.write(input).catch(() => {
17
+ }), writer.close().catch(() => {
18
+ });
19
+ const chunks = [], reader = cs.readable.getReader();
20
+ for (; ; ) {
21
+ const { value, done } = await reader.read();
22
+ if (done)
23
+ break;
24
+ chunks.push(value);
25
+ }
26
+ return concat(...chunks);
31
27
  }
32
- export async function decompress(input, maxLength) {
33
- supported('DecompressionStream');
34
- const ds = new DecompressionStream('deflate-raw');
35
- const writer = ds.writable.getWriter();
36
- writer.write(input).catch(() => { });
37
- writer.close().catch(() => { });
38
- const chunks = [];
39
- let length = 0;
40
- const reader = ds.readable.getReader();
41
- for (;;) {
42
- const { value, done } = await reader.read();
43
- if (done)
44
- break;
45
- chunks.push(value);
46
- length += value.byteLength;
47
- if (maxLength !== Infinity && length > maxLength) {
48
- throw new JWEInvalid('Decompressed plaintext exceeded the configured limit');
49
- }
50
- }
51
- return concat(...chunks);
28
+ async function decompress(input, maxLength) {
29
+ supported("DecompressionStream");
30
+ const ds = new DecompressionStream("deflate-raw"), writer = ds.writable.getWriter();
31
+ writer.write(input).catch(() => {
32
+ }), writer.close().catch(() => {
33
+ });
34
+ const chunks = [];
35
+ let length = 0;
36
+ const reader = ds.readable.getReader();
37
+ for (; ; ) {
38
+ const { value, done } = await reader.read();
39
+ if (done)
40
+ break;
41
+ if (chunks.push(value), length += value.byteLength, maxLength !== 1 / 0 && length > maxLength)
42
+ throw new JWEInvalid("Decompressed plaintext exceeded the configured limit");
43
+ }
44
+ return concat(...chunks);
52
45
  }
46
+ export {
47
+ compress,
48
+ decompress,
49
+ validateZip
50
+ };
@@ -1,42 +1,45 @@
1
- import { decode } from '../util/base64url.js';
2
- import { encode, strictDecoder } from './buffer_utils.js';
3
- import { isObject } from './type_checks.js';
4
- export const unprotected = Symbol();
5
- export function assertNotSet(value, name) {
6
- if (value !== undefined) {
7
- throw new TypeError(`${name} can only be called once`);
8
- }
1
+ import { decode } from "../util/base64url.js";
2
+ import { encode, strictDecoder } from "./buffer_utils.js";
3
+ import { isObject } from "./type_checks.js";
4
+ const unprotected = /* @__PURE__ */ Symbol();
5
+ function assertNotSet(value, name) {
6
+ if (value !== void 0)
7
+ throw new TypeError(`${name} can only be called once`);
9
8
  }
10
- export function decodeBase64url(value, label, ErrorClass) {
11
- try {
12
- return decode(value);
13
- }
14
- catch {
15
- throw new ErrorClass(`Failed to base64url decode the ${label}`);
16
- }
9
+ function decodeBase64url(value, label, ErrorClass) {
10
+ try {
11
+ return decode(value);
12
+ } catch {
13
+ throw new ErrorClass(`Failed to base64url decode the ${label}`);
14
+ }
17
15
  }
18
- export function encodeBase64url(value, label, ErrorClass) {
19
- try {
20
- return encode(value);
21
- }
22
- catch {
23
- throw new ErrorClass(`The ${label} is not a valid base64url string`);
24
- }
16
+ function encodeBase64url(value, label, ErrorClass) {
17
+ try {
18
+ return encode(value);
19
+ } catch {
20
+ throw new ErrorClass(`The ${label} is not a valid base64url string`);
21
+ }
25
22
  }
26
- export async function digest(algorithm, data) {
27
- const subtleDigest = `SHA-${algorithm.slice(-3)}`;
28
- return new Uint8Array(await crypto.subtle.digest(subtleDigest, data));
23
+ async function digest(algorithm, data) {
24
+ const subtleDigest = `SHA-${algorithm.slice(-3)}`;
25
+ return new Uint8Array(await crypto.subtle.digest(subtleDigest, data));
29
26
  }
30
- export function parseJoseHeader(b64, ErrorClass, message) {
31
- let parsed;
32
- try {
33
- parsed = JSON.parse(strictDecoder.decode(decode(b64)));
34
- }
35
- catch {
36
- throw new ErrorClass(message);
37
- }
38
- if (!isObject(parsed)) {
39
- throw new ErrorClass(message);
40
- }
41
- return parsed;
27
+ function parseJoseHeader(b64, ErrorClass, message) {
28
+ let parsed;
29
+ try {
30
+ parsed = JSON.parse(strictDecoder.decode(decode(b64)));
31
+ } catch {
32
+ throw new ErrorClass(message);
33
+ }
34
+ if (!isObject(parsed))
35
+ throw new ErrorClass(message);
36
+ return parsed;
42
37
  }
38
+ export {
39
+ assertNotSet,
40
+ decodeBase64url,
41
+ digest,
42
+ encodeBase64url,
43
+ parseJoseHeader,
44
+ unprotected
45
+ };
@@ -1,26 +1,12 @@
1
1
  function message(msg, actual, ...types) {
2
- if (types.length > 2) {
3
- const last = types.pop();
4
- msg += `one of type ${types.join(', ')}, or ${last}.`;
5
- }
6
- else if (types.length === 2) {
7
- msg += `one of type ${types[0]} or ${types[1]}.`;
8
- }
9
- else {
10
- msg += `of type ${types[0]}.`;
11
- }
12
- if (actual == null) {
13
- msg += ` Received ${actual}`;
14
- }
15
- else if (typeof actual === 'function' && actual.name) {
16
- msg += ` Received function ${actual.name}`;
17
- }
18
- else if (typeof actual === 'object' && actual != null) {
19
- if (actual.constructor?.name) {
20
- msg += ` Received an instance of ${actual.constructor.name}`;
21
- }
22
- }
23
- return msg;
2
+ if (types.length > 2) {
3
+ const last = types.pop();
4
+ msg += `one of type ${types.join(", ")}, or ${last}.`;
5
+ } else types.length === 2 ? msg += `one of type ${types[0]} or ${types[1]}.` : msg += `of type ${types[0]}.`;
6
+ return actual == null ? msg += ` Received ${actual}` : typeof actual == "function" && actual.name ? msg += ` Received function ${actual.name}` : typeof actual == "object" && actual != null && actual.constructor?.name && (msg += ` Received an instance of ${actual.constructor.name}`), msg;
24
7
  }
25
- export const invalidKeyInput = (actual, ...types) => message('Key must be ', actual, ...types);
26
- export const withAlg = (alg, actual, ...types) => message(`Key for the ${alg} algorithm must be `, actual, ...types);
8
+ const invalidKeyInput = (actual, ...types) => message("Key must be ", actual, ...types), withAlg = (alg, actual, ...types) => message(`Key for the ${alg} algorithm must be `, actual, ...types);
9
+ export {
10
+ invalidKeyInput,
11
+ withAlg
12
+ };
@@ -1,17 +1,19 @@
1
- export function assertCryptoKey(key) {
2
- if (!isCryptoKey(key)) {
3
- throw new Error('CryptoKey instance expected');
4
- }
1
+ function assertCryptoKey(key) {
2
+ if (!isCryptoKey(key))
3
+ throw new Error("CryptoKey instance expected");
5
4
  }
6
- export const isCryptoKey = (key) => {
7
- if (key?.[Symbol.toStringTag] === 'CryptoKey')
8
- return true;
9
- try {
10
- return key instanceof CryptoKey;
11
- }
12
- catch {
13
- return false;
14
- }
5
+ const isCryptoKey = (key) => {
6
+ if (key?.[Symbol.toStringTag] === "CryptoKey")
7
+ return !0;
8
+ try {
9
+ return key instanceof CryptoKey;
10
+ } catch {
11
+ return !1;
12
+ }
13
+ }, isKeyObject = (key) => key?.[Symbol.toStringTag] === "KeyObject", isKeyLike = (key) => isCryptoKey(key) || isKeyObject(key);
14
+ export {
15
+ assertCryptoKey,
16
+ isCryptoKey,
17
+ isKeyLike,
18
+ isKeyObject
15
19
  };
16
- export const isKeyObject = (key) => key?.[Symbol.toStringTag] === 'KeyObject';
17
- export const isKeyLike = (key) => isCryptoKey(key) || isKeyObject(key);