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.
- package/dist/{cjs-CSUAVztq.cjs → browser-index.cjs} +5476 -296
- package/dist/browser-index.cjs.map +1 -0
- package/dist/browser-index.d.cts +1998 -0
- package/dist/browser-index.d.cts.map +1 -0
- package/dist/browser-index.d.mts +1998 -0
- package/dist/browser-index.d.mts.map +1 -0
- package/dist/{cjs-sm5h7qxv.mjs → browser-index.mjs} +5169 -69
- package/dist/browser-index.mjs.map +1 -0
- package/dist/{group-coordination-BlFpBVpn.mjs → group-coordination-BV6PKlKp.mjs} +1 -1
- package/dist/{group-coordination-BlFpBVpn.mjs.map → group-coordination-BV6PKlKp.mjs.map} +1 -1
- package/dist/{group-coordination-ImuoJEoy.mjs → group-coordination-BytkmY9j.mjs} +1 -1
- package/dist/{group-coordination-LGIyipaX.cjs → group-coordination-DL39hJ3R.cjs} +1 -1
- package/dist/{group-coordination-LGIyipaX.cjs.map → group-coordination-DL39hJ3R.cjs.map} +1 -1
- package/dist/{group-coordination-Cf18OjZt.cjs → group-coordination-DLban6a7.cjs} +1 -1
- package/dist/index.cjs +8899 -41
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts.map +1 -1
- package/dist/index.mjs +9072 -213
- package/dist/index.mjs.map +1 -1
- package/dist/{prf-handler-D3EqUNWe.cjs → prf-handler-BNd7gmXJ.cjs} +1 -1
- package/dist/{prf-handler-D3EqUNWe.cjs.map → prf-handler-BNd7gmXJ.cjs.map} +1 -1
- package/dist/prf-handler-CRMgzJG2.cjs +3 -0
- package/dist/{prf-handler-Dly_WZGn.mjs → prf-handler-DG99ZkS2.mjs} +1 -1
- package/dist/{prf-handler-Db8CsoIP.mjs → prf-handler-Dj2WTO9i.mjs} +1 -1
- package/dist/{prf-handler-Db8CsoIP.mjs.map → prf-handler-Dj2WTO9i.mjs.map} +1 -1
- package/dist/zkm.service-Bv88tVS5.mjs +3 -0
- package/dist/zkm.service-D2BZ_aqA.cjs +3 -0
- package/dist/{zkm.service-DfSPbuOl.cjs → zkm.service-DX06sSfB.cjs} +1 -1
- package/dist/{zkm.service-DfSPbuOl.cjs.map → zkm.service-DX06sSfB.cjs.map} +1 -1
- package/dist/{zkm.service-B24N_0FB.mjs → zkm.service-j0HlN7Oq.mjs} +1 -1
- package/dist/{zkm.service-B24N_0FB.mjs.map → zkm.service-j0HlN7Oq.mjs.map} +1 -1
- package/package.json +19 -6
- package/dist/_esm-C7FRLTj2.cjs +0 -9030
- package/dist/_esm-C7FRLTj2.cjs.map +0 -1
- package/dist/_esm-D_oMW5T5.mjs +0 -9028
- package/dist/_esm-D_oMW5T5.mjs.map +0 -1
- package/dist/base64-js-B8y7dH5k.mjs +0 -93
- package/dist/base64-js-B8y7dH5k.mjs.map +0 -1
- package/dist/base64-js-Tm-kCeud.cjs +0 -98
- package/dist/base64-js-Tm-kCeud.cjs.map +0 -1
- package/dist/ccip-157tdxqP.cjs +0 -7947
- package/dist/ccip-157tdxqP.cjs.map +0 -1
- package/dist/ccip-BEMMdVyd.cjs +0 -4
- package/dist/ccip-BSmCdJ3K.mjs +0 -3
- package/dist/ccip-okqXkslP.mjs +0 -6567
- package/dist/ccip-okqXkslP.mjs.map +0 -1
- package/dist/chains-CTeD2UcS.mjs +0 -33
- package/dist/chains-CTeD2UcS.mjs.map +0 -1
- package/dist/chains-Du-lv_5i.cjs +0 -33
- package/dist/chains-Du-lv_5i.cjs.map +0 -1
- package/dist/chunk-Bnu9O96Y.cjs +0 -60
- package/dist/chunk-CVYhg9ik.mjs +0 -45
- package/dist/cjs-CSUAVztq.cjs.map +0 -1
- package/dist/cjs-sm5h7qxv.mjs.map +0 -1
- package/dist/defineChain-7QG67hYU.cjs +0 -30
- package/dist/defineChain-7QG67hYU.cjs.map +0 -1
- package/dist/defineChain-DBem8ZQY.mjs +0 -24
- package/dist/defineChain-DBem8ZQY.mjs.map +0 -1
- package/dist/dist-BPmSxkxc.cjs +0 -10676
- package/dist/dist-BPmSxkxc.cjs.map +0 -1
- package/dist/dist-BSjH4t6s.cjs +0 -12932
- package/dist/dist-BSjH4t6s.cjs.map +0 -1
- package/dist/dist-C-KjTK4Q.cjs +0 -447
- package/dist/dist-C-KjTK4Q.cjs.map +0 -1
- package/dist/dist-C2h97xM-.mjs +0 -355
- package/dist/dist-C2h97xM-.mjs.map +0 -1
- package/dist/dist-CT7grDWb.mjs +0 -12920
- package/dist/dist-CT7grDWb.mjs.map +0 -1
- package/dist/dist-D7fRmK6G.mjs +0 -10632
- package/dist/dist-D7fRmK6G.mjs.map +0 -1
- package/dist/dist-DlmcyFmM.mjs +0 -16951
- package/dist/dist-DlmcyFmM.mjs.map +0 -1
- package/dist/dist-O0uZr5OF.cjs +0 -17122
- package/dist/dist-O0uZr5OF.cjs.map +0 -1
- package/dist/echo-BB-JgAYZ.cjs +0 -339
- package/dist/echo-BB-JgAYZ.cjs.map +0 -1
- package/dist/echo-Bwy4_Cvh.mjs +0 -316
- package/dist/echo-Bwy4_Cvh.mjs.map +0 -1
- package/dist/echo-D6X2IuNW.cjs +0 -9
- package/dist/echo-DvfG_heb.mjs +0 -8
- package/dist/esm-BcHKCX5i.mjs +0 -569
- package/dist/esm-BcHKCX5i.mjs.map +0 -1
- package/dist/esm-Bh_YwFIz.cjs +0 -599
- package/dist/esm-Bh_YwFIz.cjs.map +0 -1
- package/dist/esm-C0XO9TQm.cjs +0 -30449
- package/dist/esm-C0XO9TQm.cjs.map +0 -1
- package/dist/esm-vMUVj9k4.mjs +0 -30440
- package/dist/esm-vMUVj9k4.mjs.map +0 -1
- package/dist/keyset-CKMQXvsb.mjs +0 -172
- package/dist/keyset-CKMQXvsb.mjs.map +0 -1
- package/dist/keyset-Cxdgu110.cjs +0 -237
- package/dist/keyset-Cxdgu110.cjs.map +0 -1
- package/dist/keyset-DLxpGhdu.cjs +0 -6
- package/dist/keyset-IKjlhvqF.mjs +0 -4
- package/dist/node-3EUJ4ga9.cjs +0 -9
- package/dist/node-C2UpE11T.cjs +0 -444
- package/dist/node-C2UpE11T.cjs.map +0 -1
- package/dist/node-CHdpTQdN.mjs +0 -8679
- package/dist/node-CHdpTQdN.mjs.map +0 -1
- package/dist/node-DQt1CVGl.mjs +0 -6
- package/dist/node-Dy8ww1LG.cjs +0 -8680
- package/dist/node-Dy8ww1LG.cjs.map +0 -1
- package/dist/node-IX55IH6z.mjs +0 -397
- package/dist/node-IX55IH6z.mjs.map +0 -1
- package/dist/nostr-BTOpBN_5.cjs +0 -11
- package/dist/nostr-D4E52XRU.mjs +0 -224
- package/dist/nostr-D4E52XRU.mjs.map +0 -1
- package/dist/nostr-Hv2tsnuI.cjs +0 -272
- package/dist/nostr-Hv2tsnuI.cjs.map +0 -1
- package/dist/nostr-ZwJe_DlZ.mjs +0 -4
- package/dist/pako.esm-DTVnlCJh.cjs +0 -3856
- package/dist/pako.esm-DTVnlCJh.cjs.map +0 -1
- package/dist/pako.esm-ORhkEHM2.mjs +0 -3838
- package/dist/pako.esm-ORhkEHM2.mjs.map +0 -1
- package/dist/peer-B9g3OQ5D.cjs +0 -18
- package/dist/peer-CptDj7zu.mjs +0 -745
- package/dist/peer-CptDj7zu.mjs.map +0 -1
- package/dist/peer-CtqL0yiE.mjs +0 -9
- package/dist/peer-XrPL0O6z.cjs +0 -822
- package/dist/peer-XrPL0O6z.cjs.map +0 -1
- package/dist/ping-BXKREIdI.mjs +0 -7
- package/dist/ping-BtVhKocl.cjs +0 -379
- package/dist/ping-BtVhKocl.cjs.map +0 -1
- package/dist/ping-D5fpMhGC.cjs +0 -11
- package/dist/ping-DOD50kW_.mjs +0 -332
- package/dist/ping-DOD50kW_.mjs.map +0 -1
- package/dist/policy-8HcjulLD.cjs +0 -293
- package/dist/policy-8HcjulLD.cjs.map +0 -1
- package/dist/policy-BA6MEOBY.mjs +0 -5
- package/dist/policy-BFNdXvmM.cjs +0 -11
- package/dist/policy-D_nFHHjo.mjs +0 -228
- package/dist/policy-D_nFHHjo.mjs.map +0 -1
- package/dist/prf-handler-BNiyCQMt.cjs +0 -3
- package/dist/src-CVfTUJQl.mjs +0 -822
- package/dist/src-CVfTUJQl.mjs.map +0 -1
- package/dist/src-D5S86Xpf.cjs +0 -827
- package/dist/src-D5S86Xpf.cjs.map +0 -1
- package/dist/types-B-TLIS13.cjs +0 -212
- package/dist/types-B-TLIS13.cjs.map +0 -1
- package/dist/types-CTm_FHYD.mjs +0 -111
- package/dist/types-CTm_FHYD.mjs.map +0 -1
- package/dist/validation-1xwWVXqE.mjs +0 -3
- package/dist/validation-DnpurN79.cjs +0 -405
- package/dist/validation-DnpurN79.cjs.map +0 -1
- package/dist/validation-IsAUvsvy.mjs +0 -334
- package/dist/validation-IsAUvsvy.mjs.map +0 -1
- package/dist/validation-yCvZCqIs.cjs +0 -6
- package/dist/wrapper-C5NpyacC.cjs +0 -3552
- package/dist/wrapper-C5NpyacC.cjs.map +0 -1
- package/dist/wrapper-CHq_CV4J.mjs +0 -3552
- package/dist/wrapper-CHq_CV4J.mjs.map +0 -1
- package/dist/zkm.service-BrXyI4BS.mjs +0 -3
- package/dist/zkm.service-BvQ01wSH.cjs +0 -3
package/dist/echo-Bwy4_Cvh.mjs
DELETED
|
@@ -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":"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"}
|
package/dist/echo-D6X2IuNW.cjs
DELETED
|
@@ -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;
|
package/dist/echo-DvfG_heb.mjs
DELETED
|
@@ -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 };
|