ns-auth-sdk 1.14.0 → 1.14.2

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 (153) hide show
  1. package/dist/{cjs-CSUAVztq.cjs → browser-index.cjs} +5476 -296
  2. package/dist/browser-index.cjs.map +1 -0
  3. package/dist/browser-index.d.cts +1998 -0
  4. package/dist/browser-index.d.cts.map +1 -0
  5. package/dist/browser-index.d.mts +1998 -0
  6. package/dist/browser-index.d.mts.map +1 -0
  7. package/dist/{cjs-sm5h7qxv.mjs → browser-index.mjs} +5169 -69
  8. package/dist/browser-index.mjs.map +1 -0
  9. package/dist/{group-coordination-BlFpBVpn.mjs → group-coordination-BV6PKlKp.mjs} +1 -1
  10. package/dist/{group-coordination-BlFpBVpn.mjs.map → group-coordination-BV6PKlKp.mjs.map} +1 -1
  11. package/dist/{group-coordination-ImuoJEoy.mjs → group-coordination-BytkmY9j.mjs} +1 -1
  12. package/dist/{group-coordination-LGIyipaX.cjs → group-coordination-DL39hJ3R.cjs} +1 -1
  13. package/dist/{group-coordination-LGIyipaX.cjs.map → group-coordination-DL39hJ3R.cjs.map} +1 -1
  14. package/dist/{group-coordination-Cf18OjZt.cjs → group-coordination-DLban6a7.cjs} +1 -1
  15. package/dist/index.cjs +8899 -41
  16. package/dist/index.cjs.map +1 -1
  17. package/dist/index.d.cts.map +1 -1
  18. package/dist/index.mjs +9072 -213
  19. package/dist/index.mjs.map +1 -1
  20. package/dist/{prf-handler-D3EqUNWe.cjs → prf-handler-BNd7gmXJ.cjs} +1 -1
  21. package/dist/{prf-handler-D3EqUNWe.cjs.map → prf-handler-BNd7gmXJ.cjs.map} +1 -1
  22. package/dist/prf-handler-CRMgzJG2.cjs +3 -0
  23. package/dist/{prf-handler-Dly_WZGn.mjs → prf-handler-DG99ZkS2.mjs} +1 -1
  24. package/dist/{prf-handler-Db8CsoIP.mjs → prf-handler-Dj2WTO9i.mjs} +1 -1
  25. package/dist/{prf-handler-Db8CsoIP.mjs.map → prf-handler-Dj2WTO9i.mjs.map} +1 -1
  26. package/dist/zkm.service-Bv88tVS5.mjs +3 -0
  27. package/dist/zkm.service-D2BZ_aqA.cjs +3 -0
  28. package/dist/{zkm.service-DfSPbuOl.cjs → zkm.service-DX06sSfB.cjs} +1 -1
  29. package/dist/{zkm.service-DfSPbuOl.cjs.map → zkm.service-DX06sSfB.cjs.map} +1 -1
  30. package/dist/{zkm.service-B24N_0FB.mjs → zkm.service-j0HlN7Oq.mjs} +1 -1
  31. package/dist/{zkm.service-B24N_0FB.mjs.map → zkm.service-j0HlN7Oq.mjs.map} +1 -1
  32. package/package.json +19 -6
  33. package/dist/_esm-C7FRLTj2.cjs +0 -9030
  34. package/dist/_esm-C7FRLTj2.cjs.map +0 -1
  35. package/dist/_esm-D_oMW5T5.mjs +0 -9028
  36. package/dist/_esm-D_oMW5T5.mjs.map +0 -1
  37. package/dist/base64-js-B8y7dH5k.mjs +0 -93
  38. package/dist/base64-js-B8y7dH5k.mjs.map +0 -1
  39. package/dist/base64-js-Tm-kCeud.cjs +0 -98
  40. package/dist/base64-js-Tm-kCeud.cjs.map +0 -1
  41. package/dist/ccip-157tdxqP.cjs +0 -7947
  42. package/dist/ccip-157tdxqP.cjs.map +0 -1
  43. package/dist/ccip-BEMMdVyd.cjs +0 -4
  44. package/dist/ccip-BSmCdJ3K.mjs +0 -3
  45. package/dist/ccip-okqXkslP.mjs +0 -6567
  46. package/dist/ccip-okqXkslP.mjs.map +0 -1
  47. package/dist/chains-CTeD2UcS.mjs +0 -33
  48. package/dist/chains-CTeD2UcS.mjs.map +0 -1
  49. package/dist/chains-Du-lv_5i.cjs +0 -33
  50. package/dist/chains-Du-lv_5i.cjs.map +0 -1
  51. package/dist/chunk-Bnu9O96Y.cjs +0 -60
  52. package/dist/chunk-CVYhg9ik.mjs +0 -45
  53. package/dist/cjs-CSUAVztq.cjs.map +0 -1
  54. package/dist/cjs-sm5h7qxv.mjs.map +0 -1
  55. package/dist/defineChain-7QG67hYU.cjs +0 -30
  56. package/dist/defineChain-7QG67hYU.cjs.map +0 -1
  57. package/dist/defineChain-DBem8ZQY.mjs +0 -24
  58. package/dist/defineChain-DBem8ZQY.mjs.map +0 -1
  59. package/dist/dist-BPmSxkxc.cjs +0 -10676
  60. package/dist/dist-BPmSxkxc.cjs.map +0 -1
  61. package/dist/dist-BSjH4t6s.cjs +0 -12932
  62. package/dist/dist-BSjH4t6s.cjs.map +0 -1
  63. package/dist/dist-C-KjTK4Q.cjs +0 -447
  64. package/dist/dist-C-KjTK4Q.cjs.map +0 -1
  65. package/dist/dist-C2h97xM-.mjs +0 -355
  66. package/dist/dist-C2h97xM-.mjs.map +0 -1
  67. package/dist/dist-CT7grDWb.mjs +0 -12920
  68. package/dist/dist-CT7grDWb.mjs.map +0 -1
  69. package/dist/dist-D7fRmK6G.mjs +0 -10632
  70. package/dist/dist-D7fRmK6G.mjs.map +0 -1
  71. package/dist/dist-DlmcyFmM.mjs +0 -16951
  72. package/dist/dist-DlmcyFmM.mjs.map +0 -1
  73. package/dist/dist-O0uZr5OF.cjs +0 -17122
  74. package/dist/dist-O0uZr5OF.cjs.map +0 -1
  75. package/dist/echo-BB-JgAYZ.cjs +0 -339
  76. package/dist/echo-BB-JgAYZ.cjs.map +0 -1
  77. package/dist/echo-Bwy4_Cvh.mjs +0 -316
  78. package/dist/echo-Bwy4_Cvh.mjs.map +0 -1
  79. package/dist/echo-D6X2IuNW.cjs +0 -9
  80. package/dist/echo-DvfG_heb.mjs +0 -8
  81. package/dist/esm-BcHKCX5i.mjs +0 -569
  82. package/dist/esm-BcHKCX5i.mjs.map +0 -1
  83. package/dist/esm-Bh_YwFIz.cjs +0 -599
  84. package/dist/esm-Bh_YwFIz.cjs.map +0 -1
  85. package/dist/esm-C0XO9TQm.cjs +0 -30449
  86. package/dist/esm-C0XO9TQm.cjs.map +0 -1
  87. package/dist/esm-vMUVj9k4.mjs +0 -30440
  88. package/dist/esm-vMUVj9k4.mjs.map +0 -1
  89. package/dist/keyset-CKMQXvsb.mjs +0 -172
  90. package/dist/keyset-CKMQXvsb.mjs.map +0 -1
  91. package/dist/keyset-Cxdgu110.cjs +0 -237
  92. package/dist/keyset-Cxdgu110.cjs.map +0 -1
  93. package/dist/keyset-DLxpGhdu.cjs +0 -6
  94. package/dist/keyset-IKjlhvqF.mjs +0 -4
  95. package/dist/node-3EUJ4ga9.cjs +0 -9
  96. package/dist/node-C2UpE11T.cjs +0 -444
  97. package/dist/node-C2UpE11T.cjs.map +0 -1
  98. package/dist/node-CHdpTQdN.mjs +0 -8679
  99. package/dist/node-CHdpTQdN.mjs.map +0 -1
  100. package/dist/node-DQt1CVGl.mjs +0 -6
  101. package/dist/node-Dy8ww1LG.cjs +0 -8680
  102. package/dist/node-Dy8ww1LG.cjs.map +0 -1
  103. package/dist/node-IX55IH6z.mjs +0 -397
  104. package/dist/node-IX55IH6z.mjs.map +0 -1
  105. package/dist/nostr-BTOpBN_5.cjs +0 -11
  106. package/dist/nostr-D4E52XRU.mjs +0 -224
  107. package/dist/nostr-D4E52XRU.mjs.map +0 -1
  108. package/dist/nostr-Hv2tsnuI.cjs +0 -272
  109. package/dist/nostr-Hv2tsnuI.cjs.map +0 -1
  110. package/dist/nostr-ZwJe_DlZ.mjs +0 -4
  111. package/dist/pako.esm-DTVnlCJh.cjs +0 -3856
  112. package/dist/pako.esm-DTVnlCJh.cjs.map +0 -1
  113. package/dist/pako.esm-ORhkEHM2.mjs +0 -3838
  114. package/dist/pako.esm-ORhkEHM2.mjs.map +0 -1
  115. package/dist/peer-B9g3OQ5D.cjs +0 -18
  116. package/dist/peer-CptDj7zu.mjs +0 -745
  117. package/dist/peer-CptDj7zu.mjs.map +0 -1
  118. package/dist/peer-CtqL0yiE.mjs +0 -9
  119. package/dist/peer-XrPL0O6z.cjs +0 -822
  120. package/dist/peer-XrPL0O6z.cjs.map +0 -1
  121. package/dist/ping-BXKREIdI.mjs +0 -7
  122. package/dist/ping-BtVhKocl.cjs +0 -379
  123. package/dist/ping-BtVhKocl.cjs.map +0 -1
  124. package/dist/ping-D5fpMhGC.cjs +0 -11
  125. package/dist/ping-DOD50kW_.mjs +0 -332
  126. package/dist/ping-DOD50kW_.mjs.map +0 -1
  127. package/dist/policy-8HcjulLD.cjs +0 -293
  128. package/dist/policy-8HcjulLD.cjs.map +0 -1
  129. package/dist/policy-BA6MEOBY.mjs +0 -5
  130. package/dist/policy-BFNdXvmM.cjs +0 -11
  131. package/dist/policy-D_nFHHjo.mjs +0 -228
  132. package/dist/policy-D_nFHHjo.mjs.map +0 -1
  133. package/dist/prf-handler-BNiyCQMt.cjs +0 -3
  134. package/dist/src-CVfTUJQl.mjs +0 -822
  135. package/dist/src-CVfTUJQl.mjs.map +0 -1
  136. package/dist/src-D5S86Xpf.cjs +0 -827
  137. package/dist/src-D5S86Xpf.cjs.map +0 -1
  138. package/dist/types-B-TLIS13.cjs +0 -212
  139. package/dist/types-B-TLIS13.cjs.map +0 -1
  140. package/dist/types-CTm_FHYD.mjs +0 -111
  141. package/dist/types-CTm_FHYD.mjs.map +0 -1
  142. package/dist/validation-1xwWVXqE.mjs +0 -3
  143. package/dist/validation-DnpurN79.cjs +0 -405
  144. package/dist/validation-DnpurN79.cjs.map +0 -1
  145. package/dist/validation-IsAUvsvy.mjs +0 -334
  146. package/dist/validation-IsAUvsvy.mjs.map +0 -1
  147. package/dist/validation-yCvZCqIs.cjs +0 -6
  148. package/dist/wrapper-C5NpyacC.cjs +0 -3552
  149. package/dist/wrapper-C5NpyacC.cjs.map +0 -1
  150. package/dist/wrapper-CHq_CV4J.mjs +0 -3552
  151. package/dist/wrapper-CHq_CV4J.mjs.map +0 -1
  152. package/dist/zkm.service-BrXyI4BS.mjs +0 -3
  153. package/dist/zkm.service-BvQ01wSH.cjs +0 -3
@@ -1,316 +0,0 @@
1
- import { n as EchoError } from "./types-CTm_FHYD.mjs";
2
- import { a as createBifrostNode, n as closeNode, r as connectNode } from "./node-IX55IH6z.mjs";
3
- import { n as decodeShare, t as decodeGroup } from "./keyset-CKMQXvsb.mjs";
4
-
5
- //#region node_modules/@frostr/igloo-core/dist/echo.js
6
- /**
7
- * Default relay URLs for echo functionality
8
- */
9
- const DEFAULT_ECHO_RELAYS = ["wss://relay.damus.io", "wss://relay.primal.net"];
10
- function isEvenLengthHex(data) {
11
- if (typeof data !== "string") return false;
12
- const s = data.trim();
13
- if (s.length === 0) return false;
14
- if (s.length % 2 !== 0) return false;
15
- return /^[0-9a-fA-F]+$/.test(s);
16
- }
17
- function resolveEchoRelays(groupCredential, explicitRelays) {
18
- if (explicitRelays && explicitRelays.length > 0) return explicitRelays;
19
- try {
20
- const relays = decodeGroup(groupCredential).relays;
21
- if (Array.isArray(relays) && relays.length > 0) return relays;
22
- } catch {}
23
- return DEFAULT_ECHO_RELAYS;
24
- }
25
- /**
26
- * Waits for an echo event on a specific share.
27
- * This function sets up a Bifrost node to listen for an incoming echo request,
28
- * which signals that another device has successfully imported and is interacting with the share.
29
- */
30
- function awaitShareEcho(groupCredential, shareCredential, options = {}) {
31
- const { relays: relayOverrides, timeout = 3e4, eventConfig = {
32
- enableLogging: true,
33
- logLevel: "info"
34
- } } = options;
35
- return new Promise(async (resolve, reject) => {
36
- let node = null;
37
- let timeoutId = null;
38
- let isResolved = false;
39
- const cleanup = () => {
40
- if (timeoutId) {
41
- clearTimeout(timeoutId);
42
- timeoutId = null;
43
- }
44
- if (node) {
45
- try {
46
- closeNode(node);
47
- } catch (error) {
48
- console.warn("[awaitShareEcho] Error during cleanup:", error);
49
- }
50
- node = null;
51
- }
52
- };
53
- const safeResolve = (value) => {
54
- if (!isResolved) {
55
- isResolved = true;
56
- resolve(value);
57
- cleanup();
58
- }
59
- };
60
- const safeReject = (error) => {
61
- if (!isResolved) {
62
- isResolved = true;
63
- reject(error);
64
- cleanup();
65
- }
66
- };
67
- try {
68
- const shareDetails = decodeShare(shareCredential);
69
- const resolvedRelays = resolveEchoRelays(groupCredential, relayOverrides);
70
- const customEventConfig = {
71
- ...eventConfig,
72
- customLogger: (level, message, data) => {
73
- const prefix = `[awaitShareEcho:${shareDetails.idx}]`;
74
- if (eventConfig.customLogger) eventConfig.customLogger(level, `${prefix} ${message}`, data);
75
- else console.log(`${prefix} [${level.toUpperCase()}] ${message}`, data || "");
76
- }
77
- };
78
- node = createBifrostNode({
79
- group: groupCredential,
80
- share: shareCredential,
81
- relays: resolvedRelays
82
- }, customEventConfig);
83
- const onMessageHandler = (messagePayload) => {
84
- if (messagePayload && messagePayload.tag === "/echo/req" && (messagePayload.data === "echo" || isEvenLengthHex(messagePayload.data))) {
85
- customEventConfig.customLogger?.("info", `Echo request received for share ${shareDetails.idx}`, messagePayload);
86
- safeResolve(true);
87
- }
88
- };
89
- const onErrorHandler = (error) => {
90
- customEventConfig.customLogger?.("error", `Node error for share ${shareDetails.idx}`, error);
91
- safeReject(new EchoError(`Node error: ${error}`));
92
- };
93
- const onClosedHandler = () => {
94
- customEventConfig.customLogger?.("warn", `Connection closed for share ${shareDetails.idx}`);
95
- if (!isResolved) safeReject(new EchoError("Connection closed before echo was received"));
96
- };
97
- node.on("message", onMessageHandler);
98
- node.on("error", onErrorHandler);
99
- node.on("closed", onClosedHandler);
100
- timeoutId = setTimeout(() => {
101
- safeReject(new EchoError(`No echo received within ${timeout / 1e3} seconds`, {
102
- shareIndex: shareDetails.idx,
103
- timeout
104
- }));
105
- }, timeout);
106
- await connectNode(node);
107
- customEventConfig.customLogger?.("info", `Listening for echo on share ${shareDetails.idx}`);
108
- } catch (error) {
109
- safeReject(new EchoError(`Failed to set up echo listener: ${error.message}`, { error }));
110
- }
111
- });
112
- }
113
- /**
114
- * Starts listening for echo events on all shares in a keyset.
115
- * Creates one BifrostNode per share to listen for incoming echo requests.
116
- * This is useful for detecting when shares have been imported on other devices.
117
- */
118
- function startListeningForAllEchoes(groupCredential, shareCredentials, onEchoReceived, options = {}) {
119
- const { relays: relayOverrides, eventConfig = {
120
- enableLogging: true,
121
- logLevel: "info"
122
- } } = options;
123
- const nodes = [];
124
- const cleanupFunctions = [];
125
- let isActive = true;
126
- const customLogger = (level, message, data) => {
127
- const prefix = "[startListeningForAllEchoes]";
128
- if (eventConfig.customLogger) eventConfig.customLogger(level, `${prefix} ${message}`, data);
129
- else console.log(`${prefix} [${level.toUpperCase()}] ${message}`, data || "");
130
- };
131
- const resolvedRelays = resolveEchoRelays(groupCredential, relayOverrides);
132
- customLogger("info", `Starting echo listeners for ${shareCredentials.length} shares`);
133
- shareCredentials.forEach((shareCredential, index) => {
134
- try {
135
- const shareDetails = decodeShare(shareCredential);
136
- const node = createBifrostNode({
137
- group: groupCredential,
138
- share: shareCredential,
139
- relays: resolvedRelays
140
- }, {
141
- ...eventConfig,
142
- customLogger
143
- });
144
- nodes.push(node);
145
- const onMessageHandler = (messagePayload) => {
146
- if (messagePayload && messagePayload.tag === "/echo/req" && (messagePayload.data === "echo" || isEvenLengthHex(messagePayload.data))) {
147
- customLogger("info", `Echo received for share ${index} (idx: ${shareDetails.idx})`);
148
- onEchoReceived(index, shareCredential);
149
- }
150
- };
151
- const onErrorHandler = (error) => {
152
- customLogger("error", `Error on share ${index} (idx: ${shareDetails.idx})`, error);
153
- };
154
- const onClosedHandler = () => {
155
- customLogger("warn", `Connection closed for share ${index} (idx: ${shareDetails.idx})`);
156
- };
157
- node.on("message", onMessageHandler);
158
- node.on("error", onErrorHandler);
159
- node.on("closed", onClosedHandler);
160
- connectNode(node).catch((error) => {
161
- customLogger("error", `Failed to connect node for share ${index}`, error);
162
- });
163
- const cleanup = () => {
164
- try {
165
- node.off("message", onMessageHandler);
166
- node.off("error", onErrorHandler);
167
- node.off("closed", onClosedHandler);
168
- closeNode(node);
169
- } catch (error) {
170
- customLogger("error", `Error cleaning up node for share ${index}`, error);
171
- }
172
- };
173
- cleanupFunctions.push(cleanup);
174
- } catch (error) {
175
- customLogger("error", `Failed to create node for share ${index}`, error);
176
- }
177
- });
178
- return {
179
- cleanup: () => {
180
- if (!isActive) return;
181
- customLogger("info", "Cleaning up all echo listeners");
182
- isActive = false;
183
- cleanupFunctions.forEach((cleanup) => {
184
- try {
185
- cleanup();
186
- } catch (error) {
187
- customLogger("error", "Error during cleanup", error);
188
- }
189
- });
190
- },
191
- isActive
192
- };
193
- }
194
- /**
195
- * Sends an echo message to test connectivity with a share
196
- */
197
- async function sendEcho(groupCredential, shareCredential, challenge, options = {}) {
198
- const { relays: relayOverrides, timeout = 1e4, eventConfig = {
199
- enableLogging: true,
200
- logLevel: "info"
201
- } } = options;
202
- if (typeof challenge !== "string") throw new TypeError("Echo challenge must be provided as a hexadecimal string.");
203
- const normalizedChallenge = challenge.trim();
204
- if (normalizedChallenge.length === 0) throw new TypeError("Echo challenge must be provided as a non-empty hexadecimal string.");
205
- if (normalizedChallenge.length % 2 !== 0 || !/^[0-9a-fA-F]+$/.test(normalizedChallenge)) throw new TypeError("Echo challenge must be an even-length hexadecimal string.");
206
- return new Promise(async (resolve, reject) => {
207
- let node = null;
208
- let timeoutId = null;
209
- let isResolved = false;
210
- let onEchoResponse = null;
211
- let onEchoRejection = null;
212
- let onError = null;
213
- const cleanup = () => {
214
- if (timeoutId) {
215
- clearTimeout(timeoutId);
216
- timeoutId = null;
217
- }
218
- if (node) {
219
- try {
220
- if (onEchoResponse) {
221
- node.off("/echo/sender/res", onEchoResponse);
222
- onEchoResponse = null;
223
- }
224
- if (onEchoRejection) {
225
- node.off("/echo/sender/rej", onEchoRejection);
226
- onEchoRejection = null;
227
- }
228
- if (onError) {
229
- node.off("error", onError);
230
- onError = null;
231
- }
232
- closeNode(node);
233
- } catch (error) {
234
- console.warn("[sendEcho] Error during cleanup:", error);
235
- }
236
- node = null;
237
- }
238
- };
239
- const safeResolve = (value) => {
240
- if (!isResolved) {
241
- isResolved = true;
242
- cleanup();
243
- resolve(value);
244
- }
245
- };
246
- const safeReject = (error) => {
247
- if (!isResolved) {
248
- isResolved = true;
249
- cleanup();
250
- reject(error);
251
- }
252
- };
253
- try {
254
- const shareDetails = decodeShare(shareCredential);
255
- const resolvedRelays = resolveEchoRelays(groupCredential, relayOverrides);
256
- const log = (level, message, data) => {
257
- const prefix = `[sendEcho:${shareDetails.idx}]`;
258
- if (eventConfig.customLogger) eventConfig.customLogger(level, `${prefix} ${message}`, data);
259
- else if (eventConfig.enableLogging) console.log(`${prefix} [${level.toUpperCase()}] ${message}`, data || "");
260
- };
261
- node = createBifrostNode({
262
- group: groupCredential,
263
- share: shareCredential,
264
- relays: resolvedRelays
265
- }, {
266
- ...eventConfig,
267
- customLogger: (level, message, data) => {
268
- log(level, message, data);
269
- }
270
- });
271
- onEchoResponse = (msg) => {
272
- if (msg && msg.tag === "/echo/res") {
273
- log("debug", "Echo response event received", msg);
274
- safeResolve(true);
275
- }
276
- };
277
- onEchoRejection = (reason, msg) => {
278
- log("warn", `Echo rejected: ${reason}`, msg);
279
- safeReject(new EchoError(`Echo rejected: ${reason}`, { msg }));
280
- };
281
- onError = (error) => {
282
- log("error", `Node error: ${error}`);
283
- safeReject(new EchoError(`Node error: ${error}`));
284
- };
285
- node.on("/echo/sender/res", onEchoResponse);
286
- node.on("/echo/sender/rej", onEchoRejection);
287
- node.on("error", onError);
288
- timeoutId = setTimeout(() => {
289
- log("warn", `Echo response timeout after ${timeout}ms`);
290
- safeReject(new EchoError(`Echo response timeout after ${timeout / 1e3} seconds`, {
291
- shareIndex: shareDetails.idx,
292
- timeout
293
- }));
294
- }, timeout);
295
- await connectNode(node);
296
- log("debug", "Sending echo challenge");
297
- const response = await node.req.echo(normalizedChallenge);
298
- if (!response?.ok) {
299
- const reason = response?.err || "Unknown error";
300
- throw new EchoError(`Echo request failed: ${reason}`, {
301
- error: reason,
302
- shareIndex: shareDetails.idx
303
- });
304
- }
305
- log("info", "Echo request completed successfully");
306
- safeResolve(true);
307
- } catch (error) {
308
- if (error instanceof EchoError) safeReject(error);
309
- else safeReject(new EchoError(`Failed to send echo: ${error.message}`, { error }));
310
- }
311
- });
312
- }
313
-
314
- //#endregion
315
- export { startListeningForAllEchoes as i, awaitShareEcho as n, sendEcho as r, DEFAULT_ECHO_RELAYS as t };
316
- //# sourceMappingURL=echo-Bwy4_Cvh.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"echo-Bwy4_Cvh.mjs","names":[],"sources":["../node_modules/@frostr/igloo-core/dist/echo.js"],"sourcesContent":["import { createBifrostNode, connectNode, closeNode } from './node.js';\nimport { decodeShare, decodeGroup } from './keyset.js';\nimport { EchoError } from './types.js';\n/**\n * Default relay URLs for echo functionality\n */\nexport const DEFAULT_ECHO_RELAYS = [\n \"wss://relay.damus.io\",\n \"wss://relay.primal.net\"\n];\nfunction isEvenLengthHex(data) {\n if (typeof data !== 'string')\n return false;\n const s = data.trim();\n if (s.length === 0)\n return false;\n if (s.length % 2 !== 0)\n return false;\n return /^[0-9a-fA-F]+$/.test(s);\n}\nfunction resolveEchoRelays(groupCredential, explicitRelays) {\n if (explicitRelays && explicitRelays.length > 0) {\n return explicitRelays;\n }\n try {\n const group = decodeGroup(groupCredential);\n const relays = group.relays;\n if (Array.isArray(relays) && relays.length > 0) {\n return relays;\n }\n }\n catch {\n // If group decoding fails we fall back to defaults; createBifrostNode will surface errors later.\n }\n return DEFAULT_ECHO_RELAYS;\n}\n/**\n * Waits for an echo event on a specific share.\n * This function sets up a Bifrost node to listen for an incoming echo request,\n * which signals that another device has successfully imported and is interacting with the share.\n */\nexport function awaitShareEcho(groupCredential, shareCredential, options = {}) {\n const { relays: relayOverrides, timeout = 30000, eventConfig = { enableLogging: true, logLevel: 'info' } } = options;\n return new Promise(async (resolve, reject) => {\n let node = null;\n let timeoutId = null;\n let isResolved = false;\n const cleanup = () => {\n if (timeoutId) {\n clearTimeout(timeoutId);\n timeoutId = null;\n }\n if (node) {\n try {\n closeNode(node);\n }\n catch (error) {\n console.warn('[awaitShareEcho] Error during cleanup:', error);\n }\n node = null;\n }\n };\n const safeResolve = (value) => {\n if (!isResolved) {\n isResolved = true;\n resolve(value);\n cleanup();\n }\n };\n const safeReject = (error) => {\n if (!isResolved) {\n isResolved = true;\n reject(error);\n cleanup();\n }\n };\n try {\n const shareDetails = decodeShare(shareCredential);\n const resolvedRelays = resolveEchoRelays(groupCredential, relayOverrides);\n // Create custom event config that includes our echo handler\n const customEventConfig = {\n ...eventConfig,\n customLogger: (level, message, data) => {\n const prefix = `[awaitShareEcho:${shareDetails.idx}]`;\n if (eventConfig.customLogger) {\n eventConfig.customLogger(level, `${prefix} ${message}`, data);\n }\n else {\n console.log(`${prefix} [${level.toUpperCase()}] ${message}`, data || '');\n }\n }\n };\n node = createBifrostNode({ group: groupCredential, share: shareCredential, relays: resolvedRelays }, customEventConfig);\n // Set up echo-specific message handler (accept legacy 'echo' OR challenge-hex)\n const onMessageHandler = (messagePayload) => {\n if (messagePayload &&\n messagePayload.tag === '/echo/req' &&\n (messagePayload.data === 'echo' || isEvenLengthHex(messagePayload.data))) {\n customEventConfig.customLogger?.('info', `Echo request received for share ${shareDetails.idx}`, messagePayload);\n safeResolve(true);\n }\n };\n const onErrorHandler = (error) => {\n customEventConfig.customLogger?.('error', `Node error for share ${shareDetails.idx}`, error);\n safeReject(new EchoError(`Node error: ${error}`));\n };\n const onClosedHandler = () => {\n customEventConfig.customLogger?.('warn', `Connection closed for share ${shareDetails.idx}`);\n if (!isResolved) {\n safeReject(new EchoError('Connection closed before echo was received'));\n }\n };\n // Attach event handlers\n node.on('message', onMessageHandler);\n node.on('error', onErrorHandler);\n node.on('closed', onClosedHandler);\n // Set up timeout\n timeoutId = setTimeout(() => {\n safeReject(new EchoError(`No echo received within ${timeout / 1000} seconds`, { shareIndex: shareDetails.idx, timeout }));\n }, timeout);\n // Connect the node\n await connectNode(node);\n customEventConfig.customLogger?.('info', `Listening for echo on share ${shareDetails.idx}`);\n }\n catch (error) {\n safeReject(new EchoError(`Failed to set up echo listener: ${error.message}`, { error }));\n }\n });\n}\n/**\n * Starts listening for echo events on all shares in a keyset.\n * Creates one BifrostNode per share to listen for incoming echo requests.\n * This is useful for detecting when shares have been imported on other devices.\n */\nexport function startListeningForAllEchoes(groupCredential, shareCredentials, onEchoReceived, options = {}) {\n const { relays: relayOverrides, eventConfig = { enableLogging: true, logLevel: 'info' } } = options;\n const nodes = [];\n const cleanupFunctions = [];\n let isActive = true;\n const customLogger = (level, message, data) => {\n const prefix = '[startListeningForAllEchoes]';\n if (eventConfig.customLogger) {\n eventConfig.customLogger(level, `${prefix} ${message}`, data);\n }\n else {\n console.log(`${prefix} [${level.toUpperCase()}] ${message}`, data || '');\n }\n };\n const resolvedRelays = resolveEchoRelays(groupCredential, relayOverrides);\n customLogger('info', `Starting echo listeners for ${shareCredentials.length} shares`);\n shareCredentials.forEach((shareCredential, index) => {\n try {\n const shareDetails = decodeShare(shareCredential);\n const node = createBifrostNode({ group: groupCredential, share: shareCredential, relays: resolvedRelays }, { ...eventConfig, customLogger });\n nodes.push(node);\n // Create message handler for this specific share (accept legacy 'echo' OR challenge-hex)\n const onMessageHandler = (messagePayload) => {\n if (messagePayload &&\n messagePayload.tag === '/echo/req' &&\n (messagePayload.data === 'echo' || isEvenLengthHex(messagePayload.data))) {\n customLogger('info', `Echo received for share ${index} (idx: ${shareDetails.idx})`);\n onEchoReceived(index, shareCredential);\n }\n };\n const onErrorHandler = (error) => {\n customLogger('error', `Error on share ${index} (idx: ${shareDetails.idx})`, error);\n };\n const onClosedHandler = () => {\n customLogger('warn', `Connection closed for share ${index} (idx: ${shareDetails.idx})`);\n };\n // Attach listeners\n node.on('message', onMessageHandler);\n node.on('error', onErrorHandler);\n node.on('closed', onClosedHandler);\n // Connect the node\n connectNode(node).catch(error => {\n customLogger('error', `Failed to connect node for share ${index}`, error);\n });\n // Create cleanup function for this node\n const cleanup = () => {\n try {\n node.off('message', onMessageHandler);\n node.off('error', onErrorHandler);\n node.off('closed', onClosedHandler);\n closeNode(node);\n }\n catch (error) {\n customLogger('error', `Error cleaning up node for share ${index}`, error);\n }\n };\n cleanupFunctions.push(cleanup);\n }\n catch (error) {\n customLogger('error', `Failed to create node for share ${index}`, error);\n }\n });\n // Return EchoListener object\n return {\n cleanup: () => {\n if (!isActive)\n return;\n customLogger('info', 'Cleaning up all echo listeners');\n isActive = false;\n cleanupFunctions.forEach(cleanup => {\n try {\n cleanup();\n }\n catch (error) {\n customLogger('error', 'Error during cleanup', error);\n }\n });\n },\n isActive\n };\n}\n/**\n * Sends an echo message to test connectivity with a share\n */\nexport async function sendEcho(groupCredential, shareCredential, challenge, options = {}) {\n const { relays: relayOverrides, timeout = 10000, eventConfig = { enableLogging: true, logLevel: 'info' } } = options;\n if (typeof challenge !== 'string') {\n throw new TypeError('Echo challenge must be provided as a hexadecimal string.');\n }\n const normalizedChallenge = challenge.trim();\n if (normalizedChallenge.length === 0) {\n throw new TypeError('Echo challenge must be provided as a non-empty hexadecimal string.');\n }\n if (normalizedChallenge.length % 2 !== 0 || !/^[0-9a-fA-F]+$/.test(normalizedChallenge)) {\n throw new TypeError('Echo challenge must be an even-length hexadecimal string.');\n }\n return new Promise(async (resolve, reject) => {\n let node = null;\n let timeoutId = null;\n let isResolved = false;\n let onEchoResponse = null;\n let onEchoRejection = null;\n let onError = null;\n const cleanup = () => {\n if (timeoutId) {\n clearTimeout(timeoutId);\n timeoutId = null;\n }\n if (node) {\n try {\n if (onEchoResponse) {\n node.off('/echo/sender/res', onEchoResponse);\n onEchoResponse = null;\n }\n if (onEchoRejection) {\n node.off('/echo/sender/rej', onEchoRejection);\n onEchoRejection = null;\n }\n if (onError) {\n node.off('error', onError);\n onError = null;\n }\n closeNode(node);\n }\n catch (error) {\n console.warn('[sendEcho] Error during cleanup:', error);\n }\n node = null;\n }\n };\n const safeResolve = (value) => {\n if (!isResolved) {\n isResolved = true;\n cleanup();\n resolve(value);\n }\n };\n const safeReject = (error) => {\n if (!isResolved) {\n isResolved = true;\n cleanup();\n reject(error);\n }\n };\n try {\n const shareDetails = decodeShare(shareCredential);\n const resolvedRelays = resolveEchoRelays(groupCredential, relayOverrides);\n const log = (level, message, data) => {\n const prefix = `[sendEcho:${shareDetails.idx}]`;\n if (eventConfig.customLogger) {\n eventConfig.customLogger(level, `${prefix} ${message}`, data);\n }\n else if (eventConfig.enableLogging) {\n console.log(`${prefix} [${level.toUpperCase()}] ${message}`, data || '');\n }\n };\n node = createBifrostNode({ group: groupCredential, share: shareCredential, relays: resolvedRelays }, {\n ...eventConfig,\n customLogger: (level, message, data) => {\n log(level, message, data);\n }\n });\n // Listen for echo response\n onEchoResponse = (msg) => {\n if (msg && msg.tag === '/echo/res') {\n log('debug', 'Echo response event received', msg);\n safeResolve(true);\n }\n };\n onEchoRejection = (reason, msg) => {\n log('warn', `Echo rejected: ${reason}`, msg);\n safeReject(new EchoError(`Echo rejected: ${reason}`, { msg }));\n };\n onError = (error) => {\n log('error', `Node error: ${error}`);\n safeReject(new EchoError(`Node error: ${error}`));\n };\n node.on('/echo/sender/res', onEchoResponse);\n node.on('/echo/sender/rej', onEchoRejection);\n node.on('error', onError);\n // Set up timeout\n timeoutId = setTimeout(() => {\n log('warn', `Echo response timeout after ${timeout}ms`);\n safeReject(new EchoError(`Echo response timeout after ${timeout / 1000} seconds`, { shareIndex: shareDetails.idx, timeout }));\n }, timeout);\n await connectNode(node);\n log('debug', 'Sending echo challenge');\n const response = await node.req.echo(normalizedChallenge);\n if (!response?.ok) {\n const reason = response?.err || 'Unknown error';\n throw new EchoError(`Echo request failed: ${reason}`, { error: reason, shareIndex: shareDetails.idx });\n }\n log('info', 'Echo request completed successfully');\n safeResolve(true);\n }\n catch (error) {\n if (error instanceof EchoError) {\n safeReject(error);\n }\n else {\n safeReject(new EchoError(`Failed to send echo: ${error.message}`, { error }));\n }\n }\n });\n}\n"],"x_google_ignoreList":[0],"mappings":";;;;;;;;AAMA,MAAa,sBAAsB,CAC/B,wBACA,yBACH;AACD,SAAS,gBAAgB,MAAM;AAC3B,KAAI,OAAO,SAAS,SAChB,QAAO;CACX,MAAM,IAAI,KAAK,MAAM;AACrB,KAAI,EAAE,WAAW,EACb,QAAO;AACX,KAAI,EAAE,SAAS,MAAM,EACjB,QAAO;AACX,QAAO,iBAAiB,KAAK,EAAE;;AAEnC,SAAS,kBAAkB,iBAAiB,gBAAgB;AACxD,KAAI,kBAAkB,eAAe,SAAS,EAC1C,QAAO;AAEX,KAAI;EAEA,MAAM,SADQ,YAAY,gBAAgB,CACrB;AACrB,MAAI,MAAM,QAAQ,OAAO,IAAI,OAAO,SAAS,EACzC,QAAO;SAGT;AAGN,QAAO;;;;;;;AAOX,SAAgB,eAAe,iBAAiB,iBAAiB,UAAU,EAAE,EAAE;CAC3E,MAAM,EAAE,QAAQ,gBAAgB,UAAU,KAAO,cAAc;EAAE,eAAe;EAAM,UAAU;EAAQ,KAAK;AAC7G,QAAO,IAAI,QAAQ,OAAO,SAAS,WAAW;EAC1C,IAAI,OAAO;EACX,IAAI,YAAY;EAChB,IAAI,aAAa;EACjB,MAAM,gBAAgB;AAClB,OAAI,WAAW;AACX,iBAAa,UAAU;AACvB,gBAAY;;AAEhB,OAAI,MAAM;AACN,QAAI;AACA,eAAU,KAAK;aAEZ,OAAO;AACV,aAAQ,KAAK,0CAA0C,MAAM;;AAEjE,WAAO;;;EAGf,MAAM,eAAe,UAAU;AAC3B,OAAI,CAAC,YAAY;AACb,iBAAa;AACb,YAAQ,MAAM;AACd,aAAS;;;EAGjB,MAAM,cAAc,UAAU;AAC1B,OAAI,CAAC,YAAY;AACb,iBAAa;AACb,WAAO,MAAM;AACb,aAAS;;;AAGjB,MAAI;GACA,MAAM,eAAe,YAAY,gBAAgB;GACjD,MAAM,iBAAiB,kBAAkB,iBAAiB,eAAe;GAEzE,MAAM,oBAAoB;IACtB,GAAG;IACH,eAAe,OAAO,SAAS,SAAS;KACpC,MAAM,SAAS,mBAAmB,aAAa,IAAI;AACnD,SAAI,YAAY,aACZ,aAAY,aAAa,OAAO,GAAG,OAAO,GAAG,WAAW,KAAK;SAG7D,SAAQ,IAAI,GAAG,OAAO,IAAI,MAAM,aAAa,CAAC,IAAI,WAAW,QAAQ,GAAG;;IAGnF;AACD,UAAO,kBAAkB;IAAE,OAAO;IAAiB,OAAO;IAAiB,QAAQ;IAAgB,EAAE,kBAAkB;GAEvH,MAAM,oBAAoB,mBAAmB;AACzC,QAAI,kBACA,eAAe,QAAQ,gBACtB,eAAe,SAAS,UAAU,gBAAgB,eAAe,KAAK,GAAG;AAC1E,uBAAkB,eAAe,QAAQ,mCAAmC,aAAa,OAAO,eAAe;AAC/G,iBAAY,KAAK;;;GAGzB,MAAM,kBAAkB,UAAU;AAC9B,sBAAkB,eAAe,SAAS,wBAAwB,aAAa,OAAO,MAAM;AAC5F,eAAW,IAAI,UAAU,eAAe,QAAQ,CAAC;;GAErD,MAAM,wBAAwB;AAC1B,sBAAkB,eAAe,QAAQ,+BAA+B,aAAa,MAAM;AAC3F,QAAI,CAAC,WACD,YAAW,IAAI,UAAU,6CAA6C,CAAC;;AAI/E,QAAK,GAAG,WAAW,iBAAiB;AACpC,QAAK,GAAG,SAAS,eAAe;AAChC,QAAK,GAAG,UAAU,gBAAgB;AAElC,eAAY,iBAAiB;AACzB,eAAW,IAAI,UAAU,2BAA2B,UAAU,IAAK,WAAW;KAAE,YAAY,aAAa;KAAK;KAAS,CAAC,CAAC;MAC1H,QAAQ;AAEX,SAAM,YAAY,KAAK;AACvB,qBAAkB,eAAe,QAAQ,+BAA+B,aAAa,MAAM;WAExF,OAAO;AACV,cAAW,IAAI,UAAU,mCAAmC,MAAM,WAAW,EAAE,OAAO,CAAC,CAAC;;GAE9F;;;;;;;AAON,SAAgB,2BAA2B,iBAAiB,kBAAkB,gBAAgB,UAAU,EAAE,EAAE;CACxG,MAAM,EAAE,QAAQ,gBAAgB,cAAc;EAAE,eAAe;EAAM,UAAU;EAAQ,KAAK;CAC5F,MAAM,QAAQ,EAAE;CAChB,MAAM,mBAAmB,EAAE;CAC3B,IAAI,WAAW;CACf,MAAM,gBAAgB,OAAO,SAAS,SAAS;EAC3C,MAAM,SAAS;AACf,MAAI,YAAY,aACZ,aAAY,aAAa,OAAO,GAAG,OAAO,GAAG,WAAW,KAAK;MAG7D,SAAQ,IAAI,GAAG,OAAO,IAAI,MAAM,aAAa,CAAC,IAAI,WAAW,QAAQ,GAAG;;CAGhF,MAAM,iBAAiB,kBAAkB,iBAAiB,eAAe;AACzE,cAAa,QAAQ,+BAA+B,iBAAiB,OAAO,SAAS;AACrF,kBAAiB,SAAS,iBAAiB,UAAU;AACjD,MAAI;GACA,MAAM,eAAe,YAAY,gBAAgB;GACjD,MAAM,OAAO,kBAAkB;IAAE,OAAO;IAAiB,OAAO;IAAiB,QAAQ;IAAgB,EAAE;IAAE,GAAG;IAAa;IAAc,CAAC;AAC5I,SAAM,KAAK,KAAK;GAEhB,MAAM,oBAAoB,mBAAmB;AACzC,QAAI,kBACA,eAAe,QAAQ,gBACtB,eAAe,SAAS,UAAU,gBAAgB,eAAe,KAAK,GAAG;AAC1E,kBAAa,QAAQ,2BAA2B,MAAM,SAAS,aAAa,IAAI,GAAG;AACnF,oBAAe,OAAO,gBAAgB;;;GAG9C,MAAM,kBAAkB,UAAU;AAC9B,iBAAa,SAAS,kBAAkB,MAAM,SAAS,aAAa,IAAI,IAAI,MAAM;;GAEtF,MAAM,wBAAwB;AAC1B,iBAAa,QAAQ,+BAA+B,MAAM,SAAS,aAAa,IAAI,GAAG;;AAG3F,QAAK,GAAG,WAAW,iBAAiB;AACpC,QAAK,GAAG,SAAS,eAAe;AAChC,QAAK,GAAG,UAAU,gBAAgB;AAElC,eAAY,KAAK,CAAC,OAAM,UAAS;AAC7B,iBAAa,SAAS,oCAAoC,SAAS,MAAM;KAC3E;GAEF,MAAM,gBAAgB;AAClB,QAAI;AACA,UAAK,IAAI,WAAW,iBAAiB;AACrC,UAAK,IAAI,SAAS,eAAe;AACjC,UAAK,IAAI,UAAU,gBAAgB;AACnC,eAAU,KAAK;aAEZ,OAAO;AACV,kBAAa,SAAS,oCAAoC,SAAS,MAAM;;;AAGjF,oBAAiB,KAAK,QAAQ;WAE3B,OAAO;AACV,gBAAa,SAAS,mCAAmC,SAAS,MAAM;;GAE9E;AAEF,QAAO;EACH,eAAe;AACX,OAAI,CAAC,SACD;AACJ,gBAAa,QAAQ,iCAAiC;AACtD,cAAW;AACX,oBAAiB,SAAQ,YAAW;AAChC,QAAI;AACA,cAAS;aAEN,OAAO;AACV,kBAAa,SAAS,wBAAwB,MAAM;;KAE1D;;EAEN;EACH;;;;;AAKL,eAAsB,SAAS,iBAAiB,iBAAiB,WAAW,UAAU,EAAE,EAAE;CACtF,MAAM,EAAE,QAAQ,gBAAgB,UAAU,KAAO,cAAc;EAAE,eAAe;EAAM,UAAU;EAAQ,KAAK;AAC7G,KAAI,OAAO,cAAc,SACrB,OAAM,IAAI,UAAU,2DAA2D;CAEnF,MAAM,sBAAsB,UAAU,MAAM;AAC5C,KAAI,oBAAoB,WAAW,EAC/B,OAAM,IAAI,UAAU,qEAAqE;AAE7F,KAAI,oBAAoB,SAAS,MAAM,KAAK,CAAC,iBAAiB,KAAK,oBAAoB,CACnF,OAAM,IAAI,UAAU,4DAA4D;AAEpF,QAAO,IAAI,QAAQ,OAAO,SAAS,WAAW;EAC1C,IAAI,OAAO;EACX,IAAI,YAAY;EAChB,IAAI,aAAa;EACjB,IAAI,iBAAiB;EACrB,IAAI,kBAAkB;EACtB,IAAI,UAAU;EACd,MAAM,gBAAgB;AAClB,OAAI,WAAW;AACX,iBAAa,UAAU;AACvB,gBAAY;;AAEhB,OAAI,MAAM;AACN,QAAI;AACA,SAAI,gBAAgB;AAChB,WAAK,IAAI,oBAAoB,eAAe;AAC5C,uBAAiB;;AAErB,SAAI,iBAAiB;AACjB,WAAK,IAAI,oBAAoB,gBAAgB;AAC7C,wBAAkB;;AAEtB,SAAI,SAAS;AACT,WAAK,IAAI,SAAS,QAAQ;AAC1B,gBAAU;;AAEd,eAAU,KAAK;aAEZ,OAAO;AACV,aAAQ,KAAK,oCAAoC,MAAM;;AAE3D,WAAO;;;EAGf,MAAM,eAAe,UAAU;AAC3B,OAAI,CAAC,YAAY;AACb,iBAAa;AACb,aAAS;AACT,YAAQ,MAAM;;;EAGtB,MAAM,cAAc,UAAU;AAC1B,OAAI,CAAC,YAAY;AACb,iBAAa;AACb,aAAS;AACT,WAAO,MAAM;;;AAGrB,MAAI;GACA,MAAM,eAAe,YAAY,gBAAgB;GACjD,MAAM,iBAAiB,kBAAkB,iBAAiB,eAAe;GACzE,MAAM,OAAO,OAAO,SAAS,SAAS;IAClC,MAAM,SAAS,aAAa,aAAa,IAAI;AAC7C,QAAI,YAAY,aACZ,aAAY,aAAa,OAAO,GAAG,OAAO,GAAG,WAAW,KAAK;aAExD,YAAY,cACjB,SAAQ,IAAI,GAAG,OAAO,IAAI,MAAM,aAAa,CAAC,IAAI,WAAW,QAAQ,GAAG;;AAGhF,UAAO,kBAAkB;IAAE,OAAO;IAAiB,OAAO;IAAiB,QAAQ;IAAgB,EAAE;IACjG,GAAG;IACH,eAAe,OAAO,SAAS,SAAS;AACpC,SAAI,OAAO,SAAS,KAAK;;IAEhC,CAAC;AAEF,qBAAkB,QAAQ;AACtB,QAAI,OAAO,IAAI,QAAQ,aAAa;AAChC,SAAI,SAAS,gCAAgC,IAAI;AACjD,iBAAY,KAAK;;;AAGzB,sBAAmB,QAAQ,QAAQ;AAC/B,QAAI,QAAQ,kBAAkB,UAAU,IAAI;AAC5C,eAAW,IAAI,UAAU,kBAAkB,UAAU,EAAE,KAAK,CAAC,CAAC;;AAElE,cAAW,UAAU;AACjB,QAAI,SAAS,eAAe,QAAQ;AACpC,eAAW,IAAI,UAAU,eAAe,QAAQ,CAAC;;AAErD,QAAK,GAAG,oBAAoB,eAAe;AAC3C,QAAK,GAAG,oBAAoB,gBAAgB;AAC5C,QAAK,GAAG,SAAS,QAAQ;AAEzB,eAAY,iBAAiB;AACzB,QAAI,QAAQ,+BAA+B,QAAQ,IAAI;AACvD,eAAW,IAAI,UAAU,+BAA+B,UAAU,IAAK,WAAW;KAAE,YAAY,aAAa;KAAK;KAAS,CAAC,CAAC;MAC9H,QAAQ;AACX,SAAM,YAAY,KAAK;AACvB,OAAI,SAAS,yBAAyB;GACtC,MAAM,WAAW,MAAM,KAAK,IAAI,KAAK,oBAAoB;AACzD,OAAI,CAAC,UAAU,IAAI;IACf,MAAM,SAAS,UAAU,OAAO;AAChC,UAAM,IAAI,UAAU,wBAAwB,UAAU;KAAE,OAAO;KAAQ,YAAY,aAAa;KAAK,CAAC;;AAE1G,OAAI,QAAQ,sCAAsC;AAClD,eAAY,KAAK;WAEd,OAAO;AACV,OAAI,iBAAiB,UACjB,YAAW,MAAM;OAGjB,YAAW,IAAI,UAAU,wBAAwB,MAAM,WAAW,EAAE,OAAO,CAAC,CAAC;;GAGvF"}
@@ -1,9 +0,0 @@
1
- require('./types-B-TLIS13.cjs');
2
- require('./nostr-Hv2tsnuI.cjs');
3
- require('./policy-8HcjulLD.cjs');
4
- require('./node-C2UpE11T.cjs');
5
- require('./keyset-Cxdgu110.cjs');
6
- const require_echo = require('./echo-BB-JgAYZ.cjs');
7
-
8
- exports.awaitShareEcho = require_echo.awaitShareEcho;
9
- exports.startListeningForAllEchoes = require_echo.startListeningForAllEchoes;
@@ -1,8 +0,0 @@
1
- import "./types-CTm_FHYD.mjs";
2
- import "./nostr-D4E52XRU.mjs";
3
- import "./policy-D_nFHHjo.mjs";
4
- import "./node-IX55IH6z.mjs";
5
- import "./keyset-CKMQXvsb.mjs";
6
- import { i as startListeningForAllEchoes, n as awaitShareEcho, r as sendEcho, t as DEFAULT_ECHO_RELAYS } from "./echo-Bwy4_Cvh.mjs";
7
-
8
- export { awaitShareEcho, startListeningForAllEchoes };