# 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). ## [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 `