All notable changes to this project will be documented in this file. See Conventional Commits for commit guidelines.
60.0.1 (2023-05-25)
- The following workspace dependencies were updated
- dependencies
- ipfs-core-types bumped from ^0.14.0 to ^0.14.1
- ipfs-core-utils bumped from ^0.18.0 to ^0.18.1
- dependencies
60.0.0 (2023-01-11)
- update multiformats to v11.x.x and related depenendcies (#4277)
- update multiformats to v11.x.x and related depenendcies (#4277) (521c84a)
- use aegir to publish RCs (#4284) (6d90cbf)
- The following workspace dependencies were updated
- dependencies
- ipfs-core-types bumped from ^0.13.0 to ^0.14.0
- ipfs-core-utils bumped from ^0.17.0 to ^0.18.0
- dependencies
59.0.0 (2022-10-24)
- ipfs is now bundled with libp2p@0.40.x which has different config
- The following workspace dependencies were updated
- dependencies
- ipfs-core-types bumped from ^0.12.1 to ^0.13.0
- ipfs-core-utils bumped from ^0.16.1 to ^0.17.0
- dependencies
58.0.1 (2022-09-21)
- update @multiformats/multiadd to 11.0.0 (2a830bf)
- The following workspace dependencies were updated
- dependencies
- ipfs-core-types bumped from ^0.12.0 to ^0.12.1
- ipfs-core-utils bumped from ^0.16.0 to ^0.16.1
- dependencies
58.0.0 (2022-09-06)
- update to libp2p@0.38.x (#4151)
- update to libp2p@0.38.x (#4151) (39dbf70)
- The following workspace dependencies were updated
- dependencies
- ipfs-core-types bumped from ^0.11.0 to ^0.12.0
- ipfs-core-utils bumped from ^0.15.0 to ^0.16.0
- dependencies
57.0.3 (2022-06-24)
57.0.2 (2022-06-22)
- The following workspace dependencies were updated
- dependencies
- ipfs-core-types bumped from ^0.11.0 to ^0.11.1
- ipfs-core-utils bumped from ^0.15.0 to ^0.15.1
- dependencies
57.0.1 (2022-06-01)
57.0.0 (2022-05-27)
- This module is now ESM only and there return types of some methods have changed
- The following workspace dependencies were updated
- dependencies
- ipfs-core-types bumped from ^0.10.3 to ^0.11.0
- ipfs-core-utils bumped from ^0.14.3 to ^0.15.0
- dependencies
56.0.3 (2022-04-20)
- exclude fs from bundle (#4076) (6c3cb73)
- upgrade dep of ipfs-utils ^9.0.2->^9.0.6 (#4086) (8f7ce23), closes #4080
- The following workspace dependencies were updated
- dependencies
- ipfs-core-types bumped from ^0.10.2 to ^0.10.3
- ipfs-core-utils bumped from ^0.14.2 to ^0.14.3
- dependencies
56.0.2 (2022-03-01)
- The following workspace dependencies were updated
- dependencies
- ipfs-core-types bumped from ^0.10.1 to ^0.10.2
- ipfs-core-utils bumped from ^0.14.1 to ^0.14.2
- dependencies
56.0.1 (2022-02-06)
- The following workspace dependencies were updated
- dependencies
- ipfs-core-types bumped from ^0.10.0 to ^0.10.1
- ipfs-core-utils bumped from ^0.14.0 to ^0.14.1
- dependencies
56.0.0 (2022-01-27)
- peerstore methods are now all async, the repo is migrated to v12
- node 15+ is required
- The following workspace dependencies were updated
- dependencies
- ipfs-core-types bumped from ^0.9.0 to ^0.10.0
- ipfs-core-utils bumped from ^0.13.0 to ^0.14.0
- dependencies
55.0.0 (2021-12-15)
- pubsub: multibase in pubsub http rpc (#3922) (6eeaca4)
- return nested value from dag.get (#3966) (45ac973), closes #3957
- pubsub: We had to make breaking changes to
pubsub
commands sent over HTTP RPC to fix data corruption caused by topic names and payload bytes that included\n
. More details in ipfs/kubo#7939 and ipfs/kubo#8183 - On decode of CBOR blocks,
undefined
values will be coerced tonull
ipfs.dag.put
no longer accepts aformat
arg, it is nowstoreCodec
andinputCodec
.'json'
has become'dag-json'
,'cbor'
has become'dag-cbor'
and so on- The DHT API has been refactored to return async iterators of query events
54.0.2 (2021-11-24)
Note: Version bump only for package ipfs-http-client
54.0.1 (2021-11-19)
Note: Version bump only for package ipfs-http-client
54.0.0 (2021-11-12)
- errors will now be thrown if multiple items are passed to
ipfs.add
or single items toipfs.addAll
(n.b. you can still pass a list of a single item toipfs.addAll
)
53.0.1 (2021-09-28)
Note: Version bump only for package ipfs-http-client
53.0.0 (2021-09-24)
- the globSource api has changed from
globSource(dir, opts)
toglobSource(dir, pattern, opts)
- There are no default exports and everything is now dual published as ESM/CJS
52.0.5 (2021-09-17)
Note: Version bump only for package ipfs-http-client
52.0.4 (2021-09-17)
Note: Version bump only for package ipfs-http-client
52.0.3 (2021-09-02)
- declare types in .ts files (#3840) (eba5fe6)
- remove client-side timeout from http rpc calls (#3178) (f11220e), closes #3161
- remove use of instanceof for CID class (#3847) (ebbb12d)
52.0.2 (2021-08-25)
Note: Version bump only for package ipfs-http-client
52.0.1 (2021-08-17)
52.0.0 (2021-08-11)
- rateIn/rateOut are returned as numbers
- the output type of
ipfs.get
has changed and therecursive
option has been removed fromipfs.ls
since it was not supported everywhere
51.0.1 (2021-07-30)
Note: Version bump only for package ipfs-http-client
51.0.0 (2021-07-27)
- export ipfs http client type and use option extension for client (#3763) (31bddd4), closes #3749 #3736
- implement dag import/export (#3728) (700765b), closes #2953 #2745
- upgrade to the new multiformats (#3556) (d13d15f)
- ipld-formats no longer supported, use multiformat BlockCodecs instead
Co-authored-by: Rod Vagg rod@vagg.org Co-authored-by: achingbrain alex@achingbrain.net
50.1.2 (2021-06-18)
Note: Version bump only for package ipfs-http-client
50.1.1 (2021-06-05)
- add onError to pubsub.subscribe types (#3706) (d910aea), closes #3468
- stalling subscription on (node) http-client when daemon is stopped (#3468) (0266abf), closes #3465
50.1.0 (2021-05-26)
50.0.0 (2021-05-10)
- add missing type import (#3664) (64cc1e1)
- fix types (#3662) (0fe8892)
- loosen input type for swarm.connect and swarm.disconnect (#3673) (46618c7), closes #3638
- mark ipld options as partial (#3669) (f98af8e)
- update node version in docker build (#3603) (087fd1e)
- upgrade deps with new typedefs (#3550) (a418a52)
- Minimum supported node version is 14
- all core api methods now have types, some method signatures have changed, named exports are now used by the http, grpc and ipfs client modules
49.0.4 (2021-03-10)
Note: Version bump only for package ipfs-http-client
49.0.3 (2021-03-09)
49.0.2 (2021-02-08)
Note: Version bump only for package ipfs-http-client
49.0.1 (2021-02-02)
Note: Version bump only for package ipfs-http-client
49.0.0 (2021-02-01)
- ipfs-repo upgrade requires repo migration to v10
48.2.2 (2021-01-22)
Note: Version bump only for package ipfs-http-client
48.2.1 (2021-01-20)
48.2.0 (2021-01-15)
- add grpc server and client (#3403) (a9027e0), closes #2519 #2838 #2943 #2854 #2864
- allow passing a http.Agent to ipfs-http-client in node (#3474) (fe93ba0), closes /tools.ietf.org/html/rfc2616#section-8 #3464
- allow passing a http.Agent to the grpc client (#3477) (c5f0bc5), closes #3474
48.1.3 (2020-12-16)
- fix ipfs.ls() for a single file object (#3440) (f243dd1)
- regressions introduced by new releases of CID & multicodec (#3442) (b5152d8), closes /github.com/multiformats/js-cid/commit/0e11f035c9230e7f6d79c159ace9b80de88cb5eb#diff-25a6634263c1b1f6fc4697a04e2b9904ea4b042a89af59dc93ec1f5d44848a26
48.1.2 (2020-11-25)
Note: Version bump only for package ipfs-http-client
48.1.1 (2020-11-16)
48.1.0 (2020-11-09)
- pass file name to add/addAll progress handler (#3372) (69681a7), closes ipfs/js-ipfs-unixfs#87
48.0.0 (2020-10-28)
- disable cors by default (#3275) (3ff833d)
- do not double normalise input url (#3351) (4eb196c), closes #3331
- files ls should return string (#3352) (16ecc74), closes #3345 #2939 #3330 #2948
- use fetch in electron renderer and electron-fetch in main (#3251) (639d71f)
- enable custom formats for dag put and get (#3347) (3250ff4)
- type check & generate defs from jsdoc (#3281) (bbcaf34)
- types returned by
ipfs.files.ls
are now strings, in line with the docs but different to previous behaviour
Co-authored-by: Geoffrey Cohler g.cohler@computer.org
-
- CORS origins will need to be configured manually before use with ipfs-http-client
47.0.1 (2020-09-09)
Note: Version bump only for package ipfs-http-client
46.1.1 (2020-09-04)
Note: Version bump only for package ipfs-http-client
46.1.0 (2020-09-03)
- add protocol list to ipfs id (#3250) (1b6cf60)
- add typeScript support (#3236) (be26dd7), closes #2945 #1166
- add typescript support (#3267) (6816bc6), closes #2945 #1166
- ipns publish example (#3207) (91faec6)
- store pins in datastore instead of a DAG (#2771) (64b7fe4)
- update hapi to v20 (#3245) (1aeef89)
46.0.1 (2020-08-24)
46.0.0 (2020-08-12)
- support keychain without pass (#3212) (7e0e85c)
- http-client: allow stream option to be overridden (#3205) (7aba835)
- send blobs when running ipfs-http-client in the browser (#3184) (6b24463), closes #3138
- remove support for key.export over the http api
45.0.0 (2020-07-16)
- optional arguments go in the options object (#3118) (8cb8c73)
- small whitespace change (0d4604d)
- still load dag-pb, dag-cbor and raw when specifying custom formats (#3132) (a96e3bc), closes #3129
- add interface and http client versions to version output (#3125) (65f8b23), closes #2878
- store blocks by multihash instead of CID (#3124) (03b17f5)
-
- not really
44.3.0 (2020-06-24)
- add config.getAll (#3071) (16587f1)
- support loading arbitrary ipld formats in the http client (#3073) (bd12773)
44.2.0 (2020-06-05)
44.1.1 (2020-05-29)
Note: Version bump only for package ipfs-http-client
44.1.0 (2020-05-18)
- fixes browser script tag example (#3034) (ee8b769), closes #3027
- remove node globals (#2932) (d0d2f74)
- typeof bug when passing timeout to dag.get (#3035) (026a542)
44.0.3 (2020-05-05)
Note: Version bump only for package ipfs-http-client
44.0.2 (2020-05-05)
44.0.1 (2020-04-28)
- do not abort dht operation on error responses (#3001) (a69f782), closes #2991
- fix gc tests (#3008) (9f7f03e)
44.0.0 (2020-04-16)
- make http api only accept POST requests (#2977) (943d4a8)
- pass timeout arg to server (#2979) (049f085)
-
Where we used to accept all and any HTTP methods, now only POST is accepted. The API client will now only send POST requests too.
-
test: add tests to make sure we are post-only
-
chore: upgrade ipfs-utils
-
fix: return 405 instead of 404 for bad methods
-
fix: reject browsers that do not send an origin
Also fixes running interface tests over http in browsers against js-ipfs
43.0.1 (2020-04-08)
- add default args for ipfs.add (#2950) (a01f5b6)
- dont include util.textencoder in the browser (#2919) (3207e3b)
- move mfs and multipart files into core (#2811) (82b9e08)
- update dep version and ignore interop test for raw leaves (#2747) (6376cec)
- When the path passed to
ipfs.files.stat(path)
was a hamt sharded dir, the resovled value returned by js-ipfs previously had atype
property of with a value of'hamt-sharded-directory'
. To bring it in line with go-ipfs this value is now'directory'
. - Files that fit into one block imported with either
--cid-version=1
or--raw-leaves=true
previously returned a CID that resolved to a raw node (e.g. a buffer). Returned CIDs now resolve to adag-pb
node that contains a UnixFS entry. This is to allow setting metadata on small files with CIDv1.
42.0.0 (2020-02-04)
There are significant and breaking API changes in this release. Please see the migration guide.
-
add
results now includemode
andmtime
properties if they were set. -
files.chmod
has been added. See the core interface docs for info. -
files.flush
now returns the root CID for the path that was flushed (/
by default) -
files.ls
results now includemode
andmtime
properties if they were set. See the core interface docs for more info. -
files.mkdir
now acceptsmode
andmtime
options to allow setting mode and mtime metadata. See the core interface docs for more info. -
files.stat
result now includesmode
andmtime
properties if they were set. See the core interface docs for more info. -
files.touch
has been added. See the core interface docs for info. -
files.write
now acceptsmode
andmtime
options to allow setting mode and mtime metadata. See the core interface docs for more info. -
object.get
now accepts atimeout
option. It will cause the method to throw with aTimeoutError
if no data is received within the timeout window. It can be passed as anumber
or astring
. If anumber
is passed it is interpreted as milliseconds, if a string is passed it is interpreted as a human readable duration. -
pin.add
now accepts atimeout
option. It will cause the method to throw with aTimeoutError
if no data is received within the timeout window. It can be passed as anumber
or astring
. If anumber
is passed it is interpreted as milliseconds, if a string is passed it is interpreted as a human readable duration. -
refs
now accepts atimeout
option. It will cause the method to throw with aTimeoutError
if no data is received within the timeout window. It can be passed as anumber
or astring
. If anumber
is passed it is interpreted as milliseconds, if a string is passed it is interpreted as a human readable duration.
-
Callbacks are no longer supported on any API methods. Please use a utility such as
callbackify
on API methods that return Promises to emulate previous behaviour. See the migration guide for more info. -
add
now returns an async iterable. -
add
now acceptsmode
andmtime
options on inputs to allow setting mode and mtime metadata for added files. See the core interface docs for more info. -
add
results now contain acid
property (a CID instance) instead of a stringhash
property. -
addReadableStream
,addPullStream
have been removed. Please see the migration guide for more info. -
addFromStream
has been removed. Useadd
instead. -
addFromFs
has been removed. Please use the exportedglobSource
utility and pass the result toadd
. See the glob source documentation for more details and an example. -
addFromURL
has been removed. Please use the exportedurlSource
utility and pass the result toadd
. See the URL source documentation for more details and an example. -
bitswap.stat
result has changed -wantlist
and values are now an array of CID instances andpeers
is now astring[]
of peer IDs. -
bitswap.wantlist
now returns an array of CID instances. -
block.rm
now returns an async iterable. -
block.rm
now yields objects of{ cid: CID, error: Error }
. -
block.stat
result now contains acid
property (whose value is a CID instance) instead of akey
property. -
dht.findProvs
,dht.provide
,dht.put
anddht.query
now all return an async iterable. -
dht.findPeer
,dht.findProvs
,dht.provide
,dht.put
anddht.query
now yield/return an object{ id: string, addrs: Multiaddr[] }
instead of aPeerInfo
instance(s). -
files.lsPullStream
andfiles.lsReadableStream
have been removed. Please see the migration guide for more info. -
files.ls
now returns an async iterable. -
files.ls
results now contain acid
property (whose value is a CID instance) instead of ahash
property. -
files.ls
no longer takes along
option (in core) - you will receive all data by default. -
files.readPullStream
andfiles.readReadableStream
have been removed. Please see the migration guide for more info. -
files.read
now returns an async iterable. -
files.stat
result now contains acid
property (whose value is a CID instance) instead of ahash
property. -
get
now returns an async iterable. Thecontent
property value for objects yielded from the iterator is now an async iterable that yieldsBufferList
objects. -
id
result has changed, theaddresses
property is now aMultiaddr[]
-
name.resolve
now returns an async iterable. It yields increasingly more accurate resolved values as they are discovered until the best value is selected from the quorum of 16. The "best" resolved value is the last item yielded from the iterator. If you are interested only in this best value you could useit-last
to extract it like so:import last from 'it-last' await last(ipfs.name.resolve('/ipns/QmHash'))
-
ls
now returns an async iterable. -
ls
results now contain acid
property (whose value is a CID instance) instead of ahash
property. -
ls
results now includemode
andmtime
properties if they were set. See the core interface docs for more info. -
pin.add
results now contain acid
property (a CID instance) instead of a stringhash
property. -
pin.ls
now returns an async iterable. -
pin.ls
results now contain acid
property (a CID instance) instead of a stringhash
property. -
pin.rm
results now contain acid
property (a CID instance) instead of a stringhash
property. -
ping
now returns an async iterable. -
refs
andrefs.local
now return an async iterable. -
repo.gc
now returns an async iterable. -
stats.bw
now returns an async iterable. -
swarm.peers
now returns an array of objects with apeer
property that is astring
, instead of aPeerId
instance. -
swarm.addrs
now returns an array of objects{ id: string, addrs: Multiaddr[] }
instead ofPeerInfo
instances. -
The protocol name for peer IDs in multiaddrs has changed from 'ipfs' to 'p2p'. There's no changes to data on the wire but this change is seen when multiaddrs are converted to strings.
42.0.0-pre.0 (2020-01-23)
41.0.1 (2020-01-23)
41.0.0 (2020-01-12)
format
option is no longer supported as everything isdag-pb
all of the time.
Follows on from ipfs-inactive/js-ipfs-mfs#69
40.2.1 (2020-01-09)
40.2.0 (2020-01-09)
40.1.0 (2019-12-10)
40.0.1 (2019-11-27)
40.0.0 (2019-11-22)
- async await roundup (#1173) (3e5967a), closes #1103
- convert config API to async await (#1155) (621973c)
- move files to root level (#1150) (559a97d)
- 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
andError
properties have changed tomessage
anderror
. - Dropped support for go-ipfs <= 0.4.4 in
swarm.peers
response. - The signature for
ipfs.mount
has changed fromipfs.mount([ipfsPath], [ipnsPath])
toipfs.mount([options])
. Whereoptions
is an optional object that may contain two boolean propertiesipfsPath
andipnsPath
. 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 passcount: 1
in options foripfs.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 e.g. /ip4/127.0.0.1/tcp/5001
- URL e.g. http://127.0.0.1:5001
- 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' }
- Address and path e.g.
- String, formatted as one of:
- Errors returned from request failures are now all
HTTPError
s which carry aresponse
property. This is aResponse
that can be used to inspect all information relating to the HTTP response. This means that theerr.status
orerr.statusCode
property should now be accessed viaerr.response.status
. - files in
src/files-regular
have moved tosrc
. Thesrc/files-mfs
directory has been renamed tosrc/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. theallow-offline
option toname.publish
should be passed asallowOffline
.- Note that you can pass additional query string parameters in the
searchParams
option available to all API methods.
- Note that you can pass additional query string parameters in the
39.0.2 (2019-10-23)
39.0.1 (2019-10-21)
- 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)
38.1.0 (2019-10-04)
- add methods for listing config profiles (1c3d92a)
-
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#2506 for discussion.
38.0.1 (2019-10-04)
- 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)
- only do the big file workaround in node and electron main (077c997)
37.0.1 (2019-09-17)
37.0.0 (2019-09-17)
- big downloads in electron (9c9aac8)
36.1.0 (2019-09-17)
36.0.0 (2019-09-11)
35.1.0 (2019-09-04)
35.0.0 (2019-09-04)
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)
- browser pubsub (#1059) (3764d06)
- expose pin and preload arguments (#1079) (e3ed6e9)
- support adding files via async iterator (#1078) (377042b)
33.1.1 (2019-07-26)
33.1.0 (2019-07-11)
- changelog for 33.x does not include breaking change (cd41a16)
- invalid multipart/form-data (#948) (9e6dfe7), closes /tools.ietf.org/html/rfc7578#section-4
33.0.2 (2019-07-11)
33.0.1 (2019-07-10)
33.0.0 (2019-07-10)
- link to ipfs.io (70cdf25)
- prepare for aegir release (#1021) (806b206)
- sometimes no Addrs element is present in the response (#1037) (a74b8f7)
- package: update bignumber.js to version 9.0.0 (#1024) (a04edac)
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)
- error reporting for non-JSON responses (#1016) (4251c88), closes #912 #1000 #1001
- send trickle param to trigger trickle dag builder (#1015) (a28b009)
32.0.0 (2019-05-21)
- 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 alan.shaw@protocol.ai
31.1.0 (2019-05-16)
31.0.2 (2019-05-16)
31.0.1 (2019-05-15)
31.0.0 (2019-05-13)
- ipfs.refs now returns objects with camelCase properties not PascalCase properties. i.e.
{ ref, err }
not{ Ref, Err }
30.1.4 (2019-04-29)
- uncaught error: stream.push() after EOF (#980) (cc677f0), closes #967
- update Babel in upload-file-via-browser example (#968) (#970) (17d49de)
30.1.3 (2019-04-11)
30.1.2 (2019-04-09)
30.1.1 (2019-03-28)
30.1.0 (2019-03-15)
30.0.0 (2019-03-13)
ipfs.util.isIPFS
has moved to a static export and should be accessed viaconst { 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 alan.shaw@protocol.ai
29.1.1 (2019-02-13)
29.1.0 (2019-01-29)
29.0.1 (2019-01-24)
29.0.0 (2019-01-15)
- All API methods that returned
big.js
instances now returnbignumber.js
instances.
License: MIT Signed-off-by: Alan Shaw alan.shaw@protocol.ai
28.1.2 (2019-01-14)
28.1.1 (2019-01-04)
28.1.0 (2018-12-16)
28.0.3 (2018-12-15)
28.0.2 (2018-12-14)
28.0.1 (2018-12-13)
- 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)
-
DHT API methods renamed and return types changed
-
ipfs.dht.findprovs
renamed toipfs.dht.findProvs
and returns an array of PeerInfo -
ipfs.dht.findpeer
renamed toipfs.dht.findPeer
and returns a PeerInfo -
ipfs.dht.query
now returns an array of PeerId
27.1.0 (2018-12-05)
27.0.0 (2018-11-28)
- 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)
- object API write methods now return CIDs (#896) (38bed14)
- rename library to ipfs-http-client (#897) (d40cb6c)
- updated files API (#878) (39f4733)
- the
ipfs-api
library has been renamed toipfs-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 alan.shaw@protocol.ai
- 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 alan.shaw@protocol.ai
- Files API methods
add*
,cat*
,get*
have moved fromfiles
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 alan.shaw@protocol.ai
- 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 oli@tableflip.io
26.1.2 (2018-11-03)
26.1.1 (2018-11-03)
- go-ipfs 0.4.18 (9178e7d)
26.1.0 (2018-10-31)
26.0.3 (2018-10-31)
26.0.2 (2018-10-31)
- pin.ls ignored opts when hash was present (#875) (0b46750), closes /github.com/ipfs-shipyard/ipfs-companion/issues/360#issuecomment-427525801
26.0.1 (2018-10-30)
26.0.0 (2018-10-30)
- 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
andtypes.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)
-
150mb bodies no longer crashing Chromium (#868) (180da77), closes #654
- add bl module to package dependencies (#853) (#854) (834934f)
- add lodash dependency (#873) (c510cb7), closes #870
24.0.2 (2018-09-21)
24.0.1 (2018-08-21)
24.0.0 (2018-08-15)
- 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
- 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)
22.3.0 (2018-08-02)
22.2.4 (2018-07-17)
- 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)
22.2.2 (2018-07-05)
22.2.1 (2018-06-29)
22.2.0 (2018-06-29)
22.1.1 (2018-06-25)
22.1.0 (2018-06-18)
- 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)
22.0.1 (2018-05-30)
- 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)
- 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)
- make pubsub.unsubscribe async and alter pubsub.subscribe signature (b98f8f3)
- pubsub.unsubscribe is now async and argument order for pubsub.subscribe has changed
License: MIT Signed-off-by: Alan Shaw alan@tableflip.io
20.2.1 (2018-05-06)
20.2.0 (2018-04-30)
- 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)
20.1.0 (2018-04-30)
- 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)
20.0.1 (2018-04-12)
20.0.0 (2018-04-05)
- 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)
- 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)
- 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)
18.2.1 (2018-03-22)
- add ability to files.cat with a cid instance (aeeb94e)
18.2.0 (2018-03-16)
- 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)
- --only-hash (#717) (1137401), closes #700
- add support for ipfs files stat --with-local (#695) (b08f21a)
18.1.2 (2018-03-09)
- regression on files.add and update deps (#709) (85cc2a8)
- remove argument from .stats.bw* (#699) (f81dce5)
18.1.1 (2018-02-20)
- support recursive ipfs ls (cfe95f6)
18.1.0 (2018-02-20)
- support recursive ipfs ls (cfe95f6)
18.0.0 (2018-02-14)
- exception when dir is empty (#680) (ec04f6e)
- support all the Buffer shims and load fixtures correctly (066988f)
- update stats API (#684) (4f7999d)
- (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)
17.4.0 (2018-01-24)
- integrate new ipfsd-ctl (2b1820b)
17.3.0 (2018-01-12)
17.2.7 (2018-01-11)
17.2.6 (2017-12-28)
17.2.5 (2017-12-20)
17.2.4 (2017-12-06)
17.2.3 (2017-12-05)
17.2.2 (2017-12-05)
17.2.1 (2017-12-05)
17.2.0 (2017-12-01)
17.1.3 (2017-11-23)
17.1.2 (2017-11-22)
17.1.1 (2017-11-22)
17.1.0 (2017-11-20)
17.0.1 (2017-11-20)
17.0.0 (2017-11-17)
16.0.0 (2017-11-16)
15.1.0 (2017-11-14)
15.0.2 (2017-11-13)
15.0.1 (2017-10-22)
15.0.0 (2017-10-22)
- update pin API to match interface-ipfs-core (9102643)
14.3.7 (2017-10-18)
14.3.6 (2017-10-18)
- avoid doing multiple RPC requests for files.add, fixes #522 (#595) (0ea5f57)
- report progress on ipfs add (e2d894c)
14.3.5 (2017-09-08)
14.3.4 (2017-09-07)
14.3.3 (2017-09-07)
- support options for .add / files.add (8c717b2)
14.3.2 (2017-09-04)
- new fixed aegir (93ac472)