* feat: validate messages for individual filter nodes & perform renewals
* chore: fix spell check
* chore: use a max threshold before peer renewal
* chore: switch from a validation cycle timer to adhoc validation
* chore: add test
* fix: test
* chore: address comments
* fix: renewal without a new peer available
* chore: validating messages should be non-blocking
* chore: minor improvements
* chore: rm only
* chore: fix test
* chore: renewPeer() returns the new found peer
* feat: ping & peer renewal
* chore: add tests
* fix: tests
* chore: remove only
* chore: remove comments
* chore(tests): decrease timeout
* chore: add array index validation
* chore: remove only
* chore: move defaults into a separate variable
* chore: update lightpush with new API
* chore: include peer renewals within `ping` instead of `interval`
* chore: update tests
* chore: add new test
* chore: address comments
* chore: make `dropConnection` to be a public function
* feat: peers are maintained for protocols
- passes `ConnectionManager` to ProtocolSDK to allow disconnecting from within protocol
- maintains `numPeersToUse` for each protocol within BaseProtocolSDK
* fix: pass options to protocols
* chore: update interfaces to allow public access
* chore: improve logging on protocol
* fix: renew peer upon failure
* chore(tests): allow DefaultPubsubTopic
* feat(lightpush): write peer management tests
* chore: rename test
* feat: add lock to `maintainPeers()` to handle parallelisation of requests
fixes parallelisation of lightpush.send() requests
* fix: concurrent lightpush requests
* fix: test & improve peers fetching
* chore: use getter
* address comments
* chore: smaller improvements
* feat: attempt to improve time for first lightpush.send()
* chore: use `window.interval` for type-safety
* chore: remove delays
* feat: add autoRetry
* feat: `forceUseAllPeers` to wait for all connected peers to be resoled
* fix: use pubsubTopic from current ones if not set
* fix: improve type on dial method
* enforce same pubusb on filter.subscribe, make content topic to pubsub mapping default for decoder / encoder
* fix mapping problem
* update tests
* add error handling
* fix typo
* up lock
* rm lock
* up lock
* remove only
* fix content topic
* fix ephemeral test
* fix filter unsubscribe test
* up utils
* fix subscribe test
* up interfaces and filter api
* remove only
* up ping test
* fix subscribe test
* fix push test
* fix lightPush
* fix multiple pubsub
* remove only, fix subscribe filter test
* remove only
* fix cluster ID selection and named sharding subscription test
* fix unsubscribe test
* fix light push test
* fix light push test
* fix push test
* fix relay publish
* create runNode and fix relay tests
* generalize runNodes, fix some tests
* fix store tests
* fix toAsyncIterator tests
* remove only
* fix lightPush
* use generics
* try fix test
* run failing tests
* remove only
* address failed tests, remove DefaultPubsubTopic dependency in some tests
* refactor the Store protocol into Core and SDK, simplify `queryGenerator()`
* update imports & types
* chore: `@noble/hashes` moves to `sdk`
* chore: update tests
* chore: update size-limit import path
* fix: cursor tests, use `Cursor` type from `proto.Index` instead of redefining
* export wakuStore from sdk
* fix: imports
* chore: use specific version for package
* chore: handle error for peer access
* use type instead of interface
* rm: comment
* add TODO
* chore!: remove deprecated function definition
* chore: improve logging
* setup a generic protocol result type (DRY)
* metadata: use generic
* lightpush: use generic
* peer-exchange: use error codes + generic + update tests
* add issue link to skipped test
* tests: improve while loop readability
* move relay related code
* move libp2p to utils
* define CreateWakuNodeOptions
* improve options
* make libp2p use from create function
* add bootstrapPeers option
* fix lint
* fix types, imports
* fix exports
* use bootstrap along default bootstrap
* fix test as REST does not return peer though connection is made
* rollback condition change
* enable gossipSub back for every node
* fix peer ex tests
* remove only
* check for undefined
* add timeout
* timeout for query
* remove logs
* add log back
* whitelist 2nd erorr
* use beforeAll
* remove only
* revert last changes
* remove console logs
* skip query suite
* leave just one query test
This commit modifies functions in ServiceNode to use the REST API
instead of JSON RPC when reading messages for a pubsub topic or
content topic, and when ensuring a nwaku node is subscribed to a
pubsub topic. Also modifies default Docker params to enable the
rest API and provide a port.
* use graceful timeout mechanism
* set max timeout for all hooks
* small fix
* small fix
* use MOCHA_HOOK_MAX_TIMEOUT as default timeoutDuration
* force retry even when the hook fails
* use custom hooks
* fix global timeout problem
* fix unwanted change
* fix enr issue
* force retry on before error as well