* chore: upgrade libp2p and related packages
* fix: public key on peer id can now be undefined
* chore: upgrade remainder packages
* chore: fix tests
* chore: address comments
* chore: upgrade playwright and proto
* feat: write proto
* chore: move store v2 to a subdir
* chore: update v3 proto
* feat: create custom RPC
* feat: implement storev3 core
* chore: set store v3 as default
* chore: move v2 related code
* chore: update v2 imports
* feat: add store-v3 sdk implementation
* fix: rebase
* chore: add ts-doc for store query request params
* chore: update tests for new API
* fix: use nanoseconds instead of millisecond for timerange
* chore: improve store
* chore: remove store v2
* chore: update tests
* chore: fix legacy imports & proto
* tests: remove manual reversal as its part of the API, update incorrect cursor error msg
* chore: update default page size
* chore: account for MAX_PAGE_SIZE from nwaku
* fix: test
* fix: sorting tests
* chore: rename IReceiver subscribe
* feat!: new `subscribe() API that only takes in decoders and callback
* chore: `to_async_iterator` uses new function name
* chore: make `createSubscription` private, and shorten error handling
* chore: update subscribe return type
* tests: use new API
* fix: tests
* chore: convert timestamp from miliseconds to nanoseconds
* chore: test against hash accounting for nanoseconds instead of milliseconds
the hash used was calculated using timestamp in milliseconds, instead of nanoseconds (not part of the RFC test vectors)Y
* feat: introduce HealthManager
* feat: make health accessible on Waku object
* feat: update health from protocols
* chore: add access modifiers to healthmanager
* feat: use a HealthManager singleton
* chore: add tests for Filter, LightPush and Store
* feat: add overall node health
* chore: update protocol health to consider Store protocol
* chore: setup generic test utils instead of using filter utils
* tests: add a health status matrix check from 0-3
* chore: increase timeout for failing tests in CI
tests pass locally without an increased timeout, but fail in CI
* chore: move name inference to HealthManager
* tests: abstract away node creation and teardown utils
* fix: import
* feat(peer-exchange): update peer info if new is found
* chore: move diff checking logic to a private function
* chore: add tests
* chore: increase verbosity for mulltiaddr
* chore: use merge for metadata nad patch for multiaddrs
* chore: use peerId from peerInfo
* chore: remove unused import
* 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