@waku/core 0.0.22 → 0.0.24
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 +61 -0
- package/bundle/base_protocol-2a0c882e.js +1250 -0
- package/bundle/{browser-bde977a3.js → browser-90197c87.js} +26 -1
- package/bundle/index.js +20048 -3236
- package/bundle/lib/base_protocol.js +2 -116
- package/bundle/lib/message/version_0.js +2 -2
- package/bundle/lib/predefined_bootstrap_nodes.js +6 -6
- package/bundle/{version_0-86411fdf.js → version_0-f4afd324.js} +907 -814
- package/dist/.tsbuildinfo +1 -0
- package/dist/index.d.ts +5 -4
- package/dist/index.js +4 -3
- package/dist/index.js.map +1 -1
- package/dist/lib/base_protocol.d.ts +18 -5
- package/dist/lib/base_protocol.js +25 -8
- package/dist/lib/base_protocol.js.map +1 -1
- package/dist/lib/connection_manager.d.ts +15 -3
- package/dist/lib/connection_manager.js +92 -34
- package/dist/lib/connection_manager.js.map +1 -1
- package/dist/lib/filter/filter_rpc.js +4 -4
- package/dist/lib/filter/index.d.ts +4 -0
- package/dist/lib/filter/index.js +38 -29
- package/dist/lib/filter/index.js.map +1 -1
- package/dist/lib/filterPeers.d.ts +10 -0
- package/dist/lib/filterPeers.js +31 -0
- package/dist/lib/filterPeers.js.map +1 -0
- package/dist/lib/keep_alive_manager.d.ts +4 -2
- package/dist/lib/keep_alive_manager.js +62 -19
- package/dist/lib/keep_alive_manager.js.map +1 -1
- package/dist/lib/light_push/index.js +85 -38
- package/dist/lib/light_push/index.js.map +1 -1
- package/dist/lib/light_push/push_rpc.d.ts +1 -1
- package/dist/lib/light_push/push_rpc.js +3 -3
- package/dist/lib/message/version_0.d.ts +13 -13
- package/dist/lib/message/version_0.js +21 -18
- package/dist/lib/message/version_0.js.map +1 -1
- package/dist/lib/predefined_bootstrap_nodes.js +6 -6
- package/dist/lib/store/history_rpc.d.ts +1 -1
- package/dist/lib/store/history_rpc.js +4 -4
- package/dist/lib/store/index.d.ts +1 -6
- package/dist/lib/store/index.js +91 -47
- package/dist/lib/store/index.js.map +1 -1
- package/dist/lib/stream_manager.d.ts +15 -0
- package/dist/lib/stream_manager.js +56 -0
- package/dist/lib/stream_manager.js.map +1 -0
- package/dist/lib/to_proto_message.js +1 -1
- package/dist/lib/wait_for_remote_peer.d.ts +2 -2
- package/dist/lib/wait_for_remote_peer.js +10 -7
- package/dist/lib/wait_for_remote_peer.js.map +1 -1
- package/dist/lib/waku.d.ts +6 -5
- package/dist/lib/waku.js +6 -4
- package/dist/lib/waku.js.map +1 -1
- package/package.json +17 -33
- package/src/index.ts +6 -9
- package/src/lib/base_protocol.ts +49 -18
- package/src/lib/connection_manager.ts +132 -41
- package/src/lib/filter/filter_rpc.ts +4 -4
- package/src/lib/filter/index.ts +53 -41
- package/src/lib/filterPeers.ts +43 -0
- package/src/lib/keep_alive_manager.ts +79 -22
- package/src/lib/light_push/index.ts +132 -51
- package/src/lib/light_push/push_rpc.ts +3 -3
- package/src/lib/message/version_0.ts +27 -15
- package/src/lib/predefined_bootstrap_nodes.ts +7 -7
- package/src/lib/store/history_rpc.ts +6 -6
- package/src/lib/store/index.ts +121 -63
- package/src/lib/stream_manager.ts +72 -0
- package/src/lib/to_proto_message.ts +1 -1
- package/src/lib/wait_for_remote_peer.ts +11 -8
- package/src/lib/waku.ts +7 -4
- package/dist/lib/push_or_init_map.d.ts +0 -1
- package/dist/lib/push_or_init_map.js +0 -9
- package/dist/lib/push_or_init_map.js.map +0 -1
- package/src/lib/push_or_init_map.ts +0 -13
@@ -0,0 +1 @@
|
|
1
|
+
{"program":{"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../node_modules/multiformats/dist/types/src/bases/interface.d.ts","../../../node_modules/multiformats/dist/types/src/block/interface.d.ts","../../../node_modules/multiformats/dist/types/src/hashes/interface.d.ts","../../../node_modules/multiformats/dist/types/src/link/interface.d.ts","../../../node_modules/multiformats/dist/types/src/cid.d.ts","../../../node_modules/@libp2p/interface/dist/src/peer-id/index.d.ts","../../../node_modules/@multiformats/multiaddr/dist/src/protocols-table.d.ts","../../../node_modules/@multiformats/multiaddr/dist/src/filter/multiaddr-filter.d.ts","../../../node_modules/@multiformats/multiaddr/dist/src/index.d.ts","../../../node_modules/@libp2p/interface/dist/src/peer-info/index.d.ts","../../../node_modules/@libp2p/interface/dist/src/content-routing/index.d.ts","../../../node_modules/@libp2p/interface/dist/src/events.d.ts","../../../node_modules/@libp2p/interface/dist/src/keys/index.d.ts","../../../node_modules/@libp2p/interface/dist/src/keychain/index.d.ts","../../../node_modules/@libp2p/interface/dist/src/metrics/index.d.ts","../../../node_modules/@libp2p/interface/dist/src/peer-routing/index.d.ts","../../../node_modules/@libp2p/interface/dist/src/peer-store/index.d.ts","../../../node_modules/@libp2p/interface/dist/src/startable.d.ts","../../../node_modules/@libp2p/interface/dist/src/stream-handler/index.d.ts","../../../node_modules/@libp2p/interface/dist/src/topology/index.d.ts","../../../node_modules/it-stream-types/dist/src/index.d.ts","../../../node_modules/uint8arraylist/dist/src/index.d.ts","../../../node_modules/@libp2p/interface/dist/src/stream-muxer/index.d.ts","../../../node_modules/@libp2p/interface/dist/src/transport/index.d.ts","../../../node_modules/@libp2p/interface/dist/src/index.d.ts","../../../node_modules/@libp2p/interface/dist/src/connection/index.d.ts","../../interfaces/dist/enr.d.ts","../../interfaces/dist/misc.d.ts","../../interfaces/dist/message.d.ts","../../../node_modules/@libp2p/interface-internal/dist/src/transport-manager/index.d.ts","../../../node_modules/libp2p/dist/src/address-manager/index.d.ts","../../../node_modules/@libp2p/interface/dist/src/connection-gater/index.d.ts","../../../node_modules/@libp2p/interface-internal/dist/src/address-manager/index.d.ts","../../../node_modules/@libp2p/peer-collections/dist/src/map.d.ts","../../../node_modules/@libp2p/peer-collections/dist/src/set.d.ts","../../../node_modules/@libp2p/peer-collections/dist/src/list.d.ts","../../../node_modules/@libp2p/peer-collections/dist/src/index.d.ts","../../../node_modules/@libp2p/interface-internal/dist/src/connection-manager/index.d.ts","../../../node_modules/@libp2p/interface-internal/dist/src/registrar/index.d.ts","../../../node_modules/multiformats/dist/types/src/codecs/interface.d.ts","../../../node_modules/multiformats/dist/types/src/interface.d.ts","../../../node_modules/multiformats/dist/types/src/hashes/digest.d.ts","../../../node_modules/multiformats/dist/types/src/hashes/hasher.d.ts","../../../node_modules/multiformats/dist/types/src/varint.d.ts","../../../node_modules/multiformats/dist/types/src/bytes.d.ts","../../../node_modules/multiformats/dist/types/src/index.d.ts","../../../node_modules/multiformats/dist/types/src/codecs/raw.d.ts","../../../node_modules/multiformats/dist/types/src/codecs/json.d.ts","../../../node_modules/multiformats/dist/types/src/bases/base.d.ts","../../../node_modules/multiformats/dist/types/src/basics.d.ts","../../../node_modules/uint8arrays/dist/src/util/bases.d.ts","../../../node_modules/uint8arrays/dist/src/to-string.d.ts","../../../node_modules/interface-datastore/dist/src/key.d.ts","../../../node_modules/interface-store/dist/src/index.d.ts","../../../node_modules/interface-datastore/dist/src/index.d.ts","../../../node_modules/libp2p/dist/src/components.d.ts","../../../node_modules/libp2p/dist/src/connection-manager/auto-dial.d.ts","../../../node_modules/libp2p/dist/src/connection-manager/connection-pruner.d.ts","../../../node_modules/eventemitter3/index.d.ts","../../../node_modules/p-queue/dist/queue.d.ts","../../../node_modules/p-queue/dist/options.d.ts","../../../node_modules/p-queue/dist/priority-queue.d.ts","../../../node_modules/p-queue/dist/index.d.ts","../../../node_modules/libp2p/dist/src/connection-manager/dial-queue.d.ts","../../../node_modules/libp2p/dist/src/connection-manager/index.d.ts","../../../node_modules/libp2p/dist/src/transport-manager.d.ts","../../../node_modules/@libp2p/interface/dist/src/connection-encrypter/index.d.ts","../../../node_modules/@libp2p/interface/dist/src/peer-discovery/index.d.ts","../../../node_modules/@libp2p/keychain/dist/src/index.d.ts","../../../node_modules/@libp2p/peer-store/dist/src/index.d.ts","../../../node_modules/libp2p/dist/src/index.d.ts","../../interfaces/dist/protocols.d.ts","../../interfaces/dist/receiver.d.ts","../../interfaces/dist/filter.d.ts","../../interfaces/dist/sender.d.ts","../../interfaces/dist/light_push.d.ts","../../interfaces/dist/peer_exchange.d.ts","../../../node_modules/@libp2p/logger/dist/src/index.d.ts","../../../node_modules/protobufjs/index.d.ts","../../../node_modules/@chainsafe/libp2p-gossipsub/dist/src/message/rpc.d.ts","../../../node_modules/it-pushable/dist/src/index.d.ts","../../../node_modules/@libp2p/interface/dist/src/pubsub/index.d.ts","../../../node_modules/@chainsafe/libp2p-gossipsub/dist/src/types.d.ts","../../../node_modules/@chainsafe/libp2p-gossipsub/dist/src/message-cache.d.ts","../../../node_modules/@chainsafe/libp2p-gossipsub/dist/src/score/peer-score-params.d.ts","../../../node_modules/@chainsafe/libp2p-gossipsub/dist/src/score/peer-score-thresholds.d.ts","../../../node_modules/@chainsafe/libp2p-gossipsub/dist/src/score/peer-stats.d.ts","../../../node_modules/@chainsafe/libp2p-gossipsub/dist/src/score/compute-score.d.ts","../../../node_modules/denque/index.d.ts","../../../node_modules/@chainsafe/libp2p-gossipsub/dist/src/score/message-deliveries.d.ts","../../../node_modules/@chainsafe/libp2p-gossipsub/dist/src/metrics.d.ts","../../../node_modules/@chainsafe/libp2p-gossipsub/dist/src/utils/set.d.ts","../../../node_modules/@chainsafe/libp2p-gossipsub/dist/src/score/peer-score.d.ts","../../../node_modules/@chainsafe/libp2p-gossipsub/dist/src/score/index.d.ts","../../../node_modules/@chainsafe/libp2p-gossipsub/dist/src/tracer.d.ts","../../../node_modules/@chainsafe/libp2p-gossipsub/dist/src/config.d.ts","../../../node_modules/@chainsafe/libp2p-gossipsub/dist/src/stream.d.ts","../../../node_modules/protobufjs/minimal.d.ts","../../../node_modules/@chainsafe/libp2p-gossipsub/dist/src/message/decodeRpc.ts","../../../node_modules/@chainsafe/libp2p-gossipsub/dist/src/index.d.ts","../../interfaces/dist/relay.d.ts","../../interfaces/dist/store.d.ts","../../../node_modules/@libp2p/interfaces/dist/src/events.d.ts","../../interfaces/dist/connection_manager.d.ts","../../../node_modules/protons-runtime/dist/src/codec.d.ts","../../../node_modules/protons-runtime/dist/src/decode.d.ts","../../../node_modules/protons-runtime/dist/src/encode.d.ts","../../../node_modules/protons-runtime/dist/src/codecs/enum.d.ts","../../../node_modules/protons-runtime/dist/src/codecs/message.d.ts","../../../node_modules/protons-runtime/dist/src/utils.d.ts","../../../node_modules/protons-runtime/dist/src/index.d.ts","../../../node_modules/libp2p/dist/src/identify/pb/message.d.ts","../../../node_modules/libp2p/dist/src/identify/index.d.ts","../../../node_modules/libp2p/dist/src/ping/index.d.ts","../../interfaces/dist/libp2p.d.ts","../../interfaces/dist/waku.d.ts","../../interfaces/dist/keep_alive_manager.d.ts","../../interfaces/dist/dns_discovery.d.ts","../../interfaces/dist/index.d.ts","../../../node_modules/@types/ms/index.d.ts","../../../node_modules/@types/debug/index.d.ts","../../enr/dist/constants.d.ts","../../enr/dist/raw_enr.d.ts","../../enr/dist/enr.d.ts","../../enr/dist/creator.d.ts","../../enr/dist/decoder.d.ts","../../enr/dist/peer_id.d.ts","../../enr/dist/waku2_codec.d.ts","../../enr/dist/crypto.d.ts","../../enr/dist/relay_shard_codec.d.ts","../../enr/dist/index.d.ts","../../utils/dist/common/is_defined.d.ts","../../utils/dist/common/random_subset.d.ts","../../utils/dist/common/group_by.d.ts","../../utils/dist/common/to_async_iterator.d.ts","../../utils/dist/common/is_size_valid.d.ts","../../utils/dist/common/sharding.d.ts","../../utils/dist/common/push_or_init_map.d.ts","../../utils/dist/common/index.d.ts","../../utils/dist/index.d.ts","../../utils/dist/bytes/index.d.ts","../../proto/dist/lib/message.d.ts","../../proto/dist/lib/filter.d.ts","../../proto/dist/lib/topic_only_message.d.ts","../../proto/dist/lib/filter_v2.d.ts","../../proto/dist/lib/light_push.d.ts","../../proto/dist/lib/store.d.ts","../../proto/dist/lib/peer_exchange.d.ts","../../proto/dist/index.d.ts","../src/lib/constants.ts","../src/lib/message/version_0.ts","../src/lib/keep_alive_manager.ts","../src/lib/connection_manager.ts","../src/lib/waku.ts","../src/lib/message/index.ts","../../../node_modules/it-all/dist/src/index.d.ts","../../../node_modules/it-length-prefixed/dist/src/encode.d.ts","../../../node_modules/it-reader/dist/src/index.d.ts","../../../node_modules/it-length-prefixed/dist/src/decode.d.ts","../../../node_modules/it-length-prefixed/dist/src/index.d.ts","../../../node_modules/it-pipe/dist/src/index.d.ts","../../utils/dist/libp2p/index.d.ts","../src/lib/filterPeers.ts","../src/lib/stream_manager.ts","../src/lib/base_protocol.ts","../../../node_modules/@types/uuid/index.d.ts","../../../node_modules/@types/uuid/index.d.mts","../src/lib/filter/filter_rpc.ts","../src/lib/filter/index.ts","../src/lib/light_push/push_rpc.ts","../src/lib/light_push/index.ts","../../../node_modules/@noble/hashes/utils.d.ts","../../../node_modules/@noble/hashes/_sha2.d.ts","../../../node_modules/@noble/hashes/sha256.d.ts","../src/lib/to_proto_message.ts","../src/lib/store/history_rpc.ts","../src/lib/store/index.ts","../../../node_modules/p-timeout/index.d.ts","../../../node_modules/p-event/index.d.ts","../src/lib/wait_for_remote_peer.ts","../src/index.ts","../src/lib/predefined_bootstrap_nodes.ts","../../../node_modules/@types/node/assert.d.ts","../../../node_modules/@types/node/assert/strict.d.ts","../../../node_modules/@types/node/globals.d.ts","../../../node_modules/@types/node/async_hooks.d.ts","../../../node_modules/@types/node/buffer.d.ts","../../../node_modules/@types/node/child_process.d.ts","../../../node_modules/@types/node/cluster.d.ts","../../../node_modules/@types/node/console.d.ts","../../../node_modules/@types/node/constants.d.ts","../../../node_modules/@types/node/crypto.d.ts","../../../node_modules/@types/node/dgram.d.ts","../../../node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/@types/node/dns.d.ts","../../../node_modules/@types/node/dns/promises.d.ts","../../../node_modules/@types/node/domain.d.ts","../../../node_modules/@types/node/dom-events.d.ts","../../../node_modules/@types/node/events.d.ts","../../../node_modules/@types/node/fs.d.ts","../../../node_modules/@types/node/fs/promises.d.ts","../../../node_modules/@types/node/http.d.ts","../../../node_modules/@types/node/http2.d.ts","../../../node_modules/@types/node/https.d.ts","../../../node_modules/@types/node/inspector.d.ts","../../../node_modules/@types/node/module.d.ts","../../../node_modules/@types/node/net.d.ts","../../../node_modules/@types/node/os.d.ts","../../../node_modules/@types/node/path.d.ts","../../../node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/@types/node/process.d.ts","../../../node_modules/@types/node/punycode.d.ts","../../../node_modules/@types/node/querystring.d.ts","../../../node_modules/@types/node/readline.d.ts","../../../node_modules/@types/node/readline/promises.d.ts","../../../node_modules/@types/node/repl.d.ts","../../../node_modules/@types/node/stream.d.ts","../../../node_modules/@types/node/stream/promises.d.ts","../../../node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/@types/node/stream/web.d.ts","../../../node_modules/@types/node/string_decoder.d.ts","../../../node_modules/@types/node/test.d.ts","../../../node_modules/@types/node/timers.d.ts","../../../node_modules/@types/node/timers/promises.d.ts","../../../node_modules/@types/node/tls.d.ts","../../../node_modules/@types/node/trace_events.d.ts","../../../node_modules/@types/node/tty.d.ts","../../../node_modules/@types/node/url.d.ts","../../../node_modules/@types/node/util.d.ts","../../../node_modules/@types/node/v8.d.ts","../../../node_modules/@types/node/vm.d.ts","../../../node_modules/@types/node/wasi.d.ts","../../../node_modules/@types/node/worker_threads.d.ts","../../../node_modules/@types/node/zlib.d.ts","../../../node_modules/@types/node/globals.global.d.ts","../../../node_modules/@types/node/index.d.ts","../../../node_modules/@types/mocha/index.d.ts"],"fileInfos":[{"version":"2ac9cdcfb8f8875c18d14ec5796a8b029c426f73ad6dc3ffb580c228b58d1c44","affectsGlobalScope":true},"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","dc48272d7c333ccf58034c0026162576b7d50ea0e69c3b9292f803fc20720fd5","9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","5514e54f17d6d74ecefedc73c504eadffdeda79c7ea205cf9febead32d45c4bc",{"version":"0075fa5ceda385bcdf3488e37786b5a33be730e8bc4aa3cf1e78c63891752ce8","affectsGlobalScope":true},{"version":"f296963760430fb65b4e5d91f0ed770a91c6e77455bacf8fa23a1501654ede0e","affectsGlobalScope":true},{"version":"09226e53d1cfda217317074a97724da3e71e2c545e18774484b61562afc53cd2","affectsGlobalScope":true},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true},{"version":"8b41361862022eb72fcc8a7f34680ac842aca802cf4bc1f915e8c620c9ce4331","affectsGlobalScope":true},{"version":"f7bd636ae3a4623c503359ada74510c4005df5b36de7f23e1db8a5c543fd176b","affectsGlobalScope":true},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true},{"version":"0c20f4d2358eb679e4ae8a4432bdd96c857a2960fd6800b21ec4008ec59d60ea","affectsGlobalScope":true},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true},{"version":"82d0d8e269b9eeac02c3bd1c9e884e85d483fcb2cd168bccd6bc54df663da031","affectsGlobalScope":true},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true},{"version":"b8deab98702588840be73d67f02412a2d45a417a3c097b2e96f7f3a42ac483d1","affectsGlobalScope":true},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true},{"version":"376d554d042fb409cb55b5cbaf0b2b4b7e669619493c5d18d5fa8bd67273f82a","affectsGlobalScope":true},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true},{"version":"c4138a3dd7cd6cf1f363ca0f905554e8d81b45844feea17786cdf1626cb8ea06","affectsGlobalScope":true},{"version":"6ff3e2452b055d8f0ec026511c6582b55d935675af67cdb67dd1dc671e8065df","affectsGlobalScope":true},{"version":"03de17b810f426a2f47396b0b99b53a82c1b60e9cba7a7edda47f9bb077882f4","affectsGlobalScope":true},{"version":"8184c6ddf48f0c98429326b428478ecc6143c27f79b79e85740f17e6feb090f1","affectsGlobalScope":true},{"version":"261c4d2cf86ac5a89ad3fb3fafed74cbb6f2f7c1d139b0540933df567d64a6ca","affectsGlobalScope":true},{"version":"6af1425e9973f4924fca986636ac19a0cf9909a7e0d9d3009c349e6244e957b6","affectsGlobalScope":true},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true},{"version":"15a630d6817718a2ddd7088c4f83e4673fde19fa992d2eae2cf51132a302a5d3","affectsGlobalScope":true},{"version":"b7e9f95a7387e3f66be0ed6db43600c49cec33a3900437ce2fd350d9b7cb16f2","affectsGlobalScope":true},{"version":"01e0ee7e1f661acedb08b51f8a9b7d7f959e9cdb6441360f06522cc3aea1bf2e","affectsGlobalScope":true},{"version":"ac17a97f816d53d9dd79b0d235e1c0ed54a8cc6a0677e9a3d61efb480b2a3e4e","affectsGlobalScope":true},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true},{"version":"ec0104fee478075cb5171e5f4e3f23add8e02d845ae0165bfa3f1099241fa2aa","affectsGlobalScope":true},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true},{"version":"9cc66b0513ad41cb5f5372cca86ef83a0d37d1c1017580b7dace3ea5661836df","affectsGlobalScope":true},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true},{"version":"709efdae0cb5df5f49376cde61daacc95cdd44ae4671da13a540da5088bf3f30","affectsGlobalScope":true},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true},{"version":"bc496ef4377553e461efcf7cc5a5a57cf59f9962aea06b5e722d54a36bf66ea1","affectsGlobalScope":true},{"version":"038a2f66a34ee7a9c2fbc3584c8ab43dff2995f8c68e3f566f4c300d2175e31e","affectsGlobalScope":true},{"version":"4fa6ed14e98aa80b91f61b9805c653ee82af3502dc21c9da5268d3857772ca05","affectsGlobalScope":true},{"version":"f5c92f2c27b06c1a41b88f6db8299205aee52c2a2943f7ed29bd585977f254e8","affectsGlobalScope":true},{"version":"930b0e15811f84e203d3c23508674d5ded88266df4b10abee7b31b2ac77632d2","affectsGlobalScope":true},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true},{"version":"b9ea5778ff8b50d7c04c9890170db34c26a5358cccba36844fe319f50a43a61a","affectsGlobalScope":true},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true},{"version":"50d53ccd31f6667aff66e3d62adf948879a3a16f05d89882d1188084ee415bbc","affectsGlobalScope":true},{"version":"307c8b7ebbd7f23a92b73a4c6c0a697beca05b06b036c23a34553e5fe65e4fdc","affectsGlobalScope":true},{"version":"f35a831e4f0fe3b3697f4a0fe0e3caa7624c92b78afbecaf142c0f93abfaf379","affectsGlobalScope":true},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true},"683889752b7c95fffd073b82ea76d36b3fe548ef3bb9887eb903676eabd676ff","6bb42cbe99c20c8a6f816ce876524a0312dc4f703dfd8d9aa5fd8810b35d31e4","f196d5ed4194259ffb797a34001a5edb7a165cd110dc3e4d8f03f11e3531fe9b","869e21e461b24bb47689e264cec456db0a1c1462e7100c738be7688071d690bf","671efcb4cb21897b43dec53d0218afcac3d1e13c7d50158b0c1a0b300acdb69e","a884051a029dc34c400dc1dbad39a878935d37ebbea62d357d17b25f0076b578","5212dd78d1d63ab33332c8846a0ea5ce248159e74033cde16de48373036b4704","d71577e78c7a4257074aaf82f595724175210c89e8b467ef82f949a6cbd891bc","7bc7a347a64a3502c300d5a0adb10ec871ae3ad4f118c52529f624769b5f8e6f","2cd3b80c4762701c0faffcfaa6f9ba62ab7142260eb2de1b9d1c16f79279fe98","7cd8af5d325bceedc698f43a6303839cedfb01109c2b9a9a711782aa69eea7ae","2aa7c0830c012225c929a525fe2c37d2e5e73ae064f03ee20b8804feb5bb068b","87725787eb3a35c26ad48a9e9eeaf3b17270612ebaef5259442501b71ff56dee","1c47fd9df081bbc5ee6ec531ea1763613438b8379a3b21d826089d88c37fd7d3","1e4448f4c023c725aa7b44c3d09c84595cff1ba9e2e256311b4500df57573e35","b64e89450fb83cf7e8e32eb5ffdf7960bd71e40047e0818c2ad8b0aad5ac758a","1667ee69895dc51300d4f15e584729b758fcf2be4c378f901533c992024af7c8","d6fd2b60c72d94f260741967579d6ffa20d7585ad53282f5d83623761df36a38","85786f052b5dcd0b36564b657a9aea3e80f1fd0e76e4606a4400ec21928892c1","b4b0b688d26d1ae58fc922ae28849dd2a390f6fba8c85189753c0cd5f313cdae","c84146dbc9d2e5f43d2cbf15485a4eabf90219dbb66c0d481f20f12d3851bffc","176f19f35d1cfa16aa7e3d7a2cf36c01431d256901163b8e9a3e628b315bbb0d","81434e23e4fd973c225f20c160a7e129c98edaaaef3a3c1458ffc70647009516","85c2bb8c647a51021635c0847186d8cdd97bcc5b0973056c900fabb138e109aa","3e73bdc7b31ad8c6e2f34567ce93b43ac7e2a244249b070bc541811f0ec99d5c","b41a3bfc6e2c39ba7a81295965e85f6c5bca0deff2451dff1c2266070d512396","26588688d35614421598ceaa1cee9ffcd94de302df9c6486a6fe6d955f432fe6","dbd6959b739551aca3c6f93f51647a13ac09111cd6d42b87ccc6d6dcc8e4b0d9","ba1e38228afae1ccd785bde979bae278af656f4f3da0e6f6f0170c4ebf0a6757","bb67aacb028d577b5cd05f5a5571d5bb673438f7982fbb014914c027eebb41c7","c7a4bc5b52a0eaf5d10f23c9b99028b92049586bcc43e5d62c50d4f1c5d6a4e2","d395a624935584352acd2b80c9341aed77bfe3240f7f4f4d154cb9973f9e7ec6","6b6be2a5e228e84df3e06ec8255df6cfeaea8b56c77f983a18f7412aa3dd8919","83a1426ac1a9cf144141dfe10d71a68629623a7c28245c9ca0e0352bead501fd","2726c0a6a4a87fad11e6846e6b0b40b8924fbe66340adc512093c4273bc53e4e","c888daaa99fdf6c5712d98605fdcf21cbbaab756a629661a44cac44ede464d37","206bab3a2affada92f8eb6ba8b90411cfdb572dae254e27d9fad61171d71960b","4955c08d2af1f4fdeaa32a3f52b51853444269391fdc4e88874df9855d499593","def82d7f3ae543845879a906469de52e42f816197603751382805c572d0de3f4","5b3714bd84ba057f1be3beb9cf273d3c718376ac9b202e16b0fffe125325a095","557b8c7481296f4b7ed362320f3bbb40bb87404edf880c81224f365a8d1e17f3","467a7c09abfde00a7fc41d06c1c599f01e944c9f4948d38a0bde82b766a7e364","7697d44896d7082a0195b088b1a5c49bb70aea87721448982bee34720cfa73f4","77c738b0671d324f6cb2c7c1d7dfc0282a5836c67af55c9ba6df315c62207f57","f2dc47a6b115cd100153d2aaa3dbec094e7a55c5e471c9df8cf7fd651925d63f","2d57b5c1d1ef4cf78480539c0e0650af78ccf387d95f0585b12dbd658691a30f","88de5467cd5e4c2c1384629806d56ac1215657bddf39ef9f60a0e05beee2b131","ff5820394809bfc32a7e4586ff11b3c07327a0f4c756709aef92f1cd73d6da48","bfe2af20f3ff0579331661ef4c5d2597e0c31a7a0d760e41eaff0502bf064c4d","f52a0e53f79d7fd1c1c55a3cbda59499d4cce75f3188969024cdc286b29ad3ea","e2dd36a524ea5b13de1ed104ede9cea79696588175c1df1940d6a29113a4aee0","a878d4c7237a7af50e96534295fcf723134d70cbb1e9bfd8365266b912aee6ec","8970ab047d89c71edf9973609dd62f61bb366abeabbff36a1200103b6c1c605b","36d756189d9295e3a964e5cd45cb8ac965d5d2ada53ed848e08608426c146d69","8bdb5c16e8b9ba625ec08d8189879a6fb47b2c3c458a5d43ebd53a8763b5712e","2ea008f3c6f799004f9d9c9dec4b868a4534159d7d586f797720f50381f49727","9ce0498518bc48d7e8f676452f6a8685c38393c90fac0df4befb58108a1cddda","a11c8babe419eaf805939cfe03e779a42cf6949bac6222ac5ef40da12f95de47","27679e96d1bd38c5938178aaf4abe8627493090b63d6bae2ce8436e6a87ebe4d","a77fbecee25688f568e18b43f8f54195d6c278a2a9a687ada5ab3d2f726524eb","e29f2b3a93ca3392fe29fa8e7b93985e854b44fe28e2b5c113f08296095bd6b7","d27956c8b392088a06d882e1edb58aab4d5cf5ab1229b73f99329ab21f352147","d643518d0b08b3d8d6e7f1fa884bca57ef95caaa1c312abbd9e1d4ed0d51c370","ed031ba502b7c6e5728eedaad24affae08ff6c5cb7b7a693d0f2c2eb989d6475","679e508f8631ed26cc44de55c4fa1380fc6e1138ba25b6059400aecce3ea2885","7dd62326bcdcfa8c572b6fea5dc7621875ecbf5654036433fa1617898468cd69","5a6201b07effdabd694cb7ecce715f3684d51cdbf79fc6d465a689c083ee0e26","6dec7d4b8af96b4936fec4a7a76fc70b0481dac7b6fc89bd516ab79c21a2cf37","e99c8be1d9a00f8ed88e6ec776ceacd38154772319afbda4ff3d50a5a931c3c1","89448fbf5e1b96d1139cb6f278ff48e772263280889dacf10b8dcdab395452db","c1536bc8b25b55c40185804643a85e14e95496028e060301daa956a1b32eff89","1ebcc10fb1bde3a49d8dd9ae975b3f5a477098fa28fe7628858cff66ff4f5353","d1b7ead0191be98267d23d8c388150ca5a8df9b8b6aba0138e1b3e29537542ea","6e19eefe82bbaa01d499588f5405b3cb912f9dfcf253b2b209d60ef5d1f203f0","ff80f1684384d2efb41a5acec11d1d5d8e1fb7df9a0b63ed4077eb1d617c65d3","d3b20e1147265f4e5ff52cfd0984d929a215182fe1099e08e5a37de388708935","cfec24e56862ecb9f5e1d7ba0fd020e032984826ac0e36d954ac3b6cf4ff0e34","97030b9c029efb982a7ffa9cfbfa7dc80353f2d6c4f03676a7d04e3811f278b8","688c9dfd2b7114f5f01022abb5b179659f990d5af5924f185c2644ca99fe7b77","925a8770415572378b7b62dcd714e744b7ffed86de59bdbe1d25c68d9d1f7f51","5af3aae727d37689c2ba38173d6e68b3bca8fb0e2a1faa24a2e4eee45313970e","020b684c620461753ab74b5c1d36c39030045242305161443e89c5f4c6e02861","444fd02034dcb14575c1d65b39678654508784d34c4d66d6631b54bb6aa24d21","d4936633d5453e441ad5ab182efad46a0e1285fe5f9f5c2948cad3e71b7c2c23","7378c8a8eb3feec7b36b268d55794b625a77f1a3a4d075932425fd263aadd8c2","a1b60bd2328318dcbec30bdf529dad31a13315ff2df60c8bd71630c58a575b06","5d11703e2c5d4dbe00bbe79f3bc864d178cf8d6ebccc2d1448ea29e93654f029","92aabe63a01fe06680e7e49775d5a66524f4816d49490af8e82330e5aeff91fd","ed849d616865076f44a41c87f27698f7cdf230290c44bafc71d7c2bc6919b202","5c2862817a9073efcdc8608cb171525067c4a7afd82f2cd800bf208104085234","626a82c4bd44767fb7ab3709a2a7857d43b02b575e7d1678d3d24f889515983c","8f364fec0ef20506aa9cf00b5cd8b620c1c0389687b11a3a32b0b5d4716ad894","dcef5e69bfd584dd4640a8363792acac1f2328767a57f401ee6daa0f281c632a","763bb8df872cbb8783e29e19bd7a1dea0f88f7fd7398343af38be8509a65df82","c286b410193495d067668bcdbd13ea3f3a39001edff02edee248babf2652e563","ba1405da509cc84896a588978efc45400d4f9844ee738d750b59868b1ad1618a","129e03ea345ad2ec480758767408a6119112e1c1d6a454f83524c8590549a949","932cade1c5802123b5831f332ad8a6297f0f7d14d0ee04f5a774408f393e2200","1165dc3daad62e737ee6c7016470a4a9a4c751be9f47da494a718a0b428bfe49","1969a7f95125132dd513d57d726f4a645270bbe2c4036ae23231f6fe916b0bd3","15bb3762d68705887d7e68133edb2d7fc1dbd5b8e776f38ede3c2c55b17aaa75","f445ba7fc267ed04053607199f51c040e83ad711a5333624a7e4a69ddadc7666","2aa7c0830c012225c929a525fe2c37d2e5e73ae064f03ee20b8804feb5bb068b","a01358d6c8a2650d3a37b7ab46f094314334cc5ba8e3c95d1638f8eefb17def7","fd617cc8eec6f43227ab572160bac9d23c723073e83a9b100bd15c758eff34c2","ec3786b43d68955ecdb12ce679d3bc61b6b25c4d0ac5bcdaf50fa4a746189b98","3155e98b0df0c1523715e8a1c75c8a67c401aeb58d6eccf8bd89d5d775b8c1cf","fa82b7b22d9df87323e31e9e2ad75911028f3e544647fd212424b3c4452fee3f","90aa0b916eef195a17c3dbd621746f82ac7969ecc3dbf27c81ee4c68c5af7f25","7a1b62551b7284b81ff5d24c595f55a49056c6652667e2105abbca822418484d","6c56034a31bed2b7910da7ea2bf605b7cbfb1170134898e9ef31179553c034ee","38440c424965f82feb64288195ea06871aac94fe8d10c9a7983b54665ee033c8","82f8c6834bbcf2b6288f90b7f7cc5b0588518ae6897dabb3bf36df860c65730d","ba136467ca7a8153e8849ee2dad548a390651acd4a2238b861d2d3b3f47f197c","299fe7964755e788d57f92a1e2679da0db168ecfdf733dbf28e711de8b05d7c8","562a6317c991ab93bf4278bd30436b8c0fafb08a94dbc01e3997e9959429ca82","09ac11dc22366cb89d815665ca03e3388fe437b270592bce1c1ca7fe3ddaec5d","767e616fb07287dfce56cef40cd2da2d95c1ff7da6766a01d3db2727a48b480e","813346dbba15be1455e67c92608bcaac00258fbaca1cecf48c8965e5d9a14672","6a9c5127096b35264eb7cd21b2417bfc1d42cceca9ba4ce2bb0c3410b7816042","93b7325b49dfbf613d940ed0e471216657b2d77459dac34f1b5b1678f08f884c","02745a73c954228b9ee7fdb90451051e3f93a14f4a20ec3190113b37d101a021","5c0a4e37b766b3ad2d05fe696b04d88423e336fa001735a59afa355f8ceb39c2","f6689ea52bc64d3b0fee3a8624a304db7f124406baba44bce0c5669cd8575201","e3ae1700b5b7086831c804294a1b893389b8f5f0bf491ef38701cc2236f6273e","8a5b3464a391ec690d3bf48f2caf432009ecfbe8a1947bca52ca500124c3d5b9","be93ed5629c63dfca6bf89bdbe4f372a9b212914a0dc76629548c418657b83ce","4179c29964885be3f24fd7dd3d7848fa36a4f2db2d619d6629fc57cb2d485ab9","de6928bfa2e865593212ca1b31d36e8243f17fb5a9c3110d36017e0485d77e37","4b54f90cffb36f4bc8175ed414995b6432279d6fe9c9dccb704b8472bd7d88b4","59d1ffa4b0254544727f3e6c2f1176147cbebad82052ec9816865691d4f8de59","d84450725701131933730844923a4974de4cfe0f6e1fe8d3a74e132e292b44c7","433a8fabb08be4997b99eee7863a2362b52c0aca1fcb54330fbf6567a2c92ab0","a4ae79da4d1bb7fb6196294897f1f78a70c8213d2683f750246deab0527511d2","0bbcaafb46edeaf8a72ba969c070fbe9d98459b7b3a17b8c99f79cab49121032","5e5e614218c712e060cb224f2e9a3f82f524eaec13282ce149e138a3698a5a74","1900a6a7f39f1dfb9ca53d0795508bee2f48d0bb22880406e0519f3862de15bd","e8423fe31351f1ce358798b0e0d64e7b0b3396f9f8ef2cfb5713fa3b7d9020f2","720e7ddd9b443dfcbe5bf41c38db0b5f91230de73202d3fdc46bc430ecfb11dd","a107b36cc610723a7e1db97c654b188a050dcd64d9707c2b14985396304b8531","f98f7fd5c208374f072a67a46306ab9b3f914554b4ebb673fb805e13a4119b6c","2a973e17f3c28a674fa6654e80b7749c975420d2782e64fa67dc805babefe15b","9f9ee9d830b8764029781831e21886a7871be7181c16eab0237e00f1eb53478a","e7bde6aa372dd8c2db4ebc169c84825e1ebb8975081fcc5dbf06cc4b21f061a5","92f276e1b281bf31d2574b580dea905c32ccefae5238c0bf7a20da4a0f30056b","8234650c842a98e61b5df25903a7f5fc3717ed238c40d665ebea2605cda1f6d1","122062832068d2a685dbb819b8e47006e3f8d1e8bb28a2da4d62e7dbc8a12def","a3a2b8ee17d847ebeb6a91db668bdafadebd742842964025fdd6392ebc204517","239ad1733a8904924dd444b015bace670f84573efa4208af0f620d0b2dd71bbc",{"version":"ae86883c07ebae36ce5858e9bf8e39263cc3a028115d0f977a5dabbc76e8f209","signature":"1ff1de1b5f53a39cbc42e86076b55dcf523d98f2b8a34765869cd2cd76483edf"},{"version":"b25eb482752d6719d2607cb0889c658c38fc066377c249023e56aa3d78a273f6","signature":"69f070b9906061a75207944d53fa4c113efcda06ef42f11f3232a87d72104a04"},{"version":"4a58307ed042c1d93ed9100c73e02c0ed7ccf793150e6d6224b6e931a6e2a96c","signature":"2e991b1fb8f607a7734ac5260de0bc806d8127be1cbdcdc640768ae513fdc1e7"},{"version":"e04d17822a32da2ebc3f1e63b811a566e62e104e6425775c11012a1351c474a0","signature":"dcdae4e735bc8202ebcde010cb77391010d32263f73049c7bc34c09ca5802ae0"},{"version":"b9f8eb3355f4c6d007fa2edc659ff6e6778ddd497f4575405929b0f0e171eab4","signature":"3d447a47e49846365d513ed8ce35b32b07afecc14060575f6d9ea6e699e148e2"},"910a668294831d3c13f52af7c41574e6ce7a0aa5c5b1b74e74741004d5eac010","bca831e5960bccdc9aed16a70f2b785f36343d3622132bdc568e0068bfa368d2","f30cfcfff28ee8f87563225b47239bb07b9b11edd09dda0ea6499b18cca1a30e","0edb8a97ead1fefd337458449050857e80740e31a3f76cffa656262f4e651a50","db8e4b47dd8c22634e3a326e5a5f60aa71a8ad4a0458fc0aadb6951f1c7cdc54","5b7a6d3f5c1b1d94d6cbc6c1e113588e20ae61d583d0d0cb5ec3fd92926d3749","56558ae167446acf230ea2cc072a835309a37ae63d286b484308afd8c504c2d6","12d358297a92c9fb7c44cdf46692e86aa0e628efc428b1bf2de89992991715e1",{"version":"d1698e16e25129ef89e7b956a4f79ebdf43d70452dd915b13d39cee72c099f7d","signature":"60df3bb7f708ee90c50416caf7983bd6d911914de022e05e8d2ff895bc29e83a"},{"version":"3d4fa516113247d5eef68df132e39825ef21c1310b427f1b70c6bfe0bc4b4079","signature":"dfa6d886f0c0890519f672e5b594fb8c99447890e4a00d3be7ee6f5cceec6068"},{"version":"1f280d384e1b6eeed80b6455e68a99ea0c137f841aec8913dfa7e07ae26dfa68","signature":"9c1c31fbf4d4326f7789f15c4e8838dba0ed93c783eebc3b8ecd9c43cb3fee76"},"f875e913ef24873eb2a469605402595f1c783070b52a98e53686b32c0f827f7f","27c7c17a5dfd59eedb5a17f17245612eda203b09acd148456a90e12cdbd73769",{"version":"e6353b0d7933ca5f37e505343eb667088d770ba514944fcdf7c727adab756baa","signature":"8262c5b27126522fba11441adf15cf857a28a91e26c2062ac418d40783834a9b"},{"version":"0ebe7a8a0da2616f800d876c30fbfe0d0a5016f02b64e8fadb005d440188c6dc","signature":"4a7534c365a5329a7eb0b1f67a22125bbd3ef08f29fba8c00d9f8c2ccaf3f8f4"},{"version":"b8235d2ea1fcbb617e8478d7e3aa1373b866f180be499e0f9fdf8b32aa839b61","signature":"66d8a86ea8328e01704b4e9095c2cfeb57635bf4efd7be9f6ab9113251f6c1d2"},{"version":"16c0d35961bf74789207a989a428e3ecb4b9829bdc023cc8e34eb8a905808393","signature":"201eae2acbc779e51b59c0a189728272c5c5ac8d07601ef3f498194ffd28f4c2"},"3c3ca314a2b01902ef19b499be6e052925a849f14e2d9185afb323df3d3a72b6","1e7146a407bf85762b80681cd4aa3b544000e30c9b24d04685dfa69f82a48fd9","a3c42863fed9b49c35144d60aa0b2865b5fede65ea0050a28f45381af6dae035",{"version":"38b263f589769c2da0595b3b098e0d05807a2e6a9bbba2cff3ca2fe695361afa","signature":"f6a794cabca4fa5c3ad3e8d2b18d2dc8fe941539f3780f151ba4650223af894c"},{"version":"a21e4d70f763770eff12d9896b35f4801aa28a51348384e14a9bca17fc975e85","signature":"6f7ba6cec1034c99652ec45321f98e08e507ce24abf3326f9927d730dcdac7de"},{"version":"ffc4890a4ff13a5167ec0163d268e2ea7932e693689f9ebd8db73d1e5accabff","signature":"7df0e16756ecb4898af0022f19a386c605225cfab7ec5fdf32a4fed42c3963e4"},"91764b36fe5e1c5d688f5f90eeea47703a059ab9a81bf80f7bbc9b04507b7bd3","115327b8e1f68c03004d841b83e332ed16b8f48af59ac00f38313887d7ec2920",{"version":"845d7879dd0288bd1a82a7086b68183909263acb12f547782d0c97421c76a20c","signature":"4039f632eda19b3d17291c755cf7e99e2614224e40048c8e027520ff6f79cdaa"},{"version":"c4d2d823da88f3dfa6b7f05c572aa5495ba3f704a94a9f8276ff658fd7776cd0","signature":"5a397dbd80d28df11d53e883237fdf29ea5cf1d4144da6e763b383742ded3ebe"},{"version":"bcb759d6aa008cad27d90ff2f73e0125dc2454e2c90955f42e6b0340af1ce3b0","signature":"551d60118e078f677307c5cd8f4c9a49f565dbb749d0801bba8335f984c2f103"},"587f13f1e8157bd8cec0adda0de4ef558bb8573daa9d518d1e2af38e87ecc91f","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"d32f90e6cf32e99c86009b5f79fa50bc750fe54e17137d9bb029c377a2822ee2","affectsGlobalScope":true},"33536b5951667cd5a54b4bea28d3d52aaca1844448258f1281d3843b89ac5895",{"version":"c81c51f43e343b6d89114b17341fb9d381c4ccbb25e0ee77532376052c801ba7","affectsGlobalScope":true},"3dd49afd822c82b63b3905a13e22240f34cf367aea4f4dd0e6564f4bddcb8370","57135ce61976a8b1dadd01bb412406d1805b90db6e8ecb726d0d78e0b5f76050",{"version":"49479e21a040c0177d1b1bc05a124c0383df7a08a0726ad4d9457619642e875a","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","f302f3a47d7758f67f2afc753b9375d6504dde05d2e6ecdb1df50abbb131fc89","93db4c949a785a3dbef7f5e08523be538e468c580dd276178b818e761b3b68cd","5b1c0a23f464f894e7c2b2b6c56df7b9afa60ed48c5345f8618d389a636b2108","be2b092f2765222757c6441b86c53a5ea8dfed47bbc43eab4c5fe37942c866b3","8e6b05abc98adba15e1ac78e137c64576c74002e301d682e66feb77a23907ab8","1ca735bb3d407b2af4fbee7665f3a0a83be52168c728cc209755060ba7ed67bd",{"version":"6b526a5ec4a401ca7c26cfe6a48e641d8f30af76673bad3b06a1b4504594a960","affectsGlobalScope":true},{"version":"6e335a70826a634c5a1a1fa36a2dacbf3712ef2be7a517540ae1de8a1e8ea4f6","affectsGlobalScope":true},"255eb00ff28266f9b35e1b73a19a4451542572b33dc0e78daa6d6e1d1d22f3bf","992e52cd58b975ff089613d4095a316d9c9b63466299f15c9b7cc0249d6d6908","1b0856424524be4d18e41b31506c9640c4786ee68fd9658abdbf27c856f70125","3122a3f1136508a27a229e0e4e2848299028300ffa11d0cdfe99df90c492fe20","42b40e40f2a358cda332456214fad311e1806a6abf3cebaaac72496e07556642","ad8848c289c0b633452e58179f46edccd14b5a0fe90ebce411f79ff040b803e0",{"version":"b748ed8ff77f2c330857f01f385e52f708448b6ff6424415ab0de749fd7bc664","affectsGlobalScope":true},"fe6dba0e8c69f2b244e3da38e53dd2cc9e51b2543e647e805396af73006613f7","5e2b91328a540a0933ab5c2203f4358918e6f0fe7505d22840a891a6117735f1","3abc3512fa04aa0230f59ea1019311fd8667bd935d28306311dccc8b17e79d5d",{"version":"5810080a0da989a944d3b691b7b479a4a13c75947fb538abb8070710baa5ccee","affectsGlobalScope":true},{"version":"72f4a812489dee501c41a085f174e1a843aa78e93dd2af0a6f9ed89f796565c8","affectsGlobalScope":true},"1349077576abb41f0e9c78ec30762ff75b710208aff77f5fdcc6a8c8ce6289dd","e2ce82603102b5c0563f59fb40314cc1ff95a4d521a66ad14146e130ea80d89c","a3e0395220255a350aa9c6d56f882bfcb5b85c19fddf5419ec822cf22246a26d","c27b01e8ddff5cd280711af5e13aecd9a3228d1c256ea797dd64f8fdec5f7df5","898840e876dfd21843db9f2aa6ae38ba2eab550eb780ff62b894b9fbfebfae6b","8904e5b670bbfc712dda607853de9227206e7dad93ac97109fe30875c5f12b78","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff","785e5be57d4f20f290a20e7b0c6263f6c57fd6e51283050756cef07d6d651c68","44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","164deb2409ac5f4da3cd139dbcee7f7d66753d90363a4d7e2db8d8874f272270",{"version":"a54ee34c2cc03ec4bbf0c9b10a08b9f909a21b3314f90a743de7b12b85867cef","affectsGlobalScope":true},{"version":"8a985c7d30aea82342d5017730b546bb2b734fe37a2684ca55d4734deb019d58","affectsGlobalScope":true},"ad08154d9602429522cac965a715fde27d421d69b24756c5d291877dda75353e","5bc85813bfcb6907cc3a960fec8734a29d7884e0e372515147720c5991b8bc22","812b25f798033c202baedf386a1ccc41f9191b122f089bffd10fdccce99fba11","993325544790073f77e945bee046d53988c0bc3ac5695c9cf8098166feb82661",{"version":"4d06f3abc2a6aae86f1be39e397372f74fb6e7964f594d645926b4a3419cc15d","affectsGlobalScope":true},{"version":"0e08c360c9b5961ecb0537b703e253842b3ded53151ee07024148219b61a8baf","affectsGlobalScope":true},"2ce2210032ccaff7710e2abf6a722e62c54960458e73e356b6a365c93ab6ca66","5ba5b760345053acdf5beb1a9048ff43a51373f3d87849963779c1711ea7cbcc","16a3080e885ed52d4017c902227a8d0d8daf723d062bec9e45627c6fdcd6699b",{"version":"d19e76b1210879a533e64d687e7c4aa605c7fecaa554fbb6b319d9ae9d0f5164","affectsGlobalScope":true},"1ca6858a0cbcd74d7db72d7b14c5360a928d1d16748a55ecfa6bfaff8b83071b",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"13e851ee5f3dad116583e14e9d3f4aaf231194bbb6f4b969dc7446ae98a3fa73",{"version":"677646e2620795c98a539fb12fb531f10331c217cef1492132b2518f894fa92d","affectsGlobalScope":true}],"root":[[208,213],[221,223],[226,229],[233,235],[238,240]],"options":{"alwaysStrict":true,"declaration":true,"esModuleInterop":true,"module":7,"noFallthroughCasesInSwitch":true,"noImplicitAny":true,"noImplicitReturns":true,"noImplicitThis":true,"noUnusedLocals":true,"noUnusedParameters":true,"outDir":"./","rootDir":"../src","skipLibCheck":true,"sourceMap":true,"strict":true,"strictFunctionTypes":true,"strictNullChecks":true,"strictPropertyInitialization":true,"target":9,"tsBuildInfoFile":"./.tsbuildinfo"},"fileIdsList":[[287],[64,70,75,96,97,136,138,140,141,142,149,152,153,154,155,157,287],[138,141,287],[138,156,287],[137,287],[138,140,141,144,287],[143,145,287],[143,144,151,287],[147,287],[141,143,145,146,148,149,150,287],[141,287],[80,84,287],[141,149,287],[64,67,71,138,140,287],[67,287],[64,67,83,84,95,287],[84,287],[67,82,84,287],[64,79,287],[64,67,84,287],[64,67,79,80,83,287],[63,68,83,287],[64,67,68,69,70,72,73,74,75,76,77,78,82,84,287],[59,64,71,287],[68,70,287],[61,63,287],[64,67,287],[64,68,83,287],[64,70,80,84,139,287],[79,80,83,84,287],[64,84,287],[67,70,81,83,84,287],[64,71,72,113,287],[92,93,94,287],[64,287],[64,67,70,75,83,113,287],[65,66,287],[230,287],[230,231,287],[178,287],[241,287],[244,287],[245,250,278,287],[246,257,258,265,275,286,287],[246,247,257,265,287],[248,287],[249,250,258,266,287],[250,275,283,287],[251,253,257,265,287],[252,287],[253,254,287],[257,287],[255,257,287],[257,258,259,275,286,287],[257,258,259,272,275,278,287],[287,291],[253,257,260,265,275,286,287],[257,258,260,261,265,275,283,286,287],[260,262,275,283,286,287],[241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293],[257,263,287],[264,286,287,291],[253,257,265,275,287],[266,287],[267,287],[244,268,287],[269,285,287,291],[270,287],[271,287],[257,272,273,287],[272,274,287,289],[245,257,275,276,277,278,287],[245,275,277,287],[275,276,287],[278,287],[279,287],[244,275,287],[257,281,282,287],[281,282,287],[250,265,275,283,287],[284,287],[265,285,287],[245,260,271,286,287],[250,287],[275,287,288],[264,287,289],[287,290],[245,250,257,259,268,275,286,287,289,291],[275,287,292],[224,287],[111,112,287],[110,287],[79,80,216,218,287],[79,80,218,287],[80,215,217,287],[79,287],[79,80,287],[64,67,70,75,83,88,287],[64,69,70,73,74,75,76,82,83,84,88,90,91,96,97,113,287],[70,75,76,83,96,287],[67,70,75,83,96,287],[64,67,73,75,83,84,88,90,121,287],[64,67,70,73,75,76,83,84,88,90,95,96,115,116,122,287],[64,70,75,83,91,96,97,170,287],[80,169,287],[64,69,73,74,81,82,83,84,89,90,113,114,123,124,125,126,127,128,287],[64,67,83,96,97,287],[67,70,73,76,82,83,84,88,91,287],[59,287],[104,105,106,107,287],[62,63,287],[62,287],[60,287],[98,287],[61,287],[61,100,287],[63,99,100,101,102,103,287],[59,60,61,62,98,287],[59,60,61,287],[236,287],[117,118,119,120,287],[118,287],[118,119,287],[169,287],[163,287],[163,169,287],[80,163,287],[163,164,165,166,167,168,287],[109,287],[104,108,287],[208,209,210,211,212,213,222,227,229,235,238,287],[64,75,83,84,177,220,221,222,287],[64,68,75,161,177,179,189,198,210,287],[207,225,287],[75,84,97,177,179,198,207,208,214,218,219,223,226,287],[75,177,287],[64,75,172,177,179,199,209,287],[64,80,84,177,179,198,207,208,214,218,219,223,228,287],[80,207,225,287],[209,287],[177,179,207,208,287],[198,287],[80,84,177,179,198,199,207,208,214,218,219,223,232,233,234,287],[75,83,84,177,179,220,287],[177,207,287],[83,177,179,237,287],[64,67,84,177,179,211,287],[64,177,182,287],[182,287],[64,67,68,177,181,287],[180,182,183,184,185,186,187,188,287],[67,177,287],[177,287],[64,75,161,287],[75,287],[64,67,68,287],[64,86,87,130,131,287],[85,86,87,130,131,132,133,134,135,159,160,162,173,174,175,176,287],[83,129,158,171,172,287],[130,133,287],[86,287],[87,287],[64,75,85,96,130,287],[64,75,83,86,87,129,287],[86,87,130,287],[86,131,133,141,158,287],[87,130,287],[64,67,84,130,132,134,159,160,162,173,287],[200,201,202,203,204,205,206,287],[190,191,192,193,194,195,196,287],[197,287],[64,75,84,287],[208,209,210,211,212,213,222,227,229,235,238],[64,75,83,84,177,222],[161,177],[207],[177],[75],[64,75,172,177],[177,207],[80,207],[177,234],[75,84,177],[64,67,84,177,211]],"referencedMap":[[154,1],[158,2],[142,3],[157,4],[138,5],[149,6],[146,7],[152,8],[148,9],[143,1],[144,1],[151,10],[145,11],[155,12],[153,13],[141,14],[150,1],[91,15],[96,16],[97,17],[88,18],[125,19],[90,20],[84,21],[69,22],[70,1],[83,23],[72,24],[71,1],[73,17],[126,25],[64,26],[68,27],[74,28],[75,27],[140,29],[76,1],[77,17],[81,30],[78,31],[82,32],[161,1],[127,33],[136,1],[95,34],[94,35],[92,35],[93,35],[128,36],[66,15],[67,37],[65,15],[231,38],[232,39],[230,1],[179,40],[295,1],[178,1],[241,41],[242,41],[244,42],[245,43],[246,44],[247,45],[248,46],[249,47],[250,48],[251,49],[252,50],[253,51],[254,51],[256,52],[255,53],[257,52],[258,54],[259,55],[243,56],[293,1],[260,57],[261,58],[262,59],[294,60],[263,61],[264,62],[265,63],[266,64],[267,65],[268,66],[269,67],[270,68],[271,69],[272,70],[273,70],[274,71],[275,72],[277,73],[276,74],[278,75],[279,76],[280,77],[281,78],[282,79],[283,80],[284,81],[285,82],[286,83],[287,84],[288,85],[289,86],[290,87],[291,88],[292,89],[225,90],[224,1],[147,1],[117,1],[113,91],[111,92],[112,1],[214,1],[217,93],[215,94],[218,95],[219,96],[139,1],[216,97],[79,1],[89,98],[114,99],[115,100],[116,101],[122,102],[123,103],[171,104],[170,105],[129,106],[172,107],[124,108],[107,109],[59,1],[108,110],[60,111],[103,1],[63,112],[98,113],[106,114],[105,114],[100,115],[101,116],[61,1],[104,117],[99,118],[62,119],[102,1],[237,120],[121,121],[119,122],[120,123],[118,1],[236,1],[137,1],[156,5],[163,124],[166,125],[167,126],[164,127],[165,125],[169,128],[168,124],[57,1],[58,1],[10,1],[12,1],[11,1],[2,1],[13,1],[14,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[3,1],[4,1],[21,1],[25,1],[22,1],[23,1],[24,1],[26,1],[27,1],[28,1],[5,1],[29,1],[30,1],[31,1],[32,1],[6,1],[36,1],[33,1],[34,1],[35,1],[37,1],[7,1],[38,1],[43,1],[44,1],[39,1],[40,1],[41,1],[42,1],[8,1],[48,1],[45,1],[46,1],[47,1],[49,1],[9,1],[50,1],[51,1],[52,1],[55,1],[53,1],[54,1],[1,1],[56,1],[80,1],[110,129],[109,130],[239,131],[223,132],[211,133],[208,1],[226,134],[227,135],[221,136],[210,137],[229,138],[228,139],[213,140],[209,141],[240,142],[234,139],[235,143],[222,144],[233,145],[238,146],[212,147],[180,1],[183,148],[187,1],[184,149],[182,150],[189,151],[185,35],[181,152],[188,153],[186,153],[162,154],[176,155],[85,156],[132,157],[177,158],[175,1],[173,159],[134,160],[87,161],[86,162],[135,163],[130,164],[131,165],[159,166],[133,167],[160,167],[174,168],[207,169],[201,105],[203,105],[204,105],[200,105],[206,105],[205,105],[202,105],[199,1],[192,1],[197,170],[190,1],[194,1],[196,1],[191,1],[195,153],[193,153],[198,171],[220,172]],"exportedModulesMap":[[154,1],[158,2],[142,3],[157,4],[138,5],[149,6],[146,7],[152,8],[148,9],[143,1],[144,1],[151,10],[145,11],[155,12],[153,13],[141,14],[150,1],[91,15],[96,16],[97,17],[88,18],[125,19],[90,20],[84,21],[69,22],[70,1],[83,23],[72,24],[71,1],[73,17],[126,25],[64,26],[68,27],[74,28],[75,27],[140,29],[76,1],[77,17],[81,30],[78,31],[82,32],[161,1],[127,33],[136,1],[95,34],[94,35],[92,35],[93,35],[128,36],[66,15],[67,37],[65,15],[231,38],[232,39],[230,1],[179,40],[295,1],[178,1],[241,41],[242,41],[244,42],[245,43],[246,44],[247,45],[248,46],[249,47],[250,48],[251,49],[252,50],[253,51],[254,51],[256,52],[255,53],[257,52],[258,54],[259,55],[243,56],[293,1],[260,57],[261,58],[262,59],[294,60],[263,61],[264,62],[265,63],[266,64],[267,65],[268,66],[269,67],[270,68],[271,69],[272,70],[273,70],[274,71],[275,72],[277,73],[276,74],[278,75],[279,76],[280,77],[281,78],[282,79],[283,80],[284,81],[285,82],[286,83],[287,84],[288,85],[289,86],[290,87],[291,88],[292,89],[225,90],[224,1],[147,1],[117,1],[113,91],[111,92],[112,1],[214,1],[217,93],[215,94],[218,95],[219,96],[139,1],[216,97],[79,1],[89,98],[114,99],[115,100],[116,101],[122,102],[123,103],[171,104],[170,105],[129,106],[172,107],[124,108],[107,109],[59,1],[108,110],[60,111],[103,1],[63,112],[98,113],[106,114],[105,114],[100,115],[101,116],[61,1],[104,117],[99,118],[62,119],[102,1],[237,120],[121,121],[119,122],[120,123],[118,1],[236,1],[137,1],[156,5],[163,124],[166,125],[167,126],[164,127],[165,125],[169,128],[168,124],[57,1],[58,1],[10,1],[12,1],[11,1],[2,1],[13,1],[14,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[3,1],[4,1],[21,1],[25,1],[22,1],[23,1],[24,1],[26,1],[27,1],[28,1],[5,1],[29,1],[30,1],[31,1],[32,1],[6,1],[36,1],[33,1],[34,1],[35,1],[37,1],[7,1],[38,1],[43,1],[44,1],[39,1],[40,1],[41,1],[42,1],[8,1],[48,1],[45,1],[46,1],[47,1],[49,1],[9,1],[50,1],[51,1],[52,1],[55,1],[53,1],[54,1],[1,1],[56,1],[80,1],[110,129],[109,130],[239,173],[223,174],[211,175],[226,176],[227,177],[221,178],[210,179],[229,180],[228,181],[213,140],[209,180],[234,181],[235,182],[222,183],[233,180],[238,177],[212,184],[180,1],[183,148],[187,1],[184,149],[182,150],[189,151],[185,35],[181,152],[188,153],[186,153],[162,154],[176,155],[85,156],[132,157],[177,158],[175,1],[173,159],[134,160],[87,161],[86,162],[135,163],[130,164],[131,165],[159,166],[133,167],[160,167],[174,168],[207,169],[201,105],[203,105],[204,105],[200,105],[206,105],[205,105],[202,105],[199,1],[192,1],[197,170],[190,1],[194,1],[196,1],[191,1],[195,153],[193,153],[198,171],[220,172]],"semanticDiagnosticsPerFile":[154,158,142,157,138,149,146,152,148,143,144,151,145,155,153,141,150,91,96,97,88,125,90,84,69,70,83,72,71,73,126,64,68,74,75,140,76,77,81,78,82,161,127,136,95,94,92,93,128,66,67,65,231,232,230,179,295,178,241,242,244,245,246,247,248,249,250,251,252,253,254,256,255,257,258,259,243,293,260,261,262,294,263,264,265,266,267,268,269,270,271,272,273,274,275,277,276,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,225,224,147,117,113,111,112,214,217,215,218,219,139,216,79,89,114,115,116,122,123,171,170,129,172,124,107,59,108,60,103,63,98,106,105,100,101,61,104,99,62,102,237,121,119,120,118,236,137,156,163,166,167,164,165,169,168,57,58,10,12,11,2,13,14,15,16,17,18,19,20,3,4,21,25,22,23,24,26,27,28,5,29,30,31,32,6,36,33,34,35,37,7,38,43,44,39,40,41,42,8,48,45,46,47,49,9,50,51,52,55,53,54,1,56,80,110,109,239,223,211,208,226,227,221,210,229,228,213,209,240,234,235,222,233,238,212,180,183,187,184,182,189,185,181,188,186,162,176,85,132,177,175,173,134,87,86,135,130,131,159,133,160,174,207,201,203,204,200,206,205,202,199,192,197,190,194,196,191,195,193,198,220]},"version":"5.2.2"}
|
package/dist/index.d.ts
CHANGED
@@ -1,16 +1,17 @@
|
|
1
1
|
export { DefaultUserAgent } from "./lib/waku.js";
|
2
2
|
export { DefaultPubSubTopic } from "./lib/constants.js";
|
3
3
|
export { createEncoder, createDecoder } from "./lib/message/version_0.js";
|
4
|
-
export type { Encoder, Decoder, DecodedMessage
|
4
|
+
export type { Encoder, Decoder, DecodedMessage } from "./lib/message/version_0.js";
|
5
5
|
export * as message from "./lib/message/index.js";
|
6
6
|
export * as waku from "./lib/waku.js";
|
7
7
|
export { WakuNode, WakuOptions } from "./lib/waku.js";
|
8
8
|
export * as waku_filter from "./lib/filter/index.js";
|
9
|
-
export { wakuFilter } from "./lib/filter/index.js";
|
9
|
+
export { wakuFilter, FilterCodecs } from "./lib/filter/index.js";
|
10
10
|
export * as waku_light_push from "./lib/light_push/index.js";
|
11
|
-
export { wakuLightPush
|
11
|
+
export { wakuLightPush } from "./lib/light_push/index.js";
|
12
12
|
export * as waku_store from "./lib/store/index.js";
|
13
|
-
export { PageDirection, wakuStore,
|
13
|
+
export { PageDirection, wakuStore, createCursor } from "./lib/store/index.js";
|
14
14
|
export { waitForRemotePeer } from "./lib/wait_for_remote_peer.js";
|
15
15
|
export { ConnectionManager } from "./lib/connection_manager.js";
|
16
16
|
export { KeepAliveManager } from "./lib/keep_alive_manager.js";
|
17
|
+
export { StreamManager } from "./lib/stream_manager.js";
|
package/dist/index.js
CHANGED
@@ -5,12 +5,13 @@ export * as message from "./lib/message/index.js";
|
|
5
5
|
export * as waku from "./lib/waku.js";
|
6
6
|
export { WakuNode } from "./lib/waku.js";
|
7
7
|
export * as waku_filter from "./lib/filter/index.js";
|
8
|
-
export { wakuFilter } from "./lib/filter/index.js";
|
8
|
+
export { wakuFilter, FilterCodecs } from "./lib/filter/index.js";
|
9
9
|
export * as waku_light_push from "./lib/light_push/index.js";
|
10
|
-
export { wakuLightPush
|
10
|
+
export { wakuLightPush } from "./lib/light_push/index.js";
|
11
11
|
export * as waku_store from "./lib/store/index.js";
|
12
|
-
export { PageDirection, wakuStore,
|
12
|
+
export { PageDirection, wakuStore, createCursor } from "./lib/store/index.js";
|
13
13
|
export { waitForRemotePeer } from "./lib/wait_for_remote_peer.js";
|
14
14
|
export { ConnectionManager } from "./lib/connection_manager.js";
|
15
15
|
export { KeepAliveManager } from "./lib/keep_alive_manager.js";
|
16
|
+
export { StreamManager } from "./lib/stream_manager.js";
|
16
17
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
@@ -1 +1 @@
|
|
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;
|
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,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAEjE,OAAO,KAAK,eAAe,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D,OAAO,KAAK,UAAU,MAAM,sBAAsB,CAAC;AAEnD,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAE9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAElE,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAEhE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC"}
|
@@ -1,8 +1,9 @@
|
|
1
|
-
import type {
|
2
|
-
import type {
|
3
|
-
import type { PeerId } from "@libp2p/interface
|
4
|
-
import { Peer, PeerStore } from "@libp2p/interface
|
1
|
+
import type { Libp2p } from "@libp2p/interface";
|
2
|
+
import type { Stream } from "@libp2p/interface/connection";
|
3
|
+
import type { PeerId } from "@libp2p/interface/peer-id";
|
4
|
+
import { Peer, PeerStore } from "@libp2p/interface/peer-store";
|
5
5
|
import type { IBaseProtocol, Libp2pComponents } from "@waku/interfaces";
|
6
|
+
import { StreamManager } from "./stream_manager.js";
|
6
7
|
/**
|
7
8
|
* A class with predefined helpers, to be used as a base to implement Waku
|
8
9
|
* Protocols.
|
@@ -12,7 +13,9 @@ export declare class BaseProtocol implements IBaseProtocol {
|
|
12
13
|
private components;
|
13
14
|
readonly addLibp2pEventListener: Libp2p["addEventListener"];
|
14
15
|
readonly removeLibp2pEventListener: Libp2p["removeEventListener"];
|
16
|
+
protected streamManager: StreamManager;
|
15
17
|
constructor(multicodec: string, components: Libp2pComponents);
|
18
|
+
protected getStream(peer: Peer): Promise<Stream>;
|
16
19
|
get peerStore(): PeerStore;
|
17
20
|
/**
|
18
21
|
* Returns known peers from the address book (`libp2p.peerStore`) that support
|
@@ -21,5 +24,15 @@ export declare class BaseProtocol implements IBaseProtocol {
|
|
21
24
|
*/
|
22
25
|
peers(): Promise<Peer[]>;
|
23
26
|
protected getPeer(peerId?: PeerId): Promise<Peer>;
|
24
|
-
|
27
|
+
/**
|
28
|
+
* Retrieves a list of peers based on the specified criteria.
|
29
|
+
*
|
30
|
+
* @param numPeers - The total number of peers to retrieve. If 0, all peers are returned.
|
31
|
+
* @param maxBootstrapPeers - The maximum number of bootstrap peers to retrieve.
|
32
|
+
* @returns A Promise that resolves to an array of peers based on the specified criteria.
|
33
|
+
*/
|
34
|
+
protected getPeers({ numPeers, maxBootstrapPeers }?: {
|
35
|
+
numPeers: number;
|
36
|
+
maxBootstrapPeers: number;
|
37
|
+
}): Promise<Peer[]>;
|
25
38
|
}
|
@@ -1,4 +1,6 @@
|
|
1
|
-
import { getPeersForProtocol,
|
1
|
+
import { getPeersForProtocol, selectPeerForProtocol } from "@waku/utils/libp2p";
|
2
|
+
import { filterPeers } from "./filterPeers.js";
|
3
|
+
import { StreamManager } from "./stream_manager.js";
|
2
4
|
/**
|
3
5
|
* A class with predefined helpers, to be used as a base to implement Waku
|
4
6
|
* Protocols.
|
@@ -8,11 +10,16 @@ export class BaseProtocol {
|
|
8
10
|
components;
|
9
11
|
addLibp2pEventListener;
|
10
12
|
removeLibp2pEventListener;
|
13
|
+
streamManager;
|
11
14
|
constructor(multicodec, components) {
|
12
15
|
this.multicodec = multicodec;
|
13
16
|
this.components = components;
|
14
17
|
this.addLibp2pEventListener = components.events.addEventListener.bind(components.events);
|
15
18
|
this.removeLibp2pEventListener = components.events.removeEventListener.bind(components.events);
|
19
|
+
this.streamManager = new StreamManager(multicodec, components.connectionManager.getConnections.bind(components.connectionManager), this.addLibp2pEventListener);
|
20
|
+
}
|
21
|
+
async getStream(peer) {
|
22
|
+
return this.streamManager.getStream(peer);
|
16
23
|
}
|
17
24
|
get peerStore() {
|
18
25
|
return this.components.peerStore;
|
@@ -29,13 +36,23 @@ export class BaseProtocol {
|
|
29
36
|
const { peer } = await selectPeerForProtocol(this.peerStore, [this.multicodec], peerId);
|
30
37
|
return peer;
|
31
38
|
}
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
+
/**
|
40
|
+
* Retrieves a list of peers based on the specified criteria.
|
41
|
+
*
|
42
|
+
* @param numPeers - The total number of peers to retrieve. If 0, all peers are returned.
|
43
|
+
* @param maxBootstrapPeers - The maximum number of bootstrap peers to retrieve.
|
44
|
+
* @returns A Promise that resolves to an array of peers based on the specified criteria.
|
45
|
+
*/
|
46
|
+
async getPeers({ numPeers, maxBootstrapPeers } = {
|
47
|
+
maxBootstrapPeers: 1,
|
48
|
+
numPeers: 0
|
49
|
+
}) {
|
50
|
+
// Retrieve all peers that support the protocol
|
51
|
+
const allPeersForProtocol = await getPeersForProtocol(this.peerStore, [
|
52
|
+
this.multicodec
|
53
|
+
]);
|
54
|
+
// Filter the peers based on the specified criteria
|
55
|
+
return filterPeers(allPeersForProtocol, numPeers, maxBootstrapPeers);
|
39
56
|
}
|
40
57
|
}
|
41
58
|
//# sourceMappingURL=base_protocol.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"base_protocol.js","sourceRoot":"","sources":["../../src/lib/base_protocol.ts"],"names":[],"mappings":"AAKA,OAAO,
|
1
|
+
{"version":3,"file":"base_protocol.js","sourceRoot":"","sources":["../../src/lib/base_protocol.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAEhF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD;;;GAGG;AACH,MAAM,OAAO,YAAY;IAMd;IACC;IANM,sBAAsB,CAA6B;IACnD,yBAAyB,CAAgC;IAC/D,aAAa,CAAgB;IAEvC,YACS,UAAkB,EACjB,UAA4B;QAD7B,eAAU,GAAV,UAAU,CAAQ;QACjB,eAAU,GAAV,UAAU,CAAkB;QAEpC,IAAI,CAAC,sBAAsB,GAAG,UAAU,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CACnE,UAAU,CAAC,MAAM,CAClB,CAAC;QACF,IAAI,CAAC,yBAAyB,GAAG,UAAU,CAAC,MAAM,CAAC,mBAAmB,CAAC,IAAI,CACzE,UAAU,CAAC,MAAM,CAClB,CAAC;QAEF,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,CACpC,UAAU,EACV,UAAU,CAAC,iBAAiB,CAAC,cAAc,CAAC,IAAI,CAC9C,UAAU,CAAC,iBAAiB,CAC7B,EACD,IAAI,CAAC,sBAAsB,CAC5B,CAAC;IACJ,CAAC;IACS,KAAK,CAAC,SAAS,CAAC,IAAU;QAClC,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;IAED,IAAW,SAAS;QAClB,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;IACnC,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,KAAK;QAChB,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;IAED;;;;;;OAMG;IACO,KAAK,CAAC,QAAQ,CACtB,EACE,QAAQ,EACR,iBAAiB,KAIf;QACF,iBAAiB,EAAE,CAAC;QACpB,QAAQ,EAAE,CAAC;KACZ;QAED,+CAA+C;QAC/C,MAAM,mBAAmB,GAAG,MAAM,mBAAmB,CAAC,IAAI,CAAC,SAAS,EAAE;YACpE,IAAI,CAAC,UAAU;SAChB,CAAC,CAAC;QAEH,mDAAmD;QACnD,OAAO,WAAW,CAAC,mBAAmB,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAAC;IACvE,CAAC;CACF"}
|
@@ -1,10 +1,11 @@
|
|
1
1
|
import { EventEmitter } from "@libp2p/interfaces/events";
|
2
|
-
import { ConnectionManagerOptions, IConnectionManager, IPeersByDiscoveryEvents, IRelay, KeepAliveOptions, PeersByDiscoveryResult } from "@waku/interfaces";
|
2
|
+
import { ConnectionManagerOptions, IConnectionManager, IPeersByDiscoveryEvents, IRelay, KeepAliveOptions, PeersByDiscoveryResult, PubSubTopic } from "@waku/interfaces";
|
3
3
|
import { Libp2p } from "@waku/interfaces";
|
4
4
|
export declare const DEFAULT_MAX_BOOTSTRAP_PEERS_ALLOWED = 1;
|
5
5
|
export declare const DEFAULT_MAX_DIAL_ATTEMPTS_FOR_PEER = 3;
|
6
6
|
export declare const DEFAULT_MAX_PARALLEL_DIALS = 3;
|
7
7
|
export declare class ConnectionManager extends EventEmitter<IPeersByDiscoveryEvents> implements IConnectionManager {
|
8
|
+
private configuredPubSubTopics;
|
8
9
|
private static instances;
|
9
10
|
private keepAliveManager;
|
10
11
|
private options;
|
@@ -13,7 +14,7 @@ export declare class ConnectionManager extends EventEmitter<IPeersByDiscoveryEve
|
|
13
14
|
private dialErrorsForPeer;
|
14
15
|
private currentActiveDialCount;
|
15
16
|
private pendingPeerDialQueue;
|
16
|
-
static create(peerId: string, libp2p: Libp2p, keepAliveOptions: KeepAliveOptions, relay?: IRelay, options?: ConnectionManagerOptions): ConnectionManager;
|
17
|
+
static create(peerId: string, libp2p: Libp2p, keepAliveOptions: KeepAliveOptions, pubsubTopics: PubSubTopic[], relay?: IRelay, options?: ConnectionManagerOptions): ConnectionManager;
|
17
18
|
getPeersByDiscovery(): Promise<PeersByDiscoveryResult>;
|
18
19
|
private constructor();
|
19
20
|
private dialPeerStorePeers;
|
@@ -27,14 +28,25 @@ export declare class ConnectionManager extends EventEmitter<IPeersByDiscoveryEve
|
|
27
28
|
private startPeerDisconnectionListener;
|
28
29
|
private attemptDial;
|
29
30
|
private onEventHandlers;
|
31
|
+
/**
|
32
|
+
* Checks if the peer should be dialed based on the following conditions:
|
33
|
+
* 1. If the peer is already connected, don't dial
|
34
|
+
* 2. If the peer is not part of any of the configured pubsub topics, don't dial
|
35
|
+
* 3. If the peer is not dialable based on bootstrap status, don't dial
|
36
|
+
* @returns true if the peer should be dialed, false otherwise
|
37
|
+
*/
|
38
|
+
private shouldDialPeer;
|
30
39
|
/**
|
31
40
|
* Checks if the peer is dialable based on the following conditions:
|
32
41
|
* 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.
|
33
42
|
* 2. If the peer is not a bootstrap peer
|
34
43
|
*/
|
35
|
-
private
|
44
|
+
private isPeerDialableBasedOnBootstrapStatus;
|
45
|
+
private dispatchDiscoveryEvent;
|
36
46
|
/**
|
37
47
|
* Fetches the tag names for a given peer
|
38
48
|
*/
|
39
49
|
private getTagNamesForPeer;
|
50
|
+
private isPeerTopicConfigured;
|
51
|
+
private getPeerShardInfo;
|
40
52
|
}
|
@@ -1,13 +1,16 @@
|
|
1
1
|
import { CustomEvent, EventEmitter } from "@libp2p/interfaces/events";
|
2
|
-
import {
|
2
|
+
import { decodeRelayShard } from "@waku/enr";
|
3
|
+
import { EPeersByDiscoveryEvents } from "@waku/interfaces";
|
3
4
|
import { Tags } from "@waku/interfaces";
|
5
|
+
import { shardInfoToPubSubTopics } from "@waku/utils";
|
4
6
|
import debug from "debug";
|
5
7
|
import { KeepAliveManager } from "./keep_alive_manager.js";
|
6
8
|
const log = debug("waku:connection-manager");
|
7
9
|
export const DEFAULT_MAX_BOOTSTRAP_PEERS_ALLOWED = 1;
|
8
10
|
export const DEFAULT_MAX_DIAL_ATTEMPTS_FOR_PEER = 3;
|
9
11
|
export const DEFAULT_MAX_PARALLEL_DIALS = 3;
|
10
|
-
class ConnectionManager extends EventEmitter {
|
12
|
+
export class ConnectionManager extends EventEmitter {
|
13
|
+
configuredPubSubTopics;
|
11
14
|
static instances = new Map();
|
12
15
|
keepAliveManager;
|
13
16
|
options;
|
@@ -16,10 +19,10 @@ class ConnectionManager extends EventEmitter {
|
|
16
19
|
dialErrorsForPeer = new Map();
|
17
20
|
currentActiveDialCount = 0;
|
18
21
|
pendingPeerDialQueue = [];
|
19
|
-
static create(peerId, libp2p, keepAliveOptions, relay, options) {
|
22
|
+
static create(peerId, libp2p, keepAliveOptions, pubsubTopics, relay, options) {
|
20
23
|
let instance = ConnectionManager.instances.get(peerId);
|
21
24
|
if (!instance) {
|
22
|
-
instance = new ConnectionManager(libp2p, keepAliveOptions, relay, options);
|
25
|
+
instance = new ConnectionManager(libp2p, keepAliveOptions, pubsubTopics, relay, options);
|
23
26
|
ConnectionManager.instances.set(peerId, instance);
|
24
27
|
}
|
25
28
|
return instance;
|
@@ -55,22 +58,24 @@ class ConnectionManager extends EventEmitter {
|
|
55
58
|
return {
|
56
59
|
DISCOVERED: {
|
57
60
|
[Tags.BOOTSTRAP]: peersDiscoveredByBootstrap,
|
58
|
-
[Tags.PEER_EXCHANGE]: peersDiscoveredByPeerExchange
|
61
|
+
[Tags.PEER_EXCHANGE]: peersDiscoveredByPeerExchange
|
59
62
|
},
|
60
63
|
CONNECTED: {
|
61
64
|
[Tags.BOOTSTRAP]: peersConnectedByBootstrap,
|
62
|
-
[Tags.PEER_EXCHANGE]: peersConnectedByPeerExchange
|
63
|
-
}
|
65
|
+
[Tags.PEER_EXCHANGE]: peersConnectedByPeerExchange
|
66
|
+
}
|
64
67
|
};
|
65
68
|
}
|
66
|
-
constructor(libp2p, keepAliveOptions, relay, options) {
|
69
|
+
constructor(libp2p, keepAliveOptions, configuredPubSubTopics, relay, options) {
|
67
70
|
super();
|
71
|
+
this.configuredPubSubTopics = configuredPubSubTopics;
|
68
72
|
this.libp2p = libp2p;
|
73
|
+
this.configuredPubSubTopics = configuredPubSubTopics;
|
69
74
|
this.options = {
|
70
75
|
maxDialAttemptsForPeer: DEFAULT_MAX_DIAL_ATTEMPTS_FOR_PEER,
|
71
76
|
maxBootstrapPeersAllowed: DEFAULT_MAX_BOOTSTRAP_PEERS_ALLOWED,
|
72
77
|
maxParallelDials: DEFAULT_MAX_PARALLEL_DIALS,
|
73
|
-
...options
|
78
|
+
...options
|
74
79
|
};
|
75
80
|
this.keepAliveManager = new KeepAliveManager(keepAliveOptions, relay);
|
76
81
|
this.run()
|
@@ -146,14 +151,24 @@ class ConnectionManager extends EventEmitter {
|
|
146
151
|
if (dialAttempt === this.options.maxDialAttemptsForPeer) {
|
147
152
|
try {
|
148
153
|
const error = this.dialErrorsForPeer.get(peerId.toString());
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
154
|
+
if (error) {
|
155
|
+
let errorMessage;
|
156
|
+
if (error instanceof AggregateError) {
|
157
|
+
if (!error.errors) {
|
158
|
+
log(`No errors array found for AggregateError`);
|
159
|
+
}
|
160
|
+
else if (error.errors.length === 0) {
|
161
|
+
log(`Errors array is empty for AggregateError`);
|
162
|
+
}
|
163
|
+
else {
|
164
|
+
errorMessage = JSON.stringify(error.errors[0]);
|
165
|
+
}
|
166
|
+
}
|
167
|
+
else {
|
168
|
+
errorMessage = error.message;
|
169
|
+
}
|
170
|
+
log(`Deleting undialable peer ${peerId.toString()} from peer store. Error: ${errorMessage}`);
|
155
171
|
}
|
156
|
-
log(`Deleting undialable peer ${peerId.toString()} from peer store. Error: ${errorMessage}`);
|
157
172
|
this.dialErrorsForPeer.delete(peerId.toString());
|
158
173
|
await this.libp2p.peerStore.delete(peerId);
|
159
174
|
}
|
@@ -205,26 +220,21 @@ class ConnectionManager extends EventEmitter {
|
|
205
220
|
this.libp2p.addEventListener("peer:disconnect", this.onEventHandlers["peer:disconnect"]);
|
206
221
|
}
|
207
222
|
async attemptDial(peerId) {
|
223
|
+
if (!(await this.shouldDialPeer(peerId)))
|
224
|
+
return;
|
208
225
|
if (this.currentActiveDialCount >= this.options.maxParallelDials) {
|
209
226
|
this.pendingPeerDialQueue.push(peerId);
|
210
227
|
return;
|
211
228
|
}
|
212
|
-
if (!(await this.shouldDialPeer(peerId)))
|
213
|
-
return;
|
214
229
|
this.dialPeer(peerId).catch((err) => {
|
215
|
-
|
230
|
+
log(`Error dialing peer ${peerId.toString()} : ${err}`);
|
216
231
|
});
|
217
232
|
}
|
218
233
|
onEventHandlers = {
|
219
234
|
"peer:discovery": (evt) => {
|
220
235
|
void (async () => {
|
221
236
|
const { id: peerId } = evt.detail;
|
222
|
-
|
223
|
-
this.dispatchEvent(new CustomEvent(isBootstrap
|
224
|
-
? EPeersByDiscoveryEvents.PEER_DISCOVERY_BOOTSTRAP
|
225
|
-
: EPeersByDiscoveryEvents.PEER_DISCOVERY_PEER_EXCHANGE, {
|
226
|
-
detail: peerId,
|
227
|
-
}));
|
237
|
+
await this.dispatchDiscoveryEvent(peerId);
|
228
238
|
try {
|
229
239
|
await this.attemptDial(peerId);
|
230
240
|
}
|
@@ -236,7 +246,7 @@ class ConnectionManager extends EventEmitter {
|
|
236
246
|
"peer:connect": (evt) => {
|
237
247
|
void (async () => {
|
238
248
|
const peerId = evt.detail;
|
239
|
-
this.keepAliveManager.start(peerId, this.libp2p.services.ping);
|
249
|
+
this.keepAliveManager.start(peerId, this.libp2p.services.ping, this.libp2p.peerStore);
|
240
250
|
const isBootstrap = (await this.getTagNamesForPeer(peerId)).includes(Tags.BOOTSTRAP);
|
241
251
|
if (isBootstrap) {
|
242
252
|
const bootstrapConnections = this.libp2p
|
@@ -248,13 +258,13 @@ class ConnectionManager extends EventEmitter {
|
|
248
258
|
}
|
249
259
|
else {
|
250
260
|
this.dispatchEvent(new CustomEvent(EPeersByDiscoveryEvents.PEER_CONNECT_BOOTSTRAP, {
|
251
|
-
detail: peerId
|
261
|
+
detail: peerId
|
252
262
|
}));
|
253
263
|
}
|
254
264
|
}
|
255
265
|
else {
|
256
266
|
this.dispatchEvent(new CustomEvent(EPeersByDiscoveryEvents.PEER_CONNECT_PEER_EXCHANGE, {
|
257
|
-
detail: peerId
|
267
|
+
detail: peerId
|
258
268
|
}));
|
259
269
|
}
|
260
270
|
})();
|
@@ -263,17 +273,42 @@ class ConnectionManager extends EventEmitter {
|
|
263
273
|
return (evt) => {
|
264
274
|
this.keepAliveManager.stop(evt.detail);
|
265
275
|
};
|
266
|
-
}
|
276
|
+
}
|
267
277
|
};
|
268
278
|
/**
|
269
|
-
* Checks if the peer
|
270
|
-
* 1. If the peer is
|
271
|
-
* 2. If the peer is not
|
279
|
+
* Checks if the peer should be dialed based on the following conditions:
|
280
|
+
* 1. If the peer is already connected, don't dial
|
281
|
+
* 2. If the peer is not part of any of the configured pubsub topics, don't dial
|
282
|
+
* 3. If the peer is not dialable based on bootstrap status, don't dial
|
283
|
+
* @returns true if the peer should be dialed, false otherwise
|
272
284
|
*/
|
273
285
|
async shouldDialPeer(peerId) {
|
286
|
+
// if we're already connected to the peer, don't dial
|
274
287
|
const isConnected = this.libp2p.getConnections(peerId).length > 0;
|
275
|
-
if (isConnected)
|
288
|
+
if (isConnected) {
|
289
|
+
log(`Already connected to peer ${peerId.toString()}. Not dialing.`);
|
290
|
+
return false;
|
291
|
+
}
|
292
|
+
// if the peer is not part of any of the configured pubsub topics, don't dial
|
293
|
+
if (!(await this.isPeerTopicConfigured(peerId))) {
|
294
|
+
const shardInfo = await this.getPeerShardInfo(peerId, this.libp2p.peerStore);
|
295
|
+
log(`Discovered peer ${peerId.toString()} with ShardInfo ${shardInfo} is not part of any of the configured pubsub topics (${this.configuredPubSubTopics}).
|
296
|
+
Not dialing.`);
|
297
|
+
return false;
|
298
|
+
}
|
299
|
+
// if the peer is not dialable based on bootstrap status, don't dial
|
300
|
+
if (!(await this.isPeerDialableBasedOnBootstrapStatus(peerId))) {
|
301
|
+
log(`Peer ${peerId.toString()} is not dialable based on bootstrap status. Not dialing.`);
|
276
302
|
return false;
|
303
|
+
}
|
304
|
+
return true;
|
305
|
+
}
|
306
|
+
/**
|
307
|
+
* Checks if the peer is dialable based on the following conditions:
|
308
|
+
* 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.
|
309
|
+
* 2. If the peer is not a bootstrap peer
|
310
|
+
*/
|
311
|
+
async isPeerDialableBasedOnBootstrapStatus(peerId) {
|
277
312
|
const tagNames = await this.getTagNamesForPeer(peerId);
|
278
313
|
const isBootstrap = tagNames.some((tagName) => tagName === Tags.BOOTSTRAP);
|
279
314
|
if (isBootstrap) {
|
@@ -290,6 +325,14 @@ class ConnectionManager extends EventEmitter {
|
|
290
325
|
}
|
291
326
|
return false;
|
292
327
|
}
|
328
|
+
async dispatchDiscoveryEvent(peerId) {
|
329
|
+
const isBootstrap = (await this.getTagNamesForPeer(peerId)).includes(Tags.BOOTSTRAP);
|
330
|
+
this.dispatchEvent(new CustomEvent(isBootstrap
|
331
|
+
? EPeersByDiscoveryEvents.PEER_DISCOVERY_BOOTSTRAP
|
332
|
+
: EPeersByDiscoveryEvents.PEER_DISCOVERY_PEER_EXCHANGE, {
|
333
|
+
detail: peerId
|
334
|
+
}));
|
335
|
+
}
|
293
336
|
/**
|
294
337
|
* Fetches the tag names for a given peer
|
295
338
|
*/
|
@@ -303,6 +346,21 @@ class ConnectionManager extends EventEmitter {
|
|
303
346
|
return [];
|
304
347
|
}
|
305
348
|
}
|
349
|
+
async isPeerTopicConfigured(peerId) {
|
350
|
+
const shardInfo = await this.getPeerShardInfo(peerId, this.libp2p.peerStore);
|
351
|
+
// If there's no shard information, simply return true
|
352
|
+
if (!shardInfo)
|
353
|
+
return true;
|
354
|
+
const pubsubTopics = shardInfoToPubSubTopics(shardInfo);
|
355
|
+
const isTopicConfigured = pubsubTopics.some((topic) => this.configuredPubSubTopics.includes(topic));
|
356
|
+
return isTopicConfigured;
|
357
|
+
}
|
358
|
+
async getPeerShardInfo(peerId, peerStore) {
|
359
|
+
const peer = await peerStore.get(peerId);
|
360
|
+
const shardInfoBytes = peer.metadata.get("shardInfo");
|
361
|
+
if (!shardInfoBytes)
|
362
|
+
return undefined;
|
363
|
+
return decodeRelayShard(shardInfoBytes);
|
364
|
+
}
|
306
365
|
}
|
307
|
-
export { ConnectionManager };
|
308
366
|
//# sourceMappingURL=connection_manager.js.map
|