Skip to content

Latest commit

 

History

History
1503 lines (716 loc) · 57 KB

CHANGELOG.md

File metadata and controls

1503 lines (716 loc) · 57 KB

40.1.0 (2019-12-10)

Features

40.0.1 (2019-11-27)

Bug Fixes

40.0.0 (2019-11-22)

Code Refactoring

Features

Reverts

BREAKING CHANGES

  • The log.tail method now returns an async iterator that yields log messages. Use it like:
    for await (const message of ipfs.log.tail()) {
      console.log(message)
    }
  • The response to a call to log.level now returns an object that has camel cased keys. i.e. Message and Error properties have changed to message and error.
  • Dropped support for go-ipfs <= 0.4.4 in swarm.peers response.
  • The signature for ipfs.mount has changed from ipfs.mount([ipfsPath], [ipnsPath]) to ipfs.mount([options]). Where options is an optional object that may contain two boolean properties ipfsPath and ipnsPath. The response object has also changed to be camel case. See https://docs.ipfs.io/reference/api/http/#api-v0-mount.
  • Default ping count of 1 in client has been removed. The default ping count is now whatever the IPFS node defaults it to (currently 10). If you specifically need 1 ping message then please pass count: 1 in options for ipfs.ping().
  • Multi parameter constructor options are no longer supported. To create a new IPFS HTTP client, pass a single parameter to the constructor. The parameter can be one of:
    • String, formatted as one of:
    • Multiaddr instance
    • Object, in format of either:
      • Address and path e.g. { apiAddr: '/ip4/127.0.0.1/tcp/5001': apiPath: '/api/v0' } (Note: apiAddr can also be a string in URL form or a Multiaddr instance)
      • Node.js style address e.g. { host: '127.0.0.1', port: 5001, protocol: 'http' }
  • Errors returned from request failures are now all HTTPErrors which carry a response property. This is a Response that can be used to inspect all information relating to the HTTP response. This means that the err.status or err.statusCode property should now be accessed via err.response.status.
  • files in src/files-regular have moved to src. The src/files-mfs directory has been renamed to src/files. If you were previously requiring files from these directories e.g. require('ipfs-http-client/src/files-regular/add') then please be aware that they have moved.
  • Kebab case options are no longer supported. Please use camel case option names as defined in the interface-ipfs-core docs. e.g. the allow-offline option to name.publish should be passed as allowOffline.

39.0.2 (2019-10-23)

Bug Fixes

  • use non-strict equivalence for options.preload (#1134) (432e1e8)

39.0.1 (2019-10-21)

Bug Fixes

  • expose preload argument (#1129) (c82b031)
  • increase default timeout and respect value passed to ky.extend (#1130) (25b6043)

39.0.0 (2019-10-15)

38.2.0 (2019-10-06)

Features

38.1.0 (2019-10-04)

Bug Fixes

  • get correct remote node config (5b53e22)
  • pull in preconfigured chai from interface tests (93765c1)

Features

  • add methods for listing config profiles (1c3d92a)

BREAKING CHANGES

  • Configuration profiles API has changed:

    Promise<{oldCfg, newCfg}> ipfs.config.profile(name, opts)
    
    // is now
    Promise<{old, new}> ipfs.config.profiles.apply(name, opts)
  • Possibly contentious; Adds callbackify as a dependency, see ipfs/js-ipfs#2506 for discussion.

38.0.1 (2019-10-04)

Bug Fixes

  • pull in preconfigured chai from interface tests (6a7eb8a)

38.0.0 (2019-09-25)

37.0.3 (2019-09-25)

37.0.2 (2019-09-20)

Bug Fixes

  • only do the big file workaround in node and electron main (077c997)

37.0.1 (2019-09-17)

37.0.0 (2019-09-17)

Bug Fixes

  • big downloads in electron (9c9aac8)

36.1.0 (2019-09-17)

Bug Fixes

  • fix electron renderer tests and a couple more bugs (#1105) (a631a21)

36.0.0 (2019-09-11)

35.1.0 (2019-09-04)

Features

35.0.0 (2019-09-04)

BREAKING CHANGES

Kebab case options (e.g. wrap-with-directory) are no longer supported in ipfs.add. Use camel case instead (e.g. wrapWithDirectory).

34.0.0 (2019-08-29)

Bug Fixes

  • package: update err-code to version 2.0.0 (#1053) (3515070)

Features

33.1.1 (2019-07-26)

Bug Fixes

  • allow passing timeout option to object stat (#1055) (92b0594)

33.1.0 (2019-07-11)

Bug Fixes

Features

  • add support for js-ipfs dag api and also some tests (#957) (8f378a3)

33.0.2 (2019-07-11)

Bug Fixes

33.0.1 (2019-07-10)

Bug Fixes

33.0.0 (2019-07-10)

Bug Fixes

BREAKING CHANGES

repo.gc response objects have changed to { err, cid }, where err is an Error instance and cid is a CID instance.

32.0.1 (2019-05-21)

Bug Fixes

32.0.0 (2019-05-21)

Bug Fixes

  • handle empty array return value in dht.findProvs (#1003) (15ab7c5)

Chores

BREAKING CHANGES

  • The default string encoding for version 1 CIDs has changed to base32.

IPLD formats have been updated to the latest versions. IPLD nodes returned by ipfs.dag and ipfs.object commands have significant breaking changes. If you are using these commands in your application you are likely to encounter the following changes to dag-pb nodes (the default node type that IPFS creates):

  • DAGNode properties have been renamed as follows:
    • data => Data
    • links => Links
    • size => size (Note: no change)
  • DAGLink properties have been renamed as follows:
    • cid => Hash
    • name => Name
    • size => Tsize

See CHANGELOGs for each IPLD format for it's respective changes, you can read more about the dag-pb changes in the CHANGELOG

License: MIT Signed-off-by: Alan Shaw [email protected]

31.1.0 (2019-05-16)

Features

  • add support for File DOM API to files-regular (#986) (7b49f7e)

31.0.2 (2019-05-16)

Bug Fixes

31.0.1 (2019-05-15)

Bug Fixes

31.0.0 (2019-05-13)

Features

BREAKING CHANGES

  • ipfs.refs now returns objects with camelCase properties not PascalCase properties. i.e. { ref, err } not { Ref, Err }

30.1.4 (2019-04-29)

Bug Fixes

30.1.3 (2019-04-11)

Bug Fixes

  • fix missing buffer bundling with browserify (#966) (944a64b), closes #964

30.1.2 (2019-04-09)

Bug Fixes

  • https multiaddr support in constructor (#965) (5da0bcd)

30.1.1 (2019-03-28)

30.1.0 (2019-03-15)

Bug Fixes

  • dht.findProvs.js handle valid hash but no providers (#950) (c3cde76)

Features

Performance Improvements

30.0.0 (2019-03-13)

Bug Fixes

Code Refactoring

Features

BREAKING CHANGES

  • ipfs.util.isIPFS has moved to a static export and should be accessed via const { isIPFS } = require('ipfs-http-client').

The modules available under ipfs.types.* have also become static exports.

ipfs.util.crypto has been removed as it is not a dependency of ipfs-http-client so reduces the bundle size. If you need to use libp2p crypto primitives then please see the js-libp2p-crypto project for info on how to use it in your project.

Finally ipfs.util.getEndpointConfig is now a direct instance method, ipfs.getEndpointConfig

License: MIT Signed-off-by: Alan Shaw [email protected]

29.1.1 (2019-02-13)

Performance Improvements

29.1.0 (2019-01-29)

Bug Fixes

  • throw on invalid multiaddr to constructor (#934) (bcbf0d2)

Features

  • return protocol from getEndpointConfig (#935) (12ddaa3)

29.0.1 (2019-01-24)

Bug Fixes

29.0.0 (2019-01-15)

Code Refactoring

BREAKING CHANGES

License: MIT Signed-off-by: Alan Shaw [email protected]

28.1.2 (2019-01-14)

28.1.1 (2019-01-04)

28.1.0 (2018-12-16)

Features

28.0.3 (2018-12-15)

Bug Fixes

28.0.2 (2018-12-14)

28.0.1 (2018-12-13)

Bug Fixes

  • disable just the rule we're breaking (bed2687)
  • properly serialize CID instances (45b344c)
  • skip test that go-ipfs cannot pass (0e15761)

28.0.0 (2018-12-11)

Bug Fixes

Code Refactoring

BREAKING CHANGES

  • DHT API methods renamed and return types changed

  • ipfs.dht.findprovs renamed to ipfs.dht.findProvs and returns an array of PeerInfo

  • ipfs.dht.findpeer renamed to ipfs.dht.findPeer and returns a PeerInfo

  • ipfs.dht.query now returns an array of PeerId

  • More info

27.1.0 (2018-12-05)

Bug Fixes

Features

27.0.0 (2018-11-28)

Bug Fixes

  • also retry with misnemed format "dag-cbor" as "cbor" (#888) (348a144)
  • better input validation for add (#876) (315b7f7)
  • fix log.tail by calling add after listening for events (#882) (da35b0f)
  • handle peer-info validation errors (#887) (6e6d7a2), closes #885
  • updates ipld-dag-pb dep to version without .cid properties (#889) (ac30a82)

Code Refactoring

BREAKING CHANGES

  • the ipfs-api library has been renamed to ipfs-http-client.

Now install via npm install ipfs-http-client.

Note that in the browser build the object attached to window is now window.IpfsHttpClient.

License: MIT Signed-off-by: Alan Shaw [email protected]

  • Object API refactor.

Object API methods that write DAG nodes now return a CID instead of a DAG node. Affected methods:

  • ipfs.object.new
  • ipfs.object.patch.addLink
  • ipfs.object.patch.appendData
  • ipfs.object.patch.rmLink
  • ipfs.object.patch.setData
  • ipfs.object.put

Example:

// Before
const dagNode = await ipfs.object.new()
// After
const cid = await ipfs.object.new() // now returns a CID
const dagNode = await ipfs.object.get(cid) // fetch the DAG node that was created

IMPORTANT: DAGNode instances, which are part of the IPLD dag-pb format have been refactored.

These instances no longer have multihash, cid or serialized properties.

This effects the following API methods that return these types of objects:

  • ipfs.object.get
  • ipfs.dag.get

See ipld/js-ipld-dag-pb#99 for more information.

License: MIT Signed-off-by: Alan Shaw [email protected]

  • Files API methods add*, cat*, get* have moved from files to the root namespace.

Specifically, the following changes have been made:

  • ipfs.files.add => ipfs.add
  • ipfs.files.addPullStream => ipfs.addPullStream
  • ipfs.files.addReadableStream => ipfs.addReadableStream
  • ipfs.files.cat => ipfs.cat
  • ipfs.files.catPullStream => ipfs.catPullStream
  • ipfs.files.catReadableStream => ipfs.catReadableStream
  • ipfs.files.get => ipfs.get
  • ipfs.files.getPullStream => ipfs.getPullStream
  • ipfs.files.getReadableStream => ipfs.getReadableStream

Additionally, addFromFs, addFromURL, addFromStream have moved from util to the root namespace:

  • ipfs.util.addFromFs => ipfs.addFromFs
  • ipfs.util.addFromURL => ipfs.addFromURL
  • ipfs.util.addFromStream => ipfs.addFromStream

License: MIT Signed-off-by: Alan Shaw [email protected]

  • Previously swarm.peers would throw an uncaught error if any peer in the response could not have its peerId or multiaddr validated.

This change catches errors that occur while validating the peer info. The returned array will contain an entry for every peer in the ipfs response. peer-info objects that couldn't be validated, now have an error property and a rawPeerInfo property. This at least means the count of peers in the response will be accurate, and there the info is available to the caller.

This means that callers now have to deal with peer-info objects that may not have a peer or addr property.

Adds nock tests to exercice the code under different error conditions. Doing so uncovered a bug in our legacy go-ipfs <= 0.4.4 peer info parsing, which is also fixed. The code was trying to decapusalate the peerId from the multiaddr, but doing so trims the peerId rather than returning it.

License: MIT Signed-off-by: Oli Evans [email protected]

26.1.2 (2018-11-03)

Features

  • go-ipfs 0.4.18 (e3e4d6c)
  • upload example works with big files (62b844f)

26.1.1 (2018-11-03)

Features

26.1.0 (2018-10-31)

Bug Fixes

  • make ping not mix errors with responses (#883) (80725f2)

26.0.3 (2018-10-31)

26.0.2 (2018-10-31)

Bug Fixes

26.0.1 (2018-10-30)

26.0.0 (2018-10-30)

Bug Fixes

  • add missing and remove unused dependencies (#879) (979d8b5)

Chores

Features

BREAKING CHANGES

  • dag-cbor nodes now represent links as CID objects

The API for dag-cbor changed. Links are no longer represented as JSON objects ({"/": "base-encoded-cid"}, but as CID objects. ipfs.dag.get() and now always return links as CID objects. ipfs.dag.put() also expects links to be represented as CID objects. The old-style JSON objects representation is still supported, but deprecated.

Prior to this change:

const cid = new CID('QmXed8RihWcWFXRRmfSRG9yFjEbXNxu1bDwgCFAN8Dxcq5')
// Link as JSON object representation
const putCid = await ipfs.dag.put({link: {'/': cid.toBaseEncodedString()}})
const result = await ipfs.dag.get(putCid)
console.log(result.value)

Output:

{ link:
   { '/':
      <Buffer 12 20 8a…> } }

Now:

const cid = new CID('QmXed8RihWcWFXRRmfSRG9yFjEbXNxu1bDwgCFAN8Dxcq5')
// Link as CID object
const putCid = await ipfs.dag.put({link: cid})
const result = await ipfs.dag.get(putCid)
console.log(result.value)

Output:

{ link:
   CID {
     codec: 'dag-pb',
     version: 0,
     multihash:
      <Buffer 12 20 8a…> } }

See ipld/ipld#44 for more information on why this change was made.

  • remove types.dagCBOR and types.dagPB from public API

If you need the ipld-dag-cbor or ipld-dag-pb module in the Browser, you need to bundle them yourself.

25.0.0 (2018-10-15)

Bug Fixes

24.0.2 (2018-09-21)

Bug Fixes

24.0.1 (2018-08-21)

24.0.0 (2018-08-15)

Bug Fixes

  • add test data to IPFS before fetching it (#832) (b2a77d6)
  • BREAKING CHANGE use data-encoding arg so data is not corrupted (#806) (553c3fb)
  • dag.get return error on missing multicodec (#831) (ff7c7e5)
  • remove external urls from addFromURL tests (#834) (7cf7998), closes #803

BREAKING CHANGES

  • Requires go-ipfs 0.4.17 as it allows for specifying the data encoding format when requesting object data.

23.0.0 (2018-08-06)

Bug Fixes

Features

22.3.0 (2018-08-02)

Bug Fixes

Features

  • compatible with go-ipfs 0.4.16 (8536ee4)
  • expose mfs files.read*Stream methods (#823) (70c9df1)

22.2.4 (2018-07-17)

Bug Fixes

  • increase browserNoActivityTimeout to account for before (328e338)
  • increase timeout for .name after all (3dc4313)
  • missing debug dependency fixes #809 (#810) (0f1fe95)

22.2.3 (2018-07-10)

Bug Fixes

22.2.2 (2018-07-05)

Bug Fixes

  • ignore response body for some mfs commands (#805) (b604a64)

Features

22.2.1 (2018-06-29)

Bug Fixes

  • res.req only in Node.js, in browser use res.url instead (#798) (e8a5ab9)

22.2.0 (2018-06-29)

Features

  • logs path & querystring for requests (#796) (4e55d19)

22.1.1 (2018-06-25)

Bug Fixes

22.1.0 (2018-06-18)

Features

  • add support for custom headers to send-request (#741) (7fb2e07)
  • implement bitswap wantlist peer ID param and bitswap unwant (#761) (73a153e)

22.0.2 (2018-06-14)

Bug Fixes

  • json-loader error in upload-file-via-browser example (#784) (5e7b7c4)

22.0.1 (2018-05-30)

Bug Fixes

  • configure webpack to not use esmodules in dependencies (dc14333)
  • correctly differentiate pong responses (4ad25a3)
  • util.addFromURL with URL-escaped file (a3bd811)

22.0.0 (2018-05-20)

Bug Fixes

  • callback from unsub after stream ends (51a80f2)
  • do not fail stop node if failed start node (533760f)
  • ping: convert the ping messages to lowercase (632af40)
  • more robust ping tests (fc6d301)
  • remove .only (0e21c8a)
  • result.Peers can be null, ensure callback is called (f5f2e83)
  • update asserted error message (17c1f1c)
  • use async/setImmediate vs process.nextTick (faa51b4)

21.0.0 (2018-05-12)

Bug Fixes

  • make pubsub.unsubscribe async and alter pubsub.subscribe signature (b98f8f3)

BREAKING CHANGES

  • pubsub.unsubscribe is now async and argument order for pubsub.subscribe has changed

License: MIT Signed-off-by: Alan Shaw [email protected]

20.2.1 (2018-05-06)

20.2.0 (2018-04-30)

Bug Fixes

  • adding files by pull stream (2fa16c5)
  • handle request errors in addFromURL (7c5cea5)
  • increase timeout for name.publish and fix setup code (ceb1106)
  • ipfs add url wrap doesn't work (#750) (f6f1bf0)

Features

  • Add offset/length arguments to files.cat (17967c1)
  • get it ready for release (#751) (1885af4)

20.1.0 (2018-04-30)

Bug Fixes

  • adding files by pull stream (2fa16c5)
  • handle request errors in addFromURL (7c5cea5)
  • increase timeout for name.publish and fix setup code (ceb1106)
  • ipfs add url wrap doesn't work (#750) (f6f1bf0)

Features

  • Add offset/length arguments to files.cat (17967c1)
  • get it ready for release (#751) (1885af4)

20.0.1 (2018-04-12)

20.0.0 (2018-04-05)

Bug Fixes

  • dag: js-ipld format resolver take the raw block (2683c7e)
  • dag: path logic for DAG get was wrong (d2b203b)
  • dag: use SendOneFile for dag put (9c37213)

Features

  • dag.put (9463d3a)
  • dag: proper get implementation (7ba0343)
  • dag: rebase, use waterfall for put (ad9eab8)
  • dag: update option names to reflect go-ipfs API (9bf1c6c)
  • Provide access to bundled libraries when in browser (#732) (994bdad), closes #406
  • public-readonly-method-for-getting-host-and-port (41d32e3), closes #580
  • Wrap with dir (#730) (160860e)

19.0.0 (2018-03-28)

Bug Fixes

  • bitswap: 0.4.14 returns empty array instead of null (5e37a54)
  • ping: tests were failing and there it was missing to catch when count and n are used at the same time (2181568)

Features

  • streamable ping and optional packet number (#723) (3f3ce8a)

18.2.1 (2018-03-22)

Features

  • add ability to files.cat with a cid instance (aeeb94e)

18.2.0 (2018-03-16)

Bug Fixes

  • disable Browser test on Windows (385a6c3)
  • don't create one webpack bundle for every test file (3967e96)
  • last fixes for green (#719) (658bad2)
  • set the FileResultStreamConverter explicitly (dfad55e), closes #696
  • use a different remote server for test (1fc15a5)

Features

18.1.2 (2018-03-09)

Bug Fixes

18.1.1 (2018-02-20)

Features

  • support recursive ipfs ls (cfe95f6)

18.1.0 (2018-02-20)

Features

  • support recursive ipfs ls (cfe95f6)

18.0.0 (2018-02-14)

Bug Fixes

  • exception when dir is empty (#680) (ec04f6e)
  • support all the Buffer shims and load fixtures correctly (066988f)
  • update stats API (#684) (4f7999d)

Features

  • (breaking change) stats spec, spec repo, stream to value on files read (#679) (118456e)
  • breaking change: use stream on stats.bw (#686) (895760e)
  • ipfs.stop (5091115)

17.5.0 (2018-01-24)

Bug Fixes

Features

17.4.0 (2018-01-24)

Bug Fixes

Features

  • integrate new ipfsd-ctl (2b1820b)

17.3.0 (2018-01-12)

Features

17.2.7 (2018-01-11)

Bug Fixes

Features

17.2.6 (2017-12-28)

Features

17.2.5 (2017-12-20)

Bug Fixes

  • files.add: handle weird directory names (#646) (012b86c)

Features

17.2.4 (2017-12-06)

Bug Fixes

17.2.3 (2017-12-05)

17.2.2 (2017-12-05)

17.2.1 (2017-12-05)

Features

17.2.0 (2017-12-01)

Bug Fixes

17.1.3 (2017-11-23)

17.1.2 (2017-11-22)

Bug Fixes

17.1.1 (2017-11-22)

Bug Fixes

17.1.0 (2017-11-20)

Features

  • send files HTTP request should stream (#629) (dae62cb)

17.0.1 (2017-11-20)

Bug Fixes

17.0.0 (2017-11-17)

Features

16.0.0 (2017-11-16)

Bug Fixes

15.1.0 (2017-11-14)

Bug Fixes

  • adapting HTTP API to the interface-ipfs-core spec (#625) (8e58225)

Features

15.0.2 (2017-11-13)

15.0.1 (2017-10-22)

15.0.0 (2017-10-22)

Features

  • update pin API to match interface-ipfs-core (9102643)

14.3.7 (2017-10-18)

14.3.6 (2017-10-18)

Bug Fixes

  • pass the config protocol to http requests (#609) (38d7289)

Features

  • avoid doing multiple RPC requests for files.add, fixes #522 (#595) (0ea5f57)
  • report progress on ipfs add (e2d894c)

14.3.5 (2017-09-08)

Features

  • Support specify hash algorithm in files.add (#597) (ed68657)

14.3.4 (2017-09-07)

14.3.3 (2017-09-07)

Features

  • support options for .add / files.add (8c717b2)

14.3.2 (2017-09-04)

Bug Fixes