Commit Graph

299 Commits

Author SHA1 Message Date
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 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 33ed43c068
feat: `waitForRemotePeer` can now be directly imported from `@waku/core` 2022-12-05 15:14:51 +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
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 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 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
Danish Arora 708d48a914
Merge branch 'master' into danisharora/add-user-agent 2022-11-17 01:21:46 +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
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
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 584fe29b39
chore: improve log format 2022-11-15 22:01:26 +11:00
danisharora099 0169a0ccb1
functionality works! test wip 2022-11-15 05:17:24 +05:30
danisharora099 7d8c410b5b
address comments 2022-11-14 15:13:16 +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 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
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 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 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 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 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 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 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 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 b11d465a9d
chore: move tests to remove circular dep 2022-11-01 21:31:53 +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 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 16eaa911a9
chore: new @waku/interfaces package 2022-11-01 14:48:52 +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