@waku/core 0.0.30-e49e728.0 → 0.0.31-04bd518.0

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 (63) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/bundle/{base_protocol-DCOj0QWD.js → base_protocol-BM6GbS_d.js} +20 -20
  3. package/bundle/{browser-zSUobdfj.js → index-DnW8ifxc.js} +616 -5
  4. package/bundle/index.js +103 -102
  5. package/bundle/lib/base_protocol.js +2 -3
  6. package/bundle/lib/message/version_0.js +2 -3
  7. package/bundle/{version_0-TEIsGmpJ.js → version_0-WhJLc79v.js} +2 -2
  8. package/dist/.tsbuildinfo +1 -1
  9. package/dist/index.d.ts +1 -1
  10. package/dist/index.js +1 -1
  11. package/dist/index.js.map +1 -1
  12. package/dist/lib/base_protocol.d.ts +2 -2
  13. package/dist/lib/base_protocol.js +1 -1
  14. package/dist/lib/base_protocol.js.map +1 -1
  15. package/dist/lib/connection_manager.d.ts +4 -3
  16. package/dist/lib/connection_manager.js +37 -39
  17. package/dist/lib/connection_manager.js.map +1 -1
  18. package/dist/lib/filter/filter_rpc.js.map +1 -1
  19. package/dist/lib/filter/index.d.ts +2 -2
  20. package/dist/lib/filter/index.js +34 -30
  21. package/dist/lib/filter/index.js.map +1 -1
  22. package/dist/lib/keep_alive_manager.d.ts +13 -7
  23. package/dist/lib/keep_alive_manager.js +9 -9
  24. package/dist/lib/keep_alive_manager.js.map +1 -1
  25. package/dist/lib/light_push/index.js.map +1 -1
  26. package/dist/lib/light_push/push_rpc.js.map +1 -1
  27. package/dist/lib/message/version_0.js.map +1 -1
  28. package/dist/lib/metadata/index.js +18 -18
  29. package/dist/lib/metadata/index.js.map +1 -1
  30. package/dist/lib/store/history_rpc.js.map +1 -1
  31. package/dist/lib/store/index.js.map +1 -1
  32. package/dist/lib/stream_manager/index.d.ts +1 -0
  33. package/dist/lib/stream_manager/index.js +2 -0
  34. package/dist/lib/stream_manager/index.js.map +1 -0
  35. package/dist/lib/{stream_manager.js → stream_manager/stream_manager.js} +1 -1
  36. package/dist/lib/stream_manager/stream_manager.js.map +1 -0
  37. package/dist/lib/stream_manager/utils.d.ts +2 -0
  38. package/dist/lib/stream_manager/utils.js +19 -0
  39. package/dist/lib/stream_manager/utils.js.map +1 -0
  40. package/package.json +1 -1
  41. package/src/index.ts +1 -1
  42. package/src/lib/base_protocol.ts +4 -3
  43. package/src/lib/connection_manager.ts +54 -55
  44. package/src/lib/filter/filter_rpc.ts +21 -19
  45. package/src/lib/filter/index.ts +54 -45
  46. package/src/lib/keep_alive_manager.ts +27 -18
  47. package/src/lib/light_push/index.ts +2 -2
  48. package/src/lib/light_push/push_rpc.ts +5 -5
  49. package/src/lib/message/version_0.ts +17 -15
  50. package/src/lib/metadata/index.ts +33 -33
  51. package/src/lib/store/history_rpc.ts +5 -5
  52. package/src/lib/store/index.ts +2 -2
  53. package/src/lib/stream_manager/index.ts +1 -0
  54. package/src/lib/{stream_manager.ts → stream_manager/stream_manager.ts} +3 -2
  55. package/src/lib/stream_manager/utils.ts +22 -0
  56. package/bundle/index-BcSodzY4.js +0 -614
  57. package/bundle/lib/predefined_bootstrap_nodes.js +0 -81
  58. package/dist/lib/predefined_bootstrap_nodes.d.ts +0 -34
  59. package/dist/lib/predefined_bootstrap_nodes.js +0 -54
  60. package/dist/lib/predefined_bootstrap_nodes.js.map +0 -1
  61. package/dist/lib/stream_manager.js.map +0 -1
  62. package/src/lib/predefined_bootstrap_nodes.ts +0 -68
  63. /package/dist/lib/{stream_manager.d.ts → stream_manager/stream_manager.d.ts} +0 -0
package/bundle/index.js CHANGED
@@ -1,9 +1,8 @@
1
- import { v as version_0, e as encodingLength, a as encode$1, d as decode$1, M as MessagePush, F as FilterSubscribeRequest, b as FilterSubscribeResponse$1, P as PushRpc$1, c as PushResponse, H as HistoryRpc$1, f as PagingInfo, g as HistoryResponse, h as createEncoder, W as WakuMetadataResponse, i as WakuMetadataRequest } from './version_0-TEIsGmpJ.js';
2
- export { j as createDecoder } from './version_0-TEIsGmpJ.js';
3
- import { g as getDefaultExportFromCjs, P as ProtocolError, a as Protocols, E as EConnectionStateEvents, T as Tags, b as EPeersByDiscoveryEvents } from './browser-zSUobdfj.js';
4
- import { a as allocUnsafe, b as alloc, L as Logger, u as utf8ToBytes, p as pubsubTopicToSingleShardInfo, s as shardInfoToPubsubTopics } from './index-BcSodzY4.js';
5
- import { B as BaseProtocol, d as decodeRelayShard, e as encodeRelayShard } from './base_protocol-DCOj0QWD.js';
6
- export { S as StreamManager } from './base_protocol-DCOj0QWD.js';
1
+ import { v as version_0, e as encodingLength, a as encode$1, d as decode$1, M as MessagePush, F as FilterSubscribeRequest, b as FilterSubscribeResponse$1, P as PushRpc$1, c as PushResponse, H as HistoryRpc$1, f as PagingInfo, g as HistoryResponse, h as createEncoder, W as WakuMetadataRequest, i as WakuMetadataResponse } from './version_0-WhJLc79v.js';
2
+ export { j as createDecoder } from './version_0-WhJLc79v.js';
3
+ import { a as allocUnsafe, b as alloc, g as getDefaultExportFromCjs, L as Logger, P as ProtocolError, c as Protocols, u as utf8ToBytes, p as pubsubTopicToSingleShardInfo, E as EConnectionStateEvents, T as Tags, d as EPeersByDiscoveryEvents, s as shardInfoToPubsubTopics } from './index-DnW8ifxc.js';
4
+ import { B as BaseProtocol, d as decodeRelayShard, e as encodeRelayShard } from './base_protocol-BM6GbS_d.js';
5
+ export { S as StreamManager } from './base_protocol-BM6GbS_d.js';
7
6
 
8
7
  const MB = 1024 ** 2;
9
8
  const SIZE_CAP_IN_MB = 1;
@@ -1615,39 +1614,14 @@ class FilterCore extends BaseProtocol {
1615
1614
  constructor(handleIncomingMessage, libp2p, options) {
1616
1615
  super(FilterCodecs.SUBSCRIBE, libp2p.components, log$6, options.pubsubTopics, options);
1617
1616
  this.handleIncomingMessage = handleIncomingMessage;
1618
- libp2p.handle(FilterCodecs.PUSH, this.onRequest.bind(this)).catch((e) => {
1617
+ libp2p
1618
+ .handle(FilterCodecs.PUSH, this.onRequest.bind(this), {
1619
+ maxInboundStreams: 100
1620
+ })
1621
+ .catch((e) => {
1619
1622
  log$6.error("Failed to register ", FilterCodecs.PUSH, e);
1620
1623
  });
1621
1624
  }
1622
- onRequest(streamData) {
1623
- const { connection, stream } = streamData;
1624
- const { remotePeer } = connection;
1625
- log$6.info(`Received message from ${remotePeer.toString()}`);
1626
- try {
1627
- pipe(stream, decode, async (source) => {
1628
- for await (const bytes of source) {
1629
- const response = FilterPushRpc.decode(bytes.slice());
1630
- const { pubsubTopic, wakuMessage } = response;
1631
- if (!wakuMessage) {
1632
- log$6.error("Received empty message");
1633
- return;
1634
- }
1635
- if (!pubsubTopic) {
1636
- log$6.error("Pubsub topic missing from push message");
1637
- return;
1638
- }
1639
- await this.handleIncomingMessage(pubsubTopic, wakuMessage);
1640
- }
1641
- }).then(() => {
1642
- log$6.info("Receiving pipe closed.");
1643
- }, (e) => {
1644
- log$6.error("Error with receiving pipe", e);
1645
- });
1646
- }
1647
- catch (e) {
1648
- log$6.error("Error decoding message", e);
1649
- }
1650
- }
1651
1625
  async subscribe(pubsubTopic, peer, contentTopics) {
1652
1626
  const stream = await this.getStream(peer);
1653
1627
  const request = FilterSubscribeRpc.createSubscribeRequest(pubsubTopic, contentTopics);
@@ -1799,6 +1773,35 @@ class FilterCore extends BaseProtocol {
1799
1773
  failure: null
1800
1774
  };
1801
1775
  }
1776
+ onRequest(streamData) {
1777
+ const { connection, stream } = streamData;
1778
+ const { remotePeer } = connection;
1779
+ log$6.info(`Received message from ${remotePeer.toString()}`);
1780
+ try {
1781
+ pipe(stream, decode, async (source) => {
1782
+ for await (const bytes of source) {
1783
+ const response = FilterPushRpc.decode(bytes.slice());
1784
+ const { pubsubTopic, wakuMessage } = response;
1785
+ if (!wakuMessage) {
1786
+ log$6.error("Received empty message");
1787
+ return;
1788
+ }
1789
+ if (!pubsubTopic) {
1790
+ log$6.error("Pubsub topic missing from push message");
1791
+ return;
1792
+ }
1793
+ await this.handleIncomingMessage(pubsubTopic, wakuMessage, connection.remotePeer.toString());
1794
+ }
1795
+ }).then(() => {
1796
+ log$6.info("Receiving pipe closed.");
1797
+ }, (e) => {
1798
+ log$6.error("Error with receiving pipe", e);
1799
+ });
1800
+ }
1801
+ catch (e) {
1802
+ log$6.error("Error decoding message", e);
1803
+ }
1804
+ }
1802
1805
  }
1803
1806
 
1804
1807
  var index$2 = /*#__PURE__*/Object.freeze({
@@ -2591,17 +2594,17 @@ const CustomEvent = globalThis.CustomEvent ?? CustomEventPolyfill;
2591
2594
  const RelayPingContentTopic = "/relay-ping/1/ping/null";
2592
2595
  const log$2 = new Logger("keep-alive");
2593
2596
  class KeepAliveManager {
2594
- pingKeepAliveTimers;
2595
- relayKeepAliveTimers;
2596
- options;
2597
2597
  relay;
2598
- constructor(options, relay) {
2599
- this.pingKeepAliveTimers = new Map();
2600
- this.relayKeepAliveTimers = new Map();
2598
+ libp2p;
2599
+ options;
2600
+ pingKeepAliveTimers = new Map();
2601
+ relayKeepAliveTimers = new Map();
2602
+ constructor({ options, relay, libp2p }) {
2601
2603
  this.options = options;
2602
2604
  this.relay = relay;
2605
+ this.libp2p = libp2p;
2603
2606
  }
2604
- start(peerId, libp2pPing, peerStore) {
2607
+ start(peerId) {
2605
2608
  // Just in case a timer already exists for this peer
2606
2609
  this.stop(peerId);
2607
2610
  const { pingKeepAlive: pingPeriodSecs, relayKeepAlive: relayPeriodSecs } = this.options;
@@ -2616,7 +2619,7 @@ class KeepAliveManager {
2616
2619
  // ping the peer for keep alive
2617
2620
  // also update the peer store with the latency
2618
2621
  try {
2619
- ping = await libp2pPing.ping(peerId);
2622
+ ping = await this.libp2p.services.ping.ping(peerId);
2620
2623
  log$2.info(`Ping succeeded (${peerIdStr})`, ping);
2621
2624
  }
2622
2625
  catch (error) {
@@ -2626,7 +2629,7 @@ class KeepAliveManager {
2626
2629
  return;
2627
2630
  }
2628
2631
  try {
2629
- await peerStore.merge(peerId, {
2632
+ await this.libp2p.peerStore.merge(peerId, {
2630
2633
  metadata: {
2631
2634
  ping: utf8ToBytes(ping.toString())
2632
2635
  }
@@ -2739,6 +2742,22 @@ class ConnectionManager extends TypedEventEmitter {
2739
2742
  }
2740
2743
  return instance;
2741
2744
  }
2745
+ stop() {
2746
+ this.keepAliveManager.stopAll();
2747
+ this.libp2p.removeEventListener("peer:connect", this.onEventHandlers["peer:connect"]);
2748
+ this.libp2p.removeEventListener("peer:disconnect", this.onEventHandlers["peer:disconnect"]);
2749
+ this.libp2p.removeEventListener("peer:discovery", this.onEventHandlers["peer:discovery"]);
2750
+ }
2751
+ async dropConnection(peerId) {
2752
+ try {
2753
+ this.keepAliveManager.stop(peerId);
2754
+ await this.libp2p.hangUp(peerId);
2755
+ log$1.info(`Dropped connection with peer ${peerId.toString()}`);
2756
+ }
2757
+ catch (error) {
2758
+ log$1.error(`Error dropping connection with peer ${peerId.toString()} - ${error}`);
2759
+ }
2760
+ }
2742
2761
  async getPeersByDiscovery() {
2743
2762
  const peersDiscovered = await this.libp2p.peerStore.all();
2744
2763
  const peersConnected = this.libp2p
@@ -2799,7 +2818,11 @@ class ConnectionManager extends TypedEventEmitter {
2799
2818
  maxParallelDials: DEFAULT_MAX_PARALLEL_DIALS,
2800
2819
  ...options
2801
2820
  };
2802
- this.keepAliveManager = new KeepAliveManager(keepAliveOptions, relay);
2821
+ this.keepAliveManager = new KeepAliveManager({
2822
+ relay,
2823
+ libp2p,
2824
+ options: keepAliveOptions
2825
+ });
2803
2826
  this.run()
2804
2827
  .then(() => log$1.info(`Connection Manager is now running`))
2805
2828
  .catch((error) => log$1.error(`Unexpected error while running service`, error));
@@ -2829,12 +2852,6 @@ class ConnectionManager extends TypedEventEmitter {
2829
2852
  this.startPeerConnectionListener();
2830
2853
  this.startPeerDisconnectionListener();
2831
2854
  }
2832
- stop() {
2833
- this.keepAliveManager.stopAll();
2834
- this.libp2p.removeEventListener("peer:connect", this.onEventHandlers["peer:connect"]);
2835
- this.libp2p.removeEventListener("peer:disconnect", this.onEventHandlers["peer:disconnect"]);
2836
- this.libp2p.removeEventListener("peer:discovery", this.onEventHandlers["peer:discovery"]);
2837
- }
2838
2855
  async dialPeer(peerId) {
2839
2856
  this.currentActiveParallelDialCount += 1;
2840
2857
  let dialAttempt = 0;
@@ -2852,6 +2869,7 @@ class ConnectionManager extends TypedEventEmitter {
2852
2869
  // this helps us keep track of peers that have been dialed before
2853
2870
  this.dialAttemptsForPeer.set(peerId.toString(), -1);
2854
2871
  // Dialing succeeded, break the loop
2872
+ this.keepAliveManager.start(peerId);
2855
2873
  break;
2856
2874
  }
2857
2875
  catch (error) {
@@ -2901,16 +2919,6 @@ class ConnectionManager extends TypedEventEmitter {
2901
2919
  }
2902
2920
  }
2903
2921
  }
2904
- async dropConnection(peerId) {
2905
- try {
2906
- this.keepAliveManager.stop(peerId);
2907
- await this.libp2p.hangUp(peerId);
2908
- log$1.info(`Dropped connection with peer ${peerId.toString()}`);
2909
- }
2910
- catch (error) {
2911
- log$1.error(`Error dropping connection with peer ${peerId.toString()} - ${error}`);
2912
- }
2913
- }
2914
2922
  processDialQueue() {
2915
2923
  if (this.pendingPeerDialQueue.length > 0 &&
2916
2924
  this.currentActiveParallelDialCount < this.options.maxParallelDials) {
@@ -2950,9 +2958,7 @@ class ConnectionManager extends TypedEventEmitter {
2950
2958
  this.pendingPeerDialQueue.push(peerId);
2951
2959
  return;
2952
2960
  }
2953
- this.dialPeer(peerId).catch((err) => {
2954
- log$1.error(`Error dialing peer ${peerId.toString()} : ${err}`);
2955
- });
2961
+ await this.dialPeer(peerId);
2956
2962
  }
2957
2963
  onEventHandlers = {
2958
2964
  "peer:discovery": (evt) => {
@@ -2971,7 +2977,7 @@ class ConnectionManager extends TypedEventEmitter {
2971
2977
  void (async () => {
2972
2978
  log$1.info(`Connected to peer ${evt.detail.toString()}`);
2973
2979
  const peerId = evt.detail;
2974
- this.keepAliveManager.start(peerId, this.libp2p.services.ping, this.libp2p.peerStore);
2980
+ this.keepAliveManager.start(peerId);
2975
2981
  const isBootstrap = (await this.getTagNamesForPeer(peerId)).includes(Tags.BOOTSTRAP);
2976
2982
  if (isBootstrap) {
2977
2983
  const bootstrapConnections = this.libp2p
@@ -3011,26 +3017,25 @@ class ConnectionManager extends TypedEventEmitter {
3011
3017
  * @returns true if the peer should be dialed, false otherwise
3012
3018
  */
3013
3019
  async shouldDialPeer(peerId) {
3014
- // if we're already connected to the peer, don't dial
3015
3020
  const isConnected = this.libp2p.getConnections(peerId).length > 0;
3016
3021
  if (isConnected) {
3017
3022
  log$1.warn(`Already connected to peer ${peerId.toString()}. Not dialing.`);
3018
3023
  return false;
3019
3024
  }
3020
- // if the peer is not part of any of the configured pubsub topics, don't dial
3021
- if (!(await this.isPeerTopicConfigured(peerId))) {
3025
+ const isSameShard = await this.isPeerTopicConfigured(peerId);
3026
+ if (!isSameShard) {
3022
3027
  const shardInfo = await this.getPeerShardInfo(peerId, this.libp2p.peerStore);
3023
3028
  log$1.warn(`Discovered peer ${peerId.toString()} with ShardInfo ${shardInfo} is not part of any of the configured pubsub topics (${this.configuredPubsubTopics}).
3024
3029
  Not dialing.`);
3025
3030
  return false;
3026
3031
  }
3027
- // if the peer is not dialable based on bootstrap status, don't dial
3028
- if (!(await this.isPeerDialableBasedOnBootstrapStatus(peerId))) {
3032
+ const isPreferredBasedOnBootstrap = await this.isPeerDialableBasedOnBootstrapStatus(peerId);
3033
+ if (!isPreferredBasedOnBootstrap) {
3029
3034
  log$1.warn(`Peer ${peerId.toString()} is not dialable based on bootstrap status. Not dialing.`);
3030
3035
  return false;
3031
3036
  }
3032
- // If the peer is already already has an active dial attempt, or has been dialed before, don't dial it
3033
- if (this.dialAttemptsForPeer.has(peerId.toString())) {
3037
+ const hasBeenDialed = this.dialAttemptsForPeer.has(peerId.toString());
3038
+ if (hasBeenDialed) {
3034
3039
  log$1.warn(`Peer ${peerId.toString()} has already been attempted dial before, or already has a dial attempt in progress, skipping dial`);
3035
3040
  return false;
3036
3041
  }
@@ -3044,19 +3049,15 @@ class ConnectionManager extends TypedEventEmitter {
3044
3049
  async isPeerDialableBasedOnBootstrapStatus(peerId) {
3045
3050
  const tagNames = await this.getTagNamesForPeer(peerId);
3046
3051
  const isBootstrap = tagNames.some((tagName) => tagName === Tags.BOOTSTRAP);
3047
- if (isBootstrap) {
3048
- const currentBootstrapConnections = this.libp2p
3049
- .getConnections()
3050
- .filter((conn) => {
3051
- return conn.tags.find((name) => name === Tags.BOOTSTRAP);
3052
- }).length;
3053
- if (currentBootstrapConnections < this.options.maxBootstrapPeersAllowed)
3054
- return true;
3055
- }
3056
- else {
3052
+ if (!isBootstrap) {
3057
3053
  return true;
3058
3054
  }
3059
- return false;
3055
+ const currentBootstrapConnections = this.libp2p
3056
+ .getConnections()
3057
+ .filter((conn) => {
3058
+ return conn.tags.find((name) => name === Tags.BOOTSTRAP);
3059
+ }).length;
3060
+ return currentBootstrapConnections < this.options.maxBootstrapPeersAllowed;
3060
3061
  }
3061
3062
  async dispatchDiscoveryEvent(peerId) {
3062
3063
  const isBootstrap = (await this.getTagNamesForPeer(peerId)).includes(Tags.BOOTSTRAP);
@@ -3111,24 +3112,6 @@ class Metadata extends BaseProtocol {
3111
3112
  void this.onRequest(streamData);
3112
3113
  });
3113
3114
  }
3114
- /**
3115
- * Handle an incoming metadata request
3116
- */
3117
- async onRequest(streamData) {
3118
- try {
3119
- const { stream, connection } = streamData;
3120
- const encodedShardInfo = WakuMetadataResponse.encode(this.shardInfo);
3121
- const encodedResponse = await pipe([encodedShardInfo], encode, stream, decode, async (source) => await all(source));
3122
- const { error, shardInfo } = this.decodeMetadataResponse(encodedResponse);
3123
- if (error) {
3124
- return;
3125
- }
3126
- await this.savePeerShardInfo(connection.remotePeer, shardInfo);
3127
- }
3128
- catch (error) {
3129
- log.error("Error handling metadata request", error);
3130
- }
3131
- }
3132
3115
  /**
3133
3116
  * Make a metadata query to a peer
3134
3117
  */
@@ -3176,6 +3159,24 @@ class Metadata extends BaseProtocol {
3176
3159
  }
3177
3160
  return await this.query(peerId);
3178
3161
  }
3162
+ /**
3163
+ * Handle an incoming metadata request
3164
+ */
3165
+ async onRequest(streamData) {
3166
+ try {
3167
+ const { stream, connection } = streamData;
3168
+ const encodedShardInfo = WakuMetadataResponse.encode(this.shardInfo);
3169
+ const encodedResponse = await pipe([encodedShardInfo], encode, stream, decode, async (source) => await all(source));
3170
+ const { error, shardInfo } = this.decodeMetadataResponse(encodedResponse);
3171
+ if (error) {
3172
+ return;
3173
+ }
3174
+ await this.savePeerShardInfo(connection.remotePeer, shardInfo);
3175
+ }
3176
+ catch (error) {
3177
+ log.error("Error handling metadata request", error);
3178
+ }
3179
+ }
3179
3180
  decodeMetadataResponse(encodedResponse) {
3180
3181
  const bytes = new Uint8ArrayList();
3181
3182
  encodedResponse.forEach((chunk) => {
@@ -1,3 +1,2 @@
1
- import '../index-BcSodzY4.js';
2
- import '../browser-zSUobdfj.js';
3
- export { B as BaseProtocol } from '../base_protocol-DCOj0QWD.js';
1
+ import '../index-DnW8ifxc.js';
2
+ export { B as BaseProtocol } from '../base_protocol-BM6GbS_d.js';
@@ -1,3 +1,2 @@
1
- export { D as DecodedMessage, k as Decoder, E as Encoder, V as Version, j as createDecoder, h as createEncoder, m as proto } from '../../version_0-TEIsGmpJ.js';
2
- import '../../index-BcSodzY4.js';
3
- import '../../browser-zSUobdfj.js';
1
+ export { D as DecodedMessage, k as Decoder, E as Encoder, V as Version, j as createDecoder, h as createEncoder, m as proto } from '../../version_0-WhJLc79v.js';
2
+ import '../../index-DnW8ifxc.js';
@@ -1,4 +1,4 @@
1
- import { a as allocUnsafe, f as fromString, b as alloc$1, L as Logger, d as determinePubsubTopic } from './index-BcSodzY4.js';
1
+ import { a as allocUnsafe, f as fromString, b as alloc$1, L as Logger, e as determinePubsubTopic } from './index-DnW8ifxc.js';
2
2
 
3
3
  /* eslint-disable no-fallthrough */
4
4
  const N1 = Math.pow(2, 7);
@@ -4056,4 +4056,4 @@ var version_0 = /*#__PURE__*/Object.freeze({
4056
4056
  proto: message
4057
4057
  });
4058
4058
 
4059
- export { DecodedMessage as D, Encoder as E, FilterSubscribeRequest as F, HistoryRpc$1 as H, MessagePush as M, PushRpc$1 as P, Version as V, WakuMetadataResponse as W, encode as a, FilterSubscribeResponse$1 as b, PushResponse as c, decode as d, encodingLength as e, PagingInfo as f, HistoryResponse as g, createEncoder as h, WakuMetadataRequest as i, createDecoder as j, Decoder as k, message as m, version_0 as v };
4059
+ export { DecodedMessage as D, Encoder as E, FilterSubscribeRequest as F, HistoryRpc$1 as H, MessagePush as M, PushRpc$1 as P, Version as V, WakuMetadataRequest as W, encode as a, FilterSubscribeResponse$1 as b, PushResponse as c, decode as d, encodingLength as e, PagingInfo as f, HistoryResponse as g, createEncoder as h, WakuMetadataResponse as i, createDecoder as j, Decoder as k, message as m, version_0 as v };