From b4424884e89dc30b27a8466ba6cefac5e0612daa Mon Sep 17 00:00:00 2001 From: Alex Potsides Date: Thu, 2 Sep 2021 15:36:46 +0100 Subject: [PATCH 01/17] fix: convert cid before instanceof check (#9) The `CID` class can be loaded as an ESM or a CJS class which means `instanceof` breaks since they are loaded from different places. Run the passed `cid` through `CID.asCID` to convert it to whatever we think the `CID` class is before the test. --- .github/workflows/main.yml | 2 +- package.json | 5 ++-- src/index.js | 47 ++++++++++++++++++++++++++++---------- 3 files changed, 39 insertions(+), 15 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index b412471..92e8f09 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -27,7 +27,7 @@ jobs: strategy: matrix: os: [windows-latest, ubuntu-latest, macos-latest] - node: [14, 15] + node: [14, 16] fail-fast: true steps: - uses: actions/checkout@v2 diff --git a/package.json b/package.json index 212013e..cb7690f 100644 --- a/package.json +++ b/package.json @@ -34,8 +34,9 @@ }, "homepage": "https://github.com/ipfs/js-blockstore-datastore-adapter#readme", "devDependencies": { - "aegir": "^33.1.0", - "interface-blockstore-tests": "^1.0.0" + "aegir": "^35.0.2", + "interface-blockstore-tests": "^1.0.0", + "util": "^0.12.4" }, "dependencies": { "err-code": "^3.0.1", diff --git a/src/index.js b/src/index.js index 42aca31..e90fd80 100644 --- a/src/index.js +++ b/src/index.js @@ -18,11 +18,13 @@ const { BlockstoreAdapter } = require('interface-blockstore') * @returns {Key} */ function cidToKey (cid) { - if (!(cid instanceof CID)) { + const c = CID.asCID(cid) + + if (!(c instanceof CID)) { throw errcode(new Error('Not a valid cid'), 'ERR_INVALID_CID') } - return new Key('/' + base32.encode(cid.multihash.bytes).slice(1).toUpperCase(), false) + return new Key('/' + base32.encode(c.multihash.bytes).slice(1).toUpperCase(), false) } /** @@ -50,32 +52,53 @@ function keyToCid (key) { * @returns {string} */ function convertPrefix (prefix) { - let bytes const firstChar = prefix.substring(0, 1) if (firstChar === '/') { return convertPrefix(prefix.substring(1)) } + /** @type {(input: string) => Uint8Array } */ + let decoder + if (firstChar.toLowerCase() === 'b') { // v1 cid prefix, remove version and codec bytes - bytes = base32.decode(prefix.toLowerCase()).subarray(2) + decoder = (input) => base32.decode(input.toLowerCase()).subarray(2) } else if (firstChar.toLowerCase() === 'c') { // v1 cid prefix, remove version and codec bytes - bytes = base32pad.decode(prefix.toLowerCase()).subarray(2) + decoder = (input) => base32pad.decode(input.toLowerCase()).subarray(2) } else if (firstChar === 'z') { // v1 cid - bytes = base58btc.decode(prefix).subarray(2) + decoder = (input) => base58btc.decode(input).subarray(2) } else if (firstChar === 'Q') { // v0 cid prefix - bytes = base58btc.decode('z' + prefix) + decoder = (input) => base58btc.decode('z' + input) } else { - bytes = base32.decode('b' + prefix.toLowerCase()).subarray(2) + decoder = (input) => base32.decode('b' + input.toLowerCase()).subarray(2) } - const str = base32.encode(bytes).substring(1).toUpperCase() + let bytes + + // find the longest prefix that we can safely decode + for (let i = 1; i < prefix.length; i++) { + try { + bytes = decoder(prefix.substring(0, i)) + } catch (err) { + if (err.message !== 'Unexpected end of data') { + throw err + } + } + } + + let str = '/C' + + if (bytes) { + // slice one character from the end of the string to ensure we don't end up + // with a padded value which could have a non-matching string at the end + str = `/${base32.encode(bytes).slice(1, -1).toUpperCase() || 'C'}` + } - return str || 'C' + return str } /** @@ -85,7 +108,7 @@ function convertPrefix (prefix) { function convertQuery (query) { return { ...query, - prefix: query.prefix ? `/${convertPrefix(query.prefix)}` : undefined, + prefix: query.prefix ? convertPrefix(query.prefix) : undefined, filters: query.filters ? query.filters.map( filter => (pair) => { @@ -110,7 +133,7 @@ function convertQuery (query) { function convertKeyQuery (query) { return { ...query, - prefix: query.prefix ? `/${convertPrefix(query.prefix)}` : undefined, + prefix: query.prefix ? convertPrefix(query.prefix) : undefined, filters: query.filters ? query.filters.map( filter => (key) => { From 3f8ef60253998e1e9cc8de9cd4f78a44d3bc538c Mon Sep 17 00:00:00 2001 From: achingbrain Date: Thu, 2 Sep 2021 15:39:17 +0100 Subject: [PATCH 02/17] chore: update contributors --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index cb7690f..a293cfa 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "blockstore-datastore-adapter", - "version": "1.0.0", + "version": "1.0.1", "description": "datastore interface", "leadMaintainer": "Alex Potsides ", "main": "src/index.js", From b3592d6ba5709e885eeff4a5ecd8ddc09df03d41 Mon Sep 17 00:00:00 2001 From: achingbrain Date: Thu, 2 Sep 2021 15:39:18 +0100 Subject: [PATCH 03/17] chore: release version v1.0.1 --- CHANGELOG.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2b8f061..9c1382b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,12 @@ +## [1.0.1](https://github.com/ipfs/js-blockstore-datastore-adapter/compare/v1.0.0...v1.0.1) (2021-09-02) + + +### Bug Fixes + +* convert cid before instanceof check ([#9](https://github.com/ipfs/js-blockstore-datastore-adapter/issues/9)) ([b442488](https://github.com/ipfs/js-blockstore-datastore-adapter/commit/b4424884e89dc30b27a8466ba6cefac5e0612daa)) + + + # [1.0.0](https://github.com/ipfs/js-blockstore-datastore-adapter/compare/v0.0.4...v1.0.0) (2021-07-06) From e8a2521c090790c6cd6877950a3d90c3a938d83d Mon Sep 17 00:00:00 2001 From: Alex Potsides Date: Thu, 9 Sep 2021 09:27:48 +0100 Subject: [PATCH 04/17] chore: switch to esm (#10) BREAKING CHANGE: deep imports/requires are no longer possible --- .github/workflows/main.yml | 8 +++++--- .gitignore | 1 + package.json | 42 +++++++++++++++++++++++++------------- src/index.js | 28 +++++++++++-------------- test/index.spec.js | 8 ++++---- tsconfig.json | 16 +++++++-------- 6 files changed, 58 insertions(+), 45 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 92e8f09..6c241b6 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -50,18 +50,20 @@ jobs: steps: - uses: actions/checkout@v2 - run: npm install - - run: npx aegir test -t browser -t webworker --bail -- --browser firefox + - run: npx aegir test -t browser -t webworker --bail -- --browsers FirefoxHeadless test-electron-main: needs: check runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - run: npm install - - run: npx xvfb-maybe aegir test -t electron-main --bail + - run: npm run pretest + - run: npx xvfb-maybe aegir test -t electron-main --bail -f dist/cjs/node-test/*js test-electron-renderer: needs: check runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - run: npm install - - run: npx xvfb-maybe aegir test -t electron-renderer --bail \ No newline at end of file + - run: npm run pretest + - run: npx xvfb-maybe aegir test -t electron-renderer --bail -f dist/cjs/browser-test/*js diff --git a/.gitignore b/.gitignore index f8ca32b..d1e881e 100644 --- a/.gitignore +++ b/.gitignore @@ -37,3 +37,4 @@ node_modules dist docs +types diff --git a/package.json b/package.json index a293cfa..faa980d 100644 --- a/package.json +++ b/package.json @@ -4,19 +4,34 @@ "description": "datastore interface", "leadMaintainer": "Alex Potsides ", "main": "src/index.js", - "types": "dist/src/index.d.ts", + "type": "module", + "types": "types/index.d.ts", "files": [ - "src", - "dist" + "*", + "!**/*.tsbuildinfo" ], + "exports": { + ".": { + "import": "./src/index.js" + } + }, + "eslintConfig": { + "extends": "ipfs", + "parserOptions": { + "sourceType": "module" + } + }, "scripts": { - "prepare": "aegir build --no-bundle", + "clean": "rimraf dist types", + "prepare": "aegir build --no-bundle && cp -R types dist", "lint": "aegir ts -p check && aegir lint", + "build": "aegir build", + "release": "aegir release --target node", + "release-minor": "aegir release --type minor --target node", + "release-major": "aegir release --type major --target node", + "pretest": "aegir build --esm-tests", "test": "aegir test", - "release": "aegir release", - "release-minor": "aegir release --type minor", - "release-major": "aegir release --type major", - "coverage": "aegir test --cov" + "dep-check": "aegir dep-check -i rimraf" }, "repository": { "type": "git", @@ -35,20 +50,19 @@ "homepage": "https://github.com/ipfs/js-blockstore-datastore-adapter#readme", "devDependencies": { "aegir": "^35.0.2", - "interface-blockstore-tests": "^1.0.0", + "datastore-core": "^6.0.6", + "interface-blockstore-tests": "^2.0.1", "util": "^0.12.4" }, "dependencies": { + "blockstore-core": "^1.0.0", "err-code": "^3.0.1", - "interface-blockstore": "^1.0.0", - "interface-datastore": "^5.0.0", + "interface-blockstore": "^2.0.2", + "interface-datastore": "^6.0.2", "it-drain": "^1.0.1", "it-pushable": "^1.4.2", "multiformats": "^9.1.0" }, - "eslintConfig": { - "extends": "ipfs" - }, "contributors": [ "achingbrain " ] diff --git a/src/index.js b/src/index.js index e90fd80..1fce613 100644 --- a/src/index.js +++ b/src/index.js @@ -1,15 +1,13 @@ -'use strict' - -const drain = require('it-drain') -const pushable = require('it-pushable') -const { Key } = require('interface-datastore') -const { CID } = require('multiformats/cid') -const raw = require('multiformats/codecs/raw') -const Digest = require('multiformats/hashes/digest') -const { base32, base32pad } = require('multiformats/bases/base32') -const { base58btc } = require('multiformats/bases/base58') -const errcode = require('err-code') -const { BlockstoreAdapter } = require('interface-blockstore') +import drain from 'it-drain' +import pushable from 'it-pushable' +import { Key } from 'interface-datastore/key' +import { CID } from 'multiformats/cid' +import * as raw from 'multiformats/codecs/raw' +import * as Digest from 'multiformats/hashes/digest' +import { base32, base32pad } from 'multiformats/bases/base32' +import { base58btc } from 'multiformats/bases/base58' +import errcode from 'err-code' +import { BaseBlockstore } from 'blockstore-core/base' /** * Transform a cid to the appropriate datastore key. @@ -83,7 +81,7 @@ function convertPrefix (prefix) { for (let i = 1; i < prefix.length; i++) { try { bytes = decoder(prefix.substring(0, i)) - } catch (err) { + } catch (/** @type {any} */ err) { if (err.message !== 'Unexpected end of data') { throw err } @@ -163,7 +161,7 @@ function convertKeyQuery (query) { /** * @implements {Blockstore} */ -class BlockstoreDatastoreAdapter extends BlockstoreAdapter { +export class BlockstoreDatastoreAdapter extends BaseBlockstore { /** * @param {Datastore} datastore */ @@ -314,5 +312,3 @@ class BlockstoreDatastoreAdapter extends BlockstoreAdapter { return out } } - -module.exports = BlockstoreDatastoreAdapter diff --git a/test/index.spec.js b/test/index.spec.js index 557bb4d..4704365 100644 --- a/test/index.spec.js +++ b/test/index.spec.js @@ -1,12 +1,12 @@ /* eslint-env mocha */ -'use strict' -const { MemoryDatastore } = require('interface-datastore') -const BlockstoreDatastoreAdapter = require('../src') +import { MemoryDatastore } from 'datastore-core/memory' +import { BlockstoreDatastoreAdapter } from '../src/index.js' +import { interfaceBlockstoreTests } from 'interface-blockstore-tests' describe('Memory', () => { describe('interface-blockstore', () => { - require('interface-blockstore-tests')({ + interfaceBlockstoreTests({ setup () { return new BlockstoreDatastoreAdapter( new MemoryDatastore() diff --git a/tsconfig.json b/tsconfig.json index fe3cbd6..f6b712b 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,10 +1,10 @@ { - "extends": "aegir/src/config/tsconfig.aegir.json", - "compilerOptions": { - "outDir": "dist" - }, - "include": [ - "test", - "src" - ] + "extends": "aegir/src/config/tsconfig.aegir.json", + "compilerOptions": { + "outDir": "types" + }, + "include": [ + "test", + "src" + ] } From 7207d6a782e9c12de1330f39a08c755e46383071 Mon Sep 17 00:00:00 2001 From: achingbrain Date: Thu, 9 Sep 2021 09:29:16 +0100 Subject: [PATCH 05/17] docs: update readme --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 9862d97..f768391 100644 --- a/README.md +++ b/README.md @@ -18,10 +18,10 @@ $ npm install blockstore-datastore-adapter ## Usage ```js -const { MemoryStore } = require('interface-datastore') -const BlockstoreDatastoreAdapter = require('blockstore-datastore-adapter') +import { MemoryDatastore } from ('datastore-core/memory') +import { BlockstoreDatastoreAdapter } from 'blockstore-datastore-adapter' -const store = new BlockstoreDatastoreAdapter(new MemoryStore()) +const store = new BlockstoreDatastoreAdapter(new MemoryDatastore()) ``` ## Contribute From af93cd9b84c76088f1ce7eb7b98778ba66a52124 Mon Sep 17 00:00:00 2001 From: achingbrain Date: Thu, 9 Sep 2021 09:29:37 +0100 Subject: [PATCH 06/17] chore: update contributors --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index faa980d..7507db3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "blockstore-datastore-adapter", - "version": "1.0.1", + "version": "2.0.0", "description": "datastore interface", "leadMaintainer": "Alex Potsides ", "main": "src/index.js", From 7d46206ac2ce0398c2eb2a2000a879338f368ca6 Mon Sep 17 00:00:00 2001 From: achingbrain Date: Thu, 9 Sep 2021 09:29:37 +0100 Subject: [PATCH 07/17] chore: release version v2.0.0 --- CHANGELOG.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9c1382b..60d109a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,17 @@ +# [2.0.0](https://github.com/ipfs/js-blockstore-datastore-adapter/compare/v1.0.1...v2.0.0) (2021-09-09) + + +### chore + +* switch to esm ([#10](https://github.com/ipfs/js-blockstore-datastore-adapter/issues/10)) ([e8a2521](https://github.com/ipfs/js-blockstore-datastore-adapter/commit/e8a2521c090790c6cd6877950a3d90c3a938d83d)) + + +### BREAKING CHANGES + +* deep imports/requires are no longer possible + + + ## [1.0.1](https://github.com/ipfs/js-blockstore-datastore-adapter/compare/v1.0.0...v1.0.1) (2021-09-02) From c6ff9798049da7f57c1f9ff8abf9f89912d15d07 Mon Sep 17 00:00:00 2001 From: Alex Potsides Date: Thu, 9 Sep 2021 09:32:45 +0100 Subject: [PATCH 08/17] docs: update readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f768391..9209d8a 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ $ npm install blockstore-datastore-adapter ## Usage ```js -import { MemoryDatastore } from ('datastore-core/memory') +import { MemoryDatastore } from 'datastore-core/memory' import { BlockstoreDatastoreAdapter } from 'blockstore-datastore-adapter' const store = new BlockstoreDatastoreAdapter(new MemoryDatastore()) From bf2b90acd0e5c732f4d46024ceda281fc95cd776 Mon Sep 17 00:00:00 2001 From: achingbrain Date: Thu, 9 Sep 2021 09:43:27 +0100 Subject: [PATCH 09/17] chore: correct types path --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 7507db3..61e3fd3 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "leadMaintainer": "Alex Potsides ", "main": "src/index.js", "type": "module", - "types": "types/index.d.ts", + "types": "types/src/index.d.ts", "files": [ "*", "!**/*.tsbuildinfo" From e91ca1c8d60dee84a3784a1434efde5291ec60bf Mon Sep 17 00:00:00 2001 From: achingbrain Date: Thu, 9 Sep 2021 09:46:16 +0100 Subject: [PATCH 10/17] chore: update contributors --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 61e3fd3..ac2c505 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "blockstore-datastore-adapter", - "version": "2.0.0", + "version": "2.0.1", "description": "datastore interface", "leadMaintainer": "Alex Potsides ", "main": "src/index.js", From d2893c84ddee245121a04f8db8d8d08d9972a5b1 Mon Sep 17 00:00:00 2001 From: achingbrain Date: Thu, 9 Sep 2021 09:46:16 +0100 Subject: [PATCH 11/17] chore: release version v2.0.1 --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 60d109a..8b91f2d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## [2.0.1](https://github.com/ipfs/js-blockstore-datastore-adapter/compare/v2.0.0...v2.0.1) (2021-09-09) + + + # [2.0.0](https://github.com/ipfs/js-blockstore-datastore-adapter/compare/v1.0.1...v2.0.0) (2021-09-09) From 6b816cc1ec2963858bad524fb1df28c14e8bab76 Mon Sep 17 00:00:00 2001 From: Alex Potsides Date: Fri, 17 Sep 2021 11:17:09 +0200 Subject: [PATCH 12/17] fix: remove instanceof (#11) `instanceOf` is unreliable with esm/cjs dual publised modules. --- src/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/index.js b/src/index.js index 1fce613..7fac33e 100644 --- a/src/index.js +++ b/src/index.js @@ -18,7 +18,7 @@ import { BaseBlockstore } from 'blockstore-core/base' function cidToKey (cid) { const c = CID.asCID(cid) - if (!(c instanceof CID)) { + if (!c) { throw errcode(new Error('Not a valid cid'), 'ERR_INVALID_CID') } From 804eb9c88a62fb452337d6922be461d9e0dedf80 Mon Sep 17 00:00:00 2001 From: achingbrain Date: Fri, 17 Sep 2021 11:31:14 +0200 Subject: [PATCH 13/17] chore: update contributors --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index ac2c505..fb46d00 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "blockstore-datastore-adapter", - "version": "2.0.1", + "version": "2.0.2", "description": "datastore interface", "leadMaintainer": "Alex Potsides ", "main": "src/index.js", From 6e54ba3d3c002bfd8a02ff08f4726cafbe48751a Mon Sep 17 00:00:00 2001 From: achingbrain Date: Fri, 17 Sep 2021 11:31:14 +0200 Subject: [PATCH 14/17] chore: release version v2.0.2 --- CHANGELOG.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8b91f2d..10c89f1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,12 @@ +## [2.0.2](https://github.com/ipfs/js-blockstore-datastore-adapter/compare/v2.0.1...v2.0.2) (2021-09-17) + + +### Bug Fixes + +* remove instanceof ([#11](https://github.com/ipfs/js-blockstore-datastore-adapter/issues/11)) ([6b816cc](https://github.com/ipfs/js-blockstore-datastore-adapter/commit/6b816cc1ec2963858bad524fb1df28c14e8bab76)) + + + ## [2.0.1](https://github.com/ipfs/js-blockstore-datastore-adapter/compare/v2.0.0...v2.0.1) (2021-09-09) From 7874fd70540e1be985c4703ffbd635fe3764ba94 Mon Sep 17 00:00:00 2001 From: Alex Potsides Date: Wed, 29 Sep 2021 10:57:54 +0100 Subject: [PATCH 15/17] fix: access process from globalThis (#14) Fixes webpack error: ``` Module not found: Error: Can't resolve 'process/browser' in /path/... ``` Falls back to `setImmediate`, then `setTimeout`. --- src/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/index.js b/src/index.js index 7fac33e..1e01908 100644 --- a/src/index.js +++ b/src/index.js @@ -244,7 +244,7 @@ export class BlockstoreDatastoreAdapter extends BaseBlockstore { // process.nextTick runs on the microtask queue, setImmediate runs on the next // event loop iteration so is slower. Use process.nextTick if it is available. - const runner = process && process.nextTick ? process.nextTick : setImmediate + const runner = globalThis.process && globalThis.process.nextTick ? globalThis.process.nextTick : (globalThis.setImmediate || globalThis.setTimeout) runner(async () => { try { From bdcc2ed0c3433e6562addf4ccccaf6efecc4c270 Mon Sep 17 00:00:00 2001 From: achingbrain Date: Wed, 29 Sep 2021 10:58:39 +0100 Subject: [PATCH 16/17] chore: update contributors --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index fb46d00..bcda270 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "blockstore-datastore-adapter", - "version": "2.0.2", + "version": "2.0.3", "description": "datastore interface", "leadMaintainer": "Alex Potsides ", "main": "src/index.js", From f61f60c2bf53e8b6be255a0cc66cbcb84c22d317 Mon Sep 17 00:00:00 2001 From: achingbrain Date: Wed, 29 Sep 2021 10:58:39 +0100 Subject: [PATCH 17/17] chore: release version v2.0.3 --- CHANGELOG.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 10c89f1..d65bb68 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,12 @@ +## [2.0.3](https://github.com/ipfs/js-blockstore-datastore-adapter/compare/v2.0.2...v2.0.3) (2021-09-29) + + +### Bug Fixes + +* access process from globalThis ([#14](https://github.com/ipfs/js-blockstore-datastore-adapter/issues/14)) ([7874fd7](https://github.com/ipfs/js-blockstore-datastore-adapter/commit/7874fd70540e1be985c4703ffbd635fe3764ba94)) + + + ## [2.0.2](https://github.com/ipfs/js-blockstore-datastore-adapter/compare/v2.0.1...v2.0.2) (2021-09-17)