* 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
* 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: 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
* feat: implement keep alive for filter subscription
* remove
* address comments
* 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
* initialise the new package
* feat: implement LocalStorageDiscovery
* add: Startable to cspell
* add compliance test
* add: discovery tests
* rm: browser tests script
* address comments
* add type safety to getting peers from local
* only dispatch peer if it does not exist
* move ws ma extraction to utils
* chore: update package name to local-discovery
* fix: add compliance test with no external deps on service node
* use peer:identify instead of peer:update
* add: unit tests & remove sdk dependency
* move tests to self package
* update cspell + remove unrequired deps
* add types
* maintain in-memory peers for localstorage
* address comments
* chore: rename
* use name from options
* fix: saving peers
* rm: only
tests: use a generator for sharded pubsub topics
set pubsub topic in encoder/decoder based on sharding type
add function for grouping content topics by pubsub topic
add autosharding config to create options
add autoshard rpc endpoints to nwaku and use in tests
set autoshard pubsub topics in all protocols
fix rebase with static sharding
removes unused function
remove console logs
remove autosharding from ShardInfo, add to EncoderOptions
fix enr and encoder/decoder options
test that same application/version hashes to same shard index
update comment on shard field
fix spelling of autosharding
fix content topic protocol in tests
add sharding type alias and function to determine topic in encoders/decoders
move DefaultPubsubTopic from core to interfaces
* add proto
* add rpc and interfaces
* add protocol implementation
* update faulty proto def
* add rpc and interfaces
* refactor implementation & write test
* setup the metadata protocol as a service
* fix cases where metadata service needs to be undefined
* remove redundant catch block
* remove addressed TODO
* update import path
* log errors
* remove redundant code from handling incoming metadata request
* update tests
* add test to check for active connections
* change expects
* save remote peer's shard info after successful connection