@storacha/encrypt-upload-client 1.1.66 → 1.1.67

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 (80) hide show
  1. package/README.md +1 -1
  2. package/dist/config/constants.d.ts +1 -1
  3. package/dist/config/constants.d.ts.map +1 -1
  4. package/dist/config/constants.js +2 -2
  5. package/dist/config/env.d.ts +0 -1
  6. package/dist/config/env.d.ts.map +1 -1
  7. package/dist/config/env.js +0 -7
  8. package/dist/core/client.js +1 -1
  9. package/dist/crypto/adapters/lit-crypto-adapter.d.ts +35 -4
  10. package/dist/crypto/adapters/lit-crypto-adapter.d.ts.map +1 -1
  11. package/dist/crypto/adapters/lit-crypto-adapter.js +38 -41
  12. package/dist/crypto/factories.node.d.ts +4 -10
  13. package/dist/crypto/factories.node.d.ts.map +1 -1
  14. package/dist/crypto/factories.node.js +6 -16
  15. package/dist/protocols/lit.d.ts +13 -18
  16. package/dist/protocols/lit.d.ts.map +1 -1
  17. package/dist/protocols/lit.js +67 -88
  18. package/dist/types.d.ts +24 -15
  19. package/dist/types.d.ts.map +1 -1
  20. package/dist/utils/file-metadata.d.ts.map +1 -1
  21. package/dist/utils/file-metadata.js +39 -14
  22. package/package.json +12 -11
  23. package/dist/examples/decrypt-test.d.ts +0 -2
  24. package/dist/examples/decrypt-test.d.ts.map +0 -1
  25. package/dist/examples/decrypt-test.js +0 -73
  26. package/dist/examples/encrypt-test.d.ts +0 -4
  27. package/dist/examples/encrypt-test.d.ts.map +0 -1
  28. package/dist/examples/encrypt-test.js +0 -61
  29. package/dist/test/cid-verification.spec.d.ts +0 -2
  30. package/dist/test/cid-verification.spec.d.ts.map +0 -1
  31. package/dist/test/cid-verification.spec.js +0 -314
  32. package/dist/test/crypto-compatibility.spec.d.ts +0 -2
  33. package/dist/test/crypto-compatibility.spec.d.ts.map +0 -1
  34. package/dist/test/crypto-compatibility.spec.js +0 -124
  35. package/dist/test/crypto-counter-security.spec.d.ts +0 -2
  36. package/dist/test/crypto-counter-security.spec.d.ts.map +0 -1
  37. package/dist/test/crypto-counter-security.spec.js +0 -147
  38. package/dist/test/crypto-streaming.spec.d.ts +0 -2
  39. package/dist/test/crypto-streaming.spec.d.ts.map +0 -1
  40. package/dist/test/crypto-streaming.spec.js +0 -129
  41. package/dist/test/encrypted-metadata.spec.d.ts +0 -2
  42. package/dist/test/encrypted-metadata.spec.d.ts.map +0 -1
  43. package/dist/test/encrypted-metadata.spec.js +0 -68
  44. package/dist/test/factories.spec.d.ts +0 -2
  45. package/dist/test/factories.spec.d.ts.map +0 -1
  46. package/dist/test/factories.spec.js +0 -142
  47. package/dist/test/file-metadata.spec.d.ts +0 -2
  48. package/dist/test/file-metadata.spec.d.ts.map +0 -1
  49. package/dist/test/file-metadata.spec.js +0 -433
  50. package/dist/test/fixtures/test-fixtures.d.ts +0 -28
  51. package/dist/test/fixtures/test-fixtures.d.ts.map +0 -1
  52. package/dist/test/fixtures/test-fixtures.js +0 -63
  53. package/dist/test/helpers/test-file-utils.d.ts +0 -60
  54. package/dist/test/helpers/test-file-utils.d.ts.map +0 -1
  55. package/dist/test/helpers/test-file-utils.js +0 -139
  56. package/dist/test/https-enforcement.spec.d.ts +0 -2
  57. package/dist/test/https-enforcement.spec.d.ts.map +0 -1
  58. package/dist/test/https-enforcement.spec.js +0 -125
  59. package/dist/test/kms-crypto-adapter.spec.d.ts +0 -2
  60. package/dist/test/kms-crypto-adapter.spec.d.ts.map +0 -1
  61. package/dist/test/kms-crypto-adapter.spec.js +0 -305
  62. package/dist/test/lit-crypto-adapter.spec.d.ts +0 -2
  63. package/dist/test/lit-crypto-adapter.spec.d.ts.map +0 -1
  64. package/dist/test/lit-crypto-adapter.spec.js +0 -120
  65. package/dist/test/memory-efficiency.spec.d.ts +0 -2
  66. package/dist/test/memory-efficiency.spec.d.ts.map +0 -1
  67. package/dist/test/memory-efficiency.spec.js +0 -93
  68. package/dist/test/mocks/key-manager.d.ts +0 -58
  69. package/dist/test/mocks/key-manager.d.ts.map +0 -1
  70. package/dist/test/mocks/key-manager.js +0 -137
  71. package/dist/test/node-crypto-adapter.spec.d.ts +0 -2
  72. package/dist/test/node-crypto-adapter.spec.d.ts.map +0 -1
  73. package/dist/test/node-crypto-adapter.spec.js +0 -103
  74. package/dist/test/node-generic-crypto-adapter.spec.d.ts +0 -2
  75. package/dist/test/node-generic-crypto-adapter.spec.d.ts.map +0 -1
  76. package/dist/test/node-generic-crypto-adapter.spec.js +0 -95
  77. package/dist/test/setup.d.ts +0 -2
  78. package/dist/test/setup.d.ts.map +0 -1
  79. package/dist/test/setup.js +0 -12
  80. package/dist/tsconfig.spec.tsbuildinfo +0 -1
package/dist/types.d.ts CHANGED
@@ -1,9 +1,10 @@
1
- import { Wallet } from 'ethers';
2
1
  import { UnknownLink } from 'multiformats';
3
2
  import { Client as StorachaClient } from '@storacha/client';
4
3
  import { Result, Failure, Block, Proof } from '@ucanto/interface';
5
- import { AccessControlConditions, AuthMethod, AuthSig, SessionSigsMap } from '@lit-protocol/types';
4
+ import { AuthSig, SessionSigsMap } from '@lit-protocol/types';
5
+ import { AccessControlConditions } from '@lit-protocol/access-control-conditions';
6
6
  import type { BlobLike, AnyLink, Signer, DID, SigAlg, UploadOptions } from '@storacha/client/types';
7
+ import type { AuthData } from '@lit-protocol/schemas';
7
8
  export type { IPLDBlock } from '@ucanto/interface';
8
9
  export type { SpaceDID } from '@storacha/capabilities/types';
9
10
  export type { UnknownFormat } from '@storacha/capabilities/types';
@@ -11,6 +12,12 @@ export type { Result, UnknownLink };
11
12
  export type { BlobLike, AnyLink };
12
13
  export type { UploadOptions } from '@storacha/client/types';
13
14
  import type { SpaceDID } from '@storacha/capabilities/types';
15
+ import { Account } from 'viem';
16
+ import { createAuthManager } from '@lit-protocol/auth';
17
+ export type AuthManager = ReturnType<typeof createAuthManager>;
18
+ export type EoaAuthContext = Awaited<ReturnType<AuthManager['createEoaAuthContext']>>;
19
+ export type PkpAuthContext = Awaited<ReturnType<AuthManager['createPkpAuthContext']>>;
20
+ export type AuthenticationContext = EoaAuthContext | PkpAuthContext;
14
21
  export interface FileMetadata {
15
22
  name: string;
16
23
  type: string;
@@ -98,10 +105,10 @@ export interface DecryptionConfig {
98
105
  * Proofs to access the space
99
106
  */
100
107
  proofs?: Proof[];
101
- wallet?: Wallet;
108
+ wallet?: Account;
102
109
  sessionSigs?: SessionSigsMap;
103
110
  pkpPublicKey?: string;
104
- authMethod?: AuthMethod;
111
+ authData?: AuthData;
105
112
  }
106
113
  export interface EncryptedKeyResult {
107
114
  strategy: EncryptionStrategy;
@@ -173,28 +180,21 @@ export interface KMSMetadataView extends KMSMetadata {
173
180
  export interface DecodeFailure extends Failure {
174
181
  name: 'DecodeFailure';
175
182
  }
176
- export interface SessionSignatureOptions {
177
- wallet: Wallet;
183
+ export interface EoaAuthContextOptions {
184
+ wallet: Account;
178
185
  accessControlConditions: AccessControlConditions;
179
186
  dataToEncryptHash: string;
180
187
  expiration?: string;
181
188
  capabilityAuthSigs?: AuthSig[];
182
189
  }
183
- export interface PkpSessionSignatureOptions {
190
+ export interface PkpAuthContextOptions {
184
191
  pkpPublicKey: string;
185
- authMethod: AuthMethod;
192
+ authData: AuthData;
186
193
  accessControlConditions: AccessControlConditions;
187
194
  dataToEncryptHash: string;
188
195
  expiration?: string;
189
196
  capabilityAuthSigs?: AuthSig[];
190
197
  }
191
- export interface LitPkpSigner {
192
- pkpPublicKey: string;
193
- authMethod: AuthMethod;
194
- }
195
- export interface LitWalletSigner {
196
- wallet: Wallet;
197
- }
198
198
  export interface CreateDecryptWrappedInvocationOptions {
199
199
  decryptDelegation: Proof;
200
200
  issuer: Signer<DID, SigAlg>;
@@ -211,6 +211,15 @@ export interface ExecuteUcanValidationOptions {
211
211
  accessControlConditions: AccessControlConditions;
212
212
  wrappedInvocationJSON: string;
213
213
  }
214
+ export type AuthContext = EoaAuthContext | PkpAuthContext;
215
+ export interface ExecuteUcanValidationActionOptions {
216
+ authContext: AuthContext;
217
+ spaceDID: `did:key:${string}`;
218
+ identityBoundCiphertext: string;
219
+ plaintextKeyHash: string;
220
+ accessControlConditions: AccessControlConditions;
221
+ wrappedInvocationJSON: string;
222
+ }
214
223
  export type ExtractedMetadata = LitExtractedMetadata | KMSExtractedMetadata;
215
224
  export interface LitExtractedMetadata {
216
225
  strategy: 'lit';
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"file-metadata.d.ts","sourceRoot":"","sources":["../../src/utils/file-metadata.js"],"names":[],"mappings":"AAUA;;;;;YAKE;AASK,6CAJI,IAAI,CAAC,QAAQ,aACb,IAAI,CAAC,YAAY,GACf,IAAI,CAmDhB;AAQM,qDAHI,cAAc,GACZ,OAAO,CAAC;IAAC,UAAU,EAAE,cAAc,CAAC;IAAC,YAAY,CAAC,EAAE,IAAI,CAAC,YAAY,CAAA;CAAC,CAAC,CA8DnF;uBA5IsB,cAAc;sBADf,aAAa"}
1
+ {"version":3,"file":"file-metadata.d.ts","sourceRoot":"","sources":["../../src/utils/file-metadata.js"],"names":[],"mappings":"AAUA;;;;;YAKE;AASK,6CAJI,IAAI,CAAC,QAAQ,aACb,IAAI,CAAC,YAAY,GACf,IAAI,CAmDhB;AAQM,qDAHI,cAAc,GACZ,OAAO,CAAC;IAAC,UAAU,EAAE,cAAc,CAAC;IAAC,YAAY,CAAC,EAAE,IAAI,CAAC,YAAY,CAAA;CAAC,CAAC,CA8FnF;uBA5KsB,cAAc;sBADf,aAAa"}
@@ -73,30 +73,55 @@ export const extractFileMetadata = async (decryptedStream) => {
73
73
  // Read metadata length from first 4 bytes
74
74
  const lengthView = new DataView(header.buffer, 0, 4);
75
75
  const metadataLength = lengthView.getUint32(0, true);
76
- // Validate length
77
- if (metadataLength < 0 || metadataLength > METADATA_HEADER_SIZE - 4) {
78
- throw new Error('Invalid metadata length');
79
- }
76
+ // Detect if this is a valid metadata header or raw file content
77
+ // Valid metadata length should be 0-1020, anything else indicates no metadata header
78
+ const hasValidMetadataHeader = metadataLength >= 0 && metadataLength <= METADATA_HEADER_SIZE - 4;
80
79
  let fileMetadata = undefined;
81
- if (metadataLength > 0) {
82
- // Extract and parse metadata
83
- const metadataBytes = header.slice(4, 4 + metadataLength);
84
- const metadataJson = new TextDecoder('utf-8', { fatal: true }).decode(metadataBytes);
85
- fileMetadata = secureJsonParse(metadataJson);
86
- validateMetadataStructure(fileMetadata);
80
+ let headerBytesToInclude = null;
81
+ if (hasValidMetadataHeader) {
82
+ // Valid metadata header detected
83
+ if (metadataLength > 0) {
84
+ try {
85
+ // Extract and parse metadata
86
+ const metadataBytes = header.slice(4, 4 + metadataLength);
87
+ const metadataJson = new TextDecoder('utf-8', { fatal: true }).decode(metadataBytes);
88
+ const parsedMetadata = secureJsonParse(metadataJson);
89
+ // Use existing validation - if it throws, treat as no metadata
90
+ validateMetadataStructure(parsedMetadata);
91
+ fileMetadata = parsedMetadata;
92
+ }
93
+ catch (error) {
94
+ // JSON parsing or validation failed - treat as no metadata
95
+ console.warn('Metadata parsing/validation failed - treating as file without metadata:', error);
96
+ headerBytesToInclude = header;
97
+ }
98
+ }
99
+ // If metadataLength is 0, header is consumed normally (no metadata but valid header)
87
100
  }
88
- // Create file stream (header is consumed, continue with rest)
89
- // Include any remainder bytes from the header read first
101
+ else {
102
+ // Invalid metadata length - treat entire stream as file content without metadata
103
+ console.warn(`Detected file without metadata header (apparent length: ${metadataLength})`);
104
+ // Include the "header" bytes as part of file content
105
+ headerBytesToInclude = header;
106
+ }
107
+ // Create file stream (reusing logic for both cases)
90
108
  let remainderEnqueued = false;
109
+ let headerEnqueued = !headerBytesToInclude; // Skip header injection if no header to include
91
110
  const fileStream = new ReadableStream({
92
111
  async pull(controller) {
93
- // First, enqueue any remainder bytes from header read
112
+ // First, enqueue header bytes if this file has no metadata header
113
+ if (!headerEnqueued && headerBytesToInclude) {
114
+ controller.enqueue(headerBytesToInclude);
115
+ headerEnqueued = true;
116
+ return;
117
+ }
118
+ // Then, enqueue any remainder bytes from the header read
94
119
  if (!remainderEnqueued && remainder) {
95
120
  controller.enqueue(remainder);
96
121
  remainderEnqueued = true;
97
122
  return;
98
123
  }
99
- // Then continue with the reader
124
+ // Finally, continue with the reader
100
125
  const { done, value } = await reader.read();
101
126
  if (done) {
102
127
  controller.close();
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@storacha/encrypt-upload-client",
3
3
  "type": "module",
4
- "version": "1.1.66",
4
+ "version": "1.1.67",
5
5
  "license": "Apache-2.0 OR MIT",
6
6
  "description": "Client for upload and download encrypted files",
7
7
  "author": "Storacha",
@@ -61,12 +61,12 @@
61
61
  "@ipld/dag-json": "^10.2.3",
62
62
  "@ipld/dag-ucan": "^3.4.5",
63
63
  "@ipld/schema": "^6.0.6",
64
- "@lit-protocol/auth-helpers": "^7.0.2",
65
- "@lit-protocol/constants": "^7.0.2",
66
- "@lit-protocol/contracts-sdk": "^7.0.2",
67
- "@lit-protocol/encryption": "^7.0.2",
68
- "@lit-protocol/lit-auth-client": "^7.0.3",
69
- "@lit-protocol/lit-node-client": "^7.0.2",
64
+ "@lit-protocol/access-control-conditions": "^8.0.2",
65
+ "@lit-protocol/auth": "^8.1.2",
66
+ "@lit-protocol/auth-helpers": "^8.1.1",
67
+ "@lit-protocol/constants": "^8.0.8",
68
+ "@lit-protocol/lit-client": "^8.2.3",
69
+ "@lit-protocol/networks": "8.3.1",
70
70
  "@ucanto/client": "^9.0.2",
71
71
  "@ucanto/core": "^10.4.5",
72
72
  "@ucanto/interface": "^11.0.1",
@@ -76,16 +76,17 @@
76
76
  "@ucanto/validator": "^10.0.1",
77
77
  "blockstore-core": "^3.0.0",
78
78
  "carstream": "^2.1.0",
79
- "dotenv": "^16.4.7",
80
- "ethers": "5.7.1",
79
+ "dotenv": "^17.2.3",
81
80
  "ipfs-unixfs-exporter": "^10.0.0",
82
81
  "multiformats": "^13.3.6",
82
+ "viem": "^2.39.0",
83
83
  "@storacha/capabilities": "^1.12.0",
84
- "@storacha/client": "^1.8.23",
84
+ "@storacha/client": "^1.8.24",
85
85
  "@storacha/upload-client": "^1.3.6"
86
86
  },
87
87
  "devDependencies": {
88
- "@lit-protocol/types": "^7.0.8",
88
+ "@lit-protocol/schemas": "^8.0.2",
89
+ "@lit-protocol/types": "^8.0.2",
89
90
  "@playwright/test": "^1.29.2",
90
91
  "esbuild": "^0.25.1",
91
92
  "mkcert": "^3.2.0",
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=decrypt-test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"decrypt-test.d.ts","sourceRoot":"","sources":["../../examples/decrypt-test.js"],"names":[],"mappings":""}
@@ -1,73 +0,0 @@
1
- import * as fs from 'fs';
2
- import dotenv from 'dotenv';
3
- import { CID } from 'multiformats';
4
- import * as Client from '@storacha/client';
5
- import * as Signer from '@ucanto/principal/ed25519';
6
- import { StoreMemory } from '@storacha/client/stores/memory';
7
- import { create } from '../src/index.js';
8
- import { Wallet } from 'ethers';
9
- import { serviceConf, receiptsEndpoint } from '../src/config/service.js';
10
- import { createNodeLitAdapter } from '../src/crypto/factories.node.js';
11
- import { LitNodeClient } from '@lit-protocol/lit-node-client';
12
- import { extract } from '@ucanto/core/delegation';
13
- dotenv.config();
14
- async function main() {
15
- // set up storacha client with a new agent
16
- const cid = CID.parse('bafyreifhwqmspdjsy6rgcmcizgodv7bwskgiehjhdx7wukax3z5r7tz5ji');
17
- const delegationCarBuffer = fs.readFileSync('delegation.car');
18
- const wallet = new Wallet(process.env.WALLET_PK || '');
19
- const principal = Signer.parse(process.env.DELEGATEE_AGENT_PK || '');
20
- const store = new StoreMemory();
21
- const client = await Client.create({
22
- principal,
23
- store,
24
- serviceConf,
25
- receiptsEndpoint,
26
- });
27
- // Set up Lit client
28
- const litClient = new LitNodeClient({
29
- litNetwork: 'datil-dev',
30
- });
31
- await litClient.connect();
32
- const encryptedClient = await create({
33
- storachaClient: client,
34
- cryptoAdapter: createNodeLitAdapter(litClient),
35
- });
36
- const res = await extract(delegationCarBuffer);
37
- if (res.error) {
38
- throw new Error(`Failed to extract delegation: ${res.error.message}`);
39
- }
40
- const decryptDelegation = res.ok;
41
- const decryptionCapability = decryptDelegation.capabilities.find((c) => c.can === 'space/content/decrypt');
42
- if (!decryptionCapability) {
43
- throw new Error('Failed to find decryption capability');
44
- }
45
- const spaceDID = /** @type {`did:key:${string}`} */ (decryptionCapability.with);
46
- const decryptionConfig = {
47
- wallet,
48
- decryptDelegation,
49
- spaceDID,
50
- };
51
- const decryptedContent = await encryptedClient.retrieveAndDecryptFile(cid, decryptionConfig);
52
- const reader = decryptedContent.stream.getReader();
53
- const decoder = new TextDecoder();
54
- let result = '';
55
- let done = false;
56
- while (!done) {
57
- const { value, done: isDone } = await reader.read();
58
- done = isDone;
59
- if (value) {
60
- result += decoder.decode(value, { stream: true });
61
- }
62
- }
63
- console.log('================ RESULT ===================');
64
- console.log(result);
65
- console.log('===========================================');
66
- }
67
- main()
68
- .then(() => process.exit(0))
69
- .catch((err) => {
70
- console.error(err);
71
- process.exit(1);
72
- });
73
- //# sourceMappingURL=decrypt-test.js.map
@@ -1,4 +0,0 @@
1
- /** @param {string} data Base64 encoded CAR file */
2
- export function parseProof(data: string): Promise<Signer.Delegation<Signer.Signer.Capabilities>>;
3
- import * as Signer from '@ucanto/principal/ed25519';
4
- //# sourceMappingURL=encrypt-test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"encrypt-test.d.ts","sourceRoot":"","sources":["../../examples/encrypt-test.js"],"names":[],"mappings":"AAeA,mDAAmD;AACnD,iCADY,MAAM,0DAQjB;wBAlBuB,2BAA2B"}
@@ -1,61 +0,0 @@
1
- import * as fs from 'fs';
2
- import dotenv from 'dotenv';
3
- import { CarReader } from '@ipld/car';
4
- import * as Client from '@storacha/client';
5
- import { importDAG } from '@ucanto/core/delegation';
6
- import * as Signer from '@ucanto/principal/ed25519';
7
- import { StoreMemory } from '@storacha/client/stores/memory';
8
- import * as EncryptClient from '../src/index.js';
9
- import { serviceConf, receiptsEndpoint } from '../src/config/service.js';
10
- import { createNodeLitAdapter } from '../src/crypto/factories.node.js';
11
- import { LitNodeClient } from '@lit-protocol/lit-node-client';
12
- dotenv.config();
13
- /** @param {string} data Base64 encoded CAR file */
14
- export async function parseProof(data) {
15
- const blocks = [];
16
- const reader = await CarReader.fromBytes(Buffer.from(data, 'base64'));
17
- for await (const block of reader.blocks()) {
18
- blocks.push(block);
19
- }
20
- return importDAG(blocks);
21
- }
22
- async function main() {
23
- // set up storacha client with a new agent
24
- const principal = Signer.parse(process.env.AGENT_PK || '');
25
- const store = new StoreMemory();
26
- const client = await Client.create({
27
- principal,
28
- store,
29
- serviceConf,
30
- receiptsEndpoint,
31
- });
32
- // now give Agent the delegation from the Space
33
- const proof = await parseProof(process.env.PROOF || '');
34
- const space = await client.addSpace(proof);
35
- await client.setCurrentSpace(space.did());
36
- // Set up Lit client
37
- const litClient = new LitNodeClient({
38
- litNetwork: 'datil-dev',
39
- });
40
- await litClient.connect();
41
- const encryptedClient = await EncryptClient.create({
42
- storachaClient: client,
43
- cryptoAdapter: createNodeLitAdapter(litClient),
44
- });
45
- const fileContent = await fs.promises.readFile('./README.md');
46
- const blob = new Blob([fileContent]);
47
- // Create encryption config
48
- const encryptionConfig = {
49
- issuer: principal,
50
- spaceDID: space.did(),
51
- };
52
- const link = await encryptedClient.encryptAndUploadFile(blob, encryptionConfig);
53
- console.log(link);
54
- }
55
- main()
56
- .then(() => process.exit(0))
57
- .catch((err) => {
58
- console.error(err);
59
- process.exit(1);
60
- });
61
- //# sourceMappingURL=encrypt-test.js.map
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=cid-verification.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cid-verification.spec.d.ts","sourceRoot":"","sources":["../../test/cid-verification.spec.js"],"names":[],"mappings":""}