@waku/core 0.0.17 → 0.0.18
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/CHANGELOG.md +25 -0
- package/bundle/{browser-2f1afe46.js → browser-bde977a3.js} +12 -9
- package/bundle/index.js +610 -32840
- package/bundle/lib/base_protocol.js +4 -1
- package/bundle/lib/message/version_0.js +2 -3
- package/bundle/{peer_exchange-1229c8b0.js → version_0-c6b47311.js} +172 -45
- package/dist/index.d.ts +1 -3
- package/dist/index.js +1 -3
- package/dist/index.js.map +1 -1
- package/dist/lib/base_protocol.js +3 -0
- package/dist/lib/base_protocol.js.map +1 -1
- package/dist/lib/connection_manager.d.ts +1 -0
- package/dist/lib/connection_manager.js +33 -25
- package/dist/lib/connection_manager.js.map +1 -1
- package/dist/lib/filter/filter_rpc.js +1 -0
- package/dist/lib/filter/filter_rpc.js.map +1 -1
- package/dist/lib/filter/index.js +4 -1
- package/dist/lib/filter/index.js.map +1 -1
- package/dist/lib/keep_alive_manager.d.ts +1 -0
- package/dist/lib/keep_alive_manager.js +5 -1
- package/dist/lib/keep_alive_manager.js.map +1 -1
- package/dist/lib/light_push/index.d.ts +1 -1
- package/dist/lib/light_push/index.js +27 -7
- package/dist/lib/light_push/index.js.map +1 -1
- package/dist/lib/light_push/push_rpc.js +1 -0
- package/dist/lib/light_push/push_rpc.js.map +1 -1
- package/dist/lib/message/index.d.ts +0 -1
- package/dist/lib/message/index.js +0 -1
- package/dist/lib/message/index.js.map +1 -1
- package/dist/lib/message/version_0.d.ts +1 -2
- package/dist/lib/message/version_0.js +6 -0
- package/dist/lib/message/version_0.js.map +1 -1
- package/dist/lib/store/history_rpc.js +1 -0
- package/dist/lib/store/history_rpc.js.map +1 -1
- package/dist/lib/store/index.js +2 -0
- package/dist/lib/store/index.js.map +1 -1
- package/dist/lib/waku.js +6 -0
- package/dist/lib/waku.js.map +1 -1
- package/package.json +8 -11
- package/src/index.ts +1 -9
- package/src/lib/connection_manager.ts +13 -4
- package/src/lib/filter/index.ts +1 -1
- package/src/lib/keep_alive_manager.ts +1 -2
- package/src/lib/light_push/index.ts +26 -9
- package/src/lib/message/index.ts +0 -1
- package/src/lib/message/version_0.ts +1 -1
- package/bundle/lib/message/topic_only_message.js +0 -3
- package/bundle/topic_only_message-e8406994.js +0 -43
- package/bundle/version_0-5a4becbc.js +0 -149
- package/dist/lib/group_by.d.ts +0 -3
- package/dist/lib/group_by.js +0 -13
- package/dist/lib/group_by.js.map +0 -1
- package/dist/lib/message/topic_only_message.d.ts +0 -18
- package/dist/lib/message/topic_only_message.js +0 -35
- package/dist/lib/message/topic_only_message.js.map +0 -1
- package/dist/lib/relay/constants.d.ts +0 -63
- package/dist/lib/relay/constants.js +0 -64
- package/dist/lib/relay/constants.js.map +0 -1
- package/dist/lib/relay/index.d.ts +0 -11
- package/dist/lib/relay/index.js +0 -181
- package/dist/lib/relay/index.js.map +0 -1
- package/dist/lib/relay/message_validator.d.ts +0 -4
- package/dist/lib/relay/message_validator.js +0 -25
- package/dist/lib/relay/message_validator.js.map +0 -1
- package/src/lib/group_by.ts +0 -14
- package/src/lib/message/topic_only_message.ts +0 -51
- package/src/lib/relay/constants.ts +0 -74
- package/src/lib/relay/index.ts +0 -294
- package/src/lib/relay/message_validator.ts +0 -35
@@ -1,4 +1,4 @@
|
|
1
|
-
import { d as debug } from '../browser-
|
1
|
+
import { d as debug } from '../browser-bde977a3.js';
|
2
2
|
|
3
3
|
const log = debug("waku:libp2p-utils");
|
4
4
|
/**
|
@@ -78,6 +78,9 @@ function selectConnection(connections) {
|
|
78
78
|
* Protocols.
|
79
79
|
*/
|
80
80
|
class BaseProtocol {
|
81
|
+
multicodec;
|
82
|
+
peerStore;
|
83
|
+
getConnections;
|
81
84
|
constructor(multicodec, peerStore, getConnections) {
|
82
85
|
this.multicodec = multicodec;
|
83
86
|
this.peerStore = peerStore;
|
@@ -1,3 +1,2 @@
|
|
1
|
-
export { m as proto } from '../../
|
2
|
-
import '../../browser-
|
3
|
-
export { D as DecodedMessage, b as Decoder, E as Encoder, V as Version, a as createDecoder, c as createEncoder } from '../../version_0-5a4becbc.js';
|
1
|
+
export { D as DecodedMessage, f as Decoder, E as Encoder, V as Version, e as createDecoder, c as createEncoder, m as proto } from '../../version_0-c6b47311.js';
|
2
|
+
import '../../browser-bde977a3.js';
|
@@ -1,36 +1,4 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
function getDefaultExportFromCjs (x) {
|
4
|
-
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
|
5
|
-
}
|
6
|
-
|
7
|
-
function getAugmentedNamespace(n) {
|
8
|
-
if (n.__esModule) return n;
|
9
|
-
var f = n.default;
|
10
|
-
if (typeof f == "function") {
|
11
|
-
var a = function a () {
|
12
|
-
if (this instanceof a) {
|
13
|
-
var args = [null];
|
14
|
-
args.push.apply(args, arguments);
|
15
|
-
var Ctor = Function.bind.apply(f, args);
|
16
|
-
return new Ctor();
|
17
|
-
}
|
18
|
-
return f.apply(this, arguments);
|
19
|
-
};
|
20
|
-
a.prototype = f.prototype;
|
21
|
-
} else a = {};
|
22
|
-
Object.defineProperty(a, '__esModule', {value: true});
|
23
|
-
Object.keys(n).forEach(function (k) {
|
24
|
-
var d = Object.getOwnPropertyDescriptor(n, k);
|
25
|
-
Object.defineProperty(a, k, d.get ? d : {
|
26
|
-
enumerable: true,
|
27
|
-
get: function () {
|
28
|
-
return n[k];
|
29
|
-
}
|
30
|
-
});
|
31
|
-
});
|
32
|
-
return a;
|
33
|
-
}
|
1
|
+
import { c as commonjsGlobal, g as getDefaultExportFromCjs, d as debug } from './browser-bde977a3.js';
|
34
2
|
|
35
3
|
var minimal = {};
|
36
4
|
|
@@ -226,7 +194,7 @@ var base64$1 = {};
|
|
226
194
|
*/
|
227
195
|
base64.test = function test(string) {
|
228
196
|
return /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(string);
|
229
|
-
};
|
197
|
+
};
|
230
198
|
} (base64$1));
|
231
199
|
|
232
200
|
var eventemitter = EventEmitter;
|
@@ -762,7 +730,7 @@ var utf8$2 = {};
|
|
762
730
|
}
|
763
731
|
}
|
764
732
|
return offset - start;
|
765
|
-
};
|
733
|
+
};
|
766
734
|
} (utf8$2));
|
767
735
|
|
768
736
|
var pool_1 = pool;
|
@@ -1463,8 +1431,8 @@ function requireMinimal () {
|
|
1463
1431
|
function Buffer_allocUnsafe(size) {
|
1464
1432
|
return new Buffer(size);
|
1465
1433
|
};
|
1466
|
-
};
|
1467
|
-
} (minimal));
|
1434
|
+
};
|
1435
|
+
} (minimal));
|
1468
1436
|
return minimal;
|
1469
1437
|
}
|
1470
1438
|
|
@@ -1879,6 +1847,8 @@ Reader$1._configure = function(BufferReader_) {
|
|
1879
1847
|
});
|
1880
1848
|
};
|
1881
1849
|
|
1850
|
+
var ReaderClass = /*@__PURE__*/getDefaultExportFromCjs(reader$1);
|
1851
|
+
|
1882
1852
|
var reader_buffer = BufferReader;
|
1883
1853
|
|
1884
1854
|
// extends Reader
|
@@ -1930,6 +1900,8 @@ BufferReader.prototype.string = function read_string_buffer() {
|
|
1930
1900
|
|
1931
1901
|
BufferReader._configure();
|
1932
1902
|
|
1903
|
+
var ReaderBufferClass = /*@__PURE__*/getDefaultExportFromCjs(reader_buffer);
|
1904
|
+
|
1933
1905
|
var minimalExports = requireMinimal();
|
1934
1906
|
var util$2 = /*@__PURE__*/getDefaultExportFromCjs(minimalExports);
|
1935
1907
|
|
@@ -2398,6 +2370,8 @@ Writer$1._configure = function(BufferWriter_) {
|
|
2398
2370
|
BufferWriter$1._configure();
|
2399
2371
|
};
|
2400
2372
|
|
2373
|
+
var WriterClass = /*@__PURE__*/getDefaultExportFromCjs(writer$1);
|
2374
|
+
|
2401
2375
|
var writer_buffer = BufferWriter;
|
2402
2376
|
|
2403
2377
|
// extends Writer
|
@@ -2483,11 +2457,13 @@ BufferWriter.prototype.string = function write_string_buffer(value) {
|
|
2483
2457
|
|
2484
2458
|
BufferWriter._configure();
|
2485
2459
|
|
2460
|
+
var WriterBufferClass = /*@__PURE__*/getDefaultExportFromCjs(writer_buffer);
|
2461
|
+
|
2486
2462
|
// @ts-expect-error no types
|
2487
2463
|
function configure() {
|
2488
2464
|
util$2._configure();
|
2489
|
-
|
2490
|
-
|
2465
|
+
ReaderClass._configure(ReaderBufferClass);
|
2466
|
+
WriterClass._configure(WriterBufferClass);
|
2491
2467
|
}
|
2492
2468
|
// Set up buffer utility according to the environment
|
2493
2469
|
configure();
|
@@ -2508,7 +2484,7 @@ function patchReader(obj) {
|
|
2508
2484
|
return obj;
|
2509
2485
|
}
|
2510
2486
|
function reader(buf) {
|
2511
|
-
return patchReader(new
|
2487
|
+
return patchReader(new ReaderClass(buf));
|
2512
2488
|
}
|
2513
2489
|
function patchWriter(obj) {
|
2514
2490
|
for (const method of methods) {
|
@@ -2523,7 +2499,7 @@ function patchWriter(obj) {
|
|
2523
2499
|
return obj;
|
2524
2500
|
}
|
2525
2501
|
function writer() {
|
2526
|
-
return patchWriter(
|
2502
|
+
return patchWriter(WriterClass.create());
|
2527
2503
|
}
|
2528
2504
|
|
2529
2505
|
function decodeMessage(buf, codec) {
|
@@ -2765,9 +2741,9 @@ var WakuMessage$3;
|
|
2765
2741
|
})(WakuMessage$3 || (WakuMessage$3 = {}));
|
2766
2742
|
|
2767
2743
|
var message = /*#__PURE__*/Object.freeze({
|
2768
|
-
|
2769
|
-
|
2770
|
-
|
2744
|
+
__proto__: null,
|
2745
|
+
get RateLimitProof () { return RateLimitProof$3; },
|
2746
|
+
get WakuMessage () { return WakuMessage$3; }
|
2771
2747
|
});
|
2772
2748
|
|
2773
2749
|
/* eslint-disable import/export */
|
@@ -4299,4 +4275,155 @@ var PeerExchangeRPC;
|
|
4299
4275
|
};
|
4300
4276
|
})(PeerExchangeRPC || (PeerExchangeRPC = {}));
|
4301
4277
|
|
4302
|
-
|
4278
|
+
const log = debug("waku:message:version-0");
|
4279
|
+
const OneMillion = BigInt(1000000);
|
4280
|
+
const Version = 0;
|
4281
|
+
class DecodedMessage {
|
4282
|
+
pubSubTopic;
|
4283
|
+
proto;
|
4284
|
+
constructor(pubSubTopic, proto) {
|
4285
|
+
this.pubSubTopic = pubSubTopic;
|
4286
|
+
this.proto = proto;
|
4287
|
+
}
|
4288
|
+
get ephemeral() {
|
4289
|
+
return Boolean(this.proto.ephemeral);
|
4290
|
+
}
|
4291
|
+
get payload() {
|
4292
|
+
return this.proto.payload;
|
4293
|
+
}
|
4294
|
+
get contentTopic() {
|
4295
|
+
return this.proto.contentTopic;
|
4296
|
+
}
|
4297
|
+
get _rawTimestamp() {
|
4298
|
+
return this.proto.timestamp;
|
4299
|
+
}
|
4300
|
+
get timestamp() {
|
4301
|
+
// In the case we receive a value that is bigger than JS's max number,
|
4302
|
+
// we catch the error and return undefined.
|
4303
|
+
try {
|
4304
|
+
if (this.proto.timestamp) {
|
4305
|
+
// nanoseconds 10^-9 to milliseconds 10^-3
|
4306
|
+
const timestamp = this.proto.timestamp / OneMillion;
|
4307
|
+
return new Date(Number(timestamp));
|
4308
|
+
}
|
4309
|
+
return;
|
4310
|
+
}
|
4311
|
+
catch (e) {
|
4312
|
+
return;
|
4313
|
+
}
|
4314
|
+
}
|
4315
|
+
get meta() {
|
4316
|
+
return this.proto.meta;
|
4317
|
+
}
|
4318
|
+
get version() {
|
4319
|
+
// https://rfc.vac.dev/spec/14/
|
4320
|
+
// > If omitted, the value SHOULD be interpreted as version 0.
|
4321
|
+
return this.proto.version ?? 0;
|
4322
|
+
}
|
4323
|
+
get rateLimitProof() {
|
4324
|
+
return this.proto.rateLimitProof;
|
4325
|
+
}
|
4326
|
+
}
|
4327
|
+
class Encoder {
|
4328
|
+
contentTopic;
|
4329
|
+
ephemeral;
|
4330
|
+
metaSetter;
|
4331
|
+
constructor(contentTopic, ephemeral = false, metaSetter) {
|
4332
|
+
this.contentTopic = contentTopic;
|
4333
|
+
this.ephemeral = ephemeral;
|
4334
|
+
this.metaSetter = metaSetter;
|
4335
|
+
if (!contentTopic || contentTopic === "") {
|
4336
|
+
throw new Error("Content topic must be specified");
|
4337
|
+
}
|
4338
|
+
}
|
4339
|
+
async toWire(message$1) {
|
4340
|
+
return WakuMessage$3.encode(await this.toProtoObj(message$1));
|
4341
|
+
}
|
4342
|
+
async toProtoObj(message) {
|
4343
|
+
const timestamp = message.timestamp ?? new Date();
|
4344
|
+
const protoMessage = {
|
4345
|
+
payload: message.payload,
|
4346
|
+
version: Version,
|
4347
|
+
contentTopic: this.contentTopic,
|
4348
|
+
timestamp: BigInt(timestamp.valueOf()) * OneMillion,
|
4349
|
+
meta: undefined,
|
4350
|
+
rateLimitProof: message.rateLimitProof,
|
4351
|
+
ephemeral: this.ephemeral,
|
4352
|
+
};
|
4353
|
+
if (this.metaSetter) {
|
4354
|
+
const meta = this.metaSetter(protoMessage);
|
4355
|
+
return { ...protoMessage, meta };
|
4356
|
+
}
|
4357
|
+
return protoMessage;
|
4358
|
+
}
|
4359
|
+
}
|
4360
|
+
/**
|
4361
|
+
* Creates an encoder that encode messages without Waku level encryption or signature.
|
4362
|
+
*
|
4363
|
+
* An encoder is used to encode messages in the [`14/WAKU2-MESSAGE](https://rfc.vac.dev/spec/14/)
|
4364
|
+
* format to be sent over the Waku network. The resulting encoder can then be
|
4365
|
+
* pass to { @link @waku/interfaces.LightPush.push } or
|
4366
|
+
* { @link @waku/interfaces.Relay.send } to automatically encode outgoing
|
4367
|
+
* messages.
|
4368
|
+
*/
|
4369
|
+
function createEncoder({ contentTopic, ephemeral, metaSetter, }) {
|
4370
|
+
return new Encoder(contentTopic, ephemeral, metaSetter);
|
4371
|
+
}
|
4372
|
+
class Decoder {
|
4373
|
+
contentTopic;
|
4374
|
+
constructor(contentTopic) {
|
4375
|
+
this.contentTopic = contentTopic;
|
4376
|
+
if (!contentTopic || contentTopic === "") {
|
4377
|
+
throw new Error("Content topic must be specified");
|
4378
|
+
}
|
4379
|
+
}
|
4380
|
+
fromWireToProtoObj(bytes) {
|
4381
|
+
const protoMessage = WakuMessage$3.decode(bytes);
|
4382
|
+
log("Message decoded", protoMessage);
|
4383
|
+
return Promise.resolve({
|
4384
|
+
payload: protoMessage.payload,
|
4385
|
+
contentTopic: protoMessage.contentTopic,
|
4386
|
+
version: protoMessage.version ?? undefined,
|
4387
|
+
timestamp: protoMessage.timestamp ?? undefined,
|
4388
|
+
meta: protoMessage.meta ?? undefined,
|
4389
|
+
rateLimitProof: protoMessage.rateLimitProof ?? undefined,
|
4390
|
+
ephemeral: protoMessage.ephemeral ?? false,
|
4391
|
+
});
|
4392
|
+
}
|
4393
|
+
async fromProtoObj(pubSubTopic, proto) {
|
4394
|
+
// https://rfc.vac.dev/spec/14/
|
4395
|
+
// > If omitted, the value SHOULD be interpreted as version 0.
|
4396
|
+
if (proto.version ?? 0 !== Version) {
|
4397
|
+
log("Failed to decode due to incorrect version, expected:", Version, ", actual:", proto.version);
|
4398
|
+
return Promise.resolve(undefined);
|
4399
|
+
}
|
4400
|
+
return new DecodedMessage(pubSubTopic, proto);
|
4401
|
+
}
|
4402
|
+
}
|
4403
|
+
/**
|
4404
|
+
* Creates a decoder that decode messages without Waku level encryption.
|
4405
|
+
*
|
4406
|
+
* A decoder is used to decode messages from the [14/WAKU2-MESSAGE](https://rfc.vac.dev/spec/14/)
|
4407
|
+
* format when received from the Waku network. The resulting decoder can then be
|
4408
|
+
* pass to { @link @waku/interfaces.Filter.subscribe } or
|
4409
|
+
* { @link @waku/interfaces.Relay.subscribe } to automatically decode incoming
|
4410
|
+
* messages.
|
4411
|
+
*
|
4412
|
+
* @param contentTopic The resulting decoder will only decode messages with this content topic.
|
4413
|
+
*/
|
4414
|
+
function createDecoder(contentTopic) {
|
4415
|
+
return new Decoder(contentTopic);
|
4416
|
+
}
|
4417
|
+
|
4418
|
+
var version_0 = /*#__PURE__*/Object.freeze({
|
4419
|
+
__proto__: null,
|
4420
|
+
DecodedMessage: DecodedMessage,
|
4421
|
+
Decoder: Decoder,
|
4422
|
+
Encoder: Encoder,
|
4423
|
+
Version: Version,
|
4424
|
+
createDecoder: createDecoder,
|
4425
|
+
createEncoder: createEncoder,
|
4426
|
+
proto: message
|
4427
|
+
});
|
4428
|
+
|
4429
|
+
export { DecodedMessage as D, Encoder as E, FilterRpc$1 as F, HistoryRpc$1 as H, PushRpc$1 as P, Version as V, PushResponse as a, PagingInfo as b, createEncoder as c, HistoryResponse as d, createDecoder as e, Decoder as f, message as m, version_0 as v };
|
package/dist/index.d.ts
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
export { DefaultPubSubTopic } from "./lib/constants.js";
|
2
1
|
export { DefaultUserAgent } from "./lib/waku.js";
|
2
|
+
export { DefaultPubSubTopic } from "./lib/constants.js";
|
3
3
|
export { createEncoder, createDecoder } from "./lib/message/version_0.js";
|
4
4
|
export type { Encoder, Decoder, DecodedMessage, } from "./lib/message/version_0.js";
|
5
5
|
export * as message from "./lib/message/index.js";
|
@@ -9,8 +9,6 @@ export * as waku_filter from "./lib/filter/index.js";
|
|
9
9
|
export { wakuFilter } from "./lib/filter/index.js";
|
10
10
|
export * as waku_light_push from "./lib/light_push/index.js";
|
11
11
|
export { wakuLightPush, LightPushCodec } from "./lib/light_push/index.js";
|
12
|
-
export * as waku_relay from "./lib/relay/index.js";
|
13
|
-
export { wakuRelay, RelayCreateOptions, wakuGossipSub, } from "./lib/relay/index.js";
|
14
12
|
export * as waku_store from "./lib/store/index.js";
|
15
13
|
export { PageDirection, wakuStore, StoreCodec, createCursor, } from "./lib/store/index.js";
|
16
14
|
export { waitForRemotePeer } from "./lib/wait_for_remote_peer.js";
|
package/dist/index.js
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
export { DefaultPubSubTopic } from "./lib/constants.js";
|
2
1
|
export { DefaultUserAgent } from "./lib/waku.js";
|
2
|
+
export { DefaultPubSubTopic } from "./lib/constants.js";
|
3
3
|
export { createEncoder, createDecoder } from "./lib/message/version_0.js";
|
4
4
|
export * as message from "./lib/message/index.js";
|
5
5
|
export * as waku from "./lib/waku.js";
|
@@ -8,8 +8,6 @@ export * as waku_filter from "./lib/filter/index.js";
|
|
8
8
|
export { wakuFilter } from "./lib/filter/index.js";
|
9
9
|
export * as waku_light_push from "./lib/light_push/index.js";
|
10
10
|
export { wakuLightPush, LightPushCodec } from "./lib/light_push/index.js";
|
11
|
-
export * as waku_relay from "./lib/relay/index.js";
|
12
|
-
export { wakuRelay, wakuGossipSub, } from "./lib/relay/index.js";
|
13
11
|
export * as waku_store from "./lib/store/index.js";
|
14
12
|
export { PageDirection, wakuStore, StoreCodec, createCursor, } from "./lib/store/index.js";
|
15
13
|
export { waitForRemotePeer } from "./lib/wait_for_remote_peer.js";
|
package/dist/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAM1E,OAAO,KAAK,OAAO,MAAM,wBAAwB,CAAC;AAElD,OAAO,KAAK,IAAI,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAe,MAAM,eAAe,CAAC;AAEtD,OAAO,KAAK,WAAW,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,KAAK,eAAe,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE1E,OAAO,KAAK,UAAU,MAAM,sBAAsB,CAAC;AACnD,OAAO,EACL,aAAa,EACb,SAAS,EACT,UAAU,EACV,YAAY,GACb,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAElE,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAEhE,OAAO,EACL,gBAAgB,GAEjB,MAAM,6BAA6B,CAAC"}
|
@@ -4,6 +4,9 @@ import { getPeersForProtocol, selectConnection, selectPeerForProtocol, } from "@
|
|
4
4
|
* Protocols.
|
5
5
|
*/
|
6
6
|
export class BaseProtocol {
|
7
|
+
multicodec;
|
8
|
+
peerStore;
|
9
|
+
getConnections;
|
7
10
|
constructor(multicodec, peerStore, getConnections) {
|
8
11
|
this.multicodec = multicodec;
|
9
12
|
this.peerStore = peerStore;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"base_protocol.js","sourceRoot":"","sources":["../../src/lib/base_protocol.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,oBAAoB,CAAC;AAE5B;;;GAGG;AACH,MAAM,OAAO,YAAY;
|
1
|
+
{"version":3,"file":"base_protocol.js","sourceRoot":"","sources":["../../src/lib/base_protocol.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,oBAAoB,CAAC;AAE5B;;;GAGG;AACH,MAAM,OAAO,YAAY;IAEd;IACA;IACG;IAHZ,YACS,UAAkB,EAClB,SAAoB,EACjB,cAAiD;QAFpD,eAAU,GAAV,UAAU,CAAQ;QAClB,cAAS,GAAT,SAAS,CAAW;QACjB,mBAAc,GAAd,cAAc,CAAmC;IAC1D,CAAC;IAEJ;;;;OAIG;IACH,KAAK,CAAC,KAAK;QACT,OAAO,mBAAmB,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAChE,CAAC;IAES,KAAK,CAAC,OAAO,CAAC,MAAe;QACrC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,qBAAqB,CAC1C,IAAI,CAAC,SAAS,EACd,CAAC,IAAI,CAAC,UAAU,CAAC,EACjB,MAAM,CACP,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IACS,KAAK,CAAC,SAAS,CAAC,IAAU;QAClC,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjD,MAAM,UAAU,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;QACjD,IAAI,CAAC,UAAU,EAAE;YACf,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;SAC3D;QAED,OAAO,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC/C,CAAC;CACF"}
|
@@ -9,6 +9,7 @@ export declare class ConnectionManager {
|
|
9
9
|
private options;
|
10
10
|
private libp2pComponents;
|
11
11
|
private dialAttemptsForPeer;
|
12
|
+
private dialErrorsForPeer;
|
12
13
|
static create(peerId: string, libp2p: Libp2p, keepAliveOptions: KeepAliveOptions, relay?: IRelay, options?: ConnectionManagerOptions): ConnectionManager;
|
13
14
|
private constructor();
|
14
15
|
private run;
|
@@ -4,7 +4,13 @@ import { KeepAliveManager } from "./keep_alive_manager.js";
|
|
4
4
|
const log = debug("waku:connection-manager");
|
5
5
|
export const DEFAULT_MAX_BOOTSTRAP_PEERS_ALLOWED = 1;
|
6
6
|
export const DEFAULT_MAX_DIAL_ATTEMPTS_FOR_PEER = 3;
|
7
|
-
|
7
|
+
class ConnectionManager {
|
8
|
+
static instances = new Map();
|
9
|
+
keepAliveManager;
|
10
|
+
options;
|
11
|
+
libp2pComponents;
|
12
|
+
dialAttemptsForPeer = new Map();
|
13
|
+
dialErrorsForPeer = new Map();
|
8
14
|
static create(peerId, libp2p, keepAliveOptions, relay, options) {
|
9
15
|
let instance = ConnectionManager.instances.get(peerId);
|
10
16
|
if (!instance) {
|
@@ -14,25 +20,6 @@ export class ConnectionManager {
|
|
14
20
|
return instance;
|
15
21
|
}
|
16
22
|
constructor(libp2pComponents, keepAliveOptions, relay, options) {
|
17
|
-
this.dialAttemptsForPeer = new Map();
|
18
|
-
this.onEventHandlers = {
|
19
|
-
"peer:discovery": async (evt) => {
|
20
|
-
const { id: peerId } = evt.detail;
|
21
|
-
if (!(await this.shouldDialPeer(peerId)))
|
22
|
-
return;
|
23
|
-
this.dialPeer(peerId).catch((err) => log(`Error dialing peer ${peerId.toString()} : ${err}`));
|
24
|
-
},
|
25
|
-
"peer:connect": (evt) => {
|
26
|
-
{
|
27
|
-
this.keepAliveManager.start(evt.detail.remotePeer, this.libp2pComponents.ping.bind(this));
|
28
|
-
}
|
29
|
-
},
|
30
|
-
"peer:disconnect": () => {
|
31
|
-
return (evt) => {
|
32
|
-
this.keepAliveManager.stop(evt.detail.remotePeer);
|
33
|
-
};
|
34
|
-
},
|
35
|
-
};
|
36
23
|
this.libp2pComponents = libp2pComponents;
|
37
24
|
this.options = {
|
38
25
|
maxDialAttemptsForPeer: DEFAULT_MAX_DIAL_ATTEMPTS_FOR_PEER,
|
@@ -71,9 +58,10 @@ export class ConnectionManager {
|
|
71
58
|
this.dialAttemptsForPeer.delete(peerId.toString());
|
72
59
|
return;
|
73
60
|
}
|
74
|
-
catch (
|
75
|
-
|
76
|
-
|
61
|
+
catch (e) {
|
62
|
+
const error = e;
|
63
|
+
this.dialErrorsForPeer.set(peerId.toString(), error);
|
64
|
+
log(`Error dialing peer ${peerId.toString()} - ${error.errors}`);
|
77
65
|
dialAttempt = this.dialAttemptsForPeer.get(peerId.toString()) ?? 1;
|
78
66
|
this.dialAttemptsForPeer.set(peerId.toString(), dialAttempt + 1);
|
79
67
|
if (dialAttempt <= this.options.maxDialAttemptsForPeer) {
|
@@ -82,7 +70,9 @@ export class ConnectionManager {
|
|
82
70
|
}
|
83
71
|
}
|
84
72
|
try {
|
85
|
-
log(`Deleting undialable peer ${peerId.toString()} from peer store
|
73
|
+
log(`Deleting undialable peer ${peerId.toString()} from peer store. Error: ${JSON.stringify(this.dialErrorsForPeer.get(peerId.toString()).errors[0])}
|
74
|
+
}`);
|
75
|
+
this.dialErrorsForPeer.delete(peerId.toString());
|
86
76
|
return await this.libp2pComponents.peerStore.delete(peerId);
|
87
77
|
}
|
88
78
|
catch (error) {
|
@@ -110,6 +100,24 @@ export class ConnectionManager {
|
|
110
100
|
*/
|
111
101
|
this.libp2pComponents.addEventListener("peer:disconnect", this.onEventHandlers["peer:disconnect"]);
|
112
102
|
}
|
103
|
+
onEventHandlers = {
|
104
|
+
"peer:discovery": async (evt) => {
|
105
|
+
const { id: peerId } = evt.detail;
|
106
|
+
if (!(await this.shouldDialPeer(peerId)))
|
107
|
+
return;
|
108
|
+
this.dialPeer(peerId).catch((err) => log(`Error dialing peer ${peerId.toString()} : ${err}`));
|
109
|
+
},
|
110
|
+
"peer:connect": (evt) => {
|
111
|
+
{
|
112
|
+
this.keepAliveManager.start(evt.detail.remotePeer, this.libp2pComponents.ping.bind(this));
|
113
|
+
}
|
114
|
+
},
|
115
|
+
"peer:disconnect": () => {
|
116
|
+
return (evt) => {
|
117
|
+
this.keepAliveManager.stop(evt.detail.remotePeer);
|
118
|
+
};
|
119
|
+
},
|
120
|
+
};
|
113
121
|
/**
|
114
122
|
* Checks if the peer is dialable based on the following conditions:
|
115
123
|
* 1. If the peer is a bootstrap peer, it is only dialable if the number of current bootstrap connections is less than the max allowed.
|
@@ -142,5 +150,5 @@ export class ConnectionManager {
|
|
142
150
|
return tags;
|
143
151
|
}
|
144
152
|
}
|
145
|
-
|
153
|
+
export { ConnectionManager };
|
146
154
|
//# sourceMappingURL=connection_manager.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"connection_manager.js","sourceRoot":"","sources":["../../src/lib/connection_manager.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,gBAAgB,EAAoB,MAAM,yBAAyB,CAAC;AAE7E,MAAM,GAAG,GAAG,KAAK,CAAC,yBAAyB,CAAC,CAAC;AAE7C,MAAM,CAAC,MAAM,mCAAmC,GAAG,CAAC,CAAC;AACrD,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAAC,CAAC;AAEpD,MAAM,OAAO,iBAAiB;
|
1
|
+
{"version":3,"file":"connection_manager.js","sourceRoot":"","sources":["../../src/lib/connection_manager.ts"],"names":[],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"filter_rpc.js","sourceRoot":"","sources":["../../../src/lib/filter/filter_rpc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,IAAI,KAAK,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,MAAM,MAAM,CAAC;AAMlC;;GAEG;AACH,MAAM,OAAO,SAAS;
|
1
|
+
{"version":3,"file":"filter_rpc.js","sourceRoot":"","sources":["../../../src/lib/filter/filter_rpc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,IAAI,KAAK,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,MAAM,MAAM,CAAC;AAMlC;;GAEG;AACH,MAAM,OAAO,SAAS;IACM;IAA1B,YAA0B,KAAsB;QAAtB,UAAK,GAAL,KAAK,CAAiB;IAAG,CAAC;IAEpD,MAAM,CAAC,aAAa,CAClB,KAAa,EACb,cAA+B,EAC/B,SAAkB,EAClB,SAAS,GAAG,IAAI;QAEhB,OAAO,IAAI,SAAS,CAAC;YACnB,SAAS,EAAE,SAAS,IAAI,IAAI,EAAE;YAC9B,OAAO,EAAE;gBACP,SAAS;gBACT,KAAK;gBACL,cAAc;aACf;YACD,IAAI,EAAE,SAAS;SAChB,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,MAAM,CAAC,KAAiB;QAC7B,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1C,OAAO,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED;;;OAGG;IACH,MAAM;QACJ,OAAO,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IACzB,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;IAC9B,CAAC;CACF"}
|
package/dist/lib/filter/index.js
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
import { groupByContentTopic } from "@waku/utils";
|
1
2
|
import { toAsyncIterator } from "@waku/utils";
|
2
3
|
import debug from "debug";
|
3
4
|
import all from "it-all";
|
@@ -5,7 +6,6 @@ import * as lp from "it-length-prefixed";
|
|
5
6
|
import { pipe } from "it-pipe";
|
6
7
|
import { BaseProtocol } from "../base_protocol.js";
|
7
8
|
import { DefaultPubSubTopic } from "../constants.js";
|
8
|
-
import { groupByContentTopic } from "../group_by.js";
|
9
9
|
import { toProtoMessage } from "../to_proto_message.js";
|
10
10
|
import { FilterRpc } from "./filter_rpc.js";
|
11
11
|
export const FilterCodec = "/vac/waku/filter/2.0.0-beta1";
|
@@ -18,6 +18,9 @@ const log = debug("waku:filter");
|
|
18
18
|
* - https://github.com/status-im/nwaku/issues/948
|
19
19
|
*/
|
20
20
|
class Filter extends BaseProtocol {
|
21
|
+
libp2p;
|
22
|
+
options;
|
23
|
+
subscriptions;
|
21
24
|
constructor(libp2p, options) {
|
22
25
|
super(FilterCodec, libp2p.peerStore, libp2p.getConnections.bind(libp2p));
|
23
26
|
this.libp2p = libp2p;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/filter/index.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,QAAQ,CAAC;AACzB,OAAO,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE/B,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/filter/index.ts"],"names":[],"mappings":"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"}
|
@@ -1,6 +1,7 @@
|
|
1
1
|
import type { PeerId } from "@libp2p/interface-peer-id";
|
2
2
|
import type { IRelay } from "@waku/interfaces";
|
3
3
|
import type { Libp2p } from "libp2p";
|
4
|
+
export declare const RelayPingContentTopic = "/relay-ping/1/ping/null";
|
4
5
|
export interface KeepAliveOptions {
|
5
6
|
pingKeepAlive: number;
|
6
7
|
relayKeepAlive: number;
|
@@ -1,8 +1,12 @@
|
|
1
1
|
import debug from "debug";
|
2
2
|
import { createEncoder } from "../index.js";
|
3
|
-
|
3
|
+
export const RelayPingContentTopic = "/relay-ping/1/ping/null";
|
4
4
|
const log = debug("waku:keep-alive");
|
5
5
|
export class KeepAliveManager {
|
6
|
+
pingKeepAliveTimers;
|
7
|
+
relayKeepAliveTimers;
|
8
|
+
options;
|
9
|
+
relay;
|
6
10
|
constructor(options, relay) {
|
7
11
|
this.pingKeepAliveTimers = new Map();
|
8
12
|
this.relayKeepAliveTimers = new Map();
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"keep_alive_manager.js","sourceRoot":"","sources":["../../src/lib/keep_alive_manager.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,
|
1
|
+
{"version":3,"file":"keep_alive_manager.js","sourceRoot":"","sources":["../../src/lib/keep_alive_manager.ts"],"names":[],"mappings":"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"}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import type { Libp2p } from "@libp2p/interface-libp2p";
|
2
|
-
import
|
2
|
+
import { ILightPush, ProtocolCreateOptions } from "@waku/interfaces";
|
3
3
|
import { PushResponse } from "@waku/proto";
|
4
4
|
export declare const LightPushCodec = "/vac/waku/lightpush/2.0.0-beta1";
|
5
5
|
export { PushResponse };
|