### Added
- If the `callback` function passed to`WakuStore.queryHistory` returns
`true`, then no further pages are retrieved from the store.
- Use webpack to build UMD bundle of the library, see
[README](./README.md) for usage.
### Changed
- **Breaking**: Renamed `WakuStore.QueryOptions`'s `direction` to
`pageDirection` (and its type) as it only affects the page ordering,
not the ordering of messages with the page.
### Fixed
- Docs: Ensure that `WakuStore`'s `QueryOptions` documentation is
available [online](https://status-im.github.io/js-waku/docs/).
### Added
- Examples: New Ethereum Private Message Using Wallet Encryption
[Web App](./examples/eth-pm-wallet-encryption/README.md)
example that demonstrates the usage of `eth_encrypt` API (available on
Metamask) and EIP-712 for typed structured data signing.
- New `bootstrap` option for `Waku.create` to easily connect to Waku
nodes upon start up.
- Support for `startTime` and `endTime` in Store queries to filter by
time window as per [21/WAKU2-FTSTORE](https://rfc.vac.dev/spec/21/).
### Changed
- Renamed `discover.getStatusFleetNodes` to
`discovery.getBootstrapNodes`;
Changed the API to allow retrieval of bootstrap nodes from other
sources.
- Examples: Renamed `eth-dm` to `eth-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 `DefaultPubSubTopic` to `waku.ts` and fixed the
casing.
- **Breaking**: Rename all `pubsubTopic` occurrences to `pubSubTopic`,
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](https://rfc.vac.dev/spec/22/) protocol.
- `ChatMessage` has been moved from js-waku to web-chat example;
it is a type used for the [TOY-CHAT](https://rfc.vac.dev/spec/22/) 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.
It is a type used for the [TOY-CHAT](https://rfc.vac.dev/spec/22/)
protocol;
js-waku users should not build on top if this toy protocol and instead
design message data structures appropriate to their use case.
The focus of this library is on Web environment; Several examples now
cover usage of Waku Relay and Waku Store; web-chat POC should be
preferred to use the [TOY-CHAT](https://rfc.vac.dev/spec/22/) protocol.
### 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.