Commit Graph

515 Commits

Author SHA1 Message Date
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
dependabot[bot] 5ea04579a2
chore(deps)(deps-dev): bump rollup from 3.14.0 to 3.15.0
Bumps [rollup](https://github.com/rollup/rollup) from 3.14.0 to 3.15.0.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v3.14.0...v3.15.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-14 16:25:26 +00:00
Sasha dcb5908d5b
chore: update note in CHANGELOG and add missing (#1178) 2023-02-14 01:11:40 +01:00
fryorcraken.eth 0fde93c34a
chore: bump ts-loader and install where needed 2023-02-13 10:12:21 +11:00
Sasha f945eb90c4
feat: add mocha to dns-discovery (#1154) 2023-02-11 22:25:11 +01:00
fryorcraken.eth 97c3e8cfe5
chore: bump gh-pages and move it to root package (used by Jenkins) 2023-02-11 15:26:24 +11:00
fryorcraken.eth 2f2d266e81
chore!: bump protons from 5.1.0 to 7.0.2
Notable change: optionality of singular fields and optional values.

See https://github.com/ipfs/protons/releases
2023-02-10 22:26:46 +11:00
fryorcraken.eth d73f2a84db
chore: remove usage of jsdom 2023-02-10 19:44:59 +11:00
fryorcraken.eth f2706c21b6
chore: remove unused test configs 2023-02-10 16:34:52 +11:00
fryorcraken.eth 985dcb6414
chore: bump karma, puppeteer and plugins and install where used 2023-02-10 16:30:18 +11:00
fryorcraken.eth f473e751f7
chore: remove p-timeout from core, bump it in tests 2023-02-10 16:09:06 +11:00
fryorcraken.eth cb6d464021
chore: bump cspell 2023-02-10 16:09:05 +11:00
fryorcraken.eth 1bf740b7b4
chore: bump fast-check 2023-02-10 15:45:41 +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 8e3795f038
chore: bump rollup dependencies 2023-02-10 13:14:02 +11:00
fryorcraken.eth 88cc76d2b8
chore!: bump all prod dependencies 2023-02-10 13:06:33 +11:00
fryorcraken.eth f31400c8c4
chore: bump @noble dependencies 2023-02-10 11:22:25 +11:00
fryorcraken.eth c3b01751ce
chore: fix doc generation 2023-02-10 08:32:41 +11:00
fryorcraken.eth c2cef9a319
chore: run `npm update` 2023-02-10 08:32:41 +11:00
fryorcraken.eth 4fb3ab191d
chore: bump uint8arraylist and uint8arrays deps 2023-02-10 08:32:40 +11:00
fryorcraken.eth 3343a4acec
chore: bump multiformat deps 2023-02-10 08:32:40 +11:00
fryorcraken.eth a3c5050c1d
chore: fix dependencies for @waku/proto` package 2023-02-10 08:32:32 +11:00
fryorcraken.eth ab735908d3
chore: fix dependencies for @waku/peer-exchange` package 2023-02-09 19:31:12 +11:00
fryorcraken.eth 719ec8e2e7
chore: fix dev dependencies for tests package 2023-02-09 19:31:12 +11:00
fryorcraken.eth b9f526d3ff
chore: fix dev dependencies for `@waku/message-encryption` 2023-02-09 19:31:12 +11:00
fryorcraken.eth 9c3deccd89
chore: fix dependencies for `@waku/interfaces` 2023-02-09 19:31:12 +11:00
fryorcraken.eth 6f3a6d00d8
chore: fix dependencies for `@waku/enr` 2023-02-09 19:31:12 +11:00
fryorcraken.eth 81bb74fa97
chore: fix dependencies for `@waku/dns-discovery` 2023-02-09 19:31:12 +11:00
fryorcraken.eth a4f6d3b98e
chore: fix dependencies for `@waku/create` 2023-02-09 19:31:12 +11:00
fryorcraken.eth 6b8779b3be
chore: fix dependencies for `@waku/core` 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 3b4bc8b25b
chore: update changelog & minor improvements (#1153)
* address comments from https://github.com/waku-org/js-waku/pull/1145

* fix: typedoc

* address comments in https://github.com/waku-org/js-waku/pull/1146#pullrequestreview-1286307508

- update changelog
- change naming for `EciesEncoderOptions` and
`SymmetricEncoderOptions`
2023-02-09 13:15:23 +05:30
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 3aed340cb2
chore: only build what is necessary to test
Script to build enough to run tests locally and in CI (skip bundling).
2023-01-30 20:32:43 +11:00
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
fryorcraken.eth 372ff6454f
chore: remove `@waku/peer-exchange` dependency
As per its name, `@waku/core` aims to contain, and only contains, the
minimal set of core functionalities needed for a developer to use Waku
in their webapp.

Hence, `@waku/core` should avoid depending on other Waku packages. If a
developer wishes to use functionality from other packages, they should
explicitly import such packages.
2023-01-27 09:08:28 +11:00
fryorcraken.eth a5ff788eed
feat: codec as a property of the protocol implementations
For easy access from `@waku/core` without the need to depend on package
implementing the protocol.
2023-01-27 09:08:02 +11:00
fryorcraken.eth 9a59e9dd64
chore: release @waku/message-encryption@0.0.9 2023-01-25 15:37:52 +11:00
fryorcraken.eth a5a748e2fd
chore: release @waku/dns-discovery@0.0.5 2023-01-25 15:35:12 +11:00
fryorcraken.eth 4e72cf2cff
chore: release @waku/core@0.0.10 2023-01-25 15:29:23 +11:00
fryorcraken.eth 1cd04dbb33
chore: release @waku/peer-exchange@0.0.3 2023-01-25 15:23:10 +11:00
fryorcraken.eth f356ac56fc
chore: release @waku/enr@0.0.5 2023-01-25 15:22:06 +11:00
fryorcraken.eth 6969131346
chore: release @waku/libp2p-utils@0.0.3 2023-01-25 15:19:20 +11:00
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 5a56b6432f
add configuration to determine devDependencies, move them in package 2023-01-19 22:49:11 +01:00
weboko 011ec8f1e9
remove unused dependency 2023-01-19 22:31:40 +01:00
weboko 913573a25a
remove no-extraneous-dependencies lint options, move packages to devDep section 2023-01-19 22:14:17 +01:00
Danish Arora 828f8b40e5
add `ephemeral: true` to relay (#1123) 2023-01-19 14:30:23 +05:30
fryorcraken.eth 665dba8f3e
chore: release @waku/proto@0.0.2 2023-01-18 15:36:22 +11:00
fryorcraken.eth ec5118a502
chore: release @waku/peer-exchange@0.0.2 2023-01-18 15:36:20 +11:00
fryorcraken.eth 45f3823ac4
chore: release @waku/message-encryption@0.0.8 2023-01-18 15:28:51 +11:00
fryorcraken.eth 8e9d2c3a0e
chore: release @waku/libp2p-utils@0.0.2 2023-01-18 15:19:49 +11:00
fryorcraken.eth b0c1a8a4a6
chore: release @waku/interfaces@0.0.7 2023-01-18 15:16:00 +11:00
fryorcraken.eth 15a852af57
chore: release @waku/enr@0.0.4 2023-01-18 15:00:56 +11:00
fryorcraken.eth 2b1e3ad602
chore: release @waku/dns-discovery@0.0.4 2023-01-18 14:57:44 +11:00
fryorcraken.eth 3e19f82768
chore: release core@0.0.9 2023-01-18 09:42:58 +11:00
weboko 53dfd84d4c
chore: update changelog 2023-01-11 23:22:26 +01:00
Danish Arora fcd500e045
fix: invoke peer exchange query immediately (#1115)
when the query is set in an interval, it first
gets invoked when the interval time is reached.
refactor: invoke it immmediately, and then set an
interval
2023-01-11 11:11:49 +05:30
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 a2d79c2551
Merge branch 'master' of github.com:waku-org/js-waku into weboko/missing-dep 2022-12-23 14:39:25 +01:00
Danish Arora d022d8700b
chore: remove unused relay protocol identifier (#1063)
* chore: remove unused relay protocol identifier

* update: changelog
2022-12-23 17:08:41 +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 ac4ff5a00a
chore: fix links in docs, treat doc warnings as errors 2022-12-21 16:47:00 +11:00
fryorcraken.eth f48278adce
chore: remove waku dep from @waku/interfaces by defining IEnr
@waku packages are expected to (dev)depend on @waku/interfaces to
implement them. Hence, to avoid possible cyclic (dev)dependency, define
IEnr interface and use it as a type across @waku/packages.
2022-12-21 15:40:34 +11:00
dependabot[bot] abaa29df18
build(deps-dev): bump @types/node from 17.0.45 to 18.11.17
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 17.0.45 to 18.11.17.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-20 13:57:43 +00:00
fryorcraken.eth 89571ff497
feat!: remove peer exchange from protocols to wait on by default
This is because peer exchange is still experimental and not enabled
on all prod fleets.

The issue is that we could be connected to a remote peer with relay/
filter/lightpush yet never resolve because peer exchange is missing.

This also shows the limit of this function logic which should be
addressed as we dive deeper in peer management.
2022-12-20 23:00:30 +11:00
fryorcraken.eth bff9b857ec
fix: export `Encoder` and `Decoder` types
Enables API consumer to use the types.
2022-12-20 16:11:41 +11:00
fryorcraken.eth d234c4df76
chore: release @waku/create@0.0.6 2022-12-19 16:58:30 +11:00
fryorcraken.eth 1f003e7691
chore: release @waku/message-encryption@0.0.7 2022-12-19 16:56:40 +11:00
fryorcraken.eth b060e88c27
chore: release @waku/core@0.0.8 2022-12-19 16:54:22 +11:00
fryorcraken.eth 75c8e2be8d
fix: incorrect `proto` import 2022-12-19 16:27:26 +11:00
fryorcraken.eth e292855742
fix: missing dependencies 2022-12-19 16:26:56 +11:00
fryorcraken.eth e0fd4433e7
fix: remove invalid re-export 2022-12-19 16:16:07 +11:00
fryorcraken.eth 803a0b4a12
fix: missing dependency declarations 2022-12-16 12:48:36 +11:00
fryorcraken.eth 541056abfe
chore: release @waku/message-encryption@0.0.6 2022-12-16 12:28:40 +11:00
fryorcraken.eth 36327c9222
fix: add `typesVersions` so import works with `moduleResolution: node` 2022-12-16 12:10:14 +11:00
fryorcraken.eth b828903ef0
chore: release @waku/create@0.0.5 2022-12-15 14:51:45 +11:00
fryorcraken.eth c4647d58c6
chore: release @waku/message-encryption@0.0.5 2022-12-15 14:50:20 +11:00
fryorcraken.eth e5c1e20681
chore: release @waku/dns-discovery@0.0.3 2022-12-15 14:48:55 +11:00
fryorcraken.eth 3312c6134a
chore: release @waku/core@0.0.7 2022-12-15 14:47:14 +11:00
fryorcraken.eth de1643be61
chore: release @waku/interfaces@0.0.6 2022-12-15 14:43:15 +11:00
fryorcraken.eth 01981dc184
chore: release @waku/enr@0.0.3 2022-12-15 14:41:30 +11:00
fryorcraken.eth 63f6316b42
chore: release @waku/libp2p-utils@0.0.1 2022-12-15 14:37:56 +11:00
fryorcraken.eth edf5d438cb
test: remove `--nat` option when starting nwaku 2022-12-15 13:54:07 +11:00
fryorcraken.eth a640e2c940
refactor: remove dupe code 2022-12-13 15:23:39 +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 c6b86a33bc
doc: update changelogs 2022-12-12 22:36:14 +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 d946e443ad
refactor: remove `Waku` from protocol names
This is redundant with the context (waku package).
2022-12-12 22:36:13 +11:00
fryorcraken.eth 574f3ee80f
refactor: remove `waku_` from module names
This is redundant with the context (waku package).
2022-12-12 22:36:13 +11:00
fryorcraken.eth 53af8994bd
feat: added `I` prefix to protocols interfaces
This will enable the remove of `Waku` prefix on all protocol
implementations, which is redundant due to the context.
2022-12-12 22:36:09 +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
fryorcraken.eth a7c4bb9cbf
refactor: split interface definition in separate files 2022-12-12 22:13:45 +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
Danish Arora 56009d3b26
chore: move proto into a separate package (#1057)
* 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>

Co-authored-by: fryorcraken.eth <110212804+fryorcraken@users.noreply.github.com>
2022-12-07 10:19:40 +05:30
Danish Arora 03e00225bd
chore: move libp2p utils from @waku/core to new package (#1056)
* add: libp2p-utils

* address: comments
2022-12-06 15:46:10 +05:30
fryorcraken.eth 80d7215e15
doc: `createEncoder` and `createDecoder` 2022-12-05 16:05:20 +11:00
fryorcraken.eth 84c477984f
fix: remove `ephemeral` argument for `Decoder` 2022-12-05 16:05:20 +11:00
fryorcraken.eth 9cd1759a06
doc: update changelogs 2022-12-05 16:05:20 +11:00
fryorcraken.eth a4ddb45af1
chore: do not use `Partial` when not needed 2022-12-05 15:14:51 +11:00
fryorcraken.eth 6121aa78d7
doc: add readme for @waku/message-encryption 2022-12-05 15:14:51 +11:00
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 563b66eab5
refactor: separate symmetric and asymmetric encoders 2022-12-05 09:34:17 +11:00
fryorcraken.eth 1d727b2bc0
refactor: extract 26/WAKU-PAYLOAD related function to waku_payload.ts 2022-12-05 09:34:17 +11:00
fryorcraken.eth e65e0a0a80
refactor: move module that define cryptographic operations to crypto/
This is to prepare the split of encoder/decoder/message definition
from index.ts.
2022-12-05 09:34: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 0f5bef78d1
feat: remove V0 suffix from Decoder/Encoder 2022-12-05 09:34:17 +11:00
Jakub Sokołowski e0c738c092
ci: fix builds broken by moving to packages/core
Broken by:
https://github.com/waku-org/js-waku/commit/b975943e

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-12-02 11:44:52 +01: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
danisharora099 1314930765
fix: store 2022-11-22 23:03:31 +05:30
Danish Arora 2215e44985
Merge branch 'master' into danisharora/improve-cursor-api 2022-11-21 17:56:18 +05:30
danisharora099 36a01c3c30
address comments 2022-11-21 13:20:21 +05:30
fryorcraken.eth 2ecb761ea7
feat: add `@multiformats/multiaddr` as peer dep
This dep often has breakings changes on type and is used by several
APIs. Declaring as an optional peer dependency will hopefully help the
user know what version to install.
2022-11-21 11:02:39 +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
dependabot[bot] 62f300ce81
build(deps): bump uuid from 8.3.2 to 9.0.0
Bumps [uuid](https://github.com/uuidjs/uuid) from 8.3.2 to 9.0.0.
- [Release notes](https://github.com/uuidjs/uuid/releases)
- [Changelog](https://github.com/uuidjs/uuid/blob/main/CHANGELOG.md)
- [Commits](https://github.com/uuidjs/uuid/compare/v8.3.2...v9.0.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-18 15:58:49 +00:00
fryorcraken.eth ab861431d5
doc: release core@0.0.6 (changelog) 2022-11-18 13:35:09 +11:00
fryorcraken.eth dfa7c6b107
chore: release core@0.0.6 2022-11-18 13:27:36 +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 ee7e22b17d
doc: update changelog 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 a372307a30
refactor: adopt dependency injection patter for other Waku protocols
It actually simplies the API as the caller does not need to pass
libp2p to each protocol anymore (when not using a `create*` helper).
2022-11-17 12:06:43 +11:00
fryorcraken.eth e3e1197a91
fix: correct usage of the libp2p API 2022-11-17 11:30:07 +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 0627a803ea
verbose error message 2022-11-16 19:06:04 +05:30
danisharora099 0f73c0f331
address comments 2022-11-16 19:00:09 +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 910fc5a6b2
chore: bump several libp2p dependencies 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
Danish Arora ae5ab0d1e0
Merge branch 'master' into danisharora/add-user-agent 2022-11-15 23:45:48 +05:30
danisharora099 c012748bb7
address comments 2022-11-15 18:08:21 +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 a0162febc7
chore: remove unnecessary ts-ignore 2022-11-15 22:01:27 +11:00
fryorcraken.eth 12fa89c930
fix: defaults to mounted protocol when dialing 2022-11-15 22:01:27 +11:00
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 584fe29b39
chore: improve log format 2022-11-15 22:01:26 +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
danisharora099 593a037e1f
address comments 2022-11-14 15:15:53 +05:30
danisharora099 7d8c410b5b
address comments 2022-11-14 15:13:16 +05:30
Danish Arora 55890f1b9e
Update packages/create/src/index.ts
Co-authored-by: fryorcraken.eth <110212804+fryorcraken@users.noreply.github.com>
2022-11-11 19:51:34 +05:30
Danish Arora 00e57d61ec
Update packages/core/src/lib/waku.ts
Co-authored-by: fryorcraken.eth <110212804+fryorcraken@users.noreply.github.com>
2022-11-11 19:51:27 +05:30
fryorcraken.eth e05216a282
chore: update changelog 2022-11-11 16:49:12 +11:00
fryorcraken.eth 7a75eb03b7
chore(interfaces): release @waku/interfaces@0.0.4 2022-11-11 16:47:28 +11:00
fryorcraken.eth 56568b7f79
chore(core): release @waku/core@0.0.5 2022-11-11 16:45:40 +11:00
fryorcraken.eth 3ab78eacee
chore(interfaces/core): bump libp2p to 0.39.5
Fixes connection-manager bug
2022-11-11 16:12:52 +11:00
fryorcraken.eth bca31a6fa5
chore(interfaces): release 0.0.3 2022-11-11 15:48:14 +11:00
danisharora099 71fe047254
add: support for user agent to identify libp2p 2022-11-10 22:44:53 +05:30
fryorcraken.eth 0a3944ee8c
chore(core): release 0.0.4 2022-11-09 15:47:34 +11:00
fryorcraken.eth 063fac71e2
chore(interfaces): bump libp2p 2022-11-09 14:48:44 +11:00
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 81422b7abb
chore(core): bump libp2p 2022-11-09 14:44:03 +11:00
fryorcraken.eth ea822b206e
chore(core): bump @libp2p/interface-connection 2022-11-09 13:28:55 +11:00
fryorcraken.eth b678772ca3
chore(create): release 0.0.3 2022-11-04 16:43:09 +11:00
fryorcraken.eth bf6992effb
chore(core): release 0.0.3 2022-11-04 16:42:13 +11:00
fryorcraken.eth cb835ada65
fix(core,create): dependencies mismatch
Some `create` dependencies were still in the `core` package.json file.
2022-11-04 16:35:42 +11:00
fryorcraken.eth 5d64f8b90a
chore(message-encryption): release 0.0.3 2022-11-04 16:26:53 +11:00
fryorcraken.eth 148123a756
fix: missing extension 2022-11-04 16:18:55 +11:00
fryorcraken.eth d9cdb78f8a
fix: missing dependency 2022-11-04 16:18:54 +11:00
fryorcraken.eth d9799ada56
chore: remove unneeded `release` script
We now release from the root.
2022-11-04 15:26:50 +11:00
fryorcraken.eth be45358e9c
Release 0.0.2 2022-11-04 14:54:12 +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 e6efd0438c
chore: make message-encryption compile 2022-11-04 11:38:32 +11:00
fryorcraken.eth 256b7223f3
chore!: extract version-1 from chore 2022-11-04 11:28:14 +11:00
fryorcraken.eth a20b7809d6
chore: init message-encryption package 2022-11-04 11:25:53 +11:00
fryorcraken.eth 5a78b5f246
chore: Remove semantic-release-monorepo, move semantic-release to root 2022-11-04 10:04:38 +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 d78a40f273
chore: fix dns-discovery build 2022-11-03 21:37:55 +11:00
fryorcraken.eth 81c855314d
chore: move dependencies from core to enr 2022-11-03 14:42:01 +11:00
fryorcraken.eth 21e5e41b0a
chore: build core package 2022-11-03 14:24:08 +11:00
fryorcraken.eth 25dfe9d969
chore: get dns-discovery to compile (almost) 2022-11-03 14:24:08 +11:00
fryorcraken.eth 9cc32c1032
tests: fix karma 2022-11-03 14:24:08 +11:00
fryorcraken.eth 8a00bc1b85
chore!: extract utils from core 2022-11-03 14:24:08 +11:00
fryorcraken.eth f7f28f03b0
feat!: extract dns discovery and enr from core 2022-11-03 14:24:08 +11:00
fryorcraken.eth 093d84605f
chore: release 0.0.1 2022-11-02 15:36:11 +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
fryorcraken.eth b11d465a9d
chore: move tests to remove circular dep 2022-11-01 21:31:53 +11:00
fryorcraken.eth 9d54462893
chore: lerna skip non-existent scripts 2022-11-01 20:14:01 +11:00
fryorcraken.eth 3d08cb28c8
chore: move tests to separate package 2022-11-01 20:13:09 +11:00
fryorcraken.eth ce9938e464
chore: move tests to separate package 2022-11-01 19:57:19 +11:00
fryorcraken.eth a30354cbd0
test: fix ENR test 2022-11-01 19:46:02 +11:00
fryorcraken.eth 052d5c9d20
chore: only bump patch versions for now 2022-11-01 19:41:34 +11:00
fryorcraken.eth 9d74c9f6fe
fix: core check pass 2022-11-01 19:33:33 +11:00
fryorcraken.eth fe818580f2
fix: @waku/interfaces 2022-11-01 19:20:07 +11:00
fryorcraken.eth c409076365
fix: @waku/interfaces 2022-11-01 19:15:06 +11:00
fryorcraken.eth a185b5a0ec
fix: @waku/interfaces 2022-11-01 16:33:42 +11:00
fryorcraken.eth 057507f94f
fix: @waku/interfaces 2022-11-01 16:30:24 +11:00
fryorcraken.eth 4eddad3166
fix: @waku/interfaces 2022-11-01 15:16:38 +11:00
fryorcraken.eth 16eaa911a9
chore: new @waku/interfaces package 2022-11-01 14:48:52 +11:00
fryorcraken.eth 8a84cd07b3
fixup! chore: new @waku/create package 2022-10-31 14:56:29 +11:00
fryorcraken.eth 80d16346e0
fixup! chore: new @waku/create package 2022-10-31 14:49:39 +11:00
fryorcraken.eth 37c1e6b968
chore: new @waku/create package 2022-10-31 14:47:12 +11:00
fryorcraken.eth 2e6d740f40
chore: setup semantic-release for workspace 2022-10-31 14:09:08 +11:00
fryorcraken.eth fe0a3d938f
doc: update readmes 2022-10-31 12:36:39 +11:00
fryorcraken.eth 88a3c2adf0
chore: setup automated releasing from master 2022-10-31 12:15:37 +11:00
fryorcraken.eth 792d80857a
chore: update urls 2022-10-31 11:47:06 +11:00
fryorcraken.eth 670816049a
chore: remove unneeded declaration 2022-10-31 11:27:07 +11:00
fryorcraken.eth 052925e8e8
chore: rename js-waku package to @waku/core 2022-10-31 11:22:26 +11:00
fryorcraken.eth cd1d7b813b
chore: fix ci 2022-10-31 11:22:25 +11:00
fryorcraken.eth 3f71a0a857
chore: fix `test` script 2022-10-31 09:32:46 +11:00
fryorcraken.eth 44e2890301
chore: fix eslint config for lint-staged 2022-10-31 09:32:46 +11:00
fryorcraken.eth 6b2accbb28
chore: use prettierignore to select files to format 2022-10-31 09:32:46 +11:00
fryorcraken.eth a13b2c3f70
chore: remove unneeded file 2022-10-31 09:32:46 +11:00
fryorcraken.eth 2cef9d43ea
chore: move size-limit to root 2022-10-31 09:32:46 +11:00
fryorcraken.eth c2e8feba28
chore: remove unneeded lock file 2022-10-31 09:32:45 +11:00
fryorcraken.eth e280d957db
chore: keep `build-scripts` for ./core only 2022-10-31 09:32:45 +11:00
fryorcraken.eth c3ef7cb6c2
chore: fix `fix` script 2022-10-31 09:32:45 +11:00
fryorcraken.eth 2e60d90d7d
chore(deps): bump @multiformats/multiaddr to 11.0.6 2022-10-31 09:32:45 +11:00
fryorcraken.eth 81f3af0f66
chore: fix eslint 2022-10-30 21:19:14 +11:00
fryorcraken.eth dc4089a1dd
chore: setup husky/lint-staged at root 2022-10-30 21:12:01 +11:00
fryorcraken.eth 2f8eb0fbcc
chore: move hidden files to ./core 2022-10-30 21:03:23 +11:00
fryorcraken.eth b975943e90
chore: move js-waku to ./core 2022-10-30 17:57:15 +11:00