From 9a40109632e5b4837eb77a2f57dbc77fbf1fe099 Mon Sep 17 00:00:00 2001 From: Alex Potsides Date: Wed, 22 Sep 2021 12:37:47 +0100 Subject: [PATCH] feat: switch to esm (#3879) Refactors the code to be ESM. Dual publishes CJS and ESM for maximum compatibility. There are no default exports, so code similar to: ```js import IPFS from 'ipfs' const ipfs = await IPFS.create() ``` should be refactored to: ```js import { create } as IPFS from 'ipfs' const ipfs = await create() ``` BREAKING CHANGE: There are no default exports and everything is now dual published as ESM/CJS --- .github/workflows/test.yml | 263 ++++----- .gitignore | 1 + README.md | 2 +- docs/DAEMON.md | 2 +- docs/FAQ.md | 4 +- docs/IPLD.md | 38 +- docs/MIGRATION-TO-ASYNC-AWAIT.md | 50 +- docs/MODULE.md | 49 +- docs/core-api/BLOCK.md | 6 +- docs/core-api/DAG.md | 4 +- docs/core-api/DHT.md | 12 +- docs/core-api/FILES.md | 10 +- .../{.aegir.js => .aegir.cjs} | 0 packages/interface-ipfs-core/README.md | 2 +- packages/interface-ipfs-core/package.json | 55 +- packages/interface-ipfs-core/src/add-all.js | 64 +-- packages/interface-ipfs-core/src/add.js | 31 +- .../interface-ipfs-core/src/bitswap/index.js | 20 +- .../interface-ipfs-core/src/bitswap/stat.js | 8 +- .../src/bitswap/transfer.js | 22 +- .../interface-ipfs-core/src/bitswap/unwant.js | 6 +- .../interface-ipfs-core/src/bitswap/utils.js | 11 +- .../src/bitswap/wantlist-for-peer.js | 15 +- .../src/bitswap/wantlist.js | 22 +- packages/interface-ipfs-core/src/block/get.js | 14 +- .../interface-ipfs-core/src/block/index.js | 17 +- packages/interface-ipfs-core/src/block/put.js | 18 +- packages/interface-ipfs-core/src/block/rm.js | 24 +- .../interface-ipfs-core/src/block/stat.js | 12 +- .../interface-ipfs-core/src/bootstrap/add.js | 8 +- .../src/bootstrap/clear.js | 8 +- .../src/bootstrap/index.js | 20 +- .../interface-ipfs-core/src/bootstrap/list.js | 8 +- .../src/bootstrap/reset.js | 8 +- .../interface-ipfs-core/src/bootstrap/rm.js | 8 +- packages/interface-ipfs-core/src/cat.js | 28 +- .../interface-ipfs-core/src/config/get.js | 6 +- .../interface-ipfs-core/src/config/index.js | 17 +- .../src/config/profiles/apply.js | 6 +- .../src/config/profiles/index.js | 11 +- .../src/config/profiles/list.js | 6 +- .../interface-ipfs-core/src/config/replace.js | 6 +- .../interface-ipfs-core/src/config/set.js | 8 +- .../interface-ipfs-core/src/dag/export.js | 26 +- packages/interface-ipfs-core/src/dag/get.js | 35 +- .../interface-ipfs-core/src/dag/import.js | 24 +- packages/interface-ipfs-core/src/dag/index.js | 21 +- packages/interface-ipfs-core/src/dag/put.js | 22 +- .../interface-ipfs-core/src/dag/resolve.js | 12 +- .../interface-ipfs-core/src/dht/disabled.js | 8 +- .../interface-ipfs-core/src/dht/find-peer.js | 8 +- .../interface-ipfs-core/src/dht/find-provs.js | 16 +- packages/interface-ipfs-core/src/dht/get.js | 12 +- packages/interface-ipfs-core/src/dht/index.js | 26 +- .../interface-ipfs-core/src/dht/provide.js | 12 +- packages/interface-ipfs-core/src/dht/put.js | 10 +- packages/interface-ipfs-core/src/dht/query.js | 14 +- packages/interface-ipfs-core/src/dht/utils.js | 9 +- .../interface-ipfs-core/src/files/chmod.js | 12 +- packages/interface-ipfs-core/src/files/cp.js | 32 +- .../interface-ipfs-core/src/files/flush.js | 10 +- .../interface-ipfs-core/src/files/index.js | 38 +- packages/interface-ipfs-core/src/files/ls.js | 18 +- .../interface-ipfs-core/src/files/mkdir.js | 16 +- packages/interface-ipfs-core/src/files/mv.js | 36 +- .../interface-ipfs-core/src/files/read.js | 18 +- packages/interface-ipfs-core/src/files/rm.js | 16 +- .../interface-ipfs-core/src/files/stat.js | 26 +- .../interface-ipfs-core/src/files/touch.js | 16 +- .../interface-ipfs-core/src/files/write.js | 39 +- packages/interface-ipfs-core/src/get.js | 42 +- packages/interface-ipfs-core/src/index.js | 86 +-- packages/interface-ipfs-core/src/key/gen.js | 14 +- .../interface-ipfs-core/src/key/import.js | 10 +- packages/interface-ipfs-core/src/key/index.js | 21 +- packages/interface-ipfs-core/src/key/list.js | 8 +- .../interface-ipfs-core/src/key/rename.js | 8 +- packages/interface-ipfs-core/src/key/rm.js | 8 +- packages/interface-ipfs-core/src/ls.js | 14 +- .../src/miscellaneous/dns.js | 12 +- .../src/miscellaneous/id.js | 12 +- .../src/miscellaneous/index.js | 20 +- .../src/miscellaneous/resolve.js | 22 +- .../src/miscellaneous/stop.js | 6 +- .../src/miscellaneous/version.js | 6 +- .../src/name-pubsub/cancel.js | 10 +- .../src/name-pubsub/index.js | 17 +- .../src/name-pubsub/pubsub.js | 24 +- .../src/name-pubsub/state.js | 6 +- .../src/name-pubsub/subs.js | 8 +- .../interface-ipfs-core/src/name/index.js | 11 +- .../interface-ipfs-core/src/name/publish.js | 16 +- .../interface-ipfs-core/src/name/resolve.js | 22 +- .../interface-ipfs-core/src/name/utils.js | 6 +- .../interface-ipfs-core/src/object/data.js | 10 +- .../interface-ipfs-core/src/object/get.js | 20 +- .../interface-ipfs-core/src/object/index.js | 26 +- .../interface-ipfs-core/src/object/links.js | 16 +- .../interface-ipfs-core/src/object/new.js | 6 +- .../src/object/patch/add-link.js | 14 +- .../src/object/patch/append-data.js | 8 +- .../src/object/patch/index.js | 17 +- .../src/object/patch/rm-link.js | 14 +- .../src/object/patch/set-data.js | 8 +- .../interface-ipfs-core/src/object/put.js | 20 +- .../interface-ipfs-core/src/object/stat.js | 16 +- .../interface-ipfs-core/src/pin/add-all.js | 12 +- packages/interface-ipfs-core/src/pin/add.js | 14 +- packages/interface-ipfs-core/src/pin/index.js | 22 +- packages/interface-ipfs-core/src/pin/ls.js | 10 +- .../interface-ipfs-core/src/pin/remote/add.js | 8 +- .../src/pin/remote/index.js | 20 +- .../interface-ipfs-core/src/pin/remote/ls.js | 12 +- .../src/pin/remote/rm-all.js | 14 +- .../interface-ipfs-core/src/pin/remote/rm.js | 14 +- .../src/pin/remote/service.js | 8 +- .../interface-ipfs-core/src/pin/rm-all.js | 12 +- packages/interface-ipfs-core/src/pin/rm.js | 10 +- packages/interface-ipfs-core/src/pin/utils.js | 46 +- .../interface-ipfs-core/src/ping/index.js | 8 +- packages/interface-ipfs-core/src/ping/ping.js | 16 +- .../interface-ipfs-core/src/ping/utils.js | 12 +- .../interface-ipfs-core/src/pubsub/index.js | 20 +- packages/interface-ipfs-core/src/pubsub/ls.js | 10 +- .../interface-ipfs-core/src/pubsub/peers.js | 16 +- .../interface-ipfs-core/src/pubsub/publish.js | 12 +- .../src/pubsub/subscribe.js | 34 +- .../src/pubsub/unsubscribe.js | 11 +- .../interface-ipfs-core/src/pubsub/utils.js | 14 +- .../interface-ipfs-core/src/refs-local.js | 20 +- packages/interface-ipfs-core/src/refs.js | 27 +- packages/interface-ipfs-core/src/repo/gc.js | 16 +- .../interface-ipfs-core/src/repo/index.js | 14 +- packages/interface-ipfs-core/src/repo/stat.js | 7 +- .../interface-ipfs-core/src/repo/version.js | 6 +- .../interface-ipfs-core/src/stats/bitswap.js | 7 +- packages/interface-ipfs-core/src/stats/bw.js | 12 +- .../interface-ipfs-core/src/stats/index.js | 14 +- .../interface-ipfs-core/src/stats/repo.js | 7 +- .../interface-ipfs-core/src/stats/utils.js | 10 +- .../interface-ipfs-core/src/swarm/addrs.js | 16 +- .../interface-ipfs-core/src/swarm/connect.js | 12 +- .../src/swarm/disconnect.js | 12 +- .../interface-ipfs-core/src/swarm/index.js | 20 +- .../src/swarm/local-addrs.js | 8 +- .../interface-ipfs-core/src/swarm/peers.js | 18 +- .../src/utils/blockstore-adapter.js | 20 +- .../src/utils/create-sharded-directory.js | 10 +- .../src/utils/create-two-shards.js | 12 +- .../interface-ipfs-core/src/utils/index.js | 10 +- .../ipfs-options-websockets-filter-all.js | 25 +- .../src/utils/is-shard-at-path.js | 6 +- .../interface-ipfs-core/src/utils/mocha.js | 13 +- .../interface-ipfs-core/src/utils/suite.js | 6 +- .../src/utils/test-timeout.js | 6 +- .../src/utils/traverse-leaf-nodes.js | 4 +- .../interface-ipfs-core/src/utils/wait-for.js | 8 +- .../fixtures/hidden-files-folder/ipfs-add.js | 2 - .../test/fixtures/weird name folder [v0]/add | 2 +- .../test/fixtures/weird name folder [v0]/cat | 2 +- .../fixtures/weird name folder [v0]/ipfs-add | 2 +- .../test/fixtures/weird name folder [v0]/ls | 2 +- .../fixtures/weird name folder [v0]/version | 2 +- .../test/interface.spec.js | 1 - packages/interface-ipfs-core/tsconfig.json | 8 +- packages/ipfs-cli/package.json | 45 +- packages/ipfs-cli/src/command-alias.js | 3 +- packages/ipfs-cli/src/commands/add.js | 25 +- packages/ipfs-cli/src/commands/bitswap.js | 7 +- .../ipfs-cli/src/commands/bitswap/index.js | 9 + .../ipfs-cli/src/commands/bitswap/stat.js | 7 +- .../ipfs-cli/src/commands/bitswap/unwant.js | 7 +- .../ipfs-cli/src/commands/bitswap/wantlist.js | 7 +- packages/ipfs-cli/src/commands/block.js | 7 +- packages/ipfs-cli/src/commands/block/get.js | 9 +- packages/ipfs-cli/src/commands/block/index.js | 11 + packages/ipfs-cli/src/commands/block/put.js | 9 +- packages/ipfs-cli/src/commands/block/rm.js | 7 +- packages/ipfs-cli/src/commands/block/stat.js | 7 +- packages/ipfs-cli/src/commands/bootstrap.js | 7 +- .../ipfs-cli/src/commands/bootstrap/add.js | 7 +- .../ipfs-cli/src/commands/bootstrap/index.js | 9 + .../ipfs-cli/src/commands/bootstrap/list.js | 5 +- .../ipfs-cli/src/commands/bootstrap/rm.js | 7 +- packages/ipfs-cli/src/commands/cat.js | 5 +- packages/ipfs-cli/src/commands/cid.js | 7 +- packages/ipfs-cli/src/commands/cid/base32.js | 9 +- packages/ipfs-cli/src/commands/cid/bases.js | 3 +- packages/ipfs-cli/src/commands/cid/codecs.js | 3 +- packages/ipfs-cli/src/commands/cid/format.js | 7 +- packages/ipfs-cli/src/commands/cid/hashes.js | 3 +- packages/ipfs-cli/src/commands/cid/index.js | 13 + packages/ipfs-cli/src/commands/commands.js | 22 +- packages/ipfs-cli/src/commands/config.js | 12 +- packages/ipfs-cli/src/commands/config/edit.js | 7 +- .../ipfs-cli/src/commands/config/index.js | 11 + .../ipfs-cli/src/commands/config/profile.js | 7 +- .../src/commands/config/profile/apply.js | 7 +- .../src/commands/config/profile/index.js | 7 + .../src/commands/config/profile/ls.js | 5 +- .../ipfs-cli/src/commands/config/replace.js | 9 +- packages/ipfs-cli/src/commands/config/show.js | 5 +- packages/ipfs-cli/src/commands/daemon.js | 33 +- packages/ipfs-cli/src/commands/dag.js | 7 +- packages/ipfs-cli/src/commands/dag/export.js | 11 +- packages/ipfs-cli/src/commands/dag/get.js | 21 +- packages/ipfs-cli/src/commands/dag/import.js | 13 +- packages/ipfs-cli/src/commands/dag/index.js | 13 + packages/ipfs-cli/src/commands/dag/put.js | 19 +- packages/ipfs-cli/src/commands/dag/resolve.js | 7 +- packages/ipfs-cli/src/commands/dht.js | 7 +- .../ipfs-cli/src/commands/dht/find-peer.js | 5 +- .../src/commands/dht/find-providers.js | 7 +- packages/ipfs-cli/src/commands/dht/get.js | 9 +- packages/ipfs-cli/src/commands/dht/index.js | 15 + packages/ipfs-cli/src/commands/dht/provide.js | 7 +- packages/ipfs-cli/src/commands/dht/put.js | 7 +- packages/ipfs-cli/src/commands/dht/query.js | 5 +- packages/ipfs-cli/src/commands/dns.js | 9 +- packages/ipfs-cli/src/commands/files.js | 7 +- packages/ipfs-cli/src/commands/files/chmod.js | 9 +- packages/ipfs-cli/src/commands/files/cp.js | 9 +- packages/ipfs-cli/src/commands/files/flush.js | 5 +- packages/ipfs-cli/src/commands/files/index.js | 25 + packages/ipfs-cli/src/commands/files/ls.js | 13 +- packages/ipfs-cli/src/commands/files/mkdir.js | 9 +- packages/ipfs-cli/src/commands/files/mv.js | 9 +- packages/ipfs-cli/src/commands/files/read.js | 5 +- packages/ipfs-cli/src/commands/files/rm.js | 9 +- packages/ipfs-cli/src/commands/files/stat.js | 13 +- packages/ipfs-cli/src/commands/files/touch.js | 9 +- packages/ipfs-cli/src/commands/files/write.js | 9 +- packages/ipfs-cli/src/commands/get.js | 23 +- packages/ipfs-cli/src/commands/id.js | 5 +- packages/ipfs-cli/src/commands/index.js | 65 +++ packages/ipfs-cli/src/commands/init.js | 21 +- packages/ipfs-cli/src/commands/key.js | 7 +- packages/ipfs-cli/src/commands/key/export.js | 7 +- packages/ipfs-cli/src/commands/key/gen.js | 9 +- packages/ipfs-cli/src/commands/key/import.js | 7 +- packages/ipfs-cli/src/commands/key/index.js | 15 + packages/ipfs-cli/src/commands/key/list.js | 9 +- packages/ipfs-cli/src/commands/key/rename.js | 9 +- packages/ipfs-cli/src/commands/key/rm.js | 9 +- packages/ipfs-cli/src/commands/ls.js | 11 +- packages/ipfs-cli/src/commands/name.js | 11 +- packages/ipfs-cli/src/commands/name/index.js | 9 + .../ipfs-cli/src/commands/name/publish.js | 9 +- packages/ipfs-cli/src/commands/name/pubsub.js | 7 +- .../src/commands/name/pubsub/cancel.js | 5 +- .../src/commands/name/pubsub/index.js | 9 + .../src/commands/name/pubsub/state.js | 5 +- .../ipfs-cli/src/commands/name/pubsub/subs.js | 9 +- .../ipfs-cli/src/commands/name/resolve.js | 7 +- packages/ipfs-cli/src/commands/object.js | 7 +- packages/ipfs-cli/src/commands/object/data.js | 7 +- packages/ipfs-cli/src/commands/object/get.js | 13 +- .../ipfs-cli/src/commands/object/index.js | 17 + .../ipfs-cli/src/commands/object/links.js | 9 +- packages/ipfs-cli/src/commands/object/new.js | 5 +- .../ipfs-cli/src/commands/object/patch.js | 7 +- .../src/commands/object/patch/add-link.js | 9 +- .../src/commands/object/patch/append-data.js | 11 +- .../src/commands/object/patch/index.js | 11 + .../src/commands/object/patch/rm-link.js | 7 +- .../src/commands/object/patch/set-data.js | 11 +- packages/ipfs-cli/src/commands/object/put.js | 13 +- packages/ipfs-cli/src/commands/object/stat.js | 7 +- packages/ipfs-cli/src/commands/pin.js | 7 +- packages/ipfs-cli/src/commands/pin/add.js | 5 +- packages/ipfs-cli/src/commands/pin/index.js | 9 + packages/ipfs-cli/src/commands/pin/ls.js | 9 +- packages/ipfs-cli/src/commands/pin/rm.js | 5 +- packages/ipfs-cli/src/commands/ping.js | 5 +- packages/ipfs-cli/src/commands/pubsub.js | 7 +- .../ipfs-cli/src/commands/pubsub/index.js | 11 + packages/ipfs-cli/src/commands/pubsub/ls.js | 9 +- .../ipfs-cli/src/commands/pubsub/peers.js | 5 +- packages/ipfs-cli/src/commands/pubsub/pub.js | 7 +- packages/ipfs-cli/src/commands/pubsub/sub.js | 5 +- packages/ipfs-cli/src/commands/refs-local.js | 9 +- packages/ipfs-cli/src/commands/refs.js | 5 +- packages/ipfs-cli/src/commands/repo.js | 7 +- packages/ipfs-cli/src/commands/repo/gc.js | 5 +- packages/ipfs-cli/src/commands/repo/index.js | 9 + packages/ipfs-cli/src/commands/repo/stat.js | 7 +- .../ipfs-cli/src/commands/repo/version.js | 5 +- packages/ipfs-cli/src/commands/resolve.js | 9 +- packages/ipfs-cli/src/commands/shutdown.js | 5 +- packages/ipfs-cli/src/commands/stats.js | 7 +- .../ipfs-cli/src/commands/stats/bitswap.js | 9 +- packages/ipfs-cli/src/commands/stats/bw.js | 5 +- packages/ipfs-cli/src/commands/stats/index.js | 9 + packages/ipfs-cli/src/commands/stats/repo.js | 5 +- packages/ipfs-cli/src/commands/swarm.js | 7 +- packages/ipfs-cli/src/commands/swarm/addrs.js | 10 +- .../src/commands/swarm/addrs/index.js | 5 + .../src/commands/swarm/addrs/local.js | 5 +- .../ipfs-cli/src/commands/swarm/connect.js | 9 +- .../ipfs-cli/src/commands/swarm/disconnect.js | 9 +- packages/ipfs-cli/src/commands/swarm/index.js | 11 + packages/ipfs-cli/src/commands/swarm/peers.js | 9 +- packages/ipfs-cli/src/commands/version.js | 7 +- packages/ipfs-cli/src/index.js | 12 +- packages/ipfs-cli/src/parser.js | 17 +- packages/ipfs-cli/src/utils.js | 110 ++-- .../ipfs-cli/test/{add.js => add.spec.js} | 21 +- .../test/{bitswap.js => bitswap.spec.js} | 15 +- .../ipfs-cli/test/{block.js => block.spec.js} | 19 +- .../test/{bootstrap.js => bootstrap.spec.js} | 9 +- .../ipfs-cli/test/{cat.js => cat.spec.js} | 13 +- .../ipfs-cli/test/{cid.js => cid.spec.js} | 25 +- .../test/{commands.js => commands.spec.js} | 5 +- .../test/{config.js => config.spec.js} | 21 +- .../test/{daemon.js => daemon.spec.js} | 40 +- .../ipfs-cli/test/{dag.js => dag.spec.js} | 27 +- .../ipfs-cli/test/{dht.js => dht.spec.js} | 14 +- .../ipfs-cli/test/{dns.js => dns.spec.js} | 7 +- packages/ipfs-cli/test/files/chmod.js | 7 +- packages/ipfs-cli/test/files/cp.js | 7 +- packages/ipfs-cli/test/files/flush.js | 15 +- packages/ipfs-cli/test/files/index.js | 16 - packages/ipfs-cli/test/files/ls.js | 15 +- packages/ipfs-cli/test/files/mkdir.js | 9 +- packages/ipfs-cli/test/files/mv.js | 9 +- packages/ipfs-cli/test/files/read.js | 9 +- packages/ipfs-cli/test/files/rm.js | 9 +- packages/ipfs-cli/test/files/stat.js | 15 +- packages/ipfs-cli/test/files/touch.js | 9 +- packages/ipfs-cli/test/files/write.js | 9 +- .../test/{general.js => general.spec.js} | 42 +- .../ipfs-cli/test/{get.js => get.spec.js} | 39 +- packages/ipfs-cli/test/{id.js => id.spec.js} | 9 +- .../ipfs-cli/test/{init.js => init.spec.js} | 23 +- .../ipfs-cli/test/{key.js => key.spec.js} | 7 +- packages/ipfs-cli/test/{ls.js => ls.spec.js} | 15 +- .../{name-pubsub.js => name-pubsub.spec.js} | 7 +- .../ipfs-cli/test/{name.js => name.spec.js} | 11 +- packages/ipfs-cli/test/node.js | 10 - .../test/{object.js => object.spec.js} | 23 +- .../ipfs-cli/test/{pin.js => pin.spec.js} | 15 +- .../ipfs-cli/test/{ping.js => ping.spec.js} | 7 +- .../{progress-bar.js => progress-bar.spec.js} | 5 +- .../test/{pubsub.js => pubsub.spec.js} | 9 +- .../{refs-local.js => refs-local.spec.js} | 11 +- .../ipfs-cli/test/{refs.js => refs.spec.js} | 9 +- .../ipfs-cli/test/{repo.js => repo.spec.js} | 9 +- .../test/{resolve.js => resolve.spec.js} | 9 +- .../ipfs-cli/test/{swarm.js => swarm.spec.js} | 17 +- packages/ipfs-cli/test/utils/clean.js | 14 +- packages/ipfs-cli/test/utils/cli.js | 17 +- packages/ipfs-cli/test/utils/ipfs-exec.js | 19 +- .../ipfs-cli/test/utils/match-iterable.js | 7 +- packages/ipfs-cli/test/utils/platforms.js | 12 +- .../test/{version.js => version.spec.js} | 9 +- packages/ipfs-cli/tsconfig.json | 3 +- .../ipfs-client/{.aegir.js => .aegir.cjs} | 0 packages/ipfs-client/README.md | 2 +- packages/ipfs-client/package.json | 25 +- packages/ipfs-client/src/index.js | 17 +- packages/ipfs-client/tsconfig.json | 3 +- .../.aegir.js => ipfs-core-config/.aegir.cjs} | 0 packages/ipfs-core-config/CHANGELOG.md | 524 ++++++++++++++++++ packages/ipfs-core-config/LICENSE | 22 + packages/ipfs-core-config/README.md | 37 ++ packages/ipfs-core-config/package.json | 112 ++++ .../src/config.browser.js} | 3 +- .../src/config.js} | 3 +- .../src/dns.browser.js} | 13 +- .../src/dns.js} | 22 +- packages/ipfs-core-config/src/index.js | 0 .../src/init-assets.browser.js | 2 + packages/ipfs-core-config/src/init-assets.js | 21 + .../src/init-files/init-docs/about.js} | 8 +- .../src/init-files/init-docs/contact.js} | 3 +- .../src/init-files/init-docs/docs/index.js | 2 + .../src/init-files/init-docs/help.js} | 3 +- .../src/init-files/init-docs/index.js | 35 ++ .../src/init-files/init-docs/quick-start.js} | 3 +- .../src/init-files/init-docs/readme.js} | 3 +- .../init-files/init-docs/security-notes.js} | 3 +- .../init-files/init-docs/tour/0.0-intro.js} | 3 +- .../src/libp2p-pubsub-routers.browser.js | 6 + .../src/libp2p-pubsub-routers.js | 11 + .../src/libp2p.browser.js} | 27 +- .../src/libp2p.js} | 32 +- .../src/preload.browser.js} | 9 +- .../src/preload.js} | 13 +- .../src/repo.browser.js} | 15 +- .../src/repo.js} | 25 +- packages/ipfs-core-config/src/utils/ipns.js | 18 + packages/ipfs-core-config/src/utils/tlru.js | 86 +++ packages/ipfs-core-config/tsconfig.json | 16 + packages/ipfs-core-types/package.json | 2 +- packages/ipfs-core-types/src/block/index.ts | 6 +- packages/ipfs-core-types/src/root.ts | 1 + packages/ipfs-core-types/tsconfig.json | 3 +- packages/ipfs-core-utils/.aegir.cjs | 8 + packages/ipfs-core-utils/package.json | 98 +++- packages/ipfs-core-utils/src/agent.browser.js | 2 + packages/ipfs-core-utils/src/agent.js | 13 + packages/ipfs-core-utils/src/errors.js | 4 +- .../ipfs-core-utils/src/files/format-mode.js | 6 +- .../ipfs-core-utils/src/files/format-mtime.js | 8 +- .../normalise-content.browser.js | 21 +- .../normalise-content.js | 26 +- ....browser.js => normalise-input.browser.js} | 15 +- .../index.js => normalise-input.js} | 16 +- .../normalise-input.js => normalise.js} | 26 +- .../src/files/{normalise-input => }/utils.js | 17 +- packages/ipfs-core-utils/src/index.js | 2 +- .../ipfs-core-utils/src/mode-to-string.js | 15 + packages/ipfs-core-utils/src/multibases.js | 6 +- packages/ipfs-core-utils/src/multicodecs.js | 6 +- packages/ipfs-core-utils/src/multihashes.js | 6 +- .../src}/multipart-request.browser.js | 10 +- .../ipfs-core-utils/src/multipart-request.js | 29 + .../src}/multipart-request.node.js | 19 +- .../src/pins/normalise-input.js | 12 +- .../ipfs-core-utils/src/to-cid-and-path.js | 14 +- packages/ipfs-core-utils/src/to-url-string.js | 12 +- .../src/with-timeout-option.js | 19 +- .../test/files/format-mode.spec.js | 6 +- .../test/files/format-mtime.spec.js | 6 +- .../test/files/normalise-input.spec.js | 53 +- .../test/pins/normalise-input.spec.js | 29 +- packages/ipfs-core-utils/test/tests.spec.js | 5 + packages/ipfs-core-utils/tsconfig.json | 6 +- packages/ipfs-core/{.aegir.js => .aegir.cjs} | 8 +- packages/ipfs-core/README.md | 2 +- packages/ipfs-core/package.json | 83 +-- packages/ipfs-core/scripts/update-version.js | 16 + packages/ipfs-core/src/block-storage.js | 13 +- .../ipfs-core/src/components/add-all/index.js | 16 +- .../ipfs-core/src/components/add-all/utils.js | 14 +- packages/ipfs-core/src/components/add.js | 5 +- .../ipfs-core/src/components/bitswap/index.js | 12 +- .../ipfs-core/src/components/bitswap/stat.js | 5 +- .../src/components/bitswap/unwant.js | 5 +- .../components/bitswap/wantlist-for-peer.js | 7 +- .../src/components/bitswap/wantlist.js | 5 +- .../ipfs-core/src/components/block/get.js | 5 +- .../ipfs-core/src/components/block/index.js | 17 +- .../ipfs-core/src/components/block/put.js | 11 +- packages/ipfs-core/src/components/block/rm.js | 15 +- .../ipfs-core/src/components/block/stat.js | 7 +- .../ipfs-core/src/components/block/utils.js | 5 +- .../ipfs-core/src/components/bootstrap/add.js | 7 +- .../src/components/bootstrap/clear.js | 7 +- .../src/components/bootstrap/index.js | 14 +- .../src/components/bootstrap/list.js | 7 +- .../src/components/bootstrap/reset.js | 9 +- .../ipfs-core/src/components/bootstrap/rm.js | 7 +- .../src/components/bootstrap/utils.js | 9 +- packages/ipfs-core/src/components/cat.js | 11 +- .../ipfs-core/src/components/config/index.js | 101 ++++ .../{config.js => config/profiles.js} | 109 +--- .../ipfs-core/src/components/dag/export.js | 29 +- packages/ipfs-core/src/components/dag/get.js | 15 +- .../ipfs-core/src/components/dag/import.js | 18 +- .../ipfs-core/src/components/dag/index.js | 19 +- packages/ipfs-core/src/components/dag/put.js | 11 +- .../ipfs-core/src/components/dag/resolve.js | 11 +- packages/ipfs-core/src/components/dht.js | 13 +- packages/ipfs-core/src/components/dns.js | 10 +- .../ipfs-core/src/components/files/chmod.js | 64 +-- packages/ipfs-core/src/components/files/cp.js | 38 +- .../ipfs-core/src/components/files/flush.js | 13 +- .../ipfs-core/src/components/files/index.js | 42 +- packages/ipfs-core/src/components/files/ls.js | 11 +- .../ipfs-core/src/components/files/mkdir.js | 34 +- packages/ipfs-core/src/components/files/mv.js | 17 +- .../ipfs-core/src/components/files/read.js | 15 +- packages/ipfs-core/src/components/files/rm.js | 21 +- .../ipfs-core/src/components/files/stat.js | 26 +- .../ipfs-core/src/components/files/touch.js | 46 +- .../src/components/files/utils/add-link.js | 41 +- .../src/components/files/utils/create-lock.js | 7 +- .../src/components/files/utils/create-node.js | 15 +- .../src/components/files/utils/dir-sharded.js | 19 +- .../components/files/utils/hamt-constants.js | 32 +- .../src/components/files/utils/hamt-utils.js | 53 +- .../src/components/files/utils/persist.js | 15 +- .../src/components/files/utils/remove-link.js | 27 +- .../files/utils/to-async-iterator.js | 17 +- .../src/components/files/utils/to-mfs-path.js | 17 +- .../files/utils/to-path-components.js | 5 +- .../src/components/files/utils/to-trail.js | 11 +- .../components/files/utils/update-mfs-root.js | 15 +- .../src/components/files/utils/update-tree.js | 15 +- .../components/files/utils/with-mfs-root.js | 26 +- .../ipfs-core/src/components/files/write.js | 59 +- packages/ipfs-core/src/components/get.js | 31 +- packages/ipfs-core/src/components/id.js | 15 +- packages/ipfs-core/src/components/index.js | 264 +++++---- packages/ipfs-core/src/components/ipns.js | 17 +- .../ipfs-core/src/components/is-online.js | 6 +- .../ipfs-core/src/components/key/export.js | 5 +- packages/ipfs-core/src/components/key/gen.js | 5 +- .../ipfs-core/src/components/key/import.js | 5 +- .../ipfs-core/src/components/key/index.js | 18 +- packages/ipfs-core/src/components/key/info.js | 5 +- packages/ipfs-core/src/components/key/list.js | 5 +- .../ipfs-core/src/components/key/rename.js | 5 +- packages/ipfs-core/src/components/key/rm.js | 5 +- packages/ipfs-core/src/components/libp2p.js | 49 +- packages/ipfs-core/src/components/ls.js | 13 +- .../ipfs-core/src/components/name/index.js | 19 +- .../ipfs-core/src/components/name/publish.js | 32 +- .../src/components/name/pubsub/cancel.js | 10 +- .../src/components/name/pubsub/index.js | 18 +- .../src/components/name/pubsub/state.js | 12 +- .../src/components/name/pubsub/subs.js | 9 +- .../src/components/name/pubsub/utils.js | 9 +- .../ipfs-core/src/components/name/resolve.js | 29 +- .../ipfs-core/src/components/name/utils.js | 16 +- packages/ipfs-core/src/components/network.js | 16 +- .../ipfs-core/src/components/object/data.js | 8 +- .../ipfs-core/src/components/object/get.js | 9 +- .../ipfs-core/src/components/object/index.js | 21 +- .../ipfs-core/src/components/object/links.js | 19 +- .../ipfs-core/src/components/object/new.js | 15 +- .../src/components/object/patch/add-link.js | 11 +- .../components/object/patch/append-data.js | 13 +- .../src/components/object/patch/index.js | 13 +- .../src/components/object/patch/rm-link.js | 11 +- .../src/components/object/patch/set-data.js | 11 +- .../ipfs-core/src/components/object/put.js | 13 +- .../ipfs-core/src/components/object/stat.js | 12 +- .../ipfs-core/src/components/pin/add-all.js | 15 +- packages/ipfs-core/src/components/pin/add.js | 13 +- .../ipfs-core/src/components/pin/index.js | 18 +- packages/ipfs-core/src/components/pin/ls.js | 17 +- .../ipfs-core/src/components/pin/rm-all.js | 14 +- packages/ipfs-core/src/components/pin/rm.js | 19 +- packages/ipfs-core/src/components/ping.js | 68 +-- packages/ipfs-core/src/components/pubsub.js | 11 +- .../ipfs-core/src/components/refs/index.js | 40 +- .../ipfs-core/src/components/refs/local.js | 5 +- packages/ipfs-core/src/components/repo/gc.js | 13 +- .../ipfs-core/src/components/repo/index.js | 14 +- .../ipfs-core/src/components/repo/stat.js | 5 +- .../ipfs-core/src/components/repo/version.js | 11 +- packages/ipfs-core/src/components/resolve.js | 19 +- packages/ipfs-core/src/components/root.js | 25 +- packages/ipfs-core/src/components/start.js | 8 +- packages/ipfs-core/src/components/stats/bw.js | 11 +- .../ipfs-core/src/components/stats/index.js | 13 +- packages/ipfs-core/src/components/stop.js | 8 +- packages/ipfs-core/src/components/storage.js | 47 +- .../ipfs-core/src/components/swarm/addrs.js | 5 +- .../ipfs-core/src/components/swarm/connect.js | 5 +- .../src/components/swarm/disconnect.js | 5 +- .../ipfs-core/src/components/swarm/index.js | 25 +- .../src/components/swarm/local-addrs.js | 5 +- .../ipfs-core/src/components/swarm/peers.js | 5 +- packages/ipfs-core/src/components/version.js | 17 +- packages/ipfs-core/src/errors.js | 29 +- packages/ipfs-core/src/index.js | 36 +- .../src/init-files/init-docs/docs/index | 1 - packages/ipfs-core/src/ipns/index.js | 26 +- packages/ipfs-core/src/ipns/publisher.js | 40 +- packages/ipfs-core/src/ipns/republisher.js | 30 +- packages/ipfs-core/src/ipns/resolver.js | 22 +- packages/ipfs-core/src/ipns/routing/config.js | 14 +- .../src/ipns/routing/offline-datastore.js | 23 +- .../src/ipns/routing/pubsub-datastore.js | 22 +- packages/ipfs-core/src/ipns/routing/utils.js | 23 - packages/ipfs-core/src/mfs-preload.js | 7 +- packages/ipfs-core/src/preload.js | 25 +- .../src/runtime/init-assets-browser.js | 3 - .../src/runtime/init-assets-nodejs.js | 26 - .../runtime/libp2p-pubsub-routers-browser.js | 5 - .../runtime/libp2p-pubsub-routers-nodejs.js | 6 - packages/ipfs-core/src/types.ts | 17 +- packages/ipfs-core/src/utils.js | 54 +- packages/ipfs-core/src/utils/service.js | 11 +- packages/ipfs-core/src/utils/tlru.js | 8 +- packages/ipfs-core/src/version.js | 4 + packages/ipfs-core/test/add-all.spec.js | 5 +- packages/ipfs-core/test/block-storage.spec.js | 7 +- .../{bootstrapers.js => bootstrappers.js} | 9 +- packages/ipfs-core/test/config.spec.js | 13 +- packages/ipfs-core/test/create-node.spec.js | 25 +- packages/ipfs-core/test/exports.spec.js | 18 +- packages/ipfs-core/test/init.spec.js | 17 +- packages/ipfs-core/test/ipld.spec.js | 11 +- packages/ipfs-core/test/key-exchange.spec.js | 7 +- packages/ipfs-core/test/libp2p.spec.js | 22 +- packages/ipfs-core/test/mfs-preload.spec.js | 21 +- packages/ipfs-core/test/name.spec.js | 39 +- packages/ipfs-core/test/preload.spec.js | 103 ++-- packages/ipfs-core/test/pubsub.spec.js | 9 +- packages/ipfs-core/test/utils.spec.js | 23 +- packages/ipfs-core/test/utils/clean.js | 11 +- packages/ipfs-core/test/utils/codecs.js | 13 +- .../ipfs-core/test/utils/create-backend.js | 9 +- packages/ipfs-core/test/utils/create-node.js | 11 +- packages/ipfs-core/test/utils/create-repo.js | 16 +- .../test/utils/mock-preload-node-utils.js | 25 +- .../ipfs-core/test/utils/mock-preload-node.js | 13 +- packages/ipfs-core/test/utils/wait-for.js | 8 +- packages/ipfs-core/tsconfig.json | 6 +- packages/ipfs-daemon/package.json | 26 +- packages/ipfs-daemon/src/index.js | 55 +- packages/ipfs-daemon/test/index.spec.js | 11 +- packages/ipfs-daemon/tsconfig.json | 3 +- .../{.aegir.js => .aegir.cjs} | 0 packages/ipfs-grpc-client/README.md | 2 +- packages/ipfs-grpc-client/package.json | 36 +- .../ipfs-grpc-client/src/core-api/add-all.js | 12 +- .../ipfs-grpc-client/src/core-api/files/ls.js | 9 +- .../src/core-api/files/write.js | 13 +- packages/ipfs-grpc-client/src/core-api/id.js | 11 +- .../src/core-api/pubsub/subscribe.js | 13 +- .../src/core-api/pubsub/subscriptions.js | 5 +- .../src/core-api/pubsub/unsubscribe.js | 11 +- .../src/grpc/transport.browser.js | 5 +- .../ipfs-grpc-client/src/grpc/transport.js | 18 +- .../src/grpc/transport.node.js | 13 +- packages/ipfs-grpc-client/src/index.js | 31 +- .../src/utils/bidi-to-duplex.js | 15 +- .../src/utils/client-stream-to-promise.js | 7 +- .../src/utils/load-services.js | 8 +- .../src/utils/server-stream-to-iterator.js | 5 +- .../ipfs-grpc-client/src/utils/to-headers.js | 5 +- .../src/utils/unary-to-promise.js | 7 +- packages/ipfs-grpc-client/test/agent.js | 5 +- packages/ipfs-grpc-client/test/node.js | 3 +- packages/ipfs-grpc-client/test/utils.spec.js | 11 +- packages/ipfs-grpc-client/tsconfig.json | 3 +- packages/ipfs-grpc-protocol/package.json | 31 +- .../scripts/update-index.js | 14 + packages/ipfs-grpc-protocol/src/index.js | 272 +++++++++ packages/ipfs-grpc-protocol/tsconfig.json | 10 + packages/ipfs-grpc-server/README.md | 8 +- packages/ipfs-grpc-server/package.json | 27 +- .../ipfs-grpc-server/src/endpoints/add.js | 11 +- packages/ipfs-grpc-server/src/endpoints/id.js | 5 +- .../ipfs-grpc-server/src/endpoints/mfs/ls.js | 5 +- .../src/endpoints/mfs/write.js | 9 +- .../src/endpoints/pubsub/subscribe.js | 7 +- .../src/endpoints/pubsub/subscriptions.js | 5 +- .../src/endpoints/pubsub/unsubscribe.js | 7 +- packages/ipfs-grpc-server/src/index.js | 37 +- .../src/utils/encode-mtime.js | 5 +- .../src/utils/load-services.js | 8 +- .../src/utils/web-socket-message-channel.js | 9 +- .../src/utils/web-socket-server.js | 29 +- packages/ipfs-grpc-server/test/add.spec.js | 15 +- packages/ipfs-grpc-server/test/id.spec.js | 11 +- packages/ipfs-grpc-server/test/mfs/ls.spec.js | 11 +- .../ipfs-grpc-server/test/mfs/write.spec.js | 9 +- .../ipfs-grpc-server/test/utils/channel.js | 5 +- .../ipfs-grpc-server/test/utils/server.js | 9 +- packages/ipfs-grpc-server/tsconfig.json | 3 +- .../{.aegir.js => .aegir.cjs} | 2 +- packages/ipfs-http-client/CHANGELOG.md | 2 +- packages/ipfs-http-client/README.md | 8 +- packages/ipfs-http-client/package.json | 34 +- packages/ipfs-http-client/src/add-all.js | 19 +- packages/ipfs-http-client/src/add.js | 11 +- .../ipfs-http-client/src/bitswap/index.js | 19 +- packages/ipfs-http-client/src/bitswap/stat.js | 9 +- .../ipfs-http-client/src/bitswap/unwant.js | 7 +- .../src/bitswap/wantlist-for-peer.js | 9 +- .../ipfs-http-client/src/bitswap/wantlist.js | 9 +- packages/ipfs-http-client/src/block/get.js | 7 +- packages/ipfs-http-client/src/block/index.js | 20 +- packages/ipfs-http-client/src/block/put.js | 17 +- packages/ipfs-http-client/src/block/rm.js | 9 +- packages/ipfs-http-client/src/block/stat.js | 9 +- .../ipfs-http-client/src/bootstrap/add.js | 9 +- .../ipfs-http-client/src/bootstrap/clear.js | 9 +- .../ipfs-http-client/src/bootstrap/index.js | 23 +- .../ipfs-http-client/src/bootstrap/list.js | 9 +- .../ipfs-http-client/src/bootstrap/reset.js | 9 +- packages/ipfs-http-client/src/bootstrap/rm.js | 9 +- packages/ipfs-http-client/src/cat.js | 7 +- packages/ipfs-http-client/src/commands.js | 7 +- .../src/config/{getAll.js => get-all.js} | 7 +- packages/ipfs-http-client/src/config/get.js | 7 +- packages/ipfs-http-client/src/config/index.js | 22 +- .../src/config/profiles/apply.js | 7 +- .../src/config/profiles/index.js | 14 +- .../src/config/profiles/list.js | 11 +- .../ipfs-http-client/src/config/replace.js | 15 +- packages/ipfs-http-client/src/config/set.js | 7 +- packages/ipfs-http-client/src/dag/export.js | 7 +- packages/ipfs-http-client/src/dag/get.js | 18 +- packages/ipfs-http-client/src/dag/import.js | 15 +- packages/ipfs-http-client/src/dag/index.js | 24 +- packages/ipfs-http-client/src/dag/put.js | 17 +- packages/ipfs-http-client/src/dag/resolve.js | 9 +- .../ipfs-http-client/src/dht/find-peer.js | 11 +- .../ipfs-http-client/src/dht/find-provs.js | 11 +- packages/ipfs-http-client/src/dht/get.js | 13 +- packages/ipfs-http-client/src/dht/index.js | 26 +- packages/ipfs-http-client/src/dht/provide.js | 13 +- packages/ipfs-http-client/src/dht/put.js | 21 +- packages/ipfs-http-client/src/dht/query.js | 13 +- .../src/dht/response-types.js | 23 +- packages/ipfs-http-client/src/diag/cmds.js | 7 +- packages/ipfs-http-client/src/diag/index.js | 16 +- packages/ipfs-http-client/src/diag/net.js | 7 +- packages/ipfs-http-client/src/diag/sys.js | 7 +- packages/ipfs-http-client/src/dns.js | 7 +- packages/ipfs-http-client/src/files/chmod.js | 7 +- packages/ipfs-http-client/src/files/cp.js | 9 +- packages/ipfs-http-client/src/files/flush.js | 9 +- packages/ipfs-http-client/src/files/index.js | 40 +- packages/ipfs-http-client/src/files/ls.js | 15 +- packages/ipfs-http-client/src/files/mkdir.js | 7 +- packages/ipfs-http-client/src/files/mv.js | 7 +- packages/ipfs-http-client/src/files/read.js | 12 +- packages/ipfs-http-client/src/files/rm.js | 7 +- packages/ipfs-http-client/src/files/stat.js | 13 +- packages/ipfs-http-client/src/files/touch.js | 7 +- packages/ipfs-http-client/src/files/write.js | 17 +- .../src/get-endpoint-config.js | 5 +- packages/ipfs-http-client/src/get.js | 9 +- packages/ipfs-http-client/src/id.js | 13 +- packages/ipfs-http-client/src/index.js | 137 +++-- packages/ipfs-http-client/src/is-online.js | 7 +- packages/ipfs-http-client/src/key/export.js | 7 +- packages/ipfs-http-client/src/key/gen.js | 11 +- packages/ipfs-http-client/src/key/import.js | 11 +- packages/ipfs-http-client/src/key/index.js | 28 +- packages/ipfs-http-client/src/key/info.js | 7 +- packages/ipfs-http-client/src/key/list.js | 11 +- packages/ipfs-http-client/src/key/rename.js | 11 +- packages/ipfs-http-client/src/key/rm.js | 11 +- .../ipfs-http-client/src/lib/abort-signal.js | 5 +- .../src/lib/buffer-to-form-data.browser.js | 11 - .../src/lib/buffer-to-form-data.js | 26 - .../ipfs-http-client/src/lib/configure.js | 7 +- packages/ipfs-http-client/src/lib/core.js | 35 +- .../src/lib/mode-to-string.js | 3 +- .../src/lib/multipart-request.js | 10 - .../src/lib/object-to-camel-with-metadata.js | 9 +- .../src/lib/object-to-camel.js | 3 +- .../ipfs-http-client/src/lib/parse-mtime.js | 7 +- packages/ipfs-http-client/src/lib/resolve.js | 11 +- .../src/lib/to-url-search-params.js | 7 +- packages/ipfs-http-client/src/log/index.js | 16 +- packages/ipfs-http-client/src/log/level.js | 11 +- packages/ipfs-http-client/src/log/ls.js | 7 +- packages/ipfs-http-client/src/log/tail.js | 7 +- packages/ipfs-http-client/src/ls.js | 13 +- packages/ipfs-http-client/src/mount.js | 11 +- packages/ipfs-http-client/src/name/index.js | 16 +- packages/ipfs-http-client/src/name/publish.js | 11 +- .../src/name/pubsub/cancel.js | 11 +- .../ipfs-http-client/src/name/pubsub/index.js | 16 +- .../ipfs-http-client/src/name/pubsub/state.js | 11 +- .../ipfs-http-client/src/name/pubsub/subs.js | 7 +- packages/ipfs-http-client/src/name/resolve.js | 7 +- packages/ipfs-http-client/src/object/data.js | 9 +- packages/ipfs-http-client/src/object/get.js | 11 +- packages/ipfs-http-client/src/object/index.js | 30 +- packages/ipfs-http-client/src/object/links.js | 9 +- packages/ipfs-http-client/src/object/new.js | 9 +- .../src/object/patch/add-link.js | 9 +- .../src/object/patch/append-data.js | 15 +- .../src/object/patch/index.js | 19 +- .../src/object/patch/rm-link.js | 9 +- .../src/object/patch/set-data.js | 15 +- packages/ipfs-http-client/src/object/put.js | 10 +- packages/ipfs-http-client/src/object/stat.js | 9 +- packages/ipfs-http-client/src/pin/add-all.js | 11 +- packages/ipfs-http-client/src/pin/add.js | 11 +- packages/ipfs-http-client/src/pin/index.js | 27 +- packages/ipfs-http-client/src/pin/ls.js | 9 +- .../ipfs-http-client/src/pin/remote/add.js | 27 + .../ipfs-http-client/src/pin/remote/index.js | 183 +----- .../ipfs-http-client/src/pin/remote/ls.js | 29 + .../ipfs-http-client/src/pin/remote/rm-all.js | 28 + .../ipfs-http-client/src/pin/remote/rm.js | 28 + .../src/pin/remote/service.js | 126 ----- .../src/pin/remote/service/add.js | 30 + .../src/pin/remote/service/index.js | 17 + .../src/pin/remote/service/ls.js | 34 ++ .../src/pin/remote/service/rm.js | 26 + .../src/pin/remote/service/utils.js | 55 ++ .../ipfs-http-client/src/pin/remote/utils.js | 96 ++++ packages/ipfs-http-client/src/pin/rm-all.js | 11 +- packages/ipfs-http-client/src/pin/rm.js | 11 +- packages/ipfs-http-client/src/ping.js | 11 +- packages/ipfs-http-client/src/pubsub/index.js | 21 +- packages/ipfs-http-client/src/pubsub/ls.js | 7 +- packages/ipfs-http-client/src/pubsub/peers.js | 7 +- .../ipfs-http-client/src/pubsub/publish.js | 13 +- .../ipfs-http-client/src/pubsub/subscribe.js | 20 +- .../src/pubsub/subscription-tracker.js | 7 +- .../src/pubsub/unsubscribe.js | 5 +- packages/ipfs-http-client/src/refs/index.js | 16 +- packages/ipfs-http-client/src/refs/local.js | 11 +- packages/ipfs-http-client/src/repo/gc.js | 9 +- packages/ipfs-http-client/src/repo/index.js | 16 +- packages/ipfs-http-client/src/repo/stat.js | 7 +- packages/ipfs-http-client/src/repo/version.js | 7 +- packages/ipfs-http-client/src/resolve.js | 7 +- packages/ipfs-http-client/src/start.js | 7 +- packages/ipfs-http-client/src/stats/bw.js | 7 +- packages/ipfs-http-client/src/stats/index.js | 16 +- packages/ipfs-http-client/src/stop.js | 7 +- packages/ipfs-http-client/src/swarm/addrs.js | 9 +- .../ipfs-http-client/src/swarm/connect.js | 7 +- .../ipfs-http-client/src/swarm/disconnect.js | 7 +- packages/ipfs-http-client/src/swarm/index.js | 22 +- .../swarm/{localAddrs.js => local-addrs.js} | 9 +- packages/ipfs-http-client/src/swarm/peers.js | 9 +- packages/ipfs-http-client/src/version.js | 16 +- .../ipfs-http-client/test/commands.spec.js | 6 +- .../ipfs-http-client/test/constructor.spec.js | 13 +- packages/ipfs-http-client/test/dag.spec.js | 29 +- packages/ipfs-http-client/test/diag.spec.js | 6 +- .../test/endpoint-config.spec.js | 7 +- .../ipfs-http-client/test/exports.spec.js | 12 +- packages/ipfs-http-client/test/files.spec.js | 13 +- .../test/fixtures/test-folder/add | 2 +- .../test/fixtures/test-folder/cat | 2 +- .../test/fixtures/test-folder/ipfs-add | 2 +- .../test/fixtures/test-folder/ls | 2 +- .../test/fixtures/test-folder/version | 2 +- packages/ipfs-http-client/test/key.spec.js | 6 +- .../test/lib.error-handler.spec.js | 7 +- packages/ipfs-http-client/test/log.spec.js | 10 +- packages/ipfs-http-client/test/node.js | 9 +- packages/ipfs-http-client/test/node/agent.js | 14 +- .../test/node/custom-headers.js | 16 +- .../ipfs-http-client/test/node/request-api.js | 28 +- packages/ipfs-http-client/test/node/swarm.js | 9 +- packages/ipfs-http-client/test/ping.spec.js | 8 +- packages/ipfs-http-client/test/pubsub.spec.js | 12 +- packages/ipfs-http-client/test/repo.spec.js | 6 +- packages/ipfs-http-client/test/stats.spec.js | 8 +- .../ipfs-http-client/test/sub-modules.spec.js | 194 ------- .../ipfs-http-client/test/utils/factory.js | 21 +- .../test/utils/throws-async.js | 5 +- packages/ipfs-http-client/tsconfig.json | 3 +- packages/ipfs-http-gateway/package.json | 42 +- packages/ipfs-http-gateway/src/index.js | 19 +- .../src/resources/gateway.js | 33 +- .../ipfs-http-gateway/src/resources/index.js | 7 +- .../ipfs-http-gateway/src/routes/gateway.js | 7 +- .../ipfs-http-gateway/src/routes/index.js | 7 +- packages/ipfs-http-gateway/src/utils/path.js | 13 +- .../ipfs-http-gateway/test/routes.spec.js | 19 +- packages/ipfs-http-gateway/test/utils/http.js | 7 +- packages/ipfs-http-gateway/tsconfig.json | 3 +- packages/ipfs-http-server/package.json | 33 +- .../scripts/update-version.js | 14 + .../src/api/resources/bitswap.js | 9 +- .../src/api/resources/block.js | 31 +- .../src/api/resources/bootstrap.js | 15 +- .../src/api/resources/config.js | 216 ++++---- .../ipfs-http-server/src/api/resources/dag.js | 39 +- .../ipfs-http-server/src/api/resources/dht.js | 25 +- .../ipfs-http-server/src/api/resources/dns.js | 5 +- .../src/api/resources/files-regular.js | 39 +- .../src/api/resources/files/chmod.js | 7 +- .../src/api/resources/files/cp.js | 7 +- .../src/api/resources/files/flush.js | 7 +- .../src/api/resources/files/index.js | 27 - .../src/api/resources/files/ls.js | 15 +- .../src/api/resources/files/mkdir.js | 9 +- .../src/api/resources/files/mv.js | 7 +- .../src/api/resources/files/read.js | 9 +- .../src/api/resources/files/rm.js | 7 +- .../src/api/resources/files/stat.js | 7 +- .../src/api/resources/files/touch.js | 9 +- .../api/resources/files/utils/parse-mtime.js | 3 +- .../src/api/resources/files/write.js | 15 +- .../ipfs-http-server/src/api/resources/id.js | 5 +- .../src/api/resources/index.js | 24 - .../ipfs-http-server/src/api/resources/key.js | 13 +- .../src/api/resources/name.js | 237 ++++---- .../src/api/resources/object.js | 68 +-- .../ipfs-http-server/src/api/resources/pin.js | 25 +- .../src/api/resources/ping.js | 11 +- .../src/api/resources/pubsub.js | 33 +- .../src/api/resources/repo.js | 17 +- .../src/api/resources/resolve.js | 5 +- .../src/api/resources/shutdown.js | 3 +- .../src/api/resources/stats.js | 15 +- .../src/api/resources/swarm.js | 13 +- .../src/api/resources/version.js | 12 +- .../src/api/routes/bitswap.js | 15 +- .../ipfs-http-server/src/api/routes/block.js | 18 +- .../src/api/routes/bootstrap.js | 24 +- .../ipfs-http-server/src/api/routes/config.js | 22 +- .../ipfs-http-server/src/api/routes/dag.js | 22 +- .../ipfs-http-server/src/api/routes/debug.js | 9 +- .../ipfs-http-server/src/api/routes/dht.js | 25 +- .../ipfs-http-server/src/api/routes/dns.js | 12 +- .../src/api/routes/files-regular.js | 25 +- .../ipfs-http-server/src/api/routes/files.js | 38 +- .../ipfs-http-server/src/api/routes/id.js | 12 +- .../ipfs-http-server/src/api/routes/index.js | 83 +-- .../ipfs-http-server/src/api/routes/key.js | 22 +- .../ipfs-http-server/src/api/routes/name.js | 22 +- .../ipfs-http-server/src/api/routes/object.js | 37 +- .../ipfs-http-server/src/api/routes/pin.js | 16 +- .../ipfs-http-server/src/api/routes/ping.js | 12 +- .../ipfs-http-server/src/api/routes/pubsub.js | 19 +- .../ipfs-http-server/src/api/routes/repo.js | 17 +- .../src/api/routes/resolve.js | 12 +- .../src/api/routes/shutdown.js | 12 +- .../ipfs-http-server/src/api/routes/stats.js | 16 +- .../ipfs-http-server/src/api/routes/swarm.js | 22 +- .../src/api/routes/version.js | 9 +- .../ipfs-http-server/src/api/routes/webui.js | 9 +- .../ipfs-http-server/src/error-handler.js | 5 +- packages/ipfs-http-server/src/index.js | 28 +- packages/ipfs-http-server/src/utils/joi.js | 13 +- .../src/utils/multipart-request-parser.js | 19 +- .../src/utils/stream-response.js | 20 +- packages/ipfs-http-server/src/version.js | 2 + packages/ipfs-http-server/test/cors.js | 7 +- .../ipfs-http-server/test/inject/bitswap.js | 19 +- .../ipfs-http-server/test/inject/block.js | 25 +- .../ipfs-http-server/test/inject/bootstrap.js | 14 +- .../test/inject/browser-headers.js | 9 +- .../ipfs-http-server/test/inject/config.js | 18 +- packages/ipfs-http-server/test/inject/dag.js | 29 +- packages/ipfs-http-server/test/inject/dht.js | 19 +- packages/ipfs-http-server/test/inject/dns.js | 11 +- .../ipfs-http-server/test/inject/files.js | 33 +- packages/ipfs-http-server/test/inject/id.js | 11 +- packages/ipfs-http-server/test/inject/key.js | 11 +- packages/ipfs-http-server/test/inject/mfs.js | 23 +- .../ipfs-http-server/test/inject/mfs/chmod.js | 11 +- .../ipfs-http-server/test/inject/mfs/cp.js | 11 +- .../ipfs-http-server/test/inject/mfs/flush.js | 18 +- .../ipfs-http-server/test/inject/mfs/ls.js | 16 +- .../ipfs-http-server/test/inject/mfs/mkdir.js | 11 +- .../ipfs-http-server/test/inject/mfs/mv.js | 11 +- .../ipfs-http-server/test/inject/mfs/read.js | 13 +- .../ipfs-http-server/test/inject/mfs/rm.js | 11 +- .../ipfs-http-server/test/inject/mfs/stat.js | 18 +- .../ipfs-http-server/test/inject/mfs/touch.js | 11 +- .../ipfs-http-server/test/inject/mfs/write.js | 17 +- packages/ipfs-http-server/test/inject/name.js | 15 +- .../ipfs-http-server/test/inject/object.js | 31 +- packages/ipfs-http-server/test/inject/pin.js | 21 +- packages/ipfs-http-server/test/inject/ping.js | 15 +- .../ipfs-http-server/test/inject/pubsub.js | 19 +- packages/ipfs-http-server/test/inject/repo.js | 17 +- .../ipfs-http-server/test/inject/resolve.js | 15 +- .../ipfs-http-server/test/inject/shutdown.js | 5 +- .../ipfs-http-server/test/inject/stats.js | 15 +- .../ipfs-http-server/test/inject/swarm.js | 11 +- .../ipfs-http-server/test/inject/version.js | 11 +- packages/ipfs-http-server/test/node.js | 6 +- packages/ipfs-http-server/test/routes.js | 67 ++- .../ipfs-http-server/test/utils/all-ndjson.js | 3 +- packages/ipfs-http-server/test/utils/http.js | 6 +- .../test/utils/match-iterable.js | 7 +- .../test/utils/test-http-method.js | 7 +- packages/ipfs-http-server/tsconfig.json | 3 +- .../{.aegir.js => .aegir.cjs} | 1 + packages/ipfs-message-port-client/README.md | 5 +- .../ipfs-message-port-client/package.json | 26 +- .../ipfs-message-port-client/src/block.js | 16 +- .../ipfs-message-port-client/src/client.js | 13 +- .../src/client/error.js | 7 +- .../src/client/query.js | 25 +- .../src/client/service.js | 20 +- .../src/client/transport.js | 16 +- packages/ipfs-message-port-client/src/core.js | 21 +- packages/ipfs-message-port-client/src/dag.js | 11 +- .../ipfs-message-port-client/src/files.js | 12 +- .../ipfs-message-port-client/src/index.js | 16 +- .../test/interface-message-port-client.js | 5 +- .../test/util/client.js | 10 +- .../test/util/worker.js | 7 +- .../ipfs-message-port-client/tsconfig.json | 3 +- .../{.aegir.js => .aegir.cjs} | 0 packages/ipfs-message-port-protocol/README.md | 9 +- .../ipfs-message-port-protocol/package.json | 58 +- .../ipfs-message-port-protocol/src/block.js | 5 +- .../ipfs-message-port-protocol/src/cid.js | 10 +- .../ipfs-message-port-protocol/src/core.js | 19 +- .../ipfs-message-port-protocol/src/dag.js | 12 +- .../ipfs-message-port-protocol/src/error.js | 7 +- .../test/block.browser.js | 9 +- .../test/browser.js | 10 +- .../test/cid.browser.js | 9 +- .../test/cid.spec.js | 7 +- .../test/core.browser.js | 11 +- .../test/dag.browser.js | 11 +- .../test/dag.spec.js | 9 +- .../ipfs-message-port-protocol/test/node.js | 5 +- .../ipfs-message-port-protocol/test/util.js | 8 +- .../ipfs-message-port-protocol/tsconfig.json | 3 +- .../{.aegir.js => .aegir.cjs} | 0 packages/ipfs-message-port-server/README.md | 6 +- .../ipfs-message-port-server/package.json | 44 +- .../ipfs-message-port-server/src/block.js | 22 +- packages/ipfs-message-port-server/src/core.js | 9 +- packages/ipfs-message-port-server/src/dag.js | 11 +- .../ipfs-message-port-server/src/files.js | 5 +- .../ipfs-message-port-server/src/index.js | 23 +- .../ipfs-message-port-server/src/server.js | 18 +- .../ipfs-message-port-server/src/service.js | 11 +- .../test/basic.spec.js | 8 +- .../ipfs-message-port-server/test/node.js | 2 +- .../test/transfer.spec.js | 12 +- .../ipfs-message-port-server/tsconfig.json | 3 +- packages/ipfs/{.aegir.js => .aegir.cjs} | 18 +- packages/ipfs/package.json | 37 +- packages/ipfs/scripts/update-version.js | 16 + packages/ipfs/src/cli.js | 39 +- packages/ipfs/src/index.js | 22 +- packages/ipfs/src/package.js | 4 + packages/ipfs/test/interface-client.js | 12 +- packages/ipfs/test/interface-core.js | 29 +- packages/ipfs/test/interface-http-go.js | 7 +- packages/ipfs/test/interface-http-js.js | 22 +- packages/ipfs/test/utils/factory.js | 35 +- .../ipfs/test/utils/mock-pinning-service.js | 25 +- packages/ipfs/test/utils/mock-preload-node.js | 31 +- packages/ipfs/tsconfig.json | 4 +- 1024 files changed, 9298 insertions(+), 7976 deletions(-) rename packages/interface-ipfs-core/{.aegir.js => .aegir.cjs} (100%) create mode 100644 packages/ipfs-cli/src/commands/bitswap/index.js create mode 100644 packages/ipfs-cli/src/commands/block/index.js create mode 100644 packages/ipfs-cli/src/commands/bootstrap/index.js create mode 100644 packages/ipfs-cli/src/commands/cid/index.js create mode 100644 packages/ipfs-cli/src/commands/config/index.js create mode 100644 packages/ipfs-cli/src/commands/config/profile/index.js create mode 100644 packages/ipfs-cli/src/commands/dag/index.js create mode 100644 packages/ipfs-cli/src/commands/dht/index.js create mode 100644 packages/ipfs-cli/src/commands/files/index.js create mode 100644 packages/ipfs-cli/src/commands/index.js create mode 100644 packages/ipfs-cli/src/commands/key/index.js create mode 100644 packages/ipfs-cli/src/commands/name/index.js create mode 100644 packages/ipfs-cli/src/commands/name/pubsub/index.js create mode 100644 packages/ipfs-cli/src/commands/object/index.js create mode 100644 packages/ipfs-cli/src/commands/object/patch/index.js create mode 100644 packages/ipfs-cli/src/commands/pin/index.js create mode 100644 packages/ipfs-cli/src/commands/pubsub/index.js create mode 100644 packages/ipfs-cli/src/commands/repo/index.js create mode 100644 packages/ipfs-cli/src/commands/stats/index.js create mode 100644 packages/ipfs-cli/src/commands/swarm/addrs/index.js create mode 100644 packages/ipfs-cli/src/commands/swarm/index.js rename packages/ipfs-cli/test/{add.js => add.spec.js} (96%) rename packages/ipfs-cli/test/{bitswap.js => bitswap.spec.js} (96%) rename packages/ipfs-cli/test/{block.js => block.spec.js} (92%) rename packages/ipfs-cli/test/{bootstrap.js => bootstrap.spec.js} (96%) rename packages/ipfs-cli/test/{cat.js => cat.spec.js} (86%) rename packages/ipfs-cli/test/{cid.js => cid.spec.js} (95%) rename packages/ipfs-cli/test/{commands.js => commands.spec.js} (85%) rename packages/ipfs-cli/test/{config.js => config.spec.js} (92%) rename packages/ipfs-cli/test/{daemon.js => daemon.spec.js} (89%) rename packages/ipfs-cli/test/{dag.js => dag.spec.js} (96%) rename packages/ipfs-cli/test/{dht.js => dht.spec.js} (95%) rename packages/ipfs-cli/test/{dns.js => dns.spec.js} (93%) delete mode 100644 packages/ipfs-cli/test/files/index.js rename packages/ipfs-cli/test/{general.js => general.spec.js} (78%) rename packages/ipfs-cli/test/{get.js => get.spec.js} (92%) rename packages/ipfs-cli/test/{id.js => id.spec.js} (91%) rename packages/ipfs-cli/test/{init.js => init.spec.js} (89%) rename packages/ipfs-cli/test/{key.js => key.spec.js} (97%) rename packages/ipfs-cli/test/{ls.js => ls.spec.js} (95%) rename packages/ipfs-cli/test/{name-pubsub.js => name-pubsub.spec.js} (96%) rename packages/ipfs-cli/test/{name.js => name.spec.js} (97%) delete mode 100644 packages/ipfs-cli/test/node.js rename packages/ipfs-cli/test/{object.js => object.spec.js} (97%) rename packages/ipfs-cli/test/{pin.js => pin.spec.js} (97%) rename packages/ipfs-cli/test/{ping.js => ping.spec.js} (94%) rename packages/ipfs-cli/test/{progress-bar.js => progress-bar.spec.js} (67%) rename packages/ipfs-cli/test/{pubsub.js => pubsub.spec.js} (94%) rename packages/ipfs-cli/test/{refs-local.js => refs-local.spec.js} (84%) rename packages/ipfs-cli/test/{refs.js => refs.spec.js} (94%) rename packages/ipfs-cli/test/{repo.js => repo.spec.js} (96%) rename packages/ipfs-cli/test/{resolve.js => resolve.spec.js} (91%) rename packages/ipfs-cli/test/{swarm.js => swarm.spec.js} (91%) rename packages/ipfs-cli/test/{version.js => version.spec.js} (94%) rename packages/ipfs-client/{.aegir.js => .aegir.cjs} (100%) rename packages/{ipfs-core-utils/.aegir.js => ipfs-core-config/.aegir.cjs} (100%) create mode 100644 packages/ipfs-core-config/CHANGELOG.md create mode 100644 packages/ipfs-core-config/LICENSE create mode 100644 packages/ipfs-core-config/README.md create mode 100644 packages/ipfs-core-config/package.json rename packages/{ipfs-core/src/runtime/config-browser.js => ipfs-core-config/src/config.browser.js} (97%) rename packages/{ipfs-core/src/runtime/config-nodejs.js => ipfs-core-config/src/config.js} (97%) rename packages/{ipfs-core/src/runtime/dns-browser.js => ipfs-core-config/src/dns.browser.js} (85%) rename packages/{ipfs-core/src/runtime/dns-nodejs.js => ipfs-core-config/src/dns.js} (82%) create mode 100644 packages/ipfs-core-config/src/index.js create mode 100644 packages/ipfs-core-config/src/init-assets.browser.js create mode 100644 packages/ipfs-core-config/src/init-assets.js rename packages/{ipfs-core/src/init-files/init-docs/about => ipfs-core-config/src/init-files/init-docs/about.js} (88%) rename packages/{ipfs-core/src/init-files/init-docs/contact => ipfs-core-config/src/init-files/init-docs/contact.js} (61%) create mode 100644 packages/ipfs-core-config/src/init-files/init-docs/docs/index.js rename packages/{ipfs-core/src/init-files/init-docs/help => ipfs-core-config/src/init-files/init-docs/help.js} (77%) create mode 100644 packages/ipfs-core-config/src/init-files/init-docs/index.js rename packages/{ipfs-core/src/init-files/init-docs/quick-start => ipfs-core-config/src/init-files/init-docs/quick-start.js} (97%) rename packages/{ipfs-core/src/init-files/init-docs/readme => ipfs-core-config/src/init-files/init-docs/readme.js} (95%) rename packages/{ipfs-core/src/init-files/init-docs/security-notes => ipfs-core-config/src/init-files/init-docs/security-notes.js} (94%) rename packages/{ipfs-core/src/init-files/init-docs/tour/0.0-intro => ipfs-core-config/src/init-files/init-docs/tour/0.0-intro.js} (97%) create mode 100644 packages/ipfs-core-config/src/libp2p-pubsub-routers.browser.js create mode 100644 packages/ipfs-core-config/src/libp2p-pubsub-routers.js rename packages/{ipfs-core/src/runtime/libp2p-browser.js => ipfs-core-config/src/libp2p.browser.js} (71%) rename packages/{ipfs-core/src/runtime/libp2p-nodejs.js => ipfs-core-config/src/libp2p.js} (70%) rename packages/{ipfs-core/src/runtime/preload-browser.js => ipfs-core-config/src/preload.browser.js} (79%) rename packages/{ipfs-core/src/runtime/preload-nodejs.js => ipfs-core-config/src/preload.js} (57%) rename packages/{ipfs-core/src/runtime/repo-browser.js => ipfs-core-config/src/repo.browser.js} (70%) rename packages/{ipfs-core/src/runtime/repo-nodejs.js => ipfs-core-config/src/repo.js} (69%) create mode 100644 packages/ipfs-core-config/src/utils/ipns.js create mode 100644 packages/ipfs-core-config/src/utils/tlru.js create mode 100644 packages/ipfs-core-config/tsconfig.json create mode 100644 packages/ipfs-core-utils/.aegir.cjs create mode 100644 packages/ipfs-core-utils/src/agent.browser.js create mode 100644 packages/ipfs-core-utils/src/agent.js rename packages/ipfs-core-utils/src/files/{normalise-input => }/normalise-content.browser.js (80%) rename packages/ipfs-core-utils/src/files/{normalise-input => }/normalise-content.js (77%) rename packages/ipfs-core-utils/src/files/{normalise-input/index.browser.js => normalise-input.browser.js} (68%) rename packages/ipfs-core-utils/src/files/{normalise-input/index.js => normalise-input.js} (56%) rename packages/ipfs-core-utils/src/files/{normalise-input/normalise-input.js => normalise.js} (87%) rename packages/ipfs-core-utils/src/files/{normalise-input => }/utils.js (76%) create mode 100644 packages/ipfs-core-utils/src/mode-to-string.js rename packages/{ipfs-http-client/src/lib => ipfs-core-utils/src}/multipart-request.browser.js (84%) create mode 100644 packages/ipfs-core-utils/src/multipart-request.js rename packages/{ipfs-http-client/src/lib => ipfs-core-utils/src}/multipart-request.node.js (81%) create mode 100644 packages/ipfs-core-utils/test/tests.spec.js rename packages/ipfs-core/{.aegir.js => .aegir.cjs} (85%) create mode 100644 packages/ipfs-core/scripts/update-version.js create mode 100644 packages/ipfs-core/src/components/config/index.js rename packages/ipfs-core/src/components/{config.js => config/profiles.js} (54%) delete mode 100644 packages/ipfs-core/src/init-files/init-docs/docs/index delete mode 100644 packages/ipfs-core/src/ipns/routing/utils.js delete mode 100644 packages/ipfs-core/src/runtime/init-assets-browser.js delete mode 100644 packages/ipfs-core/src/runtime/init-assets-nodejs.js delete mode 100644 packages/ipfs-core/src/runtime/libp2p-pubsub-routers-browser.js delete mode 100644 packages/ipfs-core/src/runtime/libp2p-pubsub-routers-nodejs.js create mode 100644 packages/ipfs-core/src/version.js rename packages/ipfs-core/test/{bootstrapers.js => bootstrappers.js} (83%) rename packages/ipfs-grpc-client/{.aegir.js => .aegir.cjs} (100%) create mode 100644 packages/ipfs-grpc-protocol/scripts/update-index.js create mode 100644 packages/ipfs-grpc-protocol/src/index.js create mode 100644 packages/ipfs-grpc-protocol/tsconfig.json rename packages/ipfs-http-client/{.aegir.js => .aegir.cjs} (92%) rename packages/ipfs-http-client/src/config/{getAll.js => get-all.js} (76%) delete mode 100644 packages/ipfs-http-client/src/lib/buffer-to-form-data.browser.js delete mode 100644 packages/ipfs-http-client/src/lib/buffer-to-form-data.js delete mode 100644 packages/ipfs-http-client/src/lib/multipart-request.js create mode 100644 packages/ipfs-http-client/src/pin/remote/add.js create mode 100644 packages/ipfs-http-client/src/pin/remote/ls.js create mode 100644 packages/ipfs-http-client/src/pin/remote/rm-all.js create mode 100644 packages/ipfs-http-client/src/pin/remote/rm.js delete mode 100644 packages/ipfs-http-client/src/pin/remote/service.js create mode 100644 packages/ipfs-http-client/src/pin/remote/service/add.js create mode 100644 packages/ipfs-http-client/src/pin/remote/service/index.js create mode 100644 packages/ipfs-http-client/src/pin/remote/service/ls.js create mode 100644 packages/ipfs-http-client/src/pin/remote/service/rm.js create mode 100644 packages/ipfs-http-client/src/pin/remote/service/utils.js create mode 100644 packages/ipfs-http-client/src/pin/remote/utils.js rename packages/ipfs-http-client/src/swarm/{localAddrs.js => local-addrs.js} (74%) delete mode 100644 packages/ipfs-http-client/test/sub-modules.spec.js create mode 100644 packages/ipfs-http-server/scripts/update-version.js delete mode 100644 packages/ipfs-http-server/src/api/resources/files/index.js delete mode 100644 packages/ipfs-http-server/src/api/resources/index.js create mode 100644 packages/ipfs-http-server/src/version.js rename packages/ipfs-message-port-client/{.aegir.js => .aegir.cjs} (99%) rename packages/ipfs-message-port-protocol/{.aegir.js => .aegir.cjs} (100%) rename packages/ipfs-message-port-server/{.aegir.js => .aegir.cjs} (100%) rename packages/ipfs/{.aegir.js => .aegir.cjs} (87%) create mode 100644 packages/ipfs/scripts/update-version.js create mode 100644 packages/ipfs/src/package.js diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 55ab73c977..6cf59da007 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -29,6 +29,7 @@ jobs: run: | npm install npm run build + npm run link check: name: Check @@ -54,6 +55,7 @@ jobs: run: | npm install npm run build + npm run link - run: | npm run lint npm run dep-check -- -- -- -p @@ -90,6 +92,7 @@ jobs: run: | npm install npm run build + npm run link - run: npm run test:node -- --since ${{ github.event.pull_request.base.sha }} --concurrency 1 test-browser: @@ -127,6 +130,7 @@ jobs: run: | npm install npm run build + npm run link - run: npm run test:browser -- --since ${{ github.event.pull_request.base.sha }} --concurrency 1 -- -- -- --browser ${{ matrix.browser }} test-electron-main: @@ -156,6 +160,7 @@ jobs: run: | npm install npm run build + npm run link - uses: GabrielBB/xvfb-action@v1 with: run: npm run test:electron-main -- --since ${{ github.event.pull_request.base.sha }} --concurrency 1 -- -- --bail @@ -187,6 +192,7 @@ jobs: run: | npm install npm run build + npm run link - uses: GabrielBB/xvfb-action@v1 with: run: npm run test:electron-renderer -- --since ${{ github.event.pull_request.base.sha }} --concurrency 1 -- -- --bail @@ -225,6 +231,7 @@ jobs: run: | npm install npm run build + npm run link - run: npm run test:interop -- --since ${{ github.event.pull_request.base.sha }} --concurrency 1 -- -- -- -t ${{ matrix.type }} test-interface: @@ -266,6 +273,7 @@ jobs: run: | npm install npm run build + npm run link - run: npm run ${{ matrix.suite }} -- --since ${{ github.event.pull_request.base.sha }} --concurrency 1 -- -- -t ${{ matrix.type }} test-interface-message-port-client: @@ -295,130 +303,132 @@ jobs: run: | npm install npm run build + npm run link - run: npm run test:interface:message-port-client -- --since ${{ github.event.pull_request.base.sha }} --concurrency 1 - test-examples: - name: Test example ${{ matrix.example.name }} - needs: build - runs-on: ubuntu-latest - strategy: - matrix: - example: - - name: ipfs browser add readable stream - repo: https://github.com/ipfs-examples/js-ipfs-browser-add-readable-stream.git - deps: ipfs@$PWD/packages/ipfs - - name: ipfs browser angular - repo: https://github.com/ipfs-examples/js-ipfs-browser-angular.git - deps: ipfs@$PWD/packages/ipfs,ipfs-core-types@$PWD/packages/ipfs-core-types - - name: ipfs browser browserify - repo: https://github.com/ipfs-examples/js-ipfs-browser-browserify.git - deps: ipfs@$PWD/packages/ipfs - - name: ipfs browser react - repo: https://github.com/ipfs-examples/js-ipfs-browser-create-react-app.git - deps: ipfs@$PWD/packages/ipfs - #- name: ipfs browser exchange files - # repo: https://github.com/ipfs-examples/js-ipfs-browser-exchange-files.git - # deps: ipfs@$PWD/packages/ipfs - #- name: ipfs browser ipns publish - # deps: ipfs@$PWD/packages/ipfs,ipfs-http-client@$PWD/packages/ipfs-http-client - # repo: https://github.com/ipfs-examples/js-ipfs-browser-ipns-publish.git - - name: ipfs browser mfs - repo: https://github.com/ipfs-examples/js-ipfs-browser-mfs.git - deps: ipfs@$PWD/packages/ipfs - #- name: ipfs browser nextjs - # repo: https://github.com/ipfs-examples/js-ipfs-browser-nextjs.git - # deps: ipfs@$PWD/packages/ipfs - - name: ipfs browser parceljs - repo: https://github.com/ipfs-examples/js-ipfs-browser-parceljs.git - deps: ipfs@$PWD/packages/ipfs - - name: ipfs browser readable stream - repo: https://github.com/ipfs-examples/js-ipfs-browser-readablestream.git - deps: ipfs@$PWD/packages/ipfs - #- name: ipfs browser service worker - # repo: https://github.com/ipfs-examples/js-ipfs-browser-service-worker.git - # deps: ipfs@$PWD/packages/ipfs,ipfs-message-port-client@$PWD/packages/ipfs-message-port-client,ipfs-message-port-protocol@$PWD/packages/ipfs-message-port-protocol,ipfs-message-port-server@$PWD/packages/ipfs-message-port-server - - name: ipfs browser sharing across tabs - repo: https://github.com/ipfs-examples/js-ipfs-browser-sharing-node-across-tabs.git - deps: ipfs@$PWD/packages/ipfs,ipfs-message-port-client@$PWD/packages/ipfs-message-port-client,ipfs-message-port-server@$PWD/packages/ipfs-message-port-server - - name: ipfs browser video streaming - repo: https://github.com/ipfs-examples/js-ipfs-browser-video-streaming.git - deps: ipfs@$PWD/packages/ipfs - #- name: ipfs browser vue - # repo: https://github.com/ipfs-examples/js-ipfs-browser-vue.git - # deps: ipfs@$PWD/packages/ipfs - #- name: ipfs browser webpack - # repo: https://github.com/ipfs-examples/js-ipfs-browser-webpack.git - # deps: ipfs@$PWD/packages/ipfs - - name: ipfs circuit relaying - repo: https://github.com/ipfs-examples/js-ipfs-circuit-relaying.git - deps: ipfs@$PWD/packages/ipfs - - name: ipfs custom ipfs repo - repo: https://github.com/ipfs-examples/js-ipfs-custom-ipfs-repo.git - deps: ipfs@$PWD/packages/ipfs - - name: ipfs custom ipld formats - repo: https://github.com/ipfs-examples/js-ipfs-custom-ipld-formats.git - deps: ipfs-core@$PWD/packages/ipfs-core,ipfs-daemon@$PWD/packages/ipfs-daemon,ipfs-http-client@$PWD/packages/ipfs-http-client - - name: ipfs custom libp2p - repo: https://github.com/ipfs-examples/js-ipfs-custom-libp2p.git - deps: ipfs@$PWD/packages/ipfs - - name: ipfs-http-client browser pubsub - repo: https://github.com/ipfs-examples/js-ipfs-http-client-browser-pubsub.git - deps: ipfs-http-client@$PWD/packages/ipfs-http-client - - name: ipfs-http-client bundle webpack - repo: https://github.com/ipfs-examples/js-ipfs-http-client-bundle-webpack.git - deps: ipfs-http-client@$PWD/packages/ipfs-http-client - - name: ipfs-http-client name api - repo: https://github.com/ipfs-examples/js-ipfs-http-client-name-api.git - deps: ipfs@$PWD/packages/ipfs,ipfs-http-client@$PWD/packages/ipfs-http-client - - name: ipfs-http-client upload file - repo: https://github.com/ipfs-examples/js-ipfs-http-client-upload-file.git - deps: ipfs@$PWD/packages/ipfs,ipfs-http-client@$PWD/packages/ipfs-http-client - - name: ipfs 101 - repo: https://github.com/ipfs-examples/js-ipfs-101.git - deps: ipfs@$PWD/packages/ipfs - - name: ipfs-client add files - repo: https://github.com/ipfs-examples/js-ipfs-ipfs-client-add-files.git - deps: ipfs@$PWD/packages/ipfs,ipfs-client@$PWD/packages/ipfs-client - - name: ipfs electron js - repo: https://github.com/ipfs-examples/js-ipfs-run-in-electron.git - deps: ipfs@$PWD/packages/ipfs - - name: ipfs running multiple nodes - repo: https://github.com/ipfs-examples/js-ipfs-running-multiple-nodes.git - deps: ipfs@$PWD/packages/ipfs - - name: ipfs traverse ipld graphs - repo: https://github.com/ipfs-examples/js-ipfs-traverse-ipld-graphs.git - deps: ipfs@$PWD/packages/ipfs - - name: types with typescript - repo: https://github.com/ipfs-examples/js-ipfs-types-use-ipfs-from-ts.git - deps: ipfs@$PWD/packages/ipfs - - name: types with typed js - repo: https://github.com/ipfs-examples/js-ipfs-types-use-ipfs-from-typed-js.git - deps: ipfs@$PWD/packages/ipfs - steps: - - uses: actions/checkout@v2 - - uses: actions/setup-node@v2 - with: - node-version: 16 - - uses: actions/cache@v2 - id: cache - env: - CACHE_NAME: cache-node-modules - with: - path: | - ~/.npm - ./node_modules - ./packages/*/node_modules - ./packages/*/dist - key: ${{ runner.os }}-build-${{ env.CACHE_NAME }}-${{ github.event.pull_request.head.sha }} - - name: Install Dependencies - if: steps.cache.outputs.cache-hit != 'true' - run: | - npm install - npm run build - - uses: GabrielBB/xvfb-action@v1 - name: Run npm run test:external -- -- -- ${{ matrix.example.repo }} --deps ${{ matrix.example.deps }} - with: - run: npm run test:external -- -- -- ${{ matrix.example.repo }} --deps ${{ matrix.example.deps }} + # test-examples: + # name: Test example ${{ matrix.example.name }} + # needs: build + # runs-on: ubuntu-latest + # strategy: + # matrix: + # example: + # - name: ipfs browser add readable stream + # repo: https://github.com/ipfs-examples/js-ipfs-browser-add-readable-stream.git + # deps: ipfs@$PWD/packages/ipfs/dist + # - name: ipfs browser angular + # repo: https://github.com/ipfs-examples/js-ipfs-browser-angular.git + # deps: ipfs@$PWD/packages/ipfs/dist,ipfs-core-types@$PWD/packages/ipfs-core-types + # - name: ipfs browser browserify + # repo: https://github.com/ipfs-examples/js-ipfs-browser-browserify.git + # deps: ipfs@$PWD/packages/ipfs/dist + # - name: ipfs browser react + # repo: https://github.com/ipfs-examples/js-ipfs-browser-create-react-app.git + # deps: ipfs@$PWD/packages/ipfs/dist + # - name: ipfs browser exchange files + # repo: https://github.com/ipfs-examples/js-ipfs-browser-exchange-files.git + # deps: ipfs@$PWD/packages/ipfs/dist + # - name: ipfs browser ipns publish + # deps: ipfs@$PWD/packages/ipfs/dist,ipfs-http-client@$PWD/packages/ipfs-http-client/dist + # repo: https://github.com/ipfs-examples/js-ipfs-browser-ipns-publish.git + # - name: ipfs browser mfs + # repo: https://github.com/ipfs-examples/js-ipfs-browser-mfs.git + # deps: ipfs@$PWD/packages/ipfs/dist + # - name: ipfs browser nextjs + # repo: https://github.com/ipfs-examples/js-ipfs-browser-nextjs.git + # deps: ipfs@$PWD/packages/ipfs/dist + # - name: ipfs browser parceljs + # repo: https://github.com/ipfs-examples/js-ipfs-browser-parceljs.git + # deps: ipfs@$PWD/packages/ipfs/dist + # - name: ipfs browser readable stream + # repo: https://github.com/ipfs-examples/js-ipfs-browser-readablestream.git + # deps: ipfs@$PWD/packages/ipfs/dist + # - name: ipfs browser service worker + # repo: https://github.com/ipfs-examples/js-ipfs-browser-service-worker.git + # deps: ipfs@$PWD/packages/ipfs/dist,ipfs-message-port-client/dist@$PWD/packages/ipfs-message-port-client/dist,ipfs-message-port-protocol@$PWD/packages/ipfs-message-port-protocol/dist,ipfs-message-port-server@$PWD/packages/ipfs-message-port-server/dist + # - name: ipfs browser sharing across tabs + # repo: https://github.com/ipfs-examples/js-ipfs-browser-sharing-node-across-tabs.git + # deps: ipfs@$PWD/packages/ipfs/dist,ipfs-message-port-client@$PWD/packages/ipfs-message-port-client/dist,ipfs-message-port-server@$PWD/packages/ipfs-message-port-server/dist + # - name: ipfs browser video streaming + # repo: https://github.com/ipfs-examples/js-ipfs-browser-video-streaming.git + # deps: ipfs@$PWD/packages/ipfs/dist + # - name: ipfs browser vue + # repo: https://github.com/ipfs-examples/js-ipfs-browser-vue.git + # deps: ipfs@$PWD/packages/ipfs/dist + # - name: ipfs browser webpack + # repo: https://github.com/ipfs-examples/js-ipfs-browser-webpack.git + # deps: ipfs@$PWD/packages/ipfs/dist + # - name: ipfs circuit relaying + # repo: https://github.com/ipfs-examples/js-ipfs-circuit-relaying.git + # deps: ipfs@$PWD/packages/ipfs/dist + # - name: ipfs custom ipfs repo + # repo: https://github.com/ipfs-examples/js-ipfs-custom-ipfs-repo.git + # deps: ipfs@$PWD/packages/ipfs/dist + # - name: ipfs custom ipld formats + # repo: https://github.com/ipfs-examples/js-ipfs-custom-ipld-formats.git + # deps: ipfs-core@$PWD/packages/ipfs-core/dist,ipfs-daemon@$PWD/packages/ipfs-daemon,ipfs-http-client@$PWD/packages/ipfs-http-client/dist + # - name: ipfs custom libp2p + # repo: https://github.com/ipfs-examples/js-ipfs-custom-libp2p.git + # deps: ipfs@$PWD/packages/ipfs/dist + # - name: ipfs-http-client browser pubsub + # repo: https://github.com/ipfs-examples/js-ipfs-http-client-browser-pubsub.git + # deps: ipfs-http-client@$PWD/packages/ipfs-http-client/dist + # - name: ipfs-http-client bundle webpack + # repo: https://github.com/ipfs-examples/js-ipfs-http-client-bundle-webpack.git + # deps: ipfs-http-client@$PWD/packages/ipfs-http-client/dist + # - name: ipfs-http-client name api + # repo: https://github.com/ipfs-examples/js-ipfs-http-client-name-api.git + # deps: ipfs@$PWD/packages/ipfs/dist,ipfs-http-client@$PWD/packages/ipfs-http-client/dist + # - name: ipfs-http-client upload file + # repo: https://github.com/ipfs-examples/js-ipfs-http-client-upload-file.git + # deps: ipfs@$PWD/packages/ipfs/dist,ipfs-http-client@$PWD/packages/ipfs-http-client/dist + # - name: ipfs 101 + # repo: https://github.com/ipfs-examples/js-ipfs-101.git + # deps: ipfs@$PWD/packages/ipfs/dist + # - name: ipfs-client add files + # repo: https://github.com/ipfs-examples/js-ipfs-ipfs-client-add-files.git + # deps: ipfs@$PWD/packages/ipfs/dist,ipfs-client@$PWD/packages/ipfs-client + # - name: ipfs electron js + # repo: https://github.com/ipfs-examples/js-ipfs-run-in-electron.git + # deps: ipfs@$PWD/packages/ipfs/dist + # - name: ipfs running multiple nodes + # repo: https://github.com/ipfs-examples/js-ipfs-running-multiple-nodes.git + # deps: ipfs@$PWD/packages/ipfs/dist + # - name: ipfs traverse ipld graphs + # repo: https://github.com/ipfs-examples/js-ipfs-traverse-ipld-graphs.git + # deps: ipfs@$PWD/packages/ipfs/dist + # - name: types with typescript + # repo: https://github.com/ipfs-examples/js-ipfs-types-use-ipfs-from-ts.git + # deps: ipfs@$PWD/packages/ipfs/dist + # - name: types with typed js + # repo: https://github.com/ipfs-examples/js-ipfs-types-use-ipfs-from-typed-js.git + # deps: ipfs@$PWD/packages/ipfs/dist + # steps: + # - uses: actions/checkout@v2 + # - uses: actions/setup-node@v2 + # with: + # node-version: 16 + # - uses: actions/cache@v2 + # id: cache + # env: + # CACHE_NAME: cache-node-modules + # with: + # path: | + # ~/.npm + # ./node_modules + # ./packages/*/node_modules + # ./packages/*/dist + # key: ${{ runner.os }}-build-${{ env.CACHE_NAME }}-${{ github.event.pull_request.head.sha }} + # - name: Install Dependencies + # if: steps.cache.outputs.cache-hit != 'true' + # run: | + # npm install + # npm run build + # npm run link + # - uses: GabrielBB/xvfb-action@v1 + # name: Run npm run test:external -- -- -- ${{ matrix.example.repo }} --deps ${{ matrix.example.deps }} + # with: + # run: npm run test:external -- -- -- ${{ matrix.example.repo }} --deps ${{ matrix.example.deps }} test-externals: name: Test external ${{ matrix.external.name }} @@ -429,16 +439,16 @@ jobs: external: - name: ipfs webui repo: https://github.com/ipfs-shipyard/ipfs-webui.git - deps: ipfs@$PWD/packages/ipfs + deps: ipfs@$PWD/packages/ipfs/dist - name: ipfs companion repo: https://github.com/ipfs-shipyard/ipfs-companion.git - deps: ipfs@$PWD/packages/ipfs + deps: ipfs@$PWD/packages/ipfs/dist - name: orbit-db-io repo: https://github.com/orbitdb/orbit-db-io.git - deps: ipfs@$PWD/packages/ipfs + deps: ipfs@$PWD/packages/ipfs/dist - name: ipfs-log repo: https://github.com/orbitdb/ipfs-log.git - deps: ipfs@$PWD/packages/ipfs,orbit-db-io@next + deps: ipfs@$PWD/packages/ipfs/dist,orbit-db-io@next steps: - uses: actions/checkout@v2 - uses: actions/setup-node@v2 @@ -460,6 +470,7 @@ jobs: run: | npm install npm run build + npm run link - uses: GabrielBB/xvfb-action@v1 name: Run npm run test:external -- -- -- ${{ matrix.external.repo }} --deps ${{ matrix.external.deps }} --branch ${{ matrix.external.branch }} continue-on-error: true diff --git a/.gitignore b/.gitignore index 2ea2efcefc..12652bc725 100644 --- a/.gitignore +++ b/.gitignore @@ -33,3 +33,4 @@ tsconfig-check.aegir.json # Operating system files .DS_Store +types \ No newline at end of file diff --git a/README.md b/README.md index 716536eb81..f96564bf04 100644 --- a/README.md +++ b/README.md @@ -85,7 +85,7 @@ $ npm install ipfs-core Then start a node in your app: ```javascript -const IPFS = require('ipfs-core') +import * as IPFS from 'ipfs-core' const ipfs = await IPFS.create() const { cid } = await ipfs.add('Hello world') diff --git a/docs/DAEMON.md b/docs/DAEMON.md index 04ca934b90..febd011eb7 100644 --- a/docs/DAEMON.md +++ b/docs/DAEMON.md @@ -23,7 +23,7 @@ The IPFS Daemon exposes the API defined in the [HTTP API spec](https://docs.ipfs If you want a programmatic way to spawn a IPFS Daemon using JavaScript, check out the [ipfsd-ctl](https://github.com/ipfs/js-ipfsd-ctl) module. ```javascript -const { createFactory } = require('ipfsd-ctl') +import { createFactory } from 'ipfsd-ctl' const factory = createFactory({ type: 'proc' // or 'js' to run in a separate process }) diff --git a/docs/FAQ.md b/docs/FAQ.md index 0fb54b3756..8bc4ed9d07 100644 --- a/docs/FAQ.md +++ b/docs/FAQ.md @@ -73,8 +73,8 @@ Yes, however, bear in mind that there isn't a 100% stable solution to use WebRTC To add WebRTC support in a IPFS node instance, do: ```JavaScript -const wrtc = require('wrtc') // or require('electron-webrtc')() -const WebRTCStar = require('libp2p-webrtc-star') +import wrtc from 'wrtc' // or 'electron-webrtc' +import WebRTCStar from 'libp2p-webrtc-star' const node = await IPFS.create({ repo: 'your-repo-path', diff --git a/docs/IPLD.md b/docs/IPLD.md index 0398fabf6e..8f3fcfaae4 100644 --- a/docs/IPLD.md +++ b/docs/IPLD.md @@ -49,38 +49,41 @@ If your application requires support for extra codecs, you can configure them as 1. Configure the [IPLD layer](https://github.com/ipfs/js-ipfs/blob/master/packages/ipfs/docs/MODULE.md#optionsipld) of your IPFS daemon to support the codec. This step is necessary so the node knows how to prepare data received over HTTP to be passed to IPLD for serialization: ```javascript - const ipfs = require('ipfs') + import { create } from 'ipfs' + import customBlockCodec from 'custom-blockcodec' + import customMultibase from 'custom-multibase' + import customMultihasher from 'custom-multihasher' - const node = await ipfs({ + const node = await create({ ipld: { // either specify BlockCodecs as part of the `codecs` list codecs: [ - require('custom-blockcodec') + customBlockCodec ], // and/or supply a function to load them dynamically loadCodec: async (codecNameOrCode) => { - return require(codecNameOrCode) + return import(codecNameOrCode) }, // either specify Multibase codecs as part of the `bases` list bases: [ - require('custom-multibase') + customMultibase ], // and/or supply a function to load them dynamically loadBase: async (baseNameOrCode) => { - return require(baseNameOrCode) + return import(baseNameOrCode) }, // either specify Multihash hashers as part of the `hashers` list hashers: [ - require('custom-multibase') + customMultihasher ], // and/or supply a function to load them dynamically loadHasher: async (hashNameOrCode) => { - return require(hashNameOrCode) + return import(hashNameOrCode) } } }) @@ -89,39 +92,42 @@ If your application requires support for extra codecs, you can configure them as 2. Configure your IPFS HTTP API Client to support the codec. This is necessary so that the client can send the data to the IPFS node over HTTP: ```javascript - const ipfsHttpClient = require('ipfs-http-client') + import { create } from 'ipfs-http-client' + import customBlockCodec from 'custom-blockcodec' + import customMultibase from 'custom-multibase' + import customMultihasher from 'custom-multihasher' - const client = ipfsHttpClient({ + const client = create({ url: 'http://127.0.0.1:5002', ipld: { // either specify BlockCodecs as part of the `codecs` list codecs: [ - require('custom-blockcodec') + customBlockCodec ], // and/or supply a function to load them dynamically loadCodec: async (codecNameOrCode) => { - return require(codecNameOrCode) + return import(codecNameOrCode) }, // either specify Multibase codecs as part of the `bases` list bases: [ - require('custom-multibase') + customMultibase ], // and/or supply a function to load them dynamically loadBase: async (baseNameOrCode) => { - return require(baseNameOrCode) + return import(baseNameOrCode) }, // either specify Multihash hashers as part of the `hashers` list hashers: [ - require('custom-multibase') + customMultihasher ], // and/or supply a function to load them dynamically loadHasher: async (hashNameOrCode) => { - return require(hashNameOrCode) + return import(hashNameOrCode) } } }) diff --git a/docs/MIGRATION-TO-ASYNC-AWAIT.md b/docs/MIGRATION-TO-ASYNC-AWAIT.md index 9db9e634c2..56fc4f6168 100644 --- a/docs/MIGRATION-TO-ASYNC-AWAIT.md +++ b/docs/MIGRATION-TO-ASYNC-AWAIT.md @@ -100,7 +100,7 @@ const peerId = PeerId.createFromB58String(peerIdStr) You can get hold of the `PeerId` class using npm or in a script tag: ```js -const PeerId = require('peer-id') +import PeerId from 'peer-id' const peerId = PeerId.createFromB58String(peerIdStr) ``` @@ -128,7 +128,7 @@ You can get hold of the `PeerInfo` class using npm or in a script tag: ```js const PeerInfo = require('peer-info') -const PeerId = require('peer-id') +import PeerId from 'peer-id' const peerInfo = new PeerInfo(PeerId.createFromB58String(info.id)) info.addrs.forEach(addr => peerInfo.multiaddrs.add(addr)) ``` @@ -217,7 +217,7 @@ readable.on('end', () => { Becomes: ```js -const toStream = require('it-to-stream') +import toStream from 'it-to-stream' const readable = toStream.readable(ipfs.cat('QmHash')) const decoder = new TextDecoder() @@ -285,7 +285,7 @@ console.log(decoder.decode(data)) ...which, by the way, could more succinctly be written as: ```js -const toBuffer = require('it-to-buffer') +import toBuffer from 'it-to-buffer' const decoder = new TextDecoder() const data = await toBuffer(ipfs.cat('QmHash')) console.log(decoder.decode(data)) @@ -321,7 +321,7 @@ pipeline( Becomes: ```js -const toStream = require('it-to-stream') +import toStream from 'it-to-stream' const { pipeline, Writable } = require('stream') const decoder = new TextDecoder() @@ -353,7 +353,7 @@ Use `it-pipe` and a [for/await](https://developer.mozilla.org/en-US/docs/Web/Jav e.g. ```js -const fs = require('fs') +import fs from 'fs' const { pipeline } = require('stream') const items = [] @@ -378,7 +378,7 @@ pipeline( Becomes: ```js -const fs = require('fs') +import fs from 'fs' const pipe = require('it-pipe') const items = [] @@ -400,9 +400,9 @@ console.log(items) ...which, by the way, could more succinctly be written as: ```js -const fs = require('fs') +import fs from 'fs' const pipe = require('it-pipe') -const all = require('it-all') +import all from 'it-all' const items = await pipe( fs.createReadStream('/path/to/file'), @@ -420,7 +420,7 @@ Convert the async iterable to a readable stream. e.g. ```js -const fs = require('fs') +import fs from 'fs' const { pipeline } = require('stream') const items = [] @@ -445,8 +445,8 @@ pipeline( Becomes: ```js -const toStream = require('it-to-stream') -const fs = require('fs') +import toStream from 'it-to-stream' +import fs from 'fs' const { pipeline } = require('stream') const items = [] @@ -568,7 +568,7 @@ Becomes: ```js const pipe = require('it-pipe') -const concat = require('it-concat') +import concat from 'it-concat' const decoder = new TextDecoder() const data = await pipe( @@ -590,7 +590,7 @@ Use `it-pipe` and `it-all` to collect all items from an async iterable. e.g. ```js -const fs = require('fs') +import fs from 'fs' const toPull = require('stream-to-pull-stream') pull( @@ -605,7 +605,7 @@ pull( Becomes: ```js -const fs = require('fs') +import fs from 'fs' const file = await ipfs.add(fs.createReadStream('/path/to/file')) @@ -619,7 +619,7 @@ Convert the async iterable to a pull stream. e.g. ```js -const fs = require('fs') +import fs from 'fs' const toPull = require('stream-to-pull-stream') pull( @@ -634,7 +634,7 @@ pull( Becomes: ```js -const fs = require('fs') +import fs from 'fs' const streamToPull = require('stream-to-pull-stream') const itToPull = require('async-iterator-to-pull-stream') @@ -685,7 +685,7 @@ for await (const file of addSource) { Alternatively you can buffer up the results using the `it-all` utility: ```js -const all = require('it-all') +import all from 'it-all' const results = await all(ipfs.addAll([ { path: 'root/1.txt', content: 'one' }, @@ -744,7 +744,7 @@ Reading files. e.g. ```js -const fs = require('fs') +import fs from 'fs' const data = await ipfs.cat('/ipfs/QmHash') @@ -759,8 +759,8 @@ Becomes: ```js const pipe = require('it-pipe') -const toIterable = require('stream-to-it') -const fs = require('fs') +import toIterable from 'stream-to-it' +import fs from 'fs' // Note that as chunks arrive they are written to the file and memory can be freed and re-used await pipe( @@ -774,8 +774,8 @@ console.log('done') Alternatively you can buffer up the chunks using the `it-concat` utility (not recommended!): ```js -const fs = require('fs') -const concat = require('it-concat') +import fs from 'fs' +import concat from 'it-concat' const data = await concat(ipfs.cat('/ipfs/QmHash')) @@ -812,7 +812,7 @@ for await (const file of filesSource) { Alternatively you can buffer up the directory listing using the `it-all` utility: ```js -const all = require('it-all') +import all from 'it-all' const results = await all(ipfs.ls('/ipfs/QmHash')) @@ -905,7 +905,7 @@ files.forEach(file => { Becomes: ```js -const fs = require('fs') +import fs from 'fs' const ipfs = IpfsHttpClient() const file = await ipfs.add(fs.createReadStream('/path/to/file.txt')) diff --git a/docs/MODULE.md b/docs/MODULE.md index 803800449c..407345ad67 100644 --- a/docs/MODULE.md +++ b/docs/MODULE.md @@ -99,7 +99,7 @@ Instead of a boolean, you may provide an object with custom initialization optio - `privateKey` (string/PeerId) A pre-generated private key to use. Can be either a base64 string or a [PeerId](https://github.com/libp2p/js-peer-id) instance. **NOTE: This overrides `bits`.** ```js // Generating a Peer ID: - const PeerId = require('peer-id') + import PeerId from 'peer-id' // Generates a new Peer ID, complete with public/private keypair // See https://github.com/libp2p/js-peer-id const peerId = await PeerId.create({ bits: 2048 }) @@ -179,7 +179,7 @@ Enable and configure experimental features. | Type | Default | |------|---------| -| object | [`config-nodejs.js`](https://github.com/ipfs/js-ipfs/blob/master/packages/ipfs-core/src/runtime/config-nodejs.js) in Node.js, [`config-browser.js`](https://github.com/ipfs/js-ipfs/blob/master/packages/ipfs-core/src/runtime/config-browser.js) in browsers | +| object | [`config-nodejs.js`](https://github.com/ipfs/js-ipfs/blob/master/packages/ipfs-core-config/src/config-nodejs.js) in Node.js, [`config-browser.js`](https://github.com/ipfs/js-ipfs/blob/master/packages/ipfs-core-config/src/config-browser.js) in browsers | Modify the default IPFS node config. This object will be *merged* with the default config; it will not replace it. The default config is documented in [the js-ipfs config file docs](./CONFIG.md). @@ -187,7 +187,7 @@ Modify the default IPFS node config. This object will be *merged* with the defau | Type | Default | |------|---------| -| object | [`ipld.js`](https://github.com/ipfs/js-ipfs/blob/master/packages/ipfs-core/src/runtime/ipld.js) | +| object | [`ipld.js`](https://github.com/ipfs/js-ipfs/blob/master/packages/ipfs-core-config/src/ipld.js) | Modify the default IPLD config. This object will be *merged* with the default config; it will not replace it. Check IPLD [docs](https://github.com/ipld/js-ipld#ipld-constructor) for more information on the available options. @@ -202,10 +202,14 @@ Examples for the sync option: ```js import ipldGit from 'ipld-git' import ipldBitcoin from 'ipld-bitcoin' +import { convert } from 'ipld-format-to-blockcodec' const node = await IPFS.create({ ipld: { - formats: [ipldGit, ipldBitcoin] + codecs: [ + convert(ipldGit), + convert(ipldBitcoin) + ] } }) ``` @@ -214,9 +218,17 @@ const node = await IPFS.create({
Commonjs Environments ```js +const IPFS = require('ipfs') +const ipldGit = require('ipld-git') +const ipldBitcoin = require('ipld-bitcoin') +const { convert } = require('ipld-format-to-blockcodec') + const node = await IPFS.create({ ipld: { - formats: [require('ipld-git'), require('ipld-bitcoin')] + codecs: [ + convert(ipldGit), + convert(ipldBitcoin) + ] } }) ``` @@ -228,11 +240,15 @@ const node = await IPFS.create({ +