Commit Graph

353 Commits

Author SHA1 Message Date
dependabot[bot] 94b8fd34ca
chore(deps)(deps): bump sinon from 15.2.0 to 16.0.0 (#1611)
Bumps [sinon](https://github.com/sinonjs/sinon) from 15.2.0 to 16.0.0.
- [Release notes](https://github.com/sinonjs/sinon/releases)
- [Changelog](https://github.com/sinonjs/sinon/blob/main/docs/changelog.md)
- [Commits](https://github.com/sinonjs/sinon/compare/v15.2.0...v16.0.0)

---
updated-dependencies:
- dependency-name: sinon
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-02 13:38:23 +05:30
fbarbu15 c83b976621
refactor store tests 2023-09-29 19:10:03 +03:00
fbarbu15 f307e9b6c6
intermediat commit 2023-09-29 14:03:43 +03:00
Danish Arora a3c45b6e1a
feat(static-sharding)!: allow multiple pubSubTopics (#1586)
* `ProtocolCreateOptions` now has `pubSubTopic` as `pubSubTopic[]`

* chore: update encoder & decoder to support `PubSubTopic`

* feat(protocols): allow multiple `PubSubTopic[]`

* feat(relay): allow multiple `PubSubTopic[]`

* chore(tests): update for new API

* chore: minor fixes

* chore: make store more robust

* fix(relay): correctly set types

* chore(address comments): update terminology around configured pubsub topics

* chore(address comments): minor refactoring

* chore(relay): split `subscribe` into smaller functions for readability & modularity

* chore(address comments): refactor `waitForGossipSubPeerInMesh`

* chore(store): only allow to query one `pubSubTopic`

* fix: `store` bug

* feat(tests): add some basic tests

* sharding utils

* address comments

* feat(relay): re-add API for `getMeshPeers`

* update error message

Co-authored-by: fryorcraken <110212804+fryorcraken@users.noreply.github.com>

* refactor for new API

* feat: simplify handling of observers (#1614)

* refactor: simplify handling of observers

* refactor: Remove redundant PubSubTopic from Observer

* use `??` instead of `||`

* update `pubsubTopic` to `pubSubTopic`

* update `interval` typo

* change occurence of `pubsubTopic` to `pubSubTopic`

* relay: rm `getAllMeshPeers` and make `pubSubTopics` public

* relay: use `push_or_init_map` and move to `utils`

* fix: update API for tests

* fix: relay waitForRemotePeer

---------

Co-authored-by: fryorcraken <110212804+fryorcraken@users.noreply.github.com>
2023-09-27 15:28:07 +05:30
Simon-Pierre Vivier 6fa106aa7f
fix: subscription RPC & added test subscriptions (#1587)
Co-authored-by: Sasha <118575614+weboko@users.noreply.github.com>
2023-09-26 00:24:49 +02:00
Danish Arora a718c40882
chore: ensure that we can dial `tls` multiaddrs (#1580)
* add a test to dial tls version of a multiaddr

* generate new lockfile
ref: https://github.com/libp2p/js-libp2p/pull/2059#issuecomment-1724031879
2023-09-22 15:56:52 +05:30
Danish Arora 8f9faf4aed
chore: upgrade engine to 18 (#1604) 2023-09-22 14:37:34 +05:30
Florin Barbu 9ab4e86f19
chore: bump nwaku version to 0.20 (#1591) 2023-09-22 02:55:49 +02:00
Sasha 020463c358
chore: update typescript (#1528)
* update typescript, define in root package.json

* update typedoc and fix typedoc comments

* update dev version of tsconfig

* set module and resolution for tsconfig dev

* bump ts plugins

* set order of typedoc generation

* turn off warnings as errors setting
2023-09-21 10:57:37 +02:00
fbarbu15 bbd3f61bc4 increase timeout and use tearDownNodes 2023-09-21 11:29:27 +03:00
fryorcraken.eth 8cbd4c1d00
test: light push should not throw an exception 2023-09-21 12:39:00 +10:00
fryorcraken.eth 4a9360d4e3
test: fail on unhandled rejections and uncaught exceptions 2023-09-21 12:39:00 +10:00
fryorcraken.eth 3acc4fc86f
refactor: group import 2023-09-21 12:38:59 +10:00
fryorcraken.eth feb6e1b92c
test: nwaku does not behave as expected 2023-09-21 12:25:38 +10:00
fryorcraken.eth 053b6545ad
feat!: return `REMOTE_PEER_REJECTED` if remote peer rejected the message 2023-09-21 11:56:02 +10:00
Simon-Pierre Vivier 7905aa478b
fix: explicit nwaku subscriptions in tests (#1572)
* Nwaku subscriptions explicit in tests

* Subscription before each & renaming

* Fix
2023-09-19 22:45:27 +02:00
fbarbu15 e284c78701
chore: new lightpush tests (#1571)
* new lightpush tests

* fixes after CI run

* split tests into 2 files

* small fix

* address code review comments

* small fix after CI run

---------

Co-authored-by: Danish Arora <35004822+danisharora099@users.noreply.github.com>
2023-09-19 15:51:03 +05:30
fbarbu15 aae1d9f68b
chore: move the failed retries on test level (#1573)
Co-authored-by: Sasha <118575614+weboko@users.noreply.github.com>
2023-09-18 11:48:47 +02:00
dependabot[bot] bb4fdaa248
chore(deps)(deps-dev): bump datastore-core from 9.2.2 to 9.2.3 (#1574)
Bumps [datastore-core](https://github.com/ipfs/js-stores) from 9.2.2 to 9.2.3.
- [Release notes](https://github.com/ipfs/js-stores/releases)
- [Commits](https://github.com/ipfs/js-stores/compare/datastore-core-v9.2.2...datastore-core-v9.2.3)

---
updated-dependencies:
- dependency-name: datastore-core
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Danish Arora <35004822+danisharora099@users.noreply.github.com>
2023-09-18 13:04:11 +05:30
dependabot[bot] 8312871789
chore(deps)(deps-dev): bump interface-datastore from 7.0.4 to 8.2.5 (#1575)
Bumps [interface-datastore](https://github.com/ipfs/js-stores) from 7.0.4 to 8.2.5.
- [Release notes](https://github.com/ipfs/js-stores/releases)
- [Commits](https://github.com/ipfs/js-stores/compare/interface-datastore-v7.0.4...interface-datastore-v8.2.5)

---
updated-dependencies:
- dependency-name: interface-datastore
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-17 00:55:20 +05:30
fbarbu15 b42601d156
chore: new filter tests (#1552)
* add bulk of tests

* refactored and improved tests

* add more comments

* fixes after CI run

* split filter tests into mulitple suites

* split filter tests into mulitple suites
2023-09-12 23:31:35 +02:00
Sasha db686b3f7a
chore!: revert typescript eslint plugins (#1551)
* force update lock file

* revert eslint upgrades

* revert both plugins
2023-09-08 20:32:06 +02:00
dependabot[bot] 2d7fff1e20
chore(deps)(deps-dev): bump @typescript-eslint/eslint-plugin (#1549)
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 5.62.0 to 6.6.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v6.6.0/packages/eslint-plugin)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/eslint-plugin"
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-08 21:50:05 +05:30
Danish Arora 6f09fbf4ed
feat: use the lowest latency peer for protocols (#1540)
* maintain pings in a hashmap

* convert `KeepAliveManager` into a singleton

* chore: fix an unrelated cyclic dependency error

* update `selectPeerForProtocol` to return peer with the lowest latency

* use the new KeepAliveManager API

* use the new API for `selectPeerForProtocol`

* add tests

* use PeerData to hold the ping instead of a new variable

* improve tests for readability

* move back KeepAliveManager from singleton

* reenable all tests

* minor improvements

* improve error handling

* convert .then() syntax to async/await
2023-09-08 21:36:55 +05:30
dependabot[bot] 2c0360bfe8
chore(deps)(deps): bump libp2p from 0.46.8 to 0.46.9 (#1544)
Bumps [libp2p](https://github.com/libp2p/js-libp2p) from 0.46.8 to 0.46.9.
- [Release notes](https://github.com/libp2p/js-libp2p/releases)
- [Changelog](https://github.com/libp2p/js-libp2p/blob/master/.release-please.json)
- [Commits](https://github.com/libp2p/js-libp2p/compare/libp2p-v0.46.8...libp2p-v0.46.9)

---
updated-dependencies:
- dependency-name: libp2p
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Danish Arora <35004822+danisharora099@users.noreply.github.com>
2023-09-08 00:39:40 +05:30
Danish Arora 81a52a8097
feat!: set peer-exchange with default bootstrap (#1469)
* set peer-exchange with default bootstrap

* only initialise protocols with bootstrap peers

* update package

* update package-lock

* refactor `getPeers` while setting up a protocol

* move codecs to `@waku/interfaces`

* lightpush: send messages to multiple peers

* only use multiple peers for LP and Filter

* fix: ts warnings

* lightpush: tests pass

* update breaking changes for new API

* move codecs back into protocol files

* refactor: `getPeers()`

* rm: log as an arg

* add tsdoc for getPeers

* add import

* add prettier rule to eslint

* add: peer exchange to sdk as a dep

* fix eslint error

* add try catch

* revert unecessary diff

* revert unecessary diff

* fix imports

* convert relaycodecs to array

* remove: peerId as an arg for protocol methods

* keep peerId as an arg for peer-exchange

* remove: peerId from getPeers()

* lightpush: extract hardcoded numPeers as a constant

* return all peers if numPeers is 0 and increase readability for random peers

* refactor considering more than 1 bootstrap peers can exist

* use `getPeers`

* change arg for `getPeers` to object

* address comments

* refactor tests for new API

* lightpush: make constant the class variable

* use `maxBootstrapPeers` instead of `includeBootstrap`

* refactor protocols for new API

* add tests for `getPeers`

* skip getPeers test

* rm: only from test

* move tests to `base_protocol.spec.ts`

* break down `getPeers` into a `filter` method

* return all bootstrap peers if arg is 0

* refactor test without stubbing

* address comments

* update test title

* move `filterPeers` to a separate file

* address comments & add more test

* make test title more verbose

* address comments

* remove ProtocolOptions

* chore: refactor tests for new API

* add defaults for getPeers

* address comments

* rm unneeded comment

* address comment: add diversity of node tags to test

* address comments

* fix: imports
2023-09-07 13:15:49 +05:30
dependabot[bot] 408b79d6a5
chore(deps)(deps-dev): bump @typescript-eslint/parser (#1538)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 5.62.0 to 6.6.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v6.6.0/packages/parser)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Danish Arora <35004822+danisharora099@users.noreply.github.com>
2023-09-07 11:21:37 +05:30
dependabot[bot] 2364b4f8e2
chore(deps)(deps): bump libp2p from 0.46.3 to 0.46.8 (#1534)
Bumps [libp2p](https://github.com/libp2p/js-libp2p) from 0.46.3 to 0.46.8.
- [Release notes](https://github.com/libp2p/js-libp2p/releases)
- [Changelog](https://github.com/libp2p/js-libp2p/blob/master/.release-please.json)
- [Commits](https://github.com/libp2p/js-libp2p/compare/libp2p-v0.46.3...libp2p-v0.46.8)

---
updated-dependencies:
- dependency-name: libp2p
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-05 23:39:49 +05:30
dependabot[bot] 3bf9cb83c0
chore(deps)(deps-dev): bump cspell from 7.0.1 to 7.3.2
Bumps [cspell](https://github.com/streetsidesoftware/cspell) from 7.0.1 to 7.3.2.
- [Release notes](https://github.com/streetsidesoftware/cspell/releases)
- [Changelog](https://github.com/streetsidesoftware/cspell/blob/main/CHANGELOG.md)
- [Commits](https://github.com/streetsidesoftware/cspell/compare/v7.0.1...v7.3.2)

---
updated-dependencies:
- dependency-name: cspell
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-04 07:10:14 +00:00
Danish Arora 78f64f60ee
chore: remove prettier, and default to eslint (#1495)
* rm: unwanted commit ff3ffdd138

* prettier: readds trailing commas

* update: .vscode settings to use eslint by default

* run eslint -- removes trailing commas

* remove: prettier

* remove linting from autogen proto

* address comments

* lint .eslintrc.json
2023-09-04 12:37:38 +05:30
Danish Arora 574a05ff68
chore: remove `aegir` as a dependency (#1525)
* remove aegir as a dep

* upgrade @libp2p/interface-compliance-tests

* update package-lock
2023-09-04 12:26:38 +05:30
fbarbu15 a904609e19 Merge branch 'master' of https://github.com/waku-org/js-waku into chore/add-dispatch-to-ci 2023-08-29 20:18:53 +03:00
dependabot[bot] df5f286e68
chore(deps)(deps): bump @libp2p/peer-id from 2.0.4 to 3.0.2 (#1512)
Bumps [@libp2p/peer-id](https://github.com/libp2p/js-libp2p) from 2.0.4 to 3.0.2.
- [Release notes](https://github.com/libp2p/js-libp2p/releases)
- [Changelog](https://github.com/libp2p/js-libp2p/blob/master/.release-please.json)
- [Commits](https://github.com/libp2p/js-libp2p/compare/prometheus-metrics-v2.0.4...logger-v3.0.2)

---
updated-dependencies:
- dependency-name: "@libp2p/peer-id"
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-28 22:12:23 +05:30
Danish Arora 2389977a98
chore!: refactor store protocol for readability (#1456)
* refactor store protocol for readability

* update interface

* fix: test

* rm: comments

* Update packages/core/src/lib/store/index.ts

Co-authored-by: fryorcraken <110212804+fryorcraken@users.noreply.github.com>

* fix commit

---------

Co-authored-by: fryorcraken <110212804+fryorcraken@users.noreply.github.com>
2023-08-28 13:19:47 +05:30
fbarbu15 617622c3ec manually triggerr ci with custom nim node image 2023-08-24 14:03:44 +03:00
dependabot[bot] 445f7e7cb8
chore(deps)(deps-dev): bump cspell from 7.0.0 to 7.0.1 (#1493)
Bumps [cspell](https://github.com/streetsidesoftware/cspell) from 7.0.0 to 7.0.1.
- [Release notes](https://github.com/streetsidesoftware/cspell/releases)
- [Changelog](https://github.com/streetsidesoftware/cspell/blob/main/CHANGELOG.md)
- [Commits](https://github.com/streetsidesoftware/cspell/compare/v7.0.0...v7.0.1)

---
updated-dependencies:
- dependency-name: cspell
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-21 21:45:00 +05:30
dependabot[bot] 0d9ea1b4a8
chore(deps)(deps-dev): bump datastore-core from 9.2.0 to 9.2.2 (#1492)
Bumps [datastore-core](https://github.com/ipfs/js-stores) from 9.2.0 to 9.2.2.
- [Release notes](https://github.com/ipfs/js-stores/releases)
- [Commits](https://github.com/ipfs/js-stores/compare/datastore-core-v9.2.0...datastore-core-v9.2.2)

---
updated-dependencies:
- dependency-name: datastore-core
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-19 13:58:15 +05:30
dependabot[bot] ba6b380da4
chore(deps)(deps-dev): bump @types/chai from 4.3.4 to 4.3.5 (#1490)
Bumps [@types/chai](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/chai) from 4.3.4 to 4.3.5.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/chai)

---
updated-dependencies:
- dependency-name: "@types/chai"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-17 21:31:37 +05:30
dependabot[bot] 4db7fa1080
chore(deps)(deps-dev): bump @types/dockerode from 3.3.17 to 3.3.19 (#1489)
Bumps [@types/dockerode](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/dockerode) from 3.3.17 to 3.3.19.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/dockerode)

---
updated-dependencies:
- dependency-name: "@types/dockerode"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-17 20:55:30 +05:30
Danish Arora aab9c08cae
feat(dns-discovery): set default for `NodeRequirements` (#1466)
* add: test for multi enrtree + static multiaddr

* wrap up test

* rm: only

* move test to optional file

* dns-disc: setup default for node requirements & move to constants

* chore: restructure DNS Discovery for better readability

* fix: build

* fix: type import

* fix: test expect

* rm: only

* update packagelock

* use new libp2p interface

* fix linting errors
2023-08-17 19:50:35 +05:30
Danish Arora 7a805a277a
bump nwaku to 0.19 (#1485) 2023-08-16 23:23:37 +05:30
Danish Arora 87717981eb
chore: upgrade libp2p and related deps (#1482)
* chore: update noise

* update: package.lock

* update: @chainsafe/libp2p-gossipsub

* rm unwanted libp2p interface deps & bump up libp2p

* refactor code for new deps

* update: new package.lock

* setup prettier, refactor eslint  and rm trailing commas

* update package.lock

* fix build

* import type for interface

* fix imports for merge

* update typedoc exports

* add: CustomEvent import

* use new libp2p interface

* add aegir as dev dep for tests
2023-08-16 20:18:13 +05:30
Danish Arora 3d24cd6e17
re-enable @waku/tests (#1472) 2023-08-16 12:44:53 +05:30
Danish Arora 1548a4f8e4
chore(peer-exchange): refactor/fix compliance test (#1478)
* use `peer:identify` instead of `peer:update`

* dial the peer after initialising peer-exchange
2023-08-16 11:14:33 +05:30
dependabot[bot] 902914420c
chore(deps)(deps-dev): bump cspell from 6.31.2 to 7.0.0 (#1473)
Bumps [cspell](https://github.com/streetsidesoftware/cspell) from 6.31.2 to 7.0.0.
- [Release notes](https://github.com/streetsidesoftware/cspell/releases)
- [Changelog](https://github.com/streetsidesoftware/cspell/blob/main/CHANGELOG.md)
- [Commits](https://github.com/streetsidesoftware/cspell/compare/v6.31.2...v7.0.0)

---
updated-dependencies:
- dependency-name: cspell
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Danish Arora <35004822+danisharora099@users.noreply.github.com>
2023-08-12 16:11:59 +05:30
Sasha 51f9261a16
chore: update dependencies (#1460)
* update to latest prettier

* fix with prettier: added trailing comma

* remove deps from test package, add sinon types, fix type hack in a test, update esling prettier config

* update typescript eslint plugins

* update package-locks
2023-08-11 15:14:02 +02:00
Danish Arora 7227657d69
feat(tests): several enrtree + static multiaddr for bootstrap (#1448)
* add: test for multi enrtree + static multiaddr

* wrap up test

* rm: only

* move test to optional file

* fix: build

* fix: test expect

* rm: only
2023-08-11 13:52:44 +05:30
Danish Arora 462d614701
refactor peer exchange compliance test (#1468) 2023-08-10 11:53:53 +05:30
Sasha 75808ffc9d
chore: test agains Fleets and add optional tests (#1432)
* test Prod and Test fleets in CI

* compute predefined nodes once

* remove async

* add optional test step

* fix command
2023-08-07 10:27:16 +02:00
Danish Arora 0b8936f1f1
feat: ConnectionManager extends EventEmitter & exposed on the Waku interface (& minor improvements) (#1447)
* 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
2023-07-31 13:54:39 +05:30
Danish Arora 6ce898d771
feat: enable event emission for peer discovery/connection in ConnectionManager (#1438)
* disable libp2p autodial

* improve logs for peer-exchange

* add a function to fetch discovered and connected peers by discovery

* connection-manager: introduce event emissions by discovery

* write a spec test for events

* minor code improvement for peer-exchange

* rm: comment

* rename peer event result interface

* switch to using libp2p EventEmitter

* rename variables for readability

* reset peer-exchange spec file

* address review

* test: minor refactor

* fix: failing test

* increase peer IDs to test against for attemptDial

* improve structuring
2023-07-26 22:51:55 +05:30
Danish Arora d483644a4b
chore!: remove filter v1 (#1433)
* 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
2023-07-26 11:30:48 +05:30
dependabot[bot] 83db28956f
chore(deps)(deps-dev): bump @typescript-eslint/parser (#1436)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 5.59.8 to 5.62.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.62.0/packages/parser)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-25 22:41:55 +05:30
Sasha 420e6c698d
feat!: upgrade to libp2p@0.45 (#1400)
* 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
2023-07-25 02:17:52 +02:00
Danish Arora 376bcf2a0a
chore: new eslint rules (#1416)
* add new eslint rules

* remove eslint scripts for build-utils

* refactor all files to fix breaking changes with new rules

* add a basic eslintrc for build-utils

* test

* fix more linting errors

* test

* update package.lock

* update stopping container

* update px node spec

* enable tests

* fix: conn manager events

* fix: peer exchange

* increase timeout on px test
2023-07-24 16:04:24 +05:30
Danish Arora d2f675d690
feat: spec test for connection manager (#1417)
* add sinon

* use new API for libp2p to attach event listener

* add a test for event emitter/listening

* add tests to check peer dials happen as expected for bootstrap peers

* add tests for peer-exchange

* remove only and run all tests

* chore: rm extra packages

* chore(deps): revert temp

* chore(deps): revert temp

* add sinon

---------

Co-authored-by: jacques metevier <jmetevier@gmail.com>
2023-07-24 12:08:54 +05:30
Danish Arora 2cd04a1315
Merge branch 'master' into chore--rm-extra-packages 2023-07-15 17:57:12 +02:00
fryorcraken.eth 008bb6ca2e
test: `topics` arg renamed to `topic` in nwaku 2023-06-30 15:14:01 +10:00
fryorcraken.eth fff5d66d2f
test: do not run two set of nodes
`runNodes` was called twice for custom pubsub test.
2023-06-30 15:14:00 +10:00
fryorcraken.eth 3b1f0adb43
test: bump nwaku to v0.18.0 2023-06-30 15:14:00 +10:00
jacques metevier 5f927a7243 chore: rm extra packages 2023-06-08 11:52:27 -07:00
Danish Arora f32d7d9fe0
feat: allow passing of multiple ENR URLs to DNS Discovery & dial multiple peers in parallel (#1379)
* allow passing of multiple ENRs to DNS Discovery

* add test for >1 ENR to DNS Disc

* address comments

* feat: dial multiple peers in parallel (#1380)

* ensure discovered peers are dialed in parallel

* cap parallel dials

* drop connection to bootstrap peer if >set connected

* switch to american english

* improve promises and error logging
2023-06-08 14:26:29 +02:00
fryorcraken.eth 44496f0158
chore: bump eslint to 8.41.0
Also ensures that eslint is present in packages that uses it and removed
from packages not using it.
2023-06-06 16:07:49 +10:00
Danish Arora 951ebdac9d
feat!: rename package from @waku/create to @waku/sdk (#1386)
* feat!(@waku/sdk): rename package from @waku/create to @waku/sdk

* feat: proxy @waku/core and @waku/utils through @waku/sdk

* address comments

* update package-lock

* Update .size-limit.cjs

Co-authored-by: fryorcraken.eth <110212804+fryorcraken@users.noreply.github.com>

* integrate to release please

---------

Co-authored-by: Sasha <118575614+weboko@users.noreply.github.com>
Co-authored-by: fryorcraken.eth <110212804+fryorcraken@users.noreply.github.com>
Co-authored-by: Sasha <oleksandr@status.im>
2023-06-05 13:40:13 +02:00
dependabot[bot] 81c34eb3ba
chore(deps)(deps-dev): bump @typescript-eslint/parser (#1387)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 5.54.1 to 5.59.8.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.59.8/packages/parser)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-02 01:41:19 +05:30
dependabot[bot] ca3e70aa0f
chore(deps)(deps-dev): bump @libp2p/interface-peer-discovery-compliance-tests
Bumps [@libp2p/interface-peer-discovery-compliance-tests](https://github.com/libp2p/js-libp2p-interfaces) from 2.0.5 to 2.0.8.
- [Release notes](https://github.com/libp2p/js-libp2p-interfaces/releases)
- [Commits](https://github.com/libp2p/js-libp2p-interfaces/compare/@libp2p/interface-peer-discovery-compliance-tests-v2.0.5...@libp2p/interface-peer-discovery-compliance-tests-v2.0.8)

---
updated-dependencies:
- dependency-name: "@libp2p/interface-peer-discovery-compliance-tests"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-23 23:53:32 +00:00
Danish Arora b2caf10d03
fix: go-waku interop tests (#1378)
* fix interop for filter v1

* change to better desc
2023-05-23 23:45:08 +05:30
Danish Arora 6e2d1d674a
update nwaku image in run-tests script (#1375) 2023-05-23 16:53:30 +05:30
Danish Arora 8d0e647966
feat!: filter v2 (#1332)
* 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>
2023-05-23 16:06:46 +05:30
Danish Arora 94e1abdd65
chore: upgrade nwaku to v0.17.0 (#1364) 2023-05-19 01:52:06 +05:30
Danish Arora 60304bc908
chore: rename file to node.ts (#1363)
* rename file to node.ts

* update imports
2023-05-19 01:38:43 +05:30
Danish Arora d80042fc47
fix: failing px tests for nwaku master (#1355)
* move dockerode into a separate class

* rename `nwaku` to `WakuNode` to generalise
- nwaku and go-waku were running through
`nwaku.ts`

* move wakunode and docker into one subdir

* rename node to `NimGoNode` and update imports in tests

* update docker to host all containers in a specific network

* update the peer exchange test

* assign static IPs to containers

* enable relay on px interop

* fix px compliance tests

* fix import
2023-05-19 01:28:49 +05:30
Sasha 72f97d4545
feat: add 1MB restriction to LightPush and Relay (#1351)
* add 1MB restriction to LightPush and Relay

* fix condition

* improve lightPush test

* update test

* add isomorphic-webcrypto

* import module

* add errors to SendResult and tests

* fix lint
2023-05-17 23:40:52 +02:00
Sasha ef87af6e7a
chore: add iterator timeout and unblock main thread (#1357)
* add iterator timeout
* add idle state to generator
* add js-doc and iterator option
2023-05-17 10:38:20 +02:00
dependabot[bot] 27657e45a1
chore(deps)(deps-dev): bump typescript from 4.9.5 to 5.0.4
Bumps [typescript](https://github.com/Microsoft/TypeScript) from 4.9.5 to 5.0.4.
- [Release notes](https://github.com/Microsoft/TypeScript/releases)
- [Commits](https://github.com/Microsoft/TypeScript/compare/v4.9.5...v5.0.4)

---
updated-dependencies:
- dependency-name: typescript
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-17 05:58:36 +00:00
dependabot[bot] a543d4ba71
chore(deps)(deps-dev): bump @types/dockerode from 3.3.15 to 3.3.17 (#1350)
Bumps [@types/dockerode](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/dockerode) from 3.3.15 to 3.3.17.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/dockerode)

---
updated-dependencies:
- dependency-name: "@types/dockerode"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-05-15 15:09:14 +05:30
Sasha 014c52a4ac
fix: add timeout to utils test (#1348) 2023-05-12 15:28:01 +02:00
Sasha 7daa9d05bf
feat: toSubscriptionIterator impl for IReceiver (#1307) 2023-05-09 20:15:37 +02:00
dependabot[bot] f1c63ee069
chore(deps)(deps-dev): bump prettier from 2.8.7 to 2.8.8
Bumps [prettier](https://github.com/prettier/prettier) from 2.8.7 to 2.8.8.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/2.8.7...2.8.8)

---
updated-dependencies:
- dependency-name: prettier
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-04 16:24:58 +00:00
Danish Arora b7d4b675bd
fix: peer-exchange go-waku interop (#1300)
* merge: master

* fix: CI

* use: js script instead of shell script to run precheck and mocha

* check for peer id instead of ws multiaddr in response
2023-04-19 13:07:29 +05:30
dependabot[bot] 3df5f8b376
chore(deps)(deps): bump @libp2p/peer-id from 2.0.2 to 2.0.3
Bumps [@libp2p/peer-id](https://github.com/libp2p/js-libp2p-peer-id) from 2.0.2 to 2.0.3.
- [Release notes](https://github.com/libp2p/js-libp2p-peer-id/releases)
- [Commits](https://github.com/libp2p/js-libp2p-peer-id/compare/@libp2p/peer-id-v2.0.2...@libp2p/peer-id-v2.0.3)

---
updated-dependencies:
- dependency-name: "@libp2p/peer-id"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-17 05:11:12 +00:00
Danish Arora dc3774c0ed
feat: use nwaku/go-waku docker images instead of building binaries (#1259)
* merge: master

* fix: CI

* use: js script instead of shell script to run precheck and mocha

* use `console.log` instead of `debug.log` for `run-tests.js`
2023-04-17 10:29:36 +05:30
dependabot[bot] 49dedfbd5b
chore(deps)(deps-dev): bump prettier from 2.8.4 to 2.8.7
Bumps [prettier](https://github.com/prettier/prettier) from 2.8.4 to 2.8.7.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/2.8.4...2.8.7)

---
updated-dependencies:
- dependency-name: prettier
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-05 05:01:50 +00:00
Sasha 6abee4880f
chore: use root .prettierignore (#1285)
* use root .prettierignore for fix and check
2023-04-03 23:39:59 +02:00
fryorcraken.eth 1dd32101ba
fix(dns-discovery): Use DOH list from dns-query
To make the library more robust as not all DOH allow CORS. Previous
default DOH got CORS disabled.
2023-04-03 16:05:21 +10:00
Sasha e11e5b4870
feat!: add and implement IReceiver (#1219)
- remove extend Relay by GossipSub and use it as public property;
- detach GossipSub initialisation;
2023-03-31 03:17:41 +02:00
dependabot[bot] c19212ebd1
chore(deps)(deps-dev): bump cspell from 6.29.0 to 6.31.1
Bumps [cspell](https://github.com/streetsidesoftware/cspell) from 6.29.0 to 6.31.1.
- [Release notes](https://github.com/streetsidesoftware/cspell/releases)
- [Changelog](https://github.com/streetsidesoftware/cspell/blob/main/CHANGELOG.md)
- [Commits](https://github.com/streetsidesoftware/cspell/compare/v6.29.0...v6.31.1)

---
updated-dependencies:
- dependency-name: cspell
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-29 04:06:00 +00:00
dependabot[bot] 9fbb989dc2
chore(deps)(deps-dev): bump @typescript-eslint/eslint-plugin
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 5.55.0 to 5.57.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.57.0/packages/eslint-plugin)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/eslint-plugin"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-29 03:22:08 +00:00
dependabot[bot] 600309425d
chore(deps)(deps-dev): bump @libp2p/bootstrap from 6.0.0 to 6.0.3 (#1256)
Bumps [@libp2p/bootstrap](https://github.com/libp2p/js-libp2p-bootstrap) from 6.0.0 to 6.0.3.
- [Release notes](https://github.com/libp2p/js-libp2p-bootstrap/releases)
- [Changelog](https://github.com/libp2p/js-libp2p-bootstrap/blob/master/CHANGELOG.md)
- [Commits](https://github.com/libp2p/js-libp2p-bootstrap/compare/v6.0.0...v6.0.3)

---
updated-dependencies:
- dependency-name: "@libp2p/bootstrap"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Danish Arora <35004822+danisharora099@users.noreply.github.com>
2023-03-24 16:39:49 +05:30
Danish Arora 5b0c3c3cac
feat: compliance test for peer-exchange discovery (#1186)
* skip fleet test for CI

* add: compliance test

* fix: check CI

* fix: nwaku node name

* remove: setTimeout

* force typecasting instead of ts-ignore

* rm: only for the test

* increase readability
2023-03-23 16:06:51 +05:30
fryorcraken.eth de0a2e595c
test: bump nwaku to v0.16.0 2023-03-23 14:51:10 +11:00
Sasha 0f6a594644
feat!: use ISender and deprecate Light Push .push (#1217) 2023-03-21 02:07:59 +01:00
fryorcraken.eth 3a92355543
chore: code improvement
- Replace exception pattern with a result pattern as it better fits the
usage.
- merge few maps to prefer chaining to assign var after var.
- Make `isDefined` type helper a common util function
2023-03-21 08:59:25 +11:00
dependabot[bot] 7ebd20bca4
chore(deps)(deps-dev): bump @typescript-eslint/eslint-plugin
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 5.54.1 to 5.55.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.55.0/packages/eslint-plugin)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/eslint-plugin"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-16 20:31:48 +00:00
Danish Arora a20b797c5b
chore: refactor peer-exchange according to nwaku 0.15.0 (#1193)
* merge with master: adhere acc to updated API

* bump go-waku to 0.5.2
2023-03-14 13:56:15 +05:30
Danish Arora a30b2bd747
chore!: add exports map to @waku/utils (#1201)
* add exports map

* merge: master

* export  subdir with default export path

* import according to the export path
2023-03-14 10:10:38 +05:30
fryorcraken.eth 628ac50d71
feat!: expose pubsub topic in `IDecodedMessage`
Needed for deterministic message hash.

Ref: #1208
2023-03-13 13:49:24 +11:00
fryorcraken.eth 130c49b636
chore!: extract decoder code
Separation of concerns by moving decoding logic in new class.
2023-03-10 10:23:38 +11:00
dependabot[bot] 9e03644f48
chore(deps)(deps-dev): bump cspell from 6.26.3 to 6.28.0
Bumps [cspell](https://github.com/streetsidesoftware/cspell) from 6.26.3 to 6.28.0.
- [Release notes](https://github.com/streetsidesoftware/cspell/releases)
- [Changelog](https://github.com/streetsidesoftware/cspell/blob/main/CHANGELOG.md)
- [Commits](https://github.com/streetsidesoftware/cspell/compare/v6.26.3...v6.28.0)

---
updated-dependencies:
- dependency-name: cspell
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-09 23:18:07 +00:00
fryorcraken.eth da1b18d995
feat: export `Decoder`, `Encoder` and `DecodedMessage` types from root
Fixes #1010
2023-03-08 09:52:27 +11:00
dependabot[bot] 28ec631432
chore(deps)(deps-dev): bump @typescript-eslint/eslint-plugin
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 5.53.0 to 5.54.1.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.54.1/packages/eslint-plugin)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/eslint-plugin"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-06 23:23:40 +00:00
dependabot[bot] 6e3953e210
chore(deps)(deps): bump @libp2p/peer-id from 2.0.1 to 2.0.2
Bumps [@libp2p/peer-id](https://github.com/libp2p/js-libp2p-peer-id) from 2.0.1 to 2.0.2.
- [Release notes](https://github.com/libp2p/js-libp2p-peer-id/releases)
- [Commits](https://github.com/libp2p/js-libp2p-peer-id/compare/@libp2p/peer-id-v2.0.1...@libp2p/peer-id-v2.0.2)

---
updated-dependencies:
- dependency-name: "@libp2p/peer-id"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-01 16:14:08 +00:00
fryorcraken.eth 0b93fdd76d
chore: extract exports path from package.json for rollup
Also sort eslint to lint JavaScript ESM files successfully.

Fixes #933
2023-03-01 15:46:21 +11:00
dependabot[bot] 35dab5392d
chore(deps)(deps-dev): bump eslint from 8.34.0 to 8.35.0
Bumps [eslint](https://github.com/eslint/eslint) from 8.34.0 to 8.35.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.34.0...v8.35.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-27 16:25:16 +00:00
fryorcraken.eth 5cf8ed2030
chore!: update message.proto: payload and content topic are always defined
Ref: https://github.com/vacp2p/waku
2023-02-27 14:00:33 +11:00
fryorcraken.eth 31740e7a3d
chore: add `build:esm` script so it can be called from root script 2023-02-27 14:00:31 +11:00
dependabot[bot] d3156cdefb
chore(deps)(deps-dev): bump @typescript-eslint/eslint-plugin
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 5.52.0 to 5.53.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.53.0/packages/eslint-plugin)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/eslint-plugin"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-23 16:11:17 +00:00
fryorcraken.eth 8748484048
test: bump go-waku to 0.5.0 and re-enable a CI run against it 2023-02-20 21:32:42 +11:00
Danish Arora 24c24cc27d
feat!: ConnectionManager and KeepAliveManager (#1135)
* initialises ConnectionManager and KeepAliveManager
ports from previous PR and makes necessary improvements and reductions

* address: comments

* map a ConnectionManager instance with a WakuNode

* abstract event listeners logic

* minor fix

* minor cleaning

* instantiate KeepAliveManager instead of extending

* fix build and enable all tests

* fix CI

* address review

* refine event handlers
- only removes the previously attached callback from
the event handlers while shutting down service
- removes the requirement of passing around
`keepAliveOptions` and `relay` inside of
`ConnectionManager`

* add verbosity to interface

* make `dialPeer()` more readable

* use set to push tags to avoid duplicates

* fix: merge build

* remove: logging function

* rename startService and stopService

* remove: future TODO

added that as part of future refactor

* use the new libp2p api

* initialise options in constructor//fix TS error

* remove stale export

* address principal review

* reset test timeout to master
2023-02-20 15:30:59 +05:30
dependabot[bot] 6328ce0c39
chore(deps)(deps-dev): bump eslint from 8.33.0 to 8.34.0
Bumps [eslint](https://github.com/eslint/eslint) from 8.33.0 to 8.34.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.33.0...v8.34.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-17 16:09:45 +00:00
Danish Arora 8d8874d2bb
fix: enable all tests (#1184) 2023-02-17 13:59:21 +05:30
Danish Arora 1b41569023
fix: remove initialising peer-exchange while creating a node (#1158)
* 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
2023-02-17 13:27:37 +05:30
dependabot[bot] 431815cf32
chore(deps)(deps-dev): bump cspell from 6.22.0 to 6.26.3
Bumps [cspell](https://github.com/streetsidesoftware/cspell) from 6.22.0 to 6.26.3.
- [Release notes](https://github.com/streetsidesoftware/cspell/releases)
- [Changelog](https://github.com/streetsidesoftware/cspell/blob/main/CHANGELOG.md)
- [Commits](https://github.com/streetsidesoftware/cspell/compare/v6.22.0...v6.26.3)

---
updated-dependencies:
- dependency-name: cspell
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-17 01:57:03 +00:00
Danish Arora d8419d9e5c
feat: nwaku interop test for peer-exchange (#1129)
* handle a breaking edge case
- changes interval from static to increasing
- handles an edge case which resulted in unwanted return
from a function

* modularise code & make defaults configurable
- breaks the backoff code into a separate function
- makes default values configurable
- improve interval handling

* clean code for checking peer in peerStore

* address comments

* rename `backoff` to `abort`

* add locally run nwaku interop test for peer-exchange

* replace `--listen-address` with `--nat:extip`

* address improvements
2023-02-17 01:07:44 +05:30
fryorcraken.eth f66e9835f1
test: nwaku JSON RPC API now uses base64 encoding 2023-02-16 13:45:25 +11:00
Sasha f945eb90c4
feat: add mocha to dns-discovery (#1154) 2023-02-11 22:25:11 +01:00
fryorcraken.eth d73f2a84db
chore: remove usage of jsdom 2023-02-10 19:44:59 +11:00
fryorcraken.eth cb6d464021
chore: bump cspell 2023-02-10 16:09:05 +11:00
fryorcraken.eth 0eb7ae5781
chore: bump and install @types/chai 2023-02-10 15:37:36 +11:00
fryorcraken.eth c0bbfd32c3
chore: bump and install @types/mocha 2023-02-10 15:32:38 +11:00
fryorcraken.eth 6b4dc1acf2
chore: bump eslint, prettier and related plugins 2023-02-10 15:18:29 +11:00
fryorcraken.eth 938157560f
chore: bump chai
Also install mocha in packages that uses it.
2023-02-10 14:02:02 +11:00
fryorcraken.eth eb3443c4b6
chore: bump mocha
Also install mocha in packages that uses it.
2023-02-10 13:59:44 +11:00
fryorcraken.eth 12d86e6abc
chore!: bump typescript
`module: "nodenext"` has been introduced. Enabling it for NodeJS tests
only.
2023-02-10 13:54:41 +11:00
fryorcraken.eth 88cc76d2b8
chore!: bump all prod dependencies 2023-02-10 13:06:33 +11:00
fryorcraken.eth c2cef9a319
chore: run `npm update` 2023-02-10 08:32:41 +11:00
fryorcraken.eth 719ec8e2e7
chore: fix dev dependencies for tests package 2023-02-09 19:31:12 +11:00
fryorcraken.eth 803ae7bd8e
chore!: bump libp2p dependencies 2023-02-09 19:30:59 +11:00
Danish Arora 2a7d72be14
chore: decrease delay on the peer-exchange tests (#1141)
* decrease timeouts for peer-exchange tests

* reset dns test timeout
2023-02-08 11:09:52 +05:30
Danish Arora b33306655a
chore: move libp2p and byte utils to a single `utils` package (#1149)
* move libp2p and byte utils to a single `utils`
package

* set package version to 0.0.1
2023-02-06 11:22:36 +05:30
Danish Arora 8910a6d76a
chore: move args for `createEncoder` into non-repeating `options` & fix typedoc (#1146)
* move args for `createEncoder` into non-repeating `options` & fix typedoc

* update tests with new API
2023-02-02 11:37:28 +05:30
Danish Arora 10b3898762
chore: move protocols `CreateOptions` into interfaces (#1145)
* move protocols `CreateOptions` into interfaces and
add possible TODO

* remove: createOptions for PeerExchange

* update test with new API
2023-02-02 08:02:06 +05:30
Danish Arora 11819fc7b1
feat: DNS discovery as default bootstrap discovery (#1114)
* use DNS discovery as default bootstrap discovery

* fix: failing CI

* fix: typo

* introduce tagging, components & explicit tests

    libp2p wasn't by default tagging peers with dns-discovery as
"bootstrap"
    -- we are manually now tagging peers with "dns-discovery", and then
    running tests according to that

* fix: package installs

* fix: typedoc CI

* change tag name from dns-discovery to bootstrap

* update tag name in test

* fix CI

* address review

* add: prod enrtree and use as default
2023-01-31 19:47:46 +05:30
fryorcraken.eth afa7262604
test: replace nwaku ip with local ip 2023-01-30 20:08:04 +11:00
fryorcraken.eth c8fa8ea20e
chore: remove unnecessary compilation flag for nwaku 2023-01-30 20:08:04 +11:00
fryorcraken.eth 171fd1e6df
fix: randomize the first port tried by portfinder 2023-01-30 20:07:46 +11:00
Danish Arora 380ba6987a
disable tests connecting to test fleet on the CI (#1138) 2023-01-30 11:29:12 +05:30
Danish Arora cc1d8bb3d5
feat: change DoH DNS provider (#1131)
* fix: change DoH DNS provider
opendns did not support CORS -- switched it with AhaDNS that does not
persist logs

* Update packages/dns-discovery/src/dns_over_https.ts

Co-authored-by: fryorcraken.eth <110212804+fryorcraken@users.noreply.github.com>

* add ahadns to cspell

* increase timeout on compliance test
possibly the new dns provider we use is taking longer than
opendns to resolve is why the test did not pass with
5000ms

Co-authored-by: fryorcraken.eth <110212804+fryorcraken@users.noreply.github.com>
2023-01-24 23:42:21 +05:30
Danish Arora 5fae073ebd
fix: edge case with peer-exchange (#1125)
* address comments

* rename to maxRetries

* use timeout instead of interval

* remove: only from test
2023-01-24 22:50:16 +05:30
weboko 913573a25a
remove no-extraneous-dependencies lint options, move packages to devDep section 2023-01-19 22:14:17 +01:00
Danish Arora 0b083201c6
chore: refactor dns-discovery & add tests (#1084)
* temp-add: debugging

* fix: ENR root signature verification

the nodes in the TXT/fleet were updated causing the publicKey to change
and verification to fail

* add: libp2p compliance tests

* fix: bind function
`bind` was being passed an empty object reference

* fix: tests

* merge with master

* chore: address review
- move compliance test to dev dependency
- move global mocha timeout to test specific timeout

* chore: update enrtree pubkey and fqdn
ref: https://github.com/status-im/infra-nim-waku/issues/64

* chore: update libp2p-peer-discovery-compliance-tests
ref: https://github.com/libp2p/js-libp2p-interfaces/pull/328

* chore: fix typedoc errors

* add: dns-discovery to dependencies
2023-01-06 12:30:06 +05:30
danisharora099 93b12e59c9
fix: failing CI check
add `@waku/peer-exchange` as a dependency to `tests`
2023-01-05 12:54:29 +05:30
weboko bcc7c451ed
Merge branch 'master' of github.com:waku-org/js-waku into weboko/missing-dep 2023-01-04 21:51:37 +01:00
Danish Arora e0e8e655f8
chore: fix peer discovery peer-exchange (#1069)
* fix: discovery for peer-exchange

use the bootstrap node as a starter to send a
peer-exchange query to, and emit the response
peers received from it for further connection to
libp2p using the peer-discovery interface

* init: test for libp2p bootstrap/discovery for
peer-exchange

* temp-add: console.logs for easier debugging

* add: peer discovery test & rm: console.logs

* chore: rm  and redundant spec test

* add: interval for peer exchange queries
we set an interval to query a peer every 5 minutes
for peer exchange, and add new peers if found

* address: reviews
- add `type` for imports not using values
- better handling for peer-exchange query interval

* chore: fix tsc for peer-exchange
use node16 for module resolution

* chore: add extra exports to fix typedoc warnings
ref: https://github.com/TypeStrong/typedoc/issues/1739
2023-01-04 14:35:44 +05:30
weboko fb9bb35042
fix: move deps from dev deps 2022-12-23 00:24:38 +01:00
weboko ae764bc31e
add missing deps to workspaces 2022-12-23 00:18:16 +01:00
fryorcraken.eth edf5d438cb
test: remove `--nat` option when starting nwaku 2022-12-15 13:54:07 +11:00
dependabot[bot] 872c9cd0df
build(deps-dev): bump cspell from 5.21.2 to 6.17.0
Bumps [cspell](https://github.com/streetsidesoftware/cspell) from 5.21.2 to 6.17.0.
- [Release notes](https://github.com/streetsidesoftware/cspell/releases)
- [Changelog](https://github.com/streetsidesoftware/cspell/blob/main/CHANGELOG.md)
- [Commits](https://github.com/streetsidesoftware/cspell/compare/v5.21.2...v6.17.0)

---
updated-dependencies:
- dependency-name: cspell
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-13 13:46:02 +11:00
fryorcraken.eth 9ac92ef99d
test: use LightNode interface 2022-12-13 10:58:07 +11:00
fryorcraken.eth f743cfd1ca
chore: rename node interfaces to include `Node` in name
Also rename node with only relay to `RelayNode`.
2022-12-12 22:36:14 +11:00
fryorcraken.eth 8f01a453f7
test: usage of `DecodedMessage` class is preferred
This is because `IDecodedMessage` does not include all possible field of
messages from a specific decoder (ie, signature public key, etc) so
usage of the `DecodedMessage` class associated with the used decoder is
preferred.
2022-12-12 22:13:47 +11:00
fryorcraken.eth cc691e26ce
feat: added `I` prefix to message/codec interfaces
To make it easier to differentiate with their implementations.
2022-12-12 22:13:46 +11:00
Danish Arora d6de62a391
chore: remove relay as default when starting nwaku for tests (#1044)
* chore: redeploy

* remove: relay as default for nwaku

* address: comments

* remove relay as default and add where needed

* Update packages/tests/tests/light_push.node.spec.ts

Co-authored-by: fryorcraken.eth <110212804+fryorcraken@users.noreply.github.com>

Co-authored-by: fryorcraken.eth <110212804+fryorcraken@users.noreply.github.com>
2022-12-12 11:08:08 +05:30
Danish Arora eecdb6aeeb
chore: upgrade to node 18 (#1061)
* chore: change `localhost` -> `127.0.0.1`

There is a change in how Node does DNS resolution in Node 18 vs
16 -- `localhost` resolves to `::1`, which is the equivalent of
`127.0.0.1` but in IPv6 instead of IPv4. The server however is
only listening on IPv4.
Reference:
https://github.com/nodejs/node/issues/40702#issuecomment-958143154

* refactor: change node version on CI from 16 to 18
2022-12-12 10:52:17 +05:30
Danish Arora 6e4ff0f2b8
fix: revert timeout on test (#1059) 2022-12-07 20:37:10 +05:30
Danish Arora 0ca7fd790c
feat!: implement peer exchange (#1027)
* wip -- yet to test

* update: draft

* wip

* support passing flags manually to nwaku node

* refactor peer-exchange test

* switch response from uint8array to ENR

* rm: unnecesary logs

* implement clas

* fix: for loop

* init-wip: directories

* setup: new package & fix circular deps

* bind a response handler

* wip: refactor & update test

* test logs

* wip code - debugging

* address: comments

* Update packages/core/src/lib/waku_peer_exchange/peer_discovery.ts

Co-authored-by: fryorcraken.eth <110212804+fryorcraken@users.noreply.github.com>

* Update packages/core/src/lib/waku_peer_exchange/peer_discovery.ts

Co-authored-by: fryorcraken.eth <110212804+fryorcraken@users.noreply.github.com>

* address: comments

* address: comments

* address: comments

* address: comments

* address: comments

* fix: test build

* refactor

* fix: build

* comply with API

* numPeers: use number instead of bigint

* fix: build

* Update packages/peer-exchange/package.json

Co-authored-by: fryorcraken.eth <110212804+fryorcraken@users.noreply.github.com>

* Update packages/peer-exchange/src/waku_peer_exchange.ts

Co-authored-by: fryorcraken.eth <110212804+fryorcraken@users.noreply.github.com>

* Update packages/peer-exchange/src/waku_peer_exchange.ts

Co-authored-by: fryorcraken.eth <110212804+fryorcraken@users.noreply.github.com>

* Update packages/peer-exchange/src/waku_peer_exchange.ts

Co-authored-by: fryorcraken.eth <110212804+fryorcraken@users.noreply.github.com>

* address: comments, add eslint config

* Update packages/peer-exchange/.eslintrc.cjs

Co-authored-by: fryorcraken.eth <110212804+fryorcraken@users.noreply.github.com>

* Update packages/peer-exchange/src/index.ts

Co-authored-by: fryorcraken.eth <110212804+fryorcraken@users.noreply.github.com>

* address comments

* test works with test fleet

* rm: only for px test => run all tests

* fix: tests

* reorder packages for build, and fix imports

* remove: px test doesnt work with local nodes

* chore: move proto into a separate package

* fix: proto dir

* fix: build

* fix: ci

* add: index for proto

* fix: ci

* Update packages/proto/package.json

Co-authored-by: fryorcraken.eth <110212804+fryorcraken@users.noreply.github.com>

* address comments

* chore: run failing test with higher timeout

* chore: run failing test with higher timeout

* fix: ci

Co-authored-by: fryorcraken.eth <110212804+fryorcraken@users.noreply.github.com>
2022-12-07 11:35:30 +05:30
fryorcraken.eth 33ed43c068
feat: `waitForRemotePeer` can now be directly imported from `@waku/core` 2022-12-05 15:14:51 +11:00
fryorcraken.eth f7fabec8b3
feat: easy import by having an export map for each type of encryption 2022-12-05 15:14:17 +11:00
fryorcraken.eth e8efd5e962
feat!: export user functions from package root
`createEncoder`, `createDecoder` and `DecodedMessage` are function/types
useful to the user so they should have easy access to it.

We still export `Decoder` and `Encoder` but in a path so it cam be
re-used by `@waku/message-encryption`.
2022-12-05 09:34:17 +11:00
fryorcraken.eth ad15f861c3
feat!: hide `Decoder`/`Encoder` classes to user
Reasoning: by exposing the `Decoder` and `Encoder` classes to the user,
the user may care about them, try to use the method etc.

By "hiding" them away and providing `create*` help, the aim is for the
user to just call a function instead of instantiating a class.

Also, `V0` does not provide much information to the user so removing it.
2022-12-05 09:34:17 +11:00
fryorcraken.eth 88c6ec6ef4
chore: add '.js' extensions to local import
As per ESM standard.
2022-12-02 15:54:30 +11:00
fryorcraken.eth 2dddaa193a
chore: merge tsconfig
No need to duplicate the config.
2022-12-02 15:54:30 +11:00
fryorcraken.eth 2a0b06f361
test: use `createLightNode` instead of a full node
As full node was only necessary due to an issue nwaku v0.11.

Ref: https://github.com/status-im/nwaku/pull/1090
2022-11-21 10:52:33 +11:00
danisharora099 100eb4c4b4
Merge branch 'master' into danisharora/cursor-support-store 2022-11-17 13:00:48 +05:30
fryorcraken.eth ee009742c3
Merge branch 'master' of github.com:waku-org/js-waku into danisharora/add-user-agent 2022-11-17 14:41:01 +11:00
fryorcraken.eth a8ab53a6c5
tests: Use in-memory DB instead of sqlite (in memory) 2022-11-17 14:28:01 +11:00
fryorcraken.eth c8e286a42a
test: Fix flaky ephemeral test and general improvement
The messages were sent at the same time over light push so there was
no strong order preservation from the behaviour.
Correction: order does not matter, just check that messages aren't
present.

Messages were only checked for `ephemeral` being false + one test was
doing several checks.
Correction: split the test and use light push + filter to check
ephemeral field value preservation.
2022-11-17 12:31:33 +11:00
fryorcraken.eth b6faebc422
test: fix flaky test 2022-11-17 12:31:32 +11:00
fryorcraken.eth 909a8f94c2
test: set nwaku logs to trace
Can now be done via command line argument.
2022-11-17 12:07:53 +11:00
fryorcraken.eth c7920f09f3
test: check both custom and default agents 2022-11-17 11:29:34 +11:00
danisharora099 1cfba385c9
rn persist 2022-11-17 01:34:49 +05:30
Danish Arora 708d48a914
Merge branch 'master' into danisharora/add-user-agent 2022-11-17 01:21:46 +05:30
danisharora099 0e0660f5b1
revert: timeout 2022-11-16 19:06:32 +05:30
danisharora099 5c4118041e
fix: cursor 2022-11-16 18:57:46 +05:30
fryorcraken.eth 8dfb133cd7
fix: libp2p upgrade (no more autodial + constructor dependency injection) 2022-11-16 21:27:33 +11:00
fryorcraken.eth 9d2df1d620
chore: bump libp2p to 0.40.0 2022-11-16 21:27:32 +11:00
Danish Arora 9613e9c41d
Merge branch 'master' into danisharora/cursor-support-store 2022-11-16 13:26:35 +05:30
fryorcraken.eth 59992832fe
feat!: add Waku Message ephemeral support 2022-11-16 11:00:43 +11:00
danisharora099 f3575afdfd
add: test case 2022-11-16 00:57:42 +05:30
danisharora099 8f243eb325
fix: git diff 2022-11-15 18:07:29 +05:30
danisharora099 1a5a57f756
fix: git diff 2022-11-15 18:06:59 +05:30
danisharora099 f3635f1fe8
address comments 2022-11-15 18:06:33 +05:30
danisharora099 69b64af548
add: tests 2022-11-15 17:30:35 +05:30
fryorcraken.eth 1b85373472
test: use `esnext` for NodeJS tests 2022-11-15 22:01:27 +11:00
fryorcraken.eth 74d7bb90c7
test: compare all messages at once
Makes it easier to understand the order mismatch.
2022-11-15 22:01:27 +11:00
fryorcraken.eth 11c9823a9d
test: use byte payload to more easily read nwaku's logs 2022-11-15 22:01:27 +11:00
fryorcraken.eth c3c3833b1b
test: nwaku's store now reject messages older than 20s 2022-11-15 22:01:27 +11:00
fryorcraken.eth 862a33f239
test: reduce log verbosity 2022-11-15 22:01:27 +11:00
fryorcraken.eth 66270836f8
test: need to specify in memory sqlite
So that messages are not persisted between tests.
2022-11-15 22:01:26 +11:00
fryorcraken.eth 9cdc9f96ac
test: nwaku's --persist-message is now deprecated
`--store=true` is enough to enable message persist for waku store.
2022-11-15 22:01:26 +11:00
danisharora099 0169a0ccb1
functionality works! test wip 2022-11-15 05:17:24 +05:30
fryorcraken.eth a60f2e529c
test: remove todo now that @multiformats/multiaddr@11 is used by all deps 2022-11-09 14:47:13 +11:00
fryorcraken.eth 2be2718531
chore: `check:tsc` needs to check test files too 2022-11-04 14:31:15 +11:00
fryorcraken.eth 8aa9b43f61
feat!: split outgoing and incoming message interface
While the data structure are similar, they serve different purposes.
Having the same type has show to confuse API consumers

Resolves #979
2022-11-04 14:30:59 +11:00
fryorcraken.eth 1a09aa18d5
chore: fix tests 2022-11-04 11:45:15 +11:00
fryorcraken.eth 55192a2774
chore: fix tests test + karma tests 2022-11-03 22:40:42 +11:00
fryorcraken.eth e901e7f69d
chore: fix tests build 2022-11-03 21:48:04 +11:00
fryorcraken.eth 69c94db23a
chore: fix doc 2022-11-02 15:05:12 +11:00
fryorcraken.eth 6d717f2e55
tests: all files in `tests` are actually node only
Except for a live test that always fails.
2022-11-02 14:08:32 +11:00
fryorcraken.eth 5ba1ee12c7
test: re-introduce build 2022-11-02 13:53:26 +11:00