@leofcoin/peernet 1.2.14 → 1.2.15
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/exports/browser/{client-CXjaAk7-.js → client-Dl1IxbL-.js} +4 -4
- package/exports/browser/{messages-oCxYLnpB.js → messages-BHDRCKN5.js} +1 -1
- package/exports/browser/{peernet-Bl3tF9yA.js → peernet-dd6ESbyH.js} +37 -2
- package/exports/browser/peernet.js +1 -1
- package/exports/peernet.js +35 -0
- package/exports/types/peernet.d.ts +8 -0
- package/package.json +5 -5
- package/src/peernet.ts +35 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { L as LittlePubSub, d as deflate_1, i as inflate_1, c as createDebugger } from './peernet-
|
|
1
|
+
import { L as LittlePubSub, d as deflate_1, i as inflate_1, c as createDebugger } from './peernet-dd6ESbyH.js';
|
|
2
2
|
import './identity-CqSnKXWH.js';
|
|
3
3
|
import './value-C3vAp-wb.js';
|
|
4
4
|
|
|
@@ -220,7 +220,7 @@ class SocketRequestClient {
|
|
|
220
220
|
if (times !== undefined)
|
|
221
221
|
this.#times = times;
|
|
222
222
|
if (experimentalWebsocket !== undefined)
|
|
223
|
-
this.#experimentalWebsocket;
|
|
223
|
+
this.#experimentalWebsocket = experimentalWebsocket;
|
|
224
224
|
this.#url = url;
|
|
225
225
|
this.#protocol = protocol;
|
|
226
226
|
this.#options = options;
|
|
@@ -286,7 +286,7 @@ class SocketRequestClient {
|
|
|
286
286
|
});
|
|
287
287
|
}
|
|
288
288
|
onerror = (error) => {
|
|
289
|
-
if (globalThis.pubsub.
|
|
289
|
+
if (globalThis.pubsub.hasSubscribers('error')) {
|
|
290
290
|
globalThis.pubsub.publish('error', error);
|
|
291
291
|
}
|
|
292
292
|
else {
|
|
@@ -856,7 +856,7 @@ class Client {
|
|
|
856
856
|
const dataOut = message instanceof Uint8Array
|
|
857
857
|
? message
|
|
858
858
|
: new Uint8Array(Object.values(message));
|
|
859
|
-
if (globalThis.pubsub.
|
|
859
|
+
if (globalThis.pubsub.hasSubscribers(id)) {
|
|
860
860
|
globalThis.pubsub.publish(id, {
|
|
861
861
|
data: dataOut,
|
|
862
862
|
id,
|
|
@@ -8473,7 +8473,7 @@ class Peernet {
|
|
|
8473
8473
|
await getAddress();
|
|
8474
8474
|
this.storePrefix = options.storePrefix;
|
|
8475
8475
|
this.root = options.root;
|
|
8476
|
-
const { RequestMessage, ResponseMessage, PeerMessage, PeerMessageResponse, PeernetMessage, DHTMessage, DHTMessageResponse, DataMessage, DataMessageResponse, PsMessage, ChatMessage, PeernetFile } = await import(/* webpackChunkName: "messages" */ './messages-
|
|
8476
|
+
const { RequestMessage, ResponseMessage, PeerMessage, PeerMessageResponse, PeernetMessage, DHTMessage, DHTMessageResponse, DataMessage, DataMessageResponse, PsMessage, ChatMessage, PeernetFile } = await import(/* webpackChunkName: "messages" */ './messages-BHDRCKN5.js');
|
|
8477
8477
|
/**
|
|
8478
8478
|
* proto Object containing protos
|
|
8479
8479
|
* @type {Object}
|
|
@@ -8520,7 +8520,7 @@ class Peernet {
|
|
|
8520
8520
|
if (this.#starting || this.#started)
|
|
8521
8521
|
return;
|
|
8522
8522
|
this.#starting = true;
|
|
8523
|
-
const importee = await import('./client-
|
|
8523
|
+
const importee = await import('./client-Dl1IxbL-.js');
|
|
8524
8524
|
/**
|
|
8525
8525
|
* @access public
|
|
8526
8526
|
* @type {PeernetClient}
|
|
@@ -8678,6 +8678,41 @@ class Peernet {
|
|
|
8678
8678
|
this.sendMessage(peer, id, node.encoded);
|
|
8679
8679
|
}
|
|
8680
8680
|
}
|
|
8681
|
+
/**
|
|
8682
|
+
* Send a request to connected peers and return the first response.
|
|
8683
|
+
*
|
|
8684
|
+
* @param {String} requestName - name of the registered request handler on remote peers
|
|
8685
|
+
* @param {Uint8Array} [requested] - optional data to send with the request
|
|
8686
|
+
* @returns {Promise<Uint8Array|undefined>} decoded response data or undefined
|
|
8687
|
+
*/
|
|
8688
|
+
async request(requestName, requested) {
|
|
8689
|
+
const input = { request: requestName };
|
|
8690
|
+
if (requested)
|
|
8691
|
+
input.requested = requested;
|
|
8692
|
+
const data = await new globalThis.peernet.protos['peernet-request'](input);
|
|
8693
|
+
const node = await this.prepareMessage(data);
|
|
8694
|
+
const requests = [];
|
|
8695
|
+
for (const [peerId, peer] of Object.entries(this.connections)) {
|
|
8696
|
+
if (peerId !== this.id && peer.connected) {
|
|
8697
|
+
requests.push(peer.request(node.encoded));
|
|
8698
|
+
}
|
|
8699
|
+
}
|
|
8700
|
+
if (requests.length === 0)
|
|
8701
|
+
return undefined;
|
|
8702
|
+
try {
|
|
8703
|
+
let result = await Promise.any(requests);
|
|
8704
|
+
if (result)
|
|
8705
|
+
result = new Uint8Array(Object.values(result));
|
|
8706
|
+
if (!result || result.length === 0)
|
|
8707
|
+
return undefined;
|
|
8708
|
+
const proto = await protoFor(result);
|
|
8709
|
+
return proto.decoded.response;
|
|
8710
|
+
}
|
|
8711
|
+
catch (error) {
|
|
8712
|
+
debug('request failed', error);
|
|
8713
|
+
return undefined;
|
|
8714
|
+
}
|
|
8715
|
+
}
|
|
8681
8716
|
/**
|
|
8682
8717
|
* @private
|
|
8683
8718
|
*
|
package/exports/peernet.js
CHANGED
|
@@ -656,6 +656,41 @@ class Peernet {
|
|
|
656
656
|
this.sendMessage(peer, id, node.encoded);
|
|
657
657
|
}
|
|
658
658
|
}
|
|
659
|
+
/**
|
|
660
|
+
* Send a request to connected peers and return the first response.
|
|
661
|
+
*
|
|
662
|
+
* @param {String} requestName - name of the registered request handler on remote peers
|
|
663
|
+
* @param {Uint8Array} [requested] - optional data to send with the request
|
|
664
|
+
* @returns {Promise<Uint8Array|undefined>} decoded response data or undefined
|
|
665
|
+
*/
|
|
666
|
+
async request(requestName, requested) {
|
|
667
|
+
const input = { request: requestName };
|
|
668
|
+
if (requested)
|
|
669
|
+
input.requested = requested;
|
|
670
|
+
const data = await new globalThis.peernet.protos['peernet-request'](input);
|
|
671
|
+
const node = await this.prepareMessage(data);
|
|
672
|
+
const requests = [];
|
|
673
|
+
for (const [peerId, peer] of Object.entries(this.connections)) {
|
|
674
|
+
if (peerId !== this.id && peer.connected) {
|
|
675
|
+
requests.push(peer.request(node.encoded));
|
|
676
|
+
}
|
|
677
|
+
}
|
|
678
|
+
if (requests.length === 0)
|
|
679
|
+
return undefined;
|
|
680
|
+
try {
|
|
681
|
+
let result = await Promise.any(requests);
|
|
682
|
+
if (result)
|
|
683
|
+
result = new Uint8Array(Object.values(result));
|
|
684
|
+
if (!result || result.length === 0)
|
|
685
|
+
return undefined;
|
|
686
|
+
const proto = await protoFor(result);
|
|
687
|
+
return proto.decoded.response;
|
|
688
|
+
}
|
|
689
|
+
catch (error) {
|
|
690
|
+
debug('request failed', error);
|
|
691
|
+
return undefined;
|
|
692
|
+
}
|
|
693
|
+
}
|
|
659
694
|
/**
|
|
660
695
|
* @private
|
|
661
696
|
*
|
|
@@ -131,6 +131,14 @@ export default class Peernet {
|
|
|
131
131
|
}): Promise<string>;
|
|
132
132
|
handleData(peer: any, id: any, proto: any): Promise<any>;
|
|
133
133
|
handleRequest(peer: any, id: any, proto: any): Promise<void>;
|
|
134
|
+
/**
|
|
135
|
+
* Send a request to connected peers and return the first response.
|
|
136
|
+
*
|
|
137
|
+
* @param {String} requestName - name of the registered request handler on remote peers
|
|
138
|
+
* @param {Uint8Array} [requested] - optional data to send with the request
|
|
139
|
+
* @returns {Promise<Uint8Array|undefined>} decoded response data or undefined
|
|
140
|
+
*/
|
|
141
|
+
request(requestName: string, requested?: Uint8Array): Promise<any>;
|
|
134
142
|
/**
|
|
135
143
|
* @private
|
|
136
144
|
*
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@leofcoin/peernet",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.15",
|
|
4
4
|
"description": "",
|
|
5
5
|
"browser": "./exports/browser/peernet.js",
|
|
6
6
|
"exports": {
|
|
@@ -255,14 +255,14 @@
|
|
|
255
255
|
"@leofcoin/multi-wallet": "^3.1.8",
|
|
256
256
|
"@leofcoin/storage": "^3.5.38",
|
|
257
257
|
"@mapbox/node-pre-gyp": "^2.0.3",
|
|
258
|
-
"@netpeer/swarm": "^0.9.
|
|
258
|
+
"@netpeer/swarm": "^0.9.4",
|
|
259
259
|
"@vandeurenglenn/base58": "^1.1.9",
|
|
260
260
|
"@vandeurenglenn/debug": "^1.4.0",
|
|
261
261
|
"@vandeurenglenn/little-pubsub": "^1.5.2",
|
|
262
|
-
"inquirer": "^13.2.
|
|
262
|
+
"inquirer": "^13.2.5",
|
|
263
263
|
"qr-scanner": "^1.4.2",
|
|
264
264
|
"qrcode": "^1.5.4",
|
|
265
|
-
"tar": "^7.5.
|
|
265
|
+
"tar": "^7.5.9"
|
|
266
266
|
},
|
|
267
267
|
"devDependencies": {
|
|
268
268
|
"@rollup/plugin-commonjs": "^29.0.0",
|
|
@@ -270,7 +270,7 @@
|
|
|
270
270
|
"@rollup/plugin-node-resolve": "^16.0.3",
|
|
271
271
|
"@rollup/plugin-typescript": "^12.3.0",
|
|
272
272
|
"@rollup/plugin-wasm": "^6.2.2",
|
|
273
|
-
"@types/node": "^25.2.
|
|
273
|
+
"@types/node": "^25.2.3",
|
|
274
274
|
"@types/qrcode": "^1.5.6",
|
|
275
275
|
"rollup": "^4.57.1",
|
|
276
276
|
"rollup-plugin-auto-exports": "^1.1.1"
|
package/src/peernet.ts
CHANGED
|
@@ -442,6 +442,41 @@ export default class Peernet {
|
|
|
442
442
|
}
|
|
443
443
|
}
|
|
444
444
|
|
|
445
|
+
/**
|
|
446
|
+
* Send a request to connected peers and return the first response.
|
|
447
|
+
*
|
|
448
|
+
* @param {String} requestName - name of the registered request handler on remote peers
|
|
449
|
+
* @param {Uint8Array} [requested] - optional data to send with the request
|
|
450
|
+
* @returns {Promise<Uint8Array|undefined>} decoded response data or undefined
|
|
451
|
+
*/
|
|
452
|
+
async request(requestName: string, requested?: Uint8Array) {
|
|
453
|
+
const input: { request: string; requested?: Uint8Array } = { request: requestName }
|
|
454
|
+
if (requested) input.requested = requested
|
|
455
|
+
|
|
456
|
+
const data = await new globalThis.peernet.protos['peernet-request'](input)
|
|
457
|
+
const node = await this.prepareMessage(data)
|
|
458
|
+
|
|
459
|
+
const requests: Promise<any>[] = []
|
|
460
|
+
for (const [peerId, peer] of Object.entries(this.connections)) {
|
|
461
|
+
if (peerId !== this.id && peer.connected) {
|
|
462
|
+
requests.push(peer.request(node.encoded))
|
|
463
|
+
}
|
|
464
|
+
}
|
|
465
|
+
|
|
466
|
+
if (requests.length === 0) return undefined
|
|
467
|
+
|
|
468
|
+
try {
|
|
469
|
+
let result = await Promise.any(requests)
|
|
470
|
+
if (result) result = new Uint8Array(Object.values(result))
|
|
471
|
+
if (!result || result.length === 0) return undefined
|
|
472
|
+
const proto = await protoFor(result)
|
|
473
|
+
return proto.decoded.response
|
|
474
|
+
} catch (error) {
|
|
475
|
+
debug('request failed', error)
|
|
476
|
+
return undefined
|
|
477
|
+
}
|
|
478
|
+
}
|
|
479
|
+
|
|
445
480
|
/**
|
|
446
481
|
* @private
|
|
447
482
|
*
|