@gethashd/bytecave-browser 1.0.52 → 1.0.53
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/{chunk-XPZKBTJA.js → chunk-WGSX425G.js} +49 -0
- package/dist/client.d.ts +4 -0
- package/dist/index.cjs +49 -0
- package/dist/index.js +1 -1
- package/dist/react/index.js +1 -1
- package/package.json +1 -1
- package/src/client.ts +63 -0
|
@@ -7146,8 +7146,57 @@ Nonce: ${nonce}`;
|
|
|
7146
7146
|
};
|
|
7147
7147
|
this.knownPeers.set(announcement.peerId, peerInfo);
|
|
7148
7148
|
this.saveCachedPeers();
|
|
7149
|
+
if (this.node && !peerInfo.connected) {
|
|
7150
|
+
this.dialPeer(announcement.peerId, peerInfo.relayAddrs, peerInfo.multiaddrs).catch((err) => {
|
|
7151
|
+
console.warn("[ByteCave] Failed to dial announced peer:", err.message);
|
|
7152
|
+
});
|
|
7153
|
+
}
|
|
7149
7154
|
this.emit("peerAnnounce", peerInfo);
|
|
7150
7155
|
}
|
|
7156
|
+
/**
|
|
7157
|
+
* Attempt to dial a peer using relay or WebTransport addresses
|
|
7158
|
+
*/
|
|
7159
|
+
async dialPeer(peerId, relayAddrs, multiaddrs) {
|
|
7160
|
+
if (!this.node) return;
|
|
7161
|
+
const connections = this.node.getConnections().filter((c) => c.remotePeer.toString() === peerId);
|
|
7162
|
+
if (connections.length > 0) {
|
|
7163
|
+
console.log("[ByteCave] Already connected to peer:", peerId.slice(0, 12));
|
|
7164
|
+
return;
|
|
7165
|
+
}
|
|
7166
|
+
console.log("[ByteCave] Attempting to dial peer:", peerId.slice(0, 12));
|
|
7167
|
+
if (relayAddrs && relayAddrs.length > 0) {
|
|
7168
|
+
console.log("[ByteCave] Trying relay address:", relayAddrs[0].slice(0, 60));
|
|
7169
|
+
try {
|
|
7170
|
+
const ma = multiaddr(relayAddrs[0]);
|
|
7171
|
+
await this.node.dial(ma);
|
|
7172
|
+
console.log("[ByteCave] \u2713 Connected via relay");
|
|
7173
|
+
const peer = this.knownPeers.get(peerId);
|
|
7174
|
+
if (peer) {
|
|
7175
|
+
peer.connected = true;
|
|
7176
|
+
}
|
|
7177
|
+
return;
|
|
7178
|
+
} catch (error) {
|
|
7179
|
+
console.warn("[ByteCave] Relay dial failed:", error.message);
|
|
7180
|
+
}
|
|
7181
|
+
}
|
|
7182
|
+
if (multiaddrs && multiaddrs.length > 0) {
|
|
7183
|
+
const wtAddr = multiaddrs.find((addr) => addr.includes("/webtransport"));
|
|
7184
|
+
if (wtAddr) {
|
|
7185
|
+
console.log("[ByteCave] Trying WebTransport address:", wtAddr.slice(0, 60));
|
|
7186
|
+
try {
|
|
7187
|
+
const ma = multiaddr(wtAddr);
|
|
7188
|
+
await this.node.dial(ma);
|
|
7189
|
+
console.log("[ByteCave] \u2713 Connected via WebTransport");
|
|
7190
|
+
const peer = this.knownPeers.get(peerId);
|
|
7191
|
+
if (peer) {
|
|
7192
|
+
peer.connected = true;
|
|
7193
|
+
}
|
|
7194
|
+
} catch (error) {
|
|
7195
|
+
console.warn("[ByteCave] WebTransport dial failed:", error.message);
|
|
7196
|
+
}
|
|
7197
|
+
}
|
|
7198
|
+
}
|
|
7199
|
+
}
|
|
7151
7200
|
/**
|
|
7152
7201
|
* Load cached peers from localStorage
|
|
7153
7202
|
*/
|
package/dist/client.d.ts
CHANGED
|
@@ -98,6 +98,10 @@ export declare class ByteCaveClient {
|
|
|
98
98
|
private setupEventListeners;
|
|
99
99
|
private setupPubsub;
|
|
100
100
|
private handlePeerAnnouncement;
|
|
101
|
+
/**
|
|
102
|
+
* Attempt to dial a peer using relay or WebTransport addresses
|
|
103
|
+
*/
|
|
104
|
+
private dialPeer;
|
|
101
105
|
/**
|
|
102
106
|
* Load cached peers from localStorage
|
|
103
107
|
*/
|
package/dist/index.cjs
CHANGED
|
@@ -7199,8 +7199,57 @@ Nonce: ${nonce}`;
|
|
|
7199
7199
|
};
|
|
7200
7200
|
this.knownPeers.set(announcement.peerId, peerInfo);
|
|
7201
7201
|
this.saveCachedPeers();
|
|
7202
|
+
if (this.node && !peerInfo.connected) {
|
|
7203
|
+
this.dialPeer(announcement.peerId, peerInfo.relayAddrs, peerInfo.multiaddrs).catch((err) => {
|
|
7204
|
+
console.warn("[ByteCave] Failed to dial announced peer:", err.message);
|
|
7205
|
+
});
|
|
7206
|
+
}
|
|
7202
7207
|
this.emit("peerAnnounce", peerInfo);
|
|
7203
7208
|
}
|
|
7209
|
+
/**
|
|
7210
|
+
* Attempt to dial a peer using relay or WebTransport addresses
|
|
7211
|
+
*/
|
|
7212
|
+
async dialPeer(peerId, relayAddrs, multiaddrs) {
|
|
7213
|
+
if (!this.node) return;
|
|
7214
|
+
const connections = this.node.getConnections().filter((c) => c.remotePeer.toString() === peerId);
|
|
7215
|
+
if (connections.length > 0) {
|
|
7216
|
+
console.log("[ByteCave] Already connected to peer:", peerId.slice(0, 12));
|
|
7217
|
+
return;
|
|
7218
|
+
}
|
|
7219
|
+
console.log("[ByteCave] Attempting to dial peer:", peerId.slice(0, 12));
|
|
7220
|
+
if (relayAddrs && relayAddrs.length > 0) {
|
|
7221
|
+
console.log("[ByteCave] Trying relay address:", relayAddrs[0].slice(0, 60));
|
|
7222
|
+
try {
|
|
7223
|
+
const ma = (0, import_multiaddr.multiaddr)(relayAddrs[0]);
|
|
7224
|
+
await this.node.dial(ma);
|
|
7225
|
+
console.log("[ByteCave] \u2713 Connected via relay");
|
|
7226
|
+
const peer = this.knownPeers.get(peerId);
|
|
7227
|
+
if (peer) {
|
|
7228
|
+
peer.connected = true;
|
|
7229
|
+
}
|
|
7230
|
+
return;
|
|
7231
|
+
} catch (error) {
|
|
7232
|
+
console.warn("[ByteCave] Relay dial failed:", error.message);
|
|
7233
|
+
}
|
|
7234
|
+
}
|
|
7235
|
+
if (multiaddrs && multiaddrs.length > 0) {
|
|
7236
|
+
const wtAddr = multiaddrs.find((addr) => addr.includes("/webtransport"));
|
|
7237
|
+
if (wtAddr) {
|
|
7238
|
+
console.log("[ByteCave] Trying WebTransport address:", wtAddr.slice(0, 60));
|
|
7239
|
+
try {
|
|
7240
|
+
const ma = (0, import_multiaddr.multiaddr)(wtAddr);
|
|
7241
|
+
await this.node.dial(ma);
|
|
7242
|
+
console.log("[ByteCave] \u2713 Connected via WebTransport");
|
|
7243
|
+
const peer = this.knownPeers.get(peerId);
|
|
7244
|
+
if (peer) {
|
|
7245
|
+
peer.connected = true;
|
|
7246
|
+
}
|
|
7247
|
+
} catch (error) {
|
|
7248
|
+
console.warn("[ByteCave] WebTransport dial failed:", error.message);
|
|
7249
|
+
}
|
|
7250
|
+
}
|
|
7251
|
+
}
|
|
7252
|
+
}
|
|
7204
7253
|
/**
|
|
7205
7254
|
* Load cached peers from localStorage
|
|
7206
7255
|
*/
|
package/dist/index.js
CHANGED
package/dist/react/index.js
CHANGED
package/package.json
CHANGED
package/src/client.ts
CHANGED
|
@@ -995,8 +995,71 @@ Nonce: ${nonce}`;
|
|
|
995
995
|
this.knownPeers.set(announcement.peerId, peerInfo);
|
|
996
996
|
this.saveCachedPeers();
|
|
997
997
|
|
|
998
|
+
// Attempt to dial the peer if not already connected
|
|
999
|
+
if (this.node && !peerInfo.connected) {
|
|
1000
|
+
this.dialPeer(announcement.peerId, peerInfo.relayAddrs, peerInfo.multiaddrs).catch(err => {
|
|
1001
|
+
console.warn('[ByteCave] Failed to dial announced peer:', err.message);
|
|
1002
|
+
});
|
|
1003
|
+
}
|
|
1004
|
+
|
|
998
1005
|
this.emit('peerAnnounce', peerInfo);
|
|
999
1006
|
}
|
|
1007
|
+
|
|
1008
|
+
/**
|
|
1009
|
+
* Attempt to dial a peer using relay or WebTransport addresses
|
|
1010
|
+
*/
|
|
1011
|
+
private async dialPeer(peerId: string, relayAddrs?: string[], multiaddrs?: string[]): Promise<void> {
|
|
1012
|
+
if (!this.node) return;
|
|
1013
|
+
|
|
1014
|
+
// Check if already connected
|
|
1015
|
+
const connections = this.node.getConnections().filter(c => c.remotePeer.toString() === peerId);
|
|
1016
|
+
if (connections.length > 0) {
|
|
1017
|
+
console.log('[ByteCave] Already connected to peer:', peerId.slice(0, 12));
|
|
1018
|
+
return;
|
|
1019
|
+
}
|
|
1020
|
+
|
|
1021
|
+
console.log('[ByteCave] Attempting to dial peer:', peerId.slice(0, 12));
|
|
1022
|
+
|
|
1023
|
+
// Try relay first
|
|
1024
|
+
if (relayAddrs && relayAddrs.length > 0) {
|
|
1025
|
+
console.log('[ByteCave] Trying relay address:', relayAddrs[0].slice(0, 60));
|
|
1026
|
+
try {
|
|
1027
|
+
const ma = multiaddr(relayAddrs[0]);
|
|
1028
|
+
await this.node.dial(ma as any);
|
|
1029
|
+
console.log('[ByteCave] ✓ Connected via relay');
|
|
1030
|
+
|
|
1031
|
+
// Update connected status
|
|
1032
|
+
const peer = this.knownPeers.get(peerId);
|
|
1033
|
+
if (peer) {
|
|
1034
|
+
peer.connected = true;
|
|
1035
|
+
}
|
|
1036
|
+
return;
|
|
1037
|
+
} catch (error: any) {
|
|
1038
|
+
console.warn('[ByteCave] Relay dial failed:', error.message);
|
|
1039
|
+
}
|
|
1040
|
+
}
|
|
1041
|
+
|
|
1042
|
+
// Fallback to WebTransport
|
|
1043
|
+
if (multiaddrs && multiaddrs.length > 0) {
|
|
1044
|
+
const wtAddr = multiaddrs.find((addr: string) => addr.includes('/webtransport'));
|
|
1045
|
+
if (wtAddr) {
|
|
1046
|
+
console.log('[ByteCave] Trying WebTransport address:', wtAddr.slice(0, 60));
|
|
1047
|
+
try {
|
|
1048
|
+
const ma = multiaddr(wtAddr);
|
|
1049
|
+
await this.node.dial(ma as any);
|
|
1050
|
+
console.log('[ByteCave] ✓ Connected via WebTransport');
|
|
1051
|
+
|
|
1052
|
+
// Update connected status
|
|
1053
|
+
const peer = this.knownPeers.get(peerId);
|
|
1054
|
+
if (peer) {
|
|
1055
|
+
peer.connected = true;
|
|
1056
|
+
}
|
|
1057
|
+
} catch (error: any) {
|
|
1058
|
+
console.warn('[ByteCave] WebTransport dial failed:', error.message);
|
|
1059
|
+
}
|
|
1060
|
+
}
|
|
1061
|
+
}
|
|
1062
|
+
}
|
|
1000
1063
|
|
|
1001
1064
|
|
|
1002
1065
|
/**
|