Skip to content

Latest commit

 

History

History
329 lines (213 loc) · 20.4 KB

CHANGELOG.md

File metadata and controls

329 lines (213 loc) · 20.4 KB

v0.13.2 (2020-01-20)

  • Fix providing the signParams to DataListWriter constructors in @erebos/doc-sync.
  • Remove duplicate @erebos/bzz types from @erebos/bzz-feed.

v0.13.1 (2020-01-16)

  • Fix type signature of the write() method of TimelineWriter.
  • Bump dependency version of @erebos/hex in @erebos/keccak256.

v0.13.0 (2020-01-16)

Breaking changes

  • The bzz-related packages have been refactored, the @erebos/api-bzz-base, @erebos/api-bzz-browser and @erebos/api-bzz-node packages are discontinued and should be replaced by @erebos/bzz, @erebos/bzz-browser, @erebos/bzz-node, @erebos/bzz-feed and @erebos/bzz-fs depending on the use cases, see below.
  • The @erebos/api-pss package has been renamed to @erebos/pss for consistency with the bzz-related packages.
  • In the @erebos/timeline package, the decode option has been removed from TimelineReaderConfig and the encode option from TimelineWriterConfig, instead the read() and write() methods could be overwritten to cover the use case.
  • The createHex() function has been removed from @erebos/hex, Hex.from() should be used instead.
  • The @erebos/feed-list and @erebos/timeline packages classes now need to be injected a BzzFeed instance.

Bzz packages changes

One goal for Erebos has been to stay quite low-level, at least for the core packages interacting with Swarm. As the bzz-related packages have been growing over the past releases, it's been time to reconsider how to best organize them:

  • Support for Swarm feeds requires additional dependencies such as @erebos/hex, @erebos/keccak256 and rxjs that can be an additional burden for apps that don't need feeds, so all the feed-related methods have been extracted to the @erebos/bzz-feed package.
  • @erebos/api-bzz-node provided additional methods to interact with the file system. These methods are now provided by the dedicated @erebos/bzz-fs package.
  • The @erebos/bzz package can now be used directly in browsers. However, it does not provide the downloadDirectory() and uploadDirectory() methods added in the @erebos/bzz-browser and @erebos/bzz-node packages.

So what package should you use?

  • If you use node: @erebos/bzz-node
  • Target a browser environment?
    • If you need to use the downloadDirectory() or uploadDirectory() method: @erebos/bzz-browser
    • Otherwise: @erebos/bzz
  • Use React Native?
    • Try the experimental @erebos/bzz-react-native
    • Extend @erebos/bzz as needed
  • For any other environment, try extending @erebos/bzz

If you need to interact with feeds, use @erebos/bzz-feed.

If you want to interact with the file sytem when using node, the @erebos/bzz-fs package provides the utility methods previously implemented in @erebos/api-bzz-node.

New package

The @erebos/doc-sync package has been added, allowing to synchronize JSON documents.

v0.12.0 (2019-12-17)

Breaking change

The Timeline class has been split between the TimelineReader and TimelineWriter classes. TimelineWriter extends TimelineReader and therefore can be used as a dropped-in replacement for Timeline.

Additional features

Other change

HTTP error messages from Swarm are now parsed when possible thanks to Adam Uhlíř's pull request.

New package

The @erebos/feed-list package has been added, implementing lists data structures on top of raw Swarm feeds.

v0.11.0 (2019-11-28)

This release adds support for Readable streams in @erebos/api-bzz-base, thanks to Adam Uhlíř's pull request.

Breaking change

The uploadFileStream() method of @erebos/api-bzz-node has been removed, uploadFile() now supporting streams.

Additional features

Other change

The code base and type definitions have been updated to TypeScript 3.7 thanks to Adam Uhlíř's pull request.

v0.10.0 (2019-10-01)

Breaking changes

Swarm v0.5 support

Erebos v0.10 adds support for 2 new features added to the Swarm v0.5 release:

It is possible to track progress of chunks spreading over the network using the getTag() and pins() methods of the Bzz class.

New packages

RPC utility libraries that were previously stored in a different repository have now been moved to the Erebos repository and npm organization.

You can learn more about these tools in the added documentation.

v0.9.0 (2019-08-12)

Breaking changes

TypeScript rewrite

The main change in this release is the code base being rewritten in TypeScript. As part of these changes, the library no longer uses ES modules default exports but only named exports, such as:

  • import { Bzz } from '@erebos/api-bzz-node'
  • import { Pss } from '@erebos/api-pss'
  • import { createHex } from '@erebos/hex'

Pss module changes

  • The EMPTY_HEX constant has been renamed to EMPTY_ADDRESS.
  • The sendRaw(), setPeerPublicKey() and setSymmetricKey() methods of the Pss class no longer set a default address value, use EMPTY_ADDRESS if needed.

Browser module namespacing

The @erebos/swarm-browser package now exports its contents in the Erebos.swarm namespace instead of Erebos. For example Erebos.swarm.SwarmClient() should be used instead of Erebos.SwarmClient().
The browser builds (in the dist folder) have been renamed from erebos.development.js and erebos.production.js to erebos.swarm.development.js and erebos.swarm.production.js to better reflect this change.

Additional features

  • The downloadTarTo() method has been added to @erebos/api-bzz-node.
  • The experimental @erebos/api-bzz-react-native has been added by Mark Vujevits in PR #98.

Other changes

  • The sign() and verify() functions exported by the @erebos/secp256k1 package now accept a BNInput input value as exported by the elliptic package.
  • The addChapter() method of the Timeline class now calls createChapter(), so default values for the chapter will be injected.
  • Fixed links to Swarm install & run (by thecryptofruit in PR #108).
  • Docs have been updated to expose TypeScript interfaces rather than Flow types.

v0.8.1 (2019-06-17)

  • Add missing rxjs dependency to @erebos/api-bzz-base package.
  • Fix TypeScript definition for @erebos/api-bzz-base package.

v0.8.0 (2019-05-28)

Breaking changes

Additional features

Other changes

The library is now tested against Swarm v0.4.0, using the Docker image provided by ethersphere.

v0.7.2 (2019-04-15)

Fix FeedParams type in @erebos/api-bzz-base.

v0.7.1 (2019-03-18)

  • Add FeedTopicParams type to @erebos/api-bzz-base.
  • Fix getFeedTopic() function in @erebos/api-bzz-base to use FeedTopicParams as input type.

v0.7.0 (2019-03-18)

Breaking changes

Additional features

Other changes

The website has been redesigned and additional examples have been added: erebos.js.org

v0.6.3 (2019-02-04)

Fix Swarm URLs to avoid unnecessary redirects.

v0.6.2 (2019-01-14)

Fix hexValue return type in Bzz upload methods.

v0.6.1 (2019-01-11)

Fixes for TypeScript definitions.

v0.6.0 (2019-01-09)

This release introduces a large refactoring of feeds interactions, notably to provide some high-level APIs. As a result, various breaking changes were needed to keep the APIs consistent and provide more security options, as detailed below.

Breaking changes

The Bzz APIs do not provide built-in feed signing anymore

  • The createFeedDigest() and createKeyPair() functions have been removed from the @erebos/api-bzz-base and @erebos/swarm packages.
  • The Bzz instance constructor now requires to be provided a BzzConfig object rather than only the HTTP gateway url.
  • The postFeedValue() method arguments have changed.

HTTP headers must be provided as options

Most Bzz methods arguments have changed, the headers that were previously passed as argument must now be provided in the options object instead.

Additional features and APIs

v0.5.5 (2018-12-14)

Fixes for TypeScript definitions.

v0.5.3/v0.5.4 (2018-12-12)

  • Add support for PSS raw messages introduced in Swarm v0.3.8.
  • Add TypeScript definitions for packages.

v0.5.2 (2018-11-30)

  • Fix RPC instance creation.
  • Fix PSS subscription method for Swarm v0.3.7.

v0.5.1 (2018-11-29)

  • Fix feed digest signature padding.
  • Remove usage of multihash for feed following its removal in Swarm.

v0.5.0 (2018-11-19)

v0.4.x

  • Fix defaultPath support for uploads in api-bzz-browser and swarm-client.
  • Add --default-path flag to bzz:upload CLI command.
  • Fix flow types related to fs-extra usage.
  • Add optional headers argument to Bzz class methods.
  • Expose getDownloadURL() and getUploadURL() utility methods in Bzz class.

v0.4.0 (2018-09-19)

  • Use @erebos namespace for packages.
  • Bzz APIs refactoring.
  • Add a CLI: @erebos/cli.
  • Add a documentation website: erebos.js.org

v0.3.0 (2018-04-27)

  • Split modules into individual packages.
  • Move RPC, transport and utilities modules to MainframeHQ/js-tools.
  • Update RxJS dependency to v6.

v0.2.0 (2018-03-02)

  • Remove createPSSWebSocket().
  • Rename BZZ to BzzAPI, PSS to PssAPI and RPC to StreamRPC.
  • Add EthAPI, NetAPI, ShhAPI, Web3API and RequestRPC classes.
  • Add transports and rpc() factories.
  • Add Client class.
  • Update documentation and add Whisper example.

v0.1.0 (2017-12-07)

Breaking API change in PSS, use the pss-apimsg-hex branch of MainframeHQ/go-ethereum to build Swarm.

v0.1.0-0 (beta)

Update PSS APIs to use arguments as hex following ethersphere/go-ethereum#140.

v0.0.1 (2017-11-13)

First release.