mirror of https://github.com/waku-org/js-waku.git
7.1 KiB
7.1 KiB
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased
0.8.1 - 2021-07-16
Added
- Examples (web-chat): New
/fleet
command to switch connection between Status prod and test fleets. - Export
generatePrivateKey
andgetPublicKey
directly from the root. - Usage of the encryption and signature APIs to the readme.
- Support multiple protocol ids for Waku Relay, allowing interoperability with nim-waku v0.4 and latest master (#238).
Changed
- Breaking: Renamed
WakuRelay.(add|delete)PrivateDecryptionKey
toWakuRelay.(add|delete)DecryptionKey
to make it clearer that it accepts both symmetric keys and asymmetric private keys.
Fixed
- Align
WakuMessage
readme example with actual code behaviour. - Remove infinite loop when an error with Waku Store is encountered.
0.8.0 - 2021-07-15
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
andrandomPeer
methods onWakuStore
andWakuLightPush
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
andlibp2p-gossipsub@0.10.0
to avoidTextEncoder
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
andWakuMessage.fromUtf8String
are now passed in a singleOptions
object. - Breaking:
WakuMessage
static functions are now async to allow for encryption and decryption. - Breaking:
WakuMessage
constructor is now private,from*
anddecode*
function should be used. WakuMessage
version 1 is partially supported, enabling asymmetrical encryption and signature of messages; this can be done by passing keys toWakuMessage.from*
andWakuMessage.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).
Fixed
- Disable
keepAlive
if set to0
.
0.7.0 - 2021-06-15
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.
0.6.0 - 2021-06-09
Changed
- Breaking: Websocket protocol is not automatically added anymore if the user specifies a protocol in
libp2p.modules
when usingWaku.create
. - Breaking: Options passed to
Waku.create
used to be passed toLibp2p.create
; Now, only thelibp2p
property is passed toLibp2p.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 in README.
- Doc: Link to Waku v2 Toy Chat specs in README.
- Examples (web chat): Persist nick.
- Support for custom PubSub Topics to
Waku
,WakuRelay
,WakuStore
andWakuLightPush
; 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.
0.5.0 - 2021-05-21
Added
- Implement Waku v2 Light Push protocol.
- Expose
Direction
enum from js-waku root (it was only accessible via the proto module). - Examples (cli chat): Use light push to send messages if
--lightPush
is passed. - Examples (cli chat): Print usage if
--help
is passed.
0.4.0 - 2021-05-18
Added
callback
argument toWakuStore.queryHistory()
, called as messages are retrieved ; Messages are retrieved using pagination, and it may take some time to retrieve all messages, with thecallback
function, messages are processed as soon as they are received.
Changed
- Testing: Upgrade nim-waku node to v0.3.
- Breaking: Modify
WakuStore.queryHistory()
to accept oneObject
instead of multiple individual arguments. getStatusFleetNodes
return prod nodes by default, instead of test nodes.- Examples (web chat): Connect to prod fleet by default, test fleet for local development.
- Examples (cli chat): Connect to test fleet by default, use
--prod
to connect to prod fleet.
Fixed
- Expose
Enviroment
andProtocol
enums to pass togetStatusFleetNodes
.
0.3.0 - 2021-05-15
Added
getStatusFleetNodes
to connect to Status' nim-waku nodes.
Changed
- Clarify content topic format in README.md.
Removed
- Unused dependencies.
0.2.0 - 2021-05-14
Added
WakuRelay.getPeers
method.- Use
WakuRelay.getPeers
in web chat app example to disable send button.
Changed
- Enable passing
string
s toaddPeerToAddressBook
. - Use
addPeerToAddressBook
in examples and usage doc. - Settle on
js-waku
name across the board. - Breaking:
RelayDefaultTopic
renamed toDefaultPubsubTopic
.
0.1.0 - 2021-05-12
Added
- Add usage section to the README.
- Support of Waku v2 Relay.
- Support of Waku v2 Store.
- Node Chat App example.
- ReactJS Chat App example.
- Typedoc Documentation.