mirror of
https://github.com/logos-messaging/js-waku.git
synced 2026-01-02 13:53:12 +00:00
65 KiB
65 KiB
Changelog
All notable changes to this project will be documented in this file.
The file is maintained by Release Please based on Conventional Commits specification, and this project adheres to Semantic Versioning.
0.0.40 (2025-10-31)
Dependencies
- The following workspace dependencies were updated
- dependencies
- @waku/proto bumped from 0.0.14 to 0.0.15
- dependencies
0.0.39 (2025-09-20)
Features
- Add start/stop to filter (#2592) (2fba052)
- Expose message hash from IDecodedMessage (#2578) (836d6b8)
- Implement lp-v3 error codes with backwards compatibility (#2501) (1625302)
- Implement peer-store re-bootstrapping (#2641) (11d84ad)
- StoreConnect events (#2601) (0dfbcf6)
Dependencies
- The following workspace dependencies were updated
- dependencies
- @waku/enr bumped from ^0.0.32 to ^0.0.33
- @waku/interfaces bumped from 0.0.33 to 0.0.34
- @waku/proto bumped from 0.0.13 to 0.0.14
- @waku/utils bumped from 0.0.26 to 0.0.27
- dependencies
0.0.38 (2025-08-14)
⚠ BREAKING CHANGES
- local peer discovery improvements (#2557)
- Introduce routing info concept
Features
- Introduce routing info concept (3842d84)
- Local peer discovery improvements (#2557) (eab8ce8)
- Peer exchange discovery improvements (#2537) (95da57a)
Bug Fixes
Dependencies
- The following workspace dependencies were updated
- dependencies
- @waku/enr bumped from ^0.0.31 to ^0.0.32
- @waku/interfaces bumped from 0.0.32 to 0.0.33
- @waku/proto bumped from 0.0.12 to 0.0.13
- @waku/utils bumped from 0.0.25 to 0.0.26
- dependencies
0.0.37 (2025-07-18)
⚠ BREAKING CHANGES
- remove node level pubsub topic concept
- unify events under one source (#2473)
- re-architect connection manager (#2445)
Features
- Add recovery and connection maintenance (#2496) (ed389cc)
- Don't dial peers that failed before, make dialer use dial queue (#2478) (35acdf8)
- Implement store query chunking (#2511) (36f6884)
- Make peer manager aware of codec and shard, fix retry manager and shut down subscriptions (#2425) (058f2ff)
- Re-architect connection manager (#2445) (c7682ea)
- Unify events under one source (#2473) (27292ed)
Bug Fixes
- Remove node level pubsub topic concept (6d55af9)
Dependencies
- The following workspace dependencies were updated
- dependencies
- @waku/enr bumped from ^0.0.30 to ^0.0.31
- @waku/interfaces bumped from 0.0.31 to 0.0.32
- @waku/proto bumped from 0.0.11 to 0.0.12
- @waku/utils bumped from 0.0.24 to 0.0.25
- dependencies
0.0.36 (2025-06-23)
⚠ BREAKING CHANGES
- upgrade libp2p, nodejs and typescript (#2401)
- remove IBaseProtocol and improve interface on PeerExchange (#2422)
- re-work messaging parts and sharding (#2399)
Features
- Event based approach to Filter (#2300) (a4dfd34)
- Re-work messaging parts and sharding (#2399) (1905558)
- Shard retrieval for store and store peers selection (#2417) (f55db3e)
Bug Fixes
- Rebase package lock (f649f59)
- Remove unnecessary comments from store validation (5f63cb5)
- store: Update store query validation logic to support msg hash q… (49f26d8)
- store: Update store query validation logic to support msg hash queries (9f7a15d)
Miscellaneous Chores
- Remove IBaseProtocol and improve interface on PeerExchange (#2422) (7c8d107)
- Upgrade libp2p, nodejs and typescript (#2401) (fcc6496)
Dependencies
- The following workspace dependencies were updated
- dependencies
- @waku/enr bumped from ^0.0.29 to ^0.0.30
- @waku/interfaces bumped from 0.0.30 to 0.0.31
- @waku/proto bumped from 0.0.10 to 0.0.11
- @waku/utils bumped from 0.0.23 to 0.0.24
- dependencies
0.0.35 (2025-04-23)
Features
Dependencies
- The following workspace dependencies were updated
- dependencies
- @waku/enr bumped from ^0.0.28 to ^0.0.29
- @waku/interfaces bumped from 0.0.29 to 0.0.30
- @waku/proto bumped from 0.0.9 to 0.0.10
- @waku/utils bumped from 0.0.22 to 0.0.23
- dependencies
0.0.34 (2025-03-24)
Features
- Add HealthIndicator with simplified logic and testing (#2251) (3136f3a)
- Improve peer manager and re-integrate to light push (#2191) (62f93dc)
- Migrate to latest LightPush version (#2281) (f199d92)
- Move Peer to PeerId (#2246) (fc93fae)
- rln: Migrate from v1 to v2, rate limiting, memberships, test coverage (#2262) (6fc6bf3)
- store: Allow specifying node to use (#2192) (4153396)
Dependencies
- The following workspace dependencies were updated
- dependencies
- @waku/enr bumped from ^0.0.27 to ^0.0.28
- @waku/interfaces bumped from 0.0.28 to 0.0.29
- @waku/proto bumped from 0.0.8 to 0.0.9
- @waku/utils bumped from 0.0.21 to 0.0.22
- dependencies
0.0.33 (2024-10-16)
Features
- filter: Enhancing protocol peer management with mutex locks (#2137) (b2efce5)
- lightPush: Improve peer usage and improve readability (#2155) (1d68526)
Bug Fixes
Dependencies
- The following workspace dependencies were updated
- dependencies
- @waku/enr bumped from ^0.0.26 to ^0.0.27
- @waku/interfaces bumped from 0.0.27 to 0.0.28
- @waku/utils bumped from 0.0.20 to 0.0.21
- dependencies
0.0.32 (2024-09-05)
Bug Fixes
- Improve node bootstrapping (#2121) (0263cb8)
- Temporarily remove peer cross dependencies (#2123) (f4b6bb0)
Dependencies
- The following workspace dependencies were updated
- dependencies
- @waku/enr bumped from ^0.0.25 to ^0.0.26
- @waku/interfaces bumped from 0.0.26 to 0.0.27
- @waku/utils bumped from 0.0.19 to 0.0.20
- dependencies
0.0.31 (2024-08-29)
⚠ BREAKING CHANGES
- lightpush: return new error messages (#2115)
- deprecate named pubsub topics and use static/auto sharding (#2097)
- store v3 (#2036)
Features
- Deprecate named pubsub topics and use static/auto sharding (#2097) (5ce36c8)
- Fix peer renewal, change Filter keep alive (#2065) (00635b7)
- lightpush: Return new error messages (#2115) (a022433)
- Node and protocols health (#2080) (d464af3)
- Offline state recovery for Filter subscription (#2049) (eadb85a)
- Store v3 (#2036) (86f730f)
- Validate messages for individual filter nodes & perform renewals (#2057) (9b0f1e8)
Dependencies
- The following workspace dependencies were updated
- dependencies
- @waku/enr bumped from ^0.0.24 to ^0.0.25
- @waku/interfaces bumped from 0.0.25 to 0.0.26
- @waku/proto bumped from 0.0.7 to 0.0.8
- @waku/utils bumped from 0.0.18 to 0.0.19
- dependencies
0.0.30 (2024-07-10)
⚠ BREAKING CHANGES
- filter: return error codes instead of throwing errors (#1971)
Features
- filter: Return error codes instead of throwing errors (#1971) (4eb06c6)
- lightpush: Peer management for protocols (#2003) (93e78c3)
Bug Fixes
- Failing
node_optionalcheck (#2025) (984fb94) - Increasing maxInboundStreams for lightpush from 32 to 100 (#2021) (2311a59)
Dependencies
- The following workspace dependencies were updated
- dependencies
- @waku/enr bumped from ^0.0.23 to ^0.0.24
- @waku/interfaces bumped from 0.0.24 to 0.0.25
- @waku/utils bumped from 0.0.17 to 0.0.18
- dependencies
0.0.29 (2024-04-30)
⚠ BREAKING CHANGES
- use ShardingParams on subscriptions, make Decoder/Encoder auto sharding friendly by default (#1958)
- lightpush: move protocol implementation to
@waku/sdk(1/n) (#1964)
Features
- Use ShardingParams on subscriptions, make Decoder/Encoder auto sharding friendly by default (#1958) (f3627c4)
Bug Fixes
- Only override ping metadata in peer store (#1984) (fb34b72)
- Use correct shard index when creating encoder (9514653)
Miscellaneous Chores
Dependencies
- The following workspace dependencies were updated
- dependencies
- @waku/enr bumped from ^0.0.22 to ^0.0.23
- @waku/interfaces bumped from 0.0.23 to 0.0.24
- @waku/proto bumped from 0.0.6 to 0.0.7
- @waku/utils bumped from 0.0.16 to 0.0.17
- dependencies
0.0.28 (2024-04-09)
⚠ BREAKING CHANGES
- store: move protocol implementation opinions to
@waku/sdk(#1913) - lightpush: move protocol implementation opinions to
@waku/sdk(#1887)
Features
- Add cross peer dependency for @waku packages (#1889) (8f86740)
- metadata: Use error codes (#1904) (1882023)
- Peer-exchange uses error codes (#1907) (877fe1d)
Miscellaneous Chores
- lightpush: Move protocol implementation opinions to
@waku/sdk(#1887) (8deab11) - store: Move protocol implementation opinions to
@waku/sdk(#1913) (bf42c8f)
Dependencies
- The following workspace dependencies were updated
- dependencies
- @waku/enr bumped from ^0.0.21 to ^0.0.22
- @waku/interfaces bumped from 0.0.22 to 0.0.23
- @waku/message-hash bumped from ^0.1.11 to ^0.1.12
- @waku/utils bumped from 0.0.15 to 0.0.16
- dependencies
0.0.27 (2024-03-04)
⚠ BREAKING CHANGES
- protocols filter peers as per configured shard (#1756)
Features
- Create node and subscription by content topic (ee2d417)
- Decouple sharding params out of core (e138b4f)
- Lightpush & filter send requests to multiple peers (#1779) (7affbe2)
- Local discovery (#1811) (199f6ab)
- Make ShardingParams optional in sdk, required internally (68d3229)
- Protocols filter peers as per configured shard (#1756) (477c2a5)
Dependencies
- The following workspace dependencies were updated
- dependencies
- @waku/enr bumped from ^0.0.20 to ^0.0.21
- @waku/interfaces bumped from 0.0.21 to 0.0.22
- @waku/message-hash bumped from ^0.1.10 to ^0.1.11
- @waku/utils bumped from 0.0.14 to 0.0.15
- dependencies
0.0.26 (2024-01-10)
⚠ BREAKING CHANGES
- add support for sharded pubsub topics & remove support for named pubsub topics (#1697)
- change all instances of
PubSubTopictoPubsubTopic(#1703)
Features
- Add support for autosharded pubsub topics (2bc3735)
- Add support for sharded pubsub topics & remove support for named pubsub topics (#1697) (4cf2ffe)
- Metadata protocol (#1732) (9ac2a3f)
- Track node connection state (#1719) (1d0e2ac)
Miscellaneous Chores
Dependencies
- The following workspace dependencies were updated
- dependencies
- @waku/enr bumped from ^0.0.19 to ^0.0.20
- @waku/interfaces bumped from 0.0.20 to 0.0.21
- @waku/proto bumped from 0.0.5 to 0.0.6
- @waku/utils bumped from 0.0.13 to 0.0.14
- dependencies
0.0.25 (2023-11-01)
Features
- Fail early when trying to send empty payload (#1642) (6bad4ea)
- Logger with log levels (#1672) (0f7d63e)
Bug Fixes
- Don't dial discovered peers if have already been attempted dial (#1657) (1892f50)
- Filter subscription with
pubsubTopic1and decoder withpubsubTopic2(#1675) (491366b) - Handle all empty responses in filter (#1688) (b3864f8)
- Measure total message size (#1643) (b7dc3d7)
Dependencies
- The following workspace dependencies were updated
- dependencies
- @waku/enr bumped from ^0.0.18 to ^0.0.19
- @waku/interfaces bumped from 0.0.19 to 0.0.20
- @waku/utils bumped from 0.0.12 to 0.0.13
- dependencies
0.0.24 (2023-10-16)
⚠ BREAKING CHANGES
- store: use
pubSubTopicfromDecodedMessageforcreateCursor(#1640) - static-sharding: allow multiple pubSubTopics (#1586)
- return
REMOTE_PEER_REJECTEDif remote peer rejected the message
Features
- Add Firefox and Webkit to karma (#1598) (d9e4bcb)
- Enable pinging connected peers by default (#1647) (1d60c4b)
- Return
REMOTE_PEER_REJECTEDif remote peer rejected the message (053b654) - static-sharding: Allow multiple pubSubTopics (#1586) (a3c45b6)
- static-sharding: Filter peer connections per shards (#1626) (124a29e)
Bug Fixes
- Catch stream creation promise rejection for
lightPush.send(b696a89) - Catch top level exception when preemptively creating streams (fb37c89)
- store: Use
pubSubTopicfromDecodedMessageforcreateCursor(#1640) (b10c46b) - Throw error when no response (#1567) (d049ebb)
Dependencies
- The following workspace dependencies were updated
- dependencies
- @waku/enr bumped from ^0.0.17 to ^0.0.18
- @waku/interfaces bumped from 0.0.18 to 0.0.19
- @waku/utils bumped from 0.0.11 to 0.0.12
- dependencies
0.0.23 (2023-09-11)
⚠ BREAKING CHANGES
Features
- Pre-emptive stream creation for protocols (#1516) (b4f8216)
- Set peer-exchange with default bootstrap (#1469) (81a52a8)
- Use the lowest latency peer for protocols (#1540) (6f09fbf)
Miscellaneous Chores
Dependencies
- The following workspace dependencies were updated
- dependencies
- @waku/interfaces bumped from 0.0.17 to 0.0.18
- @waku/utils bumped from 0.0.10 to 0.0.11
- dependencies
0.0.22 (2023-08-02)
Features
- ConnectionManager extends EventEmitter & exposed on the Waku interface (& minor improvements) (#1447) (0b8936f)
Bug Fixes
- Improve connection manager error handling + edge cases (#1450) (785df52)
- Refactors message decoding to abort as soon as a suitable decoder found (#1414) (30fcace)
Dependencies
- The following workspace dependencies were updated
- dependencies
- @waku/interfaces bumped from 0.0.16 to 0.0.17
- @waku/utils bumped from 0.0.9 to 0.0.10
- dependencies
0.0.21 (2023-07-26)
⚠ BREAKING CHANGES
- remove filter v1 (#1433)
- upgrade to libp2p@0.45 (#1400)
Features
- Enable event emission for peer discovery/connection in ConnectionManager (#1438) (6ce898d)
- Spec test for connection manager (#1417) (d2f675d)
- Upgrade to libp2p@0.45 (#1400) (420e6c6)
Miscellaneous Chores
Dependencies
- The following workspace dependencies were updated
- dependencies
- @waku/interfaces bumped from 0.0.15 to 0.0.16
- @waku/utils bumped from 0.0.8 to 0.0.9
- dependencies
0.0.20 (2023-06-08)
⚠ BREAKING CHANGES
- rename package from @waku/create to @waku/sdk (#1386)
Features
- Allow passing of multiple ENR URLs to DNS Discovery & dial multiple peers in parallel (#1379) (f32d7d9)
- Rename package from @waku/create to @waku/sdk (#1386) (951ebda)
Dependencies
- The following workspace dependencies were updated
- dependencies
- @waku/interfaces bumped from 0.0.14 to 0.0.15
- @waku/utils bumped from 0.0.7 to 0.0.8
- dependencies
0.0.19 (2023-05-26)
⚠ BREAKING CHANGES
- filter v2 (#1332)
Features
Dependencies
- The following workspace dependencies were updated
- dependencies
- @waku/interfaces bumped from 0.0.13 to 0.0.14
- @waku/proto bumped from * to 0.0.5
- @waku/utils bumped from 0.0.6 to 0.0.7
- dependencies
0.0.18 (2023-05-18)
⚠ BREAKING CHANGES
- @waku/relay (#1316)
Features
Bug Fixes
Dependencies
- The following workspace dependencies were updated
- dependencies
- @waku/interfaces bumped from * to 0.0.13
- @waku/utils bumped from * to 0.0.6
- dependencies
0.0.17 (2023-05-09)
Features
- Add mapping function to multiaddr of peerid (#1306) (763dc01)
- Ensure content topic is defined (bd9d073)
- ToSubscriptionIterator impl for IReceiver (#1307) (7daa9d0)
- Use nwaku/go-waku docker images instead of building binaries (#1259) (dc3774c)
Bug Fixes
- Enum used from this dependency (c9e7af4)
Dependencies
- The following workspace dependencies were updated
- dependencies
- @waku/interfaces bumped from 0.0.11 to 0.0.12
- @waku/utils bumped from 0.0.4 to 0.0.5
- dependencies
0.0.16 (2023-04-03)
⚠ BREAKING CHANGES
- add and implement IReceiver (#1219)
Features
Dependencies
- The following workspace dependencies were updated
- dependencies
- @waku/interfaces bumped from 0.0.10 to 0.0.11
- @waku/utils bumped from 0.0.3 to 0.0.4
- dependencies
0.0.15 (2023-03-31)
Bug Fixes
0.0.14 (2023-03-29)
Features
Nothing. Was published by mistake and does not contain valid code. Same as 0.0.13
0.0.13 (2023-03-24)
Bug Fixes
Dependencies
- The following workspace dependencies were updated
- dependencies
- @waku/interfaces bumped from 0.0.9 to 0.0.10
- @waku/proto bumped from 0.0.3 to 0.0.4
- @waku/utils bumped from 0.0.2 to 0.0.3
- dependencies
0.0.12 (2023-03-23)
⚠ BREAKING CHANGES
- use ISender and deprecate Light Push .push (#1217)
Features
- Add getActiveSubscriptions method (#1249) (45284db)
- Use ISender and deprecate Light Push .push (#1217) (0f6a594)
Dependencies
- The following workspace dependencies were updated
- dependencies
- @waku/interfaces bumped from 0.0.8 to 0.0.9
- dependencies
0.0.11 (2023-03-16)
⚠ BREAKING CHANGES
- add custom events to Relay and make observers private (#1213)
- add exports map to @waku/utils (#1201)
- enable encoding of
metafield - expose pubsub topic in
IDecodedMessage - update store.proto
- update message.proto: payload and content topic are always defined
- ConnectionManager and KeepAliveManager (#1135)
- bump typescript
- bump all prod dependencies
- bump libp2p dependencies
Features
- Add custom events to Relay and make observers private (#1213) (275b166)
- Codec as a property of the protocol implementations (a5ff788)
- ConnectionManager and KeepAliveManager (#1135) (24c24cc)
- Enable encoding of
metafield (bd983ea) - Export
Decoder,EncoderandDecodedMessagetypes from root (da1b18d), closes #1010 - Expose pubsub topic in
IDecodedMessage(628ac50), closes #1208 - relay: Validate waku message at gossip layer (9684737)
Bug Fixes
- Add payload to relay ping messages to avoid poor relay peer scoring (560c393)
- Prettier and cspell ignore CHANGELOG (#1235) (4d7b3e3)
- Remove initialising peer-exchange while creating a node (#1158) (1b41569)
Miscellaneous Chores
- Add exports map to @waku/utils (#1201) (a30b2bd)
- Bump all prod dependencies (88cc76d)
- Bump libp2p dependencies (803ae7b)
- Bump typescript (12d86e6)
- Update message.proto: payload and content topic are always defined (5cf8ed2)
- Update store.proto (967e6ff)
Dependencies
- The following workspace dependencies were updated
- dependencies
- @waku/interfaces bumped from * to 0.0.8
- @waku/proto bumped from * to 0.0.3
- @waku/utils bumped from * to 0.0.2
- dependencies
Unreleased
Added
multicodecproperty from protocol interfaces.
Removed
- Dependency on
@waku/peer-exchange.
Changed
Filter,LightPushandStoreclasses now takes inoptionsof typeProtocolCreateOptionsas the second argument, instead ofpubSubTopicRelayclass now takes inoptionsof typePartial<RealyCreateOptions>as the second argument, instead ofpubSubTopic
@waku/core@0.0.10 - 2023-01-25
Changed
- Ping Relay messages are now set as ephemeral.
Fixed
- Moved
@chaiand@fast-checktodevDependencieslist.
@waku/core@0.0.9 - 2023-01-18
Changed
- Removed
/vac/waku/relay/2.0.0-beta2fromWakuRelayprotocols. - Moved
@chaiand@fast-checktodependencieslist. - Remove peer exchange from protocols to expect in
waitForRemotePeerby default.
Fixed
- Documentation links.
@waku/core@0.0.8 - 2022-12-19
Fixed
- Missing dependency declarations.
- Invalid re-export.
@waku/core@0.0.7 - 2022-12-15
Added
- Add
@multiformats/multiaddras peer dependency. - New
createEncoderandcreateDecoderfunctions so that the consumer does not deal with Encoder/Decoder classes.
Changed
waitForRemotePeermust now be directly imported from@waku/core.V0suffix removed from the version 0 objects.createEncoder/createDecoder/DecodedMessagefor Waku Message Version 0 (no Waku level encryption) can now be imported directly from@waku/core.- Removed
Wakuandwaku_prefixed on protocol implementations.
@waku/core@0.0.6 - 2022-11-18
Added
- Waku Message
ephemeralfield to mark messages as do-not-store.
Changed
- Bumped
libp2pto 0.40.0 and associated libp2p libraries.
Removed
PeerDiscoveryStaticPeerhas been removed, use@libp2p/bootstrapinstead.
@waku/core@0.0.5 - 2022-11-11
Changed
- Bumped
libp2pto 0.39.5.
@waku/core@0.0.4 - 2022-11-09
Changed
- Bumped
libp2pto 0.39.2.
@waku/core@0.0.3 - 2022-11-04
Fixed
- Missing
.jsextension.
@waku/core@0.0.2 - 2022-11-04
Changed
js-wakuis deprecated,@waku/coreand other@waku/*packages should be used instead.- extract version-1 from chore
- extract utils from core
- extract dns discovery and enr from core (f7f28f0)
- split outgoing and incoming message interface (8aa9b43), closes #979
0.30.0 - 2022-10-28
Added
RateLimitProoffield in Waku Message protobuf for RLN.
Changed
Messageinterface changed to ensure implementations do not omit fields.DecoderandEncoderinterfaces change to better express what the function members do.
Fixed
- Incorrect cursor encoding in Store queries.
WakuStore.queryOrderedCallbacknot stopping when callback returns true.
Removed
- Support for Waku Store 2.0.0-beta3.
0.29.0 - 2022-09-21
Changed
- Waku message encoding and decoding is more generic, to enable upcoming feature such as RLN & Noise;
it also enables separating the
version_1module out to reduce bundle size and improve cross-platform compatibility when not used. - Due to the change above, all APIs that handle messages have changed to receive a
DecoderorEncoder.
0.28.1 - 2022-09-20
Added
WakuRelay.addObservernow returns a function to delete the observer.WakuLightPush.pushandWakuRelay.sendreturnsSendResultwith the list of recipients.
Removed
queryCallbackOnPromise's return value has been simplified toPromise<void>.- doc: clarified behaviour of
WakuStorequery functions.
Deleted
WakuMessageclass in favour of theMessage,Encoder,Decoderinterfaces andEncoderV0,AsymEncoder,SymEncoder(and related decoders).
0.28.0 - 2022-09-16
Changed
- Correct options type for
createFullNode&createPrivacyto enable passing gossipsub options. WakuStorenow provides several APIs:queryGenerator,queryCallbackOnPromise,queryOrderedCallback; each provides different guarantees and performance.
0.27.0 - 2022-09-13
Added
createLightNodeto create a Waku node for resource restricted environment with Light Push, Filter and Relay.createPrivacyNodeto create a Waku node for privacy preserving usage with Relay only.createFullNodeto create a Waku node for with all protocols, for testing purposes only.
Changed
Wakuis now defined as an interface withWakuNodean implementation of it.createWakuis deprecated in favour ofcreateLightNodeandcreatePrivacyNode.waitForRemotePeercan throw, default behaviour has changed.addPeerToAddressBookis now async.- API Docs moved to https://js.waku.org/
- test: fix typing for nwaku JSON RPC responses.
0.26.0 - 2022-09-08
Added
- Simple connection management that selects the most recent connection for store, light push and filter requests.
Changed
- breaking:
DecryptionParamsmay be passed when usingqueryHistoryinstead of just keys. - Examples have been moved to https://github.com/waku-org/js-waku-examples.
Fixed
- doc: add missing modules.
0.25.0 - 2022-09-05
Changed
- Published files moved from
buildtodist/. - Migrate from ts-proto to protons; the latter does not bring Buffer/Long deps, is ESM compatible and remove the need for bufbuild and protoc.
- Move package to
"type": "module", it is now a pure ESM package. - Use ESM code in Mocha and Karma tests.
- Upgrade
dns-querydependency, breaking change onDnsNodeDiscoveryAPI. - Bump many libp2p libraries to their latest version (which usually are pure ESM).
- Replace webpack with parcel for bundling
- Examples: Updated store-js and relay-js to demonstrate usage of ESM bundle in
<script>tag. - Remove need to polyfill
buffer. - breaking: Various API changes. Refer to tests to check proper usage of the new API.
- breaking:
createWakuis in separate exports path. - breaking: Bootstrap class split: dns discovery, static list.
- breaking: bundled files are now under
bundle/.
Fixed
- size-limit config to test several usages of Waku.
bufferis not needed in the browser.
Removed
terserminification andgzipcompressions have been removed.
0.24.0 - 2022-05-27
Added
waitForRemotePeernow accepts atimeoutMsparameter that rejects the promise if it is reached. By default, no timeout is applied.- Experimental support for the Waku Filter protocol (client side) added, currently only works in NodeJS.
Changed
waitForRemotePeerwaits for a Relay peer by default instead of Relay and Store.- Breaking: Removed dupe secp256k1 code, removed some unused APIs.
0.23.0 - 2022-05-19
Added
- Some dependencies that were used but not declared (often transient).
Changed
- Replaced deprecated
multihasheswithmultiformats.
Removed
- No more
assertusage.
0.22.0 - 2022-05-10
Changed
- Replaced
secp256k1and henceellipticdependencies with@noble/secp256k1, reducing package size, number of dependency and removing need forcrypto-browserifypolyfill.
0.21.0 - 2022-05-5
Added
- Support of the
waku2ENR key: When using DNS Discovery, wanted node capabilities (e.g. relay, store) must be passed.
Changed
- Prefer the use of
BigIntover integer literal (npostfix) to facilitate the use of a polyfill.
Fixed
- Declare
it-pipedependency, import as perit-pipe@2.0.0convention.
0.20.0 - 2022-03-29
Changed
- Examples: Add Relay JavaScript example.
- Breaking: Moved utf-8 conversion functions to
utils. - Froze
libp2p-gossipsubto0.13.0as new patch version bring breaking changes.
Fixed
- Replace Base 64 buggy conversion functions with
uint8arrays.
Removed
- Breaking: Removed
equalByteArrays, useuint8arrays/equalsinstead. See changes ineth-pmexample. - Breaking: Removed deprecated utils functions.
0.19.2 - 2022-03-21
Fixed
- Enable usage in NodeJS by fixing
exportsfield and usage of thecryptomodule.
0.19.1 - 2022-03-10
Added
- When using
Waku.create,bootstrap.peersnow accepts an array ofMultiaddr. - Exports
Protocolsfor easy usage withwaitForRemotePeer.
0.19.0 - 2022-03-09
Added
- New
pubsub_topicfield on thecursorof Waku Store queries (#585).
Changed
- Add
exportstopackage.jsonfor NodeJS usage (not officially supported but helpful for experiments).
Fixed
- Handle errors thrown by
bytesToUtf8. WakuMessage.timestampfield must use nanoseconds (was using microseconds).
Removed
- Removed
ecies-gethdependency.
0.18.0 - 2022-02-24
Changed
- Replaced
rlpdependency with@ethersproject/rlp. - Breaking:
staticNoiseKeychanged fromBuffertoUint8Array. - Implement Waku Store 2.0.0-beta4. The
WakuMessage.timestampfield now stores nanoseconds over the wire. - Breaking:
HistoryRPC.createQuerytakesDateinstead ofnumberforstartTimeandendTime.
Removed
base64urlandbigint-bufferdependencies.
0.17.0 - 2022-02-16
Changed
- Breaking: Upgrade
libp2pto0.36.2&libp2p-gossipsubto0.13.0. Some APIs are now async. - docs: Various improvements.
- Ran
npm audit fix. Waku.dialaccepts protocols expected from the peer. Defaults to Waku Relay only.- Deprecated
hexToBuf&bufToHexin favour ofhexToBytes&bytesToHexto move towards removing thebufferpolyfill. - Breaking: Replaced
getNodesFromHostedJsonwithgetPredefinedBootstrapNodes. Now, it uses a hardcoded list of nodes.
Removed
axiosdependency in favour of fetch.
0.16.0 - 2022-01-31
Changed
- Test: Upgrade nim-waku node to v0.7.
- Doc: Renamed "DappConnect" to "Waku Connect".
- Docs: API Docs are now available at https://js-waku.wakuconnect.dev/.
- Breaking: Replace
waitForConnectedPeerwithwaitForRemotePeer; the new method checks that the peer is ready before resolving the promise.
0.15.0 - 2022-01-17
Added
- Implement DNS Discovery as per EIP-1459,
with ENR records as defined in 31/WAKU2-ENR;
Available by passing
{ bootstrap: { enrUrl: enrtree://... } }toWaku.create. - When using
addDecryptionKey, it is now possible to specify the decryption method and the content topics of the messages to decrypt; this is to reduce the number of decryption attempt done and improve performance.
Changed
- Test: Upgrade nim-waku node to v0.6.
- Breaking: Renamed
getBootstrapNodestogetNodesFromHostedJson. - Minimum node version changed to 16.
- Breaking: Changed
Waku.createbootstrap option from{ bootstrap: boolean }to{ bootstrap: BootstrapOptions }. Replace{ boostrap: true }with{ boostrap: { default: true } }to retain same behaviour. - Breaking:
WakuMessage.decodeandWakuMessage.decodeProtonow accepts method and content topics for the decryption key.WakuMessage.decode(bytes, [key])becomesWakuMessage.decode(bytes, [{key: key}]).
Fixed
- Doc: Some broken links.
0.14.2 - 2021-11-30
Changed
- Examples: JS examples uses local ESM folder to replicate behaviour of js-waku publish package.
Fixed
TypeErrorissue related to constructors using js-waku in a JS project (#323).
0.14.1 - 2021-10-22
Fixed
- Issue when importing the
utilsmodule.
0.14.0 - 2021-10-13
Added
- If the
callbackfunction passed toWakuStore.queryHistoryreturnstrue, then no further pages are retrieved from the store. - Use webpack to build UMD bundle of the library, see README for usage.
Changed
- Breaking: Renamed
WakuStore.QueryOptions'sdirectiontopageDirection(and its type) as it only affects the page ordering, not the ordering of messages with the page.
Fixed
- Docs: Ensure that
WakuStore'sQueryOptionsdocumentation is available online.
0.13.1 - 2021-09-21
Fixed
Error: Bootstrap requires a list of peer addresseserror when usingbootstrap: trueinWaku.create.
0.13.0 - 2021-09-16
Changed
- Upgrade libp2p libraries: @chainsafe/libp2p-noise@4.1.1, libp2p@0.32.4, libp2p-gossipsub@0.11.1.
- Connects to a limited number of bootstrap nodes, defaults to 1.
0.12.2 - 2021-09-21
Fixed
- hot fix:
Error: Bootstrap requires a list of peer addresseserror when usingbootstrap: trueinWaku.create.
0.12.1 - 2021-09-16
Changed
- hot fix: Connects to a limited number of bootstrap nodes, defaults to 1.
0.12.0 - 2021-09-2
Added
- Examples (eth-pm): Encrypt Public Key Messages using symmetric encryption.
- Guides: Encrypt messages using Waku Message Version 1.
- Allow passing decryption keys in hex string format.
- Allow passing decryption keys to
WakuStoreinstance to avoid having to pass them at everyqueryHistorycall. - Allow passing decryption keys to
Wakuinstance to avoid having to pass them to bothWakuRelayandWakuStore. Waku.waitForConnectedPeerhelper to ensure that we are connected to Waku peers when using the bootstrap option.
Changed
- Breaking: Moved
startTimeandendTimefor history queries to atimeFilterproperty as both or neither must be passed; passing only one parameter is not supported. - Renamed and promote the usage of
generateSymmetricKey()to generate random symmetric keys. - Improved errors thrown by
WakuStore.queryHistory.
Fixed
- Buffer concat error when using symmetric encryption in the browser.
0.11.0 - 2021-08-20
Added
- Examples: New Ethereum Private Message Using Wallet Encryption Web App
example that demonstrates the usage of
eth_encryptAPI (available on Metamask) and EIP-712 for typed structured data signing. - New
bootstrapoption forWaku.createto easily connect to Waku nodes upon start up. - Support for
startTimeandendTimein Store queries to filter by time window as per 21/WAKU2-FTSTORE.
Changed
- Renamed
discover.getStatusFleetNodestodiscovery.getBootstrapNodes; Changed the API to allow retrieval of bootstrap nodes from other sources. - Examples: Renamed
eth-dmtoeth-pm; "Direct Message" can lead to confusion with "Direct Connection" that refers to low latency network connections. - Examples (eth-pm): Use sign typed data EIP-712 instead of personal sign.
- Upgraded dependencies to remove warning at installation.
- Breaking: Moved
DefaultPubSubTopictowaku.tsand fixed the casing. - Breaking: Rename all
pubsubTopicoccurrences topubSubTopic, across all interfaces.
Removed
- Examples (cli-chat): The focus of this library is Web environment; Several examples now cover usage of Waku Relay and Waku Store making cli-chat example obsolete; web-chat POC should be preferred to use the TOY-CHAT protocol.
ChatMessagehas been moved from js-waku to web-chat example; it is a type used for the TOY-CHAT protocol; js-waku users should not build on top if this toy protocol and instead design message data structures appropriate to their use case.- Unused dependencies & scripts.
0.10.0 - 2021-08-06
Added
- Relay and ReactJS guides and examples (#56).
Changed
- Breaking: The
WakuMessageAPIs have been changed to movecontentTopicout of the optional parameters. - Breaking: Move
contentTopicsout theWakuStore.queryHistory's optional parameters. - Breaking:
WakuStore.queryHistorythrows when encountering an error instead of returning anullvalue.
Removed
- Examples (web-chat): Remove broken
/fleetcommand. - Breaking: Removed
DefaultContentTopicas 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.payloadAsUtf8returning garbage on utf-8 non-ascii characters.ChatMessage.payloadAsUtf8returning garbage on utf-8 non-ascii characters.
0.9.0 - 2021-07-26
Changed
- Breaking: Store Response Protobuf changed to align with nim-waku v0.5 (nim-waku#676).
0.8.1 - 2021-07-16
Added
- Examples (web-chat): New
/fleetcommand to switch connection between Status prod and test fleets. - Export
generatePrivateKeyandgetPublicKeydirectly 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)PrivateDecryptionKeytoWakuRelay.(add|delete)DecryptionKeyto make it clearer that it accepts both symmetric keys and asymmetric private keys. - Upgrade libp2p to 0.32.0.
- Breaking: Rename
keepAliveoption topingKeepAlive. - Introduced new
relayKeepAliveoption onWakuwith a default to 59s to send ping messages over relay to ensure the relay stream stays open. This is a workaround until js-libp2p#744 is done as there are issues when TCP(?) timeouts and the stream gets closed (#185, js-libp2p#939)
Fixed
- Align
WakuMessagereadme example with actual code behaviour. - Remove infinite loop when an error with Waku Store is encountered.
0.8.0 - 2021-07-15
Added
WakuRelay.deleteObserverto 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/utilsmodule for easy, dependency-less hex/bytes conversions. - New
peersandrandomPeermethods onWakuStoreandWakuLightPushto 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.7andlibp2p-gossipsub@0.10.0to avoidTextEncodererrors in ReactJS tests. - Disable keep alive by default as latest nim-waku release does not support ping protocol.
- Breaking: Optional parameters for
WakuMessage.fromBytesandWakuMessage.fromUtf8Stringare now passed in a singleOptionsobject. - Breaking:
WakuMessagestatic functions are now async to allow for encryption and decryption. - Breaking:
WakuMessageconstructor is now private,from*anddecode*function should be used. WakuMessageversion 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
keepAliveif 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.moduleswhen usingWaku.create. - Breaking: Options passed to
Waku.createused to be passed toLibp2p.create; Now, only thelibp2pproperty 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.timestampas 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,WakuStoreandWakuLightPush; 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
Directionenum from js-waku root (it was only accessible via the proto module). - Examples (cli chat): Use light push to send messages if
--lightPushis passed. - Examples (cli chat): Print usage if
--helpis passed.
0.4.0 - 2021-05-18
Added
callbackargument toWakuStore.queryHistory(), called as messages are retrieved ; Messages are retrieved using pagination, and it may take some time to retrieve all messages, with thecallbackfunction, messages are processed as soon as they are received.
Changed
- Testing: Upgrade nim-waku node to v0.3.
- Breaking: Modify
WakuStore.queryHistory()to accept oneObjectinstead of multiple individual arguments. getStatusFleetNodesreturn 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
--prodto connect to prod fleet.
Fixed
- Expose
EnviromentandProtocolenums to pass togetStatusFleetNodes.
0.3.0 - 2021-05-15
Added
getStatusFleetNodesto 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.getPeersmethod.- Use
WakuRelay.getPeersin web chat app example to disable send button.
Changed
- Enable passing
strings toaddPeerToAddressBook. - Use
addPeerToAddressBookin examples and usage doc. - Settle on
js-wakuname across the board. - Breaking:
RelayDefaultTopicrenamed 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.