* up lock
* make ConnectionManager use ctor
* reform connection manager configurations
* remove log param from peerManager
* make PeerManager use only ConnectionManager, move getPeers to ConnectionManager, remove not needed code
* remove allPeers and connectedPeers from BaseProtocolCore, update tests, add getPeers for IWaku
* use only one peerManager from Waku object
* remove IBaseProtocolSDK and merge with PeerManager
* re-implement peerManager, remove ProtocolUseOptions
* remove not needed test, up lock
* update deps and lock
* remove old test for peerManager, fix check and spell
* rename to getConnectedPeers
* feat: improve filter subscriptions (#2193)
* add message cache to Filter
* remove WakuOptions and use only ProtocolCreateOptions
* move subscribe options to createLightNode Fitler protocol options
* rename SubscriptionManager to Subscription
* rename to CreateNodeOptions
* add warning
* feat: introduce subscription manager (#2202)
* feat: inroduce subscription manager
* fix: make pipeline succeed (#2238)
* fix test
* use hardcoded value
* update playwright
* fix test:browser
* up lock
* make peer retrieval probabilistic
* add comments
* up lightpush tests
* add tests for peer_manager, improve folder structure
* create named files for protocols
* create named files, simplify project structure
* remove only
* fix comment of default number of peers
* export default number of peers from base protocol sdk
* rename to light_push, move class to separate file
* move waitForRemotePeer to sdk package
* add todo to move waitForGossipSubPeerInMesh into @waku/relay
* clean up waitForRemotePeer, split metadata await from event and optimise, decouple from protocol implementations
* simplify and rename ILightPush interface
* use only connected peers in light push based on connections instead of peer renewal mechanism
* improve readability of result processing in light push
* fix check & update tests
* address tests, add new test cases, fix racing condition in StreamManager
* use libp2p.getPeers
* feat: confirm metadata and protocols needed in waitForRemotePeer
* rely on passed protocols and fallback to mounted
* add I prefix to Waku interface
* implement waku.connect method
* add docs to IWaku interface
* remove export and usage of waitForRemotePeer
* move wait for remote peer related to Realy out of @waku/sdk
* change tests to use new API
* fix linting
* update size limit
* rename .connect to .waitForPeer
* export waitForRemotePeer and mark as deprecated
* feat: add mocha tests to @waku/sdk and cover waitForRemotePeer (#2163)
* feat: add mocha tests to @waku/sdk and cover waitForRemotePeer
* add waitForRemote UTs
* remove junk
* feat: expose peerId and protocols from WakuNode (#2166)
* chore: expose peerId and protocols from WakuNode
* remove unused method
* move to private method
* rename to waitForPeers
* up test
* fix comment of default number of peers
* export default number of peers from base protocol sdk
* rename to light_push, move class to separate file
* move waitForRemotePeer to sdk package
* add todo to move waitForGossipSubPeerInMesh into @waku/relay
* clean up waitForRemotePeer, split metadata await from event and optimise, decouple from protocol implementations
* simplify and rename ILightPush interface
* use only connected peers in light push based on connections instead of peer renewal mechanism
* improve readability of result processing in light push
* fix check & update tests
* address tests, add new test cases, fix racing condition in StreamManager
* use libp2p.getPeers
* 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
* 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
* move KeepAliveOptions to dedicated interface file
* update export for KeepAlive
* expose `ConnectionManager` on the waku node
* update ConnectionManager test to use the exposed API
* rm: only for the test
* rm: v1
* fix v2 imports
* remove tests for filter v1
* set filter v1 as default and rm v2 completely
* change import name for filter v2
* rename FilterV2 to Filter completely
* fix run check
* upgrade libp2p version, partially update protocols, rename to IBaseProtocol
* complete transition for protocols
* complete transition of connection maanger
* finish sdk
* complete core
* complete relay
* complete peer-exchange
* complete dns-discovery
* add components field to Libp2p interface and use it in core
* add type hack for Libp2p creation:
* finish waku node test
* complete relay test
* complete peer exchange
* complete dns peer discovery test
* add missing dependency to relay
* fix new peer store integration
* improve initialization of pubsub
* add catch for missing peer
* update test and remove extra dependency
* prevent error throw
* fix edge case with peerStore
* fix peer exchange
* fix protocols used
* fix test with another evnet
* bump libp2p and interfaces
* add missing package
* fix peer-exchange problem
* prefer libp2p peerDiscovery for integration tests
* fix import
* increate timeout
* return test against Test fleet
* remove await for peer:update
* increase timeout
* add await for peerStore
* comment event for testing
* fix lint
* remove bind
* fix stub
* decouple to separate test case
* move back to explicit build
* remove only
* do not test event
* implement proto
* implement filter v2
* add tests
* minor improvements
- make unsubscribe functions private in
filter
- enable all tests
* enable all tests
* readd multiaddrinput
* address comment removals
* unsubscribe based on contentFilters passed
* update unsubscribe function parameters in test
* reset interfaces & filter v1
* refactor filterv2 into 2 classes
- removes generics from types on filter which means
manual typecasting to filter version is required on
consumer side
- defaults to filterv2
- splits filterv2 into 2 classes:
- one to create the subscription object with a
peer which returns the second class
- the other to manage all subscription functions
* updates filter tests for the new API
- also fixes an interface import
* update `toAsyncIterator` test for Filter V1
* implement IReceiver on FilterV2
* remove return values from subscription functions
* update `to_async_iterator`
* address variable naming
* add tsdoc comments for hidden function
* address minor comments
* update docs to default to filter v2
* address comments
* rename `wakuFilter` to `wakuFilterV1`
* chore: Remove static variables (#1371)
* chore: Remove static variables
- Remove internal types from `@core/interfaces`
- Remove data being redundantly stored (pubsub topic)
- Remove usage of static variables
- Clean up callbacks and decoders when using `unsubscribe`
- Clean up callbacks and decoders when using `unsubscribeAll`
* fix setting activeSubscription
---------
Co-authored-by: danisharora099 <danisharora099@gmail.com>
* make activeSub getter and setter private
* update size-limit
---------
Co-authored-by: fryorcraken.eth <110212804+fryorcraken@users.noreply.github.com>
* remove peer-exchange from @waku/core
- also removes the manual test for peer-exchange (assumption is that the
only way to initialise peer-exchange is through libp2p's peerDiscovery and
not manually) (ref:
https://github.com/waku-org/js-waku/pull/1158#discussion_r1108055234)
# Please enter the commit message for your changes. Lines
starting
* fix: build
* update interop test
* decrease test duration for px auto discovery
* rm: only for tests
* address comment