# Changelog All notable changes to this project will be documented in this file. The file is maintained by [Release Please](https://github.com/googleapis/release-please) based on [Conventional Commits](https://www.conventionalcommits.org) specification, and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [0.0.23](https://github.com/waku-org/js-waku/compare/core-v0.0.22...core-v0.0.23) (2023-09-11) ### ⚠ BREAKING CHANGES * set peer-exchange with default bootstrap ([#1469](https://github.com/waku-org/js-waku/issues/1469)) * refactor store protocol for readability ([#1456](https://github.com/waku-org/js-waku/issues/1456)) ### Features * Pre-emptive stream creation for protocols ([#1516](https://github.com/waku-org/js-waku/issues/1516)) ([b4f8216](https://github.com/waku-org/js-waku/commit/b4f821676120aa06f4772eed62fb105d5afae7c6)) * Set peer-exchange with default bootstrap ([#1469](https://github.com/waku-org/js-waku/issues/1469)) ([81a52a8](https://github.com/waku-org/js-waku/commit/81a52a8097ba948783c9d798ba362af0f27e1c10)) * Use the lowest latency peer for protocols ([#1540](https://github.com/waku-org/js-waku/issues/1540)) ([6f09fbf](https://github.com/waku-org/js-waku/commit/6f09fbf4ed181cb2fe5a15643cf2bebdc889ec64)) ### Miscellaneous Chores * Refactor store protocol for readability ([#1456](https://github.com/waku-org/js-waku/issues/1456)) ([2389977](https://github.com/waku-org/js-waku/commit/2389977a9840281dff4008c015fe76451c0f0df5)) ### 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 ## [0.0.22](https://github.com/waku-org/js-waku/compare/core-v0.0.21...core-v0.0.22) (2023-08-02) ### Features * ConnectionManager extends EventEmitter & exposed on the Waku interface (& minor improvements) ([#1447](https://github.com/waku-org/js-waku/issues/1447)) ([0b8936f](https://github.com/waku-org/js-waku/commit/0b8936f1f1ad33f6cb90eb88d027a19e787ae7a2)) ### Bug Fixes * Improve connection manager error handling + edge cases ([#1450](https://github.com/waku-org/js-waku/issues/1450)) ([785df52](https://github.com/waku-org/js-waku/commit/785df528fe6e5010a61391994e222028dbc4e4c5)) * Refactors message decoding to abort as soon as a suitable decoder found ([#1414](https://github.com/waku-org/js-waku/issues/1414)) ([30fcace](https://github.com/waku-org/js-waku/commit/30fcacea84d9aefbe71e7f4b48506a088f2e1bf8)) ### 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 ## [0.0.21](https://github.com/waku-org/js-waku/compare/core-v0.0.20...core-v0.0.21) (2023-07-26) ### ⚠ BREAKING CHANGES * remove filter v1 ([#1433](https://github.com/waku-org/js-waku/issues/1433)) * upgrade to libp2p@0.45 ([#1400](https://github.com/waku-org/js-waku/issues/1400)) ### Features * Enable event emission for peer discovery/connection in ConnectionManager ([#1438](https://github.com/waku-org/js-waku/issues/1438)) ([6ce898d](https://github.com/waku-org/js-waku/commit/6ce898d77132f30b5d8f33b48c7f6276992a486e)) * Spec test for connection manager ([#1417](https://github.com/waku-org/js-waku/issues/1417)) ([d2f675d](https://github.com/waku-org/js-waku/commit/d2f675d690f4a648dc7294455891f2d66a49ea76)) * Upgrade to libp2p@0.45 ([#1400](https://github.com/waku-org/js-waku/issues/1400)) ([420e6c6](https://github.com/waku-org/js-waku/commit/420e6c698dd8f44d40d34e47d876da5d2e1ce85e)) ### Miscellaneous Chores * Remove filter v1 ([#1433](https://github.com/waku-org/js-waku/issues/1433)) ([d483644](https://github.com/waku-org/js-waku/commit/d483644a4bb4350df380719b9bcfbdd0b1439482)) ### 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 ## [0.0.20](https://github.com/waku-org/js-waku/compare/core-v0.0.19...core-v0.0.20) (2023-06-08) ### ⚠ BREAKING CHANGES * rename package from @waku/create to @waku/sdk ([#1386](https://github.com/waku-org/js-waku/issues/1386)) ### Features * Allow passing of multiple ENR URLs to DNS Discovery & dial multiple peers in parallel ([#1379](https://github.com/waku-org/js-waku/issues/1379)) ([f32d7d9](https://github.com/waku-org/js-waku/commit/f32d7d9fe0b930b4fa9c46b8644e6d21be45d5c1)) * Rename package from @waku/create to @waku/sdk ([#1386](https://github.com/waku-org/js-waku/issues/1386)) ([951ebda](https://github.com/waku-org/js-waku/commit/951ebdac9d5b594583acf5e4a21f6471fa81ff74)) ### 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 ## [0.0.19](https://github.com/waku-org/js-waku/compare/core-v0.0.18...core-v0.0.19) (2023-05-26) ### ⚠ BREAKING CHANGES * filter v2 ([#1332](https://github.com/waku-org/js-waku/issues/1332)) ### Features * Filter v2 ([#1332](https://github.com/waku-org/js-waku/issues/1332)) ([8d0e647](https://github.com/waku-org/js-waku/commit/8d0e64796695fbafad0a033552eb4412bdff3d78)) ### 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 ## [0.0.18](https://github.com/waku-org/js-waku/compare/core-v0.0.17...core-v0.0.18) (2023-05-18) ### ⚠ BREAKING CHANGES * @waku/relay ([#1316](https://github.com/waku-org/js-waku/issues/1316)) ### Features * @waku/relay ([#1316](https://github.com/waku-org/js-waku/issues/1316)) ([50c2c25](https://github.com/waku-org/js-waku/commit/50c2c2540f3c5ff78d93f3fea646da0eee246e17)) * Add 1MB restriction to LightPush and Relay ([#1351](https://github.com/waku-org/js-waku/issues/1351)) ([72f97d4](https://github.com/waku-org/js-waku/commit/72f97d4545512f92936b1a9b50fa0b53f8603f9d)) ### Bug Fixes * Improve logging for connection manager ([#1303](https://github.com/waku-org/js-waku/issues/1303)) ([f4e3101](https://github.com/waku-org/js-waku/commit/f4e31019e115de0fffef01bb51a8f8e22c6cc8af)) ### Dependencies * The following workspace dependencies were updated * dependencies * @waku/interfaces bumped from * to 0.0.13 * @waku/utils bumped from * to 0.0.6 ## [0.0.17](https://github.com/waku-org/js-waku/compare/core-v0.0.16...core-v0.0.17) (2023-05-09) ### Features * Add mapping function to multiaddr of peerid ([#1306](https://github.com/waku-org/js-waku/issues/1306)) ([763dc01](https://github.com/waku-org/js-waku/commit/763dc0125dae8a675aa25e9116831f15748c2f9d)) * Ensure content topic is defined ([bd9d073](https://github.com/waku-org/js-waku/commit/bd9d07394fc2dcad573dd7f3b44ee692d0ea93e8)) * ToSubscriptionIterator impl for IReceiver ([#1307](https://github.com/waku-org/js-waku/issues/1307)) ([7daa9d0](https://github.com/waku-org/js-waku/commit/7daa9d05bf44b33296b56df214f5d5901887a129)) * Use nwaku/go-waku docker images instead of building binaries ([#1259](https://github.com/waku-org/js-waku/issues/1259)) ([dc3774c](https://github.com/waku-org/js-waku/commit/dc3774c0ede6c76956fb02fda4dbe9f9fb218e91)) ### Bug Fixes * Enum used from this dependency ([c9e7af4](https://github.com/waku-org/js-waku/commit/c9e7af470dfb92fc3e5b02935b243ce350153641)) ### 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 ## [0.0.16](https://github.com/waku-org/js-waku/compare/core-v0.0.15...core-v0.0.16) (2023-04-03) ### ⚠ BREAKING CHANGES * add and implement IReceiver ([#1219](https://github.com/waku-org/js-waku/issues/1219)) ### Features * Add and implement IReceiver ([#1219](https://github.com/waku-org/js-waku/issues/1219)) ([e11e5b4](https://github.com/waku-org/js-waku/commit/e11e5b4870aede7813b3ee4b60f5e625f6eac5a2)) ### 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 ## [0.0.15](https://github.com/waku-org/js-waku/compare/core-v0.0.14...core-v0.0.15) (2023-03-31) ### Bug Fixes * Update @waku/core changelog ([#1287](https://github.com/waku-org/js-waku/issues/1287)) ([5def8dd](https://github.com/waku-org/js-waku/commit/5def8ddb4d9a43424bf2124a521d618368ffa9dc)) ## [0.0.14](https://github.com/waku-org/js-waku/compare/core-v0.0.12...core-v0.0.13) (2023-03-29) ### Features Nothing. Was published by mistake and does not contain valid code. Same as 0.0.13 ## [0.0.13](https://github.com/waku-org/js-waku/compare/core-v0.0.12...core-v0.0.13) (2023-03-24) ### Bug Fixes * **utils:** Include all ts files ([#1267](https://github.com/waku-org/js-waku/issues/1267)) ([c284159](https://github.com/waku-org/js-waku/commit/c284159ac8eab5bed2313fa5bc7fbea0e83d390f)) ### 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 ## [0.0.12](https://github.com/waku-org/js-waku/compare/core-v0.0.11...core-v0.0.12) (2023-03-23) ### ⚠ BREAKING CHANGES * use ISender and deprecate Light Push .push ([#1217](https://github.com/waku-org/js-waku/issues/1217)) ### Features * Add getActiveSubscriptions method ([#1249](https://github.com/waku-org/js-waku/issues/1249)) ([45284db](https://github.com/waku-org/js-waku/commit/45284db963d6d4c90a014391551604c236906b88)) * Use ISender and deprecate Light Push .push ([#1217](https://github.com/waku-org/js-waku/issues/1217)) ([0f6a594](https://github.com/waku-org/js-waku/commit/0f6a59464426b94dd14841de075ff10a4ad52e33)) ### Dependencies * The following workspace dependencies were updated * dependencies * @waku/interfaces bumped from 0.0.8 to 0.0.9 ## [0.0.11](https://github.com/waku-org/js-waku/compare/core-v0.0.10...core-v0.0.11) (2023-03-16) ### ⚠ BREAKING CHANGES * add custom events to Relay and make observers private ([#1213](https://github.com/waku-org/js-waku/issues/1213)) * add exports map to @waku/utils ([#1201](https://github.com/waku-org/js-waku/issues/1201)) * enable encoding of `meta` field * expose pubsub topic in `IDecodedMessage` * update store.proto * update message.proto: payload and content topic are always defined * ConnectionManager and KeepAliveManager ([#1135](https://github.com/waku-org/js-waku/issues/1135)) * bump typescript * bump all prod dependencies * bump libp2p dependencies ### Features * Add custom events to Relay and make observers private ([#1213](https://github.com/waku-org/js-waku/issues/1213)) ([275b166](https://github.com/waku-org/js-waku/commit/275b16641e620956a5f8ebbb3a8c4156149d489e)) * Codec as a property of the protocol implementations ([a5ff788](https://github.com/waku-org/js-waku/commit/a5ff788eed419556e11319f22ca9e3109c81df92)) * ConnectionManager and KeepAliveManager ([#1135](https://github.com/waku-org/js-waku/issues/1135)) ([24c24cc](https://github.com/waku-org/js-waku/commit/24c24cc27d83ec12de45ef3cf3d00f6eb817e4ca)) * Enable encoding of `meta` field ([bd983ea](https://github.com/waku-org/js-waku/commit/bd983ea48ee73fda5a7137d5ef681965aeabb4a5)) * Export `Decoder`, `Encoder` and `DecodedMessage` types from root ([da1b18d](https://github.com/waku-org/js-waku/commit/da1b18d9956259af4cb2e6f7c1f06de52b6ec3ac)), closes [#1010](https://github.com/waku-org/js-waku/issues/1010) * Expose pubsub topic in `IDecodedMessage` ([628ac50](https://github.com/waku-org/js-waku/commit/628ac50d7104ec3c1dff44db58077a85db6b6aa1)), closes [#1208](https://github.com/waku-org/js-waku/issues/1208) * **relay:** Validate waku message at gossip layer ([9684737](https://github.com/waku-org/js-waku/commit/96847374d6c61f3372a16185d9fff93e582505bb)) ### Bug Fixes * Add payload to relay ping messages to avoid poor relay peer scoring ([560c393](https://github.com/waku-org/js-waku/commit/560c39366259f9902cac7f2afd0d301c49e13f4c)) * Prettier and cspell ignore CHANGELOG ([#1235](https://github.com/waku-org/js-waku/issues/1235)) ([4d7b3e3](https://github.com/waku-org/js-waku/commit/4d7b3e39e6761afaf5d05a13cc4b3c23e15f9bd5)) * Remove initialising peer-exchange while creating a node ([#1158](https://github.com/waku-org/js-waku/issues/1158)) ([1b41569](https://github.com/waku-org/js-waku/commit/1b4156902387ea35b24b3d6f5d22e4635ea8cf18)) ### Miscellaneous Chores * Add exports map to @waku/utils ([#1201](https://github.com/waku-org/js-waku/issues/1201)) ([a30b2bd](https://github.com/waku-org/js-waku/commit/a30b2bd747dedeef69b46cfafb88898ba35d8f67)) * Bump all prod dependencies ([88cc76d](https://github.com/waku-org/js-waku/commit/88cc76d2b811e1fa4460207f38704ecfe18fb260)) * Bump libp2p dependencies ([803ae7b](https://github.com/waku-org/js-waku/commit/803ae7bd8ed3de665026446c23cde90e7eba9d36)) * Bump typescript ([12d86e6](https://github.com/waku-org/js-waku/commit/12d86e6abcc68e27c39ca86b4f0dc2b68cdd6000)) * Update message.proto: payload and content topic are always defined ([5cf8ed2](https://github.com/waku-org/js-waku/commit/5cf8ed2030c9efbc4c4b66aa801827482c1e4249)) * Update store.proto ([967e6ff](https://github.com/waku-org/js-waku/commit/967e6ffc7ec6f780094e29599c47b723fa222dcc)) ### 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 ## [Unreleased] ### Added - `multicodec` property from protocol interfaces. ### Removed - Dependency on `@waku/peer-exchange`. ### Changed - `Filter`, `LightPush` and `Store` classes now takes in `options` of type `ProtocolCreateOptions` as the second argument, instead of `pubSubTopic` - `Relay` class now takes in `options` of type `Partial` as the second argument, instead of `pubSubTopic` ## [@waku/core@0.0.10] - 2023-01-25 ### Changed - Ping Relay messages are now set as ephemeral. ### Fixed - Moved `@chai` and `@fast-check` to `devDependencies` list. ## [@waku/core@0.0.9] - 2023-01-18 ### Changed - Removed `/vac/waku/relay/2.0.0-beta2` from `WakuRelay` protocols. - Moved `@chai` and `@fast-check` to `dependencies` list. - Remove peer exchange from protocols to expect in `waitForRemotePeer` by 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/multiaddr` as peer dependency. - New `createEncoder` and `createDecoder` functions so that the consumer does not deal with Encoder/Decoder classes. ### Changed - `waitForRemotePeer` must now be directly imported from `@waku/core`. - `V0` suffix removed from the version 0 objects. - `createEncoder`/`createDecoder`/`DecodedMessage` for Waku Message Version 0 (no Waku level encryption) can now be imported directly from `@waku/core`. - Removed `Waku` and `waku_` prefixed on protocol implementations. ## [@waku/core@0.0.6] - 2022-11-18 ### Added - Waku Message `ephemeral` field to mark messages as do-not-store. ### Changed - Bumped `libp2p` to 0.40.0 and associated libp2p libraries. ### Removed - `PeerDiscoveryStaticPeer` has been removed, use `@libp2p/bootstrap` instead. ## [@waku/core@0.0.5] - 2022-11-11 ### Changed - Bumped `libp2p` to 0.39.5. ## [@waku/core@0.0.4] - 2022-11-09 ### Changed - Bumped `libp2p` to 0.39.2. ## [@waku/core@0.0.3] - 2022-11-04 ### Fixed - Missing `.js` extension. ## [@waku/core@0.0.2] - 2022-11-04 ### Changed - `js-waku` is deprecated, `@waku/core` and other `@waku/*` packages should be used instead. - extract version-1 from chore - extract utils from core - extract dns discovery and enr from core ([f7f28f0](https://github.com/waku-org/js-waku/commit/f7f28f03b01fa5bc89eaeb083b68981169b45c39)) - split outgoing and incoming message interface ([8aa9b43](https://github.com/waku-org/js-waku/commit/8aa9b43f61af356e8faa1859f4844849a7cfa9b1)), closes [#979](https://github.com/waku-org/js-waku/issues/979) ## [0.30.0] - 2022-10-28 ### Added - `RateLimitProof` field in Waku Message protobuf for RLN. ### Changed - `Message` interface changed to ensure implementations do not omit fields. - `Decoder` and `Encoder` interfaces change to better express what the function members do. ### Fixed - Incorrect cursor encoding in Store queries. - `WakuStore.queryOrderedCallback` not 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](https://rfc.vac.dev/spec/17/) & [Noise](https://rfc.vac.dev/spec/43/); it also enables separating the `version_1` module 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 `Decoder` or `Encoder`. ## [0.28.1] - 2022-09-20 ### Added - `WakuRelay.addObserver` now returns a function to delete the observer. - `WakuLightPush.push` and `WakuRelay.send` returns `SendResult` with the list of recipients. ### Removed - `queryCallbackOnPromise`'s return value has been simplified to `Promise`. - doc: clarified behaviour of `WakuStore` query functions. ### Deleted - `WakuMessage` class in favour of the `Message`, `Encoder`, `Decoder` interfaces and `EncoderV0`, `AsymEncoder`, `SymEncoder` (and related decoders). ## [0.28.0] - 2022-09-16 ### Changed - Correct options type for `createFullNode` & `createPrivacy` to enable passing gossipsub options. - `WakuStore` now provides several APIs: `queryGenerator`, `queryCallbackOnPromise`, `queryOrderedCallback`; each provides different guarantees and performance. ## [0.27.0] - 2022-09-13 ### Added - `createLightNode` to create a Waku node for resource restricted environment with Light Push, Filter and Relay. - `createPrivacyNode` to create a Waku node for privacy preserving usage with Relay only. - `createFullNode` to create a Waku node for with all protocols, for **testing purposes only**. ### Changed - `Waku` is now defined as an interface with `WakuNode` an implementation of it. - `createWaku` is deprecated in favour of `createLightNode` and `createPrivacyNode`. - `waitForRemotePeer` can throw, default behaviour has changed. - `addPeerToAddressBook` is 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**: `DecryptionParams` may be passed when using `queryHistory` instead 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 `build` to `dist/`. - 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](https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c). - Use ESM code in Mocha and Karma tests. - Upgrade `dns-query` dependency, breaking change on `DnsNodeDiscovery` API. - 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 `