@powerhousedao/connect 5.1.0-dev.4 → 5.1.0-dev.40

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 (149) hide show
  1. package/.env +1 -0
  2. package/dist/assets/AddDriveModal-B0BJbb7V.js +1 -0
  3. package/dist/assets/ClearStorageModal-i8ZGETjQ.js +1 -0
  4. package/dist/assets/CookiesPolicyModal-BwjmJbrm.js +1 -0
  5. package/dist/assets/CreateDocumentModal-DPVzin5z.js +1 -0
  6. package/dist/assets/DebugSettingsModal-D1gb8edA.js +1 -0
  7. package/dist/assets/DeleteDriveModal-C-dfGwTm.js +1 -0
  8. package/dist/assets/DeleteItemModal-Btvqqu2u.js +1 -0
  9. package/dist/assets/DisclaimerModal-Cpyn6VQS.js +1 -0
  10. package/dist/assets/DriveSettingsModal-D1XL765u.js +1 -0
  11. package/dist/assets/ExportDocumentWithErrorsModal-BSgb0yls.js +1 -0
  12. package/dist/assets/SettingsModal-fw_kNd_b.js +1 -0
  13. package/dist/assets/UpgradeDriveModal-Cq74G4UV.js +1 -0
  14. package/dist/assets/{design_system-BtMgNfie.js → design_system-DL9J1XTp.js} +2 -2
  15. package/dist/assets/design_system_connect-CISKydOj.js +45 -0
  16. package/dist/assets/design_system_ui-DtMSMFD-.js +1 -0
  17. package/dist/assets/document_drive-BjCTBivJ.js +316 -0
  18. package/dist/assets/{document_engineering-L3MHJaU7.js → document_engineering-H5WHF82B.js} +1 -1
  19. package/dist/assets/document_model-DXYoB_YO.js +230 -0
  20. package/dist/assets/document_model_editor-Ib_f5qZi.js +25 -0
  21. package/dist/assets/{drive_explorer-DW9_q4_8.js → drive_explorer-BKMfWnQL.js} +2 -2
  22. package/dist/assets/{graphql-BS4Brs_E.js → graphql-AKTCpY7l.js} +45 -45
  23. package/dist/assets/{graphql-editor-CMYQCTTf.js → graphql-editor-xhOcRrtr.js} +2 -2
  24. package/dist/assets/{graphql_request-9RNJ00DB.js → graphql_request-BJtmW2JS.js} +1 -1
  25. package/dist/assets/{hooks-DTA7Pz3J.js → hooks-CNcTloQw.js} +1 -1
  26. package/dist/assets/index-4Fn7VRBH.js +18 -0
  27. package/dist/assets/index-6ooL5A0g.js +25 -0
  28. package/dist/assets/index-SqSJYSgG.css +1 -0
  29. package/dist/assets/{json-editor-VC0XSZvv.js → json-editor-CfsREnfc.js} +1 -1
  30. package/dist/assets/nodefs-D5eWehIq.js +1 -0
  31. package/dist/assets/opfs-ahp-BhtgbgIQ.js +3 -0
  32. package/dist/assets/pg_dump-CW0pN9tG.wasm +0 -0
  33. package/dist/assets/postgres-CkP7QCDB.data +0 -0
  34. package/dist/assets/postgres-CyuUVpXN.wasm +0 -0
  35. package/dist/assets/reactor_browser-Bo-Pj3Xo.js +129 -0
  36. package/dist/assets/state-schemas-CVg0B4xO.js +2 -0
  37. package/dist/assets/zod-BpTyxkjy.js +20 -0
  38. package/dist/index.html +14 -14
  39. package/heroku/Dockerfile +3 -0
  40. package/lib/package.copy.json +17 -8
  41. package/lib/src/components/app-loader.d.ts +0 -4
  42. package/lib/src/components/app-loader.d.ts.map +1 -1
  43. package/lib/src/components/app-loader.js +2 -2
  44. package/lib/src/components/app-loader.js.map +1 -1
  45. package/lib/src/components/app.d.ts.map +1 -1
  46. package/lib/src/components/app.js +11 -0
  47. package/lib/src/components/app.js.map +1 -1
  48. package/lib/src/components/drive-editor-container.d.ts.map +1 -1
  49. package/lib/src/components/drive-editor-container.js +3 -6
  50. package/lib/src/components/drive-editor-container.js.map +1 -1
  51. package/lib/src/components/editors.d.ts.map +1 -1
  52. package/lib/src/components/editors.js +3 -9
  53. package/lib/src/components/editors.js.map +1 -1
  54. package/lib/src/components/error-boundary.d.ts +103 -0
  55. package/lib/src/components/error-boundary.d.ts.map +1 -0
  56. package/lib/src/components/error-boundary.js +104 -0
  57. package/lib/src/components/error-boundary.js.map +1 -0
  58. package/lib/src/components/modal/index.d.ts +0 -1
  59. package/lib/src/components/modal/index.d.ts.map +1 -1
  60. package/lib/src/components/modal/index.js +0 -1
  61. package/lib/src/components/modal/index.js.map +1 -1
  62. package/lib/src/components/modal/modals/AddDriveModal.d.ts.map +1 -1
  63. package/lib/src/components/modal/modals/AddDriveModal.js +35 -27
  64. package/lib/src/components/modal/modals/AddDriveModal.js.map +1 -1
  65. package/lib/src/components/modal/modals/InspectorModal/InspectorModal.d.ts +2 -0
  66. package/lib/src/components/modal/modals/InspectorModal/InspectorModal.d.ts.map +1 -0
  67. package/lib/src/components/modal/modals/InspectorModal/InspectorModal.js +27 -0
  68. package/lib/src/components/modal/modals/InspectorModal/InspectorModal.js.map +1 -0
  69. package/lib/src/components/modal/modals/InspectorModal/index.d.ts +2 -0
  70. package/lib/src/components/modal/modals/InspectorModal/index.d.ts.map +1 -0
  71. package/lib/src/components/modal/modals/InspectorModal/index.js +2 -0
  72. package/lib/src/components/modal/modals/InspectorModal/index.js.map +1 -0
  73. package/lib/src/components/modal/modals/InspectorModal/useDbExplorer.d.ts +32 -0
  74. package/lib/src/components/modal/modals/InspectorModal/useDbExplorer.d.ts.map +1 -0
  75. package/lib/src/components/modal/modals/InspectorModal/useDbExplorer.js +109 -0
  76. package/lib/src/components/modal/modals/InspectorModal/useDbExplorer.js.map +1 -0
  77. package/lib/src/components/modal/modals/InspectorModal/useRemotesInspector.d.ts +4 -0
  78. package/lib/src/components/modal/modals/InspectorModal/useRemotesInspector.d.ts.map +1 -0
  79. package/lib/src/components/modal/modals/InspectorModal/useRemotesInspector.js +12 -0
  80. package/lib/src/components/modal/modals/InspectorModal/useRemotesInspector.js.map +1 -0
  81. package/lib/src/components/modal/modals-container.d.ts.map +1 -1
  82. package/lib/src/components/modal/modals-container.js +6 -2
  83. package/lib/src/components/modal/modals-container.js.map +1 -1
  84. package/lib/src/components/sidebar.d.ts.map +1 -1
  85. package/lib/src/components/sidebar.js +7 -4
  86. package/lib/src/components/sidebar.js.map +1 -1
  87. package/lib/src/connect.config.d.ts +2 -0
  88. package/lib/src/connect.config.d.ts.map +1 -1
  89. package/lib/src/connect.config.js +1 -0
  90. package/lib/src/connect.config.js.map +1 -1
  91. package/lib/src/feature-flags.d.ts +22 -3
  92. package/lib/src/feature-flags.d.ts.map +1 -1
  93. package/lib/src/feature-flags.js +48 -3
  94. package/lib/src/feature-flags.js.map +1 -1
  95. package/lib/src/hooks/useClientErrorHandler.d.ts.map +1 -1
  96. package/lib/src/hooks/useClientErrorHandler.js +13 -2
  97. package/lib/src/hooks/useClientErrorHandler.js.map +1 -1
  98. package/lib/src/pages/demo/atlas-import.js +2 -2
  99. package/lib/src/pages/demo/atlas-import.js.map +1 -1
  100. package/lib/src/store/reactor.d.ts.map +1 -1
  101. package/lib/src/store/reactor.js +108 -52
  102. package/lib/src/store/reactor.js.map +1 -1
  103. package/lib/src/utils/reactor.d.ts +7 -0
  104. package/lib/src/utils/reactor.d.ts.map +1 -1
  105. package/lib/src/utils/reactor.js +37 -2
  106. package/lib/src/utils/reactor.js.map +1 -1
  107. package/lib/style.css +12451 -0
  108. package/lib/test/utils/signer.test.d.ts +2 -0
  109. package/lib/test/utils/signer.test.d.ts.map +1 -0
  110. package/lib/test/utils/signer.test.js +330 -0
  111. package/lib/test/utils/signer.test.js.map +1 -0
  112. package/lib/tsconfig.tsbuildinfo +1 -1
  113. package/lib/vite.config.d.ts.map +1 -1
  114. package/lib/vite.config.js +4 -0
  115. package/lib/vite.config.js.map +1 -1
  116. package/lib/vitest.config.d.ts +3 -0
  117. package/lib/vitest.config.d.ts.map +1 -0
  118. package/lib/vitest.config.js +8 -0
  119. package/lib/vitest.config.js.map +1 -0
  120. package/nginx.conf +7 -0
  121. package/package.copy.json +17 -8
  122. package/package.json +24 -15
  123. package/src/index.css +1 -0
  124. package/dist/assets/AddDriveModal-CHmzH2i5.js +0 -1
  125. package/dist/assets/ClearStorageModal-DO1rvW0q.js +0 -1
  126. package/dist/assets/CookiesPolicyModal-0E_7S0XS.js +0 -1
  127. package/dist/assets/CreateDocumentModal-BinBv7yz.js +0 -1
  128. package/dist/assets/DebugSettingsModal-DGwsZbWT.js +0 -1
  129. package/dist/assets/DeleteDriveModal-Bmr-id92.js +0 -1
  130. package/dist/assets/DeleteItemModal-SMMknmr6.js +0 -1
  131. package/dist/assets/DisclaimerModal-DpBYCJ_a.js +0 -1
  132. package/dist/assets/DriveSettingsModal-DadASDNA.js +0 -1
  133. package/dist/assets/ExportDocumentWithErrorsModal-YrTFPJEX.js +0 -1
  134. package/dist/assets/SettingsModal-BCIL5JiU.js +0 -1
  135. package/dist/assets/UpgradeDriveModal-dw68X-NA.js +0 -1
  136. package/dist/assets/design_system_connect-DjkmiEuL.js +0 -45
  137. package/dist/assets/design_system_ui-CYeo2hRa.js +0 -1
  138. package/dist/assets/document_drive-BEIKnuGM.js +0 -305
  139. package/dist/assets/document_model-DXcLJEjZ.js +0 -230
  140. package/dist/assets/document_model_editor-C5OPKuqK.js +0 -23
  141. package/dist/assets/index-Br7E7qjt.css +0 -1
  142. package/dist/assets/index-JlxfzgMH.js +0 -18
  143. package/dist/assets/reactor_browser-D2nouCxc.js +0 -25
  144. package/dist/assets/state-schemas-Crl7-SId.js +0 -2
  145. package/dist/assets/zod-C6yxFxyo.js +0 -1
  146. package/lib/src/components/modal/modals-error-boundary.d.ts +0 -18
  147. package/lib/src/components/modal/modals-error-boundary.d.ts.map +0 -1
  148. package/lib/src/components/modal/modals-error-boundary.js +0 -22
  149. package/lib/src/components/modal/modals-error-boundary.js.map +0 -1
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=signer.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signer.test.d.ts","sourceRoot":"","sources":["../../../test/utils/signer.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,330 @@
1
+ import { ConnectCrypto, ConnectCryptoSigner, createSignatureVerifier, } from "@renown/sdk";
2
+ import { deriveOperationId } from "document-model/core";
3
+ import { beforeEach, describe, expect, it } from "vitest";
4
+ const TEST_DOC_ID = "test-doc-id";
5
+ const TEST_BRANCH = "main";
6
+ const TEST_SCOPE = "global";
7
+ class InMemoryKeyStorage {
8
+ keyPair;
9
+ loadKeyPair() {
10
+ return Promise.resolve(this.keyPair);
11
+ }
12
+ saveKeyPair(keyPair) {
13
+ this.keyPair = keyPair;
14
+ return Promise.resolve();
15
+ }
16
+ }
17
+ describe("ConnectCryptoSigner and Verifier Integration", () => {
18
+ let keyStorage;
19
+ let connectCrypto;
20
+ let signer;
21
+ let verifier;
22
+ beforeEach(async () => {
23
+ keyStorage = new InMemoryKeyStorage();
24
+ connectCrypto = new ConnectCrypto(keyStorage);
25
+ signer = new ConnectCryptoSigner(connectCrypto);
26
+ verifier = createSignatureVerifier();
27
+ await connectCrypto.did();
28
+ });
29
+ it("signs an action and produces a valid signature format", async () => {
30
+ const action = {
31
+ id: "action-1",
32
+ type: "TEST_ACTION",
33
+ timestampUtcMs: new Date().toISOString(),
34
+ input: { foo: "bar" },
35
+ scope: "global",
36
+ };
37
+ const signature = await signer.signAction(action);
38
+ expect(signature).toHaveLength(5);
39
+ const [timestamp, signerKey, hash, prevStateHash, signatureHex] = signature;
40
+ expect(timestamp).toMatch(/^\d+$/);
41
+ expect(signerKey.startsWith("did:key:z")).toBe(true);
42
+ expect(hash).toBeDefined();
43
+ expect(prevStateHash).toBe("");
44
+ expect(signatureHex.startsWith("0x")).toBe(true);
45
+ expect(signatureHex.length).toBeGreaterThan(2);
46
+ });
47
+ it("verifies a signature created by ConnectCryptoSigner", async () => {
48
+ const did = await connectCrypto.did();
49
+ const action = {
50
+ id: "action-1",
51
+ type: "TEST_ACTION",
52
+ timestampUtcMs: new Date().toISOString(),
53
+ input: { foo: "bar" },
54
+ scope: "global",
55
+ };
56
+ const signature = await signer.signAction(action);
57
+ const signedAction = {
58
+ ...action,
59
+ context: {
60
+ signer: {
61
+ user: { address: did, chainId: 1, networkId: "eip155" },
62
+ app: { name: "test-app", key: did },
63
+ signatures: [signature],
64
+ },
65
+ },
66
+ };
67
+ const operation = {
68
+ id: deriveOperationId(TEST_DOC_ID, TEST_SCOPE, TEST_BRANCH, signedAction.id),
69
+ index: 0,
70
+ timestampUtcMs: action.timestampUtcMs,
71
+ hash: "",
72
+ skip: 0,
73
+ action: signedAction,
74
+ };
75
+ const isValid = await verifier(operation, did);
76
+ expect(isValid).toBe(true);
77
+ });
78
+ it("rejects a tampered signature", async () => {
79
+ const did = await connectCrypto.did();
80
+ const action = {
81
+ id: "action-1",
82
+ type: "TEST_ACTION",
83
+ timestampUtcMs: new Date().toISOString(),
84
+ input: { foo: "bar" },
85
+ scope: "global",
86
+ };
87
+ const signature = await signer.signAction(action);
88
+ const [timestamp, signerKey, hash, prevStateHash] = signature;
89
+ const tamperedSignature = [
90
+ timestamp,
91
+ signerKey,
92
+ hash,
93
+ prevStateHash,
94
+ "0xdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef",
95
+ ];
96
+ const signedAction = {
97
+ ...action,
98
+ context: {
99
+ signer: {
100
+ user: { address: did, chainId: 1, networkId: "eip155" },
101
+ app: { name: "test-app", key: did },
102
+ signatures: [tamperedSignature],
103
+ },
104
+ },
105
+ };
106
+ const operation = {
107
+ id: deriveOperationId(TEST_DOC_ID, TEST_SCOPE, TEST_BRANCH, signedAction.id),
108
+ index: 0,
109
+ timestampUtcMs: action.timestampUtcMs,
110
+ hash: "",
111
+ skip: 0,
112
+ action: signedAction,
113
+ };
114
+ const isValid = await verifier(operation, did);
115
+ expect(isValid).toBe(false);
116
+ });
117
+ it("rejects verification when public key does not match", async () => {
118
+ const did = await connectCrypto.did();
119
+ const action = {
120
+ id: "action-1",
121
+ type: "TEST_ACTION",
122
+ timestampUtcMs: new Date().toISOString(),
123
+ input: { foo: "bar" },
124
+ scope: "global",
125
+ };
126
+ const signature = await signer.signAction(action);
127
+ const signedAction = {
128
+ ...action,
129
+ context: {
130
+ signer: {
131
+ user: { address: did, chainId: 1, networkId: "eip155" },
132
+ app: { name: "test-app", key: did },
133
+ signatures: [signature],
134
+ },
135
+ },
136
+ };
137
+ const operation = {
138
+ id: deriveOperationId(TEST_DOC_ID, TEST_SCOPE, TEST_BRANCH, signedAction.id),
139
+ index: 0,
140
+ timestampUtcMs: action.timestampUtcMs,
141
+ hash: "",
142
+ skip: 0,
143
+ action: signedAction,
144
+ };
145
+ const wrongDid = "did:key:zDnaerDaTF5BXEavCrfRZEk316dpbLsfPDZ3WJ5hRTPFU2169";
146
+ const isValid = await verifier(operation, wrongDid);
147
+ expect(isValid).toBe(false);
148
+ });
149
+ it("returns true for operations without signer context", async () => {
150
+ const action = {
151
+ id: "action-1",
152
+ type: "TEST_ACTION",
153
+ timestampUtcMs: new Date().toISOString(),
154
+ input: { foo: "bar" },
155
+ scope: "global",
156
+ };
157
+ const operation = {
158
+ id: deriveOperationId(TEST_DOC_ID, TEST_SCOPE, TEST_BRANCH, action.id),
159
+ index: 0,
160
+ timestampUtcMs: action.timestampUtcMs,
161
+ hash: "",
162
+ skip: 0,
163
+ action: action,
164
+ };
165
+ const isValid = await verifier(operation, "any-key");
166
+ expect(isValid).toBe(true);
167
+ });
168
+ it("returns false for operations with signer but no signatures", async () => {
169
+ const did = await connectCrypto.did();
170
+ const action = {
171
+ id: "action-1",
172
+ type: "TEST_ACTION",
173
+ timestampUtcMs: new Date().toISOString(),
174
+ input: { foo: "bar" },
175
+ scope: "global",
176
+ context: {
177
+ signer: {
178
+ user: { address: did, chainId: 1, networkId: "eip155" },
179
+ app: { name: "test-app", key: did },
180
+ signatures: [],
181
+ },
182
+ },
183
+ };
184
+ const operation = {
185
+ id: deriveOperationId(TEST_DOC_ID, TEST_SCOPE, TEST_BRANCH, action.id),
186
+ index: 0,
187
+ timestampUtcMs: action.timestampUtcMs,
188
+ hash: "",
189
+ skip: 0,
190
+ action: action,
191
+ };
192
+ const isValid = await verifier(operation, did);
193
+ expect(isValid).toBe(false);
194
+ });
195
+ it("handles actions with prevOpHash in context", async () => {
196
+ const did = await connectCrypto.did();
197
+ const action = {
198
+ id: "action-1",
199
+ type: "TEST_ACTION",
200
+ timestampUtcMs: new Date().toISOString(),
201
+ input: { foo: "bar" },
202
+ scope: "global",
203
+ context: {
204
+ prevOpHash: "abc123",
205
+ },
206
+ };
207
+ const signature = await signer.signAction(action);
208
+ const signedAction = {
209
+ ...action,
210
+ context: {
211
+ ...action.context,
212
+ signer: {
213
+ user: { address: did, chainId: 1, networkId: "eip155" },
214
+ app: { name: "test-app", key: did },
215
+ signatures: [signature],
216
+ },
217
+ },
218
+ };
219
+ const operation = {
220
+ id: deriveOperationId(TEST_DOC_ID, TEST_SCOPE, TEST_BRANCH, signedAction.id),
221
+ index: 0,
222
+ timestampUtcMs: action.timestampUtcMs,
223
+ hash: "",
224
+ skip: 0,
225
+ action: signedAction,
226
+ };
227
+ const isValid = await verifier(operation, did);
228
+ expect(isValid).toBe(true);
229
+ expect(signature[3]).toBe("abc123");
230
+ });
231
+ it("handles complex action inputs", async () => {
232
+ const did = await connectCrypto.did();
233
+ const action = {
234
+ id: "action-1",
235
+ type: "COMPLEX_ACTION",
236
+ timestampUtcMs: new Date().toISOString(),
237
+ input: {
238
+ nested: {
239
+ deeply: {
240
+ value: [1, 2, 3],
241
+ unicode: "\u00e9\u00e0\u00f9",
242
+ },
243
+ },
244
+ array: ["a", "b", "c"],
245
+ nullValue: null,
246
+ booleans: { yes: true, no: false },
247
+ },
248
+ scope: "document",
249
+ };
250
+ const signature = await signer.signAction(action);
251
+ const signedAction = {
252
+ ...action,
253
+ context: {
254
+ signer: {
255
+ user: { address: did, chainId: 1, networkId: "eip155" },
256
+ app: { name: "test-app", key: did },
257
+ signatures: [signature],
258
+ },
259
+ },
260
+ };
261
+ const operation = {
262
+ id: deriveOperationId(TEST_DOC_ID, "document", TEST_BRANCH, signedAction.id),
263
+ index: 0,
264
+ timestampUtcMs: action.timestampUtcMs,
265
+ hash: "",
266
+ skip: 0,
267
+ action: signedAction,
268
+ };
269
+ const isValid = await verifier(operation, did);
270
+ expect(isValid).toBe(true);
271
+ });
272
+ it("produces different signatures for different actions", async () => {
273
+ const action1 = {
274
+ id: "action-1",
275
+ type: "TEST_ACTION",
276
+ timestampUtcMs: new Date().toISOString(),
277
+ input: { value: 1 },
278
+ scope: "global",
279
+ };
280
+ const action2 = {
281
+ id: "action-2",
282
+ type: "TEST_ACTION",
283
+ timestampUtcMs: new Date().toISOString(),
284
+ input: { value: 2 },
285
+ scope: "global",
286
+ };
287
+ const signature1 = await signer.signAction(action1);
288
+ const signature2 = await signer.signAction(action2);
289
+ expect(signature1[2]).not.toBe(signature2[2]);
290
+ expect(signature1[4]).not.toBe(signature2[4]);
291
+ });
292
+ it("signatures from different keys fail verification", async () => {
293
+ const did1 = await connectCrypto.did();
294
+ const action = {
295
+ id: "action-1",
296
+ type: "TEST_ACTION",
297
+ timestampUtcMs: new Date().toISOString(),
298
+ input: { foo: "bar" },
299
+ scope: "global",
300
+ };
301
+ const signature = await signer.signAction(action);
302
+ const newKeyStorage = new InMemoryKeyStorage();
303
+ const newConnectCrypto = new ConnectCrypto(newKeyStorage);
304
+ const did2 = await newConnectCrypto.did();
305
+ expect(did1).not.toBe(did2);
306
+ const signedAction = {
307
+ ...action,
308
+ context: {
309
+ signer: {
310
+ user: { address: did1, chainId: 1, networkId: "eip155" },
311
+ app: { name: "test-app", key: did1 },
312
+ signatures: [signature],
313
+ },
314
+ },
315
+ };
316
+ const operation = {
317
+ id: deriveOperationId(TEST_DOC_ID, TEST_SCOPE, TEST_BRANCH, signedAction.id),
318
+ index: 0,
319
+ timestampUtcMs: action.timestampUtcMs,
320
+ hash: "",
321
+ skip: 0,
322
+ action: signedAction,
323
+ };
324
+ const isValidWithOriginalKey = await verifier(operation, did1);
325
+ expect(isValidWithOriginalKey).toBe(true);
326
+ const isValidWithDifferentKey = await verifier(operation, did2);
327
+ expect(isValidWithDifferentKey).toBe(false);
328
+ });
329
+ });
330
+ //# sourceMappingURL=signer.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signer.test.js","sourceRoot":"","sources":["../../../test/utils/signer.test.ts"],"names":[],"mappings":"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"}