Commit Graph

600 Commits

Author SHA1 Message Date
Franck Royer aaf6b7ee54
Remove unused dep 2021-08-20 10:54:12 +10:00
Franck Royer a15069b3e3
Move ts-proto to dev dependencies
The output of ts-proto is committed and published, ts-proto is only
needed when proto files are changed.
2021-08-20 10:54:12 +10:00
Franck Royer 38df024fe1
Move libp2p-tcp to dev dependencies 2021-08-20 10:54:12 +10:00
Franck Royer 912d984fa0
Run audit fix 2021-08-19 11:26:34 +10:00
Franck Royer 3f95934250
Replace deprecated package for libp2p-noise 2021-08-19 11:26:34 +10:00
Franck Royer 140791cc91
Provide easy way to bootstrap when creating Waku node 2021-08-13 16:18:00 +10:00
Franck Royer 70c58c8c49
Release 0.10.0
### Added
- Relay and ReactJS guides and examples
  ([#56](https://github.com/status-im/js-waku/issues/56)).

### Changed
- **Breaking**: The `WakuMessage` APIs have been changed to move
  `contentTopic` out of the optional parameters.

### Removed
- Examples (web-chat): Remove broken `/fleet` command.
- **Breaking**: Removed `DefaultContentTopic` as developers must choose
  a content topic for their app; recommendations for content topic can
  be found at https://rfc.vac.dev/spec/23/.

### Fixed
- `WakuMessage.payloadAsUtf8` returning garbage on utf-8 non-ascii
  characters.
- `ChatMessage.payloadAsUtf8` returning garbage on utf-8 non-ascii
  characters.
2021-08-06 16:38:55 +10:00
Franck Royer 36a5a51aa8
Upgrade to libp2p 0.32.0 2021-07-27 14:31:06 +10:00
Franck Royer c35fe74dad
Release 0.9.0
### Changed
- **Breaking**: Store Response Protobuf changed to align with
  nim-waku v0.5
  ([nim-waku#676](https://github.com/status-im/nim-waku/pull/676)).
2021-07-26 16:49:30 +10:00
Franck Royer 3bff44432a
Remove some vulnerable packages
Thanks to `npm audit`.
2021-07-20 15:30:15 +10:00
Franck Royer 0753184079
Release 0.8.1
### Added
- Examples (web-chat): New `/fleet` command to switch connection between
  Status prod and test fleets.
- Export `generatePrivateKey` and `getPublicKey` directly from the root.
- Usage of the encryption and signature APIs to the readme.

### Changed
- **Breaking**: Renamed `WakuRelay.(add|delete)PrivateDecryptionKey` to
  `WakuRelay.(add|delete)DecryptionKey` to make it clearer that it
  accepts both symmetric keys and asymmetric private keys.

### Fix
- Align `WakuMessage` readme example with actual code behaviour.
2021-07-16 12:00:43 +10:00
Franck Royer 3a3e718749
Release 0.8.0
### Added
- `WakuRelay.deleteObserver` to allow removal of observers, useful when
  a React component add observers when mounting and needs to delete it
  when unmounting.
- Keep alive feature that pings host regularly, reducing the chance of
  connections being dropped due to idle.
  Can be disabled or default frequency (10s) can be changed when calling
  `Waku.create`.
- New `lib/utils` module for easy, dependency-less hex/bytes
  conversions.
- New `peers` and `randomPeer` methods on `WakuStore` and
  `WakuLightPush` to have a better idea of available peers;
  Note that it does not check whether Waku node is currently connected
  to said peers.
- Enable passing decryption private keys to `WakuStore.queryHistory`.
- Test: Introduce testing in browser environment (Chrome) using Karma.
- Add support for Waku Message version 1: Asymmetric encryption,
  symmetric encryption, and signature of the data.

### Changed
- **Breaking**: Auto select peer if none provided for store and light
  push protocols.
- Upgrade to `libp2p@0.31.7` and `libp2p-gossipsub@0.10.0` to avoid
  `TextEncoder` errors in ReactJS tests.
- Disable keep alive by default as latest nim-waku release does not
  support ping protocol.
- **Breaking**: Optional parameters for `WakuMessage.fromBytes` and
  `WakuMessage.fromUtf8String` are now passed in a single `Options`
   object.
- **Breaking**: `WakuMessage` static functions are now async to allow
  for encryption and decryption.
- **Breaking**: `WakuMessage` constructor is now private, `from*` and
  `decode*` function should be used.
- `WakuMessage` version 1 is partially supported, enabling asymmetrical
  encryption and signature of messages;
  this can be done by passing keys to `WakuMessage.from*` and
  `WakuMessage.decode*` methods.
- Examples (eth-dm): Use Waku Message version 1 encryption scheme
  instead of `eth-crypto`.
- Examples (eth-dm): Use Protobuf for direct messages instead of JSON
  ([#214](https://github.com/status-im/js-waku/issues/214)).

### Fixed
- Disable `keepAlive` if set to `0`.
2021-07-15 12:48:47 +10:00
Franck Royer ae051333de
Use puppeteer to make it work in the CI 2021-07-14 13:25:24 +10:00
Franck Royer 055247121a
Remove firefox for now 2021-07-14 13:14:04 +10:00
Franck Royer 4f8d8b099b
Setup Karma 2021-07-14 11:56:48 +10:00
Franck Royer 4fe0116039
Use ecies library that provide right ECIES parameters 2021-07-12 11:30:19 +10:00
Franck Royer f2a2233c77
Add encrypt/decrypt asymmetric 2021-07-09 15:50:15 +10:00
Franck Royer f97dc4de81
Implement Waku Message Version 1 encoding and signature 2021-07-09 14:49:09 +10:00
Franck Royer 6cb92dd4b9
Upgrade to latest libp2p versions
And few other packages
2021-06-22 13:21:23 +10:00
Franck Royer 6ed7445d83
Release 0.7.0
### Changed
- Test: Upgrade nim-waku node to v0.4.
- Waku Light Push upgraded to `2.0.0-beta1`.
- Examples (web chat): Catch error if chat message decoding fails.
- Examples (web chat): Do not send message if shift/alt/ctrl is pressed,
 enabling multiline messages.
2021-06-15 15:36:47 +10:00
Franck Royer e75fb91d3f
Release 0.6.0
### Changed
- **Breaking**: Websocket protocol is not automatically added anymore
  if the user specifies a protocol in `libp2p.modules` when using
  `Waku.create`.
- **Breaking**: Options passed to `Waku.create` used to be passed to
  `Libp2p.create`; Now, only the `libp2p` property is passed to
  `Libp2p.create`, allowing for a cleaner interface.
- Examples (cli chat): Use tcp protocol instead of websocket.

### Added
- Enable access to `WakuMessage.timestamp`.
- Examples (web chat): Use `WakuMessage.timestamp` as unique key for
  list items.
- Doc: Link to new [topic guidelines](https://rfc.vac.dev/spec/23/) in
  README.
- Doc: Link to [Waku v2 Toy Chat specs](https://rfc.vac.dev/spec/22/) in
  README.
- Examples (web chat): Persist nick.
- Support for custom PubSub Topics to `Waku`, `WakuRelay`, `WakuStore`
  and `WakuLightPush`;
  Passing a PubSub Topic is optional and still defaults to
  `/waku/2/default-waku/proto`;
  JS-Waku currently supports one, and only, PubSub topic per instance.
2021-06-09 20:49:19 +10:00
Franck Royer 80e7ae9d1e
Release 0.5.0 2021-05-21 15:43:34 +10:00
Franck Royer b13ecdd45f
Do not inherit doc for Waku Relay
As it clutters the documentation and at this stage we do not expect
users to use inherited methods.
2021-05-21 11:47:17 +10:00
Franck Royer 85dd64b81e
Release 0.4.0 2021-05-18 14:14:18 +10:00
Franck Royer 5ab9964191
Release 0.3.0 2021-05-15 21:25:20 +10:00
Franck Royer 9cf83585ed
Remove unused dependencies 2021-05-15 19:57:47 +10:00
Franck Royer 79bef35460
Add and use `getStatusFleetNodes` to connect to Status' wakunodes 2021-05-15 19:52:05 +10:00
Franck Royer a9d5222b80
Release 0.2.0 2021-05-14 09:39:56 +10:00
Franck Royer 065593b0cf
Revert naming to js-waku
To align with go-waku and nim-waku and keep bors working.
2021-05-13 20:27:38 +10:00
Franck Royer 702201f7be
Set first release version to 0.1.0 2021-05-13 11:01:41 +10:00
Franck Royer 43627d27d8
Rename package to waku-js 2021-05-13 10:36:28 +10:00
Franck Royer c7986a92dc
Update package with new name 2021-05-11 16:44:04 +10:00
Franck Royer abd5709f86
Move cli chat to examples folder 2021-05-05 10:53:40 +10:00
Franck Royer efd585102e
Remove unused package 2021-04-29 21:24:43 +10:00
Franck Royer 2c66f86e91
Upgrade libp2p packages 2021-04-29 12:06:38 +10:00
Franck Royer afba3210e9
Upgrade libp2p to 0.31.0-rc.3 2021-04-21 16:17:32 +10:00
Franck Royer dd0a843770
Upgrade ts-proto to fix long dependency warning/error 2021-04-20 16:11:53 +10:00
Franck Royer 503157401e
Allow passing transports, enable websocket transport 2021-04-15 13:56:07 +10:00
Franck Royer e9d51a6c57
Implement Waku store protocol 2021-04-09 16:54:30 +10:00
Franck Royer 704f2770d1
Use ts-proto
This allows the generation of ts files which makes it easier
to handle with test frameworks than just d.ts files
2021-03-22 15:49:58 +11:00
Franck Royer a89f2700a2
Partial conversion to ts-node/mocha 2021-03-22 15:05:03 +11:00
Franck Royer 1f6a794db4
Update packages 2021-03-19 14:53:56 +11:00
Franck Royer 5c29394937
Migrate to jest for better debugging experience
ava is not yet integrated in popular IDEs.
2021-03-17 15:34:58 +11:00
Franck Royer 3115874a05
Make testing in CI possible
By adding nim-waku as a submodule and building it as part of the tests.
2021-03-15 16:22:26 +11:00
Franck Royer 057f5f80ab
test: Nim-waku connects to JS (success) 2021-03-11 11:11:37 +11:00
Franck Royer 4f63bd5835
test: Connect to nim waku 2021-03-10 17:39:53 +11:00
Franck Royer 4329b8006e
Use waku messages over waku relay 2021-03-10 16:22:49 +11:00
Franck Royer be47223bae
Connects to nim-waku using waku-relay protocol 2021-03-05 14:41:20 +11:00
Franck Royer 512115ae8c
Run audit fix 2021-03-05 09:48:39 +11:00
Franck Royer 2e5823cfe3
Fix tests 2021-03-05 09:41:03 +11:00