@storacha/encrypt-upload-client 1.1.56 → 1.1.58

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 (72) hide show
  1. package/dist/config/constants.d.ts +3 -3
  2. package/dist/config/constants.js +4 -3
  3. package/dist/config/env.d.ts +9 -6
  4. package/dist/config/service.d.ts +13 -13
  5. package/dist/core/client.d.ts +54 -41
  6. package/dist/core/client.js +68 -56
  7. package/dist/core/errors.d.ts +6 -6
  8. package/dist/core/metadata/encrypted-metadata.d.ts +13 -8
  9. package/dist/core/metadata/kms-metadata.d.ts +68 -36
  10. package/dist/core/metadata/lit-metadata.d.ts +63 -28
  11. package/dist/crypto/adapters/kms-crypto-adapter.d.ts +172 -137
  12. package/dist/crypto/adapters/lit-crypto-adapter.d.ts +107 -86
  13. package/dist/crypto/factories.browser.d.ts +9 -5
  14. package/dist/crypto/factories.browser.js +15 -7
  15. package/dist/crypto/factories.node.d.ts +13 -6
  16. package/dist/crypto/factories.node.js +19 -13
  17. package/dist/crypto/index.d.ts +5 -5
  18. package/dist/crypto/index.js +5 -5
  19. package/dist/crypto/symmetric/generic-aes-ctr-streaming-crypto.d.ts +58 -54
  20. package/dist/crypto/symmetric/generic-aes-ctr-streaming-crypto.js +174 -146
  21. package/dist/crypto/symmetric/node-aes-cbc-crypto.d.ts +36 -32
  22. package/dist/crypto/symmetric/node-aes-cbc-crypto.js +101 -95
  23. package/dist/examples/decrypt-test.d.ts +2 -2
  24. package/dist/examples/decrypt-test.js +78 -69
  25. package/dist/examples/encrypt-test.d.ts +5 -3
  26. package/dist/examples/encrypt-test.js +58 -55
  27. package/dist/handlers/decrypt-handler.d.ts +19 -5
  28. package/dist/handlers/encrypt-handler.d.ts +9 -3
  29. package/dist/handlers/encrypt-handler.js +93 -57
  30. package/dist/index.d.ts +2 -2
  31. package/dist/index.js +2 -2
  32. package/dist/protocols/lit.d.ts +33 -9
  33. package/dist/protocols/lit.js +134 -98
  34. package/dist/test/cid-verification.spec.d.ts +2 -2
  35. package/dist/test/cid-verification.spec.js +341 -313
  36. package/dist/test/crypto-compatibility.spec.d.ts +2 -2
  37. package/dist/test/crypto-compatibility.spec.js +184 -120
  38. package/dist/test/crypto-counter-security.spec.d.ts +2 -2
  39. package/dist/test/crypto-counter-security.spec.js +177 -138
  40. package/dist/test/crypto-streaming.spec.d.ts +2 -2
  41. package/dist/test/crypto-streaming.spec.js +208 -126
  42. package/dist/test/encrypted-metadata.spec.d.ts +2 -2
  43. package/dist/test/encrypted-metadata.spec.js +89 -62
  44. package/dist/test/factories.spec.d.ts +2 -2
  45. package/dist/test/factories.spec.js +275 -139
  46. package/dist/test/file-metadata.spec.d.ts +2 -2
  47. package/dist/test/file-metadata.spec.js +472 -416
  48. package/dist/test/fixtures/test-fixtures.d.ts +25 -20
  49. package/dist/test/fixtures/test-fixtures.js +61 -53
  50. package/dist/test/helpers/test-file-utils.d.ts +19 -14
  51. package/dist/test/helpers/test-file-utils.js +78 -76
  52. package/dist/test/https-enforcement.spec.d.ts +2 -2
  53. package/dist/test/https-enforcement.spec.js +278 -124
  54. package/dist/test/kms-crypto-adapter.spec.d.ts +2 -2
  55. package/dist/test/kms-crypto-adapter.spec.js +473 -304
  56. package/dist/test/lit-crypto-adapter.spec.d.ts +2 -2
  57. package/dist/test/lit-crypto-adapter.spec.js +206 -118
  58. package/dist/test/memory-efficiency.spec.d.ts +2 -2
  59. package/dist/test/memory-efficiency.spec.js +100 -87
  60. package/dist/test/mocks/key-manager.d.ts +71 -38
  61. package/dist/test/mocks/key-manager.js +129 -113
  62. package/dist/test/node-crypto-adapter.spec.d.ts +2 -2
  63. package/dist/test/node-crypto-adapter.spec.js +155 -102
  64. package/dist/test/node-generic-crypto-adapter.spec.d.ts +2 -2
  65. package/dist/test/node-generic-crypto-adapter.spec.js +134 -94
  66. package/dist/test/setup.d.ts +2 -2
  67. package/dist/test/setup.js +8 -9
  68. package/dist/tsconfig.spec.tsbuildinfo +1 -1
  69. package/dist/types.d.ts +219 -181
  70. package/dist/utils/file-metadata.d.ts +19 -13
  71. package/dist/utils.d.ts +14 -5
  72. package/package.json +4 -4
@@ -1,125 +1,279 @@
1
- import assert from 'node:assert';
2
- import { describe, test } from 'node:test';
3
- import { KMSCryptoAdapter } from '../src/crypto/adapters/kms-crypto-adapter.js';
4
- import { GenericAesCtrStreamingCrypto } from '../src/crypto/symmetric/generic-aes-ctr-streaming-crypto.js';
1
+ import assert from 'node:assert'
2
+ import { describe, test } from 'node:test'
3
+ import { KMSCryptoAdapter } from '../src/crypto/adapters/kms-crypto-adapter.js'
4
+ import { GenericAesCtrStreamingCrypto } from '../src/crypto/symmetric/generic-aes-ctr-streaming-crypto.js'
5
5
  await describe('HTTPS Enforcement', async () => {
6
- await describe('KMSCryptoAdapter Constructor', async () => {
7
- await test('should accept valid HTTPS URL as string', async () => {
8
- const symmetricCrypto = new GenericAesCtrStreamingCrypto();
9
- // Should not throw
10
- const adapter = new KMSCryptoAdapter(symmetricCrypto, 'https://private.storacha.link', 'did:web:private.storacha.link');
11
- assert(adapter instanceof KMSCryptoAdapter, 'Should create adapter successfully');
12
- assert.strictEqual(adapter.keyManagerServiceURL.protocol, 'https:', 'Should store HTTPS protocol');
13
- assert.strictEqual(adapter.keyManagerServiceURL.toString(), 'https://private.storacha.link/', 'Should store correct URL');
14
- });
15
- await test('should accept valid HTTPS URL object', async () => {
16
- const symmetricCrypto = new GenericAesCtrStreamingCrypto();
17
- const httpsURL = new URL('https://example.com:8443/path');
18
- // Should not throw
19
- const adapter = new KMSCryptoAdapter(symmetricCrypto, httpsURL, 'did:web:example.com');
20
- assert(adapter instanceof KMSCryptoAdapter, 'Should create adapter successfully');
21
- assert.strictEqual(adapter.keyManagerServiceURL.protocol, 'https:', 'Should store HTTPS protocol');
22
- assert.strictEqual(adapter.keyManagerServiceURL.toString(), 'https://example.com:8443/path', 'Should preserve URL structure');
23
- });
24
- await test('should reject HTTP URL string', async () => {
25
- const symmetricCrypto = new GenericAesCtrStreamingCrypto();
26
- assert.throws(() => new KMSCryptoAdapter(symmetricCrypto, 'http://insecure.example.com', 'did:web:example.com'), /Key manager service must use HTTPS protocol for security/, 'Should reject HTTP protocol');
27
- });
28
- await test('should reject HTTP URL object', async () => {
29
- const symmetricCrypto = new GenericAesCtrStreamingCrypto();
30
- const httpURL = new URL('http://insecure.example.com');
31
- assert.throws(() => new KMSCryptoAdapter(symmetricCrypto, httpURL, 'did:web:example.com'), /Key manager service must use HTTPS protocol for security/, 'Should reject HTTP URL object');
32
- });
33
- await test('should reject other protocols', async () => {
34
- const symmetricCrypto = new GenericAesCtrStreamingCrypto();
35
- const protocolTestCases = [
36
- 'ftp://example.com',
37
- 'ws://example.com',
38
- 'file://example.com',
39
- 'data:text/plain;base64,SGVsbG8=',
40
- ];
41
- for (const testURL of protocolTestCases) {
42
- assert.throws(() => new KMSCryptoAdapter(symmetricCrypto, testURL, 'did:web:example.com'), /Key manager service must use HTTPS protocol for security/, `Should reject protocol: ${testURL}`);
43
- }
44
- });
45
- await test('should provide helpful error message', async () => {
46
- const symmetricCrypto = new GenericAesCtrStreamingCrypto();
47
- try {
48
- new KMSCryptoAdapter(symmetricCrypto, 'http://example.com', 'did:web:example.com');
49
- assert.fail('Should have thrown an error');
50
- }
51
- catch (error) {
52
- assert(error instanceof Error, 'Should throw Error instance');
53
- assert(error.message.includes('Key manager service must use HTTPS protocol'), 'Should include main error message');
54
- assert(error.message.includes('Received: http:'), 'Should include received protocol');
55
- assert(error.message.includes('https://your-key-manager-service.com'), 'Should include example of correct format');
56
- }
57
- });
58
- await test('should handle localhost development URLs correctly', async () => {
59
- const symmetricCrypto = new GenericAesCtrStreamingCrypto();
60
- // Even localhost should require HTTPS for consistency
61
- assert.throws(() => new KMSCryptoAdapter(symmetricCrypto, 'http://localhost:3000', 'did:web:localhost'), /Key manager service must use HTTPS protocol for security/, 'Should reject HTTP even for localhost');
62
- // But HTTPS localhost should work
63
- const adapter = new KMSCryptoAdapter(symmetricCrypto, 'https://localhost:3000', 'did:web:localhost');
64
- assert(adapter instanceof KMSCryptoAdapter, 'Should accept HTTPS localhost');
65
- });
66
- await test('should handle invalid URL strings gracefully', async () => {
67
- const symmetricCrypto = new GenericAesCtrStreamingCrypto();
68
- assert.throws(() => new KMSCryptoAdapter(symmetricCrypto, 'not-a-valid-url', 'did:web:example.com'), /Invalid URL/, 'Should throw URL parsing error for invalid URLs');
69
- });
70
- await test('should preserve all adapter functionality after HTTPS validation', async () => {
71
- const symmetricCrypto = new GenericAesCtrStreamingCrypto();
72
- const adapter = new KMSCryptoAdapter(symmetricCrypto, 'https://private.storacha.link', 'did:web:private.storacha.link');
73
- // Verify all expected methods exist
74
- assert.strictEqual(typeof adapter.encryptStream, 'function', 'Should have encryptStream method');
75
- assert.strictEqual(typeof adapter.decryptStream, 'function', 'Should have decryptStream method');
76
- assert.strictEqual(typeof adapter.encryptSymmetricKey, 'function', 'Should have encryptSymmetricKey method');
77
- assert.strictEqual(typeof adapter.decryptSymmetricKey, 'function', 'Should have decryptSymmetricKey method');
78
- assert.strictEqual(typeof adapter.extractEncryptedMetadata, 'function', 'Should have extractEncryptedMetadata method');
79
- assert.strictEqual(typeof adapter.getEncryptedKey, 'function', 'Should have getEncryptedKey method');
80
- assert.strictEqual(typeof adapter.encodeMetadata, 'function', 'Should have encodeMetadata method');
81
- // Verify adapter properties are set correctly
82
- assert(adapter.symmetricCrypto === symmetricCrypto, 'Should store symmetric crypto reference');
83
- assert.strictEqual(adapter.keyManagerServiceDID.did(), 'did:web:private.storacha.link', 'Should store gateway DID');
84
- });
85
- });
86
- await describe('Secure by Default Principle', async () => {
87
- await test('should demonstrate secure by default - HTTPS is automatically used', async () => {
88
- const symmetricCrypto = new GenericAesCtrStreamingCrypto();
89
- // All of these should work without any special configuration
90
- const validHttpsUrls = [
91
- 'https://gateway.example.com',
92
- 'https://localhost:8080',
93
- 'https://192.168.1.100:3000',
94
- 'https://api.storacha.network:443/v1',
95
- ];
96
- for (const url of validHttpsUrls) {
97
- const adapter = new KMSCryptoAdapter(symmetricCrypto, url, 'did:web:example.com');
98
- assert.strictEqual(adapter.keyManagerServiceURL.protocol, 'https:', `Should store HTTPS protocol for URL: ${url}`);
99
- }
100
- });
101
- await test('should require explicit insecure configuration to bypass HTTPS', async () => {
102
- // This demonstrates that HTTP is never accidentally allowed
103
- // If someone really needs HTTP (like for testing), they would need to
104
- // modify our security validation code intentionally
105
- const symmetricCrypto = new GenericAesCtrStreamingCrypto();
106
- const httpUrls = [
107
- 'http://example.com',
108
- 'http://localhost:3000',
109
- 'http://192.168.1.100:8080',
110
- ];
111
- for (const url of httpUrls) {
112
- assert.throws(() => new KMSCryptoAdapter(symmetricCrypto, url, 'did:web:example.com'), /Key manager service must use HTTPS protocol for security/, `Should reject HTTP URL: ${url}`);
113
- }
114
- });
115
- await test('should allow HTTP for testing when explicitly enabled', async () => {
116
- // This demonstrates the testing escape hatch
117
- const symmetricCrypto = new GenericAesCtrStreamingCrypto();
118
- const adapter = new KMSCryptoAdapter(symmetricCrypto, 'http://localhost:8080', 'did:web:localhost', { allowInsecureHttp: true } // Explicit testing option
119
- );
120
- assert.strictEqual(adapter.keyManagerServiceURL.protocol, 'http:', 'Should allow HTTP when explicitly enabled for testing');
121
- assert.strictEqual(adapter.keyManagerServiceURL.toString(), 'http://localhost:8080/', 'Should preserve HTTP URL when testing option is enabled');
122
- });
123
- });
124
- });
125
- //# sourceMappingURL=https-enforcement.spec.js.map
6
+ await describe('KMSCryptoAdapter Constructor', async () => {
7
+ await test('should accept valid HTTPS URL as string', async () => {
8
+ const symmetricCrypto = new GenericAesCtrStreamingCrypto()
9
+ // Should not throw
10
+ const adapter = new KMSCryptoAdapter(
11
+ symmetricCrypto,
12
+ 'https://private.storacha.link',
13
+ 'did:web:private.storacha.link'
14
+ )
15
+ assert(
16
+ adapter instanceof KMSCryptoAdapter,
17
+ 'Should create adapter successfully'
18
+ )
19
+ assert.strictEqual(
20
+ adapter.keyManagerServiceURL.protocol,
21
+ 'https:',
22
+ 'Should store HTTPS protocol'
23
+ )
24
+ assert.strictEqual(
25
+ adapter.keyManagerServiceURL.toString(),
26
+ 'https://private.storacha.link/',
27
+ 'Should store correct URL'
28
+ )
29
+ })
30
+ await test('should accept valid HTTPS URL object', async () => {
31
+ const symmetricCrypto = new GenericAesCtrStreamingCrypto()
32
+ const httpsURL = new URL('https://example.com:8443/path')
33
+ // Should not throw
34
+ const adapter = new KMSCryptoAdapter(
35
+ symmetricCrypto,
36
+ httpsURL,
37
+ 'did:web:example.com'
38
+ )
39
+ assert(
40
+ adapter instanceof KMSCryptoAdapter,
41
+ 'Should create adapter successfully'
42
+ )
43
+ assert.strictEqual(
44
+ adapter.keyManagerServiceURL.protocol,
45
+ 'https:',
46
+ 'Should store HTTPS protocol'
47
+ )
48
+ assert.strictEqual(
49
+ adapter.keyManagerServiceURL.toString(),
50
+ 'https://example.com:8443/path',
51
+ 'Should preserve URL structure'
52
+ )
53
+ })
54
+ await test('should reject HTTP URL string', async () => {
55
+ const symmetricCrypto = new GenericAesCtrStreamingCrypto()
56
+ assert.throws(
57
+ () =>
58
+ new KMSCryptoAdapter(
59
+ symmetricCrypto,
60
+ 'http://insecure.example.com',
61
+ 'did:web:example.com'
62
+ ),
63
+ /Key manager service must use HTTPS protocol for security/,
64
+ 'Should reject HTTP protocol'
65
+ )
66
+ })
67
+ await test('should reject HTTP URL object', async () => {
68
+ const symmetricCrypto = new GenericAesCtrStreamingCrypto()
69
+ const httpURL = new URL('http://insecure.example.com')
70
+ assert.throws(
71
+ () =>
72
+ new KMSCryptoAdapter(symmetricCrypto, httpURL, 'did:web:example.com'),
73
+ /Key manager service must use HTTPS protocol for security/,
74
+ 'Should reject HTTP URL object'
75
+ )
76
+ })
77
+ await test('should reject other protocols', async () => {
78
+ const symmetricCrypto = new GenericAesCtrStreamingCrypto()
79
+ const protocolTestCases = [
80
+ 'ftp://example.com',
81
+ 'ws://example.com',
82
+ 'file://example.com',
83
+ 'data:text/plain;base64,SGVsbG8=',
84
+ ]
85
+ for (const testURL of protocolTestCases) {
86
+ assert.throws(
87
+ () =>
88
+ new KMSCryptoAdapter(
89
+ symmetricCrypto,
90
+ testURL,
91
+ 'did:web:example.com'
92
+ ),
93
+ /Key manager service must use HTTPS protocol for security/,
94
+ `Should reject protocol: ${testURL}`
95
+ )
96
+ }
97
+ })
98
+ await test('should provide helpful error message', async () => {
99
+ const symmetricCrypto = new GenericAesCtrStreamingCrypto()
100
+ try {
101
+ new KMSCryptoAdapter(
102
+ symmetricCrypto,
103
+ 'http://example.com',
104
+ 'did:web:example.com'
105
+ )
106
+ assert.fail('Should have thrown an error')
107
+ } catch (error) {
108
+ assert(error instanceof Error, 'Should throw Error instance')
109
+ assert(
110
+ error.message.includes('Key manager service must use HTTPS protocol'),
111
+ 'Should include main error message'
112
+ )
113
+ assert(
114
+ error.message.includes('Received: http:'),
115
+ 'Should include received protocol'
116
+ )
117
+ assert(
118
+ error.message.includes('https://your-key-manager-service.com'),
119
+ 'Should include example of correct format'
120
+ )
121
+ }
122
+ })
123
+ await test('should handle localhost development URLs correctly', async () => {
124
+ const symmetricCrypto = new GenericAesCtrStreamingCrypto()
125
+ // Even localhost should require HTTPS for consistency
126
+ assert.throws(
127
+ () =>
128
+ new KMSCryptoAdapter(
129
+ symmetricCrypto,
130
+ 'http://localhost:3000',
131
+ 'did:web:localhost'
132
+ ),
133
+ /Key manager service must use HTTPS protocol for security/,
134
+ 'Should reject HTTP even for localhost'
135
+ )
136
+ // But HTTPS localhost should work
137
+ const adapter = new KMSCryptoAdapter(
138
+ symmetricCrypto,
139
+ 'https://localhost:3000',
140
+ 'did:web:localhost'
141
+ )
142
+ assert(
143
+ adapter instanceof KMSCryptoAdapter,
144
+ 'Should accept HTTPS localhost'
145
+ )
146
+ })
147
+ await test('should handle invalid URL strings gracefully', async () => {
148
+ const symmetricCrypto = new GenericAesCtrStreamingCrypto()
149
+ assert.throws(
150
+ () =>
151
+ new KMSCryptoAdapter(
152
+ symmetricCrypto,
153
+ 'not-a-valid-url',
154
+ 'did:web:example.com'
155
+ ),
156
+ /Invalid URL/,
157
+ 'Should throw URL parsing error for invalid URLs'
158
+ )
159
+ })
160
+ await test('should preserve all adapter functionality after HTTPS validation', async () => {
161
+ const symmetricCrypto = new GenericAesCtrStreamingCrypto()
162
+ const adapter = new KMSCryptoAdapter(
163
+ symmetricCrypto,
164
+ 'https://private.storacha.link',
165
+ 'did:web:private.storacha.link'
166
+ )
167
+ // Verify all expected methods exist
168
+ assert.strictEqual(
169
+ typeof adapter.encryptStream,
170
+ 'function',
171
+ 'Should have encryptStream method'
172
+ )
173
+ assert.strictEqual(
174
+ typeof adapter.decryptStream,
175
+ 'function',
176
+ 'Should have decryptStream method'
177
+ )
178
+ assert.strictEqual(
179
+ typeof adapter.encryptSymmetricKey,
180
+ 'function',
181
+ 'Should have encryptSymmetricKey method'
182
+ )
183
+ assert.strictEqual(
184
+ typeof adapter.decryptSymmetricKey,
185
+ 'function',
186
+ 'Should have decryptSymmetricKey method'
187
+ )
188
+ assert.strictEqual(
189
+ typeof adapter.extractEncryptedMetadata,
190
+ 'function',
191
+ 'Should have extractEncryptedMetadata method'
192
+ )
193
+ assert.strictEqual(
194
+ typeof adapter.getEncryptedKey,
195
+ 'function',
196
+ 'Should have getEncryptedKey method'
197
+ )
198
+ assert.strictEqual(
199
+ typeof adapter.encodeMetadata,
200
+ 'function',
201
+ 'Should have encodeMetadata method'
202
+ )
203
+ // Verify adapter properties are set correctly
204
+ assert(
205
+ adapter.symmetricCrypto === symmetricCrypto,
206
+ 'Should store symmetric crypto reference'
207
+ )
208
+ assert.strictEqual(
209
+ adapter.keyManagerServiceDID.did(),
210
+ 'did:web:private.storacha.link',
211
+ 'Should store gateway DID'
212
+ )
213
+ })
214
+ })
215
+ await describe('Secure by Default Principle', async () => {
216
+ await test('should demonstrate secure by default - HTTPS is automatically used', async () => {
217
+ const symmetricCrypto = new GenericAesCtrStreamingCrypto()
218
+ // All of these should work without any special configuration
219
+ const validHttpsUrls = [
220
+ 'https://gateway.example.com',
221
+ 'https://localhost:8080',
222
+ 'https://192.168.1.100:3000',
223
+ 'https://api.storacha.network:443/v1',
224
+ ]
225
+ for (const url of validHttpsUrls) {
226
+ const adapter = new KMSCryptoAdapter(
227
+ symmetricCrypto,
228
+ url,
229
+ 'did:web:example.com'
230
+ )
231
+ assert.strictEqual(
232
+ adapter.keyManagerServiceURL.protocol,
233
+ 'https:',
234
+ `Should store HTTPS protocol for URL: ${url}`
235
+ )
236
+ }
237
+ })
238
+ await test('should require explicit insecure configuration to bypass HTTPS', async () => {
239
+ // This demonstrates that HTTP is never accidentally allowed
240
+ // If someone really needs HTTP (like for testing), they would need to
241
+ // modify our security validation code intentionally
242
+ const symmetricCrypto = new GenericAesCtrStreamingCrypto()
243
+ const httpUrls = [
244
+ 'http://example.com',
245
+ 'http://localhost:3000',
246
+ 'http://192.168.1.100:8080',
247
+ ]
248
+ for (const url of httpUrls) {
249
+ assert.throws(
250
+ () =>
251
+ new KMSCryptoAdapter(symmetricCrypto, url, 'did:web:example.com'),
252
+ /Key manager service must use HTTPS protocol for security/,
253
+ `Should reject HTTP URL: ${url}`
254
+ )
255
+ }
256
+ })
257
+ await test('should allow HTTP for testing when explicitly enabled', async () => {
258
+ // This demonstrates the testing escape hatch
259
+ const symmetricCrypto = new GenericAesCtrStreamingCrypto()
260
+ const adapter = new KMSCryptoAdapter(
261
+ symmetricCrypto,
262
+ 'http://localhost:8080',
263
+ 'did:web:localhost',
264
+ { allowInsecureHttp: true } // Explicit testing option
265
+ )
266
+ assert.strictEqual(
267
+ adapter.keyManagerServiceURL.protocol,
268
+ 'http:',
269
+ 'Should allow HTTP when explicitly enabled for testing'
270
+ )
271
+ assert.strictEqual(
272
+ adapter.keyManagerServiceURL.toString(),
273
+ 'http://localhost:8080/',
274
+ 'Should preserve HTTP URL when testing option is enabled'
275
+ )
276
+ })
277
+ })
278
+ })
279
+ //# sourceMappingURL=https-enforcement.spec.js.map
@@ -1,2 +1,2 @@
1
- export {};
2
- //# sourceMappingURL=kms-crypto-adapter.spec.d.ts.map
1
+ export {}
2
+ //# sourceMappingURL=kms-crypto-adapter.spec.d.ts.map